@imposium-hub/components 1.59.3 → 1.60.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 (124) hide show
  1. package/dist/cjs/components/assets/AssetField.js +13 -11
  2. package/dist/cjs/components/assets/AssetField.js.map +1 -1
  3. package/dist/cjs/components/assets/AssetsTableDateCell.js +3 -1
  4. package/dist/cjs/components/assets/AssetsTableDateCell.js.map +1 -1
  5. package/dist/cjs/components/assets/AssetsTableNameCell.js +9 -2
  6. package/dist/cjs/components/assets/AssetsTableNameCell.js.map +1 -1
  7. package/dist/cjs/components/assets/AssetsTableTagsCell.js +3 -1
  8. package/dist/cjs/components/assets/AssetsTableTagsCell.js.map +1 -1
  9. package/dist/cjs/components/determinate-loader/DeterminateLoader.d.ts +1 -0
  10. package/dist/cjs/components/determinate-loader/DeterminateLoader.js +2 -1
  11. package/dist/cjs/components/determinate-loader/DeterminateLoader.js.map +1 -1
  12. package/dist/cjs/components/players/AudioPlayer.d.ts +4 -4
  13. package/dist/cjs/components/players/AudioPlayer.js +8 -8
  14. package/dist/cjs/components/publish-wizard/EmailWorkflow.d.ts +2 -0
  15. package/dist/cjs/components/publish-wizard/EmailWorkflow.js +491 -0
  16. package/dist/cjs/components/publish-wizard/EmailWorkflow.js.map +1 -0
  17. package/dist/cjs/components/publish-wizard/copy.d.ts +186 -0
  18. package/dist/cjs/components/publish-wizard/copy.js +199 -0
  19. package/dist/cjs/components/publish-wizard/copy.js.map +1 -0
  20. package/dist/cjs/components/story-previewer/StoryPreviewer.js +32 -3
  21. package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
  22. package/dist/cjs/components/story-previewer/StoryPreviewer_BACKUP_64741.d.ts +2 -0
  23. package/dist/cjs/components/story-previewer/StoryPreviewer_BACKUP_64741.js +670 -0
  24. package/dist/cjs/components/story-previewer/StoryPreviewer_BACKUP_64741.js.map +1 -0
  25. package/dist/cjs/components/story-previewer/StoryPreviewer_BASE_64741.d.ts +2 -0
  26. package/dist/cjs/components/story-previewer/StoryPreviewer_BASE_64741.js +553 -0
  27. package/dist/cjs/components/story-previewer/StoryPreviewer_BASE_64741.js.map +1 -0
  28. package/dist/cjs/components/story-previewer/StoryPreviewer_LOCAL_64741.d.ts +2 -0
  29. package/dist/cjs/components/story-previewer/StoryPreviewer_LOCAL_64741.js +650 -0
  30. package/dist/cjs/components/story-previewer/StoryPreviewer_LOCAL_64741.js.map +1 -0
  31. package/dist/cjs/components/story-previewer/StoryPreviewer_REMOTE_64741.d.ts +2 -0
  32. package/dist/cjs/components/story-previewer/StoryPreviewer_REMOTE_64741.js +639 -0
  33. package/dist/cjs/components/story-previewer/StoryPreviewer_REMOTE_64741.js.map +1 -0
  34. package/dist/cjs/components/text-field/TextField.js +3 -1
  35. package/dist/cjs/components/text-field/TextField.js.map +1 -1
  36. package/dist/cjs/constants/assets_BACKUP_14924.d.ts +20 -0
  37. package/dist/cjs/constants/assets_BACKUP_14924.js +30 -0
  38. package/dist/cjs/constants/assets_BACKUP_14924.js.map +1 -0
  39. package/dist/cjs/constants/assets_BASE_14924.d.ts +21 -0
  40. package/dist/cjs/constants/assets_BASE_14924.js +32 -0
  41. package/dist/cjs/constants/assets_BASE_14924.js.map +1 -0
  42. package/dist/cjs/constants/assets_LOCAL_14924.d.ts +20 -0
  43. package/dist/cjs/constants/assets_LOCAL_14924.js +30 -0
  44. package/dist/cjs/constants/assets_LOCAL_14924.js.map +1 -0
  45. package/dist/cjs/constants/assets_REMOTE_14924.d.ts +21 -0
  46. package/dist/cjs/constants/assets_REMOTE_14924.js +32 -0
  47. package/dist/cjs/constants/assets_REMOTE_14924.js.map +1 -0
  48. package/dist/cjs/constants/previewer.js +2 -1
  49. package/dist/cjs/constants/previewer.js.map +1 -1
  50. package/dist/cjs/index.d.ts +2 -2
  51. package/dist/cjs/index.js +2 -1
  52. package/dist/cjs/index.js.map +1 -1
  53. package/dist/cjs/interfaces/experience.d.ts +21 -1
  54. package/dist/cjs/services/API.js +1 -1
  55. package/dist/esm/components/assets/AssetField.js +13 -11
  56. package/dist/esm/components/assets/AssetField.js.map +1 -1
  57. package/dist/esm/components/assets/AssetsTableDateCell.js +1 -1
  58. package/dist/esm/components/assets/AssetsTableDateCell.js.map +1 -1
  59. package/dist/esm/components/assets/AssetsTableNameCell.js +9 -2
  60. package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
  61. package/dist/esm/components/assets/AssetsTableTagsCell.js +1 -1
  62. package/dist/esm/components/assets/AssetsTableTagsCell.js.map +1 -1
  63. package/dist/esm/components/determinate-loader/DeterminateLoader.d.ts +1 -0
  64. package/dist/esm/components/determinate-loader/DeterminateLoader.js +2 -1
  65. package/dist/esm/components/determinate-loader/DeterminateLoader.js.map +1 -1
  66. package/dist/esm/components/players/AudioPlayer.d.ts +4 -4
  67. package/dist/esm/components/players/AudioPlayer.js +4 -4
  68. package/dist/esm/components/publish-wizard/EmailWorkflow.d.ts +2 -0
  69. package/dist/esm/components/publish-wizard/EmailWorkflow.js +398 -0
  70. package/dist/esm/components/publish-wizard/EmailWorkflow.js.map +1 -0
  71. package/dist/esm/components/publish-wizard/copy.d.ts +186 -0
  72. package/dist/esm/components/publish-wizard/copy.js +196 -0
  73. package/dist/esm/components/publish-wizard/copy.js.map +1 -0
  74. package/dist/esm/components/story-previewer/StoryPreviewer.js +32 -3
  75. package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
  76. package/dist/esm/components/story-previewer/StoryPreviewer_BACKUP_64741.d.ts +2 -0
  77. package/dist/esm/components/story-previewer/StoryPreviewer_BACKUP_64741.js +554 -0
  78. package/dist/esm/components/story-previewer/StoryPreviewer_BACKUP_64741.js.map +1 -0
  79. package/dist/esm/components/story-previewer/StoryPreviewer_BASE_64741.d.ts +2 -0
  80. package/dist/esm/components/story-previewer/StoryPreviewer_BASE_64741.js +489 -0
  81. package/dist/esm/components/story-previewer/StoryPreviewer_BASE_64741.js.map +1 -0
  82. package/dist/esm/components/story-previewer/StoryPreviewer_LOCAL_64741.d.ts +2 -0
  83. package/dist/esm/components/story-previewer/StoryPreviewer_LOCAL_64741.js +537 -0
  84. package/dist/esm/components/story-previewer/StoryPreviewer_LOCAL_64741.js.map +1 -0
  85. package/dist/esm/components/story-previewer/StoryPreviewer_REMOTE_64741.d.ts +2 -0
  86. package/dist/esm/components/story-previewer/StoryPreviewer_REMOTE_64741.js +526 -0
  87. package/dist/esm/components/story-previewer/StoryPreviewer_REMOTE_64741.js.map +1 -0
  88. package/dist/esm/components/text-field/TextField.js +3 -1
  89. package/dist/esm/components/text-field/TextField.js.map +1 -1
  90. package/dist/esm/constants/assets_BACKUP_14924.d.ts +20 -0
  91. package/dist/esm/constants/assets_BACKUP_14924.js +26 -0
  92. package/dist/esm/constants/assets_BACKUP_14924.js.map +1 -0
  93. package/dist/esm/constants/assets_BASE_14924.d.ts +21 -0
  94. package/dist/esm/constants/assets_BASE_14924.js +28 -0
  95. package/dist/esm/constants/assets_BASE_14924.js.map +1 -0
  96. package/dist/esm/constants/assets_LOCAL_14924.d.ts +20 -0
  97. package/dist/esm/constants/assets_LOCAL_14924.js +26 -0
  98. package/dist/esm/constants/assets_LOCAL_14924.js.map +1 -0
  99. package/dist/esm/constants/assets_REMOTE_14924.d.ts +21 -0
  100. package/dist/esm/constants/assets_REMOTE_14924.js +28 -0
  101. package/dist/esm/constants/assets_REMOTE_14924.js.map +1 -0
  102. package/dist/esm/constants/previewer.js +2 -1
  103. package/dist/esm/constants/previewer.js.map +1 -1
  104. package/dist/esm/index.d.ts +2 -2
  105. package/dist/esm/index.js +2 -2
  106. package/dist/esm/index.js.map +1 -1
  107. package/dist/esm/interfaces/experience.d.ts +21 -1
  108. package/dist/esm/services/API.js +1 -1
  109. package/dist/styles.css +0 -1
  110. package/dist/styles.less +0 -1
  111. package/less/components/player.less +0 -1
  112. package/package.json +1 -1
  113. package/src/components/assets/AssetField.tsx +25 -12
  114. package/src/components/assets/AssetsTableDateCell.tsx +4 -3
  115. package/src/components/assets/AssetsTableNameCell.tsx +23 -8
  116. package/src/components/assets/AssetsTableTagsCell.tsx +10 -9
  117. package/src/components/determinate-loader/DeterminateLoader.tsx +3 -2
  118. package/src/components/players/AudioPlayer.tsx +5 -5
  119. package/src/components/story-previewer/StoryPreviewer.tsx +37 -3
  120. package/src/components/text-field/TextField.tsx +3 -1
  121. package/src/constants/previewer.ts +2 -1
  122. package/src/index.ts +3 -2
  123. package/src/interfaces/experience.ts +25 -1
  124. package/src/services/API.ts +1 -1
@@ -0,0 +1,670 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
41
+ }) : function(o, v) {
42
+ o["default"] = v;
43
+ });
44
+ var __importStar = (this && this.__importStar) || function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
51
+ var __read = (this && this.__read) || function (o, n) {
52
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
53
+ if (!m) return o;
54
+ var i = m.call(o), r, ar = [], e;
55
+ try {
56
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
57
+ }
58
+ catch (error) { e = { error: error }; }
59
+ finally {
60
+ try {
61
+ if (r && !r.done && (m = i["return"])) m.call(i);
62
+ }
63
+ finally { if (e) throw e.error; }
64
+ }
65
+ return ar;
66
+ };
67
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
68
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
69
+ if (ar || !(i in from)) {
70
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
71
+ ar[i] = from[i];
72
+ }
73
+ }
74
+ return to.concat(ar || Array.prototype.slice.call(from));
75
+ };
76
+ var __values = (this && this.__values) || function(o) {
77
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
78
+ if (m) return m.call(o);
79
+ if (o && typeof o.length === "number") return {
80
+ next: function () {
81
+ if (o && i >= o.length) o = void 0;
82
+ return { value: o && o[i++], done: !o };
83
+ }
84
+ };
85
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
86
+ };
87
+ var __importDefault = (this && this.__importDefault) || function (mod) {
88
+ return (mod && mod.__esModule) ? mod : { "default": mod };
89
+ };
90
+ Object.defineProperty(exports, "__esModule", { value: true });
91
+ var React = __importStar(require("react"));
92
+ var variables_1 = require("../../constants/variables");
93
+ var previewer_1 = require("../../constants/previewer");
94
+ var TextField_1 = __importDefault(require("../text-field/TextField"));
95
+ var Button_1 = __importDefault(require("../button/Button"));
96
+ var Spinner_1 = __importDefault(require("../spinner/Spinner"));
97
+ var NumberField_1 = __importDefault(require("../number-field/NumberField"));
98
+ var SelectField_1 = __importDefault(require("../select-field/SelectField"));
99
+ var ButtonGroupField_1 = __importDefault(require("../button-group-field/ButtonGroupField"));
100
+ var FieldWrapper_1 = __importDefault(require("../field-wrapper/FieldWrapper"));
101
+ var HRule_1 = __importDefault(require("../h-rule/HRule"));
102
+ var VideoPlayer_1 = __importDefault(require("../players/VideoPlayer"));
103
+ var ImagePlayer_1 = __importDefault(require("../players/ImagePlayer"));
104
+ var MediaVariableField_1 = __importDefault(require("../media-variable-field/MediaVariableField"));
105
+ var react_resize_detector_1 = __importDefault(require("react-resize-detector"));
106
+ var copy_1 = require("../../constants/copy");
107
+ var Util_1 = require("../../Util");
108
+ var Timer_1 = __importDefault(require("../../services/Timer"));
109
+ var LogViewer_1 = __importDefault(require("../log-viewer/LogViewer"));
110
+ var react_redux_1 = require("react-redux");
111
+ var icons_1 = require("../../constants/icons");
112
+ var StoryPreviewer = /** @class */ (function (_super) {
113
+ __extends(StoryPreviewer, _super);
114
+ function StoryPreviewer(props) {
115
+ var _this = _super.call(this, props) || this;
116
+ _this.TIMEOUT = '02:00';
117
+ var inventory = _this.getInventoryDefaults();
118
+ var inventoryOptions = _this.getInventoryOptions();
119
+ _this.state = {
120
+ inventory: inventory,
121
+ inventoryOptions: inventoryOptions,
122
+ experienceId: null,
123
+ jobId: null,
124
+ experience: null,
125
+ timeElapsed: 0,
126
+ activeOutput: '',
127
+ rendering: false,
128
+ isTimeOut: false,
129
+ compositionOptions: [],
130
+ afterEffectsOptions: [],
131
+ compositionOverride: null
132
+ };
133
+ _this.timer = new Timer_1.default({
134
+ interval: 1000,
135
+ onUpdate: function (t) {
136
+ _this.setState({ timeElapsed: t });
137
+ }
138
+ });
139
+ _this.evtHandlers = {
140
+ toggleOutput: function (e) { return _this.toggleActiveOutput(e); },
141
+ createExp: function () { return _this.createExperience(); },
142
+ compChange: function (c) { return _this.compChanged(c); },
143
+ gotExperience: null
144
+ };
145
+ return _this;
146
+ }
147
+ StoryPreviewer.prototype.componentWillUnmount = function () {
148
+ var api = this.props.api;
149
+ this.timer.stop();
150
+ this.evtHandlers.gotExperience = null;
151
+ api.cancelExperiencePolling();
152
+ };
153
+ StoryPreviewer.prototype.addCompOptions = function (assets) {
154
+ var e_1, _a;
155
+ var _this = this;
156
+ var newOpts = __spreadArray([], __read(this.state.compositionOptions), false);
157
+ var compositionOverride = this.state.compositionOverride;
158
+ var compositionId = this.props.compositionId;
159
+ try {
160
+ for (var assets_1 = __values(assets), assets_1_1 = assets_1.next(); !assets_1_1.done; assets_1_1 = assets_1.next()) {
161
+ var comp = assets_1_1.value;
162
+ newOpts.push({ label: comp.name, value: comp.id });
163
+ }
164
+ }
165
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
166
+ finally {
167
+ try {
168
+ if (assets_1_1 && !assets_1_1.done && (_a = assets_1.return)) _a.call(assets_1);
169
+ }
170
+ finally { if (e_1) throw e_1.error; }
171
+ }
172
+ this.setState({ compositionOptions: newOpts }, function () {
173
+ var firstComp = _this.state.compositionOptions[0];
174
+ if (firstComp && !compositionId && !compositionOverride) {
175
+ _this.setState({ compositionOverride: firstComp.value });
176
+ }
177
+ });
178
+ };
179
+ StoryPreviewer.prototype.checkForCompDropdown = function () {
180
+ var _this = this;
181
+ var _a = this.props, api = _a.api, storyId = _a.storyId;
182
+ api.getAssets({ type: 'video_composition' }, storyId)
183
+ .then(function (res) { return _this.addCompOptions(res.assets); })
184
+ .catch(function (e) {
185
+ console.error('Error pulling comp IDs for composition dropdown');
186
+ });
187
+ api.getAssets({ type: 'after_effects' }, storyId)
188
+ .then(function (res) { return _this.addCompOptions(res.assets); })
189
+ .catch(function (e) {
190
+ console.error('Error pulling After Effects IDs for composition dropdown');
191
+ });
192
+ };
193
+ StoryPreviewer.prototype.getInventoryOptions = function () {
194
+ var variables = this.props.variables;
195
+ var options = {};
196
+ for (var i in variables) {
197
+ if (variables.hasOwnProperty(i)) {
198
+ var inv = variables[i];
199
+ if (inv.defaultItem && inv.defaultItem.type) {
200
+ if (inv.defaultItem.type.toLowerCase() === variables_1.VARIABLE_TYPES.ENUM) {
201
+ options[inv.id] = inv.defaultItem.options;
202
+ }
203
+ }
204
+ }
205
+ }
206
+ return options;
207
+ };
208
+ StoryPreviewer.prototype.getInventoryDefaults = function () {
209
+ var variables = this.props.variables;
210
+ var newInv = {};
211
+ for (var i in variables) {
212
+ if (variables.hasOwnProperty(i)) {
213
+ var inv = variables[i];
214
+ newInv[inv.id] = this.getVariableValue(inv.previewItem);
215
+ }
216
+ }
217
+ return newInv;
218
+ };
219
+ StoryPreviewer.prototype.checkInventoryDefaults = function (prevVariables) {
220
+ var variables = this.props.variables;
221
+ var newInv = __assign({}, this.state.inventory);
222
+ for (var i in variables) {
223
+ if (variables.hasOwnProperty(i)) {
224
+ var newVar = variables[i];
225
+ var prevVar = prevVariables[i];
226
+ if (prevVar) {
227
+ var prevValue = this.getVariableValue(prevVar.previewItem);
228
+ var newValue = this.getVariableValue(newVar.previewItem);
229
+ if (newVar.type !== prevVar.type || prevValue !== newValue) {
230
+ newInv[i] = newValue;
231
+ }
232
+ }
233
+ }
234
+ }
235
+ return newInv;
236
+ };
237
+ StoryPreviewer.prototype.getVariableValue = function (previewItem) {
238
+ if (previewItem && previewItem.type) {
239
+ var type = previewItem.type.toLowerCase();
240
+ if (type === variables_1.VARIABLE_TYPES.IMAGE ||
241
+ type === variables_1.VARIABLE_TYPES.VIDEO ||
242
+ type === variables_1.VARIABLE_TYPES.AUDIO) {
243
+ return previewItem.url;
244
+ }
245
+ else {
246
+ return previewItem.src;
247
+ }
248
+ }
249
+ else {
250
+ return undefined;
251
+ }
252
+ };
253
+ StoryPreviewer.prototype.componentDidMount = function () {
254
+ var _this = this;
255
+ // if the experience ID is set when the previewer is mounted, get that experience
256
+ var _a = this.props, experienceId = _a.experienceId, jobId = _a.jobId;
257
+ if (experienceId && jobId) {
258
+ this.setState({
259
+ jobId: jobId
260
+ }, function () {
261
+ _this.getExperience(experienceId);
262
+ });
263
+ }
264
+ this.checkForCompDropdown();
265
+ };
266
+ StoryPreviewer.prototype.componentDidUpdate = function (prevProps, prevState) {
267
+ var _this = this;
268
+ if (prevProps.storyId !== this.props.storyId) {
269
+ this.evtHandlers.gotExperience = null;
270
+ this.setState({ compositionOptions: [], afterEffectsOptions: [] });
271
+ this.checkForCompDropdown();
272
+ }
273
+ if (prevProps.variables !== this.props.variables) {
274
+ var inventory = void 0;
275
+ var inventoryOptions = this.getInventoryOptions();
276
+ if (prevProps.storyId === this.props.storyId) {
277
+ inventory = this.checkInventoryDefaults(prevProps.variables);
278
+ }
279
+ else {
280
+ inventory = this.getInventoryDefaults();
281
+ }
282
+ this.setState({
283
+ inventoryOptions: inventoryOptions,
284
+ inventory: inventory
285
+ });
286
+ }
287
+ if (this.props.notifications) {
288
+ if (this.props.notifications[0]) {
289
+ if (this.props.notifications[0]['type'] === 'error') {
290
+ this.setState({ isTimeOut: true });
291
+ }
292
+ if (this.props.notifications[0]['type'] === 'info') {
293
+ this.setState({ isTimeOut: false });
294
+ }
295
+ }
296
+ }
297
+ if (prevState.timeElapsed !== this.state.timeElapsed) {
298
+ if ((0, Util_1.formattedTime)(this.state.timeElapsed) === this.TIMEOUT && !this.state.experience) {
299
+ var _a = this.props, onError_1 = _a.onError, api = _a.api;
300
+ var experienceId_1 = this.state.experienceId;
301
+ api.cancelExperiencePolling().then(function () {
302
+ onError_1(copy_1.previewer.runExpError.replace('[expId]', experienceId_1));
303
+ _this.resetState(true, function () {
304
+ _this.setState({ isTimeOut: true });
305
+ });
306
+ });
307
+ }
308
+ }
309
+ };
310
+ StoryPreviewer.prototype.variableInputChanged = function (key, value) {
311
+ var inventory = __assign({}, this.state.inventory);
312
+ inventory[key] = value;
313
+ this.setState({
314
+ inventory: inventory
315
+ });
316
+ };
317
+ StoryPreviewer.prototype.getViewerOptions = function () {
318
+ var opts = [];
319
+ var output = this.state.experience.output;
320
+ var videos = output.videos;
321
+ var images = output.images;
322
+ if (videos) {
323
+ for (var key in videos) {
324
+ if (videos.hasOwnProperty(key)) {
325
+ var v = {
326
+ label: "Video: ".concat(key),
327
+ value: "".concat(previewer_1.OUTPUT_TYPES.VIDEO, ".").concat(key)
328
+ };
329
+ opts.push(v);
330
+ }
331
+ }
332
+ }
333
+ if (images) {
334
+ for (var key in images) {
335
+ if (images.hasOwnProperty(key)) {
336
+ var i = {
337
+ label: "Image: ".concat(key),
338
+ value: "".concat(previewer_1.OUTPUT_TYPES.IMAGE, ".").concat(key)
339
+ };
340
+ opts.push(i);
341
+ }
342
+ }
343
+ }
344
+ return opts;
345
+ };
346
+ StoryPreviewer.prototype.renderVariableFields = function () {
347
+ var _this = this;
348
+ var _a = this.state, inventory = _a.inventory, inventoryOptions = _a.inventoryOptions;
349
+ var storyInventory = this.props.variables;
350
+ var fields = [];
351
+ var _loop_1 = function (i) {
352
+ if (storyInventory.hasOwnProperty(i)) {
353
+ var inv_1 = storyInventory[i];
354
+ switch (inv_1.type.toLowerCase()) {
355
+ case variables_1.VARIABLE_TYPES.TEXT:
356
+ fields.push(React.createElement(TextField_1.default, { label: inv_1.name, key: inv_1.id, value: inventory[inv_1.id], onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); }, labelPosition: 'top', width: '100%' }));
357
+ break;
358
+ case variables_1.VARIABLE_TYPES.NUMBER:
359
+ fields.push(React.createElement(NumberField_1.default, { label: inv_1.name, key: inv_1.id, value: inventory[inv_1.id], onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); }, labelPosition: 'top', width: '100%' }));
360
+ break;
361
+ case variables_1.VARIABLE_TYPES.ENUM:
362
+ fields.push(React.createElement(SelectField_1.default, { label: inv_1.name, key: inv_1.id, value: inventory[inv_1.id], options: inventoryOptions[inv_1.id], onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); }, labelPosition: 'top', width: '100%' }));
363
+ break;
364
+ case variables_1.VARIABLE_TYPES.BOOLEAN:
365
+ fields.push(React.createElement(ButtonGroupField_1.default, { label: inv_1.name, key: inv_1.id, value: inventory[inv_1.id], options: variables_1.BOOLEAN_DEFAULT_OPTIONS, onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); } }));
366
+ break;
367
+ case variables_1.VARIABLE_TYPES.IMAGE:
368
+ fields.push(React.createElement(FieldWrapper_1.default, { label: inv_1.name, key: inv_1.id, labelPosition: 'top', width: '100%' },
369
+ React.createElement(MediaVariableField_1.default, { value: inventory[inv_1.id], type: inv_1.type, onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); } })));
370
+ break;
371
+ case variables_1.VARIABLE_TYPES.VIDEO:
372
+ fields.push(React.createElement(FieldWrapper_1.default, { label: inv_1.name, key: inv_1.id, labelPosition: 'top', width: '100%' },
373
+ React.createElement(MediaVariableField_1.default, { type: inv_1.type, value: inventory[inv_1.id], onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); } })));
374
+ break;
375
+ case variables_1.VARIABLE_TYPES.AUDIO:
376
+ fields.push(React.createElement(FieldWrapper_1.default, { label: inv_1.name, key: inv_1.id, labelPosition: 'top', width: '100%' },
377
+ React.createElement(MediaVariableField_1.default, { type: inv_1.type, value: inventory[inv_1.id], onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); } })));
378
+ break;
379
+ }
380
+ }
381
+ };
382
+ for (var i in storyInventory) {
383
+ _loop_1(i);
384
+ }
385
+ return fields;
386
+ };
387
+ StoryPreviewer.prototype.getFirstOutput = function (experience) {
388
+ var videos = experience.output.videos;
389
+ var images = experience.output.images;
390
+ if (videos) {
391
+ for (var key in videos) {
392
+ if (videos.hasOwnProperty(key)) {
393
+ return "".concat(previewer_1.OUTPUT_TYPES.VIDEO, ".").concat(key);
394
+ }
395
+ }
396
+ }
397
+ else if (images) {
398
+ for (var key in images) {
399
+ if (images.hasOwnProperty(key)) {
400
+ return "".concat(previewer_1.OUTPUT_TYPES.IMAGE, ".").concat(key);
401
+ }
402
+ }
403
+ }
404
+ else {
405
+ return null;
406
+ }
407
+ };
408
+ StoryPreviewer.prototype.getExperience = function (experienceId, triggerJob, compositionId, useWorkingCopy) {
409
+ var _this = this;
410
+ if (triggerJob === void 0) { triggerJob = false; }
411
+ if (!this.timer.running) {
412
+ this.timer.start();
413
+ }
414
+ var _a = this.props, api = _a.api, onError = _a.onError, onExperenceLoaded = _a.onExperenceLoaded, onJobCreated = _a.onJobCreated;
415
+ this.setState({
416
+ rendering: true
417
+ }, function () {
418
+ _this.setState({
419
+ experienceId: experienceId
420
+ }, function () {
421
+ if (triggerJob) {
422
+ api.triggerEvent(experienceId, compositionId, useWorkingCopy)
423
+ .then(function (resTrigger) {
424
+ _this.setState({
425
+ jobId: resTrigger.job_id
426
+ }, function () {
427
+ if (onJobCreated) {
428
+ onJobCreated(experienceId, resTrigger.job_id);
429
+ }
430
+ _this.evtHandlers.gotExperience = function (resVideo) {
431
+ _this.timer.stop();
432
+ if (onExperenceLoaded) {
433
+ onExperenceLoaded(resVideo);
434
+ }
435
+ _this.setState({
436
+ rendering: false,
437
+ activeOutput: _this.getFirstOutput(resVideo),
438
+ experience: resVideo
439
+ });
440
+ };
441
+ api.getExperience(experienceId, true)
442
+ .then(function (resVideo) {
443
+ if (_this.evtHandlers.gotExperience) {
444
+ _this.evtHandlers.gotExperience(resVideo);
445
+ }
446
+ })
447
+ .catch(function (e) {
448
+ _this.resetState();
449
+ if (onError) {
450
+ if (e.error) {
451
+ onError(e.error);
452
+ }
453
+ else {
454
+ onError(copy_1.previewer.runExpError.replace('[expId]', experienceId));
455
+ }
456
+ }
457
+ });
458
+ });
459
+ })
460
+ .catch(function (e) {
461
+ _this.resetState();
462
+ if (onError) {
463
+ onError(copy_1.previewer.triggerExpError.replace('[expId]', experienceId));
464
+ }
465
+ });
466
+ }
467
+ else {
468
+ _this.evtHandlers.gotExperience = function (resVideo) {
469
+ _this.timer.stop();
470
+ if (onExperenceLoaded) {
471
+ onExperenceLoaded(resVideo);
472
+ }
473
+ _this.setState({
474
+ rendering: false,
475
+ activeOutput: _this.getFirstOutput(resVideo),
476
+ experience: resVideo
477
+ });
478
+ };
479
+ api.getExperience(experienceId, true)
480
+ .then(function (resVideo) {
481
+ if (_this.evtHandlers.gotExperience) {
482
+ _this.evtHandlers.gotExperience(resVideo);
483
+ }
484
+ })
485
+ .catch(function (e) {
486
+ _this.resetState();
487
+ if (onError) {
488
+ if (e.error) {
489
+ onError(e.error);
490
+ }
491
+ else {
492
+ onError(copy_1.previewer.runExpError.replace('[expId]', experienceId));
493
+ }
494
+ }
495
+ });
496
+ }
497
+ });
498
+ });
499
+ };
500
+ StoryPreviewer.prototype.createExperience = function () {
501
+ var _this = this;
502
+ var _a = this.props, storyId = _a.storyId, onNotification = _a.onNotification, onError = _a.onError, api = _a.api, onExperienceCreated = _a.onExperienceCreated, useWorkingCopy = _a.useWorkingCopy;
503
+ var compId = this.getCompId();
504
+ console.log(compId);
505
+ this.resetState(false, function () {
506
+ _this.setState({
507
+ rendering: true,
508
+ isTimeOut: false
509
+ }, function () {
510
+ _this.timer.start();
511
+ if (onNotification) {
512
+ onNotification(copy_1.previewer.runExpStart);
513
+ }
514
+ api.createExperience(storyId, _this.state.inventory, compId, useWorkingCopy)
515
+ .then(function (resExp) {
516
+ if (onNotification) {
517
+ onNotification(copy_1.previewer.expId.replace('[expId]', resExp.id));
518
+ }
519
+ if (onExperienceCreated) {
520
+ onExperienceCreated(resExp);
521
+ }
522
+ _this.getExperience(resExp.id, true, compId, useWorkingCopy);
523
+ })
524
+ .catch(function (e) {
525
+ _this.resetState();
526
+ var data = e.response.data;
527
+ if (onError) {
528
+ if (data && data.error) {
529
+ onError("".concat(copy_1.previewer.createExpError, ": ").concat(data.error));
530
+ }
531
+ else {
532
+ onError("".concat(copy_1.previewer.createExpError, ": ").concat(e));
533
+ }
534
+ }
535
+ });
536
+ });
537
+ });
538
+ };
539
+ StoryPreviewer.prototype.resetState = function (isTimeOut, callback) {
540
+ this.timer.stop();
541
+ this.setState({
542
+ rendering: false,
543
+ experienceId: null,
544
+ experience: null,
545
+ jobId: null,
546
+ timeElapsed: !isTimeOut ? 0 : this.state.timeElapsed,
547
+ activeOutput: null,
548
+ isTimeOut: false
549
+ }, function () {
550
+ if (callback) {
551
+ callback();
552
+ }
553
+ });
554
+ };
555
+ StoryPreviewer.prototype.renderViewerContent = function () {
556
+ var _a = this.state, rendering = _a.rendering, experience = _a.experience, timeElapsed = _a.timeElapsed, activeOutput = _a.activeOutput, isTimeOut = _a.isTimeOut;
557
+ var _b = this.props, api = _b.api, onError = _b.onError;
558
+ if (rendering) {
559
+ return (React.createElement("div", { className: 'running-prompt' },
560
+ React.createElement(Spinner_1.default, null),
561
+ React.createElement("br", null),
562
+ React.createElement("h1", null,
563
+ "\u00A0 ",
564
+ copy_1.previewer.expRunning),
565
+ React.createElement("p", null,
566
+ copy_1.previewer.time,
567
+ "\u00A0",
568
+ (0, Util_1.formattedTime)(timeElapsed))));
569
+ }
570
+ else if (isTimeOut || isTimeOut === undefined) {
571
+ return (React.createElement("div", { className: 'running-prompt error-wrapper' },
572
+ React.createElement("h1", null,
573
+ "\u00A0 ",
574
+ copy_1.previewer.runExpErrorDes),
575
+ React.createElement("p", null,
576
+ copy_1.previewer.time,
577
+ "\u00A0",
578
+ (0, Util_1.formattedTime)(timeElapsed))));
579
+ }
580
+ else if (experience && activeOutput) {
581
+ var player = void 0;
582
+ var url = void 0;
583
+ var outputArr = activeOutput.split('.');
584
+ var type = outputArr[0];
585
+ var key = outputArr[1];
586
+ if (type === previewer_1.OUTPUT_TYPES.IMAGE) {
587
+ url = experience.output.images[key];
588
+ player = (React.createElement(ImagePlayer_1.default, { url: url, active: true }));
589
+ }
590
+ else if (type === previewer_1.OUTPUT_TYPES.VIDEO) {
591
+ var output = experience.output.videos[key];
592
+ var mWidth = output.width !== undefined ? parseInt(output.width, 10) : null;
593
+ var mHeight = output.height !== undefined ? parseInt(output.height, 10) : null;
594
+ url = output.url;
595
+ player = (React.createElement(VideoPlayer_1.default, { url: url, active: true, maxWidth: mWidth, allowManualScale: true, maxHeight: mHeight }));
596
+ }
597
+ else if (type === previewer_1.OUTPUT_TYPES.LOG) {
598
+ player = (React.createElement("div", { className: 'log' },
599
+ React.createElement(LogViewer_1.default, { api: api, onError: onError, jobId: key })));
600
+ }
601
+ return (React.createElement(react_resize_detector_1.default, { handleWidth: true, handleHeight: true }, player));
602
+ }
603
+ return null;
604
+ };
605
+ StoryPreviewer.prototype.toggleActiveOutput = function (e) {
606
+ this.setState({
607
+ activeOutput: e
608
+ });
609
+ };
610
+ StoryPreviewer.prototype.compChanged = function (compId) {
611
+ this.setState({ compositionOverride: compId });
612
+ };
613
+ StoryPreviewer.prototype.getCompId = function () {
614
+ var _a = this.props, allowCompOverride = _a.allowCompOverride, compositionId = _a.compositionId;
615
+ var compositionOverride = this.state.compositionOverride;
616
+ return (compositionOverride && allowCompOverride) ? compositionOverride : compositionId;
617
+ };
618
+ StoryPreviewer.prototype.render = function () {
619
+ var _this = this;
620
+ var allowCompOverride = this.props.allowCompOverride;
621
+ var _a = this.state, rendering = _a.rendering, experience = _a.experience, activeOutput = _a.activeOutput;
622
+ var storyId = this.props.storyId;
623
+ var renderCopy = experience ? copy_1.previewer.btnReRender : copy_1.previewer.btnRender;
624
+ var compId = this.getCompId();
625
+ var btnRender = !rendering ? (React.createElement(Button_1.default, { disabled: !compId, size: 'large', onClick: this.evtHandlers.createExp, color: 'primary', style: 'bold' }, renderCopy)) : null;
626
+ var viewerButtons;
627
+ var expIdField;
628
+ if (experience) {
629
+ var viewerOpts = this.getViewerOptions();
630
+ var outputArr = activeOutput.split('.');
631
+ var type = outputArr[0];
632
+ var key = outputArr[1];
633
+ var url_1;
634
+ var fileName_1 = "".concat(storyId, "_").concat(type);
635
+ if (type === previewer_1.OUTPUT_TYPES.IMAGE) {
636
+ url_1 = experience.output.images[key];
637
+ }
638
+ else if (type === previewer_1.OUTPUT_TYPES.VIDEO) {
639
+ url_1 = experience.output.videos[key].url;
640
+ }
641
+ var downloadBtn = (React.createElement(Button_1.default, { key: 'btn-download', tooltip: 'Download Preview', style: 'subtle', onClick: function () {
642
+ _this.download(url_1, fileName_1).catch(function (error) {
643
+ return alert("".concat(copy_1.ERROR.download.replace('[error]', error)));
644
+ });
645
+ } }, icons_1.ICON_DOWNLOAD));
646
+ var copyBtn = (React.createElement(Button_1.default, { key: 'btn-copy-url', tooltip: 'Copy URL to Clipboard', style: 'subtle', onClick: function () { return _this.copyToClipboard(url_1); } }, icons_1.ICON_CLIPBOARD));
647
+ viewerButtons = (React.createElement(SelectField_1.default, { width: '200px', options: viewerOpts, value: activeOutput, onChange: this.evtHandlers.toggleOutput, buttons: [downloadBtn, copyBtn] }));
648
+ expIdField = (React.createElement(TextField_1.default, { readOnly: true, width: '360px', label: copy_1.previewer.expIdField, showCopy: true, value: experience.id }));
649
+ }
650
+ var compSelect = (allowCompOverride && !rendering) ? React.createElement(SelectField_1.default, { width: '150px', onChange: this.evtHandlers.compChange, options: this.state.compositionOptions, value: compId, label: '' }) : null;
651
+ return (React.createElement("div", { className: 'story-viewer viewer' },
652
+ React.createElement("div", { className: 'variables' },
653
+ React.createElement("h2", null, copy_1.previewer.previewVars),
654
+ React.createElement(HRule_1.default, null),
655
+ this.renderVariableFields()),
656
+ React.createElement("div", { className: 'viewer-content' },
657
+ React.createElement("div", { className: 'content-header' },
658
+ btnRender,
659
+ React.createElement("div", { className: 'select-wrapper' }, compSelect),
660
+ React.createElement("div", { className: 'output' }, viewerButtons),
661
+ React.createElement("div", { className: 'right-interface' }, expIdField)),
662
+ React.createElement("div", { className: 'content-wrapper' }, this.renderViewerContent()))));
663
+ };
664
+ return StoryPreviewer;
665
+ }(React.PureComponent));
666
+ var mapStateToProps = function (state) {
667
+ return { notifications: state.notifications };
668
+ };
669
+ exports.default = (0, react_redux_1.connect)(mapStateToProps, {})(StoryPreviewer);
670
+ //# sourceMappingURL=StoryPreviewer_BACKUP_64741.js.map