@open-mercato/core 0.6.1-develop.3287.1.450f4ffb56 → 0.6.1-develop.3306.1.9ad9ff2526
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/.turbo/turbo-build.log +1 -1
- package/AGENTS.md +14 -0
- package/dist/modules/auth/backend/roles/[id]/edit/page.js +2 -1
- package/dist/modules/auth/backend/roles/[id]/edit/page.js.map +2 -2
- package/dist/modules/auth/backend/users/[id]/edit/page.js +2 -5
- package/dist/modules/auth/backend/users/[id]/edit/page.js.map +2 -2
- package/dist/modules/catalog/ai-agents.js +47 -5
- package/dist/modules/catalog/ai-agents.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/categories/[id]/edit/page.js +2 -5
- package/dist/modules/catalog/backend/catalog/categories/[id]/edit/page.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js +4 -3
- package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/[id]/page.js +2 -9
- package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/[productId]/variants/[variantId]/page.js +2 -9
- package/dist/modules/catalog/backend/catalog/products/[productId]/variants/[variantId]/page.js.map +2 -2
- package/dist/modules/customers/ai-agents.js +174 -1
- package/dist/modules/customers/ai-agents.js.map +2 -2
- package/dist/modules/customers/ai-tools/deal-analyzer-pack.js +196 -0
- package/dist/modules/customers/ai-tools/deal-analyzer-pack.js.map +7 -0
- package/dist/modules/customers/ai-tools.js +3 -1
- package/dist/modules/customers/ai-tools.js.map +2 -2
- package/dist/modules/customers/backend/customers/companies/page.js +11 -1
- package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/page.js +11 -1
- package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/people/page.js +11 -1
- package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
- package/dist/modules/customers/commands/companies.js +37 -15
- package/dist/modules/customers/commands/companies.js.map +2 -2
- package/dist/modules/customers/components/detail/AiActionChips.js +2 -2
- package/dist/modules/customers/components/detail/AiActionChips.js.map +2 -2
- package/dist/modules/customers/components/detail/ChangelogTab.js +3 -9
- package/dist/modules/customers/components/detail/ChangelogTab.js.map +2 -2
- package/dist/modules/customers/components/detail/changelogValues.js +35 -0
- package/dist/modules/customers/components/detail/changelogValues.js.map +7 -0
- package/dist/modules/customers/components/detail/customFieldUtils.js +1 -1
- package/dist/modules/customers/components/detail/customFieldUtils.js.map +1 -1
- package/dist/modules/customers/components/formConfig.js +3 -2
- package/dist/modules/customers/components/formConfig.js.map +2 -2
- package/dist/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.js +4 -9
- package/dist/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.js.map +2 -2
- package/dist/modules/customers/widgets/injection/ai-deal-analyzer-trigger/widget.client.js +302 -0
- package/dist/modules/customers/widgets/injection/ai-deal-analyzer-trigger/widget.client.js.map +7 -0
- package/dist/modules/customers/widgets/injection/ai-deal-analyzer-trigger/widget.js +17 -0
- package/dist/modules/customers/widgets/injection/ai-deal-analyzer-trigger/widget.js.map +7 -0
- package/dist/modules/customers/widgets/injection/ai-deal-detail-trigger/widget.client.js +2 -2
- package/dist/modules/customers/widgets/injection/ai-deal-detail-trigger/widget.client.js.map +2 -2
- package/dist/modules/customers/widgets/injection-table.js +2 -2
- package/dist/modules/customers/widgets/injection-table.js.map +2 -2
- package/dist/modules/directory/backend/directory/organizations/[id]/edit/page.js +2 -5
- package/dist/modules/directory/backend/directory/organizations/[id]/edit/page.js.map +2 -2
- package/dist/modules/directory/backend/directory/tenants/[id]/edit/page.js +2 -5
- package/dist/modules/directory/backend/directory/tenants/[id]/edit/page.js.map +2 -2
- package/dist/modules/resources/backend/resources/resources/[id]/page.js +2 -5
- package/dist/modules/resources/backend/resources/resources/[id]/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/channels/[channelId]/edit/page.js +2 -25
- package/dist/modules/sales/backend/sales/channels/[channelId]/edit/page.js.map +2 -2
- package/dist/modules/sales/components/channels/ChannelOfferForm.js +2 -43
- package/dist/modules/sales/components/channels/ChannelOfferForm.js.map +2 -2
- package/dist/modules/sales/components/documents/LineItemDialog.js +162 -42
- package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
- package/dist/modules/sales/components/documents/customFieldHelpers.js +4 -31
- package/dist/modules/sales/components/documents/customFieldHelpers.js.map +2 -2
- package/package.json +15 -6
- package/src/modules/auth/backend/roles/[id]/edit/page.tsx +2 -1
- package/src/modules/auth/backend/users/[id]/edit/page.tsx +2 -5
- package/src/modules/business_rules/migrations/.snapshot-open-mercato.json +746 -394
- package/src/modules/catalog/ai-agents.ts +62 -4
- package/src/modules/catalog/backend/catalog/categories/[id]/edit/page.tsx +2 -5
- package/src/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.tsx +4 -3
- package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +2 -12
- package/src/modules/catalog/backend/catalog/products/[productId]/variants/[variantId]/page.tsx +2 -10
- package/src/modules/catalog/migrations/.snapshot-open-mercato.json +2519 -1307
- package/src/modules/customer_accounts/migrations/.snapshot-open-mercato.json +828 -834
- package/src/modules/customers/AGENTS.md +6 -1
- package/src/modules/customers/ai-agents.ts +213 -6
- package/src/modules/customers/ai-tools/deal-analyzer-pack.ts +286 -0
- package/src/modules/customers/ai-tools.ts +2 -0
- package/src/modules/customers/backend/customers/companies/page.tsx +10 -0
- package/src/modules/customers/backend/customers/deals/page.tsx +10 -0
- package/src/modules/customers/backend/customers/people/page.tsx +10 -0
- package/src/modules/customers/commands/companies.ts +38 -14
- package/src/modules/customers/components/detail/AiActionChips.tsx +2 -2
- package/src/modules/customers/components/detail/ChangelogTab.tsx +3 -10
- package/src/modules/customers/components/detail/changelogValues.ts +42 -0
- package/src/modules/customers/components/detail/customFieldUtils.ts +1 -1
- package/src/modules/customers/components/formConfig.tsx +3 -2
- package/src/modules/customers/i18n/de.json +7 -0
- package/src/modules/customers/i18n/en.json +7 -0
- package/src/modules/customers/i18n/es.json +7 -0
- package/src/modules/customers/i18n/pl.json +7 -0
- package/src/modules/customers/migrations/.snapshot-open-mercato.json +2313 -2336
- package/src/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.tsx +4 -6
- package/src/modules/customers/widgets/injection/ai-deal-analyzer-trigger/widget.client.tsx +358 -0
- package/src/modules/customers/widgets/injection/ai-deal-analyzer-trigger/widget.ts +34 -0
- package/src/modules/customers/widgets/injection/ai-deal-detail-trigger/widget.client.tsx +2 -2
- package/src/modules/customers/widgets/injection-table.ts +12 -9
- package/src/modules/data_sync/migrations/.snapshot-open-mercato.json +554 -210
- package/src/modules/dictionaries/migrations/.snapshot-open-mercato.json +146 -146
- package/src/modules/directory/backend/directory/organizations/[id]/edit/page.tsx +2 -5
- package/src/modules/directory/backend/directory/tenants/[id]/edit/page.tsx +2 -5
- package/src/modules/directory/migrations/.snapshot-open-mercato.json +273 -140
- package/src/modules/feature_toggles/migrations/.snapshot-open-mercato.json +242 -137
- package/src/modules/integrations/migrations/.snapshot-open-mercato.json +498 -195
- package/src/modules/payment_gateways/migrations/.snapshot-open-mercato.json +158 -157
- package/src/modules/perspectives/migrations/.snapshot-open-mercato.json +274 -129
- package/src/modules/planner/migrations/.snapshot-open-mercato.json +327 -157
- package/src/modules/progress/AGENTS.md +72 -0
- package/src/modules/resources/backend/resources/resources/[id]/page.tsx +2 -5
- package/src/modules/resources/migrations/.snapshot-open-mercato.json +920 -470
- package/src/modules/sales/backend/sales/channels/[channelId]/edit/page.tsx +2 -27
- package/src/modules/sales/components/channels/ChannelOfferForm.tsx +2 -49
- package/src/modules/sales/components/documents/LineItemDialog.tsx +214 -78
- package/src/modules/sales/components/documents/customFieldHelpers.ts +4 -43
- package/src/modules/sales/i18n/de.json +3 -0
- package/src/modules/sales/i18n/en.json +3 -0
- package/src/modules/sales/i18n/es.json +3 -0
- package/src/modules/sales/i18n/pl.json +3 -0
- package/src/modules/sales/migrations/.snapshot-open-mercato.json +4740 -4778
- package/src/modules/shipping_carriers/migrations/.snapshot-open-mercato.json +340 -81
- package/src/modules/staff/migrations/.snapshot-open-mercato.json +1439 -729
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
import type { CrudIndexerConfig, CrudEventsConfig } from '@open-mercato/shared/lib/crud/types'
|
|
52
52
|
import { E } from '#generated/entities.ids.generated'
|
|
53
53
|
import { findOneWithDecryption, findWithDecryption } from '@open-mercato/shared/lib/encryption/find'
|
|
54
|
-
import { CUSTOMER_ENTITY_ID } from '../lib/customFieldRouting'
|
|
54
|
+
import { CUSTOMER_ENTITY_ID, resolveCompanyCustomFieldRouting } from '../lib/customFieldRouting'
|
|
55
55
|
import { CustomFieldValue } from '@open-mercato/core/modules/entities/data/entities'
|
|
56
56
|
|
|
57
57
|
const COMPANY_ENTITY_ID = 'customers:customer_company_profile'
|
|
@@ -413,22 +413,46 @@ async function loadCompanySnapshot(em: EntityManager, id: string): Promise<Compa
|
|
|
413
413
|
|
|
414
414
|
async function setCompanyCustomFields(
|
|
415
415
|
ctx: CommandRuntimeContext,
|
|
416
|
+
entityId: string,
|
|
416
417
|
profileId: string,
|
|
417
418
|
organizationId: string,
|
|
418
419
|
tenantId: string,
|
|
419
420
|
values: Record<string, unknown>
|
|
420
421
|
) {
|
|
421
422
|
if (!values || !Object.keys(values).length) return
|
|
423
|
+
const em = (ctx.container.resolve('em') as EntityManager)
|
|
424
|
+
const routing = await resolveCompanyCustomFieldRouting(em, tenantId, organizationId)
|
|
425
|
+
const entityScoped: Record<string, unknown> = {}
|
|
426
|
+
const profileScoped: Record<string, unknown> = {}
|
|
427
|
+
for (const [key, value] of Object.entries(values)) {
|
|
428
|
+
const target = routing.get(key) ?? COMPANY_ENTITY_ID
|
|
429
|
+
if (target === CUSTOMER_ENTITY_ID) entityScoped[key] = value
|
|
430
|
+
else profileScoped[key] = value
|
|
431
|
+
}
|
|
432
|
+
|
|
422
433
|
const de = (ctx.container.resolve('dataEngine') as DataEngine)
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
434
|
+
if (Object.keys(entityScoped).length) {
|
|
435
|
+
await setCustomFieldsIfAny({
|
|
436
|
+
dataEngine: de,
|
|
437
|
+
entityId: CUSTOMER_ENTITY_ID,
|
|
438
|
+
recordId: entityId,
|
|
439
|
+
organizationId,
|
|
440
|
+
tenantId,
|
|
441
|
+
values: entityScoped,
|
|
442
|
+
notify: false,
|
|
443
|
+
})
|
|
444
|
+
}
|
|
445
|
+
if (Object.keys(profileScoped).length) {
|
|
446
|
+
await setCustomFieldsIfAny({
|
|
447
|
+
dataEngine: de,
|
|
448
|
+
entityId: COMPANY_ENTITY_ID,
|
|
449
|
+
recordId: profileId,
|
|
450
|
+
organizationId,
|
|
451
|
+
tenantId,
|
|
452
|
+
values: profileScoped,
|
|
453
|
+
notify: false,
|
|
454
|
+
})
|
|
455
|
+
}
|
|
432
456
|
}
|
|
433
457
|
|
|
434
458
|
function normalizeOptionalString(value: string | null | undefined): string | null {
|
|
@@ -495,7 +519,7 @@ const createCompanyCommand: CommandHandler<CompanyCreateInput, { entityId: strin
|
|
|
495
519
|
|
|
496
520
|
await syncEntityTags(em, entity, parsed.tags)
|
|
497
521
|
await em.flush()
|
|
498
|
-
await setCompanyCustomFields(ctx, profile.id, entity.organizationId, entity.tenantId, custom)
|
|
522
|
+
await setCompanyCustomFields(ctx, entity.id, profile.id, entity.organizationId, entity.tenantId, custom)
|
|
499
523
|
|
|
500
524
|
const de = (ctx.container.resolve('dataEngine') as DataEngine)
|
|
501
525
|
await emitCrudSideEffects({
|
|
@@ -622,7 +646,7 @@ const updateCompanyCommand: CommandHandler<CompanyUpdateInput, { entityId: strin
|
|
|
622
646
|
await syncEntityTags(em, record, parsed.tags)
|
|
623
647
|
await em.flush()
|
|
624
648
|
|
|
625
|
-
await setCompanyCustomFields(ctx, profile.id, record.organizationId, record.tenantId, custom)
|
|
649
|
+
await setCompanyCustomFields(ctx, record.id, profile.id, record.organizationId, record.tenantId, custom)
|
|
626
650
|
|
|
627
651
|
const de = (ctx.container.resolve('dataEngine') as DataEngine)
|
|
628
652
|
await emitCrudSideEffects({
|
|
@@ -801,7 +825,7 @@ const updateCompanyCommand: CommandHandler<CompanyUpdateInput, { entityId: strin
|
|
|
801
825
|
|
|
802
826
|
const resetValues = buildCustomFieldResetMap(before.custom, payload?.after?.custom)
|
|
803
827
|
if (Object.keys(resetValues).length) {
|
|
804
|
-
await setCompanyCustomFields(ctx, profile.id, entity.organizationId, entity.tenantId, resetValues)
|
|
828
|
+
await setCompanyCustomFields(ctx, entity.id, profile.id, entity.organizationId, entity.tenantId, resetValues)
|
|
805
829
|
}
|
|
806
830
|
},
|
|
807
831
|
}
|
|
@@ -1329,7 +1353,7 @@ const deleteCompanyCommand: CommandHandler<{ body?: Record<string, unknown>; que
|
|
|
1329
1353
|
|
|
1330
1354
|
const resetValues = buildCustomFieldResetMap(before.custom, undefined)
|
|
1331
1355
|
if (Object.keys(resetValues).length) {
|
|
1332
|
-
await setCompanyCustomFields(ctx, profile.id, entity.organizationId, entity.tenantId, resetValues)
|
|
1356
|
+
await setCompanyCustomFields(ctx, entity.id, profile.id, entity.organizationId, entity.tenantId, resetValues)
|
|
1333
1357
|
}
|
|
1334
1358
|
await emitQueryIndexUpsertEvents(ctx, [companyEntityIndexEntry(entity)])
|
|
1335
1359
|
await emitQueryIndexUpsertEvents(ctx, childUpserts)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
3
|
import * as React from 'react'
|
|
4
|
-
import { Sparkles } from 'lucide-react'
|
|
5
4
|
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
5
|
+
import { AiIcon } from '@open-mercato/ui/ai/AiIcon'
|
|
6
6
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@open-mercato/ui/primitives/tooltip'
|
|
7
7
|
import { AI_TIMELINE_ACTIONS_BY_TYPE, resolveAiActions } from './aiActionCatalog'
|
|
8
8
|
|
|
@@ -27,7 +27,7 @@ export function AiActionChips({ activityType }: AiActionChipsProps) {
|
|
|
27
27
|
type="button"
|
|
28
28
|
className="inline-flex items-center gap-1 rounded-[4px] border border-dashed border-border bg-card pl-1.5 pr-[7px] py-[3px] text-[9px] font-medium text-muted-foreground/70 transition-colors hover:border-muted-foreground hover:text-foreground"
|
|
29
29
|
>
|
|
30
|
-
<
|
|
30
|
+
<AiIcon className="size-2.5 shrink-0" />
|
|
31
31
|
{t(action.i18nKey, action.fallback)}
|
|
32
32
|
</button>
|
|
33
33
|
</TooltipTrigger>
|
|
@@ -14,6 +14,7 @@ import { ErrorMessage, LoadingMessage, TabEmptyState } from '@open-mercato/ui/ba
|
|
|
14
14
|
import { ChangelogFilters } from './ChangelogFilters'
|
|
15
15
|
import { ChangelogKpiCards } from './ChangelogKpiCards'
|
|
16
16
|
import { ChangelogEntryRow } from './ChangelogEntryRow'
|
|
17
|
+
import { formatChangelogValue } from './changelogValues'
|
|
17
18
|
|
|
18
19
|
type AuditAction = {
|
|
19
20
|
id: string
|
|
@@ -95,14 +96,6 @@ const HEADER_COLUMNS: Array<{ field: SortField; key: string; fallback: string; a
|
|
|
95
96
|
{ field: 'source', key: 'customers.changelog.col.source', fallback: 'Source', align: 'right' },
|
|
96
97
|
]
|
|
97
98
|
|
|
98
|
-
function formatValue(value: unknown): string {
|
|
99
|
-
if (value == null) return ''
|
|
100
|
-
if (value instanceof Date) return value.toISOString()
|
|
101
|
-
if (Array.isArray(value)) return value.map((entry) => formatValue(entry)).filter(Boolean).join(', ')
|
|
102
|
-
if (typeof value === 'object') return JSON.stringify(value)
|
|
103
|
-
return String(value)
|
|
104
|
-
}
|
|
105
|
-
|
|
106
99
|
function formatFieldLabel(fieldName: string): string {
|
|
107
100
|
return fieldName
|
|
108
101
|
.replace(/\./g, ' ')
|
|
@@ -126,8 +119,8 @@ function mergeFilterOptions(...groups: FilterOption[][]): FilterOption[] {
|
|
|
126
119
|
function mapAuditActionToEntry(action: AuditAction): ChangelogEntry {
|
|
127
120
|
const changes = extractChangeRows(action.changes, action.snapshotBefore).map((change) => ({
|
|
128
121
|
fieldName: change.field,
|
|
129
|
-
oldValue:
|
|
130
|
-
newValue:
|
|
122
|
+
oldValue: formatChangelogValue(change.from),
|
|
123
|
+
newValue: formatChangelogValue(change.to),
|
|
131
124
|
}))
|
|
132
125
|
|
|
133
126
|
return {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
2
|
+
return !!value && typeof value === 'object' && !Array.isArray(value)
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
function readString(record: Record<string, unknown>, ...keys: string[]): string | null {
|
|
6
|
+
for (const key of keys) {
|
|
7
|
+
const value = record[key]
|
|
8
|
+
if (typeof value === 'string' && value.trim().length > 0) {
|
|
9
|
+
return value.trim()
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return null
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function formatObjectSummary(record: Record<string, unknown>): string | null {
|
|
16
|
+
const personName = [readString(record, 'firstName'), readString(record, 'lastName')]
|
|
17
|
+
.filter(Boolean)
|
|
18
|
+
.join(' ')
|
|
19
|
+
.trim()
|
|
20
|
+
const label = readString(record, 'displayName', 'label', 'name', 'title', 'fullName')
|
|
21
|
+
?? (personName || null)
|
|
22
|
+
?? readString(record, 'email')
|
|
23
|
+
if (!label) return null
|
|
24
|
+
return record.isPrimary === true ? `${label} (primary)` : label
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function formatChangelogValue(value: unknown): string {
|
|
28
|
+
if (value == null) return ''
|
|
29
|
+
if (value instanceof Date) return value.toISOString()
|
|
30
|
+
if (Array.isArray(value)) {
|
|
31
|
+
return value
|
|
32
|
+
.map((entry) => formatChangelogValue(entry))
|
|
33
|
+
.filter(Boolean)
|
|
34
|
+
.join(', ')
|
|
35
|
+
}
|
|
36
|
+
if (isRecord(value)) {
|
|
37
|
+
const summary = formatObjectSummary(value)
|
|
38
|
+
if (summary) return summary
|
|
39
|
+
return JSON.stringify(value)
|
|
40
|
+
}
|
|
41
|
+
return String(value)
|
|
42
|
+
}
|
|
@@ -121,6 +121,6 @@ export function normalizeCustomFieldSubmitValue(value: unknown): unknown {
|
|
|
121
121
|
if (Array.isArray(value)) {
|
|
122
122
|
return value.filter((entry) => entry !== undefined)
|
|
123
123
|
}
|
|
124
|
-
if (value === undefined) return
|
|
124
|
+
if (value === undefined) return undefined
|
|
125
125
|
return value
|
|
126
126
|
}
|
|
@@ -6,6 +6,7 @@ import Link from 'next/link'
|
|
|
6
6
|
import { Check, Pencil, Plus, Settings } from 'lucide-react'
|
|
7
7
|
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
8
8
|
import { useOrganizationScopeVersion } from '@open-mercato/shared/lib/frontend/useOrganizationScope'
|
|
9
|
+
import { extractCustomFieldEntries } from '@open-mercato/shared/lib/crud/custom-fields-client'
|
|
9
10
|
import { Button } from '@open-mercato/ui/primitives/button'
|
|
10
11
|
import { Input } from '@open-mercato/ui/primitives/input'
|
|
11
12
|
import { EmailInput } from '@open-mercato/ui/primitives/email-input'
|
|
@@ -1966,7 +1967,7 @@ export function mapCompanyOverviewToFormValues(overview: CompanyOverview): Parti
|
|
|
1966
1967
|
industry: overview.profile?.industry ?? '',
|
|
1967
1968
|
sizeBucket: overview.profile?.sizeBucket ?? '',
|
|
1968
1969
|
annualRevenue: overview.profile?.annualRevenue ?? '',
|
|
1969
|
-
...overview.customFields,
|
|
1970
|
+
...extractCustomFieldEntries({ customFields: overview.customFields }),
|
|
1970
1971
|
}
|
|
1971
1972
|
}
|
|
1972
1973
|
|
|
@@ -1989,6 +1990,6 @@ export function mapPersonOverviewToFormValues(overview: PersonOverview): Partial
|
|
|
1989
1990
|
department: overview.profile?.department ?? '',
|
|
1990
1991
|
linkedInUrl: overview.profile?.linkedInUrl ?? '',
|
|
1991
1992
|
twitterUrl: overview.profile?.twitterUrl ?? '',
|
|
1992
|
-
...overview.customFields,
|
|
1993
|
+
...extractCustomFieldEntries({ customFields: overview.customFields }),
|
|
1993
1994
|
}
|
|
1994
1995
|
}
|
|
@@ -536,6 +536,7 @@
|
|
|
536
536
|
"customers.companies.list.bulkDelete.failedGroup": "{count} Unternehmen konnten nicht gelöscht werden: {message}",
|
|
537
537
|
"customers.companies.list.bulkDelete.operationLabel": "{count} Unternehmen löschen",
|
|
538
538
|
"customers.companies.list.bulkDelete.partial": "{deleted} von {total} Unternehmen gelöscht; {failed} fehlgeschlagen",
|
|
539
|
+
"customers.companies.list.bulkDelete.progressName": "Ausgewählte Unternehmen löschen",
|
|
539
540
|
"customers.companies.list.bulkDelete.success": "{count} companies deleted",
|
|
540
541
|
"customers.companies.list.bulkDelete.title": "Delete {count} companies?",
|
|
541
542
|
"customers.companies.list.columns.email": "E-Mail",
|
|
@@ -660,6 +661,10 @@
|
|
|
660
661
|
"customers.countries.it": "Italien",
|
|
661
662
|
"customers.countries.pl": "Polen",
|
|
662
663
|
"customers.countries.us": "Vereinigte Staaten",
|
|
664
|
+
"customers.deal_analyzer.dock.subtitle": "Deals",
|
|
665
|
+
"customers.deal_analyzer.sheet.dock": "Seitlich andocken",
|
|
666
|
+
"customers.deal_analyzer.sheet.title": "Deal-Analyse",
|
|
667
|
+
"customers.deal_analyzer.sheet.welcomeTitle": "Deal-Analyse",
|
|
663
668
|
"customers.deals.create.error": "Deal konnte nicht erstellt werden.",
|
|
664
669
|
"customers.deals.create.submit": "Deal erstellen",
|
|
665
670
|
"customers.deals.create.title": "Deal erstellen",
|
|
@@ -872,6 +877,7 @@
|
|
|
872
877
|
"customers.deals.list.bulkDelete.failedGroup": "{count} Deals konnten nicht gelöscht werden: {message}",
|
|
873
878
|
"customers.deals.list.bulkDelete.operationLabel": "{count} Deals löschen",
|
|
874
879
|
"customers.deals.list.bulkDelete.partial": "{deleted} von {total} Deals gelöscht; {failed} fehlgeschlagen",
|
|
880
|
+
"customers.deals.list.bulkDelete.progressName": "Ausgewählte Deals löschen",
|
|
875
881
|
"customers.deals.list.bulkDelete.success": "{count} deals deleted",
|
|
876
882
|
"customers.deals.list.bulkDelete.title": "Delete {count} deals?",
|
|
877
883
|
"customers.deals.list.columns.companies": "Unternehmen",
|
|
@@ -1672,6 +1678,7 @@
|
|
|
1672
1678
|
"customers.people.list.bulkDelete.failedGroup": "{count} Personen konnten nicht gelöscht werden: {message}",
|
|
1673
1679
|
"customers.people.list.bulkDelete.operationLabel": "{count} Personen löschen",
|
|
1674
1680
|
"customers.people.list.bulkDelete.partial": "{deleted} von {total} Personen gelöscht; {failed} fehlgeschlagen",
|
|
1681
|
+
"customers.people.list.bulkDelete.progressName": "Ausgewählte Personen löschen",
|
|
1675
1682
|
"customers.people.list.bulkDelete.success": "{count} people deleted",
|
|
1676
1683
|
"customers.people.list.bulkDelete.title": "Delete {count} people?",
|
|
1677
1684
|
"customers.people.list.columns.email": "E-Mail",
|
|
@@ -536,6 +536,7 @@
|
|
|
536
536
|
"customers.companies.list.bulkDelete.failedGroup": "{count} companies could not be deleted: {message}",
|
|
537
537
|
"customers.companies.list.bulkDelete.operationLabel": "Delete {count} companies",
|
|
538
538
|
"customers.companies.list.bulkDelete.partial": "{deleted} of {total} companies deleted; {failed} failed",
|
|
539
|
+
"customers.companies.list.bulkDelete.progressName": "Delete selected companies",
|
|
539
540
|
"customers.companies.list.bulkDelete.success": "{count} companies deleted",
|
|
540
541
|
"customers.companies.list.bulkDelete.title": "Delete {count} companies?",
|
|
541
542
|
"customers.companies.list.columns.email": "Email",
|
|
@@ -660,6 +661,10 @@
|
|
|
660
661
|
"customers.countries.it": "Italy",
|
|
661
662
|
"customers.countries.pl": "Poland",
|
|
662
663
|
"customers.countries.us": "United States",
|
|
664
|
+
"customers.deal_analyzer.dock.subtitle": "Deals",
|
|
665
|
+
"customers.deal_analyzer.sheet.dock": "Dock to side",
|
|
666
|
+
"customers.deal_analyzer.sheet.title": "Deal Analyzer",
|
|
667
|
+
"customers.deal_analyzer.sheet.welcomeTitle": "Deal Analyzer",
|
|
663
668
|
"customers.deals.create.error": "Failed to create deal.",
|
|
664
669
|
"customers.deals.create.submit": "Create deal",
|
|
665
670
|
"customers.deals.create.title": "Create deal",
|
|
@@ -872,6 +877,7 @@
|
|
|
872
877
|
"customers.deals.list.bulkDelete.failedGroup": "{count} deals could not be deleted: {message}",
|
|
873
878
|
"customers.deals.list.bulkDelete.operationLabel": "Delete {count} deals",
|
|
874
879
|
"customers.deals.list.bulkDelete.partial": "{deleted} of {total} deals deleted; {failed} failed",
|
|
880
|
+
"customers.deals.list.bulkDelete.progressName": "Delete selected deals",
|
|
875
881
|
"customers.deals.list.bulkDelete.success": "{count} deals deleted",
|
|
876
882
|
"customers.deals.list.bulkDelete.title": "Delete {count} deals?",
|
|
877
883
|
"customers.deals.list.columns.companies": "Companies",
|
|
@@ -1672,6 +1678,7 @@
|
|
|
1672
1678
|
"customers.people.list.bulkDelete.failedGroup": "{count} people could not be deleted: {message}",
|
|
1673
1679
|
"customers.people.list.bulkDelete.operationLabel": "Delete {count} people",
|
|
1674
1680
|
"customers.people.list.bulkDelete.partial": "{deleted} of {total} people deleted; {failed} failed",
|
|
1681
|
+
"customers.people.list.bulkDelete.progressName": "Delete selected people",
|
|
1675
1682
|
"customers.people.list.bulkDelete.success": "{count} people deleted",
|
|
1676
1683
|
"customers.people.list.bulkDelete.title": "Delete {count} people?",
|
|
1677
1684
|
"customers.people.list.columns.email": "Email",
|
|
@@ -536,6 +536,7 @@
|
|
|
536
536
|
"customers.companies.list.bulkDelete.failedGroup": "No se pudieron eliminar {count} empresas: {message}",
|
|
537
537
|
"customers.companies.list.bulkDelete.operationLabel": "Eliminar {count} empresas",
|
|
538
538
|
"customers.companies.list.bulkDelete.partial": "{deleted} de {total} empresas eliminadas; {failed} fallaron",
|
|
539
|
+
"customers.companies.list.bulkDelete.progressName": "Eliminar empresas seleccionadas",
|
|
539
540
|
"customers.companies.list.bulkDelete.success": "{count} companies deleted",
|
|
540
541
|
"customers.companies.list.bulkDelete.title": "Delete {count} companies?",
|
|
541
542
|
"customers.companies.list.columns.email": "Correo electrónico",
|
|
@@ -660,6 +661,10 @@
|
|
|
660
661
|
"customers.countries.it": "Italia",
|
|
661
662
|
"customers.countries.pl": "Polonia",
|
|
662
663
|
"customers.countries.us": "Estados Unidos",
|
|
664
|
+
"customers.deal_analyzer.dock.subtitle": "Negocios",
|
|
665
|
+
"customers.deal_analyzer.sheet.dock": "Anclar al lado",
|
|
666
|
+
"customers.deal_analyzer.sheet.title": "Analizador de negocios",
|
|
667
|
+
"customers.deal_analyzer.sheet.welcomeTitle": "Analizador de negocios",
|
|
663
668
|
"customers.deals.create.error": "No se pudo crear la oportunidad.",
|
|
664
669
|
"customers.deals.create.submit": "Crear oportunidad",
|
|
665
670
|
"customers.deals.create.title": "Crear oportunidad",
|
|
@@ -872,6 +877,7 @@
|
|
|
872
877
|
"customers.deals.list.bulkDelete.failedGroup": "No se pudieron eliminar {count} deals: {message}",
|
|
873
878
|
"customers.deals.list.bulkDelete.operationLabel": "Eliminar {count} deals",
|
|
874
879
|
"customers.deals.list.bulkDelete.partial": "{deleted} de {total} deals eliminados; {failed} fallaron",
|
|
880
|
+
"customers.deals.list.bulkDelete.progressName": "Eliminar negocios seleccionados",
|
|
875
881
|
"customers.deals.list.bulkDelete.success": "{count} deals deleted",
|
|
876
882
|
"customers.deals.list.bulkDelete.title": "Delete {count} deals?",
|
|
877
883
|
"customers.deals.list.columns.companies": "Empresas",
|
|
@@ -1672,6 +1678,7 @@
|
|
|
1672
1678
|
"customers.people.list.bulkDelete.failedGroup": "No se pudieron eliminar {count} personas: {message}",
|
|
1673
1679
|
"customers.people.list.bulkDelete.operationLabel": "Eliminar {count} personas",
|
|
1674
1680
|
"customers.people.list.bulkDelete.partial": "{deleted} de {total} personas eliminadas; {failed} fallaron",
|
|
1681
|
+
"customers.people.list.bulkDelete.progressName": "Eliminar personas seleccionadas",
|
|
1675
1682
|
"customers.people.list.bulkDelete.success": "{count} people deleted",
|
|
1676
1683
|
"customers.people.list.bulkDelete.title": "Delete {count} people?",
|
|
1677
1684
|
"customers.people.list.columns.email": "Correo electrónico",
|
|
@@ -536,6 +536,7 @@
|
|
|
536
536
|
"customers.companies.list.bulkDelete.failedGroup": "Nie udało się usunąć {count} firm: {message}",
|
|
537
537
|
"customers.companies.list.bulkDelete.operationLabel": "Usuń {count} firm",
|
|
538
538
|
"customers.companies.list.bulkDelete.partial": "Usunięto {deleted} z {total} firm; {failed} nie powiodło się",
|
|
539
|
+
"customers.companies.list.bulkDelete.progressName": "Usuń zaznaczone firmy",
|
|
539
540
|
"customers.companies.list.bulkDelete.success": "{count} companies deleted",
|
|
540
541
|
"customers.companies.list.bulkDelete.title": "Delete {count} companies?",
|
|
541
542
|
"customers.companies.list.columns.email": "E-mail",
|
|
@@ -660,6 +661,10 @@
|
|
|
660
661
|
"customers.countries.it": "Włochy",
|
|
661
662
|
"customers.countries.pl": "Polska",
|
|
662
663
|
"customers.countries.us": "Stany Zjednoczone",
|
|
664
|
+
"customers.deal_analyzer.dock.subtitle": "Transakcje",
|
|
665
|
+
"customers.deal_analyzer.sheet.dock": "Zadokuj z boku",
|
|
666
|
+
"customers.deal_analyzer.sheet.title": "Analizator transakcji",
|
|
667
|
+
"customers.deal_analyzer.sheet.welcomeTitle": "Analizator transakcji",
|
|
663
668
|
"customers.deals.create.error": "Nie udało się utworzyć szansy.",
|
|
664
669
|
"customers.deals.create.submit": "Utwórz szansę",
|
|
665
670
|
"customers.deals.create.title": "Utwórz szansę",
|
|
@@ -872,6 +877,7 @@
|
|
|
872
877
|
"customers.deals.list.bulkDelete.failedGroup": "Nie udało się usunąć {count} transakcji: {message}",
|
|
873
878
|
"customers.deals.list.bulkDelete.operationLabel": "Usuń {count} transakcji",
|
|
874
879
|
"customers.deals.list.bulkDelete.partial": "Usunięto {deleted} z {total} transakcji; {failed} nie powiodło się",
|
|
880
|
+
"customers.deals.list.bulkDelete.progressName": "Usuń zaznaczone transakcje",
|
|
875
881
|
"customers.deals.list.bulkDelete.success": "{count} deals deleted",
|
|
876
882
|
"customers.deals.list.bulkDelete.title": "Delete {count} deals?",
|
|
877
883
|
"customers.deals.list.columns.companies": "Firmy",
|
|
@@ -1672,6 +1678,7 @@
|
|
|
1672
1678
|
"customers.people.list.bulkDelete.failedGroup": "Nie udało się usunąć {count} osób: {message}",
|
|
1673
1679
|
"customers.people.list.bulkDelete.operationLabel": "Usuń {count} osób",
|
|
1674
1680
|
"customers.people.list.bulkDelete.partial": "Usunięto {deleted} z {total} osób; {failed} nie powiodło się",
|
|
1681
|
+
"customers.people.list.bulkDelete.progressName": "Usuń zaznaczone osoby",
|
|
1675
1682
|
"customers.people.list.bulkDelete.success": "{count} people deleted",
|
|
1676
1683
|
"customers.people.list.bulkDelete.title": "Delete {count} people?",
|
|
1677
1684
|
"customers.people.list.columns.email": "E-mail",
|