@ostack.tech/ui-kform-scaffolder 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/bin/at-ui-kform-scaffolder +1 -1
  2. package/dist/ostack-ui-kform-scaffolder.js +39 -8
  3. package/dist/ostack-ui-kform-scaffolder.js.map +1 -1
  4. package/dist/types/ui-kform-scaffolder/src/configs/DefaultLocaleConfig.d.ts +5 -0
  5. package/dist/types/{index.d.ts → ui-kform-scaffolder/src/index.d.ts} +1 -1
  6. package/dist/types/ui-kform-scaffolder/src/main.d.ts +1 -0
  7. package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/ScaffoldingData.d.ts +2 -0
  8. package/dist/webapp/assets/{index-SSul4wNF.js → index-BjEiLyTG.js} +99 -98
  9. package/dist/webapp/index.html +1 -1
  10. package/package.json +4 -4
  11. package/dist/ostack-ui-kform-scaffolder.cjs +0 -1761
  12. package/dist/ostack-ui-kform-scaffolder.cjs.map +0 -1
  13. package/dist/types/main.d.ts +0 -1
  14. /package/dist/types/{SchematicBuilder.d.ts → ui-kform-scaffolder/src/SchematicBuilder.d.ts} +0 -0
  15. /package/dist/types/{SchematicKind.d.ts → ui-kform-scaffolder/src/SchematicKind.d.ts} +0 -0
  16. /package/dist/types/{configs → ui-kform-scaffolder/src/configs}/SerializationFormatConfig.d.ts +0 -0
  17. /package/dist/types/{configs → ui-kform-scaffolder/src/configs}/UseTableValuesSerializerConfig.d.ts +0 -0
  18. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/kotlin/KtData.d.ts +0 -0
  19. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/reactApp/ReactAppData.d.ts +0 -0
  20. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/reactApp/util/reactAppLayout.d.ts +0 -0
  21. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldActions.d.ts +0 -0
  22. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldApi.d.ts +0 -0
  23. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldAppComponent.d.ts +0 -0
  24. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldAppContext.d.ts +0 -0
  25. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldExternalContexts.d.ts +0 -0
  26. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldFormPages.d.ts +0 -0
  27. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldGradleProject.d.ts +0 -0
  28. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldGradleWrapper.d.ts +0 -0
  29. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldIssueMessages.d.ts +0 -0
  30. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldMain.d.ts +0 -0
  31. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldProjectMisc.d.ts +0 -0
  32. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldResponses.d.ts +0 -0
  33. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldSerializer.d.ts +0 -0
  34. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldStyles.d.ts +0 -0
  35. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/scaffolders/scaffoldViteProject.d.ts +0 -0
  36. /package/dist/types/{scaffolding → ui-kform-scaffolder/src/scaffolding}/templates/react-app/src/api/reportError.d.ts +0 -0
  37. /package/dist/types/{util → ui-kform-scaffolder/src/util}/arrayify.d.ts +0 -0
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- npx http-server@latest "$(dirname $(realpath -- "$0"))/../dist/webapp" -o "$@"
3
+ npx http-server@latest "$(dirname $(realpath -- "$0"))/../dist/webapp/" -o "$@"
@@ -1,12 +1,38 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import { useConfig, UseTableValuesSerializerConfig as UseTableValuesSerializerConfig$1, addEjsTemplateFile, addTemplateFile, joinPaths, tsFile, code, anySchematicKind as anySchematicKind$1, bigDecimalSchematicKind as bigDecimalSchematicKind$1, bigIntegerSchematicKind as bigIntegerSchematicKind$1, booleanSchematicKind as booleanSchematicKind$1, byteSchematicKind as byteSchematicKind$1, classSchematicKind as classSchematicKind$1, doubleSchematicKind as doubleSchematicKind$1, enumSchematicKind as enumSchematicKind$1, fileSchematicKind as fileSchematicKind$1, floatSchematicKind as floatSchematicKind$1, intSchematicKind as intSchematicKind$1, listSchematicKind, localDateSchematicKind as localDateSchematicKind$1, longSchematicKind as longSchematicKind$1, shortSchematicKind as shortSchematicKind$1, stringSchematicKind as stringSchematicKind$1, tableSchematicKind as tableSchematicKind$1, ListableBuilderWithoutKindSelect, createSchematic, annotate, SchematicBuilder as SchematicBuilder$1, configScaffolder, scaffoldSchemas, scaffoldModels, scaffoldValidator } from "@ostack.tech/kform-scaffolder";
3
- import * as React from "react";
2
+ import { useConfig, UseTableValuesSerializerConfig as UseTableValuesSerializerConfig$1, addEjsTemplateFile, addTemplateFile, joinPaths, tsFile, code, anySchematicKind as anySchematicKind$1, bigDecimalSchematicKind as bigDecimalSchematicKind$1, bigIntegerSchematicKind as bigIntegerSchematicKind$1, booleanSchematicKind as booleanSchematicKind$1, byteSchematicKind as byteSchematicKind$1, classSchematicKind as classSchematicKind$1, doubleSchematicKind as doubleSchematicKind$1, enumSchematicKind as enumSchematicKind$1, fileSchematicKind as fileSchematicKind$1, floatSchematicKind as floatSchematicKind$1, intSchematicKind as intSchematicKind$1, ListableBuilderWithoutKindSelect, createSchematic, listSchematicKind, localDateSchematicKind as localDateSchematicKind$1, longSchematicKind as longSchematicKind$1, shortSchematicKind as shortSchematicKind$1, stringSchematicKind as stringSchematicKind$1, tableSchematicKind as tableSchematicKind$1, annotate, SchematicBuilder as SchematicBuilder$1, configScaffolder, scaffoldSchemas, scaffoldModels, scaffoldValidator } from "@ostack.tech/kform-scaffolder";
3
+ import { useRef } from "react";
4
+ const locales = [
5
+ "en-GB",
6
+ "en-US",
7
+ "fr",
8
+ "pt"
9
+ ];
10
+ function DefaultLocaleConfig({
11
+ defaultValue = "en-US",
12
+ disabled
13
+ }) {
14
+ const [config, setConfig] = useConfig("defaultLocale", defaultValue);
15
+ return /* @__PURE__ */ jsxs("div", { className: "builder-config-field", children: [
16
+ /* @__PURE__ */ jsx("label", { children: "Default locale" }),
17
+ /* @__PURE__ */ jsx(
18
+ "select",
19
+ {
20
+ value: config,
21
+ onChange: (evt) => {
22
+ setConfig(evt.target.value);
23
+ },
24
+ disabled,
25
+ children: locales.map((locale) => /* @__PURE__ */ jsx("option", { value: locale, children: locale }, locale))
26
+ }
27
+ )
28
+ ] });
29
+ }
4
30
  function SerializationFormatConfig({
5
31
  defaultValue = "json",
6
32
  disabled
7
33
  }) {
8
34
  const [useTableValuesSerializerConfig, setUseTableValuesSerializerConfig] = useConfig("useTableValuesSerializer", false);
9
- const lastUseTableValuesSerializerConfig = React.useRef(
35
+ const lastUseTableValuesSerializerConfig = useRef(
10
36
  useTableValuesSerializerConfig
11
37
  );
12
38
  const [config, setConfig] = useConfig("serializationFormat", defaultValue);
@@ -851,9 +877,11 @@ function scaffoldAppComponent(schematic, data) {
851
877
  scaffoldIssueMessages(schematic, data);
852
878
  }
853
879
  function scaffoldAppComponentFile(schematic, data) {
880
+ const localeVar = (data.defaultLocale ?? "en-US").replaceAll("-", "");
854
881
  data.currentFile.imports.push(
855
882
  { moduleName: "@ostack.tech/kform", name: "ktMapToObject" },
856
883
  { moduleName: "@ostack.tech/ui-kform", name: "FormApp" },
884
+ { moduleName: "@ostack.tech/ui-kform", name: localeVar },
857
885
  { moduleName: "react", name: "useMemo" },
858
886
  { moduleName: data.kmpModuleName, name: schematic.name },
859
887
  { moduleName: data.kmpModuleName, name: `${schematic.name}FormMode` },
@@ -890,6 +918,7 @@ function scaffoldAppComponentFile(schematic, data) {
890
918
  : "auto"
891
919
  }
892
920
  issueMessages={${constantCase(schematic.name)}_ISSUE_MESSAGES}
921
+ defaultLocale={${localeVar}}
893
922
  errorReportingUrl={REPORT_ERROR_ENDPOINT}
894
923
  >
895
924
  <${schematic.name}Layout />
@@ -1069,7 +1098,7 @@ function scaffoldGradleProject(schematic, data) {
1069
1098
  filePackage: data.currentPackage,
1070
1099
  formId: kebabCase(schematic.name),
1071
1100
  formTitle: capitalCase(schematic.name),
1072
- kFormVersion: "0.31.0",
1101
+ kFormVersion: "0.31.2",
1073
1102
  serializationFormat: data.serializationFormat ?? "json",
1074
1103
  usesKotlinxDatetime: usesKotlinxDatetime(schematic, data),
1075
1104
  usesKtMath: usesKtMath(schematic)
@@ -1614,15 +1643,15 @@ const viteSvg = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www
1614
1643
  const tsConfigAppJson = '{\n "compilerOptions": {\n "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",\n "target": "ES2022",\n "useDefineForClassFields": true,\n "lib": ["ES2022", "DOM", "DOM.Iterable"],\n "module": "ESNext",\n "types": ["vite/client"],\n "skipLibCheck": true,\n\n /* Bundler mode */\n "moduleResolution": "bundler",\n "allowImportingTsExtensions": true,\n "verbatimModuleSyntax": true,\n "moduleDetection": "force",\n "noEmit": true,\n "jsx": "react-jsx",\n\n /* Linting */\n "strict": true,\n "noUnusedLocals": true,\n "noUnusedParameters": true,\n "erasableSyntaxOnly": true,\n "noFallthroughCasesInSwitch": true,\n "noUncheckedSideEffectImports": true\n },\n "include": ["src"]\n}\n';
1615
1644
  const tsConfigJson = '{\n "files": [],\n "references": [\n { "path": "./tsconfig.app.json" },\n { "path": "./tsconfig.node.json" }\n ]\n}\n';
1616
1645
  const tsConfigNodeJson = '{\n "compilerOptions": {\n "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",\n "target": "ES2023",\n "lib": ["ES2023"],\n "module": "ESNext",\n "types": ["node"],\n "skipLibCheck": true,\n\n /* Bundler mode */\n "moduleResolution": "bundler",\n "allowImportingTsExtensions": true,\n "verbatimModuleSyntax": true,\n "moduleDetection": "force",\n "noEmit": true,\n\n /* Linting */\n "strict": true,\n "noUnusedLocals": true,\n "noUnusedParameters": true,\n "erasableSyntaxOnly": true,\n "noFallthroughCasesInSwitch": true,\n "noUncheckedSideEffectImports": true\n },\n "include": ["vite.config.ts"]\n}\n';
1617
- const viteConfigTsEjs = 'import path from "node:path";\n\nimport react from "@vitejs/plugin-react-swc";\nimport { defineConfig } from "vite";\n\n// https://vite.dev/config/\nexport default defineConfig({\n plugins: [react()],\n build: {\n outDir: "build/dist",\n rollupOptions: {\n input: {\n "<%= formId %>-app":\n process.env.VITE_BUILD_REASON === "preview"\n ? "index.html"\n : "src/main.tsx",\n },\n output: {\n // Output files without hashes, making it easier to serve them in the\n // server. However, the server is expected to somehow "version" them for\n // cache busting purposes.\n entryFileNames: "assets/[name].js",\n chunkFileNames: "assets/[name].js",\n assetFileNames: "assets/[name].[ext]",\n },\n },\n },\n resolve: {\n alias: [\n // Due to how Kotlin "bundles" dependencies, we need to use the\n // `@ostack.tech/kform` produced by the shared module.\n {\n find: "@ostack.tech/kform",\n replacement: path.resolve(\n import.meta.dirname,\n "node_modules/<%= formId %>-shared/ostack-kform.mjs",\n ),\n },\n ],\n },\n server: {\n proxy: { "/api": "http://127.0.0.1:8080" },\n },\n});\n';
1646
+ const viteConfigTsEjs = 'import { resolve } from "node:path";\n\nimport react from "@vitejs/plugin-react-swc";\nimport { defineConfig } from "vite";\n\n// https://vite.dev/config/\nexport default defineConfig({\n plugins: [react()],\n build: {\n outDir: "build/dist",\n rollupOptions: {\n input: {\n "<%= formId %>-app":\n process.env.VITE_BUILD_REASON === "preview"\n ? "index.html"\n : "src/main.tsx",\n },\n output: {\n // Output files without hashes, making it easier to serve them in the\n // server. However, the server is expected to somehow "version" them for\n // cache busting purposes.\n entryFileNames: "assets/[name].js",\n chunkFileNames: "assets/[name].js",\n assetFileNames: "assets/[name].[ext]",\n },\n },\n },\n resolve: {\n alias: [\n // Due to how Kotlin "bundles" dependencies, we need to use the\n // `@ostack.tech/kform` produced by the shared module.\n {\n find: "@ostack.tech/kform",\n replacement: resolve(\n import.meta.dirname,\n "node_modules/<%= formId %>-shared/ostack-kform.mjs",\n ),\n },\n ],\n },\n server: {\n proxy: { "/api": "http://127.0.0.1:8080" },\n },\n});\n';
1618
1647
  function scaffoldViteProject(schematic, data) {
1619
1648
  const ejsData = {
1620
1649
  formId: kebabCase(schematic.name),
1621
1650
  formClass: schematic.name,
1622
1651
  formTitle: capitalCase(schematic.name),
1623
- ostackUiVersion: "0.1.2",
1624
- kFormVersion: "0.31.0",
1625
- dependencyVersions: JSON.parse('{"@eslint/js":"^9.37.0","@fortawesome/fontawesome-svg-core":"^7.1.0","@fortawesome/free-brands-svg-icons":"^7.1.0","@fortawesome/free-regular-svg-icons":"^7.1.0","@fortawesome/free-solid-svg-icons":"^7.1.0","@ostack.tech/kform":"~0.31.0","@ostack.tech/kform-react":"~0.31.0","@ostack.tech/kform-scaffolder":"~0.31.0","@storybook/addon-docs":"^9.1.10","@storybook/addon-links":"^9.1.10","@storybook/react-vite":"^9.1.10","@types/node":"^22.18.9","@types/react":"^19.2.2","@types/react-dom":"^19.2.1","@vitejs/plugin-react-swc":"^4.1.0","colorjs.io":"^0.5.2","cpy-cli":"^6.0.0","date-fns":"^4.1.0","eslint":"^9.37.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","eslint-plugin-react-hooks":"^6.1.1","eslint-plugin-react-refresh":"^0.4.23","eslint-plugin-simple-import-sort":"^12.1.1","eslint-plugin-storybook":"^9.1.10","globals":"^16.4.0","happy-dom":"^20.0.0","lint-staged":"^16.2.3","prettier":"^3.6.2","prettier-plugin-jsdoc":"^1.3.3","react":"^19.2.0","react-dom":"^19.2.0","react-router":"^7.9.4","react-router-dom":"^7.9.4","rimraf":"^6.0.1","sass-embedded":"^1.93.2","simple-git-hooks":"^2.13.1","storybook":"^9.1.10","tslib":"^2.8.1","typescript":"~5.9.3","typescript-eslint":"^8.46.0","vite":"^7.1.9","vitest":"^3.2.4","zustand":"^5.0.8"}'),
1652
+ ostackUiVersion: "0.2.0",
1653
+ kFormVersion: "0.31.2",
1654
+ dependencyVersions: JSON.parse('{"@eslint/js":"^9.37.0","@fortawesome/fontawesome-svg-core":"^7.1.0","@fortawesome/free-brands-svg-icons":"^7.1.0","@fortawesome/free-regular-svg-icons":"^7.1.0","@fortawesome/free-solid-svg-icons":"^7.1.0","@ostack.tech/kform":"~0.31.2","@ostack.tech/kform-react":"~0.31.2","@ostack.tech/kform-scaffolder":"~0.31.2","@storybook/addon-docs":"^9.1.12","@storybook/addon-links":"^9.1.12","@storybook/react-vite":"^9.1.12","@types/node":"^22.18.10","@types/react":"^19.2.2","@types/react-dom":"^19.2.2","@vitejs/plugin-react-swc":"^4.1.0","colorjs.io":"^0.5.2","cpy-cli":"^6.0.0","date-fns":"^4.1.0","eslint":"^9.37.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","eslint-plugin-react-hooks":"^6.1.1","eslint-plugin-react-refresh":"^0.4.24","eslint-plugin-simple-import-sort":"^12.1.1","eslint-plugin-storybook":"^9.1.12","globals":"^16.4.0","happy-dom":"^20.0.2","lint-staged":"^16.2.4","prettier":"^3.6.2","prettier-plugin-jsdoc":"^1.3.3","react":"^19.2.0","react-dom":"^19.2.0","react-router":"^7.9.4","react-router-dom":"^7.9.4","rimraf":"^6.0.1","sass-embedded":"^1.93.2","simple-git-hooks":"^2.13.1","storybook":"^9.1.12","tslib":"^2.8.1","typescript":"~5.9.3","typescript-eslint":"^8.46.1","vite":"^7.1.10","vitest":"^3.2.4","zustand":"^5.0.8"}'),
1626
1655
  externalContextsData: data.serializationFormat === "json" ? "{}" : `<${schematic.name}ExternalContexts />`
1627
1656
  };
1628
1657
  addEjsTemplateFile(data, "react-app/package.json", packageJsonEjs, ejsData);
@@ -1675,6 +1704,7 @@ function SchematicBuilder({
1675
1704
  ...schematic.config
1676
1705
  }),
1677
1706
  configs = /* @__PURE__ */ jsxs(Fragment, { children: [
1707
+ /* @__PURE__ */ jsx(DefaultLocaleConfig, {}),
1678
1708
  /* @__PURE__ */ jsx(SerializationFormatConfig, {}),
1679
1709
  /* @__PURE__ */ jsx(UseTableValuesSerializerConfig, {})
1680
1710
  ] }),
@@ -1693,6 +1723,7 @@ function SchematicBuilder({
1693
1723
  );
1694
1724
  }
1695
1725
  export {
1726
+ DefaultLocaleConfig,
1696
1727
  SchematicBuilder,
1697
1728
  SerializationFormatConfig,
1698
1729
  UseTableValuesSerializerConfig,