@raytio/types 8.3.0 → 8.3.2
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/README.md +27 -8
- package/dist/raytio.d.ts +5 -1
- package/dist/schema.d.ts +86 -11
- package/package.json +1 -1
- package/src/raytio.ts +5 -1
- package/src/schema.ts +86 -9
package/README.md
CHANGED
|
@@ -70,6 +70,7 @@ Hovering over the type in VSCode will display documentation and available proper
|
|
|
70
70
|
- [InstanceNodeKey](#instancenodekey)
|
|
71
71
|
- [InstanceWithoutData](#instancewithoutdata)
|
|
72
72
|
- [KId](#kid)
|
|
73
|
+
- [KanbanBoard](#kanbanboard)
|
|
73
74
|
- [LId](#lid)
|
|
74
75
|
- [LOCId](#locid)
|
|
75
76
|
- [Link](#link)
|
|
@@ -346,7 +347,7 @@ not exported. Attributes that are identical in both client schema & server schem
|
|
|
346
347
|
| :------ | :------ | :------ |
|
|
347
348
|
| `description` | `string` | - |
|
|
348
349
|
| `description_decorator?` | ``"md"`` | **`Deprecated`** Markdown is now rendered by default for all descriptions. This property is no longer needed. |
|
|
349
|
-
| `display?` | { `compact_table?`: `boolean` ; `expand?`: { `fields`: `string`[] ; `label`: `string` }[] ; `filters?`: { `name`: `string` ; `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] }[] ; `head_main?`: { `fields`: `string`[] ; `format?`: `string` } ; `head_sub?`: { `fields`: `string`[] ; `format?`: `string` } ; `kanban?`:
|
|
350
|
+
| `display?` | { `compact_table?`: `boolean` ; `expand?`: { `fields`: `string`[] ; `label`: `string` }[] ; `filters?`: { `name`: `string` ; `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] }[] ; `head_main?`: { `fields`: `string`[] ; `format?`: `string` } ; `head_sub?`: { `fields`: `string`[] ; `format?`: `string` } ; `kanban?`: [`KanbanBoard`](#kanbanboard) \| [`KanbanBoard`](#kanbanboard)[] ; `tabular?`: { `fields`: `string`[] } ; `views?`: { `columnPrefs?`: { `id`: `string` ; `visible`: `boolean` }[] ; `contentDensity?`: ``"comfortable"`` \| ``"compact"`` ; `filter?`: { `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] } ; `name`: `string` ; `pageSize?`: `number` ; `sorting?`: { `isDescending`: `boolean` ; `sortingColumn`: `string` } \| ``null`` ; `stickyColumns?`: { `first`: `number` ; `last`: `number` } ; `stripedRows?`: `boolean` ; `wrapLines?`: `boolean` }[] } | - |
|
|
350
351
|
| `display.compact_table?` | `boolean` | determines if profile pages should display using compacted 'MiniPO' view or deafult view |
|
|
351
352
|
| `display.expand?` | { `fields`: `string`[] ; `label`: `string` }[] | list of fields that should not be shown by default, unless you expand a collpase section which has a name from the label property. Array because there could be multiple expand groups |
|
|
352
353
|
| `display.filters?` | { `name`: `string` ; `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] }[] | Pre-defined filter presets provided by the schema author. These appear as "Default filters" in the admin table UI and cannot be deleted by users (unlike user-saved filters). Each token's `propertyKey` must match a key in `properties`. Valid operators: `=`, `!=`, `:`, `!:`, `>`, `<`, `>=`, `<=` |
|
|
@@ -356,12 +357,10 @@ not exported. Attributes that are identical in both client schema & server schem
|
|
|
356
357
|
| `display.head_sub?` | { `fields`: `string`[] ; `format?`: `string` } | list of fields to be considered the subheader of the PO fields joined with a space unless `format` format string is supplied |
|
|
357
358
|
| `display.head_sub.fields` | `string`[] | - |
|
|
358
359
|
| `display.head_sub.format?` | `string` | - |
|
|
359
|
-
| `display.kanban?` |
|
|
360
|
-
| `display.kanban.card_fields?` | `string`[] | Additional fields displayed on each card |
|
|
361
|
-
| `display.kanban.column_field?` | `string` | Field that determines which column a card belongs to |
|
|
362
|
-
| `display.kanban.title_field?` | `string` | Field displayed as the card title |
|
|
360
|
+
| `display.kanban?` | [`KanbanBoard`](#kanbanboard) \| [`KanbanBoard`](#kanbanboard)[] | Kanban board configuration for the admin dashboard. Either a single board (legacy form) or an array of named boards. See packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout. |
|
|
363
361
|
| `display.tabular?` | { `fields`: `string`[] } | By default, the admin dashboard shows columns for all fields in listed in `head_main`. In rare cases you can use this property to specify a different set of fields to show to admins by default. |
|
|
364
362
|
| `display.tabular.fields` | `string`[] | - |
|
|
363
|
+
| `display.views?` | { `columnPrefs?`: { `id`: `string` ; `visible`: `boolean` }[] ; `contentDensity?`: ``"comfortable"`` \| ``"compact"`` ; `filter?`: { `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] } ; `name`: `string` ; `pageSize?`: `number` ; `sorting?`: { `isDescending`: `boolean` ; `sortingColumn`: `string` } \| ``null`` ; `stickyColumns?`: { `first`: `number` ; `last`: `number` } ; `stripedRows?`: `boolean` ; `wrapLines?`: `boolean` }[] | Pre-defined view presets provided by the schema author. A view bundles filter, sorting, column visibility/order, and display settings (page size, density, etc.) into a named configuration. These appear as "Default views" in the admin table UI and cannot be deleted by users (unlike user-saved views). Every field except `name` is optional. When applied, fields the view does not specify leave the user's current preference untouched. This lets a schema author define partial views (e.g. just sorting + columns). |
|
|
365
364
|
| `i18n?` | { `[locale: string]`: { `[fieldNameOrGroupName: string]`: [`ServerSchemaField`](#serverschemafield) & { `title_plural?`: `string` }; `$loading_create_sub_obj`: { `title`: `string` } ; `$loading_delete_pending_ver`: { `title`: `string` } ; `$loading_extract`: { `title`: `string` } ; `$loading_link_to_person`: { `title`: `string` } ; `$loading_long_verification_message`: { `description?`: `string` ; `title?`: `string` } ; `$loading_pending_ver_resubmit`: { `title`: `string` } ; `$loading_permission`: { `title`: `string` } ; `$loading_save`: { `title`: `string` } ; `$loading_update`: { `title`: `string` } ; `$loading_upload`: { `title`: `string` } ; `$loading_verify`: { `title`: `string` } ; `$schema`: { `description?`: `string` ; `title`: `string` ; `title_plural?`: `string` } }; } | - |
|
|
366
365
|
| `onboard_properties?` | { `[namespace: string]`: { `[version: string]`: { `[endpoint: string]`: `Record`<`string`, `unknown`\>[] \| `undefined`; } \| `undefined`; } \| `object` \| `string`[] \| `string` \| `undefined`; `actions?`: { `[key: string]`: `any`; `create_access_application_link?`: { `properties`: `Record`<`string`, `unknown`\> ; `store_as?`: `string` }[] ; `create_organization?`: { `properties`: `Json` ; `store_as?`: `string` }[] } ; `db?`: { `[version: string]`: { `[endpoint: string]`: `Record`<`string`, `unknown`\>[] \| `undefined`; } \| `undefined`; `v1?`: { `[endpoint: string]`: `Record`<`string`, `unknown`\>[] \| `undefined`; `dsm_access_applications?`: `Omit`<[`AA`](#aa), ``"org_id"`` \| ``"a_id"``\> & { `links?`: { `description`: `string` ; `wizardConfig`: `Omit`<[`WizardConfig`](#wizardconfig), ``"a_id"``\> }[] ; `org_id?`: `string` }[] ; `dsm_node_relationships?`: { `from`: `string` ; `properties?`: `Record`<`string`, `unknown`\> ; `to`: `string` ; `type`: `string` }[] ; `dsm_nodes?`: { `labels?`: `string`[] ; `properties`: `Record`<`string`, `unknown`\> ; `schema_name?`: [`SchemaName`](#schemaname) }[] ; `xrm_merchants?`: `Record`<`string`, `unknown`\>[] } ; `v2?`: { `[endpoint: string]`: `Record`<`string`, `unknown`\>[] \| `undefined`; } } ; `execution_order?`: `string`[] ; `return_to?`: `string` } | only the schema used for the onboarding wizard have this property |
|
|
367
366
|
| `onboard_properties.actions?` | { `[key: string]`: `any`; `create_access_application_link?`: { `properties`: `Record`<`string`, `unknown`\> ; `store_as?`: `string` }[] ; `create_organization?`: { `properties`: `Json` ; `store_as?`: `string` }[] } | High-level actions for complex workflows. create_organization: Single object for creating one organization create_access_application_link: Array for creating multiple links |
|
|
@@ -577,6 +576,25 @@ A `k_id` (also called a `aack_id` or a `publicKeyId`) is the ID of an AA's publi
|
|
|
577
576
|
|
|
578
577
|
___
|
|
579
578
|
|
|
579
|
+
### KanbanBoard
|
|
580
|
+
|
|
581
|
+
Ƭ **KanbanBoard**: `Object`
|
|
582
|
+
|
|
583
|
+
Configuration for a single named kanban board.
|
|
584
|
+
|
|
585
|
+
#### Type declaration
|
|
586
|
+
|
|
587
|
+
| Name | Type | Description |
|
|
588
|
+
| :------ | :------ | :------ |
|
|
589
|
+
| `card_fields?` | `string`[] | Additional fields displayed on each card. |
|
|
590
|
+
| `column_field?` | `string` | Field that determines which column a card belongs to. |
|
|
591
|
+
| `column_field_sort?` | ``"ascending"`` \| ``"descending"`` | Default ordering of the columns themselves, by their distinct `column_field` values. |
|
|
592
|
+
| `kanban_name?` | `string` | Human-readable board name shown in the board selector; should be unique within the schema. |
|
|
593
|
+
| `title_field?` | `string` | Field displayed as the card title. |
|
|
594
|
+
| `y_field?` | `string` | Name of a numeric record field used to order cards vertically within a column. Optional. See packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout. |
|
|
595
|
+
|
|
596
|
+
___
|
|
597
|
+
|
|
580
598
|
### LId
|
|
581
599
|
|
|
582
600
|
Ƭ **LId**: `StringWithIdentity`<``"LId"``\>
|
|
@@ -636,7 +654,7 @@ ___
|
|
|
636
654
|
| `image_src?` | `string` | Icon source in format `icon:{AntDesignIconName}` (e.g., `icon:CameraOutlined`) |
|
|
637
655
|
| `key` | `string` \| `number` | - |
|
|
638
656
|
| `label?` | `string` \| `number` | Used in Antd Cascader |
|
|
639
|
-
| `lookup_group?` | `string` | Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped. |
|
|
657
|
+
| `lookup_group?` | `string` | Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped. Translated client-side via the `lookup_group` entries in `fnd_i18n_entries` (see `LookupGroupLabel`). |
|
|
640
658
|
| `requires_2FA?` | `boolean` | used in AkahuDynamicSection only |
|
|
641
659
|
| `value` | `string` \| `number` | - |
|
|
642
660
|
|
|
@@ -993,7 +1011,7 @@ ___
|
|
|
993
1011
|
|
|
994
1012
|
### Schema
|
|
995
1013
|
|
|
996
|
-
Ƭ **Schema**: [`CommonFields`](#commonfields)<`never`\> & [`CommonSchemaAttributes`](#commonschemaattributes) & { `clientLocale?`: `string` ; `conditionalTags?`: [`ConditionalTags`](#conditionaltags)[] ; `database?`: { `method?`: ``"POST"`` \| ``"PATCH"`` \| ``"DELETE"`` ; `path?`: `string` ; `primary_key`: `string` ; `query_parameters?`: `string` ; `return_to?`: [`SchemaName`](#schemaname) ; `select?`: `string` ; `table?`: `string` } ; `groupNames?`: `Record`<`string`, `string`\> ; `group_title?`: `string` ; `groups?`: { `order?`: `string`[] } ; `isProfileSchema?`: `boolean` ; `isSpSchema?`: `boolean` ; `name`: [`SchemaName`](#schemaname) ; `properties`: { `[fieldName: string]`: [`SchemaField`](#schemafield); } ; `required?`: (`string` \| [`ConditionallyRequired`](#conditionallyrequired))[] ; `timing?`: `Record`<``"extract"`` \| ``"live_person"`` \| ``"verify_pending_delay"``, `number`\> ; `type?`: [`DataTypes`](#datatypes) ; `verified_fields?`: (`string` \| [`ConditionallyRequired`](#conditionallyrequired))[] ; `version`: `string` ; `wasExpandedByClient?`: `boolean` }
|
|
1014
|
+
Ƭ **Schema**: [`CommonFields`](#commonfields)<`never`\> & [`CommonSchemaAttributes`](#commonschemaattributes) & { `clientLocale?`: `string` ; `conditionalTags?`: [`ConditionalTags`](#conditionaltags)[] ; `database?`: { `method?`: ``"POST"`` \| ``"PATCH"`` \| ``"DELETE"`` ; `path?`: `string` ; `primary_key`: `string` ; `query_parameters?`: `string` ; `return_to?`: [`SchemaName`](#schemaname) ; `select?`: `string` ; `table?`: `string` } ; `groupNames?`: `Record`<`string`, `string`\> ; `group_title?`: `string` ; `groups?`: { `order?`: `string`[] } ; `isProfileSchema?`: `boolean` ; `isSpSchema?`: `boolean` ; `merchant_id?`: [`MId`](#mid) ; `name`: [`SchemaName`](#schemaname) ; `properties`: { `[fieldName: string]`: [`SchemaField`](#schemafield); } ; `required?`: (`string` \| [`ConditionallyRequired`](#conditionallyrequired))[] ; `timing?`: `Record`<``"extract"`` \| ``"live_person"`` \| ``"verify_pending_delay"``, `number`\> ; `type?`: [`DataTypes`](#datatypes) ; `verified_fields?`: (`string` \| [`ConditionallyRequired`](#conditionallyrequired))[] ; `version`: `string` ; `wasExpandedByClient?`: `boolean` }
|
|
997
1015
|
|
|
998
1016
|
Raytio's variant of JSON Schema, as used by the client. It is a modified version
|
|
999
1017
|
of what the API returns.
|
|
@@ -1056,7 +1074,7 @@ ___
|
|
|
1056
1074
|
|
|
1057
1075
|
### SchemaFieldTag
|
|
1058
1076
|
|
|
1059
|
-
Ƭ **SchemaFieldTag**: ``"password"`` \| \`group:${string}\` \| \`upload-group:${string}\` \| ``"display:stars"`` \| ``"display:no_autofill"`` \| ``"display:currency"`` \| ``"display:cascade"`` \| ``"display:survey"`` \| ``"display:quoting"`` \| ``"display:customModal"`` \| ``"display:mask"`` \| \`display:replace:('${string}', '${string}')\` \| ``"display:terms_conditions"`` \| \`display:main\_media:${string}\` \| ``"display:markdown"`` \| ``"display:content-block"`` \| ``"display:info"`` \| ``"display:warning"`` \| ``"display:error"`` \| ``"date_component:day"`` \| ``"date_component:month"`` \| ``"date_component:year"`` \| ``"action:allow_copy"`` \| ``"action:allow_unreplace"`` \| ``"action:allow_password_compromise_check"`` \| ``"action:client_upload"`` \| ``"action:hash"`` \| ``"action:require_webauthn"`` \| ``"action:generate_pepper:"`` \| \`action:timeout:${number}\` \| \`action:server-search:${string}\` \| ``"verify:show_if_pending"`` \| ``"special:hide_select_behind_button"`` \| ``"type:capture_geolocation"`` \| ``"type:extract_required"``
|
|
1077
|
+
Ƭ **SchemaFieldTag**: ``"password"`` \| \`group:${string}\` \| \`upload-group:${string}\` \| ``"display:stars"`` \| ``"display:no_autofill"`` \| ``"display:currency"`` \| \`display:currency:${string}\` \| ``"display:checkbox"`` \| ``"display:radio"`` \| ``"display:cascade"`` \| ``"display:survey"`` \| ``"display:quoting"`` \| ``"display:customModal"`` \| ``"display:mask"`` \| \`display:replace:('${string}', '${string}')\` \| ``"display:terms_conditions"`` \| \`display:main\_media:${string}\` \| ``"display:markdown"`` \| ``"display:content-block"`` \| ``"display:info"`` \| ``"display:warning"`` \| ``"display:error"`` \| ``"date_component:day"`` \| ``"date_component:month"`` \| ``"date_component:year"`` \| ``"action:allow_copy"`` \| ``"action:allow_unreplace"`` \| ``"action:allow_password_compromise_check"`` \| ``"action:client_upload"`` \| ``"action:hash"`` \| ``"action:require_webauthn"`` \| ``"action:generate_pepper:"`` \| \`action:timeout:${number}\` \| \`action:server-search:${string}\` \| ``"verify:show_if_pending"`` \| ``"special:hide_select_behind_button"`` \| ``"type:capture_geolocation"`` \| ``"type:extract_required"``
|
|
1060
1078
|
|
|
1061
1079
|
___
|
|
1062
1080
|
|
|
@@ -1350,6 +1368,7 @@ This is what's returned by the API
|
|
|
1350
1368
|
| `end_date` | `string` | ISO Date. If this tag exists, the schema is deprecated. |
|
|
1351
1369
|
| `extends_schema_name?` | [`SchemaName`](#schemaname) \| ``null`` | Base schema to extend (same tenant). NULL = not an extension. |
|
|
1352
1370
|
| `extends_schema_version?` | `string` \| ``null`` | Pin to specific base schema version. NULL = use version_current. |
|
|
1371
|
+
| `merchant_id?` | [`MId`](#mid) | The merchant this schema belongs to. Always present for merchant-type (`ms`) schemas; absent for all other schema types. |
|
|
1353
1372
|
| `resource_group?` | `string` | CommonFields row metadata — the polymorphic entity this schema maps to. |
|
|
1354
1373
|
| `resource_name?` | `string` | - |
|
|
1355
1374
|
| `schema` | [`CommonSchemaAttributes`](#commonschemaattributes) & { `$id?`: `string` ; `$schema?`: `string` ; `allOf?`: { `$ref?`: `string` ; `if?`: `Partial`<[`WrappedSchema`](#wrappedschema)[``"schema"``]\> ; `then?`: `Partial`<[`WrappedSchema`](#wrappedschema)[``"schema"``]\> }[] ; `definitions?`: `Record`<`string`, { `$ref`: [`Urn`](#urn) }\> ; `properties`: { `[fieldName: string]`: [`ServerSchemaField`](#serverschemafield); } ; `required?`: `string`[] ; `verified_fields?`: `string`[] } | - |
|
package/dist/raytio.d.ts
CHANGED
|
@@ -161,7 +161,11 @@ export type Lookup = {
|
|
|
161
161
|
requires_2FA?: boolean;
|
|
162
162
|
/** Sort order within a lookup set. NULL = unordered. */
|
|
163
163
|
display_order?: number;
|
|
164
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped.
|
|
166
|
+
* Translated client-side via the `lookup_group` entries in
|
|
167
|
+
* `fnd_i18n_entries` (see `LookupGroupLabel`).
|
|
168
|
+
*/
|
|
165
169
|
lookup_group?: string;
|
|
166
170
|
};
|
|
167
171
|
export type AATag = "type:client_only" | "type:share_with_new_user" | "Merchant";
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AA, CommonFields, DataTypes, Json, SchemaName, Urn } from "./raytio";
|
|
1
|
+
import type { AA, CommonFields, DataTypes, Json, MId, SchemaName, Urn } from "./raytio";
|
|
2
2
|
import type { WizardConfig } from "./wizard";
|
|
3
3
|
/** should be renamed since this applies to ConditionallyVerifiable */
|
|
4
4
|
export type ConditionallyRequired = {
|
|
@@ -14,7 +14,7 @@ export type ConditionalTags = {
|
|
|
14
14
|
[fieldName: string]: (string | number | boolean)[];
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
export type SchemaFieldTag = "password" | `group:${string}` | `upload-group:${string}` | "display:stars" | "display:no_autofill" | "display:currency" | "display:cascade" | "display:survey" | "display:quoting" | "display:customModal" | "display:mask" | `display:replace:('${string}', '${string}')` | "display:terms_conditions" | `display:main_media:${string}` | "display:markdown" | "display:content-block" | "display:info" | "display:warning" | "display:error" | "date_component:day" | "date_component:month" | "date_component:year" | "action:allow_copy" | "action:allow_unreplace" | "action:allow_password_compromise_check" | "action:client_upload" | "action:hash" | "action:require_webauthn" | `action:generate_pepper:` | `action:timeout:${number}` | `action:server-search:${string}` | "verify:show_if_pending" | "special:hide_select_behind_button" | "type:capture_geolocation" | "type:extract_required";
|
|
17
|
+
export type SchemaFieldTag = "password" | `group:${string}` | `upload-group:${string}` | "display:stars" | "display:no_autofill" | "display:currency" | `display:currency:${string}` | "display:checkbox" | "display:radio" | "display:cascade" | "display:survey" | "display:quoting" | "display:customModal" | "display:mask" | `display:replace:('${string}', '${string}')` | "display:terms_conditions" | `display:main_media:${string}` | "display:markdown" | "display:content-block" | "display:info" | "display:warning" | "display:error" | "date_component:day" | "date_component:month" | "date_component:year" | "action:allow_copy" | "action:allow_unreplace" | "action:allow_password_compromise_check" | "action:client_upload" | "action:hash" | "action:require_webauthn" | `action:generate_pepper:` | `action:timeout:${number}` | `action:server-search:${string}` | "verify:show_if_pending" | "special:hide_select_behind_button" | "type:capture_geolocation" | "type:extract_required";
|
|
18
18
|
export type SchemaTag = "action:experimental_pass_object_store_id" | "action:verify" | `action:display_qr_code:${string}:${string}` | `action:display_global_idv_app_qr_code:${string}` | "default_camera:rear" | "default_camera:front" | `oauth2_component:name:${string}` | `oauth2_component:redirect_url:${string}` | `time:${string}:${number}` | `link_to:${string}:${string}` | "display:default_view:edit" | "support_challenge" | "type:merchant" | "type:service_offer" | "type:marketplace" | "type:client_only" | "type:globally_unique_field" | "type:application_object";
|
|
19
19
|
export type SchemaField = {
|
|
20
20
|
/** @deprecated don't use, it's inconsistent */
|
|
@@ -169,6 +169,25 @@ export type FndI18nEntry = CommonFields<never> & {
|
|
|
169
169
|
};
|
|
170
170
|
};
|
|
171
171
|
};
|
|
172
|
+
/** Configuration for a single named kanban board. */
|
|
173
|
+
export type KanbanBoard = {
|
|
174
|
+
/** Human-readable board name shown in the board selector; should be unique within the schema. */
|
|
175
|
+
kanban_name?: string;
|
|
176
|
+
/** Field that determines which column a card belongs to. */
|
|
177
|
+
column_field?: string;
|
|
178
|
+
/** Default ordering of the columns themselves, by their distinct `column_field` values. */
|
|
179
|
+
column_field_sort?: "ascending" | "descending";
|
|
180
|
+
/** Field displayed as the card title. */
|
|
181
|
+
title_field?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Name of a numeric record field used to order cards vertically within
|
|
184
|
+
* a column. Optional. See
|
|
185
|
+
* packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout.
|
|
186
|
+
*/
|
|
187
|
+
y_field?: string;
|
|
188
|
+
/** Additional fields displayed on each card. */
|
|
189
|
+
card_fields?: string[];
|
|
190
|
+
};
|
|
172
191
|
/** not exported. Attributes that are identical in both client schema & server schema */
|
|
173
192
|
export type CommonSchemaAttributes = {
|
|
174
193
|
/** these fields will always exist on schema */
|
|
@@ -319,15 +338,64 @@ export type CommonSchemaAttributes = {
|
|
|
319
338
|
value: string;
|
|
320
339
|
}[];
|
|
321
340
|
}[];
|
|
322
|
-
/**
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
341
|
+
/**
|
|
342
|
+
* Pre-defined view presets provided by the schema author.
|
|
343
|
+
* A view bundles filter, sorting, column visibility/order, and display
|
|
344
|
+
* settings (page size, density, etc.) into a named configuration.
|
|
345
|
+
* These appear as "Default views" in the admin table UI and cannot be
|
|
346
|
+
* deleted by users (unlike user-saved views).
|
|
347
|
+
*
|
|
348
|
+
* Every field except `name` is optional. When applied, fields the view
|
|
349
|
+
* does not specify leave the user's current preference untouched. This
|
|
350
|
+
* lets a schema author define partial views (e.g. just sorting + columns).
|
|
351
|
+
*/
|
|
352
|
+
views?: {
|
|
353
|
+
/** Display name for the view preset */
|
|
354
|
+
name: string;
|
|
355
|
+
/** Filter to apply (PropertyFilter tokens + operation) */
|
|
356
|
+
filter?: {
|
|
357
|
+
/** How tokens are combined: "and" = all must match, "or" = any must match */
|
|
358
|
+
operation: "and" | "or";
|
|
359
|
+
/** Filter conditions */
|
|
360
|
+
tokens: {
|
|
361
|
+
/** Must match a key in schema `properties` */
|
|
362
|
+
propertyKey: string;
|
|
363
|
+
/** Comparison operator */
|
|
364
|
+
operator: string;
|
|
365
|
+
/** Value to compare against */
|
|
366
|
+
value: string;
|
|
367
|
+
}[];
|
|
368
|
+
};
|
|
369
|
+
/** Server-side sorting state, or `null` to explicitly clear sorting */
|
|
370
|
+
sorting?: {
|
|
371
|
+
sortingColumn: string;
|
|
372
|
+
isDescending: boolean;
|
|
373
|
+
} | null;
|
|
374
|
+
/** Column visibility + order. `id` must match a key in `properties`. */
|
|
375
|
+
columnPrefs?: {
|
|
376
|
+
id: string;
|
|
377
|
+
visible: boolean;
|
|
378
|
+
}[];
|
|
379
|
+
/** Page size (rows per page) */
|
|
380
|
+
pageSize?: number;
|
|
381
|
+
/** Whether to wrap cell content onto multiple lines */
|
|
382
|
+
wrapLines?: boolean;
|
|
383
|
+
/** Whether alternating rows are striped */
|
|
384
|
+
stripedRows?: boolean;
|
|
385
|
+
/** Density of the table content */
|
|
386
|
+
contentDensity?: "comfortable" | "compact";
|
|
387
|
+
/** Number of sticky columns pinned to the start/end of the table */
|
|
388
|
+
stickyColumns?: {
|
|
389
|
+
first: number;
|
|
390
|
+
last: number;
|
|
391
|
+
};
|
|
392
|
+
}[];
|
|
393
|
+
/**
|
|
394
|
+
* Kanban board configuration for the admin dashboard. Either a single
|
|
395
|
+
* board (legacy form) or an array of named boards. See
|
|
396
|
+
* packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout.
|
|
397
|
+
*/
|
|
398
|
+
kanban?: KanbanBoard | KanbanBoard[];
|
|
331
399
|
};
|
|
332
400
|
/** only the schema used for the onboarding wizard have this property */
|
|
333
401
|
onboard_properties?: {
|
|
@@ -422,6 +490,8 @@ export type CommonSchemaAttributes = {
|
|
|
422
490
|
export type Schema = CommonFields<never> & CommonSchemaAttributes & {
|
|
423
491
|
/** added by the client, copied from {@link WrappedSchema} */
|
|
424
492
|
name: SchemaName;
|
|
493
|
+
/** added by the client, copied from {@link WrappedSchema}. Only set for `ms` schemas. */
|
|
494
|
+
merchant_id?: MId;
|
|
425
495
|
/** added by client */
|
|
426
496
|
type?: DataTypes;
|
|
427
497
|
/**
|
|
@@ -514,6 +584,11 @@ export type WrappedSchema = {
|
|
|
514
584
|
schema_name: SchemaName;
|
|
515
585
|
schema_type: SchemaType;
|
|
516
586
|
schema_version: string;
|
|
587
|
+
/**
|
|
588
|
+
* The merchant this schema belongs to. Always present for merchant-type
|
|
589
|
+
* (`ms`) schemas; absent for all other schema types.
|
|
590
|
+
*/
|
|
591
|
+
merchant_id?: MId;
|
|
517
592
|
/** whether the \`version\` is the latest version */
|
|
518
593
|
version_current: boolean;
|
|
519
594
|
/** Country codes that this schema is available for */
|
package/package.json
CHANGED
package/src/raytio.ts
CHANGED
|
@@ -210,7 +210,11 @@ export type Lookup = {
|
|
|
210
210
|
|
|
211
211
|
/** Sort order within a lookup set. NULL = unordered. */
|
|
212
212
|
display_order?: number;
|
|
213
|
-
/**
|
|
213
|
+
/**
|
|
214
|
+
* Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped.
|
|
215
|
+
* Translated client-side via the `lookup_group` entries in
|
|
216
|
+
* `fnd_i18n_entries` (see `LookupGroupLabel`).
|
|
217
|
+
*/
|
|
214
218
|
lookup_group?: string;
|
|
215
219
|
};
|
|
216
220
|
|
package/src/schema.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
CommonFields,
|
|
4
4
|
DataTypes,
|
|
5
5
|
Json,
|
|
6
|
+
MId,
|
|
6
7
|
SchemaName,
|
|
7
8
|
Urn,
|
|
8
9
|
} from "./raytio";
|
|
@@ -36,6 +37,14 @@ export type SchemaFieldTag =
|
|
|
36
37
|
| "display:stars"
|
|
37
38
|
| "display:no_autofill"
|
|
38
39
|
| "display:currency"
|
|
40
|
+
// currency with an explicit ISO 4217 code, e.g. `display:currency:usd`.
|
|
41
|
+
// The code is case-insensitive; a malformed code falls back to the bare behaviour.
|
|
42
|
+
| `display:currency:${string}`
|
|
43
|
+
// renders a fixed-option (enum) multi-select array as a checkbox group
|
|
44
|
+
| "display:checkbox"
|
|
45
|
+
// forces radio rendering for string + (enum|lookup) fields regardless of
|
|
46
|
+
// list size; the automatic ≤ 7 behaviour is handled by the rules directly
|
|
47
|
+
| "display:radio"
|
|
39
48
|
| "display:cascade"
|
|
40
49
|
| "display:survey"
|
|
41
50
|
| "display:quoting"
|
|
@@ -260,6 +269,26 @@ export type FndI18nEntry = CommonFields<never> & {
|
|
|
260
269
|
};
|
|
261
270
|
};
|
|
262
271
|
|
|
272
|
+
/** Configuration for a single named kanban board. */
|
|
273
|
+
export type KanbanBoard = {
|
|
274
|
+
/** Human-readable board name shown in the board selector; should be unique within the schema. */
|
|
275
|
+
kanban_name?: string;
|
|
276
|
+
/** Field that determines which column a card belongs to. */
|
|
277
|
+
column_field?: string;
|
|
278
|
+
/** Default ordering of the columns themselves, by their distinct `column_field` values. */
|
|
279
|
+
column_field_sort?: "ascending" | "descending";
|
|
280
|
+
/** Field displayed as the card title. */
|
|
281
|
+
title_field?: string;
|
|
282
|
+
/**
|
|
283
|
+
* Name of a numeric record field used to order cards vertically within
|
|
284
|
+
* a column. Optional. See
|
|
285
|
+
* packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout.
|
|
286
|
+
*/
|
|
287
|
+
y_field?: string;
|
|
288
|
+
/** Additional fields displayed on each card. */
|
|
289
|
+
card_fields?: string[];
|
|
290
|
+
};
|
|
291
|
+
|
|
263
292
|
/** not exported. Attributes that are identical in both client schema & server schema */
|
|
264
293
|
export type CommonSchemaAttributes = {
|
|
265
294
|
/** these fields will always exist on schema */
|
|
@@ -399,15 +428,56 @@ export type CommonSchemaAttributes = {
|
|
|
399
428
|
}[];
|
|
400
429
|
}[];
|
|
401
430
|
|
|
402
|
-
/**
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
431
|
+
/**
|
|
432
|
+
* Pre-defined view presets provided by the schema author.
|
|
433
|
+
* A view bundles filter, sorting, column visibility/order, and display
|
|
434
|
+
* settings (page size, density, etc.) into a named configuration.
|
|
435
|
+
* These appear as "Default views" in the admin table UI and cannot be
|
|
436
|
+
* deleted by users (unlike user-saved views).
|
|
437
|
+
*
|
|
438
|
+
* Every field except `name` is optional. When applied, fields the view
|
|
439
|
+
* does not specify leave the user's current preference untouched. This
|
|
440
|
+
* lets a schema author define partial views (e.g. just sorting + columns).
|
|
441
|
+
*/
|
|
442
|
+
views?: {
|
|
443
|
+
/** Display name for the view preset */
|
|
444
|
+
name: string;
|
|
445
|
+
/** Filter to apply (PropertyFilter tokens + operation) */
|
|
446
|
+
filter?: {
|
|
447
|
+
/** How tokens are combined: "and" = all must match, "or" = any must match */
|
|
448
|
+
operation: "and" | "or";
|
|
449
|
+
/** Filter conditions */
|
|
450
|
+
tokens: {
|
|
451
|
+
/** Must match a key in schema `properties` */
|
|
452
|
+
propertyKey: string;
|
|
453
|
+
/** Comparison operator */
|
|
454
|
+
operator: string;
|
|
455
|
+
/** Value to compare against */
|
|
456
|
+
value: string;
|
|
457
|
+
}[];
|
|
458
|
+
};
|
|
459
|
+
/** Server-side sorting state, or `null` to explicitly clear sorting */
|
|
460
|
+
sorting?: { sortingColumn: string; isDescending: boolean } | null;
|
|
461
|
+
/** Column visibility + order. `id` must match a key in `properties`. */
|
|
462
|
+
columnPrefs?: { id: string; visible: boolean }[];
|
|
463
|
+
/** Page size (rows per page) */
|
|
464
|
+
pageSize?: number;
|
|
465
|
+
/** Whether to wrap cell content onto multiple lines */
|
|
466
|
+
wrapLines?: boolean;
|
|
467
|
+
/** Whether alternating rows are striped */
|
|
468
|
+
stripedRows?: boolean;
|
|
469
|
+
/** Density of the table content */
|
|
470
|
+
contentDensity?: "comfortable" | "compact";
|
|
471
|
+
/** Number of sticky columns pinned to the start/end of the table */
|
|
472
|
+
stickyColumns?: { first: number; last: number };
|
|
473
|
+
}[];
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Kanban board configuration for the admin dashboard. Either a single
|
|
477
|
+
* board (legacy form) or an array of named boards. See
|
|
478
|
+
* packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout.
|
|
479
|
+
*/
|
|
480
|
+
kanban?: KanbanBoard | KanbanBoard[];
|
|
411
481
|
};
|
|
412
482
|
|
|
413
483
|
/** only the schema used for the onboarding wizard have this property */
|
|
@@ -522,6 +592,8 @@ export type Schema = CommonFields<never> &
|
|
|
522
592
|
CommonSchemaAttributes & {
|
|
523
593
|
/** added by the client, copied from {@link WrappedSchema} */
|
|
524
594
|
name: SchemaName;
|
|
595
|
+
/** added by the client, copied from {@link WrappedSchema}. Only set for `ms` schemas. */
|
|
596
|
+
merchant_id?: MId;
|
|
525
597
|
|
|
526
598
|
/** added by client */
|
|
527
599
|
type?: DataTypes;
|
|
@@ -633,6 +705,11 @@ export type WrappedSchema = {
|
|
|
633
705
|
schema_name: SchemaName;
|
|
634
706
|
schema_type: SchemaType;
|
|
635
707
|
schema_version: string;
|
|
708
|
+
/**
|
|
709
|
+
* The merchant this schema belongs to. Always present for merchant-type
|
|
710
|
+
* (`ms`) schemas; absent for all other schema types.
|
|
711
|
+
*/
|
|
712
|
+
merchant_id?: MId;
|
|
636
713
|
|
|
637
714
|
/** whether the \`version\` is the latest version */
|
|
638
715
|
version_current: boolean;
|