@baseplate-dev/project-builder-lib 0.1.1
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.
- package/LICENSE +390 -0
- package/dist/compiler/admin-crud-input-spec.d.ts +26 -0
- package/dist/compiler/admin-crud-input-spec.d.ts.map +1 -0
- package/dist/compiler/admin-crud-input-spec.js +29 -0
- package/dist/compiler/admin-crud-input-spec.js.map +1 -0
- package/dist/compiler/app-compiler-spec.d.ts +36 -0
- package/dist/compiler/app-compiler-spec.d.ts.map +1 -0
- package/dist/compiler/app-compiler-spec.js +42 -0
- package/dist/compiler/app-compiler-spec.js.map +1 -0
- package/dist/compiler/index.d.ts +5 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +4 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/model-transformer-compiler-spec.d.ts +25 -0
- package/dist/compiler/model-transformer-compiler-spec.d.ts.map +1 -0
- package/dist/compiler/model-transformer-compiler-spec.js +29 -0
- package/dist/compiler/model-transformer-compiler-spec.js.map +1 -0
- package/dist/compiler/types.d.ts +2 -0
- package/dist/compiler/types.d.ts.map +1 -0
- package/dist/compiler/types.js +2 -0
- package/dist/compiler/types.js.map +1 -0
- package/dist/constants/colors.d.ts +294 -0
- package/dist/constants/colors.d.ts.map +1 -0
- package/dist/constants/colors.js +307 -0
- package/dist/constants/colors.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +3 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/theme-colors.d.ts +397 -0
- package/dist/constants/theme-colors.d.ts.map +1 -0
- package/dist/constants/theme-colors.js +247 -0
- package/dist/constants/theme-colors.js.map +1 -0
- package/dist/definition/apps/app-utils.d.ts +11 -0
- package/dist/definition/apps/app-utils.d.ts.map +1 -0
- package/dist/definition/apps/app-utils.js +30 -0
- package/dist/definition/apps/app-utils.js.map +1 -0
- package/dist/definition/feature/feature-utils.d.ts +27 -0
- package/dist/definition/feature/feature-utils.d.ts.map +1 -0
- package/dist/definition/feature/feature-utils.js +81 -0
- package/dist/definition/feature/feature-utils.js.map +1 -0
- package/dist/definition/index.d.ts +10 -0
- package/dist/definition/index.d.ts.map +1 -0
- package/dist/definition/index.js +10 -0
- package/dist/definition/index.js.map +1 -0
- package/dist/definition/model/enum-utils.d.ts +9 -0
- package/dist/definition/model/enum-utils.d.ts.map +1 -0
- package/dist/definition/model/enum-utils.js +15 -0
- package/dist/definition/model/enum-utils.js.map +1 -0
- package/dist/definition/model/model-field-utils.d.ts +17 -0
- package/dist/definition/model/model-field-utils.d.ts.map +1 -0
- package/dist/definition/model/model-field-utils.js +85 -0
- package/dist/definition/model/model-field-utils.js.map +1 -0
- package/dist/definition/model/model-transformer-utils.d.ts +11 -0
- package/dist/definition/model/model-transformer-utils.d.ts.map +1 -0
- package/dist/definition/model/model-transformer-utils.js +13 -0
- package/dist/definition/model/model-transformer-utils.js.map +1 -0
- package/dist/definition/model/model-utils.d.ts +32 -0
- package/dist/definition/model/model-utils.d.ts.map +1 -0
- package/dist/definition/model/model-utils.js +59 -0
- package/dist/definition/model/model-utils.js.map +1 -0
- package/dist/definition/plugins/index.d.ts +2 -0
- package/dist/definition/plugins/index.d.ts.map +1 -0
- package/dist/definition/plugins/index.js +2 -0
- package/dist/definition/plugins/index.js.map +1 -0
- package/dist/definition/plugins/plugin-utils.d.ts +14 -0
- package/dist/definition/plugins/plugin-utils.d.ts.map +1 -0
- package/dist/definition/plugins/plugin-utils.js +44 -0
- package/dist/definition/plugins/plugin-utils.js.map +1 -0
- package/dist/definition/project-definition-container.d.ts +65 -0
- package/dist/definition/project-definition-container.d.ts.map +1 -0
- package/dist/definition/project-definition-container.js +118 -0
- package/dist/definition/project-definition-container.js.map +1 -0
- package/dist/definition/project-definition-container.test-helper.d.ts +5 -0
- package/dist/definition/project-definition-container.test-helper.d.ts.map +1 -0
- package/dist/definition/project-definition-container.test-helper.js +36 -0
- package/dist/definition/project-definition-container.test-helper.js.map +1 -0
- package/dist/feature-flags/flags.d.ts +3 -0
- package/dist/feature-flags/flags.d.ts.map +1 -0
- package/dist/feature-flags/flags.js +2 -0
- package/dist/feature-flags/flags.js.map +1 -0
- package/dist/feature-flags/index.d.ts +2 -0
- package/dist/feature-flags/index.d.ts.map +1 -0
- package/dist/feature-flags/index.js +2 -0
- package/dist/feature-flags/index.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/index.d.ts +15 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +68 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/migration-005-primaryUniqueRefs.d.ts +37 -0
- package/dist/migrations/migration-005-primaryUniqueRefs.d.ts.map +1 -0
- package/dist/migrations/migration-005-primaryUniqueRefs.js +40 -0
- package/dist/migrations/migration-005-primaryUniqueRefs.js.map +1 -0
- package/dist/migrations/migration-006-individual-service-controllers.d.ts +42 -0
- package/dist/migrations/migration-006-individual-service-controllers.d.ts.map +1 -0
- package/dist/migrations/migration-006-individual-service-controllers.js +31 -0
- package/dist/migrations/migration-006-individual-service-controllers.js.map +1 -0
- package/dist/migrations/migration-007-model-graphql.d.ts +59 -0
- package/dist/migrations/migration-007-model-graphql.d.ts.map +1 -0
- package/dist/migrations/migration-007-model-graphql.js +62 -0
- package/dist/migrations/migration-007-model-graphql.js.map +1 -0
- package/dist/migrations/migration-008-anonymous-public-role.d.ts +22 -0
- package/dist/migrations/migration-008-anonymous-public-role.d.ts.map +1 -0
- package/dist/migrations/migration-008-anonymous-public-role.js +52 -0
- package/dist/migrations/migration-008-anonymous-public-role.js.map +1 -0
- package/dist/migrations/migration-009-rename-refs.d.ts +2 -0
- package/dist/migrations/migration-009-rename-refs.d.ts.map +1 -0
- package/dist/migrations/migration-009-rename-refs.js +59 -0
- package/dist/migrations/migration-009-rename-refs.js.map +1 -0
- package/dist/migrations/migration-010-hex-to-oklch.d.ts +2 -0
- package/dist/migrations/migration-010-hex-to-oklch.d.ts.map +1 -0
- package/dist/migrations/migration-010-hex-to-oklch.js +24 -0
- package/dist/migrations/migration-010-hex-to-oklch.js.map +1 -0
- package/dist/migrations/migration-011-plugin-id.d.ts +2 -0
- package/dist/migrations/migration-011-plugin-id.d.ts.map +1 -0
- package/dist/migrations/migration-011-plugin-id.js +10 -0
- package/dist/migrations/migration-011-plugin-id.js.map +1 -0
- package/dist/migrations/migration-012-migrate-auth-config.d.ts +36 -0
- package/dist/migrations/migration-012-migrate-auth-config.d.ts.map +1 -0
- package/dist/migrations/migration-012-migrate-auth-config.js +48 -0
- package/dist/migrations/migration-012-migrate-auth-config.js.map +1 -0
- package/dist/migrations/migration-013-move-general-settings.d.ts +38 -0
- package/dist/migrations/migration-013-move-general-settings.d.ts.map +1 -0
- package/dist/migrations/migration-013-move-general-settings.js +22 -0
- package/dist/migrations/migration-013-move-general-settings.js.map +1 -0
- package/dist/migrations/migration-014-migrate-plugin-ids.d.ts +21 -0
- package/dist/migrations/migration-014-migrate-plugin-ids.d.ts.map +1 -0
- package/dist/migrations/migration-014-migrate-plugin-ids.js +32 -0
- package/dist/migrations/migration-014-migrate-plugin-ids.js.map +1 -0
- package/dist/migrations/transform-json-path.d.ts +13 -0
- package/dist/migrations/transform-json-path.d.ts.map +1 -0
- package/dist/migrations/transform-json-path.js +66 -0
- package/dist/migrations/transform-json-path.js.map +1 -0
- package/dist/migrations/types.d.ts +29 -0
- package/dist/migrations/types.d.ts.map +1 -0
- package/dist/migrations/types.js +4 -0
- package/dist/migrations/types.js.map +1 -0
- package/dist/migrations/utils.d.ts +3 -0
- package/dist/migrations/utils.d.ts.map +1 -0
- package/dist/migrations/utils.js +10 -0
- package/dist/migrations/utils.js.map +1 -0
- package/dist/parser/index.d.ts +3 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +2 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parser.d.ts +35 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +84 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/types.d.ts +8 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +2 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/plugin-tools/index.d.ts +2 -0
- package/dist/plugin-tools/index.d.ts.map +1 -0
- package/dist/plugin-tools/index.js +2 -0
- package/dist/plugin-tools/index.js.map +1 -0
- package/dist/plugin-tools/plugin-loader.d.ts +16 -0
- package/dist/plugin-tools/plugin-loader.d.ts.map +1 -0
- package/dist/plugin-tools/plugin-loader.js +166 -0
- package/dist/plugin-tools/plugin-loader.js.map +1 -0
- package/dist/plugins/imports/index.d.ts +3 -0
- package/dist/plugins/imports/index.d.ts.map +1 -0
- package/dist/plugins/imports/index.js +3 -0
- package/dist/plugins/imports/index.js.map +1 -0
- package/dist/plugins/imports/loader.d.ts +23 -0
- package/dist/plugins/imports/loader.d.ts.map +1 -0
- package/dist/plugins/imports/loader.js +81 -0
- package/dist/plugins/imports/loader.js.map +1 -0
- package/dist/plugins/imports/types.d.ts +27 -0
- package/dist/plugins/imports/types.d.ts.map +1 -0
- package/dist/plugins/imports/types.js +4 -0
- package/dist/plugins/imports/types.js.map +1 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +7 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/manifest/manifest.d.ts +13 -0
- package/dist/plugins/manifest/manifest.d.ts.map +1 -0
- package/dist/plugins/manifest/manifest.js +6 -0
- package/dist/plugins/manifest/manifest.js.map +1 -0
- package/dist/plugins/metadata/index.d.ts +2 -0
- package/dist/plugins/metadata/index.d.ts.map +1 -0
- package/dist/plugins/metadata/index.js +2 -0
- package/dist/plugins/metadata/index.js.map +1 -0
- package/dist/plugins/metadata/types.d.ts +163 -0
- package/dist/plugins/metadata/types.d.ts.map +1 -0
- package/dist/plugins/metadata/types.js +59 -0
- package/dist/plugins/metadata/types.js.map +1 -0
- package/dist/plugins/migrations/index.d.ts +2 -0
- package/dist/plugins/migrations/index.d.ts.map +1 -0
- package/dist/plugins/migrations/index.js +2 -0
- package/dist/plugins/migrations/index.js.map +1 -0
- package/dist/plugins/migrations/run-migrations.d.ts +4 -0
- package/dist/plugins/migrations/run-migrations.d.ts.map +1 -0
- package/dist/plugins/migrations/run-migrations.js +30 -0
- package/dist/plugins/migrations/run-migrations.js.map +1 -0
- package/dist/plugins/schema/common.d.ts +6 -0
- package/dist/plugins/schema/common.d.ts.map +1 -0
- package/dist/plugins/schema/common.js +2 -0
- package/dist/plugins/schema/common.js.map +1 -0
- package/dist/plugins/schema/index.d.ts +4 -0
- package/dist/plugins/schema/index.d.ts.map +1 -0
- package/dist/plugins/schema/index.js +4 -0
- package/dist/plugins/schema/index.js.map +1 -0
- package/dist/plugins/schema/parser.d.ts +19 -0
- package/dist/plugins/schema/parser.d.ts.map +1 -0
- package/dist/plugins/schema/parser.js +41 -0
- package/dist/plugins/schema/parser.js.map +1 -0
- package/dist/plugins/schema/store.d.ts +8 -0
- package/dist/plugins/schema/store.d.ts.map +1 -0
- package/dist/plugins/schema/store.js +21 -0
- package/dist/plugins/schema/store.js.map +1 -0
- package/dist/plugins/schema/zod-with-plugins.d.ts +12 -0
- package/dist/plugins/schema/zod-with-plugins.d.ts.map +1 -0
- package/dist/plugins/schema/zod-with-plugins.js +26 -0
- package/dist/plugins/schema/zod-with-plugins.js.map +1 -0
- package/dist/plugins/spec/auth-config-spec.d.ts +21 -0
- package/dist/plugins/spec/auth-config-spec.d.ts.map +1 -0
- package/dist/plugins/spec/auth-config-spec.js +6 -0
- package/dist/plugins/spec/auth-config-spec.js.map +1 -0
- package/dist/plugins/spec/config-spec.d.ts +31 -0
- package/dist/plugins/spec/config-spec.d.ts.map +1 -0
- package/dist/plugins/spec/config-spec.js +58 -0
- package/dist/plugins/spec/config-spec.js.map +1 -0
- package/dist/plugins/spec/index.d.ts +5 -0
- package/dist/plugins/spec/index.d.ts.map +1 -0
- package/dist/plugins/spec/index.js +5 -0
- package/dist/plugins/spec/index.js.map +1 -0
- package/dist/plugins/spec/types.d.ts +29 -0
- package/dist/plugins/spec/types.d.ts.map +1 -0
- package/dist/plugins/spec/types.js +17 -0
- package/dist/plugins/spec/types.js.map +1 -0
- package/dist/plugins/spec/web-config-spec.d.ts +22 -0
- package/dist/plugins/spec/web-config-spec.d.ts.map +1 -0
- package/dist/plugins/spec/web-config-spec.js +23 -0
- package/dist/plugins/spec/web-config-spec.js.map +1 -0
- package/dist/references/deserialize-schema.d.ts +4 -0
- package/dist/references/deserialize-schema.d.ts.map +1 -0
- package/dist/references/deserialize-schema.js +68 -0
- package/dist/references/deserialize-schema.js.map +1 -0
- package/dist/references/fix-ref-deletions.d.ts +22 -0
- package/dist/references/fix-ref-deletions.d.ts.map +1 -0
- package/dist/references/fix-ref-deletions.js +99 -0
- package/dist/references/fix-ref-deletions.js.map +1 -0
- package/dist/references/index.d.ts +6 -0
- package/dist/references/index.d.ts.map +1 -0
- package/dist/references/index.js +6 -0
- package/dist/references/index.js.map +1 -0
- package/dist/references/parse-schema-with-references.d.ts +14 -0
- package/dist/references/parse-schema-with-references.d.ts.map +1 -0
- package/dist/references/parse-schema-with-references.js +16 -0
- package/dist/references/parse-schema-with-references.js.map +1 -0
- package/dist/references/ref-builder.d.ts +346 -0
- package/dist/references/ref-builder.d.ts.map +1 -0
- package/dist/references/ref-builder.js +494 -0
- package/dist/references/ref-builder.js.map +1 -0
- package/dist/references/resolve-zod-ref-payload-names.d.ts +26 -0
- package/dist/references/resolve-zod-ref-payload-names.d.ts.map +1 -0
- package/dist/references/resolve-zod-ref-payload-names.js +52 -0
- package/dist/references/resolve-zod-ref-payload-names.js.map +1 -0
- package/dist/references/serialize-schema.d.ts +5 -0
- package/dist/references/serialize-schema.d.ts.map +1 -0
- package/dist/references/serialize-schema.js +22 -0
- package/dist/references/serialize-schema.js.map +1 -0
- package/dist/references/types.d.ts +126 -0
- package/dist/references/types.d.ts.map +1 -0
- package/dist/references/types.js +59 -0
- package/dist/references/types.js.map +1 -0
- package/dist/schema/apps/admin/app.d.ts +1144 -0
- package/dist/schema/apps/admin/app.d.ts.map +1 -0
- package/dist/schema/apps/admin/app.js +27 -0
- package/dist/schema/apps/admin/app.js.map +1 -0
- package/dist/schema/apps/admin/index.d.ts +3 -0
- package/dist/schema/apps/admin/index.d.ts.map +1 -0
- package/dist/schema/apps/admin/index.js +3 -0
- package/dist/schema/apps/admin/index.js.map +1 -0
- package/dist/schema/apps/admin/sections/base.d.ts +9 -0
- package/dist/schema/apps/admin/sections/base.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/base.js +15 -0
- package/dist/schema/apps/admin/sections/base.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts +11 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js +11 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.d.ts +17 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.js +30 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts +138 -0
- package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/built-in-input.js +101 -0
- package/dist/schema/apps/admin/sections/crud-form/built-in-input.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/index.d.ts +5 -0
- package/dist/schema/apps/admin/sections/crud-form/index.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/index.js +5 -0
- package/dist/schema/apps/admin/sections/crud-form/index.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/types.d.ts +19 -0
- package/dist/schema/apps/admin/sections/crud-form/types.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/types.js +14 -0
- package/dist/schema/apps/admin/sections/crud-form/types.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud.d.ts +988 -0
- package/dist/schema/apps/admin/sections/crud.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud.js +101 -0
- package/dist/schema/apps/admin/sections/crud.js.map +1 -0
- package/dist/schema/apps/admin/sections/index.d.ts +5 -0
- package/dist/schema/apps/admin/sections/index.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/index.js +5 -0
- package/dist/schema/apps/admin/sections/index.js.map +1 -0
- package/dist/schema/apps/admin/sections/types.d.ts +2 -0
- package/dist/schema/apps/admin/sections/types.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/types.js +6 -0
- package/dist/schema/apps/admin/sections/types.js.map +1 -0
- package/dist/schema/apps/backend/index.d.ts +49 -0
- package/dist/schema/apps/backend/index.d.ts.map +1 -0
- package/dist/schema/apps/backend/index.js +15 -0
- package/dist/schema/apps/backend/index.js.map +1 -0
- package/dist/schema/apps/base.d.ts +25 -0
- package/dist/schema/apps/base.d.ts.map +1 -0
- package/dist/schema/apps/base.js +16 -0
- package/dist/schema/apps/base.js.map +1 -0
- package/dist/schema/apps/index.d.ts +6 -0
- package/dist/schema/apps/index.d.ts.map +1 -0
- package/dist/schema/apps/index.js +6 -0
- package/dist/schema/apps/index.js.map +1 -0
- package/dist/schema/apps/types.d.ts +6 -0
- package/dist/schema/apps/types.d.ts.map +1 -0
- package/dist/schema/apps/types.js +6 -0
- package/dist/schema/apps/types.js.map +1 -0
- package/dist/schema/apps/web/index.d.ts +49 -0
- package/dist/schema/apps/web/index.d.ts.map +1 -0
- package/dist/schema/apps/web/index.js +22 -0
- package/dist/schema/apps/web/index.js.map +1 -0
- package/dist/schema/auth/index.d.ts +2 -0
- package/dist/schema/auth/index.d.ts.map +1 -0
- package/dist/schema/auth/index.js +3 -0
- package/dist/schema/auth/index.js.map +1 -0
- package/dist/schema/creator/index.d.ts +2 -0
- package/dist/schema/creator/index.d.ts.map +1 -0
- package/dist/schema/creator/index.js +2 -0
- package/dist/schema/creator/index.js.map +1 -0
- package/dist/schema/creator/schema-creator.d.ts +4 -0
- package/dist/schema/creator/schema-creator.d.ts.map +1 -0
- package/dist/schema/creator/schema-creator.js +4 -0
- package/dist/schema/creator/schema-creator.js.map +1 -0
- package/dist/schema/creator/types.d.ts +14 -0
- package/dist/schema/creator/types.d.ts.map +1 -0
- package/dist/schema/creator/types.js +2 -0
- package/dist/schema/creator/types.js.map +1 -0
- package/dist/schema/features/feature.d.ts +33 -0
- package/dist/schema/features/feature.d.ts.map +1 -0
- package/dist/schema/features/feature.js +21 -0
- package/dist/schema/features/feature.js.map +1 -0
- package/dist/schema/features/index.d.ts +3 -0
- package/dist/schema/features/index.d.ts.map +1 -0
- package/dist/schema/features/index.js +3 -0
- package/dist/schema/features/index.js.map +1 -0
- package/dist/schema/features/theme.d.ts +208 -0
- package/dist/schema/features/theme.d.ts.map +1 -0
- package/dist/schema/features/theme.js +34 -0
- package/dist/schema/features/theme.js.map +1 -0
- package/dist/schema/index.d.ts +11 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +11 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/models/enums.d.ts +97 -0
- package/dist/schema/models/enums.d.ts.map +1 -0
- package/dist/schema/models/enums.js +25 -0
- package/dist/schema/models/enums.js.map +1 -0
- package/dist/schema/models/graphql.d.ts +181 -0
- package/dist/schema/models/graphql.d.ts.map +1 -0
- package/dist/schema/models/graphql.js +96 -0
- package/dist/schema/models/graphql.js.map +1 -0
- package/dist/schema/models/index.d.ts +1692 -0
- package/dist/schema/models/index.d.ts.map +1 -0
- package/dist/schema/models/index.js +220 -0
- package/dist/schema/models/index.js.map +1 -0
- package/dist/schema/models/mocks.d.ts +6 -0
- package/dist/schema/models/mocks.d.ts.map +1 -0
- package/dist/schema/models/mocks.js +55 -0
- package/dist/schema/models/mocks.js.map +1 -0
- package/dist/schema/models/transformers/built-in-transformers.d.ts +71 -0
- package/dist/schema/models/transformers/built-in-transformers.d.ts.map +1 -0
- package/dist/schema/models/transformers/built-in-transformers.js +59 -0
- package/dist/schema/models/transformers/built-in-transformers.js.map +1 -0
- package/dist/schema/models/transformers/index.d.ts +5 -0
- package/dist/schema/models/transformers/index.d.ts.map +1 -0
- package/dist/schema/models/transformers/index.js +5 -0
- package/dist/schema/models/transformers/index.js.map +1 -0
- package/dist/schema/models/transformers/model-transformer-spec.d.ts +17 -0
- package/dist/schema/models/transformers/model-transformer-spec.d.ts.map +1 -0
- package/dist/schema/models/transformers/model-transformer-spec.js +40 -0
- package/dist/schema/models/transformers/model-transformer-spec.js.map +1 -0
- package/dist/schema/models/transformers/transformers.d.ts +11 -0
- package/dist/schema/models/transformers/transformers.d.ts.map +1 -0
- package/dist/schema/models/transformers/transformers.js +11 -0
- package/dist/schema/models/transformers/transformers.js.map +1 -0
- package/dist/schema/models/transformers/types.d.ts +23 -0
- package/dist/schema/models/transformers/types.d.ts.map +1 -0
- package/dist/schema/models/transformers/types.js +12 -0
- package/dist/schema/models/transformers/types.js.map +1 -0
- package/dist/schema/models/types.d.ts +9 -0
- package/dist/schema/models/types.d.ts.map +1 -0
- package/dist/schema/models/types.js +14 -0
- package/dist/schema/models/types.js.map +1 -0
- package/dist/schema/plugins/definition.d.ts +128 -0
- package/dist/schema/plugins/definition.d.ts.map +1 -0
- package/dist/schema/plugins/definition.js +28 -0
- package/dist/schema/plugins/definition.js.map +1 -0
- package/dist/schema/plugins/entity-types.d.ts +2 -0
- package/dist/schema/plugins/entity-types.d.ts.map +1 -0
- package/dist/schema/plugins/entity-types.js +3 -0
- package/dist/schema/plugins/entity-types.js.map +1 -0
- package/dist/schema/plugins/index.d.ts +3 -0
- package/dist/schema/plugins/index.d.ts.map +1 -0
- package/dist/schema/plugins/index.js +3 -0
- package/dist/schema/plugins/index.js.map +1 -0
- package/dist/schema/project-definition.d.ts +2877 -0
- package/dist/schema/project-definition.d.ts.map +1 -0
- package/dist/schema/project-definition.js +34 -0
- package/dist/schema/project-definition.js.map +1 -0
- package/dist/schema/settings.d.ts +228 -0
- package/dist/schema/settings.d.ts.map +1 -0
- package/dist/schema/settings.js +32 -0
- package/dist/schema/settings.js.map +1 -0
- package/dist/schema/template-extractor/index.d.ts +25 -0
- package/dist/schema/template-extractor/index.d.ts.map +1 -0
- package/dist/schema/template-extractor/index.js +18 -0
- package/dist/schema/template-extractor/index.js.map +1 -0
- package/dist/schema/utils/validation.d.ts +8 -0
- package/dist/schema/utils/validation.d.ts.map +1 -0
- package/dist/schema/utils/validation.js +18 -0
- package/dist/schema/utils/validation.js.map +1 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/model-merger/index.d.ts +2 -0
- package/dist/tools/model-merger/index.d.ts.map +1 -0
- package/dist/tools/model-merger/index.js +2 -0
- package/dist/tools/model-merger/index.js.map +1 -0
- package/dist/tools/model-merger/model-merger.d.ts +376 -0
- package/dist/tools/model-merger/model-merger.d.ts.map +1 -0
- package/dist/tools/model-merger/model-merger.js +229 -0
- package/dist/tools/model-merger/model-merger.js.map +1 -0
- package/dist/types/field-types.d.ts +3 -0
- package/dist/types/field-types.d.ts.map +1 -0
- package/dist/types/field-types.js +13 -0
- package/dist/types/field-types.js.map +1 -0
- package/dist/types/files.d.ts +8 -0
- package/dist/types/files.d.ts.map +1 -0
- package/dist/types/files.js +2 -0
- package/dist/types/files.js.map +1 -0
- package/dist/utils/color-conversions.d.ts +20 -0
- package/dist/utils/color-conversions.d.ts.map +1 -0
- package/dist/utils/color-conversions.js +38 -0
- package/dist/utils/color-conversions.js.map +1 -0
- package/dist/utils/color-names.d.ts +18 -0
- package/dist/utils/color-names.d.ts.map +1 -0
- package/dist/utils/color-names.js +54 -0
- package/dist/utils/color-names.js.map +1 -0
- package/dist/utils/definition-diff/definition-diff.d.ts +68 -0
- package/dist/utils/definition-diff/definition-diff.d.ts.map +1 -0
- package/dist/utils/definition-diff/definition-diff.js +149 -0
- package/dist/utils/definition-diff/definition-diff.js.map +1 -0
- package/dist/utils/definition-diff/index.d.ts +2 -0
- package/dist/utils/definition-diff/index.d.ts.map +1 -0
- package/dist/utils/definition-diff/index.js +2 -0
- package/dist/utils/definition-diff/index.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/path.d.ts +5 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +27 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/strip.d.ts +18 -0
- package/dist/utils/strip.d.ts.map +1 -0
- package/dist/utils/strip.js +37 -0
- package/dist/utils/strip.js.map +1 -0
- package/dist/utils/theme.d.ts +10 -0
- package/dist/utils/theme.d.ts.map +1 -0
- package/dist/utils/theme.js +58 -0
- package/dist/utils/theme.js.map +1 -0
- package/dist/web/components/FeatureComboboxField.d.ts +17 -0
- package/dist/web/components/FeatureComboboxField.d.ts.map +1 -0
- package/dist/web/components/FeatureComboboxField.js +38 -0
- package/dist/web/components/FeatureComboboxField.js.map +1 -0
- package/dist/web/components/ModelComboboxField.d.ts +17 -0
- package/dist/web/components/ModelComboboxField.d.ts.map +1 -0
- package/dist/web/components/ModelComboboxField.js +38 -0
- package/dist/web/components/ModelComboboxField.js.map +1 -0
- package/dist/web/components/ModelMergerResultAlert.d.ts +8 -0
- package/dist/web/components/ModelMergerResultAlert.d.ts.map +1 -0
- package/dist/web/components/ModelMergerResultAlert.js +10 -0
- package/dist/web/components/ModelMergerResultAlert.js.map +1 -0
- package/dist/web/components/index.d.ts +4 -0
- package/dist/web/components/index.d.ts.map +1 -0
- package/dist/web/components/index.js +4 -0
- package/dist/web/components/index.js.map +1 -0
- package/dist/web/contexts/error-handler.d.ts +7 -0
- package/dist/web/contexts/error-handler.d.ts.map +1 -0
- package/dist/web/contexts/error-handler.js +3 -0
- package/dist/web/contexts/error-handler.js.map +1 -0
- package/dist/web/contexts/index.d.ts +2 -0
- package/dist/web/contexts/index.d.ts.map +1 -0
- package/dist/web/contexts/index.js +2 -0
- package/dist/web/contexts/index.js.map +1 -0
- package/dist/web/hooks/index.d.ts +8 -0
- package/dist/web/hooks/index.d.ts.map +1 -0
- package/dist/web/hooks/index.js +8 -0
- package/dist/web/hooks/index.js.map +1 -0
- package/dist/web/hooks/useBlockDirtyFormNavigate.d.ts +3 -0
- package/dist/web/hooks/useBlockDirtyFormNavigate.d.ts.map +1 -0
- package/dist/web/hooks/useBlockDirtyFormNavigate.js +14 -0
- package/dist/web/hooks/useBlockDirtyFormNavigate.js.map +1 -0
- package/dist/web/hooks/useBlockUnsavedChangesNavigate.d.ts +7 -0
- package/dist/web/hooks/useBlockUnsavedChangesNavigate.d.ts.map +1 -0
- package/dist/web/hooks/useBlockUnsavedChangesNavigate.js +47 -0
- package/dist/web/hooks/useBlockUnsavedChangesNavigate.js.map +1 -0
- package/dist/web/hooks/useBlockerDialog.d.ts +44 -0
- package/dist/web/hooks/useBlockerDialog.d.ts.map +1 -0
- package/dist/web/hooks/useBlockerDialog.js +77 -0
- package/dist/web/hooks/useBlockerDialog.js.map +1 -0
- package/dist/web/hooks/useErrorHandler.d.ts +3 -0
- package/dist/web/hooks/useErrorHandler.d.ts.map +1 -0
- package/dist/web/hooks/useErrorHandler.js +10 -0
- package/dist/web/hooks/useErrorHandler.js.map +1 -0
- package/dist/web/hooks/usePluginEnhancedSchema.d.ts +4 -0
- package/dist/web/hooks/usePluginEnhancedSchema.d.ts.map +1 -0
- package/dist/web/hooks/usePluginEnhancedSchema.js +8 -0
- package/dist/web/hooks/usePluginEnhancedSchema.js.map +1 -0
- package/dist/web/hooks/useProjectDefinition.d.ts +65 -0
- package/dist/web/hooks/useProjectDefinition.d.ts.map +1 -0
- package/dist/web/hooks/useProjectDefinition.js +10 -0
- package/dist/web/hooks/useProjectDefinition.js.map +1 -0
- package/dist/web/hooks/useResettableForm.d.ts +3 -0
- package/dist/web/hooks/useResettableForm.d.ts.map +1 -0
- package/dist/web/hooks/useResettableForm.js +29 -0
- package/dist/web/hooks/useResettableForm.js.map +1 -0
- package/dist/web/index.d.ts +6 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +6 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/specs/admin-crud-input-web-spec.d.ts +36 -0
- package/dist/web/specs/admin-crud-input-web-spec.d.ts.map +1 -0
- package/dist/web/specs/admin-crud-input-web-spec.js +35 -0
- package/dist/web/specs/admin-crud-input-web-spec.js.map +1 -0
- package/dist/web/specs/index.d.ts +3 -0
- package/dist/web/specs/index.d.ts.map +1 -0
- package/dist/web/specs/index.js +3 -0
- package/dist/web/specs/index.js.map +1 -0
- package/dist/web/specs/model-transformer-web-spec.d.ts +40 -0
- package/dist/web/specs/model-transformer-web-spec.d.ts.map +1 -0
- package/dist/web/specs/model-transformer-web-spec.js +35 -0
- package/dist/web/specs/model-transformer-web-spec.js.map +1 -0
- package/dist/web/utils/form.d.ts +2 -0
- package/dist/web/utils/form.d.ts.map +1 -0
- package/dist/web/utils/form.js +6 -0
- package/dist/web/utils/form.js.map +1 -0
- package/dist/web/utils/index.d.ts +2 -0
- package/dist/web/utils/index.d.ts.map +1 -0
- package/dist/web/utils/index.js +2 -0
- package/dist/web/utils/index.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComboboxFieldProps } from '@baseplate-dev/ui-components';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
import type { Control, FieldPath, FieldValues } from 'react-hook-form';
|
|
4
|
+
interface FeatureComboboxFieldProps extends Omit<ComboboxFieldProps<{
|
|
5
|
+
label: string;
|
|
6
|
+
value: string;
|
|
7
|
+
}>, 'options'> {
|
|
8
|
+
canCreate?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare function FeatureComboboxField({ canCreate, value, ...rest }: FeatureComboboxFieldProps): React.ReactElement;
|
|
11
|
+
interface FeatureComboboxFieldControllerProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<FeatureComboboxFieldProps, 'value'> {
|
|
12
|
+
control: Control<TFieldValues>;
|
|
13
|
+
name: TFieldName;
|
|
14
|
+
}
|
|
15
|
+
declare function FeatureComboboxFieldController<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, control, ...rest }: FeatureComboboxFieldControllerProps<TFieldValues, TFieldName>): React.JSX.Element;
|
|
16
|
+
export { FeatureComboboxField, FeatureComboboxFieldController };
|
|
17
|
+
//# sourceMappingURL=FeatureComboboxField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureComboboxField.d.ts","sourceRoot":"","sources":["../../../src/web/components/FeatureComboboxField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAYvE,UAAU,yBACR,SAAQ,IAAI,CACV,kBAAkB,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,EACF,SAAS,CACV;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AASD,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CAoChD;AAED,UAAU,mCAAmC,CAC3C,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CACpE,SAAQ,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,iBAAS,8BAA8B,CACrC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EACpE,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EACR,EAAE,mCAAmC,CACpC,YAAY,EACZ,UAAU,CACX,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgBpB;AAED,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ComboboxField, useControllerMerged, } from '@baseplate-dev/ui-components';
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
import { FeatureUtils } from '#src/definition/index.js';
|
|
5
|
+
import { useProjectDefinition } from '../hooks/useProjectDefinition.js';
|
|
6
|
+
function createCreateOption(value) {
|
|
7
|
+
return {
|
|
8
|
+
label: `Create "${value}"`,
|
|
9
|
+
value,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function FeatureComboboxField({ canCreate, value, ...rest }) {
|
|
13
|
+
const { definition } = useProjectDefinition();
|
|
14
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
15
|
+
const featureOptions = useMemo(() => {
|
|
16
|
+
const baseFeatures = definition.features.map((feature) => ({
|
|
17
|
+
label: feature.name,
|
|
18
|
+
value: feature.id,
|
|
19
|
+
}));
|
|
20
|
+
if (!canCreate)
|
|
21
|
+
return baseFeatures;
|
|
22
|
+
const newFeatureName = searchQuery ? searchQuery : value;
|
|
23
|
+
const doesNewFeatureExist = !!baseFeatures.some((option) => option.label === newFeatureName || option.value === newFeatureName);
|
|
24
|
+
return !doesNewFeatureExist &&
|
|
25
|
+
newFeatureName &&
|
|
26
|
+
FeatureUtils.validateFeatureName(newFeatureName)
|
|
27
|
+
? [...baseFeatures, createCreateOption(newFeatureName)]
|
|
28
|
+
: baseFeatures;
|
|
29
|
+
}, [definition.features, searchQuery, value, canCreate]);
|
|
30
|
+
return (_jsx(ComboboxField, { placeholder: "Select a feature", ...rest, searchQuery: canCreate ? searchQuery : undefined, onSearchQueryChange: setSearchQuery, options: featureOptions, value: value }));
|
|
31
|
+
}
|
|
32
|
+
function FeatureComboboxFieldController({ name, control, ...rest }) {
|
|
33
|
+
const { field, fieldState: { error }, } = useControllerMerged({ name, control }, rest);
|
|
34
|
+
const restProps = rest;
|
|
35
|
+
return (_jsx(FeatureComboboxField, { error: error?.message, ...restProps, ...field, value: field.value ?? null }));
|
|
36
|
+
}
|
|
37
|
+
export { FeatureComboboxField, FeatureComboboxFieldController };
|
|
38
|
+
//# sourceMappingURL=FeatureComboboxField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureComboboxField.js","sourceRoot":"","sources":["../../../src/web/components/FeatureComboboxField.tsx"],"names":[],"mappings":";AAIA,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAaxE,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO;QACL,KAAK,EAAE,WAAW,KAAK,GAAG;QAC1B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACmB;IAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzD,KAAK,EAAE,OAAO,CAAC,IAAI;YACnB,KAAK,EAAE,OAAO,CAAC,EAAE;SAClB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS;YAAE,OAAO,YAAY,CAAC;QAEpC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;QAEzD,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAC7C,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,KAAK,KAAK,cAAc,IAAI,MAAM,CAAC,KAAK,KAAK,cAAc,CACrE,CAAC;QAEF,OAAO,CAAC,mBAAmB;YACzB,cAAc;YACd,YAAY,CAAC,mBAAmB,CAAC,cAAc,CAAC;YAChD,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACvD,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzD,OAAO,CACL,KAAC,aAAa,IACZ,WAAW,EAAC,kBAAkB,KAC1B,IAAI,EACR,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAChD,mBAAmB,EAAE,cAAc,EACnC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;AACJ,CAAC;AAUD,SAAS,8BAA8B,CAGrC,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EAIR;IACC,MAAM,EACJ,KAAK,EACL,UAAU,EAAE,EAAE,KAAK,EAAE,GACtB,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EAAE,OAAO,KACjB,SAAS,KACT,KAAK,EACT,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,GAC1B,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComboboxFieldProps } from '@baseplate-dev/ui-components';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
import type { Control, FieldPath, FieldValues } from 'react-hook-form';
|
|
4
|
+
interface ModelComboboxFieldProps extends Omit<ComboboxFieldProps<{
|
|
5
|
+
label: string;
|
|
6
|
+
value: string;
|
|
7
|
+
}>, 'options'> {
|
|
8
|
+
canCreate?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare function ModelComboboxField({ canCreate, value, ...rest }: ModelComboboxFieldProps): React.ReactElement;
|
|
11
|
+
interface ModelComboboxFieldControllerProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<ModelComboboxFieldProps, 'value'> {
|
|
12
|
+
control: Control<TFieldValues>;
|
|
13
|
+
name: TFieldName;
|
|
14
|
+
}
|
|
15
|
+
declare function ModelComboboxFieldController<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, control, ...rest }: ModelComboboxFieldControllerProps<TFieldValues, TFieldName>): React.JSX.Element;
|
|
16
|
+
export { ModelComboboxField, ModelComboboxFieldController };
|
|
17
|
+
//# sourceMappingURL=ModelComboboxField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelComboboxField.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModelComboboxField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAYvE,UAAU,uBACR,SAAQ,IAAI,CACV,kBAAkB,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,EACF,SAAS,CACV;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AASD,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAoC9C;AAED,UAAU,iCAAiC,CACzC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CACpE,SAAQ,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,iBAAS,4BAA4B,CACnC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EACpE,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EACR,EAAE,iCAAiC,CAClC,YAAY,EACZ,UAAU,CACX,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgBpB;AAED,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ComboboxField, useControllerMerged, } from '@baseplate-dev/ui-components';
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
import { ModelUtils } from '#src/definition/index.js';
|
|
5
|
+
import { useProjectDefinition } from '../hooks/useProjectDefinition.js';
|
|
6
|
+
function createCreateOption(value) {
|
|
7
|
+
return {
|
|
8
|
+
label: `Create "${value}"`,
|
|
9
|
+
value,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function ModelComboboxField({ canCreate, value, ...rest }) {
|
|
13
|
+
const { definition } = useProjectDefinition();
|
|
14
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
15
|
+
const modelOptions = useMemo(() => {
|
|
16
|
+
const baseModels = definition.models.map((model) => ({
|
|
17
|
+
label: model.name,
|
|
18
|
+
value: model.id,
|
|
19
|
+
}));
|
|
20
|
+
if (!canCreate)
|
|
21
|
+
return baseModels;
|
|
22
|
+
const newModelName = searchQuery ? searchQuery : value;
|
|
23
|
+
const doesNewModelExist = !!baseModels.some((option) => option.label === newModelName || option.value === newModelName);
|
|
24
|
+
return !doesNewModelExist &&
|
|
25
|
+
newModelName &&
|
|
26
|
+
ModelUtils.validateModelName(newModelName)
|
|
27
|
+
? [...baseModels, createCreateOption(newModelName)]
|
|
28
|
+
: baseModels;
|
|
29
|
+
}, [definition.models, searchQuery, value, canCreate]);
|
|
30
|
+
return (_jsx(ComboboxField, { placeholder: "Select a model", ...rest, searchQuery: canCreate ? searchQuery : undefined, onSearchQueryChange: setSearchQuery, options: modelOptions, value: value }));
|
|
31
|
+
}
|
|
32
|
+
function ModelComboboxFieldController({ name, control, ...rest }) {
|
|
33
|
+
const { field, fieldState: { error }, } = useControllerMerged({ name, control }, rest);
|
|
34
|
+
const restProps = rest;
|
|
35
|
+
return (_jsx(ModelComboboxField, { error: error?.message, ...restProps, ...field, value: field.value ?? null }));
|
|
36
|
+
}
|
|
37
|
+
export { ModelComboboxField, ModelComboboxFieldController };
|
|
38
|
+
//# sourceMappingURL=ModelComboboxField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelComboboxField.js","sourceRoot":"","sources":["../../../src/web/components/ModelComboboxField.tsx"],"names":[],"mappings":";AAIA,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAaxE,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO;QACL,KAAK,EAAE,WAAW,KAAK,GAAG;QAC1B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACiB;IACxB,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,KAAK,EAAE,KAAK,CAAC,EAAE;SAChB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS;YAAE,OAAO,UAAU,CAAC;QAElC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;QAEvD,MAAM,iBAAiB,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CACzC,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,KAAK,KAAK,YAAY,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,CACjE,CAAC;QAEF,OAAO,CAAC,iBAAiB;YACvB,YAAY;YACZ,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC;YAC1C,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC,CAAC,UAAU,CAAC;IACjB,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvD,OAAO,CACL,KAAC,aAAa,IACZ,WAAW,EAAC,gBAAgB,KACxB,IAAI,EACR,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAChD,mBAAmB,EAAE,cAAc,EACnC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;AACJ,CAAC;AAUD,SAAS,4BAA4B,CAGnC,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EAIR;IACC,MAAM,EACJ,KAAK,EACL,UAAU,EAAE,EAAE,KAAK,EAAE,GACtB,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,kBAAkB,IACjB,KAAK,EAAE,KAAK,EAAE,OAAO,KACjB,SAAS,KACT,KAAK,EACT,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,GAC1B,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ReactElement } from 'react';
|
|
2
|
+
import type { ModelMergerModelDiffResult } from '#src/tools/index.js';
|
|
3
|
+
interface Props {
|
|
4
|
+
pendingModelChanges: Record<string, ModelMergerModelDiffResult | undefined>;
|
|
5
|
+
}
|
|
6
|
+
export declare function ModelMergerResultAlert({ pendingModelChanges, }: Props): ReactElement | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ModelMergerResultAlert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelMergerResultAlert.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModelMergerResultAlert.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,CAAC,CAAC;CAC7E;AAED,wBAAgB,sBAAsB,CAAC,EACrC,mBAAmB,GACpB,EAAE,KAAK,GAAG,YAAY,GAAG,IAAI,CA6E7B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Alert, AlertDescription, AlertTitle, } from '@baseplate-dev/ui-components';
|
|
3
|
+
export function ModelMergerResultAlert({ pendingModelChanges, }) {
|
|
4
|
+
const changes = Object.values(pendingModelChanges).filter((change) => change !== undefined);
|
|
5
|
+
if (changes.length === 0) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
return (_jsx("div", { className: "space-y-4", children: changes.map((change) => (_jsxs(Alert, { variant: change.isNewModel ? 'default' : 'warning', children: [_jsxs(AlertTitle, { children: [change.isNewModel ? 'New Model' : 'Model Changes', ": ", change.name] }), _jsx(AlertDescription, { children: _jsxs("div", { className: "mt-2 space-y-2", children: [change.isNewModel ? (_jsx("p", { children: "This is a new model that will be created with the following configuration:" })) : (_jsx("p", { children: "The following changes will be applied to the model:" })), _jsxs("ul", { className: "list-disc pl-4 space-y-1", children: [change.changes['model.fields']?.length ? (_jsxs("li", { children: [_jsx("span", { className: "font-medium", children: change.changes['model.fields'].length }), ' ', "field(s) will be", change.isNewModel ? ' created' : ' added or updated'] })) : undefined, change.changes['model.relations']?.length ? (_jsxs("li", { children: [_jsx("span", { className: "font-medium", children: change.changes['model.relations'].length }), ' ', "relation(s) will be", change.isNewModel ? ' created' : ' added or updated'] })) : undefined, change.changes['model.uniqueConstraints']?.length ? (_jsxs("li", { children: [_jsx("span", { className: "font-medium", children: change.changes['model.uniqueConstraints'].length }), ' ', "unique constraint(s) will be", ' ', change.isNewModel ? 'created' : 'added or updated'] })) : undefined, change.changes['model.primaryKeyFieldRefs']?.length ? (_jsxs("li", { children: ["Primary key will be ", change.isNewModel ? 'set' : 'updated', ' ', "with", ' ', _jsx("span", { className: "font-medium", children: change.changes['model.primaryKeyFieldRefs'].length }), ' ', "field(s)"] })) : undefined] })] }) })] }, change.name))) }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ModelMergerResultAlert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelMergerResultAlert.js","sourceRoot":"","sources":["../../../src/web/components/ModelMergerResultAlert.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,UAAU,GACX,MAAM,8BAA8B,CAAC;AAStC,MAAM,UAAU,sBAAsB,CAAC,EACrC,mBAAmB,GACb;IACN,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,MAAM,CACvD,CAAC,MAAM,EAAwC,EAAE,CAAC,MAAM,KAAK,SAAS,CACvE,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,MAAC,KAAK,IAEJ,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,aAElD,MAAC,UAAU,eACR,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,QAAI,MAAM,CAAC,IAAI,IACtD,EACb,KAAC,gBAAgB,cACf,eAAK,SAAS,EAAC,gBAAgB,aAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CACnB,qGAGI,CACL,CAAC,CAAC,CAAC,CACF,8EAA0D,CAC3D,EAED,cAAI,SAAS,EAAC,0BAA0B,aACrC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CACxC,yBACE,eAAM,SAAS,EAAC,aAAa,YAC1B,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GACjC,EAAC,GAAG,sBAEV,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,IAClD,CACN,CAAC,CAAC,CAAC,SAAS,EAEZ,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAC3C,yBACE,eAAM,SAAS,EAAC,aAAa,YAC1B,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,GACpC,EAAC,GAAG,yBAEV,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,IAClD,CACN,CAAC,CAAC,CAAC,SAAS,EAEZ,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CACnD,yBACE,eAAM,SAAS,EAAC,aAAa,YAC1B,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,MAAM,GAC5C,EAAC,GAAG,kCACkB,GAAG,EAC/B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,IAChD,CACN,CAAC,CAAC,CAAC,SAAS,EAEZ,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CACrD,iDACuB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,UAC1D,GAAG,EACR,eAAM,SAAS,EAAC,aAAa,YAC1B,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,MAAM,GAC9C,EAAC,GAAG,gBAER,CACN,CAAC,CAAC,CAAC,SAAS,IACV,IACD,GACW,KA5Dd,MAAM,CAAC,IAAI,CA6DV,CACT,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ErrorHandlerValue {
|
|
2
|
+
formatError: (error: unknown) => string;
|
|
3
|
+
logError: (error: unknown) => void;
|
|
4
|
+
logAndFormatError: (error: unknown) => string;
|
|
5
|
+
}
|
|
6
|
+
export declare const ErrorHandlerContext: import("react").Context<ErrorHandlerValue | null>;
|
|
7
|
+
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/web/contexts/error-handler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,mDAE/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/web/contexts/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAQtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAC9C,IAAI,CACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './useBlockDirtyFormNavigate.js';
|
|
2
|
+
export * from './useBlockerDialog.js';
|
|
3
|
+
export * from './useBlockUnsavedChangesNavigate.js';
|
|
4
|
+
export * from './useErrorHandler.js';
|
|
5
|
+
export * from './usePluginEnhancedSchema.js';
|
|
6
|
+
export * from './useProjectDefinition.js';
|
|
7
|
+
export * from './useResettableForm.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './useBlockDirtyFormNavigate.js';
|
|
2
|
+
export * from './useBlockerDialog.js';
|
|
3
|
+
export * from './useBlockUnsavedChangesNavigate.js';
|
|
4
|
+
export * from './useErrorHandler.js';
|
|
5
|
+
export * from './usePluginEnhancedSchema.js';
|
|
6
|
+
export * from './useProjectDefinition.js';
|
|
7
|
+
export * from './useResettableForm.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { FieldValues, FormState } from 'react-hook-form';
|
|
2
|
+
export declare function useBlockDirtyFormNavigate<TFieldValues extends FieldValues = FieldValues>(formState: FormState<TFieldValues>, reset: () => void): void;
|
|
3
|
+
//# sourceMappingURL=useBlockDirtyFormNavigate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlockDirtyFormNavigate.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useBlockDirtyFormNavigate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI9D,wBAAgB,yBAAyB,CACvC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAW7D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useBlockerDialog } from './useBlockerDialog.js';
|
|
2
|
+
export function useBlockDirtyFormNavigate(formState, reset) {
|
|
3
|
+
useBlockerDialog({
|
|
4
|
+
disableBlock: !formState.isDirty,
|
|
5
|
+
title: 'Unsaved Changes',
|
|
6
|
+
content: 'You have unsaved changes. Are you sure you want to continue?',
|
|
7
|
+
buttonContinueText: 'Discard Changes',
|
|
8
|
+
onContinue: () => {
|
|
9
|
+
reset();
|
|
10
|
+
return true;
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=useBlockDirtyFormNavigate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlockDirtyFormNavigate.js","sourceRoot":"","sources":["../../../src/web/hooks/useBlockDirtyFormNavigate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,yBAAyB,CAEvC,SAAkC,EAAE,KAAiB;IACrD,gBAAgB,CAAC;QACf,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO;QAChC,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,8DAA8D;QACvE,kBAAkB,EAAE,iBAAiB;QACrC,UAAU,EAAE,GAAG,EAAE;YACf,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Control, type FieldValues } from 'react-hook-form';
|
|
2
|
+
export declare function useBlockUnsavedChangesNavigate<TFieldValues extends FieldValues = FieldValues>({ control, reset, onSubmit, }: {
|
|
3
|
+
control: Control<TFieldValues>;
|
|
4
|
+
reset: () => void;
|
|
5
|
+
onSubmit: (e?: React.BaseSyntheticEvent) => Promise<void>;
|
|
6
|
+
}): void;
|
|
7
|
+
//# sourceMappingURL=useBlockUnsavedChangesNavigate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlockUnsavedChangesNavigate.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useBlockUnsavedChangesNavigate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,iBAAiB,CAAC;AAI/E,wBAAgB,8BAA8B,CAC5C,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,EACA,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D,GAAG,IAAI,CAiDP"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { toast } from '@baseplate-dev/ui-components';
|
|
2
|
+
import { flattenObject } from 'es-toolkit';
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { useFormState } from 'react-hook-form';
|
|
5
|
+
import { useBlockerDialog } from './useBlockerDialog.js';
|
|
6
|
+
export function useBlockUnsavedChangesNavigate({ control, reset, onSubmit, }) {
|
|
7
|
+
const isDirtyRef = useRef(false);
|
|
8
|
+
const formState = useFormState({ control });
|
|
9
|
+
isDirtyRef.current = formState.isDirty;
|
|
10
|
+
if (import.meta.env.DEV) {
|
|
11
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks -- only want to run this check in dev mode for performance/usability reasons
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (Object.keys(formState.dirtyFields).length === 0 &&
|
|
14
|
+
formState.isDirty) {
|
|
15
|
+
// a bit of a hack to figure out what the issue is but OK since we only do this in dev mode
|
|
16
|
+
const { _formValues, _defaultValues } = control;
|
|
17
|
+
const formValueKeys = Object.keys(flattenObject(_formValues));
|
|
18
|
+
const defaultValueKeys = Object.keys(flattenObject(_defaultValues));
|
|
19
|
+
const missingKeys = formValueKeys.filter((key) => !defaultValueKeys.includes(key));
|
|
20
|
+
toast.error(`Form is dirty but no fields are marked as dirty. This implies that there is likely a field ` +
|
|
21
|
+
`is controlled but not set in defaultValues. This can be fixed by setting the default value to the field. ` +
|
|
22
|
+
`Note: You will only see this error if you are running the app in dev mode. ` +
|
|
23
|
+
`Missing fields: ${missingKeys.join(', ')}`);
|
|
24
|
+
}
|
|
25
|
+
}, [formState.dirtyFields, formState.isDirty, control]);
|
|
26
|
+
}
|
|
27
|
+
useBlockerDialog({
|
|
28
|
+
disableBlock: !formState.isDirty,
|
|
29
|
+
title: 'Unsaved Changes',
|
|
30
|
+
content: 'You have unsaved changes. Do you want to save your changes?',
|
|
31
|
+
buttonContinueWithoutSaveText: 'Discard Changes',
|
|
32
|
+
onContinueWithoutSave: () => {
|
|
33
|
+
reset();
|
|
34
|
+
return true;
|
|
35
|
+
},
|
|
36
|
+
buttonContinueText: 'Save',
|
|
37
|
+
onContinue: async () => {
|
|
38
|
+
await onSubmit();
|
|
39
|
+
// a bit of a hack to make sure we get the latest form state before continuing
|
|
40
|
+
// there's not an easy way of figuring out if the submission was successful or not
|
|
41
|
+
// so we wait for a React re-render and then check if the form is still dirty
|
|
42
|
+
await new Promise((resolve) => setTimeout(resolve, 1));
|
|
43
|
+
return !isDirtyRef.current;
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=useBlockUnsavedChangesNavigate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlockUnsavedChangesNavigate.js","sourceRoot":"","sources":["../../../src/web/hooks/useBlockUnsavedChangesNavigate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAkC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,8BAA8B,CAE5C,EACA,OAAO,EACP,KAAK,EACL,QAAQ,GAKT;IACC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAEvC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,mIAAmI;QACnI,SAAS,CAAC,GAAG,EAAE;YACb,IACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC;gBAC/C,SAAS,CAAC,OAAO,EACjB,CAAC;gBACD,2FAA2F;gBAC3F,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;gBAChD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC9D,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;gBACpE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CACzC,CAAC;gBAEF,KAAK,CAAC,KAAK,CACT,6FAA6F;oBAC3F,2GAA2G;oBAC3G,6EAA6E;oBAC7E,mBAAmB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;YACJ,CAAC;QACH,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB,CAAC;QACf,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO;QAChC,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,6DAA6D;QACtE,6BAA6B,EAAE,iBAAiB;QAChD,qBAAqB,EAAE,GAAG,EAAE;YAC1B,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,kBAAkB,EAAE,MAAM;QAC1B,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,QAAQ,EAAE,CAAC;YACjB,8EAA8E;YAC9E,kFAAkF;YAClF,6EAA6E;YAC7E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface UseBlockerDialogOptions {
|
|
2
|
+
disableBlock?: boolean;
|
|
3
|
+
title: string;
|
|
4
|
+
content: string;
|
|
5
|
+
/**
|
|
6
|
+
* Text for button enabling the user to continue without saving (discarding changes). If blank, no button with show.
|
|
7
|
+
*/
|
|
8
|
+
buttonContinueWithoutSaveText?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Action handler for when the user clicks the continue without saving button
|
|
11
|
+
*
|
|
12
|
+
* @returns true if the user should be allowed to continue, false if the user should be blocked from continuing
|
|
13
|
+
*/
|
|
14
|
+
onContinueWithoutSave?: () => Promise<boolean> | boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Text for button enabling the user to continue
|
|
17
|
+
*/
|
|
18
|
+
buttonContinueText?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Action handler for when the user clicks the continue button
|
|
21
|
+
*
|
|
22
|
+
* @returns true if the user should be allowed to continue, false if the user should be blocked from continuing
|
|
23
|
+
*/
|
|
24
|
+
onContinue?: () => Promise<boolean> | boolean;
|
|
25
|
+
}
|
|
26
|
+
interface UseBlockerDialogOptionsWithId extends UseBlockerDialogOptions {
|
|
27
|
+
id: string;
|
|
28
|
+
}
|
|
29
|
+
interface RequestBlockerOptions {
|
|
30
|
+
onContinue: () => void;
|
|
31
|
+
}
|
|
32
|
+
interface UseBlockerDialogState {
|
|
33
|
+
activeBlockers: UseBlockerDialogOptionsWithId[];
|
|
34
|
+
addBlocker: (options: UseBlockerDialogOptionsWithId) => void;
|
|
35
|
+
removeBlocker: (id: string) => void;
|
|
36
|
+
requestedBlockers: RequestBlockerOptions[];
|
|
37
|
+
requestBlocker: (options: RequestBlockerOptions) => void;
|
|
38
|
+
clearRequestedBlockers: () => void;
|
|
39
|
+
}
|
|
40
|
+
export declare const useBlockerDialogState: import("zustand").UseBoundStore<import("zustand").StoreApi<UseBlockerDialogState>>;
|
|
41
|
+
export declare function useBlockBeforeContinue(): (options: RequestBlockerOptions) => void;
|
|
42
|
+
export declare function useBlockerDialog(options: UseBlockerDialogOptions): void;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=useBlockerDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlockerDialog.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useBlockerDialog.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzD;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC/C;AAED,UAAU,6BAA8B,SAAQ,uBAAuB;IACrE,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,UAAU,qBAAqB;IAC7B,cAAc,EAAE,6BAA6B,EAAE,CAAC;IAChD,UAAU,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,cAAc,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzD,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,qBAAqB,oFAyB/B,CAAC;AAEJ,wBAAgB,sBAAsB,IAAI,CACxC,OAAO,EAAE,qBAAqB,KAC3B,IAAI,CAsBR;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAmCvE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { useEffect, useId } from 'react';
|
|
2
|
+
import { create } from 'zustand';
|
|
3
|
+
export const useBlockerDialogState = create((set) => ({
|
|
4
|
+
activeBlockers: [],
|
|
5
|
+
addBlocker: (options) => {
|
|
6
|
+
set((state) => ({
|
|
7
|
+
activeBlockers: [...state.activeBlockers, options],
|
|
8
|
+
}));
|
|
9
|
+
},
|
|
10
|
+
removeBlocker: (id) => {
|
|
11
|
+
set((state) => ({
|
|
12
|
+
activeBlockers: state.activeBlockers.filter((blocker) => blocker.id !== id),
|
|
13
|
+
}));
|
|
14
|
+
},
|
|
15
|
+
requestedBlockers: [],
|
|
16
|
+
requestBlocker(options) {
|
|
17
|
+
set((state) => ({
|
|
18
|
+
requestedBlockers: [...state.requestedBlockers, options],
|
|
19
|
+
}));
|
|
20
|
+
},
|
|
21
|
+
clearRequestedBlockers: () => {
|
|
22
|
+
set(() => ({
|
|
23
|
+
requestedBlockers: [],
|
|
24
|
+
}));
|
|
25
|
+
},
|
|
26
|
+
}));
|
|
27
|
+
export function useBlockBeforeContinue() {
|
|
28
|
+
const hasActiveBlockers = useBlockerDialogState((state) => state.activeBlockers.length > 0);
|
|
29
|
+
const clearRequestedBlockers = useBlockerDialogState((state) => state.clearRequestedBlockers);
|
|
30
|
+
// make sure we clear any blocker requests if we navigate away
|
|
31
|
+
useEffect(() => () => {
|
|
32
|
+
clearRequestedBlockers();
|
|
33
|
+
}, [clearRequestedBlockers]);
|
|
34
|
+
const requestBlocker = useBlockerDialogState((state) => state.requestBlocker);
|
|
35
|
+
// if no blockers, continue immediately
|
|
36
|
+
if (!hasActiveBlockers) {
|
|
37
|
+
return ({ onContinue }) => {
|
|
38
|
+
onContinue();
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return requestBlocker;
|
|
42
|
+
}
|
|
43
|
+
export function useBlockerDialog(options) {
|
|
44
|
+
const id = useId();
|
|
45
|
+
const addBlocker = useBlockerDialogState((state) => state.addBlocker);
|
|
46
|
+
const removeBlocker = useBlockerDialogState((state) => state.removeBlocker);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (options.disableBlock) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
addBlocker({
|
|
52
|
+
disableBlock: options.disableBlock,
|
|
53
|
+
title: options.title,
|
|
54
|
+
content: options.content,
|
|
55
|
+
buttonContinueWithoutSaveText: options.buttonContinueWithoutSaveText,
|
|
56
|
+
onContinueWithoutSave: options.onContinueWithoutSave,
|
|
57
|
+
buttonContinueText: options.buttonContinueText,
|
|
58
|
+
onContinue: options.onContinue,
|
|
59
|
+
id,
|
|
60
|
+
});
|
|
61
|
+
return () => {
|
|
62
|
+
removeBlocker(id);
|
|
63
|
+
};
|
|
64
|
+
}, [
|
|
65
|
+
addBlocker,
|
|
66
|
+
removeBlocker,
|
|
67
|
+
options.disableBlock,
|
|
68
|
+
options.buttonContinueWithoutSaveText,
|
|
69
|
+
options.onContinueWithoutSave,
|
|
70
|
+
options.buttonContinueText,
|
|
71
|
+
options.content,
|
|
72
|
+
options.title,
|
|
73
|
+
options.onContinue,
|
|
74
|
+
id,
|
|
75
|
+
]);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=useBlockerDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlockerDialog.js","sourceRoot":"","sources":["../../../src/web/hooks/useBlockerDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AA6CjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAwB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3E,cAAc,EAAE,EAAE;IAClB,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE;QACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;IACD,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE;QACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CACzC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAC/B;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IACD,iBAAiB,EAAE,EAAE;IACrB,cAAc,CAAC,OAAO;QACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,iBAAiB,EAAE,CAAC,GAAG,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACzD,CAAC,CAAC,CAAC;IACN,CAAC;IACD,sBAAsB,EAAE,GAAG,EAAE;QAC3B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACT,iBAAiB,EAAE,EAAE;SACtB,CAAC,CAAC,CAAC;IACN,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,sBAAsB;IAGpC,MAAM,iBAAiB,GAAG,qBAAqB,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAC3C,CAAC;IACF,MAAM,sBAAsB,GAAG,qBAAqB,CAClD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,sBAAsB,CACxC,CAAC;IACF,8DAA8D;IAC9D,SAAS,CACP,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,sBAAsB,EAAE,CAAC;IAC3B,CAAC,EACD,CAAC,sBAAsB,CAAC,CACzB,CAAC;IACF,MAAM,cAAc,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9E,uCAAuC;IACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;YACxB,UAAU,EAAE,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,MAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE5E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,UAAU,CAAC;YACT,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,6BAA6B,EAAE,OAAO,CAAC,6BAA6B;YACpE,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,EAAE;SACH,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,UAAU;QACV,aAAa;QACb,OAAO,CAAC,YAAY;QACpB,OAAO,CAAC,6BAA6B;QACrC,OAAO,CAAC,qBAAqB;QAC7B,OAAO,CAAC,kBAAkB;QAC1B,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,UAAU;QAClB,EAAE;KACH,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useErrorHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAItE,wBAAgB,eAAe,IAAI,iBAAiB,CAUnD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { ErrorHandlerContext } from '../contexts/error-handler.js';
|
|
3
|
+
export function useErrorHandler() {
|
|
4
|
+
const context = useContext(ErrorHandlerContext);
|
|
5
|
+
if (!context) {
|
|
6
|
+
throw new Error('useErrorHandler must be used within an ErrorHandlerContext');
|
|
7
|
+
}
|
|
8
|
+
return context;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=useErrorHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useErrorHandler.js","sourceRoot":"","sources":["../../../src/web/hooks/useErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAInC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAEhD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePluginEnhancedSchema.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/usePluginEnhancedSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAM9D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC5D,MAAM,EAAE,CAAC,GACR,gBAAgB,CAAC,CAAC,CAAC,CAMrB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { zPluginWrapper } from '#src/plugins/index.js';
|
|
3
|
+
import { useProjectDefinition } from './useProjectDefinition.js';
|
|
4
|
+
export function usePluginEnhancedSchema(schema) {
|
|
5
|
+
const { pluginContainer } = useProjectDefinition();
|
|
6
|
+
return useMemo(() => zPluginWrapper(schema, pluginContainer), [schema, pluginContainer]);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=usePluginEnhancedSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePluginEnhancedSchema.js","sourceRoot":"","sources":["../../../src/web/hooks/usePluginEnhancedSchema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,uBAAuB,CACrC,MAAS;IAET,MAAM,EAAE,eAAe,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACnD,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,CAAC,MAAM,EAAE,eAAe,CAAC,CAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js';
|
|
3
|
+
import type { SchemaParserContext } from '#src/parser/types.js';
|
|
4
|
+
import type { PluginImplementationStore } from '#src/plugins/index.js';
|
|
5
|
+
import type { ProjectDefinition } from '#src/schema/project-definition.js';
|
|
6
|
+
/**
|
|
7
|
+
* A function that sets the project definition.
|
|
8
|
+
*
|
|
9
|
+
* This can be a function that returns a new project definition, or a function that
|
|
10
|
+
* mutates the existing project definition (using Immer).
|
|
11
|
+
*/
|
|
12
|
+
export type ProjectDefinitionSetter = (draftConfig: ProjectDefinition) => void;
|
|
13
|
+
export interface SaveDefinitionWithFeedbackOptions {
|
|
14
|
+
disableDeleteRefDialog?: boolean;
|
|
15
|
+
successMessage?: string;
|
|
16
|
+
onSuccess?: () => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The result of the `useProjectDefinition` hook.
|
|
20
|
+
*/
|
|
21
|
+
export interface UseProjectDefinitionResult {
|
|
22
|
+
/**
|
|
23
|
+
* The current project definition.
|
|
24
|
+
*/
|
|
25
|
+
definition: ProjectDefinition;
|
|
26
|
+
/**
|
|
27
|
+
* The project definition container.
|
|
28
|
+
*/
|
|
29
|
+
definitionContainer: ProjectDefinitionContainer;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the project definition has been updated externally.
|
|
32
|
+
*/
|
|
33
|
+
updatedExternally: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Save the project definition.
|
|
36
|
+
*/
|
|
37
|
+
saveDefinition: (definition: ProjectDefinitionSetter) => Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Save the project definition with feedback showing a toast
|
|
40
|
+
* when there are errors or a success message when the definition is saved.
|
|
41
|
+
*/
|
|
42
|
+
saveDefinitionWithFeedback: (definition: ProjectDefinitionSetter, options?: SaveDefinitionWithFeedbackOptions) => Promise<{
|
|
43
|
+
success: boolean;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Save the project definition with feedback showing a toast
|
|
47
|
+
* when there are errors or a success message when the definition is saved.
|
|
48
|
+
*/
|
|
49
|
+
saveDefinitionWithFeedbackSync: (definition: ProjectDefinitionSetter, options?: SaveDefinitionWithFeedbackOptions) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Whether the project definition is being saved.
|
|
52
|
+
*/
|
|
53
|
+
isSavingDefinition: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The plugin container.
|
|
56
|
+
*/
|
|
57
|
+
pluginContainer: PluginImplementationStore;
|
|
58
|
+
/**
|
|
59
|
+
* The schema parser context.
|
|
60
|
+
*/
|
|
61
|
+
schemaParserContext: SchemaParserContext;
|
|
62
|
+
}
|
|
63
|
+
export declare const ProjectDefinitionContext: React.Context<UseProjectDefinitionResult | null>;
|
|
64
|
+
export declare function useProjectDefinition(): UseProjectDefinitionResult;
|
|
65
|
+
//# sourceMappingURL=useProjectDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProjectDefinition.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useProjectDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE/E,MAAM,WAAW,iCAAiC;IAChD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,UAAU,EAAE,iBAAiB,CAAC;IAC9B;;OAEG;IACH,mBAAmB,EAAE,0BAA0B,CAAC;IAChD;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE;;;OAGG;IACH,0BAA0B,EAAE,CAC1B,UAAU,EAAE,uBAAuB,EACnC,OAAO,CAAC,EAAE,iCAAiC,KACxC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC;;;OAGG;IACH,8BAA8B,EAAE,CAC9B,UAAU,EAAE,uBAAuB,EACnC,OAAO,CAAC,EAAE,iCAAiC,KACxC,IAAI,CAAC;IACV;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,eAAe,EAAE,yBAAyB,CAAC;IAC3C;;OAEG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAED,eAAO,MAAM,wBAAwB,kDACyB,CAAC;AAE/D,wBAAgB,oBAAoB,IAAI,0BAA0B,CAQjE"}
|