@gooddata/sdk-ui-pluggable-host 11.53.0-alpha.0 → 11.53.0-alpha.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.
@@ -1 +1 @@
1
- {"version":3,"file":"HostChrome.d.ts","sourceRoot":"","sources":["../../src/ui/HostChrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAC;AAElG,OAAO,EACH,KAAK,iBAAiB,EAEtB,KAAK,gCAAgC,EACxC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACxB,MAAM,2CAA2C,CAAC;AA6BnD,OAAO,mBAAmB,CAAC;AAK3B,OAAO,0CAA0C,CAAC;AAClD,OAAO,6CAA6C,CAAC;AACrD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,0DAA0D,CAAC;AAelE,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,gBAAgB,CAAC;IACtB,oBAAoB,EAAE,gCAAgC,EAAE,CAAC;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,YAAY,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,iBAAiB,EAC/B,YAAY,CAAC,EAAE,OAAO,EACtB,kBAAkB,CAAC,EAAE,OAAO,KAC3B,IAAI,CAAC;IACV;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,EACvB,GAAG,EACH,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,SAAS,EAAE,UAAU,EACrB,aAAa,EACb,YAAmB,EACnB,YAAoB,EACpB,UAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACX,EAAE,gBAAgB,2CA0NlB"}
1
+ {"version":3,"file":"HostChrome.d.ts","sourceRoot":"","sources":["../../src/ui/HostChrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAC;AAElG,OAAO,EACH,KAAK,iBAAiB,EAEtB,KAAK,gCAAgC,EACxC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACxB,MAAM,2CAA2C,CAAC;AA6BnD,OAAO,mBAAmB,CAAC;AAK3B,OAAO,0CAA0C,CAAC;AAClD,OAAO,6CAA6C,CAAC;AACrD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,0DAA0D,CAAC;AAelE,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,gBAAgB,CAAC;IACtB,oBAAoB,EAAE,gCAAgC,EAAE,CAAC;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,YAAY,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,iBAAiB,EAC/B,YAAY,CAAC,EAAE,OAAO,EACtB,kBAAkB,CAAC,EAAE,OAAO,KAC3B,IAAI,CAAC;IACV;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,EACvB,GAAG,EACH,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,SAAS,EAAE,UAAU,EACrB,aAAa,EACb,YAAmB,EACnB,YAAoB,EACpB,UAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACX,EAAE,gBAAgB,2CA8NlB"}
@@ -122,19 +122,23 @@ export function HostChrome({ ctx, resolvedApplications, pathname, onNavigate, on
122
122
  // resolved organization descriptor title (the profile field is optional) — and is omitted (so
123
123
  // DocumentHeader drops the " - " separator) only when neither is set. The GoodData product name
124
124
  // is used solely when white-labeling is disabled, so a branded org never falls back to it.
125
+ // In export mode the brand is omitted entirely: the export service prints document.title into
126
+ // the PDF, and the standalone apps ship the bare page title there.
125
127
  const activeApplication = getActiveInternalApplication(resolvedApplications, ctx, pathname);
126
128
  // An app may report an empty page segment (e.g. no insight open); treat it the same as `undefined`
127
129
  // (omitted) so the tab falls back to the active application's manifest title rather than going blank.
128
130
  const documentPageTitle = appPageTitle ||
129
131
  (activeApplication ? getLocalizedTitle(activeApplication, ctx.preferredLocale) : undefined);
130
- const documentBrandTitle = ctx.whiteLabeling?.enabled
131
- ? ctx.user.organizationName || ctx.organization?.title || ""
132
- : defaultLogoTitle;
132
+ const documentBrandTitle = ctx.isExportMode
133
+ ? undefined
134
+ : ctx.whiteLabeling?.enabled
135
+ ? ctx.user.organizationName || ctx.organization?.title || ""
136
+ : defaultLogoTitle;
133
137
  const headerColor = ctx.theme?.header?.backgroundColor ?? defaultHeaderTheme.backgroundColor;
134
138
  const headerTextColor = ctx.theme?.header?.color ?? defaultHeaderTheme.color;
135
139
  const activeColor = ctx.theme?.header?.activeColor ?? defaultHeaderTheme.activeColor;
136
140
  const hideChrome = ctx.embeddingMode === "iframe" || ctx.isExportMode === true;
137
- return (_jsx(HostIntlProvider, { locale: locale, additionalMessages: appMessages, children: _jsx(BackendProvider, { backend: getBackend(), children: _jsx(ToastsCenterContextProvider, { children: _jsxs("div", { className: b(), children: [
141
+ return (_jsx(HostIntlProvider, { locale: locale, additionalMessages: appMessages, children: _jsx(BackendProvider, { backend: getBackend(), children: _jsx(ToastsCenterContextProvider, { children: _jsxs("div", { className: b({ export: ctx.isExportMode === true }), children: [
138
142
  _jsx(DocumentHeader, { pageTitle: documentPageTitle, brandTitle: documentBrandTitle, faviconUrl: faviconUrl, appleTouchIconUrl: ctx.whiteLabeling?.appleTouchIconUrl }), hideChrome ? null : (_jsx("div", { className: e("header"), onMouseOver: appPreloadOnHover.onMouseOver, onMouseLeave: appPreloadOnHover.onMouseLeave, children: _jsx(AppHeader, { logoUrl: ctx.whiteLabeling?.logoUrl || defaultLogoUrl, logoHref: LOGO_HREF, onLogoClick: handleLogoClick, logoTitle: logoTitle, headerColor: headerColor, headerTextColor: headerTextColor, activeColor: activeColor, userName: userName, organizationName: ctx.organization?.title, isAccessibilityCompliant: true, workspacePicker: workspacePicker, menuItemsGroups: menuItemsGroups, helpMenuItems: helpMenuItems, accountMenuItems: accountMenuItems, onMenuItemClick: handleMenuItemClick, showUpsellButton: pricing.isTrial, onUpsellButtonClick: pricing.onUpsellButtonClick, expiredDate: pricing.isTrial ? pricing.expiredDate : undefined, search: search.element, showChatItem: showChatItem, isChatOpen: chatIsOpen, onChatItemClick: onChatToggle, notificationsPanel: ({ isMobile, closeNotificationsOverlay }) => (_jsx(AppHeaderNotifications, { locale: locale, isMobile: isMobile, closeNotificationsOverlay: closeNotificationsOverlay, useAsOfDateParam: true, enableExportToDocumentStorage: ctx.userSettings.enableExportToDocumentStorage ?? false })) }) })), _jsx("main", { className: e("content"), children: children }), pricing.element, _jsx(HostNotificationDispatcher, { notification: notification })
139
143
  ] }) }) }) }));
140
144
  }
@@ -25,4 +25,25 @@
25
25
  flex: 1;
26
26
  min-height: 0;
27
27
  }
28
+
29
+ // In export mode the document itself must be the scroller: Chromium's
30
+ // print-to-PDF paginates the document flow and clips anything inside a
31
+ // fixed-height overflow container to a single page. The chrome boxes are
32
+ // sized by their content instead of the viewport; note that an
33
+ // application whose own root is viewport-high (KD's .index) still
34
+ // overflows them — visibly, which is what grows the document, matching
35
+ // how the standalone apps print.
36
+ &--export {
37
+ height: auto;
38
+ min-height: 100vh;
39
+
40
+ .gd-host-chrome__content {
41
+ flex: 0 0 auto;
42
+ overflow: visible;
43
+ }
44
+
45
+ .gd-host-chrome__app-container {
46
+ flex: 0 0 auto;
47
+ }
48
+ }
28
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-pluggable-host",
3
- "version": "11.53.0-alpha.0",
3
+ "version": "11.53.0-alpha.2",
4
4
  "description": "GoodData SDK runtime for hosting pluggable applications — registry, loader, routing, platform context, default UI chrome",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -29,20 +29,20 @@
29
29
  "dependencies": {
30
30
  "@module-federation/runtime": "2.6.0",
31
31
  "lodash-es": "^4.17.23",
32
- "@gooddata/sdk-backend-base": "11.53.0-alpha.0",
33
- "@gooddata/sdk-backend-spi": "11.53.0-alpha.0",
34
- "@gooddata/sdk-backend-tiger": "11.53.0-alpha.0",
35
- "@gooddata/sdk-model": "11.53.0-alpha.0",
36
- "@gooddata/sdk-pluggable-application-model": "11.53.0-alpha.0",
37
- "@gooddata/sdk-embedding": "11.53.0-alpha.0",
38
- "@gooddata/sdk-ui": "11.53.0-alpha.0",
39
- "@gooddata/sdk-ui-application-header": "11.53.0-alpha.0",
40
- "@gooddata/sdk-ui-ext": "11.53.0-alpha.0",
41
- "@gooddata/sdk-ui-gen-ai": "11.53.0-alpha.0",
42
- "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.0",
43
- "@gooddata/util": "11.53.0-alpha.0",
44
- "@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.0",
45
- "@gooddata/sdk-ui-kit": "11.53.0-alpha.0"
32
+ "@gooddata/sdk-backend-base": "11.53.0-alpha.2",
33
+ "@gooddata/sdk-backend-spi": "11.53.0-alpha.2",
34
+ "@gooddata/sdk-embedding": "11.53.0-alpha.2",
35
+ "@gooddata/sdk-backend-tiger": "11.53.0-alpha.2",
36
+ "@gooddata/sdk-model": "11.53.0-alpha.2",
37
+ "@gooddata/sdk-pluggable-application-model": "11.53.0-alpha.2",
38
+ "@gooddata/sdk-ui-application-header": "11.53.0-alpha.2",
39
+ "@gooddata/sdk-ui": "11.53.0-alpha.2",
40
+ "@gooddata/sdk-ui-ext": "11.53.0-alpha.2",
41
+ "@gooddata/sdk-ui-gen-ai": "11.53.0-alpha.2",
42
+ "@gooddata/sdk-ui-kit": "11.53.0-alpha.2",
43
+ "@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.2",
44
+ "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.2",
45
+ "@gooddata/util": "11.53.0-alpha.2"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@microsoft/api-documenter": "^7.17.0",
@@ -85,8 +85,8 @@
85
85
  "vite": "8.0.16",
86
86
  "vitest": "4.1.8",
87
87
  "vitest-dom": "0.1.1",
88
- "@gooddata/eslint-config": "11.53.0-alpha.0",
89
- "@gooddata/oxlint-config": "11.53.0-alpha.0"
88
+ "@gooddata/eslint-config": "11.53.0-alpha.2",
89
+ "@gooddata/oxlint-config": "11.53.0-alpha.2"
90
90
  },
91
91
  "peerDependencies": {
92
92
  "react": ">=18.3.1",