@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,639 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
52
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
53
+ return new (P || (P = Promise))(function (resolve, reject) {
54
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
55
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
56
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
57
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
58
+ });
59
+ };
60
+ var __generator = (this && this.__generator) || function (thisArg, body) {
61
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
62
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
63
+ function verb(n) { return function (v) { return step([n, v]); }; }
64
+ function step(op) {
65
+ if (f) throw new TypeError("Generator is already executing.");
66
+ while (_) try {
67
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
68
+ if (y = 0, t) op = [op[0] & 2, t.value];
69
+ switch (op[0]) {
70
+ case 0: case 1: t = op; break;
71
+ case 4: _.label++; return { value: op[1], done: false };
72
+ case 5: _.label++; y = op[1]; op = [0]; continue;
73
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
74
+ default:
75
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
76
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
77
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
78
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
79
+ if (t[2]) _.ops.pop();
80
+ _.trys.pop(); continue;
81
+ }
82
+ op = body.call(thisArg, _);
83
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
84
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
85
+ }
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 file_saver_1 = require("file-saver");
105
+ var MediaVariableField_1 = __importDefault(require("../media-variable-field/MediaVariableField"));
106
+ var react_resize_detector_1 = __importDefault(require("react-resize-detector"));
107
+ var copy_1 = require("../../constants/copy");
108
+ var Util_1 = require("../../Util");
109
+ var Timer_1 = __importDefault(require("../../services/Timer"));
110
+ var LogViewer_1 = __importDefault(require("../log-viewer/LogViewer"));
111
+ var react_redux_1 = require("react-redux");
112
+ var icons_1 = require("../../constants/icons");
113
+ var StoryPreviewer = /** @class */ (function (_super) {
114
+ __extends(StoryPreviewer, _super);
115
+ function StoryPreviewer(props) {
116
+ var _this = _super.call(this, props) || this;
117
+ _this.TIMEOUT = '02:00';
118
+ _this.download = function (url, fileName) { return __awaiter(_this, void 0, void 0, function () {
119
+ var res, blob;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0: return [4 /*yield*/, fetch(url, {
123
+ cache: 'no-cache'
124
+ })];
125
+ case 1:
126
+ res = _a.sent();
127
+ return [4 /*yield*/, res.blob()];
128
+ case 2:
129
+ blob = _a.sent();
130
+ (0, file_saver_1.saveAs)(blob, fileName);
131
+ return [2 /*return*/];
132
+ }
133
+ });
134
+ }); };
135
+ var inventory = _this.getInventoryDefaults();
136
+ var inventoryOptions = _this.getInventoryOptions();
137
+ _this.state = {
138
+ inventory: inventory,
139
+ inventoryOptions: inventoryOptions,
140
+ experienceId: null,
141
+ jobId: null,
142
+ experience: null,
143
+ timeElapsed: 0,
144
+ activeOutput: '',
145
+ rendering: false,
146
+ isTimeOut: false
147
+ };
148
+ _this.timer = new Timer_1.default({
149
+ interval: 1000,
150
+ onUpdate: function (t) {
151
+ _this.setState({ timeElapsed: t });
152
+ }
153
+ });
154
+ _this.evtHandlers = {
155
+ toggleOutput: function (e) { return _this.toggleActiveOutput(e); },
156
+ createExp: function () { return _this.createExperience(); },
157
+ gotExperience: null
158
+ };
159
+ return _this;
160
+ }
161
+ StoryPreviewer.prototype.componentWillUnmount = function () {
162
+ var api = this.props.api;
163
+ this.timer.stop();
164
+ this.evtHandlers.gotExperience = null;
165
+ api.cancelExperiencePolling();
166
+ };
167
+ StoryPreviewer.prototype.getInventoryOptions = function () {
168
+ var variables = this.props.variables;
169
+ var options = {};
170
+ for (var i in variables) {
171
+ if (variables.hasOwnProperty(i)) {
172
+ var inv = variables[i];
173
+ if (inv.defaultItem && inv.defaultItem.type) {
174
+ if (inv.defaultItem.type.toLowerCase() === variables_1.VARIABLE_TYPES.ENUM) {
175
+ options[inv.id] = inv.defaultItem.options;
176
+ }
177
+ }
178
+ }
179
+ }
180
+ return options;
181
+ };
182
+ StoryPreviewer.prototype.getInventoryDefaults = function () {
183
+ var variables = this.props.variables;
184
+ var newInv = {};
185
+ for (var i in variables) {
186
+ if (variables.hasOwnProperty(i)) {
187
+ var inv = variables[i];
188
+ newInv[inv.id] = this.getVariableValue(inv.previewItem);
189
+ }
190
+ }
191
+ return newInv;
192
+ };
193
+ StoryPreviewer.prototype.checkInventoryDefaults = function (prevVariables) {
194
+ var variables = this.props.variables;
195
+ var newInv = __assign({}, this.state.inventory);
196
+ for (var i in variables) {
197
+ if (variables.hasOwnProperty(i)) {
198
+ var newVar = variables[i];
199
+ var prevVar = prevVariables[i];
200
+ if (prevVar) {
201
+ var prevValue = this.getVariableValue(prevVar.previewItem);
202
+ var newValue = this.getVariableValue(newVar.previewItem);
203
+ if (newVar.type !== prevVar.type || prevValue !== newValue) {
204
+ newInv[i] = newValue;
205
+ }
206
+ }
207
+ }
208
+ }
209
+ return newInv;
210
+ };
211
+ StoryPreviewer.prototype.getVariableValue = function (previewItem) {
212
+ if (previewItem && previewItem.type) {
213
+ var type = previewItem.type.toLowerCase();
214
+ if (type === variables_1.VARIABLE_TYPES.IMAGE ||
215
+ type === variables_1.VARIABLE_TYPES.VIDEO ||
216
+ type === variables_1.VARIABLE_TYPES.AUDIO) {
217
+ return previewItem.url;
218
+ }
219
+ else {
220
+ return previewItem.src;
221
+ }
222
+ }
223
+ else {
224
+ return undefined;
225
+ }
226
+ };
227
+ StoryPreviewer.prototype.componentDidMount = function () {
228
+ var _this = this;
229
+ // if the experience ID is set when the previewer is mounted, get that experience
230
+ var _a = this.props, experienceId = _a.experienceId, jobId = _a.jobId;
231
+ if (experienceId && jobId) {
232
+ this.setState({
233
+ jobId: jobId
234
+ }, function () {
235
+ _this.getExperience(experienceId);
236
+ });
237
+ }
238
+ };
239
+ StoryPreviewer.prototype.componentDidUpdate = function (prevProps, prevState) {
240
+ var _this = this;
241
+ if (prevProps.storyId !== this.props.storyId) {
242
+ this.evtHandlers.gotExperience = null;
243
+ }
244
+ if (prevProps.variables !== this.props.variables) {
245
+ var inventory = void 0;
246
+ var inventoryOptions = this.getInventoryOptions();
247
+ if (prevProps.storyId === this.props.storyId) {
248
+ inventory = this.checkInventoryDefaults(prevProps.variables);
249
+ }
250
+ else {
251
+ inventory = this.getInventoryDefaults();
252
+ }
253
+ this.setState({
254
+ inventoryOptions: inventoryOptions,
255
+ inventory: inventory
256
+ });
257
+ }
258
+ if (this.props.notifications) {
259
+ if (this.props.notifications[0]) {
260
+ if (this.props.notifications[0]['type'] === 'error') {
261
+ this.setState({ isTimeOut: true });
262
+ }
263
+ if (this.props.notifications[0]['type'] === 'info') {
264
+ this.setState({ isTimeOut: false });
265
+ }
266
+ }
267
+ }
268
+ if (prevState.timeElapsed !== this.state.timeElapsed) {
269
+ if ((0, Util_1.formattedTime)(this.state.timeElapsed) === this.TIMEOUT && !this.state.experience) {
270
+ var _a = this.props, onError_1 = _a.onError, api = _a.api;
271
+ var experienceId_1 = this.state.experienceId;
272
+ api.cancelExperiencePolling().then(function () {
273
+ onError_1(copy_1.previewer.runExpError.replace('[expId]', experienceId_1));
274
+ _this.resetState(true, function () {
275
+ _this.setState({ isTimeOut: true });
276
+ });
277
+ });
278
+ }
279
+ }
280
+ };
281
+ StoryPreviewer.prototype.variableInputChanged = function (key, value) {
282
+ var inventory = __assign({}, this.state.inventory);
283
+ inventory[key] = value;
284
+ this.setState({
285
+ inventory: inventory
286
+ });
287
+ };
288
+ StoryPreviewer.prototype.getViewerOptions = function () {
289
+ var opts = [];
290
+ var output = this.state.experience.output;
291
+ var videos = output.videos;
292
+ var images = output.images;
293
+ if (videos) {
294
+ for (var key in videos) {
295
+ if (videos.hasOwnProperty(key)) {
296
+ var v = {
297
+ label: "Video: ".concat(key),
298
+ value: "".concat(previewer_1.OUTPUT_TYPES.VIDEO, ".").concat(key)
299
+ };
300
+ opts.push(v);
301
+ }
302
+ }
303
+ }
304
+ if (images) {
305
+ for (var key in images) {
306
+ if (images.hasOwnProperty(key)) {
307
+ var i = {
308
+ label: "Image: ".concat(key),
309
+ value: "".concat(previewer_1.OUTPUT_TYPES.IMAGE, ".").concat(key)
310
+ };
311
+ opts.push(i);
312
+ }
313
+ }
314
+ }
315
+ return opts;
316
+ };
317
+ StoryPreviewer.prototype.renderVariableFields = function () {
318
+ var _this = this;
319
+ var _a = this.state, inventory = _a.inventory, inventoryOptions = _a.inventoryOptions;
320
+ var storyInventory = this.props.variables;
321
+ var fields = [];
322
+ var _loop_1 = function (i) {
323
+ if (storyInventory.hasOwnProperty(i)) {
324
+ var inv_1 = storyInventory[i];
325
+ switch (inv_1.type.toLowerCase()) {
326
+ case variables_1.VARIABLE_TYPES.TEXT:
327
+ 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%' }));
328
+ break;
329
+ case variables_1.VARIABLE_TYPES.NUMBER:
330
+ 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%' }));
331
+ break;
332
+ case variables_1.VARIABLE_TYPES.ENUM:
333
+ 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%' }));
334
+ break;
335
+ case variables_1.VARIABLE_TYPES.BOOLEAN:
336
+ 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); } }));
337
+ break;
338
+ case variables_1.VARIABLE_TYPES.IMAGE:
339
+ fields.push(React.createElement(FieldWrapper_1.default, { label: inv_1.name, key: inv_1.id, labelPosition: 'top', width: '100%' },
340
+ React.createElement(MediaVariableField_1.default, { value: inventory[inv_1.id], type: inv_1.type, onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); } })));
341
+ break;
342
+ case variables_1.VARIABLE_TYPES.VIDEO:
343
+ fields.push(React.createElement(FieldWrapper_1.default, { label: inv_1.name, key: inv_1.id, labelPosition: 'top', width: '100%' },
344
+ React.createElement(MediaVariableField_1.default, { type: inv_1.type, value: inventory[inv_1.id], onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); } })));
345
+ break;
346
+ case variables_1.VARIABLE_TYPES.AUDIO:
347
+ fields.push(React.createElement(FieldWrapper_1.default, { label: inv_1.name, key: inv_1.id, labelPosition: 'top', width: '100%' },
348
+ React.createElement(MediaVariableField_1.default, { type: inv_1.type, value: inventory[inv_1.id], onChange: function (v) { return _this.variableInputChanged(inv_1.id, v); } })));
349
+ break;
350
+ }
351
+ }
352
+ };
353
+ for (var i in storyInventory) {
354
+ _loop_1(i);
355
+ }
356
+ return fields;
357
+ };
358
+ StoryPreviewer.prototype.getFirstOutput = function (experience) {
359
+ var videos = experience.output.videos;
360
+ var images = experience.output.images;
361
+ if (videos) {
362
+ for (var key in videos) {
363
+ if (videos.hasOwnProperty(key)) {
364
+ return "".concat(previewer_1.OUTPUT_TYPES.VIDEO, ".").concat(key);
365
+ }
366
+ }
367
+ }
368
+ else if (images) {
369
+ for (var key in images) {
370
+ if (images.hasOwnProperty(key)) {
371
+ return "".concat(previewer_1.OUTPUT_TYPES.IMAGE, ".").concat(key);
372
+ }
373
+ }
374
+ }
375
+ else {
376
+ return null;
377
+ }
378
+ };
379
+ StoryPreviewer.prototype.getExperience = function (experienceId, triggerJob, compositionId, useWorkingCopy) {
380
+ var _this = this;
381
+ if (triggerJob === void 0) { triggerJob = false; }
382
+ if (!this.timer.running) {
383
+ this.timer.start();
384
+ }
385
+ var _a = this.props, api = _a.api, onError = _a.onError, onExperenceLoaded = _a.onExperenceLoaded, onJobCreated = _a.onJobCreated;
386
+ this.setState({
387
+ rendering: true
388
+ }, function () {
389
+ _this.setState({
390
+ experienceId: experienceId
391
+ }, function () {
392
+ if (triggerJob) {
393
+ api.triggerEvent(experienceId, compositionId, useWorkingCopy)
394
+ .then(function (resTrigger) {
395
+ _this.setState({
396
+ jobId: resTrigger.job_id
397
+ }, function () {
398
+ if (onJobCreated) {
399
+ onJobCreated(experienceId, resTrigger.job_id);
400
+ }
401
+ _this.evtHandlers.gotExperience = function (resVideo) {
402
+ _this.timer.stop();
403
+ if (onExperenceLoaded) {
404
+ onExperenceLoaded(resVideo);
405
+ }
406
+ _this.setState({
407
+ rendering: false,
408
+ activeOutput: _this.getFirstOutput(resVideo),
409
+ experience: resVideo
410
+ });
411
+ };
412
+ api.getExperience(experienceId, true)
413
+ .then(function (resVideo) {
414
+ if (_this.evtHandlers.gotExperience) {
415
+ _this.evtHandlers.gotExperience(resVideo);
416
+ }
417
+ })
418
+ .catch(function (e) {
419
+ _this.resetState();
420
+ if (onError) {
421
+ if (e.error) {
422
+ onError(e.error);
423
+ }
424
+ else {
425
+ onError(copy_1.previewer.runExpError.replace('[expId]', experienceId));
426
+ }
427
+ }
428
+ });
429
+ });
430
+ })
431
+ .catch(function (e) {
432
+ _this.resetState();
433
+ if (onError) {
434
+ onError(copy_1.previewer.triggerExpError.replace('[expId]', experienceId));
435
+ }
436
+ });
437
+ }
438
+ else {
439
+ _this.evtHandlers.gotExperience = function (resVideo) {
440
+ _this.timer.stop();
441
+ if (onExperenceLoaded) {
442
+ onExperenceLoaded(resVideo);
443
+ }
444
+ _this.setState({
445
+ rendering: false,
446
+ activeOutput: _this.getFirstOutput(resVideo),
447
+ experience: resVideo
448
+ });
449
+ };
450
+ api.getExperience(experienceId, true)
451
+ .then(function (resVideo) {
452
+ if (_this.evtHandlers.gotExperience) {
453
+ _this.evtHandlers.gotExperience(resVideo);
454
+ }
455
+ })
456
+ .catch(function (e) {
457
+ _this.resetState();
458
+ if (onError) {
459
+ if (e.error) {
460
+ onError(e.error);
461
+ }
462
+ else {
463
+ onError(copy_1.previewer.runExpError.replace('[expId]', experienceId));
464
+ }
465
+ }
466
+ });
467
+ }
468
+ });
469
+ });
470
+ };
471
+ StoryPreviewer.prototype.createExperience = function () {
472
+ var _this = this;
473
+ var _a = this.props, storyId = _a.storyId, onNotification = _a.onNotification, onError = _a.onError, api = _a.api, onExperienceCreated = _a.onExperienceCreated, compositionId = _a.compositionId, useWorkingCopy = _a.useWorkingCopy;
474
+ this.resetState(false, function () {
475
+ _this.setState({
476
+ rendering: true,
477
+ isTimeOut: false
478
+ }, function () {
479
+ _this.timer.start();
480
+ if (onNotification) {
481
+ onNotification(copy_1.previewer.runExpStart);
482
+ }
483
+ api.createExperience(storyId, _this.state.inventory, compositionId, useWorkingCopy)
484
+ .then(function (resExp) {
485
+ if (onNotification) {
486
+ onNotification(copy_1.previewer.expId.replace('[expId]', resExp.id));
487
+ }
488
+ if (onExperienceCreated) {
489
+ onExperienceCreated(resExp);
490
+ }
491
+ _this.getExperience(resExp.id, true, compositionId, useWorkingCopy);
492
+ })
493
+ .catch(function (e) {
494
+ _this.resetState();
495
+ var data = e.response.data;
496
+ if (onError) {
497
+ if (data && data.error) {
498
+ onError("".concat(copy_1.previewer.createExpError, ": ").concat(data.error));
499
+ }
500
+ else {
501
+ onError("".concat(copy_1.previewer.createExpError, ": ").concat(e));
502
+ }
503
+ }
504
+ });
505
+ });
506
+ });
507
+ };
508
+ StoryPreviewer.prototype.resetState = function (isTimeOut, callback) {
509
+ this.timer.stop();
510
+ this.setState({
511
+ rendering: false,
512
+ experienceId: null,
513
+ experience: null,
514
+ jobId: null,
515
+ timeElapsed: !isTimeOut ? 0 : this.state.timeElapsed,
516
+ activeOutput: null,
517
+ isTimeOut: false
518
+ }, function () {
519
+ if (callback) {
520
+ callback();
521
+ }
522
+ });
523
+ };
524
+ StoryPreviewer.prototype.renderViewerContent = function () {
525
+ var _a = this.state, rendering = _a.rendering, experience = _a.experience, timeElapsed = _a.timeElapsed, activeOutput = _a.activeOutput, isTimeOut = _a.isTimeOut;
526
+ var _b = this.props, api = _b.api, onError = _b.onError;
527
+ if (rendering) {
528
+ return (React.createElement("div", { className: 'running-prompt' },
529
+ React.createElement(Spinner_1.default, null),
530
+ React.createElement("br", null),
531
+ React.createElement("h1", null,
532
+ "\u00A0 ",
533
+ copy_1.previewer.expRunning),
534
+ React.createElement("p", null,
535
+ copy_1.previewer.time,
536
+ "\u00A0",
537
+ (0, Util_1.formattedTime)(timeElapsed))));
538
+ }
539
+ else if (isTimeOut || isTimeOut === undefined) {
540
+ return (React.createElement("div", { className: 'running-prompt error-wrapper' },
541
+ React.createElement("h1", null,
542
+ "\u00A0 ",
543
+ copy_1.previewer.runExpErrorDes),
544
+ React.createElement("p", null,
545
+ copy_1.previewer.time,
546
+ "\u00A0",
547
+ (0, Util_1.formattedTime)(timeElapsed))));
548
+ }
549
+ else if (experience && activeOutput) {
550
+ var player = void 0;
551
+ var url = void 0;
552
+ var outputArr = activeOutput.split('.');
553
+ var type = outputArr[0];
554
+ var key = outputArr[1];
555
+ if (type === previewer_1.OUTPUT_TYPES.IMAGE) {
556
+ url = experience.output.images[key];
557
+ player = (React.createElement(ImagePlayer_1.default, { url: url, active: true }));
558
+ }
559
+ else if (type === previewer_1.OUTPUT_TYPES.VIDEO) {
560
+ var output = experience.output.videos[key];
561
+ var mWidth = output.width !== undefined ? parseInt(output.width, 10) : null;
562
+ var mHeight = output.height !== undefined ? parseInt(output.height, 10) : null;
563
+ url = output.url;
564
+ player = (React.createElement(VideoPlayer_1.default, { url: url, active: true, maxWidth: mWidth, allowManualScale: true, maxHeight: mHeight }));
565
+ }
566
+ else if (type === previewer_1.OUTPUT_TYPES.LOG) {
567
+ player = (React.createElement("div", { className: 'log' },
568
+ React.createElement(LogViewer_1.default, { api: api, onError: onError, jobId: key })));
569
+ }
570
+ return (React.createElement(react_resize_detector_1.default, { handleWidth: true, handleHeight: true }, player));
571
+ }
572
+ return null;
573
+ };
574
+ StoryPreviewer.prototype.toggleActiveOutput = function (e) {
575
+ this.setState({
576
+ activeOutput: e
577
+ });
578
+ };
579
+ StoryPreviewer.prototype.copyToClipboard = function (text) {
580
+ var _a = this.props, onNotification = _a.onNotification, onError = _a.onError;
581
+ navigator.clipboard.writeText(text).then(function () {
582
+ if (onNotification) {
583
+ onNotification('Copied to clipboard!');
584
+ }
585
+ }, function () {
586
+ if (onError) {
587
+ onError('Error copying to clipboard.');
588
+ }
589
+ });
590
+ };
591
+ StoryPreviewer.prototype.render = function () {
592
+ var _this = this;
593
+ var _a = this.state, rendering = _a.rendering, experience = _a.experience, activeOutput = _a.activeOutput;
594
+ var storyId = this.props.storyId;
595
+ var renderCopy = experience ? copy_1.previewer.btnReRender : copy_1.previewer.btnRender;
596
+ var btnRender = !rendering ? (React.createElement(Button_1.default, { size: 'large', onClick: this.evtHandlers.createExp, color: 'primary', style: 'bold' }, renderCopy)) : null;
597
+ var viewerButtons;
598
+ var expIdField;
599
+ if (experience) {
600
+ var viewerOpts = this.getViewerOptions();
601
+ var outputArr = activeOutput.split('.');
602
+ var type = outputArr[0];
603
+ var key = outputArr[1];
604
+ var url_1;
605
+ var fileName_1 = "".concat(storyId, "_").concat(type);
606
+ if (type === previewer_1.OUTPUT_TYPES.IMAGE) {
607
+ url_1 = experience.output.images[key];
608
+ }
609
+ else if (type === previewer_1.OUTPUT_TYPES.VIDEO) {
610
+ url_1 = experience.output.videos[key].url;
611
+ }
612
+ var downloadBtn = (React.createElement(Button_1.default, { key: 'btn-download', tooltip: 'Download Preview', style: 'subtle', onClick: function () {
613
+ _this.download(url_1, fileName_1).catch(function (error) {
614
+ return alert("".concat(copy_1.ERROR.download.replace('[error]', error)));
615
+ });
616
+ } }, icons_1.ICON_DOWNLOAD));
617
+ 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));
618
+ viewerButtons = (React.createElement(SelectField_1.default, { width: '200px', options: viewerOpts, value: activeOutput, onChange: this.evtHandlers.toggleOutput, buttons: [downloadBtn, copyBtn] }));
619
+ expIdField = (React.createElement(TextField_1.default, { readOnly: true, width: '360px', label: copy_1.previewer.expIdField, showCopy: true, value: experience.id }));
620
+ }
621
+ return (React.createElement("div", { className: 'story-viewer viewer' },
622
+ React.createElement("div", { className: 'variables' },
623
+ React.createElement("h2", null, copy_1.previewer.previewVars),
624
+ React.createElement(HRule_1.default, null),
625
+ this.renderVariableFields()),
626
+ React.createElement("div", { className: 'viewer-content' },
627
+ React.createElement("div", { className: 'content-header' },
628
+ btnRender,
629
+ React.createElement("div", { className: 'output' }, viewerButtons),
630
+ React.createElement("div", { className: 'right-interface' }, expIdField)),
631
+ React.createElement("div", { className: 'content-wrapper' }, this.renderViewerContent()))));
632
+ };
633
+ return StoryPreviewer;
634
+ }(React.PureComponent));
635
+ var mapStateToProps = function (state) {
636
+ return { notifications: state.notifications };
637
+ };
638
+ exports.default = (0, react_redux_1.connect)(mapStateToProps, {})(StoryPreviewer);
639
+ //# sourceMappingURL=StoryPreviewer_REMOTE_64741.js.map