@axinom/mosaic-managed-workflow-integration 0.17.0-rc.0 → 0.17.0-rc.2

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 (42) hide show
  1. package/dist/hosting/get-object-storages.d.ts +1 -3
  2. package/dist/hosting/get-object-storages.d.ts.map +1 -1
  3. package/dist/hosting/get-object-storages.js +7 -9
  4. package/dist/hosting/get-object-storages.js.map +1 -1
  5. package/dist/image/image-extensions.d.ts +3 -0
  6. package/dist/image/image-extensions.d.ts.map +1 -1
  7. package/dist/image/image-extensions.js +3 -0
  8. package/dist/image/image-extensions.js.map +1 -1
  9. package/dist/image/thumbnail-renderer.d.ts +33 -11
  10. package/dist/image/thumbnail-renderer.d.ts.map +1 -1
  11. package/dist/image/thumbnail-renderer.js +46 -24
  12. package/dist/image/thumbnail-renderer.js.map +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +3 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/initialize.d.ts +8 -0
  18. package/dist/initialize.d.ts.map +1 -0
  19. package/dist/initialize.js +13 -0
  20. package/dist/initialize.js.map +1 -0
  21. package/dist/localization/helpers/localization-generator.d.ts +12 -8
  22. package/dist/localization/helpers/localization-generator.d.ts.map +1 -1
  23. package/dist/localization/helpers/localization-generator.js +17 -8
  24. package/dist/localization/helpers/localization-generator.js.map +1 -1
  25. package/dist/tsconfig.tsbuildinfo +1 -1
  26. package/dist/video/video-cue-points.d.ts +5 -5
  27. package/dist/video/video-cue-points.d.ts.map +1 -1
  28. package/dist/video/video-cue-points.js +13 -7
  29. package/dist/video/video-cue-points.js.map +1 -1
  30. package/dist/video/video-extensions.d.ts +3 -0
  31. package/dist/video/video-extensions.d.ts.map +1 -1
  32. package/dist/video/video-extensions.js +3 -0
  33. package/dist/video/video-extensions.js.map +1 -1
  34. package/package.json +4 -4
  35. package/src/hosting/get-object-storages.tsx +8 -10
  36. package/src/image/image-extensions.tsx +3 -0
  37. package/src/image/thumbnail-renderer.tsx +50 -35
  38. package/src/index.ts +1 -0
  39. package/src/initialize.ts +11 -0
  40. package/src/localization/helpers/localization-generator.ts +18 -9
  41. package/src/video/video-cue-points.ts +16 -10
  42. package/src/video/video-extensions.tsx +3 -0
@@ -1,4 +1,3 @@
1
- import { PiletApi } from '@axinom/mosaic-portal';
2
1
  import { ID, Maybe } from '../common';
3
2
  import { EncodingState } from './types';
4
3
  export interface VideoServiceCuePoints {
@@ -16,10 +15,11 @@ export interface VideoData {
16
15
  nodes: VideoServiceCuePoints[];
17
16
  };
18
17
  }
19
- export declare let getVideoCuePointsData: () => (id: ID[], cuePointTypeKeys?: string[]) => Promise<VideoData[]>;
20
18
  /**
21
- * Initializes the video-cue-points-data function.
22
- * @param app The PiletApi object.
19
+ * Returns the video cue points data for the given video IDs.
20
+ * This method depends on the `initializeIntegrationLib` function being called before.
21
+ * @param id The video IDs for which to fetch the cue points data.
22
+ * @param cuePointTypeKeys Optional array of cue point type keys that will be used as filter for the returend cue points. If not set, will return all cue points.
23
23
  */
24
- export declare function setGetVideoCuePointsData(app: PiletApi): void;
24
+ export declare const getVideoCuePointsData: (id: ID[], cuePointTypeKeys?: string[]) => Promise<VideoData[]>;
25
25
  //# sourceMappingURL=video-cue-points.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"video-cue-points.d.ts","sourceRoot":"","sources":["../../src/video/video-cue-points.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,EAAE,EAAE,EAAE,CAAC;IACP,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,EAAE,EAAE,EAAE,CAAC;IACP,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE;QACT,UAAU,CAAC,EAAE,qBAAqB,CAAC;QACnC,KAAK,EAAE,qBAAqB,EAAE,CAAC;KAChC,CAAC;CACH;AAED,eAAO,IAAI,qBAAqB,EAAE,MAAM,CACtC,EAAE,EAAE,EAAE,EAAE,EACR,gBAAgB,CAAC,EAAE,MAAM,EAAE,KACxB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAE1B;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAE5D"}
1
+ {"version":3,"file":"video-cue-points.d.ts","sourceRoot":"","sources":["../../src/video/video-cue-points.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,EAAE,EAAE,EAAE,CAAC;IACP,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,EAAE,EAAE,EAAE,CAAC;IACP,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE;QACT,UAAU,CAAC,EAAE,qBAAqB,CAAC;QACnC,KAAK,EAAE,qBAAqB,EAAE,CAAC;KAChC,CAAC;CACH;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,CAClC,EAAE,EAAE,EAAE,EAAE,EACR,gBAAgB,CAAC,EAAE,MAAM,EAAE,KACxB,OAAO,CAAC,SAAS,EAAE,CAQvB,CAAC"}
@@ -1,12 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setGetVideoCuePointsData = exports.getVideoCuePointsData = void 0;
3
+ exports.getVideoCuePointsData = void 0;
4
+ const initialize_1 = require("../initialize");
4
5
  /**
5
- * Initializes the video-cue-points-data function.
6
- * @param app The PiletApi object.
6
+ * Returns the video cue points data for the given video IDs.
7
+ * This method depends on the `initializeIntegrationLib` function being called before.
8
+ * @param id The video IDs for which to fetch the cue points data.
9
+ * @param cuePointTypeKeys Optional array of cue point type keys that will be used as filter for the returend cue points. If not set, will return all cue points.
7
10
  */
8
- function setGetVideoCuePointsData(app) {
9
- exports.getVideoCuePointsData = () => app.getData('video-cue-points-data');
10
- }
11
- exports.setGetVideoCuePointsData = setGetVideoCuePointsData;
11
+ const getVideoCuePointsData = (id, cuePointTypeKeys) => {
12
+ if (initialize_1.piletApi === undefined) {
13
+ throw new Error('The pilet API is not initialized. Please call `initializeIntegrationLib` before using this function.');
14
+ }
15
+ return initialize_1.piletApi.getData('video-cue-points-data')(id, cuePointTypeKeys);
16
+ };
17
+ exports.getVideoCuePointsData = getVideoCuePointsData;
12
18
  //# sourceMappingURL=video-cue-points.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"video-cue-points.js","sourceRoot":"","sources":["../../src/video/video-cue-points.ts"],"names":[],"mappings":";;;AA0BA;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,GAAa;IACpD,6BAAqB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACrE,CAAC;AAFD,4DAEC"}
1
+ {"version":3,"file":"video-cue-points.js","sourceRoot":"","sources":["../../src/video/video-cue-points.ts"],"names":[],"mappings":";;;AACA,8CAAyC;AAoBzC;;;;;GAKG;AACI,MAAM,qBAAqB,GAGN,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE;IACnD,IAAI,qBAAQ,KAAK,SAAS,EAAE;QAC1B,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;KACH;IAED,OAAO,qBAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACzE,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC"}
@@ -1,4 +1,7 @@
1
1
  import { PiletApi } from '@axinom/mosaic-portal';
2
2
  import { VideoExtensions } from './types';
3
+ /**
4
+ * Returns an object containing Extension components for the shared extensions provided by the video service.
5
+ */
3
6
  export declare const bindVideoExtensions: (app: PiletApi) => VideoExtensions;
4
7
  //# sourceMappingURL=video-extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"video-extensions.d.ts","sourceRoot":"","sources":["../../src/video/video-extensions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EACL,eAAe,EAGhB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,mBAAmB,QAAS,QAAQ,KAAG,eAqBnD,CAAC"}
1
+ {"version":3,"file":"video-extensions.d.ts","sourceRoot":"","sources":["../../src/video/video-extensions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EACL,eAAe,EAGhB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAS,QAAQ,KAAG,eAqBnD,CAAC"}
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.bindVideoExtensions = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const common_1 = require("../common");
9
+ /**
10
+ * Returns an object containing Extension components for the shared extensions provided by the video service.
11
+ */
9
12
  const bindVideoExtensions = (app) => {
10
13
  const VideoSelectExplorer = (props) => (react_1.default.createElement(app.Extension, { name: "video-select-explorer", empty: common_1.extensionDefaultValue, params: props }));
11
14
  const VideoSelectField = (props) => (react_1.default.createElement(app.Extension, { name: "video-select-field", empty: common_1.extensionDefaultValue, params: props }));
@@ -1 +1 @@
1
- {"version":3,"file":"video-extensions.js","sourceRoot":"","sources":["../../src/video/video-extensions.tsx"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,sCAAkD;AAO3C,MAAM,mBAAmB,GAAG,CAAC,GAAa,EAAmB,EAAE;IACpE,MAAM,mBAAmB,GAAuC,CAAC,KAAK,EAAE,EAAE,CAAC,CACzE,8BAAC,GAAG,CAAC,SAAS,IACZ,IAAI,EAAC,uBAAuB,EAC5B,KAAK,EAAE,8BAAqB,EAC5B,MAAM,EAAE,KAAK,GACb,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAoC,CAAC,KAAK,EAAE,EAAE,CAAC,CACnE,8BAAC,GAAG,CAAC,SAAS,IACZ,IAAI,EAAC,oBAAoB,EACzB,KAAK,EAAE,8BAAqB,EAC5B,MAAM,EAAE,KAAK,GACb,CACH,CAAC;IAEF,OAAO;QACL,mBAAmB;QACnB,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,mBAAmB,uBAqB9B"}
1
+ {"version":3,"file":"video-extensions.js","sourceRoot":"","sources":["../../src/video/video-extensions.tsx"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,sCAAkD;AAOlD;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,GAAa,EAAmB,EAAE;IACpE,MAAM,mBAAmB,GAAuC,CAAC,KAAK,EAAE,EAAE,CAAC,CACzE,8BAAC,GAAG,CAAC,SAAS,IACZ,IAAI,EAAC,uBAAuB,EAC5B,KAAK,EAAE,8BAAqB,EAC5B,MAAM,EAAE,KAAK,GACb,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAoC,CAAC,KAAK,EAAE,EAAE,CAAC,CACnE,8BAAC,GAAG,CAAC,SAAS,IACZ,IAAI,EAAC,oBAAoB,EACzB,KAAK,EAAE,8BAAqB,EAC5B,MAAM,EAAE,KAAK,GACb,CACH,CAAC;IAEF,OAAO;QACL,mBAAmB;QACnB,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,mBAAmB,uBAqB9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axinom/mosaic-managed-workflow-integration",
3
- "version": "0.17.0-rc.0",
3
+ "version": "0.17.0-rc.2",
4
4
  "description": "Shared types and helpers for integrating functionality provided by managed service workflows",
5
5
  "author": "Axinom",
6
6
  "license": "PROPRIETARY",
@@ -23,8 +23,8 @@
23
23
  "lint": "eslint . --ext .ts,.tsx,.js --color --cache"
24
24
  },
25
25
  "devDependencies": {
26
- "@axinom/mosaic-portal": "^0.33.0-rc.0",
27
- "@axinom/mosaic-ui": "^0.49.0-rc.0",
26
+ "@axinom/mosaic-portal": "^0.33.0-rc.2",
27
+ "@axinom/mosaic-ui": "^0.49.0-rc.2",
28
28
  "@types/react": "^17",
29
29
  "@types/react-dom": "^17",
30
30
  "eslint": "^8.35.0",
@@ -42,5 +42,5 @@
42
42
  "publishConfig": {
43
43
  "access": "public"
44
44
  },
45
- "gitHead": "2a5aa96ed691c2d3440a40e97ecfb801b868c469"
45
+ "gitHead": "28fbd2c0bd577a35b943c5a654467cd356b916e9"
46
46
  }
@@ -1,4 +1,4 @@
1
- import { PiletApi } from '@axinom/mosaic-portal';
1
+ import { piletApi } from '../initialize';
2
2
 
3
3
  /**
4
4
  * Represents an object storage.
@@ -12,15 +12,13 @@ export interface ObjectStorage {
12
12
  * Get enabled Object Storages
13
13
  * @returns
14
14
  */
15
- export let getObjectStorages = async (): Promise<
15
+ export const getObjectStorages = async (): Promise<
16
16
  ObjectStorage[] | undefined
17
17
  > => {
18
- // eslint-disable-next-line no-console
19
- console.error('getObjectStorages is not implemented');
20
- return Promise.resolve(undefined);
21
- };
22
-
23
- export const setGetObjectStorages = (app: PiletApi): void => {
24
- getObjectStorages = () =>
25
- app.getData('getObjectStorages')() ?? getObjectStorages;
18
+ if (piletApi === undefined) {
19
+ throw new Error(
20
+ 'The pilet API is not initialized. Please call `initializeIntegrationLib` before using this function.',
21
+ );
22
+ }
23
+ return piletApi.getData('getObjectStorages')();
26
24
  };
@@ -9,6 +9,9 @@ import {
9
9
  ImageSelectFieldProps,
10
10
  } from './types';
11
11
 
12
+ /**
13
+ * Returns an object containing Extension components for the shared extensions provided by the image service.
14
+ */
12
15
  export const bindImageExtensions = (app: PiletApi): ImageExtensions => {
13
16
  const ImageCover: React.FC<ImageCoverProps> = (props) => (
14
17
  <app.Extension
@@ -1,6 +1,6 @@
1
- import { PiletApi } from '@axinom/mosaic-portal';
2
1
  import { ColumnMap, ColumnRenderer, Data } from '@axinom/mosaic-ui';
3
2
  import React from 'react';
3
+ import { piletApi } from '../initialize';
4
4
  import {
5
5
  ThumbnailProperty,
6
6
  ThumbnailResolver,
@@ -8,41 +8,56 @@ import {
8
8
  } from './types';
9
9
 
10
10
  /**
11
- * A fallback for the `getThumbnailAndStateRenderer` function.
11
+ * This function simplifies access to the shared functionality provided by the image workflow in the PiletApi object.
12
+ * In case the shared functionality is not available, a fallback renderer is returned.
13
+ *
14
+ * Make sure to initialize the integration library by calling the `initializeIntegrationLib` function,
15
+ * otherwise it will always return the fallback renderer.
16
+ *
17
+ * The renderer expects that the column is bound to the property containing the state. The thumbnail property is passed as an argument.
18
+ *
19
+ * @param thumbnailPropertyOrResolver
20
+ * Either the name of a property on the `data` object that has the following shape:
21
+ * ```ts
22
+ * {
23
+ * nodes: [{
24
+ * imageId: 'b437056b-c28e-46fa-ad9d-8bd16e7609fa'
25
+ * }]
26
+ * }
27
+ * ```
28
+ * This reflects the shape a typical postgraphile response would have.
29
+ * The renderer will pick the fist imageId from the nodes array.
30
+ *
31
+ * Alternatively a callback function can be passed that resolves to a url location.
32
+ * The row data is passed as an argument.
33
+ * The method can either return the full url of the image or the uuid of the image.
34
+ * If the uuid is returned, the `resolverType` argument needs to be set to 'uuid'.
35
+ * @param stateMap An object of key/value pairs mapping column values to CSS colors. If an empty object is passed, no state will be rendered.
36
+ * ```ts
37
+ * {
38
+ * 'PUBLISHED': '#95C842',
39
+ * 'CHANGED': '#FFC81A',
40
+ * 'NOT_PUBLISHED': '#DDDDDD',
41
+ * }
42
+ * ```
43
+ * @param resolverType either 'url' or 'uuid', depending on what your resolver is returning.
44
+ * @returns A thumbnail and state column renderer
12
45
  */
13
- const thumbnailFallback = <T extends Data>(
14
- _thumbnailPropertyOrResolver: ThumbnailProperty<T> | ThumbnailResolver<T>,
15
- _map?: ColumnMap,
16
- _resolverType?: ThumbnailResolverType,
46
+ export const createThumbnailAndStateRenderer = <T extends Data>(
47
+ thumbnailPropertyOrResolver: ThumbnailProperty<T> | ThumbnailResolver<T>,
48
+ stateMap?: ColumnMap,
49
+ resolverType?: ThumbnailResolverType,
17
50
  ): ColumnRenderer<T> => {
18
- const ThumbnailFallbackRenderer = (
19
- _state: unknown,
20
- _data: unknown,
21
- ): JSX.Element => {
22
- return <span title="No Renderer">No Renderer</span>;
51
+ const Renderer: ColumnRenderer<T> = (value, data) => {
52
+ if (piletApi?.getData('thumbnailAndStateRenderer')) {
53
+ return piletApi?.getData('thumbnailAndStateRenderer')(
54
+ thumbnailPropertyOrResolver,
55
+ stateMap,
56
+ resolverType,
57
+ )(value, data);
58
+ } else {
59
+ return <span title="No Renderer">No Renderer</span>;
60
+ }
23
61
  };
24
- return ThumbnailFallbackRenderer;
62
+ return Renderer;
25
63
  };
26
-
27
- /**
28
- * A function that returns thumbnail and state renderer function.
29
- * @returns A thumbnail and state column renderer
30
- */
31
- export let getThumbnailAndStateRenderer = <T extends Data>(): ((
32
- _thumbnailPropertyOrResolver: ThumbnailProperty<T> | ThumbnailResolver<T>,
33
- _map?: ColumnMap,
34
- _resolverType?: ThumbnailResolverType,
35
- ) => ColumnRenderer<T>) => thumbnailFallback;
36
-
37
- /**
38
- * Sets the `getThumbnailAndStateRenderer` utility function from the PiletApi object.
39
- *
40
- * The `getThumbnailAndStateRenderer` function simplifies access to shared functionality provided by the image workflow in the PiletApi object.
41
- * It is used to retrieve the thumbnail renderer function, which is supplied by the image pilet.
42
- *
43
- * @param app The PiletApi object.
44
- */
45
- export function setGetThumbnailAndStateRenderer(app: PiletApi): void {
46
- getThumbnailAndStateRenderer = () =>
47
- app.getData('thumbnailAndStateRenderer') ?? thumbnailFallback;
48
- }
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ export * from './channel';
2
2
  export * from './common';
3
3
  export * from './hosting';
4
4
  export * from './image';
5
+ export { initializeIntegrationLib } from './initialize';
5
6
  export * from './localization';
6
7
  export * from './piral-extensions';
7
8
  export * from './video';
@@ -0,0 +1,11 @@
1
+ import { PiletApi } from '@axinom/mosaic-portal';
2
+
3
+ export let piletApi: PiletApi | undefined = undefined;
4
+
5
+ /**
6
+ * Initializes the integration library with the provided Pilet API.
7
+ * @param app the PiletAPI object
8
+ */
9
+ export const initializeIntegrationLib = (app: PiletApi): void => {
10
+ piletApi = app;
11
+ };
@@ -1,4 +1,4 @@
1
- import { PiletApi } from '@axinom/mosaic-portal';
1
+ import { piletApi } from '../../initialize';
2
2
  import { LocalizationGenerator, LocalizationGeneratorParams } from '../types';
3
3
 
4
4
  /**
@@ -29,9 +29,13 @@ export const getLocalizationEntryPoint = (
29
29
  ): string | undefined => localizationEntryPoints[entityType];
30
30
 
31
31
  /**
32
- * Use as a callback for method `app.getDataHelper('localization-registration', callback)`
33
- * to register localization entry points
34
- * These entry points then can be used to add links in workflows to localization station for the entity
32
+ * Instead of using this function directly, it is recommended to use `registerLocalizationEntryPoints` function instead.
33
+ * `registerLocalizationEntryPoints` is a wrapper around this function that provides a more convenient way to register localization entry points.
34
+ *
35
+ * This function is designed to be used as callback of the `app.getDataHelper('localization-registration', callback)` call.
36
+ *
37
+ * The function returns a function that can be called with a `LocalizationGenerator` function. When this function is called,
38
+ * it will register the localization entry points that were provided as `data`.
35
39
  * @param data Data containing the information needed to register the localization station paths for the entity using the localization generator
36
40
  * @returns A function that will register the localization entry points using provided `data`
37
41
  * @example
@@ -68,10 +72,10 @@ export function generateLocalizationEntryPoints(
68
72
  }
69
73
 
70
74
  /**
71
- * To register localization entry points
72
- * These entry points then can be used to add links in workflows to localization station for the entity
75
+ * This function can be used to register embedded localization worklfows for entites.
76
+ * The localization service will register all required stations to provide an embedded localization workflow for the entity.
77
+ * To query then entry point for a specific entity, to e.g. create a details page action that links to the sub-workflow, use `getLocalizationEntryPoint` function.
73
78
  * @param data Data containing the information needed to register the localization station paths for the entity using the localization generator
74
- * @param app Pilet API instance
75
79
  * @example
76
80
  * ```ts
77
81
  * registerLocalizationEntryPoints([
@@ -85,12 +89,17 @@ export function generateLocalizationEntryPoints(
85
89
  * entityType: 'playlist'
86
90
  * }
87
91
  * ]
92
+ * ```
88
93
  */
89
94
  export function registerLocalizationEntryPoints(
90
95
  data: LocalizationGeneratorParams[],
91
- app: PiletApi,
92
96
  ): void {
93
- app.getDataHelper(
97
+ if (piletApi === undefined) {
98
+ throw new Error(
99
+ 'The pilet API is not initialized. Please call `initializeIntegrationLib` before using this function or pass the API object as 2nd parameter.',
100
+ );
101
+ }
102
+ piletApi.getDataHelper(
94
103
  'localization-registration',
95
104
  generateLocalizationEntryPoints(data),
96
105
  );
@@ -1,5 +1,5 @@
1
- import { PiletApi } from '@axinom/mosaic-portal';
2
1
  import { ID, Maybe } from '../common';
2
+ import { piletApi } from '../initialize';
3
3
  import { EncodingState } from './types';
4
4
 
5
5
  export interface VideoServiceCuePoints {
@@ -19,15 +19,21 @@ export interface VideoData {
19
19
  };
20
20
  }
21
21
 
22
- export let getVideoCuePointsData: () => (
22
+ /**
23
+ * Returns the video cue points data for the given video IDs.
24
+ * This method depends on the `initializeIntegrationLib` function being called before.
25
+ * @param id The video IDs for which to fetch the cue points data.
26
+ * @param cuePointTypeKeys Optional array of cue point type keys that will be used as filter for the returend cue points. If not set, will return all cue points.
27
+ */
28
+ export const getVideoCuePointsData: (
23
29
  id: ID[],
24
30
  cuePointTypeKeys?: string[],
25
- ) => Promise<VideoData[]>;
31
+ ) => Promise<VideoData[]> = (id, cuePointTypeKeys) => {
32
+ if (piletApi === undefined) {
33
+ throw new Error(
34
+ 'The pilet API is not initialized. Please call `initializeIntegrationLib` before using this function.',
35
+ );
36
+ }
26
37
 
27
- /**
28
- * Initializes the video-cue-points-data function.
29
- * @param app The PiletApi object.
30
- */
31
- export function setGetVideoCuePointsData(app: PiletApi): void {
32
- getVideoCuePointsData = () => app.getData('video-cue-points-data');
33
- }
38
+ return piletApi.getData('video-cue-points-data')(id, cuePointTypeKeys);
39
+ };
@@ -7,6 +7,9 @@ import {
7
7
  VideoSelectFieldProps,
8
8
  } from './types';
9
9
 
10
+ /**
11
+ * Returns an object containing Extension components for the shared extensions provided by the video service.
12
+ */
10
13
  export const bindVideoExtensions = (app: PiletApi): VideoExtensions => {
11
14
  const VideoSelectExplorer: React.FC<VideoSelectExplorerProps> = (props) => (
12
15
  <app.Extension