unleash-server 5.1.9 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/create-config.js +5 -2
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/db/access-store.d.ts +2 -1
- package/dist/lib/db/access-store.js +17 -3
- package/dist/lib/db/access-store.js.map +1 -1
- package/dist/lib/db/client-metrics-store-v2.js +19 -30
- package/dist/lib/db/client-metrics-store-v2.js.map +1 -1
- package/dist/lib/db/context-field-store.d.ts +4 -1
- package/dist/lib/db/context-field-store.js +44 -14
- package/dist/lib/db/context-field-store.js.map +1 -1
- package/dist/lib/db/environment-store.d.ts +1 -0
- package/dist/lib/db/environment-store.js +6 -0
- package/dist/lib/db/environment-store.js.map +1 -1
- package/dist/lib/db/event-store.js +2 -1
- package/dist/lib/db/event-store.js.map +1 -1
- package/dist/lib/db/feature-strategy-store.d.ts +2 -0
- package/dist/lib/db/feature-strategy-store.js +25 -0
- package/dist/lib/db/feature-strategy-store.js.map +1 -1
- package/dist/lib/db/feature-strategy-store.test.js +75 -0
- package/dist/lib/db/feature-strategy-store.test.js.map +1 -0
- package/dist/lib/db/group-store.d.ts +1 -1
- package/dist/lib/db/group-store.js +2 -2
- package/dist/lib/db/group-store.js.map +1 -1
- package/dist/lib/db/index.js +2 -2
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/db/role-store.js +2 -2
- package/dist/lib/db/role-store.js.map +1 -1
- package/dist/lib/db/segment-store.d.ts +6 -2
- package/dist/lib/db/segment-store.js +27 -6
- package/dist/lib/db/segment-store.js.map +1 -1
- package/dist/lib/error/no-access-error.d.ts +3 -2
- package/dist/lib/error/no-access-error.js +10 -4
- package/dist/lib/error/no-access-error.js.map +1 -1
- package/dist/lib/error/unleash-error.test.js +8 -2
- package/dist/lib/error/unleash-error.test.js.map +1 -1
- package/dist/lib/features/access/createAccessService.js +5 -5
- package/dist/lib/features/access/createAccessService.js.map +1 -1
- package/dist/lib/features/export-import-toggles/createExportImportService.js +4 -2
- package/dist/lib/features/export-import-toggles/createExportImportService.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-api-usage.test.d.ts +1 -0
- package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js +69 -0
- package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js.map +1 -0
- package/dist/lib/features/export-import-toggles/export-import-controller.js +5 -1
- package/dist/lib/features/export-import-toggles/export-import-controller.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-service.js +7 -2
- package/dist/lib/features/export-import-toggles/export-import-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js +4 -4
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
- package/dist/lib/features/playground/advanced-playground.test.d.ts +1 -0
- package/dist/lib/features/playground/advanced-playground.test.js +238 -0
- package/dist/lib/features/playground/advanced-playground.test.js.map +1 -0
- package/dist/lib/{util → features/playground}/feature-evaluator/client.d.ts +3 -2
- package/dist/lib/{util → features/playground}/feature-evaluator/client.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/client.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/constraint.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/context.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/feature-evaluator.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/feature.js.map +1 -0
- package/dist/lib/{util → features/playground}/feature-evaluator/helpers.d.ts +1 -1
- package/dist/lib/features/playground/feature-evaluator/helpers.js.map +1 -0
- package/dist/lib/{util → features/playground}/feature-evaluator/index.d.ts +1 -1
- package/dist/lib/{util → features/playground}/feature-evaluator/index.js +2 -2
- package/dist/lib/features/playground/feature-evaluator/index.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/repository/bootstrap-provider.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/repository/index.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/repository/storage-provider-in-mem.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/repository/storage-provider.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/application-hostname-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/default-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-session-id.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-user-id.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/index.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/remote-address-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/strategy.js.map +1 -0
- package/dist/lib/{util → features/playground}/feature-evaluator/strategy/unknown-strategy.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/user-with-id-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/util.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/variant.js.map +1 -0
- package/dist/lib/features/playground/generateObjectCombinations.d.ts +7 -0
- package/dist/lib/features/playground/generateObjectCombinations.js +16 -0
- package/dist/lib/features/playground/generateObjectCombinations.js.map +1 -0
- package/dist/lib/features/playground/generateObjectCombinations.test.d.ts +1 -0
- package/dist/lib/features/playground/generateObjectCombinations.test.js +33 -0
- package/dist/lib/features/playground/generateObjectCombinations.test.js.map +1 -0
- package/dist/lib/{util → features/playground}/offline-unleash-client.js +2 -2
- package/dist/lib/features/playground/offline-unleash-client.js.map +1 -0
- package/dist/lib/{util → features/playground}/offline-unleash-client.test.js +1 -1
- package/dist/lib/features/playground/offline-unleash-client.test.js.map +1 -0
- package/dist/lib/features/playground/playground-service.d.ts +34 -0
- package/dist/lib/features/playground/playground-service.js +114 -0
- package/dist/lib/features/playground/playground-service.js.map +1 -0
- package/dist/lib/features/playground/playground-view-model.d.ts +4 -0
- package/dist/lib/features/playground/playground-view-model.js +49 -0
- package/dist/lib/features/playground/playground-view-model.js.map +1 -0
- package/dist/lib/features/playground/playground-view-model.test.d.ts +1 -0
- package/dist/lib/features/playground/playground-view-model.test.js +122 -0
- package/dist/lib/features/playground/playground-view-model.test.js.map +1 -0
- package/dist/lib/features/playground/playground.d.ts +16 -0
- package/dist/lib/features/playground/playground.js +78 -0
- package/dist/lib/features/playground/playground.js.map +1 -0
- package/dist/lib/features/playground/playground.test.d.ts +1 -0
- package/dist/lib/{routes/admin-api → features/playground}/playground.test.js +3 -2
- package/dist/lib/features/playground/playground.test.js.map +1 -0
- package/dist/lib/features/playground/validateQueryComplexity.d.ts +1 -0
- package/dist/lib/features/playground/validateQueryComplexity.js +15 -0
- package/dist/lib/features/playground/validateQueryComplexity.js.map +1 -0
- package/dist/lib/features/playground/validateQueryComplexity.test.d.ts +1 -0
- package/dist/lib/features/playground/validateQueryComplexity.test.js +19 -0
- package/dist/lib/features/playground/validateQueryComplexity.test.js.map +1 -0
- package/dist/lib/middleware/rbac-middleware.d.ts +1 -1
- package/dist/lib/middleware/rbac-middleware.js +7 -4
- package/dist/lib/middleware/rbac-middleware.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.test.js +8 -8
- package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
- package/dist/lib/openapi/endpoint-descriptions.d.ts +4 -0
- package/dist/lib/openapi/endpoint-descriptions.js +4 -0
- package/dist/lib/openapi/endpoint-descriptions.js.map +1 -1
- package/dist/lib/openapi/index.js +7 -0
- package/dist/lib/openapi/index.js.map +1 -1
- package/dist/lib/openapi/meta-schema-rules.test.js +16 -25
- package/dist/lib/openapi/meta-schema-rules.test.js.map +1 -1
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +652 -0
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js +146 -0
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js.map +1 -0
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +1217 -0
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.js +51 -0
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.js.map +1 -0
- package/dist/lib/openapi/spec/advanced-playground-request-schema.d.ts +95 -0
- package/dist/lib/openapi/spec/advanced-playground-request-schema.js +49 -0
- package/dist/lib/openapi/spec/advanced-playground-request-schema.js.map +1 -0
- package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +2560 -0
- package/dist/lib/openapi/spec/advanced-playground-response-schema.js +50 -0
- package/dist/lib/openapi/spec/advanced-playground-response-schema.js.map +1 -0
- package/dist/lib/openapi/spec/client-application-schema.d.ts +17 -0
- package/dist/lib/openapi/spec/client-application-schema.js +17 -0
- package/dist/lib/openapi/spec/client-application-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-feature-schema.d.ts +44 -13
- package/dist/lib/openapi/spec/client-feature-schema.js +17 -12
- package/dist/lib/openapi/spec/client-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-features-query-schema.d.ts +12 -0
- package/dist/lib/openapi/spec/client-features-query-schema.js +12 -0
- package/dist/lib/openapi/spec/client-features-query-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-features-schema.d.ts +90 -14
- package/dist/lib/openapi/spec/client-features-schema.js +7 -0
- package/dist/lib/openapi/spec/client-features-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-features-schema.test.js +5 -12
- package/dist/lib/openapi/spec/client-features-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.js +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.js.map +1 -1
- package/dist/lib/openapi/spec/context-field-schema.d.ts +13 -0
- package/dist/lib/openapi/spec/context-field-schema.js +13 -0
- package/dist/lib/openapi/spec/context-field-schema.js.map +1 -1
- package/dist/lib/openapi/spec/context-field-strategies-schema.d.ts +43 -0
- package/dist/lib/openapi/spec/context-field-strategies-schema.js +51 -0
- package/dist/lib/openapi/spec/context-field-strategies-schema.js.map +1 -0
- package/dist/lib/openapi/spec/context-fields-schema.d.ts +13 -0
- package/dist/lib/openapi/spec/create-application-schema.d.ts +0 -1
- package/dist/lib/openapi/spec/create-application-schema.js +0 -1
- package/dist/lib/openapi/spec/create-application-schema.js.map +1 -1
- package/dist/lib/openapi/spec/export-result-schema.d.ts +137 -4
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts +22 -1
- package/dist/lib/openapi/spec/feature-schema.d.ts +49 -2
- package/dist/lib/openapi/spec/feature-schema.test.js +1 -1
- package/dist/lib/openapi/spec/feature-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-variants-schema.d.ts +26 -0
- package/dist/lib/openapi/spec/features-schema.d.ts +98 -4
- package/dist/lib/openapi/spec/health-check-schema.d.ts +3 -0
- package/dist/lib/openapi/spec/health-check-schema.js +3 -0
- package/dist/lib/openapi/spec/health-check-schema.js.map +1 -1
- package/dist/lib/openapi/spec/health-overview-schema.d.ts +98 -4
- package/dist/lib/openapi/spec/health-report-schema.d.ts +98 -4
- package/dist/lib/openapi/spec/import-toggles-schema.d.ts +274 -8
- package/dist/lib/openapi/spec/index.d.ts +3 -0
- package/dist/lib/openapi/spec/index.js +3 -0
- package/dist/lib/openapi/spec/index.js.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +65 -2
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js +65 -2
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
- package/dist/lib/openapi/spec/override-schema.d.ts +5 -0
- package/dist/lib/openapi/spec/override-schema.js +5 -0
- package/dist/lib/openapi/spec/override-schema.js.map +1 -1
- package/dist/lib/openapi/spec/password-schema.d.ts +3 -0
- package/dist/lib/openapi/spec/password-schema.js +3 -0
- package/dist/lib/openapi/spec/password-schema.js.map +1 -1
- package/dist/lib/openapi/spec/playground-feature-schema.d.ts +41 -1
- package/dist/lib/openapi/spec/playground-feature-schema.js +6 -1
- package/dist/lib/openapi/spec/playground-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/playground-feature-schema.test.js +3 -0
- package/dist/lib/openapi/spec/playground-feature-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/playground-request-schema.d.ts +7 -1
- package/dist/lib/openapi/spec/playground-request-schema.js +1 -1
- package/dist/lib/openapi/spec/playground-request-schema.js.map +1 -1
- package/dist/lib/openapi/spec/playground-response-schema.d.ts +93 -3
- package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +13 -1
- package/dist/lib/openapi/spec/playground-strategy-schema.js +13 -0
- package/dist/lib/openapi/spec/playground-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts +49 -2
- package/dist/lib/openapi/spec/project-overview-schema.d.ts +98 -4
- package/dist/lib/openapi/spec/push-variants-schema.d.ts +26 -0
- package/dist/lib/openapi/spec/sdk-context-schema.d.ts +6 -0
- package/dist/lib/openapi/spec/sdk-context-schema.js +14 -2
- package/dist/lib/openapi/spec/sdk-context-schema.js.map +1 -1
- package/dist/lib/openapi/spec/state-schema.d.ts +72 -4
- package/dist/lib/openapi/spec/variant-schema.d.ts +21 -0
- package/dist/lib/openapi/spec/variant-schema.js +13 -0
- package/dist/lib/openapi/spec/variant-schema.js.map +1 -1
- package/dist/lib/openapi/spec/variants-schema.d.ts +26 -0
- package/dist/lib/openapi/util/create-response-schema.d.ts +1 -0
- package/dist/lib/openapi/util/create-response-schema.js +7 -1
- package/dist/lib/openapi/util/create-response-schema.js.map +1 -1
- package/dist/lib/proxy/proxy-repository.js +1 -1
- package/dist/lib/proxy/proxy-repository.js.map +1 -1
- package/dist/lib/routes/admin-api/api-token.d.ts +2 -0
- package/dist/lib/routes/admin-api/api-token.js +120 -11
- package/dist/lib/routes/admin-api/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/context.d.ts +3 -0
- package/dist/lib/routes/admin-api/context.js +21 -0
- package/dist/lib/routes/admin-api/context.js.map +1 -1
- package/dist/lib/routes/admin-api/index.js +1 -1
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.d.ts +3 -1
- package/dist/lib/routes/admin-api/instance-admin.js +41 -0
- package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/metrics.test.js +12 -0
- package/dist/lib/routes/admin-api/metrics.test.js.map +1 -1
- package/dist/lib/routes/admin-api/project/api-token.js +7 -0
- package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.js +5 -4
- package/dist/lib/routes/admin-api/user/user.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.test.js +30 -5
- package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.js +0 -1
- package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
- package/dist/lib/routes/client-api/feature.js +4 -0
- package/dist/lib/routes/client-api/feature.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.js +2 -0
- package/dist/lib/routes/client-api/metrics.js.map +1 -1
- package/dist/lib/routes/client-api/register.js +2 -0
- package/dist/lib/routes/client-api/register.js.map +1 -1
- package/dist/lib/routes/controller.d.ts +8 -7
- package/dist/lib/routes/controller.js +11 -10
- package/dist/lib/routes/controller.js.map +1 -1
- package/dist/lib/routes/health-check.js +2 -0
- package/dist/lib/routes/health-check.js.map +1 -1
- package/dist/lib/server-impl.js +1 -1
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/access-service.d.ts +6 -4
- package/dist/lib/services/access-service.js +47 -11
- package/dist/lib/services/access-service.js.map +1 -1
- package/dist/lib/services/access-service.test.js +39 -22
- package/dist/lib/services/access-service.test.js.map +1 -1
- package/dist/lib/services/api-token-service.d.ts +1 -0
- package/dist/lib/services/api-token-service.js +3 -0
- package/dist/lib/services/api-token-service.js.map +1 -1
- package/dist/lib/services/context-service.d.ts +4 -1
- package/dist/lib/services/context-service.js +14 -1
- package/dist/lib/services/context-service.js.map +1 -1
- package/dist/lib/services/feature-toggle-service.d.ts +1 -1
- package/dist/lib/services/feature-toggle-service.js +6 -7
- package/dist/lib/services/feature-toggle-service.js.map +1 -1
- package/dist/lib/services/group-service.js +1 -3
- package/dist/lib/services/group-service.js.map +1 -1
- package/dist/lib/services/index.d.ts +1 -1
- package/dist/lib/services/index.js +1 -1
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/instance-stats-service.d.ts +2 -3
- package/dist/lib/services/user-service.d.ts +1 -0
- package/dist/lib/services/user-service.js +8 -0
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/services/version-service.d.ts +37 -1
- package/dist/lib/services/version-service.js +76 -5
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/services/version-service.test.js +196 -9
- package/dist/lib/services/version-service.test.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.js +6 -2
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +8 -4
- package/dist/lib/types/model.js +1 -0
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/option.d.ts +2 -0
- package/dist/lib/types/permissions.d.ts +34 -27
- package/dist/lib/types/permissions.js +85 -29
- package/dist/lib/types/permissions.js.map +1 -1
- package/dist/lib/types/services.d.ts +1 -1
- package/dist/lib/types/stores/access-store.d.ts +1 -1
- package/dist/lib/types/stores/context-field-store.d.ts +2 -0
- package/dist/lib/types/stores/environment-store.d.ts +1 -0
- package/dist/lib/types/stores/feature-strategies-store.d.ts +2 -0
- package/dist/lib/types/stores/feature-toggle-store.d.ts +1 -1
- package/dist/lib/types/stores/group-store.d.ts +1 -1
- package/dist/lib/util/constants.d.ts +7 -1
- package/dist/lib/util/constants.js +8 -2
- package/dist/lib/util/constants.js.map +1 -1
- package/dist/lib/util/ensureArray.d.ts +1 -0
- package/dist/lib/util/ensureArray.js +8 -0
- package/dist/lib/util/ensureArray.js.map +1 -0
- package/dist/lib/util/index.d.ts +1 -1
- package/dist/lib/util/index.js +1 -1
- package/dist/lib/util/index.js.map +1 -1
- package/dist/migrations/20230615122909-fix-env-sort-order.d.ts +2 -0
- package/dist/migrations/20230615122909-fix-env-sort-order.js +28 -0
- package/dist/migrations/20230615122909-fix-env-sort-order.js.map +1 -0
- package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.d.ts +2 -0
- package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.js +26 -0
- package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.js.map +1 -0
- package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.d.ts +2 -0
- package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.js +23 -0
- package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.js.map +1 -0
- package/dist/migrations/20230621141239-refactor-api-token-permissions.d.ts +2 -0
- package/dist/migrations/20230621141239-refactor-api-token-permissions.js +19 -0
- package/dist/migrations/20230621141239-refactor-api-token-permissions.js.map +1 -0
- package/dist/server-dev.js +3 -3
- package/dist/server-dev.js.map +1 -1
- package/dist/test/arbitraries.test.js +3 -1
- package/dist/test/arbitraries.test.js.map +1 -1
- package/dist/test/config/test-config.js +0 -1
- package/dist/test/config/test-config.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +542 -3
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.e2e.test.js +14 -1
- package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.js +1 -8
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/context.e2e.test.js +47 -1
- package/dist/test/e2e/api/admin/context.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/features.e2e.test.js +14 -14
- package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
- package/dist/test/e2e/helpers/test-helper.d.ts +1 -1
- package/dist/test/e2e/helpers/test-helper.js +4 -2
- package/dist/test/e2e/helpers/test-helper.js.map +1 -1
- package/dist/test/e2e/services/access-service.e2e.test.js +1 -1
- package/dist/test/e2e/services/access-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/playground-service.test.js +2 -2
- package/dist/test/e2e/services/playground-service.test.js.map +1 -1
- package/dist/test/fixtures/access-service-mock.js +1 -1
- package/dist/test/fixtures/access-service-mock.js.map +1 -1
- package/dist/test/fixtures/fake-access-store.d.ts +5 -3
- package/dist/test/fixtures/fake-access-store.js +24 -9
- package/dist/test/fixtures/fake-access-store.js.map +1 -1
- package/dist/test/fixtures/fake-environment-store.d.ts +1 -0
- package/dist/test/fixtures/fake-environment-store.js +3 -0
- package/dist/test/fixtures/fake-environment-store.js.map +1 -1
- package/dist/test/fixtures/fake-feature-strategies-store.d.ts +2 -0
- package/dist/test/fixtures/fake-feature-strategies-store.js +7 -0
- package/dist/test/fixtures/fake-feature-strategies-store.js.map +1 -1
- package/dist/test/fixtures/fake-group-store.d.ts +1 -1
- package/dist/test/fixtures/fake-group-store.js +1 -1
- package/dist/test/fixtures/fake-group-store.js.map +1 -1
- package/dist/test/fixtures/fake-role-store.d.ts +1 -1
- package/dist/test/fixtures/fake-role-store.js +9 -4
- package/dist/test/fixtures/fake-role-store.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/AdvancedPlayground-520a25e1.js +1 -0
- package/frontend/build/static/CreateProject-c430691b.js +4 -0
- package/frontend/build/static/{Error-fa3099b2.js → Error-492e8b38.js} +1 -1
- package/frontend/build/static/FeatureArchiveDialog-70daa567.js +10 -0
- package/frontend/build/static/{FeatureMetricsChart-caa58088.js → FeatureMetricsChart-bc99b364.js} +2 -2
- package/frontend/build/static/FeatureViewLazyExport-01d70575.js +7 -0
- package/frontend/build/static/LazyAdminExport-e2c90193.js +37 -0
- package/frontend/build/static/LazyProjectExport-fa62d2fe.js +13 -0
- package/frontend/build/static/NetworkOverview-3b72e4ea.js +1298 -0
- package/frontend/build/static/NetworkTraffic-365db744.js +1 -0
- package/frontend/build/static/Playground-b473b399.js +1 -0
- package/frontend/build/static/{Playground-3eeb2ce7.js → PlaygroundGuidancePopper-8e3e97db.js} +12 -12
- package/frontend/build/static/RoleCell-9bb513a8.js +1 -0
- package/frontend/build/static/StrategyItemContainer-1f7503c7.js +1 -0
- package/frontend/build/static/{chartjs-adapter-date-fns.esm-d0669d39.js → chartjs-adapter-date-fns.esm-db338d44.js} +1 -1
- package/frontend/build/static/flowchart-elk-definition-170a3958-a428dd25.js +134 -0
- package/frontend/build/static/index-0a56292a.js +450 -0
- package/frontend/build/static/{index-70a530dd.js → index-d362ae7a.js} +1 -1
- package/frontend/build/static/{index-5ae801ef.js → index-dc5debe9.js} +1 -1
- package/frontend/build/static/is_dark-884249e0.js +1 -0
- package/frontend/build/static/mindmap-definition-44684416-3c9425ff.js +101 -0
- package/frontend/build/static/stringify-ec884b6d.js +1 -0
- package/frontend/build/static/timeline-definition-8e5a9bc6-d289cd6d.js +62 -0
- package/frontend/build/static/{unknownify-d86d026c.js → unknownify-5b23bf29.js} +1 -1
- package/frontend/package.json +18 -17
- package/package.json +16 -13
- package/dist/lib/routes/admin-api/playground.d.ts +0 -12
- package/dist/lib/routes/admin-api/playground.js +0 -46
- package/dist/lib/routes/admin-api/playground.js.map +0 -1
- package/dist/lib/routes/admin-api/playground.test.js.map +0 -1
- package/dist/lib/services/playground-service.d.ts +0 -12
- package/dist/lib/services/playground-service.js +0 -65
- package/dist/lib/services/playground-service.js.map +0 -1
- package/dist/lib/util/feature-evaluator/client.js.map +0 -1
- package/dist/lib/util/feature-evaluator/constraint.js.map +0 -1
- package/dist/lib/util/feature-evaluator/context.js.map +0 -1
- package/dist/lib/util/feature-evaluator/feature-evaluator.js.map +0 -1
- package/dist/lib/util/feature-evaluator/feature.js.map +0 -1
- package/dist/lib/util/feature-evaluator/helpers.js.map +0 -1
- package/dist/lib/util/feature-evaluator/index.js.map +0 -1
- package/dist/lib/util/feature-evaluator/repository/bootstrap-provider.js.map +0 -1
- package/dist/lib/util/feature-evaluator/repository/index.js.map +0 -1
- package/dist/lib/util/feature-evaluator/repository/storage-provider-in-mem.js.map +0 -1
- package/dist/lib/util/feature-evaluator/repository/storage-provider.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/application-hostname-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/default-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/flexible-rollout-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-random.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-session-id.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-user-id.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/index.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/remote-address-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/unknown-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/user-with-id-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/util.js.map +0 -1
- package/dist/lib/util/feature-evaluator/variant.js.map +0 -1
- package/dist/lib/util/offline-unleash-client.js.map +0 -1
- package/dist/lib/util/offline-unleash-client.test.js.map +0 -1
- package/frontend/build/static/CreateProject-0e1caafd.js +0 -4
- package/frontend/build/static/FeatureArchiveDialog-ec9e5524.js +0 -4
- package/frontend/build/static/FeatureViewLazyExport-4da2d0f1.js +0 -7
- package/frontend/build/static/LazyAdminExport-b294bdfc.js +0 -43
- package/frontend/build/static/LazyProjectExport-fc25f20d.js +0 -19
- package/frontend/build/static/NetworkOverview-9038e532.js +0 -1296
- package/frontend/build/static/NetworkTraffic-de75c58b.js +0 -1
- package/frontend/build/static/StrategyItemContainer-4f8afe80.js +0 -1
- package/frontend/build/static/index-e59cfb08.js +0 -450
- package/frontend/build/static/useProjectRole-cddab9e6.js +0 -1
- package/frontend/build/static/v4-a960c1f4.js +0 -1
- /package/dist/lib/{routes/admin-api/playground.test.d.ts → db/feature-strategy-store.test.d.ts} +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/constraint.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/constraint.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/context.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/context.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/feature-evaluator.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/feature-evaluator.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/feature.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/feature.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/helpers.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/bootstrap-provider.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/bootstrap-provider.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/index.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/index.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider-in-mem.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider-in-mem.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/application-hostname-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/application-hostname-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/default-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/default-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/flexible-rollout-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/flexible-rollout-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-random.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-random.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-session-id.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-session-id.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-user-id.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-user-id.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/index.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/index.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/remote-address-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/remote-address-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/unknown-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/user-with-id-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/user-with-id-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/util.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/util.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/variant.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/variant.js +0 -0
- /package/dist/lib/{util → features/playground}/offline-unleash-client.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/offline-unleash-client.test.d.ts +0 -0
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{c as le,j as n,cC as c0,cE as l0,s as h,cp as d0,cm as et,g as st,r as u,dP as u0,l as o1,d as t1,f as l,S as ct,h as lt,i as dt,k as ut,bZ as p0,b8 as G1,A as w1,aO as de,aP as K1,aQ as J1,dQ as H3,aF as Y,dR as F1,bS as x1,a2 as u1,cg as C1,ar as De,H as p1,dS as h0,R as Ae,cK as l2,dT as W3,dU as k1,al as i1,V as D1,ak as d1,C as w,aL as R1,X as ue,W as S1,ck as m0,K as pt,dV as g0,bb as Re,bc as Fe,bd as Pe,a as E,b1 as Y1,m as M1,bg as f0,P as ht,dl as mt,dW as ae,cq as d2,a8 as N1,dX as jt,b5 as re,dF as v0,b7 as oe,T as $,cs as N3,aK as gt,dY as q1,af as q3,c7 as u2,u as m1,N as b1,dZ as y0,F as G,d_ as U3,ap as P1,a9 as l1,d$ as b0,dk as C0,a4 as h1,bM as S0,bK as p2,ca as ft,bN as G3,aW as Ze,a$ as Ie,aX as je,e0 as K3,di as J3,bC as _0,ao as T1,L as h2,e1 as w0,cn as x0,e2 as T0,e3 as E0,e4 as A0,e5 as Y3,e6 as Q3,O as X3,e7 as k0,cc as vt,Q as yt,cW as D0,cl as R0,bQ as en,Y as bt,e8 as F0,D as P0,aN as Z0,ch as I0,M as tn,e9 as j0,ah as L1,ea as nn,ag as an,eb as rn,ai as O0,ec as $0,ed as B0,aR as on,ee as m2,a1 as z0,ef as sn,eg as V0,eh as M0,ei as L0,ej as H0,bH as cn,ek as ln,el as dn,e as Oe,U as Ct,em as W0,en as N0,aH as q0,br as U0,eo as St,ep as G0,eq as un,er as K0,ay as pe,az as Q1,aI as j1,aA as he,aD as me,aE as ge,es as J0,cd as Ee,bP as pn,et as hn,eu as Y0,bq as X1,an as mn,bm as _t,ev as Q0,ew as X0,ex as ea,ey as ta,ez as na,eA as aa,eB as ra,dA as gn,cb as oa,de as tt,eC as ia,cu as g2,eD as wt,bV as U1,aJ as z1,aM as xt,bl as f2,d6 as v2,ax as V1,as as y2,eE as sa,ad as B2,eF as ca,d3 as Ne,ac as e2,eG as la,eH as da,d4 as ua,d5 as pa,eI as ha,eJ as ma,eK as ga,bT as fe,bU as X,eL as fa,eM as fn,Z as b2,au as va,eN as ya,cO as ba,eO as Ca,eP as Sa,eQ as _a,bo as vn,bp as wa,bz as xa,bA as Ta,bB as Ea,x as Aa,eR as ka,eS as Da,be as Ra,eT as yn,eU as Fa,eV as Pa,eW as Za,eX as Ia,eY as ja,eZ as Oa,e_ as $a,e$ as Ba,f0 as za,aY as Va,f1 as Ma,co as bn,f2 as La,d0 as Cn,f3 as ie,f4 as Q,f5 as Ha,f6 as Wa,f7 as Na,f8 as qa,f9 as Ua,d9 as Ga,fa as Ka,fb as Ja,fc as Ya,fd as Qa}from"./index-e59cfb08.js";import{e as Sn,W as z2,b as Xa,u as _n,T as er,c as tr,h as nr,F as ar,V as rr,a as or,g as ir,C as sr,i as cr,j as V2,R as M2,k as lr,l as dr,E as ur}from"./FeatureArchiveDialog-ec9e5524.js";import{a as pr}from"./index-5ae801ef.js";import{m as hr,h as mr,b as gr,c as fr,d as vr,e as yr,E as br,f as Cr,u as Sr,a as _r,R as wr,C as xr,A as Tr,B as wn}from"./useProjectRole-cddab9e6.js";import{S as Er}from"./StrategyItemContainer-4f8afe80.js";import{E as Ar}from"./Error-fa3099b2.js";const kr=le(n("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"}),"ArrowUpward"),Dr=le(n("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5z"}),"CallMade"),Rr=le(n("path",{d:"M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"}),"FileUpload"),Fr=le(n("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"}),"Pending"),Pr=le(n("path",{d:"M12 5.99 19.53 19H4.47L12 5.99M12 2 1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),Zr=le(n("path",{d:"M19 9h-2v6.59L5.41 4 4 5.41 15.59 17H9v2h10V9z"}),"SouthEast");function Ir(e,t){c0(2,arguments);var a=l0(t);return pr(e,-a)}const L2=h("div")(()=>({display:"flex"})),jr=h("div")(()=>({display:"flex",flexDirection:"row",justifyContent:"space-between",width:"100%"}));h("div")(()=>({display:"flex",flexDirection:"column"}));const Or=h("span")(({theme:e})=>({fontSize:e.typography.h1.fontSize,textOverflow:"ellipsis",whiteSpace:"nowrap"})),$r=h("span")(({theme:e})=>({fontSize:e.fontSizes.smallBody,fontWeight:"normal"}));h($r)(({theme:e})=>({color:e.palette.neutral.dark}));const Br=h(d0)(({theme:e})=>({marginLeft:e.spacing(-1.5)})),zr=h("div")(({theme:e})=>({backgroundColor:e.palette.background.paper,borderRadius:e.shape.borderRadiusLarge,marginBottom:e.spacing(2)})),Vr=h("div")(({theme:e})=>({padding:e.spacing(2.5,5),display:"flex",flexDirection:"column",alignItems:"start"})),Mr=h("span")(({theme:e})=>({margin:0,width:"100%",fontSize:e.fontSizes.mainHeader,fontWeight:"bold",display:"flex",justifyContent:"space-between",alignItems:"center",gap:e.spacing(2)})),Lr=h("div")(({theme:e})=>({width:"100%",backgroundColor:e.palette.divider,height:"1px"})),Hr=h("div")(({theme:e})=>({padding:e.spacing(0,4)})),Wr=h(et)(({theme:e})=>({textTransform:"none",fontSize:e.fontSizes.bodySize,flexGrow:1,flexBasis:0,[e.breakpoints.down("md")]:{paddingLeft:e.spacing(1),paddingRight:e.spacing(1)},[e.breakpoints.up("md")]:{minWidth:160}})),Nr=e=>e.reduce((t,a)=>a.enabled?t+1:t,0),qr=h(st)(({theme:e})=>({marginTop:e.spacing(3)})),Ur=h("p",{shouldForwardProp:e=>e!=="warning"})(({theme:e,warning:t})=>({color:t?e.palette.error.dark:e.palette.text.primary,textAlign:"center"})),Gr=({environment:e,warnEnabledToggles:t})=>{const a=u.useMemo(()=>[{id:"Icon",width:"1%",Cell:({row:{original:d}})=>n(u0,{environment:d})},{Header:"Name",accessor:"name",Cell:o1},{Header:"Type",accessor:"type",Cell:o1},{Header:"Toggles enabled",accessor:"projectEnabledToggleCount",Cell:({value:d})=>n(o1,{children:n(Ur,{warning:d>0,children:d===1?"1 toggle":`${d} toggles`})}),align:"center"}],[t]),{getTableProps:r,getTableBodyProps:o,headerGroups:i,rows:s,prepareRow:c}=t1.useTable({columns:a,data:[e],disableSortBy:!0});return l(qr,{...r(),rowHeight:"compact",children:[n(ct,{headerGroups:i}),n(lt,{...o(),children:s.map(d=>(c(d),n(dt,{hover:!0,...d.getRowProps(),children:d.cells.map(p=>n(ut,{...p.getCellProps(),children:p.render("Cell")}))})))})]})},Kr=h("p")(({theme:e})=>({marginTop:e.spacing(3),marginBottom:e.spacing(1.5)})),Jr=h(p0)(()=>({width:"100%"})),Yr=({environment:e,open:t,setOpen:a,onConfirm:r})=>{const[o,i]=u.useState("");return u.useEffect(()=>{i("")},[t]),l(G1,{title:"Hide environment and disable feature toggles?",open:t,primaryButtonText:"Hide environment and disable feature toggles",disabledPrimaryButton:(e==null?void 0:e.name)!==o,secondaryButtonText:"Close",onClick:r,onClose:()=>{a(!1)},children:[l(w1,{severity:"error",children:[n("strong",{children:"Danger!"})," Hiding an environment will disable all the feature toggles that are enabled in this environment and it can impact client applications connected to the environment."]}),n(Gr,{environment:e}),l(Kr,{children:["In order to hide this environment, please enter the id of the environment in the textfield below:"," ",n("strong",{children:e==null?void 0:e.name})]}),n(Jr,{label:"Environment name",value:o,onChange:s=>i(s.target.value)})]})},Qr=e=>{const{data:t,error:a,mutate:r}=de(K1(`api/admin/environments/project/${e}`),Xr),o=u.useMemo(()=>t||[],[t]),i=u.useCallback(async()=>{await r()},[r]);return{environments:o,refetchEnvironments:i,loading:!a&&!t,error:a}},Xr=async e=>(await fetch(e).then(J1("Environments")).then(a=>a.json())).environments.sort((a,r)=>a.sortOrder-r.sortOrder),eo=h(w1)(({theme:e})=>({marginBottom:e.spacing(4)})),to=h("div")(({theme:e})=>({display:"flex",flexWrap:"wrap",[e.breakpoints.down("sm")]:{justifyContent:"center"}})),no=h(H3)(({theme:e})=>({maxWidth:"400px",marginBottom:e.spacing(2)})),xn=()=>{const e=Y("projectId"),t=F1(e);x1(`Project environments – ${t}`);const{setToastData:a,setToastApiError:r}=u1(),{environments:o,loading:i,error:s,refetchEnvironments:c}=Qr(e),{project:d,refetch:p}=C1(e),{removeEnvironmentFromProject:m,addEnvironmentToProject:g}=De(),[f,C]=u.useState(),[S,b]=u.useState(!1),{isOss:R}=p1(),v=u.useMemo(()=>o.map(I=>({...I,projectVisible:d==null?void 0:d.environments.map(q=>q.environment).includes(I.name)})),[o,d==null?void 0:d.environments]),F=()=>{c(),p()},T=()=>n(no,{onClick:F,text:"Error fetching environments"}),j=I=>`Got an API error when trying to set the environment as ${I?"visible":"hidden"}`,M=async I=>{if(I.projectVisible){if(Nr(v)>1){C(I),b(!0);return}a({title:"One environment must be visible",text:"You must always have at least one visible environment per project",type:"error"})}else try{await g(e,I.name),F(),a({title:"Environment set as visible",text:"Environment successfully set as visible.",type:"success"})}catch{r(j(!0))}},_=async()=>{if(f)try{await m(e,f.name),F(),a({title:"Environment set as hidden",text:"Environment successfully set as hidden.",type:"success"})}catch{r(j(!1))}finally{b(!1)}},D=I=>R()&&I==="default",P=u.useMemo(()=>[{Header:"Name",accessor:"name",Cell:({row:{original:I}})=>n(h0,{environment:I})},{Header:"Type",accessor:"type",Cell:Ae},{Header:"Project API tokens",accessor:I=>I.projectApiTokenCount===1?"1 token":`${I.projectApiTokenCount} tokens`,Cell:o1},{Header:"Visible in project",accessor:"enabled",align:"center",width:1,Cell:({row:{original:I}})=>n(l2,{children:n(W3,{tooltip:I.projectVisible?"Hide environment and disable feature toggles":"Make it visible",size:"medium",disabled:D(I.name),projectId:e,permission:k1,checked:I.projectVisible,onChange:()=>M(I)})}),disableGlobalFilter:!0}],[v]),{getTableProps:B,getTableBodyProps:V,headerGroups:O,rows:J,prepareRow:N,state:{globalFilter:L},setGlobalFilter:y}=t1.useTable({columns:P,data:v,disableSortBy:!0},t1.useGlobalFilter),k=n(i1,{title:`Environments (${J.length})`,actions:n(D1,{initialValue:L,onChange:y})});return n(d1,{header:k,isLoading:i,children:l(to,{children:[n(w,{condition:!!s,show:T()}),l(eo,{severity:"info",children:[n("strong",{children:"Important!"})," In order for your application to retrieve configured activation strategies for a specific environment, the application must use an environment specific API token. You can look up the environment-specific"," ",n(R1,{to:"/admin/api",children:"API tokens here"}),".",n("br",{}),n("br",{}),"Your administrator can configure an environment-specific API token to be used in the SDK. If you are an administrator you can ",n(R1,{to:"/admin/api",children:"create a new API token here"}),"."]}),n(ue,{value:L,children:l(st,{...B(),rowHeight:"compact",children:[n(ct,{headerGroups:O}),n(lt,{...V(),children:J.map(I=>(N(I),n(dt,{hover:!0,...I.getRowProps(),children:I.cells.map(q=>n(ut,{...q.getCellProps(),children:q.render("Cell")}))})))})]})}),n(w,{condition:J.length===0,show:n(w,{condition:(L==null?void 0:L.length)>0,show:l(S1,{children:["No environments found matching “",L,"”"]}),elseShow:n(S1,{children:"No environments available. Get started by adding one."})})}),n(Yr,{environment:f,open:S,setOpen:b,onConfirm:_})]})})},ao={id:"archivedAt"},ro=({projectId:e})=>{const{archivedFeatures:t,loading:a,refetchArchived:r}=m0(e),{value:o,setValue:i}=pt(`${e}:ProjectFeaturesArchiveTable`,ao);return n(g0,{title:"Project archive",archivedFeatures:t||[],loading:a,storedParams:o,setStoredParams:i,refetch:r,projectId:e})},oo=()=>{const e=Y("projectId"),t=F1(e);return x1(`Project archive – ${t}`),n(ro,{projectId:e})},io=(e=[])=>{var r;let t=e.map(o=>o.environment);const a=u.useRef(t);return t.join("")!==((r=a.current)==null?void 0:r.join(""))&&(a.current=t),a.current};var C2={},so=Fe;Object.defineProperty(C2,"__esModule",{value:!0});var Tn=C2.default=void 0,co=so(Re()),lo=Pe,uo=(0,co.default)((0,lo.jsx)("path",{d:"m20.54 5.23-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5 6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"}),"Archive");Tn=C2.default=uo;var S2={},po=Fe;Object.defineProperty(S2,"__esModule",{value:!0});var En=S2.default=void 0,ho=po(Re()),mo=Pe,go=(0,ho.default)((0,mo.jsx)("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"}),"WatchLater");En=S2.default=go;const fo=h(E)(({theme:e})=>({display:"flex",justifyContent:"center",paddingRight:e.spacing(2)})),vo=({projectId:e,row:t,onOpenArchiveDialog:a,onOpenStaleDialog:r})=>{const[o,i]=u.useState(null),{original:{name:s,stale:c}}=t,d=!!o,p=C=>{i(C.currentTarget)},m=()=>{i(null)},g=`feature-${s}-actions`,f=`${g}-menu`;return l(fo,{children:[n(Y1,{title:"Feature toggle actions",arrow:!0,describeChild:!0,children:n(M1,{id:g,"aria-controls":d?f:void 0,"aria-haspopup":"true","aria-expanded":d?"true":void 0,onClick:p,type:"button",children:n(f0,{})})}),n(ht,{id:f,anchorEl:o,open:d,onClose:m,transformOrigin:{horizontal:"right",vertical:"top"},anchorOrigin:{horizontal:"right",vertical:"bottom"},disableScrollLock:!0,PaperProps:{sx:C=>({borderRadius:`${C.shape.borderRadius}px`,padding:C.spacing(1,1.5)})},children:l(mt,{"aria-labelledby":g,children:[n(ae,{projectId:e,permission:d2,children:({hasAccess:C})=>l(N1,{sx:jt,onClick:m,disabled:!C,component:R1,to:`/projects/${e}/features/${s}/strategies/copy`,children:[n(re,{children:n(v0,{})}),n(oe,{children:n($,{variant:"body2",children:"Copy"})})]})}),n(ae,{projectId:e,permission:N3,children:({hasAccess:C})=>l(N1,{sx:jt,onClick:()=>{a(s),m()},disabled:!C,children:[n(re,{children:n(Tn,{})}),n(oe,{children:n($,{variant:"body2",children:"Archive"})})]})}),n(ae,{projectId:e,permission:gt,children:({hasAccess:C})=>l(N1,{sx:jt,onClick:()=>{m(),r({featureId:s,stale:c===!0})},disabled:!C,children:[n(re,{children:n(En,{})}),n(oe,{children:l($,{variant:"body2",children:[c?"Un-mark":"Mark"," as stale"]})})]})})]})})]})};var _2={},yo=Fe;Object.defineProperty(_2,"__esModule",{value:!0});var An=_2.default=void 0,bo=yo(Re()),Co=Pe,So=(0,bo.default)((0,Co.jsx)("path",{d:"M5.33 20H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h1.33c1.1 0 2 .9 2 2v12c0 1.1-.89 2-2 2zM22 18V6c0-1.1-.9-2-2-2h-1.33c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2H20c1.11 0 2-.9 2-2zm-7.33 0V6c0-1.1-.9-2-2-2h-1.33c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h1.33c1.1 0 2-.9 2-2z"}),"ViewWeek");An=_2.default=So;const _o=h(E)(()=>({...q1,justifyContent:"center"})),wo=h(M1)(({theme:e})=>({margin:e.spacing(-1,0)})),xo=h(E)(({theme:e})=>({...q1,justifyContent:"space-between",padding:e.spacing(1,1,0,4)})),To=h(N1)(({theme:e})=>({padding:e.spacing(0,2),margin:e.spacing(0,2),borderRadius:e.shape.borderRadius})),H2=h(q3)(({theme:e})=>({"&.MuiDivider-root.MuiDivider-fullWidth":{margin:e.spacing(.75,0)}})),Eo=h(u2)(({theme:e})=>({padding:e.spacing(.75,1)})),Ao={favorite:"Favorite"},ko=({allColumns:e,staticColumns:t=[],dividerBefore:a=[],dividerAfter:r=[],isCustomized:o=!1,setHiddenColumns:i})=>{const[s,c]=u.useState(null),d=m1(),p=b1(d.breakpoints.down("sm")),m=b1(d.breakpoints.down("md")),g=b1(d.breakpoints.down("lg"));u.useEffect(()=>{if(o)return;const v=(F,T=0)=>{const j=e.filter(({id:_})=>_.startsWith("environments.")!==!1).map(({id:_})=>_).slice(0,T),M=e.map(({id:_})=>_).filter(_=>!F.includes(_)).filter(_=>!t.includes(_)).filter(_=>!j.includes(_));i(M)};if(p)return v(["createdAt"]);if(m)return v(["createdAt"],1);if(g)return v(["type","createdAt"],1);v(["lastSeenAt","type","createdAt"],3)},[p,m,g]);const f=v=>{c(v.currentTarget)},C=()=>{c(null)},S=!!s,b="columns-menu",R=`columns-menu-list-${b}`;return l(_o,{children:[n(Y1,{title:"Select columns",arrow:!0,describeChild:!0,children:n(wo,{id:b,"aria-controls":S?R:void 0,"aria-haspopup":"true","aria-expanded":S?"true":void 0,onClick:f,type:"button",size:"large","data-loading":!0,children:n(An,{})})}),l(ht,{id:R,open:S,anchorEl:s,onClose:C,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0,PaperProps:{sx:v=>({borderRadius:v.shape.borderRadius,paddingBottom:v.spacing(2)})},children:[l(xo,{children:[n($,{variant:"body2",children:n("strong",{children:"Columns"})}),n(M1,{onClick:C,children:n(y0,{})})]}),n(mt,{children:e.filter(({hideInMenu:v})=>!v).map(v=>[n(w,{condition:a.includes(v.id),show:n(H2,{})}),l(To,{onClick:()=>v.toggleHidden(v.isVisible),disabled:t.includes(v.id),children:[n(re,{children:n(Eo,{edge:"start",checked:v.isVisible,disableRipple:!0,inputProps:{"aria-labelledby":v.id},size:"medium"})}),n(oe,{id:v.id,primary:n($,{variant:"body2",children:n(w,{condition:!!(typeof v.Header=="string"&&v.Header),show:()=>n(G,{children:v.Header}),elseShow:()=>Ao[v.id]||v.id})})})]}),n(w,{condition:r.includes(v.id),show:n(H2,{})})])})]})]})},Do=U3()(e=>({container:{boxShadow:"none",marginLeft:"1rem",minHeight:"100%",width:"calc(100% - 1rem)",position:"relative",[e.breakpoints.down("md")]:{marginLeft:"0",paddingBottom:"4rem",width:"inherit"}}})),Ro=({projectId:e,features:t})=>{const{refetch:a}=C1(e),[r,o]=u.useState(!1),{trackEvent:i}=P1();return l(G,{children:[n(ae,{projectId:e,permission:N3,children:({hasAccess:c})=>n(l1,{disabled:!c||r,variant:"outlined",size:"small",onClick:()=>o(!0),children:"Archive"})}),n(Sn,{projectId:e,featureIds:t,onConfirm:async()=>{o(!1),await a(),i("batch_operations",{props:{eventType:"features archived"}})},isOpen:r,onClose:()=>o(!1)})]})},qe="selection-actions-menu",Fo=({projectId:e,data:t})=>{const{refetch:a}=C1(e),[r,o]=u.useState(null),{staleFeatures:i}=De(),{setToastData:s,setToastApiError:c}=u1(),{trackEvent:d}=P1(),p=!!r,m=t.map(({name:v})=>v),g=v=>{o(v.currentTarget)},f=()=>{o(null)},C=t.some(({stale:v})=>v===!0),S=t.some(({stale:v})=>v===!1),b=async()=>{try{f(),await i(e,m),await a(),s({title:"State updated",text:"Feature toggles marked as stale",type:"success"}),d("batch_operations",{props:{eventType:"features staled"}})}catch(v){c(h1(v))}},R=async()=>{try{f(),await i(e,m,!1),await a(),s({title:"State updated",text:"Feature toggles unmarked as stale",type:"success"}),d("batch_operations",{props:{eventType:"features unstaled"}})}catch(v){c(h1(v))}};return l(G,{children:[n(Y1,{title:"More bulk actions",arrow:!0,describeChild:!0,children:n(M1,{id:qe,"aria-controls":p?qe:void 0,"aria-haspopup":"true","aria-expanded":p?"true":void 0,onClick:g,type:"button","data-testid":b0,children:n(C0,{})})}),n(ht,{id:`${qe}-menu`,anchorEl:r,open:p,onClose:f,transformOrigin:{horizontal:"right",vertical:"top"},anchorOrigin:{horizontal:"right",vertical:"bottom"},disableScrollLock:!0,PaperProps:{sx:v=>({borderRadius:`${v.shape.borderRadius}px`,padding:v.spacing(1,1.5)})},children:n(mt,{"aria-labelledby":`${qe}-menu`,children:n(ae,{projectId:e,permission:gt,children:({hasAccess:v})=>l(G,{children:[n(w,{condition:S,show:()=>l(N1,{onClick:b,disabled:!v,sx:{borderRadius:F=>`${F.shape.borderRadius}px`},children:[n(re,{children:n(z2,{})}),n(oe,{children:n($,{variant:"body2",children:"Mark as stale"})})]})}),n(w,{condition:C,show:()=>l(N1,{onClick:R,disabled:!v,sx:{borderRadius:F=>`${F.shape.borderRadius}px`},children:[n(re,{children:n(z2,{})}),n(oe,{children:n($,{variant:"body2",children:"Un-mark as stale"})})]})})]})})})})]})},Po=h("section")(({theme:e})=>({["& > *"]:{margin:e.spacing(1,0)}})),W2="manage-tags-form",N2=(e,t)=>[...e,...e.some(a=>a.value===t.value&&a.type===t.type)?[]:[t]],q2=(e,t)=>e.filter(a=>!(a.value===t.value&&a.type===t.type)),Zo=(e,t)=>{switch(t.type){case"add":return{...e,addedTags:N2(e.addedTags,t.payload),removedTags:q2(e.removedTags,t.payload)};case"remove":return{...e,addedTags:q2(e.addedTags,t.payload),removedTags:N2(e.removedTags,t.payload)};case"clear":return{addedTags:[],removedTags:t.payload};default:return e}},U2={name:"",description:"",icon:""},Io=({open:e,initialValues:t,initialIndeterminateValues:a,onCancel:r,onSubmit:o})=>{const{tagTypes:i,loading:s}=S0(),[c,d]=u.useState(U2),[p,m]=u.useState([]),[g,f]=u.useState([]),{tags:C,refetch:S}=Xa(c.name),{createTag:b}=_n(),R=C.map(({value:P})=>({title:P})),[v,F]=u.useReducer(Zo,{addedTags:[],removedTags:[]}),T=(P=i.length>0?i[0]:U2)=>{d(P);const B=a.filter(({type:V})=>V===P.name);m(t.filter(({type:V})=>V===P.name).filter(({type:V,value:O})=>!B.some(J=>J.value===O&&J.type===V)).map(({value:V})=>({title:V}))),f(B.map(({value:V})=>({title:V}))),F({type:"clear",payload:[]})};u.useEffect(()=>{i.length>0&&T()},[s]);const j=(P,B)=>{B!=null&&typeof B!="string"&&(P.preventDefault(),T(B))},M=(P,B)=>b({value:P,type:B}).then(async()=>{await S(),m(V=>[...V,{title:P}]),F({type:"add",payload:{value:P,type:B}})}),_=(P,B,V,O)=>{V==="selectOption"?B.forEach(J=>{if(typeof J!="string"&&typeof J.inputValue=="string"&&J.inputValue&&J.title.startsWith("Create new value"))return M(J.inputValue,c.name);m(B),f(N=>N.filter(({title:L})=>L!==J.title)),O!=null&&O.option&&F({type:"add",payload:{value:O.option.title,type:c.name}})}):V==="clear"?(m([]),F({type:"clear",payload:t})):V==="removeOption"&&(m(B),O!=null&&O.option&&F({type:"remove",payload:{value:O.option.title,type:c.name}}))},D=()=>{T(),r()};return l(G1,{open:e,secondaryButtonText:"Cancel",primaryButtonText:"Save tags",title:"Update tags to feature toggle",onClick:()=>o(v),disabledPrimaryButton:v.addedTags.length===0&&v.removedTags.length===0,onClose:D,formId:W2,children:[n($,{paragraph:!0,sx:{marginBottom:P=>P.spacing(2.5)},children:"Tags allow you to group features together"}),n("form",{id:W2,onSubmit:()=>o(v),children:l(Po,{children:[n(er,{options:i,disabled:s||i.length===0,value:c,onChange:j},s?"loading":i.length),n(w,{condition:!s&&i.length===0,show:l($,{variant:"body1",children:["No"," ",n(p2,{component:R1,to:"/tag-types",children:"tag types"})," ","available."]}),elseShow:n(tr,{disabled:s,options:R,existingTags:t,indeterminateOptions:g,tagType:c,selectedOptions:p,onChange:_})})]})})]})},jo=({projectId:e,data:t})=>{const{bulkUpdateTags:a}=_n(),{refetch:r}=C1(e),{setToastData:o,setToastApiError:i}=u1(),{trackEvent:s}=P1(),[c,d]=u.useState(!1),[p,m]=u.useMemo(()=>{const f=t.flatMap(({tags:S})=>S||[]).reduce((S,b)=>[...S,...S.some(R=>R.type===b.type&&R.value===b.value)?[]:[b]],[]),C=f.filter(S=>!t.every(({tags:b})=>b==null?void 0:b.some(R=>R.type===S.type&&R.value===S.value)));return[f,C]},[t]);return l(G,{children:[n(ae,{projectId:e,permission:gt,children:({hasAccess:f})=>n(l1,{disabled:!f||c,variant:"outlined",size:"small",onClick:()=>d(!0),children:"Tags"})}),n(Io,{open:c,onCancel:()=>d(!1),onSubmit:async({addedTags:f,removedTags:C})=>{const S=t.map(({name:R})=>R),b={features:S,tags:{addedTags:f,removedTags:C}};try{await a(b),r();const R=f.length?`Added tags: ${f.map(({type:F,value:T})=>`${F}:${T}`).join(", ")}.`:"",v=C.length?`Removed tags: ${C.map(({type:F,value:T})=>`${F}:${T}`).join(", ")}.`:"";o({title:"Tags updated",text:`${S.length} feature toggles updated. ${R} ${v}`,type:"success",autoHideDuration:12e3}),s("batch_operations",{props:{eventType:"tags updated"}})}catch(R){i(h1(R))}d(!1)},initialValues:p,initialIndeterminateValues:m},t.length)]})},Oo=h(ft)(({theme:e})=>({minWidth:"450px",marginTop:e.spacing(2),marginBottom:e.spacing(1.5)})),G2=h(w1)(({theme:e})=>({marginBottom:e.spacing(1.5)})),$o=({showExportDialog:e,data:t,onClose:a,onConfirm:r,environments:o,projectId:i})=>{const[s,c]=u.useState(o[0]),{bulkToggleFeaturesEnvironmentOff:d}=G3(),{addChange:p}=Ze(),{refetch:m}=C1(i),{setToastApiError:g,setToastData:f}=u1(),{isChangeRequestConfigured:C}=Ie(i),{refetch:S}=je(i),b=t.filter(T=>{var j,M;return((M=(j=T.environments)==null?void 0:j.find(_=>s===_.name))==null?void 0:M.enabled)===!1}).length,R=()=>o.map(T=>({key:T,label:T})),v=async()=>{try{C(s)?(await p(i,s,t.map(T=>({action:"updateEnabled",feature:T.name,payload:{enabled:!1}}))),S(),f({text:"Your disabled feature toggles changes have been added to change request",type:"success",title:"Changes added to a draft"})):(await d(i,t.map(T=>T.name),s),m(),f({text:"Your feature toggles have been disabled",type:"success",title:"Features disabled"})),a(),r==null||r()}catch(T){g(h1(T))}},F=C(s)?"Add to change request":"Disable toggles";return n(G1,{open:e,title:"Disable feature toggles",onClose:a,onClick:v,primaryButtonText:F,secondaryButtonText:"Cancel",children:l(E,{children:["You have selected ",n("b",{children:t.length})," feature toggles to disable.",n("br",{}),n("br",{}),n($,{children:"Select which environment to disable the features for:"}),n(Oo,{options:R(),value:s,onChange:T=>c(T)}),n(w,{condition:C(s),show:n(G2,{severity:"warning",children:"Change requests are enabled for this environment."})}),n(w,{condition:b>0,show:l(G2,{severity:"info",children:[b," feature"," ",b>1?"toggles are ":"toggle is ","already disabled."]})})]})})},Bo=h(ft)(({theme:e})=>({minWidth:"450px",marginTop:e.spacing(2),marginBottom:e.spacing(1.5)})),K2=h(w1)(({theme:e})=>({marginBottom:e.spacing(1.5)})),zo=({showExportDialog:e,data:t,onClose:a,onConfirm:r,environments:o,projectId:i})=>{const[s,c]=u.useState(o[0]),{bulkToggleFeaturesEnvironmentOn:d}=G3(),{addChange:p}=Ze(),{refetch:m}=C1(i),{setToastApiError:g,setToastData:f}=u1(),{isChangeRequestConfigured:C}=Ie(i),{refetch:S}=je(i),b=t.filter(T=>{var j,M;return((M=(j=T.environments)==null?void 0:j.find(_=>s===_.name))==null?void 0:M.enabled)===!0}).length,R=()=>o.map(T=>({key:T,label:T})),v=async()=>{try{C(s)?(await p(i,s,t.map(T=>({action:"updateEnabled",feature:T.name,payload:{enabled:!0}}))),S(),f({text:"Your enable feature toggles changes have been added to change request",type:"success",title:"Changes added to a draft"})):(await d(i,t.map(T=>T.name),s),m(),f({text:"Your feature toggles have been enabled",type:"success",title:"Features enabled"})),a(),r==null||r()}catch(T){g(h1(T))}},F=C(s)?"Add to change request":"Enable toggles";return n(G1,{open:e,title:"Enable feature toggles",onClose:a,onClick:v,primaryButtonText:F,secondaryButtonText:"Cancel",children:l(E,{children:["You have selected ",n("b",{children:t.length})," feature toggles to enable.",n("br",{}),n("br",{}),n($,{children:"Select which environment to enable the features for:"}),n(Bo,{options:R(),value:s,onChange:T=>c(T)}),n(w,{condition:C(s),show:n(K2,{severity:"warning",children:"Change requests are enabled for this environment."})}),n(w,{condition:b>0,show:l(K2,{severity:"info",children:[b," feature"," ",b>1?"toggles are ":"toggle is ","already enabled."]})})]})})},Vo=({selectedIds:e,data:t,projectId:a})=>{var R,v;const{uiConfig:r}=p1(),[o,i]=u.useState(!1),[s,c]=u.useState(!1),[d,p]=u.useState(!1),{trackEvent:m}=P1(),g=u.useMemo(()=>t.filter(F=>e.includes(F.name)),[t,e]),f=u.useMemo(()=>{const F=g.flatMap(T=>T.environments).map(T=>T==null?void 0:T.name).filter(T=>T!==void 0);return Array.from(new Set(F))},[g]),C=()=>{m("batch_operations",{props:{eventType:"features exported"}})},S=()=>{m("batch_operations",{props:{eventType:"features enabled"}})},b=()=>{m("batch_operations",{props:{eventType:"features disabled"}})};return l(G,{children:[n(w,{condition:!!((R=r==null?void 0:r.flags)!=null&&R.disableBulkToggle),show:null,elseShow:n(l1,{variant:"outlined",size:"small",onClick:()=>c(!0),children:"Enable"})}),n(w,{condition:!!((v=r==null?void 0:r.flags)!=null&&v.disableBulkToggle),show:null,elseShow:n(l1,{variant:"outlined",size:"small",onClick:()=>p(!0),children:"Disable"})}),n(Ro,{projectId:a,features:e}),n(l1,{variant:"outlined",size:"small",onClick:()=>i(!0),children:"Export"}),n(jo,{projectId:a,data:g}),n(Fo,{projectId:a,data:g}),n(K3,{showExportDialog:o,data:g,onClose:()=>i(!1),environments:f,onConfirm:C}),n(zo,{showExportDialog:s,data:g,onClose:()=>c(!1),environments:f,projectId:a,onConfirm:S}),n($o,{showExportDialog:d,data:g,onClose:()=>p(!1),environments:f,projectId:a,onConfirm:b})]})},Mo=h(J3)(()=>({whiteSpace:"nowrap"})),Lo=h("div",{shouldForwardProp:e=>e!=="hasWarning"})(({theme:e,hasWarning:t})=>({flexGrow:0,...q1,justifyContent:"center",...t&&{"::before":{content:'""',display:"block",width:e.spacing(2)}}})),Ue=["Select","Actions","name","favorite"],Ho={id:"createdAt"},Wo=({features:e,loading:t,environments:a=[]})=>{var I1,te;const{classes:r}=Do(),o=m1(),i=b1(o.breakpoints.down("md")),[s,c]=u.useState({open:!1,featureId:"",environmentName:""}),[d,p]=u.useState({}),[m,g]=u.useState(),f=Y("projectId"),{value:C,setValue:S}=pt(`${f}:FeatureToggleListTable:v1`,Ho),{value:b,setValue:R}=_0(),v=T1(),[F,T]=h2(),j=io(t?[{environment:"a"},{environment:"b"},{environment:"c"}]:a),{refetch:M}=C1(f),{isFavoritesPinned:_,sortTypes:D,onChangeIsFavoritePinned:P}=w0(F.has("favorites")?F.get("favorites")==="true":b.favorites),{favorite:B,unfavorite:V}=x0(),{onChangeRequestToggleClose:O,onChangeRequestToggleConfirm:J,changeRequestDialogDetails:N}=nr(f),[L,y]=u.useState(!1),{uiConfig:k}=p1(),I=u.useCallback(async Z=>{Z!=null&&Z.favorite?await V(f,Z.name):await B(f,Z.name),M()},[f,M]),q=u.useMemo(()=>e.some(Z=>{var H;return(H=Z==null?void 0:Z.tags)==null?void 0:H.length}),[e]),x=u.useMemo(()=>[{id:"Select",Header:({getToggleAllRowsSelectedProps:Z})=>n(u2,{...Z()}),Cell:({row:Z})=>{var H;return n(T0,{...(H=Z==null?void 0:Z.getToggleRowSelectedProps)==null?void 0:H.call(Z)})},maxWidth:50,disableSortBy:!0,hideInMenu:!0},{id:"favorite",Header:n(E0,{isActive:_,onClick:P}),accessor:"favorite",Cell:({row:{original:Z}})=>n(A0,{value:Z==null?void 0:Z.favorite,onClick:()=>I(Z)}),maxWidth:50,disableSortBy:!0,hideInMenu:!0},{Header:"Seen",accessor:"lastSeenAt",Cell:Y3,sortType:"date",align:"center",maxWidth:80},{Header:"Type",accessor:"type",Cell:Q3,align:"center",maxWidth:80},{Header:"Name",accessor:"name",Cell:({value:Z})=>n(X3,{title:Z,to:`/projects/${f}/features/${Z}`}),minWidth:100,sortType:"alphanumeric",searchable:!0},...q?[{id:"tags",Header:"Tags",accessor:Z=>{var H;return((H=Z.tags)==null?void 0:H.map(({type:a1,value:U})=>`${a1}:${U}`).join(`
|
|
2
|
-
`))||""},Cell:k0,width:80,searchable:!0}]:[],{Header:"Created",accessor:"createdAt",Cell:vt,sortType:"date",minWidth:120},...j.map(Z=>{const H=typeof Z=="string"?Z:Z.environment;return{Header:t?()=>"":H,maxWidth:90,id:`environments.${H}`,accessor:a1=>{var U;return(U=a1.environments[H])==null?void 0:U.enabled},align:"center",Cell:({value:a1,row:{original:U}})=>{const g1=U.someEnabledEnvironmentHasVariants&&U.environments[H].variantCount===0&&U.environments[H].enabled;return l(Lo,{hasWarning:g1,children:[n(ar,{value:a1,projectId:f,featureId:U.name,environmentName:H}),n(w,{condition:g1,show:n(rr,{})})]})},sortType:"boolean",filterName:H,filterParsing:a1=>a1?"enabled":"disabled"}}),{id:"Actions",maxWidth:56,width:56,Cell:Z=>n(vo,{projectId:f,onOpenArchiveDialog:g,onOpenStaleDialog:p,...Z}),disableSortBy:!0,hideInMenu:!0}],[f,j,t]),[W,c1]=u.useState(F.get("search")||""),f1=u.useMemo(()=>e.map(Z=>{var H;return{...Z,environments:Object.fromEntries(j.map(a1=>{const U=Z==null?void 0:Z.environments.find(g1=>(g1==null?void 0:g1.name)===a1);return[a1,{name:a1,enabled:(U==null?void 0:U.enabled)||!1,variantCount:(U==null?void 0:U.variantCount)||0}]})),someEnabledEnvironmentHasVariants:((H=Z.environments)==null?void 0:H.some(a1=>a1.variantCount>0&&a1.enabled))||!1}}),[e,j]),{data:v1,getSearchText:O1,getSearchContext:Se}=yt(x,W,f1),E1=u.useMemo(()=>t?Array(6).fill({type:"-",name:"Feature name",createdAt:new Date,environments:{production:{name:"production",enabled:!1}}}):v1,[t,v1]),Ve=u.useMemo(()=>{var a1;const Z=x.map(U=>(U==null?void 0:U.accessor)||(U==null?void 0:U.id));let H=j.filter((U,g1)=>g1>=3).map(U=>`environments.${U}`);if(F.has("columns")){const U=((a1=F.get("columns"))==null?void 0:a1.split(","))||[],g1=[...Ue,...U];H=Z.filter(A=>!g1.includes(A))}else if(C.columns){const U=[...Ue,...C.columns];H=Z.filter(g1=>!U.includes(g1))}return{sortBy:[{id:F.get("sort")||"createdAt",desc:F.has("order")?F.get("order")==="desc":C.desc}],hiddenColumns:H,selectedRowIds:{}}},[j]),Me=u.useCallback(Z=>Z.name,[]),{allColumns:_e,headerGroups:ee,rows:$1,state:{selectedRowIds:Z1,sortBy:B1,hiddenColumns:H1},prepareRow:Le,setHiddenColumns:He}=t1.useTable({columns:x,data:E1,initialState:Ve,sortTypes:D,autoResetHiddenColumns:!1,disableSortRemove:!0,autoResetSortBy:!1,getRowId:Me},t1.useFlexLayout,t1.useSortBy,t1.useRowSelect);return u.useEffect(()=>{if(t)return;const Z={};Z.sort=B1[0].id,B1[0].desc&&(Z.order="desc"),W&&(Z.search=W),_&&(Z.favorites="true"),Z.columns=_e.map(({id:H})=>H).filter(H=>!Ue.includes(H)&&!(H1!=null&&H1.includes(H))).join(","),T(Z,{replace:!0}),S(H=>({...H,id:B1[0].id,desc:B1[0].desc||!1,columns:Z.columns.split(",")})),R(H=>({...H,favorites:!!_}))},[t,B1,H1,W,T,_]),l(G,{children:[l(d1,{isLoading:t,className:r.container,header:n(i1,{titleElement:`Feature toggles (${$1.length})`,actions:l(G,{children:[n(w,{condition:!i,show:n(D1,{initialValue:W,onChange:c1,hasFilters:!0,getSearchContext:Se})}),n(ko,{allColumns:_e,staticColumns:Ue,dividerAfter:["createdAt"],dividerBefore:["Actions"],isCustomized:!!C.columns,setHiddenColumns:He}),n(i1.Divider,{sx:{marginLeft:0}}),n(w,{condition:!!((I1=k==null?void 0:k.flags)!=null&&I1.featuresExportImport),show:n(Y1,{title:"Export toggles visible in the table below",arrow:!0,children:n(M1,{onClick:()=>y(!0),sx:Z=>({marginRight:Z.spacing(2)}),children:n(D0,{})})})}),n(Mo,{onClick:()=>v(R0(f)),maxWidth:"960px",Icon:en,projectId:f,permission:d2,"data-testid":"NAVIGATE_TO_CREATE_FEATURE",children:"New feature toggle"})]}),children:n(w,{condition:i,show:n(D1,{initialValue:W,onChange:c1,hasFilters:!0,getSearchContext:Se})})}),children:[n(ue,{value:O1(W),children:n(bt,{rows:$1,headerGroups:ee,prepareRow:Le})}),n(w,{condition:$1.length===0,show:n(w,{condition:(W==null?void 0:W.length)>0,show:l(S1,{children:["No feature toggles found matching “",W,"”"]}),elseShow:n(S1,{children:"No feature toggles available. Get started by adding a new feature toggle."})})}),n(or,{onClose:()=>c(Z=>({...Z,open:!1})),projectId:f,...s}),n(ir,{isStale:d.stale===!0,isOpen:!!d.featureId,onClose:()=>{p({}),M()},featureId:d.featureId||"",projectId:f}),n(Sn,{isOpen:!!m,onConfirm:()=>{M()},onClose:()=>{g(void 0)},featureIds:[m||""],projectId:f})," ",n(sr,{isOpen:N.isOpen,onClose:O,environment:N==null?void 0:N.environment,onConfirm:J,messageComponent:n(cr,{featureName:N.featureName,enabled:N.enabled,environment:N==null?void 0:N.environment})}),n(w,{condition:!!((te=k==null?void 0:k.flags)!=null&&te.featuresExportImport)&&!t,show:n(K3,{showExportDialog:L,data:E1,onClose:()=>y(!1),environments:j})})]}),n(F0,{count:Object.keys(Z1).length,children:n(Vo,{selectedIds:Object.keys(Z1),data:e,projectId:f})})]})},$e=h("div")(({theme:e})=>({margin:"0",textAlign:"center",backgroundColor:e.palette.background.paper,borderRadius:e.shape.borderRadiusLarge,width:"100%",minWidth:225,padding:e.spacing(3),[e.breakpoints.down("md")]:{display:"flex",flexDirection:"column",position:"relative",padding:e.spacing(1.5)}})),Be=h("p")(({theme:e})=>({marginBottom:e.spacing(2.5)})),w2=h("span")(({theme:e})=>({fontSize:e.typography.h2.fontSize,fontWeight:"bold",color:e.palette.text.primary})),Tt=({children:e,to:t})=>n($,{variant:"body2",textAlign:"center",sx:{paddingTop:a=>a.spacing(2.5),marginTop:"auto",justifySelf:"flex-end"},children:n(p2,{component:R1,to:t,children:e})}),No=h("p")(({theme:e})=>({fontSize:"1.5rem",[e.breakpoints.down("md")]:{fontSize:e.fontSizes.bodySize,marginBottom:e.spacing(4)}})),qo=h("p")(({theme:e})=>({fontSize:"1.5rem",[e.breakpoints.down("md")]:{fontSize:e.fontSizes.bodySize}})),Uo=({projectId:e,health:t})=>l($e,{children:[n(Be,{"data-loading":!0,children:"Project health"}),l(E,{sx:{display:"flex",alignItems:"center",justifyContent:"center",gap:a=>a.spacing(2)},children:[n(qo,{children:n(P0,{percentage:t})}),l(No,{"data-loading":!0,children:[t,"%"]})]}),n(Tt,{to:`/projects/${e}/health`,children:"View project health"})]}),Go=h(w2)(({theme:e})=>({marginLeft:"auto",fontWeight:e.typography.fontWeightRegular,color:e.palette.text.secondary})),Ko=h("div")(({theme:e})=>({display:"flex",gap:e.spacing(1.5),width:"100%",gridTemplateColumns:`${e.spacing(2.5)} auto auto`,margin:e.spacing(1,0),fontSize:e.fontSizes.smallBody,color:e.palette.text.secondary,alignItems:"center",[e.breakpoints.down("md")]:{margin:0}})),Jo=({type:e,Icon:t,count:a})=>l(Ko,{"data-loading":!0,children:[n(t,{fontSize:"small","data-loading":!0}),n("div",{children:(o=>o.charAt(0).toUpperCase()+o.slice(1).replace("-"," "))(e)}),n(Go,{children:a})]}),Yo=({features:e})=>{const t=u.useMemo(()=>{const a=(e==null?void 0:e.filter(c=>c.type==="release").length)||0,r=(e==null?void 0:e.filter(c=>c.type==="experiment").length)||0,o=(e==null?void 0:e.filter(c=>c.type==="operational").length)||0,i=(e==null?void 0:e.filter(c=>c.type==="kill-switch").length)||0,s=(e==null?void 0:e.filter(c=>c.type==="permission").length)||0;return{release:a,experiment:r,operational:o,"kill-switch":i,permission:s}},[e]);return l($e,{sx:{padding:a=>a.spacing(3)},children:[n(Be,{children:"Toggle types used"}),Object.keys(t).map(a=>n(Jo,{type:a,Icon:Z0(a),count:t[a]},a))]})},Qo=h("div")(({theme:e})=>({textAlign:"left",borderRadius:`${e.shape.borderRadius}px`,backgroundColor:`${e.palette.background.elevation2}`,padding:e.spacing(.5,2),fontSize:e.typography.body2.fontSize})),Xo=({id:e,description:t})=>l($e,{children:[n(Be,{children:"Project Meta"}),l(Qo,{children:[n($,{component:"span",variant:"body2",color:"text.secondary",children:"ID:"})," ",n("code",{"data-loading":!0,children:e||"__________"})]}),n(w,{condition:!!t,show:n($,{variant:"body2",sx:{marginTop:a=>a.spacing(1.5),marginBottom:0,textAlign:"left"},children:t})}),n(w,{condition:!t,show:n(Tt,{to:`/projects/${e}/edit`,children:"Add description"})})]}),ei=h($)(({theme:e})=>({marginBottom:e.spacing(2.5)})),ti=h(E)(({theme:e})=>({fontSize:e.fontSizes.largeHeader})),Ot=h(E)(({theme:e})=>({...q1,flexDirection:"column",alignItems:"center",marginLeft:e.spacing(2.5)})),J2=h($)(({theme:e})=>({color:e.palette.text.secondary,fontSize:e.typography.body2.fontSize})),ni=h($)(({theme:e})=>({marginLeft:e.spacing(1),fontSize:e.typography.body1.fontSize,fontWeight:e.typography.fontWeightBold})),ai=e=>e>0?n(Dr,{sx:{color:"success.dark",height:20,width:20}}):n(Zr,{sx:{color:"warning.dark",height:20,width:20}}),ri=e=>e>0?"success.dark":"warning.dark",Te=({title:e,boxText:t,change:a,percentage:r,children:o,customChangeElement:i})=>l(G,{children:[n(w,{condition:!!e,show:n(ei,{children:e})}),o,l(E,{sx:{...q1,justifyContent:"center",width:"auto"},children:[n(ti,{children:t}),n(w,{condition:!!i,show:n(Ot,{children:i}),elseShow:n(w,{condition:a!==void 0&&a!==0,show:l(Ot,{children:[l(E,{sx:{...q1},children:[ai(a),l(ni,{color:ri(a),children:[a>0?"+":"",a,r?"%":""]})]}),n(J2,{children:"this month"})]}),elseShow:n(Ot,{children:n(J2,{children:"No change"})})})})]})]}),oi=({projectId:e,memberCount:t,change:a=0})=>{var i,s;const{uiConfig:r}=p1();let o="/admin/users";return(s=(i=r==null?void 0:r.versionInfo)==null?void 0:i.current)!=null&&s.enterprise&&(o=`/projects/${e}/settings/access`),l($e,{children:[n(Be,{"data-loading":!0,children:"Project members"}),n(E,{sx:{display:"flex",justifyContent:"center"},children:n(Te,{boxText:`${t}`,change:a})}),n(Tt,{to:o,children:"View all members"})]})},ii=e=>fetch(e).then(J1("ChangeRequest")).then(t=>t.json()),kn=e=>{const{data:t,error:a,mutate:r}=I0([],K1(`api/admin/projects/${e}/change-requests`),ii);return u.useMemo(()=>({changeRequests:t,loading:!a&&!t,refetch:r,error:a}),[t,a,r])},Je="change-requests-widget",si=h(E)(({theme:e})=>({display:"flex",flexWrap:"wrap",gap:e.spacing(1.5)})),Y2=h(E)(({theme:e})=>({flex:1,textAlign:"left",padding:e.spacing(1.5),borderRadius:e.shape.borderRadiusMedium,alignItems:"center",minWidth:175})),Q2=h(E)(({theme:e})=>({display:"flex",alignItems:"center"})),ci=h(w2)(({theme:e})=>({background:e.palette.seen.recent,padding:e.spacing(0,1),marginRight:e.spacing(.5),borderRadius:e.shape.borderRadius})),li=h(w2)(({theme:e})=>({background:e.palette.seen.primary,padding:e.spacing(0,1),marginRight:e.spacing(.5),borderRadius:e.shape.borderRadius})),X2=h($)(({theme:e})=>({fontSize:e.typography.body2.fontSize,marginBottom:e.spacing(.5)})),e3=()=>n($,{component:"span",variant:"body2",color:"text.secondary",lineHeight:1,"data-loading":Je,children:"change requests"}),di=({projectId:e})=>{const{changeRequests:t,loading:a}=kn(e),r=tn(a,`[data-loading="${Je}"]`),o=t==null?void 0:t.filter(s=>(s==null?void 0:s.state)==="Approved").length,i=t==null?void 0:t.filter(s=>(s==null?void 0:s.state)==="In review").length;return l($e,{ref:r,children:[n(Be,{children:"Open change requests"}),l(si,{children:[l(Y2,{sx:{background:s=>s.palette.success.light},children:[n(X2,{children:"To be applied"}),l(Q2,{children:[n(ci,{"data-loading":Je,children:o||0})," ",n(e3,{})]})]}),l(Y2,{sx:{background:s=>s.palette.secondary.light},children:[n(X2,{children:"To be reviewed"}),l(Q2,{children:[n(li,{"data-loading":Je,children:i||0})," ",n(e3,{})]})]})]}),n(Tt,{to:`/projects/${e}/change-requests`,children:"View change requests"})]})},ui=h(E)(({theme:e})=>({...q1,width:"225px",flexDirection:"column",gap:e.spacing(2),boxShadow:"none",[e.breakpoints.down("md")]:{display:"grid",width:"100%",alignItems:"stretch",marginBottom:e.spacing(2)},[e.breakpoints.down("sm")]:{display:"flex"}})),pi=({id:e,description:t,memberCount:a,health:r,features:o,stats:i})=>{const{isEnterprise:s}=p1(),c=m1(),d=b1(c.breakpoints.down("md")),{isChangeRequestConfiguredInAnyEnv:p}=Ie(e),m=s()&&p(),g=e!==j0;return n("aside",{children:l(ui,{sx:!m&&!g||d&&m&&g?{gridTemplateColumns:"repeat(auto-fill, minmax(225px, 1fr))"}:{gridTemplateColumns:"repeat(2, 1fr)"},children:[n(w,{condition:m,show:n(E,{sx:{gridColumnStart:g?"span 2":"span 1",flex:1,display:"flex"},children:n(di,{projectId:e})})}),n(Xo,{id:e,description:t}),n(Uo,{projectId:e,health:r}),n(w,{condition:g,show:n(oi,{projectId:e,memberCount:a,change:i==null?void 0:i.projectMembersAddedCurrentWindow})}),n(Yo,{features:o})]})})},hi=h(L1)(({theme:e})=>({padding:e.spacing(3,3),maxWidth:"350px",borderRadius:`${e.shape.borderRadiusMedium}px`,border:`1px solid ${e.palette.neutral.border}`,fontSize:e.typography.body2.fontSize})),t3=({children:e,id:t})=>{const[a,r]=u.useState(null),o=c=>r(c.currentTarget),i=()=>r(null);return l(E,{sx:{position:"absolute",top:c=>c.spacing(.5),right:c=>c.spacing(.5)},children:[n(M1,{onClick:o,"aria-describedby":t,size:"small",children:n(nn,{sx:{fontSize:c=>c.typography.body1.fontSize}})}),n(an,{id:t,open:!!a,anchorEl:a,sx:c=>({zIndex:c.zIndex.tooltip}),children:n(rn,{onClickAway:i,children:l(hi,{elevation:3,children:[n(M1,{onClick:i,sx:{position:"absolute",right:4,top:4},children:n(O0,{sx:{fontSize:c=>c.typography.body1.fontSize}})}),e,n($0,{id:t,eventName:"project_overview",localStorageKey:"ProjectOverviewFeedback"})]})})})]})},mi=h(E)(({theme:e})=>({padding:e.spacing(0,0,2,2),display:"grid",gap:e.spacing(2),gridTemplateColumns:"repeat(4, 1fr)",flexWrap:"wrap",[e.breakpoints.down("lg")]:{gridTemplateColumns:"repeat(2, 1fr)"},[e.breakpoints.down("md")]:{padding:e.spacing(0,0,2)},[e.breakpoints.down("sm")]:{flexDirection:"column"}})),Ge=h(E)(({theme:e})=>({position:"relative",padding:e.spacing(3),backgroundColor:e.palette.background.paper,flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:`${e.shape.borderRadiusLarge}px`,[e.breakpoints.down("lg")]:{padding:e.spacing(2)}})),gi=h($)(({theme:e})=>({color:e.palette.text.secondary,fontSize:e.typography.body2.fontSize,lineHeight:e.typography.body2.lineHeight})),fi=({stats:e})=>{if(Object.keys(e).length===0)return null;const{avgTimeToProdCurrentWindow:t,projectActivityCurrentWindow:a,projectActivityPastWindow:r,createdCurrentWindow:o,createdPastWindow:i,archivedCurrentWindow:s,archivedPastWindow:c}=e;return l(mi,{children:[n(Ge,{children:n(Te,{title:"Total changes",boxText:String(a),change:a-r,children:n(t3,{id:"total-changes",children:"Sum of all configuration and state modifications in the project."})})}),n(Ge,{children:n(Te,{title:"Avg. time to production",boxText:l(E,{sx:{display:"flex",alignItems:"center",gap:d=>d.spacing(1)},children:[t," ",n($,{component:"span",children:"days"})]}),customChangeElement:n(gi,{children:"In project life"}),percentage:!0,children:n(t3,{id:"avg-time-to-prod",children:'How long did it take on average from a feature toggle was created until it was enabled in an environment of type production. This is calculated only from feature toggles with the type of "release".'})})}),n(Ge,{children:n(Te,{title:"Features created",boxText:String(o),change:o-i})}),n(Ge,{children:n(Te,{title:"Features archived",boxText:String(s),change:s-c})})]})},vi=15*1e3,yi=h("div")(({theme:e})=>({display:"flex",[e.breakpoints.down("md")]:{flexDirection:"column"}})),bi=h("div")(()=>({width:"100%",minWidth:0})),Ci=h(E)(()=>({display:"flex",flexDirection:"column",width:"100%",minWidth:0})),Si=()=>{const e=Y("projectId"),t=F1(e),{project:a,loading:r}=C1(e,{refreshInterval:vi}),{members:o,features:i,health:s,description:c,environments:d,stats:p}=a;x1(`Project overview – ${t}`);const{setLastViewed:m}=B0();return u.useEffect(()=>{m(e)},[e,m]),l(yi,{children:[n(pi,{id:e,description:c,memberCount:o,health:s,features:i,stats:p}),l(Ci,{children:[n(fi,{stats:a.stats}),n(bi,{children:n(Wo,{features:i,environments:d,loading:r})})]})]})},_i=(e,t)=>{const a=K1(`api/admin/projects/${e}/health-report`),{data:r,error:o}=de(a,wi,t),i=u.useCallback(()=>{on(a).catch(console.warn)},[a]);return{healthReport:r,refetchHealthReport:i,loading:!o&&!r,error:o}},wi=e=>fetch(e).then(J1("Health report")).then(t=>t.json());var x2={},xi=Fe;Object.defineProperty(x2,"__esModule",{value:!0});var t2=x2.default=void 0,Ti=xi(Re()),Ei=Pe,Ai=(0,Ti.default)((0,Ei.jsx)("path",{d:"M12 5.99 19.53 19H4.47L12 5.99M12 2 1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined");t2=x2.default=Ai;const ki=h(E)(({theme:e})=>({display:"flex",alignItems:"center",color:e.palette.success.dark,"& svg":{color:e.palette.success.main}})),n3=h(E)(({theme:e})=>({display:"flex",alignItems:"center",color:e.palette.warning.dark,"& svg":{color:e.palette.warning.main}})),Di=h(L1)(({theme:e})=>({padding:e.spacing(4),marginBottom:e.spacing(2),borderRadius:e.shape.borderRadiusLarge,boxShadow:"none",display:"flex",justifyContent:"space-between",[e.breakpoints.down("md")]:{flexDirection:"column",gap:e.spacing(2)}})),$t=h("h2")(({theme:e})=>({fontSize:e.fontSizes.mainHeader,marginBottom:e.spacing(1)})),Ri=h("p")(({theme:e})=>({fontSize:"2rem",fontWeight:e.fontWeight.bold})),Fi=h("p")(({theme:e})=>({color:e.palette.text.secondary})),a3=h("ul")(({theme:e})=>({listStyleType:"none",margin:0,padding:0,"& svg":{marginRight:e.spacing(1)}})),r3=h("p")(({theme:e})=>({marginLeft:e.spacing(4)})),Pi=({healthReport:e})=>{const t=e.health<50?"error.main":e.health<75?"warning.main":"success.main",a=()=>l(ki,{children:[n(z0,{}),l("span",{children:[e.activeCount," active toggles"]})]}),r=()=>l(n3,{children:[n(t2,{}),l("span",{children:[e.staleCount," stale toggles"]})]}),o=()=>l(n3,{children:[n(t2,{}),l("span",{children:[e.potentiallyStaleCount," potentially stale toggles"]})]});return l(Di,{children:[l(E,{children:[n($t,{children:"Health rating"}),n(w,{condition:e.health>-1,show:l(G,{children:[l(Ri,{sx:{color:t},children:[e.health,"%"]}),l(Fi,{children:["Last updated:"," ",n(m2,{date:e.updatedAt,live:!1})]})]})})]}),l(E,{children:[n($t,{children:"Toggle report"}),l(a3,{children:[n("li",{children:n(w,{condition:!!e.activeCount,show:a})}),n(w,{condition:!!e.activeCount,show:n(r3,{children:"Also includes potentially stale toggles."})}),n("li",{children:n(w,{condition:!!e.staleCount,show:r})})]})]}),l(E,{sx:{flexBasis:"40%"},children:[n($t,{children:"Potential actions"}),n(a3,{children:n("li",{children:n(w,{condition:!!e.potentiallyStaleCount,show:o})})}),n(w,{condition:!!e.potentiallyStaleCount,show:n(r3,{children:"Review your feature toggles and delete unused toggles."}),elseShow:n("span",{children:"No action is required"})})]})]})},Zi=({row:e})=>{const t=m1();return e.original.expiredAt?n(vt,{value:e.original.expiredAt}):n(o1,{children:n($,{variant:"body2",color:t.palette.text.secondary,children:"N/A"})})},Ii=h("span")(({theme:e})=>({display:"flex",gap:"1ch",alignItems:"center",color:e.palette.warning.dark,"& svg":{color:e.palette.warning.main}})),ji=h("span")(({theme:e})=>({display:"flex",gap:"1ch",alignItems:"center",color:e.palette.success.dark,"& svg":{color:e.palette.success.main}})),Oi=({row:e})=>e.original.status==="potentially-stale"?n(o1,{children:l(Ii,{children:[n(Pr,{}),n("span",{children:"Potentially stale"})]})}):n(o1,{children:l(ji,{children:[n(sn,{}),n("span",{children:"Healthy"})]})}),o3=40,$i=7,Dn={[M0]:o3,[L0]:o3,[H0]:$i},Rn=(e,t)=>Math.abs(V0(e,t)),Fn=(e,t)=>e>=Dn[t],Bi=e=>{const{type:t,createdAt:a}=e,r=cn(a),i=Rn(r,new Date);return Fn(i,t)&&t!==ln&&t!==dn?"potentially-stale":"healthy"},zi=e=>{const{type:t,createdAt:a}=e;if(t===ln||t===dn)return;const r=cn(a),o=new Date,i=Rn(r,o);if(Fn(i,t)){const s=i-Dn[t];return Ir(o,s).toISOString()}},Vi=({projectId:e,features:t})=>{const a=m1(),r=b1(a.breakpoints.down("sm")),o=b1(a.breakpoints.down("md")),i=b1(a.breakpoints.down("lg")),s=u.useMemo(()=>t.map(b=>({project:e,name:b.name,type:b.type,stale:b.stale,status:Bi(b),lastSeenAt:b.lastSeenAt,createdAt:b.createdAt,expiredAt:zi(b)})),[e,t]),c=u.useMemo(()=>({hiddenColumns:[],sortBy:[{id:"createdAt"}]}),[]),{headerGroups:d,rows:p,prepareRow:m,state:{globalFilter:g},setGlobalFilter:f,setHiddenColumns:C}=t1.useTable({columns:i3,data:s,initialState:c,sortTypes:Oe,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0},t1.useGlobalFilter,t1.useFlexLayout,t1.useSortBy);Ct([{condition:r,columns:["stale"]},{condition:o,columns:["expiredAt","lastSeenAt"]},{condition:i,columns:["createdAt"]}],C,i3);const S=p.length<s.length?`Feature toggles (${p.length} of ${s.length})`:`Feature toggles (${s.length})`;return l(d1,{header:n(i1,{title:S,actions:n(D1,{initialValue:g,onChange:f})}),children:[n(ue,{value:g,children:n(bt,{headerGroups:d,prepareRow:m,rows:p})}),n(w,{condition:p.length===0,show:n(w,{condition:(g==null?void 0:g.length)>0,show:l(S1,{children:["No feature toggles found matching “",g,"”"]}),elseShow:n(S1,{children:"No feature toggles available. Get started by adding a new feature toggle."})})})]})},i3=[{Header:"Seen",accessor:"lastSeenAt",sortType:"date",align:"center",Cell:Y3,disableGlobalFilter:!0,maxWidth:85},{Header:"Type",accessor:"type",align:"center",Cell:Q3,disableGlobalFilter:!0,maxWidth:85},{Header:"Name",accessor:"name",sortType:"alphanumeric",Cell:W0,minWidth:120},{Header:"Created",accessor:"createdAt",sortType:"date",Cell:vt,disableGlobalFilter:!0,maxWidth:150},{Header:"Expired",accessor:"expiredAt",Cell:Zi,disableGlobalFilter:!0,maxWidth:150},{Header:"Status",id:"status",accessor:"status",Cell:Oi,disableGlobalFilter:!0,width:180},{Header:"State",accessor:"stale",sortType:"boolean",Cell:N0,disableGlobalFilter:!0,maxWidth:120}],Mi=()=>{const e=Y("projectId"),t=F1(e);x1(`Project health – ${t}`);const{healthReport:a,refetchHealthReport:r,error:o}=_i(e,{refreshInterval:15*1e3});return a?l("div",{children:[n(w,{condition:!!o,show:n(H3,{"data-loading":!0,style:{maxWidth:"500px",marginTop:"1rem"},onClick:r,text:`Could not fetch health rating for ${e}`})}),n(Pi,{healthReport:a}),n(Vi,{projectId:e,features:a.features})]}):null},Li=h("div")(({theme:e})=>({borderRadius:"12.5px",backgroundColor:e.palette.background.paper,padding:"2rem"})),Hi=()=>{const e=Y("projectId");return n(Li,{children:n(q0,{title:"Event Log",project:e,displayInline:!0})})},Pn=(e,t)=>{const{data:a,error:r,mutate:o}=de(K1(`api/admin/projects/${e}/change-requests/${t}`),Wi,{refreshInterval:15e3});return{data:a,loading:!r&&!a,refetchChangeRequest:()=>o(),error:r}},Wi=e=>fetch(e).then(J1("Request changes")).then(t=>t.json()),Ni=h(L1)(({theme:e})=>({padding:e.spacing(3,4),borderRadius:`${e.shape.borderRadiusLarge}px`}));h(E)(({theme:e})=>({display:"flex",alignItems:"center",marginBottom:e.spacing(2)}));const qi=h(E)(({theme:e})=>({display:"flex",alignItems:"center"})),Ui=h($)(({theme:e})=>({display:"flex",alignItems:"center",marginRight:e.spacing(1),fontSize:e.fontSizes.mainHeader})),Gi=h(U0)(({theme:e})=>({padding:e.spacing(.75,1.5),backgroundColor:e.palette.background.elevation2})),Zn=h(St)(({theme:e})=>({height:"24px",width:"24px"})),Ki=({changeRequest:e})=>{var r,o,i;const[t,a]=u.useState(e.title);return l(Ni,{elevation:0,children:[n(G0,{environmentChangeRequest:e,title:t,setTitle:a,children:n(Ui,{variant:"h1",sx:{mr:1.5},children:t})}),l(qi,{children:[n(un,{state:e.state}),l($,{variant:"body2",sx:s=>({margin:s.spacing("auto",0,"auto",2)}),children:["Created"," ",n(m2,{minPeriod:60,date:new Date(e.createdAt)})," ","by"]}),n(E,{sx:s=>({marginLeft:s.spacing(1)}),children:n(Y1,{title:(r=e==null?void 0:e.createdBy)==null?void 0:r.username,children:n(Zn,{src:(o=e==null?void 0:e.createdBy)==null?void 0:o.imageUrl})})}),n($,{variant:"body2",sx:s=>({marginLeft:s.spacing(.5)}),children:(i=e==null?void 0:e.createdBy)==null?void 0:i.username}),n(E,{sx:s=>({marginLeft:s.spacing(1.5)}),children:n(Gi,{variant:"outlined",children:l($,{variant:"body2",sx:{lineHeight:1},children:["Environment:"," ",n($,{display:"inline",fontWeight:"bold",variant:"body2",component:"span",children:e==null?void 0:e.environment})," ",n(K0,{})," Updates:"," ",l($,{variant:"body2",display:"inline",fontWeight:"bold",component:"span",children:[e.features.length," ",e.features.length===1?"feature toggle":"feature toggles"]})]})})})]})]})};function r1(){return r1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},r1.apply(this,arguments)}function ve(e,t){if(e==null)return{};var a={},r=Object.keys(e),o,i;for(i=0;i<r.length;i++)o=r[i],!(t.indexOf(o)>=0)&&(a[o]=e[o]);return a}const Ji=u.createContext({}),nt=Ji;function Yi(e){return pe("MuiTimeline",e)}Q1("MuiTimeline",["root","positionLeft","positionRight","positionAlternate"]);const Qi=["position","className"],Xi=e=>{const{position:t,classes:a}=e,r={root:["root",t&&`position${j1(t)}`]};return ge(r,Yi,a)},e4=h("ul",{name:"MuiTimeline",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:a}=e;return[t.root,a.position&&t[`position${j1(a.position)}`]]}})({display:"flex",flexDirection:"column",padding:"6px 16px",flexGrow:1}),t4=u.forwardRef(function(t,a){const r=he({props:t,name:"MuiTimeline"}),{position:o="right",className:i}=r,s=ve(r,Qi),c=r1({},r,{position:o}),d=Xi(c),p=u.useMemo(()=>({position:o}),[o]);return n(nt.Provider,{value:p,children:n(e4,r1({className:me(d.root,i),ownerState:c,ref:a},s))})}),In=t4;function n4(e){return pe("MuiTimelineContent",e)}const a4=Q1("MuiTimelineContent",["root","positionLeft","positionRight","positionAlternate"]),r4=["className"],o4=e=>{const{position:t,classes:a}=e,r={root:["root",`position${j1(t)}`]};return ge(r,n4,a)},i4=h($,{name:"MuiTimelineContent",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:a}=e;return[t.root,t[`position${j1(a.position)}`]]}})(({ownerState:e})=>r1({flex:1,padding:"6px 16px",textAlign:"left"},e.position==="left"&&{textAlign:"right"})),s4=u.forwardRef(function(t,a){const r=he({props:t,name:"MuiTimelineContent"}),{className:o}=r,i=ve(r,r4),{position:s}=u.useContext(nt),c=r1({},r,{position:s||"right"}),d=o4(c);return n(i4,r1({component:"div",className:me(d.root,o),ownerState:c,ref:a},i))}),jn=s4,c4=Q1("MuiTimelineOppositeContent",["root","positionLeft","positionRight","positionAlternate"]),l4=c4;function d4(e){return pe("MuiTimelineItem",e)}const u4=Q1("MuiTimelineItem",["root","positionLeft","positionRight","positionAlternate","missingOppositeContent"]),On=u4,p4=["position","className"],h4=e=>{const{position:t,classes:a,hasOppositeContent:r}=e,o={root:["root",`position${j1(t)}`,!r&&"missingOppositeContent"]};return ge(o,d4,a)},m4=h("li",{name:"MuiTimelineItem",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:a}=e;return[t.root,t[`position${j1(a.position)}`]]}})(({ownerState:e})=>r1({listStyle:"none",display:"flex",position:"relative",minHeight:70},e.position==="left"&&{flexDirection:"row-reverse"},e.position==="alternate"&&{"&:nth-of-type(even)":{flexDirection:"row-reverse",[`& .${a4.root}`]:{textAlign:"right"},[`& .${l4.root}`]:{textAlign:"left"}}},!e.hasOppositeContent&&{"&:before":{content:'""',flex:1,padding:"6px 16px"}})),g4=u.forwardRef(function(t,a){const r=he({props:t,name:"MuiTimelineItem"}),{position:o,className:i}=r,s=ve(r,p4),{position:c}=u.useContext(nt);let d=!1;u.Children.forEach(r.children,f=>{J0(f,["TimelineOppositeContent"])&&(d=!0)});const p=r1({},r,{position:o||c||"right",hasOppositeContent:d}),m=h4(p),g=u.useMemo(()=>({position:p.position}),[p.position]);return n(nt.Provider,{value:g,children:n(m4,r1({className:me(m.root,i),ownerState:p,ref:a},s))})}),Ye=g4;function f4(e){return pe("MuiTimelineSeparator",e)}Q1("MuiTimelineSeparator",["root"]);const v4=["className"],y4=e=>{const{classes:t}=e;return ge({root:["root"]},f4,t)},b4=h("div",{name:"MuiTimelineSeparator",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"flex",flexDirection:"column",flex:0,alignItems:"center"}),C4=u.forwardRef(function(t,a){const r=he({props:t,name:"MuiTimelineSeparator"}),{className:o}=r,i=ve(r,v4),s=r,c=y4(s);return n(b4,r1({className:me(c.root,o),ownerState:s,ref:a},i))}),Qe=C4;function S4(e){return pe("MuiTimelineDot",e)}Q1("MuiTimelineDot",["root","filled","outlined","filledGrey","outlinedGrey","filledPrimary","outlinedPrimary","filledSecondary","outlinedSecondary"]);const _4=["className","color","variant"],w4=e=>{const{color:t,variant:a,classes:r}=e,o={root:["root",a,t!=="inherit"&&`${a}${j1(t)}`]};return ge(o,S4,r)},x4=h("span",{name:"MuiTimelineDot",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:a}=e;return[t.root,t[a.color!=="inherit"&&`${a.variant}${j1(a.color)}`],t[a.variant]]}})(({ownerState:e,theme:t})=>r1({display:"flex",alignSelf:"baseline",borderStyle:"solid",borderWidth:2,padding:4,borderRadius:"50%",boxShadow:(t.vars||t).shadows[1],margin:"11.5px 0"},e.variant==="filled"&&r1({borderColor:"transparent"},e.color!=="inherit"&&r1({},e.color==="grey"?{color:(t.vars||t).palette.grey[50],backgroundColor:(t.vars||t).palette.grey[400]}:{color:(t.vars||t).palette[e.color].contrastText,backgroundColor:(t.vars||t).palette[e.color].main})),e.variant==="outlined"&&r1({boxShadow:"none",backgroundColor:"transparent"},e.color!=="inherit"&&r1({},e.color==="grey"?{borderColor:(t.vars||t).palette.grey[400]}:{borderColor:(t.vars||t).palette[e.color].main})))),T4=u.forwardRef(function(t,a){const r=he({props:t,name:"MuiTimelineDot"}),{className:o,color:i="grey",variant:s="filled"}=r,c=ve(r,_4),d=r1({},r,{color:i,variant:s}),p=w4(d);return n(x4,r1({className:me(p.root,o),ownerState:d,ref:a},c))}),$n=T4;function E4(e){return pe("MuiTimelineConnector",e)}Q1("MuiTimelineConnector",["root"]);const A4=["className"],k4=e=>{const{classes:t}=e;return ge({root:["root"]},E4,t)},D4=h("span",{name:"MuiTimelineConnector",slot:"Root",overridesResolver:(e,t)=>t.root})(({theme:e})=>({width:2,backgroundColor:(e.vars||e).palette.grey[400],flexGrow:1})),R4=u.forwardRef(function(t,a){const r=he({props:t,name:"MuiTimelineConnector"}),{className:o}=r,i=ve(r,A4),s=r,c=k4(s);return n(D4,r1({className:me(c.root,o),ownerState:s,ref:a},i))}),T2=R4,F4=h(L1)(({theme:e})=>({marginTop:e.spacing(2),borderRadius:`${e.shape.borderRadiusLarge}px`})),P4=h(E)(({theme:e})=>({padding:e.spacing(2),marginBottom:`-${e.spacing(4)}`})),Z4=h(In)(()=>({[`& .${On.root}:before`]:{flex:0,padding:0}})),I4=({state:e})=>{const t=r=>["Draft","In review","Approved","Applied"].map(i=>({title:i,active:i===r}));return n(F4,{elevation:0,children:n(P4,{children:n(Z4,{children:(()=>{const r=t(e),o=r.findIndex(s=>s.active),i=o!==-1?o:null;return e==="Cancelled"?O4(r):j4(r,i)})()})})})},j4=(e,t)=>e.map(({title:a},r)=>{const o=r<e.length-1,i=n(w,{condition:o,show:n(T2,{})});return t!==null&&t>=r?Xe("success",a,i):t!==null&&t+1===r?Xe("primary",a,i,{variant:"outlined"}):Xe("grey",a,i)}),O4=e=>e.map(({title:t},a)=>{const r=a<e.length-1;return Xe("grey",t,n(w,{condition:r,show:n(T2,{})}))}),Xe=(e,t,a,r={})=>l(Ye,{children:[l(Qe,{children:[n($n,{color:e,...r}),a]}),n(jn,{children:t})]},t),$4=h(E)(({theme:e})=>({marginBottom:e.spacing(2)})),B4=({actualApprovals:e,minApprovals:t})=>l(G,{children:["Reviewers"," ",l($,{component:"span",color:"text.secondary",children:["(",e,"/",t," required)"]})]}),z4=({header:e,children:t})=>l(L1,{elevation:0,sx:a=>({marginTop:a.spacing(2),padding:a.spacing(4),borderRadius:r=>`${r.shape.borderRadiusLarge}px`}),children:[n($4,{children:e}),n($,{variant:"body1",color:"text.secondary",children:n(w,{condition:Ee.Children.count(t)>0,show:"Approved by",elseShow:"No approvals yet"})}),t]}),E2=()=>e=>e!=="color"&&e!=="sx"&&e!=="approved"&&e!=="border"&&e!=="bgColor"&&e!=="svgColor",se=h(E)(({theme:e})=>({display:"flex",alignItems:"center"})),V4=h(pn)(({theme:e})=>({color:e.palette.error.main,height:"35px",width:"35px",marginRight:e.spacing(1)})),s3=h(pn)(({theme:e})=>({color:e.palette.warning.main,height:"35px",width:"35px",marginRight:e.spacing(1)})),n2=h(hn)(({theme:e})=>({color:e.palette.success.main,height:"35px",width:"35px",marginRight:e.spacing(1)})),M4=h(E)(({theme:e})=>({display:"flex",marginTop:e.spacing(2)})),L4=h(E,{shouldForwardProp:E2()})(({theme:e,bgColor:t,svgColor:a})=>({borderRadius:`${e.shape.borderRadiusMedium}px`,backgroundColor:t,padding:e.spacing(1,2),marginRight:e.spacing(2),height:"45px",width:"45px",display:"flex",alignItems:"center",justifyContent:"center",svg:{color:a}})),Bn=h(q3)(({theme:e})=>({margin:e.spacing(2.5,0)})),H4=h(E,{shouldForwardProp:E2()})(({theme:e,border:t})=>({borderRadius:`${e.shape.borderRadiusLarge}px`,border:t,padding:e.spacing(3),width:"100%"})),ce=h($,{shouldForwardProp:E2()})(({theme:e,color:t})=>({fontWeight:"bold",color:t})),W4=(e,t)=>e==="Approved"?`2px solid ${t.palette.success.main}`:e==="Applied"?`2px solid ${t.palette.primary.main}`:`1px solid ${t.palette.divider}`,N4=(e,t)=>e==="Approved"?{bgColor:t.palette.success.main,svgColor:t.palette.background.paper}:e==="Applied"?{bgColor:t.palette.primary.main,svgColor:t.palette.background.paper}:{bgColor:t.palette.background.elevation2,svgColor:t.palette.neutral.main},q4=({changeRequest:e})=>{const t=m1();return l(M4,{children:[n(L4,{...N4(e.state,t),children:n(Y0,{style:{transform:"scale(1.5)"}})}),n(H4,{sx:{backgroundColor:e.state==="In review"?t.palette.warning.light:"initial"},border:W4(e.state,t),children:n(U4,{changeRequest:e})})]})},U4=({changeRequest:e})=>{const{state:t}=e;return t?t==="Approved"?n(G4,{}):t==="Applied"?n(J4,{}):t==="Cancelled"?n(Y4,{}):n(K4,{minApprovals:e.minApprovals}):null},G4=()=>{const e=m1();return l(G,{children:[l(se,{children:[n(n2,{}),l(E,{children:[n(ce,{color:e.palette.success.dark,children:"Changes approved"}),n($,{children:"One approving review from requested approvers"})]})]}),n(Bn,{}),l(se,{children:[n(n2,{}),n(E,{children:n(ce,{color:e.palette.success.dark,children:"Changes are ready to be applied"})})]})]})},K4=({minApprovals:e})=>{const t=m1();return l(G,{children:[l(se,{children:[n(s3,{}),l(E,{children:[n(ce,{color:t.palette.warning.dark,children:"Review required"}),l($,{children:["At least ",e," approval(s) must be submitted before changes can be applied"]})]})]}),n(Bn,{}),l(se,{children:[n(s3,{}),n(ce,{color:t.palette.warning.dark,children:"Apply changes is blocked"})]})]})},J4=()=>{const e=m1();return n(G,{children:l(se,{children:[n(n2,{sx:{color:e.palette.primary.main}}),n(E,{children:n(ce,{color:e.palette.primary.main,children:"Changes applied"})})]})})},Y4=()=>{const e=m1();return n(G,{children:l(se,{children:[n(V4,{}),n(E,{children:n(ce,{color:e.palette.error.main,children:"Changes cancelled"})})]})})};var A2={},Q4=Fe;Object.defineProperty(A2,"__esModule",{value:!0});var zn=A2.default=void 0,X4=Q4(Re()),es=Pe,ts=(0,X4.default)((0,es.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");zn=A2.default=ts;const ns=({disabled:e})=>{const{isAdmin:t}=u.useContext(X1),a=Y("projectId"),r=Y("id"),{user:o}=mn(),{refetchChangeRequest:i,data:s}=Pn(a,r),{refetch:c}=je(a),{setToastApiError:d,setToastData:p}=u1(),{changeState:m}=Ze(),[g,f]=Ee.useState(!1),C=Ee.useRef(null),S=async()=>{try{await m(a,Number(r),{state:"Approved"}),i(),c(),p({type:"success",title:"Success",text:"Changes approved"})}catch(v){d(h1(v))}},b=()=>{f(v=>!v)},R=v=>{C.current&&C.current.contains(v.target)||f(!1)};return l(Ee.Fragment,{children:[n(_t,{variant:"contained",disabled:e||(s==null?void 0:s.createdBy.id)===(o==null?void 0:o.id)&&!t,"aria-controls":g?"review-options-menu":void 0,"aria-expanded":g?"true":void 0,"aria-label":"review changes","aria-haspopup":"menu",onClick:b,ref:C,endIcon:n(zn,{}),permission:Q0,projectId:a,environmentId:s==null?void 0:s.environment,children:"Review changes"}),n(an,{sx:{zIndex:1},open:g,anchorEl:C.current,role:void 0,transition:!0,disablePortal:!0,children:({TransitionProps:v,placement:F})=>n(X0,{...v,style:{transformOrigin:F==="bottom"?"center top":"center bottom"},children:n(L1,{className:"dropdown-outline",children:n(rn,{onClickAway:R,children:n(mt,{id:"review-options-menu",autoFocusItem:!0,children:n(N1,{onClick:S,children:"Approve changes"})})})})})})]})},as=h(E)(({theme:e})=>({display:"flex",alignItems:"center",flexWrap:"wrap",marginTop:e.spacing(1.5),gap:e.spacing(1)})),rs=h(hn)(({theme:e})=>({color:e.palette.success.main,marginLeft:"auto"})),os=({name:e,imageUrl:t})=>l(as,{children:[n(Zn,{src:t}),n($,{variant:"body1",color:"text.primary",sx:{maxWidth:"170px",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"},children:e}),n(rs,{})]});var Vn={},k2={},D2={};Object.defineProperty(D2,"__esModule",{value:!0});var is=u,ss=cs(is);function cs(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}D2.default=function(e,t,a){return ss.createElement("a",{href:e,key:a},t)};var R2={};Object.defineProperty(R2,"__esModule",{value:!0});R2.default=function(e){return e};var F2={},Bt,c3;function ls(){return c3||(c3=1,Bt=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),Bt}var zt,l3;function ds(){return l3||(l3=1,zt=/[\0-\x1F\x7F-\x9F]/),zt}var Vt,d3;function us(){return d3||(d3=1,Vt=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),Vt}var Mt,u3;function ps(){return u3||(u3=1,Mt=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/),Mt}var Lt,p3;function hs(){return p3||(p3=1,Lt=function(e){var t={};t.src_Any=ls().source,t.src_Cc=ds().source,t.src_Z=us().source,t.src_P=ps().source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var a="[><|]";return t.src_pseudo_letter="(?:(?!"+a+"|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|"+a+"|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+a+`|[()[\\]{}.,"'?!\\-]).|\\[(?:(?!`+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+t.src_ZCc+").|\\!(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy="(^|"+a+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}),Lt}function a2(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(a){a&&Object.keys(a).forEach(function(r){e[r]=a[r]})}),e}function Et(e){return Object.prototype.toString.call(e)}function ms(e){return Et(e)==="[object String]"}function gs(e){return Et(e)==="[object Object]"}function fs(e){return Et(e)==="[object RegExp]"}function h3(e){return Et(e)==="[object Function]"}function vs(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var Mn={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function ys(e){return Object.keys(e||{}).reduce(function(t,a){return t||Mn.hasOwnProperty(a)},!1)}var bs={"http:":{validate:function(e,t,a){var r=e.slice(t);return a.re.http||(a.re.http=new RegExp("^\\/\\/"+a.re.src_auth+a.re.src_host_port_strict+a.re.src_path,"i")),a.re.http.test(r)?r.match(a.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,a){var r=e.slice(t);return a.re.no_http||(a.re.no_http=new RegExp("^"+a.re.src_auth+"(?:localhost|(?:(?:"+a.re.src_domain+")\\.)+"+a.re.src_domain_root+")"+a.re.src_port+a.re.src_host_terminator+a.re.src_path,"i")),a.re.no_http.test(r)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:r.match(a.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,a){var r=e.slice(t);return a.re.mailto||(a.re.mailto=new RegExp("^"+a.re.src_email_name+"@"+a.re.src_host_strict,"i")),a.re.mailto.test(r)?r.match(a.re.mailto)[0].length:0}}},Cs="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Ss="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function _s(e){e.__index__=-1,e.__text_cache__=""}function ws(e){return function(t,a){var r=t.slice(a);return e.test(r)?r.match(e)[0].length:0}}function m3(){return function(e,t){t.normalize(e)}}function at(e){var t=e.re=hs()(e.__opts__),a=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||a.push(Cs),a.push(t.src_xn),t.src_tlds=a.join("|");function r(c){return c.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");var o=[];e.__compiled__={};function i(c,d){throw new Error('(LinkifyIt) Invalid schema "'+c+'": '+d)}Object.keys(e.__schemas__).forEach(function(c){var d=e.__schemas__[c];if(d!==null){var p={validate:null,link:null};if(e.__compiled__[c]=p,gs(d)){fs(d.validate)?p.validate=ws(d.validate):h3(d.validate)?p.validate=d.validate:i(c,d),h3(d.normalize)?p.normalize=d.normalize:d.normalize?i(c,d):p.normalize=m3();return}if(ms(d)){o.push(c);return}i(c,d)}}),o.forEach(function(c){e.__compiled__[e.__schemas__[c]]&&(e.__compiled__[c].validate=e.__compiled__[e.__schemas__[c]].validate,e.__compiled__[c].normalize=e.__compiled__[e.__schemas__[c]].normalize)}),e.__compiled__[""]={validate:null,normalize:m3()};var s=Object.keys(e.__compiled__).filter(function(c){return c.length>0&&e.__compiled__[c]}).map(vs).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),_s(e)}function xs(e,t){var a=e.__index__,r=e.__last_index__,o=e.__text_cache__.slice(a,r);this.schema=e.__schema__.toLowerCase(),this.index=a+t,this.lastIndex=r+t,this.raw=o,this.text=o,this.url=o}function g3(e,t){var a=new xs(e,t);return e.__compiled__[a.schema].normalize(a,e),a}function _1(e,t){if(!(this instanceof _1))return new _1(e,t);t||ys(e)&&(t=e,e={}),this.__opts__=a2({},Mn,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=a2({},bs,e),this.__compiled__={},this.__tlds__=Ss,this.__tlds_replaced__=!1,this.re={},at(this)}_1.prototype.add=function(t,a){return this.__schemas__[t]=a,at(this),this};_1.prototype.set=function(t){return this.__opts__=a2(this.__opts__,t),this};_1.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;var a,r,o,i,s,c,d,p,m;if(this.re.schema_test.test(t)){for(d=this.re.schema_search,d.lastIndex=0;(a=d.exec(t))!==null;)if(i=this.testSchemaAt(t,a[2],d.lastIndex),i){this.__schema__=a[2],this.__index__=a.index+a[1].length,this.__last_index__=a.index+a[0].length+i;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(p=t.search(this.re.host_fuzzy_test),p>=0&&(this.__index__<0||p<this.__index__)&&(r=t.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))!==null&&(s=r.index+r[1].length,(this.__index__<0||s<this.__index__)&&(this.__schema__="",this.__index__=s,this.__last_index__=r.index+r[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&(m=t.indexOf("@"),m>=0&&(o=t.match(this.re.email_fuzzy))!==null&&(s=o.index+o[1].length,c=o.index+o[0].length,(this.__index__<0||s<this.__index__||s===this.__index__&&c>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=c))),this.__index__>=0};_1.prototype.pretest=function(t){return this.re.pretest.test(t)};_1.prototype.testSchemaAt=function(t,a,r){return this.__compiled__[a.toLowerCase()]?this.__compiled__[a.toLowerCase()].validate(t,r,this):0};_1.prototype.match=function(t){var a=0,r=[];this.__index__>=0&&this.__text_cache__===t&&(r.push(g3(this,a)),a=this.__last_index__);for(var o=a?t.slice(a):t;this.test(o);)r.push(g3(this,a)),o=o.slice(this.__last_index__),a+=this.__last_index__;return r.length?r:null};_1.prototype.tlds=function(t,a){return t=Array.isArray(t)?t:[t],a?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(r,o,i){return r!==i[o-1]}).reverse(),at(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,at(this),this)};_1.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};_1.prototype.onCompile=function(){};var Ts=_1;const Es=["aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","actor","ad","ads","adult","ae","aeg","aero","aetna","af","afl","africa","ag","agakhan","agency","ai","aig","airbus","airforce","airtel","akdn","al","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","cat","catering","catholic","cba","cbn","cbre","cbs","cc","cd","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","coop","corsica","country","coupon","coupons","courses","cpa","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","er","ericsson","erni","es","esq","estate","et","etisalat","eu","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","guardian","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","inc","industries","infiniti","info","ing","ink","institute","insurance","insure","int","international","intuit","investments","io","ipiranga","iq","ir","irish","is","ismaili","ist","istanbul","it","itau","itv","jaguar","java","jcb","je","jeep","jetzt","jewelry","jio","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerrylogistics","kerryproperties","kfh","kg","kh","ki","kia","kids","kim","kinder","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","lipsy","live","living","lk","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","luxe","luxury","lv","ly","ma","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","music","mutual","mv","mw","mx","my","mz","na","nab","nagoya","name","natura","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","northwesternmutual","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","office","okinawa","olayan","olayangroup","oldnavy","ollo","om","omega","one","ong","onl","online","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","pramerica","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","racing","radio","re","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","ro","rocher","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sb","sbi","sbs","sc","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","sd","se","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","sr","srl","ss","st","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiss","sx","sy","sydney","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","vermögensberater","vermögensberatung","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vn","vodka","volkswagen","volvo","vote","voting","voto","voyage","vu","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zm","zone","zuerich","zw","ελ","ευ","бг","бел","дети","ею","католик","ком","мкд","мон","москва","онлайн","орг","рус","рф","сайт","срб","укр","қаз","հայ","ישראל","קום","ابوظبي","اتصالات","ارامكو","الاردن","البحرين","الجزائر","السعودية","العليان","المغرب","امارات","ایران","بارت","بازار","بيتك","بھارت","تونس","سودان","سورية","شبكة","عراق","عرب","عمان","فلسطين","قطر","كاثوليك","كوم","مصر","مليسيا","موريتانيا","موقع","همراه","پاکستان","ڀارت","कॉम","नेट","भारत","भारतम्","भारोत","संगठन","বাংলা","ভারত","ভাৰত","ਭਾਰਤ","ભારત","ଭାରତ","இந்தியா","இலங்கை","சிங்கப்பூர்","భారత్","ಭಾರತ","ഭാരതം","ලංකා","คอม","ไทย","ລາວ","გე","みんな","アマゾン","クラウド","グーグル","コム","ストア","セール","ファッション","ポイント","世界","中信","中国","中國","中文网","亚马逊","企业","佛山","信息","健康","八卦","公司","公益","台湾","台灣","商城","商店","商标","嘉里","嘉里大酒店","在线","大拿","天主教","娱乐","家電","广东","微博","慈善","我爱你","手机","招聘","政务","政府","新加坡","新闻","时尚","書籍","机构","淡马锡","游戏","澳門","点看","移动","组织机构","网址","网店","网站","网络","联通","谷歌","购物","通販","集团","電訊盈科","飞利浦","食品","餐厅","香格里拉","香港","닷넷","닷컴","삼성","한국"];Object.defineProperty(F2,"__esModule",{value:!0});var As=Ts,ks=Ln(As),Ds=Es,Rs=Ln(Ds);function Ln(e){return e&&e.__esModule?e:{default:e}}var Hn=new ks.default;Hn.tlds(Rs.default);F2.default=function(e){return Hn.match(e)};var P2={};Object.defineProperty(P2,"__esModule",{value:!0});P2.default=function(e){return e};Object.defineProperty(k2,"__esModule",{value:!0});var Fs=function(){function e(t,a){for(var r=0;r<a.length;r++){var o=a[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,a,r){return a&&e(t.prototype,a),r&&e(t,r),t}}(),Ps=u,xe=Ms(Ps),Zs=D2,Is=At(Zs),js=R2,Os=At(js),$s=F2,Bs=At($s),zs=P2,Vs=At(zs);function At(e){return e&&e.__esModule?e:{default:e}}function Ms(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}function Ls(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Hs(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&(typeof t=="object"||typeof t=="function")?t:e}function Ws(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var Wn=function(e){Ws(t,e);function t(){return Ls(this,t),Hs(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return Fs(t,[{key:"parseString",value:function(r){var o=this;if(r==="")return r;var i=this.props.matchDecorator(r);if(!i)return r;var s=[],c=0;return i.forEach(function(d,p){d.index>c&&s.push(r.substring(c,d.index));var m=o.props.hrefDecorator(d.url),g=o.props.textDecorator(d.text),f=o.props.componentDecorator(m,g,p);s.push(f),c=d.lastIndex}),r.length>c&&s.push(r.substring(c)),s.length===1?s[0]:s}},{key:"parse",value:function(r){var o=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return typeof r=="string"?this.parseString(r):xe.isValidElement(r)&&r.type!=="a"&&r.type!=="button"?xe.cloneElement(r,{key:i},this.parse(r.props.children)):Array.isArray(r)?r.map(function(s,c){return o.parse(s,c)}):r}},{key:"render",value:function(){return xe.createElement(xe.Fragment,null,this.parse(this.props.children))}}]),t}(xe.Component);Wn.defaultProps={componentDecorator:Is.default,hrefDecorator:Os.default,matchDecorator:Bs.default,textDecorator:Vs.default};k2.default=Wn;Object.defineProperty(Vn,"__esModule",{value:!0});var Ns=k2,qs=Us(Ns);function Us(e){return e&&e.__esModule?e:{default:e}}var Gs=Vn.default=qs.default;const Ks=h(E)(({theme:e})=>({display:"flex",marginTop:e.spacing(2)})),Js=h(L1)(({theme:e})=>({width:"100%",padding:e.spacing(1.5,3,2.5,3),backgroundColor:e.palette.neutral.light,borderRadius:e.shape.borderRadiusLarge,borderColor:e.palette.divider})),Ys=h(E)(({theme:e})=>({display:"flex",borderBottom:"1px solid",borderColor:e.palette.divider,paddingBottom:e.spacing(1.5)})),Qs=({comment:e})=>l(Ks,{children:[n(Y1,{title:e.createdBy.username,children:n(ea,{src:e.createdBy.imageUrl})}),l(Js,{variant:"outlined",children:[n(Ys,{children:l(E,{children:[n("strong",{children:e.createdBy.username})," ",l($,{color:"text.secondary",component:"span",children:["commented"," ",n(m2,{minPeriod:60,date:new Date(e.createdAt)})]})]})}),n(E,{sx:{paddingTop:2.5},children:n(Gs,{children:e.text})})]})]}),Xs=h(E)(({theme:e})=>({width:"30%",display:"flex",flexDirection:"column",[e.breakpoints.down("sm")]:{width:"100%"}})),ec=h(L1)(({theme:e})=>({marginTop:e.spacing(2),marginLeft:e.spacing(2),width:"70%",padding:e.spacing(1,2),borderRadius:e.shape.borderRadiusLarge,[e.breakpoints.down("sm")]:{marginLeft:0,width:"100%"}})),tc=h(E)(({theme:e})=>({marginTop:e.spacing(3),display:"flex",justifyContent:"flex-end"})),nc=h(E)(({theme:e})=>({padding:e.spacing(2)})),ac=h(E)(({theme:e})=>({display:"flex",[e.breakpoints.down("sm")]:{flexDirection:"column"}})),rc=()=>{var B,V;const e=Y("projectId"),[t,a]=u.useState(!1),{user:r}=mn(),{isAdmin:o}=u.useContext(X1),[i,s]=u.useState(""),c=Y("id"),{data:d,refetchChangeRequest:p}=Pn(e,c),{changeState:m,addComment:g,loading:f}=Ze(),{refetch:C}=je(e),{setToastData:S,setToastApiError:b}=u1(),{isChangeRequestConfiguredForReview:R}=Ie(e);if(!d)return null;const v=R(d.environment),F=async()=>{try{await m(e,Number(c),{state:"Applied"}),p(),C(),S({type:"success",title:"Success",text:"Changes applied"})}catch(O){b(h1(O))}},T=async()=>{try{await g(e,c,i),s(""),p(),S({type:"success",title:"Success",text:"Comment added"})}catch(O){b(h1(O))}},j=async()=>{try{await m(e,Number(c),{state:"Cancelled"}),a(!1),p(),C(),S({type:"success",title:"Success",text:"Changes cancelled"})}catch(O){b(h1(O))}},M=()=>a(!0),_=()=>a(!1),D=(d==null?void 0:d.createdBy.id)===(r==null?void 0:r.id)&&d.state==="In review"&&!o,P=d.approvals.some(O=>O.createdBy.id===(r==null?void 0:r.id));return l(G,{children:[n(Ki,{changeRequest:d}),l(ac,{children:[l(Xs,{children:[n(I4,{state:d.state}),n(z4,{header:n(B4,{actualApprovals:d.approvals.length,minApprovals:d.minApprovals}),children:(B=d.approvals)==null?void 0:B.map(O=>n(os,{name:O.createdBy.username||"Unknown user",imageUrl:O.createdBy.imageUrl},O.createdBy.username))})]}),n(ec,{elevation:0,children:l(nc,{children:["Requested Changes (",ta(d),")",n(na,{changeRequest:d,onRefetch:p}),(V=d.comments)==null?void 0:V.map(O=>n(Qs,{comment:O},O.id)),n(aa,{user:r,commentText:i,onTypeComment:s,children:n(l1,{variant:"outlined",onClick:T,disabled:!v||i.trim().length===0||i.trim().length>1e3,children:"Comment"})}),n(w,{condition:D,show:n(w1,{sx:O=>({marginTop:O.spacing(1.5)}),severity:"info",children:"You can not approve your own change request"})}),n(q4,{changeRequest:d}),l(tc,{children:[n(w,{condition:d.state==="In review"&&!P,show:n(ns,{disabled:!v})}),n(w,{condition:d.state==="Approved",show:n(_t,{variant:"contained",onClick:F,projectId:e,permission:ra,environmentId:d.environment,disabled:!v||f,children:"Apply changes"})}),n(w,{condition:d.state!=="Applied"&&d.state!=="Cancelled"&&(d.createdBy.id===(r==null?void 0:r.id)||o),show:n(l1,{sx:{marginLeft:O=>O.spacing(2)},variant:"outlined",onClick:M,children:"Cancel changes"})})]})]})}),l(G1,{open:t,onClick:j,onClose:_,title:"Cancel change request",children:[n($,{sx:{marginBottom:2},children:"You are about to cancel this change request"}),n($,{variant:"body2",sx:O=>({color:O.palette.neutral.dark}),children:"The change request will be moved to closed, and it can't be applied anymore. Once cancelled, the change request can't be reopened."})]})]})]})},oc=({value:e})=>{const t=()=>e?n(un,{state:e}):null;return e?n(o1,{children:t()}):n(o1,{})},ic=h("div")(({theme:e})=>({display:"flex",flexDirection:"row",alignItems:"center",margin:0})),sc=({value:e})=>n(o1,{children:n(ic,{children:l($,{component:"span",variant:"body2",children:[" ",e==null?void 0:e.username]})})}),cc=h("div")(({theme:e})=>({display:"flex",flexDirection:"row",margin:0})),lc=({value:e,row:{original:t}})=>{const a=Y("projectId"),{id:r,title:o,features:i}=t,s=`/projects/${a}/change-requests/${r}`;return e?l(o1,{sx:{minWidth:"200px"},children:[n(cc,{children:n($,{variant:"body2",children:n(p2,{component:R1,underline:"hover",to:s,sx:c=>({paddingTop:c.spacing(.2),marginRight:c.spacing(1),"&:hover":{textDecoration:"underline"}}),children:o})})}),l("span",{children:[`${i==null?void 0:i.length}`," ",i.length<=1?"update":"updates"]})]}):n(o1,{})},dc=U3()(e=>({header:{padding:e.spacing(0,4)},bodyClass:{padding:e.spacing(4),overflowX:"auto"}})),uc=h(E)(({theme:e})=>({display:"flex",flexDirection:"column",width:"300px",padding:e.spacing(1,0,1,2)})),pc=h(R1)(({theme:e})=>({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",textDecoration:"none","&:hover, &:focus":{textDecoration:"underline"}})),hc=h(R1)(({theme:e})=>({textDecoration:"none","&:hover, &:focus":{textDecoration:"underline"}})),mc=h(E)(({theme:e})=>({display:"flex",flexDirection:"column",fontSize:e.fontSizes.smallBody,width:"100%",whiteSpace:"nowrap"})),gc=({value:e,project:t})=>{const a=e==null?void 0:e.map(r=>r.name);return n(uc,{children:n(w,{condition:(a==null?void 0:a.length)<3,show:a==null?void 0:a.map(r=>n(pc,{title:r,to:`/projects/${t}/features/${r}`,children:r})),elseShow:l(gn,{tooltipProps:{maxWidth:"800px"},tooltip:n(mc,{children:a==null?void 0:a.map(r=>n(hc,{title:r,to:`/projects/${t}/features/${r}`,children:r}))}),children:[a==null?void 0:a.length," toggles"]})})})},fc={id:"createdAt"},vc=h("div")({paddingLeft:0,paddingBottom:0}),yc=h(et)(({theme:e})=>({textTransform:"none",width:"auto",fontSize:e.fontSizes.bodySize,[e.breakpoints.up("md")]:{minWidth:160}})),bc=({changeRequests:e=[],loading:t,projectId:a})=>{var N,L;const{classes:r}=dc(),o=b1(oa.breakpoints.down("md")),[i,s]=h2(),[c,d]=u.useState(i.get("search")||""),{value:p,setValue:m}=pt(`${a}:ProjectChangeRequest`,fc),[g,f]=u.useMemo(()=>{const y=e.filter(I=>I.state!=="Cancelled"&&I.state!=="Applied"),k=e.filter(I=>I.state==="Cancelled"||I.state==="Applied");return[y,k]},[e]),C=[{title:"Change requests",data:g},{title:"Closed",data:f}],[S,b]=u.useState(0),R=u.useMemo(()=>[{id:"Title",Header:"Title",width:100,canSort:!0,accessor:"title",searchable:!0,Cell:lc},{id:"Updated feature toggles",Header:"Updated feature toggles",canSort:!1,accessor:"features",Cell:({value:y,row:{original:{title:k}}})=>n(gc,{project:a,value:y},k)},{Header:"By",accessor:"createdBy",maxWidth:180,canSort:!1,Cell:sc,align:"left"},{Header:"Submitted",accessor:"createdAt",searchable:!0,maxWidth:100,Cell:tt,sortType:"alphanumeric"},{Header:"Environment",accessor:"environment",searchable:!0,maxWidth:100,Cell:o1},{Header:"Status",accessor:"state",searchable:!0,maxWidth:"170px",Cell:oc}],[a]),{data:v,getSearchText:F,getSearchContext:T}=yt(R,c,(N=C[S])==null?void 0:N.data),j=u.useMemo(()=>t?ia:v,[v,t]),[M]=u.useState(()=>({sortBy:[{id:i.get("sort")||p.id,desc:i.has("order")?i.get("order")==="desc":p.desc}],hiddenColumns:[]})),{headerGroups:_,rows:D,state:{sortBy:P},prepareRow:B,setHiddenColumns:V,getTableProps:O,getTableBodyProps:J}=t1.useTable({columns:R,data:j,initialState:M,sortTypes:Oe,autoResetHiddenColumns:!1,disableSortRemove:!0,autoResetSortBy:!1,defaultColumn:{Cell:o1}},t1.useSortBy);return Ct([{condition:o,columns:["createdBy"]}],V,R),u.useEffect(()=>{if(t)return;const y={};y.sort=P[0].id,P[0].desc&&(y.order="desc"),c&&(y.search=c),s(y,{replace:!0}),m(k=>({...k,id:P[0].id,desc:P[0].desc||!1}))},[t,P,c,s]),l(d1,{isLoading:t,bodyClass:r.bodyClass,headerClass:r.header,header:n(i1,{titleElement:n(vc,{children:n(g2,{value:(L=C[S])==null?void 0:L.title,indicatorColor:"primary",textColor:"primary",variant:"scrollable",allowScrollButtonsMobile:!0,children:C.map((y,k)=>n(yc,{label:`${y.title} (${y.data.length})`,value:y.title,onClick:()=>b(k)},y.title))})}),actions:n(D1,{initialValue:c,onChange:d,hasFilters:!0,getSearchContext:T})}),children:[n(ue,{value:F(c),children:l(st,{...O(),children:[n(ct,{headerGroups:_}),n(lt,{...J(),children:D.map(y=>(B(y),n(dt,{hover:!0,...y.getRowProps(),children:y.cells.map(k=>n(ut,{...k.getCellProps(),padding:"none",children:k.render("Cell")}))})))})]})}),n(w,{condition:D.length===0,show:()=>n(w,{condition:(c==null?void 0:c.length)>0,show:l(S1,{children:["No changes found matching “",c,"”"]}),elseShow:n(S1,{children:"None of the changes were submitted yet."})})})]})},Cc=()=>{const e=Y("projectId"),t=F1(e),{isOss:a,isPro:r}=p1();x1(`Change requests – ${t}`);const{changeRequests:o,loading:i}=kn(e);return a()||r()?n(d1,{sx:{justifyContent:"center"},children:n(wt,{feature:"change-requests"})}):n(bc,{changeRequests:o,projectId:e,loading:i})};var K=(e=>(e.USER="USERS",e.GROUP="GROUPS",e.SERVICE_ACCOUNT="SERVICE ACCOUNTS",e))(K||{});const ye=(e,t={})=>{const a=K1(`api/admin/projects/${e}/access`),r=()=>fetch(a,{method:"GET"}).then(J1("project access")).then(g=>g.json()),o=`api/admin/projects/${e}/users`,{data:i,error:s}=de(o,r,t),[c,d]=u.useState(!s&&!i),p=()=>{on(o)};return u.useEffect(()=>{d(!s&&!i)},[i,s]),{access:u.useMemo(()=>{if(i)return Sc({roles:i.roles,users:i.users.filter(({accountType:g})=>!g||g==="User"),serviceAccounts:i.users.filter(({accountType:g})=>g==="Service Account"),groups:(i==null?void 0:i.groups.map(g=>({...g,users:hr(g.users??[])})))??[]})},[i]),error:s,loading:c,refetchProjectAccess:p}},Sc=e=>{const t=e.users||[],a=e.serviceAccounts||[],r=e.groups||[];return{...e,rows:[...t.map(o=>({entity:o,type:"USERS"})),...a.map(o=>({entity:o,type:"SERVICE ACCOUNTS"})),...r.map(o=>({entity:o,type:"GROUPS"}))]}},_c=h(d1)(({theme:e})=>({height:"100vh",overflow:"auto",padding:e.spacing(7.5,6),[e.breakpoints.down("md")]:{padding:e.spacing(4,2)},"& .header":{padding:e.spacing(0,0,2,0)},"& .body":{padding:e.spacing(3,0,0,0)},borderRadius:`${e.spacing(1.5,0,0,1.5)} !important`})),wc=h("div")(({theme:e})=>({display:"flex",flexDirection:"column","& > span":{color:e.palette.text.secondary,fontSize:e.fontSizes.bodySize}})),f3={id:"joinedAt"},Ht=[{Header:"Avatar",accessor:"imageUrl",Cell:({row:{original:e}})=>n(o1,{children:n(v2,{user:e})}),maxWidth:85,disableSortBy:!0},{id:"name",Header:"Name",accessor:e=>e.name||"",Cell:Ae,minWidth:100,searchable:!0},{id:"username",Header:"Username",accessor:e=>e.username||e.email,Cell:Ae,minWidth:100,searchable:!0},{id:"joined",Header:"Joined",accessor:"joinedAt",Cell:vt,sortType:"date",maxWidth:150},{id:"lastLogin",Header:"Last login",accessor:e=>e.seenAt||"",Cell:({row:{original:e}})=>n(tt,{value:e.seenAt,emptyText:"Never",title:t=>`Last login: ${t}`}),sortType:"date",maxWidth:150}],xc=["imageUrl","name","joined","lastLogin"],Tc=({open:e,setOpen:t,group:a,projectId:r,subtitle:o,onEdit:i,onRemove:s})=>{const c=m1(),d=b1(c.breakpoints.down("md")),[p]=u.useState(()=>({sortBy:[{id:f3.id,desc:f3.desc}]})),[m,g]=u.useState(""),{data:f,getSearchText:C,getSearchContext:S}=yt(Ht,m,(a==null?void 0:a.users)??[]),{headerGroups:b,rows:R,prepareRow:v,setHiddenColumns:F}=t1.useTable({columns:Ht,data:f,initialState:p,sortTypes:Oe,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},t1.useSortBy,t1.useFlexLayout);return Ct([{condition:d,columns:xc}],F,Ht),n(U1,{open:e,onClose:()=>{t(!1)},label:(a==null?void 0:a.name)||"Group",children:l(_c,{header:n(i1,{secondary:!0,titleElement:l(wc,{children:[a==null?void 0:a.name," (",R.length<f.length?`${R.length} of ${f.length}`:f.length,")",n("span",{children:o})]}),actions:l(G,{children:[n(w,{condition:!d,show:l(G,{children:[n(D1,{initialValue:m,onChange:g,hasFilters:!0,getSearchContext:S}),n(i1.Divider,{})]})}),n(z1,{permission:k1,projectId:r,tooltipProps:{title:"Edit group access"},onClick:i,children:n(xt,{})}),n(z1,{permission:k1,projectId:r,tooltipProps:{title:"Remove group access"},onClick:s,children:n(f2,{})})]}),children:n(w,{condition:d,show:n(D1,{initialValue:m,onChange:g,hasFilters:!0,getSearchContext:S})})}),children:[n(ue,{value:C(m),children:n(bt,{rows:R,headerGroups:b,prepareRow:v})}),n(w,{condition:R.length===0,show:n(w,{condition:(m==null?void 0:m.length)>0,show:l(S1,{children:["No users found matching “",m,"” in this group."]}),elseShow:n(S1,{children:"This group is empty. Get started by adding a user to the group."})})})]})})},Ec=({permissions:e})=>n(G,{children:e==null?void 0:e.filter(t=>!t.environment).map(t=>t.displayName).sort().map(t=>n("p",{children:t},t))}),Ac=({environment:e,permissions:t})=>n(G,{children:[...new Set(t.filter(a=>a.environment===e).map(a=>a.displayName))].sort().map(a=>n("p",{children:a},`${e}-${a}`))}),kc=h("div",{shouldForwardProp:e=>e!=="roleId"&&e!=="popover"&&e!=="sx"})(({theme:e,popover:t})=>({width:"100%",maxWidth:e.spacing(50),padding:e.spacing(3),backgroundColor:t?e.palette.background.paper:e.palette.neutral.light,color:e.palette.text.secondary,fontSize:e.fontSizes.smallBody,borderRadius:e.shape.borderRadiusMedium})),Wt=h("div")(({theme:e})=>({"& p:last-child":{marginBottom:e.spacing(2)}})),v3=h("p")(({theme:e})=>({color:e.palette.text.primary,fontSize:e.fontSizes.smallBody,fontWeight:e.fontWeight.bold,marginBottom:e.spacing(2)})),y3=h("p")(({theme:e})=>({color:e.palette.text.primary,fontSize:e.fontSizes.smallBody,marginBottom:e.spacing(1)})),Nn=u.forwardRef(({roleId:e,projectId:t,className:a,sx:r,...o},i)=>{var g;const{role:s}=mr(e.toString()),{access:c}=ye(t),d=c==null?void 0:c.roles.find(f=>f.id===e),p=u.useMemo(()=>{var C;const f=new Set;return(C=s.permissions)==null||C.filter(S=>S.environment).forEach(S=>{f.add(S.environment)}),[...f].sort()},[s]),m=u.useMemo(()=>{var f;return(f=s.permissions)==null?void 0:f.filter(C=>!C.environment)},[s]);return n(kc,{className:a,sx:r,...o,ref:i,children:n(w,{condition:((g=s.permissions)==null?void 0:g.length)>0,show:l(G,{children:[n(w,{condition:!!(m!=null&&m.length),show:l(G,{children:[n(v3,{children:"Project permissions"}),n(Wt,{children:n(Ec,{permissions:s.permissions})})]})}),n(w,{condition:!!p.length,show:l(G,{children:[n(v3,{children:"Environment permissions"}),p.map(f=>l("div",{children:[n(y3,{children:f}),n(Wt,{children:n(Ac,{environment:f,permissions:s.permissions})})]},f))]})})]}),elseShow:l(G,{children:[n(y3,{children:d==null?void 0:d.name}),n(Wt,{children:d==null?void 0:d.description})]})})})}),Dc=h("form")(()=>({display:"flex",flexDirection:"column",height:"100%"})),b3=h("p")(({theme:e})=>({color:e.palette.text.secondary,marginBottom:e.spacing(1)})),C3=h("div")(({theme:e})=>({"& > div:first-of-type":{width:"100%",maxWidth:e.spacing(50),marginBottom:e.spacing(2)}})),Rc=h("div")(({theme:e})=>({marginTop:e.spacing(6),display:"flex",justifyContent:"flex-end"})),Fc=h(l1)(({theme:e})=>({marginLeft:e.spacing(3)})),Pc=h("div")(({theme:e})=>({display:"flex",flexDirection:"column","& > span:last-of-type":{color:e.palette.text.secondary}})),Zc=h("div")(({theme:e})=>({display:"flex",flexDirection:"column","& > span:first-of-type":{color:e.palette.text.secondary}})),Ic=h("div")(({theme:e})=>({display:"flex",flexDirection:"column","& > span:last-of-type":{fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary}})),Z2=({selected:e,accesses:t,users:a,serviceAccounts:r,groups:o,roles:i})=>{const{uiConfig:s}=p1(),{flags:c}=s,d=c.UG?"user / group":"user",p=Y("projectId"),{refetchProjectAccess:m}=ye(p),{addAccessToProject:g,changeUserRole:f,changeGroupRole:C,loading:S}=De(),b=!!e,{setToastData:R,setToastApiError:v}=u1(),F=T1(),T=[...o.filter(y=>b||!t.some(({entity:{id:k},type:I})=>y.id===k&&I===K.GROUP)).map(y=>({id:y.id,entity:y,type:K.GROUP})),...a.filter(y=>b||!t.some(({entity:{id:k},type:I})=>y.id===k&&I===K.USER)).sort((y,k)=>{const I=y.name||y.username||"",q=k.name||k.username||"";return I.localeCompare(q)}).map(y=>({id:y.id,entity:y,type:K.USER})),...r.filter(y=>b||!t.some(({entity:{id:k},type:I})=>y.id===k&&I===K.SERVICE_ACCOUNT)).sort((y,k)=>{const I=y.name||y.username||"",q=k.name||k.username||"";return I.localeCompare(q)}).map(y=>({id:y.id,entity:y,type:K.SERVICE_ACCOUNT}))],[j,M]=u.useState(()=>T.filter(({id:y,type:k})=>y===(e==null?void 0:e.entity.id)&&k===(e==null?void 0:e.type))),[_,D]=u.useState(i.find(({id:y})=>y===(e==null?void 0:e.entity.roleId))??null),P={users:j==null?void 0:j.filter(({type:y})=>y===K.USER||y===K.SERVICE_ACCOUNT).map(({id:y})=>({id:y})),groups:j==null?void 0:j.filter(({type:y})=>y===K.GROUP).map(({id:y})=>({id:y}))},B=async y=>{if(y.preventDefault(),!!L)try{b?(e==null?void 0:e.type)===K.USER||(e==null?void 0:e.type)===K.SERVICE_ACCOUNT?await f(p,_.id,e.entity.id):(e==null?void 0:e.type)===K.GROUP&&await C(p,_.id,e.entity.id):await g(p,_.id,P),m(),F(V1),R({title:`${j.length} ${j.length===1?"access":"accesses"} ${b?"edited":"assigned"} successfully`,type:"success"})}catch(k){v(h1(k))}},V=()=>b?`curl --location --request ${b?"PUT":"POST"} '${s.unleashUrl}/api/admin/projects/${p}/${(e==null?void 0:e.type)===K.USER||(e==null?void 0:e.type)===K.SERVICE_ACCOUNT?"users":"groups"}/${e==null?void 0:e.entity.id}/roles/${_==null?void 0:_.id}' \\
|
|
3
|
-
--header 'Authorization: INSERT_API_KEY'`:`curl --location --request ${b?"PUT":"POST"} '${s.unleashUrl}/api/admin/projects/${p}/role/${_==null?void 0:_.id}/access' \\
|
|
4
|
-
--header 'Authorization: INSERT_API_KEY' \\
|
|
5
|
-
--header 'Content-Type: application/json' \\
|
|
6
|
-
--data-raw '${JSON.stringify(P,void 0,2)}'`,O=y=>{if(y&&y.rootRole)return"This group has an Admin or Editor role associated with it. Groups with a root role association cannot be assigned to projects, and users in this group already have the role applied globally."},J=(y,k,I)=>{let q,x;return k.type===K.GROUP?q=k.entity:x=k.entity,n(Y1,{title:O(q),children:n("span",{children:l("li",{...y,children:[n(u2,{icon:n(ua,{fontSize:"small"}),checkedIcon:n(pa,{fontSize:"small"}),style:{marginRight:8},checked:I}),n(w,{condition:k.type===K.GROUP,show:n("span",{children:l(Pc,{children:[n("span",{children:q==null?void 0:q.name}),l("span",{children:[q==null?void 0:q.userCount," users"]})]})}),elseShow:l(Zc,{children:[n("span",{children:(x==null?void 0:x.name)||(x==null?void 0:x.username)}),n("span",{children:x!=null&&x.name&&(x!=null&&x.username)?x==null?void 0:x.username:x==null?void 0:x.email})]})})]})})})},N=(y,k)=>n("li",{...y,children:l(Ic,{children:[n("span",{children:k.name}),n("span",{children:k.description})]})}),L=j.length>0&&_;return n(U1,{open:!0,onClose:()=>F(V1),label:`${b?"Edit":"Assign"} ${d} access`,children:n(y2,{loading:S,modal:!0,title:`${b?"Edit":"Assign"} ${d} access`,description:"Custom project roles allow you to fine-tune access rights and permissions within your projects.",documentationLink:"https://docs.getunleash.io/how-to/how-to-create-and-assign-custom-project-roles",documentationLinkLabel:"Project access documentation",formatApiCode:V,children:l(Dc,{onSubmit:B,children:[l("div",{children:[l(b3,{"data-testid":sa,children:["Select the ",d]}),n(C3,{children:n(B2,{"data-testid":ca,size:"small",multiple:!0,openOnFocus:!0,limitTags:10,disableCloseOnSelect:!0,disabled:b,value:j,getOptionDisabled:y=>y.type===K.GROUP?!!y.entity.rootRole:!1,onChange:(y,k,I)=>{y.type==="keydown"&&y.key==="Backspace"&&I==="removeOption"||M(k)},options:T,groupBy:y=>y.type,renderOption:(y,k,{selected:I})=>J(y,k,I),getOptionLabel:y=>{if(y.type===K.USER||y.type===K.SERVICE_ACCOUNT){const k=y.entity;return k.email||k.name||k.username||""}else return y.entity.name},filterOptions:(y,{inputValue:k})=>y.filter(I=>{if(I.type===K.USER||I.type===K.SERVICE_ACCOUNT){const q=I.entity;return Ne(k,q.email)||Ne(k,q.name)||Ne(k,q.username)}return Ne(k,I.entity.name)}),isOptionEqualToValue:(y,k)=>y.type===k.type&&y.entity.id===k.entity.id,renderInput:y=>n(e2,{...y,label:j1(d)})})}),n(b3,{children:"Select the role to assign for this project"}),n(C3,{children:n(B2,{"data-testid":la,size:"small",openOnFocus:!0,value:_,onChange:(y,k)=>D(k),options:i,renderOption:N,getOptionLabel:y=>y.name,renderInput:y=>n(e2,{...y,label:"Role"})})}),n(w,{condition:!!(_!=null&&_.id),show:n(Nn,{roleId:_==null?void 0:_.id,projectId:p})})]}),l(Rc,{children:[n(l1,{"data-testid":da,type:"submit",variant:"contained",color:"primary",disabled:!L,children:b?"Save":`Assign ${d}`}),n(Fc,{onClick:()=>F(V1),children:"Cancel"})]})]})})})},I2=()=>{var r,o;const{data:e,error:t,mutate:a}=de(K1("api/admin/user-admin/access"),jc);return{users:(r=e==null?void 0:e.users)==null?void 0:r.filter(({accountType:i})=>!i||i==="User"),serviceAccounts:(o=e==null?void 0:e.users)==null?void 0:o.filter(({accountType:i})=>i==="Service Account"),groups:e==null?void 0:e.groups,loading:!t&&!e,refetch:()=>a(),error:t}},jc=e=>fetch(e).then(J1("Access")).then(t=>t.json()),Oc=()=>{const e=Y("projectId"),{access:t}=ye(e),{users:a,serviceAccounts:r,groups:o}=I2();return!t||!a||!r||!o?null:n(Z2,{accesses:t.rows,users:a,serviceAccounts:r,groups:o,roles:t.roles})},$c=()=>{const e=Y("projectId"),t=Y("userId"),{access:a}=ye(e),{users:r,serviceAccounts:o,groups:i}=I2();if(!a||!r||!o||!i)return null;const s=a.rows.find(c=>c.entity.id===Number(t)&&c.type!==K.GROUP);return n(Z2,{accesses:a.rows,selected:s,users:r,serviceAccounts:o,groups:i,roles:a.roles})},Bc=()=>{const e=Y("projectId"),t=Y("groupId"),{access:a}=ye(e),{users:r,serviceAccounts:o,groups:i}=I2();if(!a||!r||!o||!i)return null;const s=a.rows.find(c=>c.entity.id===Number(t)&&c.type===K.GROUP);return n(Z2,{accesses:a.rows,selected:s,users:r,serviceAccounts:o,groups:i,roles:a.roles})},zc=({roleId:e,projectId:t,value:a,emptyText:r})=>a?n(o1,{children:n(gn,{tooltip:n(Nn,{roleId:e,projectId:t,popover:!0}),tooltipProps:{maxWidth:500,maxHeight:600},children:a})}):n(o1,{children:r}),Vc={id:"added"},{value:S3,setValue:Mc}=pt("ProjectAccess:v1",Vc),Lc=h("div")(({theme:e})=>({display:"inline-flex",alignItems:"center",flexWrap:"wrap",marginLeft:e.spacing(1)})),Hc=h(v2)(({theme:e})=>({marginRight:e.spacing(-3.5)})),Wc=h(v2)(({theme:e})=>({outline:`${e.spacing(.25)} solid ${e.palette.background.paper}`})),Nc=["imageUrl","role","added","lastLogin"],qc=["lastLogin","added"],Uc=()=>{var q;const e=Y("projectId"),{uiConfig:t}=p1(),{flags:a}=t,r=a.UG?"user / group":"user",o=T1(),i=m1(),s=b1(i.breakpoints.down("md")),c=b1(i.breakpoints.down("lg")),{setToastData:d}=u1(),{access:p,refetchProjectAccess:m}=ye(e),{removeUserFromRole:g,removeGroupFromRole:f}=De(),[C,S]=u.useState(!1),[b,R]=u.useState(!1),[v,F]=u.useState(),T=u.useMemo(()=>[{Header:"Avatar",accessor:"imageUrl",Cell:({row:{original:x}})=>{var W;return l(Lc,{children:[n(w,{condition:x.type===K.GROUP,show:n(Hc,{})}),n(Wc,{user:x.entity,children:(W=x.entity.users)==null?void 0:W.length})]})},maxWidth:85,disableSortBy:!0},{id:"name",Header:"Name",accessor:x=>x.entity.name||"",Cell:({value:x,row:{original:W}})=>{var c1,f1,v1;return n(w,{condition:W.type===K.GROUP,show:n(X3,{onClick:()=>{F(W),R(!0)},title:x,subtitle:`${(c1=W.entity.users)==null?void 0:c1.length} users`}),elseShow:n(Ae,{value:x,subtitle:((f1=W.entity)==null?void 0:f1.username)||((v1=W.entity)==null?void 0:v1.email)})})},minWidth:100,searchable:!0},{id:"username",Header:"Username",accessor:x=>{if(x.type!==K.GROUP){const W=x.entity;return W.username||W.email}return""},Cell:Ae,minWidth:100,searchable:!0},{id:"role",Header:"Role",accessor:x=>{var W;return(W=p==null?void 0:p.roles.find(({id:c1})=>c1===x.entity.roleId))==null?void 0:W.name},Cell:({value:x,row:{original:W}})=>n(zc,{roleId:W.entity.roleId,projectId:e,value:x}),maxWidth:125,filterName:"role"},{id:"added",Header:"Added",accessor:x=>x.entity.addedAt||"",Cell:({value:x})=>n(tt,{value:x,emptyText:"Never"}),sortType:"date",maxWidth:130},{id:"lastLogin",Header:"Last login",accessor:x=>x.type!==K.GROUP?x.entity.seenAt||"":x.entity.users.map(({seenAt:c1})=>c1).sort().reverse()[0],Cell:({value:x})=>n(tt,{value:x,emptyText:"Never"}),sortType:"date",maxWidth:130},{id:"actions",Header:"Actions",disableSortBy:!0,align:"center",maxWidth:150,Cell:({row:{original:x}})=>l(l2,{children:[n(z1,{"data-testid":ha,component:R1,permission:k1,projectId:e,to:`edit/${x.type===K.GROUP?"group":"user"}/${x.entity.id}`,disabled:(p==null?void 0:p.rows.length)===1,tooltipProps:{title:(p==null?void 0:p.rows.length)===1?"Cannot edit access. A project must have at least one owner":"Edit access"},children:n(xt,{})}),n(z1,{"data-testid":ma,permission:k1,projectId:e,onClick:()=>{F(x),S(!0)},disabled:(p==null?void 0:p.rows.length)===1,tooltipProps:{title:(p==null?void 0:p.rows.length)===1?"Cannot remove access. A project must have at least one owner":"Remove access"},children:n(f2,{})})]})}],[p,e]),[j,M]=h2(),[_]=u.useState(()=>({sortBy:[{id:j.get("sort")||S3.id,desc:j.has("order")?j.get("order")==="desc":S3.desc}],globalFilter:j.get("search")||""})),[D,P]=u.useState(_.globalFilter),{data:B,getSearchText:V,getSearchContext:O}=yt(T,D,(p==null?void 0:p.rows)??[]),{headerGroups:J,rows:N,prepareRow:L,setHiddenColumns:y,state:{sortBy:k}}=t1.useTable({columns:T,data:B,initialState:_,sortTypes:Oe,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0,defaultColumn:{Cell:o1}},t1.useSortBy,t1.useFlexLayout);Ct([{condition:s,columns:Nc},{condition:c,columns:qc}],y,T),u.useEffect(()=>{const x={};x.sort=k[0].id,k[0].desc&&(x.order="desc"),D&&(x.search=D),M(x,{replace:!0}),Mc({id:k[0].id,desc:k[0].desc||!1})},[k,D,M]);const I=async x=>{if(!x)return;const{id:W,roleId:c1}=x.entity;let f1=x.entity.name;if(x.type!==K.GROUP){const v1=x.entity;f1=f1||v1.email||v1.username||""}try{x.type!==K.GROUP?await g(e,c1,W):await f(e,c1,W),m(),d({type:"success",title:`${f1||`The ${r}`} has been removed from project`})}catch(v1){d({type:"error",title:v1.message||`Server problems when removing ${r}.`})}S(!1)};return l(d1,{header:n(i1,{secondary:!0,title:`Access (${N.length<B.length?`${N.length} of ${B.length}`:B.length})`,actions:l(G,{children:[n(w,{condition:!s,show:l(G,{children:[n(D1,{initialValue:D,onChange:P,hasFilters:!0,getSearchContext:O}),n(i1.Divider,{})]})}),l(J3,{onClick:()=>o("create"),maxWidth:"700px",Icon:en,permission:k1,projectId:e,"data-testid":ga,children:["Assign ",r]})]}),children:n(w,{condition:s,show:n(D1,{initialValue:D,onChange:P,hasFilters:!0,getSearchContext:O})})}),children:[n(ue,{value:V(D),children:n(bt,{rows:N,headerGroups:J,prepareRow:L})}),n(w,{condition:N.length===0,show:n(w,{condition:(D==null?void 0:D.length)>0,show:l(S1,{children:["No access found matching “",D,"”"]}),elseShow:l(S1,{children:["No access available. Get started by assigning a"," ",r,"."]})})}),l(fe,{children:[n(X,{path:"create",element:n(Oc,{})}),n(X,{path:"edit/group/:groupId",element:n(Bc,{})}),n(X,{path:"edit/user/:userId",element:n($c,{})})]}),n(G1,{open:C,onClick:()=>I(v),onClose:()=>{S(!1)},title:`Really remove ${r} from this project?`}),n(Tc,{open:b,setOpen:R,group:v==null?void 0:v.entity,projectId:e,subtitle:`Role: ${(q=p==null?void 0:p.roles.find(({id:x})=>x===(v==null?void 0:v.entity.roleId)))==null?void 0:q.name}`,onEdit:()=>{o(`edit/group/${v==null?void 0:v.entity.id}`)},onRemove:()=>{R(!1),S(!0)}})]})},Gc=()=>{const e=Y("projectId"),t=F1(e),{hasAccess:a}=u.useContext(X1),{isOss:r}=p1();return x1(`Project access – ${t}`),r()?n(d1,{header:n(i1,{title:"Access"}),sx:{justifyContent:"center"},children:n(wt,{feature:"access"})}):a(k1,e)?n(Uc,{}):n(d1,{header:n(i1,{title:"Access"}),children:n(w1,{severity:"error",children:"You need project owner permissions to access this section."})})},Kc=e=>u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:860,height:298,fill:"none",...e},u.createElement("rect",{width:860,height:298,fill:"#F2F2F5",rx:12}),u.createElement("rect",{width:109,height:23,x:515.5,y:114.5,fill:"#F4FAEB",rx:3.5}),u.createElement("g",{clipPath:"url(#a)"},u.createElement("path",{fill:"#68A611",d:"m537.75 129.128-2.603-2.603a.747.747 0 1 0-1.057 1.058l3.135 3.135a.747.747 0 0 0 1.057 0l7.935-7.935a.747.747 0 1 0-1.057-1.058l-7.41 7.403Z"})),u.createElement("path",{fill:"#3B6600",d:"m557.639 122.09 3.656 7.91h-1.91l-.598-1.465h-3.105l-.598 1.465h-1.91l3.656-7.91h.809Zm-.399 2.66-.984 2.402h1.969l-.985-2.402Zm8.473-.82c.469 0 .902.121 1.301.363.406.234.73.582.972 1.043.25.453.375 1.008.375 1.664 0 .656-.125 1.223-.375 1.699a2.675 2.675 0 0 1-.996 1.102c-.414.25-.875.375-1.383.375-.328 0-.656-.078-.984-.235a2.799 2.799 0 0 1-.809-.609v3.48h-1.488v-8.73h1.488v.996c.172-.32.422-.59.75-.808a1.97 1.97 0 0 1 1.149-.34Zm-.375 1.488c-.266 0-.516.07-.75.211a1.557 1.557 0 0 0-.574.574c-.141.25-.207.551-.2.902v.856c.211.219.438.402.68.551.25.14.52.211.809.211.304 0 .57-.082.797-.246.226-.165.402-.375.527-.633.125-.266.187-.547.187-.844 0-.445-.136-.82-.41-1.125-.265-.305-.621-.457-1.066-.457Zm7.828-1.488c.469 0 .902.121 1.301.363.406.234.73.582.972 1.043.25.453.375 1.008.375 1.664 0 .656-.125 1.223-.375 1.699a2.675 2.675 0 0 1-.996 1.102c-.414.25-.875.375-1.382.375-.329 0-.657-.078-.985-.235a2.78 2.78 0 0 1-.808-.609v3.48h-1.489v-8.73h1.489v.996c.171-.32.421-.59.75-.808.328-.227.711-.34 1.148-.34Zm-.375 1.488c-.266 0-.516.07-.75.211a1.557 1.557 0 0 0-.574.574c-.141.25-.207.551-.199.902v.856c.211.219.437.402.679.551.25.14.52.211.809.211.305 0 .57-.082.797-.246.226-.165.402-.375.527-.633a1.96 1.96 0 0 0 .188-.844c0-.445-.137-.82-.411-1.125-.265-.305-.621-.457-1.066-.457Zm8.168.328a1.576 1.576 0 0 0-.785-.211 1.16 1.16 0 0 0-.856.34 3.196 3.196 0 0 0-.597.82V130h-1.489v-5.918h1.489v1.113c.203-.351.441-.644.715-.879.281-.234.597-.351.949-.351.211 0 .402.035.574.105v1.676Zm3.902-1.816c.578 0 1.106.14 1.582.422.477.273.86.648 1.149 1.125.297.468.445.996.445 1.582 0 .586-.148 1.113-.445 1.582a3.31 3.31 0 0 1-1.149 1.125 3.125 3.125 0 0 1-1.582.41 3.17 3.17 0 0 1-1.582-.41 3.315 3.315 0 0 1-1.148-1.125 2.954 2.954 0 0 1-.434-1.582c0-.586.145-1.114.434-1.582a3.165 3.165 0 0 1 1.148-1.125 3.09 3.09 0 0 1 1.582-.422Zm0 1.441c-.281 0-.543.067-.785.199a1.539 1.539 0 0 0-.586.575c-.14.25-.211.554-.211.914 0 .359.071.664.211.914.149.25.344.441.586.574.242.125.504.187.785.187.282 0 .543-.062.785-.187.243-.133.438-.324.586-.574.149-.25.223-.555.223-.914 0-.36-.074-.664-.223-.914a1.525 1.525 0 0 0-.586-.575 1.612 1.612 0 0 0-.785-.199Zm10.067-1.289L592.127 130h-.949l-2.766-5.918h1.734l1.489 3.668 1.558-3.668h1.735Zm3.328-.152c.578 0 1.074.125 1.488.375.422.25.742.597.961 1.043.227.437.34.945.34 1.523v.633h-4.289c.078.398.273.719.586.961.312.242.695.363 1.148.363.43 0 .821-.086 1.172-.258.352-.172.633-.347.844-.527l-.012 1.383c-.187.164-.469.332-.844.504a2.952 2.952 0 0 1-1.218.246 3.283 3.283 0 0 1-1.606-.399 3.14 3.14 0 0 1-1.148-1.089c-.282-.461-.422-.989-.422-1.583 0-.578.129-1.105.387-1.582a3.071 3.071 0 0 1 1.066-1.148 2.759 2.759 0 0 1 1.547-.445Zm-.035 1.3c-.367 0-.676.114-.926.34-.25.227-.422.532-.516.914h2.836c-.031-.422-.187-.734-.469-.937a1.506 1.506 0 0 0-.925-.317Zm9.808-3.668V130h-1.488v-.996c-.172.32-.422.598-.75.832-.328.226-.711.34-1.148.34-.477 0-.918-.121-1.325-.364-.398-.242-.718-.593-.961-1.054-.242-.461-.363-1.02-.363-1.676 0-.656.121-1.219.363-1.687.25-.469.582-.829.997-1.079a2.625 2.625 0 0 1 1.394-.386c.32 0 .645.074.973.222.328.149.601.348.82.598v-3.188h1.488Zm-2.976 3.833c-.313 0-.582.082-.809.246-.219.156-.39.363-.515.621-.125.25-.188.523-.188.82 0 .445.133.824.398 1.137.274.312.633.469 1.079.469.265 0 .511-.071.738-.211a1.56 1.56 0 0 0 .562-.586c.149-.258.223-.567.223-.926v-.844a2.44 2.44 0 0 0-.691-.527 1.63 1.63 0 0 0-.797-.199Z"}),u.createElement("rect",{width:109,height:23,x:515.5,y:114.5,stroke:"#B0D182",rx:3.5}),u.createElement("rect",{width:141,height:23,x:680.5,y:114.5,fill:"#F4FAEB",rx:3.5}),u.createElement("path",{fill:"#68A611",d:"m690.692 122.251 1.058-1.057 2.557 2.557-1.057 1.058-2.558-2.558Zm9.308 7.125v-2.625h-4.193l-4.057 4.058-1.057-1.058 4.499-4.5H700v-2.625l3.375 3.375-3.375 3.375Z"}),u.createElement("path",{fill:"#3B6600",d:"M715.097 121.304c.533 0 .995.076 1.384.228.389.144.728.343 1.016.597v1.777c-.204-.152-.415-.3-.635-.444a2.983 2.983 0 0 0-1.714-.495 2.67 2.67 0 0 0-1.384.368 2.735 2.735 0 0 0-1.358 2.412c0 .525.122.999.368 1.422.245.415.575.745.99.99a2.74 2.74 0 0 0 1.384.356c.567 0 1.041-.085 1.422-.254.389-.178.74-.394 1.054-.648v1.714a3.276 3.276 0 0 1-1.08.635 4.333 4.333 0 0 1-1.447.228 4.69 4.69 0 0 1-1.726-.317 4.617 4.617 0 0 1-1.435-.914 4.348 4.348 0 0 1-.978-1.409 4.47 4.47 0 0 1-.355-1.803c0-.66.119-1.261.355-1.803a4.2 4.2 0 0 1 .978-1.396 4.313 4.313 0 0 1 1.435-.914 4.54 4.54 0 0 1 1.726-.33Zm7.643 2.12c.651 0 1.197.22 1.637.66.441.44.661 1.1.661 1.98V130h-1.613l-.012-3.72c0-.431-.106-.753-.318-.965-.203-.211-.486-.317-.85-.317-.288 0-.559.093-.813.279a2.974 2.974 0 0 0-.635.661V130h-1.612v-9.141h1.612v3.644a3.32 3.32 0 0 1 .787-.736 2.016 2.016 0 0 1 1.156-.343Zm6.69 0c.347 0 .698.08 1.054.241.355.161.652.377.889.647v-.723h1.612V130h-1.612v-1.079a2.648 2.648 0 0 1-.813.901 2.13 2.13 0 0 1-1.244.368c-.516 0-.995-.131-1.435-.393-.431-.262-.778-.643-1.041-1.143-.262-.499-.393-1.104-.393-1.815 0-.711.131-1.32.393-1.828a2.95 2.95 0 0 1 1.079-1.168c.457-.28.961-.419 1.511-.419Zm.33 1.574c-.338 0-.63.089-.876.267a1.733 1.733 0 0 0-.558.673 2.027 2.027 0 0 0-.203.901c0 .482.143.893.431 1.231.296.339.686.508 1.168.508.288 0 .555-.076.8-.228a1.69 1.69 0 0 0 .609-.635c.161-.279.242-.614.242-1.003v-.914a2.864 2.864 0 0 0-.749-.584 1.77 1.77 0 0 0-.864-.216Zm6.818-1.409v.914a3.3 3.3 0 0 1 .787-.736 2.01 2.01 0 0 1 1.155-.343c.652 0 1.198.22 1.638.66.44.44.66 1.1.66 1.98V130h-1.612l-.013-3.72c0-.431-.106-.753-.318-.965-.203-.211-.486-.317-.85-.317-.288 0-.559.093-.813.279a2.947 2.947 0 0 0-.634.661V130h-1.613v-6.411h1.613Zm8.632-.165c.347 0 .699.08 1.054.241.356.161.652.377.889.647v-.723h1.612v6.246c0 .728-.161 1.341-.482 1.841a3.12 3.12 0 0 1-1.283 1.155 3.808 3.808 0 0 1-1.751.406c-.568 0-1.033-.084-1.397-.254a6.634 6.634 0 0 1-1.016-.584v-1.523c.195.118.398.245.61.381.22.135.465.25.736.343.279.093.601.139.965.139.381 0 .724-.072 1.028-.216.305-.143.542-.347.711-.609.178-.254.267-.546.267-.876v-1.117a2.638 2.638 0 0 1-.813.901 2.13 2.13 0 0 1-1.244.368c-.516 0-.994-.131-1.434-.393-.432-.262-.779-.643-1.041-1.143-.263-.499-.394-1.104-.394-1.815 0-.711.131-1.32.394-1.828.27-.508.63-.897 1.079-1.168.457-.28.96-.419 1.51-.419Zm.331 1.587c-.339 0-.631.089-.876.266a1.75 1.75 0 0 0-.559.673 1.965 1.965 0 0 0-.203.889c0 .482.144.893.431 1.231.297.33.686.495 1.168.495.288 0 .555-.072.8-.215a1.7 1.7 0 0 0 .61-.635c.16-.279.241-.614.241-1.003v-.914a2.62 2.62 0 0 0-.749-.571 1.766 1.766 0 0 0-.863-.216Zm8.01-1.587c.627 0 1.164.135 1.613.406.457.271.804.648 1.041 1.13.245.474.368 1.024.368 1.65v.686h-4.647c.085.432.296.779.635 1.041.339.262.753.393 1.244.393.466 0 .889-.093 1.27-.279.381-.186.685-.376.914-.571l-.013 1.498c-.203.178-.508.36-.914.546a3.197 3.197 0 0 1-1.32.266 3.557 3.557 0 0 1-1.74-.431 3.405 3.405 0 0 1-1.244-1.181c-.304-.499-.457-1.071-.457-1.714 0-.626.14-1.197.419-1.714.28-.516.665-.931 1.155-1.244a2.996 2.996 0 0 1 1.676-.482Zm-.038 1.409a1.44 1.44 0 0 0-1.003.368c-.271.246-.457.576-.558.99h3.072c-.034-.457-.203-.795-.508-1.015a1.633 1.633 0 0 0-1.003-.343Zm6.602-1.409c.398 0 .766.059 1.104.178.339.118.601.253.787.406v1.422a4.603 4.603 0 0 0-.749-.394 2.205 2.205 0 0 0-.901-.19c-.305 0-.546.067-.724.203-.177.135-.266.296-.266.482 0 .136.051.263.152.381.102.11.296.207.584.292l.724.241c.973.288 1.46.851 1.46 1.689 0 .398-.115.753-.343 1.066a2.27 2.27 0 0 1-.901.724 2.853 2.853 0 0 1-1.245.266c-.431 0-.85-.067-1.256-.203-.407-.135-.716-.283-.927-.444v-1.409c.161.11.355.216.584.317.228.102.465.186.711.254.245.059.469.089.673.089.321 0 .567-.055.736-.165a.563.563 0 0 0 .266-.495.431.431 0 0 0-.215-.381 2.91 2.91 0 0 0-.635-.279l-.787-.28c-.491-.16-.83-.389-1.016-.685-.186-.296-.279-.648-.279-1.054s.101-.757.305-1.054c.211-.304.503-.541.876-.711a2.95 2.95 0 0 1 1.282-.266Zm9.889 0c.347 0 .699.08 1.054.241.356.161.652.377.889.647v-.723h1.612V130h-1.612v-1.079a2.638 2.638 0 0 1-.813.901 2.13 2.13 0 0 1-1.244.368c-.516 0-.994-.131-1.434-.393-.432-.262-.779-.643-1.041-1.143-.263-.499-.394-1.104-.394-1.815 0-.711.131-1.32.394-1.828.27-.508.63-.897 1.079-1.168.457-.28.96-.419 1.51-.419Zm.33 1.574c-.338 0-.63.089-.876.267a1.742 1.742 0 0 0-.558.673 2.027 2.027 0 0 0-.203.901c0 .482.144.893.431 1.231.297.339.686.508 1.168.508.288 0 .555-.076.8-.228a1.7 1.7 0 0 0 .61-.635c.16-.279.241-.614.241-1.003v-.914a2.848 2.848 0 0 0-.749-.584 1.767 1.767 0 0 0-.864-.216Zm8.874-1.574c.508 0 .978.131 1.41.393.44.254.791.631 1.053 1.13.271.491.407 1.092.407 1.803 0 .711-.136 1.325-.407 1.841a2.897 2.897 0 0 1-1.079 1.193 2.84 2.84 0 0 1-1.498.406c-.355 0-.711-.084-1.066-.253a3.017 3.017 0 0 1-.876-.661v3.771h-1.612v-9.458h1.612v1.079a2.43 2.43 0 0 1 .812-.876 2.141 2.141 0 0 1 1.244-.368Zm-.406 1.612c-.288 0-.558.076-.812.229a1.68 1.68 0 0 0-.622.622c-.153.271-.225.596-.216.977v.927c.228.237.474.436.736.597.271.152.563.228.876.228.33 0 .618-.089.863-.266a1.81 1.81 0 0 0 .572-.686c.135-.288.203-.592.203-.914 0-.482-.148-.889-.444-1.219-.288-.33-.673-.495-1.156-.495Zm8.481-1.612c.508 0 .977.131 1.409.393.44.254.791.631 1.054 1.13.27.491.406 1.092.406 1.803 0 .711-.136 1.325-.406 1.841a2.903 2.903 0 0 1-1.079 1.193 2.843 2.843 0 0 1-1.499.406c-.355 0-.71-.084-1.066-.253a3.017 3.017 0 0 1-.876-.661v3.771h-1.612v-9.458h1.612v1.079c.186-.347.457-.639.813-.876.355-.245.77-.368 1.244-.368Zm-.407 1.612c-.287 0-.558.076-.812.229a1.686 1.686 0 0 0-.622.622c-.152.271-.224.596-.216.977v.927c.229.237.474.436.736.597.271.152.563.228.876.228.33 0 .618-.089.864-.266.245-.178.436-.407.571-.686.135-.288.203-.592.203-.914 0-.482-.148-.889-.444-1.219-.288-.33-.673-.495-1.156-.495Zm6.424-4.177V130h-1.612v-9.141h1.612Zm3.314-.609c.304 0 .567.11.787.33a1.048 1.048 0 0 1 0 1.524c-.22.22-.483.33-.787.33-.305 0-.567-.11-.787-.33a1.067 1.067 0 0 1-.318-.762c0-.296.106-.55.318-.762.22-.22.482-.33.787-.33Zm.939 3.339V130h-1.612v-5.04h-1.028v-1.371h2.64Zm4.837-.165c.626 0 1.164.135 1.612.406.457.271.804.648 1.041 1.13.246.474.369 1.024.369 1.65v.686h-4.647c.085.432.296.779.635 1.041.338.262.753.393 1.244.393.466 0 .889-.093 1.27-.279.38-.186.685-.376.914-.571l-.013 1.498c-.203.178-.508.36-.914.546a3.197 3.197 0 0 1-1.32.266 3.557 3.557 0 0 1-1.74-.431 3.405 3.405 0 0 1-1.244-1.181c-.305-.499-.457-1.071-.457-1.714 0-.626.14-1.197.419-1.714a3.328 3.328 0 0 1 1.155-1.244 2.996 2.996 0 0 1 1.676-.482Zm-.038 1.409a1.44 1.44 0 0 0-1.003.368c-.271.246-.457.576-.558.99h3.072c-.034-.457-.203-.795-.508-1.015a1.633 1.633 0 0 0-1.003-.343Zm10.626-3.974V130h-1.612v-1.079a2.638 2.638 0 0 1-.813.901 2.13 2.13 0 0 1-1.244.368c-.516 0-.994-.131-1.434-.393-.432-.262-.779-.643-1.042-1.143-.262-.499-.393-1.104-.393-1.815 0-.711.131-1.32.393-1.828a2.946 2.946 0 0 1 1.08-1.168c.457-.28.96-.419 1.51-.419.347 0 .699.08 1.054.241.356.161.652.377.889.647v-3.453h1.612Zm-3.225 4.152c-.338 0-.63.089-.876.266-.237.17-.423.394-.558.673a1.952 1.952 0 0 0-.203.889c0 .482.144.893.431 1.231.297.339.686.508 1.168.508.288 0 .555-.076.8-.228a1.7 1.7 0 0 0 .61-.635c.16-.279.241-.614.241-1.003v-.914a2.62 2.62 0 0 0-.749-.571 1.767 1.767 0 0 0-.864-.216Z"}),u.createElement("rect",{width:141,height:23,x:680.5,y:114.5,stroke:"#B0D182",rx:3.5}),u.createElement("rect",{width:141,height:23,x:680.5,y:177.5,fill:"#FFF2F3",rx:3.5}),u.createElement("path",{fill:"#D93644",d:"M725.724 184.283a.745.745 0 0 0-1.057 0l-3.668 3.66-3.667-3.668a.748.748 0 0 0-1.058 1.058l3.668 3.667-3.668 3.668a.747.747 0 1 0 1.058 1.057l3.667-3.667 3.668 3.667a.745.745 0 0 0 1.057 0 .745.745 0 0 0 0-1.057L722.057 189l3.667-3.667a.752.752 0 0 0 0-1.05Z"}),u.createElement("path",{fill:"#D11525",d:"M738.973 184.973c.492 0 .918.07 1.277.211.359.132.672.316.938.55v1.641a11.253 11.253 0 0 0-.586-.41 2.99 2.99 0 0 0-.692-.328 2.745 2.745 0 0 0-.89-.129c-.469 0-.895.113-1.278.34a2.558 2.558 0 0 0-.914.914c-.226.383-.34.82-.34 1.312 0 .485.114.922.34 1.313.227.383.531.687.914.914.383.219.809.328 1.278.328.523 0 .96-.078 1.312-.234.359-.165.684-.364.973-.598v1.582a3.048 3.048 0 0 1-.996.586c-.399.14-.844.211-1.336.211a4.347 4.347 0 0 1-1.594-.293 4.263 4.263 0 0 1-1.324-.844 4.01 4.01 0 0 1-.903-1.301 4.118 4.118 0 0 1-.328-1.664c0-.609.11-1.164.328-1.664.219-.5.52-.93.903-1.289a4.007 4.007 0 0 1 1.324-.844 4.195 4.195 0 0 1 1.594-.304Zm6.117 1.957c.32 0 .644.074.972.222.329.149.602.348.821.598v-.668h1.488V193h-1.488v-.996c-.172.32-.422.598-.75.832-.328.226-.711.34-1.149.34-.476 0-.918-.121-1.324-.364a2.627 2.627 0 0 1-.961-1.054c-.242-.461-.363-1.02-.363-1.676 0-.656.121-1.219.363-1.687a2.72 2.72 0 0 1 .996-1.079 2.631 2.631 0 0 1 1.395-.386Zm.305 1.453a1.34 1.34 0 0 0-.809.246 1.606 1.606 0 0 0-.516.621 1.882 1.882 0 0 0-.187.832c0 .445.133.824.398 1.137.274.312.633.469 1.078.469.266 0 .512-.071.739-.211a1.56 1.56 0 0 0 .562-.586c.149-.258.223-.567.223-.926v-.844a2.652 2.652 0 0 0-.692-.539 1.624 1.624 0 0 0-.796-.199Zm6.293-1.301v.844c.179-.242.421-.469.726-.68a1.862 1.862 0 0 1 1.066-.316c.602 0 1.106.203 1.512.609.406.406.61 1.016.61 1.828V193h-1.489l-.011-3.434c0-.398-.098-.695-.293-.89-.188-.196-.45-.293-.786-.293-.265 0-.515.086-.75.258a2.707 2.707 0 0 0-.585.609V193h-1.489v-5.918h1.489Zm8.32-.152c.437 0 .797.07 1.078.211.281.14.504.277.668.41v1.371a3.03 3.03 0 0 0-.692-.375c-.25-.102-.558-.152-.925-.152a1.641 1.641 0 0 0-1.43.82c-.148.25-.223.535-.223.855 0 .485.157.883.469 1.196.313.312.707.468 1.184.468.367 0 .675-.046.925-.14.258-.102.489-.227.692-.375v1.359a2.998 2.998 0 0 1-.668.41c-.281.125-.641.188-1.078.188-.602 0-1.137-.141-1.606-.422a3.257 3.257 0 0 1-1.101-1.137 3.12 3.12 0 0 1-.399-1.547c0-.414.075-.808.223-1.183.156-.375.375-.707.656-.996.281-.297.61-.532.985-.703a2.99 2.99 0 0 1 1.242-.258Zm5.66 0c.578 0 1.074.125 1.488.375.422.25.742.597.961 1.043.227.437.34.945.34 1.523v.633h-4.289c.078.398.273.719.586.961.312.242.695.363 1.148.363.43 0 .821-.086 1.172-.258.352-.172.633-.347.844-.527l-.012 1.383c-.187.164-.468.332-.844.504a2.952 2.952 0 0 1-1.218.246 3.283 3.283 0 0 1-1.606-.399 3.14 3.14 0 0 1-1.148-1.089c-.281-.461-.422-.989-.422-1.583 0-.578.129-1.105.387-1.582a3.071 3.071 0 0 1 1.066-1.148 2.759 2.759 0 0 1 1.547-.445Zm-.035 1.3c-.367 0-.676.114-.926.34-.25.227-.422.532-.516.914h2.836c-.031-.422-.187-.734-.468-.937a1.511 1.511 0 0 0-.926-.317Zm5.672-3.668V193h-1.489v-8.438h1.489Zm3.304 0V193h-1.488v-8.438h1.488Zm4.407 2.368c.578 0 1.074.125 1.488.375.422.25.742.597.961 1.043.226.437.34.945.34 1.523v.633h-4.289c.078.398.273.719.586.961.312.242.695.363 1.148.363.43 0 .82-.086 1.172-.258.351-.172.633-.347.844-.527l-.012 1.383c-.188.164-.469.332-.844.504a2.953 2.953 0 0 1-1.219.246 3.277 3.277 0 0 1-1.605-.399 3.132 3.132 0 0 1-1.148-1.089c-.282-.461-.422-.989-.422-1.583 0-.578.129-1.105.386-1.582a3.082 3.082 0 0 1 1.067-1.148 2.759 2.759 0 0 1 1.547-.445Zm-.036 1.3c-.367 0-.675.114-.925.34-.25.227-.422.532-.516.914h2.836c-.031-.422-.187-.734-.469-.937a1.51 1.51 0 0 0-.926-.317Zm9.809-3.668V193h-1.488v-.996c-.172.32-.422.598-.75.832-.328.226-.711.34-1.149.34-.476 0-.918-.121-1.324-.364a2.627 2.627 0 0 1-.961-1.054c-.242-.461-.363-1.02-.363-1.676 0-.656.121-1.219.363-1.687a2.72 2.72 0 0 1 .996-1.079 2.631 2.631 0 0 1 1.395-.386c.32 0 .644.074.972.222.329.149.602.348.821.598v-3.188h1.488Zm-2.977 3.833a1.34 1.34 0 0 0-.808.246 1.606 1.606 0 0 0-.516.621c-.125.25-.187.523-.187.82 0 .445.133.824.398 1.137.274.312.633.469 1.078.469.266 0 .512-.071.739-.211a1.56 1.56 0 0 0 .562-.586c.149-.258.223-.567.223-.926v-.844a2.443 2.443 0 0 0-.692-.527 1.625 1.625 0 0 0-.797-.199Z"}),u.createElement("rect",{width:141,height:23,x:680.5,y:177.5,stroke:"#FEB0B7",rx:3.5}),u.createElement("rect",{width:139,height:23,x:287.5,y:146.5,fill:"#F1F0FC",rx:3.5}),u.createElement("path",{fill:"#6C65E5",d:"M304 150.5a7.493 7.493 0 0 0-7.5 7.5c0 4.148 3.352 7.5 7.5 7.5s7.5-3.352 7.5-7.5-3.352-7.5-7.5-7.5Zm0 13.5c-3.307 0-6-2.693-6-6s2.693-6 6-6 6 2.693 6 6-2.693 6-6 6Z"}),u.createElement("path",{fill:"#615BC2",d:"M321.979 153.494c.398 0 .788.055 1.168.165.381.11.724.279 1.029.508.313.229.558.516.736.863.186.339.279.745.279 1.219 0 .499-.127.931-.38 1.295a2.56 2.56 0 0 1-.978.838 3.637 3.637 0 0 1-1.32.343l3.059 3.275h-2.323l-2.958-3.479V162h-1.765v-8.506h3.453Zm-1.688 1.651v2.145c.203.068.427.123.673.165.254.034.508.051.762.051.507 0 .909-.102 1.206-.305.304-.211.457-.508.457-.889 0-.414-.161-.71-.483-.888-.313-.186-.698-.279-1.155-.279h-1.46Zm9.052.279c.626 0 1.164.135 1.612.406.457.271.804.648 1.041 1.13.246.474.368 1.024.368 1.65v.686h-4.646c.084.432.296.779.635 1.041.338.262.753.393 1.244.393.465 0 .888-.093 1.269-.279.381-.186.686-.376.914-.571l-.012 1.498c-.204.178-.508.36-.914.546a3.198 3.198 0 0 1-1.321.266 3.553 3.553 0 0 1-1.739-.431 3.405 3.405 0 0 1-1.244-1.181c-.305-.499-.457-1.071-.457-1.714 0-.626.139-1.197.419-1.714a3.328 3.328 0 0 1 1.155-1.244 2.993 2.993 0 0 1 1.676-.482Zm-.038 1.409a1.44 1.44 0 0 0-1.003.368c-.271.246-.457.576-.559.99h3.072c-.033-.457-.203-.795-.507-1.015a1.633 1.633 0 0 0-1.003-.343Zm10.727-1.244L336.998 162h-1.028l-2.996-6.411h1.879l1.612 3.973 1.688-3.973h1.879Zm2.463-3.339c.305 0 .567.11.787.33a1.048 1.048 0 0 1 0 1.524c-.22.22-.482.33-.787.33-.305 0-.567-.11-.787-.33a1.066 1.066 0 0 1-.317-.762c0-.296.105-.55.317-.762.22-.22.482-.33.787-.33Zm.94 3.339V162h-1.613v-5.04h-1.028v-1.371h2.641Zm4.836-.165c.627 0 1.164.135 1.613.406.457.271.804.648 1.041 1.13.245.474.368 1.024.368 1.65v.686h-4.647c.085.432.297.779.635 1.041.339.262.754.393 1.244.393.466 0 .889-.093 1.27-.279.381-.186.685-.376.914-.571l-.013 1.498c-.203.178-.508.36-.914.546a3.197 3.197 0 0 1-1.32.266 3.55 3.55 0 0 1-1.739-.431 3.397 3.397 0 0 1-1.244-1.181c-.305-.499-.458-1.071-.458-1.714 0-.626.14-1.197.419-1.714.28-.516.665-.931 1.156-1.244a2.992 2.992 0 0 1 1.675-.482Zm-.038 1.409c-.397 0-.732.123-1.003.368-.27.246-.457.576-.558.99h3.072c-.034-.457-.203-.795-.508-1.015a1.63 1.63 0 0 0-1.003-.343Zm13.445-1.244L359.456 162h-1.168l-1.498-4.151-1.498 4.151h-1.181l-2.209-6.411h1.752l1.181 3.796 1.384-3.796h1.155l1.371 3.796 1.181-3.796h1.752Zm8.963 1.803a1.707 1.707 0 0 0-.851-.229 1.26 1.26 0 0 0-.927.368 3.44 3.44 0 0 0-.647.889V162h-1.612v-6.411h1.612v1.206a3.63 3.63 0 0 1 .774-.952 1.566 1.566 0 0 1 1.029-.381c.228 0 .435.038.622.114v1.816Zm4.049-1.968c.627 0 1.164.135 1.613.406.457.271.804.648 1.041 1.13.245.474.368 1.024.368 1.65v.686h-4.647c.085.432.297.779.635 1.041.339.262.753.393 1.244.393.466 0 .889-.093 1.27-.279.381-.186.685-.376.914-.571l-.013 1.498c-.203.178-.508.36-.914.546a3.197 3.197 0 0 1-1.32.266 3.55 3.55 0 0 1-1.739-.431 3.407 3.407 0 0 1-1.245-1.181c-.304-.499-.457-1.071-.457-1.714 0-.626.14-1.197.419-1.714.28-.516.665-.931 1.156-1.244a2.992 2.992 0 0 1 1.675-.482Zm-.038 1.409c-.397 0-.732.123-1.003.368-.27.246-.457.576-.558.99h3.072c-.034-.457-.203-.795-.508-1.015a1.63 1.63 0 0 0-1.003-.343Zm7.072-1.409c.347 0 .698.08 1.053.241.356.161.652.377.889.647v-.723h1.612v9.458h-1.612v-4.126a2.645 2.645 0 0 1-.812.901 2.135 2.135 0 0 1-1.245.368c-.516 0-.994-.131-1.434-.393-.432-.262-.779-.643-1.041-1.143-.263-.499-.394-1.104-.394-1.815 0-.711.131-1.32.394-1.828.271-.508.63-.897 1.079-1.168.457-.28.961-.419 1.511-.419Zm.33 1.587c-.339 0-.631.089-.876.266-.237.17-.423.394-.559.673a1.965 1.965 0 0 0-.203.889c0 .482.144.893.432 1.231.296.33.685.495 1.168.495.287 0 .554-.072.799-.215a1.7 1.7 0 0 0 .61-.635c.161-.279.241-.614.241-1.003v-.914a2.606 2.606 0 0 0-.749-.571 1.763 1.763 0 0 0-.863-.216Zm10.867-1.422v3.821c0 .567-.127 1.058-.381 1.473a2.543 2.543 0 0 1-1.041.939 3.2 3.2 0 0 1-1.473.33c-.558 0-1.058-.11-1.498-.33a2.565 2.565 0 0 1-1.028-.939c-.245-.415-.368-.906-.368-1.473v-3.821h1.625l.013 3.529c0 .5.114.872.342 1.117.229.246.534.369.914.369.373 0 .673-.123.902-.369.237-.245.355-.617.355-1.117v-3.529h1.638Zm3.186-3.339c.305 0 .567.11.788.33a1.048 1.048 0 0 1 0 1.524c-.221.22-.483.33-.788.33-.304 0-.567-.11-.787-.33a1.07 1.07 0 0 1-.317-.762c0-.296.106-.55.317-.762.22-.22.483-.33.787-.33Zm.94 3.339V162h-1.612v-5.04h-1.029v-1.371h2.641Zm6.068 1.803a1.703 1.703 0 0 0-.85-.229c-.373 0-.682.123-.927.368a3.441 3.441 0 0 0-.648.889V162h-1.612v-6.411h1.612v1.206c.22-.381.479-.698.775-.952a1.564 1.564 0 0 1 1.028-.381c.229 0 .436.038.622.114v1.816Zm4.05-1.968c.626 0 1.164.135 1.612.406.457.271.804.648 1.041 1.13.246.474.369 1.024.369 1.65v.686h-4.647c.085.432.296.779.635 1.041.338.262.753.393 1.244.393a2.85 2.85 0 0 0 1.269-.279c.381-.186.686-.376.915-.571l-.013 1.498c-.203.178-.508.36-.914.546a3.198 3.198 0 0 1-1.321.266 3.556 3.556 0 0 1-1.739-.431 3.405 3.405 0 0 1-1.244-1.181c-.305-.499-.457-1.071-.457-1.714 0-.626.14-1.197.419-1.714a3.328 3.328 0 0 1 1.155-1.244 2.996 2.996 0 0 1 1.676-.482Zm-.038 1.409a1.44 1.44 0 0 0-1.003.368c-.271.246-.457.576-.559.99h3.073c-.034-.457-.203-.795-.508-1.015a1.633 1.633 0 0 0-1.003-.343Zm10.626-3.974V162h-1.612v-1.079a2.648 2.648 0 0 1-.813.901 2.13 2.13 0 0 1-1.244.368c-.516 0-.994-.131-1.435-.393-.431-.262-.778-.643-1.041-1.143-.262-.499-.393-1.104-.393-1.815 0-.711.131-1.32.393-1.828a2.946 2.946 0 0 1 1.08-1.168c.457-.28.96-.419 1.51-.419.347 0 .698.08 1.054.241.355.161.652.377.889.647v-3.453h1.612Zm-3.225 4.152c-.338 0-.63.089-.876.266-.237.17-.423.394-.558.673a1.952 1.952 0 0 0-.203.889c0 .482.144.893.431 1.231.296.339.686.508 1.168.508.288 0 .555-.076.8-.228a1.69 1.69 0 0 0 .609-.635c.161-.279.242-.614.242-1.003v-.914a2.633 2.633 0 0 0-.749-.571 1.77 1.77 0 0 0-.864-.216Z"}),u.createElement("rect",{width:139,height:23,x:287.5,y:146.5,stroke:"#BEBBF3",rx:3.5}),u.createElement("rect",{width:88,height:23,x:142.5,y:146.5,fill:"#FFF4E5",rx:3.5}),u.createElement("path",{fill:"#B35300",d:"M154.692 153.291c.897 0 1.684.182 2.361.546a3.9 3.9 0 0 1 1.574 1.523c.381.652.572 1.418.572 2.298 0 .838-.178 1.6-.533 2.285a4.056 4.056 0 0 1-1.524 1.613c-.66.397-1.447.596-2.361.596a17.819 17.819 0 0 1-3.39-.33v-8.201a41.433 41.433 0 0 1 1.612-.228 13.767 13.767 0 0 1 1.689-.102Zm.038 1.65a9.506 9.506 0 0 0-1.574.14v5.281c.254.051.516.089.787.115.279.016.542.025.787.025.559 0 1.037-.119 1.435-.356.397-.245.702-.579.914-1.002.211-.424.317-.898.317-1.422 0-.542-.106-1.02-.317-1.435a2.372 2.372 0 0 0-.914-.977c-.398-.246-.876-.369-1.435-.369Zm10.067 2.451a1.7 1.7 0 0 0-.85-.229c-.373 0-.682.123-.927.368a3.44 3.44 0 0 0-.647.889V162h-1.613v-6.411h1.613v1.206a3.63 3.63 0 0 1 .774-.952 1.564 1.564 0 0 1 1.028-.381c.229 0 .436.038.622.114v1.816Zm3.784-1.968c.347 0 .698.08 1.053.241.356.161.652.377.889.647v-.723h1.612V162h-1.612v-1.079a2.638 2.638 0 0 1-.813.901 2.13 2.13 0 0 1-1.244.368c-.516 0-.994-.131-1.434-.393-.432-.262-.779-.643-1.041-1.143-.263-.499-.394-1.104-.394-1.815 0-.711.131-1.32.394-1.828.271-.508.63-.897 1.079-1.168.457-.28.96-.419 1.511-.419Zm.33 1.574a1.45 1.45 0 0 0-.876.267 1.735 1.735 0 0 0-.559.673 2.04 2.04 0 0 0-.203.901c0 .482.144.893.432 1.231.296.339.685.508 1.168.508.287 0 .554-.076.799-.228a1.7 1.7 0 0 0 .61-.635c.161-.279.241-.614.241-1.003v-.914a2.848 2.848 0 0 0-.749-.584 1.763 1.763 0 0 0-.863-.216Zm8.963-1.409v1.346h-1.664V162h-1.612v-5.065h-.977v-1.346h.977v-.571c0-.491.102-.91.305-1.257.211-.356.486-.627.825-.813a2.283 2.283 0 0 1 1.117-.279c.271 0 .508.03.711.089.203.059.381.139.533.241v1.346a1.731 1.731 0 0 0-.964-.241.985.985 0 0 0-.648.253c-.178.153-.267.407-.267.762v.47h1.664Zm3.656-1.866v1.866h1.777v1.346h-1.777v2.767c0 .288.063.516.19.686.136.161.335.241.597.241.228 0 .423-.025.584-.076.169-.051.326-.123.47-.216v1.282a2.012 2.012 0 0 1-.61.406c-.237.11-.537.165-.901.165-.576 0-1.045-.182-1.409-.545-.356-.373-.534-.881-.534-1.524v-3.186h-1.155v-.826c.406-.144.779-.414 1.117-.812.347-.398.622-.923.826-1.574h.825Zm8.912 1.866v.812c.195-.245.427-.469.698-.672.279-.204.635-.305 1.067-.305.448 0 .854.106 1.218.317.364.203.648.512.851.927.254-.347.55-.639.889-.876a1.96 1.96 0 0 1 1.18-.368c.432 0 .825.101 1.181.305.355.194.639.486.85.875.221.39.331.876.331 1.46V162h-1.613l-.012-3.72c0-.431-.115-.753-.343-.965-.22-.211-.512-.317-.876-.317-.28 0-.521.089-.724.267a3.597 3.597 0 0 0-.571.609V162h-1.612l-.013-3.72c0-.431-.114-.753-.343-.965-.22-.211-.508-.317-.863-.317a1.13 1.13 0 0 0-.724.254 3.057 3.057 0 0 0-.571.571V162h-1.612v-6.411h1.612Zm13.089-.165a3.31 3.31 0 0 1 1.714.457c.516.296.931.702 1.244 1.219.321.507.482 1.079.482 1.713 0 .635-.161 1.207-.482 1.714a3.576 3.576 0 0 1-1.244 1.219 3.388 3.388 0 0 1-1.714.444 3.43 3.43 0 0 1-1.714-.444 3.576 3.576 0 0 1-1.244-1.219 3.198 3.198 0 0 1-.47-1.714c0-.634.157-1.206.47-1.713a3.428 3.428 0 0 1 1.244-1.219 3.351 3.351 0 0 1 1.714-.457Zm0 1.561c-.305 0-.588.072-.851.216a1.662 1.662 0 0 0-.635.622c-.152.271-.228.601-.228.99 0 .39.076.72.228.991.161.271.373.478.635.622.263.135.546.203.851.203.304 0 .588-.068.85-.203.263-.144.474-.351.635-.622.161-.271.241-.601.241-.991 0-.389-.08-.719-.241-.99a1.655 1.655 0 0 0-.635-.622 1.738 1.738 0 0 0-.85-.216Zm11.057-4.126V162h-1.612v-1.079a2.645 2.645 0 0 1-.812.901 2.135 2.135 0 0 1-1.245.368c-.516 0-.994-.131-1.434-.393-.432-.262-.779-.643-1.041-1.143-.263-.499-.394-1.104-.394-1.815 0-.711.131-1.32.394-1.828.271-.508.63-.897 1.079-1.168.457-.28.961-.419 1.511-.419.347 0 .698.08 1.053.241.356.161.652.377.889.647v-3.453h1.612Zm-3.224 4.152c-.339 0-.631.089-.876.266-.237.17-.423.394-.559.673a1.965 1.965 0 0 0-.203.889c0 .482.144.893.432 1.231.296.339.685.508 1.168.508.287 0 .554-.076.799-.228.254-.153.458-.364.61-.635.161-.279.241-.614.241-1.003v-.914a2.606 2.606 0 0 0-.749-.571 1.763 1.763 0 0 0-.863-.216Zm8.011-1.587c.626 0 1.163.135 1.612.406.457.271.804.648 1.041 1.13.245.474.368 1.024.368 1.65v.686h-4.646c.084.432.296.779.634 1.041.339.262.754.393 1.244.393.466 0 .889-.093 1.27-.279.381-.186.685-.376.914-.571l-.013 1.498c-.203.178-.507.36-.914.546a3.197 3.197 0 0 1-1.32.266 3.55 3.55 0 0 1-1.739-.431 3.397 3.397 0 0 1-1.244-1.181c-.305-.499-.457-1.071-.457-1.714 0-.626.139-1.197.418-1.714.28-.516.665-.931 1.156-1.244a2.993 2.993 0 0 1 1.676-.482Zm-.039 1.409c-.397 0-.732.123-1.003.368-.27.246-.457.576-.558.99h3.072c-.034-.457-.203-.795-.508-1.015a1.63 1.63 0 0 0-1.003-.343Z"}),u.createElement("rect",{width:88,height:23,x:142.5,y:146.5,stroke:"#FFC46F",rx:3.5}),u.createElement("path",{fill:"#202021",d:"M243 157.25a.75.75 0 0 0 0 1.5v-1.5Zm32.53 1.28a.749.749 0 0 0 0-1.06l-4.773-4.773a.749.749 0 1 0-1.06 1.06l4.242 4.243-4.242 4.243a.749.749 0 1 0 1.06 1.06l4.773-4.773Zm-32.53.22h32v-1.5h-32v1.5ZM110 157.25a.75.75 0 0 0 0 1.5v-1.5Zm20.53 1.28a.749.749 0 0 0 0-1.06l-4.773-4.773a.749.749 0 1 0-1.06 1.06l4.242 4.243-4.242 4.243a.749.749 0 1 0 1.06 1.06l4.773-4.773Zm-20.53.22h20v-1.5h-20v1.5ZM636 125.25a.75.75 0 0 0 0 1.5v-1.5Zm32.53 1.28a.749.749 0 0 0 0-1.06l-4.773-4.773a.749.749 0 1 0-1.06 1.06l4.242 4.243-4.242 4.243a.749.749 0 1 0 1.06 1.06l4.773-4.773Zm-32.53.22h32v-1.5h-32v1.5ZM636 188.25a.75.75 0 0 0 0 1.5v-1.5Zm32.53 1.28a.749.749 0 0 0 0-1.06l-4.773-4.773a.749.749 0 1 0-1.06 1.06l4.242 4.243-4.242 4.243a.749.749 0 1 0 1.06 1.06l4.773-4.773Zm-32.53.22h32v-1.5h-32v1.5Z"}),u.createElement("path",{stroke:"#202021",strokeLinecap:"round",strokeWidth:1.5,d:"M439 158h30"}),u.createElement("path",{fill:"#202021",d:"m480.501 132.407-.643-.386.643.386Zm22.984-5.428a.75.75 0 0 0 .089-1.057l-4.361-5.153a.75.75 0 1 0-1.145.969l3.876 4.58-4.58 3.876a.75.75 0 1 0 .969 1.145l5.152-4.36ZM466 158.75c3.095 0 5.328-1.166 6.97-3.066 1.61-1.863 2.622-4.395 3.406-7.092.779-2.68 1.374-5.69 2.059-8.428.696-2.786 1.499-5.353 2.709-7.372l-1.286-.771c-1.332 2.221-2.177 4.972-2.879 7.78-.714 2.856-1.27 5.714-2.043 8.372-.768 2.643-1.709 4.919-3.101 6.53-1.36 1.574-3.18 2.547-5.835 2.547v1.5Zm15.144-25.958c1.006-1.676 2.803-2.906 5.046-3.789 2.235-.881 4.835-1.386 7.331-1.664 2.491-.277 4.849-.323 6.587-.3.868.012 1.579.04 2.071.066.247.013.438.026.567.034l.146.011a.637.637 0 0 1 .036.003h.009l.002.001.062-.748.062-.747h-.001l-.003-.001h-.011l-.042-.004-.157-.011a50.879 50.879 0 0 0-.591-.036 56.858 56.858 0 0 0-2.13-.068 55.836 55.836 0 0 0-6.773.309c-2.566.286-5.31.811-7.715 1.759-2.398.945-4.538 2.34-5.782 4.414l1.286.771Z"}),u.createElement("path",{fill:"#202021",d:"m480.502 183.5-.643.386.643-.386Zm22.984 5.428a.75.75 0 0 1 .088 1.057l-4.36 5.153a.75.75 0 0 1-1.145-.969l3.875-4.58-4.58-3.876a.75.75 0 0 1 .969-1.145l5.153 4.36ZM466 157.25c3.094 0 5.326 1.159 6.969 3.05 1.61 1.854 2.623 4.375 3.407 7.06.779 2.669 1.374 5.668 2.059 8.396.697 2.778 1.499 5.34 2.71 7.358l-1.286.772c-1.332-2.22-2.177-4.966-2.879-7.765-.714-2.847-1.271-5.694-2.044-8.34-.768-2.63-1.708-4.895-3.1-6.497-1.36-1.565-3.18-2.534-5.836-2.534v-1.5Zm15.145 25.864c1.005 1.677 2.803 2.907 5.045 3.79 2.235.881 4.835 1.386 7.332 1.663 2.491.277 4.849.324 6.587.301a53.867 53.867 0 0 0 2.638-.101l.146-.01.036-.003.008-.001h.002l.062.747.062.748h-.004l-.011.001a54.48 54.48 0 0 1-2.919.119c-1.779.023-4.202-.024-6.773-.31-2.566-.285-5.31-.811-7.716-1.758-2.398-.945-4.538-2.34-5.781-4.414l1.286-.772ZM47.633 143.635c.665 0 1.207.091 1.627.273.428.182.802.419 1.12.711v1.354c-.2-.146-.428-.306-.683-.479a3.959 3.959 0 0 0-.875-.451c-.328-.137-.724-.205-1.19-.205-.683 0-1.293.155-1.831.465-.538.31-.962.738-1.272 1.285-.31.538-.465 1.148-.465 1.832 0 .684.155 1.294.465 1.832.31.538.734.966 1.272 1.285.538.31 1.148.465 1.832.465.702 0 1.299-.114 1.79-.342a6.756 6.756 0 0 0 1.231-.724v1.23c-.319.283-.738.529-1.258.738-.51.201-1.098.301-1.763.301-.693 0-1.33-.123-1.914-.369a4.952 4.952 0 0 1-1.532-1.039 4.798 4.798 0 0 1-1.025-1.518 4.89 4.89 0 0 1-.355-1.859c0-.656.118-1.272.355-1.846a4.755 4.755 0 0 1 2.557-2.556 4.71 4.71 0 0 1 1.914-.383Zm8.217 2.392a2.6 2.6 0 0 1 1.271.315c.383.2.688.51.916.929.228.411.342.93.342 1.559V153h-1.121l-.014-4.061c0-.592-.132-1.043-.396-1.353-.256-.31-.652-.465-1.19-.465-.364 0-.729.137-1.093.41a4.8 4.8 0 0 0-.944.93V153H52.5v-9.844h1.121v4.088c.146-.182.333-.364.56-.547.229-.191.484-.351.766-.478.292-.128.593-.192.903-.192Zm7.465 0c.391 0 .788.096 1.189.287.41.183.761.438 1.053.766v-.916h1.12V153h-1.12v-1.162c-.237.364-.56.683-.971.957-.401.273-.861.41-1.38.41a3.041 3.041 0 0 1-1.6-.437 3.326 3.326 0 0 1-1.163-1.245c-.282-.528-.423-1.139-.423-1.832 0-.756.14-1.408.423-1.955a3.102 3.102 0 0 1 1.19-1.257 3.204 3.204 0 0 1 1.681-.452Zm.205 1.094c-.493 0-.912.123-1.258.369a2.497 2.497 0 0 0-.807.957 2.858 2.858 0 0 0-.273 1.244c0 .438.09.844.273 1.217.182.365.438.656.766.875.337.219.724.328 1.162.328.42 0 .793-.109 1.12-.328.329-.219.589-.519.78-.902.192-.392.283-.83.274-1.313l-.014-1.312a3.525 3.525 0 0 0-.916-.834 2.033 2.033 0 0 0-1.107-.301Zm6.603-.957v1.08c.146-.182.333-.364.56-.547.228-.191.484-.351.766-.478.292-.128.593-.192.903-.192a2.6 2.6 0 0 1 1.271.315c.383.2.688.51.916.929.228.411.342.93.342 1.559V153H73.76l-.014-4.061c0-.592-.132-1.043-.396-1.353-.256-.31-.652-.465-1.19-.465-.364 0-.729.137-1.094.41-.355.265-.67.574-.943.93V153h-1.121v-6.836h1.121Zm9.693-.137c.392 0 .789.096 1.19.287.41.183.76.438 1.053.766v-.916h1.12v6.699c0 .811-.163 1.486-.492 2.024a3.092 3.092 0 0 1-1.312 1.203 4.065 4.065 0 0 1-1.791.396c-.42 0-.78-.05-1.08-.15a2.73 2.73 0 0 1-.752-.356c-.21-.136-.401-.268-.574-.396v-1.203c.136.1.314.228.533.383.228.164.497.31.807.437a2.84 2.84 0 0 0 1.066.192c.447 0 .857-.082 1.23-.247.374-.164.675-.405.903-.724.228-.319.342-.702.342-1.149v-1.435c-.237.364-.561.683-.971.957-.401.273-.861.41-1.381.41a3.042 3.042 0 0 1-1.6-.437 3.327 3.327 0 0 1-1.162-1.245c-.282-.528-.423-1.139-.423-1.832 0-.756.14-1.408.423-1.955a3.102 3.102 0 0 1 1.19-1.257 3.204 3.204 0 0 1 1.681-.452Zm.206 1.108c-.493 0-.912.123-1.258.369a2.39 2.39 0 0 0-.807.943 2.858 2.858 0 0 0-.273 1.244c0 .438.09.839.273 1.204.182.364.438.656.766.875.337.218.724.328 1.162.328.419 0 .793-.11 1.12-.328a2.29 2.29 0 0 0 .78-.903c.192-.383.283-.816.274-1.299l-.014-1.312a3.307 3.307 0 0 0-.916-.82 2.033 2.033 0 0 0-1.108-.301Zm8.298-1.108c.702 0 1.286.146 1.75.438a2.69 2.69 0 0 1 1.04 1.189c.236.502.355 1.067.355 1.696v.67h-5.25c.054.382.187.733.396 1.052.21.319.483.574.82.766.338.182.725.273 1.163.273.492 0 .952-.123 1.38-.369a5.187 5.187 0 0 0 1.08-.834l-.013 1.217a2.73 2.73 0 0 1-.574.492 3.583 3.583 0 0 1-.861.41 2.87 2.87 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.656 3.656 0 0 1-.452-1.791c0-.647.142-1.244.424-1.791.283-.547.67-.984 1.162-1.312a3.045 3.045 0 0 1 1.71-.493Zm0 1.094c-.565 0-1.03.191-1.394.574-.365.374-.593.83-.684 1.367h4.115c-.045-.446-.173-.811-.382-1.093a1.873 1.873 0 0 0-.739-.629 2.02 2.02 0 0 0-.916-.219Zm7.028-1.094c.4 0 .774.06 1.12.178.347.109.598.223.753.342v1.203a3.562 3.562 0 0 0-.78-.424 2.602 2.602 0 0 0-1.011-.205c-.429 0-.752.1-.971.301-.21.2-.315.41-.315.629 0 .173.06.351.178.533.128.173.347.314.656.424l1.149.41c.447.155.78.378.998.67.219.292.328.633.328 1.025 0 .383-.11.734-.328 1.053a2.23 2.23 0 0 1-.889.766c-.373.182-.806.273-1.299.273-.264 0-.542-.036-.834-.109a5.115 5.115 0 0 1-.765-.233 3.618 3.618 0 0 1-.506-.259V151.4c.128.092.305.196.533.315.237.109.488.205.752.287.264.073.51.109.739.109.428 0 .765-.095 1.011-.287.255-.191.383-.428.383-.711a.61.61 0 0 0-.26-.519c-.164-.128-.405-.251-.724-.369l-1.012-.37c-.529-.2-.88-.451-1.053-.751a2.122 2.122 0 0 1-.26-1.053c0-.584.22-1.067.657-1.449.437-.383 1.02-.575 1.75-.575Zm-49.26 17.129V173h-1.121v-1.162c-.237.364-.56.683-.97.957-.402.273-.862.41-1.382.41a3.042 3.042 0 0 1-1.6-.437 3.327 3.327 0 0 1-1.162-1.245c-.282-.528-.423-1.139-.423-1.832 0-.756.141-1.408.423-1.955a3.102 3.102 0 0 1 1.19-1.257 3.204 3.204 0 0 1 1.682-.452c.392 0 .788.096 1.19.287.41.183.76.438 1.052.766v-3.924h1.12Zm-3.158 3.992c-.492 0-.912.123-1.258.37a2.412 2.412 0 0 0-.807.929 2.858 2.858 0 0 0-.273 1.244c0 .438.09.844.273 1.217.182.365.438.656.766.875.337.219.724.328 1.162.328.42 0 .793-.109 1.121-.328.328-.219.588-.519.78-.902a2.83 2.83 0 0 0 .273-1.313l-.014-1.312a3.307 3.307 0 0 0-.916-.82 2.105 2.105 0 0 0-1.107-.288Zm8.298-1.121c.702 0 1.286.146 1.75.438a2.69 2.69 0 0 1 1.04 1.189c.237.502.355 1.067.355 1.696v.67h-5.25c.055.382.187.733.397 1.052.21.319.483.574.82.766.337.182.724.273 1.162.273.492 0 .952-.123 1.38-.369a5.187 5.187 0 0 0 1.08-.834l-.013 1.217a2.73 2.73 0 0 1-.574.492 3.583 3.583 0 0 1-.861.41 2.87 2.87 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.656 3.656 0 0 1-.451-1.791c0-.647.14-1.244.423-1.791.283-.547.67-.984 1.163-1.312a3.045 3.045 0 0 1 1.708-.493Zm0 1.094c-.565 0-1.03.191-1.394.574-.365.374-.593.83-.684 1.367h4.116c-.046-.446-.174-.811-.383-1.093a1.873 1.873 0 0 0-.739-.629 2.02 2.02 0 0 0-.916-.219Zm6.877-2.926v1.969h1.997v1.053h-1.996v4.006c0 .282.072.506.218.67.146.164.37.246.67.246.274 0 .501-.032.684-.096.182-.073.342-.15.478-.232v.916a2.268 2.268 0 0 1-.588.341c-.2.092-.474.137-.82.137-.583 0-1.025-.173-1.326-.519-.292-.356-.438-.825-.438-1.409v-4.06h-1.312v-.328c.447-.201.82-.529 1.121-.985.3-.465.565-1.034.793-1.709h.52Zm6.85 1.832c.702 0 1.285.146 1.75.438a2.69 2.69 0 0 1 1.04 1.189c.236.502.355 1.067.355 1.696v.67h-5.25c.054.382.186.733.396 1.052.21.319.483.574.82.766.338.182.725.273 1.162.273.493 0 .953-.123 1.381-.369a5.187 5.187 0 0 0 1.08-.834l-.013 1.217a2.73 2.73 0 0 1-.574.492 3.582 3.582 0 0 1-.862.41 2.87 2.87 0 0 1-1.011.178c-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.272-1.299 3.656 3.656 0 0 1-.45-1.791c0-.647.14-1.244.423-1.791.282-.547.67-.984 1.162-1.312a3.045 3.045 0 0 1 1.71-.493Zm0 1.094c-.565 0-1.03.191-1.395.574-.364.374-.592.83-.683 1.367h4.115c-.045-.446-.173-.811-.383-1.093a1.873 1.873 0 0 0-.738-.629 2.02 2.02 0 0 0-.916-.219Zm8.08-1.094c.502 0 .934.082 1.299.246.365.155.615.297.752.424v1.135a4.067 4.067 0 0 0-.875-.492c-.328-.146-.72-.219-1.176-.219a2.28 2.28 0 0 0-1.271.356 2.336 2.336 0 0 0-.848.916 2.654 2.654 0 0 0-.287 1.23c0 .438.096.848.287 1.231.2.373.483.679.848.916.364.227.788.341 1.271.341.456 0 .848-.068 1.176-.205a4.47 4.47 0 0 0 .875-.506v1.135c-.137.137-.387.283-.752.438-.365.155-.797.232-1.299.232-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.656 3.656 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791a3.58 3.58 0 0 1 1.271-1.312c.538-.329 1.153-.493 1.846-.493Zm5.783-1.832v1.969h1.996v1.053h-1.996v4.006c0 .282.073.506.22.67.145.164.368.246.669.246.274 0 .501-.032.684-.096.182-.073.341-.15.478-.232v.916a2.269 2.269 0 0 1-.588.341c-.2.092-.474.137-.82.137-.583 0-1.025-.173-1.326-.519-.292-.356-.438-.825-.438-1.409v-4.06h-1.312v-.328c.446-.201.82-.529 1.12-.985.302-.465.566-1.034.794-1.709h.52Zm6.85 1.832c.702 0 1.285.146 1.75.438a2.69 2.69 0 0 1 1.039 1.189c.237.502.356 1.067.356 1.696v.67h-5.25c.054.382.186.733.396 1.052.21.319.483.574.82.766.338.182.725.273 1.162.273.493 0 .953-.123 1.381-.369a5.184 5.184 0 0 0 1.08-.834l-.013 1.217a2.73 2.73 0 0 1-.575.492 3.584 3.584 0 0 1-.86.41 2.87 2.87 0 0 1-1.013.178c-.692 0-1.308-.164-1.845-.492a3.614 3.614 0 0 1-1.272-1.299 3.656 3.656 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.312a3.044 3.044 0 0 1 1.709-.493Zm0 1.094c-.565 0-1.03.191-1.395.574-.364.374-.592.83-.683 1.367h4.115c-.046-.446-.173-.811-.383-1.093a1.873 1.873 0 0 0-.738-.629 2.02 2.02 0 0 0-.916-.219Zm11.17-3.965V173h-1.121v-1.162c-.237.364-.56.683-.97.957-.402.273-.862.41-1.382.41a3.042 3.042 0 0 1-1.6-.437 3.327 3.327 0 0 1-1.162-1.245c-.282-.528-.423-1.139-.423-1.832 0-.756.141-1.408.423-1.955a3.102 3.102 0 0 1 1.19-1.257 3.204 3.204 0 0 1 1.682-.452c.392 0 .788.096 1.19.287.41.183.76.438 1.052.766v-3.924h1.12Zm-3.158 3.992c-.493 0-.912.123-1.258.37a2.412 2.412 0 0 0-.807.929 2.858 2.858 0 0 0-.273 1.244c0 .438.09.844.273 1.217.183.365.438.656.766.875.337.219.725.328 1.162.328.42 0 .793-.109 1.121-.328.328-.219.588-.519.78-.902a2.83 2.83 0 0 0 .273-1.313l-.014-1.312a3.307 3.307 0 0 0-.916-.82 2.105 2.105 0 0 0-1.107-.288Z"}),u.createElement("circle",{cx:455,cy:158,r:5,fill:"#6C65E5",stroke:"#F2F2F5",strokeWidth:2}),u.createElement("path",{stroke:"#6C65E5",strokeLinecap:"round",strokeWidth:1.5,d:"M455 157v-50"}),u.createElement("path",{fill:"#615BC2",d:"M371.349 64.813v5.564c0 .793-.169 1.477-.506 2.05a3.34 3.34 0 0 1-1.34 1.3c-.565.3-1.208.45-1.928.45-.711 0-1.353-.15-1.928-.45a3.43 3.43 0 0 1-1.353-1.3c-.328-.574-.492-1.257-.492-2.05v-5.564h1.23v5.523c0 .62.114 1.121.342 1.504.237.383.547.66.93.834.392.164.815.246 1.271.246.456-.01.875-.096 1.258-.26.392-.173.702-.447.93-.82.237-.383.355-.884.355-1.504v-5.523h1.231Zm4.566 2.214c.401 0 .775.06 1.121.178.346.11.597.223.752.342v1.203a3.548 3.548 0 0 0-.779-.424 2.61 2.61 0 0 0-1.012-.205c-.428 0-.752.1-.971.3-.209.201-.314.411-.314.63 0 .173.059.35.178.533.127.173.346.314.656.424l1.148.41c.447.155.78.378.998.67.219.292.329.633.329 1.025 0 .383-.11.734-.329 1.053a2.217 2.217 0 0 1-.888.766c-.374.182-.807.273-1.299.273-.264 0-.542-.036-.834-.11a5.073 5.073 0 0 1-.766-.232 3.571 3.571 0 0 1-.506-.26V72.4c.128.091.306.196.534.315.237.11.487.205.752.287.264.073.51.11.738.11.428 0 .765-.096 1.012-.288.255-.191.382-.428.382-.71a.611.611 0 0 0-.259-.52c-.164-.128-.406-.25-.725-.37l-1.012-.368c-.528-.201-.879-.452-1.052-.752-.174-.31-.26-.661-.26-1.053 0-.584.219-1.067.656-1.45.438-.382 1.021-.574 1.75-.574Zm6.631 0c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.21.32.483.575.82.766.337.182.725.273 1.162.273.493 0 .953-.123 1.381-.369a5.166 5.166 0 0 0 1.08-.834l-.013 1.217a2.735 2.735 0 0 1-.575.492c-.246.164-.533.301-.861.41a2.881 2.881 0 0 1-1.012.178c-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.395.574-.364.374-.592.83-.683 1.368h4.115c-.046-.447-.173-.812-.383-1.094a1.868 1.868 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm6.111-.957v1.367a3.53 3.53 0 0 1 .957-1.094c.374-.273.757-.41 1.149-.41.264 0 .501.046.711.137v1.299a1.704 1.704 0 0 0-.875-.26c-.465 0-.843.164-1.135.492-.283.328-.552.72-.807 1.176V74h-1.121v-6.836h1.121Zm17.322 0L403.587 74h-.697l-1.873-4.826L399.144 74h-.698l-2.392-6.836h1.34l1.517 4.799 1.791-4.799h.629l1.791 4.799 1.518-4.799h1.339Zm2.461-3.281c.265 0 .484.095.657.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.847.847 0 0 1-.657.287.887.887 0 0 1-.669-.287.93.93 0 0 1-.26-.642.9.9 0 0 1 .26-.643.887.887 0 0 1 .669-.287Zm.698 3.281V74h-1.121v-5.783h-1.08v-1.053h2.201Zm4.306-1.969v1.97h1.996v1.052h-1.996v4.006c0 .282.073.505.219.67.146.164.369.246.67.246a2.1 2.1 0 0 0 .684-.096c.182-.073.341-.15.478-.233v.917c-.182.145-.378.26-.588.341-.2.091-.474.137-.82.137-.583 0-1.025-.173-1.326-.52-.292-.355-.438-.824-.438-1.408v-4.06h-1.312v-.328c.446-.2.82-.529 1.121-.985.301-.465.565-1.034.793-1.709h.519Zm7.383 1.832c.465 0 .889.105 1.272.315.382.2.688.51.916.93.228.41.341.93.341 1.558V74h-1.121l-.013-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V74h-1.121v-9.844h1.121v4.088c.145-.182.332-.364.56-.547.228-.191.483-.35.766-.478.291-.128.592-.192.902-.192Zm12.223 0a2.99 2.99 0 0 1 1.599.438 3.05 3.05 0 0 1 1.149 1.203c.292.51.437 1.112.437 1.805 0 .747-.145 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.391 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V67.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.315-.328.21-.588.5-.779.874-.183.365-.274.793-.274 1.286l.014 1.312c.292.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.493 0 .912-.127 1.258-.383.347-.255.611-.583.793-.984.192-.41.287-.834.287-1.271a2.52 2.52 0 0 0-.273-1.19 2.15 2.15 0 0 0-.766-.847c-.328-.21-.715-.315-1.162-.315Zm6.33-.957v1.367c.264-.456.583-.82.957-1.094.374-.273.757-.41 1.149-.41.264 0 .501.046.711.137v1.299a1.704 1.704 0 0 0-.875-.26c-.465 0-.844.164-1.135.492-.283.328-.552.72-.807 1.176V74h-1.121v-6.836h1.121Zm7.342-.137c.693 0 1.308.164 1.846.492.537.329.957.766 1.257 1.313a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.3.538-.72.97-1.257 1.299-.538.328-1.153.492-1.846.492-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.733-.984 1.271-1.313.538-.328 1.153-.492 1.846-.492Zm0 1.094c-.483 0-.907.119-1.272.356a2.342 2.342 0 0 0-.847.916 2.652 2.652 0 0 0-.287 1.23c0 .438.095.848.287 1.23.2.374.483.68.847.916.365.228.789.342 1.272.342.492 0 .916-.114 1.271-.342.365-.236.643-.542.834-.916.201-.382.301-.792.301-1.23 0-.447-.1-.857-.301-1.23a2.239 2.239 0 0 0-.834-.916c-.355-.237-.779-.356-1.271-.356Zm8.887-1.094a2.99 2.99 0 0 1 1.599.438 3.05 3.05 0 0 1 1.149 1.203c.291.51.437 1.112.437 1.805 0 .747-.146 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.392 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V67.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.315-.328.21-.588.5-.779.874-.183.365-.274.793-.274 1.286l.014 1.312c.291.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.492 0 .912-.127 1.258-.383a2.47 2.47 0 0 0 .793-.984 2.98 2.98 0 0 0 .287-1.271 2.52 2.52 0 0 0-.273-1.19 2.157 2.157 0 0 0-.766-.847c-.328-.21-.715-.315-1.162-.315Zm8.025-1.094c.702 0 1.285.146 1.75.438.465.291.812.688 1.039 1.19.237.5.356 1.066.356 1.695v.67h-5.25c.055.382.187.733.396 1.052.21.32.483.575.821.766.337.182.724.273 1.162.273.492 0 .952-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.752 2.752 0 0 1-.574.492c-.246.164-.533.301-.862.41a2.88 2.88 0 0 1-1.011.178c-.693 0-1.308-.164-1.846-.492a3.606 3.606 0 0 1-1.271-1.299 3.654 3.654 0 0 1-.452-1.791c0-.647.142-1.244.424-1.791.283-.547.67-.984 1.162-1.313a3.053 3.053 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.394.574-.365.374-.593.83-.684 1.368h4.115c-.045-.447-.173-.812-.382-1.094a1.878 1.878 0 0 0-.739-.63 2.021 2.021 0 0 0-.916-.218Zm6.112-.957v1.367c.264-.456.583-.82.957-1.094.373-.273.756-.41 1.148-.41.264 0 .501.046.711.137v1.299a1.701 1.701 0 0 0-.875-.26c-.465 0-.843.164-1.135.492-.282.328-.551.72-.806 1.176V74h-1.121v-6.836h1.121Zm11.826-.137a2.99 2.99 0 0 1 1.599.438c.484.282.866.683 1.149 1.203.292.51.437 1.112.437 1.805 0 .747-.145 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.391 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V67.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.315-.328.21-.588.5-.779.874-.183.365-.274.793-.274 1.286l.014 1.312c.292.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.493 0 .912-.127 1.258-.383.347-.255.611-.583.793-.984.192-.41.287-.834.287-1.271a2.52 2.52 0 0 0-.273-1.19 2.15 2.15 0 0 0-.766-.847c-.328-.21-.715-.315-1.162-.315Zm8.025-1.094c.702 0 1.286.146 1.75.438a2.69 2.69 0 0 1 1.04 1.19c.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.396 1.052.21.32.484.575.821.766.337.182.724.273 1.162.273.492 0 .952-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.726 2.726 0 0 1-.574.492c-.246.164-.533.301-.861.41a2.885 2.885 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.423-1.791.283-.547.67-.984 1.162-1.313a3.053 3.053 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.029.192-1.394.574-.365.374-.593.83-.684 1.368h4.116c-.046-.447-.174-.812-.383-1.094a1.878 1.878 0 0 0-.739-.63 2.021 2.021 0 0 0-.916-.218Zm6.112-.957v1.367c.264-.456.583-.82.957-1.094.374-.273.756-.41 1.148-.41.265 0 .502.046.711.137v1.299a1.698 1.698 0 0 0-.875-.26c-.465 0-.843.164-1.135.492-.282.328-.551.72-.806 1.176V74h-1.121v-6.836h1.121Zm5.373 0v.875c.219-.246.497-.474.834-.683.346-.22.752-.329 1.217-.329.492 0 .952.119 1.38.356.429.228.757.574.985 1.039a5.844 5.844 0 0 1 1.039-.984c.374-.274.811-.41 1.312-.41.465 0 .898.104 1.299.314.41.2.739.51.985.93.255.41.382.93.382 1.558V74h-1.121l-.013-4.06c0-.593-.155-1.044-.465-1.354-.301-.31-.72-.465-1.258-.465-.392 0-.734.123-1.025.37-.292.245-.57.532-.834.86V74h-1.121l-.014-4.06c0-.593-.155-1.044-.465-1.354-.301-.31-.72-.465-1.258-.465-.373 0-.715.11-1.025.328a4.535 4.535 0 0 0-.834.793V74h-1.121v-6.836h1.121Zm12.646-3.281c.265 0 .483.095.657.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.849.849 0 0 1-.657.287.891.891 0 0 1-.67-.287.934.934 0 0 1-.259-.642c0-.247.086-.46.259-.643a.891.891 0 0 1 .67-.287Zm.698 3.281V74h-1.121v-5.783h-1.081v-1.053h2.202Zm4.457-.137c.401 0 .774.06 1.121.178.346.11.597.223.752.342v1.203a3.558 3.558 0 0 0-.78-.424 2.605 2.605 0 0 0-1.011-.205c-.429 0-.752.1-.971.3-.21.201-.314.411-.314.63 0 .173.059.35.177.533.128.173.347.314.656.424l1.149.41c.447.155.779.378.998.67.219.292.328.633.328 1.025 0 .383-.109.734-.328 1.053-.21.319-.506.574-.889.766-.373.182-.806.273-1.299.273-.264 0-.542-.036-.834-.11a5.095 5.095 0 0 1-.765-.232 3.516 3.516 0 0 1-.506-.26V72.4c.128.091.305.196.533.315.237.11.488.205.752.287.264.073.511.11.738.11.429 0 .766-.096 1.012-.288.255-.191.383-.428.383-.71a.612.612 0 0 0-.26-.52c-.164-.128-.405-.25-.724-.37l-1.012-.368c-.529-.201-.88-.452-1.053-.752-.173-.31-.26-.661-.26-1.053 0-.584.219-1.067.657-1.45.437-.382 1.02-.574 1.75-.574Zm5.851 0c.401 0 .775.06 1.121.178.347.11.597.223.752.342v1.203a3.548 3.548 0 0 0-.779-.424 2.606 2.606 0 0 0-1.012-.205c-.428 0-.752.1-.97.3-.21.201-.315.411-.315.63 0 .173.059.35.178.533.127.173.346.314.656.424l1.148.41c.447.155.78.378.999.67.218.292.328.633.328 1.025 0 .383-.11.734-.328 1.053-.21.319-.506.574-.889.766-.374.182-.807.273-1.299.273-.264 0-.542-.036-.834-.11a5.109 5.109 0 0 1-.766-.232 3.548 3.548 0 0 1-.505-.26V72.4c.127.091.305.196.533.315.237.11.487.205.752.287.264.073.51.11.738.11.428 0 .766-.096 1.012-.288.255-.191.383-.428.383-.71a.612.612 0 0 0-.26-.52c-.164-.128-.406-.25-.725-.37l-1.012-.368c-.528-.201-.879-.452-1.052-.752-.173-.31-.26-.661-.26-1.053 0-.584.219-1.067.656-1.45.438-.382 1.021-.574 1.75-.574Zm4.908-3.144c.265 0 .483.095.657.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.849.849 0 0 1-.657.287.891.891 0 0 1-.67-.287.934.934 0 0 1-.259-.642c0-.247.086-.46.259-.643a.891.891 0 0 1 .67-.287Zm.698 3.281V74h-1.121v-5.783h-1.081v-1.053h2.202Zm5.509-.137c.693 0 1.308.164 1.846.492.538.329.957.766 1.258 1.313a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.301.538-.72.97-1.258 1.299-.538.328-1.153.492-1.846.492-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.734-.984 1.272-1.313.537-.328 1.153-.492 1.845-.492Zm0 1.094a2.28 2.28 0 0 0-1.271.356 2.344 2.344 0 0 0-.848.916 2.664 2.664 0 0 0-.287 1.23c0 .438.096.848.287 1.23.201.374.483.68.848.916.365.228.788.342 1.271.342.493 0 .916-.114 1.272-.342.364-.236.642-.542.834-.916.2-.382.301-.792.301-1.23 0-.447-.101-.857-.301-1.23a2.253 2.253 0 0 0-.834-.916c-.356-.237-.779-.356-1.272-.356Zm6.536-.957v1.08c.145-.182.332-.364.56-.547.228-.191.483-.35.766-.478.291-.128.592-.192.902-.192.465 0 .889.105 1.272.315.382.2.688.51.916.93.227.41.341.93.341 1.558V74h-1.121l-.013-4.06c0-.593-.133-1.044-.397-1.354-.255-.31-.652-.465-1.189-.465-.365 0-.729.137-1.094.41-.356.265-.67.575-.943.93V74h-1.122v-6.836h1.122ZM384.877 87.027c.501 0 .934.082 1.299.246.364.155.615.297.752.424v1.135a4.042 4.042 0 0 0-.875-.492c-.328-.146-.72-.219-1.176-.219-.483 0-.907.119-1.272.356a2.342 2.342 0 0 0-.847.916 2.652 2.652 0 0 0-.287 1.23c0 .438.095.848.287 1.23.2.374.483.68.847.916.365.228.789.342 1.272.342.456 0 .848-.068 1.176-.205a4.49 4.49 0 0 0 .875-.506v1.135c-.137.137-.388.283-.752.438-.365.155-.798.232-1.299.232-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.733-.984 1.271-1.313.538-.328 1.153-.492 1.846-.492Zm6.713 0c.392 0 .788.096 1.189.287.41.183.761.438 1.053.766v-.916h1.121V94h-1.121v-1.162a3.355 3.355 0 0 1-.971.957c-.401.273-.861.41-1.381.41a3.035 3.035 0 0 1-1.599-.437 3.32 3.32 0 0 1-1.162-1.245c-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.106 3.106 0 0 1 1.189-1.258 3.208 3.208 0 0 1 1.682-.45Zm.205 1.094c-.492 0-.912.123-1.258.37a2.506 2.506 0 0 0-.807.956 2.86 2.86 0 0 0-.273 1.244c0 .438.091.843.273 1.217.183.365.438.656.766.875.337.219.725.328 1.162.328.419 0 .793-.109 1.121-.328.328-.219.588-.52.78-.902.191-.392.282-.83.273-1.313l-.014-1.312a3.535 3.535 0 0 0-.916-.834c-.319-.2-.688-.3-1.107-.3Zm6.603-.957v1.08c.146-.182.333-.364.561-.547.228-.191.483-.35.766-.478.291-.128.592-.192.902-.192a2.6 2.6 0 0 1 1.271.315c.383.2.689.51.916.93.228.41.342.93.342 1.558V94h-1.121l-.014-4.06c0-.593-.132-1.044-.396-1.354-.255-.31-.652-.465-1.189-.465-.365 0-.73.137-1.094.41-.356.265-.67.575-.944.93V94h-1.121v-6.836h1.121Zm14.848-2.324 4.279 9.16h-1.476l-.957-2.188h-4.293L409.828 94h-1.476l4.279-9.16h.615Zm-.287 2.078-1.654 3.732h3.281l-1.627-3.732Zm9.338.11c.592 0 1.126.145 1.599.437.484.282.866.683 1.149 1.203.292.51.437 1.112.437 1.805 0 .747-.145 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.089 3.089 0 0 1-1.681.464c-.392 0-.793-.105-1.204-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V87.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.093c-.41 0-.784.105-1.121.315-.328.21-.588.5-.779.874-.183.365-.274.793-.274 1.286l.014 1.312c.292.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.493 0 .912-.127 1.258-.383.347-.255.611-.583.793-.984.192-.41.287-.834.287-1.271a2.52 2.52 0 0 0-.273-1.19 2.15 2.15 0 0 0-.766-.847c-.328-.21-.715-.315-1.162-.315Zm8.682-1.094a2.99 2.99 0 0 1 1.599.438 3.05 3.05 0 0 1 1.149 1.203c.291.51.437 1.112.437 1.805 0 .747-.146 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.392 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V87.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.315-.328.21-.588.5-.779.874-.183.365-.274.793-.274 1.286l.014 1.312c.292.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.493 0 .912-.127 1.258-.383a2.47 2.47 0 0 0 .793-.984c.192-.41.287-.834.287-1.271a2.52 2.52 0 0 0-.273-1.19 2.157 2.157 0 0 0-.766-.847c-.328-.21-.715-.315-1.162-.315Zm6.33-.957v1.367c.264-.456.583-.82.957-1.094.374-.273.757-.41 1.149-.41.264 0 .501.046.711.137v1.299a1.704 1.704 0 0 0-.875-.26c-.465 0-.844.164-1.135.492-.283.328-.552.72-.807 1.176V94h-1.121v-6.836h1.121Zm7.342-.137c.693 0 1.308.164 1.846.492.537.329.957.766 1.257 1.313a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.3.538-.72.97-1.257 1.299-.538.328-1.153.492-1.846.492-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.733-.984 1.271-1.313.538-.328 1.153-.492 1.846-.492Zm0 1.094c-.483 0-.907.119-1.272.356a2.342 2.342 0 0 0-.847.916 2.652 2.652 0 0 0-.287 1.23c0 .438.095.848.287 1.23.2.374.483.68.847.916.365.228.789.342 1.272.342.492 0 .916-.114 1.271-.342.365-.236.643-.542.834-.916.201-.382.301-.792.301-1.23 0-.447-.1-.857-.301-1.23a2.239 2.239 0 0 0-.834-.916c-.355-.237-.779-.356-1.271-.356Zm11.17-.957L452.252 94h-.697l-3.076-6.836h1.339l2.065 5.031 2.242-5.03h1.34Zm4.047-.137c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.209.32.483.575.82.766.337.182.725.273 1.162.273.492 0 .953-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.726 2.726 0 0 1-.574.492c-.246.164-.533.301-.861.41a2.881 2.881 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.622 3.622 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.395.574-.364.374-.592.83-.683 1.368h4.115c-.046-.447-.173-.812-.383-1.094a1.882 1.882 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm12.181-1.094c.693 0 1.308.164 1.846.492.538.329.957.766 1.258 1.313a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.301.538-.72.97-1.258 1.299-.538.328-1.153.492-1.846.492-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.734-.984 1.272-1.313.537-.328 1.153-.492 1.845-.492Zm0 1.094c-.483 0-.907.119-1.271.356a2.344 2.344 0 0 0-.848.916 2.664 2.664 0 0 0-.287 1.23c0 .438.096.848.287 1.23.201.374.483.68.848.916.364.228.788.342 1.271.342.493 0 .916-.114 1.272-.342.364-.236.642-.542.834-.916.2-.382.301-.792.301-1.23 0-.447-.101-.857-.301-1.23a2.253 2.253 0 0 0-.834-.916c-.356-.237-.779-.356-1.272-.356Zm6.536-.957v1.367c.264-.456.583-.82.957-1.094.373-.273.756-.41 1.148-.41.264 0 .501.046.711.137v1.299a1.701 1.701 0 0 0-.875-.26c-.465 0-.843.164-1.135.492-.282.328-.551.72-.806 1.176V94h-1.122v-6.836h1.122Zm12.701-2.53c.665 0 1.207.092 1.627.274.428.183.802.42 1.121.711v1.354a26.966 26.966 0 0 0-.684-.479 3.94 3.94 0 0 0-.875-.451c-.328-.137-.724-.205-1.189-.205-.684 0-1.295.155-1.832.465-.538.31-.962.738-1.272 1.285-.31.538-.465 1.148-.465 1.832 0 .683.155 1.294.465 1.832.31.538.734.966 1.272 1.285.537.31 1.148.465 1.832.465.702 0 1.299-.114 1.791-.342a6.754 6.754 0 0 0 1.23-.724v1.23c-.319.283-.738.529-1.258.738-.51.2-1.098.301-1.763.301a4.872 4.872 0 0 1-1.914-.37 4.95 4.95 0 0 1-1.532-1.038 4.805 4.805 0 0 1-1.025-1.518 4.892 4.892 0 0 1-.355-1.86c0-.655.118-1.27.355-1.845a4.76 4.76 0 0 1 2.557-2.557 4.72 4.72 0 0 1 1.914-.382Zm7.683 2.393c.392 0 .789.096 1.19.287.41.183.761.438 1.052.766v-.916h1.122V94h-1.122v-1.162c-.237.365-.56.684-.97.957-.401.273-.862.41-1.381.41a3.039 3.039 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.282-.528-.424-1.139-.424-1.832 0-.756.142-1.408.424-1.955a3.109 3.109 0 0 1 1.19-1.258 3.202 3.202 0 0 1 1.681-.45Zm.205 1.094c-.492 0-.911.123-1.257.37a2.489 2.489 0 0 0-.807.956 2.86 2.86 0 0 0-.274 1.244c0 .438.092.843.274 1.217.182.365.437.656.766.875.337.219.724.328 1.162.328.419 0 .793-.109 1.121-.328.328-.219.588-.52.779-.902a2.82 2.82 0 0 0 .273-1.313l-.013-1.312a3.55 3.55 0 0 0-.916-.834c-.319-.2-.688-.3-1.108-.3Zm6.604-.957v1.08c.146-.182.333-.364.56-.547.228-.191.483-.35.766-.478.292-.128.592-.192.902-.192.465 0 .889.105 1.272.315.383.2.688.51.916.93.228.41.342.93.342 1.558V94h-1.121l-.014-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V94h-1.121v-6.836h1.121Zm9.967-.137c.501 0 .934.082 1.299.246.364.155.615.297.751.424v1.135a4.018 4.018 0 0 0-.875-.492c-.328-.146-.72-.219-1.175-.219-.483 0-.907.119-1.272.356a2.342 2.342 0 0 0-.847.916 2.652 2.652 0 0 0-.288 1.23c0 .438.096.848.288 1.23.2.374.483.68.847.916.365.228.789.342 1.272.342.455 0 .847-.068 1.175-.205a4.46 4.46 0 0 0 .875-.506v1.135c-.136.137-.387.283-.751.438-.365.155-.798.232-1.299.232-.693 0-1.308-.164-1.846-.492a3.617 3.617 0 0 1-1.272-1.299 3.664 3.664 0 0 1-.451-1.791c0-.647.151-1.244.451-1.791.31-.547.734-.984 1.272-1.313.538-.328 1.153-.492 1.846-.492Zm6.713 0c.701 0 1.285.146 1.75.438.464.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.209.32.483.575.82.766.337.182.725.273 1.162.273.492 0 .952-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.726 2.726 0 0 1-.574.492c-.246.164-.533.301-.861.41a2.885 2.885 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.622 3.622 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.423-1.791.283-.547.67-.984 1.163-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.566 0-1.03.192-1.395.574-.365.374-.592.83-.684 1.368h4.116c-.046-.447-.174-.812-.383-1.094a1.882 1.882 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm6.111-3.965V94h-1.121v-9.844h1.121Z"}),u.createElement("circle",{cx:652,cy:126,r:5,fill:"#6C65E5",stroke:"#F2F2F5",strokeWidth:2}),u.createElement("path",{stroke:"#6C65E5",strokeLinecap:"round",strokeWidth:1.5,d:"M652 126V76"}),u.createElement("path",{fill:"#615BC2",d:"M568.349 33.813v5.564c0 .793-.169 1.476-.506 2.05a3.34 3.34 0 0 1-1.34 1.3c-.565.3-1.208.45-1.928.45-.711 0-1.353-.15-1.928-.45a3.43 3.43 0 0 1-1.353-1.3c-.328-.574-.492-1.257-.492-2.05v-5.565h1.23v5.524c0 .62.114 1.121.342 1.504.237.383.547.66.93.834.392.164.815.246 1.271.246.456-.01.875-.096 1.258-.26.392-.173.702-.446.93-.82.237-.383.355-.884.355-1.504v-5.523h1.231Zm4.566 2.214c.401 0 .775.06 1.121.178.346.11.597.223.752.342v1.203a3.548 3.548 0 0 0-.779-.424 2.61 2.61 0 0 0-1.012-.205c-.428 0-.752.1-.971.3-.209.201-.314.411-.314.63 0 .173.059.35.178.533.127.173.346.314.656.424l1.148.41c.447.155.78.378.998.67.219.292.329.633.329 1.025 0 .383-.11.734-.329 1.053a2.217 2.217 0 0 1-.888.766c-.374.182-.807.273-1.299.273-.264 0-.542-.036-.834-.11a5.073 5.073 0 0 1-.766-.232 3.571 3.571 0 0 1-.506-.26V41.4c.128.092.306.196.534.315.237.11.487.205.752.287.264.073.51.11.738.11.428 0 .765-.096 1.012-.288.255-.191.382-.428.382-.71a.611.611 0 0 0-.259-.52c-.164-.128-.406-.25-.725-.37l-1.012-.368c-.528-.201-.879-.452-1.052-.753-.174-.31-.26-.66-.26-1.052 0-.584.219-1.067.656-1.45.438-.382 1.021-.574 1.75-.574Zm6.631 0c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.21.32.483.575.82.766.337.182.725.273 1.162.273.493 0 .953-.123 1.381-.369a5.166 5.166 0 0 0 1.08-.834l-.013 1.217a2.735 2.735 0 0 1-.575.492c-.246.164-.533.301-.861.41a2.881 2.881 0 0 1-1.012.178c-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.191-1.395.574-.364.374-.592.83-.683 1.367h4.115c-.046-.446-.173-.81-.383-1.093a1.868 1.868 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm6.111-.957v1.367a3.53 3.53 0 0 1 .957-1.093c.374-.274.757-.41 1.149-.41.264 0 .501.045.711.136v1.299a1.704 1.704 0 0 0-.875-.26c-.465 0-.843.164-1.135.492-.283.328-.552.72-.807 1.176V43h-1.121v-6.836h1.121Zm17.322 0L600.587 43h-.697l-1.873-4.826L596.144 43h-.698l-2.392-6.836h1.34l1.517 4.799 1.791-4.799h.629l1.791 4.799 1.518-4.799h1.339Zm2.461-3.281c.265 0 .484.095.657.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.847.847 0 0 1-.657.287.887.887 0 0 1-.669-.287.93.93 0 0 1-.26-.642.9.9 0 0 1 .26-.643.887.887 0 0 1 .669-.287Zm.698 3.281V43h-1.121v-5.783h-1.08v-1.053h2.201Zm4.306-1.969v1.97h1.996v1.052h-1.996v4.006c0 .282.073.505.219.67.146.164.369.246.67.246a2.1 2.1 0 0 0 .684-.096c.182-.073.341-.15.478-.233v.917c-.182.145-.378.26-.588.341-.2.092-.474.137-.82.137-.583 0-1.025-.173-1.326-.52-.292-.355-.438-.824-.438-1.408v-4.06h-1.312v-.328c.446-.2.82-.529 1.121-.985.301-.465.565-1.034.793-1.709h.519Zm7.383 1.832c.465 0 .889.105 1.272.315.382.2.688.51.916.93.228.41.341.93.341 1.558V43h-1.121l-.013-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V43h-1.121v-9.844h1.121v4.088c.145-.182.332-.364.56-.547.228-.191.483-.35.766-.478.291-.128.592-.192.902-.192Zm12.223 0a2.99 2.99 0 0 1 1.599.438 3.05 3.05 0 0 1 1.149 1.203c.292.51.437 1.112.437 1.805 0 .747-.145 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.391 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V36.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.314-.328.21-.588.502-.779.875-.183.365-.274.793-.274 1.286l.014 1.312c.292.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.493 0 .912-.127 1.258-.383.347-.255.611-.583.793-.984.192-.41.287-.834.287-1.271a2.52 2.52 0 0 0-.273-1.19 2.15 2.15 0 0 0-.766-.848c-.328-.21-.715-.314-1.162-.314Zm6.33-.957v1.367c.264-.456.583-.82.957-1.093.374-.274.757-.41 1.149-.41.264 0 .501.045.711.136v1.299a1.704 1.704 0 0 0-.875-.26c-.465 0-.844.164-1.135.492-.283.328-.552.72-.807 1.176V43h-1.121v-6.836h1.121Zm7.342-.137c.693 0 1.308.164 1.846.492.537.329.957.766 1.257 1.313a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.3.538-.72.97-1.257 1.299-.538.328-1.153.492-1.846.492-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.733-.984 1.271-1.313.538-.328 1.153-.492 1.846-.492Zm0 1.094c-.483 0-.907.119-1.272.356a2.342 2.342 0 0 0-.847.916 2.652 2.652 0 0 0-.287 1.23c0 .438.095.848.287 1.23.2.374.483.68.847.916.365.228.789.342 1.272.342.492 0 .916-.114 1.271-.341.365-.237.643-.543.834-.917.201-.382.301-.793.301-1.23 0-.447-.1-.857-.301-1.23a2.239 2.239 0 0 0-.834-.916c-.355-.237-.779-.356-1.271-.356Zm8.887-1.094a2.99 2.99 0 0 1 1.599.438 3.05 3.05 0 0 1 1.149 1.203c.291.51.437 1.112.437 1.805 0 .747-.146 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.392 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V36.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.314-.328.21-.588.502-.779.875-.183.365-.274.793-.274 1.286l.014 1.312c.291.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.492 0 .912-.127 1.258-.383a2.47 2.47 0 0 0 .793-.984 2.98 2.98 0 0 0 .287-1.271 2.52 2.52 0 0 0-.273-1.19 2.157 2.157 0 0 0-.766-.848c-.328-.21-.715-.314-1.162-.314Zm8.025-1.094c.702 0 1.285.146 1.75.438.465.291.812.688 1.039 1.19.237.5.356 1.066.356 1.695v.67h-5.25c.055.382.187.733.396 1.052.21.32.483.575.821.766.337.182.724.273 1.162.273.492 0 .952-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.752 2.752 0 0 1-.574.492c-.246.164-.533.301-.862.41a2.88 2.88 0 0 1-1.011.178c-.693 0-1.308-.164-1.846-.492a3.606 3.606 0 0 1-1.271-1.299 3.654 3.654 0 0 1-.452-1.791c0-.647.142-1.244.424-1.791.283-.547.67-.984 1.162-1.313a3.053 3.053 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.191-1.394.574-.365.374-.593.83-.684 1.367h4.115c-.045-.446-.173-.81-.382-1.093a1.878 1.878 0 0 0-.739-.63 2.021 2.021 0 0 0-.916-.218Zm6.112-.957v1.367c.264-.456.583-.82.957-1.093.373-.274.756-.41 1.148-.41.264 0 .501.045.711.136v1.299a1.701 1.701 0 0 0-.875-.26c-.465 0-.843.164-1.135.492-.282.328-.551.72-.806 1.176V43h-1.121v-6.836h1.121Zm11.826-.137a2.99 2.99 0 0 1 1.599.438c.484.282.866.683 1.149 1.203.292.51.437 1.112.437 1.805 0 .747-.145 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.391 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V36.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.314-.328.21-.588.502-.779.875-.183.365-.274.793-.274 1.286l.014 1.312c.292.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.493 0 .912-.127 1.258-.383.347-.255.611-.583.793-.984.192-.41.287-.834.287-1.271a2.52 2.52 0 0 0-.273-1.19 2.15 2.15 0 0 0-.766-.848c-.328-.21-.715-.314-1.162-.314Zm8.025-1.094c.702 0 1.286.146 1.75.438a2.69 2.69 0 0 1 1.04 1.19c.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.396 1.052.21.32.484.575.821.766.337.182.724.273 1.162.273.492 0 .952-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.726 2.726 0 0 1-.574.492c-.246.164-.533.301-.861.41a2.885 2.885 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.423-1.791.283-.547.67-.984 1.162-1.313a3.053 3.053 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.029.191-1.394.574-.365.374-.593.83-.684 1.367h4.116c-.046-.446-.174-.81-.383-1.093a1.878 1.878 0 0 0-.739-.63 2.021 2.021 0 0 0-.916-.218Zm6.112-.957v1.367c.264-.456.583-.82.957-1.093.374-.274.756-.41 1.148-.41.265 0 .502.045.711.136v1.299a1.698 1.698 0 0 0-.875-.26c-.465 0-.843.164-1.135.492-.282.328-.551.72-.806 1.176V43h-1.121v-6.836h1.121Zm5.373 0v.875c.219-.246.497-.474.834-.684.346-.218.752-.328 1.217-.328.492 0 .952.119 1.38.356.429.228.757.574.985 1.039a5.844 5.844 0 0 1 1.039-.984c.374-.274.811-.41 1.312-.41.465 0 .898.104 1.299.314.41.2.739.51.985.93.255.41.382.93.382 1.558V43h-1.121l-.013-4.06c0-.593-.155-1.044-.465-1.354-.301-.31-.72-.465-1.258-.465-.392 0-.734.123-1.025.37-.292.245-.57.532-.834.86V43h-1.121l-.014-4.06c0-.593-.155-1.044-.465-1.354-.301-.31-.72-.465-1.258-.465-.373 0-.715.11-1.025.328a4.535 4.535 0 0 0-.834.793V43h-1.121v-6.836h1.121Zm12.646-3.281c.265 0 .483.095.657.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.849.849 0 0 1-.657.287.891.891 0 0 1-.67-.287.934.934 0 0 1-.259-.642c0-.247.086-.46.259-.643a.891.891 0 0 1 .67-.287Zm.698 3.281V43h-1.121v-5.783h-1.081v-1.053h2.202Zm4.457-.137c.401 0 .774.06 1.121.178.346.11.597.223.752.342v1.203a3.558 3.558 0 0 0-.78-.424 2.605 2.605 0 0 0-1.011-.205c-.429 0-.752.1-.971.3-.21.201-.314.411-.314.63 0 .173.059.35.177.533.128.173.347.314.656.424l1.149.41c.447.155.779.378.998.67.219.292.328.633.328 1.025 0 .383-.109.734-.328 1.053-.21.319-.506.574-.889.766-.373.182-.806.273-1.299.273-.264 0-.542-.036-.834-.11a5.095 5.095 0 0 1-.765-.232 3.516 3.516 0 0 1-.506-.26V41.4c.128.092.305.196.533.315.237.11.488.205.752.287.264.073.511.11.738.11.429 0 .766-.096 1.012-.288.255-.191.383-.428.383-.71a.612.612 0 0 0-.26-.52c-.164-.128-.405-.25-.724-.37l-1.012-.368c-.529-.201-.88-.452-1.053-.753-.173-.31-.26-.66-.26-1.052 0-.584.219-1.067.657-1.45.437-.382 1.02-.574 1.75-.574Zm5.851 0c.401 0 .775.06 1.121.178.347.11.597.223.752.342v1.203a3.548 3.548 0 0 0-.779-.424 2.606 2.606 0 0 0-1.012-.205c-.428 0-.752.1-.97.3-.21.201-.315.411-.315.63 0 .173.059.35.178.533.127.173.346.314.656.424l1.148.41c.447.155.78.378.999.67.218.292.328.633.328 1.025 0 .383-.11.734-.328 1.053-.21.319-.506.574-.889.766-.374.182-.807.273-1.299.273-.264 0-.542-.036-.834-.11a5.109 5.109 0 0 1-.766-.232 3.548 3.548 0 0 1-.505-.26V41.4c.127.092.305.196.533.315.237.11.487.205.752.287.264.073.51.11.738.11.428 0 .766-.096 1.012-.288.255-.191.383-.428.383-.71a.612.612 0 0 0-.26-.52c-.164-.128-.406-.25-.725-.37l-1.012-.368c-.528-.201-.879-.452-1.052-.753-.173-.31-.26-.66-.26-1.052 0-.584.219-1.067.656-1.45.438-.382 1.021-.574 1.75-.574Zm4.908-3.144c.265 0 .483.095.657.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.849.849 0 0 1-.657.287.891.891 0 0 1-.67-.287.934.934 0 0 1-.259-.642c0-.247.086-.46.259-.643a.891.891 0 0 1 .67-.287Zm.698 3.281V43h-1.121v-5.783h-1.081v-1.053h2.202Zm5.509-.137c.693 0 1.308.164 1.846.492.538.329.957.766 1.258 1.313a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.301.538-.72.97-1.258 1.299-.538.328-1.153.492-1.846.492-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.734-.984 1.272-1.313.537-.328 1.153-.492 1.845-.492Zm0 1.094a2.28 2.28 0 0 0-1.271.356 2.344 2.344 0 0 0-.848.916 2.664 2.664 0 0 0-.287 1.23c0 .438.096.848.287 1.23.201.374.483.68.848.916.365.228.788.342 1.271.342.493 0 .916-.114 1.272-.341.364-.237.642-.543.834-.917.2-.382.301-.793.301-1.23 0-.447-.101-.857-.301-1.23a2.253 2.253 0 0 0-.834-.916c-.356-.237-.779-.356-1.272-.356Zm6.536-.957v1.08c.145-.182.332-.364.56-.547.228-.191.483-.35.766-.478.291-.128.592-.192.902-.192.465 0 .889.105 1.272.315.382.2.688.51.916.93.227.41.341.93.341 1.558V43h-1.121l-.013-4.06c0-.593-.133-1.044-.397-1.354-.255-.31-.652-.465-1.189-.465-.365 0-.729.137-1.094.41-.356.265-.67.575-.943.93V43h-1.122v-6.836h1.122ZM595.2 56.027c.501 0 .934.082 1.299.246.365.155.615.297.752.424v1.135a4.042 4.042 0 0 0-.875-.492c-.328-.146-.72-.219-1.176-.219-.483 0-.907.119-1.271.356a2.344 2.344 0 0 0-.848.916 2.664 2.664 0 0 0-.287 1.23c0 .438.096.848.287 1.23.201.374.483.68.848.916.364.228.788.342 1.271.342.456 0 .848-.068 1.176-.205a4.49 4.49 0 0 0 .875-.506v1.135c-.137.137-.387.283-.752.438-.365.155-.798.232-1.299.232-.693 0-1.308-.164-1.846-.492a3.622 3.622 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791a3.59 3.59 0 0 1 1.271-1.313c.538-.328 1.153-.492 1.846-.492Zm6.713 0c.392 0 .788.096 1.19.288.41.182.761.437 1.052.765v-.916h1.121V63h-1.121v-1.162c-.237.364-.56.684-.97.957-.401.273-.862.41-1.381.41a3.036 3.036 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.113 3.113 0 0 1 1.189-1.258 3.208 3.208 0 0 1 1.682-.45Zm.205 1.094c-.492 0-.911.123-1.258.37a2.495 2.495 0 0 0-.806.956 2.847 2.847 0 0 0-.274 1.244c0 .438.091.843.274 1.217.182.365.437.657.765.875a2.09 2.09 0 0 0 1.162.328c.42 0 .793-.109 1.122-.328.328-.218.587-.52.779-.902.191-.392.282-.83.273-1.313l-.013-1.312a3.55 3.55 0 0 0-.916-.834 2.04 2.04 0 0 0-1.108-.3Zm6.604-.957v1.08c.146-.182.332-.364.56-.547.228-.191.483-.35.766-.478.292-.128.592-.192.902-.192.465 0 .889.105 1.272.315.382.2.688.51.916.93.228.41.341.93.341 1.558V63h-1.121l-.013-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V63h-1.121v-6.836h1.121Zm13.795-.137c.392 0 .788.096 1.189.288.41.182.761.437 1.053.765v-.916h1.121V63h-1.121v-1.162a3.355 3.355 0 0 1-.971.957c-.401.273-.861.41-1.381.41a3.035 3.035 0 0 1-1.599-.437 3.32 3.32 0 0 1-1.162-1.245c-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.106 3.106 0 0 1 1.189-1.258 3.205 3.205 0 0 1 1.682-.45Zm.205 1.094c-.493 0-.912.123-1.258.37a2.506 2.506 0 0 0-.807.956 2.86 2.86 0 0 0-.273 1.244c0 .438.091.843.273 1.217.183.365.438.657.766.875.337.219.724.328 1.162.328.419 0 .793-.109 1.121-.328.328-.218.588-.52.779-.902.192-.392.283-.83.274-1.313l-.014-1.312a3.535 3.535 0 0 0-.916-.834c-.319-.2-.688-.3-1.107-.3Zm8.955-1.094a2.99 2.99 0 0 1 1.599.438 3.05 3.05 0 0 1 1.149 1.203c.291.51.437 1.112.437 1.805 0 .747-.146 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.392 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V56.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.314-.328.21-.588.502-.779.875-.183.365-.274.793-.274 1.286l.014 1.312c.292.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.492 0 .912-.127 1.258-.383a2.47 2.47 0 0 0 .793-.984 2.98 2.98 0 0 0 .287-1.271 2.52 2.52 0 0 0-.273-1.19 2.157 2.157 0 0 0-.766-.848c-.328-.21-.715-.314-1.162-.314Zm8.682-1.094a2.99 2.99 0 0 1 1.599.438 3.05 3.05 0 0 1 1.149 1.203c.291.51.437 1.112.437 1.805 0 .747-.146 1.403-.437 1.968a3.192 3.192 0 0 1-1.176 1.3 3.09 3.09 0 0 1-1.682.464c-.392 0-.793-.105-1.203-.314a3.624 3.624 0 0 1-1.039-.807v4.197h-1.121V56.164h1.121v1.162c.237-.364.556-.67.957-.916.41-.255.875-.383 1.395-.383Zm-.178 1.094c-.41 0-.784.105-1.121.314-.328.21-.588.502-.779.875-.183.365-.274.793-.274 1.286l.014 1.312c.291.356.597.647.916.875a1.91 1.91 0 0 0 1.107.328c.492 0 .912-.127 1.258-.383a2.47 2.47 0 0 0 .793-.984 2.98 2.98 0 0 0 .287-1.271 2.52 2.52 0 0 0-.273-1.19 2.157 2.157 0 0 0-.766-.848c-.328-.21-.715-.314-1.162-.314Zm6.33-3.965V63h-1.121v-9.844h1.121Zm2.707 3.008 2.393 5.031 2.324-5.03h1.34l-5.032 10.116h-1.298l1.955-3.691-3.022-6.426h1.34Zm14.615-.137c.502 0 .935.082 1.299.246.365.155.615.297.752.424v1.135a4.042 4.042 0 0 0-.875-.492c-.328-.146-.72-.219-1.176-.219-.483 0-.907.119-1.271.356a2.344 2.344 0 0 0-.848.916 2.664 2.664 0 0 0-.287 1.23c0 .438.096.848.287 1.23.201.374.483.68.848.916.364.228.788.342 1.271.342.456 0 .848-.068 1.176-.205a4.49 4.49 0 0 0 .875-.506v1.135c-.137.137-.387.283-.752.438-.364.155-.797.232-1.299.232-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.734-.984 1.272-1.313.537-.328 1.153-.492 1.845-.492Zm7.246 0c.465 0 .889.105 1.272.315.383.2.688.51.916.93.228.41.342.93.342 1.558V63h-1.121l-.014-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V63h-1.121v-9.844h1.121v4.088c.146-.182.333-.364.56-.547.228-.191.483-.35.766-.478.292-.128.592-.192.902-.192Zm7.465 0c.392 0 .789.096 1.19.288.41.182.761.437 1.052.765v-.916h1.121V63h-1.121v-1.162c-.237.364-.56.684-.97.957-.401.273-.862.41-1.381.41a3.039 3.039 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.282-.528-.424-1.139-.424-1.832 0-.756.142-1.408.424-1.955a3.109 3.109 0 0 1 1.19-1.258 3.202 3.202 0 0 1 1.681-.45Zm.205 1.094c-.492 0-.911.123-1.258.37a2.495 2.495 0 0 0-.806.956 2.86 2.86 0 0 0-.274 1.244c0 .438.092.843.274 1.217.182.365.437.657.765.875.338.219.725.328 1.163.328.419 0 .793-.109 1.121-.328.328-.218.588-.52.779-.902a2.82 2.82 0 0 0 .273-1.313l-.013-1.312a3.55 3.55 0 0 0-.916-.834c-.319-.2-.688-.3-1.108-.3Zm6.604-.957v1.08c.146-.182.332-.364.56-.547.228-.191.483-.35.766-.478.292-.128.592-.192.902-.192.465 0 .889.105 1.272.315.383.2.688.51.916.93.228.41.342.93.342 1.558V63h-1.121l-.014-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V63h-1.121v-6.836h1.121Zm9.693-.137c.392 0 .789.096 1.19.288.41.182.761.437 1.052.765v-.916h1.121v6.7c0 .81-.164 1.485-.492 2.023a3.087 3.087 0 0 1-1.312 1.203 4.06 4.06 0 0 1-1.791.396c-.42 0-.78-.05-1.08-.15a2.726 2.726 0 0 1-.752-.355c-.21-.137-.401-.27-.575-.397v-1.203c.137.1.315.228.534.383.228.164.496.31.806.437.319.128.675.192 1.067.192.446 0 .857-.082 1.23-.246.374-.165.675-.406.903-.725.227-.32.341-.702.341-1.149v-1.435c-.237.364-.56.684-.97.957-.401.273-.862.41-1.381.41a3.036 3.036 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.282-.528-.424-1.139-.424-1.832 0-.756.142-1.408.424-1.955a3.109 3.109 0 0 1 1.19-1.258 3.202 3.202 0 0 1 1.681-.45Zm.205 1.108c-.492 0-.911.123-1.258.369a2.39 2.39 0 0 0-.806.943 2.847 2.847 0 0 0-.274 1.244c0 .438.091.839.274 1.203.182.365.437.657.765.876.338.218.725.328 1.163.328.419 0 .792-.11 1.121-.328.328-.22.588-.52.779-.903.191-.383.282-.816.273-1.299l-.013-1.312a3.334 3.334 0 0 0-.916-.82c-.319-.201-.688-.301-1.108-.301Zm8.299-1.108c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.356 1.066.356 1.695v.67h-5.25c.054.382.186.733.396 1.052.21.32.483.575.82.766a2.41 2.41 0 0 0 1.163.273c.492 0 .952-.123 1.38-.369a5.166 5.166 0 0 0 1.08-.834l-.013 1.217a2.752 2.752 0 0 1-.574.492c-.247.164-.534.301-.862.41a2.88 2.88 0 0 1-1.011.178c-.693 0-1.308-.164-1.846-.492a3.617 3.617 0 0 1-1.272-1.299 3.664 3.664 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.283-.547.67-.984 1.162-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.191-1.394.574-.365.374-.593.83-.684 1.367h4.115c-.045-.446-.173-.81-.383-1.093a1.868 1.868 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm7.027-1.094c.401 0 .775.06 1.122.178.346.11.597.223.751.342v1.203a3.548 3.548 0 0 0-.779-.424 2.606 2.606 0 0 0-1.012-.205c-.428 0-.752.1-.97.3-.21.201-.315.411-.315.63 0 .173.06.35.178.533.128.173.346.314.656.424l1.149.41c.446.155.779.378.998.67.219.292.328.633.328 1.025 0 .383-.109.734-.328 1.053-.21.319-.506.574-.889.766-.374.182-.807.273-1.299.273-.264 0-.542-.036-.834-.11a5.095 5.095 0 0 1-.765-.232 3.516 3.516 0 0 1-.506-.26V61.4c.127.092.305.196.533.315.237.11.488.205.752.287.264.073.51.11.738.11.429 0 .766-.096 1.012-.288.255-.191.383-.428.383-.71a.612.612 0 0 0-.26-.52c-.164-.128-.406-.25-.725-.37l-1.011-.368c-.529-.201-.88-.452-1.053-.753-.173-.31-.26-.66-.26-1.052 0-.584.219-1.067.656-1.45.438-.382 1.021-.574 1.75-.574ZM554.439 234.84l4.28 9.16h-1.477l-.957-2.188h-4.293l-.971 2.188h-1.476l4.279-9.16h.615Zm-.287 2.078-1.654 3.732h3.281l-1.627-3.732Zm11.457.246v4.047c0 .601-.127 1.121-.382 1.559a2.65 2.65 0 0 1-1.039 1.011c-.438.237-.93.356-1.477.356a3.052 3.052 0 0 1-1.477-.356 2.65 2.65 0 0 1-1.039-1.011c-.255-.438-.383-.958-.383-1.559v-4.047h1.163v4.047c0 .592.173 1.048.519 1.367a1.8 1.8 0 0 0 1.217.465c.456 0 .857-.155 1.203-.465.356-.319.533-.775.533-1.367v-4.047h1.162Zm4.006-1.969v1.969h1.996v1.053h-1.996v4.006c0 .282.073.506.219.67.146.164.369.246.67.246.273 0 .501-.032.684-.096.182-.073.341-.15.478-.232v.916a2.26 2.26 0 0 1-.588.341c-.2.092-.474.137-.82.137-.584 0-1.026-.173-1.326-.519-.292-.356-.438-.825-.438-1.409v-4.06h-1.312v-.328c.446-.201.82-.529 1.121-.985.301-.465.565-1.034.793-1.709h.519Zm7.123 1.832c.693 0 1.308.164 1.846.493.538.328.957.765 1.258 1.312a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.301.538-.72.971-1.258 1.299-.538.328-1.153.492-1.846.492-.692 0-1.308-.164-1.845-.492a3.614 3.614 0 0 1-1.272-1.299 3.654 3.654 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791a3.58 3.58 0 0 1 1.272-1.312c.537-.329 1.153-.493 1.845-.493Zm0 1.094c-.483 0-.907.119-1.271.356a2.337 2.337 0 0 0-.848.916 2.66 2.66 0 0 0-.287 1.23c0 .438.096.848.287 1.231.201.373.483.679.848.916.364.227.788.341 1.271.341.492 0 .916-.114 1.272-.341a2.38 2.38 0 0 0 .834-.916c.2-.383.301-.793.301-1.231 0-.447-.101-.857-.301-1.23a2.246 2.246 0 0 0-.834-.916c-.356-.237-.78-.356-1.272-.356Zm6.535-.957v.875c.219-.246.497-.474.834-.684.347-.218.752-.328 1.217-.328.492 0 .953.119 1.381.356.428.228.757.574.984 1.039a5.825 5.825 0 0 1 1.04-.984 2.157 2.157 0 0 1 1.312-.411c.465 0 .898.105 1.299.315.41.2.738.51.984.929.255.411.383.93.383 1.559V244h-1.121l-.014-4.061c0-.592-.155-1.043-.465-1.353-.3-.31-.72-.465-1.257-.465-.392 0-.734.123-1.026.369a6.287 6.287 0 0 0-.834.862V244h-1.121l-.014-4.061c0-.592-.154-1.043-.464-1.353-.301-.31-.72-.465-1.258-.465-.374 0-.716.109-1.026.328-.3.219-.578.483-.834.793V244h-1.121v-6.836h1.121Zm14.37-.137c.392 0 .788.096 1.189.287.41.183.761.438 1.053.766v-.916h1.121V244h-1.121v-1.162a3.37 3.37 0 0 1-.971.957c-.401.273-.861.41-1.381.41a3.04 3.04 0 0 1-1.599-.437 3.332 3.332 0 0 1-1.163-1.245c-.282-.528-.423-1.139-.423-1.832 0-.756.141-1.408.423-1.955a3.107 3.107 0 0 1 1.19-1.257 3.204 3.204 0 0 1 1.682-.452Zm.205 1.094c-.493 0-.912.123-1.258.369a2.497 2.497 0 0 0-.807.957 2.862 2.862 0 0 0-.273 1.244c0 .438.091.844.273 1.217.182.365.438.656.766.875.337.219.724.328 1.162.328.419 0 .793-.109 1.121-.328.328-.219.588-.519.779-.902.192-.392.283-.83.274-1.313l-.014-1.312a3.517 3.517 0 0 0-.916-.834 2.032 2.032 0 0 0-1.107-.301Zm7.369-2.926v1.969h1.996v1.053h-1.996v4.006c0 .282.073.506.219.67.145.164.369.246.669.246.274 0 .502-.032.684-.096.182-.073.342-.15.479-.232v.916a2.293 2.293 0 0 1-.588.341c-.201.092-.474.137-.821.137-.583 0-1.025-.173-1.326-.519-.291-.356-.437-.825-.437-1.409v-4.06h-1.313v-.328c.447-.201.821-.529 1.121-.985.301-.465.565-1.034.793-1.709h.52Zm5.127-1.312c.264 0 .483.096.656.287a.879.879 0 0 1 .273.642.91.91 0 0 1-.273.643.848.848 0 0 1-.656.287.89.89 0 0 1-.67-.287.936.936 0 0 1-.26-.643c0-.246.087-.46.26-.642a.89.89 0 0 1 .67-.287Zm.697 3.281V244h-1.121v-5.783h-1.08v-1.053h2.201Zm5.51-.137c.501 0 .934.082 1.299.246.364.155.615.297.752.424v1.135a4.091 4.091 0 0 0-.875-.492c-.329-.146-.72-.219-1.176-.219-.483 0-.907.119-1.272.356a2.335 2.335 0 0 0-.847.916 2.647 2.647 0 0 0-.287 1.23c0 .438.095.848.287 1.231.2.373.483.679.847.916.365.227.789.341 1.272.341.456 0 .847-.068 1.176-.205a4.5 4.5 0 0 0 .875-.506v1.135c-.137.137-.388.283-.752.438-.365.155-.798.232-1.299.232-.693 0-1.308-.164-1.846-.492a3.603 3.603 0 0 1-1.271-1.299 3.655 3.655 0 0 1-.452-1.791c0-.647.151-1.244.452-1.791a3.57 3.57 0 0 1 1.271-1.312c.538-.329 1.153-.493 1.846-.493Zm6.713 0c.392 0 .788.096 1.189.287.41.183.761.438 1.053.766v-.916h1.121V244h-1.121v-1.162a3.37 3.37 0 0 1-.971.957c-.401.273-.861.41-1.381.41a3.04 3.04 0 0 1-1.599-.437 3.322 3.322 0 0 1-1.162-1.245c-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.099 3.099 0 0 1 1.189-1.257 3.204 3.204 0 0 1 1.682-.452Zm.205 1.094c-.492 0-.912.123-1.258.369a2.505 2.505 0 0 0-.807.957 2.862 2.862 0 0 0-.273 1.244c0 .438.091.844.273 1.217.183.365.438.656.766.875.337.219.725.328 1.162.328.419 0 .793-.109 1.121-.328.328-.219.588-.519.779-.902.192-.392.283-.83.274-1.313l-.014-1.312a3.517 3.517 0 0 0-.916-.834 2.032 2.032 0 0 0-1.107-.301Zm6.603-3.965V244h-1.121v-9.844h1.121Zm3.446 0V244h-1.122v-9.844h1.122Zm2.707 3.008 2.392 5.031 2.324-5.031h1.34l-5.031 10.117h-1.299l1.955-3.691-3.021-6.426h1.34Zm14.341-.137c.392 0 .789.096 1.19.287.41.183.761.438 1.053.766v-.916h1.121v6.699c0 .811-.164 1.486-.492 2.024a3.098 3.098 0 0 1-1.313 1.203 4.066 4.066 0 0 1-1.791.396c-.419 0-.779-.05-1.08-.15a2.731 2.731 0 0 1-.752-.356c-.21-.136-.401-.268-.574-.396v-1.203c.136.1.314.228.533.383.228.164.497.31.807.437.319.128.674.192 1.066.192.447 0 .857-.082 1.23-.247.374-.164.675-.405.903-.724.228-.319.342-.702.342-1.149v-1.435a3.37 3.37 0 0 1-.971.957c-.401.273-.861.41-1.381.41a3.044 3.044 0 0 1-1.6-.437 3.33 3.33 0 0 1-1.162-1.245c-.282-.528-.424-1.139-.424-1.832 0-.756.142-1.408.424-1.955a3.1 3.1 0 0 1 1.19-1.257 3.203 3.203 0 0 1 1.681-.452Zm.205 1.108c-.492 0-.911.123-1.257.369a2.382 2.382 0 0 0-.807.943 2.862 2.862 0 0 0-.273 1.244c0 .438.091.839.273 1.204.182.364.438.656.766.875.337.218.724.328 1.162.328.419 0 .793-.11 1.121-.328.328-.219.588-.52.779-.903.192-.383.283-.816.274-1.299l-.014-1.312a3.316 3.316 0 0 0-.916-.82 2.033 2.033 0 0 0-1.108-.301Zm8.573-1.108c.692 0 1.308.164 1.845.493.538.328.957.765 1.258 1.312a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.301.538-.72.971-1.258 1.299-.537.328-1.153.492-1.845.492-.693 0-1.308-.164-1.846-.492a3.603 3.603 0 0 1-1.271-1.299 3.655 3.655 0 0 1-.452-1.791c0-.647.151-1.244.452-1.791a3.57 3.57 0 0 1 1.271-1.312c.538-.329 1.153-.493 1.846-.493Zm0 1.094c-.483 0-.907.119-1.272.356a2.335 2.335 0 0 0-.847.916 2.647 2.647 0 0 0-.287 1.23c0 .438.095.848.287 1.231.2.373.483.679.847.916.365.227.789.341 1.272.341.492 0 .916-.114 1.271-.341.365-.237.643-.543.834-.916.201-.383.301-.793.301-1.231 0-.447-.1-.857-.301-1.23a2.233 2.233 0 0 0-.834-.916c-.355-.237-.779-.356-1.271-.356Zm8.23-1.094c.702 0 1.285.146 1.75.438a2.69 2.69 0 0 1 1.039 1.189c.237.502.356 1.067.356 1.696v.67h-5.25c.054.382.187.733.396 1.052.21.319.483.574.821.766.337.182.724.273 1.162.273a2.73 2.73 0 0 0 1.381-.369 5.205 5.205 0 0 0 1.08-.834l-.014 1.217a2.743 2.743 0 0 1-.574.492 3.57 3.57 0 0 1-.862.41 2.868 2.868 0 0 1-1.011.178c-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.272-1.299 3.665 3.665 0 0 1-.451-1.791c0-.647.142-1.244.424-1.791a3.45 3.45 0 0 1 1.162-1.312 3.046 3.046 0 0 1 1.709-.493Zm0 1.094c-.565 0-1.03.191-1.394.574-.365.374-.593.83-.684 1.367h4.115c-.045-.446-.173-.811-.382-1.093a1.876 1.876 0 0 0-.739-.629 2.019 2.019 0 0 0-.916-.219Zm7.028-1.094c.401 0 .774.06 1.121.178.346.109.597.223.752.342v1.203a3.586 3.586 0 0 0-.78-.424 2.599 2.599 0 0 0-1.011-.205c-.429 0-.752.1-.971.301-.21.2-.315.41-.315.629 0 .173.06.351.178.533.128.173.347.314.656.424l1.149.41c.446.155.779.378.998.67.219.292.328.633.328 1.025 0 .383-.109.734-.328 1.053-.21.319-.506.574-.889.766-.373.182-.806.273-1.299.273-.264 0-.542-.036-.834-.109a5.128 5.128 0 0 1-.765-.233 3.592 3.592 0 0 1-.506-.259V242.4c.128.092.305.196.533.315.237.109.488.205.752.287.264.073.511.109.738.109.429 0 .766-.095 1.012-.287.255-.191.383-.428.383-.711a.611.611 0 0 0-.26-.519c-.164-.128-.405-.251-.724-.369l-1.012-.37c-.529-.2-.88-.451-1.053-.751a2.124 2.124 0 0 1-.26-1.053c0-.584.219-1.067.657-1.449.437-.383 1.02-.575 1.75-.575Zm9.802-1.832v1.969h1.996v1.053h-1.996v4.006c0 .282.073.506.219.67.146.164.369.246.67.246.273 0 .501-.032.684-.096.182-.073.341-.15.478-.232v.916a2.26 2.26 0 0 1-.588.341c-.2.092-.474.137-.82.137-.583 0-1.026-.173-1.326-.519-.292-.356-.438-.825-.438-1.409v-4.06h-1.312v-.328c.446-.201.82-.529 1.121-.985.301-.465.565-1.034.793-1.709h.519Zm7.123 1.832c.693 0 1.308.164 1.846.493.538.328.957.765 1.258 1.312a3.57 3.57 0 0 1 .465 1.791 3.57 3.57 0 0 1-.465 1.791c-.301.538-.72.971-1.258 1.299-.538.328-1.153.492-1.846.492-.692 0-1.308-.164-1.845-.492a3.614 3.614 0 0 1-1.272-1.299 3.654 3.654 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791a3.58 3.58 0 0 1 1.272-1.312c.537-.329 1.153-.493 1.845-.493Zm0 1.094c-.483 0-.907.119-1.271.356a2.337 2.337 0 0 0-.848.916 2.66 2.66 0 0 0-.287 1.23c0 .438.096.848.287 1.231.201.373.483.679.848.916.364.227.788.341 1.271.341.493 0 .916-.114 1.272-.341a2.38 2.38 0 0 0 .834-.916c.2-.383.301-.793.301-1.231 0-.447-.101-.857-.301-1.23a2.246 2.246 0 0 0-.834-.916c-.356-.237-.779-.356-1.272-.356Zm13.864-3.486c.665 0 1.207.091 1.627.273a3.91 3.91 0 0 1 1.121.711v1.354a26.162 26.162 0 0 0-.684-.479 3.961 3.961 0 0 0-.875-.451c-.328-.137-.725-.205-1.189-.205-.684 0-1.295.155-1.832.465-.538.31-.962.738-1.272 1.285-.31.538-.465 1.148-.465 1.832 0 .684.155 1.294.465 1.832.31.538.734.966 1.272 1.285.537.31 1.148.465 1.832.465.701 0 1.298-.114 1.791-.342a6.76 6.76 0 0 0 1.23-.724v1.23c-.319.283-.738.529-1.258.738-.51.201-1.098.301-1.763.301a4.874 4.874 0 0 1-1.914-.369 4.954 4.954 0 0 1-1.532-1.039 4.804 4.804 0 0 1-1.025-1.518 4.89 4.89 0 0 1-.356-1.859c0-.656.119-1.272.356-1.846a4.749 4.749 0 0 1 2.557-2.556 4.708 4.708 0 0 1 1.914-.383Zm7.683 2.392c.392 0 .789.096 1.19.287.41.183.761.438 1.052.766v-.916h1.122V244h-1.122v-1.162c-.237.364-.56.683-.97.957-.401.273-.862.41-1.381.41a3.044 3.044 0 0 1-1.6-.437 3.33 3.33 0 0 1-1.162-1.245c-.282-.528-.424-1.139-.424-1.832 0-.756.142-1.408.424-1.955a3.1 3.1 0 0 1 1.19-1.257 3.2 3.2 0 0 1 1.681-.452Zm.205 1.094c-.492 0-.911.123-1.258.369a2.494 2.494 0 0 0-.806.957 2.863 2.863 0 0 0-.274 1.244c0 .438.092.844.274 1.217.182.365.437.656.765.875a2.09 2.09 0 0 0 1.163.328c.419 0 .793-.109 1.121-.328.328-.219.588-.519.779-.902.191-.392.283-.83.273-1.313l-.013-1.312a3.533 3.533 0 0 0-.916-.834 2.033 2.033 0 0 0-1.108-.301Zm6.604-.957v1.08a3.61 3.61 0 0 1 .56-.547c.228-.191.483-.351.766-.478.292-.128.592-.192.902-.192.465 0 .889.105 1.272.315.383.2.688.51.916.929.228.411.342.93.342 1.559V244h-1.121l-.014-4.061c0-.592-.132-1.043-.397-1.353-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41-.355.265-.67.574-.943.93V244h-1.121v-6.836h1.121Zm9.967-.137c.501 0 .934.082 1.298.246.365.155.616.297.752.424v1.135a4.043 4.043 0 0 0-.875-.492c-.328-.146-.72-.219-1.175-.219-.483 0-.907.119-1.272.356a2.345 2.345 0 0 0-.848.916 2.66 2.66 0 0 0-.287 1.23c0 .438.096.848.287 1.231.201.373.484.679.848.916.365.227.789.341 1.272.341.455 0 .847-.068 1.175-.205a4.44 4.44 0 0 0 .875-.506v1.135c-.136.137-.387.283-.752.438-.364.155-.797.232-1.298.232-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.272-1.299 3.665 3.665 0 0 1-.451-1.791c0-.647.151-1.244.451-1.791a3.58 3.58 0 0 1 1.272-1.312c.538-.329 1.153-.493 1.846-.493Zm6.712 0c.702 0 1.286.146 1.75.438.465.292.812.688 1.04 1.189.237.502.355 1.067.355 1.696v.67h-5.25c.055.382.187.733.397 1.052.209.319.483.574.82.766.337.182.724.273 1.162.273a2.73 2.73 0 0 0 1.381-.369 5.205 5.205 0 0 0 1.08-.834l-.014 1.217a2.717 2.717 0 0 1-.574.492 3.58 3.58 0 0 1-.861.41 2.874 2.874 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.611 3.611 0 0 1-1.271-1.299 3.654 3.654 0 0 1-.451-1.791c0-.647.141-1.244.423-1.791.283-.547.67-.984 1.163-1.312a3.04 3.04 0 0 1 1.708-.493Zm0 1.094c-.565 0-1.029.191-1.394.574-.365.374-.592.83-.684 1.367h4.116c-.046-.446-.174-.811-.383-1.093a1.88 1.88 0 0 0-.738-.629 2.023 2.023 0 0 0-.917-.219Zm6.112-3.965V244h-1.121v-9.844h1.121Zm3.445 0V244h-1.121v-9.844h1.121Zm5.141 2.871c.702 0 1.285.146 1.75.438a2.69 2.69 0 0 1 1.039 1.189c.237.502.355 1.067.355 1.696v.67h-5.25c.055.382.187.733.397 1.052.209.319.483.574.82.766.337.182.725.273 1.162.273.492 0 .953-.123 1.381-.369a5.205 5.205 0 0 0 1.08-.834l-.014 1.217a2.717 2.717 0 0 1-.574.492 3.58 3.58 0 0 1-.861.41 2.87 2.87 0 0 1-1.012.178c-.693 0-1.308-.164-1.845-.492a3.614 3.614 0 0 1-1.272-1.299 3.654 3.654 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.312a3.044 3.044 0 0 1 1.709-.493Zm0 1.094c-.565 0-1.03.191-1.395.574-.364.374-.592.83-.683 1.367h4.115c-.046-.446-.173-.811-.383-1.093a1.873 1.873 0 0 0-.738-.629 2.022 2.022 0 0 0-.916-.219Zm11.17-3.965V244h-1.121v-1.162a3.37 3.37 0 0 1-.971.957c-.401.273-.861.41-1.381.41a3.044 3.044 0 0 1-1.6-.437 3.33 3.33 0 0 1-1.162-1.245c-.282-.528-.424-1.139-.424-1.832 0-.756.142-1.408.424-1.955a3.1 3.1 0 0 1 1.19-1.257 3.203 3.203 0 0 1 1.681-.452c.392 0 .789.096 1.19.287.41.183.761.438 1.053.766v-3.924h1.121Zm-3.159 3.992c-.492 0-.911.123-1.257.37a2.404 2.404 0 0 0-.807.929 2.862 2.862 0 0 0-.273 1.244c0 .438.091.844.273 1.217.182.365.438.656.766.875.337.219.724.328 1.162.328.419 0 .793-.109 1.121-.328.328-.219.588-.519.779-.902.192-.392.283-.83.274-1.313l-.014-1.312a3.316 3.316 0 0 0-.916-.82 2.106 2.106 0 0 0-1.108-.288Z"}),u.createElement("path",{fill:"#D11525",d:"M513.779 184.635c.666 0 1.208.091 1.627.273.429.182.802.419 1.121.711v1.354c-.2-.146-.428-.306-.683-.479a3.961 3.961 0 0 0-.875-.451c-.328-.137-.725-.205-1.19-.205-.683 0-1.294.155-1.832.465a3.38 3.38 0 0 0-1.271 1.285c-.31.538-.465 1.148-.465 1.832 0 .684.155 1.294.465 1.832.31.538.734.966 1.271 1.285.538.31 1.149.465 1.832.465.702 0 1.299-.114 1.791-.342a6.738 6.738 0 0 0 1.231-.724v1.23c-.319.283-.739.529-1.258.738-.51.201-1.098.301-1.764.301a4.88 4.88 0 0 1-1.914-.369 4.95 4.95 0 0 1-1.531-1.039 4.787 4.787 0 0 1-1.025-1.518 4.89 4.89 0 0 1-.356-1.859c0-.656.119-1.272.356-1.846a4.745 4.745 0 0 1 2.556-2.556 4.714 4.714 0 0 1 1.914-.383Zm8.217 2.392c.465 0 .889.105 1.272.315.382.2.688.51.916.929.227.411.341.93.341 1.559V194h-1.121l-.013-4.061c0-.592-.133-1.043-.397-1.353-.255-.31-.652-.465-1.189-.465-.365 0-.729.137-1.094.41-.356.265-.67.574-.943.93V194h-1.122v-9.844h1.122v4.088c.145-.182.332-.364.56-.547.228-.191.483-.351.766-.478a2.22 2.22 0 0 1 .902-.192Zm7.465 0c.392 0 .788.096 1.189.287.411.183.761.438 1.053.766v-.916h1.121V194h-1.121v-1.162c-.237.364-.56.683-.971.957-.401.273-.861.41-1.38.41a3.041 3.041 0 0 1-1.6-.437 3.33 3.33 0 0 1-1.162-1.245c-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.105 3.105 0 0 1 1.189-1.257 3.206 3.206 0 0 1 1.682-.452Zm.205 1.094c-.492 0-.911.123-1.258.369a2.494 2.494 0 0 0-.806.957 2.849 2.849 0 0 0-.274 1.244c0 .438.091.844.274 1.217.182.365.437.656.765.875.337.219.725.328 1.162.328.42 0 .793-.109 1.121-.328.329-.219.588-.519.78-.902.191-.392.282-.83.273-1.313l-.014-1.312a3.501 3.501 0 0 0-.916-.834 2.032 2.032 0 0 0-1.107-.301Zm6.604-.957v1.08c.145-.182.332-.364.56-.547.228-.191.483-.351.766-.478a2.22 2.22 0 0 1 .902-.192c.465 0 .889.105 1.272.315.382.2.688.51.916.929.227.411.341.93.341 1.559V194h-1.121l-.013-4.061c0-.592-.133-1.043-.397-1.353-.255-.31-.652-.465-1.189-.465-.365 0-.73.137-1.094.41-.356.265-.67.574-.943.93V194h-1.122v-6.836h1.122Zm9.693-.137c.392 0 .788.096 1.189.287.41.183.761.438 1.053.766v-.916h1.121v6.699c0 .811-.164 1.486-.492 2.024a3.092 3.092 0 0 1-1.313 1.203 4.06 4.06 0 0 1-1.791.396c-.419 0-.779-.05-1.08-.15a2.745 2.745 0 0 1-.752-.356 11.684 11.684 0 0 1-.574-.396v-1.203c.137.1.315.228.533.383.228.164.497.31.807.437.319.128.675.192 1.066.192.447 0 .857-.082 1.231-.247a2.14 2.14 0 0 0 .902-.724c.228-.319.342-.702.342-1.149v-1.435c-.237.364-.56.683-.971.957-.401.273-.861.41-1.38.41a3.041 3.041 0 0 1-1.6-.437 3.322 3.322 0 0 1-1.162-1.245c-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.099 3.099 0 0 1 1.189-1.257 3.206 3.206 0 0 1 1.682-.452Zm.205 1.108c-.492 0-.911.123-1.258.369a2.388 2.388 0 0 0-.806.943 2.849 2.849 0 0 0-.274 1.244c0 .438.091.839.274 1.204.182.364.437.656.765.875.337.218.725.328 1.162.328.42 0 .793-.11 1.121-.328.328-.219.588-.52.78-.903.191-.383.282-.816.273-1.299l-.014-1.312a3.288 3.288 0 0 0-.916-.82 2.032 2.032 0 0 0-1.107-.301Zm8.299-1.108c.702 0 1.285.146 1.75.438a2.69 2.69 0 0 1 1.039 1.189c.237.502.355 1.067.355 1.696v.67h-5.25c.055.382.187.733.397 1.052.209.319.483.574.82.766.337.182.725.273 1.162.273.492 0 .953-.123 1.381-.369a5.179 5.179 0 0 0 1.08-.834l-.013 1.217c-.128.155-.32.319-.575.492a3.58 3.58 0 0 1-.861.41 2.87 2.87 0 0 1-1.012.178c-.692 0-1.308-.164-1.845-.492a3.614 3.614 0 0 1-1.272-1.299 3.654 3.654 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.312a3.044 3.044 0 0 1 1.709-.493Zm0 1.094c-.565 0-1.03.191-1.395.574-.364.374-.592.83-.683 1.367h4.115c-.046-.446-.173-.811-.383-1.093a1.873 1.873 0 0 0-.738-.629 2.022 2.022 0 0 0-.916-.219Zm7.027-1.094c.401 0 .775.06 1.121.178.347.109.597.223.752.342v1.203a3.552 3.552 0 0 0-.779-.424 2.6 2.6 0 0 0-1.012-.205c-.428 0-.752.1-.971.301-.209.2-.314.41-.314.629 0 .173.059.351.178.533.127.173.346.314.656.424l1.148.41c.447.155.78.378.998.67.219.292.329.633.329 1.025 0 .383-.11.734-.329 1.053a2.222 2.222 0 0 1-.888.766c-.374.182-.807.273-1.299.273-.264 0-.542-.036-.834-.109a5.106 5.106 0 0 1-.766-.233 3.626 3.626 0 0 1-.505-.259V192.4c.127.092.305.196.533.315.237.109.487.205.752.287.264.073.51.109.738.109.428 0 .766-.095 1.012-.287.255-.191.382-.428.382-.711a.61.61 0 0 0-.259-.519c-.164-.128-.406-.251-.725-.369l-1.012-.37c-.528-.2-.879-.451-1.052-.751a2.113 2.113 0 0 1-.26-1.053c0-.584.219-1.067.656-1.449.438-.383 1.021-.575 1.75-.575Zm11.006 0c.501 0 .934.082 1.299.246.364.155.615.297.752.424v1.135a4.067 4.067 0 0 0-.875-.492c-.328-.146-.72-.219-1.176-.219-.483 0-.907.119-1.271.356a2.33 2.33 0 0 0-.848.916 2.647 2.647 0 0 0-.287 1.23c0 .438.095.848.287 1.231.2.373.483.679.848.916.364.227.788.341 1.271.341.456 0 .848-.068 1.176-.205a4.47 4.47 0 0 0 .875-.506v1.135c-.137.137-.388.283-.752.438-.365.155-.798.232-1.299.232-.693 0-1.308-.164-1.846-.492a3.62 3.62 0 0 1-1.271-1.299 3.654 3.654 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791.31-.547.734-.984 1.271-1.312.538-.329 1.153-.493 1.846-.493Zm6.713 0c.392 0 .788.096 1.189.287.41.183.761.438 1.053.766v-.916h1.121V194h-1.121v-1.162c-.237.364-.56.683-.971.957-.401.273-.861.41-1.38.41a3.041 3.041 0 0 1-1.6-.437 3.322 3.322 0 0 1-1.162-1.245c-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.099 3.099 0 0 1 1.189-1.257 3.206 3.206 0 0 1 1.682-.452Zm.205 1.094c-.492 0-.911.123-1.258.369a2.494 2.494 0 0 0-.806.957 2.849 2.849 0 0 0-.274 1.244c0 .438.091.844.274 1.217.182.365.437.656.765.875.337.219.725.328 1.162.328.42 0 .793-.109 1.121-.328.328-.219.588-.519.78-.902.191-.392.282-.83.273-1.313l-.014-1.312a3.501 3.501 0 0 0-.916-.834 2.032 2.032 0 0 0-1.107-.301Zm6.603-.957v1.08a3.62 3.62 0 0 1 .561-.547c.228-.191.483-.351.766-.478a2.22 2.22 0 0 1 .902-.192c.465 0 .889.105 1.271.315.383.2.689.51.917.929.227.411.341.93.341 1.559V194h-1.121l-.013-4.061c0-.592-.133-1.043-.397-1.353-.255-.31-.652-.465-1.189-.465-.365 0-.73.137-1.094.41-.356.265-.67.574-.944.93V194H584.9v-6.836h1.121Zm9.967-.137c.502 0 .935.082 1.299.246.365.155.615.297.752.424v1.135a4.067 4.067 0 0 0-.875-.492c-.328-.146-.72-.219-1.176-.219-.483 0-.907.119-1.271.356a2.337 2.337 0 0 0-.848.916 2.66 2.66 0 0 0-.287 1.23c0 .438.096.848.287 1.231.201.373.483.679.848.916.364.227.788.341 1.271.341.456 0 .848-.068 1.176-.205a4.47 4.47 0 0 0 .875-.506v1.135c-.137.137-.387.283-.752.438-.364.155-.797.232-1.299.232-.692 0-1.308-.164-1.845-.492a3.614 3.614 0 0 1-1.272-1.299 3.654 3.654 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791a3.58 3.58 0 0 1 1.272-1.312c.537-.329 1.153-.493 1.845-.493Zm6.713 0c.702 0 1.285.146 1.75.438a2.69 2.69 0 0 1 1.039 1.189c.237.502.356 1.067.356 1.696v.67h-5.25c.054.382.187.733.396 1.052.21.319.483.574.82.766.338.182.725.273 1.163.273.492 0 .952-.123 1.38-.369a5.186 5.186 0 0 0 1.081-.834l-.014 1.217a2.743 2.743 0 0 1-.574.492 3.588 3.588 0 0 1-.862.41 2.868 2.868 0 0 1-1.011.178c-.693 0-1.308-.164-1.846-.492a3.614 3.614 0 0 1-1.272-1.299 3.665 3.665 0 0 1-.451-1.791c0-.647.142-1.244.424-1.791a3.45 3.45 0 0 1 1.162-1.312 3.044 3.044 0 0 1 1.709-.493Zm0 1.094c-.565 0-1.03.191-1.394.574-.365.374-.593.83-.684 1.367h4.115c-.045-.446-.173-.811-.383-1.093a1.867 1.867 0 0 0-.738-.629 2.019 2.019 0 0 0-.916-.219Zm6.111-3.965V194h-1.121v-9.844h1.121Zm3.446 0V194h-1.121v-9.844h1.121Zm5.14 2.871c.702 0 1.286.146 1.75.438.465.292.812.688 1.04 1.189.236.502.355 1.067.355 1.696v.67h-5.25c.055.382.187.733.396 1.052.21.319.484.574.821.766.337.182.724.273 1.162.273a2.73 2.73 0 0 0 1.381-.369 5.205 5.205 0 0 0 1.08-.834l-.014 1.217a2.717 2.717 0 0 1-.574.492 3.58 3.58 0 0 1-.861.41 2.874 2.874 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.611 3.611 0 0 1-1.271-1.299 3.654 3.654 0 0 1-.451-1.791c0-.647.141-1.244.423-1.791a3.45 3.45 0 0 1 1.162-1.312 3.046 3.046 0 0 1 1.709-.493Zm0 1.094c-.565 0-1.03.191-1.394.574-.365.374-.593.83-.684 1.367h4.116c-.046-.446-.174-.811-.383-1.093a1.876 1.876 0 0 0-.739-.629 2.019 2.019 0 0 0-.916-.219Zm11.17-3.965V194h-1.121v-1.162c-.237.364-.56.683-.97.957-.401.273-.862.41-1.381.41a3.041 3.041 0 0 1-1.6-.437 3.33 3.33 0 0 1-1.162-1.245c-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.105 3.105 0 0 1 1.189-1.257 3.206 3.206 0 0 1 1.682-.452c.392 0 .788.096 1.19.287.41.183.761.438 1.052.766v-3.924h1.121Zm-3.158 3.992c-.492 0-.911.123-1.258.37a2.41 2.41 0 0 0-.806.929 2.849 2.849 0 0 0-.274 1.244c0 .438.091.844.274 1.217.182.365.437.656.765.875.338.219.725.328 1.162.328.42 0 .793-.109 1.122-.328.328-.219.587-.519.779-.902.191-.392.282-.83.273-1.313l-.013-1.312a3.316 3.316 0 0 0-.916-.82 2.108 2.108 0 0 0-1.108-.288Z"}),u.createElement("circle",{cx:259,cy:158,r:5,fill:"#6C65E5",stroke:"#F2F2F5",strokeWidth:2}),u.createElement("path",{stroke:"#6C65E5",strokeLinecap:"round",strokeWidth:1.5,d:"M259 157v-50"}),u.createElement("path",{fill:"#615BC2",d:"M205.775 64.813v5.564c0 .793-.168 1.477-.505 2.05a3.345 3.345 0 0 1-1.34 1.3c-.565.3-1.208.45-1.928.45-.711 0-1.354-.15-1.928-.45a3.43 3.43 0 0 1-1.353-1.3c-.328-.574-.492-1.257-.492-2.05v-5.564h1.23v5.523c0 .62.114 1.121.342 1.504a2.1 2.1 0 0 0 .929.834 3.26 3.26 0 0 0 1.272.246c.456-.01.875-.096 1.258-.26.392-.173.702-.447.929-.82.237-.383.356-.884.356-1.504v-5.523h1.23Zm4.567 2.214c.401 0 .775.06 1.121.178.346.11.597.223.752.342v1.203a3.572 3.572 0 0 0-.779-.424 2.613 2.613 0 0 0-1.012-.205c-.429 0-.752.1-.971.3-.21.201-.314.411-.314.63 0 .173.059.35.177.533.128.173.347.314.657.424l1.148.41c.447.155.779.378.998.67.219.292.328.633.328 1.025 0 .383-.109.734-.328 1.053a2.22 2.22 0 0 1-.889.766c-.373.182-.806.273-1.298.273-.265 0-.543-.036-.834-.11a5.073 5.073 0 0 1-.766-.232 3.571 3.571 0 0 1-.506-.26V72.4c.128.091.306.196.533.315.237.11.488.205.752.287.265.073.511.11.739.11.428 0 .765-.096 1.011-.288.256-.191.383-.428.383-.71a.61.61 0 0 0-.26-.52c-.164-.128-.405-.25-.724-.37l-1.012-.368c-.529-.201-.88-.452-1.053-.752a2.122 2.122 0 0 1-.259-1.053c0-.584.218-1.067.656-1.45.437-.382 1.021-.574 1.75-.574Zm6.631 0c.701 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.209.32.483.575.82.766.337.182.725.273 1.162.273.492 0 .953-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.726 2.726 0 0 1-.574.492c-.246.164-.533.301-.861.41a2.881 2.881 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.622 3.622 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791a3.438 3.438 0 0 1 1.162-1.313 3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.395.574-.364.374-.592.83-.683 1.368h4.115c-.046-.447-.173-.812-.383-1.094a1.882 1.882 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm6.111-.957v1.367c.264-.456.583-.82.957-1.094.374-.273.757-.41 1.148-.41.265 0 .502.046.711.137v1.299a1.698 1.698 0 0 0-.875-.26c-.464 0-.843.164-1.134.492-.283.328-.552.72-.807 1.176V74h-1.121v-6.836h1.121Zm9.447-3.281c.265 0 .483.095.657.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.849.849 0 0 1-.657.287.891.891 0 0 1-.67-.287.934.934 0 0 1-.259-.642c0-.247.086-.46.259-.643a.891.891 0 0 1 .67-.287Zm.698 3.281V74h-1.122v-5.783h-1.08v-1.053h2.202Zm4.457-.137c.401 0 .774.06 1.121.178.346.11.597.223.752.342v1.203a3.582 3.582 0 0 0-.78-.424 2.605 2.605 0 0 0-1.011-.205c-.429 0-.752.1-.971.3-.21.201-.315.411-.315.63 0 .173.06.35.178.533.128.173.347.314.656.424l1.149.41c.446.155.779.378.998.67.219.292.328.633.328 1.025 0 .383-.109.734-.328 1.053-.21.319-.506.574-.889.766-.373.182-.806.273-1.299.273-.264 0-.542-.036-.834-.11a5.095 5.095 0 0 1-.765-.232 3.516 3.516 0 0 1-.506-.26V72.4c.128.091.305.196.533.315.237.11.488.205.752.287.264.073.51.11.738.11.429 0 .766-.096 1.012-.288.255-.191.383-.428.383-.71a.612.612 0 0 0-.26-.52c-.164-.128-.405-.25-.724-.37l-1.012-.368c-.529-.201-.88-.452-1.053-.752-.173-.31-.26-.661-.26-1.053 0-.584.219-1.067.657-1.45.437-.382 1.02-.574 1.75-.574Zm9.953 0c.401 0 .774.06 1.121.178.346.11.597.223.752.342v1.203a3.558 3.558 0 0 0-.78-.424 2.605 2.605 0 0 0-1.011-.205c-.429 0-.752.1-.971.3-.21.201-.314.411-.314.63 0 .173.059.35.177.533.128.173.347.314.657.424l1.148.41c.447.155.779.378.998.67.219.292.328.633.328 1.025 0 .383-.109.734-.328 1.053-.21.319-.506.574-.889.766-.373.182-.806.273-1.298.273-.265 0-.543-.036-.834-.11a5.073 5.073 0 0 1-.766-.232 3.516 3.516 0 0 1-.506-.26V72.4c.128.091.305.196.533.315.237.11.488.205.752.287.265.073.511.11.738.11.429 0 .766-.096 1.012-.288.255-.191.383-.428.383-.71a.612.612 0 0 0-.26-.52c-.164-.128-.405-.25-.724-.37l-1.012-.368c-.529-.201-.88-.452-1.053-.752-.173-.31-.26-.661-.26-1.053 0-.584.219-1.067.657-1.45.437-.382 1.021-.574 1.75-.574Zm6.631 0c.701 0 1.285.146 1.75.438.464.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.209.32.483.575.82.766.337.182.724.273 1.162.273.492 0 .952-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.726 2.726 0 0 1-.574.492c-.246.164-.533.301-.861.41a2.885 2.885 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.622 3.622 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.423-1.791.283-.547.67-.984 1.163-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.566 0-1.03.192-1.395.574-.365.374-.592.83-.684 1.368h4.116c-.046-.447-.174-.812-.383-1.094a1.882 1.882 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm6.111-.957v1.08c.146-.182.333-.364.56-.547.228-.191.483-.35.766-.478.292-.128.592-.192.902-.192.465 0 .889.105 1.272.315.383.2.688.51.916.93.228.41.342.93.342 1.558V74h-1.121l-.014-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V74h-1.121v-6.836h1.121Zm13.057-3.008V74h-1.122v-1.162c-.237.365-.56.684-.97.957-.401.273-.862.41-1.381.41a3.039 3.039 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.282-.528-.424-1.139-.424-1.832 0-.756.142-1.408.424-1.955a3.109 3.109 0 0 1 1.19-1.258 3.202 3.202 0 0 1 1.681-.45c.392 0 .789.095 1.19.286.41.183.761.438 1.052.766v-3.924h1.122Zm-3.159 3.992c-.492 0-.911.124-1.258.37a2.413 2.413 0 0 0-.806.93 2.86 2.86 0 0 0-.274 1.243c0 .438.092.843.274 1.217.182.365.437.656.765.875.338.219.725.328 1.163.328.419 0 .793-.109 1.121-.328.328-.219.588-.52.779-.902a2.82 2.82 0 0 0 .273-1.313l-.013-1.312a3.334 3.334 0 0 0-.916-.82 2.11 2.11 0 0 0-1.108-.288Zm6.576-4.265c.265 0 .484.095.657.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.847.847 0 0 1-.657.287.887.887 0 0 1-.669-.287.93.93 0 0 1-.26-.642.9.9 0 0 1 .26-.643.887.887 0 0 1 .669-.287Zm.698 3.281V74h-1.121v-5.783h-1.08v-1.053h2.201Zm3.541 0v1.08c.146-.182.332-.364.56-.547.228-.191.483-.35.766-.478.292-.128.592-.192.902-.192.465 0 .889.105 1.272.315.383.2.688.51.916.93.228.41.342.93.342 1.558V74h-1.122l-.013-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V74h-1.121v-6.836h1.121Zm9.693-.137c.392 0 .789.096 1.19.287.41.183.761.438 1.052.766v-.916h1.121v6.7c0 .81-.164 1.485-.492 2.023a3.087 3.087 0 0 1-1.312 1.203 4.06 4.06 0 0 1-1.791.396c-.42 0-.78-.05-1.08-.15a2.726 2.726 0 0 1-.752-.355c-.21-.137-.401-.27-.575-.397v-1.203c.137.1.315.228.534.383.228.164.496.31.806.437.319.128.675.192 1.067.192a3.03 3.03 0 0 0 1.23-.246c.374-.165.675-.406.903-.725.227-.32.341-.702.341-1.149v-1.435c-.237.365-.56.684-.97.957-.401.273-.862.41-1.381.41a3.036 3.036 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.113 3.113 0 0 1 1.189-1.258 3.208 3.208 0 0 1 1.682-.45Zm.205 1.108c-.492 0-.911.123-1.258.369a2.39 2.39 0 0 0-.806.943 2.847 2.847 0 0 0-.274 1.244c0 .438.091.839.274 1.203.182.365.437.657.765.875a2.09 2.09 0 0 0 1.162.329c.42 0 .793-.11 1.122-.329.328-.218.587-.519.779-.902.191-.383.282-.816.273-1.299l-.013-1.312a3.334 3.334 0 0 0-.916-.82 2.04 2.04 0 0 0-1.108-.301Zm11.471-2.94v1.97h1.996v1.052h-1.996v4.006c0 .282.073.505.219.67.145.164.369.246.67.246.273 0 .501-.032.683-.096a3.38 3.38 0 0 0 .479-.233v.917c-.183.145-.379.26-.588.341-.201.091-.474.137-.821.137-.583 0-1.025-.173-1.326-.52-.291-.355-.437-.824-.437-1.408v-4.06h-1.313v-.328c.447-.2.821-.529 1.121-.985.301-.465.565-1.034.793-1.709h.52Zm7.383 1.832c.465 0 .888.105 1.271.315.383.2.688.51.916.93.228.41.342.93.342 1.558V74h-1.121l-.014-4.06c0-.593-.132-1.044-.396-1.354-.255-.31-.652-.465-1.19-.465-.364 0-.729.137-1.093.41-.356.265-.67.575-.944.93V74h-1.121v-9.844h1.121v4.088c.146-.182.333-.364.561-.547.228-.191.483-.35.765-.478.292-.128.593-.192.903-.192Zm7.465 0c.701 0 1.285.146 1.75.438.464.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.209.32.483.575.82.766.337.182.724.273 1.162.273.492 0 .952-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.726 2.726 0 0 1-.574.492c-.246.164-.533.301-.861.41a2.885 2.885 0 0 1-1.012.178c-.693 0-1.308-.164-1.846-.492a3.622 3.622 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.423-1.791.283-.547.67-.984 1.163-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.566 0-1.03.192-1.395.574-.365.374-.592.83-.684 1.368h4.116c-.046-.447-.174-.812-.383-1.094a1.882 1.882 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218ZM185.288 87.027c.501 0 .934.082 1.299.246.364.155.615.297.752.424v1.135a4.042 4.042 0 0 0-.875-.492c-.328-.146-.72-.219-1.176-.219-.483 0-.907.119-1.271.356a2.337 2.337 0 0 0-.848.916 2.664 2.664 0 0 0-.287 1.23c0 .438.096.848.287 1.23.2.374.483.68.848.916.364.228.788.342 1.271.342.456 0 .848-.068 1.176-.205a4.49 4.49 0 0 0 .875-.506v1.135c-.137.137-.388.283-.752.438-.365.155-.798.232-1.299.232-.693 0-1.308-.164-1.846-.492a3.622 3.622 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791a3.59 3.59 0 0 1 1.271-1.313c.538-.328 1.153-.492 1.846-.492Zm7.246 0c.465 0 .889.105 1.272.315.382.2.688.51.916.93.228.41.341.93.341 1.558V94h-1.121l-.013-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.651-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V94h-1.121v-9.844h1.121v4.088c.145-.182.332-.364.56-.547.228-.191.483-.35.766-.478.292-.128.592-.192.902-.192Zm7.465 0c.392 0 .788.096 1.189.287.411.183.762.438 1.053.766v-.916h1.121V94h-1.121v-1.162c-.237.365-.56.684-.97.957-.402.273-.862.41-1.381.41a3.036 3.036 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.113 3.113 0 0 1 1.189-1.258 3.208 3.208 0 0 1 1.682-.45Zm.205 1.094c-.492 0-.911.123-1.258.37a2.495 2.495 0 0 0-.806.956 2.847 2.847 0 0 0-.274 1.244c0 .438.091.843.274 1.217.182.365.437.656.765.875a2.09 2.09 0 0 0 1.162.328c.42 0 .793-.109 1.121-.328.329-.219.588-.52.78-.902.191-.392.282-.83.273-1.313l-.013-1.312a3.55 3.55 0 0 0-.916-.834 2.04 2.04 0 0 0-1.108-.3Zm6.604-.957v1.08c.145-.182.332-.364.56-.547.228-.191.483-.35.766-.478.291-.128.592-.192.902-.192.465 0 .889.105 1.272.315.382.2.688.51.916.93.227.41.341.93.341 1.558V94h-1.121l-.013-4.06c0-.593-.132-1.044-.397-1.354-.255-.31-.652-.465-1.189-.465-.365 0-.729.137-1.094.41a4.8 4.8 0 0 0-.943.93V94h-1.121v-6.836h1.121Zm9.693-.137c.392 0 .788.096 1.189.287a3.04 3.04 0 0 1 1.053.766v-.916h1.121v6.7c0 .81-.164 1.485-.492 2.023a3.092 3.092 0 0 1-1.312 1.203 4.06 4.06 0 0 1-1.791.396c-.42 0-.78-.05-1.081-.15a2.733 2.733 0 0 1-.751-.355c-.21-.137-.402-.27-.575-.397v-1.203c.137.1.315.228.534.383.227.164.496.31.806.437.319.128.675.192 1.067.192a3.03 3.03 0 0 0 1.23-.246c.374-.165.675-.406.902-.725.228-.32.342-.702.342-1.149v-1.435c-.237.365-.56.684-.971.957a2.39 2.39 0 0 1-1.38.41 3.036 3.036 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.283-.528-.424-1.139-.424-1.832 0-.756.141-1.408.424-1.955a3.113 3.113 0 0 1 1.189-1.258 3.208 3.208 0 0 1 1.682-.45Zm.205 1.108c-.492 0-.911.123-1.258.369a2.39 2.39 0 0 0-.806.943 2.847 2.847 0 0 0-.274 1.244c0 .438.091.839.274 1.203.182.365.437.657.765.875.337.22.725.329 1.162.329.42 0 .793-.11 1.121-.329.329-.218.588-.519.78-.902.191-.383.282-.816.273-1.299l-.014-1.312a3.305 3.305 0 0 0-.916-.82c-.319-.201-.688-.301-1.107-.301Zm8.299-1.108c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.21.32.483.575.82.766.337.182.725.273 1.162.273.493 0 .953-.123 1.381-.369a5.166 5.166 0 0 0 1.08-.834l-.013 1.217a2.735 2.735 0 0 1-.575.492c-.246.164-.533.301-.861.41a2.881 2.881 0 0 1-1.012.178c-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.395.574-.364.374-.592.83-.683 1.368h4.115c-.046-.447-.173-.812-.383-1.094a1.868 1.868 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm7.027-1.094c.401 0 .775.06 1.121.178.347.11.597.223.752.342v1.203a3.548 3.548 0 0 0-.779-.424 2.606 2.606 0 0 0-1.012-.205c-.428 0-.752.1-.97.3-.21.201-.315.411-.315.63 0 .173.059.35.178.533.127.173.346.314.656.424l1.149.41c.446.155.779.378.998.67.218.292.328.633.328 1.025 0 .383-.11.734-.328 1.053-.21.319-.506.574-.889.766-.374.182-.807.273-1.299.273-.264 0-.542-.036-.834-.11a5.109 5.109 0 0 1-.766-.232 3.548 3.548 0 0 1-.505-.26V92.4c.127.091.305.196.533.315.237.11.487.205.752.287.264.073.51.11.738.11.428 0 .766-.096 1.012-.288.255-.191.383-.428.383-.71a.612.612 0 0 0-.26-.52c-.164-.128-.406-.25-.725-.37l-1.012-.368c-.528-.201-.879-.452-1.052-.752-.173-.31-.26-.661-.26-1.053 0-.584.219-1.067.656-1.45.438-.382 1.021-.574 1.75-.574Zm9.803-1.832v1.97h1.996v1.052h-1.996v4.006c0 .282.073.505.219.67.146.164.369.246.67.246.273 0 .501-.032.683-.096.183-.073.342-.15.479-.233v.917c-.183.145-.379.26-.588.341-.201.091-.474.137-.82.137-.584 0-1.026-.173-1.327-.52-.291-.355-.437-.824-.437-1.408v-4.06h-1.313v-.328c.447-.2.821-.529 1.121-.985.301-.465.566-1.034.793-1.709h.52Zm7.123 1.832c.693 0 1.308.164 1.846.492.537.329.957.766 1.258 1.313a3.58 3.58 0 0 1 .464 1.791 3.58 3.58 0 0 1-.464 1.791c-.301.538-.721.97-1.258 1.299-.538.328-1.153.492-1.846.492-.693 0-1.308-.164-1.846-.492a3.622 3.622 0 0 1-1.271-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.15-1.244.451-1.791a3.59 3.59 0 0 1 1.271-1.313c.538-.328 1.153-.492 1.846-.492Zm0 1.094c-.483 0-.907.119-1.271.356a2.337 2.337 0 0 0-.848.916 2.652 2.652 0 0 0-.287 1.23c0 .438.095.848.287 1.23.2.374.483.68.848.916.364.228.788.342 1.271.342.492 0 .916-.114 1.271-.342.365-.236.643-.542.834-.916.201-.382.301-.792.301-1.23 0-.447-.1-.857-.301-1.23a2.239 2.239 0 0 0-.834-.916c-.355-.237-.779-.356-1.271-.356Zm12.879-1.094c.629 0 1.189.15 1.682.451.501.292.893.712 1.175 1.258.292.547.438 1.199.438 1.955 0 .693-.146 1.304-.438 1.832a3.217 3.217 0 0 1-1.148 1.245 2.991 2.991 0 0 1-1.6.437c-.519 0-.984-.137-1.394-.41a3.415 3.415 0 0 1-.957-.957V94h-1.121v-9.844h1.121v3.924a3.073 3.073 0 0 1 1.039-.766 2.83 2.83 0 0 1 1.203-.287Zm-.205 1.108c-.419 0-.789.1-1.108.3a3.611 3.611 0 0 0-.916.82l-.013 1.313c0 .483.091.916.273 1.3.192.382.451.683.779.901a2.02 2.02 0 0 0 1.122.329c.446 0 .834-.11 1.162-.329.328-.218.583-.51.765-.875.183-.364.274-.765.274-1.203 0-.446-.096-.86-.287-1.244a2.297 2.297 0 0 0-.793-.943c-.347-.246-.766-.37-1.258-.37Zm8.162-1.108c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.21.32.483.575.82.766.338.182.725.273 1.162.273.493 0 .953-.123 1.381-.369a5.166 5.166 0 0 0 1.08-.834l-.013 1.217a2.735 2.735 0 0 1-.575.492c-.246.164-.533.301-.861.41a2.881 2.881 0 0 1-1.012.178c-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.395.574-.364.374-.592.83-.683 1.368h4.115c-.046-.447-.173-.812-.383-1.094a1.868 1.868 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm10.213-.957v1.367c.264-.456.583-.82.957-1.094.374-.273.756-.41 1.148-.41.265 0 .502.046.711.137v1.299a1.698 1.698 0 0 0-.875-.26c-.465 0-.843.164-1.135.492-.282.328-.551.72-.806 1.176V94h-1.121v-6.836h1.121Zm7.068-.137c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.356 1.066.356 1.695v.67h-5.25c.054.382.187.733.396 1.052.21.32.483.575.821.766.337.182.724.273 1.162.273.492 0 .952-.123 1.38-.369a5.2 5.2 0 0 0 1.081-.834l-.014 1.217a2.752 2.752 0 0 1-.574.492 3.6 3.6 0 0 1-.862.41 2.88 2.88 0 0 1-1.011.178c-.693 0-1.308-.164-1.846-.492a3.617 3.617 0 0 1-1.272-1.299 3.664 3.664 0 0 1-.451-1.791c0-.647.142-1.244.424-1.791.283-.547.67-.984 1.162-1.313a3.053 3.053 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.394.574-.365.374-.593.83-.684 1.368h4.115c-.045-.447-.173-.812-.383-1.094a1.868 1.868 0 0 0-.738-.63 2.021 2.021 0 0 0-.916-.218Zm11.02-.957L294.882 94h-.697l-3.077-6.836h1.34l2.065 5.031 2.242-5.03h1.34Zm2.461-3.281c.264 0 .483.096.656.287a.88.88 0 0 1 .273.642.91.91 0 0 1-.273.643.847.847 0 0 1-.656.287.888.888 0 0 1-.67-.287.935.935 0 0 1-.26-.642c0-.247.087-.46.26-.643a.888.888 0 0 1 .67-.287Zm.697 3.281V94h-1.121v-5.783h-1.08v-1.053h2.201Zm5.236-.137c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.356 1.066.356 1.695v.67h-5.25c.054.382.187.733.396 1.052.21.32.483.575.821.766.337.182.724.273 1.162.273.492 0 .952-.123 1.381-.369a5.219 5.219 0 0 0 1.08-.834l-.014 1.217a2.752 2.752 0 0 1-.574.492c-.246.164-.533.301-.862.41a2.88 2.88 0 0 1-1.011.178c-.693 0-1.308-.164-1.846-.492a3.606 3.606 0 0 1-1.271-1.299 3.654 3.654 0 0 1-.452-1.791c0-.647.142-1.244.424-1.791.283-.547.67-.984 1.162-1.313a3.053 3.053 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.394.574-.365.374-.593.83-.684 1.368h4.115c-.045-.447-.173-.812-.382-1.094a1.878 1.878 0 0 0-.739-.63 2.021 2.021 0 0 0-.916-.218Zm13.959-.957L318.056 94h-.698l-1.873-4.826L313.612 94h-.697l-2.393-6.836h1.34l1.518 4.799 1.791-4.799h.629l1.791 4.799 1.517-4.799h1.34Zm4.184-.137c.702 0 1.285.146 1.75.438.465.291.811.688 1.039 1.19.237.5.355 1.066.355 1.695v.67h-5.25c.055.382.187.733.397 1.052.209.32.483.575.82.766.337.182.725.273 1.162.273.492 0 .953-.123 1.381-.369a5.166 5.166 0 0 0 1.08-.834l-.013 1.217a2.735 2.735 0 0 1-.575.492c-.246.164-.533.301-.861.41a2.881 2.881 0 0 1-1.012.178c-.692 0-1.308-.164-1.845-.492a3.617 3.617 0 0 1-1.272-1.299 3.653 3.653 0 0 1-.451-1.791c0-.647.141-1.244.424-1.791.282-.547.67-.984 1.162-1.313a3.05 3.05 0 0 1 1.709-.492Zm0 1.094c-.565 0-1.03.192-1.395.574-.364.374-.592.83-.683 1.368h4.115c-.046-.447-.173-.812-.383-1.094a1.868 1.868 0 0 0-.738-.63 2.024 2.024 0 0 0-.916-.218Zm11.17-3.965V94h-1.121v-1.162a3.355 3.355 0 0 1-.971.957c-.401.273-.861.41-1.381.41a3.041 3.041 0 0 1-1.6-.437c-.483-.301-.87-.716-1.162-1.245-.282-.528-.423-1.139-.423-1.832 0-.756.141-1.408.423-1.955a3.115 3.115 0 0 1 1.19-1.258 3.204 3.204 0 0 1 1.681-.45c.392 0 .789.095 1.19.286.41.183.761.438 1.053.766v-3.924h1.121Zm-3.158 3.992c-.493 0-.912.124-1.258.37a2.416 2.416 0 0 0-.807.93 2.86 2.86 0 0 0-.273 1.243c0 .438.091.843.273 1.217.182.365.438.656.766.875.337.219.724.328 1.162.328.419 0 .793-.109 1.121-.328.328-.219.588-.52.779-.902.192-.392.283-.83.274-1.313l-.014-1.312a3.334 3.334 0 0 0-.916-.82 2.11 2.11 0 0 0-1.107-.288Z"}),u.createElement("defs",null,u.createElement("clipPath",{id:"a"},u.createElement("path",{fill:"#fff",d:"M531 117h18v18h-18z"})))),qn=()=>{const e=u.useRef(null),t=m1(),a=b1(t.breakpoints.down("md")),[r,o]=u.useState(!1);return l(G,{children:[n(w,{condition:!a,show:l($,{variant:"body2",children:["Show change request process"," "]})}),n(M1,{title:"Change request process",ref:e,onClick:()=>o(!0),children:n(nn,{})}),n(ht,{open:r,anchorEl:e.current,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:()=>o(!1),children:l(E,{sx:{p:{xs:2,md:4},maxWidth:920},children:[n($,{variant:"h3",children:"Change request process:"}),n($,{variant:"body2",children:l("ol",{children:[n("li",{children:"When changes are detected they are added into a draft mode"}),n("li",{children:"The next step is for those changes to be sent for review"}),l("li",{children:["These changes can be seen by everyone but only who has ",n("strong",{children:"“Review change request”"})," ","permission can Approve them"]}),l("ul",{children:[l("li",{children:["If changes are Approved then someone who has"," ",n("strong",{children:"“Apply change request”"})," ","permission needs to apply these changes to be live on the feature toggles and request is Closed"]}),n("li",{children:"If changes are Cancelled by the author or admin then change request goes automatically to Cancelled and request is Closed."})]})]})}),n(E,{sx:{mt:3},children:n(Kc,{style:{maxWidth:"calc(100vw - 4rem)"}})})]})})]})},_3=h(E)(({theme:e})=>({padding:e.spacing(1),display:"flex",justifyContent:"center","& .MuiInputBase-input":{fontSize:e.fontSizes.smallBody}})),Jc=()=>{const{trackEvent:e}=P1(),[t,a]=u.useState({isOpen:!1,enableEnvironment:"",isEnabled:!1,requiredApprovals:1}),r=m1(),o=Y("projectId"),{data:i,loading:s,refetchChangeRequestConfig:c}=fa(o),{updateChangeRequestEnvironmentConfig:d}=Ze(),{setToastData:p,setToastApiError:m}=u1(),g=(_,D,P)=>()=>{a({isOpen:!0,enableEnvironment:_,isEnabled:D,requiredApprovals:P})},f=async()=>{t.enableEnvironment&&await C(),a(_=>({..._,isOpen:!1}))};async function C(_){try{await d(_||{project:o,environment:t.enableEnvironment,enabled:!t.isEnabled,requiredApprovals:t.requiredApprovals}),p({type:"success",title:"Updated change request status",text:"Successfully updated change request status."}),await c()}catch(D){m(h1(D))}}const S=Array.from(Array(10).keys()).map(_=>String(_+1)).map(_=>({key:_,label:`${_} ${_==="1"?"approval":"approvals"}`,sx:{fontSize:r.fontSizes.smallBody}}));function b(_,D){C({project:o,environment:_.environment,enabled:_.changeRequestEnabled,requiredApprovals:Number(D)})}const R=u.useMemo(()=>[{Header:"Environment",accessor:"environment",disableSortBy:!0},{Header:"Type",accessor:"type",disableGlobalFilter:!0,disableSortBy:!0},{Header:"Required approvals",Cell:({row:{original:_}})=>{const{hasAccess:D}=u.useContext(X1);return n(w,{condition:_.changeRequestEnabled,show:n(_3,{"data-loading":!0,children:n(ft,{sx:{width:"140px",marginLeft:1},options:S,value:_.requiredApprovals||1,onChange:P=>{b(_,P)},disabled:!D(V2,o),IconComponent:fn,fullWidth:!0})})})},width:100,disableGlobalFilter:!0,disableSortBy:!0},{Header:"Status",accessor:"changeRequestEnabled",id:"changeRequestEnabled",align:"center",Cell:({value:_,row:{original:D}})=>n(_3,{"data-loading":!0,children:n(W3,{checked:_,projectId:o,permission:V2,inputProps:{"aria-label":D.environment},onClick:g(D.environment,D.changeRequestEnabled,D.requiredApprovals)})}),width:100,disableGlobalFilter:!0,disableSortBy:!0}],[]),{getTableProps:v,getTableBodyProps:F,headerGroups:T,rows:j,prepareRow:M}=t1.useTable({columns:R,data:i,sortTypes:Oe,autoResetGlobalFilter:!1,disableSortRemove:!0,defaultColumn:{Cell:o1}},t1.useGlobalFilter);return l(d1,{header:n(i1,{titleElement:"Change request configuration",actions:n(qn,{})}),isLoading:s,children:[n(w1,{severity:"info",sx:{mb:3},children:"If change request is enabled for an environment, then any change in that environment needs to be approved before it will be applied"}),l(st,{...v(),children:[n(ct,{headerGroups:T}),n(lt,{...F(),children:j.map(_=>(M(_),n(dt,{hover:!0,..._.getRowProps(),children:_.cells.map(D=>n(ut,{...D.getCellProps(),children:D.render("Cell")}))})))})]}),l(G1,{onClick:()=>{e("change_request",{props:{eventType:`change request ${t.isEnabled?"disabled":"enabled"}`}}),f()},open:t.isOpen,onClose:()=>a(_=>({..._,isOpen:!1})),primaryButtonText:t.isEnabled?"Disable":"Enable",secondaryButtonText:"Cancel",title:`${t.isEnabled?"Disable":"Enable"} change requests`,children:[l($,{sx:{mb:1},children:["You are about to"," ",t.isEnabled?"disable":"enable"," “Change request”",n(w,{condition:!!t.enableEnvironment,show:l(G,{children:[" ","for"," ",n("strong",{children:t.enableEnvironment})]})}),"."]}),n(w,{condition:!t.isEnabled,show:n($,{variant:"body2",color:"text.secondary",children:"When enabling change request for an environment, you need to be sure that your Unleash Admin already have created the custom project roles in your Unleash instance so you can assign your project members from the project access page."})})]})]})},Yc=()=>{const e=Y("projectId"),t=F1(e),{hasAccess:a}=u.useContext(X1),{isOss:r,isPro:o}=p1();return x1(`Project change request configuration – ${t}`),r()||o()?n(d1,{header:n(i1,{titleElement:"Change request configuration",actions:n(qn,{})}),sx:{justifyContent:"center"},children:n(wt,{feature:"change-requests"})}):a(k1,e)?n(Jc,{}):n(d1,{header:n(i1,{title:"Change request configuration"}),children:n(w1,{severity:"error",children:"You need project owner permissions to access this section."})})},Un=()=>{const{makeRequest:e,createRequest:t,errors:a,loading:r}=b2({propagateErrors:!0});return{deleteToken:async(s,c)=>{const d=`api/admin/projects/${c}/api-tokens/${s}`,p=t(d,{method:"DELETE"});try{return await e(p.caller,p.id)}catch(m){throw m}},createToken:async(s,c)=>{const d=`api/admin/projects/${c}/api-tokens`,p=t(d,{method:"POST",body:JSON.stringify(s)});try{return await e(p.caller,p.id)}catch(m){throw m}},errors:a,loading:r}},Gn=(e,t={})=>{const a=K1(`api/admin/projects/${e}/api-tokens`),{data:r,error:o,mutate:i}=de(a,Qc,t),s=u.useMemo(()=>r??[],[r]),c=u.useCallback(()=>{i().catch(console.warn)},[i]);return{tokens:s,error:o,loading:!o&&!r,refetch:c}},Qc=async e=>(await(await fetch(e).then(J1("Project Api tokens"))).json()).tokens,w3="Create project API token",Xc=()=>{const e=Y("projectId"),{setToastApiError:t}=u1(),{uiConfig:a}=p1(),r=T1(),[o,i]=u.useState(!1),[s,c]=u.useState(""),{getApiTokenPayload:d,username:p,type:m,environment:g,setUsername:f,setTokenType:C,setEnvironment:S,isValid:b,errors:R,clearErrors:v}=gr(e),{createToken:F,loading:T}=Un(),{refetch:j}=Gn(e),{trackEvent:M}=P1();x1(w3);const _=`api/admin/project/${e}/api-tokens`;return l(y2,{loading:T,title:w3,modal:!0,description:"Unleash SDKs use API tokens to authenticate to the Unleash API. Client SDKs need a token with 'client privileges', which allows them to fetch feature toggle configurations and post usage metrics.",documentationLink:"https://docs.getunleash.io/reference/api-tokens-and-client-keys",documentationLinkLabel:"API tokens documentation",formatApiCode:()=>`curl --location --request POST '${a.unleashUrl}/${_}' \\
|
|
7
|
-
--header 'Authorization: INSERT_API_KEY' \\
|
|
8
|
-
--header 'Content-Type: application/json' \\
|
|
9
|
-
--data-raw '${JSON.stringify(d(),void 0,2)}'`,children:[l(fr,{handleSubmit:async J=>{if(J.preventDefault(),!!b())try{const N=d();await F(N,e).then(L=>L.json()).then(L=>{ba(),c(L.secret),i(!0),M("project_api_tokens",{props:{eventType:"api_key_created"}}),j()})}catch(N){t(h1(N))}},handleCancel:()=>{r(V1)},mode:"Create",actions:n(va,{name:"token",permission:ya,projectId:e}),children:[n(vr,{username:p,setUsername:f,errors:R,clearErrors:v}),n(yr,{type:m,setType:C}),n(br,{type:m,environment:g,setEnvironment:S})]}),n(Cr,{open:o,closeConfirm:()=>{i(!1),r(V1)},token:s,type:m})]})},e5=()=>{const e=T1();return n(U1,{open:!0,onClose:()=>e(V1),label:"Create API token",children:n(Xc,{})})},t5=()=>{const e=Y("projectId"),t=F1(e),{hasAccess:a}=u.useContext(X1),{tokens:r,loading:o,refetch:i}=Gn(e),{trackEvent:s}=P1(),{deleteToken:c}=Un();x1(`Project api access – ${t}`);const{getTableProps:d,getTableBodyProps:p,headerGroups:m,rows:g,prepareRow:f,state:{globalFilter:C},setGlobalFilter:S,setHiddenColumns:b,columns:R}=Sr(r,v=>l(l2,{children:[n(_r,{token:v.row.original,permission:M2,project:e,track:()=>s("project_api_tokens",{props:{eventType:"api_key_copied"}})}),n(wr,{token:v.row.original,permission:lr,project:e,onRemove:async()=>{await c(v.row.original.secret,e),s("project_api_tokens",{props:{eventType:"api_key_deleted"}}),i()}})]}));return l("div",{style:{width:"100%",overflow:"hidden"},children:[n(d1,{header:n(i1,{title:`API access (${g.length})`,actions:l(G,{children:[n(D1,{initialValue:C,onChange:S}),n(i1.Divider,{}),n(xr,{permission:dr,path:"create",project:e})]})}),children:n(w,{condition:!a(M2,e),show:n(w1,{severity:"warning",children:"You need to have the correct permissions to read API tokens"}),elseShow:n(Tr,{compact:!0,loading:o,headerGroups:m,setHiddenColumns:b,prepareRow:f,getTableBodyProps:p,getTableProps:d,rows:g,columns:R,globalFilter:C})})}),n(fe,{children:n(X,{path:"create",element:n(e5,{})})})]})},n5=()=>{const e=Y("projectId"),t=F1(e),{isOss:a}=p1(),r=T1();return x1(`Project segments – ${t}`),a()?n(d1,{header:n(i1,{titleElement:"Segments"}),sx:{justifyContent:"center"},children:n(wt,{feature:"segments"})}):l(fe,{children:[n(X,{path:"create",element:n(U1,{open:!0,onClose:()=>r(V1),label:"Create segment",children:n(Ca,{modal:!0})})}),n(X,{path:"edit/:segmentId",element:n(U1,{open:!0,onClose:()=>r(V1),label:"Edit segment",children:n(Sa,{modal:!0})})}),n(X,{path:"*",element:n(_a,{})})]})},a5=(e,t)=>{const a=new URLSearchParams({environmentId:t});return`/projects/${e}/settings/default-strategy/edit?${a}`},r5={name:"flexibleRollout",disabled:!1,constraints:[],title:"",parameters:{rollout:"100",stickiness:"default",groupId:""}},o5=({environment:e,description:t})=>{const a=Y("projectId"),{environment:r,defaultStrategy:o}=e,i=a5(a,r),s=u.useMemo(()=>o||r5,[JSON.stringify(o)]);return n(G,{children:n(Er,{strategy:s,description:t,actions:n(G,{children:n(z1,{permission:vn,environmentId:r,projectId:a,component:R1,to:i,tooltipProps:{title:`Edit default strategy for "${r}"`},"data-testid":`STRATEGY_EDIT-${s==null?void 0:s.name}`,children:n(xt,{})})}),children:n(wa,{strategy:s})})})},i5=h("div",{shouldForwardProp:e=>e!=="enabled"})(({theme:e,enabled:t})=>({borderRadius:e.shape.borderRadiusLarge,marginBottom:e.spacing(2),backgroundColor:t?e.palette.background.paper:e.palette.envAccordion.disabled})),s5=h(xa)({boxShadow:"none",background:"none"}),c5=h(Ta)(({theme:e})=>({boxShadow:"none",padding:e.spacing(2,4),pointerEvents:"none",[e.breakpoints.down(400)]:{padding:e.spacing(1,2)}})),l5=h(Ea,{shouldForwardProp:e=>e!=="enabled"})(({theme:e})=>({padding:e.spacing(3),background:e.palette.envAccordion.expanded,borderBottomLeftRadius:e.shape.borderRadiusLarge,borderBottomRightRadius:e.shape.borderRadiusLarge,boxShadow:"inset 0px 2px 4px rgba(32, 32, 33, 0.05)",[e.breakpoints.down("md")]:{padding:e.spacing(2,1)}})),d5=h("div")(({theme:e})=>({width:"100%",position:"relative",paddingBottom:e.spacing(2)})),u5=h("div")(({theme:e})=>({[e.breakpoints.down(400)]:{padding:e.spacing(1)}})),p5=h("div",{shouldForwardProp:e=>e!=="enabled"})(({theme:e,enabled:t})=>({display:"flex",justifyContent:"center",flexDirection:"column",color:t?e.palette.text.primary:e.palette.text.secondary})),h5=h("div")(({theme:e})=>({display:"flex",alignItems:"center",fontWeight:"bold",[e.breakpoints.down(560)]:{flexDirection:"column",textAlign:"center"}})),m5=h(ur)(({theme:e})=>({[e.breakpoints.down(560)]:{marginBottom:"0.5rem"}})),g5=h(Aa)(({theme:e})=>({fontSize:e.fontSizes.bodySize,fontWeight:e.typography.fontWeightMedium,[e.breakpoints.down(560)]:{textAlign:"center"}})),f5=({environment:e})=>{const{environment:t}=e,a=`Default strategy configuration in the ${t} environment`,r=m1(),o=!1;return n(i5,{enabled:!1,children:l(s5,{expanded:!0,onChange:i=>i.stopPropagation(),"data-testid":`${ka}_${t}`,className:"environment-accordion accordion-disabled",style:{outline:`2px solid ${r.palette.divider}`,backgroundColor:r.palette.background.paper},children:[n(c5,{children:n(p5,{"data-loading":!0,enabled:o,children:l(h5,{children:[n(m5,{enabled:!0}),n("div",{children:n(g5,{text:t,maxWidth:"100",maxLength:15})})]})})}),n(l5,{enabled:!0,children:n(d5,{children:n(u5,{children:n(o5,{environment:e,description:a})})})})]})})},v5=h("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),x3=h("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),y5=h("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),b5=({projectId:e,environmentId:t,permission:a,onSubmit:r,onCancel:o,loading:i,strategy:s,setStrategy:c,segments:d,setSegments:p,errors:m})=>{var D;const g=Da(s.constraints),f=Ra(a,e,t),{strategyDefinition:C}=yn(s==null?void 0:s.name),S=T1(),{uiConfig:b,error:R,loading:v}=p1();if(R)throw R;if(v||!C)return null;const F=P=>C.parameters.find(B=>B.name===P),T=(P,B)=>{const V=F(P);if(P!=="groupId"){const O=Oa(V,B);return O?(m.setFormError(P,O),!1):(m.removeFormError(P),!0)}return!0},j=()=>C.parameters.map(P=>P.name).map(P=>{var B;return T(P,(B=s.parameters)==null?void 0:B[P])}).every(Boolean),M=()=>{S(`/projects/${e}/settings/default-strategy`)};return l(v5,{onSubmit:async P=>{if(P.preventDefault(),j())r();else return},children:[n(w,{condition:!!((D=b==null?void 0:b.flags)!=null&&D.strategyImprovements),show:n(Fa,{title:s.title||"",setTitle:P=>{c(B=>({...B,title:P}))}})}),n(w,{condition:!!b.flags.SE,show:n(Pa,{segments:d,setSegments:p,projectId:e})}),n(Za,{projectId:e,environmentId:t,strategy:s,setStrategy:c}),n(x3,{}),n(Ia,{strategy:s,strategyDefinition:C,setStrategy:c,validateParameter:T,errors:m,hasAccess:f}),n(x3,{}),l(y5,{children:[n(_t,{permission:a,projectId:e,environmentId:t,variant:"contained",color:"primary",type:"submit",disabled:i||!g||m.hasFormErrors(),"data-testid":ja,children:"Save strategy"}),n(l1,{type:"button",color:"primary",onClick:o||M,disabled:i,children:"Cancel"})]})]})},C5={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:"default",groupId:""}},S5=()=>{var B;const e=Y("projectId"),t=$a("environmentId"),{project:a,refetch:r}=C1(e),o=(B=a.environments.find(V=>V.environment===t))==null?void 0:B.defaultStrategy,[i,s]=u.useState(o||C5),[c,d]=u.useState([]),{updateDefaultStrategy:p,loading:m}=De(),{strategyDefinition:g}=yn(i==null?void 0:i.name),{setToastData:f,setToastApiError:C}=u1(),S=Ba(),{uiConfig:b}=p1(),{unleashUrl:R}=b,v=T1(),{trackEvent:F}=P1(),{segments:T,refetchSegments:j}=za();u.useEffect(()=>{if(T&&(o!=null&&o.segments)){const V=[];for(const O of o==null?void 0:o.segments)V.push(...T.filter(J=>J.id===O));d(V)}},[JSON.stringify(T),JSON.stringify(o==null?void 0:o.segments)]);const M=b!=null&&b.flags.SE?c:[],_=_5(i,M),D=async V=>{await p(e,t,V),F("default_strategy",{props:{action:"edit",hasTitle:!!V.title}}),await j(),f({title:"Default Strategy updated",type:"success",confetti:!0})},P=async()=>{const V=`/projects/${e}/settings/default-strategy`;try{await D(_),await r(),v(V)}catch(O){C(h1(O))}};return!g||!i?null:n(y2,{modal:!0,title:Va((i==null?void 0:i.name)??""),description:x5,documentationLink:T5,documentationLinkLabel:E5,formatApiCode:()=>w5(e,t,_,g,R),children:n(b5,{projectId:e,strategy:i,setStrategy:s,segments:c,setSegments:d,environmentId:t,onSubmit:P,loading:m,permission:vn,errors:S,isChangeRequest:!1})})},_5=(e,t)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},segments:t.map(a=>a.id),disabled:e.disabled??!1}),w5=(e,t,a,r,o)=>{if(!o)return"";const i={...a,parameters:Ma(a.parameters??{},r)},s=`${o}/api/admin/projects/${e}/environments/${t}/default-strategy}`,c=JSON.stringify(i,void 0,2);return`curl --location --request PUT '${s}' \\
|
|
10
|
-
--header 'Authorization: INSERT_API_KEY' \\
|
|
11
|
-
--header 'Content-Type: application/json' \\
|
|
12
|
-
--data-raw '${c}'`},x5=`
|
|
13
|
-
An activation strategy will only run when a feature toggle is enabled and provides a way to control who will get access to the feature.
|
|
14
|
-
If any of a feature toggle's activation strategies returns true, the user will get access.
|
|
15
|
-
`,T5="https://docs.getunleash.io/reference/activation-strategies",E5="Default strategy documentation",A5=h(w1)(({theme:e})=>({marginBottom:e.spacing(4)})),k5=()=>{const e=Y("projectId"),t=F1(e),{hasAccess:a}=u.useContext(X1),{project:r}=C1(e),o=T1();if(x1(`Project default strategy configuration – ${t}`),!a(k1,e))return n(d1,{header:n(i1,{title:"Default Strategy configuration"}),children:n(w1,{severity:"error",children:"You need project owner permissions to access this section."})});const i=`/projects/${e}/settings/default-strategy`,s=()=>o(i);return l(G,{children:[l(d1,{header:n(i1,{title:"Default Strategy"}),children:[n(A5,{severity:"info",children:"Here you can customize your default strategy for each specific environment. These will be used when you enable a toggle environment that has no strategies defined"}),r==null?void 0:r.environments.map(c=>n(f5,{environment:c},c.environment))]}),n(fe,{children:n(X,{path:"edit",element:n(U1,{label:"Edit feature strategy",onClose:s,open:!0,children:n(S5,{})})})})]})},D5=()=>{var s;const e=bn(),t=T1(),{uiConfig:a}=p1(),{strategyImprovements:r}=a.flags,o=[{id:"environments",label:"Environments"},{id:"access",label:"Access"},{id:"segments",label:"Segments"},{id:"change-requests",label:"Change request configuration"},{id:"api-access",label:"API access"}];r&&o.push({id:"default-strategy",label:"Default strategy"});const i=c=>{t(c.id)};return n(La,{tabs:o,value:((s=o.find(({id:c})=>{var d;return c&&((d=e.pathname)==null?void 0:d.includes(`/${c}`))}))==null?void 0:s.id)||o[0].id,onChange:i,children:l(fe,{children:[n(X,{path:"environments/*",element:n(xn,{})}),n(X,{path:"access/*",element:n(Gc,{})}),n(X,{path:"segments/*",element:n(n5,{})}),n(X,{path:"change-requests/*",element:n(Yc,{})}),n(X,{path:"api-access/*",element:n(t5,{})}),!!r&&n(X,{path:"default-strategy/*",element:n(k5,{})}),n(X,{path:"*",element:n(Cn,{replace:!0,to:o[0].id})})]})})},R5=h(In)(()=>({padding:0,margin:0,[`& .${On.root}:before`]:{flex:0,padding:0}})),T3=h(T2,{shouldForwardProp:e=>e!=="active"})(({theme:e,active:t})=>({width:"1px",backgroundColor:t?e.palette.common.white:`${ie(e.palette.common.white,.5)}`})),Nt=h($n,{shouldForwardProp:e=>e!=="active"})(({theme:e,active:t})=>({color:t?e.palette.background.sidebar:`${ie(e.palette.common.white,.8)}`,backgroundColor:t?e.palette.common.white:"initial",fontWeight:t?e.fontWeight.bold:"normal",borderColor:t?e.palette.common.white:`${ie(e.palette.common.white,.8)}`,width:e.spacing(5),height:e.spacing(5),lineHeight:e.spacing(5),borderWidth:"1px",display:"flex",alignItems:"center",justifyContent:"center",margin:e.spacing(1,0)})),qt=h(jn,{shouldForwardProp:e=>e!=="active"})(({theme:e,active:t})=>({padding:e.spacing(2,2,6,2),color:t?e.palette.common.white:`${ie(e.palette.common.white,.8)}`})),Ut=h(E,{shouldForwardProp:e=>e!=="active"})(({theme:e,active:t})=>({fontWeight:t?e.fontWeight.bold:"normal",fontSize:e.fontSizes.bodySize})),Gt=h(E)(({theme:e})=>({fontSize:e.fontSizes.smallerBody})),F5=({stage:e})=>l(R5,{children:[l(Ye,{children:[l(Qe,{children:[n(Nt,{variant:"outlined",active:e==="configure",children:"1"}),n(T3,{active:e==="configure"})]}),l(qt,{active:e==="configure",children:[n(Ut,{active:e==="configure",children:"Import file"}),n(Gt,{children:"Import previously exported toggle configuration from another Unleash instance as a JSON file"})]})]}),l(Ye,{children:[l(Qe,{children:[n(Nt,{variant:"outlined",active:e==="validate",children:"2"}),n(T3,{active:e==="validate"})]}),l(qt,{active:e==="validate",children:[n(Ut,{active:e==="validate",children:"Validate configuration"}),n(Gt,{children:"Check the errors and warnings from the import process"})]})]}),l(Ye,{children:[n(Qe,{children:n(Nt,{variant:"outlined",active:e==="import",children:"3"})}),l(qt,{active:e==="import",children:[n(Ut,{active:e==="import",children:"Finish import"}),n(Gt,{children:"Feature toggle configuration will be imported to your new Unleash instance"})]})]})]});function be(e,t,a,r){function o(i){return i instanceof a?i:new a(function(s){s(i)})}return new(a||(a=Promise))(function(i,s){function c(m){try{p(r.next(m))}catch(g){s(g)}}function d(m){try{p(r.throw(m))}catch(g){s(g)}}function p(m){m.done?i(m.value):o(m.value).then(c,d)}p((r=r.apply(e,t||[])).next())})}function Ce(e,t){var a={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,o,i,s;return s={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function c(p){return function(m){return d([p,m])}}function d(p){if(r)throw new TypeError("Generator is already executing.");for(;s&&(s=0,p[0]&&(a=0)),a;)try{if(r=1,o&&(i=p[0]&2?o.return:p[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,p[1])).done)return i;switch(o=0,i&&(p=[p[0]&2,i.value]),p[0]){case 0:case 1:i=p;break;case 4:return a.label++,{value:p[1],done:!1};case 5:a.label++,o=p[1],p=[0];continue;case 7:p=a.ops.pop(),a.trys.pop();continue;default:if(i=a.trys,!(i=i.length>0&&i[i.length-1])&&(p[0]===6||p[0]===2)){a=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]<i[3])){a.label=p[1];break}if(p[0]===6&&a.label<i[1]){a.label=i[1],i=p;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(p);break}i[2]&&a.ops.pop(),a.trys.pop();continue}p=t.call(e,a)}catch(m){p=[6,m],o=0}finally{r=i=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}function E3(e,t){var a=typeof Symbol=="function"&&e[Symbol.iterator];if(!a)return e;var r=a.call(e),o,i=[],s;try{for(;(t===void 0||t-- >0)&&!(o=r.next()).done;)i.push(o.value)}catch(c){s={error:c}}finally{try{o&&!o.done&&(a=r.return)&&a.call(r)}finally{if(s)throw s.error}}return i}function A3(e,t,a){if(a||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var P5=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["heic","image/heic"],["heif","image/heif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function ze(e,t){var a=Z5(e);if(typeof a.path!="string"){var r=e.webkitRelativePath;Object.defineProperty(a,"path",{value:typeof t=="string"?t:typeof r=="string"&&r.length>0?r:e.name,writable:!1,configurable:!1,enumerable:!0})}return a}function Z5(e){var t=e.name,a=t&&t.lastIndexOf(".")!==-1;if(a&&!e.type){var r=t.split(".").pop().toLowerCase(),o=P5.get(r);o&&Object.defineProperty(e,"type",{value:o,writable:!1,configurable:!1,enumerable:!0})}return e}var I5=[".DS_Store","Thumbs.db"];function j5(e){return be(this,void 0,void 0,function(){return Ce(this,function(t){return rt(e)&&O5(e.dataTransfer)?[2,V5(e.dataTransfer,e.type)]:$5(e)?[2,B5(e)]:Array.isArray(e)&&e.every(function(a){return"getFile"in a&&typeof a.getFile=="function"})?[2,z5(e)]:[2,[]]})})}function O5(e){return rt(e)}function $5(e){return rt(e)&&rt(e.target)}function rt(e){return typeof e=="object"&&e!==null}function B5(e){return r2(e.target.files).map(function(t){return ze(t)})}function z5(e){return be(this,void 0,void 0,function(){var t;return Ce(this,function(a){switch(a.label){case 0:return[4,Promise.all(e.map(function(r){return r.getFile()}))];case 1:return t=a.sent(),[2,t.map(function(r){return ze(r)})]}})})}function V5(e,t){return be(this,void 0,void 0,function(){var a,r;return Ce(this,function(o){switch(o.label){case 0:return e.items?(a=r2(e.items).filter(function(i){return i.kind==="file"}),t!=="drop"?[2,a]:[4,Promise.all(a.map(M5))]):[3,2];case 1:return r=o.sent(),[2,k3(Kn(r))];case 2:return[2,k3(r2(e.files).map(function(i){return ze(i)}))]}})})}function k3(e){return e.filter(function(t){return I5.indexOf(t.name)===-1})}function r2(e){if(e===null)return[];for(var t=[],a=0;a<e.length;a++){var r=e[a];t.push(r)}return t}function M5(e){if(typeof e.webkitGetAsEntry!="function")return D3(e);var t=e.webkitGetAsEntry();return t&&t.isDirectory?Jn(t):D3(e)}function Kn(e){return e.reduce(function(t,a){return A3(A3([],E3(t),!1),E3(Array.isArray(a)?Kn(a):[a]),!1)},[])}function D3(e){var t=e.getAsFile();if(!t)return Promise.reject("".concat(e," is not a File"));var a=ze(t);return Promise.resolve(a)}function L5(e){return be(this,void 0,void 0,function(){return Ce(this,function(t){return[2,e.isDirectory?Jn(e):H5(e)]})})}function Jn(e){var t=e.createReader();return new Promise(function(a,r){var o=[];function i(){var s=this;t.readEntries(function(c){return be(s,void 0,void 0,function(){var d,p,m;return Ce(this,function(g){switch(g.label){case 0:if(c.length)return[3,5];g.label=1;case 1:return g.trys.push([1,3,,4]),[4,Promise.all(o)];case 2:return d=g.sent(),a(d),[3,4];case 3:return p=g.sent(),r(p),[3,4];case 4:return[3,6];case 5:m=Promise.all(c.map(L5)),o.push(m),i(),g.label=6;case 6:return[2]}})})},function(c){r(c)})}i()})}function H5(e){return be(this,void 0,void 0,function(){return Ce(this,function(t){return[2,new Promise(function(a,r){e.file(function(o){var i=ze(o,e.fullPath);a(i)},function(o){r(o)})})]})})}var W5=function(e,t){if(e&&t){var a=Array.isArray(t)?t:t.split(","),r=e.name||"",o=(e.type||"").toLowerCase(),i=o.replace(/\/.*$/,"");return a.some(function(s){var c=s.trim().toLowerCase();return c.charAt(0)==="."?r.toLowerCase().endsWith(c):c.endsWith("/*")?i===c.replace(/\/.*$/,""):o===c})}return!0};function R3(e){return U5(e)||q5(e)||Qn(e)||N5()}function N5(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
16
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function q5(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function U5(e){if(Array.isArray(e))return o2(e)}function F3(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),a.push.apply(a,r)}return a}function P3(e){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};t%2?F3(Object(a),!0).forEach(function(r){Yn(e,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):F3(Object(a)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(a,r))})}return e}function Yn(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function ke(e,t){return J5(e)||K5(e,t)||Qn(e,t)||G5()}function G5(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
17
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qn(e,t){if(e){if(typeof e=="string")return o2(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);if(a==="Object"&&e.constructor&&(a=e.constructor.name),a==="Map"||a==="Set")return Array.from(e);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return o2(e,t)}}function o2(e,t){(t==null||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}function K5(e,t){var a=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(a!=null){var r=[],o=!0,i=!1,s,c;try{for(a=a.call(e);!(o=(s=a.next()).done)&&(r.push(s.value),!(t&&r.length===t));o=!0);}catch(d){i=!0,c=d}finally{try{!o&&a.return!=null&&a.return()}finally{if(i)throw c}}return r}}function J5(e){if(Array.isArray(e))return e}var Y5="file-invalid-type",Q5="file-too-large",X5="file-too-small",e6="too-many-files",t6=function(t){t=Array.isArray(t)&&t.length===1?t[0]:t;var a=Array.isArray(t)?"one of ".concat(t.join(", ")):t;return{code:Y5,message:"File type must be ".concat(a)}},Z3=function(t){return{code:Q5,message:"File is larger than ".concat(t," ").concat(t===1?"byte":"bytes")}},I3=function(t){return{code:X5,message:"File is smaller than ".concat(t," ").concat(t===1?"byte":"bytes")}},n6={code:e6,message:"Too many files"};function Xn(e,t){var a=e.type==="application/x-moz-file"||W5(e,t);return[a,a?null:t6(t)]}function e0(e,t,a){if(W1(e.size))if(W1(t)&&W1(a)){if(e.size>a)return[!1,Z3(a)];if(e.size<t)return[!1,I3(t)]}else{if(W1(t)&&e.size<t)return[!1,I3(t)];if(W1(a)&&e.size>a)return[!1,Z3(a)]}return[!0,null]}function W1(e){return e!=null}function a6(e){var t=e.files,a=e.accept,r=e.minSize,o=e.maxSize,i=e.multiple,s=e.maxFiles,c=e.validator;return!i&&t.length>1||i&&s>=1&&t.length>s?!1:t.every(function(d){var p=Xn(d,a),m=ke(p,1),g=m[0],f=e0(d,r,o),C=ke(f,1),S=C[0],b=c?c(d):null;return g&&S&&!b})}function ot(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function Ke(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!e.target&&!!e.target.files}function j3(e){e.preventDefault()}function r6(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function o6(e){return e.indexOf("Edge/")!==-1}function i6(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return r6(e)||o6(e)}function A1(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return function(r){for(var o=arguments.length,i=new Array(o>1?o-1:0),s=1;s<o;s++)i[s-1]=arguments[s];return t.some(function(c){return!ot(r)&&c&&c.apply(void 0,[r].concat(i)),ot(r)})}}function s6(){return"showOpenFilePicker"in window}function c6(e){if(W1(e)){var t=Object.entries(e).filter(function(a){var r=ke(a,2),o=r[0],i=r[1],s=!0;return t0(o)||(console.warn('Skipped "'.concat(o,'" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.')),s=!1),(!Array.isArray(i)||!i.every(n0))&&(console.warn('Skipped "'.concat(o,'" because an invalid file extension was provided.')),s=!1),s}).reduce(function(a,r){var o=ke(r,2),i=o[0],s=o[1];return P3(P3({},a),{},Yn({},i,s))},{});return[{description:"Files",accept:t}]}return e}function l6(e){if(W1(e))return Object.entries(e).reduce(function(t,a){var r=ke(a,2),o=r[0],i=r[1];return[].concat(R3(t),[o],R3(i))},[]).filter(function(t){return t0(t)||n0(t)}).join(",")}function d6(e){return e instanceof DOMException&&(e.name==="AbortError"||e.code===e.ABORT_ERR)}function u6(e){return e instanceof DOMException&&(e.name==="SecurityError"||e.code===e.SECURITY_ERR)}function t0(e){return e==="audio/*"||e==="video/*"||e==="image/*"||e==="text/*"||/\w+\/[-+.\w]+/g.test(e)}function n0(e){return/^.*\.[\w]+$/.test(e)}var p6=["children"],h6=["open"],m6=["refKey","role","onKeyDown","onFocus","onBlur","onClick","onDragEnter","onDragOver","onDragLeave","onDrop"],g6=["refKey","onChange","onClick"];function f6(e){return b6(e)||y6(e)||a0(e)||v6()}function v6(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
18
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function y6(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function b6(e){if(Array.isArray(e))return i2(e)}function Kt(e,t){return _6(e)||S6(e,t)||a0(e,t)||C6()}function C6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
19
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a0(e,t){if(e){if(typeof e=="string")return i2(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);if(a==="Object"&&e.constructor&&(a=e.constructor.name),a==="Map"||a==="Set")return Array.from(e);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return i2(e,t)}}function i2(e,t){(t==null||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}function S6(e,t){var a=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(a!=null){var r=[],o=!0,i=!1,s,c;try{for(a=a.call(e);!(o=(s=a.next()).done)&&(r.push(s.value),!(t&&r.length===t));o=!0);}catch(d){i=!0,c=d}finally{try{!o&&a.return!=null&&a.return()}finally{if(i)throw c}}return r}}function _6(e){if(Array.isArray(e))return e}function O3(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),a.push.apply(a,r)}return a}function e1(e){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};t%2?O3(Object(a),!0).forEach(function(r){s2(e,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):O3(Object(a)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(a,r))})}return e}function s2(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function it(e,t){if(e==null)return{};var a=w6(e,t),r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)r=i[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function w6(e,t){if(e==null)return{};var a={},r=Object.keys(e),o,i;for(i=0;i<r.length;i++)o=r[i],!(t.indexOf(o)>=0)&&(a[o]=e[o]);return a}var j2=u.forwardRef(function(e,t){var a=e.children,r=it(e,p6),o=o0(r),i=o.open,s=it(o,h6);return u.useImperativeHandle(t,function(){return{open:i}},[i]),Ee.createElement(u.Fragment,null,a(e1(e1({},s),{},{open:i})))});j2.displayName="Dropzone";var r0={disabled:!1,getFilesFromEvent:j5,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!0,autoFocus:!1};j2.defaultProps=r0;j2.propTypes={children:Q.func,accept:Q.objectOf(Q.arrayOf(Q.string)),multiple:Q.bool,preventDropOnDocument:Q.bool,noClick:Q.bool,noKeyboard:Q.bool,noDrag:Q.bool,noDragEventsBubbling:Q.bool,minSize:Q.number,maxSize:Q.number,maxFiles:Q.number,disabled:Q.bool,getFilesFromEvent:Q.func,onFileDialogCancel:Q.func,onFileDialogOpen:Q.func,useFsAccessApi:Q.bool,autoFocus:Q.bool,onDragEnter:Q.func,onDragLeave:Q.func,onDragOver:Q.func,onDrop:Q.func,onDropAccepted:Q.func,onDropRejected:Q.func,onError:Q.func,validator:Q.func};var c2={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function o0(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e1(e1({},r0),e),a=t.accept,r=t.disabled,o=t.getFilesFromEvent,i=t.maxSize,s=t.minSize,c=t.multiple,d=t.maxFiles,p=t.onDragEnter,m=t.onDragLeave,g=t.onDragOver,f=t.onDrop,C=t.onDropAccepted,S=t.onDropRejected,b=t.onFileDialogCancel,R=t.onFileDialogOpen,v=t.useFsAccessApi,F=t.autoFocus,T=t.preventDropOnDocument,j=t.noClick,M=t.noKeyboard,_=t.noDrag,D=t.noDragEventsBubbling,P=t.onError,B=t.validator,V=u.useMemo(function(){return l6(a)},[a]),O=u.useMemo(function(){return c6(a)},[a]),J=u.useMemo(function(){return typeof R=="function"?R:$3},[R]),N=u.useMemo(function(){return typeof b=="function"?b:$3},[b]),L=u.useRef(null),y=u.useRef(null),k=u.useReducer(x6,c2),I=Kt(k,2),q=I[0],x=I[1],W=q.isFocused,c1=q.isFileDialogActive,f1=u.useRef(typeof window<"u"&&window.isSecureContext&&v&&s6()),v1=function(){!f1.current&&c1&&setTimeout(function(){if(y.current){var z=y.current.files;z.length||(x({type:"closeDialog"}),N())}},300)};u.useEffect(function(){return window.addEventListener("focus",v1,!1),function(){window.removeEventListener("focus",v1,!1)}},[y,c1,N,f1]);var O1=u.useRef([]),Se=function(z){L.current&&L.current.contains(z.target)||(z.preventDefault(),O1.current=[])};u.useEffect(function(){return T&&(document.addEventListener("dragover",j3,!1),document.addEventListener("drop",Se,!1)),function(){T&&(document.removeEventListener("dragover",j3),document.removeEventListener("drop",Se))}},[L,T]),u.useEffect(function(){return!r&&F&&L.current&&L.current.focus(),function(){}},[L,F,r]);var E1=u.useCallback(function(A){P?P(A):console.error(A)},[P]),Ve=u.useCallback(function(A){A.preventDefault(),A.persist(),H(A),O1.current=[].concat(f6(O1.current),[A.target]),Ke(A)&&Promise.resolve(o(A)).then(function(z){if(!(ot(A)&&!D)){var n1=z.length,s1=n1>0&&a6({files:z,accept:V,minSize:s,maxSize:i,multiple:c,maxFiles:d,validator:B}),y1=n1>0&&!s1;x({isDragAccept:s1,isDragReject:y1,isDragActive:!0,type:"setDraggedFiles"}),p&&p(A)}}).catch(function(z){return E1(z)})},[o,p,E1,D,V,s,i,c,d,B]),Me=u.useCallback(function(A){A.preventDefault(),A.persist(),H(A);var z=Ke(A);if(z&&A.dataTransfer)try{A.dataTransfer.dropEffect="copy"}catch{}return z&&g&&g(A),!1},[g,D]),_e=u.useCallback(function(A){A.preventDefault(),A.persist(),H(A);var z=O1.current.filter(function(s1){return L.current&&L.current.contains(s1)}),n1=z.indexOf(A.target);n1!==-1&&z.splice(n1,1),O1.current=z,!(z.length>0)&&(x({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),Ke(A)&&m&&m(A))},[L,m,D]),ee=u.useCallback(function(A,z){var n1=[],s1=[];A.forEach(function(y1){var we=Xn(y1,V),ne=Kt(we,2),kt=ne[0],Dt=ne[1],Rt=e0(y1,s,i),We=Kt(Rt,2),Ft=We[0],Pt=We[1],Zt=B?B(y1):null;if(kt&&Ft&&!Zt)n1.push(y1);else{var It=[Dt,Pt];Zt&&(It=It.concat(Zt)),s1.push({file:y1,errors:It.filter(function(s0){return s0})})}}),(!c&&n1.length>1||c&&d>=1&&n1.length>d)&&(n1.forEach(function(y1){s1.push({file:y1,errors:[n6]})}),n1.splice(0)),x({acceptedFiles:n1,fileRejections:s1,type:"setFiles"}),f&&f(n1,s1,z),s1.length>0&&S&&S(s1,z),n1.length>0&&C&&C(n1,z)},[x,c,V,s,i,d,f,C,S,B]),$1=u.useCallback(function(A){A.preventDefault(),A.persist(),H(A),O1.current=[],Ke(A)&&Promise.resolve(o(A)).then(function(z){ot(A)&&!D||ee(z,A)}).catch(function(z){return E1(z)}),x({type:"reset"})},[o,ee,E1,D]),Z1=u.useCallback(function(){if(f1.current){x({type:"openDialog"}),J();var A={multiple:c,types:O};window.showOpenFilePicker(A).then(function(z){return o(z)}).then(function(z){ee(z,null),x({type:"closeDialog"})}).catch(function(z){d6(z)?(N(z),x({type:"closeDialog"})):u6(z)?(f1.current=!1,y.current?(y.current.value=null,y.current.click()):E1(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided."))):E1(z)});return}y.current&&(x({type:"openDialog"}),J(),y.current.value=null,y.current.click())},[x,J,N,v,ee,E1,O,c]),B1=u.useCallback(function(A){!L.current||!L.current.isEqualNode(A.target)||(A.key===" "||A.key==="Enter"||A.keyCode===32||A.keyCode===13)&&(A.preventDefault(),Z1())},[L,Z1]),H1=u.useCallback(function(){x({type:"focus"})},[]),Le=u.useCallback(function(){x({type:"blur"})},[]),He=u.useCallback(function(){j||(i6()?setTimeout(Z1,0):Z1())},[j,Z1]),I1=function(z){return r?null:z},te=function(z){return M?null:I1(z)},Z=function(z){return _?null:I1(z)},H=function(z){D&&z.stopPropagation()},a1=u.useMemo(function(){return function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},z=A.refKey,n1=z===void 0?"ref":z,s1=A.role,y1=A.onKeyDown,we=A.onFocus,ne=A.onBlur,kt=A.onClick,Dt=A.onDragEnter,Rt=A.onDragOver,We=A.onDragLeave,Ft=A.onDrop,Pt=it(A,m6);return e1(e1(s2({onKeyDown:te(A1(y1,B1)),onFocus:te(A1(we,H1)),onBlur:te(A1(ne,Le)),onClick:I1(A1(kt,He)),onDragEnter:Z(A1(Dt,Ve)),onDragOver:Z(A1(Rt,Me)),onDragLeave:Z(A1(We,_e)),onDrop:Z(A1(Ft,$1)),role:typeof s1=="string"&&s1!==""?s1:"presentation"},n1,L),!r&&!M?{tabIndex:0}:{}),Pt)}},[L,B1,H1,Le,He,Ve,Me,_e,$1,M,_,r]),U=u.useCallback(function(A){A.stopPropagation()},[]),g1=u.useMemo(function(){return function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},z=A.refKey,n1=z===void 0?"ref":z,s1=A.onChange,y1=A.onClick,we=it(A,g6),ne=s2({accept:V,multiple:c,type:"file",style:{display:"none"},onChange:I1(A1(s1,$1)),onClick:I1(A1(y1,U)),tabIndex:-1},n1,y);return e1(e1({},ne),we)}},[y,a,c,$1,r]);return e1(e1({},q),{},{isFocused:W&&!r,getRootProps:a1,getInputProps:g1,rootRef:L,inputRef:y,open:I1(Z1)})}function x6(e,t){switch(t.type){case"focus":return e1(e1({},e),{},{isFocused:!0});case"blur":return e1(e1({},e),{},{isFocused:!1});case"openDialog":return e1(e1({},c2),{},{isFileDialogActive:!0});case"closeDialog":return e1(e1({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":return e1(e1({},e),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case"setFiles":return e1(e1({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return e1({},c2);default:return e}}function $3(){}const T6=e=>JSON.stringify(JSON.parse(e),null,4),E6=({onSuccess:e,onError:t})=>a=>{var o;const r=(o=a==null?void 0:a.target)==null?void 0:o.result;if(typeof r=="string")try{const i=T6(r);e(i)}catch{t("Cannot format as valid JSON")}else t("Unsupported format")},A6=({onSuccess:e,onError:t,children:a,onDragStatusChange:r,...o})=>{const i=u.useCallback(([p])=>{const m=new FileReader;m.onload=E6({onSuccess:e,onError:t}),m.readAsText(p)},[]),{getRootProps:s,getInputProps:c,isDragActive:d}=o0({onDrop:i,accept:{"application/json":[".json"]},maxFiles:1});return u.useEffect(()=>{r(d)},[d]),l(E,{...s(),...o,children:[n("input",{...c()}),a]})},k6=h(A6)(({theme:e})=>({padding:e.spacing(4,2,2,2),border:`1px dashed ${e.palette.secondary.border}`,borderRadius:e.shape.borderRadiusLarge,display:"flex",flexDirection:"column",alignItems:"center"})),i0=h(St,{shouldForwardProp:e=>e!=="active"})(({theme:e,active:t})=>({transition:"background-color 0.5s ease",color:e.palette.common.white,backgroundColor:t?e.palette.primary.main:e.palette.divider,"@keyframes pulse":{"0%":{boxShadow:`0 0 0 0px ${ie(e.palette.primary.main,.7)}`},"100%":{boxShadow:`0 0 0 20px ${ie(e.palette.primary.main,0)}`}},animation:t?"pulse 2s infinite":""})),D6=h(E)(({theme:e})=>({backgroundColor:e.palette.background.elevation2,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(3)})),Jt=h($)(({theme:e})=>({marginBottom:e.spacing(.5)})),Yt=h(E)(({theme:e})=>({marginBottom:e.spacing(3),color:e.palette.text.secondary,fontSize:e.fontSizes.smallBody})),R6=()=>l(D6,{children:[n(Jt,{children:"What is being imported?"}),l(Yt,{children:["Feature toggles will be imported with full configuration:",l("ul",{children:[n("li",{children:"strategies"}),n("li",{children:"context fields"}),n("li",{children:"variants"}),n("li",{children:"tags"}),n("li",{children:"feature toggle status"})]})]}),n(Jt,{children:"Exceptions?"}),n(Yt,{children:"If the feature toggle already exists in the new instance, it will be overwritten"}),n(Jt,{children:"What is not imported?"}),n(Yt,{sx:{marginBottom:0},children:"If we detect segments or custom strategies in your imported file, we will stop the import. You need to create them first in the new instance and run the import again"})]}),O2=h("div")(({theme:e})=>({backgroundColor:e.palette.background.paper,padding:e.spacing(5,8,3,8),display:"flex",flexDirection:"column",gap:e.spacing(3),flexBasis:"70%"})),$2=h(E)(({theme:e})=>({width:"100%",borderTop:`1px solid ${e.palette.divider}`,marginTop:"auto",paddingTop:e.spacing(3),display:"flex",justifyContent:"flex-end"})),F6=h(e2)(({theme:e})=>({width:"100%"})),P6=h($)(({theme:e})=>({marginTop:e.spacing(4),fontSize:e.fontSizes.mainHeader})),Z6=h($)(({theme:e})=>({marginTop:e.spacing(2),marginBottom:e.spacing(1.5),color:e.palette.text.secondary})),I6=h($)(({theme:e})=>({marginTop:e.spacing(4),color:e.palette.text.secondary})),j6=({activeTab:e,setActiveTab:t})=>n(E,{sx:{borderBottom:1,borderColor:"divider"},children:l(g2,{value:e,children:[n(et,{label:"Upload file",value:"file",onClick:()=>t("file")}),n(et,{label:"Code editor",value:"code","data-testid":Ha,onClick:()=>t("code")})]})}),O6=({activeTab:e,setActiveTab:t,importPayload:a,setImportPayload:r})=>{const[o,i]=u.useState(!1),{setToastData:s}=u1();return n(w,{condition:e==="file",show:l(k6,{onSuccess:c=>{r(c),t("code"),s({type:"success",title:"File uploaded"})},onError:c=>{r(""),s({type:"error",title:c})},onDragStatusChange:i,children:[n(i0,{sx:{width:80,height:80},active:o,children:n(kr,{fontSize:"large"})}),n(P6,{children:o?"Drop your file to upload":"Drop your file here"}),n(Z6,{children:"or select a file from your device"}),n(l1,{variant:"outlined",children:"Select file"}),n(I6,{children:"JSON format: max 500 kB"})]}),elseShow:n(F6,{label:"Exported toggles",variant:"outlined",onChange:c=>r(c.target.value),value:a,"data-testid":Wa,multiline:!0,minRows:13,maxRows:13})})},$6=({onSubmit:e,onClose:t,disabled:a})=>l($2,{children:[n(l1,{sx:{position:"static"},variant:"contained",type:"submit",onClick:e,"data-testid":Na,disabled:a,children:"Validate"}),n(l1,{sx:{position:"static",ml:2},variant:"outlined",type:"submit",onClick:t,children:"Cancel import"})]}),B6=({tabs:e,importOptions:t,importArea:a,actions:r})=>l(O2,{children:[e,t,a,n(R6,{}),r]}),z6=()=>{const{makeRequest:e,createRequest:t,errors:a,loading:r}=b2({propagateErrors:!0});return{loading:r,errors:a,validateImport:async i=>{const c=t("api/admin/features-batch/validate",{method:"POST",body:JSON.stringify(i)});try{return(await e(c.caller,c.id)).json()}catch(d){throw d}}}},V6=h(E)(({theme:e})=>({backgroundColor:e.palette.background.elevation2,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(3)})),B3=h("span")(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.text.secondary})),z3=h("span")(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.text.primary,fontWeight:e.fontWeight.bold})),V3=h(E)(({theme:e})=>({border:`1px solid ${e.palette.error.border}`,borderRadius:e.shape.borderRadiusLarge,paddingBottom:e.spacing(2)})),M6=h(E)(({theme:e})=>({border:`1px solid ${e.palette.warning.border}`,borderRadius:e.shape.borderRadiusLarge,paddingBottom:e.spacing(2)})),M3=h(E)(({theme:e})=>({color:e.palette.error.dark,backgroundColor:e.palette.error.light,fontSize:e.fontSizes.smallBody,borderBottom:`1px solid ${e.palette.error.border}`,borderTopLeftRadius:e.shape.borderRadiusLarge,borderTopRightRadius:e.shape.borderRadiusLarge,padding:e.spacing(2)})),L6=h(E)(({theme:e})=>({color:e.palette.warning.dark,backgroundColor:e.palette.warning.light,fontSize:e.fontSizes.smallBody,borderBottom:`1px solid ${e.palette.warning.border}`,borderTopLeftRadius:e.shape.borderRadiusLarge,borderTopRightRadius:e.shape.borderRadiusLarge,padding:e.spacing(2)})),L3=h(E)(({theme:e})=>({color:e.palette.error.dark,fontSize:e.fontSizes.smallBody})),H6=h(E)(({theme:e})=>({color:e.palette.warning.dark,fontSize:e.fontSizes.smallBody})),Qt=h("ul")(({theme:e})=>({marginTop:e.spacing(1),marginBottom:e.spacing(0),paddingLeft:e.spacing(3),paddingBottom:e.spacing(3),borderBottom:`1px dashed ${e.palette.neutral.border}`})),Xt=h("li")(({theme:e})=>({fontSize:e.fontSizes.smallBody})),W6=({environment:e,project:t,payload:a,onClose:r,onBack:o,onSubmit:i})=>{const{validateImport:s}=z6(),{setToastData:c}=u1(),{trackEvent:d}=P1(),[p,m]=u.useState({errors:[],warnings:[],permissions:[]}),[g,f]=u.useState(!0),C=S=>{S.errors.length>0||S.permissions.length>0?d("export_import",{props:{eventType:"validation fail"}}):d("export_import",{props:{eventType:"validation success"}}),m(S)};return u.useEffect(()=>{s({environment:e,project:t,data:JSON.parse(a)}).then(C).catch(S=>{f(!1),c({type:"error",title:h1(S)})})},[]),l(O2,{children:[l(V6,{children:[n($,{sx:{mb:1.5},children:"You are importing this configuration in:"}),l(E,{sx:{display:"flex",gap:3},children:[l("span",{children:[n(B3,{children:"Environment: "}),n(z3,{children:e})]}),l("span",{children:[n(B3,{children:"Project: "}),n(z3,{children:t})]})]})]}),n(w,{condition:p.permissions.length>0,show:l(V3,{children:[l(M3,{children:[n("strong",{children:"Missing permissions!"})," There are some permissions that you need to be granted before importing this configuration"]}),p.permissions.map(S=>l(E,{sx:{p:2},children:[n(L3,{children:S.message}),n(Qt,{children:S.affectedItems.map(b=>n(Xt,{children:b},b))})]},S.message))]})}),n(w,{condition:p.errors.length>0,show:l(V3,{children:[l(M3,{children:[n("strong",{children:"Conflict!"})," There are some errors that need to be fixed before the import."]}),p.errors.map(S=>l(E,{sx:{p:2},children:[n(L3,{children:S.message}),n(Qt,{children:S.affectedItems.map(b=>n(Xt,{children:b},b))})]},S.message))]})}),n(w,{condition:p.warnings.length>0,show:l(M6,{children:[l(L6,{children:[n("strong",{children:"Warning!"})," It is recommended to verify the following information before importing."]}),p.warnings.map(S=>l(E,{sx:{p:2},children:[n(H6,{children:S.message}),n(Qt,{children:S.affectedItems.map(b=>n(Xt,{children:b},b))})]},S.message))]})}),l($2,{children:[n(l1,{sx:{position:"static",mr:"auto"},variant:"outlined",type:"submit",onClick:o,children:"Back"}),n(_t,{permission:d2,projectId:t,sx:{position:"static"},variant:"contained",type:"submit",onClick:i,"data-testid":qa,disabled:p.errors.length>0||p.permissions.length>0||!g,children:"Import configuration"}),n(l1,{sx:{position:"static",ml:2},variant:"outlined",type:"submit",onClick:r,children:"Cancel import"})]})]})},N6=()=>{const{makeRequest:e,createRequest:t,errors:a,loading:r}=b2({propagateErrors:!0}),{trackEvent:o}=P1();return{loading:r,errors:a,createImport:async s=>{const d=t("api/admin/features-batch/import",{method:"POST",body:JSON.stringify(s)});try{const p=await e(d.caller,d.id);return o("export_import",{props:{eventType:"features imported"}}),p}catch(p){throw p}}}},q6=h(wn)(({theme:e})=>({padding:e.spacing(4,2,2,2),display:"flex",flexDirection:"column",alignItems:"center",gap:e.spacing(8)})),U6=h($)(({theme:e})=>({fontSize:e.fontSizes.mainHeader})),G6=h(St)(({theme:e})=>({backgroundColor:e.palette.primary.main})),K6=h(St)(({theme:e})=>({backgroundColor:e.palette.error.main})),J6=h(wn)(({theme:e})=>({border:`1px solid ${e.palette.info.border}`,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(2),color:e.palette.info.dark,backgroundColor:e.palette.info.light,fontSize:e.fontSizes.smallBody})),Y6=(e,t)=>e?{status:"loading"}:Object.keys(t).length>0?{status:"error",errors:t}:{status:"success"},Q6=({environment:e,project:t,payload:a,onClose:r})=>{const{createImport:o,loading:i,errors:s}=N6(),{refetch:c}=C1(t),{refetch:d}=je(t),{setToastData:p}=u1(),{isChangeRequestConfigured:m}=Ie(t);u.useEffect(()=>{o({environment:e,project:t,data:JSON.parse(a)}).then(()=>{c(),d()}).catch(C=>{p({type:"error",title:h1(C)})})},[]);const g=Y6(i,s),f=m(e)&&g.status==="success";return l(O2,{children:[l(q6,{children:[n(w,{condition:g.status==="loading",show:n(i0,{sx:{width:80,height:80},active:!0,children:n(Fr,{fontSize:"large"})})}),n(w,{condition:g.status==="success",show:n(G6,{sx:{width:80,height:80},children:n(sn,{fontSize:"large"})})}),n(w,{condition:g.status==="error",show:n(K6,{sx:{width:80,height:80},children:n(Ar,{fontSize:"large"})})}),l(U6,{children:[n(w,{condition:g.status==="loading",show:"Importing..."}),n(w,{condition:g.status==="success",show:"Import completed"}),n(w,{condition:g.status==="error",show:"Import failed"})]})]}),n(w,{condition:f,show:l(J6,{children:["For this environment ",n("strong",{children:"Change request"})," is enabled. This means that the import has generated a change request which needs to be approved before the configuration will be visible in the instance."]})}),n($2,{children:n(l1,{sx:{position:"static"},variant:"contained",type:"submit",onClick:r,children:"Close"})})]})},X6=h(E)(({theme:e})=>({backgroundColor:e.palette.background.elevation2,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(3)})),e7=h($)(({theme:e})=>({marginBottom:e.spacing(3),fontWeight:e.fontWeight.bold})),t7=h($)(({theme:e})=>({marginBottom:e.spacing(1.5)})),n7=({project:e,environment:t,onChange:a})=>{const{project:r}=C1(e),o=r.environments.map(({environment:i})=>({key:i,label:i,title:i}));return u.useEffect(()=>{t===""&&o[0]&&a(o[0].key)},[JSON.stringify(o)]),l(X6,{children:[n(e7,{children:"Import options"}),n(t7,{children:"Choose the environment to import the configuration for"}),n(ft,{sx:{width:"180px"},options:o,onChange:a,label:"Environment",value:t,"data-testid":Ua,IconComponent:fn,fullWidth:!0})]})},a7=h("div")(({theme:e})=>({minHeight:"100vh",display:"flex"})),r7=h("div")(({theme:e})=>({backgroundColor:e.palette.background.sidebar,padding:e.spacing(8),flexBasis:"30%"})),o7=h("div")(({theme:e})=>({textTransform:"uppercase",fontSize:e.fontSizes.smallBody,color:e.palette.common.white,fontWeight:e.typography.fontWeightBold,marginBottom:e.spacing(3)})),i7=e=>{try{return JSON.parse(e),!0}catch{return!1}},s7=({open:e,setOpen:t,project:a})=>{const[r,o]=u.useState("configure"),[i,s]=u.useState(""),[c,d]=u.useState(""),[p,m]=u.useState("file"),g=()=>{t(!1)};u.useEffect(()=>{e===!0&&f()},[e]);const f=()=>{o("configure"),s(""),d(""),m("file")};return n(U1,{open:e,onClose:g,label:"Import toggles",children:l(a7,{children:[l(r7,{children:[n(o7,{children:"Process"}),n(F5,{stage:r})]}),n(w,{condition:r==="configure",show:n(B6,{tabs:n(j6,{activeTab:p,setActiveTab:m}),importOptions:n(n7,{project:a,environment:i,onChange:s}),importArea:n(O6,{activeTab:p,setActiveTab:m,importPayload:c,setImportPayload:d}),actions:n($6,{disabled:!i7(c),onSubmit:()=>o("validate"),onClose:g})})}),n(w,{condition:r==="validate",show:n(W6,{project:a,environment:i,payload:c,onBack:()=>o("configure"),onSubmit:()=>o("import"),onClose:g})}),n(w,{condition:r==="import",show:n(Q6,{project:a,environment:i,payload:c,onClose:g})})]})})},c7="NAVIGATE_TO_EDIT_PROJECT",g7=()=>{var _;const e=Y("projectId"),t=Ga(),{project:a,loading:r,refetch:o}=C1(e),i=tn(r),{setToastData:s}=u1(),[c,d]=u.useState(!1),p=T1(),{pathname:m}=bn(),{isOss:g,uiConfig:f}=p1(),C=`/projects/${e}`,S=(a==null?void 0:a.name)||e,{favorite:b,unfavorite:R}=Ka(),[v,F]=u.useState(!1),T=[{title:"Overview",path:C,name:"overview"},{title:"Health",path:`${C}/health`,name:"health"},{title:"Archive",path:`${C}/archive`,name:"archive"},{title:"Change requests",path:`${C}/change-requests`,name:"change-request"},{title:"Project settings",path:`${C}/settings`,name:"settings"},{title:"Event log",path:`${C}/logs`,name:"logs"}],j=[...T].reverse().find(D=>m.startsWith(D.path));return u.useEffect(()=>{const D=t.get("created"),P=t.get("edited");(D||P)&&s({type:"success",title:D?"Project created":"Project updated"})},[]),l("div",{ref:i,children:[l(zr,{children:[n(Vr,{children:l(jr,{children:[l(L2,{children:[n(Br,{onClick:async()=>{a!=null&&a.favorite?await R(e):await b(e),o()},isFavorite:a==null?void 0:a.favorite}),n(Mr,{children:n(Or,{"data-loading":!0,children:S})})]}),l(L2,{children:[n(w,{condition:!!((_=f==null?void 0:f.flags)!=null&&_.featuresExportImport),show:n(z1,{permission:gt,projectId:e,onClick:()=>d(!0),tooltipProps:{title:"Import"},"data-testid":Ja,"data-loading":!0,children:n(Rr,{})})}),n(w,{condition:!g(),show:n(z1,{permission:k1,projectId:e,onClick:()=>p(`/projects/${e}/edit`),tooltipProps:{title:"Edit project"},"data-loading":!0,"data-testid":c7,children:n(xt,{})})}),n(w,{condition:!g(),show:n(z1,{permission:Ya,projectId:e,onClick:()=>{F(!0)},tooltipProps:{title:"Delete project"},"data-loading":!0,children:n(f2,{})})})]})]})}),n(Lr,{}),n(Hr,{children:n(g2,{value:j==null?void 0:j.path,indicatorColor:"primary",textColor:"primary",variant:"scrollable",allowScrollButtonsMobile:!0,children:T.map(D=>n(Wr,{label:D.title,value:D.path,onClick:()=>p(D.path),"data-testid":`TAB_${D.title}`},D.title))})})]}),n(Qa,{project:e,open:v,onClose:()=>{F(!1)},onSuccess:()=>{p("/projects")}}),l(fe,{children:[n(X,{path:"health",element:n(Mi,{})}),n(X,{path:"access/*",element:n(Cn,{replace:!0,to:`/projects/${e}/settings/access`})}),n(X,{path:"environments",element:n(xn,{})}),n(X,{path:"archive",element:n(oo,{})}),n(X,{path:"logs",element:n(Hi,{})}),n(X,{path:"change-requests",element:n(Cc,{})}),n(X,{path:"change-requests/:id",element:n(rc,{})}),n(X,{path:"settings/*",element:n(D5,{})}),n(X,{path:"*",element:n(Si,{})})]}),n(s7,{open:c,setOpen:d,project:e})]})};export{g7 as default};
|