diff --git a/docs/config.md b/docs/config.md
index 2298855e..a96c585a 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -11,7 +11,7 @@ Cross-Origin Resource Sharing (CORS) provides a way for a web application runnin
:::note
-Chrome Web Browser version 80 and above introduces new changes which may impact embedding. For more information, seeĀ [KB484005: Chrome v80 Cookie Behavior and the Impact on Strategy Deployments](https://community.microstrategy.com/s/article/Chrome-v80-Cookie-Behavior-and-the-impact-on-Strategy-Deployments).
+Chrome Web Browser version 80 and above introduces new changes which may impact embedding. For more information, seeĀ [KB484005: Chrome v80 Cookie Behavior and the Impact on Strategy Deployments](https://community.strategy.com/article/Chrome-v80-Cookie-Behavior-and-the-impact-on-MicroStrategy-Deployments).
:::
diff --git a/docs/embed-dossier-consumption-page/embed-dossier-consumption-properties.md b/docs/embed-dossier-consumption-page/embed-dossier-consumption-properties.md
index 2f146ff3..d4ebe9fb 100644
--- a/docs/embed-dossier-consumption-page/embed-dossier-consumption-properties.md
+++ b/docs/embed-dossier-consumption-page/embed-dossier-consumption-properties.md
@@ -402,8 +402,9 @@ Use the `dossierConsumption` object to customize the options on the dashboard co
- `enablePageSelection`
- - Enable dashoard page selection in the TOC panel.
+ - Enable dashboard page selection in the TOC panel.
- Default value: `false`.
+ - **Note:** This property is deprecated. Use `pageSelectionMode` instead for more granular control over page selection behavior.
- `disableGroupSelection`
@@ -416,6 +417,13 @@ Use the `dossierConsumption` object to customize the options on the dashboard co
- Available values: ["noSelection", "singleSelection", "multipleSelection"]
- Default value: "noSelection".
+- `pageSelectionMode`
+
+ - Assigns the selection mode of pages on the dashboard consumption page.
+ - Available values: ["noSelection", "singleSelection", "multipleSelection"]
+ - Default value: "noSelection".
+ - **Important:** This is an enhancement to `enablePageSelection`. Do not use this with `enablePageSelection`. If both are provided, `pageSelectionMode` takes precedence.
+
#### Sample
```js
diff --git a/docs/embed-library-main-page/embed-library-properties.md b/docs/embed-library-main-page/embed-library-properties.md
index 725d55d8..b69e5ffe 100644
--- a/docs/embed-library-main-page/embed-library-properties.md
+++ b/docs/embed-library-main-page/embed-library-properties.md
@@ -466,6 +466,10 @@ Specifies the page on the sidebar entries that you want to embed.
targetGroup: {
id: "string",
name: "string",
+ },
+ targetFolder: {
+ projectId: "string",
+ folderId: "string",
}
};
```
@@ -484,6 +488,13 @@ Specifies the page on the sidebar entries that you want to embed.
- `currentPage.targetGroup.name`: The name of the group the user wants to select.
+- `currentPage.targetFolder`: This field is only applicable when `currentPage.key` is
+ 'contentDiscovery'. It navigates the embedded Library page directly to the specified folder.
+
+- `currentPage.targetFolder.projectId`: The ID of the project that contains the target folder.
+
+- `currentPage.targetFolder.folderId`: The ID of the folder to navigate to.
+
#### Required?
- `currentPage`: Not required
@@ -491,6 +502,8 @@ Specifies the page on the sidebar entries that you want to embed.
- `currentPage.targetGroup.id` and `currentPage.targetGroup.name`: The user must at least provide
one of them. When both of them are provided, `currentPage.targetGroup.id` would have higher
priority.
+- `currentPage.targetFolder.projectId` and `currentPage.targetFolder.folderId`: Both are required
+ when `targetFolder` is provided.
#### Default value
@@ -512,6 +525,22 @@ microstrategy.embeddingContexts.embedLibraryPage({
});
```
+To navigate directly to a specific folder on the Content Discovery page:
+
+```js
+microstrategy.embeddingContexts.embedLibraryPage({
+ serverUrl: url,
+ placeholder: container,
+ currentPage: {
+ key: "contentDiscovery",
+ targetFolder: {
+ projectId: "B7CA92F04B9FAE8D941C3E9B7E0CD754",
+ folderId: "8A1831FF494F9B8100C2A0B76041F1F0",
+ },
+ },
+});
+```
+
### `settings`
Configure global settings for the embedded library page.
diff --git a/docs/native-embedding-architecture/apply-filter.md b/docs/native-embedding-architecture/apply-filter.md
index c9c8f836..5c214d1b 100644
--- a/docs/native-embedding-architecture/apply-filter.md
+++ b/docs/native-embedding-architecture/apply-filter.md
@@ -5,7 +5,7 @@ description: Filters can be applied both during the execution of an embedded das
-Filters can be applied both during the execution of an embedded dashboard and after it has been rendered. After using [Native Embedding SDK](embed-multiple-viz.md) to embed multiple visualizations in a client's webpage, you can manipulate the chapter-level filters, on-page selectors, and visualizations used as filters via the Native Embedding SDK available since 2021 Update 9. For chapter-level filters and on-page selectors, Strategy only supports attribute element list selectors.
+Filters can be applied both during the execution of an embedded dashboard and after it has been rendered. After using [Native Embedding SDK](embed-multiple-viz.md) to embed multiple visualizations in a client's webpage, you can manipulate the chapter-level filters, on-page selectors, and visualizations used as filters via the Native Embedding SDK available since 2021 Update 9.
Let's say you already have the `MstrEnvironment` and `MstrDossier` objects:
@@ -125,11 +125,12 @@ The filter has different types below:
- Attribute element filter
- Metric qualification filter
+- Attribute qualification filter
- Object replacement selector
- Value parameter filter
- Visualizations as filters
-So we have 5 different filter types in together. For all those filters, you can get its filter key(or visualization key for visualization as filters) from the dashboard definition with the `MstrDossier.getDossierDefinition()` function.
+So there are 6 different filter types in total. For all those filters, you can get the filter key (or visualization key for visualizations used as filters) from the dashboard definition with the `MstrDossier.getDossierDefinition()` function.
The sections below show the input details for each filter type.
@@ -282,6 +283,87 @@ Some examples:
}
```
+### Attribute qualification filter
+
+To apply selections on an attribute qualification filter, you can use the following input:
+
+```js
+try {
+ await mstrDossier.applyFilter({
+ key: `${filterKey}`, // Required
+ currentSelection: {
+ selectionStatus: "", // optional, values: ['included', 'unfiltered'], default: 'included'
+ expression: {
+ operator: "", // The attribute qualification operator/function
+ operands: "", // The attribute qualification operation nodes
+ },
+ },
+ });
+} catch (error) {
+ // Your own error handling code
+}
+```
+
+For attribute qualification filters, `currentSelection.expression` is required when `selectionStatus` is not `unfiltered`.
+
+Some examples:
+
+- Apply an attribute qualification
+
+ ```js
+ try {
+ await mstrDossier.applyFilter({
+ key: "W76", // Required
+ currentSelection: {
+ selectionStatus: "included",
+ expression: {
+ operator: "Between",
+ operands: [
+ {
+ type: "form",
+ attribute: {
+ id: "96ED3EC811D5B117C000E78A4CC5F24F",
+ name: "Daytime",
+ },
+ form: {
+ id: "45C11FA478E745FEA08D781CEA190FE5",
+ name: "ID",
+ },
+ },
+ {
+ type: "constant",
+ dataType: "TimeStamp",
+ value: "1/1/2016 12:00:14 AM",
+ },
+ {
+ type: "constant",
+ dataType: "TimeStamp",
+ value: "12/31/2016 11:59:59 PM",
+ },
+ ],
+ },
+ },
+ });
+ } catch (error) {
+ // Your own error handling code
+ }
+ ```
+
+- Unset the selection of the selector
+
+ ```js
+ try {
+ await mstrDossier.applyFilter({
+ key: "W76",
+ currentSelection: {
+ selectionStatus: "unfiltered",
+ },
+ });
+ } catch (error) {
+ // Your own error handling code
+ }
+ ```
+
### Object replacement selector
To apply selections on an object replacement selector inside a page, you can use the following input:
diff --git a/docs/whats-new-in-the-embedding-sdk.md b/docs/whats-new-in-the-embedding-sdk.md
index 55d64008..88de6b87 100644
--- a/docs/whats-new-in-the-embedding-sdk.md
+++ b/docs/whats-new-in-the-embedding-sdk.md
@@ -5,6 +5,20 @@ description: In each release, changes are made to make the MicroStrategy SDK mor
In each release, changes are made to make the MicroStrategy SDK more powerful and easier to use.
+## Strategy September 2026
+
+- [Support `currentPage.targetFolder` for embedded Library page](./embed-library-main-page/embed-library-properties.md#currentpage)
+ - Navigate directly to a specific folder on the Content Discovery page when embedding the Library home page.
+
+## Strategy August 2026
+
+- Introduce `pageSelectionMode` to enable page selection on a dashboard consumption page.
+
+## Strategy ONE July 2026
+
+- [Support attribute qualification filter](./native-embedding-architecture/apply-filter#attribute-qualification-filter)
+ - Users can apply an attribute qualification filter in the Native Embedding SDK.
+
## Strategy ONE June 2026
- [Support native incremental rendering](./native-embedding-architecture/incremental-rendering)