@rippling/rippling-sdk 0.2.0-alpha.37 → 0.2.0-alpha.39

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.
Files changed (202) hide show
  1. package/examples/sdui/sdui-crud-todo/sdui-crud-todo.ts +3 -3
  2. package/examples/sdui/sdui-showcase/sdui-showcase.ts +6 -11
  3. package/examples/sdui/sdui-tab-multi-view/sdui-tab-multi-view.ts +14 -24
  4. package/examples/sdui/vote/vote.ts +7 -11
  5. package/lib/manifest/app.d.mts +11 -1
  6. package/lib/manifest/app.d.mts.map +1 -1
  7. package/lib/manifest/app.d.ts +11 -1
  8. package/lib/manifest/app.d.ts.map +1 -1
  9. package/lib/manifest/app.js +42 -1
  10. package/lib/manifest/app.js.map +1 -1
  11. package/lib/manifest/app.mjs +42 -1
  12. package/lib/manifest/app.mjs.map +1 -1
  13. package/lib/manifest/category.d.mts +14 -3
  14. package/lib/manifest/category.d.mts.map +1 -1
  15. package/lib/manifest/category.d.ts +14 -3
  16. package/lib/manifest/category.d.ts.map +1 -1
  17. package/lib/manifest/category.js +25 -3
  18. package/lib/manifest/category.js.map +1 -1
  19. package/lib/manifest/category.mjs +25 -3
  20. package/lib/manifest/category.mjs.map +1 -1
  21. package/lib/manifest/custom-object-field-section.d.mts +13 -0
  22. package/lib/manifest/custom-object-field-section.d.mts.map +1 -1
  23. package/lib/manifest/custom-object-field-section.d.ts +13 -0
  24. package/lib/manifest/custom-object-field-section.d.ts.map +1 -1
  25. package/lib/manifest/custom-object-field-section.js +22 -1
  26. package/lib/manifest/custom-object-field-section.js.map +1 -1
  27. package/lib/manifest/custom-object-field-section.mjs +22 -1
  28. package/lib/manifest/custom-object-field-section.mjs.map +1 -1
  29. package/lib/manifest/custom-object-page-layout.d.mts +23 -0
  30. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
  31. package/lib/manifest/custom-object-page-layout.d.ts +23 -0
  32. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
  33. package/lib/manifest/custom-object-page-layout.js +45 -2
  34. package/lib/manifest/custom-object-page-layout.js.map +1 -1
  35. package/lib/manifest/custom-object-page-layout.mjs +45 -2
  36. package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
  37. package/lib/manifest/custom-object.d.mts +41 -2
  38. package/lib/manifest/custom-object.d.mts.map +1 -1
  39. package/lib/manifest/custom-object.d.ts +41 -2
  40. package/lib/manifest/custom-object.d.ts.map +1 -1
  41. package/lib/manifest/custom-object.js +70 -3
  42. package/lib/manifest/custom-object.js.map +1 -1
  43. package/lib/manifest/custom-object.mjs +70 -3
  44. package/lib/manifest/custom-object.mjs.map +1 -1
  45. package/lib/manifest/existing-manifest-context.d.mts +87 -0
  46. package/lib/manifest/existing-manifest-context.d.mts.map +1 -0
  47. package/lib/manifest/existing-manifest-context.d.ts +87 -0
  48. package/lib/manifest/existing-manifest-context.d.ts.map +1 -0
  49. package/lib/manifest/existing-manifest-context.js +511 -0
  50. package/lib/manifest/existing-manifest-context.js.map +1 -0
  51. package/lib/manifest/existing-manifest-context.mjs +506 -0
  52. package/lib/manifest/existing-manifest-context.mjs.map +1 -0
  53. package/lib/manifest/field.d.mts +44 -2
  54. package/lib/manifest/field.d.mts.map +1 -1
  55. package/lib/manifest/field.d.ts +44 -2
  56. package/lib/manifest/field.d.ts.map +1 -1
  57. package/lib/manifest/field.js +134 -3
  58. package/lib/manifest/field.js.map +1 -1
  59. package/lib/manifest/field.mjs +134 -3
  60. package/lib/manifest/field.mjs.map +1 -1
  61. package/lib/manifest/index.d.mts +8 -7
  62. package/lib/manifest/index.d.mts.map +1 -1
  63. package/lib/manifest/index.d.ts +8 -7
  64. package/lib/manifest/index.d.ts.map +1 -1
  65. package/lib/manifest/index.js +3 -1
  66. package/lib/manifest/index.js.map +1 -1
  67. package/lib/manifest/index.mjs +5 -4
  68. package/lib/manifest/index.mjs.map +1 -1
  69. package/lib/manifest/list-view.d.mts +17 -0
  70. package/lib/manifest/list-view.d.mts.map +1 -1
  71. package/lib/manifest/list-view.d.ts +17 -0
  72. package/lib/manifest/list-view.d.ts.map +1 -1
  73. package/lib/manifest/list-view.js +38 -1
  74. package/lib/manifest/list-view.js.map +1 -1
  75. package/lib/manifest/list-view.mjs +38 -1
  76. package/lib/manifest/list-view.mjs.map +1 -1
  77. package/lib/manifest/manifest-builder.d.mts +60 -7
  78. package/lib/manifest/manifest-builder.d.mts.map +1 -1
  79. package/lib/manifest/manifest-builder.d.ts +60 -7
  80. package/lib/manifest/manifest-builder.d.ts.map +1 -1
  81. package/lib/manifest/manifest-builder.js +62 -4
  82. package/lib/manifest/manifest-builder.js.map +1 -1
  83. package/lib/manifest/manifest-builder.mjs +62 -4
  84. package/lib/manifest/manifest-builder.mjs.map +1 -1
  85. package/lib/manifest/manifest-function.d.mts +18 -3
  86. package/lib/manifest/manifest-function.d.mts.map +1 -1
  87. package/lib/manifest/manifest-function.d.ts +18 -3
  88. package/lib/manifest/manifest-function.d.ts.map +1 -1
  89. package/lib/manifest/manifest-function.js +44 -3
  90. package/lib/manifest/manifest-function.js.map +1 -1
  91. package/lib/manifest/manifest-function.mjs +44 -3
  92. package/lib/manifest/manifest-function.mjs.map +1 -1
  93. package/lib/manifest/rule.d.mts +17 -0
  94. package/lib/manifest/rule.d.mts.map +1 -1
  95. package/lib/manifest/rule.d.ts +17 -0
  96. package/lib/manifest/rule.d.ts.map +1 -1
  97. package/lib/manifest/rule.js +45 -1
  98. package/lib/manifest/rule.js.map +1 -1
  99. package/lib/manifest/rule.mjs +45 -1
  100. package/lib/manifest/rule.mjs.map +1 -1
  101. package/lib/manifest/sdui-page.d.mts +10 -1
  102. package/lib/manifest/sdui-page.d.mts.map +1 -1
  103. package/lib/manifest/sdui-page.d.ts +10 -1
  104. package/lib/manifest/sdui-page.d.ts.map +1 -1
  105. package/lib/manifest/sdui-page.js +28 -1
  106. package/lib/manifest/sdui-page.js.map +1 -1
  107. package/lib/manifest/sdui-page.mjs +28 -1
  108. package/lib/manifest/sdui-page.mjs.map +1 -1
  109. package/lib/manifest/validation.d.mts +17 -0
  110. package/lib/manifest/validation.d.mts.map +1 -1
  111. package/lib/manifest/validation.d.ts +17 -0
  112. package/lib/manifest/validation.d.ts.map +1 -1
  113. package/lib/manifest/validation.js +31 -1
  114. package/lib/manifest/validation.js.map +1 -1
  115. package/lib/manifest/validation.mjs +31 -1
  116. package/lib/manifest/validation.mjs.map +1 -1
  117. package/lib/sdui/actions.d.mts.map +1 -1
  118. package/lib/sdui/actions.d.ts.map +1 -1
  119. package/lib/sdui/actions.js +23 -13
  120. package/lib/sdui/actions.js.map +1 -1
  121. package/lib/sdui/actions.mjs +23 -13
  122. package/lib/sdui/actions.mjs.map +1 -1
  123. package/lib/sdui/component.d.mts +28 -11
  124. package/lib/sdui/component.d.mts.map +1 -1
  125. package/lib/sdui/component.d.ts +28 -11
  126. package/lib/sdui/component.d.ts.map +1 -1
  127. package/lib/sdui/component.js +69 -36
  128. package/lib/sdui/component.js.map +1 -1
  129. package/lib/sdui/component.mjs +69 -36
  130. package/lib/sdui/component.mjs.map +1 -1
  131. package/lib/sdui/components.d.mts +1141 -132
  132. package/lib/sdui/components.d.mts.map +1 -1
  133. package/lib/sdui/components.d.ts +1141 -132
  134. package/lib/sdui/components.d.ts.map +1 -1
  135. package/lib/sdui/components.js +834 -206
  136. package/lib/sdui/components.js.map +1 -1
  137. package/lib/sdui/components.mjs +830 -203
  138. package/lib/sdui/components.mjs.map +1 -1
  139. package/lib/sdui/directives.d.mts.map +1 -1
  140. package/lib/sdui/directives.d.ts.map +1 -1
  141. package/lib/sdui/directives.js +4 -1
  142. package/lib/sdui/directives.js.map +1 -1
  143. package/lib/sdui/directives.mjs +4 -1
  144. package/lib/sdui/directives.mjs.map +1 -1
  145. package/lib/sdui/index.d.mts +314 -261
  146. package/lib/sdui/index.d.mts.map +1 -1
  147. package/lib/sdui/index.d.ts +314 -261
  148. package/lib/sdui/index.d.ts.map +1 -1
  149. package/lib/sdui/index.js +255 -204
  150. package/lib/sdui/index.js.map +1 -1
  151. package/lib/sdui/index.mjs +128 -103
  152. package/lib/sdui/index.mjs.map +1 -1
  153. package/lib/sdui/propTypes.d.mts +6330 -0
  154. package/lib/sdui/propTypes.d.mts.map +1 -0
  155. package/lib/sdui/propTypes.d.ts +6330 -0
  156. package/lib/sdui/propTypes.d.ts.map +1 -0
  157. package/lib/sdui/propTypes.js +14 -0
  158. package/lib/sdui/propTypes.js.map +1 -0
  159. package/lib/sdui/propTypes.mjs +13 -0
  160. package/lib/sdui/propTypes.mjs.map +1 -0
  161. package/lib/sdui/render.d.mts +1 -1
  162. package/lib/sdui/render.d.mts.map +1 -1
  163. package/lib/sdui/render.d.ts +1 -1
  164. package/lib/sdui/render.d.ts.map +1 -1
  165. package/lib/sdui/render.js +11 -3
  166. package/lib/sdui/render.js.map +1 -1
  167. package/lib/sdui/render.mjs +11 -3
  168. package/lib/sdui/render.mjs.map +1 -1
  169. package/lib/sdui/state.d.mts.map +1 -1
  170. package/lib/sdui/state.d.ts.map +1 -1
  171. package/lib/sdui/state.js +3 -1
  172. package/lib/sdui/state.js.map +1 -1
  173. package/lib/sdui/state.mjs +3 -1
  174. package/lib/sdui/state.mjs.map +1 -1
  175. package/package.json +1 -1
  176. package/src/lib/manifest/app.ts +46 -2
  177. package/src/lib/manifest/category.ts +35 -7
  178. package/src/lib/manifest/custom-object-field-section.ts +37 -1
  179. package/src/lib/manifest/custom-object-page-layout.ts +67 -2
  180. package/src/lib/manifest/custom-object.ts +88 -4
  181. package/src/lib/manifest/existing-manifest-context.ts +673 -0
  182. package/src/lib/manifest/field.ts +160 -3
  183. package/src/lib/manifest/index.ts +39 -4
  184. package/src/lib/manifest/list-view.ts +50 -1
  185. package/src/lib/manifest/manifest-builder.ts +115 -5
  186. package/src/lib/manifest/manifest-function.ts +44 -4
  187. package/src/lib/manifest/rule.ts +60 -1
  188. package/src/lib/manifest/sdui-page.ts +37 -2
  189. package/src/lib/manifest/validation.ts +48 -1
  190. package/src/lib/sdui/actions.ts +23 -10
  191. package/src/lib/sdui/component.ts +84 -44
  192. package/src/lib/sdui/components.ts +1627 -212
  193. package/src/lib/sdui/directives.ts +4 -1
  194. package/src/lib/sdui/index.ts +565 -200
  195. package/src/lib/sdui/propTypes.ts +8470 -0
  196. package/src/lib/sdui/render.ts +13 -5
  197. package/src/lib/sdui/state.ts +8 -2
  198. package/src/version.ts +1 -1
  199. package/version.d.mts +1 -1
  200. package/version.d.ts +1 -1
  201. package/version.js +1 -1
  202. package/version.mjs +1 -1
@@ -1,9 +1,16 @@
1
+ import { getExistingManifestContext } from "./existing-manifest-context.mjs";
1
2
  /**
2
3
  * Defines a serverless function and registers it with the manifest.
3
4
  *
4
5
  * A `ManifestFunction` packages TypeScript handler code that runs on Rippling's
5
- * serverless infrastructure. Functions are the backing implementation for
6
- * {@link SduiPage} surfaces. The handler must export `onRipplingEvent`.
6
+ * serverless infrastructure. The handler must export `onRipplingEvent`.
7
+ *
8
+ * Functions have two primary uses:
9
+ * 1. **Authoring SDUI for Custom Apps** — the function returns an SDUI spec
10
+ * (built with `@rippling/sdui-builder`) that renders as a page tab. Wrap the
11
+ * function in an {@link SduiPage} and reference it from an {@link App}.
12
+ * 2. **Workflow / event handlers** — functions invoked from rules, automations,
13
+ * or callbacks that do not render UI.
7
14
  *
8
15
  * This class is named `ManifestFunction` to avoid collision with the JavaScript
9
16
  * built-in `Function`. It is also re-exported as `Function` from the barrel for
@@ -28,6 +35,12 @@
28
35
  * @see {@link SduiPage} — wraps a `ManifestFunction` as a navigable UI surface.
29
36
  */
30
37
  export class ManifestFunction {
38
+ static toDeletionIdentifier(apiName) {
39
+ return {
40
+ type: ManifestFunction.componentType,
41
+ api_name: apiName,
42
+ };
43
+ }
31
44
  /**
32
45
  * @param scope - The manifest to register this function with.
33
46
  * @param props - Initialization properties.
@@ -46,6 +59,33 @@ export class ManifestFunction {
46
59
  this._isAsync = props.isAsync ?? false;
47
60
  scope._register(this);
48
61
  }
62
+ /**
63
+ * Loads this function from the active existing-manifest JSON context.
64
+ */
65
+ static loadFromExisting(apiName, options = {}) {
66
+ return getExistingManifestContext(options).loadFunction(apiName);
67
+ }
68
+ /** @internal Hydrates a function from existing manifest wire JSON. */
69
+ static _fromExistingComponent(scope, component) {
70
+ const props = {
71
+ apiName: component['api_name'],
72
+ name: component['name'] ?? component['api_name'],
73
+ };
74
+ if (component['code_draft'] !== undefined)
75
+ props.code = component['code_draft'];
76
+ if (component['description'] !== undefined)
77
+ props.description = component['description'];
78
+ if (component['dependencies'] !== undefined)
79
+ props.dependencies = component['dependencies'];
80
+ if (component['deployment_options'] !== undefined) {
81
+ props.deploymentOptions = component['deployment_options'];
82
+ }
83
+ if (component['allowed_domains'] !== undefined)
84
+ props.allowedDomains = component['allowed_domains'];
85
+ if (component['is_async'] !== undefined)
86
+ props.isAsync = component['is_async'];
87
+ return new ManifestFunction(scope, props);
88
+ }
49
89
  /**
50
90
  * Returns the api_name of this function (e.g. `'gym_today_schedule_fn'`).
51
91
  */
@@ -59,7 +99,7 @@ export class ManifestFunction {
59
99
  */
60
100
  toDict() {
61
101
  const component = {
62
- type: 'FUNCTION',
102
+ type: ManifestFunction.componentType,
63
103
  name: this._name,
64
104
  api_name: this._apiName,
65
105
  };
@@ -78,4 +118,5 @@ export class ManifestFunction {
78
118
  return component;
79
119
  }
80
120
  }
121
+ ManifestFunction.componentType = 'FUNCTION';
81
122
  //# sourceMappingURL=manifest-function.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-function.mjs","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"AAkEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,gBAAgB;IAU3B;;;OAGG;IACH,YAAY,KAAoB,EAAE,KAA4B;QAC5D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,SAAS,GAAwB;YACrC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QACF,IAAI,IAAI,CAAC,YAAY;YAAE,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QACpE,IAAI,IAAI,CAAC,KAAK;YAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;YAAE,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/E,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI;YAAE,SAAS,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC/F,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;YAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QACtF,IAAI,IAAI,CAAC,QAAQ;YAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"manifest-function.mjs","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import { type TriggerType, type UpdateTriggerType } from "./_helpers.mjs";
2
2
  import type { CustomObject } from "./custom-object.mjs";
3
+ import { type ExistingManifestContextOptions } from "./existing-manifest-context.mjs";
3
4
  import type { Field } from "./field.mjs";
5
+ import type { ManifestComponentDeletion } from "./manifest-builder.mjs";
6
+ export interface RuleDeletionIdentifier {
7
+ flowId: string;
8
+ modelRqlName: string;
9
+ }
4
10
  /**
5
11
  * A single action performed when a {@link Rule} fires.
6
12
  */
@@ -76,6 +82,9 @@ export interface RuleProps {
76
82
  */
77
83
  actions?: RuleAction[];
78
84
  }
85
+ export interface RuleLoadFromExistingOptions extends ExistingManifestContextOptions {
86
+ customObjectApiName?: string;
87
+ }
79
88
  /**
80
89
  * Defines a record-triggered automation rule and registers it with the manifest.
81
90
  *
@@ -95,6 +104,8 @@ export interface RuleProps {
95
104
  * ```
96
105
  */
97
106
  export declare class Rule {
107
+ static readonly componentType: "CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW";
108
+ static toDeletionIdentifier(identifier: RuleDeletionIdentifier): ManifestComponentDeletion;
98
109
  private readonly _flowId;
99
110
  private readonly _customObjectApiName;
100
111
  private readonly _flowName;
@@ -109,6 +120,12 @@ export declare class Rule {
109
120
  * @throws {Error} If `props.triggerType` is not one of `'CREATE'`, `'UPDATE'`, `'CREATE_OR_UPDATE'`.
110
121
  */
111
122
  constructor(customObject: CustomObject, props: RuleProps);
123
+ /**
124
+ * Loads this record-triggered rule from the active existing-manifest JSON context.
125
+ */
126
+ static loadFromExisting(flowId: string, options?: RuleLoadFromExistingOptions): Rule;
127
+ /** @internal Hydrates a record-triggered rule from existing manifest wire JSON. */
128
+ static _fromExistingComponent(customObject: CustomObject, component: Record<string, any>, resolveField: (apiName: string) => Field): Rule;
112
129
  /**
113
130
  * Returns the stable identifier for this rule (e.g. `'gym_default_enrollment_status'`).
114
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE;OACxD,KAAK,EAAE,YAAY,EAAE;OACrB,KAAK,EAAE,KAAK,EAAE;AAErB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AA0BD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAkBxD;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
1
+ {"version":3,"file":"rule.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE;OACxD,KAAK,EAAE,YAAY,EAAE;OACrB,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,KAAK,EAAE;OACd,KAAK,EAAE,yBAAyB,EAAE;AAEzC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,8BAA8B;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA8BD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAI;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,qCAAqC,CAAU;IAE/E,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,GAAG,yBAAyB;IAQ1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAkBxD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC,GAAG,IAAI;IAIxF,mFAAmF;IACnF,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GACvC,IAAI;IAsBP;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
@@ -1,6 +1,12 @@
1
1
  import { type TriggerType, type UpdateTriggerType } from "./_helpers.js";
2
2
  import type { CustomObject } from "./custom-object.js";
3
+ import { type ExistingManifestContextOptions } from "./existing-manifest-context.js";
3
4
  import type { Field } from "./field.js";
5
+ import type { ManifestComponentDeletion } from "./manifest-builder.js";
6
+ export interface RuleDeletionIdentifier {
7
+ flowId: string;
8
+ modelRqlName: string;
9
+ }
4
10
  /**
5
11
  * A single action performed when a {@link Rule} fires.
6
12
  */
@@ -76,6 +82,9 @@ export interface RuleProps {
76
82
  */
77
83
  actions?: RuleAction[];
78
84
  }
85
+ export interface RuleLoadFromExistingOptions extends ExistingManifestContextOptions {
86
+ customObjectApiName?: string;
87
+ }
79
88
  /**
80
89
  * Defines a record-triggered automation rule and registers it with the manifest.
81
90
  *
@@ -95,6 +104,8 @@ export interface RuleProps {
95
104
  * ```
96
105
  */
97
106
  export declare class Rule {
107
+ static readonly componentType: "CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW";
108
+ static toDeletionIdentifier(identifier: RuleDeletionIdentifier): ManifestComponentDeletion;
98
109
  private readonly _flowId;
99
110
  private readonly _customObjectApiName;
100
111
  private readonly _flowName;
@@ -109,6 +120,12 @@ export declare class Rule {
109
120
  * @throws {Error} If `props.triggerType` is not one of `'CREATE'`, `'UPDATE'`, `'CREATE_OR_UPDATE'`.
110
121
  */
111
122
  constructor(customObject: CustomObject, props: RuleProps);
123
+ /**
124
+ * Loads this record-triggered rule from the active existing-manifest JSON context.
125
+ */
126
+ static loadFromExisting(flowId: string, options?: RuleLoadFromExistingOptions): Rule;
127
+ /** @internal Hydrates a record-triggered rule from existing manifest wire JSON. */
128
+ static _fromExistingComponent(customObject: CustomObject, component: Record<string, any>, resolveField: (apiName: string) => Field): Rule;
112
129
  /**
113
130
  * Returns the stable identifier for this rule (e.g. `'gym_default_enrollment_status'`).
114
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE;OACxD,KAAK,EAAE,YAAY,EAAE;OACrB,KAAK,EAAE,KAAK,EAAE;AAErB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AA0BD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAkBxD;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE;OACxD,KAAK,EAAE,YAAY,EAAE;OACrB,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,KAAK,EAAE;OACd,KAAK,EAAE,yBAAyB,EAAE;AAEzC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,8BAA8B;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA8BD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAI;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,qCAAqC,CAAU;IAE/E,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,GAAG,yBAAyB;IAQ1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAkBxD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC,GAAG,IAAI;IAIxF,mFAAmF;IACnF,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GACvC,IAAI;IAsBP;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Rule = void 0;
4
4
  const _helpers_1 = require("./_helpers.js");
5
+ const existing_manifest_context_1 = require("./existing-manifest-context.js");
5
6
  /** SELECT / RADIO rule actions use list `fixed_value` (Rippling rule builder). */
6
7
  function fixedValueToWire(targetField, value) {
7
8
  const ft = targetField.getFieldType();
@@ -25,6 +26,9 @@ function actionToDict(action) {
25
26
  }
26
27
  return out;
27
28
  }
29
+ function hasOwn(value, key) {
30
+ return Object.prototype.hasOwnProperty.call(value, key);
31
+ }
28
32
  /**
29
33
  * Defines a record-triggered automation rule and registers it with the manifest.
30
34
  *
@@ -44,6 +48,13 @@ function actionToDict(action) {
44
48
  * ```
45
49
  */
46
50
  class Rule {
51
+ static toDeletionIdentifier(identifier) {
52
+ return {
53
+ type: Rule.componentType,
54
+ flow_id: identifier.flowId,
55
+ model_rql_name: identifier.modelRqlName,
56
+ };
57
+ }
47
58
  /**
48
59
  * @param customObject - The custom object this rule is attached to.
49
60
  * @param props - Initialization properties.
@@ -64,6 +75,38 @@ class Rule {
64
75
  this._actions = [...(props.actions ?? [])];
65
76
  customObject._register(this);
66
77
  }
78
+ /**
79
+ * Loads this record-triggered rule from the active existing-manifest JSON context.
80
+ */
81
+ static loadFromExisting(flowId, options = {}) {
82
+ return (0, existing_manifest_context_1.getExistingManifestContext)(options).loadRule(flowId, options);
83
+ }
84
+ /** @internal Hydrates a record-triggered rule from existing manifest wire JSON. */
85
+ static _fromExistingComponent(customObject, component, resolveField) {
86
+ const props = {
87
+ flowId: component['flow_id'],
88
+ flowName: component['flow_name'] ?? component['flow_id'],
89
+ triggerType: component['trigger_type'],
90
+ actions: (component['actions'] ?? []).map((action) => {
91
+ const out = {
92
+ targetField: resolveField(action['target_field']),
93
+ };
94
+ if (hasOwn(action, 'fixed_value'))
95
+ out.fixedValue = action['fixed_value'];
96
+ if (hasOwn(action, 'rql_formula'))
97
+ out.rqlFormula = action['rql_formula'];
98
+ return out;
99
+ }),
100
+ };
101
+ if (component['description'] !== undefined)
102
+ props.description = component['description'];
103
+ if (component['rql_condition'] !== undefined)
104
+ props.rqlCondition = component['rql_condition'];
105
+ if (component['update_trigger_type'] !== undefined) {
106
+ props.updateTriggerType = component['update_trigger_type'];
107
+ }
108
+ return new Rule(customObject, props);
109
+ }
67
110
  /**
68
111
  * Returns the stable identifier for this rule (e.g. `'gym_default_enrollment_status'`).
69
112
  */
@@ -84,7 +127,7 @@ class Rule {
84
127
  */
85
128
  toDict() {
86
129
  const component = {
87
- type: 'CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW',
130
+ type: Rule.componentType,
88
131
  model_rql_name: this._customObjectApiName,
89
132
  flow_id: this._flowId,
90
133
  flow_name: this._flowName,
@@ -102,4 +145,5 @@ class Rule {
102
145
  }
103
146
  }
104
147
  exports.Rule = Rule;
148
+ Rule.componentType = 'CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW';
105
149
  //# sourceMappingURL=rule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { generateId } from "./_helpers.mjs";
2
+ import { getExistingManifestContext } from "./existing-manifest-context.mjs";
2
3
  /** SELECT / RADIO rule actions use list `fixed_value` (Rippling rule builder). */
3
4
  function fixedValueToWire(targetField, value) {
4
5
  const ft = targetField.getFieldType();
@@ -22,6 +23,9 @@ function actionToDict(action) {
22
23
  }
23
24
  return out;
24
25
  }
26
+ function hasOwn(value, key) {
27
+ return Object.prototype.hasOwnProperty.call(value, key);
28
+ }
25
29
  /**
26
30
  * Defines a record-triggered automation rule and registers it with the manifest.
27
31
  *
@@ -41,6 +45,13 @@ function actionToDict(action) {
41
45
  * ```
42
46
  */
43
47
  export class Rule {
48
+ static toDeletionIdentifier(identifier) {
49
+ return {
50
+ type: Rule.componentType,
51
+ flow_id: identifier.flowId,
52
+ model_rql_name: identifier.modelRqlName,
53
+ };
54
+ }
44
55
  /**
45
56
  * @param customObject - The custom object this rule is attached to.
46
57
  * @param props - Initialization properties.
@@ -61,6 +72,38 @@ export class Rule {
61
72
  this._actions = [...(props.actions ?? [])];
62
73
  customObject._register(this);
63
74
  }
75
+ /**
76
+ * Loads this record-triggered rule from the active existing-manifest JSON context.
77
+ */
78
+ static loadFromExisting(flowId, options = {}) {
79
+ return getExistingManifestContext(options).loadRule(flowId, options);
80
+ }
81
+ /** @internal Hydrates a record-triggered rule from existing manifest wire JSON. */
82
+ static _fromExistingComponent(customObject, component, resolveField) {
83
+ const props = {
84
+ flowId: component['flow_id'],
85
+ flowName: component['flow_name'] ?? component['flow_id'],
86
+ triggerType: component['trigger_type'],
87
+ actions: (component['actions'] ?? []).map((action) => {
88
+ const out = {
89
+ targetField: resolveField(action['target_field']),
90
+ };
91
+ if (hasOwn(action, 'fixed_value'))
92
+ out.fixedValue = action['fixed_value'];
93
+ if (hasOwn(action, 'rql_formula'))
94
+ out.rqlFormula = action['rql_formula'];
95
+ return out;
96
+ }),
97
+ };
98
+ if (component['description'] !== undefined)
99
+ props.description = component['description'];
100
+ if (component['rql_condition'] !== undefined)
101
+ props.rqlCondition = component['rql_condition'];
102
+ if (component['update_trigger_type'] !== undefined) {
103
+ props.updateTriggerType = component['update_trigger_type'];
104
+ }
105
+ return new Rule(customObject, props);
106
+ }
64
107
  /**
65
108
  * Returns the stable identifier for this rule (e.g. `'gym_default_enrollment_status'`).
66
109
  */
@@ -81,7 +124,7 @@ export class Rule {
81
124
  */
82
125
  toDict() {
83
126
  const component = {
84
- type: 'CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW',
127
+ type: Rule.componentType,
85
128
  model_rql_name: this._customObjectApiName,
86
129
  flow_id: this._flowId,
87
130
  flow_name: this._flowName,
@@ -98,4 +141,5 @@ export class Rule {
98
141
  return component;
99
142
  }
100
143
  }
144
+ Rule.componentType = 'CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW';
101
145
  //# sourceMappingURL=rule.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule.mjs","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule.mjs","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { type ExistingManifestContextOptions } from "./existing-manifest-context.mjs";
1
2
  import type { ManifestFunction } from "./manifest-function.mjs";
2
- import type { ManifestScope } from "./manifest-builder.mjs";
3
+ import type { ManifestComponentDeletion, ManifestScope } from "./manifest-builder.mjs";
3
4
  /**
4
5
  * Initialization properties for {@link SduiPage}.
5
6
  */
@@ -57,6 +58,8 @@ export interface SduiPageProps {
57
58
  * @see {@link App} — hosts this page as a tab via `pages`.
58
59
  */
59
60
  export declare class SduiPage {
61
+ static readonly componentType: "SDUI_PAGE";
62
+ static toDeletionIdentifier(sduiPageId: string): ManifestComponentDeletion;
60
63
  private readonly _sduiPageId;
61
64
  private readonly _name;
62
65
  private readonly _functionApiName;
@@ -67,6 +70,12 @@ export declare class SduiPage {
67
70
  * @throws {Error} If `sduiPageId`, `name`, or `function` is missing.
68
71
  */
69
72
  constructor(scope: ManifestScope, props: SduiPageProps);
73
+ /**
74
+ * Loads this SDUI page from the active existing-manifest JSON context.
75
+ */
76
+ static loadFromExisting(sduiPageId: string, options?: ExistingManifestContextOptions): SduiPage;
77
+ /** @internal Hydrates an SDUI page from existing manifest wire JSON. */
78
+ static _fromExistingComponent(scope: ManifestScope, component: Record<string, any>, resolveFunction: (apiName: string) => ManifestFunction | string): SduiPage;
70
79
  /**
71
80
  * Returns the unique page identifier (e.g. `'gym_today_schedule'`).
72
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sdui-page.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/sdui-page.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,gBAAgB,EAAE;OACzB,KAAK,EAAE,aAAa,EAAE;AAE7B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;;;OAIG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa;IAWtD;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAS9B"}
1
+ {"version":3,"file":"sdui-page.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/sdui-page.ts"],"names":[],"mappings":"OAAO,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,gBAAgB,EAAE;OACzB,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,QAAQ;IACnB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,WAAW,CAAU;IAErD,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,yBAAyB;IAO1E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;;;OAIG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa;IAWtD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC,GAAG,QAAQ;IAInG,wEAAwE;IACxE,MAAM,CAAC,sBAAsB,CAC3B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,MAAM,GAC9D,QAAQ;IAaX;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAS9B"}
@@ -1,5 +1,6 @@
1
+ import { type ExistingManifestContextOptions } from "./existing-manifest-context.js";
1
2
  import type { ManifestFunction } from "./manifest-function.js";
2
- import type { ManifestScope } from "./manifest-builder.js";
3
+ import type { ManifestComponentDeletion, ManifestScope } from "./manifest-builder.js";
3
4
  /**
4
5
  * Initialization properties for {@link SduiPage}.
5
6
  */
@@ -57,6 +58,8 @@ export interface SduiPageProps {
57
58
  * @see {@link App} — hosts this page as a tab via `pages`.
58
59
  */
59
60
  export declare class SduiPage {
61
+ static readonly componentType: "SDUI_PAGE";
62
+ static toDeletionIdentifier(sduiPageId: string): ManifestComponentDeletion;
60
63
  private readonly _sduiPageId;
61
64
  private readonly _name;
62
65
  private readonly _functionApiName;
@@ -67,6 +70,12 @@ export declare class SduiPage {
67
70
  * @throws {Error} If `sduiPageId`, `name`, or `function` is missing.
68
71
  */
69
72
  constructor(scope: ManifestScope, props: SduiPageProps);
73
+ /**
74
+ * Loads this SDUI page from the active existing-manifest JSON context.
75
+ */
76
+ static loadFromExisting(sduiPageId: string, options?: ExistingManifestContextOptions): SduiPage;
77
+ /** @internal Hydrates an SDUI page from existing manifest wire JSON. */
78
+ static _fromExistingComponent(scope: ManifestScope, component: Record<string, any>, resolveFunction: (apiName: string) => ManifestFunction | string): SduiPage;
70
79
  /**
71
80
  * Returns the unique page identifier (e.g. `'gym_today_schedule'`).
72
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sdui-page.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/sdui-page.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,gBAAgB,EAAE;OACzB,KAAK,EAAE,aAAa,EAAE;AAE7B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;;;OAIG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa;IAWtD;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAS9B"}
1
+ {"version":3,"file":"sdui-page.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/sdui-page.ts"],"names":[],"mappings":"OAAO,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,gBAAgB,EAAE;OACzB,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,QAAQ;IACnB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,WAAW,CAAU;IAErD,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,yBAAyB;IAO1E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;;;OAIG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa;IAWtD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC,GAAG,QAAQ;IAInG,wEAAwE;IACxE,MAAM,CAAC,sBAAsB,CAC3B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,MAAM,GAC9D,QAAQ;IAaX;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAS9B"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SduiPage = void 0;
4
+ const existing_manifest_context_1 = require("./existing-manifest-context.js");
4
5
  /**
5
6
  * Defines an SDUI page and registers it with the manifest.
6
7
  *
@@ -28,6 +29,12 @@ exports.SduiPage = void 0;
28
29
  * @see {@link App} — hosts this page as a tab via `pages`.
29
30
  */
30
31
  class SduiPage {
32
+ static toDeletionIdentifier(sduiPageId) {
33
+ return {
34
+ type: SduiPage.componentType,
35
+ sdui_page_id: sduiPageId,
36
+ };
37
+ }
31
38
  /**
32
39
  * @param scope - The manifest to register this page with.
33
40
  * @param props - Initialization properties.
@@ -46,6 +53,25 @@ class SduiPage {
46
53
  this._description = props.description ?? '';
47
54
  scope._register(this);
48
55
  }
56
+ /**
57
+ * Loads this SDUI page from the active existing-manifest JSON context.
58
+ */
59
+ static loadFromExisting(sduiPageId, options = {}) {
60
+ return (0, existing_manifest_context_1.getExistingManifestContext)(options).loadSduiPage(sduiPageId);
61
+ }
62
+ /** @internal Hydrates an SDUI page from existing manifest wire JSON. */
63
+ static _fromExistingComponent(scope, component, resolveFunction) {
64
+ const functionApiName = component['function_api_name'];
65
+ const props = {
66
+ sduiPageId: component['sdui_page_id'],
67
+ name: component['name'] ?? component['sdui_page_id'],
68
+ function: typeof functionApiName === 'string' ? resolveFunction(functionApiName) : functionApiName,
69
+ };
70
+ if (component['description'] !== undefined) {
71
+ props.description = component['description'];
72
+ }
73
+ return new SduiPage(scope, props);
74
+ }
49
75
  /**
50
76
  * Returns the unique page identifier (e.g. `'gym_today_schedule'`).
51
77
  */
@@ -71,7 +97,7 @@ class SduiPage {
71
97
  */
72
98
  toDict() {
73
99
  return {
74
- type: 'SDUI_PAGE',
100
+ type: SduiPage.componentType,
75
101
  name: this._name,
76
102
  sdui_page_id: this._sduiPageId,
77
103
  function_api_name: this._functionApiName,
@@ -80,4 +106,5 @@ class SduiPage {
80
106
  }
81
107
  }
82
108
  exports.SduiPage = SduiPage;
109
+ SduiPage.componentType = 'SDUI_PAGE';
83
110
  //# sourceMappingURL=sdui-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdui-page.js","sourceRoot":"","sources":["../../src/lib/manifest/sdui-page.ts"],"names":[],"mappings":";;;AAkCA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,QAAQ;IAMnB;;;;OAIG;IACH,YAAY,KAAoB,EAAE,KAAoB;QACpD,IAAI,CAAC,KAAK,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1G,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;YACxC,WAAW,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACJ,CAAC;CACF;AAzDD,4BAyDC"}
1
+ {"version":3,"file":"sdui-page.js","sourceRoot":"","sources":["../../src/lib/manifest/sdui-page.ts"],"names":[],"mappings":";;;AAAA,8EAA8G;AAmC9G;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,QAAQ;IAGnB,MAAM,CAAC,oBAAoB,CAAC,UAAkB;QAC5C,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,YAAY,EAAE,UAAU;SACzB,CAAC;IACJ,CAAC;IAOD;;;;OAIG;IACH,YAAY,KAAoB,EAAE,KAAoB;QACpD,IAAI,CAAC,KAAK,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1G,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAkB,EAAE,UAA0C,EAAE;QACtF,OAAO,IAAA,sDAA0B,EAAC,OAAO,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,wEAAwE;IACxE,MAAM,CAAC,sBAAsB,CAC3B,KAAoB,EACpB,SAA8B,EAC9B,eAA+D;QAE/D,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACvD,MAAM,KAAK,GAAkB;YAC3B,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC;YACrC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC;YACpD,QAAQ,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe;SACnG,CAAC;QACF,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3C,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;YACxC,WAAW,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACJ,CAAC;;AA1FH,4BA2FC;AA1FiB,sBAAa,GAAG,WAAoB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { getExistingManifestContext } from "./existing-manifest-context.mjs";
1
2
  /**
2
3
  * Defines an SDUI page and registers it with the manifest.
3
4
  *
@@ -25,6 +26,12 @@
25
26
  * @see {@link App} — hosts this page as a tab via `pages`.
26
27
  */
27
28
  export class SduiPage {
29
+ static toDeletionIdentifier(sduiPageId) {
30
+ return {
31
+ type: SduiPage.componentType,
32
+ sdui_page_id: sduiPageId,
33
+ };
34
+ }
28
35
  /**
29
36
  * @param scope - The manifest to register this page with.
30
37
  * @param props - Initialization properties.
@@ -43,6 +50,25 @@ export class SduiPage {
43
50
  this._description = props.description ?? '';
44
51
  scope._register(this);
45
52
  }
53
+ /**
54
+ * Loads this SDUI page from the active existing-manifest JSON context.
55
+ */
56
+ static loadFromExisting(sduiPageId, options = {}) {
57
+ return getExistingManifestContext(options).loadSduiPage(sduiPageId);
58
+ }
59
+ /** @internal Hydrates an SDUI page from existing manifest wire JSON. */
60
+ static _fromExistingComponent(scope, component, resolveFunction) {
61
+ const functionApiName = component['function_api_name'];
62
+ const props = {
63
+ sduiPageId: component['sdui_page_id'],
64
+ name: component['name'] ?? component['sdui_page_id'],
65
+ function: typeof functionApiName === 'string' ? resolveFunction(functionApiName) : functionApiName,
66
+ };
67
+ if (component['description'] !== undefined) {
68
+ props.description = component['description'];
69
+ }
70
+ return new SduiPage(scope, props);
71
+ }
46
72
  /**
47
73
  * Returns the unique page identifier (e.g. `'gym_today_schedule'`).
48
74
  */
@@ -68,7 +94,7 @@ export class SduiPage {
68
94
  */
69
95
  toDict() {
70
96
  return {
71
- type: 'SDUI_PAGE',
97
+ type: SduiPage.componentType,
72
98
  name: this._name,
73
99
  sdui_page_id: this._sduiPageId,
74
100
  function_api_name: this._functionApiName,
@@ -76,4 +102,5 @@ export class SduiPage {
76
102
  };
77
103
  }
78
104
  }
105
+ SduiPage.componentType = 'SDUI_PAGE';
79
106
  //# sourceMappingURL=sdui-page.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdui-page.mjs","sourceRoot":"","sources":["../../src/lib/manifest/sdui-page.ts"],"names":[],"mappings":"AAkCA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,QAAQ;IAMnB;;;;OAIG;IACH,YAAY,KAAoB,EAAE,KAAoB;QACpD,IAAI,CAAC,KAAK,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1G,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;YACxC,WAAW,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sdui-page.mjs","sourceRoot":"","sources":["../../src/lib/manifest/sdui-page.ts"],"names":[],"mappings":"OAAO,EAAE,0BAA0B,EAAuC;AAmC1E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,QAAQ;IAGnB,MAAM,CAAC,oBAAoB,CAAC,UAAkB;QAC5C,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,YAAY,EAAE,UAAU;SACzB,CAAC;IACJ,CAAC;IAOD;;;;OAIG;IACH,YAAY,KAAoB,EAAE,KAAoB;QACpD,IAAI,CAAC,KAAK,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC1G,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAkB,EAAE,UAA0C,EAAE;QACtF,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,wEAAwE;IACxE,MAAM,CAAC,sBAAsB,CAC3B,KAAoB,EACpB,SAA8B,EAC9B,eAA+D;QAE/D,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACvD,MAAM,KAAK,GAAkB;YAC3B,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC;YACrC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC;YACpD,QAAQ,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe;SACnG,CAAC;QACF,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3C,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;YACxC,WAAW,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACJ,CAAC;;AAzFe,sBAAa,GAAG,WAAoB,CAAC"}