@memberjunction/skip-types 2.133.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,72 @@
1
+ import { SkipComponentEvent, SkipComponentProperty } from "./component-props-events";
2
+ import { SkipComponentDataRequirements } from "./data-requirements";
3
+ /**
4
+ * Represents a child component within a component hierarchy
5
+ */
6
+ export interface SkipComponentChildSpec {
7
+ /**
8
+ * The programmatic name of the component
9
+ */
10
+ componentName: string;
11
+ /**
12
+ * Example of the component being used in JSX format. This is used to provide a clear example on the properties and
13
+ * event handling that the component supports. This is used to teach the next AI exactly what we want it to generate for the
14
+ * child component.
15
+ */
16
+ exampleUsage: string;
17
+ /**
18
+ * The code for the child component. This is generated LATER by a separate process after the parent
19
+ * component generation is complete. When the parent component generates this is undefined.
20
+ */
21
+ componentCode?: string;
22
+ /**
23
+ * A summary of what this child component does that a user would understand.
24
+ * This should be a high-level, user-friendly description suitable for end users.
25
+ */
26
+ description: string;
27
+ /**
28
+ * Functional requirements for this child component.
29
+ * This should be in markdown format and describe what the component should do from a functional perspective.
30
+ * Includes:
31
+ * - Component-specific functionality
32
+ * - How it integrates with the parent component
33
+ * - User interactions within this component
34
+ * - Business rules specific to this component
35
+ */
36
+ functionalRequirements?: string;
37
+ /**
38
+ * Data requirements for this child component. This section defines where a child component
39
+ * will **directly** access data as required using utilities methods like `rv.runView` and `rq.runQuery`
40
+ */
41
+ dataRequirements?: SkipComponentDataRequirements;
42
+ /**
43
+ * An optional array of properties that the component uses. The names and descriptions
44
+ * allow consumers of the component to understand what is accepted by the component and the
45
+ * component. This can be used for shared data shared between components or for configuration
46
+ * settings.
47
+ */
48
+ properties?: SkipComponentProperty[];
49
+ /**
50
+ * An optional array of events that the component emits.
51
+ * This allows consumers of the component to understand what events they can listen to.
52
+ */
53
+ events?: SkipComponentEvent[];
54
+ /**
55
+ * Technical design details for this child component.
56
+ * This should be in markdown format and describe the implementation approach.
57
+ * Includes:
58
+ * - How the component is structured
59
+ * - State within the component
60
+ * - Properites/events
61
+ */
62
+ technicalDesign?: string;
63
+ /**
64
+ * The path in the state tree where this component's state is stored
65
+ */
66
+ statePath: string;
67
+ /**
68
+ * An array of sub-components
69
+ */
70
+ components: SkipComponentChildSpec[];
71
+ }
72
+ //# sourceMappingURL=child-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-spec.d.ts","sourceRoot":"","sources":["../src/child-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IAEjD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAErC;;;OAGG;IACH,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE9B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACxC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=child-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-spec.js","sourceRoot":"","sources":["../src/child-spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { SkipComponentRootSpec } from "./root-spec";
2
+ /**
3
+ * Defines a given option for a generated component that the user can choose. The code/componentObjectName properties are used to render the component in the UI.
4
+ */
5
+ export type SkipComponentOption = {
6
+ /**
7
+ * Full details of the generated component option including functional, technical, code, and child componentry.
8
+ */
9
+ option: SkipComponentRootSpec;
10
+ /**
11
+ * If multiple component options are provided for a given @interface SkipAPIAnalysisCompleteResponse, a "judge" AI will evaluate all the functional
12
+ * responses and will rank order them with an explanation of why they were each ranked that way. Rankings are not absolute, they are relative to the
13
+ * # of components contained within an array of SkipComponentOption types.
14
+ */
15
+ AIRank: number | undefined;
16
+ /**
17
+ * The AI's explanation of why it ranked the component the way it did. This is useful for understanding the AI's reasoning and can be used to improve future components
18
+ * as well as provide context to the user about why a particular component was chosen as the best option.
19
+ */
20
+ AIRankExplanation: string | undefined;
21
+ /**
22
+ * The user's provided feedback on the component option. Unlike the AIRank, this is a subjective rating provided by the user and is
23
+ * a number between 1 and 10, where 1 is the lowest rating and 10 is the highest rating.
24
+ */
25
+ UserRank: number | undefined;
26
+ /**
27
+ * If the host application provides a way for the user to provide feedback on the component option,
28
+ * this is the explanation of why the user rated the component the way they did if they provided feedback.
29
+ */
30
+ UserRankExplanation: string | undefined;
31
+ };
32
+ //# sourceMappingURL=component-option.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-option.d.ts","sourceRoot":"","sources":["../src/component-option.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;IAE9B;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;OAGG;IACH,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=component-option.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-option.js","sourceRoot":"","sources":["../src/component-option.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Definition of a single property of a component.
3
+ */
4
+ export interface SkipComponentProperty {
5
+ /**
6
+ * The name of the property
7
+ */
8
+ name: string;
9
+ /**
10
+ * A description of what this property is used for
11
+ */
12
+ description: string;
13
+ /**
14
+ * The type of the property.
15
+ * It can be one of 'string', 'number', 'boolean', 'object', 'array', 'function', or 'any'.
16
+ * These types are for aligning users of the component. Components are in JavaScript and do not
17
+ * actually enforce types at runtime, but this is used to provide guidance for users (AI and Human)
18
+ */
19
+ type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'function' | 'any';
20
+ /**
21
+ * Indicates if this property is required for the component to function correctly.
22
+ * If true, the component will not work without this property being set.
23
+ */
24
+ required: boolean;
25
+ /**
26
+ * The default value, if any, for this property if it is not provided.
27
+ */
28
+ defaultValue?: any;
29
+ /**
30
+ * Optional list of possible values for this property.
31
+ */
32
+ possibleValues?: string[];
33
+ }
34
+ /**
35
+ * Definition of a single event of a component.
36
+ */
37
+ export interface SkipComponentEvent {
38
+ /**
39
+ * The name of the event
40
+ */
41
+ name: string;
42
+ /**
43
+ * A description of what this event does
44
+ */
45
+ description: string;
46
+ /**
47
+ * An array of parameters that this event can emit.
48
+ */
49
+ parameters?: SkipComponentEventParameter[];
50
+ }
51
+ export interface SkipComponentEventParameter {
52
+ /**
53
+ * The name of the parameter
54
+ */
55
+ name: string;
56
+ /**
57
+ * A description of what this parameter is used for
58
+ */
59
+ description: string;
60
+ /**
61
+ * The type of the parameter.
62
+ * It can be one of 'string', 'number', 'boolean', 'object', 'array', 'function', or 'any'.
63
+ */
64
+ type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'function' | 'any';
65
+ }
66
+ //# sourceMappingURL=component-props-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-props-events.d.ts","sourceRoot":"","sources":["../src/component-props-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;IAChF;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,2BAA2B,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,2BAA2B;IACxC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;CACnF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=component-props-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-props-events.js","sourceRoot":"","sources":["../src/component-props-events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import { DataContext } from "@memberjunction/data-context";
2
+ /**
3
+ * This interface is critical for understanding how components interact with MemberJunction data
4
+ */
5
+ export interface SkipComponentDataRequirements {
6
+ /**
7
+ * The primary data access mode for this component.
8
+ * - 'dynamic': Component fetches data at runtime using MJ utilities
9
+ * - 'static': Deprecated, use dynamic.
10
+ * - 'hybrid': Deprecated, use dynamic.
11
+ */
12
+ mode: 'static' | 'dynamic' | 'hybrid';
13
+ /**
14
+ * For static mode: References to data context items that this component uses.
15
+ * These are pre-loaded data snapshots that are passed to the component during initialization.
16
+ * @deprecated Use dynamicData instead
17
+ */
18
+ staticData?: {
19
+ /**
20
+ * Reference to the data context that this component uses.
21
+ */
22
+ dataContext: DataContext;
23
+ /**
24
+ * Description of how the static data is used by the component
25
+ */
26
+ description?: string;
27
+ };
28
+ /**
29
+ * For dynamic mode: Defines which MemberJunction entities this component needs access to.
30
+ * The component will use the RunView/RunQuery utilities to fetch data at runtime.
31
+ */
32
+ dynamicData?: {
33
+ /**
34
+ * Describes the entities and fields the component will
35
+ * need to fulfill user requirements.
36
+ */
37
+ requiredEntities: SkipComponentEntityDataRequirement[];
38
+ /**
39
+ * Description of data access patterns
40
+ */
41
+ description?: string;
42
+ };
43
+ /**
44
+ * General description of data requirements
45
+ */
46
+ description?: string;
47
+ }
48
+ /**
49
+ * Describes use of a single entity
50
+ */
51
+ export type SkipComponentEntityDataRequirement = {
52
+ /**
53
+ * Name of the entity (unique system-wide)
54
+ */
55
+ entityName: string;
56
+ /**
57
+ * Description of data in the entity
58
+ */
59
+ entityDescription?: string;
60
+ /**
61
+ * Fields to show the user
62
+ */
63
+ displayFields: string[];
64
+ /**
65
+ * Fields to filter on initially or via user interaction.
66
+ */
67
+ filterFields?: string[];
68
+ /**
69
+ * Fields to use when sorting
70
+ */
71
+ sortFields?: string[];
72
+ /**
73
+ * When/Where/How components should use this data
74
+ */
75
+ usageContext?: string;
76
+ };
77
+ //# sourceMappingURL=data-requirements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-requirements.d.ts","sourceRoot":"","sources":["../src/data-requirements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAEtC;;;;OAIG;IACH,UAAU,CAAC,EAAE;QACT;;WAEG;QACH,WAAW,EAAE,WAAW,CAAC;QAEzB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF;;;OAGG;IACH,WAAW,CAAC,EAAE;QACV;;;WAGG;QACH,gBAAgB,EAAE,kCAAkC,EAAE,CAAC;QAEvD;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG;IAC7C;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data-requirements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-requirements.js","sourceRoot":"","sources":["../src/data-requirements.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import { SkipComponentChildSpec } from "./child-spec";
2
+ import { SkipComponentDataRequirements } from "./data-requirements";
3
+ /**
4
+ * Represents a complete specification for a generated Skip component, including its structure,
5
+ * requirements, code, and nested component hierarchy
6
+ */
7
+ export type SkipComponentRootSpec = {
8
+ /**
9
+ * A description of what the component should do from a functional perspective.
10
+ * This should be in markdown format and include:
11
+ * - Core functionality
12
+ * - Business rules
13
+ * - Expected outcomes
14
+ * - UX considerations
15
+ */
16
+ functionalRequirements: string;
17
+ /**
18
+ * Detailed data requirements, including how the component accesses and uses data.
19
+ */
20
+ dataRequirements?: SkipComponentDataRequirements;
21
+ /**
22
+ * A technical description of how the component is designed and implemented.
23
+ * This should be in markdown format and include:
24
+ * - Architecture and design patterns
25
+ * - Key technical decisions
26
+ * - Component structure
27
+ * - State management
28
+ * - Integration points with parent/child components
29
+ */
30
+ technicalDesign: string;
31
+ /**
32
+ * The code for the main component.
33
+ */
34
+ componentCode: string;
35
+ /**
36
+ * Name of the component
37
+ */
38
+ componentName: string;
39
+ /**
40
+ * The type of component: report, dashboard, form, or other.
41
+ */
42
+ componentType: "report" | "dashboard" | "form" | "other";
43
+ /**
44
+ * A summary of what the component does that a user would understand.
45
+ */
46
+ description: string;
47
+ /**
48
+ * The callback strategy used by this component (e.g., "hybrid", "direct", "none")
49
+ */
50
+ callbackStrategy: string;
51
+ /**
52
+ * Describes the state structure managed by this component
53
+ */
54
+ stateStructure: Record<string, string>;
55
+ /**
56
+ * An array of child component specifications
57
+ */
58
+ childComponents: SkipComponentChildSpec[];
59
+ /**
60
+ * User-friendly name
61
+ */
62
+ title: string;
63
+ /**
64
+ * A user-friendly explanation of what the component does
65
+ */
66
+ userExplanation: string;
67
+ /**
68
+ * Summary of technical design
69
+ */
70
+ techExplanation: string;
71
+ };
72
+ //# sourceMappingURL=root-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-spec.d.ts","sourceRoot":"","sources":["../src/root-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;;;;OAOG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;IAEjD;;;;;;;;OAQG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAEzD;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAE1C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=root-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-spec.js","sourceRoot":"","sources":["../src/root-spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,211 @@
1
+ import { CompositeKey } from "@memberjunction/core";
2
+ import { SimpleDataContext } from "./shared";
3
+ import { SimpleMetadata, SimpleRunQuery, SimpleRunView } from "./shared";
4
+ /**
5
+ * Available callbacks a component can call.
6
+ */
7
+ export interface SkipComponentCallbacks {
8
+ /**
9
+ * When data is provided by the parent, this request results in the parent restarting the component. Only relevant for static/hybrid data, not for dynamic.
10
+ * @deprecated
11
+ */
12
+ RefreshData: () => void;
13
+ /**
14
+ * If an action occurs inside a component where it would be desirable for the containing UI to open a specific
15
+ * record, if supported, this event can be listened to and the container UI can then open the record.
16
+ * @param entityName - this is the Entity NAME from the Entity metadata, not the table name or base view name. Use Entity Metadata to provide the entity name here
17
+ * @param key - this is an array of key/value pairs representing the primary key. The format of a Composite Key is an array of KeyValuePair objects and KeyValuePair objects simply have FieldName and Value properties. In most cases entities have single-valued primary keys but this structure is here for complex entity types that have composite primary keys
18
+ */
19
+ OpenEntityRecord: (entityName: string, key: CompositeKey) => void;
20
+ /**
21
+ * This event should be raised whenever something changes within the component that should be tracked as a change in state
22
+ * that will persist. userState is any valid serializable JavaScript object. This state is passed to the component when it
23
+ * initializes.
24
+ */
25
+ UpdateUserState: (userState: any) => void;
26
+ /**
27
+ * Other notifications that a component might want to send to the parent.
28
+ */
29
+ NotifyEvent: (eventName: string, eventData: any) => void;
30
+ }
31
+ /**
32
+ * Function signature for the initialization function of each component.
33
+ * This function is called when the component is loaded by its container. The function receives the data context, an optional userState property, and a set of callbacks that can be used to interact with the parent component.
34
+ * userState is an optional parameter that can be used to pass in any state information that the parent component wants to provide to the component that is specific
35
+ * to the CURRENT user. If the component modifies the userState, it should notify the parent component via the UserStateChanged event in the callbacks object so that the parent component can handle storage.
36
+ */
37
+ export type SkipComponentInitFunction = (params: SkipComponentInitParams) => void;
38
+ /**
39
+ * This is the function signature for the print function that is provided by the component via the SkipComponentObject
40
+ */
41
+ export type SkipComponentPrintFunction = () => void;
42
+ /**
43
+ * This is the function signature for the refresh function that is provided by the component via the SkipComponentObject
44
+ */
45
+ export type SkipComponentRefreshFunction = () => void;
46
+ /**
47
+ * Parameters that are passed to the SkipComponentInitFunction when it is called by the parent component.
48
+ */
49
+ export interface SkipComponentInitParams {
50
+ /**
51
+ * Contains the static data specified by the root component specification. This data is pre-loaded and passed to
52
+ * the component during initialization and anytime the component is refreshed.
53
+ */
54
+ staticData: SimpleDataContext;
55
+ /**
56
+ * Contains the dynamic data utilities that the component can use to access MemberJunction data. This includes
57
+ * the metadata, run view, and run query utilities that the component can use to access data dynamically at runtime.
58
+ * The component can use these utilities to fetch data at runtime based on the user's interactions with the component.
59
+ */
60
+ utilities?: SkipComponentUtilities;
61
+ /**
62
+ * Any valid serializable JavaScript object that represents the user-specific state for the component.
63
+ */
64
+ userState?: any;
65
+ /**
66
+ * Callbacks that the component can use to interact with the parent component. These callbacks allow the component to refresh data, open records, update user state, and send custom events.
67
+ */
68
+ callbacks?: SkipComponentCallbacks;
69
+ /**
70
+ * The default styles the component should use as specified by its parent (the container in the case of a root component, or a parent component in the case
71
+ * of a child component). The component can alter these styles based on the requirements specified by the user in its design documentation.
72
+ */
73
+ styles?: SkipComponentStyles;
74
+ }
75
+ /**
76
+ * This interface defines styles that can be applied to the component. The container can provide
77
+ * styles to the top level component. The top level component can alter these styles based on
78
+ * the prompting of the user, learned notes, etc, and adjust the styles of the component accordingly. In addition
79
+ * the top level component will pass in its computed styles to each sub-component so that the sub-components
80
+ * can do the same recursively down to any level of depth. This allows sub-components to inherit styles but
81
+ * also make adjustments as required based on functional needs and user input.
82
+ */
83
+ export interface SkipComponentStyles {
84
+ colors: {
85
+ primary: string;
86
+ primaryHover: string;
87
+ primaryLight?: string;
88
+ secondary: string;
89
+ secondaryHover?: string;
90
+ success: string;
91
+ successLight?: string;
92
+ warning?: string;
93
+ warningLight?: string;
94
+ error?: string;
95
+ errorLight?: string;
96
+ info?: string;
97
+ infoLight?: string;
98
+ background: string;
99
+ surface: string;
100
+ surfaceHover?: string;
101
+ text: string;
102
+ textSecondary: string;
103
+ textTertiary?: string;
104
+ textInverse?: string;
105
+ border: string;
106
+ borderLight?: string;
107
+ borderFocus?: string;
108
+ shadow?: string;
109
+ shadowMedium?: string;
110
+ shadowLarge?: string;
111
+ [key: string]: string | undefined;
112
+ };
113
+ spacing: {
114
+ xs: string;
115
+ sm: string;
116
+ md: string;
117
+ lg: string;
118
+ xl: string;
119
+ xxl?: string;
120
+ xxxl?: string;
121
+ [key: string]: string | undefined;
122
+ };
123
+ typography: {
124
+ fontFamily: string;
125
+ fontSize: {
126
+ xs?: string;
127
+ sm: string;
128
+ md: string;
129
+ lg: string;
130
+ xl: string;
131
+ xxl?: string;
132
+ xxxl?: string;
133
+ [key: string]: string | undefined;
134
+ };
135
+ fontWeight?: {
136
+ light?: string;
137
+ regular?: string;
138
+ medium?: string;
139
+ semibold?: string;
140
+ bold?: string;
141
+ [key: string]: string | undefined;
142
+ };
143
+ lineHeight?: {
144
+ tight?: string;
145
+ normal?: string;
146
+ relaxed?: string;
147
+ [key: string]: string | undefined;
148
+ };
149
+ };
150
+ borders: {
151
+ radius: string | {
152
+ sm?: string;
153
+ md?: string;
154
+ lg?: string;
155
+ xl?: string;
156
+ full?: string;
157
+ [key: string]: string | undefined;
158
+ };
159
+ width: string | {
160
+ thin?: string;
161
+ medium?: string;
162
+ thick?: string;
163
+ [key: string]: string | undefined;
164
+ };
165
+ };
166
+ shadows?: {
167
+ sm?: string;
168
+ md?: string;
169
+ lg?: string;
170
+ xl?: string;
171
+ inner?: string;
172
+ [key: string]: string | undefined;
173
+ };
174
+ transitions?: {
175
+ fast?: string;
176
+ normal?: string;
177
+ slow?: string;
178
+ [key: string]: string | undefined;
179
+ };
180
+ overflow: string;
181
+ }
182
+ /**
183
+ * This is the interface that each Skip component will expose to the parent component and assign it a name globally on the window object so that the parent component can call it.
184
+ * The component will create this object and it will include the members defined in this interface.
185
+ */
186
+ export interface SkipComponentObject {
187
+ /**
188
+ * The React component that Angular will render directly using ReactDOM.
189
+ * This component receives props including data, userState, callbacks, utilities, and styles.
190
+ */
191
+ component: any;
192
+ /**
193
+ * The optional print function that is called when the user clicks on the print button in the parent of the component. This function will never be called by the parent before the init function so the print function
194
+ * can assume the component has been initialized;
195
+ */
196
+ print?: SkipComponentPrintFunction;
197
+ /**
198
+ * The optional refresh function that is called when the user clicks on the refresh button in the parent of the component. This function will never be called by the parent before the init function so the refresh function
199
+ */
200
+ refresh?: SkipComponentRefreshFunction;
201
+ }
202
+ /**
203
+ * This interface defines the utilities that are available to the Skip component. These utilities are used to interact with the host MemberJunction system to
204
+ * retrieve metadata, run views, and run queries. The utilities are passed into the SkipComponentInitFunction by the container.
205
+ */
206
+ export interface SkipComponentUtilities {
207
+ md: SimpleMetadata;
208
+ rv: SimpleRunView;
209
+ rq: SimpleRunQuery;
210
+ }
211
+ //# sourceMappingURL=runtime-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../src/runtime-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=runtime-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-types.js","sourceRoot":"","sources":["../src/runtime-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ import { RunQueryParams, RunQueryResult, RunViewParams, RunViewResult } from "@memberjunction/core";
2
+ import { SkipEntityInfo } from "./entity-metadata-types";
3
+ /**
4
+ * This is a simple data context object that is passed into the SkipComponentInitFunction, it contains a property for each of the data context items and typically are named
5
+ * data_item_1, data_item_2, etc. The data context is a simple JavaScript object that contains properties that are in turn data objects which are typically arrays of things, but can be anything.
6
+ */
7
+ export type SimpleDataContext = {
8
+ [key: string]: any;
9
+ };
10
+ /**
11
+ * Simple version of the @interface Metadata MemberJunction object that is passed to the Skip component.
12
+ */
13
+ export interface SimpleMetadata {
14
+ entities: SkipEntityInfo[];
15
+ }
16
+ /**
17
+ * Simple interface for running views in MemberJunction that can be used by components generated by Skip
18
+ */
19
+ export interface SimpleRunView {
20
+ /**
21
+ * Run a single view and return the results. The view is run dynamically against the MemberJunction host environment.
22
+ * @param params
23
+ * @returns
24
+ */
25
+ runView: (params: RunViewParams) => Promise<RunViewResult>;
26
+ /**
27
+ * Runs multiple views and returns the results. This is useful for running multiple views in parallel and returning the results in a single call.
28
+ * @param params
29
+ * @returns
30
+ */
31
+ runViews: (params: RunViewParams[]) => Promise<RunViewResult[]>;
32
+ }
33
+ /**
34
+ * Simple interface for running predefined queries in MemberJunction that can be used by components generated by Skip
35
+ */
36
+ export interface SimpleRunQuery {
37
+ /**
38
+ * Run a single predefined query and return the results. The query is run dynamically against the MemberJunction host environment.
39
+ * @param params
40
+ * @returns
41
+ */
42
+ runQuery: (params: RunQueryParams) => Promise<RunQueryResult>;
43
+ }
44
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1D;;;;OAIG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;CAClE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;CAChE"}
package/dist/shared.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/skip-types",
3
- "version": "2.133.0",
3
+ "version": "3.0.0",
4
4
  "description": "MemberJunction: Skip AI Assistant - Types that are used between the MJAPI and the Skip API as well as the UI within MemberJunction Explorer",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,10 +19,10 @@
19
19
  "typescript": "^5.4.5"
20
20
  },
21
21
  "dependencies": {
22
- "@memberjunction/core": "2.133.0",
23
- "@memberjunction/interactive-component-types": "2.133.0",
24
- "@memberjunction/ai-core-plus": "2.133.0",
25
- "@memberjunction/data-context": "2.133.0"
22
+ "@memberjunction/core": "3.0.0",
23
+ "@memberjunction/interactive-component-types": "3.0.0",
24
+ "@memberjunction/ai-core-plus": "3.0.0",
25
+ "@memberjunction/data-context": "3.0.0"
26
26
  },
27
27
  "repository": {
28
28
  "type": "git",