@stndrds/schema 0.1.0-alpha.31 → 0.1.0-alpha.33

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/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { D as DateAttribute, U as UserAttribute, A as Attribute, S as SystemResource, a as SystemAction, O as ObjectAction, T as TextAttribute, b as TextAreaAttribute, R as RichtextAttribute, c as RichtextFeature, N as NumberAttribute, C as CheckboxAttribute, P as PhoneAttribute, d as CurrencyAttribute, e as Option, f as StatusAttribute, g as SelectAttribute, M as MultiselectAttribute, L as LocationAttribute, F as FileAttribute, h as SingleRelationAttribute, i as MultiRelationAttribute, j as RelationTarget, k as RatingAttribute, l as FormulaAttribute, m as FormulaReturnType, n as RollupAttribute, o as RollupFunction, p as FlowDefinition, q as FlowPage, r as FlowRow, I as InferAttributeValue, s as ObjectDefinition, t as Field, u as AttributeGroupField, G as Group, V as ViewDefinition, v as Tab, B as BlockNoteContent } from './runtime-hbTw33Gx.mjs';
2
- export { bV as ActivityTab, bb as AddAttribute, ep as AddAttributeInput, aK as AdvancedFilterState, bI as AssignRoleInput, dV as AttributeChange, y as AttributeGroup, ba as AttributeMap, b6 as AttributeSchema, w as AttributeType, e5 as AttributesRepository, ah as AuditAction, ai as AuditActorType, aj as AuditChange, am as AuditListOptions, ak as AuditLogEntry, eb as AuditRepository, ag as AuditResourceType, ee as AuditService, an as AuditServiceOptions, z as BaseAttribute, $ as BlockNoteBlock, a0 as BlockNoteCustomInlineContent, a1 as BlockNoteDefaultProps, a2 as BlockNoteInlineContent, a3 as BlockNoteLink, a4 as BlockNoteStyledText, a5 as BlockNoteStyles, a6 as BlockNoteTableCell, a7 as BlockNoteTableCellProps, a8 as BlockNoteTableContent, av as CheckboxFilterOperator, bw as CompletionStatus, al as CreateAuditLogInput, eo as CreateCustomObjectInput, fd as CreateDBAttribute, fr as CreateDBFlow, f9 as CreateDBObject, fn as CreateDBView, ar as CreateFile, ej as CreateFlowInput, fg as CreateObjectRecord, bH as CreatePermissionInput, bF as CreateRoleInput, bP as CreateUserProfile, eO as CreateViewInput, Q as Currency, aC as CurrencyFilterValue, bf as CustomAttributeValue, bU as CustomTab, fc as DBAttribute, fq as DBFlow, f8 as DBObject, fm as DBView, f3 as DEFAULT_LABEL_FALLBACK, d0 as DatabaseAdapter, aw as DateFilterOperator, H as DateFormat, J as DateValue, bC as EffectivePermissions, aG as ExtendedFilterRule, bp as ExtractAttributes, bj as ExtractRecord, bl as ExtractRecordInput, bm as ExtractRecordInputStrict, bk as ExtractRecordStrict, bn as ExtractRecordUpdate, bo as ExtractRecordUpdateStrict, d1 as FetchResult, aq as File, eR as FileContent, fl as FileListOptions, ei as FileService, eh as FileServiceOptions, ap as FileVisibility, e7 as FilesRepository, aH as FilterCombinator, aJ as FilterGroup, aA as FilterOperator, aF as FilterRule, aI as FilterState, aE as FilterValue, aX as FlowRelation, aW as FlowRowField, el as FlowService, aV as FlowSlot, aY as FlowStatus, ea as FlowsRepository, bS as FormTab, d2 as FormattedRecord, dD as FormulaResult, f1 as FullSyncOptions, f0 as FullSyncResult, b4 as GeocodingAdapter, b1 as GeocodingAutocompleteParams, b3 as GeocodingParams, em as GeocodingService, b0 as GeocodingSuggestion, eB as GetRelationOptionsParams, fj as GlobalSearchOptions, fk as GlobalSearchResultItem, en as GlobalSearchService, d3 as GroupedFetchResult, dW as HookContext, dX as HookDefinition, dY as HookHandler, d$ as HookRegistry, dZ as HookType, bc as InferRecord, b7 as InferRecordFromSchema, bd as InferRecordInput, be as InferRecordUpdate, b8 as InferRecordWithRequirements, d4 as InsertOptions, dH as InvalidPathError, fh as ListOptions, W as Location, X as LocationGranularity, dI as MaxDepthExceededError, ay as MultiselectFilterOperator, aT as NO_VALUE_OPERATORS, aS as NoValueOperator, b5 as NoopGeocodingAdapter, d_ as NoopHookRegistry, bW as NotesTab, au as NumberFilterOperator, E as NumberUnit, aR as OPERATORS_BY_TYPE, bv as ObjectAttribute, bD as ObjectPermissions, bx as ObjectRecord, e8 as ObjectRecordsRepository, es as ObjectSchemaService, er as ObjectSchemaServiceOptions, e4 as ObjectsRepository, ft as OperationResult, a9 as PartialBlockNoteBlock, aa as PartialBlockNoteContent, ab as PartialBlockNoteInlineContent, ac as PartialBlockNoteLink, ad as PartialBlockNoteStyledText, ae as PartialBlockNoteTableCell, af as PartialBlockNoteTableContent, dM as PathCardinality, dN as PathSegment, dO as PathSegmentType, bA as Permission, by as PermissionScope, eu as PermissionService, et as PermissionServiceOptions, ec as PermissionsRepository, K as Phone, aD as PhoneFilterValue, bJ as PolicyContext, e2 as PolicyRegistry, bL as PolicyViolationError, dg as QueryBuilder, dh as QueryBuilderOptions, d5 as QueryBuilderState, dc as QueryMultipleResultsError, dd as QueryNoResultError, aQ as QueryState, Y as RELATION_TARGET_ANY, bq as RESERVED_ATTRIBUTE_NAMES, bh as RecordMetadata, bK as RecordPolicy, ew as RecordService, ev as RecordServiceOptions, d6 as RegistryMap, d7 as RegistryObjectNames, Z as RelationAttribute, az as RelationFilterOperator, ez as RelationOption, eA as RelationOptionsResponse, eE as RelationResolverService, eC as RelationService, ey as RelationValidationError, ex as RelationValidationResult, aB as RelativeDateValue, bs as ReservedAttributeName, eD as ResolvedRelations, b2 as ReverseGeocodingParams, bz as Role, eF as RollupResult, eI as RollupScheduler, eH as RollupSchedulerOptions, eG as RollupService, de as SHORTCUT_TO_FILTER_OPERATOR, br as SYSTEM_FIELD_NAMES, dP as SchemaResolver, fi as SearchOptions, ax as SelectFilterOperator, d8 as ShortcutOperator, eU as SignedUrlOptions, aO as SortDirection, aP as SortRule, x as StatusGroup, eV as StorageAdapter, ao as StorageProvider, eS as StorageUploadInput, eT as StorageUploadResult, eY as SyncOptions, eX as SyncResult, bt as SystemFieldName, bi as SystemFields, bE as SystemPermissions, bR as TabType, bT as TableTab, eg as TenantAwareRepository, ef as TenantAwareService, dq as TenantContext, di as TenantContextError, c1 as TenantId, at as TextFilterOperator, bu as Timestamps, dT as TraversalOptions, dU as TraversalResult, b9 as TypedAttribute, fe as UpdateDBAttribute, fs as UpdateDBFlow, fa as UpdateDBObject, fo as UpdateDBView, as as UpdateFile, ek as UpdateFlowInput, eq as UpdateObjectInput, bG as UpdateRoleInput, bQ as UpdateUserProfile, eP as UpdateViewInput, eW as UploadFileInput, ff as UpsertDBAttribute, fb as UpsertDBObject, fp as UpsertDBView, c2 as UserId, bO as UserProfile, eK as UserProfileService, eJ as UserProfileServiceOptions, e6 as UserProfilesRepository, bM as UserRole, bB as UserRoleAssignment, eN as UserService, bN as UserStatus, eM as UserValidationError, eL as UserValidationResult, c0 as Uuid, cS as ValidationResult, eQ as ViewService, fv as ViewSyncOptions, fu as ViewSyncResult, e9 as ViewsRepository, bg as WithCustomAttributes, c3 as asTenantId, c4 as asUserId, cr as attributeConfigSchemas, ed as buildAuditChanges, cd as checkboxConfigSchema, c$ as computeRecordStatus, cQ as createAttributeValidator, cy as createCheckboxValidator, cB as createCurrencyValidator, cz as createDateValidator, d9 as createDefaultState, cW as createDraftValidator, cG as createFileValidator, cM as createFormulaValidator, cF as createLocationValidator, e0 as createMockAdapter, cJ as createMultiRelationValidator, cE as createMultiselectValidator, cx as createNumberValidator, cR as createObjectValidator, cA as createPhoneValidator, df as createQueryBuilder, cL as createRatingValidator, cK as createRelationValidator, cP as createRichtextValidator, cN as createRollupValidator, cD as createSelectValidator, cI as createSingleRelationValidator, cC as createStatusValidator, cO as createTextAreaValidator, cw as createTextValidator, cH as createUserValidator, cg as currencyConfigSchema, ce as dateConfigSchema, e1 as defaultPolicyRegistry, f7 as enrichValuesWithSelectLabels, dr as evaluateFormula, ds as evaluateFormulaAttribute, dt as evaluateFormulaAttributeWithRelations, du as evaluateFormulaWithRelations, dv as evaluateFormulaWithResult, f6 as extractAttributeNames, dw as extractFormulaVariables, dx as extractRelationNames, dy as extractRelationReferences, cl as fileConfigSchema, dz as flattenRelationsForEval, dA as formatFormulaResult, da as formatRecord, db as formatRecords, cp as formulaConfigSchema, c5 as generateId, c6 as generatePrefixedId, cs as getAttributeConfigSchema, dj as getContext, cZ as getMissingRequiredAttributes, dE as getPathDepth, dF as getRelationPath, e$ as getSyncPreview, dG as getTargetAttributeName, dk as getTenantId, dl as getUserId, fy as getViewSyncPreview, dm as hasContext, dB as hasRelationReferences, b_ as isActivityTab, aL as isAdvancedFilterState, bZ as isCustomTab, aZ as isFlowDefinition, a_ as isFlowPublished, bX as isFormTab, f5 as isLabelExpression, aU as isNoValueOperator, b$ as isNotesTab, c_ as isRecordComplete, a$ as isSystemFlow, bY as isTableTab, _ as isUniversalRelation, ci as locationConfigSchema, ck as multiselectConfigSchema, e3 as notesPolicy, cc as numberConfigSchema, cu as parseAttributeConfig, dJ as parsePath, dK as pathHasManyCardinality, cf as phoneConfigSchema, co as ratingConfigSchema, c7 as registry, cn as relationConfigSchema, f4 as renderLabelExpression, dQ as resolveMultiplePaths, dR as resolveSingleValue, cb as richtextConfigSchema, cq as rollupConfigSchema, dn as runWithContext, cv as safeParseAttributeConfig, cj as selectConfigSchema, ch as statusConfigSchema, f2 as syncAll, eZ as syncNativeObjects, fw as syncNativeViews, c9 as textConfigSchema, ca as textareaConfigSchema, aM as toAdvancedFilterState, aN as toSimpleFilterState, dS as traversePath, cm as userConfigSchema, cT as validateAttribute, ct as validateAttributeConfig, cX as validateDraft, cY as validateDraftOrThrow, dC as validateFormulaExpression, cU as validateObject, cV as validateObjectOrThrow, dL as validatePath, e_ as verifyNativeObjectsSync, fx as verifyNativeViewsSync, c8 as viewRegistry, dp as withTenantContext } from './runtime-hbTw33Gx.mjs';
1
+ import { D as DateAttribute, U as UserAttribute, A as Attribute, S as SystemResource, a as SystemAction, O as ObjectAction, T as TextAttribute, b as TextAreaAttribute, R as RichtextAttribute, c as RichtextFeature, N as NumberAttribute, C as CheckboxAttribute, P as PhoneAttribute, d as CurrencyAttribute, e as Option, f as StatusAttribute, g as SelectAttribute, M as MultiselectAttribute, L as LocationAttribute, F as FileAttribute, h as SingleRelationAttribute, i as MultiRelationAttribute, j as RelationTarget, k as RatingAttribute, l as FormulaAttribute, m as FormulaReturnType, n as RollupAttribute, o as RollupFunction, p as FlowDefinition, q as FlowPage, r as FlowRow, I as InferAttributeValue, s as ObjectDefinition, t as Field, u as AttributeGroupField, G as Group, v as TableTab, w as InverseTableTab, V as ViewDefinition, x as Tab, y as FilterState, z as SortRule, B as DirectTableTab, E as BlockNoteContent } from './runtime-DyTAIaum.mjs';
2
+ export { bY as ActivityTab, be as AddAttribute, eu as AddAttributeInput, aO as AdvancedFilterState, bL as AssignRoleInput, d_ as AttributeChange, K as AttributeGroup, bd as AttributeMap, b9 as AttributeSchema, H as AttributeType, ea as AttributesRepository, am as AuditAction, an as AuditActorType, ao as AuditChange, ar as AuditListOptions, ap as AuditLogEntry, eg as AuditRepository, al as AuditResourceType, ej as AuditService, as as AuditServiceOptions, Q as BaseAttribute, a4 as BlockNoteBlock, a5 as BlockNoteCustomInlineContent, a6 as BlockNoteDefaultProps, a7 as BlockNoteInlineContent, a8 as BlockNoteLink, a9 as BlockNoteStyledText, aa as BlockNoteStyles, ab as BlockNoteTableCell, ac as BlockNoteTableCellProps, ad as BlockNoteTableContent, aA as CheckboxFilterOperator, bz as CompletionStatus, aq as CreateAuditLogInput, et as CreateCustomObjectInput, fi as CreateDBAttribute, fw as CreateDBFlow, fe as CreateDBObject, fs as CreateDBView, aw as CreateFile, eo as CreateFlowInput, fl as CreateObjectRecord, bK as CreatePermissionInput, bI as CreateRoleInput, bS as CreateUserProfile, eT as CreateViewInput, _ as Currency, aH as CurrencyFilterValue, bi as CustomAttributeValue, bX as CustomTab, fh as DBAttribute, fv as DBFlow, fd as DBObject, fr as DBView, f8 as DEFAULT_LABEL_FALLBACK, d5 as DatabaseAdapter, aB as DateFilterOperator, X as DateFormat, Y as DateValue, bF as EffectivePermissions, aL as ExtendedFilterRule, bs as ExtractAttributes, bm as ExtractRecord, bo as ExtractRecordInput, bp as ExtractRecordInputStrict, bn as ExtractRecordStrict, bq as ExtractRecordUpdate, br as ExtractRecordUpdateStrict, d6 as FetchResult, av as File, eW as FileContent, fq as FileListOptions, en as FileService, em as FileServiceOptions, au as FileVisibility, ec as FilesRepository, aM as FilterCombinator, aN as FilterGroup, aF as FilterOperator, aK as FilterRule, aJ as FilterValue, a_ as FlowRelation, aZ as FlowRowField, eq as FlowService, aY as FlowSlot, a$ as FlowStatus, ef as FlowsRepository, bW as FormTab, d7 as FormattedRecord, dI as FormulaResult, f6 as FullSyncOptions, f5 as FullSyncResult, b7 as GeocodingAdapter, b4 as GeocodingAutocompleteParams, b6 as GeocodingParams, er as GeocodingService, b3 as GeocodingSuggestion, eG as GetRelationOptionsParams, fo as GlobalSearchOptions, fp as GlobalSearchResultItem, es as GlobalSearchService, d8 as GroupedFetchResult, d$ as HookContext, e0 as HookDefinition, e1 as HookHandler, e4 as HookRegistry, e2 as HookType, bf as InferRecord, ba as InferRecordFromSchema, bg as InferRecordInput, bh as InferRecordUpdate, bb as InferRecordWithRequirements, d9 as InsertOptions, dM as InvalidPathError, bU as InviteUserInput, fm as ListOptions, $ as Location, a0 as LocationGranularity, dN as MaxDepthExceededError, aD as MultiselectFilterOperator, aW as NO_VALUE_OPERATORS, aV as NoValueOperator, b8 as NoopGeocodingAdapter, e3 as NoopHookRegistry, bZ as NotesTab, az as NumberFilterOperator, W as NumberUnit, aU as OPERATORS_BY_TYPE, by as ObjectAttribute, bG as ObjectPermissions, bA as ObjectRecord, ed as ObjectRecordsRepository, ex as ObjectSchemaService, ew as ObjectSchemaServiceOptions, e9 as ObjectsRepository, fy as OperationResult, ae as PartialBlockNoteBlock, af as PartialBlockNoteContent, ag as PartialBlockNoteInlineContent, ah as PartialBlockNoteLink, ai as PartialBlockNoteStyledText, aj as PartialBlockNoteTableCell, ak as PartialBlockNoteTableContent, dR as PathCardinality, dS as PathSegment, dT as PathSegmentType, bD as Permission, bB as PermissionScope, ez as PermissionService, ey as PermissionServiceOptions, eh as PermissionsRepository, Z as Phone, aI as PhoneFilterValue, bM as PolicyContext, e7 as PolicyRegistry, bO as PolicyViolationError, dl as QueryBuilder, dm as QueryBuilderOptions, da as QueryBuilderState, dh as QueryMultipleResultsError, di as QueryNoResultError, aT as QueryState, a1 as RELATION_TARGET_ANY, bt as RESERVED_ATTRIBUTE_NAMES, bk as RecordMetadata, bN as RecordPolicy, eB as RecordService, eA as RecordServiceOptions, db as RegistryMap, dc as RegistryObjectNames, a2 as RelationAttribute, aE as RelationFilterOperator, eE as RelationOption, eF as RelationOptionsResponse, eJ as RelationResolverService, eH as RelationService, eD as RelationValidationError, eC as RelationValidationResult, aG as RelativeDateValue, bv as ReservedAttributeName, eI as ResolvedRelations, b5 as ReverseGeocodingParams, bC as Role, eK as RollupResult, eN as RollupScheduler, eM as RollupSchedulerOptions, eL as RollupService, dj as SHORTCUT_TO_FILTER_OPERATOR, bu as SYSTEM_FIELD_NAMES, dU as SchemaResolver, fn as SearchOptions, aC as SelectFilterOperator, dd as ShortcutOperator, eZ as SignedUrlOptions, aS as SortDirection, J as StatusGroup, e_ as StorageAdapter, at as StorageProvider, eX as StorageUploadInput, eY as StorageUploadResult, f1 as SyncOptions, f0 as SyncResult, bw as SystemFieldName, bl as SystemFields, bH as SystemPermissions, bV as TabType, el as TenantAwareRepository, ek as TenantAwareService, dv as TenantContext, dn as TenantContextError, c6 as TenantId, ay as TextFilterOperator, bx as Timestamps, dY as TraversalOptions, dZ as TraversalResult, bc as TypedAttribute, fj as UpdateDBAttribute, fx as UpdateDBFlow, ff as UpdateDBObject, ft as UpdateDBView, ax as UpdateFile, ep as UpdateFlowInput, ev as UpdateObjectInput, bJ as UpdateRoleInput, bT as UpdateUserProfile, eU as UpdateViewInput, e$ as UploadFileInput, fk as UpsertDBAttribute, fg as UpsertDBObject, fu as UpsertDBView, c7 as UserId, bR as UserProfile, eP as UserProfileService, eO as UserProfileServiceOptions, eb as UserProfilesRepository, bP as UserRole, bE as UserRoleAssignment, eS as UserService, bQ as UserStatus, eR as UserValidationError, eQ as UserValidationResult, c5 as Uuid, cX as ValidationResult, eV as ViewService, fA as ViewSyncOptions, fz as ViewSyncResult, ee as ViewsRepository, bj as WithCustomAttributes, c8 as asTenantId, c9 as asUserId, cw as attributeConfigSchemas, ei as buildAuditChanges, ci as checkboxConfigSchema, d4 as computeRecordStatus, cV as createAttributeValidator, cD as createCheckboxValidator, cG as createCurrencyValidator, cE as createDateValidator, de as createDefaultState, c$ as createDraftValidator, cL as createFileValidator, cR as createFormulaValidator, cK as createLocationValidator, e5 as createMockAdapter, cO as createMultiRelationValidator, cJ as createMultiselectValidator, cC as createNumberValidator, cW as createObjectValidator, cF as createPhoneValidator, dk as createQueryBuilder, cQ as createRatingValidator, cP as createRelationValidator, cU as createRichtextValidator, cS as createRollupValidator, cI as createSelectValidator, cN as createSingleRelationValidator, cH as createStatusValidator, cT as createTextAreaValidator, cB as createTextValidator, cM as createUserValidator, cl as currencyConfigSchema, cj as dateConfigSchema, e6 as defaultPolicyRegistry, fc as enrichValuesWithSelectLabels, dw as evaluateFormula, dx as evaluateFormulaAttribute, dy as evaluateFormulaAttributeWithRelations, dz as evaluateFormulaWithRelations, dA as evaluateFormulaWithResult, fb as extractAttributeNames, dB as extractFormulaVariables, dC as extractRelationNames, dD as extractRelationReferences, cq as fileConfigSchema, dE as flattenRelationsForEval, dF as formatFormulaResult, df as formatRecord, dg as formatRecords, cu as formulaConfigSchema, ca as generateId, cb as generatePrefixedId, cx as getAttributeConfigSchema, dp as getContext, d2 as getMissingRequiredAttributes, dJ as getPathDepth, dK as getRelationPath, f4 as getSyncPreview, dL as getTargetAttributeName, dq as getTenantId, dr as getUserId, fD as getViewSyncPreview, ds as hasContext, dG as hasRelationReferences, c3 as isActivityTab, aP as isAdvancedFilterState, c2 as isCustomTab, c0 as isDirectTableTab, b0 as isFlowDefinition, b1 as isFlowPublished, b_ as isFormTab, c1 as isInverseTableTab, fa as isLabelExpression, aX as isNoValueOperator, c4 as isNotesTab, d3 as isRecordComplete, b2 as isSystemFlow, b$ as isTableTab, a3 as isUniversalRelation, cn as locationConfigSchema, cp as multiselectConfigSchema, e8 as notesPolicy, ch as numberConfigSchema, cz as parseAttributeConfig, dO as parsePath, dP as pathHasManyCardinality, ck as phoneConfigSchema, ct as ratingConfigSchema, cc as registry, cs as relationConfigSchema, f9 as renderLabelExpression, dV as resolveMultiplePaths, dW as resolveSingleValue, cg as richtextConfigSchema, cv as rollupConfigSchema, dt as runWithContext, cA as safeParseAttributeConfig, co as selectConfigSchema, cm as statusConfigSchema, f7 as syncAll, f2 as syncNativeObjects, fB as syncNativeViews, ce as textConfigSchema, cf as textareaConfigSchema, aQ as toAdvancedFilterState, aR as toSimpleFilterState, dX as traversePath, cr as userConfigSchema, cY as validateAttribute, cy as validateAttributeConfig, d0 as validateDraft, d1 as validateDraftOrThrow, dH as validateFormulaExpression, cZ as validateObject, c_ as validateObjectOrThrow, dQ as validatePath, f3 as verifyNativeObjectsSync, fC as verifyNativeViewsSync, cd as viewRegistry, du as withTenantContext } from './runtime-DyTAIaum.mjs';
3
3
  import { IconName, CountryIso3, CurrencyCode, MimeType, ColorId } from '@stndrds/constants';
4
4
  import 'zod';
5
5
 
@@ -1463,13 +1463,12 @@ interface BaseTabConfig {
1463
1463
  system?: boolean;
1464
1464
  }
1465
1465
  /**
1466
- * Builder for configuring table tabs
1466
+ * Base builder for configuring table tabs (shared between Direct and Inverse)
1467
1467
  */
1468
- declare class TableTabConfig {
1469
- private view;
1470
- private tabData;
1471
- /** @internal */
1472
- constructor(view: ViewBuilder, base: BaseTabConfig, relation: string);
1468
+ declare abstract class BaseTableTabConfig<T extends TableTab> {
1469
+ protected view: ViewBuilder;
1470
+ protected tabData: Partial<T>;
1471
+ constructor(view: ViewBuilder, tabData: Partial<T>);
1473
1472
  /**
1474
1473
  * Set columns to display
1475
1474
  * @example .columns("firstName", "lastName", "email")
@@ -1494,12 +1493,17 @@ declare class TableTabConfig {
1494
1493
  /**
1495
1494
  * Set default filters
1496
1495
  */
1497
- filters(value: Record<string, unknown>): this;
1496
+ filters(value: FilterState): this;
1498
1497
  /**
1499
- * Set default sort
1498
+ * Set default sort rules
1499
+ * @example .sorts([{ attribute: "lastName", direction: "asc" }])
1500
+ */
1501
+ sorts(value: SortRule[]): this;
1502
+ /**
1503
+ * Add a single sort rule (convenience method)
1500
1504
  * @example .sort("lastName") or .sort("createdAt", "desc")
1501
1505
  */
1502
- sort(field: string, order?: "asc" | "desc"): this;
1506
+ sort(attribute: string, direction?: "asc" | "desc"): this;
1503
1507
  /**
1504
1508
  * Continue building with a new tab
1505
1509
  */
@@ -1512,7 +1516,37 @@ declare class TableTabConfig {
1512
1516
  * Build the final view definition
1513
1517
  */
1514
1518
  build(): ViewDefinition;
1515
- private finalize;
1519
+ protected finalize(): void;
1520
+ }
1521
+ /**
1522
+ * Builder for configuring direct table tabs (relation attribute on current object)
1523
+ *
1524
+ * @example
1525
+ * ```typescript
1526
+ * .tab("members", "Members")
1527
+ * .table("members") // Direct: uses the "members" relation attribute on current object
1528
+ * .columns("name", "email")
1529
+ * .crud()
1530
+ * ```
1531
+ */
1532
+ declare class DirectTableTabConfig extends BaseTableTabConfig<DirectTableTab> {
1533
+ /** @internal */
1534
+ constructor(view: ViewBuilder, base: BaseTabConfig, relationAttribute: string);
1535
+ }
1536
+ /**
1537
+ * Builder for configuring inverse table tabs (another object has relation to us)
1538
+ *
1539
+ * @example
1540
+ * ```typescript
1541
+ * .tab("contacts", "Contacts")
1542
+ * .tableFrom("contacts", "company") // Inverse: Contact.company points to us
1543
+ * .columns("firstName", "lastName", "email")
1544
+ * .crud()
1545
+ * ```
1546
+ */
1547
+ declare class InverseTableTabConfig extends BaseTableTabConfig<InverseTableTab> {
1548
+ /** @internal */
1549
+ constructor(view: ViewBuilder, base: BaseTabConfig, sourceObject: string, relationAttribute: string);
1516
1550
  }
1517
1551
  /**
1518
1552
  * Builder for configuring custom tabs
@@ -1626,10 +1660,24 @@ declare class TabBuilder {
1626
1660
  */
1627
1661
  form(...groups: (GroupBuilder | Group)[]): ViewBuilder;
1628
1662
  /**
1629
- * Create a table tab for a relation
1630
- * @example .table("contacts").columns("name", "email").crud()
1663
+ * Create a direct table tab for a relation attribute on the current object
1664
+ *
1665
+ * Use this when the current object has a relation attribute pointing to another object.
1666
+ *
1667
+ * @param relationAttribute - Name of the relation attribute on the current object
1668
+ * @example .table("members").columns("name", "email").crud() // Show users from Project.members
1631
1669
  */
1632
- table(relation: string): TableTabConfig;
1670
+ table(relationAttribute: string): DirectTableTabConfig;
1671
+ /**
1672
+ * Create an inverse table tab showing records from another object that have a relation to us
1673
+ *
1674
+ * Use this when another object has a relation attribute pointing to the current object.
1675
+ *
1676
+ * @param sourceObject - Name of the object that has the relation to us
1677
+ * @param relationAttribute - Name of the relation attribute on the source object
1678
+ * @example .tableFrom("contacts", "company").columns("firstName", "lastName") // Show contacts where Contact.company = this
1679
+ */
1680
+ tableFrom(sourceObject: string, relationAttribute: string): InverseTableTabConfig;
1633
1681
  /**
1634
1682
  * Create a custom tab with a component
1635
1683
  * @example .custom("AnalyticsWidget").props({ period: "12m" })
@@ -1663,11 +1711,17 @@ declare class TabBuilder {
1663
1711
  * group("address", "Address").fields("location").collapsible()
1664
1712
  * )
1665
1713
  *
1714
+ * // Inverse: show Contact records where Contact.company = this Company
1666
1715
  * .tab("contacts", "Contacts").icon("users")
1667
- * .table("contacts")
1716
+ * .tableFrom("contacts", "company")
1668
1717
  * .columns("firstName", "lastName", "email")
1669
1718
  * .crud()
1670
1719
  *
1720
+ * // Direct: show User records linked via Company.members
1721
+ * .tab("members", "Members").icon("users")
1722
+ * .table("members")
1723
+ * .columns("name", "email")
1724
+ *
1671
1725
  * .tab("analytics", "Stats").icon("bar-chart")
1672
1726
  * .custom("CompanyAnalytics")
1673
1727
  * .props({ period: "12m" })
@@ -1810,4 +1864,4 @@ declare const NOTES: ObjectBuilder<{
1810
1864
  linkedTo?: string | undefined;
1811
1865
  }>;
1812
1866
 
1813
- export { ALL_SYSTEM_RESOURCES, ActivityTabConfig, type AnyAttributeBuilder, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, type AttributeUsage, BlockNoteContent, type BuilderConfig, CheckboxAttribute, CurrencyAttribute, CustomTabConfig, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DateAttribute, type DefaultRoleName, type DefaultRolePermissionConfig, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type ExtractAttributeName, type ExtractAttributeRequired, Field, FileAttribute, FileNotFoundError, FlowBuilder, FlowDefinition, FlowPage, FlowPageBuilder, FlowRow, FlowRowBuilder, ForbiddenError, FormulaAttribute, FormulaReturnType, Group, GroupBuilder, InferAttributeValue, LocationAttribute, MultiRelationAttribute, MultiselectAttribute, NOTES, NotFoundError, NotSystemObjectError, NotesTabConfig, NumberAttribute, ObjectAction, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, ObjectReferencedError, Option, PhoneAttribute, ProtectedResourceError, ProtectedRoleError, RatingAttribute, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationTarget, RichtextAttribute, RichtextFeature, RoleNotFoundError, RollupAttribute, RollupFunction, SYSTEM_ATTRIBUTES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, SchemaError, SchemaErrorCode, SelectAttribute, SingleRelationAttribute, StatusAttribute, SyncError, SystemAction, type SystemAttribute, type SystemAttributeName, SystemResource, Tab, TabBuilder, TableTabConfig, TextAreaAttribute, TextAttribute, type TypedBuilderConfig, UserAttribute, UserProfileNotFoundError, ValidationError, type ValidationErrorDetail, ViewBuilder, ViewDefinition, checkbox, currency, date, file, flow, formatAttributeValue, formula, getSystemAttributeList, group, isDefaultRole, isForbiddenError, isNotFoundError, isProtectedResourceError, isSchemaError, isSystemAttribute, isSystemAttributeObject, isValidationError, location, multiselect, number, object, phone, rating, relation, richtext, rollup, select, status, text, textarea, user, view };
1867
+ export { ALL_SYSTEM_RESOURCES, ActivityTabConfig, type AnyAttributeBuilder, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, type AttributeUsage, BlockNoteContent, type BuilderConfig, CheckboxAttribute, CurrencyAttribute, CustomTabConfig, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DateAttribute, type DefaultRoleName, type DefaultRolePermissionConfig, DirectTableTab, DirectTableTabConfig, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type ExtractAttributeName, type ExtractAttributeRequired, Field, FileAttribute, FileNotFoundError, FilterState, FlowBuilder, FlowDefinition, FlowPage, FlowPageBuilder, FlowRow, FlowRowBuilder, ForbiddenError, FormulaAttribute, FormulaReturnType, Group, GroupBuilder, InferAttributeValue, InverseTableTab, InverseTableTabConfig, LocationAttribute, MultiRelationAttribute, MultiselectAttribute, NOTES, NotFoundError, NotSystemObjectError, NotesTabConfig, NumberAttribute, ObjectAction, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, ObjectReferencedError, Option, PhoneAttribute, ProtectedResourceError, ProtectedRoleError, RatingAttribute, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationTarget, RichtextAttribute, RichtextFeature, RoleNotFoundError, RollupAttribute, RollupFunction, SYSTEM_ATTRIBUTES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, SchemaError, SchemaErrorCode, SelectAttribute, SingleRelationAttribute, SortRule, StatusAttribute, SyncError, SystemAction, type SystemAttribute, type SystemAttributeName, SystemResource, Tab, TabBuilder, TableTab, TextAreaAttribute, TextAttribute, type TypedBuilderConfig, UserAttribute, UserProfileNotFoundError, ValidationError, type ValidationErrorDetail, ViewBuilder, ViewDefinition, checkbox, currency, date, file, flow, formatAttributeValue, formula, getSystemAttributeList, group, isDefaultRole, isForbiddenError, isNotFoundError, isProtectedResourceError, isSchemaError, isSystemAttribute, isSystemAttributeObject, isValidationError, location, multiselect, number, object, phone, rating, relation, richtext, rollup, select, status, text, textarea, user, view };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { D as DateAttribute, U as UserAttribute, A as Attribute, S as SystemResource, a as SystemAction, O as ObjectAction, T as TextAttribute, b as TextAreaAttribute, R as RichtextAttribute, c as RichtextFeature, N as NumberAttribute, C as CheckboxAttribute, P as PhoneAttribute, d as CurrencyAttribute, e as Option, f as StatusAttribute, g as SelectAttribute, M as MultiselectAttribute, L as LocationAttribute, F as FileAttribute, h as SingleRelationAttribute, i as MultiRelationAttribute, j as RelationTarget, k as RatingAttribute, l as FormulaAttribute, m as FormulaReturnType, n as RollupAttribute, o as RollupFunction, p as FlowDefinition, q as FlowPage, r as FlowRow, I as InferAttributeValue, s as ObjectDefinition, t as Field, u as AttributeGroupField, G as Group, V as ViewDefinition, v as Tab, B as BlockNoteContent } from './runtime-hbTw33Gx.js';
2
- export { bV as ActivityTab, bb as AddAttribute, ep as AddAttributeInput, aK as AdvancedFilterState, bI as AssignRoleInput, dV as AttributeChange, y as AttributeGroup, ba as AttributeMap, b6 as AttributeSchema, w as AttributeType, e5 as AttributesRepository, ah as AuditAction, ai as AuditActorType, aj as AuditChange, am as AuditListOptions, ak as AuditLogEntry, eb as AuditRepository, ag as AuditResourceType, ee as AuditService, an as AuditServiceOptions, z as BaseAttribute, $ as BlockNoteBlock, a0 as BlockNoteCustomInlineContent, a1 as BlockNoteDefaultProps, a2 as BlockNoteInlineContent, a3 as BlockNoteLink, a4 as BlockNoteStyledText, a5 as BlockNoteStyles, a6 as BlockNoteTableCell, a7 as BlockNoteTableCellProps, a8 as BlockNoteTableContent, av as CheckboxFilterOperator, bw as CompletionStatus, al as CreateAuditLogInput, eo as CreateCustomObjectInput, fd as CreateDBAttribute, fr as CreateDBFlow, f9 as CreateDBObject, fn as CreateDBView, ar as CreateFile, ej as CreateFlowInput, fg as CreateObjectRecord, bH as CreatePermissionInput, bF as CreateRoleInput, bP as CreateUserProfile, eO as CreateViewInput, Q as Currency, aC as CurrencyFilterValue, bf as CustomAttributeValue, bU as CustomTab, fc as DBAttribute, fq as DBFlow, f8 as DBObject, fm as DBView, f3 as DEFAULT_LABEL_FALLBACK, d0 as DatabaseAdapter, aw as DateFilterOperator, H as DateFormat, J as DateValue, bC as EffectivePermissions, aG as ExtendedFilterRule, bp as ExtractAttributes, bj as ExtractRecord, bl as ExtractRecordInput, bm as ExtractRecordInputStrict, bk as ExtractRecordStrict, bn as ExtractRecordUpdate, bo as ExtractRecordUpdateStrict, d1 as FetchResult, aq as File, eR as FileContent, fl as FileListOptions, ei as FileService, eh as FileServiceOptions, ap as FileVisibility, e7 as FilesRepository, aH as FilterCombinator, aJ as FilterGroup, aA as FilterOperator, aF as FilterRule, aI as FilterState, aE as FilterValue, aX as FlowRelation, aW as FlowRowField, el as FlowService, aV as FlowSlot, aY as FlowStatus, ea as FlowsRepository, bS as FormTab, d2 as FormattedRecord, dD as FormulaResult, f1 as FullSyncOptions, f0 as FullSyncResult, b4 as GeocodingAdapter, b1 as GeocodingAutocompleteParams, b3 as GeocodingParams, em as GeocodingService, b0 as GeocodingSuggestion, eB as GetRelationOptionsParams, fj as GlobalSearchOptions, fk as GlobalSearchResultItem, en as GlobalSearchService, d3 as GroupedFetchResult, dW as HookContext, dX as HookDefinition, dY as HookHandler, d$ as HookRegistry, dZ as HookType, bc as InferRecord, b7 as InferRecordFromSchema, bd as InferRecordInput, be as InferRecordUpdate, b8 as InferRecordWithRequirements, d4 as InsertOptions, dH as InvalidPathError, fh as ListOptions, W as Location, X as LocationGranularity, dI as MaxDepthExceededError, ay as MultiselectFilterOperator, aT as NO_VALUE_OPERATORS, aS as NoValueOperator, b5 as NoopGeocodingAdapter, d_ as NoopHookRegistry, bW as NotesTab, au as NumberFilterOperator, E as NumberUnit, aR as OPERATORS_BY_TYPE, bv as ObjectAttribute, bD as ObjectPermissions, bx as ObjectRecord, e8 as ObjectRecordsRepository, es as ObjectSchemaService, er as ObjectSchemaServiceOptions, e4 as ObjectsRepository, ft as OperationResult, a9 as PartialBlockNoteBlock, aa as PartialBlockNoteContent, ab as PartialBlockNoteInlineContent, ac as PartialBlockNoteLink, ad as PartialBlockNoteStyledText, ae as PartialBlockNoteTableCell, af as PartialBlockNoteTableContent, dM as PathCardinality, dN as PathSegment, dO as PathSegmentType, bA as Permission, by as PermissionScope, eu as PermissionService, et as PermissionServiceOptions, ec as PermissionsRepository, K as Phone, aD as PhoneFilterValue, bJ as PolicyContext, e2 as PolicyRegistry, bL as PolicyViolationError, dg as QueryBuilder, dh as QueryBuilderOptions, d5 as QueryBuilderState, dc as QueryMultipleResultsError, dd as QueryNoResultError, aQ as QueryState, Y as RELATION_TARGET_ANY, bq as RESERVED_ATTRIBUTE_NAMES, bh as RecordMetadata, bK as RecordPolicy, ew as RecordService, ev as RecordServiceOptions, d6 as RegistryMap, d7 as RegistryObjectNames, Z as RelationAttribute, az as RelationFilterOperator, ez as RelationOption, eA as RelationOptionsResponse, eE as RelationResolverService, eC as RelationService, ey as RelationValidationError, ex as RelationValidationResult, aB as RelativeDateValue, bs as ReservedAttributeName, eD as ResolvedRelations, b2 as ReverseGeocodingParams, bz as Role, eF as RollupResult, eI as RollupScheduler, eH as RollupSchedulerOptions, eG as RollupService, de as SHORTCUT_TO_FILTER_OPERATOR, br as SYSTEM_FIELD_NAMES, dP as SchemaResolver, fi as SearchOptions, ax as SelectFilterOperator, d8 as ShortcutOperator, eU as SignedUrlOptions, aO as SortDirection, aP as SortRule, x as StatusGroup, eV as StorageAdapter, ao as StorageProvider, eS as StorageUploadInput, eT as StorageUploadResult, eY as SyncOptions, eX as SyncResult, bt as SystemFieldName, bi as SystemFields, bE as SystemPermissions, bR as TabType, bT as TableTab, eg as TenantAwareRepository, ef as TenantAwareService, dq as TenantContext, di as TenantContextError, c1 as TenantId, at as TextFilterOperator, bu as Timestamps, dT as TraversalOptions, dU as TraversalResult, b9 as TypedAttribute, fe as UpdateDBAttribute, fs as UpdateDBFlow, fa as UpdateDBObject, fo as UpdateDBView, as as UpdateFile, ek as UpdateFlowInput, eq as UpdateObjectInput, bG as UpdateRoleInput, bQ as UpdateUserProfile, eP as UpdateViewInput, eW as UploadFileInput, ff as UpsertDBAttribute, fb as UpsertDBObject, fp as UpsertDBView, c2 as UserId, bO as UserProfile, eK as UserProfileService, eJ as UserProfileServiceOptions, e6 as UserProfilesRepository, bM as UserRole, bB as UserRoleAssignment, eN as UserService, bN as UserStatus, eM as UserValidationError, eL as UserValidationResult, c0 as Uuid, cS as ValidationResult, eQ as ViewService, fv as ViewSyncOptions, fu as ViewSyncResult, e9 as ViewsRepository, bg as WithCustomAttributes, c3 as asTenantId, c4 as asUserId, cr as attributeConfigSchemas, ed as buildAuditChanges, cd as checkboxConfigSchema, c$ as computeRecordStatus, cQ as createAttributeValidator, cy as createCheckboxValidator, cB as createCurrencyValidator, cz as createDateValidator, d9 as createDefaultState, cW as createDraftValidator, cG as createFileValidator, cM as createFormulaValidator, cF as createLocationValidator, e0 as createMockAdapter, cJ as createMultiRelationValidator, cE as createMultiselectValidator, cx as createNumberValidator, cR as createObjectValidator, cA as createPhoneValidator, df as createQueryBuilder, cL as createRatingValidator, cK as createRelationValidator, cP as createRichtextValidator, cN as createRollupValidator, cD as createSelectValidator, cI as createSingleRelationValidator, cC as createStatusValidator, cO as createTextAreaValidator, cw as createTextValidator, cH as createUserValidator, cg as currencyConfigSchema, ce as dateConfigSchema, e1 as defaultPolicyRegistry, f7 as enrichValuesWithSelectLabels, dr as evaluateFormula, ds as evaluateFormulaAttribute, dt as evaluateFormulaAttributeWithRelations, du as evaluateFormulaWithRelations, dv as evaluateFormulaWithResult, f6 as extractAttributeNames, dw as extractFormulaVariables, dx as extractRelationNames, dy as extractRelationReferences, cl as fileConfigSchema, dz as flattenRelationsForEval, dA as formatFormulaResult, da as formatRecord, db as formatRecords, cp as formulaConfigSchema, c5 as generateId, c6 as generatePrefixedId, cs as getAttributeConfigSchema, dj as getContext, cZ as getMissingRequiredAttributes, dE as getPathDepth, dF as getRelationPath, e$ as getSyncPreview, dG as getTargetAttributeName, dk as getTenantId, dl as getUserId, fy as getViewSyncPreview, dm as hasContext, dB as hasRelationReferences, b_ as isActivityTab, aL as isAdvancedFilterState, bZ as isCustomTab, aZ as isFlowDefinition, a_ as isFlowPublished, bX as isFormTab, f5 as isLabelExpression, aU as isNoValueOperator, b$ as isNotesTab, c_ as isRecordComplete, a$ as isSystemFlow, bY as isTableTab, _ as isUniversalRelation, ci as locationConfigSchema, ck as multiselectConfigSchema, e3 as notesPolicy, cc as numberConfigSchema, cu as parseAttributeConfig, dJ as parsePath, dK as pathHasManyCardinality, cf as phoneConfigSchema, co as ratingConfigSchema, c7 as registry, cn as relationConfigSchema, f4 as renderLabelExpression, dQ as resolveMultiplePaths, dR as resolveSingleValue, cb as richtextConfigSchema, cq as rollupConfigSchema, dn as runWithContext, cv as safeParseAttributeConfig, cj as selectConfigSchema, ch as statusConfigSchema, f2 as syncAll, eZ as syncNativeObjects, fw as syncNativeViews, c9 as textConfigSchema, ca as textareaConfigSchema, aM as toAdvancedFilterState, aN as toSimpleFilterState, dS as traversePath, cm as userConfigSchema, cT as validateAttribute, ct as validateAttributeConfig, cX as validateDraft, cY as validateDraftOrThrow, dC as validateFormulaExpression, cU as validateObject, cV as validateObjectOrThrow, dL as validatePath, e_ as verifyNativeObjectsSync, fx as verifyNativeViewsSync, c8 as viewRegistry, dp as withTenantContext } from './runtime-hbTw33Gx.js';
1
+ import { D as DateAttribute, U as UserAttribute, A as Attribute, S as SystemResource, a as SystemAction, O as ObjectAction, T as TextAttribute, b as TextAreaAttribute, R as RichtextAttribute, c as RichtextFeature, N as NumberAttribute, C as CheckboxAttribute, P as PhoneAttribute, d as CurrencyAttribute, e as Option, f as StatusAttribute, g as SelectAttribute, M as MultiselectAttribute, L as LocationAttribute, F as FileAttribute, h as SingleRelationAttribute, i as MultiRelationAttribute, j as RelationTarget, k as RatingAttribute, l as FormulaAttribute, m as FormulaReturnType, n as RollupAttribute, o as RollupFunction, p as FlowDefinition, q as FlowPage, r as FlowRow, I as InferAttributeValue, s as ObjectDefinition, t as Field, u as AttributeGroupField, G as Group, v as TableTab, w as InverseTableTab, V as ViewDefinition, x as Tab, y as FilterState, z as SortRule, B as DirectTableTab, E as BlockNoteContent } from './runtime-DyTAIaum.js';
2
+ export { bY as ActivityTab, be as AddAttribute, eu as AddAttributeInput, aO as AdvancedFilterState, bL as AssignRoleInput, d_ as AttributeChange, K as AttributeGroup, bd as AttributeMap, b9 as AttributeSchema, H as AttributeType, ea as AttributesRepository, am as AuditAction, an as AuditActorType, ao as AuditChange, ar as AuditListOptions, ap as AuditLogEntry, eg as AuditRepository, al as AuditResourceType, ej as AuditService, as as AuditServiceOptions, Q as BaseAttribute, a4 as BlockNoteBlock, a5 as BlockNoteCustomInlineContent, a6 as BlockNoteDefaultProps, a7 as BlockNoteInlineContent, a8 as BlockNoteLink, a9 as BlockNoteStyledText, aa as BlockNoteStyles, ab as BlockNoteTableCell, ac as BlockNoteTableCellProps, ad as BlockNoteTableContent, aA as CheckboxFilterOperator, bz as CompletionStatus, aq as CreateAuditLogInput, et as CreateCustomObjectInput, fi as CreateDBAttribute, fw as CreateDBFlow, fe as CreateDBObject, fs as CreateDBView, aw as CreateFile, eo as CreateFlowInput, fl as CreateObjectRecord, bK as CreatePermissionInput, bI as CreateRoleInput, bS as CreateUserProfile, eT as CreateViewInput, _ as Currency, aH as CurrencyFilterValue, bi as CustomAttributeValue, bX as CustomTab, fh as DBAttribute, fv as DBFlow, fd as DBObject, fr as DBView, f8 as DEFAULT_LABEL_FALLBACK, d5 as DatabaseAdapter, aB as DateFilterOperator, X as DateFormat, Y as DateValue, bF as EffectivePermissions, aL as ExtendedFilterRule, bs as ExtractAttributes, bm as ExtractRecord, bo as ExtractRecordInput, bp as ExtractRecordInputStrict, bn as ExtractRecordStrict, bq as ExtractRecordUpdate, br as ExtractRecordUpdateStrict, d6 as FetchResult, av as File, eW as FileContent, fq as FileListOptions, en as FileService, em as FileServiceOptions, au as FileVisibility, ec as FilesRepository, aM as FilterCombinator, aN as FilterGroup, aF as FilterOperator, aK as FilterRule, aJ as FilterValue, a_ as FlowRelation, aZ as FlowRowField, eq as FlowService, aY as FlowSlot, a$ as FlowStatus, ef as FlowsRepository, bW as FormTab, d7 as FormattedRecord, dI as FormulaResult, f6 as FullSyncOptions, f5 as FullSyncResult, b7 as GeocodingAdapter, b4 as GeocodingAutocompleteParams, b6 as GeocodingParams, er as GeocodingService, b3 as GeocodingSuggestion, eG as GetRelationOptionsParams, fo as GlobalSearchOptions, fp as GlobalSearchResultItem, es as GlobalSearchService, d8 as GroupedFetchResult, d$ as HookContext, e0 as HookDefinition, e1 as HookHandler, e4 as HookRegistry, e2 as HookType, bf as InferRecord, ba as InferRecordFromSchema, bg as InferRecordInput, bh as InferRecordUpdate, bb as InferRecordWithRequirements, d9 as InsertOptions, dM as InvalidPathError, bU as InviteUserInput, fm as ListOptions, $ as Location, a0 as LocationGranularity, dN as MaxDepthExceededError, aD as MultiselectFilterOperator, aW as NO_VALUE_OPERATORS, aV as NoValueOperator, b8 as NoopGeocodingAdapter, e3 as NoopHookRegistry, bZ as NotesTab, az as NumberFilterOperator, W as NumberUnit, aU as OPERATORS_BY_TYPE, by as ObjectAttribute, bG as ObjectPermissions, bA as ObjectRecord, ed as ObjectRecordsRepository, ex as ObjectSchemaService, ew as ObjectSchemaServiceOptions, e9 as ObjectsRepository, fy as OperationResult, ae as PartialBlockNoteBlock, af as PartialBlockNoteContent, ag as PartialBlockNoteInlineContent, ah as PartialBlockNoteLink, ai as PartialBlockNoteStyledText, aj as PartialBlockNoteTableCell, ak as PartialBlockNoteTableContent, dR as PathCardinality, dS as PathSegment, dT as PathSegmentType, bD as Permission, bB as PermissionScope, ez as PermissionService, ey as PermissionServiceOptions, eh as PermissionsRepository, Z as Phone, aI as PhoneFilterValue, bM as PolicyContext, e7 as PolicyRegistry, bO as PolicyViolationError, dl as QueryBuilder, dm as QueryBuilderOptions, da as QueryBuilderState, dh as QueryMultipleResultsError, di as QueryNoResultError, aT as QueryState, a1 as RELATION_TARGET_ANY, bt as RESERVED_ATTRIBUTE_NAMES, bk as RecordMetadata, bN as RecordPolicy, eB as RecordService, eA as RecordServiceOptions, db as RegistryMap, dc as RegistryObjectNames, a2 as RelationAttribute, aE as RelationFilterOperator, eE as RelationOption, eF as RelationOptionsResponse, eJ as RelationResolverService, eH as RelationService, eD as RelationValidationError, eC as RelationValidationResult, aG as RelativeDateValue, bv as ReservedAttributeName, eI as ResolvedRelations, b5 as ReverseGeocodingParams, bC as Role, eK as RollupResult, eN as RollupScheduler, eM as RollupSchedulerOptions, eL as RollupService, dj as SHORTCUT_TO_FILTER_OPERATOR, bu as SYSTEM_FIELD_NAMES, dU as SchemaResolver, fn as SearchOptions, aC as SelectFilterOperator, dd as ShortcutOperator, eZ as SignedUrlOptions, aS as SortDirection, J as StatusGroup, e_ as StorageAdapter, at as StorageProvider, eX as StorageUploadInput, eY as StorageUploadResult, f1 as SyncOptions, f0 as SyncResult, bw as SystemFieldName, bl as SystemFields, bH as SystemPermissions, bV as TabType, el as TenantAwareRepository, ek as TenantAwareService, dv as TenantContext, dn as TenantContextError, c6 as TenantId, ay as TextFilterOperator, bx as Timestamps, dY as TraversalOptions, dZ as TraversalResult, bc as TypedAttribute, fj as UpdateDBAttribute, fx as UpdateDBFlow, ff as UpdateDBObject, ft as UpdateDBView, ax as UpdateFile, ep as UpdateFlowInput, ev as UpdateObjectInput, bJ as UpdateRoleInput, bT as UpdateUserProfile, eU as UpdateViewInput, e$ as UploadFileInput, fk as UpsertDBAttribute, fg as UpsertDBObject, fu as UpsertDBView, c7 as UserId, bR as UserProfile, eP as UserProfileService, eO as UserProfileServiceOptions, eb as UserProfilesRepository, bP as UserRole, bE as UserRoleAssignment, eS as UserService, bQ as UserStatus, eR as UserValidationError, eQ as UserValidationResult, c5 as Uuid, cX as ValidationResult, eV as ViewService, fA as ViewSyncOptions, fz as ViewSyncResult, ee as ViewsRepository, bj as WithCustomAttributes, c8 as asTenantId, c9 as asUserId, cw as attributeConfigSchemas, ei as buildAuditChanges, ci as checkboxConfigSchema, d4 as computeRecordStatus, cV as createAttributeValidator, cD as createCheckboxValidator, cG as createCurrencyValidator, cE as createDateValidator, de as createDefaultState, c$ as createDraftValidator, cL as createFileValidator, cR as createFormulaValidator, cK as createLocationValidator, e5 as createMockAdapter, cO as createMultiRelationValidator, cJ as createMultiselectValidator, cC as createNumberValidator, cW as createObjectValidator, cF as createPhoneValidator, dk as createQueryBuilder, cQ as createRatingValidator, cP as createRelationValidator, cU as createRichtextValidator, cS as createRollupValidator, cI as createSelectValidator, cN as createSingleRelationValidator, cH as createStatusValidator, cT as createTextAreaValidator, cB as createTextValidator, cM as createUserValidator, cl as currencyConfigSchema, cj as dateConfigSchema, e6 as defaultPolicyRegistry, fc as enrichValuesWithSelectLabels, dw as evaluateFormula, dx as evaluateFormulaAttribute, dy as evaluateFormulaAttributeWithRelations, dz as evaluateFormulaWithRelations, dA as evaluateFormulaWithResult, fb as extractAttributeNames, dB as extractFormulaVariables, dC as extractRelationNames, dD as extractRelationReferences, cq as fileConfigSchema, dE as flattenRelationsForEval, dF as formatFormulaResult, df as formatRecord, dg as formatRecords, cu as formulaConfigSchema, ca as generateId, cb as generatePrefixedId, cx as getAttributeConfigSchema, dp as getContext, d2 as getMissingRequiredAttributes, dJ as getPathDepth, dK as getRelationPath, f4 as getSyncPreview, dL as getTargetAttributeName, dq as getTenantId, dr as getUserId, fD as getViewSyncPreview, ds as hasContext, dG as hasRelationReferences, c3 as isActivityTab, aP as isAdvancedFilterState, c2 as isCustomTab, c0 as isDirectTableTab, b0 as isFlowDefinition, b1 as isFlowPublished, b_ as isFormTab, c1 as isInverseTableTab, fa as isLabelExpression, aX as isNoValueOperator, c4 as isNotesTab, d3 as isRecordComplete, b2 as isSystemFlow, b$ as isTableTab, a3 as isUniversalRelation, cn as locationConfigSchema, cp as multiselectConfigSchema, e8 as notesPolicy, ch as numberConfigSchema, cz as parseAttributeConfig, dO as parsePath, dP as pathHasManyCardinality, ck as phoneConfigSchema, ct as ratingConfigSchema, cc as registry, cs as relationConfigSchema, f9 as renderLabelExpression, dV as resolveMultiplePaths, dW as resolveSingleValue, cg as richtextConfigSchema, cv as rollupConfigSchema, dt as runWithContext, cA as safeParseAttributeConfig, co as selectConfigSchema, cm as statusConfigSchema, f7 as syncAll, f2 as syncNativeObjects, fB as syncNativeViews, ce as textConfigSchema, cf as textareaConfigSchema, aQ as toAdvancedFilterState, aR as toSimpleFilterState, dX as traversePath, cr as userConfigSchema, cY as validateAttribute, cy as validateAttributeConfig, d0 as validateDraft, d1 as validateDraftOrThrow, dH as validateFormulaExpression, cZ as validateObject, c_ as validateObjectOrThrow, dQ as validatePath, f3 as verifyNativeObjectsSync, fC as verifyNativeViewsSync, cd as viewRegistry, du as withTenantContext } from './runtime-DyTAIaum.js';
3
3
  import { IconName, CountryIso3, CurrencyCode, MimeType, ColorId } from '@stndrds/constants';
4
4
  import 'zod';
5
5
 
@@ -1463,13 +1463,12 @@ interface BaseTabConfig {
1463
1463
  system?: boolean;
1464
1464
  }
1465
1465
  /**
1466
- * Builder for configuring table tabs
1466
+ * Base builder for configuring table tabs (shared between Direct and Inverse)
1467
1467
  */
1468
- declare class TableTabConfig {
1469
- private view;
1470
- private tabData;
1471
- /** @internal */
1472
- constructor(view: ViewBuilder, base: BaseTabConfig, relation: string);
1468
+ declare abstract class BaseTableTabConfig<T extends TableTab> {
1469
+ protected view: ViewBuilder;
1470
+ protected tabData: Partial<T>;
1471
+ constructor(view: ViewBuilder, tabData: Partial<T>);
1473
1472
  /**
1474
1473
  * Set columns to display
1475
1474
  * @example .columns("firstName", "lastName", "email")
@@ -1494,12 +1493,17 @@ declare class TableTabConfig {
1494
1493
  /**
1495
1494
  * Set default filters
1496
1495
  */
1497
- filters(value: Record<string, unknown>): this;
1496
+ filters(value: FilterState): this;
1498
1497
  /**
1499
- * Set default sort
1498
+ * Set default sort rules
1499
+ * @example .sorts([{ attribute: "lastName", direction: "asc" }])
1500
+ */
1501
+ sorts(value: SortRule[]): this;
1502
+ /**
1503
+ * Add a single sort rule (convenience method)
1500
1504
  * @example .sort("lastName") or .sort("createdAt", "desc")
1501
1505
  */
1502
- sort(field: string, order?: "asc" | "desc"): this;
1506
+ sort(attribute: string, direction?: "asc" | "desc"): this;
1503
1507
  /**
1504
1508
  * Continue building with a new tab
1505
1509
  */
@@ -1512,7 +1516,37 @@ declare class TableTabConfig {
1512
1516
  * Build the final view definition
1513
1517
  */
1514
1518
  build(): ViewDefinition;
1515
- private finalize;
1519
+ protected finalize(): void;
1520
+ }
1521
+ /**
1522
+ * Builder for configuring direct table tabs (relation attribute on current object)
1523
+ *
1524
+ * @example
1525
+ * ```typescript
1526
+ * .tab("members", "Members")
1527
+ * .table("members") // Direct: uses the "members" relation attribute on current object
1528
+ * .columns("name", "email")
1529
+ * .crud()
1530
+ * ```
1531
+ */
1532
+ declare class DirectTableTabConfig extends BaseTableTabConfig<DirectTableTab> {
1533
+ /** @internal */
1534
+ constructor(view: ViewBuilder, base: BaseTabConfig, relationAttribute: string);
1535
+ }
1536
+ /**
1537
+ * Builder for configuring inverse table tabs (another object has relation to us)
1538
+ *
1539
+ * @example
1540
+ * ```typescript
1541
+ * .tab("contacts", "Contacts")
1542
+ * .tableFrom("contacts", "company") // Inverse: Contact.company points to us
1543
+ * .columns("firstName", "lastName", "email")
1544
+ * .crud()
1545
+ * ```
1546
+ */
1547
+ declare class InverseTableTabConfig extends BaseTableTabConfig<InverseTableTab> {
1548
+ /** @internal */
1549
+ constructor(view: ViewBuilder, base: BaseTabConfig, sourceObject: string, relationAttribute: string);
1516
1550
  }
1517
1551
  /**
1518
1552
  * Builder for configuring custom tabs
@@ -1626,10 +1660,24 @@ declare class TabBuilder {
1626
1660
  */
1627
1661
  form(...groups: (GroupBuilder | Group)[]): ViewBuilder;
1628
1662
  /**
1629
- * Create a table tab for a relation
1630
- * @example .table("contacts").columns("name", "email").crud()
1663
+ * Create a direct table tab for a relation attribute on the current object
1664
+ *
1665
+ * Use this when the current object has a relation attribute pointing to another object.
1666
+ *
1667
+ * @param relationAttribute - Name of the relation attribute on the current object
1668
+ * @example .table("members").columns("name", "email").crud() // Show users from Project.members
1631
1669
  */
1632
- table(relation: string): TableTabConfig;
1670
+ table(relationAttribute: string): DirectTableTabConfig;
1671
+ /**
1672
+ * Create an inverse table tab showing records from another object that have a relation to us
1673
+ *
1674
+ * Use this when another object has a relation attribute pointing to the current object.
1675
+ *
1676
+ * @param sourceObject - Name of the object that has the relation to us
1677
+ * @param relationAttribute - Name of the relation attribute on the source object
1678
+ * @example .tableFrom("contacts", "company").columns("firstName", "lastName") // Show contacts where Contact.company = this
1679
+ */
1680
+ tableFrom(sourceObject: string, relationAttribute: string): InverseTableTabConfig;
1633
1681
  /**
1634
1682
  * Create a custom tab with a component
1635
1683
  * @example .custom("AnalyticsWidget").props({ period: "12m" })
@@ -1663,11 +1711,17 @@ declare class TabBuilder {
1663
1711
  * group("address", "Address").fields("location").collapsible()
1664
1712
  * )
1665
1713
  *
1714
+ * // Inverse: show Contact records where Contact.company = this Company
1666
1715
  * .tab("contacts", "Contacts").icon("users")
1667
- * .table("contacts")
1716
+ * .tableFrom("contacts", "company")
1668
1717
  * .columns("firstName", "lastName", "email")
1669
1718
  * .crud()
1670
1719
  *
1720
+ * // Direct: show User records linked via Company.members
1721
+ * .tab("members", "Members").icon("users")
1722
+ * .table("members")
1723
+ * .columns("name", "email")
1724
+ *
1671
1725
  * .tab("analytics", "Stats").icon("bar-chart")
1672
1726
  * .custom("CompanyAnalytics")
1673
1727
  * .props({ period: "12m" })
@@ -1810,4 +1864,4 @@ declare const NOTES: ObjectBuilder<{
1810
1864
  linkedTo?: string | undefined;
1811
1865
  }>;
1812
1866
 
1813
- export { ALL_SYSTEM_RESOURCES, ActivityTabConfig, type AnyAttributeBuilder, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, type AttributeUsage, BlockNoteContent, type BuilderConfig, CheckboxAttribute, CurrencyAttribute, CustomTabConfig, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DateAttribute, type DefaultRoleName, type DefaultRolePermissionConfig, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type ExtractAttributeName, type ExtractAttributeRequired, Field, FileAttribute, FileNotFoundError, FlowBuilder, FlowDefinition, FlowPage, FlowPageBuilder, FlowRow, FlowRowBuilder, ForbiddenError, FormulaAttribute, FormulaReturnType, Group, GroupBuilder, InferAttributeValue, LocationAttribute, MultiRelationAttribute, MultiselectAttribute, NOTES, NotFoundError, NotSystemObjectError, NotesTabConfig, NumberAttribute, ObjectAction, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, ObjectReferencedError, Option, PhoneAttribute, ProtectedResourceError, ProtectedRoleError, RatingAttribute, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationTarget, RichtextAttribute, RichtextFeature, RoleNotFoundError, RollupAttribute, RollupFunction, SYSTEM_ATTRIBUTES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, SchemaError, SchemaErrorCode, SelectAttribute, SingleRelationAttribute, StatusAttribute, SyncError, SystemAction, type SystemAttribute, type SystemAttributeName, SystemResource, Tab, TabBuilder, TableTabConfig, TextAreaAttribute, TextAttribute, type TypedBuilderConfig, UserAttribute, UserProfileNotFoundError, ValidationError, type ValidationErrorDetail, ViewBuilder, ViewDefinition, checkbox, currency, date, file, flow, formatAttributeValue, formula, getSystemAttributeList, group, isDefaultRole, isForbiddenError, isNotFoundError, isProtectedResourceError, isSchemaError, isSystemAttribute, isSystemAttributeObject, isValidationError, location, multiselect, number, object, phone, rating, relation, richtext, rollup, select, status, text, textarea, user, view };
1867
+ export { ALL_SYSTEM_RESOURCES, ActivityTabConfig, type AnyAttributeBuilder, Attribute, AttributeGroupField, AttributeInUseError, AttributeNotFoundError, type AttributeUsage, BlockNoteContent, type BuilderConfig, CheckboxAttribute, CurrencyAttribute, CustomTabConfig, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DateAttribute, type DefaultRoleName, type DefaultRolePermissionConfig, DirectTableTab, DirectTableTabConfig, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type ExtractAttributeName, type ExtractAttributeRequired, Field, FileAttribute, FileNotFoundError, FilterState, FlowBuilder, FlowDefinition, FlowPage, FlowPageBuilder, FlowRow, FlowRowBuilder, ForbiddenError, FormulaAttribute, FormulaReturnType, Group, GroupBuilder, InferAttributeValue, InverseTableTab, InverseTableTabConfig, LocationAttribute, MultiRelationAttribute, MultiselectAttribute, NOTES, NotFoundError, NotSystemObjectError, NotesTabConfig, NumberAttribute, ObjectAction, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, ObjectReferencedError, Option, PhoneAttribute, ProtectedResourceError, ProtectedRoleError, RatingAttribute, RecordNotFoundError, type RecordReference, RecordReferencedError, RelationTarget, RichtextAttribute, RichtextFeature, RoleNotFoundError, RollupAttribute, RollupFunction, SYSTEM_ATTRIBUTES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, SchemaError, SchemaErrorCode, SelectAttribute, SingleRelationAttribute, SortRule, StatusAttribute, SyncError, SystemAction, type SystemAttribute, type SystemAttributeName, SystemResource, Tab, TabBuilder, TableTab, TextAreaAttribute, TextAttribute, type TypedBuilderConfig, UserAttribute, UserProfileNotFoundError, ValidationError, type ValidationErrorDetail, ViewBuilder, ViewDefinition, checkbox, currency, date, file, flow, formatAttributeValue, formula, getSystemAttributeList, group, isDefaultRole, isForbiddenError, isNotFoundError, isProtectedResourceError, isSchemaError, isSystemAttribute, isSystemAttributeObject, isValidationError, location, multiselect, number, object, phone, rating, relation, richtext, rollup, select, status, text, textarea, user, view };
package/dist/index.js CHANGED
@@ -200,7 +200,8 @@
200
200
 
201
201
 
202
202
 
203
- var _chunkCDWZ6X5Ujs = require('./chunk-CDWZ6X5U.js');
203
+
204
+ var _chunk5WYGAQYHjs = require('./chunk-5WYGAQYH.js');
204
205
 
205
206
 
206
207
 
@@ -333,6 +334,12 @@ function isFormTab(tab) {
333
334
  function isTableTab(tab) {
334
335
  return tab.type === "table";
335
336
  }
337
+ function isDirectTableTab(tab) {
338
+ return tab.type === "table" && tab.relationMode === "direct";
339
+ }
340
+ function isInverseTableTab(tab) {
341
+ return tab.type === "table" && tab.relationMode === "inverse";
342
+ }
336
343
  function isCustomTab(tab) {
337
344
  return tab.type === "custom";
338
345
  }
@@ -344,13 +351,13 @@ function isNotesTab(tab) {
344
351
  }
345
352
 
346
353
  // src/native/notes.ts
347
- var NOTES = _chunkCDWZ6X5Ujs.object.call(void 0, { name: "notes", label: "Note" }).pluralLabel("Notes").icon("file-text").description("Notes that can be linked to any record or used globally").system().labelExpression("{{ title }}").attribute(_chunkCDWZ6X5Ujs.text.call(void 0, { name: "title", label: "Title" }).placeholder("Untitled").required()).attribute(_chunkCDWZ6X5Ujs.richtext.call(void 0, { name: "content", label: "Content" }).required()).attribute(
348
- _chunkCDWZ6X5Ujs.select.call(void 0, { name: "visibility", label: "Visibility" }).options([
354
+ var NOTES = _chunk5WYGAQYHjs.object.call(void 0, { name: "notes", label: "Note" }).pluralLabel("Notes").icon("file-text").description("Notes that can be linked to any record or used globally").system().labelExpression("{{ title }}").attribute(_chunk5WYGAQYHjs.text.call(void 0, { name: "title", label: "Title" }).placeholder("Untitled").required()).attribute(_chunk5WYGAQYHjs.richtext.call(void 0, { name: "content", label: "Content" }).required()).attribute(
355
+ _chunk5WYGAQYHjs.select.call(void 0, { name: "visibility", label: "Visibility" }).options([
349
356
  { id: "private", label: "Private", value: "private", icon: "lock" },
350
357
  { id: "shared", label: "Shared", value: "shared", icon: "users" }
351
358
  ]).defaultValue("private").required()
352
- ).attribute(_chunkCDWZ6X5Ujs.relation.call(void 0, { name: "linkedTo", label: "Linked To" }).toAny().hidden());
353
- _chunkCDWZ6X5Ujs.registry.register(NOTES);
359
+ ).attribute(_chunk5WYGAQYHjs.relation.call(void 0, { name: "linkedTo", label: "Linked To" }).toAny().hidden());
360
+ _chunk5WYGAQYHjs.registry.register(NOTES);
354
361
 
355
362
  // src/views/registry.ts
356
363
  var ViewRegistry = class {
@@ -715,4 +722,7 @@ var viewRegistry = new ViewRegistry();
715
722
 
716
723
 
717
724
 
718
- exports.ALL_SYSTEM_RESOURCES = _chunk36UBIXJNjs.ALL_SYSTEM_RESOURCES; exports.ActivityTabConfig = _chunkCDWZ6X5Ujs.ActivityTabConfig; exports.AttributeInUseError = _chunkCDWZ6X5Ujs.AttributeInUseError; exports.AttributeNotFoundError = _chunkCDWZ6X5Ujs.AttributeNotFoundError; exports.AuditService = _chunkCDWZ6X5Ujs.AuditService; exports.CustomTabConfig = _chunkCDWZ6X5Ujs.CustomTabConfig; exports.DEFAULT_LABEL_FALLBACK = _chunkCDWZ6X5Ujs.DEFAULT_LABEL_FALLBACK; exports.DEFAULT_ROLES = _chunk36UBIXJNjs.DEFAULT_ROLES; exports.DEFAULT_ROLE_DESCRIPTIONS = _chunk36UBIXJNjs.DEFAULT_ROLE_DESCRIPTIONS; exports.DEFAULT_ROLE_LABELS = _chunk36UBIXJNjs.DEFAULT_ROLE_LABELS; exports.DEFAULT_ROLE_PERMISSIONS = _chunk36UBIXJNjs.DEFAULT_ROLE_PERMISSIONS; exports.DuplicateError = _chunkCDWZ6X5Ujs.DuplicateError; exports.EMPTY_VALUE_PLACEHOLDER = _chunkCDWZ6X5Ujs.EMPTY_VALUE_PLACEHOLDER; exports.FileNotFoundError = _chunkCDWZ6X5Ujs.FileNotFoundError; exports.FileService = _chunkCDWZ6X5Ujs.FileService; exports.FlowBuilder = _chunkCDWZ6X5Ujs.FlowBuilder; exports.FlowPageBuilder = _chunkCDWZ6X5Ujs.FlowPageBuilder; exports.FlowRowBuilder = _chunkCDWZ6X5Ujs.FlowRowBuilder; exports.FlowService = _chunkCDWZ6X5Ujs.FlowService; exports.ForbiddenError = _chunkCDWZ6X5Ujs.ForbiddenError; exports.GeocodingService = _chunkCDWZ6X5Ujs.GeocodingService; exports.GlobalSearchService = _chunkCDWZ6X5Ujs.GlobalSearchService; exports.GroupBuilder = _chunkCDWZ6X5Ujs.GroupBuilder; exports.InvalidPathError = _chunkCDWZ6X5Ujs.InvalidPathError; exports.MaxDepthExceededError = _chunkCDWZ6X5Ujs.MaxDepthExceededError; exports.NOTES = NOTES; exports.NO_VALUE_OPERATORS = NO_VALUE_OPERATORS; exports.NoopGeocodingAdapter = _chunkCDWZ6X5Ujs.NoopGeocodingAdapter; exports.NoopHookRegistry = _chunkCDWZ6X5Ujs.NoopHookRegistry; exports.NotFoundError = _chunkCDWZ6X5Ujs.NotFoundError; exports.NotSystemObjectError = _chunkCDWZ6X5Ujs.NotSystemObjectError; exports.NotesTabConfig = _chunkCDWZ6X5Ujs.NotesTabConfig; exports.OPERATORS_BY_TYPE = OPERATORS_BY_TYPE; exports.ObjectBuilder = _chunkCDWZ6X5Ujs.ObjectBuilder; exports.ObjectNotFoundError = _chunkCDWZ6X5Ujs.ObjectNotFoundError; exports.ObjectReferencedError = _chunkCDWZ6X5Ujs.ObjectReferencedError; exports.ObjectSchemaService = _chunkCDWZ6X5Ujs.ObjectSchemaService; exports.PermissionService = _chunkCDWZ6X5Ujs.PermissionService; exports.PolicyRegistry = _chunkCDWZ6X5Ujs.PolicyRegistry; exports.PolicyViolationError = _chunkCDWZ6X5Ujs.PolicyViolationError; exports.ProtectedResourceError = _chunkCDWZ6X5Ujs.ProtectedResourceError; exports.ProtectedRoleError = _chunkCDWZ6X5Ujs.ProtectedRoleError; exports.QueryBuilder = _chunkCDWZ6X5Ujs.QueryBuilder; exports.QueryMultipleResultsError = _chunkCDWZ6X5Ujs.QueryMultipleResultsError; exports.QueryNoResultError = _chunkCDWZ6X5Ujs.QueryNoResultError; exports.RELATION_TARGET_ANY = _chunkCDWZ6X5Ujs.RELATION_TARGET_ANY; exports.RESERVED_ATTRIBUTE_NAMES = _chunkCDWZ6X5Ujs.RESERVED_ATTRIBUTE_NAMES; exports.RecordNotFoundError = _chunkCDWZ6X5Ujs.RecordNotFoundError; exports.RecordReferencedError = _chunkCDWZ6X5Ujs.RecordReferencedError; exports.RecordService = _chunkCDWZ6X5Ujs.RecordService; exports.RelationResolverService = _chunkCDWZ6X5Ujs.RelationResolverService; exports.RelationService = _chunkCDWZ6X5Ujs.RelationService; exports.RoleNotFoundError = _chunkCDWZ6X5Ujs.RoleNotFoundError; exports.RollupScheduler = _chunkCDWZ6X5Ujs.RollupScheduler; exports.RollupService = _chunkCDWZ6X5Ujs.RollupService; exports.SHORTCUT_TO_FILTER_OPERATOR = _chunkCDWZ6X5Ujs.SHORTCUT_TO_FILTER_OPERATOR; exports.SYSTEM_ATTRIBUTES = _chunkCDWZ6X5Ujs.SYSTEM_ATTRIBUTES; exports.SYSTEM_FIELD_NAMES = _chunkCDWZ6X5Ujs.SYSTEM_FIELD_NAMES; exports.SYSTEM_RESOURCES = _chunk36UBIXJNjs.SYSTEM_RESOURCES; exports.SYSTEM_RESOURCE_LABELS = _chunk36UBIXJNjs.SYSTEM_RESOURCE_LABELS; exports.SchemaError = _chunkCDWZ6X5Ujs.SchemaError; exports.SchemaErrorCode = _chunkCDWZ6X5Ujs.SchemaErrorCode; exports.SyncError = _chunkCDWZ6X5Ujs.SyncError; exports.TabBuilder = _chunkCDWZ6X5Ujs.TabBuilder; exports.TableTabConfig = _chunkCDWZ6X5Ujs.TableTabConfig; exports.TenantAwareRepository = _chunkCDWZ6X5Ujs.TenantAwareRepository; exports.TenantAwareService = _chunkCDWZ6X5Ujs.TenantAwareService; exports.TenantContextError = _chunkCDWZ6X5Ujs.TenantContextError; exports.UserProfileNotFoundError = _chunkCDWZ6X5Ujs.UserProfileNotFoundError; exports.UserProfileService = _chunkCDWZ6X5Ujs.UserProfileService; exports.UserService = _chunkCDWZ6X5Ujs.UserService; exports.ValidationError = _chunkCDWZ6X5Ujs.ValidationError; exports.ViewBuilder = _chunkCDWZ6X5Ujs.ViewBuilder; exports.ViewService = _chunkCDWZ6X5Ujs.ViewService; exports.asTenantId = _chunkCDWZ6X5Ujs.asTenantId; exports.asUserId = _chunkCDWZ6X5Ujs.asUserId; exports.attributeConfigSchemas = _chunkCDWZ6X5Ujs.attributeConfigSchemas; exports.buildAuditChanges = _chunkCDWZ6X5Ujs.buildAuditChanges; exports.checkbox = _chunkCDWZ6X5Ujs.checkbox; exports.checkboxConfigSchema = _chunkCDWZ6X5Ujs.checkboxConfigSchema; exports.computeRecordStatus = _chunkCDWZ6X5Ujs.computeRecordStatus; exports.createAttributeValidator = _chunkCDWZ6X5Ujs.createAttributeValidator; exports.createCheckboxValidator = _chunkCDWZ6X5Ujs.createCheckboxValidator; exports.createCurrencyValidator = _chunkCDWZ6X5Ujs.createCurrencyValidator; exports.createDateValidator = _chunkCDWZ6X5Ujs.createDateValidator; exports.createDefaultState = _chunkCDWZ6X5Ujs.createDefaultState; exports.createDraftValidator = _chunkCDWZ6X5Ujs.createDraftValidator; exports.createFileValidator = _chunkCDWZ6X5Ujs.createFileValidator; exports.createFormulaValidator = _chunkCDWZ6X5Ujs.createFormulaValidator; exports.createLocationValidator = _chunkCDWZ6X5Ujs.createLocationValidator; exports.createMockAdapter = _chunkCDWZ6X5Ujs.createMockAdapter; exports.createMultiRelationValidator = _chunkCDWZ6X5Ujs.createMultiRelationValidator; exports.createMultiselectValidator = _chunkCDWZ6X5Ujs.createMultiselectValidator; exports.createNumberValidator = _chunkCDWZ6X5Ujs.createNumberValidator; exports.createObjectValidator = _chunkCDWZ6X5Ujs.createObjectValidator; exports.createPhoneValidator = _chunkCDWZ6X5Ujs.createPhoneValidator; exports.createQueryBuilder = _chunkCDWZ6X5Ujs.createQueryBuilder; exports.createRatingValidator = _chunkCDWZ6X5Ujs.createRatingValidator; exports.createRelationValidator = _chunkCDWZ6X5Ujs.createRelationValidator; exports.createRichtextValidator = _chunkCDWZ6X5Ujs.createRichtextValidator; exports.createRollupValidator = _chunkCDWZ6X5Ujs.createRollupValidator; exports.createSelectValidator = _chunkCDWZ6X5Ujs.createSelectValidator; exports.createSingleRelationValidator = _chunkCDWZ6X5Ujs.createSingleRelationValidator; exports.createStatusValidator = _chunkCDWZ6X5Ujs.createStatusValidator; exports.createTextAreaValidator = _chunkCDWZ6X5Ujs.createTextAreaValidator; exports.createTextValidator = _chunkCDWZ6X5Ujs.createTextValidator; exports.createUserValidator = _chunkCDWZ6X5Ujs.createUserValidator; exports.currency = _chunkCDWZ6X5Ujs.currency; exports.currencyConfigSchema = _chunkCDWZ6X5Ujs.currencyConfigSchema; exports.date = _chunkCDWZ6X5Ujs.date; exports.dateConfigSchema = _chunkCDWZ6X5Ujs.dateConfigSchema; exports.defaultPolicyRegistry = _chunkCDWZ6X5Ujs.defaultPolicyRegistry; exports.enrichValuesWithSelectLabels = _chunkCDWZ6X5Ujs.enrichValuesWithSelectLabels; exports.evaluateFormula = _chunkCDWZ6X5Ujs.evaluateFormula; exports.evaluateFormulaAttribute = _chunkCDWZ6X5Ujs.evaluateFormulaAttribute; exports.evaluateFormulaAttributeWithRelations = _chunkCDWZ6X5Ujs.evaluateFormulaAttributeWithRelations; exports.evaluateFormulaWithRelations = _chunkCDWZ6X5Ujs.evaluateFormulaWithRelations; exports.evaluateFormulaWithResult = _chunkCDWZ6X5Ujs.evaluateFormulaWithResult; exports.extractAttributeNames = _chunkCDWZ6X5Ujs.extractAttributeNames; exports.extractFormulaVariables = _chunkCDWZ6X5Ujs.extractFormulaVariables; exports.extractRelationNames = _chunkCDWZ6X5Ujs.extractRelationNames; exports.extractRelationReferences = _chunkCDWZ6X5Ujs.extractRelationReferences; exports.file = _chunkCDWZ6X5Ujs.file; exports.fileConfigSchema = _chunkCDWZ6X5Ujs.fileConfigSchema; exports.flattenRelationsForEval = _chunkCDWZ6X5Ujs.flattenRelationsForEval; exports.flow = _chunkCDWZ6X5Ujs.flow; exports.formatAttributeValue = _chunkCDWZ6X5Ujs.formatAttributeValue; exports.formatFormulaResult = _chunkCDWZ6X5Ujs.formatFormulaResult; exports.formatRecord = _chunkCDWZ6X5Ujs.formatRecord; exports.formatRecords = _chunkCDWZ6X5Ujs.formatRecords; exports.formula = _chunkCDWZ6X5Ujs.formula; exports.formulaConfigSchema = _chunkCDWZ6X5Ujs.formulaConfigSchema; exports.generateId = _chunkCDWZ6X5Ujs.generateId; exports.generatePrefixedId = _chunkCDWZ6X5Ujs.generatePrefixedId; exports.getAttributeConfigSchema = _chunkCDWZ6X5Ujs.getAttributeConfigSchema; exports.getContext = _chunkCDWZ6X5Ujs.getContext; exports.getMissingRequiredAttributes = _chunkCDWZ6X5Ujs.getMissingRequiredAttributes; exports.getPathDepth = _chunkCDWZ6X5Ujs.getPathDepth; exports.getRelationPath = _chunkCDWZ6X5Ujs.getRelationPath; exports.getSyncPreview = _chunkCDWZ6X5Ujs.getSyncPreview; exports.getSystemAttributeList = _chunkCDWZ6X5Ujs.getSystemAttributeList; exports.getTargetAttributeName = _chunkCDWZ6X5Ujs.getTargetAttributeName; exports.getTenantId = _chunkCDWZ6X5Ujs.getTenantId; exports.getUserId = _chunkCDWZ6X5Ujs.getUserId; exports.getViewSyncPreview = _chunkCDWZ6X5Ujs.getViewSyncPreview; exports.group = _chunkCDWZ6X5Ujs.group; exports.hasContext = _chunkCDWZ6X5Ujs.hasContext; exports.hasRelationReferences = _chunkCDWZ6X5Ujs.hasRelationReferences; exports.isActivityTab = isActivityTab; exports.isAdvancedFilterState = isAdvancedFilterState; exports.isCustomTab = isCustomTab; exports.isDefaultRole = _chunk36UBIXJNjs.isDefaultRole; exports.isFlowDefinition = isFlowDefinition; exports.isFlowPublished = isFlowPublished; exports.isForbiddenError = _chunkCDWZ6X5Ujs.isForbiddenError; exports.isFormTab = isFormTab; exports.isLabelExpression = _chunkCDWZ6X5Ujs.isLabelExpression; exports.isNoValueOperator = isNoValueOperator; exports.isNotFoundError = _chunkCDWZ6X5Ujs.isNotFoundError; exports.isNotesTab = isNotesTab; exports.isProtectedResourceError = _chunkCDWZ6X5Ujs.isProtectedResourceError; exports.isRecordComplete = _chunkCDWZ6X5Ujs.isRecordComplete; exports.isSchemaError = _chunkCDWZ6X5Ujs.isSchemaError; exports.isSystemAttribute = _chunkCDWZ6X5Ujs.isSystemAttribute; exports.isSystemAttributeObject = _chunkCDWZ6X5Ujs.isSystemAttributeObject; exports.isSystemFlow = isSystemFlow; exports.isTableTab = isTableTab; exports.isUniversalRelation = _chunkCDWZ6X5Ujs.isUniversalRelation; exports.isValidationError = _chunkCDWZ6X5Ujs.isValidationError; exports.location = _chunkCDWZ6X5Ujs.location; exports.locationConfigSchema = _chunkCDWZ6X5Ujs.locationConfigSchema; exports.multiselect = _chunkCDWZ6X5Ujs.multiselect; exports.multiselectConfigSchema = _chunkCDWZ6X5Ujs.multiselectConfigSchema; exports.notesPolicy = _chunkCDWZ6X5Ujs.notesPolicy; exports.number = _chunkCDWZ6X5Ujs.number; exports.numberConfigSchema = _chunkCDWZ6X5Ujs.numberConfigSchema; exports.object = _chunkCDWZ6X5Ujs.object; exports.parseAttributeConfig = _chunkCDWZ6X5Ujs.parseAttributeConfig; exports.parsePath = _chunkCDWZ6X5Ujs.parsePath; exports.pathHasManyCardinality = _chunkCDWZ6X5Ujs.pathHasManyCardinality; exports.phone = _chunkCDWZ6X5Ujs.phone; exports.phoneConfigSchema = _chunkCDWZ6X5Ujs.phoneConfigSchema; exports.rating = _chunkCDWZ6X5Ujs.rating; exports.ratingConfigSchema = _chunkCDWZ6X5Ujs.ratingConfigSchema; exports.registry = _chunkCDWZ6X5Ujs.registry; exports.relation = _chunkCDWZ6X5Ujs.relation; exports.relationConfigSchema = _chunkCDWZ6X5Ujs.relationConfigSchema; exports.renderLabelExpression = _chunkCDWZ6X5Ujs.renderLabelExpression; exports.resolveMultiplePaths = _chunkCDWZ6X5Ujs.resolveMultiplePaths; exports.resolveSingleValue = _chunkCDWZ6X5Ujs.resolveSingleValue; exports.richtext = _chunkCDWZ6X5Ujs.richtext; exports.richtextConfigSchema = _chunkCDWZ6X5Ujs.richtextConfigSchema; exports.rollup = _chunkCDWZ6X5Ujs.rollup; exports.rollupConfigSchema = _chunkCDWZ6X5Ujs.rollupConfigSchema; exports.runWithContext = _chunkCDWZ6X5Ujs.runWithContext; exports.safeParseAttributeConfig = _chunkCDWZ6X5Ujs.safeParseAttributeConfig; exports.select = _chunkCDWZ6X5Ujs.select; exports.selectConfigSchema = _chunkCDWZ6X5Ujs.selectConfigSchema; exports.status = _chunkCDWZ6X5Ujs.status; exports.statusConfigSchema = _chunkCDWZ6X5Ujs.statusConfigSchema; exports.syncAll = _chunkCDWZ6X5Ujs.syncAll; exports.syncNativeObjects = _chunkCDWZ6X5Ujs.syncNativeObjects; exports.syncNativeViews = _chunkCDWZ6X5Ujs.syncNativeViews; exports.text = _chunkCDWZ6X5Ujs.text; exports.textConfigSchema = _chunkCDWZ6X5Ujs.textConfigSchema; exports.textarea = _chunkCDWZ6X5Ujs.textarea; exports.textareaConfigSchema = _chunkCDWZ6X5Ujs.textareaConfigSchema; exports.toAdvancedFilterState = toAdvancedFilterState; exports.toSimpleFilterState = toSimpleFilterState; exports.traversePath = _chunkCDWZ6X5Ujs.traversePath; exports.user = _chunkCDWZ6X5Ujs.user; exports.userConfigSchema = _chunkCDWZ6X5Ujs.userConfigSchema; exports.validateAttribute = _chunkCDWZ6X5Ujs.validateAttribute; exports.validateAttributeConfig = _chunkCDWZ6X5Ujs.validateAttributeConfig; exports.validateDraft = _chunkCDWZ6X5Ujs.validateDraft; exports.validateDraftOrThrow = _chunkCDWZ6X5Ujs.validateDraftOrThrow; exports.validateFormulaExpression = _chunkCDWZ6X5Ujs.validateFormulaExpression; exports.validateObject = _chunkCDWZ6X5Ujs.validateObject; exports.validateObjectOrThrow = _chunkCDWZ6X5Ujs.validateObjectOrThrow; exports.validatePath = _chunkCDWZ6X5Ujs.validatePath; exports.verifyNativeObjectsSync = _chunkCDWZ6X5Ujs.verifyNativeObjectsSync; exports.verifyNativeViewsSync = _chunkCDWZ6X5Ujs.verifyNativeViewsSync; exports.view = _chunkCDWZ6X5Ujs.view; exports.viewRegistry = viewRegistry; exports.withTenantContext = _chunkCDWZ6X5Ujs.withTenantContext;
725
+
726
+
727
+
728
+ exports.ALL_SYSTEM_RESOURCES = _chunk36UBIXJNjs.ALL_SYSTEM_RESOURCES; exports.ActivityTabConfig = _chunk5WYGAQYHjs.ActivityTabConfig; exports.AttributeInUseError = _chunk5WYGAQYHjs.AttributeInUseError; exports.AttributeNotFoundError = _chunk5WYGAQYHjs.AttributeNotFoundError; exports.AuditService = _chunk5WYGAQYHjs.AuditService; exports.CustomTabConfig = _chunk5WYGAQYHjs.CustomTabConfig; exports.DEFAULT_LABEL_FALLBACK = _chunk5WYGAQYHjs.DEFAULT_LABEL_FALLBACK; exports.DEFAULT_ROLES = _chunk36UBIXJNjs.DEFAULT_ROLES; exports.DEFAULT_ROLE_DESCRIPTIONS = _chunk36UBIXJNjs.DEFAULT_ROLE_DESCRIPTIONS; exports.DEFAULT_ROLE_LABELS = _chunk36UBIXJNjs.DEFAULT_ROLE_LABELS; exports.DEFAULT_ROLE_PERMISSIONS = _chunk36UBIXJNjs.DEFAULT_ROLE_PERMISSIONS; exports.DirectTableTabConfig = _chunk5WYGAQYHjs.DirectTableTabConfig; exports.DuplicateError = _chunk5WYGAQYHjs.DuplicateError; exports.EMPTY_VALUE_PLACEHOLDER = _chunk5WYGAQYHjs.EMPTY_VALUE_PLACEHOLDER; exports.FileNotFoundError = _chunk5WYGAQYHjs.FileNotFoundError; exports.FileService = _chunk5WYGAQYHjs.FileService; exports.FlowBuilder = _chunk5WYGAQYHjs.FlowBuilder; exports.FlowPageBuilder = _chunk5WYGAQYHjs.FlowPageBuilder; exports.FlowRowBuilder = _chunk5WYGAQYHjs.FlowRowBuilder; exports.FlowService = _chunk5WYGAQYHjs.FlowService; exports.ForbiddenError = _chunk5WYGAQYHjs.ForbiddenError; exports.GeocodingService = _chunk5WYGAQYHjs.GeocodingService; exports.GlobalSearchService = _chunk5WYGAQYHjs.GlobalSearchService; exports.GroupBuilder = _chunk5WYGAQYHjs.GroupBuilder; exports.InvalidPathError = _chunk5WYGAQYHjs.InvalidPathError; exports.InverseTableTabConfig = _chunk5WYGAQYHjs.InverseTableTabConfig; exports.MaxDepthExceededError = _chunk5WYGAQYHjs.MaxDepthExceededError; exports.NOTES = NOTES; exports.NO_VALUE_OPERATORS = NO_VALUE_OPERATORS; exports.NoopGeocodingAdapter = _chunk5WYGAQYHjs.NoopGeocodingAdapter; exports.NoopHookRegistry = _chunk5WYGAQYHjs.NoopHookRegistry; exports.NotFoundError = _chunk5WYGAQYHjs.NotFoundError; exports.NotSystemObjectError = _chunk5WYGAQYHjs.NotSystemObjectError; exports.NotesTabConfig = _chunk5WYGAQYHjs.NotesTabConfig; exports.OPERATORS_BY_TYPE = OPERATORS_BY_TYPE; exports.ObjectBuilder = _chunk5WYGAQYHjs.ObjectBuilder; exports.ObjectNotFoundError = _chunk5WYGAQYHjs.ObjectNotFoundError; exports.ObjectReferencedError = _chunk5WYGAQYHjs.ObjectReferencedError; exports.ObjectSchemaService = _chunk5WYGAQYHjs.ObjectSchemaService; exports.PermissionService = _chunk5WYGAQYHjs.PermissionService; exports.PolicyRegistry = _chunk5WYGAQYHjs.PolicyRegistry; exports.PolicyViolationError = _chunk5WYGAQYHjs.PolicyViolationError; exports.ProtectedResourceError = _chunk5WYGAQYHjs.ProtectedResourceError; exports.ProtectedRoleError = _chunk5WYGAQYHjs.ProtectedRoleError; exports.QueryBuilder = _chunk5WYGAQYHjs.QueryBuilder; exports.QueryMultipleResultsError = _chunk5WYGAQYHjs.QueryMultipleResultsError; exports.QueryNoResultError = _chunk5WYGAQYHjs.QueryNoResultError; exports.RELATION_TARGET_ANY = _chunk5WYGAQYHjs.RELATION_TARGET_ANY; exports.RESERVED_ATTRIBUTE_NAMES = _chunk5WYGAQYHjs.RESERVED_ATTRIBUTE_NAMES; exports.RecordNotFoundError = _chunk5WYGAQYHjs.RecordNotFoundError; exports.RecordReferencedError = _chunk5WYGAQYHjs.RecordReferencedError; exports.RecordService = _chunk5WYGAQYHjs.RecordService; exports.RelationResolverService = _chunk5WYGAQYHjs.RelationResolverService; exports.RelationService = _chunk5WYGAQYHjs.RelationService; exports.RoleNotFoundError = _chunk5WYGAQYHjs.RoleNotFoundError; exports.RollupScheduler = _chunk5WYGAQYHjs.RollupScheduler; exports.RollupService = _chunk5WYGAQYHjs.RollupService; exports.SHORTCUT_TO_FILTER_OPERATOR = _chunk5WYGAQYHjs.SHORTCUT_TO_FILTER_OPERATOR; exports.SYSTEM_ATTRIBUTES = _chunk5WYGAQYHjs.SYSTEM_ATTRIBUTES; exports.SYSTEM_FIELD_NAMES = _chunk5WYGAQYHjs.SYSTEM_FIELD_NAMES; exports.SYSTEM_RESOURCES = _chunk36UBIXJNjs.SYSTEM_RESOURCES; exports.SYSTEM_RESOURCE_LABELS = _chunk36UBIXJNjs.SYSTEM_RESOURCE_LABELS; exports.SchemaError = _chunk5WYGAQYHjs.SchemaError; exports.SchemaErrorCode = _chunk5WYGAQYHjs.SchemaErrorCode; exports.SyncError = _chunk5WYGAQYHjs.SyncError; exports.TabBuilder = _chunk5WYGAQYHjs.TabBuilder; exports.TenantAwareRepository = _chunk5WYGAQYHjs.TenantAwareRepository; exports.TenantAwareService = _chunk5WYGAQYHjs.TenantAwareService; exports.TenantContextError = _chunk5WYGAQYHjs.TenantContextError; exports.UserProfileNotFoundError = _chunk5WYGAQYHjs.UserProfileNotFoundError; exports.UserProfileService = _chunk5WYGAQYHjs.UserProfileService; exports.UserService = _chunk5WYGAQYHjs.UserService; exports.ValidationError = _chunk5WYGAQYHjs.ValidationError; exports.ViewBuilder = _chunk5WYGAQYHjs.ViewBuilder; exports.ViewService = _chunk5WYGAQYHjs.ViewService; exports.asTenantId = _chunk5WYGAQYHjs.asTenantId; exports.asUserId = _chunk5WYGAQYHjs.asUserId; exports.attributeConfigSchemas = _chunk5WYGAQYHjs.attributeConfigSchemas; exports.buildAuditChanges = _chunk5WYGAQYHjs.buildAuditChanges; exports.checkbox = _chunk5WYGAQYHjs.checkbox; exports.checkboxConfigSchema = _chunk5WYGAQYHjs.checkboxConfigSchema; exports.computeRecordStatus = _chunk5WYGAQYHjs.computeRecordStatus; exports.createAttributeValidator = _chunk5WYGAQYHjs.createAttributeValidator; exports.createCheckboxValidator = _chunk5WYGAQYHjs.createCheckboxValidator; exports.createCurrencyValidator = _chunk5WYGAQYHjs.createCurrencyValidator; exports.createDateValidator = _chunk5WYGAQYHjs.createDateValidator; exports.createDefaultState = _chunk5WYGAQYHjs.createDefaultState; exports.createDraftValidator = _chunk5WYGAQYHjs.createDraftValidator; exports.createFileValidator = _chunk5WYGAQYHjs.createFileValidator; exports.createFormulaValidator = _chunk5WYGAQYHjs.createFormulaValidator; exports.createLocationValidator = _chunk5WYGAQYHjs.createLocationValidator; exports.createMockAdapter = _chunk5WYGAQYHjs.createMockAdapter; exports.createMultiRelationValidator = _chunk5WYGAQYHjs.createMultiRelationValidator; exports.createMultiselectValidator = _chunk5WYGAQYHjs.createMultiselectValidator; exports.createNumberValidator = _chunk5WYGAQYHjs.createNumberValidator; exports.createObjectValidator = _chunk5WYGAQYHjs.createObjectValidator; exports.createPhoneValidator = _chunk5WYGAQYHjs.createPhoneValidator; exports.createQueryBuilder = _chunk5WYGAQYHjs.createQueryBuilder; exports.createRatingValidator = _chunk5WYGAQYHjs.createRatingValidator; exports.createRelationValidator = _chunk5WYGAQYHjs.createRelationValidator; exports.createRichtextValidator = _chunk5WYGAQYHjs.createRichtextValidator; exports.createRollupValidator = _chunk5WYGAQYHjs.createRollupValidator; exports.createSelectValidator = _chunk5WYGAQYHjs.createSelectValidator; exports.createSingleRelationValidator = _chunk5WYGAQYHjs.createSingleRelationValidator; exports.createStatusValidator = _chunk5WYGAQYHjs.createStatusValidator; exports.createTextAreaValidator = _chunk5WYGAQYHjs.createTextAreaValidator; exports.createTextValidator = _chunk5WYGAQYHjs.createTextValidator; exports.createUserValidator = _chunk5WYGAQYHjs.createUserValidator; exports.currency = _chunk5WYGAQYHjs.currency; exports.currencyConfigSchema = _chunk5WYGAQYHjs.currencyConfigSchema; exports.date = _chunk5WYGAQYHjs.date; exports.dateConfigSchema = _chunk5WYGAQYHjs.dateConfigSchema; exports.defaultPolicyRegistry = _chunk5WYGAQYHjs.defaultPolicyRegistry; exports.enrichValuesWithSelectLabels = _chunk5WYGAQYHjs.enrichValuesWithSelectLabels; exports.evaluateFormula = _chunk5WYGAQYHjs.evaluateFormula; exports.evaluateFormulaAttribute = _chunk5WYGAQYHjs.evaluateFormulaAttribute; exports.evaluateFormulaAttributeWithRelations = _chunk5WYGAQYHjs.evaluateFormulaAttributeWithRelations; exports.evaluateFormulaWithRelations = _chunk5WYGAQYHjs.evaluateFormulaWithRelations; exports.evaluateFormulaWithResult = _chunk5WYGAQYHjs.evaluateFormulaWithResult; exports.extractAttributeNames = _chunk5WYGAQYHjs.extractAttributeNames; exports.extractFormulaVariables = _chunk5WYGAQYHjs.extractFormulaVariables; exports.extractRelationNames = _chunk5WYGAQYHjs.extractRelationNames; exports.extractRelationReferences = _chunk5WYGAQYHjs.extractRelationReferences; exports.file = _chunk5WYGAQYHjs.file; exports.fileConfigSchema = _chunk5WYGAQYHjs.fileConfigSchema; exports.flattenRelationsForEval = _chunk5WYGAQYHjs.flattenRelationsForEval; exports.flow = _chunk5WYGAQYHjs.flow; exports.formatAttributeValue = _chunk5WYGAQYHjs.formatAttributeValue; exports.formatFormulaResult = _chunk5WYGAQYHjs.formatFormulaResult; exports.formatRecord = _chunk5WYGAQYHjs.formatRecord; exports.formatRecords = _chunk5WYGAQYHjs.formatRecords; exports.formula = _chunk5WYGAQYHjs.formula; exports.formulaConfigSchema = _chunk5WYGAQYHjs.formulaConfigSchema; exports.generateId = _chunk5WYGAQYHjs.generateId; exports.generatePrefixedId = _chunk5WYGAQYHjs.generatePrefixedId; exports.getAttributeConfigSchema = _chunk5WYGAQYHjs.getAttributeConfigSchema; exports.getContext = _chunk5WYGAQYHjs.getContext; exports.getMissingRequiredAttributes = _chunk5WYGAQYHjs.getMissingRequiredAttributes; exports.getPathDepth = _chunk5WYGAQYHjs.getPathDepth; exports.getRelationPath = _chunk5WYGAQYHjs.getRelationPath; exports.getSyncPreview = _chunk5WYGAQYHjs.getSyncPreview; exports.getSystemAttributeList = _chunk5WYGAQYHjs.getSystemAttributeList; exports.getTargetAttributeName = _chunk5WYGAQYHjs.getTargetAttributeName; exports.getTenantId = _chunk5WYGAQYHjs.getTenantId; exports.getUserId = _chunk5WYGAQYHjs.getUserId; exports.getViewSyncPreview = _chunk5WYGAQYHjs.getViewSyncPreview; exports.group = _chunk5WYGAQYHjs.group; exports.hasContext = _chunk5WYGAQYHjs.hasContext; exports.hasRelationReferences = _chunk5WYGAQYHjs.hasRelationReferences; exports.isActivityTab = isActivityTab; exports.isAdvancedFilterState = isAdvancedFilterState; exports.isCustomTab = isCustomTab; exports.isDefaultRole = _chunk36UBIXJNjs.isDefaultRole; exports.isDirectTableTab = isDirectTableTab; exports.isFlowDefinition = isFlowDefinition; exports.isFlowPublished = isFlowPublished; exports.isForbiddenError = _chunk5WYGAQYHjs.isForbiddenError; exports.isFormTab = isFormTab; exports.isInverseTableTab = isInverseTableTab; exports.isLabelExpression = _chunk5WYGAQYHjs.isLabelExpression; exports.isNoValueOperator = isNoValueOperator; exports.isNotFoundError = _chunk5WYGAQYHjs.isNotFoundError; exports.isNotesTab = isNotesTab; exports.isProtectedResourceError = _chunk5WYGAQYHjs.isProtectedResourceError; exports.isRecordComplete = _chunk5WYGAQYHjs.isRecordComplete; exports.isSchemaError = _chunk5WYGAQYHjs.isSchemaError; exports.isSystemAttribute = _chunk5WYGAQYHjs.isSystemAttribute; exports.isSystemAttributeObject = _chunk5WYGAQYHjs.isSystemAttributeObject; exports.isSystemFlow = isSystemFlow; exports.isTableTab = isTableTab; exports.isUniversalRelation = _chunk5WYGAQYHjs.isUniversalRelation; exports.isValidationError = _chunk5WYGAQYHjs.isValidationError; exports.location = _chunk5WYGAQYHjs.location; exports.locationConfigSchema = _chunk5WYGAQYHjs.locationConfigSchema; exports.multiselect = _chunk5WYGAQYHjs.multiselect; exports.multiselectConfigSchema = _chunk5WYGAQYHjs.multiselectConfigSchema; exports.notesPolicy = _chunk5WYGAQYHjs.notesPolicy; exports.number = _chunk5WYGAQYHjs.number; exports.numberConfigSchema = _chunk5WYGAQYHjs.numberConfigSchema; exports.object = _chunk5WYGAQYHjs.object; exports.parseAttributeConfig = _chunk5WYGAQYHjs.parseAttributeConfig; exports.parsePath = _chunk5WYGAQYHjs.parsePath; exports.pathHasManyCardinality = _chunk5WYGAQYHjs.pathHasManyCardinality; exports.phone = _chunk5WYGAQYHjs.phone; exports.phoneConfigSchema = _chunk5WYGAQYHjs.phoneConfigSchema; exports.rating = _chunk5WYGAQYHjs.rating; exports.ratingConfigSchema = _chunk5WYGAQYHjs.ratingConfigSchema; exports.registry = _chunk5WYGAQYHjs.registry; exports.relation = _chunk5WYGAQYHjs.relation; exports.relationConfigSchema = _chunk5WYGAQYHjs.relationConfigSchema; exports.renderLabelExpression = _chunk5WYGAQYHjs.renderLabelExpression; exports.resolveMultiplePaths = _chunk5WYGAQYHjs.resolveMultiplePaths; exports.resolveSingleValue = _chunk5WYGAQYHjs.resolveSingleValue; exports.richtext = _chunk5WYGAQYHjs.richtext; exports.richtextConfigSchema = _chunk5WYGAQYHjs.richtextConfigSchema; exports.rollup = _chunk5WYGAQYHjs.rollup; exports.rollupConfigSchema = _chunk5WYGAQYHjs.rollupConfigSchema; exports.runWithContext = _chunk5WYGAQYHjs.runWithContext; exports.safeParseAttributeConfig = _chunk5WYGAQYHjs.safeParseAttributeConfig; exports.select = _chunk5WYGAQYHjs.select; exports.selectConfigSchema = _chunk5WYGAQYHjs.selectConfigSchema; exports.status = _chunk5WYGAQYHjs.status; exports.statusConfigSchema = _chunk5WYGAQYHjs.statusConfigSchema; exports.syncAll = _chunk5WYGAQYHjs.syncAll; exports.syncNativeObjects = _chunk5WYGAQYHjs.syncNativeObjects; exports.syncNativeViews = _chunk5WYGAQYHjs.syncNativeViews; exports.text = _chunk5WYGAQYHjs.text; exports.textConfigSchema = _chunk5WYGAQYHjs.textConfigSchema; exports.textarea = _chunk5WYGAQYHjs.textarea; exports.textareaConfigSchema = _chunk5WYGAQYHjs.textareaConfigSchema; exports.toAdvancedFilterState = toAdvancedFilterState; exports.toSimpleFilterState = toSimpleFilterState; exports.traversePath = _chunk5WYGAQYHjs.traversePath; exports.user = _chunk5WYGAQYHjs.user; exports.userConfigSchema = _chunk5WYGAQYHjs.userConfigSchema; exports.validateAttribute = _chunk5WYGAQYHjs.validateAttribute; exports.validateAttributeConfig = _chunk5WYGAQYHjs.validateAttributeConfig; exports.validateDraft = _chunk5WYGAQYHjs.validateDraft; exports.validateDraftOrThrow = _chunk5WYGAQYHjs.validateDraftOrThrow; exports.validateFormulaExpression = _chunk5WYGAQYHjs.validateFormulaExpression; exports.validateObject = _chunk5WYGAQYHjs.validateObject; exports.validateObjectOrThrow = _chunk5WYGAQYHjs.validateObjectOrThrow; exports.validatePath = _chunk5WYGAQYHjs.validatePath; exports.verifyNativeObjectsSync = _chunk5WYGAQYHjs.verifyNativeObjectsSync; exports.verifyNativeViewsSync = _chunk5WYGAQYHjs.verifyNativeViewsSync; exports.view = _chunk5WYGAQYHjs.view; exports.viewRegistry = viewRegistry; exports.withTenantContext = _chunk5WYGAQYHjs.withTenantContext;
package/dist/index.mjs CHANGED
@@ -5,6 +5,7 @@ import {
5
5
  AuditService,
6
6
  CustomTabConfig,
7
7
  DEFAULT_LABEL_FALLBACK,
8
+ DirectTableTabConfig,
8
9
  DuplicateError,
9
10
  EMPTY_VALUE_PLACEHOLDER,
10
11
  FileNotFoundError,
@@ -18,6 +19,7 @@ import {
18
19
  GlobalSearchService,
19
20
  GroupBuilder,
20
21
  InvalidPathError,
22
+ InverseTableTabConfig,
21
23
  MaxDepthExceededError,
22
24
  NoopGeocodingAdapter,
23
25
  NoopHookRegistry,
@@ -53,7 +55,6 @@ import {
53
55
  SchemaErrorCode,
54
56
  SyncError,
55
57
  TabBuilder,
56
- TableTabConfig,
57
58
  TenantAwareRepository,
58
59
  TenantAwareService,
59
60
  TenantContextError,
@@ -200,7 +201,7 @@ import {
200
201
  verifyNativeViewsSync,
201
202
  view,
202
203
  withTenantContext
203
- } from "./chunk-C4QEZGBF.mjs";
204
+ } from "./chunk-E2CTZTQX.mjs";
204
205
  import {
205
206
  ALL_SYSTEM_RESOURCES,
206
207
  DEFAULT_ROLES,
@@ -333,6 +334,12 @@ function isFormTab(tab) {
333
334
  function isTableTab(tab) {
334
335
  return tab.type === "table";
335
336
  }
337
+ function isDirectTableTab(tab) {
338
+ return tab.type === "table" && tab.relationMode === "direct";
339
+ }
340
+ function isInverseTableTab(tab) {
341
+ return tab.type === "table" && tab.relationMode === "inverse";
342
+ }
336
343
  function isCustomTab(tab) {
337
344
  return tab.type === "custom";
338
345
  }
@@ -501,6 +508,7 @@ export {
501
508
  DEFAULT_ROLE_DESCRIPTIONS,
502
509
  DEFAULT_ROLE_LABELS,
503
510
  DEFAULT_ROLE_PERMISSIONS,
511
+ DirectTableTabConfig,
504
512
  DuplicateError,
505
513
  EMPTY_VALUE_PLACEHOLDER,
506
514
  FileNotFoundError,
@@ -514,6 +522,7 @@ export {
514
522
  GlobalSearchService,
515
523
  GroupBuilder,
516
524
  InvalidPathError,
525
+ InverseTableTabConfig,
517
526
  MaxDepthExceededError,
518
527
  NOTES,
519
528
  NO_VALUE_OPERATORS,
@@ -554,7 +563,6 @@ export {
554
563
  SchemaErrorCode,
555
564
  SyncError,
556
565
  TabBuilder,
557
- TableTabConfig,
558
566
  TenantAwareRepository,
559
567
  TenantAwareService,
560
568
  TenantContextError,
@@ -642,10 +650,12 @@ export {
642
650
  isAdvancedFilterState,
643
651
  isCustomTab,
644
652
  isDefaultRole,
653
+ isDirectTableTab,
645
654
  isFlowDefinition,
646
655
  isFlowPublished,
647
656
  isForbiddenError,
648
657
  isFormTab,
658
+ isInverseTableTab,
649
659
  isLabelExpression,
650
660
  isNoValueOperator,
651
661
  isNotFoundError,