diff --git a/.gitignore b/.gitignore index b94c4c38..f471e470 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ target/ **/*.iml transaction-logs/ .flattened-pom.xml +.nodejs diff --git a/README.adoc b/README.adoc index 2a9ebb30..49e776d7 100644 --- a/README.adoc +++ b/README.adoc @@ -1,65 +1,171 @@ -# judo-ui-react +# judo-ui-react-template -UI based JUDO React Frontend Java generator +UI based JUDO React Frontend TypeScript generator -It can be used as: +## Dependencies + +The source code which this template can generate depends on the generated services of https://github.com/BlackBeltTechnology/judo-ui-typescript-rest-template[judo-ui-typescript-rest-template]. + +The following example will showcase both plugins working together to generate a fully functional application. + +## Usage [code, xml] ---- 4.0.0 - hu.blackbelt.judo.archetype - judo-ui-react-example - ${revision} - pom - JUDO UI Generator React Frontend test - JUDO UI React Frontend Generator Example. + com.example + actiongrouptest-frontend-react-action_group_test__god + 1.0.0-SNAPSHOT + + ActionGroupTest - God + ActionGroupTest - God react frontend + + bundle - 1.0.0-SNAPSHOT - 3.8.3 + + 1.0.1.20230213_193724_b9e98a1c_develop + 1.0.0.20230120_203628_b0fbaa8e_develop + 1.0.0.20230227_135344_7ab7117b_develop + 1.0.0.20230222_040743_a6270e05_develop + + + ActionGroupTest + actiongrouptest__god + god + God + ActionGroupTest::God - 1.0.0 - 1.0.0 - 1.1.0 + + ${project.basedir}/model/${model-name}-ui.model + ${project.basedir}/generator-overrides + ${project.basedir}/target/frontend-react + + + @example + 1.0.0 + 10 - hu.blackbelt.judo.archetype - judo-ui-archetype-maven-plugin - ${judo-ui-archetype-version} + hu.blackbelt.judo.meta + judo-ui-generator-maven-plugin + ${judo-meta-ui-version} - execute-ui-test-model-from-artifact - test + execute-ui-services-generation + generate-sources generate - ${basedir}/src/main/resources + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-version} - - hu.blackbelt.judo.ui.generator.sdk.core.PsmModelHelper - - ui-sdk-core - - mvn:your.ui.model.group.id:your.ui.model.artifact.id:your.ui.model.version!model-name-in-jar.model - - ${basedir}/target/generated-test-classes/ui/sdk-core + ui-typescript-rest + + ${actor-fq-name} + + ${ui-model} + ${generation-target}/src/generated + + + + + execute-ui-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-react:${judo-ui-react-version} + + ui-react + + ${actor-fq-name} + + ${ui-model} + ${generation-target} + + ${model-name} + ${appScope} + ${appVersion} + + 10 + + + + + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-api + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-service + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-axios + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-react + ${judo-ui-react-version} + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + external-packages + generate-sources + + unpack + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${judo-ui-react-version} + jar + true + + + externals/** + ${generation-target} - hu.blackbelt.judo.meta - hu.blackbelt.judo.meta.ui.model.northwind - ${judo-meta-ui-version} + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${judo-ui-react-version} @@ -68,11 +174,11 @@ It can be used as: ---- -This example generates a complete project setup into `target/classes` directory. -In a project this generation can be placed in the model project as a -profile. +This example generates a complete application into the `target/frontend-react` directory. -The `judo-ui-archetype-maven-plugin` documentation is placed inside -the plugin documentation itself. https://github.com/BlackBeltTechnology/judo-ui-archetype +The `judo-ui-generator-maven-plugin` documentation is placed inside +the plugin documentation itself. https://github.com/BlackBeltTechnology/judo-meta-ui/tree/develop/generator-maven-plugin +## Notes +The `maven-dependency-plugin` copies repackaged dependencies from the module `judo-ui-react-external-packages`. diff --git a/judo-ui-react-external-packages/.classpath b/judo-ui-react-external-packages/.classpath new file mode 100644 index 00000000..234db15b --- /dev/null +++ b/judo-ui-react-external-packages/.classpath @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/judo-ui-react-external-packages/.project b/judo-ui-react-external-packages/.project new file mode 100644 index 00000000..b161ad79 --- /dev/null +++ b/judo-ui-react-external-packages/.project @@ -0,0 +1,24 @@ + + + judo-ui-react-external-packages + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/judo-ui-react-external-packages/pom.xml b/judo-ui-react-external-packages/pom.xml new file mode 100644 index 00000000..d20e21ae --- /dev/null +++ b/judo-ui-react-external-packages/pom.xml @@ -0,0 +1,80 @@ + + 4.0.0 + + + hu.blackbelt.judo.generator + judo-ui-react-template + ${revision} + + + judo-ui-react-external-packages + bundle + JUDO UI React Frontend Repackaged External Packages + + + ${project.parent.basedir}/target/nodejs + ${basedir}/target/classes + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + install node and pnpm + + install-node-and-pnpm + + generate-resources + + + pnpm install + + pnpm + + compile + + install + + + + build + + pnpm + + compile + + build + + + + + v${node-version} + ${pnpm-version} + ${node-install-dir} + ${build-dir} + + + + + org.apache.felix + maven-bundle-plugin + 4.2.1 + true + + + + + /externals=${build-dir}/dist, + {maven-resources} + + + + + + + diff --git a/judo-ui-react-external-packages/src/main/resources/.gitignore b/judo-ui-react-external-packages/src/main/resources/.gitignore new file mode 100644 index 00000000..158c838e --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/.gitignore @@ -0,0 +1,6 @@ +.idea +**/*.iml +node_modules +target +dist +**/*.log diff --git a/judo-ui-react-external-packages/src/main/resources/.npmrc b/judo-ui-react-external-packages/src/main/resources/.npmrc new file mode 100644 index 00000000..3e775efb --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/.npmrc @@ -0,0 +1 @@ +auto-install-peers=true diff --git a/judo-ui-react-external-packages/src/main/resources/README.md b/judo-ui-react-external-packages/src/main/resources/README.md new file mode 100644 index 00000000..3c20ecbb --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/README.md @@ -0,0 +1,25 @@ +# judo-tatami-ui-packages + +Re-packaged external dependencies which do not provide UMD modules. + +## Items +- @mui/x-data-grid +- @mui/x-date-pickers +- @mui/x-date-pickers/AdapterDayjs +- react-dom/client +- react/jsx-runtime + +## Setup + +```bash +pnpm i +``` + +## Commands + +```bash +pnpm build + +pnpm watch +pnpm preview +``` diff --git a/judo-ui-react-external-packages/src/main/resources/external/judo-data-api-common.tsx b/judo-ui-react-external-packages/src/main/resources/external/judo-data-api-common.tsx new file mode 100644 index 00000000..f1337e88 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/judo-data-api-common.tsx @@ -0,0 +1 @@ +export * from '@judo/data-api-common'; diff --git a/judo-ui-react-external-packages/src/main/resources/external/mui-material-locale.tsx b/judo-ui-react-external-packages/src/main/resources/external/mui-material-locale.tsx new file mode 100644 index 00000000..c7d60ac8 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/mui-material-locale.tsx @@ -0,0 +1 @@ +export * from '@mui/material/modern/locale'; diff --git a/judo-ui-react-external-packages/src/main/resources/external/mui-material.tsx b/judo-ui-react-external-packages/src/main/resources/external/mui-material.tsx new file mode 100644 index 00000000..75ca8fac --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/mui-material.tsx @@ -0,0 +1 @@ +export * from '@mui/material/modern'; diff --git a/judo-ui-react-external-packages/src/main/resources/external/mui-system.tsx b/judo-ui-react-external-packages/src/main/resources/external/mui-system.tsx new file mode 100644 index 00000000..2f84a1ab --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/mui-system.tsx @@ -0,0 +1 @@ +export * from '@mui/system/modern'; \ No newline at end of file diff --git a/judo-ui-react-external-packages/src/main/resources/external/mui-x-data-grid.tsx b/judo-ui-react-external-packages/src/main/resources/external/mui-x-data-grid.tsx new file mode 100644 index 00000000..393f9324 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/mui-x-data-grid.tsx @@ -0,0 +1 @@ +export * from '@mui/x-data-grid/modern'; diff --git a/judo-ui-react-external-packages/src/main/resources/external/mui-x-date-pickers-adapter-day-js.tsx b/judo-ui-react-external-packages/src/main/resources/external/mui-x-date-pickers-adapter-day-js.tsx new file mode 100644 index 00000000..97309263 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/mui-x-date-pickers-adapter-day-js.tsx @@ -0,0 +1 @@ +export * from '@mui/x-date-pickers/AdapterDayjs'; diff --git a/judo-ui-react-external-packages/src/main/resources/external/mui-x-date-pickers.tsx b/judo-ui-react-external-packages/src/main/resources/external/mui-x-date-pickers.tsx new file mode 100644 index 00000000..973babe2 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/mui-x-date-pickers.tsx @@ -0,0 +1 @@ +export * from '@mui/x-date-pickers/modern'; diff --git a/judo-ui-react-external-packages/src/main/resources/external/oidc-client-ts.tsx b/judo-ui-react-external-packages/src/main/resources/external/oidc-client-ts.tsx new file mode 100644 index 00000000..0fe0d99e --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/oidc-client-ts.tsx @@ -0,0 +1 @@ +export * from 'oidc-client-ts'; diff --git a/judo-ui-react-external-packages/src/main/resources/external/react-dom-client.tsx b/judo-ui-react-external-packages/src/main/resources/external/react-dom-client.tsx new file mode 100644 index 00000000..74ad4a69 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/react-dom-client.tsx @@ -0,0 +1,6 @@ +import * as client from 'react-dom/client'; + +const c = client as any; + +export const createRoot = c.createRoot; +export const hydrateRoot = c.hydrateRoot; diff --git a/judo-ui-react-external-packages/src/main/resources/external/react-is.tsx b/judo-ui-react-external-packages/src/main/resources/external/react-is.tsx new file mode 100644 index 00000000..75b91ee6 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/react-is.tsx @@ -0,0 +1 @@ +export * from 'react-is'; diff --git a/judo-ui-react-external-packages/src/main/resources/external/react-jsx-runtime.tsx b/judo-ui-react-external-packages/src/main/resources/external/react-jsx-runtime.tsx new file mode 100644 index 00000000..5a5521d8 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/react-jsx-runtime.tsx @@ -0,0 +1,14 @@ +import * as jsxRuntime from 'react/jsx-runtime'; + +const runtime = jsxRuntime as any; + +export const jsxs = runtime.jsxs; +export const jsx = runtime.jsx; +export const Fragment = runtime.Fragment; + +// default export for sub-optimally written third party libraries which import with `* as`... +export default { + jsx, + jsxs, + Fragment, +}; diff --git a/judo-ui-react-external-packages/src/main/resources/external/react-oidc-context.tsx b/judo-ui-react-external-packages/src/main/resources/external/react-oidc-context.tsx new file mode 100644 index 00000000..b4a06f2f --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/external/react-oidc-context.tsx @@ -0,0 +1 @@ +export * from 'react-oidc-context'; diff --git a/judo-ui-react-external-packages/src/main/resources/package.json b/judo-ui-react-external-packages/src/main/resources/package.json new file mode 100644 index 00000000..2fcada73 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/package.json @@ -0,0 +1,50 @@ +{ + "name": "@blackbelt/judo-tatami-ui-external-packages", + "version": "1.0.0", + "description": "Re-packaged external dependencies which do not provide UMD modules.", + "type": "module", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "default": "./dist/index.js" + } + }, + "private": true, + "scripts": { + "build": "cross-env NODE_ENV=production rollup -c", + "build:dev": "rollup -c" + }, + "keywords": ["judo", "web", "umd", "systemjs", "react", "mui"], + "license": "EPL-2.0", + "author": "Norbert Herczeg ", + "devDependencies": { + "@rollup/plugin-commonjs": "24.0.0", + "@rollup/plugin-node-resolve": "15.0.1", + "@rollup/plugin-replace": "5.0.2", + "@types/react": "18.0.26", + "@types/react-dom": "18.0.9", + "@types/systemjs": "6.13.0", + "cross-env": "7.0.3", + "rollup": "3.7.5", + "rollup-plugin-clear": "2.0.7", + "rollup-plugin-esbuild": "5.0.0", + "typescript": "4.9.4" + }, + "dependencies": { + "@emotion/react": "11.10.5", + "@emotion/styled": "11.10.5", + "@judo/data-api-common": "0.4.2", + "@mui/material": "5.11.4", + "@mui/system": "5.11.4", + "@mui/x-data-grid": "5.17.18", + "@mui/x-date-pickers": "5.0.13", + "dayjs": "1.11.7", + "oidc-client-ts": "2.2.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-is": "18.2.0", + "react-oidc-context": "2.2.1", + "systemjs": "6.13.0" + } +} diff --git a/judo-ui-react-external-packages/src/main/resources/pnpm-lock.yaml b/judo-ui-react-external-packages/src/main/resources/pnpm-lock.yaml new file mode 100644 index 00000000..7cedc24d --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/pnpm-lock.yaml @@ -0,0 +1,1764 @@ +lockfileVersion: 5.4 + +specifiers: + '@emotion/react': 11.10.5 + '@emotion/styled': 11.10.5 + '@judo/data-api-common': 0.4.2 + '@mui/material': 5.11.4 + '@mui/system': 5.11.4 + '@mui/x-data-grid': 5.17.18 + '@mui/x-date-pickers': 5.0.13 + '@rollup/plugin-commonjs': 24.0.0 + '@rollup/plugin-node-resolve': 15.0.1 + '@rollup/plugin-replace': 5.0.2 + '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 + '@types/systemjs': 6.13.0 + cross-env: 7.0.3 + dayjs: 1.11.7 + oidc-client-ts: 2.2.1 + react: 18.2.0 + react-dom: 18.2.0 + react-is: 18.2.0 + react-oidc-context: 2.2.1 + rollup: 3.7.5 + rollup-plugin-clear: 2.0.7 + rollup-plugin-esbuild: 5.0.0 + systemjs: 6.13.0 + typescript: 4.9.4 + +dependencies: + '@emotion/react': 11.10.5_jp5qgyg6plq757v5hojp7ls2oe + '@emotion/styled': 11.10.5_jp5djshq6aqfasno3mth3hguci + '@judo/data-api-common': 0.4.2 + '@mui/material': 5.11.4_lskpmcsdi7ipu6qpuapyu56ihm + '@mui/system': 5.11.4_ogriz7mfahdh34qnfautfro5yu + '@mui/x-data-grid': 5.17.18_fw5fsjkluzkaqx4hea3mxt62ym + '@mui/x-date-pickers': 5.0.13_bf4y4hp7qiw5cnlcxcy5tjibxm + dayjs: 1.11.7 + oidc-client-ts: 2.2.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-is: 18.2.0 + react-oidc-context: 2.2.1_ibntxc4lxaigcm3od77f5lvjly + systemjs: 6.13.0 + +devDependencies: + '@rollup/plugin-commonjs': 24.0.0_rollup@3.7.5 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.7.5 + '@rollup/plugin-replace': 5.0.2_rollup@3.7.5 + '@types/react': 18.0.26 + '@types/react-dom': 18.0.9 + '@types/systemjs': 6.13.0 + cross-env: 7.0.3 + rollup: 3.7.5 + rollup-plugin-clear: 2.0.7 + rollup-plugin-esbuild: 5.0.0_xofeg5zkug6xjz4owa5cgqfhky + typescript: 4.9.4 + +packages: + + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + dev: false + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: false + + /@babel/compat-data/7.20.10: + resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/core/7.20.12: + resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.7 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helpers': 7.20.13 + '@babel/parser': 7.20.13 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/generator/7.20.7: + resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + dev: false + + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/core': 7.20.12 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: false + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.20.7 + dev: false + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + dev: false + + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + dev: false + + /@babel/helper-module-transforms/7.20.11: + resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + dev: false + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + dev: false + + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helpers/7.20.13: + resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: false + + /@babel/parser/7.20.13: + resolution: {integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.20.7 + dev: false + + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: false + + /@babel/runtime/7.20.13: + resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.20.13 + '@babel/types': 7.20.7 + dev: false + + /@babel/traverse/7.20.13: + resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.7 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.13 + '@babel/types': 7.20.7 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/types/7.20.7: + resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: false + + /@date-io/core/2.16.0: + resolution: {integrity: sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg==} + dev: false + + /@date-io/date-fns/2.16.0: + resolution: {integrity: sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA==} + peerDependencies: + date-fns: ^2.0.0 + peerDependenciesMeta: + date-fns: + optional: true + dependencies: + '@date-io/core': 2.16.0 + dev: false + + /@date-io/dayjs/2.16.0_dayjs@1.11.7: + resolution: {integrity: sha512-y5qKyX2j/HG3zMvIxTobYZRGnd1FUW2olZLS0vTj7bEkBQkjd2RO7/FEwDY03Z1geVGlXKnzIATEVBVaGzV4Iw==} + peerDependencies: + dayjs: ^1.8.17 + peerDependenciesMeta: + dayjs: + optional: true + dependencies: + '@date-io/core': 2.16.0 + dayjs: 1.11.7 + dev: false + + /@date-io/luxon/2.16.1: + resolution: {integrity: sha512-aeYp5K9PSHV28946pC+9UKUi/xMMYoaGelrpDibZSgHu2VWHXrr7zWLEr+pMPThSs5vt8Ei365PO+84pCm37WQ==} + peerDependencies: + luxon: ^1.21.3 || ^2.x || ^3.x + peerDependenciesMeta: + luxon: + optional: true + dependencies: + '@date-io/core': 2.16.0 + dev: false + + /@date-io/moment/2.16.1: + resolution: {integrity: sha512-JkxldQxUqZBfZtsaCcCMkm/dmytdyq5pS1RxshCQ4fHhsvP5A7gSqPD22QbVXMcJydi3d3v1Y8BQdUKEuGACZQ==} + peerDependencies: + moment: ^2.24.0 + peerDependenciesMeta: + moment: + optional: true + dependencies: + '@date-io/core': 2.16.0 + dev: false + + /@emotion/babel-plugin/11.10.5_@babel+core@7.20.12: + resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12 + '@babel/runtime': 7.20.13 + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/serialize': 1.1.1 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.1.3 + dev: false + + /@emotion/cache/11.10.5: + resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} + dependencies: + '@emotion/memoize': 0.8.0 + '@emotion/sheet': 1.2.1 + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + stylis: 4.1.3 + dev: false + + /@emotion/hash/0.9.0: + resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} + dev: false + + /@emotion/is-prop-valid/1.2.0: + resolution: {integrity: sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==} + dependencies: + '@emotion/memoize': 0.8.0 + dev: false + + /@emotion/memoize/0.8.0: + resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} + dev: false + + /@emotion/react/11.10.5_jp5qgyg6plq757v5hojp7ls2oe: + resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/runtime': 7.20.13 + '@emotion/babel-plugin': 11.10.5_@babel+core@7.20.12 + '@emotion/cache': 11.10.5 + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + '@types/react': 18.0.26 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: false + + /@emotion/serialize/1.1.1: + resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} + dependencies: + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/unitless': 0.8.0 + '@emotion/utils': 1.2.0 + csstype: 3.1.1 + dev: false + + /@emotion/sheet/1.2.1: + resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} + dev: false + + /@emotion/styled/11.10.5_jp5djshq6aqfasno3mth3hguci: + resolution: {integrity: sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==} + peerDependencies: + '@babel/core': ^7.0.0 + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/runtime': 7.20.13 + '@emotion/babel-plugin': 11.10.5_@babel+core@7.20.12 + '@emotion/is-prop-valid': 1.2.0 + '@emotion/react': 11.10.5_jp5qgyg6plq757v5hojp7ls2oe + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 + '@emotion/utils': 1.2.0 + '@types/react': 18.0.26 + react: 18.2.0 + dev: false + + /@emotion/unitless/0.8.0: + resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + dev: false + + /@emotion/use-insertion-effect-with-fallbacks/1.0.0_react@18.2.0: + resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /@emotion/utils/1.2.0: + resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} + dev: false + + /@emotion/weak-memoize/0.3.0: + resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} + dev: false + + /@esbuild/android-arm/0.17.4: + resolution: {integrity: sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.17.4: + resolution: {integrity: sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.17.4: + resolution: {integrity: sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.17.4: + resolution: {integrity: sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.17.4: + resolution: {integrity: sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.17.4: + resolution: {integrity: sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.17.4: + resolution: {integrity: sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.17.4: + resolution: {integrity: sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.17.4: + resolution: {integrity: sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.17.4: + resolution: {integrity: sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.17.4: + resolution: {integrity: sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.17.4: + resolution: {integrity: sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.17.4: + resolution: {integrity: sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.17.4: + resolution: {integrity: sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.17.4: + resolution: {integrity: sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.17.4: + resolution: {integrity: sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.17.4: + resolution: {integrity: sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.17.4: + resolution: {integrity: sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.17.4: + resolution: {integrity: sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.17.4: + resolution: {integrity: sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.17.4: + resolution: {integrity: sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.17.4: + resolution: {integrity: sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: false + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + dev: false + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: false + + /@judo/data-api-common/0.4.2: + resolution: {integrity: sha512-60yEEKj9fOkfAMVRUIg3Ma3593hHS45mb4qHeVaCyI5RveU+HsY+1sZ19SwQu3ng2mvVSRcz+UIwjNTnWIpL9g==} + dev: false + + /@mui/base/5.0.0-alpha.113_ib3m5ricvtkl2cll7qpr2f6lvq: + resolution: {integrity: sha512-XSjvyQWATM8uk+EJZvYna8D21kOXC42lwb3q4K70btuGieKlCIQLaHTTDV2OfD4+JfT4o3NJy3I4Td2co31RZA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/is-prop-valid': 1.2.0 + '@mui/types': 7.2.3_@types+react@18.0.26 + '@mui/utils': 5.11.2_react@18.2.0 + '@popperjs/core': 2.11.6 + '@types/react': 18.0.26 + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-is: 18.2.0 + dev: false + + /@mui/core-downloads-tracker/5.11.6: + resolution: {integrity: sha512-lbD3qdafBOf2dlqKhOcVRxaPAujX+9UlPC6v8iMugMeAXe0TCgU3QbGXY3zrJsu6ex64WYDpH4y1+WOOBmWMuA==} + dev: false + + /@mui/material/5.11.4_lskpmcsdi7ipu6qpuapyu56ihm: + resolution: {integrity: sha512-ZL/czK9ynrQJ6uyDwQgK+j7m1iKA1XKPON+rEPupwAu/bJ1XJxD+H/H2bkMM8UpOkzaucx/WuMbJJGQ60l7gBg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/react': 11.10.5_jp5qgyg6plq757v5hojp7ls2oe + '@emotion/styled': 11.10.5_jp5djshq6aqfasno3mth3hguci + '@mui/base': 5.0.0-alpha.113_ib3m5ricvtkl2cll7qpr2f6lvq + '@mui/core-downloads-tracker': 5.11.6 + '@mui/system': 5.11.5_ogriz7mfahdh34qnfautfro5yu + '@mui/types': 7.2.3_@types+react@18.0.26 + '@mui/utils': 5.11.2_react@18.2.0 + '@types/react': 18.0.26 + '@types/react-transition-group': 4.4.5 + clsx: 1.2.1 + csstype: 3.1.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-is: 18.2.0 + react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y + dev: false + + /@mui/private-theming/5.11.2_kzbn2opkn2327fwg5yzwzya5o4: + resolution: {integrity: sha512-qZwMaqRFPwlYmqwVKblKBGKtIjJRAj3nsvX93pOmatsXyorW7N/0IPE/swPgz1VwChXhHO75DwBEx8tB+aRMNg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@mui/utils': 5.11.2_react@18.2.0 + '@types/react': 18.0.26 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/styled-engine/5.11.0_dovxhg2tvkkxkdnqyoum6wzcxm: + resolution: {integrity: sha512-AF06K60Zc58qf0f7X+Y/QjaHaZq16znliLnGc9iVrV/+s8Ln/FCoeNuFvhlCbZZQ5WQcJvcy59zp0nXrklGGPQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/cache': 11.10.5 + '@emotion/react': 11.10.5_jp5qgyg6plq757v5hojp7ls2oe + '@emotion/styled': 11.10.5_jp5djshq6aqfasno3mth3hguci + csstype: 3.1.1 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/system/5.11.4_ogriz7mfahdh34qnfautfro5yu: + resolution: {integrity: sha512-fE2Ts33V5zh7ouciwXgMm/a6sLvjIj9OMeojuHNYY7BStTxparC/Fp9CNUZNJwt76U6ZJC59aYScFSRQKbW08g==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/react': 11.10.5_jp5qgyg6plq757v5hojp7ls2oe + '@emotion/styled': 11.10.5_jp5djshq6aqfasno3mth3hguci + '@mui/private-theming': 5.11.2_kzbn2opkn2327fwg5yzwzya5o4 + '@mui/styled-engine': 5.11.0_dovxhg2tvkkxkdnqyoum6wzcxm + '@mui/types': 7.2.3_@types+react@18.0.26 + '@mui/utils': 5.11.2_react@18.2.0 + '@types/react': 18.0.26 + clsx: 1.2.1 + csstype: 3.1.1 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/system/5.11.5_ogriz7mfahdh34qnfautfro5yu: + resolution: {integrity: sha512-KNVsJ0sgRRp2XBqhh4wPS5aacteqjwxgiYTVwVnll2fgkgunZKo3DsDiGMrFlCg25ZHA3Ax58txWGE9w58zp0w==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/react': 11.10.5_jp5qgyg6plq757v5hojp7ls2oe + '@emotion/styled': 11.10.5_jp5djshq6aqfasno3mth3hguci + '@mui/private-theming': 5.11.2_kzbn2opkn2327fwg5yzwzya5o4 + '@mui/styled-engine': 5.11.0_dovxhg2tvkkxkdnqyoum6wzcxm + '@mui/types': 7.2.3_@types+react@18.0.26 + '@mui/utils': 5.11.2_react@18.2.0 + '@types/react': 18.0.26 + clsx: 1.2.1 + csstype: 3.1.1 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/types/7.2.3_@types+react@18.0.26: + resolution: {integrity: sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==} + peerDependencies: + '@types/react': '*' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + dev: false + + /@mui/utils/5.11.2_react@18.2.0: + resolution: {integrity: sha512-AyizuHHlGdAtH5hOOXBW3kriuIwUIKUIgg0P7LzMvzf6jPhoQbENYqY6zJqfoZ7fAWMNNYT8mgN5EftNGzwE2w==} + engines: {node: '>=12.0.0'} + peerDependencies: + react: ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.20.13 + '@types/prop-types': 15.7.5 + '@types/react-is': 17.0.3 + prop-types: 15.8.1 + react: 18.2.0 + react-is: 18.2.0 + dev: false + + /@mui/x-data-grid/5.17.18_fw5fsjkluzkaqx4hea3mxt62ym: + resolution: {integrity: sha512-0hWExrABXA03HQZoY/EaN6jiFMXdQWs7Y+3xtngiRzGQQl6kmLz1IjdKpNuwuc2g3xphnCpz9WSqTxVhJqdmAw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@mui/material': ^5.4.1 + '@mui/system': ^5.4.1 + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 + dependencies: + '@babel/runtime': 7.20.13 + '@mui/material': 5.11.4_lskpmcsdi7ipu6qpuapyu56ihm + '@mui/system': 5.11.4_ogriz7mfahdh34qnfautfro5yu + '@mui/utils': 5.11.2_react@18.2.0 + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + reselect: 4.1.7 + dev: false + + /@mui/x-date-pickers/5.0.13_bf4y4hp7qiw5cnlcxcy5tjibxm: + resolution: {integrity: sha512-nUc35Zvah/l4bEWcPNRtSvWBL+7uAlokd6G6PzQfLe2TQo4GNlK1JVRfoVpBY5FsdM09uWLrpvfWLbka87k7GA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.9.0 + '@emotion/styled': ^11.8.1 + '@mui/material': ^5.4.1 + '@mui/system': ^5.4.1 + date-fns: ^2.25.0 + dayjs: ^1.10.7 + luxon: ^1.28.0 || ^2.0.0 || ^3.0.0 + moment: ^2.29.1 + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@date-io/core': 2.16.0 + '@date-io/date-fns': 2.16.0 + '@date-io/dayjs': 2.16.0_dayjs@1.11.7 + '@date-io/luxon': 2.16.1 + '@date-io/moment': 2.16.1 + '@emotion/react': 11.10.5_jp5qgyg6plq757v5hojp7ls2oe + '@emotion/styled': 11.10.5_jp5djshq6aqfasno3mth3hguci + '@mui/material': 5.11.4_lskpmcsdi7ipu6qpuapyu56ihm + '@mui/system': 5.11.4_ogriz7mfahdh34qnfautfro5yu + '@mui/utils': 5.11.2_react@18.2.0 + '@types/react-transition-group': 4.4.5 + clsx: 1.2.1 + dayjs: 1.11.7 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y + rifm: 0.12.1_react@18.2.0 + dev: false + + /@popperjs/core/2.11.6: + resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} + dev: false + + /@rollup/plugin-commonjs/24.0.0_rollup@3.7.5: + resolution: {integrity: sha512-0w0wyykzdyRRPHOb0cQt14mIBLujfAv6GgP6g8nvg/iBxEm112t3YPPq+Buqe2+imvElTka+bjNlJ/gB56TD8g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.7.5 + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.27.0 + rollup: 3.7.5 + dev: true + + /@rollup/plugin-node-resolve/15.0.1_rollup@3.7.5: + resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.7.5 + '@types/resolve': 1.20.2 + deepmerge: 4.2.2 + is-builtin-module: 3.2.0 + is-module: 1.0.0 + resolve: 1.22.1 + rollup: 3.7.5 + dev: true + + /@rollup/plugin-replace/5.0.2_rollup@3.7.5: + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.7.5 + magic-string: 0.27.0 + rollup: 3.7.5 + dev: true + + /@rollup/pluginutils/5.0.2_rollup@3.7.5: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.7.5 + dev: true + + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: false + + /@types/prop-types/15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + /@types/react-dom/18.0.9: + resolution: {integrity: sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==} + dependencies: + '@types/react': 18.0.26 + dev: true + + /@types/react-is/17.0.3: + resolution: {integrity: sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==} + dependencies: + '@types/react': 18.0.26 + dev: false + + /@types/react-transition-group/4.4.5: + resolution: {integrity: sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==} + dependencies: + '@types/react': 18.0.26 + dev: false + + /@types/react/18.0.26: + resolution: {integrity: sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + + /@types/resolve/1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + dev: true + + /@types/scheduler/0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + + /@types/systemjs/6.13.0: + resolution: {integrity: sha512-T7P3qWZmtAVNUrEkWXlT8Hm8ND0w7rVmMZu+HYmS38mrNyAyxIdoZQ23ySmClhWR1oq0E2RhOSmuI3Cs2By6nQ==} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: false + + /babel-plugin-macros/3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.20.13 + cosmiconfig: 7.1.0 + resolve: 1.22.1 + dev: false + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001447 + electron-to-chromium: 1.4.284 + node-releases: 2.0.8 + update-browserslist-db: 1.0.10_browserslist@4.21.4 + dev: false + + /builtin-modules/3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /caniuse-lite/1.0.30001447: + resolution: {integrity: sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw==} + dev: false + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: false + + /clsx/1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + dev: false + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: false + + /color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false + + /commondir/1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: false + + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + + /cross-env/7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-js/4.1.1: + resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} + dev: false + + /csstype/3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + + /dayjs/1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + dev: false + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} + dev: true + + /dom-helpers/5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.20.13 + csstype: 3.1.1 + dev: false + + /electron-to-chromium/1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + dev: false + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /es-module-lexer/1.1.0: + resolution: {integrity: sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA==} + dev: true + + /esbuild/0.17.4: + resolution: {integrity: sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.4 + '@esbuild/android-arm64': 0.17.4 + '@esbuild/android-x64': 0.17.4 + '@esbuild/darwin-arm64': 0.17.4 + '@esbuild/darwin-x64': 0.17.4 + '@esbuild/freebsd-arm64': 0.17.4 + '@esbuild/freebsd-x64': 0.17.4 + '@esbuild/linux-arm': 0.17.4 + '@esbuild/linux-arm64': 0.17.4 + '@esbuild/linux-ia32': 0.17.4 + '@esbuild/linux-loong64': 0.17.4 + '@esbuild/linux-mips64el': 0.17.4 + '@esbuild/linux-ppc64': 0.17.4 + '@esbuild/linux-riscv64': 0.17.4 + '@esbuild/linux-s390x': 0.17.4 + '@esbuild/linux-x64': 0.17.4 + '@esbuild/netbsd-x64': 0.17.4 + '@esbuild/openbsd-x64': 0.17.4 + '@esbuild/sunos-x64': 0.17.4 + '@esbuild/win32-arm64': 0.17.4 + '@esbuild/win32-ia32': 0.17.4 + '@esbuild/win32-x64': 0.17.4 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: false + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: false + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /find-root/1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: false + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: false + + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: false + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: false + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /hoist-non-react-statics/3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-builtin-module/3.2.0: + resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + + /is-module/1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + + /is-reference/1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + dependencies: + '@types/estree': 1.0.0 + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /joycon/3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: false + + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jwt-decode/3.1.2: + resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} + dev: false + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: false + + /magic-string/0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /node-releases/2.0.8: + resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} + dev: false + + /object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /oidc-client-ts/2.2.1: + resolution: {integrity: sha512-g/W+DsUVeHZ8A7xUSTeK4bI6BNs9ROtMiiOOo+0M6IiTHxueJ757GD8e/8nPBL+k/o6bkfM5mWg4cZcSI8Iosw==} + engines: {node: '>=12.13.0'} + dependencies: + crypto-js: 4.1.1 + jwt-decode: 3.1.2 + dev: false + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: false + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /prop-types/15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /react-dom/18.2.0_react@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react-is/18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: false + + /react-oidc-context/2.2.1_ibntxc4lxaigcm3od77f5lvjly: + resolution: {integrity: sha512-Y5vZJeyqqMDhwIDgR56mdvW2jkJ/xkAr2jDX/q3NjA4o+7zqdlAPMVb6d33RAc5CSD7CyNB6JD5v5vCY5IO0BA==} + engines: {node: '>=12.13.0'} + peerDependencies: + oidc-client-ts: ^2.0.0 + react: '>=16.8.0' + dependencies: + oidc-client-ts: 2.2.1 + react: 18.2.0 + dev: false + + /react-transition-group/4.4.5_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.20.13 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /react/18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false + + /reselect/4.1.7: + resolution: {integrity: sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==} + dev: false + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /rifm/0.12.1_react@18.2.0: + resolution: {integrity: sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==} + peerDependencies: + react: '>=16.8' + dependencies: + react: 18.2.0 + dev: false + + /rimraf/2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup-plugin-clear/2.0.7: + resolution: {integrity: sha512-Hg8NC3JcJBO1ofgyQC0IACpyKn/yhHPGZ3C7R3ubNGWUXy9JXHQrewk4J4hVcZznw6SOKayLsaNae596Rwt8Vg==} + dependencies: + rimraf: 2.7.1 + dev: true + + /rollup-plugin-esbuild/5.0.0_xofeg5zkug6xjz4owa5cgqfhky: + resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + peerDependencies: + esbuild: '>=0.10.1' + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.7.5 + debug: 4.3.4 + es-module-lexer: 1.1.0 + esbuild: 0.17.4 + joycon: 3.1.1 + jsonc-parser: 3.2.0 + rollup: 3.7.5 + transitivePeerDependencies: + - supports-color + dev: true + + /rollup/3.7.5: + resolution: {integrity: sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /scheduler/0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: false + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /source-map/0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false + + /stylis/4.1.3: + resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} + dev: false + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: false + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /systemjs/6.13.0: + resolution: {integrity: sha512-P3cgh2bpaPvAO2NE3uRp/n6hmk4xPX4DQf+UzTlCAycssKdqhp6hjw+ENWe+aUS7TogKRFtptMosTSFeC6R55g==} + dev: false + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: false + + /typescript/4.9.4: + resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.4 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: false + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: false + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: false diff --git a/judo-ui-react-external-packages/src/main/resources/rollup.config.mjs b/judo-ui-react-external-packages/src/main/resources/rollup.config.mjs new file mode 100644 index 00000000..4dd76f1b --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/rollup.config.mjs @@ -0,0 +1,66 @@ +import { readFileSync } from 'node:fs'; +import { normalize } from 'node:path'; +import commonjs from '@rollup/plugin-commonjs'; +import { nodeResolve } from '@rollup/plugin-node-resolve'; +import clear from 'rollup-plugin-clear'; +import replace from '@rollup/plugin-replace'; +import esbuild from 'rollup-plugin-esbuild'; + +const pkg = JSON.parse(readFileSync(normalize('./package.json'), { encoding:'utf8', flag:'r' }).toString()); +const deps = pkg.dependencies; +const depKeys = Object.keys(deps); + +const baseConfig = { + plugins: [ + replace({ + preventAssignment: false, + values: { + 'process.env.NODE_ENV': JSON.stringify('production'), + }, + }), + commonjs(), + nodeResolve(), + esbuild({ + minify: true, + }), + ], +}; + +const mappings = [ + ['judo-data-api-common', '@judo/data-api-common', deps['@judo/data-api-common'], []], + ['react-jsx-runtime', 'react/jsx-runtime', deps.react, ['react']], + ['react-is', 'react-is', deps['react-is'], ['react']], + ['react-dom-client', 'react-dom/client', deps['react-dom'], ['react', 'react-dom']], + ['react-oidc-context', 'react-oidc-context', deps['react-oidc-context'], ['react', 'react-dom', 'react/jsx-runtime', 'oidc-client-ts']], + ['oidc-client-ts', 'oidc-client-ts', deps['oidc-client-ts'], [/*'crypto-js', 'jwt-decode'*/]], + ['mui-system', '@mui/system', deps['@mui/material'], ['@emotion/react', '@emotion/styled', 'react', 'react-dom', 'react/jsx-runtime']], + ['mui-material-locale', '@mui/material/locale', deps['@mui/material'], []], + ['mui-material', '@mui/material', deps['@mui/material'], ['@mui/system', '@mui/material/locale', '@emotion/react', '@emotion/styled', 'react', 'react-dom', 'react-is', 'react/jsx-runtime']], + ['mui-x-data-grid', '@mui/x-data-grid', deps['@mui/x-data-grid'], ['@mui/material', '@mui/system', '@mui/material/locale', 'react', 'react-dom', 'react-is', 'react/jsx-runtime']], + ['mui-x-date-pickers', '@mui/x-date-pickers', deps['@mui/x-date-pickers'], ['@emotion/react', '@emotion/styled', '@mui/material', '@mui/system', '@mui/material/locale', 'date-fns', 'dayjs', 'luxon', 'moment', 'react', 'react-dom', 'react-is']], + ['mui-x-date-pickers-adapter-day-js', '@mui/x-date-pickers', deps['@mui/x-date-pickers'], ['@emotion/react', '@emotion/styled', '@mui/material', '@mui/system', '@mui/material/locale', 'date-fns', 'dayjs', 'luxon', 'moment', 'react', 'react-dom', 'react-is']], +]; + +function generateConfigs(mappings) { + return mappings.map(([entrypoint, depName, depVersion, externals]) => ({ + input: `external/${entrypoint}.tsx`, + ...baseConfig, + output: { + format: 'system', + file: `./dist/${depName}@${depVersion.replace(/[~^]/g, '')}/umd/${entrypoint}.min.js`, + }, + external: [...externals], + })); +} + +export default [ + { + input: 'src/index.ts', + plugins: [ + clear({ + targets: ['dist'], + }), + ], + }, + ...generateConfigs(mappings), +]; diff --git a/judo-ui-react-external-packages/src/main/resources/src/index.ts b/judo-ui-react-external-packages/src/main/resources/src/index.ts new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/src/index.ts @@ -0,0 +1 @@ +export default {}; diff --git a/judo-ui-react-external-packages/src/main/resources/tsconfig.json b/judo-ui-react-external-packages/src/main/resources/tsconfig.json new file mode 100644 index 00000000..eaa56a85 --- /dev/null +++ b/judo-ui-react-external-packages/src/main/resources/tsconfig.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "JUDO UI Packages", + "compilerOptions": { + "outDir": "./dist/", + "target": "esnext", + "module": "esnext", + "moduleResolution": "node", + "sourceMap": true, + "esModuleInterop": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "lib": [ "esnext", "dom" ], + "noImplicitAny": true, + "strictNullChecks": true, + "jsx": "react-jsx" + } +} \ No newline at end of file diff --git a/judo-ui-react-itest/ActionGroupTest/.gitignore b/judo-ui-react-itest/ActionGroupTest/.gitignore new file mode 100644 index 00000000..6c036da5 --- /dev/null +++ b/judo-ui-react-itest/ActionGroupTest/.gitignore @@ -0,0 +1,3 @@ +application +target +node_modules diff --git a/judo-ui-react-itest/ActionGroupTest/action_group_test__god/pom.xml b/judo-ui-react-itest/ActionGroupTest/action_group_test__god/pom.xml new file mode 100644 index 00000000..26de85dc --- /dev/null +++ b/judo-ui-react-itest/ActionGroupTest/action_group_test__god/pom.xml @@ -0,0 +1,205 @@ + + 4.0.0 + + + hu.blackbelt.judo.generator + actiongrouptest-frontend-react + ${revision} + + actiongrouptest-frontend-react-action_group_test__god + JUDO UI React Frontend Generator ITest - ActionGroupTest - God + ActionGroupTest - God react frontend + + bundle + + + actiongrouptest__god + god + God + ActionGroupTest::God + + ${project.parent.basedir}/model/${model-name}-ui.model + + ${project.parent.parent.parent.basedir}/.nodejs + ${basedir}/target/frontend-react + + + + + + org.apache.felix + maven-bundle-plugin + 5.1.8 + true + + + /${model-name}/${actor} + + /=${generation-target}/dist + + + + + + + hu.blackbelt.judo.meta + judo-ui-generator-maven-plugin + ${judo-meta-ui-version} + + + execute-ui-services-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-version} + + ui-typescript-rest + + ${actor-fq-name} + + ${ui-model} + ${generation-target}/src/generated + + + + execute-ui-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-react:${revision} + + ui-react + + ${actor-fq-name} + + ${ui-model} + ${generation-target} + + ${model-name} + ${appScope} + ${appVersion} + + 10 + + + + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-api + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-service + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-axios + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-react + ${revision} + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + external-packages + generate-sources + + unpack + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + jar + true + + + externals/** + ${generation-target} + + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + pnpm install + + pnpm + + generate-sources + + install + + + + + format code + + pnpm + + generate-sources + + run format + + + + + build + + pnpm + + generate-sources + + run build:ci + + + + + ${node-install-dir} + ${generation-target} + + + + + diff --git a/judo-ui-react-itest/src/test/resources/ActionGroupTest-ui.model b/judo-ui-react-itest/ActionGroupTest/model/ActionGroupTest-ui.model similarity index 100% rename from judo-ui-react-itest/src/test/resources/ActionGroupTest-ui.model rename to judo-ui-react-itest/ActionGroupTest/model/ActionGroupTest-ui.model diff --git a/judo-ui-react-itest/ActionGroupTest/pom.xml b/judo-ui-react-itest/ActionGroupTest/pom.xml new file mode 100644 index 00000000..caed2347 --- /dev/null +++ b/judo-ui-react-itest/ActionGroupTest/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + hu.blackbelt.judo.generator + judo-ui-react-itest + ${revision} + + actiongrouptest-frontend-react + ${revision} + + JUDO UI React Frontend Generator ITest - ActionGroupTest + + pom + + + ActionGroupTest + ${basedir}/generator-overrides + ${project.parent.parent.basedir}/.nodejs + + + + action_group_test__god + + diff --git a/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_anon1/pom.xml b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_anon1/pom.xml new file mode 100644 index 00000000..d052345e --- /dev/null +++ b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_anon1/pom.xml @@ -0,0 +1,205 @@ + + 4.0.0 + + + hu.blackbelt.judo.generator + applicationselectiontest-frontend-react + ${revision} + + applicationselectiontest-frontend-react-application_selection_test__actor_anon1 + JUDO UI React Frontend Generator ITest - ApplicationSelectionTest - ActorAnon1 + ApplicationSelectionTest - ActorAnon1 react frontend + + bundle + + + applicationselectiontest__actoranon1 + actor_anon1 + ActorAnon1 + ApplicationSelectionTest::ActorAnon1 + + ${project.parent.basedir}/model/${model-name}-ui.model + + ${project.parent.parent.parent.basedir}/.nodejs + ${basedir}/target/frontend-react + + + + + + org.apache.felix + maven-bundle-plugin + 5.1.8 + true + + + /${model-name}/${actor} + + /=${generation-target}/dist + + + + + + + hu.blackbelt.judo.meta + judo-ui-generator-maven-plugin + ${judo-meta-ui-version} + + + execute-ui-services-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-version} + + ui-typescript-rest + + ${actor-fq-name} + + ${ui-model} + ${generation-target}/src/generated + + + + execute-ui-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-react:${revision} + + ui-react + + ${actor-fq-name} + + ${ui-model} + ${generation-target} + + ${model-name} + ${appScope} + ${appVersion} + + 10 + + + + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-api + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-service + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-axios + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-react + ${revision} + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + external-packages + generate-sources + + unpack + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + jar + true + + + externals/** + ${generation-target} + + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + pnpm install + + pnpm + + generate-sources + + install + + + + + format code + + pnpm + + generate-sources + + run format + + + + + build + + pnpm + + generate-sources + + run build:ci + + + + + ${node-install-dir} + ${generation-target} + + + + + diff --git a/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_anon2/pom.xml b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_anon2/pom.xml new file mode 100644 index 00000000..71611aad --- /dev/null +++ b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_anon2/pom.xml @@ -0,0 +1,205 @@ + + 4.0.0 + + + hu.blackbelt.judo.generator + applicationselectiontest-frontend-react + ${revision} + + applicationselectiontest-frontend-react-application_selection_test__actor_anon2 + JUDO UI React Frontend Generator ITest - ApplicationSelectionTest - ActorAnon2 + ApplicationSelectionTest - ActorAnon2 react frontend + + bundle + + + applicationselectiontest__actoranon2 + actor_anon2 + ActorAnon2 + ApplicationSelectionTest::ActorAnon2 + + ${project.parent.basedir}/model/${model-name}-ui.model + + ${project.parent.parent.parent.basedir}/.nodejs + ${basedir}/target/frontend-react + + + + + + org.apache.felix + maven-bundle-plugin + 5.1.8 + true + + + /${model-name}/${actor} + + /=${generation-target}/dist + + + + + + + hu.blackbelt.judo.meta + judo-ui-generator-maven-plugin + ${judo-meta-ui-version} + + + execute-ui-services-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-version} + + ui-typescript-rest + + ${actor-fq-name} + + ${ui-model} + ${generation-target}/src/generated + + + + execute-ui-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-react:${revision} + + ui-react + + ${actor-fq-name} + + ${ui-model} + ${generation-target} + + ${model-name} + ${appScope} + ${appVersion} + + 10 + + + + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-api + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-service + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-axios + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-react + ${revision} + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + external-packages + generate-sources + + unpack + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + jar + true + + + externals/** + ${generation-target} + + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + pnpm install + + pnpm + + generate-sources + + install + + + + + format code + + pnpm + + generate-sources + + run format + + + + + build + + pnpm + + generate-sources + + run build:ci + + + + + ${node-install-dir} + ${generation-target} + + + + + diff --git a/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_other_realm/pom.xml b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_other_realm/pom.xml new file mode 100644 index 00000000..c3382590 --- /dev/null +++ b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_other_realm/pom.xml @@ -0,0 +1,205 @@ + + 4.0.0 + + + hu.blackbelt.judo.generator + applicationselectiontest-frontend-react + ${revision} + + applicationselectiontest-frontend-react-application_selection_test__actor_with_other_realm + JUDO UI React Frontend Generator ITest - ApplicationSelectionTest - ActorWithOtherRealm + ApplicationSelectionTest - ActorWithOtherRealm react frontend + + bundle + + + applicationselectiontest__actorwithotherrealm + actor_with_other_realm + ActorWithOtherRealm + ApplicationSelectionTest::ActorWithOtherRealm + + ${project.parent.basedir}/model/${model-name}-ui.model + + ${project.parent.parent.parent.basedir}/.nodejs + ${basedir}/target/frontend-react + + + + + + org.apache.felix + maven-bundle-plugin + 5.1.8 + true + + + /${model-name}/${actor} + + /=${generation-target}/dist + + + + + + + hu.blackbelt.judo.meta + judo-ui-generator-maven-plugin + ${judo-meta-ui-version} + + + execute-ui-services-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-version} + + ui-typescript-rest + + ${actor-fq-name} + + ${ui-model} + ${generation-target}/src/generated + + + + execute-ui-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-react:${revision} + + ui-react + + ${actor-fq-name} + + ${ui-model} + ${generation-target} + + ${model-name} + ${appScope} + ${appVersion} + + 10 + + + + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-api + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-service + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-axios + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-react + ${revision} + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + external-packages + generate-sources + + unpack + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + jar + true + + + externals/** + ${generation-target} + + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + pnpm install + + pnpm + + generate-sources + + install + + + + + format code + + pnpm + + generate-sources + + run format + + + + + build + + pnpm + + generate-sources + + run build:ci + + + + + ${node-install-dir} + ${generation-target} + + + + + diff --git a/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_realm/pom.xml b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_realm/pom.xml new file mode 100644 index 00000000..02e5c2ad --- /dev/null +++ b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_realm/pom.xml @@ -0,0 +1,205 @@ + + 4.0.0 + + + hu.blackbelt.judo.generator + applicationselectiontest-frontend-react + ${revision} + + applicationselectiontest-frontend-react-application_selection_test__actor_with_realm + JUDO UI React Frontend Generator ITest - ApplicationSelectionTest - ActorWithRealm + ApplicationSelectionTest - ActorWithRealm react frontend + + bundle + + + applicationselectiontest__actorwithrealm + actor_with_realm + ActorWithRealm + ApplicationSelectionTest::ActorWithRealm + + ${project.parent.basedir}/model/${model-name}-ui.model + + ${project.parent.parent.parent.basedir}/.nodejs + ${basedir}/target/frontend-react + + + + + + org.apache.felix + maven-bundle-plugin + 5.1.8 + true + + + /${model-name}/${actor} + + /=${generation-target}/dist + + + + + + + hu.blackbelt.judo.meta + judo-ui-generator-maven-plugin + ${judo-meta-ui-version} + + + execute-ui-services-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-version} + + ui-typescript-rest + + ${actor-fq-name} + + ${ui-model} + ${generation-target}/src/generated + + + + execute-ui-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-react:${revision} + + ui-react + + ${actor-fq-name} + + ${ui-model} + ${generation-target} + + ${model-name} + ${appScope} + ${appVersion} + + 10 + + + + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-api + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-service + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-axios + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-react + ${revision} + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + external-packages + generate-sources + + unpack + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + jar + true + + + externals/** + ${generation-target} + + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + pnpm install + + pnpm + + generate-sources + + install + + + + + format code + + pnpm + + generate-sources + + run format + + + + + build + + pnpm + + generate-sources + + run build:ci + + + + + ${node-install-dir} + ${generation-target} + + + + + diff --git a/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_same_realm/pom.xml b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_same_realm/pom.xml new file mode 100644 index 00000000..e398936e --- /dev/null +++ b/judo-ui-react-itest/ApplicationSelectionTest/application_selection_test__actor_with_same_realm/pom.xml @@ -0,0 +1,205 @@ + + 4.0.0 + + + hu.blackbelt.judo.generator + applicationselectiontest-frontend-react + ${revision} + + applicationselectiontest-frontend-react-application_selection_test__actor_with_same_realm + JUDO UI React Frontend Generator ITest - ApplicationSelectionTest - ActorWithSameRealm + ApplicationSelectionTest - ActorWithSameRealm react frontend + + bundle + + + applicationselectiontest__actorwithsamerealm + actor_with_same_realm + ActorWithSameRealm + ApplicationSelectionTest::ActorWithSameRealm + + ${project.parent.basedir}/model/${model-name}-ui.model + + ${project.parent.parent.parent.basedir}/.nodejs + ${basedir}/target/frontend-react + + + + + + org.apache.felix + maven-bundle-plugin + 5.1.8 + true + + + /${model-name}/${actor} + + /=${generation-target}/dist + + + + + + + hu.blackbelt.judo.meta + judo-ui-generator-maven-plugin + ${judo-meta-ui-version} + + + execute-ui-services-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-version} + + ui-typescript-rest + + ${actor-fq-name} + + ${ui-model} + ${generation-target}/src/generated + + + + execute-ui-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-react:${revision} + + ui-react + + ${actor-fq-name} + + ${ui-model} + ${generation-target} + + ${model-name} + ${appScope} + ${appVersion} + + 10 + + + + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-api + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-service + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-axios + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-react + ${revision} + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + external-packages + generate-sources + + unpack + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + jar + true + + + externals/** + ${generation-target} + + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + pnpm install + + pnpm + + generate-sources + + install + + + + + format code + + pnpm + + generate-sources + + run format + + + + + build + + pnpm + + generate-sources + + run build:ci + + + + + ${node-install-dir} + ${generation-target} + + + + + diff --git a/judo-ui-react-itest/ApplicationSelectionTest/model/ApplicationSelectionTest-ui.model b/judo-ui-react-itest/ApplicationSelectionTest/model/ApplicationSelectionTest-ui.model new file mode 100644 index 00000000..7d4f4553 --- /dev/null +++ b/judo-ui-react-itest/ApplicationSelectionTest/model/ApplicationSelectionTest-ui.model @@ -0,0 +1,1107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + + + + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + TEMPLATE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + + + + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + TEMPLATE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + + + + + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + TEMPLATE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + + + + + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + TEMPLATE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + + + + + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + TEMPLATE + + + + + + + + + + + + + + + + + + + + + + + diff --git a/judo-ui-react-itest/ApplicationSelectionTest/pom.xml b/judo-ui-react-itest/ApplicationSelectionTest/pom.xml new file mode 100644 index 00000000..11bcb07b --- /dev/null +++ b/judo-ui-react-itest/ApplicationSelectionTest/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + hu.blackbelt.judo.generator + judo-ui-react-itest + ${revision} + + applicationselectiontest-frontend-react + ${revision} + + JUDO UI React Frontend Generator ITest - ApplicationSelectionTest + + pom + + + ApplicationSelectionTest + ${basedir}/generator-overrides + ${project.parent.parent.basedir}/.nodejs + + + + application_selection_test__actor_anon1 + application_selection_test__actor_anon2 + application_selection_test__actor_with_other_realm + application_selection_test__actor_with_realm + application_selection_test__actor_with_same_realm + + diff --git a/judo-ui-react-itest/FormsTest/forms_test__test__test_actor/pom.xml b/judo-ui-react-itest/FormsTest/forms_test__test__test_actor/pom.xml new file mode 100644 index 00000000..8a261c6b --- /dev/null +++ b/judo-ui-react-itest/FormsTest/forms_test__test__test_actor/pom.xml @@ -0,0 +1,205 @@ + + 4.0.0 + + + hu.blackbelt.judo.generator + formstest-frontend-react + ${revision} + + formstest-frontend-react-formstest__test__testactor + JUDO UI React Frontend Generator ITest - FormsTest - TestActor + FormsTest - TestActor react frontend + + bundle + + + formstest__test__testactor + testactor + TestActor + FormsTest::test::TestActor + + ${project.parent.basedir}/model/${model-name}-ui.model + + ${project.parent.parent.parent.basedir}/.nodejs + ${basedir}/target/frontend-react + + + + + + org.apache.felix + maven-bundle-plugin + 5.1.8 + true + + + /${model-name}/${actor} + + /=${generation-target}/dist + + + + + + + hu.blackbelt.judo.meta + judo-ui-generator-maven-plugin + ${judo-meta-ui-version} + + + execute-ui-services-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-version} + mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-version} + + ui-typescript-rest + + ${actor-fq-name} + + ${ui-model} + ${generation-target}/src/generated + + + + execute-ui-generation + generate-sources + + generate + + + + mvn:hu.blackbelt.judo.generator:judo-ui-react:${revision} + + ui-react + + ${actor-fq-name} + + ${ui-model} + ${generation-target} + + ${model-name} + ${appScope} + ${appVersion} + + 10 + + + + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-api + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-service + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-axios + ${judo-ui-typescript-rest-version} + + + hu.blackbelt.judo.generator + judo-ui-react + ${revision} + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + external-packages + generate-sources + + unpack + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + jar + true + + + externals/** + ${generation-target} + + + + + + hu.blackbelt.judo.generator + judo-ui-react-external-packages + ${revision} + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + pnpm install + + pnpm + + generate-sources + + install + + + + + format code + + pnpm + + generate-sources + + run format + + + + + build + + pnpm + + generate-sources + + run build:ci + + + + + ${node-install-dir} + ${generation-target} + + + + + diff --git a/judo-ui-react-itest/FormsTest/model/FormsTest-ui.model b/judo-ui-react-itest/FormsTest/model/FormsTest-ui.model new file mode 100644 index 00000000..3352a247 --- /dev/null +++ b/judo-ui-react-itest/FormsTest/model/FormsTest-ui.model @@ -0,0 +1,1758 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + test + + + + + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + LIST + CREATE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + LIST + CREATE + SET + UNSET + RANGE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + LIST + CREATE + SET + ADD + REMOVE + RANGE + VALIDATE_CREATE + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + + + + + + + + + + + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + TEMPLATE + test + + + + + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + TEMPLATE + test + + + + + REFRESH + UPDATE + VALIDATE_UPDATE + DELETE + TEMPLATE + test + + + + + TEMPLATE + test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/judo-ui-react-itest/FormsTest/pom.xml b/judo-ui-react-itest/FormsTest/pom.xml new file mode 100644 index 00000000..145444c7 --- /dev/null +++ b/judo-ui-react-itest/FormsTest/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + hu.blackbelt.judo.generator + judo-ui-react-itest + ${revision} + + formstest-frontend-react + ${revision} + + JUDO UI React Frontend Generator ITest - FormsTest + + pom + + + FormsTest + ${basedir}/generator-overrides + ${project.parent.parent.basedir}/.nodejs + + + + forms_test__test__test_actor + + diff --git a/judo-ui-react-itest/pom.xml b/judo-ui-react-itest/pom.xml index 4f85eb46..38e70fa6 100644 --- a/judo-ui-react-itest/pom.xml +++ b/judo-ui-react-itest/pom.xml @@ -10,125 +10,58 @@ judo-ui-react-itest - jar + pom - JUDO UI React Frontend Generator API ITest + JUDO UI React Frontend Generator ITest 11 11 - ${project.version} - - - - - - hu.blackbelt.judo.meta - judo-ui-generator-maven-plugin - ${judo-meta-ui-version} - + ${project.parent.basedir}/.nodejs - - execute-ui-test-model-from-file - generate-test-resources - - generate - + @blackbelt + 1.0.0 + 10 + + + ActionGroupTest + ApplicationSelectionTest + FormsTest + + + + + prepare-nodejs + + + !skipPrepareNodeJS + + + + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin-version} + + + install node and pnpm + + install-node-and-pnpm + + generate-resources + + - - mvn:hu.blackbelt.judo.generator:judo-ui-react:${revision} - - ui-react - ${basedir}/src/test/resources/ActionGroupTest-ui.model - ${basedir}/target/test-classes/ui/file - - ${project.groupId} - ${project.artifactId} - ${project.version} - -custom - - + v${node-version} + ${pnpm-version} + ${node-install-dir} - - - - - - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - - hu.blackbelt.judo.generator - - - judo-ui-generator-maven-plugin - - - [1.0.0-SNAPSHOT,) - - - generate - - - - - - - - - - - - - - - - - - com.jcabi - jcabi-log - 0.19.0 - - - - - com.github.jknack - handlebars - 4.1.2 - - - - org.springframework - spring-expression - 5.0.0.RELEASE - - - - hu.blackbelt.judo.meta - hu.blackbelt.judo.meta.ui.model - ${judo-meta-ui-version} - - - - hu.blackbelt.judo.generator - judo-generator-commons - ${judo-generator-commons-version} - - - - hu.blackbelt.judo.generator - judo-ui-react - - - - + + + + + diff --git a/judo-ui-react/pom.xml b/judo-ui-react/pom.xml index 3beab3fd..6e134266 100644 --- a/judo-ui-react/pom.xml +++ b/judo-ui-react/pom.xml @@ -11,7 +11,66 @@ judo-ui-react bundle - JUDO UI React Frontend Generator API + JUDO UI React Frontend Generator JUDO UI React Frontend Generator API, helpers and templates + + + org.projectlombok + lombok + ${lombok-version} + provided + + + + org.springframework + spring-expression + ${spring-expression-version} + + + + org.eclipse.emf + ecore-xmi + ${ecore-xmi-version} + + + + hu.blackbelt.judo.meta + hu.blackbelt.judo.meta.ui.model + ${judo-meta-ui-version} + + + + hu.blackbelt.judo.generator + judo-generator-commons + ${judo-generator-commons-version} + + + + hu.blackbelt.judo.generator + judo-ui-typescript-rest-commons + ${judo-ui-typescript-rest-version} + + + + + + + org.apache.felix + maven-bundle-plugin + true + 5.1.2 + + NONE + + + target/classes, + {maven-resources} + + hu.blackbelt.judo.ui.generator.react + + + + + diff --git a/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiGeneralHelper.java b/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiGeneralHelper.java index b639346f..9cfead5a 100644 --- a/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiGeneralHelper.java +++ b/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiGeneralHelper.java @@ -94,20 +94,6 @@ public static String safeSort(Sort input) { return input.equals(Sort.NONE) ? Sort.ASC.toString().toLowerCase() : input.toString().toLowerCase(); } - public static String getXMIID(EObject element) { - return ((XMIResource) element.eResource()).getID(element); - } - - public static String restParamName(DataType dataType) { - String[] tokens = dataType.getName().split("::"); - String last = tokens[tokens.length - 1]; - return stream(last.split("\\.")).map(StringUtils::capitalize).collect(Collectors.joining("")); - } - - public static String firstToUpper(String input) { - return StringUtils.capitalize(input); - } - public static boolean boolValue(Boolean original) { return original != null && original; } diff --git a/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiI18NHelper.java b/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiI18NHelper.java index 693973a3..bb6e6d60 100644 --- a/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiI18NHelper.java +++ b/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiI18NHelper.java @@ -16,8 +16,8 @@ import static hu.blackbelt.judo.ui.generator.react.UiActionsHelper.*; import static hu.blackbelt.judo.ui.generator.react.UiGeneralHelper.modelName; -import static hu.blackbelt.judo.ui.generator.react.UiGeneralHelper.restParamName; import static hu.blackbelt.judo.ui.generator.react.UiPageHelper.*; +import static hu.blackbelt.judo.ui.generator.typescript.rest.commons.UiCommonsHelper.restParamName; import static java.util.Arrays.stream; @Log diff --git a/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiPageHelper.java b/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiPageHelper.java index e0e93a4b..3d0689e5 100644 --- a/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiPageHelper.java +++ b/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiPageHelper.java @@ -4,6 +4,7 @@ import hu.blackbelt.judo.generator.commons.annotations.TemplateHelper; import hu.blackbelt.judo.meta.ui.*; import hu.blackbelt.judo.meta.ui.data.*; +import hu.blackbelt.judo.ui.generator.typescript.rest.commons.UiCommonsHelper; import lombok.extern.java.Log; import java.util.*; @@ -11,6 +12,8 @@ import java.util.stream.Collectors; import static hu.blackbelt.judo.ui.generator.react.UiGeneralHelper.hasDataElementOwner; +import static hu.blackbelt.judo.ui.generator.typescript.rest.commons.UiCommonsHelper.classDataName; +import static hu.blackbelt.judo.ui.generator.typescript.rest.commons.UiCommonsHelper.restParamName; import static java.util.Arrays.stream; @@ -169,7 +172,7 @@ public static Collection getUniquePageActions(PageDefinition page) { Collection actions = new ArrayList<>(page.getActions()); return actions.stream() .filter(a -> !a.getIsBackAction()) - .collect(Collectors.toMap(UiGeneralHelper::getXMIID, p -> p, (p, q) -> p)).values(); + .collect(Collectors.toMap(UiCommonsHelper::getXMIID, p -> p, (p, q) -> p)).values(); } public static String getNavigationForPage(PageDefinition page, String signedId) { @@ -185,13 +188,6 @@ public static String relativePathFromPage(PageDefinition page, String suffix) { return "../".repeat(tokens + 1) + suffix; } - public static String classDataName(ClassType classType, String suffix) { - String className = classType.getName(); - String base = nameWithoutModel(className); - - return base += suffix; - } - public static Boolean hasVisualReferences(PageDefinition pageDefinition) { return hasPageLinks(pageDefinition) || hasPageTables(pageDefinition); } @@ -322,7 +318,7 @@ public static Collection getApiImportsForViewPage(PageDefinition pageDef } getEnumAttributesForPage(pageDefinition).forEach(a -> { - res.add(UiGeneralHelper.restParamName(a.getDataType())); + res.add(restParamName(a.getDataType())); }); addReferenceTypesToCollection(pageDefinition, res); @@ -340,7 +336,7 @@ public static Collection getApiImportsForCreatePage(PageDefinition pageD addReferenceTypesToCollection(pageDefinition, res); getEnumAttributesForPage(pageDefinition).forEach(a -> { - res.add(UiGeneralHelper.restParamName(a.getDataType())); + res.add(restParamName(a.getDataType())); }); return res; diff --git a/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiServiceHelper.java b/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiServiceHelper.java index 5c92e6ee..fe1cd33b 100644 --- a/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiServiceHelper.java +++ b/judo-ui-react/src/main/java/hu/blackbelt/judo/ui/generator/react/UiServiceHelper.java @@ -12,7 +12,7 @@ @Log @TemplateHelper public class UiServiceHelper extends Helper { - public static String serviceRelationName(DataElement dataElement) { + public static String dataElementRelationName(DataElement dataElement) { if (dataElement instanceof RelationType) { RelationType relation = (RelationType) dataElement; @@ -30,7 +30,7 @@ public static String serviceRelationName(DataElement dataElement) { return classServiceName(operationParameterType.getTarget()); } - throw new RuntimeException("Unable to process DataElement for serviceRelationName: " + dataElement.getName()); + throw new RuntimeException("Unable to process DataElement for dataElementRelationName: " + dataElement.getName()); } public static String classServiceName(ClassType classType) { diff --git a/judo-ui-react/src/main/resources/actor/src/pages/access/create.hbs b/judo-ui-react/src/main/resources/actor/src/pages/access/create.hbs index 5dd539d8..387ce58a 100644 --- a/judo-ui-react/src/main/resources/actor/src/pages/access/create.hbs +++ b/judo-ui-react/src/main/resources/actor/src/pages/access/create.hbs @@ -34,7 +34,7 @@ import { {{/ each }} } from '{{ relativePathFromPage page 'generated/data-api' }}'; import { - {{ serviceRelationName page.dataElement }}Impl, + {{ dataElementRelationName page.dataElement }}Impl, {{ classServiceName page.dataElement.target }}Impl, } from '{{ relativePathFromPage page 'generated/data-axios'}}'; import { mainContainerPadding } from '{{ relativePathFromPage page 'theme' }}'; @@ -102,7 +102,7 @@ export default function {{ pageName page }}() { setIsLoading(true); try { - const res = await {{ serviceRelationName page.dataElement }}Impl.create{{ ucFirst page.dataElement.name }}(data); + const res = await {{ dataElementRelationName page.dataElement }}Impl.create{{ ucFirst page.dataElement.name }}(data); if (res) { back(); diff --git a/judo-ui-react/src/main/resources/actor/src/pages/access/table.hbs b/judo-ui-react/src/main/resources/actor/src/pages/access/table.hbs index 2c0ba140..98455c45 100644 --- a/judo-ui-react/src/main/resources/actor/src/pages/access/table.hbs +++ b/judo-ui-react/src/main/resources/actor/src/pages/access/table.hbs @@ -35,7 +35,7 @@ import { {{/ each }} } from '{{ relativePathFromPage page 'generated/data-api' }}'; import { - {{ serviceRelationName page.dataElement }}Impl, + {{ dataElementRelationName page.dataElement }}Impl, } from '{{ relativePathFromPage page 'generated/data-axios'}}'; import { mainContainerPadding } from '{{ relativePathFromPage page 'theme' }}'; import { @@ -134,7 +134,7 @@ export default function {{ pageName page }}() { setIsLoading(true); try { - const res = await {{ serviceRelationName page.dataElement }}Impl.list{{ ucFirst page.dataElement.name }}(processQueryCustomizer(queryCustomizer)); + const res = await {{ dataElementRelationName page.dataElement }}Impl.list{{ ucFirst page.dataElement.name }}(processQueryCustomizer(queryCustomizer)); if (res.length > {{ calculateTablePageLimit tablePageLimit }}) { setIsNextButtonEnabled(true); diff --git a/judo-ui-react/src/main/resources/actor/src/pages/access/view.hbs b/judo-ui-react/src/main/resources/actor/src/pages/access/view.hbs index fd481210..8d29fd1f 100644 --- a/judo-ui-react/src/main/resources/actor/src/pages/access/view.hbs +++ b/judo-ui-react/src/main/resources/actor/src/pages/access/view.hbs @@ -36,7 +36,7 @@ import { {{/ each }} } from '{{ relativePathFromPage page 'generated/data-api' }}'; import { - {{ serviceRelationName page.dataElement }}Impl, + {{ dataElementRelationName page.dataElement }}Impl, {{ classServiceName page.dataElement.target }}Impl, } from '{{ relativePathFromPage page 'generated/data-axios'}}'; import { JudoIdentifiable } from '@judo/data-api-common'; @@ -136,7 +136,7 @@ export default function {{ pageName page }}() { setIsLoading(true); try { - const res = await {{ serviceRelationName page.dataElement }}Impl.get{{ ucFirst page.dataElement.name }}('{}'); + const res = await {{ dataElementRelationName page.dataElement }}Impl.get{{ ucFirst page.dataElement.name }}('{}'); setIsLoading(false); diff --git a/judo-ui-react/src/main/resources/actor/src/pages/actions/action/create-action.tsx.hbs b/judo-ui-react/src/main/resources/actor/src/pages/actions/action/create-action.tsx.hbs index cba6deca..3f5b7ab7 100644 --- a/judo-ui-react/src/main/resources/actor/src/pages/actions/action/create-action.tsx.hbs +++ b/judo-ui-react/src/main/resources/actor/src/pages/actions/action/create-action.tsx.hbs @@ -21,7 +21,7 @@ import { {{/ each }} } from '{{ relativePathFromAction page action 'generated/data-api' }}'; import { - {{ serviceRelationName action.target.dataElement }}Impl, + {{ dataElementRelationName action.target.dataElement }}Impl, {{ classServiceName action.target.dataElement.target }}Impl, } from '{{ relativePathFromAction page action 'generated/data-axios'}}'; import { {{ pageActionFormComponentName action page }} } from './{{ pageActionFormComponentName action page }}'; @@ -55,7 +55,7 @@ export const {{ actionFunctionHookName action page }}: {{ actionFunctionTypeName {{ else }} (async () => { try { - const res = await {{ serviceRelationName action.target.dataElement }}Impl.create{{ ucFirst action.target.dataElement.name }}({{# if (hasDataElementOwner action.dataElement) }}owner, {{/ if }} {}); + const res = await {{ dataElementRelationName action.target.dataElement }}Impl.create{{ ucFirst action.target.dataElement.name }}({{# if (hasDataElementOwner action.dataElement) }}owner, {{/ if }} {}); if (res) { successCallback(res); diff --git a/judo-ui-react/src/main/resources/actor/src/pages/actions/action/row/row-delete-action.tsx.hbs b/judo-ui-react/src/main/resources/actor/src/pages/actions/action/row/row-delete-action.tsx.hbs index 46ae8cbe..14e22747 100644 --- a/judo-ui-react/src/main/resources/actor/src/pages/actions/action/row/row-delete-action.tsx.hbs +++ b/judo-ui-react/src/main/resources/actor/src/pages/actions/action/row/row-delete-action.tsx.hbs @@ -9,8 +9,8 @@ import { {{/ each }} } from '{{ relativePathFromAction page action 'generated/data-api' }}'; import { - {{ serviceRelationName action.dataElement }}Impl, - {{# neq (serviceRelationName action.dataElement) (classServiceName action.dataElement.target) }} + {{ dataElementRelationName action.dataElement }}Impl, + {{# neq (dataElementRelationName action.dataElement) (classServiceName action.dataElement.target) }} {{ classServiceName action.dataElement.target }}Impl, {{/ neq }} } from '{{ relativePathFromAction page action 'generated/data-axios'}}'; @@ -23,7 +23,7 @@ export const {{ actionFunctionHookName action page }}: {{ actionFunctionTypeName return async function {{ actionFunctionName action page }} ({{# if (hasDataElementOwner action.dataElement) }}owner: JudoIdentifiable<{{ classDataName action.dataElement.owner '' }}>, {{/ if }}selected: {{ classDataName action.dataElement.target 'Stored' }}, successCallback: () => void) { try { {{# if (hasDataElementOwner action.dataElement) }} - await {{ serviceRelationName action.dataElement }}Impl.delete{{ ucFirst action.dataElement.name }}(owner, selected); + await {{ dataElementRelationName action.dataElement }}Impl.delete{{ ucFirst action.dataElement.name }}(owner, selected); {{ else }} await {{ classServiceName action.dataElement.target }}Impl.delete(selected); {{/ if }} diff --git a/judo-ui-react/src/main/resources/actor/src/pages/actions/actionForm/createActionForm.tsx.hbs b/judo-ui-react/src/main/resources/actor/src/pages/actions/actionForm/createActionForm.tsx.hbs index ba7439bf..6950fdeb 100644 --- a/judo-ui-react/src/main/resources/actor/src/pages/actions/actionForm/createActionForm.tsx.hbs +++ b/judo-ui-react/src/main/resources/actor/src/pages/actions/actionForm/createActionForm.tsx.hbs @@ -44,7 +44,7 @@ import { {{/ each }} } from '{{ relativePathFromAction ownerPage action 'generated/data-api' }}'; import { - {{ serviceRelationName action.target.dataElement }}Impl, + {{ dataElementRelationName action.target.dataElement }}Impl, {{ classServiceName action.target.dataElement.target }}Impl, } from '{{ relativePathFromAction ownerPage action 'generated/data-axios'}}'; import { errorHandling, fileHandling, processQueryCustomizer, TableRowAction, uiDateToServiceDate, stringToBooleanSelect, booleanToStringSelect } from '{{ relativePathFromAction ownerPage action 'utilities' }}'; @@ -129,7 +129,7 @@ import { baseTableConfig, baseColumnConfig, toastConfig, dividerHeight } from '{ setIsLoading(true); try { - const res = await {{ serviceRelationName page.dataElement }}Impl.create{{ ucFirst page.dataElement.name }}({{# if (hasDataElementOwner action.dataElement) }}owner, {{/ if }}data); + const res = await {{ dataElementRelationName page.dataElement }}Impl.create{{ ucFirst page.dataElement.name }}({{# if (hasDataElementOwner action.dataElement) }}owner, {{/ if }}data); if (res) { successCallback(res); diff --git a/judo-ui-react/src/main/resources/actor/src/pages/relation/table.hbs b/judo-ui-react/src/main/resources/actor/src/pages/relation/table.hbs index 4c4efd0d..dcfb2c13 100644 --- a/judo-ui-react/src/main/resources/actor/src/pages/relation/table.hbs +++ b/judo-ui-react/src/main/resources/actor/src/pages/relation/table.hbs @@ -36,7 +36,7 @@ import { {{/ each }} } from '{{ relativePathFromPage page 'generated/data-api' }}'; import { - {{ serviceRelationName page.dataElement }}Impl, + {{ dataElementRelationName page.dataElement }}Impl, } from '{{ relativePathFromPage page 'generated/data-axios'}}'; import { mainContainerPadding } from '{{ relativePathFromPage page 'theme' }}'; import { @@ -135,7 +135,7 @@ export default function {{ pageName page }}() { setIsLoading(true); try { - const res = await {{ serviceRelationName page.dataElement }}Impl.list{{ ucFirst page.dataElement.name }}( + const res = await {{ dataElementRelationName page.dataElement }}Impl.list{{ ucFirst page.dataElement.name }}( { __signedIdentifier: signedIdentifier } as JudoIdentifiable<{{ classDataName page.dataElement.target '' }}>, processQueryCustomizer(queryCustomizer), ); diff --git a/pom.xml b/pom.xml index 95292bf5..98ff05ea 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ ${revision} pom - JUDO UI React Frontend Generator + JUDO UI React Frontend Generator Parent JUDO UI React Frontend Generator helpers and templates @@ -15,7 +15,15 @@ robert.csakany@blackbelt.hu https://github.com/robertcsakany BlackBelt Technology - http://www.blackbelt.hu + https://www.blackbelt.hu + + + noherczeg + Norbert Herczeg + norbert.herczeg@blackbelt.hu + https://github.com/noherczeg + BlackBelt Technology + https://www.blackbelt.hu @@ -39,13 +47,25 @@ 1.7.36 log4j.properties 3.0.0-M5 + 2.2.3 + 5.0.0.RELEASE + 1.18.22 + 1.12.1 + + 18.14.2 + 7.27.1 1.0.1.20230213_193724_b9e98a1c_develop 1.0.0.20230120_203628_b0fbaa8e_develop - + 1.0.0.20230227_135344_7ab7117b_develop - http://github.com/${project-repositoryId} + + judo-ui-react + judo-ui-react-itest + + + https://github.com/${project-repositoryId} https://github.com/${project-repositoryId}/issues @@ -60,73 +80,6 @@ http://github.com/${project-repositoryId} - - - - hu.blackbelt.judo.meta - hu.blackbelt.judo.meta.ui.model - ${judo-meta-ui-version} - - - - hu.blackbelt.judo.generator - judo-generator-commons - ${judo-generator-commons-version} - - - - com.github.jknack - handlebars - 4.1.2 - - - - org.springframework - spring-expression - 5.0.0.RELEASE - - - - org.projectlombok - lombok - 1.18.22 - provided - - - - org.slf4j - jul-to-slf4j - ${slf4j-version} - provided - - - ch.qos.logback - logback-classic - 1.2.11 - - - - com.google.guava - guava - 27.1-jre - - - - org.eclipse.emf - ecore-xmi - 2.2.3 - - - - - - - hu.blackbelt.judo.generator - judo-ui-react - ${project.version} - - - @@ -135,17 +88,11 @@ maven-compiler-plugin 3.10.1 - 11 - 11 + ${maven.compiler.source} + ${maven.compiler.target} - - org.apache.maven.plugins - maven-resources-plugin - 3.1.0 - - org.apache.maven.plugins maven-install-plugin @@ -158,19 +105,12 @@ 2.8.2 - org.codehaus.mojo build-helper-maven-plugin 3.0.0 - - hu.blackbelt.judo.meta - judo-ui-generator-maven-plugin - ${judo-meta-ui-version} - - org.eclipse.m2e @@ -202,23 +142,8 @@ - - - org.apache.felix - maven-bundle-plugin - true - 5.1.2 - - NONE - - - target/classes - - hu.blackbelt.judo.ui.typescript.rest - - - + org.codehaus.mojo flatten-maven-plugin @@ -235,6 +160,7 @@ flatten + flatten.clean clean @@ -249,16 +175,15 @@ - modules + external-packages - skipModules + skipExternalPackages !true - judo-ui-react - judo-ui-react-itest + judo-ui-react-external-packages