@cleartrip/ct-design-story 1.1.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 (45) hide show
  1. package/dist/Story.d.ts +11 -0
  2. package/dist/Story.d.ts.map +1 -0
  3. package/dist/components/Progress.d.ts +4 -0
  4. package/dist/components/Progress.d.ts.map +1 -0
  5. package/dist/components/ProgressArray.d.ts +3 -0
  6. package/dist/components/ProgressArray.d.ts.map +1 -0
  7. package/dist/components/ProgressWrapper.d.ts +4 -0
  8. package/dist/components/ProgressWrapper.d.ts.map +1 -0
  9. package/dist/components/Story.d.ts +4 -0
  10. package/dist/components/Story.d.ts.map +1 -0
  11. package/dist/components/StoryContainer.d.ts +2 -0
  12. package/dist/components/StoryContainer.d.ts.map +1 -0
  13. package/dist/context/Global.d.ts +10 -0
  14. package/dist/context/Global.d.ts.map +1 -0
  15. package/dist/context/Progress.d.ts +5 -0
  16. package/dist/context/Progress.d.ts.map +1 -0
  17. package/dist/context/Stories.d.ts +8 -0
  18. package/dist/context/Stories.d.ts.map +1 -0
  19. package/dist/ct-design-story.browser.cjs.js +2 -0
  20. package/dist/ct-design-story.browser.cjs.js.map +1 -0
  21. package/dist/ct-design-story.browser.esm.js +2 -0
  22. package/dist/ct-design-story.browser.esm.js.map +1 -0
  23. package/dist/ct-design-story.cjs.js +453 -0
  24. package/dist/ct-design-story.cjs.js.map +1 -0
  25. package/dist/ct-design-story.esm.js +432 -0
  26. package/dist/ct-design-story.esm.js.map +1 -0
  27. package/dist/ct-design-story.umd.js +486 -0
  28. package/dist/ct-design-story.umd.js.map +1 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/interfaces.d.ts +123 -0
  32. package/dist/interfaces.d.ts.map +1 -0
  33. package/dist/renderers/AutoPlayContent.d.ts +9 -0
  34. package/dist/renderers/AutoPlayContent.d.ts.map +1 -0
  35. package/dist/renderers/index.d.ts +5 -0
  36. package/dist/renderers/index.d.ts.map +1 -0
  37. package/dist/type.d.ts +123 -0
  38. package/dist/type.d.ts.map +1 -0
  39. package/dist/util/renderers.d.ts +6 -0
  40. package/dist/util/renderers.d.ts.map +1 -0
  41. package/dist/util/time.d.ts +2 -0
  42. package/dist/util/time.d.ts.map +1 -0
  43. package/dist/util/use-is-mounted.d.ts +3 -0
  44. package/dist/util/use-is-mounted.d.ts.map +1 -0
  45. package/package.json +62 -0
@@ -0,0 +1,453 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
+
27
+ var initialContext$1 = {
28
+ interval: 4000,
29
+ width: 360,
30
+ height: 640,
31
+ };
32
+ var GlobalContext = React__namespace.default.createContext(initialContext$1);
33
+
34
+ var initialContext = {
35
+ stories: [],
36
+ };
37
+ var StoriesContext = React__namespace.default.createContext(initialContext);
38
+
39
+ var ProgressContext = React__namespace.default.createContext({
40
+ currentId: 0,
41
+ bufferAction: false,
42
+ pause: false,
43
+ next: function () { },
44
+ });
45
+
46
+ var Story$1 = function (props) {
47
+ var globalContext = React.useContext(GlobalContext);
48
+ var width = globalContext.width, height = globalContext.height, loader = globalContext.loader, storyStyles = globalContext.storyStyles, _a = globalContext.storyInnerContainerStyles, storyInnerContainerStyles = _a === void 0 ? {} : _a;
49
+ var rendererMessageHandler = function (type, data) {
50
+ switch (type) {
51
+ case 'UPDATE_VIDEO_DURATION':
52
+ return { ack: 'OK' };
53
+ }
54
+ return { ack: 'OK' };
55
+ };
56
+ var getStoryContent = function () {
57
+ var InnerContent = props.story.content;
58
+ var config = { width: width, height: height, loader: loader, storyStyles: storyStyles };
59
+ return (jsxRuntime.jsx(InnerContent, { action: props.action, isPaused: props.playState, story: props.story, config: config, messageHandler: rendererMessageHandler }));
60
+ };
61
+ return (jsxRuntime.jsx("div", tslib.__assign({ style: tslib.__assign(tslib.__assign(tslib.__assign({}, styles$4.story), storyInnerContainerStyles), { width: width, height: height }) }, { children: getStoryContent() })));
62
+ };
63
+ var styles$4 = {
64
+ story: {
65
+ display: 'flex',
66
+ position: 'relative',
67
+ overflow: 'hidden',
68
+ alignItems: 'center',
69
+ },
70
+ storyContent: {
71
+ width: 'auto',
72
+ maxWidth: '100%',
73
+ maxHeight: '100%',
74
+ margin: 'auto',
75
+ },
76
+ };
77
+
78
+ var ProgressWrapper = function (props) {
79
+ var progressWrapperStyles = React.useContext(GlobalContext).progressWrapperStyles;
80
+ return (jsxRuntime.jsx("div", tslib.__assign({ style: tslib.__assign(tslib.__assign(tslib.__assign({}, styles$3.progress), progressWrapperStyles), getProgressWrapperStyle(props)) }, { children: props.children })));
81
+ };
82
+ var getProgressWrapperStyle = function (_a) {
83
+ var width = _a.width;
84
+ return ({
85
+ width: "".concat(width * 100, "%"),
86
+ });
87
+ };
88
+ var styles$3 = {
89
+ progress: {
90
+ height: 2,
91
+ maxWidth: '100%',
92
+ background: '#ffffff80',
93
+ margin: 2,
94
+ borderRadius: 2,
95
+ WebkitBackfaceVisibility: 'hidden',
96
+ MozBackfaceVisibility: 'hidden',
97
+ msBackfaceVisibility: 'hidden',
98
+ backfaceVisibility: 'hidden',
99
+ },
100
+ };
101
+
102
+ var Progress = (function (props) {
103
+ var progressStyles = React.useContext(GlobalContext).progressStyles;
104
+ var _a = React.useContext(ProgressContext), bufferAction = _a.bufferAction, pause = _a.pause;
105
+ var _b = React.useState(false), transitionStarted = _b[0], setTransitionStarted = _b[1];
106
+ var getProgressStyle = function (_a) {
107
+ var active = _a.active;
108
+ if (!transitionStarted && active === 1) {
109
+ return { transform: "scaleX(0)" };
110
+ }
111
+ switch (active) {
112
+ case 2:
113
+ return { width: '100%' };
114
+ case 1:
115
+ return { transform: "scaleX(".concat(props.count / 100, ")") };
116
+ case 0:
117
+ return { width: 0 };
118
+ default:
119
+ return { width: 0 };
120
+ }
121
+ };
122
+ var width = props.width, active = props.active;
123
+ React.useEffect(function () {
124
+ if (active === 1) {
125
+ setTransitionStarted(true);
126
+ }
127
+ }, [active]);
128
+ return (jsxRuntime.jsx(ProgressWrapper, tslib.__assign({ width: width, pause: pause, bufferAction: bufferAction }, { children: jsxRuntime.jsx("div", { style: tslib.__assign(tslib.__assign(tslib.__assign({}, styles$2.inner), progressStyles), getProgressStyle({ active: active })) }) })));
129
+ });
130
+ var styles$2 = {
131
+ inner: {
132
+ background: '#fff',
133
+ height: '100%',
134
+ maxWidth: '100%',
135
+ borderRadius: 2,
136
+ transformOrigin: 'center left',
137
+ WebkitBackfaceVisibility: 'hidden',
138
+ MozBackfaceVisibility: 'hidden',
139
+ msBackfaceVisibility: 'hidden',
140
+ backfaceVisibility: 'hidden',
141
+ WebkitPerspective: 1000,
142
+ MozPerspective: 1000,
143
+ msPerspective: 1000,
144
+ perspective: 1000,
145
+ },
146
+ };
147
+
148
+ function timestamp() {
149
+ return window.performance && window.performance.now ? window.performance.now() : new Date().getTime();
150
+ }
151
+
152
+ var ProgressArray = (function () {
153
+ var _a = React.useState(0), count = _a[0], setCount = _a[1];
154
+ var lastTime = React.useRef();
155
+ var _b = React.useContext(ProgressContext), currentId = _b.currentId, next = _b.next, pause = _b.pause, bufferAction = _b.bufferAction;
156
+ var _c = React.useContext(GlobalContext), interval = _c.interval, onStoryEnd = _c.onStoryEnd, onStoryStart = _c.onStoryStart, progressContainerStyles = _c.progressContainerStyles;
157
+ var stories = React.useContext(StoriesContext).stories;
158
+ React.useEffect(function () {
159
+ setCount(0);
160
+ }, [currentId, stories]);
161
+ React.useEffect(function () {
162
+ if (!pause) {
163
+ animationFrameId.current = requestAnimationFrame(incrementCount);
164
+ lastTime.current = timestamp();
165
+ }
166
+ return function () {
167
+ cancelAnimationFrame(animationFrameId.current);
168
+ };
169
+ }, [currentId, pause]);
170
+ var animationFrameId = React.useRef();
171
+ var countCopy = count;
172
+ var incrementCount = function () {
173
+ if (countCopy === 0)
174
+ storyStartCallback();
175
+ if (lastTime.current == undefined)
176
+ lastTime.current = timestamp();
177
+ var t = timestamp();
178
+ var dt = t - lastTime.current;
179
+ lastTime.current = t;
180
+ setCount(function (count) {
181
+ var interval = getCurrentInterval();
182
+ countCopy = count + (dt * 100) / interval;
183
+ return countCopy;
184
+ });
185
+ if (countCopy < 100) {
186
+ animationFrameId.current = requestAnimationFrame(incrementCount);
187
+ }
188
+ else {
189
+ storyEndCallback();
190
+ cancelAnimationFrame(animationFrameId.current);
191
+ next();
192
+ }
193
+ };
194
+ var storyStartCallback = function () {
195
+ onStoryStart && onStoryStart(currentId, stories[currentId]);
196
+ };
197
+ var storyEndCallback = function () {
198
+ onStoryEnd && onStoryEnd(currentId, stories[currentId]);
199
+ };
200
+ var getCurrentInterval = function () {
201
+ if (typeof stories[currentId].duration === 'number')
202
+ return stories[currentId].duration;
203
+ return interval;
204
+ };
205
+ var opacityStyles = {
206
+ opacity: pause && !bufferAction ? 0 : 1,
207
+ };
208
+ return (jsxRuntime.jsx("div", tslib.__assign({ style: tslib.__assign(tslib.__assign(tslib.__assign({}, styles$1.progressArr), progressContainerStyles), opacityStyles) }, { children: stories.map(function (_, i) { return (jsxRuntime.jsx(Progress, { count: count, width: 1 / stories.length, active: i === currentId ? 1 : i < currentId ? 2 : 0 }, i)); }) })));
209
+ });
210
+ var styles$1 = {
211
+ progressArr: {
212
+ display: 'flex',
213
+ justifyContent: 'center',
214
+ maxWidth: '100%',
215
+ flexWrap: 'nowrap',
216
+ position: 'absolute',
217
+ width: '100%',
218
+ padding: 16,
219
+ paddingTop: 16,
220
+ alignSelf: 'center',
221
+ zIndex: 1001,
222
+ filter: 'drop-shadow(0 1px 8px #222)',
223
+ transition: 'opacity 400ms ease-in-out',
224
+ },
225
+ };
226
+
227
+ function useIsMounted() {
228
+ var isMounted = React.useRef(false);
229
+ React.useEffect(function () {
230
+ isMounted.current = true;
231
+ return function () {
232
+ isMounted.current = false;
233
+ };
234
+ }, []);
235
+ return React.useCallback(function () { return isMounted.current; }, []);
236
+ }
237
+
238
+ function StoryContainer () {
239
+ var _a = React.useState(0), currentId = _a[0], setCurrentId = _a[1];
240
+ var _b = React.useState(true), pause = _b[0], setPause = _b[1];
241
+ var _c = React.useState(true), bufferAction = _c[0], setBufferAction = _c[1];
242
+ var isMounted = useIsMounted();
243
+ var mousedownId = React.useRef();
244
+ var _d = React.useContext(GlobalContext), width = _d.width, height = _d.height, loop = _d.loop, currentIndex = _d.currentIndex, isPaused = _d.isPaused, keyboardNavigation = _d.keyboardNavigation, preventDefault = _d.preventDefault, _e = _d.storyContainerStyles, storyContainerStyles = _e === void 0 ? {} : _e, onAllStoriesEnd = _d.onAllStoriesEnd, onPrevious = _d.onPrevious, onNext = _d.onNext, _f = _d.prevTapPercent, prevTapPercent = _f === void 0 ? 50 : _f;
245
+ var stories = React.useContext(StoriesContext).stories;
246
+ React.useEffect(function () {
247
+ if (typeof currentIndex === 'number') {
248
+ if (currentIndex >= 0 && currentIndex < stories.length) {
249
+ setCurrentIdWrapper(function () { return currentIndex; });
250
+ }
251
+ else {
252
+ console.error('Index out of bounds. Current index was set to value more than the length of stories array.', currentIndex);
253
+ }
254
+ }
255
+ }, [currentIndex]);
256
+ React.useEffect(function () {
257
+ if (typeof isPaused === 'boolean') {
258
+ setTimeout(function () {
259
+ setPause(isPaused);
260
+ }, 50);
261
+ }
262
+ }, [isPaused]);
263
+ React.useEffect(function () {
264
+ var isClient = typeof window !== 'undefined' && window.document;
265
+ if (isClient && typeof keyboardNavigation === 'boolean' && keyboardNavigation) {
266
+ document.addEventListener('keydown', handleKeyDown);
267
+ return function () {
268
+ document.removeEventListener('keydown', handleKeyDown);
269
+ };
270
+ }
271
+ }, [keyboardNavigation]);
272
+ var handleKeyDown = function (e) {
273
+ if (e.key === 'ArrowLeft') {
274
+ previous();
275
+ }
276
+ else if (e.key === 'ArrowRight') {
277
+ next({ isSkippedByUser: true });
278
+ }
279
+ };
280
+ var toggleState = function (action, bufferAction) {
281
+ setPause(action === 'pause');
282
+ setBufferAction(!!bufferAction);
283
+ };
284
+ var setCurrentIdWrapper = function (callback, flag) {
285
+ if (flag === void 0) { flag = true; }
286
+ setCurrentId(callback);
287
+ if (flag)
288
+ toggleState('pause', true);
289
+ };
290
+ var previous = function () {
291
+ if (onPrevious != undefined) {
292
+ onPrevious();
293
+ }
294
+ setCurrentIdWrapper(function (prev) { return (prev > 0 ? prev - 1 : prev); }, false);
295
+ };
296
+ var next = function (options) {
297
+ if (onNext != undefined && (options === null || options === void 0 ? void 0 : options.isSkippedByUser)) {
298
+ onNext();
299
+ }
300
+ if (isMounted()) {
301
+ if (loop) {
302
+ updateNextStoryIdForLoop();
303
+ }
304
+ else {
305
+ updateNextStoryId(options === null || options === void 0 ? void 0 : options.flag);
306
+ }
307
+ }
308
+ };
309
+ var updateNextStoryIdForLoop = function () {
310
+ setCurrentIdWrapper(function (prev) {
311
+ if (prev >= stories.length - 1) {
312
+ onAllStoriesEnd && onAllStoriesEnd(currentId, stories);
313
+ }
314
+ return (prev + 1) % stories.length;
315
+ });
316
+ };
317
+ var updateNextStoryId = function (flag) {
318
+ if (flag === void 0) { flag = true; }
319
+ setCurrentIdWrapper(function (prev) {
320
+ if (prev < stories.length - 1)
321
+ return prev + 1;
322
+ onAllStoriesEnd && onAllStoriesEnd(currentId, stories);
323
+ return prev;
324
+ }, flag);
325
+ };
326
+ var debouncePause = function (e) {
327
+ e.preventDefault();
328
+ mousedownId.current = setTimeout(function () {
329
+ toggleState('pause');
330
+ }, 200);
331
+ };
332
+ var mouseUp = function (type, flag) {
333
+ if (flag === void 0) { flag = true; }
334
+ return function (e) {
335
+ e.preventDefault();
336
+ mousedownId.current && clearTimeout(mousedownId.current);
337
+ if (pause) {
338
+ toggleState('play');
339
+ }
340
+ else {
341
+ type === 'next' ? next({ isSkippedByUser: true, flag: flag }) : previous();
342
+ }
343
+ };
344
+ };
345
+ return (jsxRuntime.jsxs("div", tslib.__assign({ style: tslib.__assign(tslib.__assign(tslib.__assign({}, styles.container), storyContainerStyles), {
346
+ width: width,
347
+ height: height,
348
+ }) }, { children: [jsxRuntime.jsx(ProgressContext.Provider, tslib.__assign({ value: {
349
+ bufferAction: bufferAction,
350
+ currentId: currentId,
351
+ pause: pause,
352
+ next: next,
353
+ } }, { children: jsxRuntime.jsx(ProgressArray, {}) })), jsxRuntime.jsx(Story$1, { action: toggleState, bufferAction: bufferAction, playState: pause, story: stories[currentId] }), !preventDefault && (jsxRuntime.jsxs("div", tslib.__assign({ style: styles.overlay }, { children: [jsxRuntime.jsx("div", { style: { width: "".concat(prevTapPercent, "%"), zIndex: 999 }, onTouchStart: debouncePause, onTouchEnd: mouseUp('previous'), onMouseDown: debouncePause, onMouseUp: mouseUp('previous') }), jsxRuntime.jsx("div", { style: { width: "".concat(100 - prevTapPercent, "%"), zIndex: 999 }, onTouchStart: debouncePause, onTouchEnd: mouseUp('next', false), onMouseDown: debouncePause, onMouseUp: mouseUp('next', false) })] })))] })));
354
+ }
355
+ var styles = {
356
+ container: {
357
+ display: 'flex',
358
+ flexDirection: 'column',
359
+ position: 'relative',
360
+ WebkitUserSelect: 'none',
361
+ overflow: 'hidden',
362
+ },
363
+ overlay: {
364
+ position: 'absolute',
365
+ height: 'inherit',
366
+ width: 'inherit',
367
+ display: 'flex',
368
+ },
369
+ };
370
+
371
+ var getRenderer = function (story, renderers) {
372
+ var probable = renderers
373
+ .map(function (r) {
374
+ return tslib.__assign(tslib.__assign({}, r), { testerResult: r.tester(story) });
375
+ })
376
+ .filter(function (r) { return r.testerResult.condition; });
377
+ probable.sort(function (a, b) { return b.testerResult.priority - a.testerResult.priority; });
378
+ return probable[0].renderer;
379
+ };
380
+
381
+ var renderer = function (props) {
382
+ React__namespace.useEffect(function () {
383
+ props.action('play');
384
+ }, [props.story]);
385
+ var Content = props.story.originalContent;
386
+ if (Content)
387
+ return jsxRuntime.jsx(Content, tslib.__assign({}, props));
388
+ return null;
389
+ };
390
+ var tester = function (story) {
391
+ return {
392
+ condition: !!story.content,
393
+ priority: 2,
394
+ };
395
+ };
396
+ var autoplayContent = {
397
+ renderer: renderer,
398
+ tester: tester,
399
+ };
400
+
401
+ var renderers = [autoplayContent];
402
+
403
+ var Story = function (props) {
404
+ var _a, _b;
405
+ var renderers$1 = renderers;
406
+ var context = {
407
+ width: ((_a = props.storyContainerStyles) === null || _a === void 0 ? void 0 : _a.width) || props.width,
408
+ height: ((_b = props.storyContainerStyles) === null || _b === void 0 ? void 0 : _b.height) || props.height,
409
+ loader: props.loader,
410
+ storyContainerStyles: props.storyContainerStyles,
411
+ storyInnerContainerStyles: props.storyInnerContainerStyles,
412
+ storyStyles: props.storyStyles,
413
+ progressContainerStyles: props.progressContainerStyles,
414
+ progressWrapperStyles: props.progressWrapperStyles,
415
+ progressStyles: props.progressStyles,
416
+ loop: props.loop,
417
+ interval: props.interval,
418
+ isPaused: props.isPaused,
419
+ currentIndex: props.currentIndex,
420
+ onStoryStart: props.onStoryStart,
421
+ onStoryEnd: props.onStoryEnd,
422
+ onAllStoriesEnd: props.onAllStoriesEnd,
423
+ onNext: props.onNext,
424
+ onPrevious: props.onPrevious,
425
+ keyboardNavigation: props.keyboardNavigation,
426
+ preventDefault: props.preventDefault,
427
+ prevTapPercent: props.prevTapPercent,
428
+ };
429
+ var _c = React.useState({
430
+ stories: generateStories(props.stories, renderers$1),
431
+ }), stories = _c[0], setStories = _c[1];
432
+ React.useEffect(function () {
433
+ setStories({ stories: generateStories(props.stories, renderers$1) });
434
+ }, [props.stories, props.renderers]);
435
+ return (jsxRuntime.jsx(GlobalContext.Provider, tslib.__assign({ value: context }, { children: jsxRuntime.jsx(StoriesContext.Provider, tslib.__assign({ value: stories }, { children: jsxRuntime.jsx(StoryContainer, {}) })) })));
436
+ };
437
+ var generateStories = function (stories, renderers) {
438
+ return stories.map(function (s) {
439
+ var story = tslib.__assign({}, s);
440
+ var renderer = getRenderer(story, renderers);
441
+ story.originalContent = story.content;
442
+ story.content = renderer;
443
+ return story;
444
+ });
445
+ };
446
+ Story.defaultProps = {
447
+ width: 280,
448
+ height: 320,
449
+ interval: 4000,
450
+ };
451
+
452
+ exports.Story = Story;
453
+ //# sourceMappingURL=ct-design-story.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ct-design-story.cjs.js","sources":["../packages/components/Story/src/context/Global.ts","../packages/components/Story/src/context/Stories.ts","../packages/components/Story/src/context/Progress.ts","../packages/components/Story/src/components/Story.tsx","../packages/components/Story/src/components/ProgressWrapper.tsx","../packages/components/Story/src/components/Progress.tsx","../packages/components/Story/src/util/time.ts","../packages/components/Story/src/components/ProgressArray.tsx","../packages/components/Story/src/util/use-is-mounted.tsx","../packages/components/Story/src/components/StoryContainer.tsx","../packages/components/Story/src/util/renderers.tsx","../packages/components/Story/src/renderers/AutoPlayContent.tsx","../packages/components/Story/src/renderers/index.ts","../packages/components/Story/src/Story.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["initialContext","React","Story","useContext","_jsx","__assign","styles","ProgressCtx","useState","useEffect","useRef","useCallback","_jsxs","renderers","defaultRenderers"],"mappings":"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"}