@chili-publish/studio-sdk 0.121.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.
Files changed (264) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -0
  3. package/_bundles/main.js +3 -0
  4. package/_bundles/main.js.LICENSE.txt +14 -0
  5. package/_bundles/main.js.map +1 -0
  6. package/_bundles/report.html +38 -0
  7. package/lib/editor-engine.json +3 -0
  8. package/lib/package.json +89 -0
  9. package/lib/src/controllers/ActionController.d.ts +38 -0
  10. package/lib/src/controllers/ActionController.js +79 -0
  11. package/lib/src/controllers/ActionController.js.map +1 -0
  12. package/lib/src/controllers/AnimationController.d.ts +70 -0
  13. package/lib/src/controllers/AnimationController.js +135 -0
  14. package/lib/src/controllers/AnimationController.js.map +1 -0
  15. package/lib/src/controllers/CanvasController.d.ts +34 -0
  16. package/lib/src/controllers/CanvasController.js +71 -0
  17. package/lib/src/controllers/CanvasController.js.map +1 -0
  18. package/lib/src/controllers/CharacterStyleController.d.ts +55 -0
  19. package/lib/src/controllers/CharacterStyleController.js +107 -0
  20. package/lib/src/controllers/CharacterStyleController.js.map +1 -0
  21. package/lib/src/controllers/ColorStyleController.d.ts +62 -0
  22. package/lib/src/controllers/ColorStyleController.js +113 -0
  23. package/lib/src/controllers/ColorStyleController.js.map +1 -0
  24. package/lib/src/controllers/ConfigurationController.d.ts +27 -0
  25. package/lib/src/controllers/ConfigurationController.js +60 -0
  26. package/lib/src/controllers/ConfigurationController.js.map +1 -0
  27. package/lib/src/controllers/ConnectorController.d.ts +90 -0
  28. package/lib/src/controllers/ConnectorController.js +196 -0
  29. package/lib/src/controllers/ConnectorController.js.map +1 -0
  30. package/lib/src/controllers/DebugController.d.ts +33 -0
  31. package/lib/src/controllers/DebugController.js +72 -0
  32. package/lib/src/controllers/DebugController.js.map +1 -0
  33. package/lib/src/controllers/DocumentController.d.ts +40 -0
  34. package/lib/src/controllers/DocumentController.js +163 -0
  35. package/lib/src/controllers/DocumentController.js.map +1 -0
  36. package/lib/src/controllers/ExperimentController.d.ts +39 -0
  37. package/lib/src/controllers/ExperimentController.js +83 -0
  38. package/lib/src/controllers/ExperimentController.js.map +1 -0
  39. package/lib/src/controllers/FontConnectorController.d.ts +95 -0
  40. package/lib/src/controllers/FontConnectorController.js +168 -0
  41. package/lib/src/controllers/FontConnectorController.js.map +1 -0
  42. package/lib/src/controllers/FontController.d.ts +50 -0
  43. package/lib/src/controllers/FontController.js +95 -0
  44. package/lib/src/controllers/FontController.js.map +1 -0
  45. package/lib/src/controllers/FrameController.d.ts +369 -0
  46. package/lib/src/controllers/FrameController.js +599 -0
  47. package/lib/src/controllers/FrameController.js.map +1 -0
  48. package/lib/src/controllers/LayoutController.d.ts +103 -0
  49. package/lib/src/controllers/LayoutController.js +190 -0
  50. package/lib/src/controllers/LayoutController.js.map +1 -0
  51. package/lib/src/controllers/MediaConnectorController.d.ts +95 -0
  52. package/lib/src/controllers/MediaConnectorController.js +170 -0
  53. package/lib/src/controllers/MediaConnectorController.js.map +1 -0
  54. package/lib/src/controllers/PageController.d.ts +40 -0
  55. package/lib/src/controllers/PageController.js +92 -0
  56. package/lib/src/controllers/PageController.js.map +1 -0
  57. package/lib/src/controllers/ParagraphStyleController.d.ts +62 -0
  58. package/lib/src/controllers/ParagraphStyleController.js +117 -0
  59. package/lib/src/controllers/ParagraphStyleController.js.map +1 -0
  60. package/lib/src/controllers/ShapeController.d.ts +104 -0
  61. package/lib/src/controllers/ShapeController.js +174 -0
  62. package/lib/src/controllers/ShapeController.js.map +1 -0
  63. package/lib/src/controllers/SubscriberController.d.ts +143 -0
  64. package/lib/src/controllers/SubscriberController.js +213 -0
  65. package/lib/src/controllers/SubscriberController.js.map +1 -0
  66. package/lib/src/controllers/TextStyleController.d.ts +31 -0
  67. package/lib/src/controllers/TextStyleController.js +71 -0
  68. package/lib/src/controllers/TextStyleController.js.map +1 -0
  69. package/lib/src/controllers/ToolController.d.ts +54 -0
  70. package/lib/src/controllers/ToolController.js +104 -0
  71. package/lib/src/controllers/ToolController.js.map +1 -0
  72. package/lib/src/controllers/UndoManagerController.d.ts +22 -0
  73. package/lib/src/controllers/UndoManagerController.js +56 -0
  74. package/lib/src/controllers/UndoManagerController.js.map +1 -0
  75. package/lib/src/controllers/UtilsController.d.ts +20 -0
  76. package/lib/src/controllers/UtilsController.js +35 -0
  77. package/lib/src/controllers/UtilsController.js.map +1 -0
  78. package/lib/src/controllers/VariableController.d.ts +117 -0
  79. package/lib/src/controllers/VariableController.js +205 -0
  80. package/lib/src/controllers/VariableController.js.map +1 -0
  81. package/lib/src/index.d.ts +93 -0
  82. package/lib/src/index.js +154 -0
  83. package/lib/src/index.js.map +1 -0
  84. package/lib/src/interactions/connector.d.ts +31 -0
  85. package/lib/src/interactions/connector.js +99 -0
  86. package/lib/src/interactions/connector.js.map +1 -0
  87. package/lib/src/setupTests.d.ts +1 -0
  88. package/lib/src/setupTests.js +2 -0
  89. package/lib/src/setupTests.js.map +1 -0
  90. package/lib/src/tests/__mocks__/FrameProperties.d.ts +52 -0
  91. package/lib/src/tests/__mocks__/FrameProperties.js +20 -0
  92. package/lib/src/tests/__mocks__/FrameProperties.js.map +1 -0
  93. package/lib/src/tests/__mocks__/MockImageFrameSource.d.ts +4 -0
  94. package/lib/src/tests/__mocks__/MockImageFrameSource.js +15 -0
  95. package/lib/src/tests/__mocks__/MockImageFrameSource.js.map +1 -0
  96. package/lib/src/tests/__mocks__/animations.d.ts +2 -0
  97. package/lib/src/tests/__mocks__/animations.js +10 -0
  98. package/lib/src/tests/__mocks__/animations.js.map +1 -0
  99. package/lib/src/tests/__mocks__/config.d.ts +5 -0
  100. package/lib/src/tests/__mocks__/config.js +31 -0
  101. package/lib/src/tests/__mocks__/config.js.map +1 -0
  102. package/lib/src/tests/__mocks__/mockDocument.d.ts +1 -0
  103. package/lib/src/tests/__mocks__/mockDocument.js +2 -0
  104. package/lib/src/tests/__mocks__/mockDocument.js.map +1 -0
  105. package/lib/src/tests/controllers/ActionController.test.d.ts +1 -0
  106. package/lib/src/tests/controllers/ActionController.test.js +61 -0
  107. package/lib/src/tests/controllers/ActionController.test.js.map +1 -0
  108. package/lib/src/tests/controllers/AnimationController.test.d.ts +1 -0
  109. package/lib/src/tests/controllers/AnimationController.test.js +91 -0
  110. package/lib/src/tests/controllers/AnimationController.test.js.map +1 -0
  111. package/lib/src/tests/controllers/CanvasController.test.d.ts +1 -0
  112. package/lib/src/tests/controllers/CanvasController.test.js +50 -0
  113. package/lib/src/tests/controllers/CanvasController.test.js.map +1 -0
  114. package/lib/src/tests/controllers/CharacterStyleController.test.d.ts +1 -0
  115. package/lib/src/tests/controllers/CharacterStyleController.test.js +125 -0
  116. package/lib/src/tests/controllers/CharacterStyleController.test.js.map +1 -0
  117. package/lib/src/tests/controllers/ColorStyleController.test.d.ts +1 -0
  118. package/lib/src/tests/controllers/ColorStyleController.test.js +83 -0
  119. package/lib/src/tests/controllers/ColorStyleController.test.js.map +1 -0
  120. package/lib/src/tests/controllers/ConfigurationConnectorController.test.d.ts +1 -0
  121. package/lib/src/tests/controllers/ConfigurationConnectorController.test.js +39 -0
  122. package/lib/src/tests/controllers/ConfigurationConnectorController.test.js.map +1 -0
  123. package/lib/src/tests/controllers/ConnectorController.test.d.ts +1 -0
  124. package/lib/src/tests/controllers/ConnectorController.test.js +77 -0
  125. package/lib/src/tests/controllers/ConnectorController.test.js.map +1 -0
  126. package/lib/src/tests/controllers/DebugController.test.d.ts +1 -0
  127. package/lib/src/tests/controllers/DebugController.test.js +47 -0
  128. package/lib/src/tests/controllers/DebugController.test.js.map +1 -0
  129. package/lib/src/tests/controllers/DocumentController.test.d.ts +1 -0
  130. package/lib/src/tests/controllers/DocumentController.test.js +170 -0
  131. package/lib/src/tests/controllers/DocumentController.test.js.map +1 -0
  132. package/lib/src/tests/controllers/ExperimentController.test.d.ts +1 -0
  133. package/lib/src/tests/controllers/ExperimentController.test.js +53 -0
  134. package/lib/src/tests/controllers/ExperimentController.test.js.map +1 -0
  135. package/lib/src/tests/controllers/FontConnectorController.test.d.ts +1 -0
  136. package/lib/src/tests/controllers/FontConnectorController.test.js +109 -0
  137. package/lib/src/tests/controllers/FontConnectorController.test.js.map +1 -0
  138. package/lib/src/tests/controllers/FontController.test.d.ts +1 -0
  139. package/lib/src/tests/controllers/FontController.test.js +73 -0
  140. package/lib/src/tests/controllers/FontController.test.js.map +1 -0
  141. package/lib/src/tests/controllers/FrameController.test.d.ts +1 -0
  142. package/lib/src/tests/controllers/FrameController.test.js +408 -0
  143. package/lib/src/tests/controllers/FrameController.test.js.map +1 -0
  144. package/lib/src/tests/controllers/LayoutController.test.d.ts +1 -0
  145. package/lib/src/tests/controllers/LayoutController.test.js +144 -0
  146. package/lib/src/tests/controllers/LayoutController.test.js.map +1 -0
  147. package/lib/src/tests/controllers/MediaConnectorController.test.d.ts +1 -0
  148. package/lib/src/tests/controllers/MediaConnectorController.test.js +109 -0
  149. package/lib/src/tests/controllers/MediaConnectorController.test.js.map +1 -0
  150. package/lib/src/tests/controllers/PageController.test.d.ts +1 -0
  151. package/lib/src/tests/controllers/PageController.test.js +58 -0
  152. package/lib/src/tests/controllers/PageController.test.js.map +1 -0
  153. package/lib/src/tests/controllers/ParagraphStyleController.test.d.ts +1 -0
  154. package/lib/src/tests/controllers/ParagraphStyleController.test.js +139 -0
  155. package/lib/src/tests/controllers/ParagraphStyleController.test.js.map +1 -0
  156. package/lib/src/tests/controllers/ShapeController.test.d.ts +1 -0
  157. package/lib/src/tests/controllers/ShapeController.test.js +102 -0
  158. package/lib/src/tests/controllers/ShapeController.test.js.map +1 -0
  159. package/lib/src/tests/controllers/SubscriberContoller.test.d.ts +1 -0
  160. package/lib/src/tests/controllers/SubscriberContoller.test.js +201 -0
  161. package/lib/src/tests/controllers/SubscriberContoller.test.js.map +1 -0
  162. package/lib/src/tests/controllers/TextStyleController.test.d.ts +1 -0
  163. package/lib/src/tests/controllers/TextStyleController.test.js +43 -0
  164. package/lib/src/tests/controllers/TextStyleController.test.js.map +1 -0
  165. package/lib/src/tests/controllers/ToolController.test.d.ts +1 -0
  166. package/lib/src/tests/controllers/ToolController.test.js +72 -0
  167. package/lib/src/tests/controllers/ToolController.test.js.map +1 -0
  168. package/lib/src/tests/controllers/UndoManagerController.test.d.ts +1 -0
  169. package/lib/src/tests/controllers/UndoManagerController.test.js +35 -0
  170. package/lib/src/tests/controllers/UndoManagerController.test.js.map +1 -0
  171. package/lib/src/tests/controllers/UtilsController.test.d.ts +1 -0
  172. package/lib/src/tests/controllers/UtilsController.test.js +33 -0
  173. package/lib/src/tests/controllers/UtilsController.test.js.map +1 -0
  174. package/lib/src/tests/controllers/VariableController.test.d.ts +1 -0
  175. package/lib/src/tests/controllers/VariableController.test.js +161 -0
  176. package/lib/src/tests/controllers/VariableController.test.js.map +1 -0
  177. package/lib/src/tests/index.test.d.ts +1 -0
  178. package/lib/src/tests/index.test.js +26 -0
  179. package/lib/src/tests/index.test.js.map +1 -0
  180. package/lib/src/tests/interactions/connector.test.d.ts +1 -0
  181. package/lib/src/tests/interactions/connector.test.js +24 -0
  182. package/lib/src/tests/interactions/connector.test.js.map +1 -0
  183. package/lib/src/tests/utils/editorResponseData.test.d.ts +1 -0
  184. package/lib/src/tests/utils/editorResponseData.test.js +48 -0
  185. package/lib/src/tests/utils/editorResponseData.test.js.map +1 -0
  186. package/lib/src/tests/utils/getClaculatedValue.test.d.ts +1 -0
  187. package/lib/src/tests/utils/getClaculatedValue.test.js +78 -0
  188. package/lib/src/tests/utils/getClaculatedValue.test.js.map +1 -0
  189. package/lib/src/tests/utils/getFetchUrls.test.d.ts +1 -0
  190. package/lib/src/tests/utils/getFetchUrls.test.js +10 -0
  191. package/lib/src/tests/utils/getFetchUrls.test.js.map +1 -0
  192. package/lib/src/tests/utils/round.test.d.ts +1 -0
  193. package/lib/src/tests/utils/round.test.js +16 -0
  194. package/lib/src/tests/utils/round.test.js.map +1 -0
  195. package/lib/src/types/ActionTypes.d.ts +63 -0
  196. package/lib/src/types/ActionTypes.js +29 -0
  197. package/lib/src/types/ActionTypes.js.map +1 -0
  198. package/lib/src/types/AnimationTypes.d.ts +111 -0
  199. package/lib/src/types/AnimationTypes.js +49 -0
  200. package/lib/src/types/AnimationTypes.js.map +1 -0
  201. package/lib/src/types/CharacterStyleTypes.d.ts +65 -0
  202. package/lib/src/types/CharacterStyleTypes.js +2 -0
  203. package/lib/src/types/CharacterStyleTypes.js.map +1 -0
  204. package/lib/src/types/ColorStyleTypes.d.ts +73 -0
  205. package/lib/src/types/ColorStyleTypes.js +24 -0
  206. package/lib/src/types/ColorStyleTypes.js.map +1 -0
  207. package/lib/src/types/CommonTypes.d.ts +92 -0
  208. package/lib/src/types/CommonTypes.js +2 -0
  209. package/lib/src/types/CommonTypes.js.map +1 -0
  210. package/lib/src/types/ConfigurationTypes.d.ts +6 -0
  211. package/lib/src/types/ConfigurationTypes.js +8 -0
  212. package/lib/src/types/ConfigurationTypes.js.map +1 -0
  213. package/lib/src/types/ConnectorTypes.d.ts +115 -0
  214. package/lib/src/types/ConnectorTypes.js +94 -0
  215. package/lib/src/types/ConnectorTypes.js.map +1 -0
  216. package/lib/src/types/DebugTypes.d.ts +25 -0
  217. package/lib/src/types/DebugTypes.js +8 -0
  218. package/lib/src/types/DebugTypes.js.map +1 -0
  219. package/lib/src/types/DocumentTypes.d.ts +180 -0
  220. package/lib/src/types/DocumentTypes.js +17 -0
  221. package/lib/src/types/DocumentTypes.js.map +1 -0
  222. package/lib/src/types/FontConnectorTypes.d.ts +20 -0
  223. package/lib/src/types/FontConnectorTypes.js +6 -0
  224. package/lib/src/types/FontConnectorTypes.js.map +1 -0
  225. package/lib/src/types/FontTypes.d.ts +15 -0
  226. package/lib/src/types/FontTypes.js +2 -0
  227. package/lib/src/types/FontTypes.js.map +1 -0
  228. package/lib/src/types/FrameTypes.d.ts +156 -0
  229. package/lib/src/types/FrameTypes.js +63 -0
  230. package/lib/src/types/FrameTypes.js.map +1 -0
  231. package/lib/src/types/LayoutTypes.d.ts +61 -0
  232. package/lib/src/types/LayoutTypes.js +6 -0
  233. package/lib/src/types/LayoutTypes.js.map +1 -0
  234. package/lib/src/types/MediaConnectorTypes.d.ts +20 -0
  235. package/lib/src/types/MediaConnectorTypes.js +6 -0
  236. package/lib/src/types/MediaConnectorTypes.js.map +1 -0
  237. package/lib/src/types/PageTypes.d.ts +12 -0
  238. package/lib/src/types/PageTypes.js +2 -0
  239. package/lib/src/types/PageTypes.js.map +1 -0
  240. package/lib/src/types/ParagraphStyleTypes.d.ts +79 -0
  241. package/lib/src/types/ParagraphStyleTypes.js +2 -0
  242. package/lib/src/types/ParagraphStyleTypes.js.map +1 -0
  243. package/lib/src/types/ShapeTypes.d.ts +26 -0
  244. package/lib/src/types/ShapeTypes.js +13 -0
  245. package/lib/src/types/ShapeTypes.js.map +1 -0
  246. package/lib/src/types/TextStyleTypes.d.ts +131 -0
  247. package/lib/src/types/TextStyleTypes.js +68 -0
  248. package/lib/src/types/TextStyleTypes.js.map +1 -0
  249. package/lib/src/types/VariableTypes.d.ts +45 -0
  250. package/lib/src/types/VariableTypes.js +13 -0
  251. package/lib/src/types/VariableTypes.js.map +1 -0
  252. package/lib/src/utils/EditorResponseData.d.ts +3 -0
  253. package/lib/src/utils/EditorResponseData.js +16 -0
  254. package/lib/src/utils/EditorResponseData.js.map +1 -0
  255. package/lib/src/utils/enums.d.ts +30 -0
  256. package/lib/src/utils/enums.js +36 -0
  257. package/lib/src/utils/enums.js.map +1 -0
  258. package/lib/src/utils/getCalculatedValue.d.ts +2 -0
  259. package/lib/src/utils/getCalculatedValue.js +20 -0
  260. package/lib/src/utils/getCalculatedValue.js.map +1 -0
  261. package/lib/src/utils/getFetchUrl.d.ts +2 -0
  262. package/lib/src/utils/getFetchUrl.js +3 -0
  263. package/lib/src/utils/getFetchUrl.js.map +1 -0
  264. package/package.json +89 -0
@@ -0,0 +1,196 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
11
+ if (kind === "m") throw new TypeError("Private method is not writable");
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
14
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
15
+ };
16
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
17
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
18
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
19
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
20
+ };
21
+ var _ConnectorController_editorAPI, _ConnectorConfigurator_connectorId, _ConnectorConfigurator_res;
22
+ import { ConnectorStateType, } from '../types/ConnectorTypes';
23
+ import { getEditorResponseData } from '../utils/EditorResponseData';
24
+ /**
25
+ * The ConnectorController manages lifetime of all available connectors, regardless of the type, in the
26
+ * document. Use it to add/remove connectors to a template, or set specific configuration.
27
+ *
28
+ * The way CHILI Studio handles different sources of resouces is called 'Connectors'. A Connectors is an
29
+ * implementation of a set of capabilities we need to interact with a certain external resource management system.
30
+ * In essence a connector is the combination of a Javascript snippet and some metadata. The Javascript snippet
31
+ * is loaded in the studio engine using a sandboxed Javascript execution engine (QuickJs). This allows us to
32
+ * execute the media connector both on web using webassembly and on the server side during e.g. animation output
33
+ * generation.
34
+ * This controller is an interface to the running connector instance inside the studio engine. The engine will
35
+ * automatically register the 'grafx-media' and 'grafx-font' connectors. Custom connectors need to be registered
36
+ * manually.
37
+ */
38
+ export class ConnectorController {
39
+ /**
40
+ * @ignore
41
+ */
42
+ constructor(editorAPI) {
43
+ /**
44
+ * @ignore
45
+ */
46
+ _ConnectorController_editorAPI.set(this, void 0);
47
+ /**
48
+ * Registers a new connector in the SDK. After successful registration, depending
49
+ * on the connector type, the connector can be configured and used in the template
50
+ * Remember to add custom authentication information after registering the connector
51
+ * @param registration registration object containing all details about the connector
52
+ */
53
+ this.registerConnector = (registration) => __awaiter(this, void 0, void 0, function* () {
54
+ const res = yield __classPrivateFieldGet(this, _ConnectorController_editorAPI, "f");
55
+ return res
56
+ .registerConnector(JSON.stringify(registration))
57
+ .then((result) => getEditorResponseData(result));
58
+ });
59
+ /**
60
+ * Configures a registered connector. A configurator helper is passed as an argument
61
+ * of the callback for you to setup your connector.
62
+ * @param connectorId Id of your registered connector
63
+ * @param configurationCallback callback to setup the connector
64
+ */
65
+ this.configure = (connectorId, configurationCallback) => __awaiter(this, void 0, void 0, function* () {
66
+ const res = yield __classPrivateFieldGet(this, _ConnectorController_editorAPI, "f");
67
+ // wait for connector to be ready
68
+ yield this.waitForConnectorReady(connectorId);
69
+ // execute callback
70
+ yield configurationCallback(new ConnectorConfigurator(connectorId, res));
71
+ // invalidate connector in engine
72
+ return res.updateConnectorConfiguration(connectorId).then((result) => getEditorResponseData(result));
73
+ });
74
+ /**
75
+ * Gets the current state a connector is in, to wait until a connector is ready to be used, use the 'waitForConnectorReady'
76
+ * method in this controller.
77
+ * @param connectorId Id of your registered connector you want to make sure it is loaded
78
+ */
79
+ this.getState = (connectorId) => __awaiter(this, void 0, void 0, function* () {
80
+ const res = yield __classPrivateFieldGet(this, _ConnectorController_editorAPI, "f");
81
+ return res.getConnectorState(connectorId).then((result) => getEditorResponseData(result));
82
+ });
83
+ /**
84
+ * Connectors are loaded asynchronously in the editor engine, this causes some challenges while configuring them. To make sure
85
+ * an action on the connector will be available, it's advised to await this method. After the Promise resolves we are sure
86
+ * the connector is up and running. This is used internally by the configure method to ensure correct execution. It's especially
87
+ * usefull during startup of the SDK / rigth after the loadDocument call.
88
+ * @param connectorId Id of your registered connector you want to make sure it is loaded
89
+ */
90
+ this.waitForConnectorReady = (connectorId, timeoutMilliseconds = 2000) => __awaiter(this, void 0, void 0, function* () {
91
+ // minimum timeout is 500ms
92
+ let timeout = Math.max(timeoutMilliseconds, 500);
93
+ // maximum timeout is 5000ms
94
+ timeout = Math.min(timeout, 5000);
95
+ const waitTime = 100;
96
+ let retries = 0;
97
+ try {
98
+ // using while loop will prevent stackoverflow issues when using recursion
99
+ // wait for maximum 2 seconds to fail
100
+ while (retries * waitTime < timeout) {
101
+ const result = yield this.getState(connectorId);
102
+ if (result.success &&
103
+ result.parsedData &&
104
+ (result.parsedData.type === ConnectorStateType.running ||
105
+ result.parsedData.type === ConnectorStateType.ready)) {
106
+ return getEditorResponseData({ data: null, success: true, error: undefined, status: 0, parsedData: undefined }, false);
107
+ }
108
+ yield new Promise((resolve) => setTimeout(resolve, waitTime));
109
+ retries++;
110
+ }
111
+ }
112
+ catch (err) {
113
+ return getEditorResponseData({
114
+ data: null,
115
+ success: false,
116
+ error: `Error while getting connector state ${err}`,
117
+ status: 50000,
118
+ parsedData: undefined,
119
+ }, false);
120
+ }
121
+ return getEditorResponseData({
122
+ data: null,
123
+ success: false,
124
+ error: `Timed out waiting for connector`,
125
+ status: 50000,
126
+ parsedData: undefined,
127
+ }, false);
128
+ });
129
+ __classPrivateFieldSet(this, _ConnectorController_editorAPI, editorAPI, "f");
130
+ }
131
+ }
132
+ _ConnectorController_editorAPI = new WeakMap();
133
+ /**
134
+ * Helper to setup your connector
135
+ */
136
+ class ConnectorConfigurator {
137
+ /**
138
+ * @ignore
139
+ */
140
+ constructor(connectorId, res) {
141
+ /**
142
+ * @ignore
143
+ */
144
+ _ConnectorConfigurator_connectorId.set(this, void 0);
145
+ _ConnectorConfigurator_res.set(this, void 0);
146
+ /**
147
+ * Allows to customize the context data a connector can work with. The options data
148
+ * will be available using the context parameter in the connector implementation code.
149
+ * @param options object containing key value data to pass to connector context
150
+ */
151
+ this.setOptions = (options) => __awaiter(this, void 0, void 0, function* () {
152
+ return __classPrivateFieldGet(this, _ConnectorConfigurator_res, "f")
153
+ .setConnectorOptions(__classPrivateFieldGet(this, _ConnectorConfigurator_connectorId, "f"), JSON.stringify(options))
154
+ .then((result) => getEditorResponseData(result));
155
+ });
156
+ /**
157
+ * Allows to map document data (variables, selectedFrame, etc) to connector context data.
158
+ * By defining the mappings, we can trigger redownload of assets (dynamic asset provider)
159
+ * or populate filters for the query endpoint. The mapped data will be available using
160
+ * the context parameter in the connector implementation code.
161
+ * @param mappings collection of mappings to set to this connector
162
+ */
163
+ this.setMappings = (mappings) => __awaiter(this, void 0, void 0, function* () {
164
+ const result = yield __classPrivateFieldGet(this, _ConnectorConfigurator_res, "f").setConnectorMappings(__classPrivateFieldGet(this, _ConnectorConfigurator_connectorId, "f"), mappings.map(function (m) {
165
+ return JSON.stringify(m);
166
+ }));
167
+ return getEditorResponseData(result);
168
+ });
169
+ /**
170
+ * This method sets the CHILI GraFx Access Token in the Authentication HTTP header for the 'chili' authentication type.
171
+ * The CHILI Token will be used to authenticate every grafx connector http call.
172
+ * @param token token for the CHILI authentication
173
+ */
174
+ this.setChiliToken = (token) => __awaiter(this, void 0, void 0, function* () {
175
+ return __classPrivateFieldGet(this, _ConnectorConfigurator_res, "f")
176
+ .connectorAuthenticationSetChiliToken(__classPrivateFieldGet(this, _ConnectorConfigurator_connectorId, "f"), token)
177
+ .then((result) => getEditorResponseData(result));
178
+ });
179
+ /**
180
+ * This method sets the HTTP headers for the 'staticKey' authentication type.
181
+ * These additional headers will be added to all connector http calls.
182
+ * Can only be used after a connector has been registered. (if you are using a grafx connector no registration is needed)
183
+ * @param headerName name of the header
184
+ * @param headerValue value of the header
185
+ */
186
+ this.setHttpHeader = (headerName, headerValue) => __awaiter(this, void 0, void 0, function* () {
187
+ return __classPrivateFieldGet(this, _ConnectorConfigurator_res, "f")
188
+ .connectorAuthenticationSetHttpHeader(__classPrivateFieldGet(this, _ConnectorConfigurator_connectorId, "f"), headerName, headerValue)
189
+ .then((result) => getEditorResponseData(result));
190
+ });
191
+ __classPrivateFieldSet(this, _ConnectorConfigurator_connectorId, connectorId, "f");
192
+ __classPrivateFieldSet(this, _ConnectorConfigurator_res, res, "f");
193
+ }
194
+ }
195
+ _ConnectorConfigurator_connectorId = new WeakMap(), _ConnectorConfigurator_res = new WeakMap();
196
+ //# sourceMappingURL=ConnectorController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectorController.js","sourceRoot":"","sources":["../../../src/controllers/ConnectorController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { EditorAPI } from '../types/CommonTypes';
2
+ import { DebugData } from '../types/DebugTypes';
3
+ /**
4
+ * The DebugController is responsible for all communication regarding Debugging.
5
+ * Methods inside this controller can be called by `window.SDK.debug.{method-name}`
6
+ */
7
+ export declare class DebugController {
8
+ #private;
9
+ /**
10
+ * @ignore
11
+ */
12
+ constructor(editorAPI: EditorAPI);
13
+ /**
14
+ * This method returns all debug logs
15
+ * @returns
16
+ */
17
+ getLogs: () => Promise<import("../types/CommonTypes").EditorResponse<DebugData[]>>;
18
+ /**
19
+ * This method toggles the showcase of debug panel
20
+ * @returns
21
+ */
22
+ toggleDebugPanel: () => Promise<import("../types/CommonTypes").EditorResponse<null>>;
23
+ /**
24
+ * This method enables the debugging
25
+ * @returns
26
+ */
27
+ enableDebug: () => Promise<import("../types/CommonTypes").EditorResponse<null>>;
28
+ /**
29
+ * This method disables the debugging
30
+ * @returns
31
+ */
32
+ disableDebug: () => Promise<import("../types/CommonTypes").EditorResponse<null>>;
33
+ }
@@ -0,0 +1,72 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
11
+ if (kind === "m") throw new TypeError("Private method is not writable");
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
14
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
15
+ };
16
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
17
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
18
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
19
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
20
+ };
21
+ var _DebugController_editorAPI;
22
+ import { getEditorResponseData } from '../utils/EditorResponseData';
23
+ /**
24
+ * The DebugController is responsible for all communication regarding Debugging.
25
+ * Methods inside this controller can be called by `window.SDK.debug.{method-name}`
26
+ */
27
+ export class DebugController {
28
+ /**
29
+ * @ignore
30
+ */
31
+ constructor(editorAPI) {
32
+ /**
33
+ * @ignore
34
+ */
35
+ _DebugController_editorAPI.set(this, void 0);
36
+ /**
37
+ * This method returns all debug logs
38
+ * @returns
39
+ */
40
+ this.getLogs = () => __awaiter(this, void 0, void 0, function* () {
41
+ const res = yield __classPrivateFieldGet(this, _DebugController_editorAPI, "f");
42
+ return res.getLogs().then((result) => getEditorResponseData(result));
43
+ });
44
+ /**
45
+ * This method toggles the showcase of debug panel
46
+ * @returns
47
+ */
48
+ this.toggleDebugPanel = () => __awaiter(this, void 0, void 0, function* () {
49
+ const res = yield __classPrivateFieldGet(this, _DebugController_editorAPI, "f");
50
+ return res.toggleDebugPanel().then((result) => getEditorResponseData(result));
51
+ });
52
+ /**
53
+ * This method enables the debugging
54
+ * @returns
55
+ */
56
+ this.enableDebug = () => __awaiter(this, void 0, void 0, function* () {
57
+ const res = yield __classPrivateFieldGet(this, _DebugController_editorAPI, "f");
58
+ return res.enableDebug().then((result) => getEditorResponseData(result));
59
+ });
60
+ /**
61
+ * This method disables the debugging
62
+ * @returns
63
+ */
64
+ this.disableDebug = () => __awaiter(this, void 0, void 0, function* () {
65
+ const res = yield __classPrivateFieldGet(this, _DebugController_editorAPI, "f");
66
+ return res.disableDebug().then((result) => getEditorResponseData(result));
67
+ });
68
+ __classPrivateFieldSet(this, _DebugController_editorAPI, editorAPI, "f");
69
+ }
70
+ }
71
+ _DebugController_editorAPI = new WeakMap();
72
+ //# sourceMappingURL=DebugController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugController.js","sourceRoot":"","sources":["../../../src/controllers/DebugController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE;;;GAGG;AACH,MAAM,OAAO,eAAe;IAMxB;;OAEG;IACH,YAAY,SAAoB;QARhC;;WAEG;QACH,6CAAsB;QAStB;;;WAGG;QACH,YAAO,GAAG,GAAS,EAAE;YACjB,MAAM,GAAG,GAAG,MAAM,uBAAA,IAAI,kCAAW,CAAC;YAClC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAc,MAAM,CAAC,CAAC,CAAC;QACtF,CAAC,CAAA,CAAC;QAEF;;;WAGG;QACH,qBAAgB,GAAG,GAAS,EAAE;YAC1B,MAAM,GAAG,GAAG,MAAM,uBAAA,IAAI,kCAAW,CAAC;YAClC,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAO,MAAM,CAAC,CAAC,CAAC;QACxF,CAAC,CAAA,CAAC;QAEF;;;WAGG;QACH,gBAAW,GAAG,GAAS,EAAE;YACrB,MAAM,GAAG,GAAG,MAAM,uBAAA,IAAI,kCAAW,CAAC;YAClC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAO,MAAM,CAAC,CAAC,CAAC;QACnF,CAAC,CAAA,CAAC;QAEF;;;WAGG;QACH,iBAAY,GAAG,GAAS,EAAE;YACtB,MAAM,GAAG,GAAG,MAAM,uBAAA,IAAI,kCAAW,CAAC;YAClC,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAO,MAAM,CAAC,CAAC,CAAC;QACpF,CAAC,CAAA,CAAC;QArCE,uBAAA,IAAI,8BAAc,SAAS,MAAA,CAAC;IAChC,CAAC;CAqCJ"}
@@ -0,0 +1,40 @@
1
+ import { EditorAPI, Id } from '../types/CommonTypes';
2
+ import type { ChiliDocument } from '../types/DocumentTypes';
3
+ import { DownloadFormats } from '../utils/enums';
4
+ /**
5
+ * The DocumentController is responsible for all communication regarding the Document.
6
+ * Methods inside this controller can be called by `window.SDK.document.{method-name}`
7
+ */
8
+ export declare class DocumentController {
9
+ #private;
10
+ /**
11
+ * @ignore
12
+ */
13
+ constructor(editorAPI: EditorAPI);
14
+ /**
15
+ * This method retrieves the current document state from the editor
16
+ * @returns The JSON document in the form of a string
17
+ */
18
+ getCurrentDocumentState: () => Promise<import("../types/CommonTypes").EditorResponse<ChiliDocument>>;
19
+ /**
20
+ * This method will load a provided document in the ChiliDocument format
21
+ * @param doc The document to load in
22
+ * @returns The document loaded inside of the canvas
23
+ */
24
+ loadDocument: (doc: ChiliDocument | string) => Promise<import("../types/CommonTypes").EditorResponse<unknown>>;
25
+ /**
26
+ * This method will call an external api to create a download url
27
+ * The video will be generated in the dimensions (and resolution) of the layout.
28
+ * This means that any upscaling (e.g. playing the video full screen on a 4k monitor) will result in interpolation (= quality loss).
29
+ * @param format The format of a downloadable url
30
+ * @param layoutId id of layout to be downloaded
31
+ * @returns the download link
32
+ */
33
+ getDownloadLink: (format: DownloadFormats, layoutId: Id) => Promise<import("../types/CommonTypes").EditorResponse<string>>;
34
+ /**
35
+ * This method will call an external api endpoint, untill the api endpoint returns a status code 200
36
+ * @param endpoint api endpoint to start polling on
37
+ * @returns true when the endpoint call has successfully been resolved
38
+ */
39
+ startPollingOnEndpoint: (endpoint: string) => Promise<true | unknown>;
40
+ }
@@ -0,0 +1,163 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
11
+ if (kind === "m") throw new TypeError("Private method is not writable");
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
14
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
15
+ };
16
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
17
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
18
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
19
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
20
+ };
21
+ var _DocumentController_editorAPI;
22
+ import { renderURLs } from '../utils/enums';
23
+ import { getFetchURL } from '../utils/getFetchUrl';
24
+ import { getEditorResponseData } from '../utils/EditorResponseData';
25
+ /**
26
+ * The DocumentController is responsible for all communication regarding the Document.
27
+ * Methods inside this controller can be called by `window.SDK.document.{method-name}`
28
+ */
29
+ export class DocumentController {
30
+ /**
31
+ * @ignore
32
+ */
33
+ constructor(editorAPI) {
34
+ /**
35
+ * @ignore
36
+ */
37
+ _DocumentController_editorAPI.set(this, void 0);
38
+ /**
39
+ * This method retrieves the current document state from the editor
40
+ * @returns The JSON document in the form of a string
41
+ */
42
+ this.getCurrentDocumentState = () => __awaiter(this, void 0, void 0, function* () {
43
+ const res = yield __classPrivateFieldGet(this, _DocumentController_editorAPI, "f");
44
+ return res.getCurrentDocumentState().then((result) => getEditorResponseData(result));
45
+ });
46
+ /**
47
+ * This method will load a provided document in the ChiliDocument format
48
+ * @param doc The document to load in
49
+ * @returns The document loaded inside of the canvas
50
+ */
51
+ this.loadDocument = (doc) => __awaiter(this, void 0, void 0, function* () {
52
+ const res = yield __classPrivateFieldGet(this, _DocumentController_editorAPI, "f");
53
+ if (typeof doc === 'string')
54
+ return res.loadDocument(doc);
55
+ return res.loadDocument(JSON.stringify(doc)).then((result) => getEditorResponseData(result));
56
+ });
57
+ /**
58
+ * This method will call an external api to create a download url
59
+ * The video will be generated in the dimensions (and resolution) of the layout.
60
+ * This means that any upscaling (e.g. playing the video full screen on a 4k monitor) will result in interpolation (= quality loss).
61
+ * @param format The format of a downloadable url
62
+ * @param layoutId id of layout to be downloaded
63
+ * @returns the download link
64
+ */
65
+ this.getDownloadLink = (format, layoutId) => __awaiter(this, void 0, void 0, function* () {
66
+ var _a, _b, _c;
67
+ let error = null;
68
+ let PREPARE_DOWNLOAD_URL = null;
69
+ let DOWNLOAD_URL = '';
70
+ const documentResponse = yield this.getCurrentDocumentState();
71
+ const FETCH_URL = getFetchURL(format, layoutId);
72
+ try {
73
+ const response = yield fetch(FETCH_URL, {
74
+ method: 'POST',
75
+ headers: {
76
+ 'Content-Type': 'application/json',
77
+ },
78
+ body: (_a = documentResponse.data) !== null && _a !== void 0 ? _a : null,
79
+ })
80
+ .then((data) => data.json())
81
+ .catch((err) => {
82
+ if (err.code) {
83
+ error = { code: err.code, error: err.message || err };
84
+ }
85
+ else {
86
+ error = { code: 400, error: err.message || err };
87
+ }
88
+ return error;
89
+ });
90
+ if ((response === null || response === void 0 ? void 0 : response.error) || error) {
91
+ return getEditorResponseData({
92
+ success: false,
93
+ data: DOWNLOAD_URL,
94
+ error,
95
+ status: response.status,
96
+ parsedData: null,
97
+ }, false);
98
+ }
99
+ PREPARE_DOWNLOAD_URL = (response === null || response === void 0 ? void 0 : response.resultUrl) ? renderURLs.BASE_URL + (response === null || response === void 0 ? void 0 : response.resultUrl) : null;
100
+ DOWNLOAD_URL = (response === null || response === void 0 ? void 0 : response.downloadUrl) ? renderURLs.BASE_URL + (response === null || response === void 0 ? void 0 : response.downloadUrl) : '';
101
+ let isFileDownloadable = error;
102
+ try {
103
+ isFileDownloadable = yield this.startPollingOnEndpoint(PREPARE_DOWNLOAD_URL);
104
+ }
105
+ catch (err) {
106
+ error = err;
107
+ }
108
+ if (isFileDownloadable !== true)
109
+ error = isFileDownloadable;
110
+ if (error) {
111
+ return getEditorResponseData({
112
+ success: false,
113
+ data: '',
114
+ error,
115
+ status: (_b = error === null || error === void 0 ? void 0 : error.code) !== null && _b !== void 0 ? _b : 400,
116
+ parsedData: null,
117
+ }, false);
118
+ }
119
+ return getEditorResponseData({
120
+ success: true,
121
+ status: 200,
122
+ data: DOWNLOAD_URL,
123
+ parsedData: null,
124
+ }, false);
125
+ }
126
+ catch (err) {
127
+ error = err;
128
+ return getEditorResponseData({
129
+ success: false,
130
+ data: DOWNLOAD_URL,
131
+ error,
132
+ status: (_c = error === null || error === void 0 ? void 0 : error.code) !== null && _c !== void 0 ? _c : 400,
133
+ parsedData: null,
134
+ }, false);
135
+ }
136
+ });
137
+ /**
138
+ * This method will call an external api endpoint, untill the api endpoint returns a status code 200
139
+ * @param endpoint api endpoint to start polling on
140
+ * @returns true when the endpoint call has successfully been resolved
141
+ */
142
+ this.startPollingOnEndpoint = (endpoint) => __awaiter(this, void 0, void 0, function* () {
143
+ try {
144
+ const response = yield fetch(endpoint)
145
+ .then((data) => data)
146
+ .catch((err) => err);
147
+ if ((response === null || response === void 0 ? void 0 : response.status) === 202) {
148
+ yield new Promise((resolve) => setTimeout(resolve, 2000));
149
+ return yield this.startPollingOnEndpoint(endpoint);
150
+ }
151
+ else {
152
+ return true;
153
+ }
154
+ }
155
+ catch (err) {
156
+ return err;
157
+ }
158
+ });
159
+ __classPrivateFieldSet(this, _DocumentController_editorAPI, editorAPI, "f");
160
+ }
161
+ }
162
+ _DocumentController_editorAPI = new WeakMap();
163
+ //# sourceMappingURL=DocumentController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentController.js","sourceRoot":"","sources":["../../../src/controllers/DocumentController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { EditorAPI, Id } from '../types/CommonTypes';
2
+ /**
3
+ * The ExperimentController contains all SDK functions that are considered for addition,
4
+ * or functions we want to keep open for changing definitions. This is a sneak peak
5
+ * into future versions of the SDK. Never build production code relying on functions in
6
+ * this controller.
7
+ */
8
+ export declare class ExperimentController {
9
+ #private;
10
+ /**
11
+ * @ignore
12
+ */
13
+ constructor(editorAPI: EditorAPI);
14
+ /**
15
+ * This method will assign an image from a variable to the correct ImageFrame
16
+ * @param imageFrameId The ID of the imageFrame where an image needs to be assigned to
17
+ * @param variableId The ID of the variable which contains the image
18
+ * @returns
19
+ */
20
+ insertImageVariableToFrame: (imageFrameId: Id, variableId: string) => Promise<import("../types/CommonTypes").EditorResponse<null>>;
21
+ /**
22
+ * This method will insert a text variable in the selected frame. Calling this method
23
+ * requires that the selected frame is in text editing mode.
24
+ * @param variableId The ID of the variable to be inserted.
25
+ * @returns
26
+ */
27
+ insertTextVariable: (variableId: Id) => Promise<import("../types/CommonTypes").EditorResponse<null>>;
28
+ /**
29
+ * This method will enter text editing mode on the provided frame.
30
+ * @param frameId The ID frame to enter text edit mode on.
31
+ * @returns
32
+ */
33
+ enterTextEditMode: (frameId: Id) => Promise<import("../types/CommonTypes").EditorResponse<null>>;
34
+ /**
35
+ * This method will exit text editing mode.
36
+ * @returns
37
+ */
38
+ exitTextEditMode: () => Promise<import("../types/CommonTypes").EditorResponse<null>>;
39
+ }