@omni-co/embed 0.13.0 → 0.14.1-alpha.1

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.
package/lib/cjs/types.js CHANGED
@@ -1,97 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmbedUiSettings = exports.EmbedEntityFolderContentRoles = exports.EmbedConnectionRoles = exports.EmbeddedContent = exports.CustomThemeProperty = exports.EmbedSessionMode = void 0;
4
- var EmbedSessionMode;
5
- (function (EmbedSessionMode) {
6
- EmbedSessionMode["Application"] = "APPLICATION";
7
- EmbedSessionMode["SingleContent"] = "SINGLE_CONTENT";
8
- })(EmbedSessionMode || (exports.EmbedSessionMode = EmbedSessionMode = {}));
9
- var CustomThemeProperty;
10
- (function (CustomThemeProperty) {
11
- CustomThemeProperty["DASHBOARD_BACKGROUND"] = "dashboard-background";
12
- CustomThemeProperty["DASHBOARD_PAGE_PADDING"] = "dashboard-page-padding";
13
- CustomThemeProperty["DASHBOARD_TILE_MARGIN"] = "dashboard-tile-margin";
14
- CustomThemeProperty["DASHBOARD_TILE_BACKGROUND"] = "dashboard-tile-background";
15
- CustomThemeProperty["DASHBOARD_TILE_SHADOW"] = "dashboard-tile-shadow";
16
- CustomThemeProperty["DASHBOARD_TILE_TEXT_BODY_COLOR"] = "dashboard-tile-text-body-color";
17
- CustomThemeProperty["DASHBOARD_TILE_TEXT_SECONDARY_COLOR"] = "dashboard-tile-text-secondary-color";
18
- CustomThemeProperty["DASHBOARD_TILE_BORDER_COLOR"] = "dashboard-tile-border-color";
19
- CustomThemeProperty["DASHBOARD_TILE_BORDER_RADIUS"] = "dashboard-tile-border-radius";
20
- CustomThemeProperty["DASHBOARD_TILE_BORDER_STYLE"] = "dashboard-tile-border-style";
21
- CustomThemeProperty["DASHBOARD_TILE_BORDER_WIDTH"] = "dashboard-tile-border-width";
22
- CustomThemeProperty["DASHBOARD_TILE_TITLE_FONT_SIZE"] = "dashboard-tile-title-font-size";
23
- CustomThemeProperty["DASHBOARD_TILE_TITLE_FONT_WEIGHT"] = "dashboard-tile-title-font-weight";
24
- CustomThemeProperty["DASHBOARD_TILE_TITLE_TEXT_COLOR"] = "dashboard-tile-title-text-color";
25
- CustomThemeProperty["DASHBOARD_TILE_TITLE_FONT_FAMILY"] = "dashboard-tile-title-font-family";
26
- CustomThemeProperty["DASHBOARD_TILE_TEXT_BODY_FONT_FAMILY"] = "dashboard-tile-text-body-font-family";
27
- CustomThemeProperty["DASHBOARD_TILE_TEXT_CODE_FONT_FAMILY"] = "dashboard-tile-text-code-font-family";
28
- CustomThemeProperty["DASHBOARD_KEY_COLOR"] = "dashboard-key-color";
29
- CustomThemeProperty["DASHBOARD_KEY_TEXT_COLOR"] = "dashboard-key-text-color";
30
- CustomThemeProperty["DASHBOARD_BUTTON_RADIUS"] = "dashboard-button-radius";
31
- CustomThemeProperty["DASHBOARD_BUTTON_TRANSPARENT_TEXT_COLOR"] = "dashboard-button-transparent-text-color";
32
- CustomThemeProperty["DASHBOARD_BUTTON_TRANSPARENT_INTERACTIVE_COLOR"] = "dashboard-button-transparent-interactive-color";
33
- CustomThemeProperty["DASHBOARD_MENU_ITEM_INTERACTIVE_COLOR"] = "dashboard-menu-item-interactive-color";
34
- // These styles are applied to controls directly on the dashboard,
35
- // typically these are single select control,
36
- // period-over-period control or advanced filter controls
37
- CustomThemeProperty["DASHBOARD_CONTROL_BACKGROUND"] = "dashboard-control-background";
38
- CustomThemeProperty["DASHBOARD_CONTROL_RADIUS"] = "dashboard-control-radius";
39
- CustomThemeProperty["DASHBOARD_CONTROL_BORDER_COLOR"] = "dashboard-control-border-color";
40
- CustomThemeProperty["DASHBOARD_CONTROL_TEXT_COLOR"] = "dashboard-control-text-color";
41
- CustomThemeProperty["DASHBOARD_CONTROL_PLACEHOLDER_COLOR"] = "dashboard-control-placeholder-color";
42
- CustomThemeProperty["DASHBOARD_CONTROL_LABEL_COLOR"] = "dashboard-control-label-color";
43
- CustomThemeProperty["DASHBOARD_CONTROL_OUTLINE_COLOR"] = "dashboard-control-outline-color";
44
- // These styles are applied the popover container
45
- // that is triggered when clicking a dashboard control
46
- CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_BACKGROUND"] = "dashboard-control-popover-background";
47
- CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_TEXT_COLOR"] = "dashboard-control-popover-text-color";
48
- CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_SECONDARY_TEXT_COLOR"] = "dashboard-control-popover-secondary-text-color";
49
- CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_LINK_COLOR"] = "dashboard-control-popover-link-color";
50
- CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_DIVIDER_COLOR"] = "dashboard-control-popover-divider-color";
51
- CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_RADIUS"] = "dashboard-control-popover-radius";
52
- CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_BORDER_COLOR"] = "dashboard-control-popover-border-color";
53
- // These styles are applied to filter inputs inside the control popover
54
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_BACKGROUND"] = "dashboard-filter-input-background";
55
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_RADIUS"] = "dashboard-filter-input-radius";
56
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_BORDER_COLOR"] = "dashboard-filter-input-border-color";
57
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_TEXT_COLOR"] = "dashboard-filter-input-text-color";
58
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_PLACEHOLDER_COLOR"] = "dashboard-filter-input-placeholder-color";
59
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_ICON_COLOR"] = "dashboard-filter-input-icon-color";
60
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_OUTLINE_COLOR"] = "dashboard-filter-input-outline-color";
61
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_ACCENT_COLOR"] = "dashboard-filter-input-accent-color";
62
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_ACCENT_INVERT_COLOR"] = "dashboard-filter-input-accent-invert-color";
63
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_TOKEN_COLOR"] = "dashboard-filter-input-token-color";
64
- CustomThemeProperty["DASHBOARD_FILTER_INPUT_TOKEN_TEXT_COLOR"] = "dashboard-filter-input-token-text-color";
65
- })(CustomThemeProperty || (exports.CustomThemeProperty = CustomThemeProperty = {}));
66
- var EmbeddedContent;
67
- (function (EmbeddedContent) {
68
- EmbeddedContent["Dashboard"] = "dashboards";
69
- EmbeddedContent["Workbook"] = "w";
70
- })(EmbeddedContent || (exports.EmbeddedContent = EmbeddedContent = {}));
71
- var EmbedConnectionRoles;
72
- (function (EmbedConnectionRoles) {
73
- EmbedConnectionRoles["RESTRICTED_QUERIER"] = "RESTRICTED_QUERIER";
74
- EmbedConnectionRoles["VIEWER"] = "VIEWER";
75
- EmbedConnectionRoles["QUERIER"] = "QUERIER";
76
- })(EmbedConnectionRoles || (exports.EmbedConnectionRoles = EmbedConnectionRoles = {}));
77
- /**
78
- * Levels of access a user can have to their associated embed entity folder.
79
- */
80
- var EmbedEntityFolderContentRoles;
81
- (function (EmbedEntityFolderContentRoles) {
82
- EmbedEntityFolderContentRoles["MANAGER"] = "MANAGER";
83
- EmbedEntityFolderContentRoles["EDITOR"] = "EDITOR";
84
- EmbedEntityFolderContentRoles["VIEWER"] = "VIEWER";
85
- EmbedEntityFolderContentRoles["NO_ACCESS"] = "NO_ACCESS";
86
- })(EmbedEntityFolderContentRoles || (exports.EmbedEntityFolderContentRoles = EmbedEntityFolderContentRoles = {}));
87
- /**
88
- * UI settings used as keys of the uiSettings sso embed parameter.
89
- */
90
- var EmbedUiSettings;
91
- (function (EmbedUiSettings) {
92
- /**
93
- * When false, hides all in-app navigation elements. Note that in-app navigation
94
- * is only visible when the embed session is in APPLICATION mode.
95
- */
96
- EmbedUiSettings["SHOW_NAVIGATION"] = "showNavigation";
97
- })(EmbedUiSettings || (exports.EmbedUiSettings = EmbedUiSettings = {}));
3
+ const constants_js_1 = require("./constants.js");
@@ -0,0 +1,82 @@
1
+ export declare enum EmbedSessionMode {
2
+ Application = "APPLICATION",
3
+ SingleContent = "SINGLE_CONTENT"
4
+ }
5
+ export declare enum CustomThemeProperty {
6
+ DASHBOARD_BACKGROUND = "dashboard-background",
7
+ DASHBOARD_PAGE_PADDING = "dashboard-page-padding",
8
+ DASHBOARD_TILE_MARGIN = "dashboard-tile-margin",
9
+ DASHBOARD_TILE_BACKGROUND = "dashboard-tile-background",
10
+ DASHBOARD_TILE_SHADOW = "dashboard-tile-shadow",
11
+ DASHBOARD_TILE_TEXT_BODY_COLOR = "dashboard-tile-text-body-color",
12
+ DASHBOARD_TILE_TEXT_SECONDARY_COLOR = "dashboard-tile-text-secondary-color",
13
+ DASHBOARD_TILE_BORDER_COLOR = "dashboard-tile-border-color",
14
+ DASHBOARD_TILE_BORDER_RADIUS = "dashboard-tile-border-radius",
15
+ DASHBOARD_TILE_BORDER_STYLE = "dashboard-tile-border-style",
16
+ DASHBOARD_TILE_BORDER_WIDTH = "dashboard-tile-border-width",
17
+ DASHBOARD_TILE_TITLE_FONT_SIZE = "dashboard-tile-title-font-size",
18
+ DASHBOARD_TILE_TITLE_FONT_WEIGHT = "dashboard-tile-title-font-weight",
19
+ DASHBOARD_TILE_TITLE_TEXT_COLOR = "dashboard-tile-title-text-color",
20
+ DASHBOARD_TILE_TITLE_FONT_FAMILY = "dashboard-tile-title-font-family",
21
+ DASHBOARD_TILE_TEXT_BODY_FONT_FAMILY = "dashboard-tile-text-body-font-family",
22
+ DASHBOARD_TILE_TEXT_CODE_FONT_FAMILY = "dashboard-tile-text-code-font-family",
23
+ DASHBOARD_KEY_COLOR = "dashboard-key-color",
24
+ DASHBOARD_KEY_TEXT_COLOR = "dashboard-key-text-color",
25
+ DASHBOARD_BUTTON_RADIUS = "dashboard-button-radius",
26
+ DASHBOARD_BUTTON_TRANSPARENT_TEXT_COLOR = "dashboard-button-transparent-text-color",
27
+ DASHBOARD_BUTTON_TRANSPARENT_INTERACTIVE_COLOR = "dashboard-button-transparent-interactive-color",
28
+ DASHBOARD_MENU_ITEM_INTERACTIVE_COLOR = "dashboard-menu-item-interactive-color",
29
+ DASHBOARD_CONTROL_BACKGROUND = "dashboard-control-background",
30
+ DASHBOARD_CONTROL_RADIUS = "dashboard-control-radius",
31
+ DASHBOARD_CONTROL_BORDER_COLOR = "dashboard-control-border-color",
32
+ DASHBOARD_CONTROL_TEXT_COLOR = "dashboard-control-text-color",
33
+ DASHBOARD_CONTROL_PLACEHOLDER_COLOR = "dashboard-control-placeholder-color",
34
+ DASHBOARD_CONTROL_LABEL_COLOR = "dashboard-control-label-color",
35
+ DASHBOARD_CONTROL_OUTLINE_COLOR = "dashboard-control-outline-color",
36
+ DASHBOARD_CONTROL_POPOVER_BACKGROUND = "dashboard-control-popover-background",
37
+ DASHBOARD_CONTROL_POPOVER_TEXT_COLOR = "dashboard-control-popover-text-color",
38
+ DASHBOARD_CONTROL_POPOVER_SECONDARY_TEXT_COLOR = "dashboard-control-popover-secondary-text-color",
39
+ DASHBOARD_CONTROL_POPOVER_LINK_COLOR = "dashboard-control-popover-link-color",
40
+ DASHBOARD_CONTROL_POPOVER_DIVIDER_COLOR = "dashboard-control-popover-divider-color",
41
+ DASHBOARD_CONTROL_POPOVER_RADIUS = "dashboard-control-popover-radius",
42
+ DASHBOARD_CONTROL_POPOVER_BORDER_COLOR = "dashboard-control-popover-border-color",
43
+ DASHBOARD_FILTER_INPUT_BACKGROUND = "dashboard-filter-input-background",
44
+ DASHBOARD_FILTER_INPUT_RADIUS = "dashboard-filter-input-radius",
45
+ DASHBOARD_FILTER_INPUT_BORDER_COLOR = "dashboard-filter-input-border-color",
46
+ DASHBOARD_FILTER_INPUT_TEXT_COLOR = "dashboard-filter-input-text-color",
47
+ DASHBOARD_FILTER_INPUT_PLACEHOLDER_COLOR = "dashboard-filter-input-placeholder-color",
48
+ DASHBOARD_FILTER_INPUT_ICON_COLOR = "dashboard-filter-input-icon-color",
49
+ DASHBOARD_FILTER_INPUT_OUTLINE_COLOR = "dashboard-filter-input-outline-color",
50
+ DASHBOARD_FILTER_INPUT_ACCENT_COLOR = "dashboard-filter-input-accent-color",
51
+ DASHBOARD_FILTER_INPUT_ACCENT_INVERT_COLOR = "dashboard-filter-input-accent-invert-color",
52
+ DASHBOARD_FILTER_INPUT_TOKEN_COLOR = "dashboard-filter-input-token-color",
53
+ DASHBOARD_FILTER_INPUT_TOKEN_TEXT_COLOR = "dashboard-filter-input-token-text-color"
54
+ }
55
+ export declare enum EmbeddedContent {
56
+ Dashboard = "dashboards",
57
+ Workbook = "w"
58
+ }
59
+ export declare enum EmbedConnectionRoles {
60
+ RESTRICTED_QUERIER = "RESTRICTED_QUERIER",
61
+ VIEWER = "VIEWER",
62
+ QUERIER = "QUERIER"
63
+ }
64
+ /**
65
+ * Levels of access a user can have to their associated embed entity folder.
66
+ */
67
+ export declare enum EmbedEntityFolderContentRoles {
68
+ MANAGER = "MANAGER",
69
+ EDITOR = "EDITOR",
70
+ VIEWER = "VIEWER",
71
+ NO_ACCESS = "NO_ACCESS"
72
+ }
73
+ /**
74
+ * UI settings used as keys of the uiSettings sso embed parameter.
75
+ */
76
+ export declare enum EmbedUiSettings {
77
+ /**
78
+ * When false, hides all in-app navigation elements. Note that in-app navigation
79
+ * is only visible when the embed session is in APPLICATION mode.
80
+ */
81
+ SHOW_NAVIGATION = "showNavigation"
82
+ }
@@ -0,0 +1,94 @@
1
+ export var EmbedSessionMode;
2
+ (function (EmbedSessionMode) {
3
+ EmbedSessionMode["Application"] = "APPLICATION";
4
+ EmbedSessionMode["SingleContent"] = "SINGLE_CONTENT";
5
+ })(EmbedSessionMode || (EmbedSessionMode = {}));
6
+ export var CustomThemeProperty;
7
+ (function (CustomThemeProperty) {
8
+ CustomThemeProperty["DASHBOARD_BACKGROUND"] = "dashboard-background";
9
+ CustomThemeProperty["DASHBOARD_PAGE_PADDING"] = "dashboard-page-padding";
10
+ CustomThemeProperty["DASHBOARD_TILE_MARGIN"] = "dashboard-tile-margin";
11
+ CustomThemeProperty["DASHBOARD_TILE_BACKGROUND"] = "dashboard-tile-background";
12
+ CustomThemeProperty["DASHBOARD_TILE_SHADOW"] = "dashboard-tile-shadow";
13
+ CustomThemeProperty["DASHBOARD_TILE_TEXT_BODY_COLOR"] = "dashboard-tile-text-body-color";
14
+ CustomThemeProperty["DASHBOARD_TILE_TEXT_SECONDARY_COLOR"] = "dashboard-tile-text-secondary-color";
15
+ CustomThemeProperty["DASHBOARD_TILE_BORDER_COLOR"] = "dashboard-tile-border-color";
16
+ CustomThemeProperty["DASHBOARD_TILE_BORDER_RADIUS"] = "dashboard-tile-border-radius";
17
+ CustomThemeProperty["DASHBOARD_TILE_BORDER_STYLE"] = "dashboard-tile-border-style";
18
+ CustomThemeProperty["DASHBOARD_TILE_BORDER_WIDTH"] = "dashboard-tile-border-width";
19
+ CustomThemeProperty["DASHBOARD_TILE_TITLE_FONT_SIZE"] = "dashboard-tile-title-font-size";
20
+ CustomThemeProperty["DASHBOARD_TILE_TITLE_FONT_WEIGHT"] = "dashboard-tile-title-font-weight";
21
+ CustomThemeProperty["DASHBOARD_TILE_TITLE_TEXT_COLOR"] = "dashboard-tile-title-text-color";
22
+ CustomThemeProperty["DASHBOARD_TILE_TITLE_FONT_FAMILY"] = "dashboard-tile-title-font-family";
23
+ CustomThemeProperty["DASHBOARD_TILE_TEXT_BODY_FONT_FAMILY"] = "dashboard-tile-text-body-font-family";
24
+ CustomThemeProperty["DASHBOARD_TILE_TEXT_CODE_FONT_FAMILY"] = "dashboard-tile-text-code-font-family";
25
+ CustomThemeProperty["DASHBOARD_KEY_COLOR"] = "dashboard-key-color";
26
+ CustomThemeProperty["DASHBOARD_KEY_TEXT_COLOR"] = "dashboard-key-text-color";
27
+ CustomThemeProperty["DASHBOARD_BUTTON_RADIUS"] = "dashboard-button-radius";
28
+ CustomThemeProperty["DASHBOARD_BUTTON_TRANSPARENT_TEXT_COLOR"] = "dashboard-button-transparent-text-color";
29
+ CustomThemeProperty["DASHBOARD_BUTTON_TRANSPARENT_INTERACTIVE_COLOR"] = "dashboard-button-transparent-interactive-color";
30
+ CustomThemeProperty["DASHBOARD_MENU_ITEM_INTERACTIVE_COLOR"] = "dashboard-menu-item-interactive-color";
31
+ // These styles are applied to controls directly on the dashboard,
32
+ // typically these are single select control,
33
+ // period-over-period control or advanced filter controls
34
+ CustomThemeProperty["DASHBOARD_CONTROL_BACKGROUND"] = "dashboard-control-background";
35
+ CustomThemeProperty["DASHBOARD_CONTROL_RADIUS"] = "dashboard-control-radius";
36
+ CustomThemeProperty["DASHBOARD_CONTROL_BORDER_COLOR"] = "dashboard-control-border-color";
37
+ CustomThemeProperty["DASHBOARD_CONTROL_TEXT_COLOR"] = "dashboard-control-text-color";
38
+ CustomThemeProperty["DASHBOARD_CONTROL_PLACEHOLDER_COLOR"] = "dashboard-control-placeholder-color";
39
+ CustomThemeProperty["DASHBOARD_CONTROL_LABEL_COLOR"] = "dashboard-control-label-color";
40
+ CustomThemeProperty["DASHBOARD_CONTROL_OUTLINE_COLOR"] = "dashboard-control-outline-color";
41
+ // These styles are applied the popover container
42
+ // that is triggered when clicking a dashboard control
43
+ CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_BACKGROUND"] = "dashboard-control-popover-background";
44
+ CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_TEXT_COLOR"] = "dashboard-control-popover-text-color";
45
+ CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_SECONDARY_TEXT_COLOR"] = "dashboard-control-popover-secondary-text-color";
46
+ CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_LINK_COLOR"] = "dashboard-control-popover-link-color";
47
+ CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_DIVIDER_COLOR"] = "dashboard-control-popover-divider-color";
48
+ CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_RADIUS"] = "dashboard-control-popover-radius";
49
+ CustomThemeProperty["DASHBOARD_CONTROL_POPOVER_BORDER_COLOR"] = "dashboard-control-popover-border-color";
50
+ // These styles are applied to filter inputs inside the control popover
51
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_BACKGROUND"] = "dashboard-filter-input-background";
52
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_RADIUS"] = "dashboard-filter-input-radius";
53
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_BORDER_COLOR"] = "dashboard-filter-input-border-color";
54
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_TEXT_COLOR"] = "dashboard-filter-input-text-color";
55
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_PLACEHOLDER_COLOR"] = "dashboard-filter-input-placeholder-color";
56
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_ICON_COLOR"] = "dashboard-filter-input-icon-color";
57
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_OUTLINE_COLOR"] = "dashboard-filter-input-outline-color";
58
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_ACCENT_COLOR"] = "dashboard-filter-input-accent-color";
59
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_ACCENT_INVERT_COLOR"] = "dashboard-filter-input-accent-invert-color";
60
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_TOKEN_COLOR"] = "dashboard-filter-input-token-color";
61
+ CustomThemeProperty["DASHBOARD_FILTER_INPUT_TOKEN_TEXT_COLOR"] = "dashboard-filter-input-token-text-color";
62
+ })(CustomThemeProperty || (CustomThemeProperty = {}));
63
+ export var EmbeddedContent;
64
+ (function (EmbeddedContent) {
65
+ EmbeddedContent["Dashboard"] = "dashboards";
66
+ EmbeddedContent["Workbook"] = "w";
67
+ })(EmbeddedContent || (EmbeddedContent = {}));
68
+ export var EmbedConnectionRoles;
69
+ (function (EmbedConnectionRoles) {
70
+ EmbedConnectionRoles["RESTRICTED_QUERIER"] = "RESTRICTED_QUERIER";
71
+ EmbedConnectionRoles["VIEWER"] = "VIEWER";
72
+ EmbedConnectionRoles["QUERIER"] = "QUERIER";
73
+ })(EmbedConnectionRoles || (EmbedConnectionRoles = {}));
74
+ /**
75
+ * Levels of access a user can have to their associated embed entity folder.
76
+ */
77
+ export var EmbedEntityFolderContentRoles;
78
+ (function (EmbedEntityFolderContentRoles) {
79
+ EmbedEntityFolderContentRoles["MANAGER"] = "MANAGER";
80
+ EmbedEntityFolderContentRoles["EDITOR"] = "EDITOR";
81
+ EmbedEntityFolderContentRoles["VIEWER"] = "VIEWER";
82
+ EmbedEntityFolderContentRoles["NO_ACCESS"] = "NO_ACCESS";
83
+ })(EmbedEntityFolderContentRoles || (EmbedEntityFolderContentRoles = {}));
84
+ /**
85
+ * UI settings used as keys of the uiSettings sso embed parameter.
86
+ */
87
+ export var EmbedUiSettings;
88
+ (function (EmbedUiSettings) {
89
+ /**
90
+ * When false, hides all in-app navigation elements. Note that in-app navigation
91
+ * is only visible when the embed session is in APPLICATION mode.
92
+ */
93
+ EmbedUiSettings["SHOW_NAVIGATION"] = "showNavigation";
94
+ })(EmbedUiSettings || (EmbedUiSettings = {}));
@@ -1,4 +1,4 @@
1
- import { EmbedSsoContentDiscoveryProps, EmbedSsoDashboardProps, EmbedSsoWorkbookProps, CreateSessionTokenProps, RedeemSessionTokenProps } from "./types";
1
+ import { EmbedSsoContentDiscoveryProps, EmbedSsoDashboardProps, EmbedSsoWorkbookProps, CreateSessionTokenProps, RedeemSessionTokenProps } from "./types.js";
2
2
  export declare const embedSsoDashboard: (props: EmbedSsoDashboardProps) => Promise<string>;
3
3
  export declare const embedSsoWorkbook: (props: EmbedSsoWorkbookProps) => Promise<string>;
4
4
  /**
package/lib/esm/embed.js CHANGED
@@ -1,6 +1,6 @@
1
- import { random32ByteString } from "./random-str";
2
- import { getSignature, signSessionRedemption } from "./signature";
3
- import { EmbeddedContent, } from "./types";
1
+ import { random32ByteString } from "./random-str.js";
2
+ import { getSignature, signSessionRedemption } from "./signature.js";
3
+ import { EmbeddedContent } from "./constants.js";
4
4
  const defaultEmbedDomain = "embed-omniapp.co";
5
5
  const embedLoginPath = "/embed/login";
6
6
  const generateSsoEmbedSessionPath = "/api/unstable/embed/sso/generate-session";
@@ -15,7 +15,7 @@ const createEmbedRequestUrl = (props) => {
15
15
  }
16
16
  // Generate the url for the embed login route
17
17
  if (!host)
18
- host = `${organizationName}.${domain !== null && domain !== void 0 ? domain : defaultEmbedDomain}`;
18
+ host = `${organizationName}.${domain ?? defaultEmbedDomain}`;
19
19
  const url = new URL(props.requestPath, `https://${host}${props.port ? `:${props.port}` : ""}`);
20
20
  return url;
21
21
  };
@@ -51,14 +51,15 @@ const validateProps = (props) => {
51
51
  };
52
52
  const embedSsoContent = async (props) => {
53
53
  validateProps(props);
54
- let { accessBoost, connectionRoles: rawConnectionRoles, contentPath, customTheme: rawCustomTheme, customThemeId, domain, email, entity, entityFolderContentRole, entityFolderGroupContentRole, entityFolderLabel, entityGroupLabel, externalId, filterSearchParam, groups: rawGroups, host, linkAccess, mode, name, nonce, organizationName, preserveEntityFolderContentRole, prefersDark, port, secret, theme, uiSettings: rawUiSettings, userAttributes: rawUserAttributes, } = props;
54
+ let { accessBoost, connectionRoles: rawConnectionRoles, contentPath, customTheme: rawCustomTheme, customThemeId, domain, email, entity, entityFolderContentRole, entityFolderGroupContentRole, entityFolderLabel, entityGroupLabel, externalId, filterSearchParam, groups: rawGroups, host, linkAccess, mode, modelRoles: rawModelRoles, name, nonce, organizationName, preserveEntityFolderContentRole, prefersDark, port, secret, theme, uiSettings: rawUiSettings, userAttributes: rawUserAttributes, } = props;
55
55
  // Handle defaults
56
- nonce = nonce !== null && nonce !== void 0 ? nonce : (await random32ByteString());
56
+ nonce = nonce ?? (await random32ByteString());
57
57
  const uiSettings = rawUiSettings && JSON.stringify(rawUiSettings);
58
58
  const userAttributes = rawUserAttributes && JSON.stringify(rawUserAttributes);
59
59
  const customTheme = rawCustomTheme && JSON.stringify(rawCustomTheme);
60
60
  const connectionRoles = rawConnectionRoles && JSON.stringify(rawConnectionRoles);
61
61
  const groups = rawGroups && JSON.stringify(rawGroups);
62
+ const modelRoles = rawModelRoles && JSON.stringify(rawModelRoles);
62
63
  const url = createEmbedRequestUrl({
63
64
  domain,
64
65
  host,
@@ -90,6 +91,7 @@ const embedSsoContent = async (props) => {
90
91
  groups,
91
92
  linkAccess,
92
93
  mode,
94
+ modelRoles,
93
95
  prefersDark,
94
96
  preserveEntityFolderContentRole,
95
97
  theme,
@@ -116,6 +118,7 @@ const embedSsoContent = async (props) => {
116
118
  connectionRoles &&
117
119
  url.searchParams.append("connectionRoles", connectionRoles);
118
120
  mode && url.searchParams.append("mode", mode);
121
+ modelRoles && url.searchParams.append("modelRoles", modelRoles);
119
122
  entityFolderContentRole &&
120
123
  url.searchParams.append("entityFolderContentRole", entityFolderContentRole);
121
124
  entityFolderGroupContentRole &&
@@ -188,7 +191,7 @@ export const createSessionToken = async ({ apiKey, domain, host, organizationNam
188
191
  error: `Failed to generate embed session: ${fetchResponse.statusText}`,
189
192
  success: false,
190
193
  };
191
- const fetchData = await fetchResponse.json();
194
+ const fetchData = (await fetchResponse.json());
192
195
  if (!fetchData.sessionId)
193
196
  return { error: "No session ID returned from endpoint.", success: false };
194
197
  return { sessionToken: fetchData.sessionId, success: true };
@@ -207,7 +210,7 @@ theme, }) => {
207
210
  port,
208
211
  requestPath: redeemSsoEmbedSessionPath,
209
212
  });
210
- const nonce = propsNonce !== null && propsNonce !== void 0 ? propsNonce : (await random32ByteString());
213
+ const nonce = propsNonce ?? (await random32ByteString());
211
214
  const signature = signSessionRedemption({
212
215
  requestUrl: redeemRequestUrl.toString(),
213
216
  nonce,
@@ -1,3 +1,4 @@
1
- export * from "./embed";
2
- export * from "./types";
3
- export * from "./signature";
1
+ export * from "./embed.js";
2
+ export * from "./types.js";
3
+ export * from "./signature.js";
4
+ export * from "./constants.js";
package/lib/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
- export * from "./embed";
2
- export * from "./types";
3
- export * from "./signature";
1
+ export * from "./embed.js";
2
+ export * from "./types.js";
3
+ export * from "./signature.js";
4
+ export * from "./constants.js";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Client / browser entrypoint for the Omni Embed SDK.
3
+ */
4
+ export * from "./constants.js";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Client / browser entrypoint for the Omni Embed SDK.
3
+ */
4
+ export * from "./constants.js";
@@ -0,0 +1 @@
1
+ {"type": "module"}
@@ -86,6 +86,10 @@ type SignatureProps = {
86
86
  * The mode of the embedded content.
87
87
  */
88
88
  mode?: string;
89
+ /**
90
+ * The model roles to be associated with the embed user. Expected to be a stringified JSON object.
91
+ */
92
+ modelRoles?: string;
89
93
  /**
90
94
  * Whether the user prefers light, dark, or system theme.
91
95
  */
@@ -131,6 +135,6 @@ type SignSessionRedemptionProps = Pick<SignatureProps, "nonce" | "prefersDark" |
131
135
  */
132
136
  export declare const signSessionRedemption: ({ requestUrl, nonce, sessionId, secret, prefersDark, theme, }: SignSessionRedemptionProps) => string;
133
137
  export declare const TEST_ONLY: {
134
- generateStringForSignature: ({ loginUrl, contentPath, externalId, name, nonce, accessBoost, connectionRoles, customTheme, customThemeId, email, entity, entityFolderContentRole, entityFolderGroupContentRole, entityFolderLabel, entityGroupLabel, filterSearchParam, groups, linkAccess, mode, prefersDark, preserveEntityFolderContentRole, theme, uiSettings, userAttributes, }: Omit<SignatureProps, "secret">) => string;
138
+ generateStringForSignature: ({ loginUrl, contentPath, externalId, name, nonce, accessBoost, connectionRoles, customTheme, customThemeId, email, entity, entityFolderContentRole, entityFolderGroupContentRole, entityFolderLabel, entityGroupLabel, filterSearchParam, groups, linkAccess, mode, modelRoles, prefersDark, preserveEntityFolderContentRole, theme, uiSettings, userAttributes, }: Omit<SignatureProps, "secret">) => string;
135
139
  };
136
140
  export {};
@@ -1,16 +1,15 @@
1
1
  import crypto from "crypto";
2
- import base64url from "base64url";
3
2
  export const hmacSign = (data, secret) => {
4
3
  const hmac = crypto.createHmac("sha256", secret);
5
4
  hmac.update(data);
6
5
  const b64 = hmac.digest("base64");
7
- return base64url.fromBase64(b64);
6
+ return Buffer.from(b64, "base64").toString("base64url");
8
7
  };
9
8
  const generateStringForSignature = ({
10
9
  // Required parameters
11
10
  loginUrl, contentPath, externalId, name, nonce,
12
11
  // Optional parameters
13
- accessBoost, connectionRoles, customTheme, customThemeId, email, entity, entityFolderContentRole, entityFolderGroupContentRole, entityFolderLabel, entityGroupLabel, filterSearchParam, groups, linkAccess, mode, prefersDark, preserveEntityFolderContentRole, theme, uiSettings, userAttributes, }) => {
12
+ accessBoost, connectionRoles, customTheme, customThemeId, email, entity, entityFolderContentRole, entityFolderGroupContentRole, entityFolderLabel, entityGroupLabel, filterSearchParam, groups, linkAccess, mode, modelRoles, prefersDark, preserveEntityFolderContentRole, theme, uiSettings, userAttributes, }) => {
14
13
  // We create a map of optional params and convert it to an array
15
14
  // to ensure that the order of the optional params is alphabetical and consistent.
16
15
  const optionalParamsMap = {
@@ -28,6 +27,7 @@ accessBoost, connectionRoles, customTheme, customThemeId, email, entity, entityF
28
27
  ...(groups && { groups }),
29
28
  ...(linkAccess && { linkAccess }),
30
29
  ...(mode && { mode }),
30
+ ...(modelRoles && { modelRoles }),
31
31
  ...(prefersDark && { prefersDark }),
32
32
  ...(preserveEntityFolderContentRole !== undefined && {
33
33
  preserveEntityFolderContentRole: preserveEntityFolderContentRole.toString(),
@@ -1,8 +1,5 @@
1
+ import { CustomThemeProperty, EmbedConnectionRoles, EmbedEntityFolderContentRoles, EmbedSessionMode, EmbedUiSettings } from "./constants.js";
1
2
  type UserAttributeValue = string | string[] | number | number[];
2
- export declare enum EmbedSessionMode {
3
- Application = "APPLICATION",
4
- SingleContent = "SINGLE_CONTENT"
5
- }
6
3
  type HostProps = {
7
4
  host?: never;
8
5
  /**
@@ -47,6 +44,11 @@ type EmbedSsoBaseProps = {
47
44
  * Object values should be connection roles.
48
45
  */
49
46
  connectionRoles?: Record<string, EmbedConnectionRoles>;
47
+ /**
48
+ * Optional model roles setting. Object keys should be model IDs from the embedded Omni instance.
49
+ * Object values should be connection roles.
50
+ */
51
+ modelRoles?: Record<string, EmbedConnectionRoles>;
50
52
  /**
51
53
  * Optional mode setting that determines whether the entire application should be embedded or a single piece of content.
52
54
  *
@@ -118,56 +120,6 @@ type EmbedContentIdProp = {
118
120
  type EmbedContentPathProp = {
119
121
  contentPath: string;
120
122
  };
121
- export declare enum CustomThemeProperty {
122
- DASHBOARD_BACKGROUND = "dashboard-background",
123
- DASHBOARD_PAGE_PADDING = "dashboard-page-padding",
124
- DASHBOARD_TILE_MARGIN = "dashboard-tile-margin",
125
- DASHBOARD_TILE_BACKGROUND = "dashboard-tile-background",
126
- DASHBOARD_TILE_SHADOW = "dashboard-tile-shadow",
127
- DASHBOARD_TILE_TEXT_BODY_COLOR = "dashboard-tile-text-body-color",
128
- DASHBOARD_TILE_TEXT_SECONDARY_COLOR = "dashboard-tile-text-secondary-color",
129
- DASHBOARD_TILE_BORDER_COLOR = "dashboard-tile-border-color",
130
- DASHBOARD_TILE_BORDER_RADIUS = "dashboard-tile-border-radius",
131
- DASHBOARD_TILE_BORDER_STYLE = "dashboard-tile-border-style",
132
- DASHBOARD_TILE_BORDER_WIDTH = "dashboard-tile-border-width",
133
- DASHBOARD_TILE_TITLE_FONT_SIZE = "dashboard-tile-title-font-size",
134
- DASHBOARD_TILE_TITLE_FONT_WEIGHT = "dashboard-tile-title-font-weight",
135
- DASHBOARD_TILE_TITLE_TEXT_COLOR = "dashboard-tile-title-text-color",
136
- DASHBOARD_TILE_TITLE_FONT_FAMILY = "dashboard-tile-title-font-family",
137
- DASHBOARD_TILE_TEXT_BODY_FONT_FAMILY = "dashboard-tile-text-body-font-family",
138
- DASHBOARD_TILE_TEXT_CODE_FONT_FAMILY = "dashboard-tile-text-code-font-family",
139
- DASHBOARD_KEY_COLOR = "dashboard-key-color",
140
- DASHBOARD_KEY_TEXT_COLOR = "dashboard-key-text-color",
141
- DASHBOARD_BUTTON_RADIUS = "dashboard-button-radius",
142
- DASHBOARD_BUTTON_TRANSPARENT_TEXT_COLOR = "dashboard-button-transparent-text-color",
143
- DASHBOARD_BUTTON_TRANSPARENT_INTERACTIVE_COLOR = "dashboard-button-transparent-interactive-color",
144
- DASHBOARD_MENU_ITEM_INTERACTIVE_COLOR = "dashboard-menu-item-interactive-color",
145
- DASHBOARD_CONTROL_BACKGROUND = "dashboard-control-background",
146
- DASHBOARD_CONTROL_RADIUS = "dashboard-control-radius",
147
- DASHBOARD_CONTROL_BORDER_COLOR = "dashboard-control-border-color",
148
- DASHBOARD_CONTROL_TEXT_COLOR = "dashboard-control-text-color",
149
- DASHBOARD_CONTROL_PLACEHOLDER_COLOR = "dashboard-control-placeholder-color",
150
- DASHBOARD_CONTROL_LABEL_COLOR = "dashboard-control-label-color",
151
- DASHBOARD_CONTROL_OUTLINE_COLOR = "dashboard-control-outline-color",
152
- DASHBOARD_CONTROL_POPOVER_BACKGROUND = "dashboard-control-popover-background",
153
- DASHBOARD_CONTROL_POPOVER_TEXT_COLOR = "dashboard-control-popover-text-color",
154
- DASHBOARD_CONTROL_POPOVER_SECONDARY_TEXT_COLOR = "dashboard-control-popover-secondary-text-color",
155
- DASHBOARD_CONTROL_POPOVER_LINK_COLOR = "dashboard-control-popover-link-color",
156
- DASHBOARD_CONTROL_POPOVER_DIVIDER_COLOR = "dashboard-control-popover-divider-color",
157
- DASHBOARD_CONTROL_POPOVER_RADIUS = "dashboard-control-popover-radius",
158
- DASHBOARD_CONTROL_POPOVER_BORDER_COLOR = "dashboard-control-popover-border-color",
159
- DASHBOARD_FILTER_INPUT_BACKGROUND = "dashboard-filter-input-background",
160
- DASHBOARD_FILTER_INPUT_RADIUS = "dashboard-filter-input-radius",
161
- DASHBOARD_FILTER_INPUT_BORDER_COLOR = "dashboard-filter-input-border-color",
162
- DASHBOARD_FILTER_INPUT_TEXT_COLOR = "dashboard-filter-input-text-color",
163
- DASHBOARD_FILTER_INPUT_PLACEHOLDER_COLOR = "dashboard-filter-input-placeholder-color",
164
- DASHBOARD_FILTER_INPUT_ICON_COLOR = "dashboard-filter-input-icon-color",
165
- DASHBOARD_FILTER_INPUT_OUTLINE_COLOR = "dashboard-filter-input-outline-color",
166
- DASHBOARD_FILTER_INPUT_ACCENT_COLOR = "dashboard-filter-input-accent-color",
167
- DASHBOARD_FILTER_INPUT_ACCENT_INVERT_COLOR = "dashboard-filter-input-accent-invert-color",
168
- DASHBOARD_FILTER_INPUT_TOKEN_COLOR = "dashboard-filter-input-token-color",
169
- DASHBOARD_FILTER_INPUT_TOKEN_TEXT_COLOR = "dashboard-filter-input-token-text-color"
170
- }
171
123
  export type CustomThemeProperties = {
172
124
  [CustomThemeProperty.DASHBOARD_BACKGROUND]?: string;
173
125
  [CustomThemeProperty.DASHBOARD_PAGE_PADDING]?: string;
@@ -219,34 +171,6 @@ export type CustomThemeProperties = {
219
171
  [CustomThemeProperty.DASHBOARD_FILTER_INPUT_TOKEN_TEXT_COLOR]?: string;
220
172
  [CustomThemeProperty.DASHBOARD_BUTTON_RADIUS]?: string;
221
173
  };
222
- export declare enum EmbeddedContent {
223
- Dashboard = "dashboards",
224
- Workbook = "w"
225
- }
226
- export declare enum EmbedConnectionRoles {
227
- RESTRICTED_QUERIER = "RESTRICTED_QUERIER",
228
- VIEWER = "VIEWER",
229
- QUERIER = "QUERIER"
230
- }
231
- /**
232
- * Levels of access a user can have to their associated embed entity folder.
233
- */
234
- export declare enum EmbedEntityFolderContentRoles {
235
- MANAGER = "MANAGER",
236
- EDITOR = "EDITOR",
237
- VIEWER = "VIEWER",
238
- NO_ACCESS = "NO_ACCESS"
239
- }
240
- /**
241
- * UI settings used as keys of the uiSettings sso embed parameter.
242
- */
243
- export declare enum EmbedUiSettings {
244
- /**
245
- * When false, hides all in-app navigation elements. Note that in-app navigation
246
- * is only visible when the embed session is in APPLICATION mode.
247
- */
248
- SHOW_NAVIGATION = "showNavigation"
249
- }
250
174
  export type EmbedSsoContentProps = EmbedSsoBaseProps & EmbedSsoDashboardOnlyProps & EmbedContentPathProp;
251
175
  /**
252
176
  * Consumers of this SDK will rely on these three types to embed workbooks and dashboards.
@@ -254,16 +178,23 @@ export type EmbedSsoContentProps = EmbedSsoBaseProps & EmbedSsoDashboardOnlyProp
254
178
  export type EmbedSsoDashboardProps = EmbedSsoBaseProps & EmbedSsoDashboardOnlyProps & EmbedContentIdProp;
255
179
  export type EmbedSsoWorkbookProps = EmbedSsoBaseProps & EmbedContentIdProp;
256
180
  export type EmbedSsoContentDiscoveryProps = EmbedSsoBaseProps & {
181
+ /**
182
+ * Path name of the content discovery page to embed.
183
+ */
184
+ path: string;
185
+ } & ({
257
186
  /**
258
187
  * Required connection roles object. Object keys should be connection IDs from the embedded Omni instance.
259
188
  * Object values should be connection roles.
260
189
  */
261
190
  connectionRoles: Record<string, EmbedConnectionRoles>;
191
+ } | {
262
192
  /**
263
- * Path name of the content discovery page to embed.
193
+ * Required model roles object. Object keys should be connection IDs from the embedded Omni instance.
194
+ * Object values should be connection roles.
264
195
  */
265
- path: string;
266
- };
196
+ modelRoles: Record<string, EmbedConnectionRoles>;
197
+ });
267
198
  export type CreateSessionTokenProps = Omit<EmbedSsoContentProps, "prefersDark" | "theme" | "secret" | "nonce"> & {
268
199
  apiKey: string;
269
200
  } & HostProps;