@rtsee/presentation 0.0.52

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 (29) hide show
  1. package/dist/presentation/src/index.d.ts +3 -0
  2. package/dist/presentation/src/index.d.ts.map +1 -0
  3. package/dist/presentation/src/index.js +19 -0
  4. package/dist/presentation/src/index.js.map +1 -0
  5. package/dist/presentation/src/interfaces/RTSeePresentationInput.d.ts +3 -0
  6. package/dist/presentation/src/interfaces/RTSeePresentationInput.d.ts.map +1 -0
  7. package/dist/presentation/src/interfaces/RTSeePresentationInput.js +3 -0
  8. package/dist/presentation/src/interfaces/RTSeePresentationInput.js.map +1 -0
  9. package/dist/presentation/src/interfaces/index.d.ts +2 -0
  10. package/dist/presentation/src/interfaces/index.d.ts.map +1 -0
  11. package/dist/presentation/src/interfaces/index.js +18 -0
  12. package/dist/presentation/src/interfaces/index.js.map +1 -0
  13. package/dist/presentation/src/models/RTSeePresentation.d.ts +20 -0
  14. package/dist/presentation/src/models/RTSeePresentation.d.ts.map +1 -0
  15. package/dist/presentation/src/models/RTSeePresentation.js +67 -0
  16. package/dist/presentation/src/models/RTSeePresentation.js.map +1 -0
  17. package/dist/presentation/src/models/RTSeeStory.d.ts +32 -0
  18. package/dist/presentation/src/models/RTSeeStory.d.ts.map +1 -0
  19. package/dist/presentation/src/models/RTSeeStory.js +162 -0
  20. package/dist/presentation/src/models/RTSeeStory.js.map +1 -0
  21. package/dist/presentation/src/models/RTSeeStorySlide.d.ts +15 -0
  22. package/dist/presentation/src/models/RTSeeStorySlide.d.ts.map +1 -0
  23. package/dist/presentation/src/models/RTSeeStorySlide.js +25 -0
  24. package/dist/presentation/src/models/RTSeeStorySlide.js.map +1 -0
  25. package/dist/presentation/src/models/index.d.ts +4 -0
  26. package/dist/presentation/src/models/index.d.ts.map +1 -0
  27. package/dist/presentation/src/models/index.js +20 -0
  28. package/dist/presentation/src/models/index.js.map +1 -0
  29. package/package.json +52 -0
@@ -0,0 +1,3 @@
1
+ export * from "./models";
2
+ export * from "./interfaces";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./models"), exports);
18
+ __exportStar(require("./interfaces"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B"}
@@ -0,0 +1,3 @@
1
+ export interface IRTSeePresentationInput {
2
+ }
3
+ //# sourceMappingURL=RTSeePresentationInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTSeePresentationInput.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/RTSeePresentationInput.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;CAEvC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=RTSeePresentationInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTSeePresentationInput.js","sourceRoot":"","sources":["../../../../src/interfaces/RTSeePresentationInput.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "./RTSeePresentationInput";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./RTSeePresentationInput"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
@@ -0,0 +1,20 @@
1
+ import { IRTSeePresentation, RTSeeCore } from "@rtsee/core";
2
+ import { RTSeeStory } from "./RTSeeStory";
3
+ import { IRTSeePresentationOptions, IStoriesQuery, IStoriesQueryResponse, IStorySlidesQuery, IStorySlidesQueryResponse } from "@rtsee/common";
4
+ export declare class RTSeePresentation extends RTSeeCore implements IRTSeePresentation {
5
+ stories: RTSeeStory[];
6
+ activeStory: RTSeeStory | null;
7
+ previewedStory?: RTSeeStory;
8
+ step: number;
9
+ getRemoteStories: (options: IStoriesQuery) => Promise<IStoriesQueryResponse>;
10
+ getRemoteStorySlides: (options: IStorySlidesQuery) => Promise<IStorySlidesQueryResponse>;
11
+ storiesLoadInProgress: boolean;
12
+ constructor(options: IRTSeePresentationOptions);
13
+ init(): void;
14
+ onReady(): void;
15
+ setActiveStory(story: RTSeeStory): void;
16
+ disableActiveStory(): void;
17
+ loadMoreStories(): Promise<void>;
18
+ private addStory;
19
+ }
20
+ //# sourceMappingURL=RTSeePresentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTSeePresentation.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeePresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EAAE,iBAAiB,EACxC,yBAAyB,EAC1B,MAAM,eAAe,CAAC;AAIvB,qBAAa,iBAAkB,SAAQ,SAAU,YAAW,kBAAkB;IAC5E,OAAO,EAAE,UAAU,EAAE,CAAM;IAC3B,WAAW,EAAE,UAAU,GAAG,IAAI,CAAQ;IACtC,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B,IAAI,EAAE,MAAM,CAAC;IAEb,gBAAgB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7E,oBAAoB,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEzF,qBAAqB,EAAE,OAAO,CAAS;gBAE3B,OAAO,EAAE,yBAAyB;IAO9C,IAAI;IAMJ,OAAO;IAKP,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAKvC,kBAAkB,IAAI,IAAI;IAIpB,eAAe;IAarB,OAAO,CAAC,QAAQ;CAOjB"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RTSeePresentation = void 0;
13
+ const core_1 = require("@rtsee/core");
14
+ const RTSeeStory_1 = require("./RTSeeStory");
15
+ const DEFAULT_STORIES_STEP = 10;
16
+ class RTSeePresentation extends core_1.RTSeeCore {
17
+ constructor(options) {
18
+ super(options);
19
+ this.stories = [];
20
+ this.activeStory = null;
21
+ this.storiesLoadInProgress = false;
22
+ this.step = options.step || DEFAULT_STORIES_STEP;
23
+ this.getRemoteStories = options.getStories;
24
+ this.getRemoteStorySlides = options.getSlides;
25
+ }
26
+ init() {
27
+ console.log('Initializing RTSeePresentation...');
28
+ this.storiesLoadInProgress = true;
29
+ void this.loadMoreStories();
30
+ }
31
+ onReady() {
32
+ console.log('RTSeePresentation onReady');
33
+ void this.init();
34
+ }
35
+ setActiveStory(story) {
36
+ this.activeStory = story;
37
+ this.activeStory.init();
38
+ }
39
+ disableActiveStory() {
40
+ this.activeStory = null;
41
+ }
42
+ loadMoreStories() {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ try {
45
+ const storiesResults = yield this.getRemoteStories({
46
+ offset: this.stories.length,
47
+ limit: DEFAULT_STORIES_STEP,
48
+ });
49
+ storiesResults.stories.forEach(s => this.addStory(s));
50
+ }
51
+ catch (e) {
52
+ console.log(`Failed to load stories: ${e}`);
53
+ }
54
+ });
55
+ }
56
+ addStory(storyData) {
57
+ const story = new RTSeeStory_1.RTSeeStory(Object.assign(Object.assign({}, storyData), { getRemoteSlides: this.getRemoteStorySlides }));
58
+ const existingStoryIndex = this.stories.findIndex((s) => s.id === story.id);
59
+ if (existingStoryIndex !== -1) {
60
+ throw new Error(`Story with id ${storyData.id} already added!`);
61
+ }
62
+ this.stories.push(story);
63
+ return story;
64
+ }
65
+ }
66
+ exports.RTSeePresentation = RTSeePresentation;
67
+ //# sourceMappingURL=RTSeePresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTSeePresentation.js","sourceRoot":"","sources":["../../../../src/models/RTSeePresentation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAA0D;AAC1D,6CAA0C;AAQ1C,MAAM,oBAAoB,GAAW,EAAE,CAAC;AAExC,MAAa,iBAAkB,SAAQ,gBAAS;IAY9C,YAAY,OAAkC;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAC;QAZjB,YAAO,GAAiB,EAAE,CAAC;QAC3B,gBAAW,GAAsB,IAAI,CAAC;QAQtC,0BAAqB,GAAY,KAAK,CAAC;QAIrC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,oBAAoB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAA;IAClB,CAAC;IAED,cAAc,CAAC,KAAiB;QAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEK,eAAe;;YACnB,IAAI;gBACF,MAAM,cAAc,GAA0B,MAAM,IAAI,CAAC,gBAAgB,CAAC;oBACxE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBAC3B,KAAK,EAAE,oBAAoB;iBAC5B,CAAC,CAAC;gBAEH,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;aAC7C;QACH,CAAC;KAAA;IAEO,QAAQ,CAAC,SAAsB;QACrC,MAAM,KAAK,GAAe,IAAI,uBAAU,iCAAK,SAAS,KAAE,eAAe,EAAE,IAAI,CAAC,oBAAoB,IAAG,CAAC;QACtG,MAAM,kBAAkB,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QACpF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,SAAS,CAAC,EAAE,iBAAiB,CAAC,CAAC;SAAE;QACnG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA3DD,8CA2DC"}
@@ -0,0 +1,32 @@
1
+ import { RTSeeStorySlide } from "./RTSeeStorySlide";
2
+ import { IRTSeeStory, IRTSeeStoryOptions, IStorySlidesQuery, IStorySlidesQueryResponse } from "@rtsee/common";
3
+ export declare class RTSeeStory implements IRTSeeStory {
4
+ id: string;
5
+ name: string;
6
+ imageUrl: string;
7
+ description: string;
8
+ slides: RTSeeStorySlide[];
9
+ totalSlides: number;
10
+ averageReadTime?: number;
11
+ getRemoteSlides: (options: IStorySlidesQuery) => Promise<IStorySlidesQueryResponse>;
12
+ preloadBuffer: number;
13
+ activeSlideNumber: number;
14
+ activeSlide: RTSeeStorySlide | null;
15
+ constructor(options: IRTSeeStoryOptions);
16
+ init(): void;
17
+ setActiveSlideNumber(slideN: number): void;
18
+ nextSlide(): void;
19
+ previousSlide(): void;
20
+ private onActiveSlideNumberChanged;
21
+ private loadBasedOnActiveSlideNumberBiDirectional;
22
+ private loadSlidesFront;
23
+ private loadSlidesBack;
24
+ private onSlidesLoaded;
25
+ private addSlide;
26
+ private addSlides;
27
+ private markActiveSlide;
28
+ private getLocalSlideByNumber;
29
+ private getCurrentFrontBuffer;
30
+ private getCurrentBackwardsBuffer;
31
+ }
32
+ //# sourceMappingURL=RTSeeStory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTSeeStory.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeStory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,WAAW,EACX,kBAAkB,EAElB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,eAAe,CAAC;AAIvB,qBAAa,UAAW,YAAW,WAAW;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,EAAE,CAAM;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACpF,aAAa,EAAE,MAAM,CAAC;IAEtB,iBAAiB,EAAE,MAAM,CAAK;IAC9B,WAAW,EAAE,eAAe,GAAG,IAAI,CAAQ;gBAE/B,OAAO,EAAE,kBAAkB;IAWvC,IAAI;IAIJ,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAKnC,SAAS;IAIT,aAAa;IAIb,OAAO,CAAC,0BAA0B;YAmBpB,yCAAyC;YAczC,eAAe;YAcf,cAAc;IAc5B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,yBAAyB;CAoBlC"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RTSeeStory = void 0;
13
+ const RTSeeStorySlide_1 = require("./RTSeeStorySlide");
14
+ const DEFAULT_SLIDE_PRELOAD_N = 5;
15
+ class RTSeeStory {
16
+ constructor(options) {
17
+ this.slides = [];
18
+ this.activeSlideNumber = 0;
19
+ this.activeSlide = null;
20
+ this.id = options.id || '';
21
+ this.name = options.name || '';
22
+ this.description = options.description || '';
23
+ this.imageUrl = options.imageUrl || '';
24
+ this.totalSlides = options.totalSlides || 0;
25
+ this.averageReadTime = options.averageReadTime || 0;
26
+ this.getRemoteSlides = options.getRemoteSlides;
27
+ this.preloadBuffer = options.preloadBuffer || DEFAULT_SLIDE_PRELOAD_N;
28
+ }
29
+ init() {
30
+ this.setActiveSlideNumber(1);
31
+ }
32
+ setActiveSlideNumber(slideN) {
33
+ this.activeSlideNumber = slideN;
34
+ this.onActiveSlideNumberChanged();
35
+ }
36
+ nextSlide() {
37
+ this.setActiveSlideNumber(this.activeSlideNumber + 1);
38
+ }
39
+ previousSlide() {
40
+ this.setActiveSlideNumber(this.activeSlideNumber - 1);
41
+ }
42
+ onActiveSlideNumberChanged() {
43
+ const loadedActiveSlide = this.getLocalSlideByNumber(this.activeSlideNumber);
44
+ if (!loadedActiveSlide) {
45
+ void this.loadBasedOnActiveSlideNumberBiDirectional();
46
+ return;
47
+ }
48
+ const frontBuffer = this.getCurrentFrontBuffer();
49
+ const backBuffer = this.getCurrentBackwardsBuffer();
50
+ if (frontBuffer < this.preloadBuffer) {
51
+ void this.loadSlidesFront(frontBuffer);
52
+ }
53
+ if (backBuffer < this.preloadBuffer) {
54
+ void this.loadSlidesBack(backBuffer);
55
+ }
56
+ }
57
+ loadBasedOnActiveSlideNumberBiDirectional() {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ const startSlideNumber = this.activeSlideNumber - DEFAULT_SLIDE_PRELOAD_N > 1
60
+ ? this.activeSlideNumber - DEFAULT_SLIDE_PRELOAD_N
61
+ : 1;
62
+ const slidesResponse = yield this.getRemoteSlides({
63
+ storyId: this.id,
64
+ direction: "front",
65
+ slideNumber: startSlideNumber,
66
+ limit: DEFAULT_SLIDE_PRELOAD_N * 2
67
+ });
68
+ this.onSlidesLoaded(slidesResponse.slides);
69
+ });
70
+ }
71
+ loadSlidesFront(currentBuffer) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const missingSlidesNumber = DEFAULT_SLIDE_PRELOAD_N - currentBuffer;
74
+ const lastLoadedSlide = this.activeSlideNumber + currentBuffer;
75
+ const slidesResponse = yield this.getRemoteSlides({
76
+ storyId: this.id,
77
+ direction: "front",
78
+ slideNumber: lastLoadedSlide,
79
+ limit: missingSlidesNumber
80
+ });
81
+ this.onSlidesLoaded(slidesResponse.slides);
82
+ });
83
+ }
84
+ loadSlidesBack(currentBuffer) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ const missingSlidesNumber = DEFAULT_SLIDE_PRELOAD_N - currentBuffer;
87
+ const lastLoadedSlide = this.activeSlideNumber - currentBuffer;
88
+ const slidesResponse = yield this.getRemoteSlides({
89
+ storyId: this.id,
90
+ direction: "back",
91
+ slideNumber: lastLoadedSlide,
92
+ limit: missingSlidesNumber
93
+ });
94
+ this.onSlidesLoaded(slidesResponse.slides);
95
+ });
96
+ }
97
+ onSlidesLoaded(slides) {
98
+ this.addSlides(slides);
99
+ this.markActiveSlide();
100
+ }
101
+ addSlide(slideData) {
102
+ this.slides.push(new RTSeeStorySlide_1.RTSeeStorySlide(slideData));
103
+ }
104
+ addSlides(slidesData) {
105
+ slidesData.forEach((slideData) => {
106
+ this.addSlide(slideData);
107
+ });
108
+ this.slides.sort((a, b) => a.slideNumber - b.slideNumber);
109
+ }
110
+ markActiveSlide() {
111
+ this.slides.forEach((slide) => {
112
+ if (slide.slideNumber === this.activeSlideNumber) {
113
+ slide.setActive();
114
+ this.activeSlide = slide;
115
+ }
116
+ else {
117
+ slide.setInactive();
118
+ }
119
+ });
120
+ }
121
+ getLocalSlideByNumber(slideNumber) {
122
+ return this.slides.find((s) => s.slideNumber === this.activeSlideNumber) || null;
123
+ }
124
+ getCurrentFrontBuffer() {
125
+ if (!this.activeSlideNumber) {
126
+ throw new Error("RTSeeStory: activeSlide is needed for computing the buffer");
127
+ }
128
+ const activeSlideIndex = this.slides
129
+ .findIndex((s) => s.slideNumber === this.activeSlideNumber);
130
+ let buffer = 0;
131
+ for (let i = 1; i < this.preloadBuffer; i++) {
132
+ if (this.slides[activeSlideIndex + i]
133
+ && this.slides[activeSlideIndex + i].slideNumber === this.activeSlideNumber + i) {
134
+ buffer++;
135
+ }
136
+ else {
137
+ break;
138
+ }
139
+ }
140
+ return buffer;
141
+ }
142
+ getCurrentBackwardsBuffer() {
143
+ if (!this.activeSlideNumber) {
144
+ throw new Error("RTSeeStory: activeSlide is needed for computing the buffer");
145
+ }
146
+ const activeSlideIndex = this.slides
147
+ .findIndex((s) => s.slideNumber === this.activeSlideNumber);
148
+ let buffer = 0;
149
+ for (let i = 1; i < this.preloadBuffer; i++) {
150
+ if (this.slides[activeSlideIndex - i]
151
+ && this.slides[activeSlideIndex - i].slideNumber === this.activeSlideNumber - i) {
152
+ buffer++;
153
+ }
154
+ else {
155
+ break;
156
+ }
157
+ }
158
+ return buffer;
159
+ }
160
+ }
161
+ exports.RTSeeStory = RTSeeStory;
162
+ //# sourceMappingURL=RTSeeStory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTSeeStory.js","sourceRoot":"","sources":["../../../../src/models/RTSeeStory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import { IRTSeeStorySlide } from "@rtsee/common";
3
+ import { EventEmitter } from "events";
4
+ export declare class RTSeeStorySlide<T = any> extends EventEmitter implements IRTSeeStorySlide {
5
+ text: string;
6
+ slideNumber: number;
7
+ imageUrl?: string;
8
+ widget?: string;
9
+ data?: T;
10
+ isActive: boolean;
11
+ constructor(options: IRTSeeStorySlide<T>);
12
+ setActive(): void;
13
+ setInactive(): void;
14
+ }
15
+ //# sourceMappingURL=RTSeeStorySlide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTSeeStorySlide.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeStorySlide.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAEpC,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,YAAa,YAAW,gBAAgB;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,OAAO,CAAS;gBAEd,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAUxC,SAAS;IAKT,WAAW;CAIZ"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RTSeeStorySlide = void 0;
4
+ const events_1 = require("events");
5
+ class RTSeeStorySlide extends events_1.EventEmitter {
6
+ constructor(options) {
7
+ super();
8
+ this.isActive = false;
9
+ this.text = options.text;
10
+ this.slideNumber = options.slideNumber;
11
+ this.imageUrl = options.imageUrl;
12
+ this.widget = options.widget;
13
+ this.data = options.data;
14
+ }
15
+ setActive() {
16
+ this.isActive = true;
17
+ // this.emit("activated");
18
+ }
19
+ setInactive() {
20
+ this.isActive = false;
21
+ // this.emit('deactivated');
22
+ }
23
+ }
24
+ exports.RTSeeStorySlide = RTSeeStorySlide;
25
+ //# sourceMappingURL=RTSeeStorySlide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTSeeStorySlide.js","sourceRoot":"","sources":["../../../../src/models/RTSeeStorySlide.ts"],"names":[],"mappings":";;;AACA,mCAAoC;AAEpC,MAAa,eAAyB,SAAQ,qBAAY;IAQxD,YAAY,OAA4B;QACtC,KAAK,EAAE,CAAC;QAHV,aAAQ,GAAY,KAAK,CAAC;QAKxB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,0BAA0B;IAC5B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,4BAA4B;IAC9B,CAAC;CACF;AA3BD,0CA2BC"}
@@ -0,0 +1,4 @@
1
+ export * from './RTSeePresentation';
2
+ export * from './RTSeeStory';
3
+ export * from './RTSeeStorySlide';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./RTSeePresentation"), exports);
18
+ __exportStar(require("./RTSeeStory"), exports);
19
+ __exportStar(require("./RTSeeStorySlide"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,+CAA6B;AAC7B,oDAAkC"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@rtsee/presentation",
3
+ "version": "0.0.52",
4
+ "license": "ISC",
5
+ "private": false,
6
+ "main": "dist/presentation/src/index",
7
+ "types": "dist/presentation/src/index",
8
+ "files": [
9
+ "dist/presentation/src"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git@github.com:thewerf/rtsee.git",
14
+ "directory": "packages/@rtsee/presentation"
15
+ },
16
+ "scripts": {
17
+ "prepublishOnly": "yarn build",
18
+ "clean": "rm -rf ./dist",
19
+ "build": "yarn clean && yarn compile",
20
+ "compile": "tsc -p tsconfig.json",
21
+ "watch": "tsc -p tsconfig.json --watch",
22
+ "lint-file:eslint": "yarn eslint",
23
+ "lint-file:prettier": "yarn prettier --check",
24
+ "lint:eslint": "yarn lint-file:eslint 'src/**/*.ts'",
25
+ "lint:prettier": "yarn lint-file:prettier './**/*.{ts,js,json,css,md}' --ignore-path ../../.prettierignore"
26
+ },
27
+ "devDependencies": {
28
+ "@types/jest": "^26.0.24",
29
+ "@types/node": "~20.5.1",
30
+ "@types/uuid": "^8.3.4",
31
+ "@typescript-eslint/eslint-plugin": "^4.33.0",
32
+ "@typescript-eslint/parser": "^4.33.0",
33
+ "eslint": "^7.32.0",
34
+ "eslint-config-prettier": "^8.3.0",
35
+ "eslint-plugin-jest": "^23.1.1",
36
+ "jest": "^27.0.6",
37
+ "jest-watch-yarn-workspaces": "^1.1.0",
38
+ "prettier": "^2.3.2",
39
+ "ts-jest": "^27.0.3",
40
+ "typescript": "5.2.2"
41
+ },
42
+ "peerDependencies": {
43
+ "uuid": "^8.3.2"
44
+ },
45
+ "dependencies": {
46
+ "uuid": "^8.3.2"
47
+ },
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "gitHead": "bb223780c5ffdbb9860ddf8612cde61cbb77701d"
52
+ }