@open-mercato/core 0.5.1-develop.2856.35de414092 → 0.5.1-develop.2874.77704bccbd
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/modules/api_docs/frontend/docs/api/Explorer.js +18 -18
- package/dist/modules/api_docs/frontend/docs/api/Explorer.js.map +2 -2
- package/dist/modules/api_keys/backend/api-keys/create/page.js +1 -1
- package/dist/modules/api_keys/backend/api-keys/create/page.js.map +1 -1
- package/dist/modules/attachments/components/AttachmentLibrary.js +2 -2
- package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
- package/dist/modules/attachments/components/AttachmentPartitionSettings.js +1 -1
- package/dist/modules/attachments/components/AttachmentPartitionSettings.js.map +1 -1
- package/dist/modules/attachments/fields/attachment.js +1 -1
- package/dist/modules/attachments/fields/attachment.js.map +1 -1
- package/dist/modules/audit_logs/components/ActionLogDetailsDialog.js +1 -1
- package/dist/modules/audit_logs/components/ActionLogDetailsDialog.js.map +2 -2
- package/dist/modules/audit_logs/lib/display-helpers.js +1 -1
- package/dist/modules/audit_logs/lib/display-helpers.js.map +1 -1
- package/dist/modules/auth/backend/users/create/page.js +1 -1
- package/dist/modules/auth/backend/users/create/page.js.map +1 -1
- package/dist/modules/business_rules/backend/rules/page.js +6 -6
- package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
- package/dist/modules/business_rules/backend/sets/page.js +2 -2
- package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
- package/dist/modules/business_rules/components/ActionBuilder.js +5 -5
- package/dist/modules/business_rules/components/ActionBuilder.js.map +2 -2
- package/dist/modules/business_rules/components/ActionRow.js +8 -8
- package/dist/modules/business_rules/components/ActionRow.js.map +1 -1
- package/dist/modules/business_rules/components/ConditionBuilder.js +5 -5
- package/dist/modules/business_rules/components/ConditionBuilder.js.map +2 -2
- package/dist/modules/business_rules/components/ConditionGroup.js +2 -2
- package/dist/modules/business_rules/components/ConditionGroup.js.map +1 -1
- package/dist/modules/business_rules/components/ConditionRow.js +3 -3
- package/dist/modules/business_rules/components/ConditionRow.js.map +2 -2
- package/dist/modules/business_rules/components/RuleSetMembers.js +8 -8
- package/dist/modules/business_rules/components/RuleSetMembers.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/[id]/page.js +2 -2
- package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +1 -1
- package/dist/modules/catalog/backend/catalog/products/create/page.js +5 -5
- package/dist/modules/catalog/backend/catalog/products/create/page.js.map +1 -1
- package/dist/modules/catalog/components/products/MetadataEditor.js +1 -1
- package/dist/modules/catalog/components/products/MetadataEditor.js.map +1 -1
- package/dist/modules/catalog/components/products/ProductImageCell.js +1 -1
- package/dist/modules/catalog/components/products/ProductImageCell.js.map +1 -1
- package/dist/modules/catalog/components/products/VariantBuilder.js +1 -1
- package/dist/modules/catalog/components/products/VariantBuilder.js.map +1 -1
- package/dist/modules/catalog/widgets/injection/product-seo/widget.client.js +1 -1
- package/dist/modules/catalog/widgets/injection/product-seo/widget.client.js.map +2 -2
- package/dist/modules/currencies/components/CurrencyFetchingConfig.js +1 -1
- package/dist/modules/currencies/components/CurrencyFetchingConfig.js.map +1 -1
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +9 -9
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +7 -7
- package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
- package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js +2 -2
- package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js.map +1 -1
- package/dist/modules/customers/backend/config/customers/pipeline-stages/page.js +3 -3
- package/dist/modules/customers/backend/config/customers/pipeline-stages/page.js.map +1 -1
- package/dist/modules/customers/backend/customers/deals/pipeline/page.js +2 -2
- package/dist/modules/customers/backend/customers/deals/pipeline/page.js.map +1 -1
- package/dist/modules/customers/components/AddressTiles.js +1 -1
- package/dist/modules/customers/components/AddressTiles.js.map +1 -1
- package/dist/modules/customers/components/detail/ActivityForm.js +3 -3
- package/dist/modules/customers/components/detail/ActivityForm.js.map +1 -1
- package/dist/modules/customers/components/detail/AnnualRevenueField.js +2 -2
- package/dist/modules/customers/components/detail/AnnualRevenueField.js.map +1 -1
- package/dist/modules/customers/components/detail/CustomFieldValuesList.js +1 -1
- package/dist/modules/customers/components/detail/CustomFieldValuesList.js.map +1 -1
- package/dist/modules/customers/components/detail/DealForm.js +1 -1
- package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
- package/dist/modules/customers/components/detail/DealsSection.js +1 -1
- package/dist/modules/customers/components/detail/DealsSection.js.map +1 -1
- package/dist/modules/customers/components/detail/DetailFieldsSection.js +1 -1
- package/dist/modules/customers/components/detail/DetailFieldsSection.js.map +1 -1
- package/dist/modules/customers/components/detail/InlineEditors.js +5 -5
- package/dist/modules/customers/components/detail/InlineEditors.js.map +2 -2
- package/dist/modules/customers/components/detail/TasksSection.js +1 -1
- package/dist/modules/customers/components/detail/TasksSection.js.map +1 -1
- package/dist/modules/customers/components/detail/TimelineItemHeader.js +1 -1
- package/dist/modules/customers/components/detail/TimelineItemHeader.js.map +1 -1
- package/dist/modules/customers/components/formConfig.js +2 -2
- package/dist/modules/customers/components/formConfig.js.map +1 -1
- package/dist/modules/customers/widgets/dashboard/customer-todos/widget.client.js +1 -1
- package/dist/modules/customers/widgets/dashboard/customer-todos/widget.client.js.map +1 -1
- package/dist/modules/customers/widgets/dashboard/new-customers/widget.client.js +2 -2
- package/dist/modules/customers/widgets/dashboard/new-customers/widget.client.js.map +1 -1
- package/dist/modules/customers/widgets/dashboard/new-deals/widget.client.js +1 -1
- package/dist/modules/customers/widgets/dashboard/new-deals/widget.client.js.map +1 -1
- package/dist/modules/customers/widgets/dashboard/next-interactions/widget.client.js +1 -1
- package/dist/modules/customers/widgets/dashboard/next-interactions/widget.client.js.map +1 -1
- package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +1 -1
- package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.js +1 -1
- package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.client.js +1 -1
- package/dist/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.client.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.js +1 -1
- package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/orders-kpi/widget.client.js +1 -1
- package/dist/modules/dashboards/widgets/dashboard/orders-kpi/widget.client.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.js +1 -1
- package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js +2 -2
- package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js +1 -1
- package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js +1 -1
- package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js.map +1 -1
- package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js +2 -2
- package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js.map +1 -1
- package/dist/modules/data_sync/backend/data-sync/page.js +4 -4
- package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
- package/dist/modules/data_sync/backend/data-sync/runs/[id]/page.js +2 -2
- package/dist/modules/data_sync/backend/data-sync/runs/[id]/page.js.map +1 -1
- package/dist/modules/dictionaries/components/AppearanceSelector.js +3 -3
- package/dist/modules/dictionaries/components/AppearanceSelector.js.map +2 -2
- package/dist/modules/dictionaries/components/DictionariesManager.js +4 -4
- package/dist/modules/dictionaries/components/DictionariesManager.js.map +2 -2
- package/dist/modules/dictionaries/components/DictionaryEntriesEditor.js +2 -2
- package/dist/modules/dictionaries/components/DictionaryEntriesEditor.js.map +2 -2
- package/dist/modules/dictionaries/components/DictionaryEntrySelect.js +3 -3
- package/dist/modules/dictionaries/components/DictionaryEntrySelect.js.map +1 -1
- package/dist/modules/dictionaries/fields/dictionary.js +4 -4
- package/dist/modules/dictionaries/fields/dictionary.js.map +1 -1
- package/dist/modules/entities/components/EncryptionManager.js +3 -3
- package/dist/modules/entities/components/EncryptionManager.js.map +2 -2
- package/dist/modules/entities/components/UserEntitiesTable.js +1 -1
- package/dist/modules/entities/components/UserEntitiesTable.js.map +2 -2
- package/dist/modules/feature_toggles/components/formConfig.js +1 -1
- package/dist/modules/feature_toggles/components/formConfig.js.map +1 -1
- package/dist/modules/feature_toggles/components/overrideFormConfig.js +2 -2
- package/dist/modules/feature_toggles/components/overrideFormConfig.js.map +1 -1
- package/dist/modules/inbox_ops/backend/inbox-ops/proposals/[id]/page.js +12 -12
- package/dist/modules/inbox_ops/backend/inbox-ops/proposals/[id]/page.js.map +2 -2
- package/dist/modules/inbox_ops/components/messages/InboxEmailPreview.js +1 -1
- package/dist/modules/inbox_ops/components/messages/InboxEmailPreview.js.map +1 -1
- package/dist/modules/inbox_ops/components/proposals/ActionCard.js +12 -12
- package/dist/modules/inbox_ops/components/proposals/ActionCard.js.map +2 -2
- package/dist/modules/inbox_ops/widgets/notifications/ProposalCreatedRenderer.js +3 -3
- package/dist/modules/inbox_ops/widgets/notifications/ProposalCreatedRenderer.js.map +2 -2
- package/dist/modules/integrations/backend/integrations/[id]/page.js +6 -6
- package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
- package/dist/modules/messages/components/MessagesInboxPageClient.js +1 -1
- package/dist/modules/messages/components/MessagesInboxPageClient.js.map +1 -1
- package/dist/modules/messages/components/defaults/DefaultMessageListItem.js +1 -1
- package/dist/modules/messages/components/defaults/DefaultMessageListItem.js.map +1 -1
- package/dist/modules/messages/components/defaults/MessageRecordObjectDetail.js +1 -1
- package/dist/modules/messages/components/defaults/MessageRecordObjectDetail.js.map +1 -1
- package/dist/modules/messages/components/defaults/MessageRecordObjectPreview.js +1 -1
- package/dist/modules/messages/components/defaults/MessageRecordObjectPreview.js.map +1 -1
- package/dist/modules/messages/components/message-detail/panels/MessageListComponent.js +1 -1
- package/dist/modules/messages/components/message-detail/panels/MessageListComponent.js.map +1 -1
- package/dist/modules/messages/components/message-detail/panels/attachments-panel.js +1 -1
- package/dist/modules/messages/components/message-detail/panels/attachments-panel.js.map +1 -1
- package/dist/modules/payment_gateways/backend/payment-gateways/page.js +11 -11
- package/dist/modules/payment_gateways/backend/payment-gateways/page.js.map +2 -2
- package/dist/modules/planner/components/AvailabilityRulesEditor.js +2 -2
- package/dist/modules/planner/components/AvailabilityRulesEditor.js.map +2 -2
- package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js +2 -2
- package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js.map +2 -2
- package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js +3 -3
- package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js.map +2 -2
- package/dist/modules/portal/frontend/[orgSlug]/portal/page.js +3 -3
- package/dist/modules/portal/frontend/[orgSlug]/portal/page.js.map +2 -2
- package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js +4 -4
- package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js.map +2 -2
- package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js +4 -4
- package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js.map +2 -2
- package/dist/modules/resources/backend/resources/resources/[id]/page.js +1 -1
- package/dist/modules/resources/backend/resources/resources/[id]/page.js.map +1 -1
- package/dist/modules/sales/backend/sales/documents/[id]/page.js +4 -4
- package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +1 -1
- package/dist/modules/sales/components/DocumentNumberSettings.js +1 -1
- package/dist/modules/sales/components/DocumentNumberSettings.js.map +1 -1
- package/dist/modules/sales/components/channels/ChannelOfferForm.js +1 -1
- package/dist/modules/sales/components/channels/ChannelOfferForm.js.map +1 -1
- package/dist/modules/sales/components/documents/AdjustmentDialog.js +1 -1
- package/dist/modules/sales/components/documents/AdjustmentDialog.js.map +1 -1
- package/dist/modules/sales/components/documents/DocumentTotals.js +3 -3
- package/dist/modules/sales/components/documents/DocumentTotals.js.map +1 -1
- package/dist/modules/sales/components/documents/PaymentDialog.js +1 -1
- package/dist/modules/sales/components/documents/PaymentDialog.js.map +1 -1
- package/dist/modules/sales/components/documents/SalesDocumentForm.js +2 -2
- package/dist/modules/sales/components/documents/SalesDocumentForm.js.map +2 -2
- package/dist/modules/sales/widgets/dashboard/new-orders/widget.client.js +4 -4
- package/dist/modules/sales/widgets/dashboard/new-orders/widget.client.js.map +1 -1
- package/dist/modules/sales/widgets/dashboard/new-quotes/widget.client.js +4 -4
- package/dist/modules/sales/widgets/dashboard/new-quotes/widget.client.js.map +1 -1
- package/dist/modules/sales/widgets/injection/document-history/widget.client.js +2 -2
- package/dist/modules/sales/widgets/injection/document-history/widget.client.js.map +1 -1
- package/dist/modules/sales/widgets/messages/SalesDocumentMessageDetail.js +1 -1
- package/dist/modules/sales/widgets/messages/SalesDocumentMessageDetail.js.map +1 -1
- package/dist/modules/sales/widgets/messages/SalesDocumentMessagePreview.js +1 -1
- package/dist/modules/sales/widgets/messages/SalesDocumentMessagePreview.js.map +1 -1
- package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js +1 -1
- package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js.map +1 -1
- package/dist/modules/staff/backend/staff/team-members/[id]/page.js +1 -1
- package/dist/modules/staff/backend/staff/team-members/[id]/page.js.map +1 -1
- package/dist/modules/translations/components/TranslationDrawerAction.js +2 -2
- package/dist/modules/translations/components/TranslationDrawerAction.js.map +1 -1
- package/dist/modules/translations/components/TranslationManager.js +3 -3
- package/dist/modules/translations/components/TranslationManager.js.map +1 -1
- package/dist/modules/translations/widgets/injection/translation-manager/widget.client.js +2 -2
- package/dist/modules/translations/widgets/injection/translation-manager/widget.client.js.map +1 -1
- package/dist/modules/workflows/backend/definitions/[id]/page.js +5 -5
- package/dist/modules/workflows/backend/definitions/[id]/page.js.map +2 -2
- package/dist/modules/workflows/backend/definitions/visual-editor/page.js +2 -2
- package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
- package/dist/modules/workflows/backend/events/[id]/page.js +4 -4
- package/dist/modules/workflows/backend/events/[id]/page.js.map +1 -1
- package/dist/modules/workflows/backend/instances/[id]/page.js +2 -2
- package/dist/modules/workflows/backend/instances/[id]/page.js.map +1 -1
- package/dist/modules/workflows/backend/tasks/[id]/page.js +20 -20
- package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
- package/dist/modules/workflows/components/DefinitionTriggersEditor.js +1 -1
- package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +1 -1
- package/dist/modules/workflows/components/EdgeEditDialog.js +12 -12
- package/dist/modules/workflows/components/EdgeEditDialog.js.map +1 -1
- package/dist/modules/workflows/components/NodeEditDialog.js +26 -26
- package/dist/modules/workflows/components/NodeEditDialog.js.map +1 -1
- package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +1 -1
- package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +1 -1
- package/dist/modules/workflows/components/mobile/MobileDefinitionDetail.js +2 -2
- package/dist/modules/workflows/components/mobile/MobileDefinitionDetail.js.map +2 -2
- package/dist/modules/workflows/components/mobile/MobileInstanceOverview.js +7 -7
- package/dist/modules/workflows/components/mobile/MobileInstanceOverview.js.map +2 -2
- package/dist/modules/workflows/components/mobile/MobileTaskForm.js +11 -11
- package/dist/modules/workflows/components/mobile/MobileTaskForm.js.map +2 -2
- package/dist/modules/workflows/components/mobile/MobileVisualEditor.js +1 -1
- package/dist/modules/workflows/components/mobile/MobileVisualEditor.js.map +1 -1
- package/dist/modules/workflows/components/mobile/MobileWorkflowTimeline.js +23 -23
- package/dist/modules/workflows/components/mobile/MobileWorkflowTimeline.js.map +2 -2
- package/dist/modules/workflows/frontend/checkout-demo/page.js +6 -6
- package/dist/modules/workflows/frontend/checkout-demo/page.js.map +1 -1
- package/package.json +3 -3
- package/src/modules/api_docs/frontend/docs/api/Explorer.tsx +18 -18
- package/src/modules/api_keys/backend/api-keys/create/page.tsx +1 -1
- package/src/modules/attachments/components/AttachmentLibrary.tsx +3 -3
- package/src/modules/attachments/components/AttachmentPartitionSettings.tsx +1 -1
- package/src/modules/attachments/fields/attachment.tsx +1 -1
- package/src/modules/audit_logs/components/ActionLogDetailsDialog.tsx +1 -1
- package/src/modules/audit_logs/lib/display-helpers.tsx +1 -1
- package/src/modules/auth/backend/users/create/page.tsx +1 -1
- package/src/modules/business_rules/backend/rules/page.tsx +7 -7
- package/src/modules/business_rules/backend/sets/page.tsx +3 -3
- package/src/modules/business_rules/components/ActionBuilder.tsx +6 -6
- package/src/modules/business_rules/components/ActionRow.tsx +8 -8
- package/src/modules/business_rules/components/ConditionBuilder.tsx +6 -6
- package/src/modules/business_rules/components/ConditionGroup.tsx +2 -2
- package/src/modules/business_rules/components/ConditionRow.tsx +3 -3
- package/src/modules/business_rules/components/RuleSetMembers.tsx +9 -9
- package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +2 -2
- package/src/modules/catalog/backend/catalog/products/create/page.tsx +5 -5
- package/src/modules/catalog/components/products/MetadataEditor.tsx +1 -1
- package/src/modules/catalog/components/products/ProductImageCell.tsx +1 -1
- package/src/modules/catalog/components/products/VariantBuilder.tsx +1 -1
- package/src/modules/catalog/widgets/injection/product-seo/widget.client.tsx +1 -1
- package/src/modules/currencies/components/CurrencyFetchingConfig.tsx +1 -1
- package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +2 -2
- package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +10 -10
- package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +9 -9
- package/src/modules/customer_accounts/widgets/injection/account-status/widget.client.tsx +2 -2
- package/src/modules/customers/backend/config/customers/pipeline-stages/page.tsx +3 -3
- package/src/modules/customers/backend/customers/deals/pipeline/page.tsx +2 -2
- package/src/modules/customers/components/AddressTiles.tsx +1 -1
- package/src/modules/customers/components/detail/ActivityForm.tsx +3 -3
- package/src/modules/customers/components/detail/AnnualRevenueField.tsx +2 -2
- package/src/modules/customers/components/detail/CustomFieldValuesList.tsx +1 -1
- package/src/modules/customers/components/detail/DealForm.tsx +1 -1
- package/src/modules/customers/components/detail/DealsSection.tsx +1 -1
- package/src/modules/customers/components/detail/DetailFieldsSection.tsx +1 -1
- package/src/modules/customers/components/detail/InlineEditors.tsx +5 -5
- package/src/modules/customers/components/detail/TasksSection.tsx +1 -1
- package/src/modules/customers/components/detail/TimelineItemHeader.tsx +1 -1
- package/src/modules/customers/components/formConfig.tsx +2 -2
- package/src/modules/customers/widgets/dashboard/customer-todos/widget.client.tsx +1 -1
- package/src/modules/customers/widgets/dashboard/new-customers/widget.client.tsx +2 -2
- package/src/modules/customers/widgets/dashboard/new-deals/widget.client.tsx +1 -1
- package/src/modules/customers/widgets/dashboard/next-interactions/widget.client.tsx +1 -1
- package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +1 -1
- package/src/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.tsx +1 -1
- package/src/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.client.tsx +1 -1
- package/src/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.tsx +1 -1
- package/src/modules/dashboards/widgets/dashboard/orders-kpi/widget.client.tsx +1 -1
- package/src/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.tsx +1 -1
- package/src/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.tsx +2 -2
- package/src/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.tsx +1 -1
- package/src/modules/dashboards/widgets/dashboard/top-customers/widget.client.tsx +1 -1
- package/src/modules/dashboards/widgets/dashboard/top-products/widget.client.tsx +2 -2
- package/src/modules/data_sync/backend/data-sync/page.tsx +4 -4
- package/src/modules/data_sync/backend/data-sync/runs/[id]/page.tsx +2 -2
- package/src/modules/dictionaries/components/AppearanceSelector.tsx +3 -3
- package/src/modules/dictionaries/components/DictionariesManager.tsx +4 -4
- package/src/modules/dictionaries/components/DictionaryEntriesEditor.tsx +2 -2
- package/src/modules/dictionaries/components/DictionaryEntrySelect.tsx +3 -3
- package/src/modules/dictionaries/fields/dictionary.tsx +4 -4
- package/src/modules/entities/components/EncryptionManager.tsx +3 -3
- package/src/modules/entities/components/UserEntitiesTable.tsx +1 -1
- package/src/modules/feature_toggles/components/formConfig.tsx +1 -1
- package/src/modules/feature_toggles/components/overrideFormConfig.tsx +2 -2
- package/src/modules/inbox_ops/backend/inbox-ops/proposals/[id]/page.tsx +12 -12
- package/src/modules/inbox_ops/components/messages/InboxEmailPreview.tsx +1 -1
- package/src/modules/inbox_ops/components/proposals/ActionCard.tsx +12 -12
- package/src/modules/inbox_ops/widgets/notifications/ProposalCreatedRenderer.tsx +4 -4
- package/src/modules/integrations/backend/integrations/[id]/page.tsx +6 -6
- package/src/modules/messages/components/MessagesInboxPageClient.tsx +1 -1
- package/src/modules/messages/components/defaults/DefaultMessageListItem.tsx +1 -1
- package/src/modules/messages/components/defaults/MessageRecordObjectDetail.tsx +1 -1
- package/src/modules/messages/components/defaults/MessageRecordObjectPreview.tsx +1 -1
- package/src/modules/messages/components/message-detail/panels/MessageListComponent.tsx +1 -1
- package/src/modules/messages/components/message-detail/panels/attachments-panel.tsx +1 -1
- package/src/modules/payment_gateways/backend/payment-gateways/page.tsx +11 -11
- package/src/modules/planner/components/AvailabilityRulesEditor.tsx +2 -2
- package/src/modules/portal/frontend/[orgSlug]/portal/dashboard/page.tsx +2 -2
- package/src/modules/portal/frontend/[orgSlug]/portal/login/page.tsx +3 -3
- package/src/modules/portal/frontend/[orgSlug]/portal/page.tsx +3 -3
- package/src/modules/portal/frontend/[orgSlug]/portal/profile/page.tsx +4 -4
- package/src/modules/portal/frontend/[orgSlug]/portal/signup/page.tsx +4 -4
- package/src/modules/resources/backend/resources/resources/[id]/page.tsx +1 -1
- package/src/modules/sales/backend/sales/documents/[id]/page.tsx +4 -4
- package/src/modules/sales/components/DocumentNumberSettings.tsx +1 -1
- package/src/modules/sales/components/channels/ChannelOfferForm.tsx +1 -1
- package/src/modules/sales/components/documents/AdjustmentDialog.tsx +1 -1
- package/src/modules/sales/components/documents/DocumentTotals.tsx +3 -3
- package/src/modules/sales/components/documents/PaymentDialog.tsx +1 -1
- package/src/modules/sales/components/documents/SalesDocumentForm.tsx +2 -2
- package/src/modules/sales/widgets/dashboard/new-orders/widget.client.tsx +4 -4
- package/src/modules/sales/widgets/dashboard/new-quotes/widget.client.tsx +4 -4
- package/src/modules/sales/widgets/injection/document-history/widget.client.tsx +2 -2
- package/src/modules/sales/widgets/messages/SalesDocumentMessageDetail.tsx +1 -1
- package/src/modules/sales/widgets/messages/SalesDocumentMessagePreview.tsx +1 -1
- package/src/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.tsx +1 -1
- package/src/modules/staff/backend/staff/team-members/[id]/page.tsx +1 -1
- package/src/modules/translations/components/TranslationDrawerAction.tsx +2 -2
- package/src/modules/translations/components/TranslationManager.tsx +3 -3
- package/src/modules/translations/widgets/injection/translation-manager/widget.client.tsx +2 -2
- package/src/modules/workflows/backend/definitions/[id]/page.tsx +5 -5
- package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +2 -2
- package/src/modules/workflows/backend/events/[id]/page.tsx +4 -4
- package/src/modules/workflows/backend/instances/[id]/page.tsx +2 -2
- package/src/modules/workflows/backend/tasks/[id]/page.tsx +23 -23
- package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +1 -1
- package/src/modules/workflows/components/EdgeEditDialog.tsx +12 -12
- package/src/modules/workflows/components/NodeEditDialog.tsx +26 -26
- package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +1 -1
- package/src/modules/workflows/components/mobile/MobileDefinitionDetail.tsx +2 -2
- package/src/modules/workflows/components/mobile/MobileInstanceOverview.tsx +7 -7
- package/src/modules/workflows/components/mobile/MobileTaskForm.tsx +14 -14
- package/src/modules/workflows/components/mobile/MobileVisualEditor.tsx +1 -1
- package/src/modules/workflows/components/mobile/MobileWorkflowTimeline.tsx +23 -23
- package/src/modules/workflows/frontend/checkout-demo/page.tsx +6 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/modules/workflows/components/DefinitionTriggersEditor.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { useState, useCallback } from 'react'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Textarea } from '@open-mercato/ui/primitives/textarea'\nimport { Label } from '@open-mercato/ui/primitives/label'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@open-mercato/ui/primitives/dialog'\nimport { Alert, AlertDescription, AlertTitle } from '@open-mercato/ui/primitives/alert'\nimport { EventPatternInput } from '@open-mercato/ui/backend/inputs/EventPatternInput'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { Plus, Trash2, Edit2, Zap, Info, X } from 'lucide-react'\nimport type { WorkflowDefinitionTrigger } from '../data/entities'\n\ninterface DefinitionTriggersEditorProps {\n value: WorkflowDefinitionTrigger[]\n onChange: (triggers: WorkflowDefinitionTrigger[]) => void\n className?: string\n}\n\nconst FILTER_OPERATORS = [\n { value: 'eq', label: 'Equals' },\n { value: 'neq', label: 'Not Equals' },\n { value: 'gt', label: 'Greater Than' },\n { value: 'gte', label: 'Greater Than or Equal' },\n { value: 'lt', label: 'Less Than' },\n { value: 'lte', label: 'Less Than or Equal' },\n { value: 'contains', label: 'Contains' },\n { value: 'startsWith', label: 'Starts With' },\n { value: 'endsWith', label: 'Ends With' },\n { value: 'in', label: 'In (array)' },\n { value: 'notIn', label: 'Not In (array)' },\n { value: 'exists', label: 'Exists' },\n { value: 'notExists', label: 'Not Exists' },\n { value: 'regex', label: 'Regex Match' },\n] as const\n\ntype TriggerFormValues = {\n triggerId: string\n name: string\n description: string\n eventPattern: string\n enabled: boolean\n priority: number\n filterConditions: Array<{ field: string; operator: string; value: string }>\n contextMappings: Array<{ targetKey: string; sourceExpression: string; defaultValue: string }>\n debounceMs: string\n maxConcurrentInstances: string\n}\n\nconst defaultFormValues: TriggerFormValues = {\n triggerId: '',\n name: '',\n description: '',\n eventPattern: '',\n enabled: true,\n priority: 0,\n filterConditions: [],\n contextMappings: [],\n debounceMs: '',\n maxConcurrentInstances: '',\n}\n\n/**\n * DefinitionTriggersEditor\n *\n * Manages event triggers embedded in workflow definitions.\n * Works with local state - no API calls, changes are saved with the definition.\n */\nexport function DefinitionTriggersEditor({\n value,\n onChange,\n className,\n}: DefinitionTriggersEditorProps) {\n const t = useT()\n const [showDialog, setShowDialog] = useState(false)\n const [editingTrigger, setEditingTrigger] = useState<WorkflowDefinitionTrigger | null>(null)\n const [formValues, setFormValues] = useState<TriggerFormValues>(defaultFormValues)\n const [deleteConfirmId, setDeleteConfirmId] = useState<string | null>(null)\n\n // Generate trigger ID from name\n const generateTriggerId = useCallback((name: string) => {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '_')\n .replace(/(?:^_+|_+$)/g, '')\n .substring(0, 50) || `trigger_${Date.now()}`\n }, [])\n\n // Parse condition value (try JSON, fallback to string)\n const parseConditionValue = (valueStr: string): unknown => {\n try {\n return JSON.parse(valueStr)\n } catch {\n return valueStr\n }\n }\n\n // Build trigger from form values\n const buildTriggerFromForm = useCallback((values: TriggerFormValues): WorkflowDefinitionTrigger => {\n const config: WorkflowDefinitionTrigger['config'] = {}\n\n if (values.filterConditions.length > 0) {\n config.filterConditions = values.filterConditions.map(fc => ({\n field: fc.field,\n operator: fc.operator as any,\n value: parseConditionValue(fc.value),\n }))\n }\n\n if (values.contextMappings.length > 0) {\n config.contextMapping = values.contextMappings.map(cm => ({\n targetKey: cm.targetKey,\n sourceExpression: cm.sourceExpression,\n defaultValue: cm.defaultValue ? parseConditionValue(cm.defaultValue) : undefined,\n }))\n }\n\n if (values.debounceMs) {\n config.debounceMs = parseInt(values.debounceMs, 10)\n }\n\n if (values.maxConcurrentInstances) {\n config.maxConcurrentInstances = parseInt(values.maxConcurrentInstances, 10)\n }\n\n return {\n triggerId: values.triggerId || generateTriggerId(values.name),\n name: values.name,\n description: values.description || null,\n eventPattern: values.eventPattern,\n enabled: values.enabled,\n priority: values.priority,\n config: Object.keys(config).length > 0 ? config : null,\n }\n }, [generateTriggerId])\n\n // Open dialog for creating new trigger\n const handleCreateNew = useCallback(() => {\n setEditingTrigger(null)\n setFormValues(defaultFormValues)\n setShowDialog(true)\n }, [])\n\n // Open dialog for editing trigger\n const handleEdit = useCallback((trigger: WorkflowDefinitionTrigger) => {\n setEditingTrigger(trigger)\n setFormValues({\n triggerId: trigger.triggerId,\n name: trigger.name,\n description: trigger.description || '',\n eventPattern: trigger.eventPattern,\n enabled: trigger.enabled,\n priority: trigger.priority,\n filterConditions: trigger.config?.filterConditions?.map(fc => ({\n field: fc.field,\n operator: fc.operator,\n value: typeof fc.value === 'string' ? fc.value : JSON.stringify(fc.value),\n })) || [],\n contextMappings: trigger.config?.contextMapping?.map(cm => ({\n targetKey: cm.targetKey,\n sourceExpression: cm.sourceExpression,\n defaultValue: cm.defaultValue !== undefined\n ? (typeof cm.defaultValue === 'string' ? cm.defaultValue : JSON.stringify(cm.defaultValue))\n : '',\n })) || [],\n debounceMs: trigger.config?.debounceMs?.toString() || '',\n maxConcurrentInstances: trigger.config?.maxConcurrentInstances?.toString() || '',\n })\n setShowDialog(true)\n }, [])\n\n // Close dialog\n const handleCloseDialog = useCallback(() => {\n setShowDialog(false)\n setEditingTrigger(null)\n setFormValues(defaultFormValues)\n }, [])\n\n // Submit form\n const handleSubmit = useCallback(() => {\n if (!formValues.name.trim()) {\n return\n }\n if (!formValues.eventPattern.trim()) {\n return\n }\n\n const newTrigger = buildTriggerFromForm(formValues)\n\n if (editingTrigger) {\n // Update existing trigger\n onChange(value.map(t => t.triggerId === editingTrigger.triggerId ? newTrigger : t))\n } else {\n // Check for duplicate triggerId\n const existingIds = new Set(value.map(t => t.triggerId))\n if (existingIds.has(newTrigger.triggerId)) {\n // Append timestamp to make unique\n newTrigger.triggerId = `${newTrigger.triggerId}_${Date.now()}`\n }\n // Add new trigger\n onChange([...value, newTrigger])\n }\n\n handleCloseDialog()\n }, [formValues, editingTrigger, buildTriggerFromForm, value, onChange, handleCloseDialog])\n\n // Delete trigger\n const handleDelete = useCallback((triggerId: string) => {\n onChange(value.filter(t => t.triggerId !== triggerId))\n setDeleteConfirmId(null)\n }, [value, onChange])\n\n // Add filter condition\n const addFilterCondition = useCallback(() => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: [...prev.filterConditions, { field: '', operator: 'eq', value: '' }],\n }))\n }, [])\n\n // Remove filter condition\n const removeFilterCondition = useCallback((index: number) => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: prev.filterConditions.filter((_, i) => i !== index),\n }))\n }, [])\n\n // Update filter condition\n const updateFilterCondition = useCallback((index: number, field: string, fieldValue: string) => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: prev.filterConditions.map((fc, i) =>\n i === index ? { ...fc, [field]: fieldValue } : fc\n ),\n }))\n }, [])\n\n // Add context mapping\n const addContextMapping = useCallback(() => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: [...prev.contextMappings, { targetKey: '', sourceExpression: '', defaultValue: '' }],\n }))\n }, [])\n\n // Remove context mapping\n const removeContextMapping = useCallback((index: number) => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: prev.contextMappings.filter((_, i) => i !== index),\n }))\n }, [])\n\n // Update context mapping\n const updateContextMapping = useCallback((index: number, field: string, fieldValue: string) => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: prev.contextMappings.map((cm, i) =>\n i === index ? { ...cm, [field]: fieldValue } : cm\n ),\n }))\n }, [])\n\n return (\n <div className={className}>\n <div className=\"rounded-lg border bg-card p-3 md:p-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4\">\n <div className=\"flex items-center gap-2\">\n <Zap className=\"w-5 h-5 text-amber-500\" />\n <h3 className=\"text-sm font-semibold uppercase text-muted-foreground\">\n {t('workflows.triggers.title', 'Event Triggers')}\n </h3>\n </div>\n <Button size=\"sm\" variant=\"outline\" onClick={handleCreateNew} className=\"w-full sm:w-auto\">\n <Plus className=\"w-4 h-4 mr-1\" />\n {t('workflows.triggers.add', 'Add Trigger')}\n </Button>\n </div>\n\n <p className=\"text-xs text-muted-foreground mb-4\">\n {t('workflows.triggers.description', 'Configure events that automatically start this workflow. When a matching event occurs in the system, a new workflow instance will be created with the mapped context.')}\n </p>\n\n {value.length === 0 ? (\n <Alert variant=\"info\">\n <Info className=\"w-4 h-4\" />\n <AlertTitle>{t('workflows.triggers.empty.title', 'No triggers configured')}</AlertTitle>\n <AlertDescription>\n {t('workflows.triggers.empty.description', 'Click \"Add Trigger\" to create an event trigger that automatically starts this workflow.')}\n </AlertDescription>\n </Alert>\n ) : (\n <div className=\"space-y-2\">\n {value.map(trigger => (\n <div\n key={trigger.triggerId}\n className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between p-3 rounded-lg border bg-background hover:bg-accent/50 transition-colors\"\n >\n <div className=\"flex items-center gap-3 min-w-0\">\n <Badge variant={trigger.enabled ? 'default' : 'secondary'} className=\"shrink-0\">\n {trigger.enabled ? t('common.active', 'Active') : t('common.disabled', 'Disabled')}\n </Badge>\n <div className=\"min-w-0\">\n <div className=\"font-medium text-sm truncate\">{trigger.name}</div>\n <code className=\"text-xs text-muted-foreground truncate block\">{trigger.eventPattern}</code>\n </div>\n </div>\n <div className=\"flex items-center gap-2 self-end sm:self-auto\">\n <Button size=\"sm\" variant=\"ghost\" onClick={() => handleEdit(trigger)}>\n <Edit2 className=\"w-4 h-4\" />\n </Button>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"text-destructive hover:text-destructive\"\n onClick={() => setDeleteConfirmId(trigger.triggerId)}\n >\n <Trash2 className=\"w-4 h-4\" />\n </Button>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Create/Edit Dialog */}\n <Dialog open={showDialog} onOpenChange={setShowDialog}>\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle>\n {editingTrigger\n ? t('workflows.triggers.dialog.edit.title', 'Edit Event Trigger')\n : t('workflows.triggers.dialog.create.title', 'Create Event Trigger')\n }\n </DialogTitle>\n <DialogDescription>\n {t('workflows.triggers.dialog.description', 'Configure when this workflow should be automatically started based on system events.')}\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"space-y-4 py-4\">\n {/* Basic Info */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-name\">{t('workflows.triggers.fields.name', 'Name')} *</Label>\n <Input\n id=\"trigger-name\"\n value={formValues.name}\n onChange={e => setFormValues(prev => ({ ...prev, name: e.target.value }))}\n placeholder={t('workflows.triggers.placeholders.name', 'Order Created Trigger')}\n />\n </div>\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-priority\">{t('workflows.triggers.fields.priority', 'Priority')}</Label>\n <Input\n id=\"trigger-priority\"\n type=\"number\"\n value={formValues.priority}\n onChange={e => setFormValues(prev => ({ ...prev, priority: parseInt(e.target.value) || 0 }))}\n placeholder=\"0\"\n />\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.priority', 'Higher priority triggers execute first')}\n </p>\n </div>\n </div>\n\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-description\">{t('workflows.triggers.fields.description', 'Description')}</Label>\n <Textarea\n id=\"trigger-description\"\n value={formValues.description}\n onChange={e => setFormValues(prev => ({ ...prev, description: e.target.value }))}\n placeholder={t('workflows.triggers.placeholders.description', 'Describe when this trigger should fire...')}\n rows={2}\n />\n </div>\n\n {/* Event Pattern */}\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-pattern\">{t('workflows.triggers.fields.eventPattern', 'Event Pattern')} *</Label>\n <EventPatternInput\n value={formValues.eventPattern}\n onChange={eventPattern => setFormValues(prev => ({ ...prev, eventPattern }))}\n placeholder={t('workflows.triggers.placeholders.eventPattern')}\n />\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.eventPattern', 'Use * as wildcard: \"sales.orders.*\" matches any order event')}\n </p>\n </div>\n\n {/* Enabled Switch */}\n <div className=\"flex items-center gap-2\">\n <Switch\n id=\"trigger-enabled\"\n checked={formValues.enabled}\n onCheckedChange={checked => setFormValues(prev => ({ ...prev, enabled: checked }))}\n />\n <Label htmlFor=\"trigger-enabled\">{t('workflows.triggers.fields.enabled', 'Enabled')}</Label>\n </div>\n\n {/* Filter Conditions */}\n <div className=\"space-y-2\">\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between\">\n <Label>{t('workflows.triggers.fields.filterConditions', 'Filter Conditions')}</Label>\n <Button size=\"sm\" variant=\"ghost\" onClick={addFilterCondition} className=\"w-full sm:w-auto\">\n <Plus className=\"w-4 h-4 mr-1\" />\n {t('workflows.triggers.addCondition', 'Add Condition')}\n </Button>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.filterConditions', 'Only trigger when the event payload matches these conditions (all must match)')}\n </p>\n {formValues.filterConditions.map((fc, index) => (\n <div key={index} className=\"flex flex-wrap items-center gap-2\">\n <Input\n value={fc.field}\n onChange={e => updateFilterCondition(index, 'field', e.target.value)}\n placeholder=\"status\"\n className=\"w-full sm:w-1/3\"\n />\n <select\n value={fc.operator}\n onChange={(e: React.ChangeEvent<HTMLSelectElement>) => updateFilterCondition(index, 'operator', e.target.value)}\n className=\"h-10 w-full sm:w-[140px] rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n >\n {FILTER_OPERATORS.map(op => (\n <option key={op.value} value={op.value}>\n {op.label}\n </option>\n ))}\n </select>\n <Input\n value={fc.value}\n onChange={e => updateFilterCondition(index, 'value', e.target.value)}\n placeholder=\"submitted\"\n className=\"flex-1 min-w-0\"\n />\n <Button size=\"icon\" variant=\"ghost\" className=\"shrink-0\" onClick={() => removeFilterCondition(index)}>\n <X className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n\n {/* Context Mapping */}\n <div className=\"space-y-2\">\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between\">\n <Label>{t('workflows.triggers.fields.contextMapping', 'Context Mapping')}</Label>\n <Button size=\"sm\" variant=\"ghost\" onClick={addContextMapping} className=\"w-full sm:w-auto\">\n <Plus className=\"w-4 h-4 mr-1\" />\n {t('workflows.triggers.addMapping', 'Add Mapping')}\n </Button>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.contextMapping', \"Map values from the event payload to the workflow's initial context\")}\n </p>\n {formValues.contextMappings.map((cm, index) => (\n <div key={index} className=\"flex flex-wrap items-center gap-2\">\n <Input\n value={cm.targetKey}\n onChange={e => updateContextMapping(index, 'targetKey', e.target.value)}\n placeholder=\"orderId\"\n className=\"w-full sm:w-1/3\"\n />\n <span className=\"hidden sm:inline text-muted-foreground\">=</span>\n <Input\n value={cm.sourceExpression}\n onChange={e => updateContextMapping(index, 'sourceExpression', e.target.value)}\n placeholder=\"id\"\n className=\"flex-1 min-w-0\"\n />\n <Input\n value={cm.defaultValue}\n onChange={e => updateContextMapping(index, 'defaultValue', e.target.value)}\n placeholder=\"default\"\n className=\"w-full sm:w-24\"\n />\n <Button size=\"icon\" variant=\"ghost\" className=\"shrink-0\" onClick={() => removeContextMapping(index)}>\n <X className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n\n {/* Advanced Options */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-debounce\">{t('workflows.triggers.fields.debounceMs', 'Debounce (ms)')}</Label>\n <Input\n id=\"trigger-debounce\"\n type=\"number\"\n value={formValues.debounceMs}\n onChange={e => setFormValues(prev => ({ ...prev, debounceMs: e.target.value }))}\n placeholder=\"0\"\n />\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.debounce', 'Delay to prevent rapid re-triggers')}\n </p>\n </div>\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-max-concurrent\">{t('workflows.triggers.fields.maxConcurrent', 'Max Concurrent Instances')}</Label>\n <Input\n id=\"trigger-max-concurrent\"\n type=\"number\"\n value={formValues.maxConcurrentInstances}\n onChange={e => setFormValues(prev => ({ ...prev, maxConcurrentInstances: e.target.value }))}\n placeholder={t('workflows.triggers.placeholders.unlimited', 'Unlimited')}\n />\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.maxConcurrent', 'Limit simultaneous workflow instances')}\n </p>\n </div>\n </div>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={handleCloseDialog}>\n {t('common.cancel', 'Cancel')}\n </Button>\n <Button\n onClick={handleSubmit}\n disabled={!formValues.name.trim() || !formValues.eventPattern.trim()}\n >\n {editingTrigger\n ? t('common.update', 'Update')\n : t('common.create', 'Create')\n }\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n\n {/* Delete Confirmation Dialog */}\n <Dialog open={!!deleteConfirmId} onOpenChange={() => setDeleteConfirmId(null)}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>{t('workflows.triggers.delete.title', 'Delete Event Trigger?')}</DialogTitle>\n <DialogDescription>\n {t('workflows.triggers.delete.description', 'This will remove the event trigger. The change will take effect when you save the workflow definition.')}\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setDeleteConfirmId(null)}>\n {t('common.cancel', 'Cancel')}\n </Button>\n <Button\n variant=\"destructive\"\n onClick={() => deleteConfirmId && handleDelete(deleteConfirmId)}\n >\n {t('common.delete', 'Delete')}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n )\n}\n"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { useState, useCallback } from 'react'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Textarea } from '@open-mercato/ui/primitives/textarea'\nimport { Label } from '@open-mercato/ui/primitives/label'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@open-mercato/ui/primitives/dialog'\nimport { Alert, AlertDescription, AlertTitle } from '@open-mercato/ui/primitives/alert'\nimport { EventPatternInput } from '@open-mercato/ui/backend/inputs/EventPatternInput'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { Plus, Trash2, Edit2, Zap, Info, X } from 'lucide-react'\nimport type { WorkflowDefinitionTrigger } from '../data/entities'\n\ninterface DefinitionTriggersEditorProps {\n value: WorkflowDefinitionTrigger[]\n onChange: (triggers: WorkflowDefinitionTrigger[]) => void\n className?: string\n}\n\nconst FILTER_OPERATORS = [\n { value: 'eq', label: 'Equals' },\n { value: 'neq', label: 'Not Equals' },\n { value: 'gt', label: 'Greater Than' },\n { value: 'gte', label: 'Greater Than or Equal' },\n { value: 'lt', label: 'Less Than' },\n { value: 'lte', label: 'Less Than or Equal' },\n { value: 'contains', label: 'Contains' },\n { value: 'startsWith', label: 'Starts With' },\n { value: 'endsWith', label: 'Ends With' },\n { value: 'in', label: 'In (array)' },\n { value: 'notIn', label: 'Not In (array)' },\n { value: 'exists', label: 'Exists' },\n { value: 'notExists', label: 'Not Exists' },\n { value: 'regex', label: 'Regex Match' },\n] as const\n\ntype TriggerFormValues = {\n triggerId: string\n name: string\n description: string\n eventPattern: string\n enabled: boolean\n priority: number\n filterConditions: Array<{ field: string; operator: string; value: string }>\n contextMappings: Array<{ targetKey: string; sourceExpression: string; defaultValue: string }>\n debounceMs: string\n maxConcurrentInstances: string\n}\n\nconst defaultFormValues: TriggerFormValues = {\n triggerId: '',\n name: '',\n description: '',\n eventPattern: '',\n enabled: true,\n priority: 0,\n filterConditions: [],\n contextMappings: [],\n debounceMs: '',\n maxConcurrentInstances: '',\n}\n\n/**\n * DefinitionTriggersEditor\n *\n * Manages event triggers embedded in workflow definitions.\n * Works with local state - no API calls, changes are saved with the definition.\n */\nexport function DefinitionTriggersEditor({\n value,\n onChange,\n className,\n}: DefinitionTriggersEditorProps) {\n const t = useT()\n const [showDialog, setShowDialog] = useState(false)\n const [editingTrigger, setEditingTrigger] = useState<WorkflowDefinitionTrigger | null>(null)\n const [formValues, setFormValues] = useState<TriggerFormValues>(defaultFormValues)\n const [deleteConfirmId, setDeleteConfirmId] = useState<string | null>(null)\n\n // Generate trigger ID from name\n const generateTriggerId = useCallback((name: string) => {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '_')\n .replace(/(?:^_+|_+$)/g, '')\n .substring(0, 50) || `trigger_${Date.now()}`\n }, [])\n\n // Parse condition value (try JSON, fallback to string)\n const parseConditionValue = (valueStr: string): unknown => {\n try {\n return JSON.parse(valueStr)\n } catch {\n return valueStr\n }\n }\n\n // Build trigger from form values\n const buildTriggerFromForm = useCallback((values: TriggerFormValues): WorkflowDefinitionTrigger => {\n const config: WorkflowDefinitionTrigger['config'] = {}\n\n if (values.filterConditions.length > 0) {\n config.filterConditions = values.filterConditions.map(fc => ({\n field: fc.field,\n operator: fc.operator as any,\n value: parseConditionValue(fc.value),\n }))\n }\n\n if (values.contextMappings.length > 0) {\n config.contextMapping = values.contextMappings.map(cm => ({\n targetKey: cm.targetKey,\n sourceExpression: cm.sourceExpression,\n defaultValue: cm.defaultValue ? parseConditionValue(cm.defaultValue) : undefined,\n }))\n }\n\n if (values.debounceMs) {\n config.debounceMs = parseInt(values.debounceMs, 10)\n }\n\n if (values.maxConcurrentInstances) {\n config.maxConcurrentInstances = parseInt(values.maxConcurrentInstances, 10)\n }\n\n return {\n triggerId: values.triggerId || generateTriggerId(values.name),\n name: values.name,\n description: values.description || null,\n eventPattern: values.eventPattern,\n enabled: values.enabled,\n priority: values.priority,\n config: Object.keys(config).length > 0 ? config : null,\n }\n }, [generateTriggerId])\n\n // Open dialog for creating new trigger\n const handleCreateNew = useCallback(() => {\n setEditingTrigger(null)\n setFormValues(defaultFormValues)\n setShowDialog(true)\n }, [])\n\n // Open dialog for editing trigger\n const handleEdit = useCallback((trigger: WorkflowDefinitionTrigger) => {\n setEditingTrigger(trigger)\n setFormValues({\n triggerId: trigger.triggerId,\n name: trigger.name,\n description: trigger.description || '',\n eventPattern: trigger.eventPattern,\n enabled: trigger.enabled,\n priority: trigger.priority,\n filterConditions: trigger.config?.filterConditions?.map(fc => ({\n field: fc.field,\n operator: fc.operator,\n value: typeof fc.value === 'string' ? fc.value : JSON.stringify(fc.value),\n })) || [],\n contextMappings: trigger.config?.contextMapping?.map(cm => ({\n targetKey: cm.targetKey,\n sourceExpression: cm.sourceExpression,\n defaultValue: cm.defaultValue !== undefined\n ? (typeof cm.defaultValue === 'string' ? cm.defaultValue : JSON.stringify(cm.defaultValue))\n : '',\n })) || [],\n debounceMs: trigger.config?.debounceMs?.toString() || '',\n maxConcurrentInstances: trigger.config?.maxConcurrentInstances?.toString() || '',\n })\n setShowDialog(true)\n }, [])\n\n // Close dialog\n const handleCloseDialog = useCallback(() => {\n setShowDialog(false)\n setEditingTrigger(null)\n setFormValues(defaultFormValues)\n }, [])\n\n // Submit form\n const handleSubmit = useCallback(() => {\n if (!formValues.name.trim()) {\n return\n }\n if (!formValues.eventPattern.trim()) {\n return\n }\n\n const newTrigger = buildTriggerFromForm(formValues)\n\n if (editingTrigger) {\n // Update existing trigger\n onChange(value.map(t => t.triggerId === editingTrigger.triggerId ? newTrigger : t))\n } else {\n // Check for duplicate triggerId\n const existingIds = new Set(value.map(t => t.triggerId))\n if (existingIds.has(newTrigger.triggerId)) {\n // Append timestamp to make unique\n newTrigger.triggerId = `${newTrigger.triggerId}_${Date.now()}`\n }\n // Add new trigger\n onChange([...value, newTrigger])\n }\n\n handleCloseDialog()\n }, [formValues, editingTrigger, buildTriggerFromForm, value, onChange, handleCloseDialog])\n\n // Delete trigger\n const handleDelete = useCallback((triggerId: string) => {\n onChange(value.filter(t => t.triggerId !== triggerId))\n setDeleteConfirmId(null)\n }, [value, onChange])\n\n // Add filter condition\n const addFilterCondition = useCallback(() => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: [...prev.filterConditions, { field: '', operator: 'eq', value: '' }],\n }))\n }, [])\n\n // Remove filter condition\n const removeFilterCondition = useCallback((index: number) => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: prev.filterConditions.filter((_, i) => i !== index),\n }))\n }, [])\n\n // Update filter condition\n const updateFilterCondition = useCallback((index: number, field: string, fieldValue: string) => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: prev.filterConditions.map((fc, i) =>\n i === index ? { ...fc, [field]: fieldValue } : fc\n ),\n }))\n }, [])\n\n // Add context mapping\n const addContextMapping = useCallback(() => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: [...prev.contextMappings, { targetKey: '', sourceExpression: '', defaultValue: '' }],\n }))\n }, [])\n\n // Remove context mapping\n const removeContextMapping = useCallback((index: number) => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: prev.contextMappings.filter((_, i) => i !== index),\n }))\n }, [])\n\n // Update context mapping\n const updateContextMapping = useCallback((index: number, field: string, fieldValue: string) => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: prev.contextMappings.map((cm, i) =>\n i === index ? { ...cm, [field]: fieldValue } : cm\n ),\n }))\n }, [])\n\n return (\n <div className={className}>\n <div className=\"rounded-lg border bg-card p-3 md:p-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4\">\n <div className=\"flex items-center gap-2\">\n <Zap className=\"w-5 h-5 text-amber-500\" />\n <h3 className=\"text-sm font-semibold uppercase text-muted-foreground\">\n {t('workflows.triggers.title', 'Event Triggers')}\n </h3>\n </div>\n <Button size=\"sm\" variant=\"outline\" onClick={handleCreateNew} className=\"w-full sm:w-auto\">\n <Plus className=\"w-4 h-4 mr-1\" />\n {t('workflows.triggers.add', 'Add Trigger')}\n </Button>\n </div>\n\n <p className=\"text-xs text-muted-foreground mb-4\">\n {t('workflows.triggers.description', 'Configure events that automatically start this workflow. When a matching event occurs in the system, a new workflow instance will be created with the mapped context.')}\n </p>\n\n {value.length === 0 ? (\n <Alert variant=\"info\">\n <Info className=\"w-4 h-4\" />\n <AlertTitle>{t('workflows.triggers.empty.title', 'No triggers configured')}</AlertTitle>\n <AlertDescription>\n {t('workflows.triggers.empty.description', 'Click \"Add Trigger\" to create an event trigger that automatically starts this workflow.')}\n </AlertDescription>\n </Alert>\n ) : (\n <div className=\"space-y-2\">\n {value.map(trigger => (\n <div\n key={trigger.triggerId}\n className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between p-3 rounded-lg border bg-background hover:bg-accent/50 transition-colors\"\n >\n <div className=\"flex items-center gap-3 min-w-0\">\n <Badge variant={trigger.enabled ? 'default' : 'secondary'} className=\"shrink-0\">\n {trigger.enabled ? t('common.active', 'Active') : t('common.disabled', 'Disabled')}\n </Badge>\n <div className=\"min-w-0\">\n <div className=\"font-medium text-sm truncate\">{trigger.name}</div>\n <code className=\"text-xs text-muted-foreground truncate block\">{trigger.eventPattern}</code>\n </div>\n </div>\n <div className=\"flex items-center gap-2 self-end sm:self-auto\">\n <Button size=\"sm\" variant=\"ghost\" onClick={() => handleEdit(trigger)}>\n <Edit2 className=\"w-4 h-4\" />\n </Button>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"text-destructive hover:text-destructive\"\n onClick={() => setDeleteConfirmId(trigger.triggerId)}\n >\n <Trash2 className=\"w-4 h-4\" />\n </Button>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Create/Edit Dialog */}\n <Dialog open={showDialog} onOpenChange={setShowDialog}>\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle>\n {editingTrigger\n ? t('workflows.triggers.dialog.edit.title', 'Edit Event Trigger')\n : t('workflows.triggers.dialog.create.title', 'Create Event Trigger')\n }\n </DialogTitle>\n <DialogDescription>\n {t('workflows.triggers.dialog.description', 'Configure when this workflow should be automatically started based on system events.')}\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"space-y-4 py-4\">\n {/* Basic Info */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-name\">{t('workflows.triggers.fields.name', 'Name')} *</Label>\n <Input\n id=\"trigger-name\"\n value={formValues.name}\n onChange={e => setFormValues(prev => ({ ...prev, name: e.target.value }))}\n placeholder={t('workflows.triggers.placeholders.name', 'Order Created Trigger')}\n />\n </div>\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-priority\">{t('workflows.triggers.fields.priority', 'Priority')}</Label>\n <Input\n id=\"trigger-priority\"\n type=\"number\"\n value={formValues.priority}\n onChange={e => setFormValues(prev => ({ ...prev, priority: parseInt(e.target.value) || 0 }))}\n placeholder=\"0\"\n />\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.priority', 'Higher priority triggers execute first')}\n </p>\n </div>\n </div>\n\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-description\">{t('workflows.triggers.fields.description', 'Description')}</Label>\n <Textarea\n id=\"trigger-description\"\n value={formValues.description}\n onChange={e => setFormValues(prev => ({ ...prev, description: e.target.value }))}\n placeholder={t('workflows.triggers.placeholders.description', 'Describe when this trigger should fire...')}\n rows={2}\n />\n </div>\n\n {/* Event Pattern */}\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-pattern\">{t('workflows.triggers.fields.eventPattern', 'Event Pattern')} *</Label>\n <EventPatternInput\n value={formValues.eventPattern}\n onChange={eventPattern => setFormValues(prev => ({ ...prev, eventPattern }))}\n placeholder={t('workflows.triggers.placeholders.eventPattern')}\n />\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.eventPattern', 'Use * as wildcard: \"sales.orders.*\" matches any order event')}\n </p>\n </div>\n\n {/* Enabled Switch */}\n <div className=\"flex items-center gap-2\">\n <Switch\n id=\"trigger-enabled\"\n checked={formValues.enabled}\n onCheckedChange={checked => setFormValues(prev => ({ ...prev, enabled: checked }))}\n />\n <Label htmlFor=\"trigger-enabled\">{t('workflows.triggers.fields.enabled', 'Enabled')}</Label>\n </div>\n\n {/* Filter Conditions */}\n <div className=\"space-y-2\">\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between\">\n <Label>{t('workflows.triggers.fields.filterConditions', 'Filter Conditions')}</Label>\n <Button size=\"sm\" variant=\"ghost\" onClick={addFilterCondition} className=\"w-full sm:w-auto\">\n <Plus className=\"w-4 h-4 mr-1\" />\n {t('workflows.triggers.addCondition', 'Add Condition')}\n </Button>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.filterConditions', 'Only trigger when the event payload matches these conditions (all must match)')}\n </p>\n {formValues.filterConditions.map((fc, index) => (\n <div key={index} className=\"flex flex-wrap items-center gap-2\">\n <Input\n value={fc.field}\n onChange={e => updateFilterCondition(index, 'field', e.target.value)}\n placeholder=\"status\"\n className=\"w-full sm:w-1/3\"\n />\n <select\n value={fc.operator}\n onChange={(e: React.ChangeEvent<HTMLSelectElement>) => updateFilterCondition(index, 'operator', e.target.value)}\n className=\"h-10 w-full sm:w-[140px] rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n >\n {FILTER_OPERATORS.map(op => (\n <option key={op.value} value={op.value}>\n {op.label}\n </option>\n ))}\n </select>\n <Input\n value={fc.value}\n onChange={e => updateFilterCondition(index, 'value', e.target.value)}\n placeholder=\"submitted\"\n className=\"flex-1 min-w-0\"\n />\n <Button size=\"icon\" variant=\"ghost\" className=\"shrink-0\" onClick={() => removeFilterCondition(index)}>\n <X className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n\n {/* Context Mapping */}\n <div className=\"space-y-2\">\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between\">\n <Label>{t('workflows.triggers.fields.contextMapping', 'Context Mapping')}</Label>\n <Button size=\"sm\" variant=\"ghost\" onClick={addContextMapping} className=\"w-full sm:w-auto\">\n <Plus className=\"w-4 h-4 mr-1\" />\n {t('workflows.triggers.addMapping', 'Add Mapping')}\n </Button>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.contextMapping', \"Map values from the event payload to the workflow's initial context\")}\n </p>\n {formValues.contextMappings.map((cm, index) => (\n <div key={index} className=\"flex flex-wrap items-center gap-2\">\n <Input\n value={cm.targetKey}\n onChange={e => updateContextMapping(index, 'targetKey', e.target.value)}\n placeholder=\"orderId\"\n className=\"w-full sm:w-1/3\"\n />\n <span className=\"hidden sm:inline text-muted-foreground\">=</span>\n <Input\n value={cm.sourceExpression}\n onChange={e => updateContextMapping(index, 'sourceExpression', e.target.value)}\n placeholder=\"id\"\n className=\"flex-1 min-w-0\"\n />\n <Input\n value={cm.defaultValue}\n onChange={e => updateContextMapping(index, 'defaultValue', e.target.value)}\n placeholder=\"default\"\n className=\"w-full sm:w-24\"\n />\n <Button size=\"icon\" variant=\"ghost\" className=\"shrink-0\" onClick={() => removeContextMapping(index)}>\n <X className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n\n {/* Advanced Options */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-debounce\">{t('workflows.triggers.fields.debounceMs', 'Debounce (ms)')}</Label>\n <Input\n id=\"trigger-debounce\"\n type=\"number\"\n value={formValues.debounceMs}\n onChange={e => setFormValues(prev => ({ ...prev, debounceMs: e.target.value }))}\n placeholder=\"0\"\n />\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.debounce', 'Delay to prevent rapid re-triggers')}\n </p>\n </div>\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-max-concurrent\">{t('workflows.triggers.fields.maxConcurrent', 'Max Concurrent Instances')}</Label>\n <Input\n id=\"trigger-max-concurrent\"\n type=\"number\"\n value={formValues.maxConcurrentInstances}\n onChange={e => setFormValues(prev => ({ ...prev, maxConcurrentInstances: e.target.value }))}\n placeholder={t('workflows.triggers.placeholders.unlimited', 'Unlimited')}\n />\n <p className=\"text-xs text-muted-foreground\">\n {t('workflows.triggers.hints.maxConcurrent', 'Limit simultaneous workflow instances')}\n </p>\n </div>\n </div>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={handleCloseDialog}>\n {t('common.cancel', 'Cancel')}\n </Button>\n <Button\n onClick={handleSubmit}\n disabled={!formValues.name.trim() || !formValues.eventPattern.trim()}\n >\n {editingTrigger\n ? t('common.update', 'Update')\n : t('common.create', 'Create')\n }\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n\n {/* Delete Confirmation Dialog */}\n <Dialog open={!!deleteConfirmId} onOpenChange={() => setDeleteConfirmId(null)}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>{t('workflows.triggers.delete.title', 'Delete Event Trigger?')}</DialogTitle>\n <DialogDescription>\n {t('workflows.triggers.delete.description', 'This will remove the event trigger. The change will take effect when you save the workflow definition.')}\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setDeleteConfirmId(null)}>\n {t('common.cancel', 'Cancel')}\n </Button>\n <Button\n variant=\"destructive\"\n onClick={() => deleteConfirmId && handleDelete(deleteConfirmId)}\n >\n {t('common.delete', 'Delete')}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n )\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["t"]
|
|
7
7
|
}
|
|
@@ -398,7 +398,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
398
398
|
type: "text",
|
|
399
399
|
value: condition.ruleId,
|
|
400
400
|
onChange: (e) => updatePreCondition(index, "ruleId", e.target.value),
|
|
401
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
401
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring"
|
|
402
402
|
}
|
|
403
403
|
)
|
|
404
404
|
] }),
|
|
@@ -409,7 +409,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
409
409
|
type: "checkbox",
|
|
410
410
|
checked: condition.required,
|
|
411
411
|
onChange: (e) => updatePreCondition(index, "required", e.target.checked),
|
|
412
|
-
className: "rounded border-gray-300 text-blue-600 focus:ring-
|
|
412
|
+
className: "rounded border-gray-300 text-blue-600 focus-visible:ring-ring"
|
|
413
413
|
}
|
|
414
414
|
),
|
|
415
415
|
t("workflows.edgeEditor.requiredCheckbox")
|
|
@@ -531,7 +531,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
531
531
|
type: "text",
|
|
532
532
|
value: condition.ruleId,
|
|
533
533
|
onChange: (e) => updatePostCondition(index, "ruleId", e.target.value),
|
|
534
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
534
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring"
|
|
535
535
|
}
|
|
536
536
|
)
|
|
537
537
|
] }),
|
|
@@ -542,7 +542,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
542
542
|
type: "checkbox",
|
|
543
543
|
checked: condition.required,
|
|
544
544
|
onChange: (e) => updatePostCondition(index, "required", e.target.checked),
|
|
545
|
-
className: "rounded border-gray-300 text-blue-600 focus:ring-
|
|
545
|
+
className: "rounded border-gray-300 text-blue-600 focus-visible:ring-ring"
|
|
546
546
|
}
|
|
547
547
|
),
|
|
548
548
|
t("workflows.edgeEditor.requiredPostCheckbox")
|
|
@@ -661,7 +661,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
661
661
|
type: "text",
|
|
662
662
|
value: activity.activityId,
|
|
663
663
|
onChange: (e) => updateActivity(index, "activityId", e.target.value),
|
|
664
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
664
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring",
|
|
665
665
|
placeholder: t("workflows.edgeEditor.activityIdPlaceholder")
|
|
666
666
|
}
|
|
667
667
|
)
|
|
@@ -677,7 +677,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
677
677
|
type: "text",
|
|
678
678
|
value: activity.activityName || "",
|
|
679
679
|
onChange: (e) => updateActivity(index, "activityName", e.target.value),
|
|
680
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
680
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring",
|
|
681
681
|
placeholder: t("workflows.edgeEditor.activityNamePlaceholder")
|
|
682
682
|
}
|
|
683
683
|
)
|
|
@@ -692,7 +692,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
692
692
|
{
|
|
693
693
|
value: activity.activityType,
|
|
694
694
|
onChange: (e) => updateActivity(index, "activityType", e.target.value),
|
|
695
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
695
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring",
|
|
696
696
|
children: [
|
|
697
697
|
/* @__PURE__ */ jsx("option", { value: "SEND_EMAIL", children: t("workflows.activities.types.SEND_EMAIL") }),
|
|
698
698
|
/* @__PURE__ */ jsx("option", { value: "CALL_API", children: t("workflows.activities.types.CALL_API") }),
|
|
@@ -713,7 +713,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
713
713
|
type: "text",
|
|
714
714
|
value: activity.timeout || "",
|
|
715
715
|
onChange: (e) => updateActivity(index, "timeout", e.target.value),
|
|
716
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
716
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring",
|
|
717
717
|
placeholder: t("workflows.edgeEditor.timeoutPlaceholder")
|
|
718
718
|
}
|
|
719
719
|
),
|
|
@@ -730,7 +730,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
730
730
|
type: "number",
|
|
731
731
|
value: activity.retryPolicy?.maxAttempts || "",
|
|
732
732
|
onChange: (e) => updateActivityRetryPolicy(index, "maxAttempts", parseInt(e.target.value) || 0),
|
|
733
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
733
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring",
|
|
734
734
|
placeholder: "3",
|
|
735
735
|
min: "1",
|
|
736
736
|
max: "10"
|
|
@@ -745,7 +745,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
745
745
|
type: "number",
|
|
746
746
|
value: activity.retryPolicy?.initialIntervalMs || "",
|
|
747
747
|
onChange: (e) => updateActivityRetryPolicy(index, "initialIntervalMs", parseInt(e.target.value) || 0),
|
|
748
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
748
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring",
|
|
749
749
|
placeholder: "1000",
|
|
750
750
|
min: "0"
|
|
751
751
|
}
|
|
@@ -760,7 +760,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
760
760
|
step: "0.1",
|
|
761
761
|
value: activity.retryPolicy?.backoffCoefficient || "",
|
|
762
762
|
onChange: (e) => updateActivityRetryPolicy(index, "backoffCoefficient", parseFloat(e.target.value) || 1),
|
|
763
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
763
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring",
|
|
764
764
|
placeholder: "2",
|
|
765
765
|
min: "1",
|
|
766
766
|
max: "10"
|
|
@@ -775,7 +775,7 @@ function EdgeEditDialog({ edge, isOpen, onClose, onSave, onDelete }) {
|
|
|
775
775
|
type: "number",
|
|
776
776
|
value: activity.retryPolicy?.maxIntervalMs || "",
|
|
777
777
|
onChange: (e) => updateActivityRetryPolicy(index, "maxIntervalMs", parseInt(e.target.value) || 0),
|
|
778
|
-
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus:ring-1 focus:ring-
|
|
778
|
+
className: "w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring",
|
|
779
779
|
placeholder: "10000",
|
|
780
780
|
min: "0"
|
|
781
781
|
}
|