@cyberskill/shared 2.28.0 → 3.1.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.
- package/dist/config/commitlint/index.js +1 -0
- package/dist/config/commitlint/index.js.map +1 -0
- package/dist/config/config.test.unit.d.ts +1 -0
- package/dist/config/config.type.js +1 -0
- package/dist/config/config.type.js.map +1 -0
- package/dist/config/config.type.test.unit.d.ts +1 -0
- package/dist/config/config.util.js +25 -33
- package/dist/config/config.util.js.map +1 -0
- package/dist/config/env/env.constant.js +1 -0
- package/dist/config/env/env.constant.js.map +1 -0
- package/dist/config/env/env.util.js +1 -0
- package/dist/config/env/env.util.js.map +1 -0
- package/dist/config/env/index.js +1 -0
- package/dist/config/env/index.js.map +1 -0
- package/dist/config/eslint/index.d.ts +4 -0
- package/dist/config/eslint/index.js +5 -12
- package/dist/config/eslint/index.js.map +1 -0
- package/dist/config/graphql-codegen/graphql-codegen.util.js +29 -33
- package/dist/config/graphql-codegen/graphql-codegen.util.js.map +1 -0
- package/dist/config/graphql-codegen/index.js +1 -0
- package/dist/config/graphql-codegen/index.js.map +1 -0
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/lint-staged/index.js +1 -0
- package/dist/config/lint-staged/index.js.map +1 -0
- package/dist/config/storybook/index.js +1 -0
- package/dist/config/storybook/index.js.map +1 -0
- package/dist/config/storybook/storybook.main.js +1 -0
- package/dist/config/storybook/storybook.main.js.map +1 -0
- package/dist/config/storybook/storybook.preview.js +11 -13
- package/dist/config/storybook/storybook.preview.js.map +1 -0
- package/dist/config/vitest/index.js +1 -0
- package/dist/config/vitest/index.js.map +1 -0
- package/dist/config/vitest/vitest.e2e.js +2 -1
- package/dist/config/vitest/vitest.e2e.js.map +1 -0
- package/dist/config/vitest/vitest.unit.js +20 -8
- package/dist/config/vitest/vitest.unit.js.map +1 -0
- package/dist/constant/common.js +2 -1
- package/dist/constant/common.js.map +1 -0
- package/dist/constant/constant.test.unit.d.ts +1 -0
- package/dist/constant/index.js +1 -0
- package/dist/constant/index.js.map +1 -0
- package/dist/constant/response-status.js +1 -0
- package/dist/constant/response-status.js.map +1 -0
- package/dist/node/apollo-server/apollo-server.util.js +22 -48
- package/dist/node/apollo-server/apollo-server.util.js.map +1 -0
- package/dist/node/apollo-server/index.js +1 -0
- package/dist/node/apollo-server/index.js.map +1 -0
- package/dist/node/cli/index.js +110 -165
- package/dist/node/cli/index.js.map +1 -0
- package/dist/node/command/command.test.unit.d.ts +1 -0
- package/dist/node/command/command.type.js +1 -0
- package/dist/node/command/command.type.js.map +1 -0
- package/dist/node/command/command.util.js +142 -169
- package/dist/node/command/command.util.js.map +1 -0
- package/dist/node/command/index.js +1 -0
- package/dist/node/command/index.js.map +1 -0
- package/dist/node/express/express.type.d.ts +4 -0
- package/dist/node/express/express.util.js +56 -71
- package/dist/node/express/express.util.js.map +1 -0
- package/dist/node/express/index.js +1 -0
- package/dist/node/express/index.js.map +1 -0
- package/dist/node/fs/fs.test.unit.d.ts +1 -0
- package/dist/node/fs/fs.util.js +46 -60
- package/dist/node/fs/fs.util.js.map +1 -0
- package/dist/node/fs/index.js +1 -0
- package/dist/node/fs/index.js.map +1 -0
- package/dist/node/log/index.js +1 -0
- package/dist/node/log/index.js.map +1 -0
- package/dist/node/log/log.test.unit.d.ts +1 -0
- package/dist/node/log/log.type.js +1 -0
- package/dist/node/log/log.type.js.map +1 -0
- package/dist/node/log/log.util.js +30 -30
- package/dist/node/log/log.util.js.map +1 -0
- package/dist/node/mongo/index.d.ts +2 -0
- package/dist/node/mongo/index.js +21 -12
- package/dist/node/mongo/index.js.map +1 -0
- package/dist/node/mongo/mongo.constant.js +1 -0
- package/dist/node/mongo/mongo.constant.js.map +1 -0
- package/dist/node/mongo/mongo.controller.d.ts +5 -315
- package/dist/node/mongo/mongo.controller.mongoose.d.ts +234 -0
- package/dist/node/mongo/mongo.controller.mongoose.js +468 -0
- package/dist/node/mongo/mongo.controller.mongoose.js.map +1 -0
- package/dist/node/mongo/mongo.controller.native.d.ts +84 -0
- package/dist/node/mongo/mongo.controller.native.js +214 -0
- package/dist/node/mongo/mongo.controller.native.js.map +1 -0
- package/dist/node/mongo/mongo.dynamic-populate.d.ts +61 -0
- package/dist/node/mongo/mongo.dynamic-populate.js +197 -0
- package/dist/node/mongo/mongo.dynamic-populate.js.map +1 -0
- package/dist/node/mongo/mongo.populate.d.ts +15 -0
- package/dist/node/mongo/mongo.populate.js +269 -0
- package/dist/node/mongo/mongo.populate.js.map +1 -0
- package/dist/node/mongo/mongo.type.js +1 -0
- package/dist/node/mongo/mongo.type.js.map +1 -0
- package/dist/node/mongo/mongo.util.d.ts +52 -0
- package/dist/node/mongo/mongo.util.js +111 -409
- package/dist/node/mongo/mongo.util.js.map +1 -0
- package/dist/node/package/index.js +1 -0
- package/dist/node/package/index.js.map +1 -0
- package/dist/node/package/package.test.unit.d.ts +1 -0
- package/dist/node/package/package.type.js +1 -0
- package/dist/node/package/package.type.js.map +1 -0
- package/dist/node/package/package.util.js +197 -226
- package/dist/node/package/package.util.js.map +1 -0
- package/dist/node/path/index.js +27 -25
- package/dist/node/path/index.js.map +1 -0
- package/dist/node/path/path.constant.d.ts +2 -0
- package/dist/node/path/path.constant.js +131 -150
- package/dist/node/path/path.constant.js.map +1 -0
- package/dist/node/path/path.util.js +1 -0
- package/dist/node/path/path.util.js.map +1 -0
- package/dist/node/storage/index.js +1 -0
- package/dist/node/storage/index.js.map +1 -0
- package/dist/node/storage/storage.constant.js +1 -0
- package/dist/node/storage/storage.constant.js.map +1 -0
- package/dist/node/storage/storage.util.js +111 -158
- package/dist/node/storage/storage.util.js.map +1 -0
- package/dist/node/upload/index.js +1 -0
- package/dist/node/upload/index.js.map +1 -0
- package/dist/node/upload/upload.constant.js +1 -0
- package/dist/node/upload/upload.constant.js.map +1 -0
- package/dist/node/upload/upload.type.js +1 -0
- package/dist/node/upload/upload.type.js.map +1 -0
- package/dist/node/upload/upload.util.js +120 -150
- package/dist/node/upload/upload.util.js.map +1 -0
- package/dist/node/ws/index.d.ts +1 -1
- package/dist/node/ws/index.js +2 -1
- package/dist/node/ws/index.js.map +1 -0
- package/dist/node/ws/ws.util.js +46 -0
- package/dist/node/ws/ws.util.js.map +1 -0
- package/dist/node_modules/.pnpm/{vitest@4.0.18_@types_node@25.3.0_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2 → vitest@4.0.18_@types_node@25.3.3_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2}/node_modules/vitest/dist/config.js +1 -0
- package/dist/node_modules/.pnpm/vitest@4.0.18_@types_node@25.3.3_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2/node_modules/vitest/dist/config.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.component.js +5 -4
- package/dist/react/apollo-client/apollo-client.component.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.constant.js +1 -0
- package/dist/react/apollo-client/apollo-client.constant.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.context.js +1 -0
- package/dist/react/apollo-client/apollo-client.context.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.module.scss.js +1 -0
- package/dist/react/apollo-client/apollo-client.module.scss.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.util.js +52 -58
- package/dist/react/apollo-client/apollo-client.util.js.map +1 -0
- package/dist/react/apollo-client/index.js +1 -0
- package/dist/react/apollo-client/index.js.map +1 -0
- package/dist/react/apollo-client/links/index.js +1 -0
- package/dist/react/apollo-client/links/index.js.map +1 -0
- package/dist/react/apollo-client/links/upload.js +72 -74
- package/dist/react/apollo-client/links/upload.js.map +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.js +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.js.map +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.rsc.js +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.rsc.js.map +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.util.js +12 -18
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.util.js.map +1 -0
- package/dist/react/apollo-client-nextjs/index.js +1 -0
- package/dist/react/apollo-client-nextjs/index.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.component.js +62 -23
- package/dist/react/apollo-error/apollo-error.component.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.context.js +1 -0
- package/dist/react/apollo-error/apollo-error.context.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.hook.js +1 -0
- package/dist/react/apollo-error/apollo-error.hook.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.module.scss.js +7 -6
- package/dist/react/apollo-error/apollo-error.module.scss.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.provider.js +1 -0
- package/dist/react/apollo-error/apollo-error.provider.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.test.unit.d.ts +1 -0
- package/dist/react/apollo-error/apollo-error.util.js +7 -6
- package/dist/react/apollo-error/apollo-error.util.js.map +1 -0
- package/dist/react/apollo-error/index.js +1 -0
- package/dist/react/apollo-error/index.js.map +1 -0
- package/dist/react/i18next/i18next.hook.js +1 -0
- package/dist/react/i18next/i18next.hook.js.map +1 -0
- package/dist/react/i18next/i18next.util.js +1 -0
- package/dist/react/i18next/i18next.util.js.map +1 -0
- package/dist/react/i18next/index.js +1 -0
- package/dist/react/i18next/index.js.map +1 -0
- package/dist/react/loading/index.js +1 -0
- package/dist/react/loading/index.js.map +1 -0
- package/dist/react/loading/loading.component.js +31 -46
- package/dist/react/loading/loading.component.js.map +1 -0
- package/dist/react/loading/loading.context.js +1 -0
- package/dist/react/loading/loading.context.js.map +1 -0
- package/dist/react/loading/loading.hook.js +1 -0
- package/dist/react/loading/loading.hook.js.map +1 -0
- package/dist/react/loading/loading.module.scss.js +1 -0
- package/dist/react/loading/loading.module.scss.js.map +1 -0
- package/dist/react/loading/loading.provider.js +1 -0
- package/dist/react/loading/loading.provider.js.map +1 -0
- package/dist/react/log/index.js +1 -0
- package/dist/react/log/index.js.map +1 -0
- package/dist/react/log/log.util.js +5 -4
- package/dist/react/log/log.util.js.map +1 -0
- package/dist/react/next-intl/index.js +1 -0
- package/dist/react/next-intl/index.js.map +1 -0
- package/dist/react/next-intl/next-intl.constant.js +1 -0
- package/dist/react/next-intl/next-intl.constant.js.map +1 -0
- package/dist/react/next-intl/next-intl.context.js +1 -0
- package/dist/react/next-intl/next-intl.context.js.map +1 -0
- package/dist/react/next-intl/next-intl.hoc.js +14 -22
- package/dist/react/next-intl/next-intl.hoc.js.map +1 -0
- package/dist/react/next-intl/next-intl.hook.js +1 -0
- package/dist/react/next-intl/next-intl.hook.js.map +1 -0
- package/dist/react/next-intl/next-intl.provider.js +8 -7
- package/dist/react/next-intl/next-intl.provider.js.map +1 -0
- package/dist/react/storage/index.js +1 -0
- package/dist/react/storage/index.js.map +1 -0
- package/dist/react/storage/storage.hook.js +44 -59
- package/dist/react/storage/storage.hook.js.map +1 -0
- package/dist/react/storage/storage.test.unit.d.ts +1 -0
- package/dist/react/storage/storage.util.js +29 -53
- package/dist/react/storage/storage.util.js.map +1 -0
- package/dist/react/toast/index.js +1 -0
- package/dist/react/toast/index.js.map +1 -0
- package/dist/react/userback/index.js +1 -0
- package/dist/react/userback/index.js.map +1 -0
- package/dist/react/userback/userback.component.js +19 -42
- package/dist/react/userback/userback.component.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/typescript/common.type.js +1 -0
- package/dist/typescript/common.type.js.map +1 -0
- package/dist/typescript/index.js +1 -0
- package/dist/typescript/index.js.map +1 -0
- package/dist/typescript/typescript.test.unit.d.ts +1 -0
- package/dist/util/common/common.util.d.ts +2 -0
- package/dist/util/common/common.util.js +30 -37
- package/dist/util/common/common.util.js.map +1 -0
- package/dist/util/common/index.js +1 -0
- package/dist/util/common/index.js.map +1 -0
- package/dist/util/index.js +11 -9
- package/dist/util/index.js.map +1 -0
- package/dist/util/object/index.js +1 -0
- package/dist/util/object/index.js.map +1 -0
- package/dist/util/object/object.util.js +73 -76
- package/dist/util/object/object.util.js.map +1 -0
- package/dist/util/serializer/index.js +1 -0
- package/dist/util/serializer/index.js.map +1 -0
- package/dist/util/serializer/serializer.util.js +1 -0
- package/dist/util/serializer/serializer.util.js.map +1 -0
- package/dist/util/string/index.js +5 -3
- package/dist/util/string/index.js.map +1 -0
- package/dist/util/string/string.util.d.ts +12 -0
- package/dist/util/string/string.util.js +64 -44
- package/dist/util/string/string.util.js.map +1 -0
- package/dist/util/validate/index.js +1 -0
- package/dist/util/validate/index.js.map +1 -0
- package/dist/util/validate/validate.util.js +1 -0
- package/dist/util/validate/validate.util.js.map +1 -0
- package/package.json +76 -96
- package/public/tsconfig.base.json +7 -3
- package/README.md +0 -470
- package/dist/config/commitlint/index.cjs +0 -1
- package/dist/config/config.type.cjs +0 -1
- package/dist/config/config.util.cjs +0 -1
- package/dist/config/env/env.constant.cjs +0 -1
- package/dist/config/env/env.util.cjs +0 -1
- package/dist/config/env/index.cjs +0 -1
- package/dist/config/eslint/index.cjs +0 -1
- package/dist/config/graphql-codegen/graphql-codegen.util.cjs +0 -1
- package/dist/config/graphql-codegen/index.cjs +0 -1
- package/dist/config/index.cjs +0 -1
- package/dist/config/lint-staged/index.cjs +0 -1
- package/dist/config/storybook/index.cjs +0 -1
- package/dist/config/storybook/storybook.main.cjs +0 -1
- package/dist/config/storybook/storybook.preview.cjs +0 -1
- package/dist/config/vitest/index.cjs +0 -1
- package/dist/config/vitest/vitest.e2e.cjs +0 -1
- package/dist/config/vitest/vitest.unit.cjs +0 -1
- package/dist/constant/common.cjs +0 -1
- package/dist/constant/index.cjs +0 -1
- package/dist/constant/response-status.cjs +0 -1
- package/dist/node/apollo-server/apollo-server.util.cjs +0 -1
- package/dist/node/apollo-server/index.cjs +0 -1
- package/dist/node/cli/index.cjs +0 -3
- package/dist/node/command/command.type.cjs +0 -1
- package/dist/node/command/command.util.cjs +0 -2
- package/dist/node/command/index.cjs +0 -1
- package/dist/node/express/express.util.cjs +0 -1
- package/dist/node/express/index.cjs +0 -1
- package/dist/node/fs/fs.util.cjs +0 -4
- package/dist/node/fs/index.cjs +0 -1
- package/dist/node/log/index.cjs +0 -1
- package/dist/node/log/log.type.cjs +0 -1
- package/dist/node/log/log.util.cjs +0 -1
- package/dist/node/mongo/index.cjs +0 -1
- package/dist/node/mongo/mongo.constant.cjs +0 -1
- package/dist/node/mongo/mongo.controller.cjs +0 -1
- package/dist/node/mongo/mongo.controller.js +0 -956
- package/dist/node/mongo/mongo.type.cjs +0 -1
- package/dist/node/mongo/mongo.util.cjs +0 -2
- package/dist/node/package/index.cjs +0 -1
- package/dist/node/package/package.type.cjs +0 -1
- package/dist/node/package/package.util.cjs +0 -1
- package/dist/node/path/index.cjs +0 -1
- package/dist/node/path/path.constant.cjs +0 -1
- package/dist/node/path/path.util.cjs +0 -1
- package/dist/node/storage/index.cjs +0 -1
- package/dist/node/storage/storage.constant.cjs +0 -1
- package/dist/node/storage/storage.util.cjs +0 -1
- package/dist/node/upload/index.cjs +0 -1
- package/dist/node/upload/upload.constant.cjs +0 -1
- package/dist/node/upload/upload.type.cjs +0 -1
- package/dist/node/upload/upload.util.cjs +0 -1
- package/dist/node/ws/index.cjs +0 -1
- package/dist/node/ws/ts.util.cjs +0 -1
- package/dist/node/ws/ts.util.js +0 -68
- package/dist/node_modules/.pnpm/vitest@4.0.18_@types_node@25.3.0_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2/node_modules/vitest/dist/config.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.component.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.constant.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.context.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.module.scss.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.util.cjs +0 -1
- package/dist/react/apollo-client/index.cjs +0 -1
- package/dist/react/apollo-client/links/index.cjs +0 -1
- package/dist/react/apollo-client/links/upload.cjs +0 -1
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.cjs +0 -1
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.rsc.cjs +0 -1
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.util.cjs +0 -1
- package/dist/react/apollo-client-nextjs/index.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.component.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.context.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.hook.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.module.scss.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.provider.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.util.cjs +0 -1
- package/dist/react/apollo-error/index.cjs +0 -1
- package/dist/react/i18next/i18next.hook.cjs +0 -1
- package/dist/react/i18next/i18next.util.cjs +0 -1
- package/dist/react/i18next/index.cjs +0 -1
- package/dist/react/loading/index.cjs +0 -1
- package/dist/react/loading/loading.component.cjs +0 -6
- package/dist/react/loading/loading.context.cjs +0 -1
- package/dist/react/loading/loading.hook.cjs +0 -1
- package/dist/react/loading/loading.module.scss.cjs +0 -1
- package/dist/react/loading/loading.provider.cjs +0 -1
- package/dist/react/log/index.cjs +0 -1
- package/dist/react/log/log.util.cjs +0 -1
- package/dist/react/next-intl/index.cjs +0 -1
- package/dist/react/next-intl/next-intl.constant.cjs +0 -1
- package/dist/react/next-intl/next-intl.context.cjs +0 -1
- package/dist/react/next-intl/next-intl.hoc.cjs +0 -1
- package/dist/react/next-intl/next-intl.hook.cjs +0 -1
- package/dist/react/next-intl/next-intl.provider.cjs +0 -1
- package/dist/react/storage/index.cjs +0 -1
- package/dist/react/storage/storage.hook.cjs +0 -1
- package/dist/react/storage/storage.util.cjs +0 -1
- package/dist/react/toast/index.cjs +0 -1
- package/dist/react/userback/index.cjs +0 -1
- package/dist/react/userback/userback.component.cjs +0 -1
- package/dist/typescript/common.type.cjs +0 -1
- package/dist/typescript/index.cjs +0 -1
- package/dist/util/common/common.util.cjs +0 -1
- package/dist/util/common/index.cjs +0 -1
- package/dist/util/index.cjs +0 -1
- package/dist/util/object/index.cjs +0 -1
- package/dist/util/object/object.util.cjs +0 -1
- package/dist/util/serializer/index.cjs +0 -1
- package/dist/util/serializer/serializer.util.cjs +0 -1
- package/dist/util/string/index.cjs +0 -1
- package/dist/util/string/string.util.cjs +0 -1
- package/dist/util/validate/index.cjs +0 -1
- package/dist/util/validate/validate.util.cjs +0 -1
- /package/dist/node/ws/{ts.util.d.ts → ws.util.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,65 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as
|
|
3
|
-
import { useEffect as
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
for (var t in r || (r = {}))
|
|
7
|
-
u.call(r, t) && f(e, t, r[t]);
|
|
8
|
-
if (i)
|
|
9
|
-
for (var t of i(r))
|
|
10
|
-
v.call(r, t) && f(e, t, r[t]);
|
|
11
|
-
return e;
|
|
12
|
-
}, E = (e, r) => {
|
|
13
|
-
var t = {};
|
|
14
|
-
for (var a in e)
|
|
15
|
-
u.call(e, a) && r.indexOf(a) < 0 && (t[a] = e[a]);
|
|
16
|
-
if (e != null && i)
|
|
17
|
-
for (var a of i(e))
|
|
18
|
-
r.indexOf(a) < 0 && v.call(e, a) && (t[a] = e[a]);
|
|
19
|
-
return t;
|
|
20
|
-
};
|
|
21
|
-
function h() {
|
|
1
|
+
import l from "clsx";
|
|
2
|
+
import * as e from "react";
|
|
3
|
+
import { useEffect as c } from "react";
|
|
4
|
+
import t from "./loading.module.scss.js";
|
|
5
|
+
function m() {
|
|
22
6
|
if (document.getElementById("noscroll-style"))
|
|
23
7
|
return;
|
|
24
|
-
const
|
|
25
|
-
|
|
8
|
+
const n = document.createElement("style");
|
|
9
|
+
n.id = "noscroll-style", n.innerHTML = `
|
|
26
10
|
.noscroll {
|
|
27
11
|
overflow: hidden !important;
|
|
28
12
|
height: 100vh !important;
|
|
29
13
|
}
|
|
30
|
-
`, document.head.appendChild(
|
|
14
|
+
`, document.head.appendChild(n);
|
|
31
15
|
}
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (t) {
|
|
16
|
+
function E({ full: n = !1, className: a = "", message: r = "Loading", ...d }) {
|
|
17
|
+
c(() => {
|
|
18
|
+
if (n) {
|
|
36
19
|
document.body.classList.add("noscroll");
|
|
37
|
-
const
|
|
38
|
-
return document.addEventListener("contextmenu",
|
|
39
|
-
document.body.classList.remove("noscroll"), document.removeEventListener("contextmenu",
|
|
20
|
+
const i = (s) => s.preventDefault();
|
|
21
|
+
return document.addEventListener("contextmenu", i), () => {
|
|
22
|
+
document.body.classList.remove("noscroll"), document.removeEventListener("contextmenu", i);
|
|
40
23
|
};
|
|
41
24
|
}
|
|
42
|
-
}, [
|
|
43
|
-
|
|
25
|
+
}, [n]), c(() => {
|
|
26
|
+
m();
|
|
44
27
|
}, []);
|
|
45
|
-
function
|
|
46
|
-
return /* @__PURE__ */
|
|
28
|
+
function o() {
|
|
29
|
+
return /* @__PURE__ */ e.createElement(
|
|
47
30
|
"div",
|
|
48
|
-
|
|
31
|
+
{
|
|
49
32
|
role: "status",
|
|
50
33
|
"aria-live": "polite",
|
|
51
|
-
"aria-label":
|
|
52
|
-
className:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
/* @__PURE__ */
|
|
56
|
-
/* @__PURE__ */
|
|
57
|
-
/* @__PURE__ */
|
|
58
|
-
|
|
34
|
+
"aria-label": r,
|
|
35
|
+
className: t.container,
|
|
36
|
+
...d
|
|
37
|
+
},
|
|
38
|
+
/* @__PURE__ */ e.createElement("div", { className: t.ring, "aria-hidden": "true" }),
|
|
39
|
+
/* @__PURE__ */ e.createElement("div", { className: t.ring, "aria-hidden": "true" }),
|
|
40
|
+
/* @__PURE__ */ e.createElement("div", { className: t.ring, "aria-hidden": "true" }),
|
|
41
|
+
/* @__PURE__ */ e.createElement("div", { className: t.ring, "aria-hidden": "true" }),
|
|
42
|
+
r && /* @__PURE__ */ e.createElement("div", { className: t.message }, r)
|
|
59
43
|
);
|
|
60
44
|
}
|
|
61
|
-
return
|
|
45
|
+
return n ? /* @__PURE__ */ e.createElement("div", { className: l(t.full, a) }, o()) : /* @__PURE__ */ e.createElement("div", { className: l(t.block, a) }, o());
|
|
62
46
|
}
|
|
63
47
|
export {
|
|
64
|
-
|
|
48
|
+
E as Loading
|
|
65
49
|
};
|
|
50
|
+
//# sourceMappingURL=loading.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loading.component.js","sources":["../../../src/react/loading/loading.component.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport * as React from 'react';\nimport { useEffect } from 'react';\n\nimport type { I_LoadingProps } from './loading.type.js';\n\nimport style from './loading.module.scss';\n\n/**\n * Injects CSS styles to prevent scrolling when full-screen loading is active.\n * This function creates and injects a style element that adds the 'noscroll' class\n * to prevent body scrolling and sets a fixed height. It ensures the style is only\n * injected once by checking for an existing style element with the same ID.\n */\nfunction injectNoScrollStyle() {\n if (document.getElementById('noscroll-style')) {\n return;\n }\n\n const style = document.createElement('style');\n style.id = 'noscroll-style';\n style.innerHTML = `\n .noscroll {\n overflow: hidden !important;\n height: 100vh !important;\n }\n `;\n document.head.appendChild(style);\n}\n\n/**\n * Loading component that displays animated loading indicators.\n * This component provides a customizable loading interface with animated rings\n * and optional full-screen overlay. It includes features for preventing user\n * interaction during loading states and supports both inline and full-screen modes.\n *\n * Features:\n * - Animated loading rings with multiple colors\n * - Full-screen overlay mode with scroll prevention\n * - Context menu prevention during full-screen loading\n * - Customizable loading message\n * - Responsive design with CSS modules\n * - Accessibility considerations with reduced motion support\n *\n * @param props - Component props containing loading configuration.\n * @param props.full - Whether to display the loading indicator in full-screen mode (default: false).\n * @param props.className - Additional CSS classes to apply to the loading container.\n * @param props.message - Custom message to display below the loading animation.\n * @param props.rest - Additional props to spread to the loading container.\n * @returns A React component displaying the loading animation with optional full-screen overlay.\n */\nexport function Loading({ full = false, className = '', message = 'Loading', ...rest }: I_LoadingProps) {\n useEffect(() => {\n if (full) {\n document.body.classList.add('noscroll');\n\n const handleContextMenu = (e: MouseEvent) => e.preventDefault();\n document.addEventListener('contextmenu', handleContextMenu);\n\n return () => {\n document.body.classList.remove('noscroll');\n document.removeEventListener('contextmenu', handleContextMenu);\n };\n }\n }, [full]);\n\n useEffect(() => {\n injectNoScrollStyle();\n }, []);\n\n /**\n * Renders the core loading animation with rings and message.\n * This function creates the animated loading rings and optional message\n * that are used in both full-screen and inline loading modes.\n *\n * @returns A React element containing the loading animation and message.\n */\n function _renderLoading() {\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-label={message}\n className={style['container']}\n {...rest}\n >\n <div className={style['ring']} aria-hidden=\"true\"></div>\n <div className={style['ring']} aria-hidden=\"true\"></div>\n <div className={style['ring']} aria-hidden=\"true\"></div>\n <div className={style['ring']} aria-hidden=\"true\"></div>\n {message && <div className={style['message']}>{message}</div>}\n </div>\n );\n }\n\n if (full) {\n return (\n <div className={clsx(style['full'], className)}>\n {_renderLoading()}\n </div>\n );\n }\n\n return (\n <div className={clsx(style['block'], className)}>\n {_renderLoading()}\n </div>\n );\n}\n"],"names":["clsx","React","useEffect","style","injectNoScrollStyle","Loading","full","className","message","rest","handleContextMenu","e","_renderLoading"],"mappings":"AAcA,OAAAA,OAAA;AAAA,YAAAC,OAAA;AAAA,SAAA,aAAAC,SAAA;AAAA,OAAAC,OAAA;AAAA,SAASC,IAAsB;AAC3B,MAAI,SAAS,eAAe,gBAAgB;AACxC;AAGJ,QAAMD,IAAQ,SAAS,cAAc,OAAO;AAC5CA,EAAAA,EAAM,KAAK,kBACXA,EAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,OAMlB,SAAS,KAAK,YAAYA,CAAK;AACnC;AAuBO,SAASE,EAAQ,EAAE,MAAAC,IAAO,IAAO,WAAAC,IAAY,IAAI,SAAAC,IAAU,WAAW,GAAGC,KAAwB;AACpG,EAAAP,EAAU,MAAM;AACZ,QAAII,GAAM;AACN,eAAS,KAAK,UAAU,IAAI,UAAU;AAEtC,YAAMI,IAAoB,CAACC,MAAkBA,EAAE,eAAA;AAC/C,sBAAS,iBAAiB,eAAeD,CAAiB,GAEnD,MAAM;AACT,iBAAS,KAAK,UAAU,OAAO,UAAU,GACzC,SAAS,oBAAoB,eAAeA,CAAiB;AAAA,MACjE;AAAA,IACJ;AAAA,EACJ,GAAG,CAACJ,CAAI,CAAC,GAETJ,EAAU,MAAM;AACZ,IAAAE,EAAA;AAAA,EACJ,GAAG,CAAA,CAAE;AASL,WAASQ,IAAiB;AACtB,WACI,gBAAAX,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,aAAU;AAAA,QACV,cAAYO;AAAA,QACZ,WAAWL,EAAM;AAAA,QAChB,GAAGM;AAAA,MAAA;AAAA,sCAEH,OAAA,EAAI,WAAWN,EAAM,MAAS,eAAY,QAAO;AAAA,sCACjD,OAAA,EAAI,WAAWA,EAAM,MAAS,eAAY,QAAO;AAAA,sCACjD,OAAA,EAAI,WAAWA,EAAM,MAAS,eAAY,QAAO;AAAA,sCACjD,OAAA,EAAI,WAAWA,EAAM,MAAS,eAAY,QAAO;AAAA,MACjDK,KAAW,gBAAAP,EAAA,cAAC,OAAA,EAAI,WAAWE,EAAM,WAAaK,CAAQ;AAAA,IAAA;AAAA,EAGnE;AAEA,SAAIF,IAEI,gBAAAL,EAAA,cAAC,OAAA,EAAI,WAAWD,EAAKG,EAAM,MAASI,CAAS,EAAA,GACxCK,EAAA,CACL,IAKJ,gBAAAX,EAAA,cAAC,OAAA,EAAI,WAAWD,EAAKG,EAAM,OAAUI,CAAS,EAAA,GACzCK,EAAA,CACL;AAER;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loading.context.js","sources":["../../../src/react/loading/loading.context.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nimport type { I_LoadingContext } from './loading.type.js';\n\nexport const LoadingContext = createContext<I_LoadingContext | undefined>(undefined);\n"],"names":["createContext","LoadingContext"],"mappings":"AAIO,SAAA,iBAAAA,SAAA;AAAA,MAAMC,IAAiBD,EAA4C,MAAS;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loading.hook.js","sources":["../../../src/react/loading/loading.hook.tsx"],"sourcesContent":["import { use } from 'react';\n\nimport { LoadingContext } from './loading.context.js';\n\n/**\n * React hook that provides access to loading context.\n * This hook retrieves the loading context which contains loading state and\n * control methods. It provides a convenient way to access loading functionality\n * within components, allowing them to show and hide loading states.\n *\n * The hook will throw an error if used outside of a LoadingProvider,\n * ensuring proper context usage and providing clear error messages for debugging.\n *\n * @returns The loading context containing loading state and control methods.\n * @throws {Error} When used outside of a LoadingProvider context.\n */\nexport function useLoading() {\n const context = use(LoadingContext);\n if (!context) {\n throw new Error('useLoading must be used within a LoadingProvider');\n }\n return context;\n}\n"],"names":["use","LoadingContext","useLoading","context"],"mappings":"AAgBO,SAAA,OAAAA,SAAA;AAAA,SAAA,kBAAAC,SAAA;AAAA,SAASC,IAAa;AACzB,QAAMC,IAAUH,EAAIC,CAAc;AAClC,MAAI,CAACE;AACD,UAAM,IAAI,MAAM,kDAAkD;AAEtE,SAAOA;AACX;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loading.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loading.provider.js","sources":["../../../src/react/loading/loading.provider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport type { I_Children } from '#typescript/index.js';\n\nimport { Loading } from './loading.component.js';\nimport { LoadingContext } from './loading.context.js';\n\n/**\n * Provider component that manages loading state and provides loading context.\n * This component sets up loading state management for the application and provides\n * loading context to all child components through React context.\n *\n * Features:\n * - Global loading state management\n * - Loading context provision to child components\n * - Automatic loading state synchronization\n * - Integration with loading components\n *\n * @param props - Component props containing children.\n * @param props.children - React children that will have access to the loading context.\n * @returns A React component that provides loading context to its children.\n */\nexport function LoadingProvider({ children }: I_Children) {\n const [isLoading, setIsLoading] = useState(false);\n const [isGlobalLoading, setIsGlobalLoading] = useState(false);\n\n const showLoading = useCallback((global = false) => {\n setIsLoading(true);\n setIsGlobalLoading(global);\n }, []);\n\n const hideLoading = useCallback(() => {\n setIsLoading(false);\n setIsGlobalLoading(false);\n }, []);\n\n const contextValue = useMemo(\n () => ({ isLoading, isGlobalLoading, showLoading, hideLoading }),\n [isLoading, isGlobalLoading, showLoading, hideLoading],\n );\n\n return (\n <LoadingContext value={contextValue}>\n {isLoading ? <Loading full={isGlobalLoading} /> : children}\n </LoadingContext>\n );\n}\n"],"names":["React","useState","useCallback","useMemo","Loading","LoadingContext","LoadingProvider","children","isLoading","setIsLoading","isGlobalLoading","setIsGlobalLoading","showLoading","global","hideLoading","contextValue"],"mappings":"AAuBO,YAAAA,OAAA;AAAA,SAAA,YAAAC,GAAA,eAAAC,GAAA,WAAAC,SAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,kBAAAC,SAAA;AAAA,SAASC,EAAgB,EAAE,UAAAC,KAAwB;AACtD,QAAM,CAACC,GAAWC,CAAY,IAAIR,EAAS,EAAK,GAC1C,CAACS,GAAiBC,CAAkB,IAAIV,EAAS,EAAK,GAEtDW,IAAcV,EAAY,CAACW,IAAS,OAAU;AAChD,IAAAJ,EAAa,EAAI,GACjBE,EAAmBE,CAAM;AAAA,EAC7B,GAAG,CAAA,CAAE,GAECC,IAAcZ,EAAY,MAAM;AAClC,IAAAO,EAAa,EAAK,GAClBE,EAAmB,EAAK;AAAA,EAC5B,GAAG,CAAA,CAAE,GAECI,IAAeZ;AAAA,IACjB,OAAO,EAAE,WAAAK,GAAW,iBAAAE,GAAiB,aAAAE,GAAa,aAAAE,EAAA;AAAA,IAClD,CAACN,GAAWE,GAAiBE,GAAaE,CAAW;AAAA,EAAA;AAGzD,SACI,gBAAAd,EAAA,cAACK,GAAA,EAAe,OAAOU,EAAA,GAClBP,oCAAaJ,GAAA,EAAQ,MAAMM,EAAA,CAAiB,IAAKH,CACtD;AAER;"}
|
package/dist/react/log/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -16,15 +16,16 @@ const l = {
|
|
|
16
16
|
trace: e.trace,
|
|
17
17
|
verbose: e.verbose
|
|
18
18
|
};
|
|
19
|
-
function
|
|
20
|
-
const { shouldLog: n = !0, returnValue:
|
|
21
|
-
return n && l.error(s.message), o && typeof o == "function" && o(s),
|
|
19
|
+
function g(r, a) {
|
|
20
|
+
const { shouldLog: n = !0, returnValue: t, callback: o } = a ?? {}, s = r instanceof Error ? r : new Error(typeof r == "string" ? r : "Unknown error");
|
|
21
|
+
return n && l.error(s.message), o && typeof o == "function" && o(s), t || {
|
|
22
22
|
success: !1,
|
|
23
23
|
message: s.message,
|
|
24
24
|
code: c.INTERNAL_SERVER_ERROR.CODE
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
export {
|
|
28
|
-
|
|
28
|
+
g as catchError,
|
|
29
29
|
l as log
|
|
30
30
|
};
|
|
31
|
+
//# sourceMappingURL=log.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.util.js","sources":["../../../src/react/log/log.util.ts"],"sourcesContent":["import { consola } from 'consola/browser';\n\nimport type { I_Log, I_Return } from '#typescript/index.js';\n\nimport { RESPONSE_STATUS } from '#constant/index.js';\n\nimport type { I_CatchErrorOptions } from './log.type.js';\n\n/**\n * Browser-compatible logging interface using consola.\n * This object provides all standard consola logging methods for use in browser environments,\n * including error, warning, info, success, and debug logging capabilities.\n */\nexport const log: I_Log = {\n silent: consola.silent,\n level: consola.level,\n fatal: consola.fatal,\n error: consola.error,\n warn: consola.warn,\n log: consola.log,\n info: consola.info,\n success: consola.success,\n ready: consola.ready,\n start: consola.start,\n box: consola.box,\n debug: consola.debug,\n trace: consola.trace,\n verbose: consola.verbose,\n};\n\n/**\n * Catches and handles errors with configurable behavior for React applications.\n * This function provides a standardized way to handle errors in React components\n * with options for logging control, return value specification, and custom callback execution.\n *\n * The function handles different error input types and provides consistent error\n * response formatting for React applications.\n *\n * @param errorInput - The error to catch and handle, can be Error object, string, or unknown type.\n * @param options - Configuration options for error handling behavior.\n * @returns Either the specified return value or a standardized error response object.\n */\nexport function catchError<T = unknown>(errorInput: unknown, options: I_CatchErrorOptions & { returnValue: T }): T;\nexport function catchError<T = unknown>(errorInput: unknown, options?: I_CatchErrorOptions): I_Return<T>;\nexport function catchError<T = unknown>(errorInput: unknown, options?: I_CatchErrorOptions): I_Return<T> | T {\n const { shouldLog = true, returnValue, callback } = options ?? {};\n\n const error = errorInput instanceof Error\n ? errorInput\n : new Error(typeof errorInput === 'string' ? errorInput : 'Unknown error');\n\n if (shouldLog) {\n log.error(error.message);\n }\n\n if (callback && typeof callback === 'function') {\n callback(error);\n }\n\n if (returnValue) {\n return returnValue as I_Return<T>;\n }\n\n return {\n success: false,\n message: error.message,\n code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE,\n };\n}\n"],"names":["consola","RESPONSE_STATUS","log","catchError","errorInput","options","shouldLog","returnValue","callback","error"],"mappings":"AAaO,SAAA,WAAAA,SAAA;AAAA,SAAA,mBAAAC,SAAA;AAAA,MAAMC,IAAa;AAAA,EACtB,QAAQF,EAAQ;AAAA,EAChB,OAAOA,EAAQ;AAAA,EACf,OAAOA,EAAQ;AAAA,EACf,OAAOA,EAAQ;AAAA,EACf,MAAMA,EAAQ;AAAA,EACd,KAAKA,EAAQ;AAAA,EACb,MAAMA,EAAQ;AAAA,EACd,SAASA,EAAQ;AAAA,EACjB,OAAOA,EAAQ;AAAA,EACf,OAAOA,EAAQ;AAAA,EACf,KAAKA,EAAQ;AAAA,EACb,OAAOA,EAAQ;AAAA,EACf,OAAOA,EAAQ;AAAA,EACf,SAASA,EAAQ;AACrB;AAgBO,SAASG,EAAwBC,GAAqBC,GAAgD;AACzG,QAAM,EAAE,WAAAC,IAAY,IAAM,aAAAC,GAAa,UAAAC,EAAA,IAAaH,KAAW,CAAA,GAEzDI,IAAQL,aAAsB,QAC9BA,IACA,IAAI,MAAM,OAAOA,KAAe,WAAWA,IAAa,eAAe;AAU7E,SARIE,KACAJ,EAAI,MAAMO,EAAM,OAAO,GAGvBD,KAAY,OAAOA,KAAa,cAChCA,EAASC,CAAK,GAGdF,KAIG;AAAA,IACH,SAAS;AAAA,IACT,SAASE,EAAM;AAAA,IACf,MAAMR,EAAgB,sBAAsB;AAAA,EAAA;AAEpD;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-intl.constant.js","sources":["../../../src/react/next-intl/next-intl.constant.ts"],"sourcesContent":["import { enUS as enUSAdapter } from 'date-fns/locale';\n\n/**\n * Default language configuration for Next.js internationalization.\n * This constant provides the default English (US) language settings including:\n * - Language label and value for display and identification\n * - Flag emoji and icon for UI representation\n * - Date-fns locale adapter for date formatting\n * - Number formatting configuration (locale and currency)\n * - Timezone setting for date/time operations\n */\nexport const NEXT_INTL_DEFAULT_LANGUAGE = {\n label: 'English',\n value: 'en',\n flag: '🇺🇸',\n adapterLocale: enUSAdapter,\n icon: 'flagpack:gb-nir',\n numberFormat: {\n code: 'en-US',\n currency: 'USD',\n },\n timezone: 'America/New_York',\n};\n"],"names":["enUS","NEXT_INTL_DEFAULT_LANGUAGE","enUSAdapter"],"mappings":"AAWO,SAAA,QAAAA,SAAA;AAAA,MAAMC,IAA6B;AAAA,EACtC,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,eAAeC;AAAAA,EACf,MAAM;AAAA,EACN,cAAc;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,EAAA;AAAA,EAEd,UAAU;AACd;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-intl.context.js","sources":["../../../src/react/next-intl/next-intl.context.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nimport type { I_NextIntlContext } from './next-intl.type.js';\n\nexport const NextIntlContext = createContext<I_NextIntlContext | undefined>(undefined);\n"],"names":["createContext","NextIntlContext"],"mappings":"AAIO,SAAA,iBAAAA,SAAA;AAAA,MAAMC,IAAkBD,EAA6C,MAAS;"}
|
|
@@ -1,32 +1,24 @@
|
|
|
1
1
|
import { NextIntlClientProvider as g } from "next-intl";
|
|
2
2
|
import * as s from "react";
|
|
3
|
-
import { NEXT_INTL_DEFAULT_LANGUAGE as
|
|
4
|
-
import { useNextIntl as
|
|
3
|
+
import { NEXT_INTL_DEFAULT_LANGUAGE as c } from "./next-intl.constant.js";
|
|
4
|
+
import { useNextIntl as f } from "./next-intl.hook.js";
|
|
5
5
|
import { log as N } from "../log/log.util.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
for (var r of u(e))
|
|
11
|
-
y.call(e, r) && m(t, r, e[r]);
|
|
12
|
-
return t;
|
|
13
|
-
};
|
|
14
|
-
function L(t) {
|
|
15
|
-
const e = (r) => {
|
|
16
|
-
var l, o;
|
|
17
|
-
const { currentLanguage: n } = d(), { messages: i, languages: f } = r, a = "en", c = i[(n == null ? void 0 : n.value) || a], p = (o = (l = f.find((v) => v.value === (n == null ? void 0 : n.value))) == null ? void 0 : l.timezone) != null ? o : _.timezone;
|
|
18
|
-
return i ? /* @__PURE__ */ s.createElement(
|
|
6
|
+
function x(t) {
|
|
7
|
+
const a = (l) => {
|
|
8
|
+
const { currentLanguage: e } = f(), { messages: r, languages: o } = l, n = "en", i = r[e?.value || n], m = o.find((u) => u.value === e?.value)?.timezone ?? c.timezone;
|
|
9
|
+
return r ? /* @__PURE__ */ s.createElement(
|
|
19
10
|
g,
|
|
20
11
|
{
|
|
21
|
-
locale:
|
|
22
|
-
messages:
|
|
23
|
-
timeZone:
|
|
12
|
+
locale: e?.value || n,
|
|
13
|
+
messages: i || null,
|
|
14
|
+
timeZone: m
|
|
24
15
|
},
|
|
25
|
-
/* @__PURE__ */ s.createElement(t,
|
|
26
|
-
) : (N.warn(`Missing messages for language: ${
|
|
16
|
+
/* @__PURE__ */ s.createElement(t, { ...l })
|
|
17
|
+
) : (N.warn(`Missing messages for language: ${e?.value || n}`), null);
|
|
27
18
|
};
|
|
28
|
-
return
|
|
19
|
+
return a.displayName = `withNextIntl(${t.displayName || t.name || "Component"})`, a;
|
|
29
20
|
}
|
|
30
21
|
export {
|
|
31
|
-
|
|
22
|
+
x as withNextIntl
|
|
32
23
|
};
|
|
24
|
+
//# sourceMappingURL=next-intl.hoc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-intl.hoc.js","sources":["../../../src/react/next-intl/next-intl.hoc.tsx"],"sourcesContent":["import type { ComponentType } from 'react';\n\nimport { NextIntlClientProvider } from 'next-intl';\nimport * as React from 'react';\n\nimport type { I_Children } from '#typescript/index.js';\n\nimport type { I_NextIntlLanguage, T_NextIntlMessageList } from './next-intl.type.js';\n\nimport { log } from '../log/index.js';\nimport { NEXT_INTL_DEFAULT_LANGUAGE } from './next-intl.constant.js';\nimport { useNextIntl } from './next-intl.hook.js';\n\n/**\n * Higher-Order Component (HOC) that wraps components with Next.js internationalization support.\n * This HOC provides internationalization capabilities to React components by wrapping them\n * with the NextIntlClientProvider. It automatically handles language detection, message\n * loading, and timezone configuration based on the current language settings.\n *\n * Features:\n * - Automatic language detection and message loading\n * - Timezone configuration based on language settings\n * - Fallback to default language when messages are missing\n * - Warning logging for missing message configurations\n * - Proper display name preservation for debugging\n *\n * @param Component - The React component to wrap with internationalization support.\n * @returns A new component with internationalization capabilities and additional props for languages and messages.\n */\nexport function withNextIntl<T extends I_Children>(Component: ComponentType<T>) {\n const PageWithI18n = (props: T & { languages: I_NextIntlLanguage[]; messages: T_NextIntlMessageList }) => {\n const { currentLanguage } = useNextIntl();\n const { messages, languages } = props;\n const defaultLang = 'en';\n\n const defaultMessages = messages[currentLanguage?.value || defaultLang];\n const timeZone = languages.find(lang => lang.value === currentLanguage?.value)?.timezone ?? NEXT_INTL_DEFAULT_LANGUAGE.timezone;\n\n if (!messages) {\n log.warn(`Missing messages for language: ${currentLanguage?.value || defaultLang}`);\n return null;\n }\n\n return (\n <NextIntlClientProvider\n locale={currentLanguage?.value || defaultLang}\n messages={defaultMessages || null}\n timeZone={timeZone}\n >\n <Component {...(props as T)} />\n </NextIntlClientProvider>\n );\n };\n\n PageWithI18n.displayName = `withNextIntl(${Component.displayName || Component.name || 'Component'})`;\n\n return PageWithI18n;\n}\n"],"names":["withNextIntl","Component","PageWithI18n","props","currentLanguage","useNextIntl","messages","languages","defaultLang","defaultMessages","timeZone","lang","NEXT_INTL_DEFAULT_LANGUAGE","React","NextIntlClientProvider","log"],"mappings":";;;;;AA6BO,SAASA,EAAmCC,GAA6B;AAC5E,QAAMC,IAAe,CAACC,MAAoF;AACtG,UAAM,EAAE,iBAAAC,EAAA,IAAoBC,EAAA,GACtB,EAAE,UAAAC,GAAU,WAAAC,EAAA,IAAcJ,GAC1BK,IAAc,MAEdC,IAAkBH,EAASF,GAAiB,SAASI,CAAW,GAChEE,IAAWH,EAAU,KAAK,CAAAI,MAAQA,EAAK,UAAUP,GAAiB,KAAK,GAAG,YAAYQ,EAA2B;AAEvH,WAAKN,IAMD,gBAAAO,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,QAAQV,GAAiB,SAASI;AAAA,QAClC,UAAUC,KAAmB;AAAA,QAC7B,UAAAC;AAAA,MAAA;AAAA,MAEA,gBAAAG,EAAA,cAACZ,GAAA,EAAW,GAAIE,EAAA,CAAa;AAAA,IAAA,KAVjCY,EAAI,KAAK,kCAAkCX,GAAiB,SAASI,CAAW,EAAE,GAC3E;AAAA,EAYf;AAEA,SAAAN,EAAa,cAAc,gBAAgBD,EAAU,eAAeA,EAAU,QAAQ,WAAW,KAE1FC;AACX;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-intl.hook.js","sources":["../../../src/react/next-intl/next-intl.hook.tsx"],"sourcesContent":["import { useTranslations } from 'next-intl';\nimport { use } from 'react';\n\nimport type { I_NextIntlContext } from './next-intl.type.js';\n\nimport { NextIntlContext } from './next-intl.context.js';\n\n/**\n * React hook that provides access to Next.js internationalization context.\n * This hook retrieves the Next.js internationalization context which contains\n * language information and language switching functionality. It provides a\n * convenient way to access internationalization features within components.\n *\n * The hook will throw an error if used outside of a NextIntlProvider,\n * ensuring proper context usage and providing clear error messages for debugging.\n *\n * @returns The Next.js internationalization context containing language state and control methods.\n * @throws {Error} When used outside of a NextIntlProvider context.\n */\nexport function useNextIntl(): I_NextIntlContext {\n const context = use(NextIntlContext);\n\n if (!context) {\n throw new Error('useNextIntl must be used within a NextIntlProvider');\n }\n\n return context;\n}\n\n/**\n * React hook that provides Next.js translation functionality.\n * This hook is a wrapper around next-intl's useTranslations hook,\n * providing access to translation functions and current locale information.\n * It enables internationalization features including text translation,\n * locale switching, and pluralization support for Next.js applications.\n *\n * @returns The useTranslations hook result with translation functions and locale information.\n */\nexport const useTranslateNextIntl: typeof useTranslations = useTranslations;\n"],"names":["useTranslations","use","NextIntlContext","useNextIntl","context","useTranslateNextIntl"],"mappings":"AAmBO,SAAA,mBAAAA,SAAA;AAAA,SAAA,OAAAC,SAAA;AAAA,SAAA,mBAAAC,SAAA;AAAA,SAASC,IAAiC;AAC7C,QAAMC,IAAUH,EAAIC,CAAe;AAEnC,MAAI,CAACE;AACD,UAAM,IAAI,MAAM,oDAAoD;AAGxE,SAAOA;AACX;AAWO,MAAMC,IAA+CL;"}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
import * as t from "react";
|
|
2
2
|
import { useMemo as u } from "react";
|
|
3
3
|
import { NEXT_INTL_DEFAULT_LANGUAGE as c } from "./next-intl.constant.js";
|
|
4
|
-
import { NextIntlContext as
|
|
5
|
-
import { withNextIntl as
|
|
6
|
-
import { useStorage as
|
|
4
|
+
import { NextIntlContext as p } from "./next-intl.context.js";
|
|
5
|
+
import { withNextIntl as i } from "./next-intl.hoc.js";
|
|
6
|
+
import { useStorage as l } from "../storage/storage.hook.js";
|
|
7
7
|
function f({ children: r }) {
|
|
8
8
|
return /* @__PURE__ */ t.createElement(t.Fragment, null, r);
|
|
9
9
|
}
|
|
10
|
-
const L =
|
|
10
|
+
const L = i(f);
|
|
11
11
|
function I({
|
|
12
12
|
children: r,
|
|
13
13
|
languages: e,
|
|
14
14
|
messages: m
|
|
15
15
|
}) {
|
|
16
|
-
const { value: n, set: o } =
|
|
17
|
-
() => ({ languages: e, currentLanguage: n
|
|
16
|
+
const { value: n, set: o } = l("lang", e[0]), a = u(
|
|
17
|
+
() => ({ languages: e, currentLanguage: n ?? c, setCurrentLanguage: o }),
|
|
18
18
|
[e, o, n]
|
|
19
19
|
);
|
|
20
|
-
return /* @__PURE__ */ t.createElement(
|
|
20
|
+
return /* @__PURE__ */ t.createElement(p, { value: a }, /* @__PURE__ */ t.createElement(L, { languages: e, messages: m }, r));
|
|
21
21
|
}
|
|
22
22
|
export {
|
|
23
23
|
I as NextIntlProvider
|
|
24
24
|
};
|
|
25
|
+
//# sourceMappingURL=next-intl.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-intl.provider.js","sources":["../../../src/react/next-intl/next-intl.provider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport type { I_Children } from '#typescript/index.js';\n\nimport type { I_NextIntlLanguage, I_NextIntlProviderProps } from './next-intl.type.js';\n\nimport { useStorage } from '../storage/index.js';\nimport { NEXT_INTL_DEFAULT_LANGUAGE } from './next-intl.constant.js';\nimport { NextIntlContext } from './next-intl.context.js';\nimport { withNextIntl } from './next-intl.hoc.js';\n\n/**\n * Base component that serves as a wrapper for the withNextIntl HOC.\n * This component is used internally by the NextIntlProvider to create\n * the language wrapper component with internationalization capabilities.\n *\n * @param props - Component props containing children.\n * @param props.children - React children to be wrapped with internationalization support.\n * @returns A React component that passes through its children.\n */\nfunction LanguageWrapperBase({ children }: I_Children) {\n return <>{children}</>;\n}\n\nconst LanguageWrapper = withNextIntl(LanguageWrapperBase);\n\n/**\n * Provider component that manages Next.js internationalization state and provides i18n context.\n * This component sets up a complete internationalization system for Next.js applications,\n * including language management, message loading, and persistent language preferences.\n * It integrates with the storage system to remember user language choices and provides\n * a comprehensive i18n context to all child components.\n *\n * Features:\n * - Language state management with persistence\n * - Automatic language detection and fallback\n * - Message loading and caching\n * - Timezone configuration per language\n * - Integration with Next.js internationalization\n * - Memoized context value for performance optimization\n *\n * @param props - Component props containing children, languages, and messages.\n * @param props.children - React children that will have access to the internationalization context.\n * @param props.languages - Array of supported languages with their configurations.\n * @param props.messages - Object containing translation messages for each supported language.\n * @returns A React component that provides internationalization context to its children.\n */\nexport function NextIntlProvider({\n children,\n languages,\n messages,\n}: I_NextIntlProviderProps) {\n const { value, set } = useStorage<I_NextIntlLanguage>('lang', languages[0]);\n\n const contextValue = useMemo(\n () => ({ languages, currentLanguage: value ?? NEXT_INTL_DEFAULT_LANGUAGE, setCurrentLanguage: set }),\n [languages, set, value],\n );\n\n return (\n <NextIntlContext value={contextValue}>\n <LanguageWrapper languages={languages} messages={messages}>\n {children}\n </LanguageWrapper>\n </NextIntlContext>\n );\n}\n"],"names":["React","useMemo","NEXT_INTL_DEFAULT_LANGUAGE","NextIntlContext","withNextIntl","useStorage","LanguageWrapperBase","children","LanguageWrapper","NextIntlProvider","languages","messages","value","set","contextValue"],"mappings":"AAqBA,YAAAA,OAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,8BAAAC,SAAA;AAAA,SAAA,mBAAAC,SAAA;AAAA,SAAA,gBAAAC,SAAA;AAAA,SAAA,cAAAC,SAAA;AAAA,SAASC,EAAoB,EAAE,UAAAC,KAAwB;AACnD,2DAAUA,CAAS;AACvB;AAEA,MAAMC,IAAkBJ,EAAaE,CAAmB;AAuBjD,SAASG,EAAiB;AAAA,EAC7B,UAAAF;AAAA,EACA,WAAAG;AAAA,EACA,UAAAC;AACJ,GAA4B;AACxB,QAAM,EAAE,OAAAC,GAAO,KAAAC,EAAA,IAAQR,EAA+B,QAAQK,EAAU,CAAC,CAAC,GAEpEI,IAAeb;AAAA,IACjB,OAAO,EAAE,WAAAS,GAAW,iBAAiBE,KAASV,GAA4B,oBAAoBW;IAC9F,CAACH,GAAWG,GAAKD,CAAK;AAAA,EAAA;AAG1B,SACI,gBAAAZ,EAAA,cAACG,KAAgB,OAAOW,EAAA,mCACnBN,GAAA,EAAgB,WAAAE,GAAsB,UAAAC,EAAA,GAClCJ,CACL,CACJ;AAER;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1,75 +1,60 @@
|
|
|
1
|
-
import { useState as
|
|
2
|
-
import { storage as
|
|
3
|
-
import { serializer as
|
|
4
|
-
import { catchError as
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
o(e);
|
|
11
|
-
}
|
|
12
|
-
}, a = (s) => {
|
|
13
|
-
try {
|
|
14
|
-
u(t.throw(s));
|
|
15
|
-
} catch (e) {
|
|
16
|
-
o(e);
|
|
17
|
-
}
|
|
18
|
-
}, u = (s) => s.done ? n(s.value) : Promise.resolve(s.value).then(f, a);
|
|
19
|
-
u((t = t.apply(r, l)).next());
|
|
20
|
-
});
|
|
21
|
-
function b(r, l, t = E) {
|
|
22
|
-
const [n, o] = h(l), [f, a] = h(!1);
|
|
23
|
-
y(() => {
|
|
24
|
-
let e = !0;
|
|
25
|
-
return p(null, null, function* () {
|
|
1
|
+
import { useState as m, useEffect as v, useCallback as p } from "react";
|
|
2
|
+
import { storage as n } from "./storage.util.js";
|
|
3
|
+
import { serializer as w } from "../../util/serializer/serializer.util.js";
|
|
4
|
+
import { catchError as d } from "../log/log.util.js";
|
|
5
|
+
function S(e, o, a = w) {
|
|
6
|
+
const [c, r] = m(o), [i, l] = m(!1);
|
|
7
|
+
v(() => {
|
|
8
|
+
let t = !0;
|
|
9
|
+
return (async () => {
|
|
26
10
|
try {
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
29
|
-
if (
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
} else if (
|
|
33
|
-
const
|
|
34
|
-
|
|
11
|
+
const f = await n.get(e);
|
|
12
|
+
if (t)
|
|
13
|
+
if (f !== null) {
|
|
14
|
+
const u = a.deserialize(f);
|
|
15
|
+
r(u);
|
|
16
|
+
} else if (o !== void 0) {
|
|
17
|
+
const u = a.serialize(o);
|
|
18
|
+
await n.set(e, u), r(o);
|
|
35
19
|
} else
|
|
36
|
-
|
|
37
|
-
} catch (
|
|
38
|
-
|
|
20
|
+
r(void 0);
|
|
21
|
+
} catch (f) {
|
|
22
|
+
d(f), t && r(o);
|
|
39
23
|
} finally {
|
|
40
|
-
|
|
24
|
+
t && l(!0);
|
|
41
25
|
}
|
|
42
|
-
}), () => {
|
|
43
|
-
|
|
26
|
+
})(), () => {
|
|
27
|
+
t = !1, l(!1);
|
|
44
28
|
};
|
|
45
|
-
}, [
|
|
46
|
-
if (!
|
|
29
|
+
}, [e, o, a]), v(() => {
|
|
30
|
+
if (!i)
|
|
47
31
|
return;
|
|
48
|
-
|
|
32
|
+
(async () => {
|
|
49
33
|
try {
|
|
50
|
-
if (
|
|
51
|
-
const
|
|
52
|
-
|
|
34
|
+
if (c !== void 0) {
|
|
35
|
+
const s = a.serialize(c);
|
|
36
|
+
await n.set(e, s);
|
|
53
37
|
}
|
|
54
|
-
} catch (
|
|
55
|
-
|
|
38
|
+
} catch (s) {
|
|
39
|
+
d(s);
|
|
56
40
|
}
|
|
57
|
-
});
|
|
58
|
-
}, [
|
|
59
|
-
const
|
|
60
|
-
(
|
|
61
|
-
|
|
41
|
+
})();
|
|
42
|
+
}, [c, e, a, i]);
|
|
43
|
+
const h = p(
|
|
44
|
+
(t) => {
|
|
45
|
+
r((s) => typeof t == "function" ? t(s) : t);
|
|
62
46
|
},
|
|
63
47
|
[]
|
|
64
|
-
),
|
|
48
|
+
), g = p(async () => {
|
|
65
49
|
try {
|
|
66
|
-
|
|
67
|
-
} catch (
|
|
68
|
-
|
|
50
|
+
await n.remove(e), r(void 0);
|
|
51
|
+
} catch (t) {
|
|
52
|
+
d(t);
|
|
69
53
|
}
|
|
70
|
-
}
|
|
71
|
-
return { value:
|
|
54
|
+
}, [e]);
|
|
55
|
+
return { value: c, set: h, remove: g };
|
|
72
56
|
}
|
|
73
57
|
export {
|
|
74
|
-
|
|
58
|
+
S as useStorage
|
|
75
59
|
};
|
|
60
|
+
//# sourceMappingURL=storage.hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.hook.js","sources":["../../../src/react/storage/storage.hook.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { I_Serializer } from '#util/serializer/index.js';\n\nimport { serializer as defaultSerializer } from '#util/serializer/index.js';\n\nimport { catchError } from '../log/index.js';\nimport { storage } from './storage.util.js';\n\n/**\n * React hook that provides persistent storage functionality with automatic serialization.\n * This hook manages state that persists across browser sessions using localForage,\n * with automatic serialization/deserialization of complex data types. It provides\n * a React-friendly interface for storage operations with proper error handling.\n *\n * Features:\n * - Automatic data serialization and deserialization\n * - Persistent storage across browser sessions\n * - Initial value handling and fallback\n * - Error handling with graceful degradation\n * - Automatic storage synchronization\n * - Support for complex data types via custom serializers\n *\n * @param key - The unique storage key for the data.\n * @param initialValue - Optional initial value to use if no stored value exists.\n * @param serializer - Optional custom serializer for complex data types (defaults to JSON serializer).\n * @returns An object containing the current value, set function, and remove function.\n */\nexport function useStorage<T>(\n key: string,\n initialValue?: T,\n serializer: I_Serializer<T> = defaultSerializer as I_Serializer<T>,\n) {\n const [value, setValue] = useState<T | undefined>(initialValue);\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n let isMounted = true;\n\n const loadValue = async () => {\n try {\n const valueFound = await storage.get<string>(key);\n\n if (isMounted) {\n if (valueFound !== null) {\n const parsedValue = serializer.deserialize(valueFound);\n setValue(parsedValue);\n }\n else if (initialValue !== undefined) {\n const serialized = serializer.serialize(initialValue);\n await storage.set(key, serialized);\n setValue(initialValue);\n }\n else {\n setValue(undefined);\n }\n }\n }\n catch (error) {\n catchError(error);\n\n if (isMounted) {\n setValue(initialValue);\n }\n }\n finally {\n if (isMounted)\n setIsLoaded(true);\n }\n };\n\n loadValue();\n\n return () => {\n isMounted = false;\n setIsLoaded(false);\n };\n }, [key, initialValue, serializer]);\n\n useEffect(() => {\n if (!isLoaded)\n return;\n\n const saveValue = async () => {\n try {\n if (value !== undefined) {\n const serialized = serializer.serialize(value);\n await storage.set(key, serialized);\n }\n }\n catch (error) {\n catchError(error);\n }\n };\n\n saveValue();\n }, [value, key, serializer, isLoaded]);\n\n const set = useCallback(\n (newValue: T | ((val: T | undefined) => T)) => {\n setValue((prev) => {\n if (typeof newValue === 'function') {\n return (newValue as (val: T | undefined) => T)(prev);\n }\n return newValue;\n });\n },\n [],\n );\n\n const remove = useCallback(async () => {\n try {\n await storage.remove(key);\n setValue(undefined);\n }\n catch (error) {\n catchError(error);\n }\n }, [key]);\n\n return { value, set, remove };\n}\n"],"names":["useStorage","key","initialValue","serializer","defaultSerializer","value","setValue","useState","isLoaded","setIsLoaded","useEffect","isMounted","valueFound","storage","parsedValue","serialized","error","catchError","set","useCallback","newValue","prev","remove"],"mappings":";;;;AA4BO,SAASA,EACZC,GACAC,GACAC,IAA8BC,GAChC;AACE,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAwBL,CAAY,GACxD,CAACM,GAAUC,CAAW,IAAIF,EAAS,EAAK;AAE9C,EAAAG,EAAU,MAAM;AACZ,QAAIC,IAAY;AAkChB,YAhCkB,YAAY;AAC1B,UAAI;AACA,cAAMC,IAAa,MAAMC,EAAQ,IAAYZ,CAAG;AAEhD,YAAIU;AACA,cAAIC,MAAe,MAAM;AACrB,kBAAME,IAAcX,EAAW,YAAYS,CAAU;AACrD,YAAAN,EAASQ,CAAW;AAAA,UACxB,WACSZ,MAAiB,QAAW;AACjC,kBAAMa,IAAaZ,EAAW,UAAUD,CAAY;AACpD,kBAAMW,EAAQ,IAAIZ,GAAKc,CAAU,GACjCT,EAASJ,CAAY;AAAA,UACzB;AAEI,YAAAI,EAAS,MAAS;AAAA,MAG9B,SACOU,GAAO;AACV,QAAAC,EAAWD,CAAK,GAEZL,KACAL,EAASJ,CAAY;AAAA,MAE7B,UAAA;AAEI,QAAIS,KACAF,EAAY,EAAI;AAAA,MACxB;AAAA,IACJ,GAEA,GAEO,MAAM;AACT,MAAAE,IAAY,IACZF,EAAY,EAAK;AAAA,IACrB;AAAA,EACJ,GAAG,CAACR,GAAKC,GAAcC,CAAU,CAAC,GAElCO,EAAU,MAAM;AACZ,QAAI,CAACF;AACD;AAcJ,KAZkB,YAAY;AAC1B,UAAI;AACA,YAAIH,MAAU,QAAW;AACrB,gBAAMU,IAAaZ,EAAW,UAAUE,CAAK;AAC7C,gBAAMQ,EAAQ,IAAIZ,GAAKc,CAAU;AAAA,QACrC;AAAA,MACJ,SACOC,GAAO;AACV,QAAAC,EAAWD,CAAK;AAAA,MACpB;AAAA,IACJ,GAEA;AAAA,EACJ,GAAG,CAACX,GAAOJ,GAAKE,GAAYK,CAAQ,CAAC;AAErC,QAAMU,IAAMC;AAAA,IACR,CAACC,MAA8C;AAC3C,MAAAd,EAAS,CAACe,MACF,OAAOD,KAAa,aACZA,EAAuCC,CAAI,IAEhDD,CACV;AAAA,IACL;AAAA,IACA,CAAA;AAAA,EAAC,GAGCE,IAASH,EAAY,YAAY;AACnC,QAAI;AACA,YAAMN,EAAQ,OAAOZ,CAAG,GACxBK,EAAS,MAAS;AAAA,IACtB,SACOU,GAAO;AACV,MAAAC,EAAWD,CAAK;AAAA,IACpB;AAAA,EACJ,GAAG,CAACf,CAAG,CAAC;AAER,SAAO,EAAE,OAAAI,GAAO,KAAAa,GAAK,QAAAI,EAAA;AACzB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|