diff --git a/_docs/master/api.html b/_docs/master/api.html index 259c99897d..c95460f3fb 100644 --- a/_docs/master/api.html +++ b/_docs/master/api.html @@ -16347,6 +16347,94 @@ "tags" : [ "/api/ee/dependencies" ] } }, + "/api/ee/dependencies/graph" : { + "get" : { + "summary" : "GET /api/ee/dependencies/graph", + "description" : "TODO: This endpoint is supposed to take an :id and :type of an entity (currently :table, :card, :snippet,\n or :transform) and return the entity with all its upstream and downstream dependencies that should be fetched\n recursively. :edges match our :model/Dependency format. Each node in :nodes has :id, :type, and :data, and :data\n depends on the node type. For :table, there should be :display_name. For :card, there should be :name\n and :type. For :snippet -> :name. For :transform -> :name.", + "parameters" : [ { + "in" : "query", + "name" : "id", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + }, { + "in" : "query", + "name" : "type", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ "table", "card", "snippet", "transform" ] + } + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/dependencies" ] + } + }, + "/api/ee/dependencies/graph/dependents" : { + "get" : { + "summary" : "GET /api/ee/dependencies/graph/dependents", + "description" : "TODO: This endpoint is supposed to take an :id and :type of an entity (currently :table, :card, :snippet,\n or :transform) and return the entity with all its upstream and downstream dependencies that should be fetched\n recursively. :edges match our :model/Dependency format. Each node in :nodes has :id, :type, and :data, and :data\n depends on the node type. For :table, there should be :display_name. For :card, there should be :name\n and :type. For :snippet -> :name. For :transform -> :name.", + "parameters" : [ { + "in" : "query", + "name" : "id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + }, { + "in" : "query", + "name" : "type", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ "table", "card", "snippet", "transform" ] + } + }, { + "in" : "query", + "name" : "dependent_type", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ "table", "card", "snippet", "transform" ] + } + }, { + "in" : "query", + "name" : "dependent_card_type", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ "question", "model", "metric" ] + } + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/dependencies" ] + } + }, "/api/ee/document/" : { "get" : { "summary" : "GET /api/ee/document/", @@ -25849,7 +25937,7 @@ "type" : "array", "items" : { "type" : "string", - "enum" : [ "dashboard", "table", "dataset", "segment", "collection", "document", "database", "action", "indexed-entity", "metric", "card" ] + "enum" : [ "dashboard", "table", "dataset", "segment", "collection", "transform", "document", "database", "action", "indexed-entity", "metric", "card" ] } } }, { diff --git a/_docs/master/developers-guide/driver-changelog.md b/_docs/master/developers-guide/driver-changelog.md index defd4ab2ad..3e81c9bde9 100644 --- a/_docs/master/developers-guide/driver-changelog.md +++ b/_docs/master/developers-guide/driver-changelog.md @@ -55,6 +55,12 @@ layout: new-docs you can pass to [[metabase.lib.core/order-by]] -- for example a Lib `:metadata/column` or an [MBQL 5] `metabase.driver-api.core/order-by-clause`. +- `metabase.driver-api.core/nest-query` no longer automatically calls `metabase.driver-api.core/add-alias-info` on its + results, but it also no longer expect its input to have this information. If you were using both of these tools in + your driver, make change the order in which the are applied so `nest-query` happens first, followed by + `add-alias-info`. Note that drivers deriving from `:sql` do not need to make any changes, since this is done by the + base `:sql` driver implementation. + ## Metabase 0.56.3 - Added the driver multi-method `driver/describe-database*` that drivers should now implement instead of `driver/describe-database`. diff --git a/_docs/master/embedding/embedded-analytics-js.md b/_docs/master/embedding/embedded-analytics-js.md index 66b8243b77..a5c90ff6e1 100644 --- a/_docs/master/embedding/embedded-analytics-js.md +++ b/_docs/master/embedding/embedded-analytics-js.md @@ -29,6 +29,7 @@ Currently you can choose to embed: - A question (chart). You can embed both questions built with the query builder and questions built with SQL. - Full graphical [query builder](../questions/query-builder/editor) to enable people to build their own charts and explorations. - A browser to navigate collections and open dashboards or questions. +- [AI chat interface](./sdk/ai-chat). ## Quickstart @@ -50,10 +51,10 @@ You can also follow the setup guide directly in Metabase in **Admin settings > E 2. Choose the _type_ of entity to embed: - Dashboard - - Question + - Chart - Exploration (which will embed the Metabase query builder) - Browser - - Metabot question + - Metabot question (which will embed AI chat) 3. Next, select the entity you want to embed. For browser, pick the collection you want people to start from. @@ -365,7 +366,7 @@ To render a dashboard: ### Question -To render a question (chart). +To render a question (chart): ```html @@ -386,9 +387,9 @@ To render a question (chart). - `is-save-enabled` (default is false) - `target-collection` - this is to enforce saving into a particular collection. Values: regular ID, entity ID, `"personal”`, `"root”` -- ### Browser +### Browser -To render a collection browser so people can navigate a collection and open dashboards or questions. +To render a collection browser so people can navigate a collection and open dashboards or questions: ```html @@ -402,6 +403,25 @@ To render a collection browser so people can navigate a collection and open dash - `read-only` (default is true) – if true, people can interact with items (filter, summarize, drill-through) but cannot save. If false, they can create and edit items in the collection. +### Metabot + +To render the AI chat interface: + +```html + +``` + +**Required parameters:** + +None. + +**Optional parameters:** + +- `layout` (default is `auto`) – how should the browser position the visualization with respect to the chat interface. Possible values are: + - `auto` (default): Metabot uses the `stacked` layout on mobile screens, and a `sidebar` layout on larger screens. + - `stacked`: the question visualization stacks on top of the chat interface. + - `sidebar`: the question visualization appears to the left of the chat interface, which is in the right sidebar. + ## Embedding Metabase in a different domain If you want to embed Metabase in another domain (say, if Metabase is hosted at `metabase.yourcompany.com`, but you want to embed Metabase at `yourcompany.github.io`), you can tell Metabase to set the session cookie's SameSite value to "none". diff --git a/_docs/master/embedding/sdk/ai-chat.md b/_docs/master/embedding/sdk/ai-chat.md index 0a80002ab7..ce15b1667f 100644 --- a/_docs/master/embedding/sdk/ai-chat.md +++ b/_docs/master/embedding/sdk/ai-chat.md @@ -32,6 +32,10 @@ You can check out a [demo of the AI chat component](https://embedded-analytics-s {% include_file "{{ dirname }}/snippets/questions/ai-question.tsx" %} ``` +## Props + +{% include_file "{{ dirname }}/api/snippets/MetabotQuestionProps.md" snippet="properties" %} + ## API reference - [Component](./api/MetabotQuestion) diff --git a/_docs/master/embedding/sdk/api/IconName.html b/_docs/master/embedding/sdk/api/IconName.html index c4f2b7b55d..ed6a20ae5e 100644 --- a/_docs/master/embedding/sdk/api/IconName.html +++ b/_docs/master/embedding/sdk/api/IconName.html @@ -9,4 +9,4 @@ layout: docs-api --- -IconName | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}
Embedded analytics SDK API
    Preparing search index...

    Type Alias IconName

    IconName:
        | "string"
        | "number"
        | "function"
        | "collection"
        | "dashboard"
        | "question"
        | "model"
        | "archive"
        | "table"
        | "bar"
        | "line"
        | "pie"
        | "scalar"
        | "area"
        | "smartscalar"
        | "gauge"
        | "progress"
        | "funnel"
        | "waterfall"
        | "sankey"
        | "list"
        | "revert"
        | "add"
        | "add_column"
        | "add_data"
        | "add_folder"
        | "add_row"
        | "add_to_dash"
        | "add_comment"
        | "ai"
        | "alert"
        | "alert_filled"
        | "alert_confirm"
        | "attachment"
        | "arrow_up"
        | "arrow_down"
        | "arrow_left"
        | "arrow_left_to_line"
        | "arrow_right"
        | "arrow_split"
        | "audit"
        | "badge"
        | "bell"
        | "birthday"
        | "bookmark"
        | "bookmark_filled"
        | "bolt"
        | "bolt_filled"
        | "breakout"
        | "bubble"
        | "burger"
        | "calendar"
        | "check"
        | "check_filled"
        | "code_block"
        | "chevrondown"
        | "chevronleft"
        | "chevronright"
        | "chevronup"
        | "click"
        | "clipboard"
        | "clock"
        | "clone"
        | "close"
        | "cloud"
        | "cloud_filled"
        | "compare"
        | "combine"
        | "company"
        | "comment"
        | "currency"
        | "connections"
        | "contract"
        | "copy"
        | "curved"
        | "database"
        | "dash"
        | "curve"
        | "document"
        | "download"
        | "dyno"
        | "edit_document"
        | "edit_document_outlined"
        | "ellipsis"
        | "embed"
        | "embed_interactive"
        | "embed_modular"
        | "embed_static"
        | "empty"
        | "enter_or_return"
        | "expand"
        | "expand_arrow"
        | "extract"
        | "eye"
        | "eye_crossed_out"
        | "eye_outline"
        | "field"
        | "fields"
        | "filter"
        | "filter_plus"
        | "bug"
        | "format_code"
        | "formula"
        | "funnel_outline"
        | "folder"
        | "folder_filled"
        | "gear"
        | "gear_settings_filled"
        | "gem"
        | "globe"
        | "grabber"
        | "grid"
        | "group"
        | "google"
        | "google_drive"
        | "google_sheet"
        | "history"
        | "home"
        | "horizontal_bar"
        | "hourglass"
        | "info"
        | "info_outline"
        | "insight"
        | "int"
        | "io"
        | "join_full_outer"
        | "join_inner"
        | "join_left_outer"
        | "join_right_outer"
        | "index"
        | "key"
        | "label"
        | "ldap"
        | "learn"
        | "lightbulb"
        | "link"
        | "lines"
        | "lineandbar"
        | "line_style_dashed"
        | "line_style_dotted"
        | "line_style_solid"
        | "location"
        | "lock"
        | "lock_filled"
        | "mail"
        | "mail_filled"
        | "metabot"
        | "metabot_sad"
        | "metric"
        | "model_with_badge"
        | "moon"
        | "move"
        | "move_card"
        | "new_folder"
        | "notebook"
        | "palette"
        | "pause"
        | "pencil"
        | "pencil_lines"
        | "permissions_limited"
        | "person"
        | "pin"
        | "pinmap"
        | "pivot_table"
        | "play"
        | "play_outlined"
        | "popover"
        | "popular"
        | "pulse"
        | "receipt"
        | "recents"
        | "share"
        | "send"
        | "smile"
        | "split"
        | "sql"
        | "subscription"
        | "straight"
        | "stepped"
        | "sort"
        | "sort_arrows"
        | "sum"
        | "sync"
        | "quote"
        | "redo"
        | "return"
        | "reference"
        | "refresh"
        | "refresh_downstream"
        | "rocket"
        | "ruler"
        | "schema"
        | "search"
        | "section"
        | "segment"
        | "shield"
        | "shield_outline"
        | "sidebar_closed"
        | "sidebar_open"
        | "slack"
        | "slack_colorized"
        | "snail"
        | "snippet"
        | "sparkles"
        | "star_filled"
        | "star"
        | "stop"
        | "store"
        | "sun"
        | "t-shirt"
        | "tab"
        | "table2"
        | "text_bold"
        | "text_italic"
        | "text_strike"
        | "thumbs_down"
        | "thumbs_up"
        | "time_history"
        | "trash"
        | "trash_filled"
        | "triangle_left"
        | "triangle_right"
        | "unarchive"
        | "undo"
        | "unknown"
        | "unpin"
        | "unsubscribe"
        | "upload"
        | "variable"
        | "verified"
        | "official_collection"
        | "ordered_list"
        | "verified_filled"
        | "view_archive"
        | "warning"
        | "warning_round_filled"
        | "warning_triangle_filled"
        | "webhook"
        | "10k"
        | "1m"
        | "zoom_in"
        | "zoom_out"
        | "cake"
        | "external"
        | "table_spaced"
        | "beaker"
        | "test_tube"
        | "eye_filled"
    +IconName | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}
    Embedded analytics SDK API
      Preparing search index...

      Type Alias IconName

      IconName:
          | "string"
          | "number"
          | "function"
          | "collection"
          | "dashboard"
          | "question"
          | "model"
          | "archive"
          | "table"
          | "bar"
          | "line"
          | "pie"
          | "scalar"
          | "area"
          | "smartscalar"
          | "gauge"
          | "progress"
          | "funnel"
          | "waterfall"
          | "sankey"
          | "list"
          | "revert"
          | "add"
          | "add_column"
          | "add_data"
          | "add_folder"
          | "add_row"
          | "add_to_dash"
          | "add_comment"
          | "ai"
          | "alert"
          | "alert_filled"
          | "alert_confirm"
          | "attachment"
          | "arrow_up"
          | "arrow_down"
          | "arrow_left"
          | "arrow_left_to_line"
          | "arrow_right"
          | "arrow_split"
          | "audit"
          | "badge"
          | "bell"
          | "birthday"
          | "bookmark"
          | "bookmark_filled"
          | "bolt"
          | "bolt_filled"
          | "breakout"
          | "bubble"
          | "burger"
          | "calendar"
          | "check"
          | "check_filled"
          | "code_block"
          | "chevrondown"
          | "chevronleft"
          | "chevronright"
          | "chevronup"
          | "click"
          | "clipboard"
          | "clock"
          | "clone"
          | "close"
          | "cloud"
          | "cloud_filled"
          | "compare"
          | "combine"
          | "company"
          | "comment"
          | "currency"
          | "connections"
          | "contract"
          | "copy"
          | "curved"
          | "database"
          | "dash"
          | "curve"
          | "document"
          | "download"
          | "dyno"
          | "edit_document"
          | "edit_document_outlined"
          | "ellipsis"
          | "embed"
          | "embed_interactive"
          | "embed_modular"
          | "embed_static"
          | "empty"
          | "enter_or_return"
          | "expand"
          | "expand_arrow"
          | "extract"
          | "eye"
          | "eye_crossed_out"
          | "eye_outline"
          | "field"
          | "fields"
          | "filter"
          | "filter_plus"
          | "bug"
          | "format_code"
          | "formula"
          | "funnel_outline"
          | "folder"
          | "folder_filled"
          | "gear"
          | "gear_settings_filled"
          | "gem"
          | "globe"
          | "git_branch"
          | "grabber"
          | "grid"
          | "group"
          | "google"
          | "google_drive"
          | "google_sheet"
          | "history"
          | "home"
          | "horizontal_bar"
          | "hourglass"
          | "info"
          | "info_outline"
          | "insight"
          | "int"
          | "io"
          | "join_full_outer"
          | "join_inner"
          | "join_left_outer"
          | "join_right_outer"
          | "index"
          | "key"
          | "label"
          | "ldap"
          | "learn"
          | "lightbulb"
          | "link"
          | "lines"
          | "lineandbar"
          | "line_style_dashed"
          | "line_style_dotted"
          | "line_style_solid"
          | "location"
          | "lock"
          | "lock_filled"
          | "mail"
          | "mail_filled"
          | "metabot"
          | "metabot_sad"
          | "metric"
          | "model_with_badge"
          | "moon"
          | "move"
          | "move_card"
          | "new_folder"
          | "notebook"
          | "palette"
          | "pause"
          | "pencil"
          | "pencil_lines"
          | "permissions_limited"
          | "person"
          | "pin"
          | "pinmap"
          | "pivot_table"
          | "play"
          | "play_outlined"
          | "popover"
          | "popular"
          | "pulse"
          | "receipt"
          | "recents"
          | "share"
          | "send"
          | "smile"
          | "split"
          | "sql"
          | "subscription"
          | "straight"
          | "stepped"
          | "sort"
          | "sort_arrows"
          | "sum"
          | "sync"
          | "synced_collection"
          | "quote"
          | "redo"
          | "return"
          | "reference"
          | "refresh"
          | "refresh_downstream"
          | "repository"
          | "rocket"
          | "ruler"
          | "schema"
          | "search"
          | "section"
          | "segment"
          | "shield"
          | "shield_outline"
          | "sidebar_closed"
          | "sidebar_open"
          | "slack"
          | "slack_colorized"
          | "snail"
          | "snippet"
          | "sparkles"
          | "star_filled"
          | "star"
          | "stop"
          | "store"
          | "sun"
          | "t-shirt"
          | "tab"
          | "table2"
          | "text_bold"
          | "text_italic"
          | "text_strike"
          | "thumbs_down"
          | "thumbs_up"
          | "time_history"
          | "trash"
          | "trash_filled"
          | "triangle_left"
          | "triangle_right"
          | "unarchive"
          | "undo"
          | "unknown"
          | "unpin"
          | "unsubscribe"
          | "upload"
          | "variable"
          | "verified"
          | "official_collection"
          | "ordered_list"
          | "verified_filled"
          | "view_archive"
          | "warning"
          | "warning_round_filled"
          | "warning_triangle_filled"
          | "webhook"
          | "10k"
          | "1m"
          | "zoom_in"
          | "zoom_out"
          | "cake"
          | "external"
          | "table_spaced"
          | "beaker"
          | "test_tube"
          | "eye_filled"
      diff --git a/_docs/master/embedding/sdk/api/MetabaseCollectionItem.html b/_docs/master/embedding/sdk/api/MetabaseCollectionItem.html index 110ecee315..958be9b02d 100644 --- a/_docs/master/embedding/sdk/api/MetabaseCollectionItem.html +++ b/_docs/master/embedding/sdk/api/MetabaseCollectionItem.html @@ -10,11 +10,11 @@ --- MetabaseCollectionItem | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}
      Embedded analytics SDK API
        Preparing search index...

        Type Alias MetabaseCollectionItem

        The CollectionItem entity

        -
        type MetabaseCollectionItem = {
            description: string | null;
            entity_id?: SdkEntityId;
            id: SdkCollectionId;
            "last-edit-info"?: {
                email: string;
                first_name: string;
                id: SdkUserId;
                last_name: string;
                timestamp: string;
            };
            model: string;
            name: string;
            type?: | "instance-analytics"
            | "trash"
            | "model"
            | "question"
            | "metric"
            | null;
        }
        Index

        Properties

        type MetabaseCollectionItem = {
            description: string | null;
            entity_id?: SdkEntityId;
            id: SdkCollectionId;
            "last-edit-info"?: {
                email: string;
                first_name: string;
                id: SdkUserId;
                last_name: string;
                timestamp: string;
            };
            model: string;
            name: string;
            type?: | "instance-analytics"
            | "trash"
            | "remote-synced"
            | "model"
            | "question"
            | "metric"
            | null;
        }
        Index

        Properties

        description: string | null
        entity_id?: SdkEntityId
        "last-edit-info"?: {
            email: string;
            first_name: string;
            id: SdkUserId;
            last_name: string;
            timestamp: string;
        }
        model: string
        name: string
        type?: "instance-analytics" | "trash" | "model" | "question" | "metric" | null
        +

        Properties

        description: string | null
        entity_id?: SdkEntityId
        "last-edit-info"?: {
            email: string;
            first_name: string;
            id: SdkUserId;
            last_name: string;
            timestamp: string;
        }
        model: string
        name: string
        type?:
            | "instance-analytics"
            | "trash"
            | "remote-synced"
            | "model"
            | "question"
            | "metric"
            | null
        diff --git a/_docs/master/embedding/sdk/api/MetabasePluginsConfig.html b/_docs/master/embedding/sdk/api/MetabasePluginsConfig.html index 41ec4ce00e..814211998d 100644 --- a/_docs/master/embedding/sdk/api/MetabasePluginsConfig.html +++ b/_docs/master/embedding/sdk/api/MetabasePluginsConfig.html @@ -9,6 +9,12 @@ layout: docs-api --- -MetabasePluginsConfig | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}
        Embedded analytics SDK API
          Preparing search index...

          Type Alias MetabasePluginsConfig

          Index

          Properties

          dashboard? +MetabasePluginsConfig | Embedded analytics SDK API{% include docs/embedded-analytics-sdk-metadata.html %}

          Type Alias MetabasePluginsConfig

          type MetabasePluginsConfig = {
              dashboard?: MetabaseDashboardPluginsConfig;
              getNoDataIllustration?: () => string | null | undefined;
              getNoObjectIllustration?: () => string | null | undefined;
              mapQuestionClickActions?: MetabaseClickActionPluginsConfig;
          }
          Index

          Properties

          mapQuestionClickActions?: MetabaseClickActionPluginsConfig

          +

          Properties

          getNoDataIllustration?: () => string | null | undefined

          Provides a custom illustration to display when there is no data.

          +

          Type Declaration

            • (): string | null | undefined
            • Returns string | null | undefined

              A base64-encoded image string, or null to use the default illustration

              +
          getNoObjectIllustration?: () => string | null | undefined

          Provides a custom illustration to display when there is no object (e.g., no dashboards, no collections).

          +

          Type Declaration

            • (): string | null | undefined
            • Returns string | null | undefined

              A base64-encoded image string, or null to use the default illustration

              +
          mapQuestionClickActions?: MetabaseClickActionPluginsConfig
          diff --git a/_docs/master/embedding/sdk/api/assets/search.js b/_docs/master/embedding/sdk/api/assets/search.js index d21d0603fd..c69e04e07e 100644 --- a/_docs/master/embedding/sdk/api/assets/search.js +++ b/_docs/master/embedding/sdk/api/assets/search.js @@ -1 +1 @@ -window.searchData = "eJy9nV2T47iRrv9L9W25j/Ahkpo7uz0TO7vetdfj9V50OCbYEruK0xIpS1S124757ycAChKQeEEmJJ1zNT0lIjNJJoBEPgnwX0+H/uvx6buP/3r60nabp+8K/fzU1bvm6bunD/1226yHtu9+Zy5qDk/PT6fDFv3y/nXYbZ+en9bb+nhsjk/fPT39+oxEHpp6aH5fH18/9fVh85/9pt5epYIf8wT/96k5GquISPdnrrBN87ntmv9shvpTfWx+expeP/Td5/blIjZ1AVfB95t2qD9tr/d6kRz9whX5Yzc0h3o9tG9AKvrxBsHR4wW/TYoVC3kV/Lt6/eV3p2FgyHv3qV5/+eSu9UQ/P+3rQ9MNCTtTmg9N/aU/DQy91ysfpvX3h36/6b9y7vrcYnNtcbcVH17rw/CXb/uGb8baNBm+7Zv/J3b81JihpD9k2HG8Nrnbjt/3X7ttX2/+t928NAyP2Jyv/+quf7AF/NcSWvLId2MGIc4Ladx1D9LIHQ1GvY8bD35ot0PDuN/P7roHaeS/61HzI9/xf/VD86nvv8zr7q5XPkwr90073Y971+73n5phaLuX47wNfz//3/Ha4uFW8D2BWvNIn3C//7U9nupt+8+aNdlfTHojze6258/NsRm4rnIwFz/OT36q3xqu6mP91jxWs7vmh/6w4+l3L+Hz2OJ+K/6+/VN9qHfN0ByOf2iPjKnx+Pft/tJkOza5347Tblcf2n82DP3epY/Ty++aF/2P7JN/aYct496H82V36wv6PrcDBD3/rp7gLTzc8upPh/6t3XjzM/2Bu5Kx7fohWsWQv3PF/TTUQ7uOF1vk73niIuPCP2esrugaBwiaX94Qo3JXNlM6ZzsJT3d6PYOU85cymdqjVcyk9tkFDE97Yu2CVDOXLbfoZT34zMUKzw4StyO9MyF7jh7WfTIDdZ7eZKyKNLPD1Nt0s+4+OzjNswXHpVOG8EJSnhUoGkW6OYEoT2M6BkN6+eEXU3sUeUGts0FXpjaWo/FDLZ72MMpCGqcDrKQWb4I/HZvf7vfbdm2d8b/MH53C+Cdu1GBavtXt1uSMf+i74RjIDH7JEEky8b/dt77Y+Ncc0aeDeWb/4+OE8M8ZwvwMvHkFp+D2418nRctlkUYffzr0+6tw/DM/OLNXBB4wIfGdvbobr8bulzA3pf1y9Y8bngGX39rNg2z4frcfvn3ou6Hphg/9bt93RgrHmMa0XI8t117LR1jVdx+27foLy46+W5+vfYTmff3S/OSPtVOqzcXHqSE3T/dx+LblKXZXPkLrW3tsP22bD/32tOtYXevducn60uSBdnzfDe3wzYTyWbY0ttlwbnajPcHIAyAoGXxSV/DHn7Zrh7befoADwaT4d+emvCEheS8pu45/3DeU3qZNOfbj1Q/Sbnp/f2y46s0AMF7+OP22SYYB7vrbLZjwvb/W21OT9Lvx14w5j+FsnkzmpAMtTliwaY7rQ7sPFg8TBoSXP0B/F0z4acXTU/2Mxvh9uqgUjSLBb3fFLwlxnOAFWJnQ26BBOqWZNTTzdb827cvrMK/2ct39GtvNpumuK0CGbtti77e424rzgB+sRectObcK1qQPseZo8Mj3nVnV0GEEmXE0bKS5XH63/r77XfO5PzTGinn1fffJXn0cr36A9v+q39qXemhM8QxHf3e+/lM9FarmWPDnU6q8KlB8OM2Nmkx93Cf9uGccpJk+vNbdC8uAINe0ds3utme/Pb20HaPLXS+8WydZEaQ0ziwH+PqG+vDSDNdwdF712GLtt7jfiiAJlFY9mQnK0Pe13Qyv8/rcZQ/QN7ymgcWE/uGVTy4y7XEogeHf5vKNd/lD9KOk7qQFnOzutA1+hPb7Q7vd/uX10J9eXnGclrwiI1p7bbebg7eumpb5zrse31/aana8OGfCbNSYbQOKHWes4ESQ2XaQOHLGhJloMlv7ZDQ3Y0tWTJdvGYzs5kxixXfZtsAob8YUVqx3gyV+vDVrwlTUdYPuvPt/7J3TuGdG/Vz0k60/jIFmtE9HQtm6k/HQjBnsqCjfoiA2mjNjMkLK1h3GSTO6p6OlG3RPxUyztuRETjfZFsdPDJvmo6ibbEGxFMMaTkTFscePq6JtNGFQhX++J/81IZERzCTMTeUx3VU/Tuwb8vRfrp9IpOZaMNR/atdfKBedtmKo97bN/tzmIZYAx/i3MMKaNMo0H8bmrmZkJuS6376MZwbMe+TTS2YYp4xiJxnzbDlHl5nGnFs93Jq++0Nf87pXb8fSh+r933Z47U/Dh/qw4T2G/lxcZ5utz80eY89UNmzapJyEWJ5VNDacsmMuMMzTfGi6jSkFjHs1y5ixOerWD7IvjFqnTJkOWfO02iipPmzCMqop7TY0qg+b6VAx34o4HpqzYj4Yyrci7znc+Qz8uAdt9A2nm+QV90Q/00IZAVDa7owYaMYKThh0gx04Epq1hRcM5dszHw/NmZYfEj3Eyrznlx0YZduYjI1mTGOHR9kWpSOkGZP4QVK2TSROmjFkJlS6UTuMlliWsAKmG6yaiplmDcsJm7Jto5HTjDVzwVO2fkb8NGPSDSFUtpVhFDVj0HQgla0bx1IzNvDCqZtsiSMqhi3zQdVNtmQ/k/ufRyK6cl57qV2e3Eh+vSpjAx/reBQi+caDUry74G4n5Nhyw+EpfEs4+3JTFt2yQXfesqyjVahpdx2ykmEb57iVpG23HLwybxv/CBZq2O2HseRadcsrvf+Alnkr549qoVblH9rCtSJ/tLr1IJd5i+aPdKG25B/uwrXiFt+5/cCXeas4R79Qe245BIZvSb7n3H4wzLxVdOtrjl33HBaTb9ktnvWIA2T4lrKPkkmZefOhMvM2Mo+XoZbdeNDMvD28I2eoObcdPsOzxl09dwwNsunWA2kYluUcTROZds8hNQzbOMfVRDbdcnBNhi23DBN3HWYzb9vssTbUnuwDbuZtyDzqhlp056E30L6Z1aYfZyXzpcmLM/YHhvvw2MLntuSxbom5N5dv1NxO3UyrWO+I+XYy38trfXROy5gpqIp3r/XROe0NU4Z/Y8l3ZI4x+JZlVN/V5zZ3WjLzXmbfyCMp2E0lzUmjMyqap23gFDTnWvGapEv55czZuhmMBllxA6K5v7p62qas4upsu2Bt9YxBrNLqXEtgZfW0IazC6nw74E66OUtY2+nybfFrvOdMmCrxztec9R4e/AaYlAyaciMku6nyfNqWDETG0u7WTbiwARjgGvDKGm6ofZ9Wz8Zf91W+TxvBLnzPtmduncIue8/VHFa9T2ueLnrP1zxV8z5nSU7J+y2WTfLImwveb7GEmT+6odydYc1MtJvKFM5GwZMNM1Yqs1HhvKIbosXp285+esEMxX50casHrypmFN221Ji457vfccrQ218w38rZuWzOyOwJLt/G2bF+zsbsCYBl40wv8ca/2b5Br+X3iLprd/6hSFzh764N2U8luqPkuvPldWtc94/dv/Vv05wRG3eR0HevZwkPt9JMwfmWnVs9wpoZ/6GEYdaJYAO+J/Xdh7pbN9vbVJg0omvOfjj4FtlPyGbJZx/L9aoHzzNE8G3zincPt47Q1I7sERna4D97d1Toh37beymb8M/8p2vSAy+H/tRtpkS9Cy7DN0MMm9X3m017DLM804r96x9kQXM49PFh/Qn17uIH6X4NRuMZ3dMDb7bubRANzejeTgY+2bqPzbrvNvXhG1e/3+AuG/oD+jRDoNVdcpeeQz3Xmc5X3K2F40TBdQ/SyHEgcPU92u1KfXK4e3e55B4980PCI8aBz2HNF1IzU+TF1NOvT9MPzV1xj5aueanNHDapyLvoHl37/tjO6vIuukfX8bXe9F8nNV0uuUtPVIkBVc2WXvC0Dc0/BsbAEVx2t779od3Njfnkwrt18maa6NK79Q7NYWhZar0r79b69bUdph0ouCxTH4pA3UeNwqgf/pqxht5u+68f+u7Yb5s/9C8Mse9sk/XYZGubTN9caHfKjvhTulMmnIbXtbv6Adqjc9AmdM+egZanOVptTameXWVl6bYza3zE/oQBtsX80fp5Vrw13fBvdbfZNmB9hYwwDV6vDR5ggyEATd6jGJs8+Fls+3W9ZbnC5coHaD1zSn73Ozd4ZA8cXhteH3AX3qYTjasuFRBpdz/wR1N0jjiUxjpCPDJwstrnx3gRFKocL5tgwVx97ZymR+iwdSkb3rs5V6RsZrd7crV3aEAOVbKGYaAHeeBfoPPbv2bk7XCC6irl3eWKaaNHa5Jaol2NUJN31R3aPvfd8EO9a7dxcOdpM1d9dlfdqe0ntCwguiY/sMLStG27hpy9AHSZq2Y4WEpb5GXXj1iC8JH8eE+uOCmPG7xQQ3mEMa2W8wCZOrf1N3+fa1rn5cL7dYYZ8LTK6cR3jsaQOKY1ToPFGY2+f/60+YJ9k/5wj19CWQyfjIzLqLjFOjmVtlytpBdghTM9gK0rVVGb0MqtpOXqn6ygxTZkVc6y7YAVswkDWJWyXM2wQhYrZlXG8vXCitiUZlYlLF+3XwGbUjlV+crXxHquD3qiUxWuKdU5la1cS2hFK9Y9V8nK1QYqWLFCRuUqV2c4g2J107MnV1OyQhUrZVemsvWHnyrFSqc/VsrUFMYIWNN0fMDXNFVxmtKcU2maY0lcYZq2YL6yNEcz/MRwUjfrQ8Np7UF0Fn6znkRo4Me7orSUPE6khgxN5WnAGYFp3ZzjAfO045MBpyzgHQqYY0U6nkuawY/pMuxIn12XNoR/bF2OJeTEurT6mcPq8nXCc+rm9LOOqMuzZTIqmTAnKzLJsCiKTpI2zEYoGVpJxJDUORM1ZGjEJ7ulNfMOdcu1AMxukxYwZrhMC3Lu/657j2c4NxeCY9tSF/BnuuiMtEmR88ejJU2e0R8d98CzY/agh1x70uehTRvEPwrtZoviGJNn0XycmWlR4uyzaXOYx57dZ0vmS8s87CzXNnKe17QtM1Vet+nOfB7MA7xybaEbnJjWsI+luteezKeUfRjVrfbhc6h4xvGOoMq1DK71Ju1hrfcyrUifpTRtC/8YpWyLorq9GUtmK/hutiDTmflHJuVahCKmlBWciGlSczpqQgvZx7GbhDh2UuAmlpJSOodTMjROr8Dvgip8K6a5SsqSPLTCtwZliFM2cJLEfM1o1ZefKubrGyZ6Lj9hy9dHcrYpfTNp2xx9k5nbtP6s5G2ePakV7u0p3En9crEqxVJel2FgRyx35yuVZR+trRu+iLr+KU/ShUD87tB/PTYHM9l/6Lennf9t8YmL8rSdjkO/uyzMTdbjP5vu9OPQXM+RnLgmS1cgYRQa6Zq4JmPOsu1MmyNb8LuxUXtuhP1r6g6y/HzWGubXH2+zxxzL9oe2+5JnjjkDeju2useaSa8w12OrzC+3e5tpPVr0/bbZ+TXF05dla4QdiP6Q4cnRF8GRKMaHwKlpyWivPzbmoj+SQxwTes3lu6Y7zZ3cyNYfjKAJpedr7tMUbb/FymZ33XL1tWtTt+F/WB3qM5dNhtBcfdv6k7eBHitz19ypqfk8/EQ/f4z1NZ+H49wHj5la6SmjWOOj/PJgFhm8m7SX3nGXdFT5fvep2Wza7uX7S03bxQLwW9aIdW02ps7+o/nmfY8P/Jgl/Ufq8u4PeVLiUwKuX1wJg7f5S+/WTDL38/pRg3utiPL1s2bgFg+zw60n+HYELe61A+fDZ42ZaPZYizIteYgFYS581gJwOT9KsWtLu/gwY5np5beoGteaVoyJwtt13rlr6IZveGLMJ/X/4Qk9+Mnc8EQoM5h9NrDBvZ58/drCrH5y6d2aaX553gDYIsuOP/QvbWcSGd7RBd7fsmS5/Si/TW/nvf50p2RTNPPbffsfTbw5CF30AG3//jXerxNd8QA9P9W77Ywic8lNmmwQ+9swrgS/3Sv7T5N7SlMX3qY1LriNf3rMHk4iL2sXp2fm5B6Sn8H2SqrXv/JerQx1D9HTRdvEgKb5/WEsXcftCTgd0XW+6AZd854YZGPwz4/2SC+FcJNXTq1GOZ551X+Ld05mMnhqH6ZvWx+H35jk42/a7nPP0h01eYQdu37TxPMAUu+ufITWmX56VZrZV6d0BudRTumcPIJyVme6355hN96IHf6ckUutD0NzbGvUayOJ7/yr5+4vMDed2QyJDc+KS6tPl1aPsOZSQ8+ywr/6Edq70+4T8wFcLn2E3n371g9/Mflclm57+XC+/CH6+33i4Cmg/HLtIzR7RzHMq2af28DTPbAf+COf9dD326Hd8/Rerr1Rc2ok+32ym11+yRi/0oF1KO0dYxNbbGFK66Gph2bzcx2vtahW/8o7tU7FWERtTng1qzcdWRGt/KBqVue8skdomYmiiMbMAGpWO4xiiE5WADOr6bTfMP01uDJf62yfn15z48syViFJbM7QcJ3RzbaV3dia+QjC2+I8j6H+U992wx8//dKs0VsJfs8aD087NDzE8t5drp27ydDWiR2DPL3nKx+i1R60xlPrLn2I3mTsAFWzgwem9kMdH0EKFY8XPkTnW709oeEKaHWX3qo31WsuZPen5ng0B6P3X8B5iPAqfg9q/hHHR2mR78bLp+8U282f+SbUM2bBOe2pp/1DM6xf/zx+Cdm2+SF+1uCam/KjP6QP0br+dJPk6Qnn3nmGITBjoZiaRcKMS72/gONrihqcShlbsqv3biSyFSD1peltdqWe+f+glbz5Y848ttv13c8wRLpIehdeNX0T1qj03NX8/EvfduDLA1dt4VW3a2t2dRvnzK563O+3a/jcHo7Dz1sDyCb0hFfdq23mVQUX3a4LjI5XHYzBcEq2ie9nH1pw0Z26Zh6Zf80dmvB5rZ4a3jGtRAft+5eNGX81k/91OCJ/zxrDf9p88fKkwXk8/t9zZV6i9lCk9+ebJZqDEr4PQlL4a6787+npqd7fsmXhE5WjX+6TG52SB37OiMmCLzBMSJv5EkPCzNRM2xyPdXjmVVLv9dpHaDZTe3/kaTZz+XjtIzQHlGNK7STlyNNp64DMPcRnByXV2+If02b+BKFpS5An+6d9k8AR/8z35L4LRgOO3HfmMwTnNtNnumDTeZbg4134VvFOepmzELwNF+zi89jyxz/XEnydDP6aK9/Mk6Gt41/y5Hg7HcmEGv+UJdkYY+p/m27z71+HPzfHvdm/fpGOf+b79y9e+dGErHfjddhLEib++rfnp7bbNP94+u5fT2/Nwaxln757ku/V+9XT89Pnttlujk/ffXR5VbM4GGe4Tb8+2X/+7XzZX22Zrbl4vPr/LJ6ePy6el/J9Jf/2t+ePrq39u/2DE3H9i20nnp4/iudl9X6xWAYNRdRQBA3l0/NHiRrKqKEMGqqn548KNVRRQxU01E/PHzVqqKOGOmi4fHr+uEQNl1HDZdCweHr+WKCGRdSwCBqWT88fS/A2yqhdGbSrnp4/Vs+6eF8tddCwihpWQcPV0/PHFWq4ihquwvdv3EEsUFMR+44gzmO9R8DGwH9CBxLGLYSEjWMfEqETCeMaQsHGsR+J0JGEcQ+hwfsRsSuJ0JeE8RCxRG1jbxKhOwnjJKJ41vp9JcqwcexRInQpYTxFlPCOY7cSoV8J4y2iQlbHniVC1xLGYcQKtY2dS4TeJY2/SOhdMvYuGXqXNP4ioXfJ2LskGZ7s+AS9S4IRKvQuafxFQu+SsXfJ0LukcRiJvEvG3iVD75LGYSTyLhl7lwy9Sxp/kQU0OvYuGXqXNP4iS+SaMvYuGXqXNA4j4bglY/eSoXtJ4zFy9axW7yVRHLuXDN1LGYdRaNpTsXep0LuU8RcFpz4Ve5cKvUsZf1Fw+lOxdykyAdoZEE+BYA4MvUsZh1FwGlSxe6nQvdQyNb+o2L1U6F6qSE0xKvYuFXqXKpOTjIq9S4XeparkJKNi71Khd6lVcpJRsXup0L30IjnJ6Ni/dOhfWiQHex37lw79S8vkYK9j/9Khf2mVHHR17F+aBFk6OehqEGeF/qWXyUFXxw6mQwfTRXLQ1bGH6dDDdJkc/HTsYTr0MF0lBz8de5gOPUyvkoOfjj1Mhx62XKQGv2XsYMvQwZZ2AMNxbexgy9DBlnYAg7HtMnawZehgSzuAlbBx7GDL0MGWdgCrYOPYwZYkkjcuo1awMQjmQwdbGpfRC9g4drBl6GBL4zJaPKvl+3Khwsaxgy1DB1sal9ESzFPL2L+WoX8tjcdoOFssY/9ahv5VGJfR+lmv3mu6hIkdrAgdrDAuo6GDFbGDFaGDFcZldPGsive6CrtFETtYETpYYVxGQwcrYgcrQgcr7DoROlgRO1gROlhhXEZDBytiByvIctG4zBI6WAFWjKGDFcZllgL4SBH7VxH6V2FcZon8q4j9qwj9qzAes4T+VcT+VYT+VRqPWcJopIz9qwz9qxSpXlHG7lWG7lUah1ku0ZBdxu5Vhu5VGodZwqm5jN2rDN2rNA6zhL5Zxu5Vhu5VLpOjSBm7Vxm6V2ndC840ZexeJclIWPdaPevFe7VahY1BViL0r9K4TLF41uJ9UZDGsYOVoYOVxmUKAZ927GBl6GCVcZkCRhRV7GBV6GCV8ZkCRhRV7GFV6GGV8ZkCDp1V7GFV6GGV8ZliCTXHHlaFHlYZnylgLFPFHlaFHlYZnynKZ63eCxn2qir2sCr0sMomvCr0nqvYw6rQw6oyOeJXsYdVJPFlPQwuLyqQ+wo9rEouIavYwarQwVbGZUro2qvYwVahg62My5TQtVexg61CB1sZlyklsHoV+9cq9K+V8ZgSevYq9q9V6F8r4zEl9OxV7F+r0L9WxmPKJWwc+9cq9K9VkRz+VrF/rUL/WpXJ4W8V+9cq9K9VlRz+VrF/rUhyNT2CrUB+lSZY00PY+FvY3PvbuX16FBt/o+1JmnUhk2PR+BttTzKtC5UcjsbfaHuSbF3o5KAy/kbbk4TrYpkcV8bfaHuSdF0UyaFl/I22J3nXRZkaXcafaHOSeV1UyQFm/I22J9nXxSo5xoy/0fbE/WzKHg4zAiX4owy/SI40Aub4iffZvH0JF5oCpflpnt+m7vGQIVCmn6b6bfq+LNF4JVC2n6b7bQq/rHB74H005W+z+CXMnqOcP0362zw+HqsFSvvTvL9IR24Cpf5p7t/m86sF1g+8j+T/hU3pVwK2BwRAEAQgbFa/krg9cD9CAYRN7ONwSAAOIAgIEDa3nxi8AAoQhAUIm9+vFHr9gAYIggOEnBj7ABEQBAkIm+WvsPsAKCAIFRA20Y8HD4AFBOECwqb6KxgsCEAGBEEDwqb7Kzx4ADogCB4QNuWfGDwAIRAEEQib9U8MHgASCEIJhE38JwYPwAkEAQXC5v7x4AFIgSCoQKh0oCcALBCEFghLABKDBwAGghADYSlAYvAA0EAQaiAsCEgMHoAbCAIOhGUBicEDoANB2IGwOCAxeAB6IAg+EJYIJAYPABAEIQjCQgE8eACEIAhDEDqdghOAIgiCEYQlA4nBA4AEQUiCsHAADx4AJQjCEoTFA4nBA9AEQXCCsISggokaAYCCIERB6FQRhwBEQRCkIHSylEMApiAIVBA6WdAhAFUQBCuI5URVByALgqAFsZwo7ABwQRC6IJYTtR2ALwgCGMRyorwDIAZBGINYpis8AGQQhDKI5USRB6ryIJ63nKjzAKRBENQglhOlHgA2CEIbxDJd7QF4gyDAQSzTBR+AOAiCHESRrvkQADoIQh1EkS77EIA7CAIeRJGu/BAAPQjCHkSRLv4QgD4Igh9Ekaz/EIA/CAIgRJEsARGAQAiCIESRrgIRAEIIQiFEkS4EEQBECEIiRJGuBREARghCI0SRzOUJgCME4RGiTFaECAAkBCESwlKGCrIjAaCEIFRCjFgCQRwBsIQgXEJY1IBxnQBkQhA0ISxtqCC9EgBOCEInhAUOKwiwBOATggAKYZnDCpeTAkQhCKMQFjusYFmNAJRCEEwhLHlIxPsAVAhCKoSFDzjFKACrEARWCMsfcJZRAFwhCK8QI7DAATcgFoIgCzEyC5wrAtBCEGohRmyBh07ALQQBF2IkF3joBOhCEHYhRniB/R/QC0HwhRj5BU51AoAhCMEQFkokUp2AYQgCMcRIMfCCAWAMQTiGsGwisWAAKEMQliEsnlgp+PwAzRAEZwhLKBIrBgA0BCEawlKKRKoVQA1BqIawoAIP/gBrCMI1xAg2cPcBZEMQtCFGtoG7D4AbgtANYYEFXvAAvCEI3xAWWSRSrYBwCII4hKUWKwjjBYAcglAOYcFFYvQCnEMQ0CEtuFjBehEJQIckoENacIFHbwlAhySgQ1pwge2XAHRIAjqkBRfY+yUAHZKADrlIu58EoEMS0CEtuFjBbJcEoEMS0CEtuFjBBa8EoEMS0CEtuVjB4EcC0iEJ6ZCWXKxWaPSRgHRIQjqkJRdiAcMPCVCHJKhDnvcywPhDAtghCeyQ436GBd7WAmiHJLRDWnqRcGFAOyShHVJMuCCgHZLQDjnubFjAah4JcIckuEOO2xsWGk1hEvAOSXiHHPc4LPSzWrwvV8WzWCyfVfm+jGQBhyTwQ45bHnxZhXmysqJPFjgnASFy3AHhyyqflXqvC2oXcFQCReS4I8KXVeF7BD5LN0jIBZW1grLQdgm6X0KOWRvcgdCWiWjPhE3bCJhxlXDbBPFfiz+uj/bZyEJvDO2ioNsopD7LksX7hVT2KcvVe6VKK1aW7zXd1wEcnG6wsIRECNzF0SYLustCjg5e4GcEvJrutLCQBGeHJNprQTdbyLEeHvdxtN+CbriwlEQIGChItOmCYBVpMYkQeKYHXEUSriLV6Kh4qgNgRRKwIi0oSWxXAWBFErAiVeSn5bOS7xcLKgvt9iF+aqnJVcCzEDaA15LeF/BOQlykGodfNwSk7QKOSuiLtDQlsGuF7QI+S0iMHDdweLLkAssC/kuojBz3c0g8SwMsIwmWkec9HbgLAy4jCZeR474OiXsQADOSgBlpSQsugpKAzEhCZqSeCBMAmZGEzEhLWoTEPRigGUnQjLSsRUjcgwGckQTOSAtbhMQ9GNAZSeiMtLRFSMRXJKAzktAZaXmLkDhaBYBGEkAj9eiGMFkmAaKRBNFIy1yEwrMtgDSSQBppoQuuYZYA0kgCaeQIafAWNgkojSSURo6URkkY7AFMIwmmkWdMgzsS4DSScBppwQuuxJYA1EgCauQIavB2OAlQjSSoRo6oBu+ikYDVSMJq5Mhq8E4aCWCNJLBGjrAG76aRANdIgmvkiGvwjhoJgI0kwEYW4zY33BMAsZGE2EhLYATeWSMBspEE2chiYjwEyEYSZCMtgkms/AGykQTZyGLEhbgnAWgjCbSRRbpORwJqIwm1kZbCJFIHgNpIQm2kpTBC4ykRYBtJsI0s0plzCbCNJNhGFunMuQTcRhJuI8t05lwCcCMJuJFlOnMuAbiRBNzIMp05l4DcSEJuZJnOnEtAbiQhN7JMZ84lIDeSkBtZpjPnEpAbSciNLNOZcwnIjSTkRpbpzLkE5EYSciPLdOZcAnIjCbmRZTpzLgG5kYTcyCqdOZeA3EhCbmSVzpxLQG4kITeySmfOJSA3kpAbWSUz5xKAG0nAjawmUpcA3EgCbmSVzpxLAG4kATeySmbOJeA2knAbWaUz5xJwG0m4jbQcRuBNlhKAG0nAjbQgJjF8AnAjCbiR4y4UWGgoAbiRBNzIcSMKLDSUANxIAm7kCG7w+wfgRhJwIy2JwZV+EpAbSciNtCQGV/pJQG4kITfSkhhc6ScBuZGE3EiLYhLDD0A3kqAbaVFMYvgB6EYSdCMtikkMHwDdSIJupEUxuFRPAnQjCbpRi+QmAQXIjSLkRlkSg0v1FCA3ipAbZUmM0PhUC4BuFEE3yqIYfLAFIDeKkBtlSQw+2wKAG0XAjVos08dbAHCjCLhRiyJ9wgUAN4qAG7Uo04dcAHCjCLhRiypZbacAuFEE3KgR3MBVnALcRhFuo0ZuA+vdFMA2imAbZSkMrjhTgNooQm2UpTC44kwBaqMItVGWwuCKMwWojSLURlkIgyvOFIA2ikAbZRkMrvlSgNkowmyU5S44m6oAp1GE0yjLWnDNlwJsRhE2oyxfgcGLAjhGERyjRhyDDypQgMEowmCUTG8TUIC7KMJdlMUoePGiAHZRBLsomZ59FaAuilAXNW5SgdGXAqRFEdKiLCPBwa8CTEURpqImdqkogFQUQSpqPLkKvn8AVBQBKmrcpJJ4fMD9CFBRlo/g4FUBnqIIT1EWj+DJE9AURc+wGmmKhhkkhc6xogdZjTQFH5eh0FlW9DArNU6/MIOk0HlW0YFWNg+Ij81Q8Ewr4oEjQ8FHZyh0rhU92GoEJ0t8nBc63IqebqWSKxCFzreiB1yNgGSJTwRDZ1zRQ65GKrJEmz0UOuaKnnM1QhF8FIdCR10RKKJGKLLEoyiAIopAETUBRRSAIopAETWeebXE/QBQEUWoiBqpCD6aQwEqoggVUSMVWaDaawWgiCJQRI1QZIkK7xVgIoowETUykSXuRgCKKAJF1AhFCtyNABRRBIooyzhwAbICTEQRJqJGJlLgbgiYiCJMRI0bVwrcjwAUUQSKqBGKFPh0PQBFFIEiaoQi+CUCJqIIE1EjEylwRwRMRBEmosa9KwXuiACKKAJF1AhFCtyRABRRBIqo8/4V3JEAFFEEiqgRihR4QgFQRBEookYoUuCeAKCIIlBEjVCkxD0BQBFFoIgaoUiJSvkVYCKKMBE1MpESOzJgIoowEVXICQOAHxImoizjECXuCACKKAJF1AhFSuzIAIooAkWUhRyixI4MqIgiVERZyiHw4QEKYBFFsIgasUiJHRlgEUWwiLKYQ5TYkQEXUYSLqGL0Q+zIAIwoAkaUBR2iwo4MyIgiZERZ0iEqPCQDNKIIGlEWdYgKezJgI4qwEWVZh6iwJwI4oggcUeORWxCUKwBHFIEjysIOgdNjCtARReiIKos0KFcAjyiCR9R4+hbOkAA8oggeUeW4ow93JcBHFOEjyvIOgbfSKwBIFAEkqkoXKygASBQBJKoSE+8AEBJFCImqJooVFEAkiiASVY1uWF6KCKtrPWG1Ov+TiAXOSdCJsihE4E1TCrATRdiJsiwk4RuAnSjCTpSFIbjsWgF4ogg8URaGCLxrSwF6ogg9USM9wdu2FKAnitATZWkIPMUZsBNF2ImyLESs4MoJsBNF2ImyLETgfRMKwBNF4ImyMETgjQ8K0BNF6ImyNETgyn8F8Iki+EStRh9ExVQK4BNF8ImyOETg0n8F+Iki/ERZHiJWeJoDAEURgKIsEJG49l8BgqIIQVGWiEhc+68AQlEEoSiLRCSu/VeAoSjCUPQiPUJqAFE0gSh6MTFCakBRNKEoejExQmpAUTShKHqRPUJqQFc0oSt6kS7y0gCvaIJXtMUlEm9q0ICvaMJXtOUlcoG/HQIAiyaARY+ABSZnNAAsmgAWvRidE44QGhAWTQiLXozOCUcIDRCLJohFi3FTPoyENWAsmjAWfWYscIjQALJoAln0+LkPOEZpAFk0gSx6hCwLOMRoQFk0oSx6pCx4d4QGmEUTzKJHzCLgEKMBZ9GEs+iRs+C9BxqAFk1Aix43xCR6OCAtmpAWPZIWvHdAA9aiCWvRFp1IvHdAA9aiCWvR4xdB8N4BDWCLJrBFj5tc4HSvAWzRBLbo8cMgeO+BBrRFE9qix4+DCNyVAG7RBLfo8QMhAnclwFs04S16/EqIwF0BABdNgIsegYvEXQEgF02Qix4/F4Jr+DVgLpowFz1+MgTX8GsAXTSBLnrcxJLoCgC7aIJdtKUoEm8C0AC7aIJdtKUoEhfha4BdNMEuesQusAReA+qiCXXRasTOuCsB6qIJddEWokhcxK8BddGEumg1fu8BdwVAXTShLlqNjoi7AuAumnAXrUZHxF0BcBdNuIu2HEXiKn4NwIsm4EVbjiJxFb4G4EXTj4yM4AVvKNPoOyP0QyMWpEj8NRqNvjVCPzZiQQo8Pl6jr43Qz41YjIIXoBp9cCT64shY/oB7IvzoCHHD8bMjeBeARh8eoV8eOX96BPck9PER+vWR8fMjeBeARh8goV8gGT9BgncBaPQREvoVkvEzJHgXgEYfIiHkRY+fIsG7ADQgL5qQF21BisS7ADQgL5qQF21JisRV+BqgF03Qi7YkReIqeA3Qi/ub/SzjW3MYms2P4+cZP358qrfb/uu67479ttn2L0/P/3r6+fzxRrP3zKo033E0u8u++9evv14/1/jdv371vthofjNa667d1UPjy1mVnphFwRNzGl7X5y+6+hYpT5ResER9qtdf3Mdnr6I8m8qxoTnbjivv5dCfuk1g2kJ7ponl2Njs9T7/o3T/qNw/Vud/SOZ99IdNcwh0ioWnUwqemENNLBfClyKdVcr9QzPlNvWX/jT4oqur4PNdq6V72O4PC5UlfnPo95v+a/AuV1c152eqCqfG/WHBvAvrKPvxa7PeM9LFVYepTOHIWteHoTm2dWCrSSBeJVUVT9JrfRjW/bYPX78ufaN4r9+KCu9N+N1cLvlizKel0fvw3VIszi/A9bKl+8MiU9Ox2dqvwYa2e5rEWXDlNLk/MMec9Wu73RyacJhYer7lOrV2gjXzmZuv51opnmTtmb48P5zyrGHl3FecO6FQ56dmzvIajVgIN464HqvdP4rLP9zFlesGzLHGfrF713Qn89Hydv0leOZLvy+MSucF9lvz9tpwEDaJzKuoFbMzXER9OvRfj+GQ6Hme87OKN3FFYrft0fS5064jQ0Hl97rc2z8Lj0YY7Vm+ZPrrRWgbDOja68/LsweUTE+NxpilP8Zo3lhtpYQPTXn9SPLv77Qj/uK5nkn+8cTsdn33M+1/JjNxlcWc5Nbu6/Tk7gr/7nhhxPrQ1EOz+bkewjv0p4cV8w5HUe4r77t+U28D+7xB8maBscd6027BHMtDuW/nD6ZfZS69IKpkDlVW5t/Pn4MPnqX3Um4QFd2w3xVKpr+cjkO/u9zw2jzMpju1Q7MLx5SVP6Ywe5mVbUSFzrj0x1TFezEXC8NQRfm+eB5PNTPODG56tBXe+nLhm8t7rNEDDSX6ZrtowMCKm0SPpjfbxl4W6NG+Hl5XvYgPh+yy9OMY7SZ9N8WveF3BCE+62HLpD+RcgUMdjk6enVrwhezb9Rcw6ZWVf9tuaaBc+LLietrQ/PxL33bNJhzgV/4Az+wIzee2a3bNUH+qjw1ehfruxRR6XB/aPR2f/DdSunu+hMeldvGL63gL5vNuj/WnbUNWp/786xalprKXJbH/2m37evO13bw0YR/wxlgXh6pzrGlOOz/H38yuF6iBCwvv0bvQWLvIeKmcOl4cuTm02+3weuhPL69uzH9t2pfX4A7Lle+iLi5nDtFIRdwJvGFk5bq+SxcI5ojYbNrwxVR+lFpdnhXPbiPN+hCaFjxz+bYF0uJHUPgPmTdZG6l0PexJcQ9yybexP8RpIuH1m8sAteSNJc2uboM4zKAob0TiRcHN7lOz2bTdS9MN7fDNrIQDAws/YFzyhohmtx++rftuaLrhEtIG79jraEvezDaa93M4r5k6j6t1bnlrit7O/sgb4UfZRLTy01bLHEHmGX5ut0Nz+NJ8C4Onwh/cs4WG4aLXA8vzwLFy3bp0yb+C+XQPB+Ls/lLoml2UZ0WaOcNbudAFzLlbXq6VOXC8ESmmlMKLGJgP1Eh5rbvNtiHLSOlPY8zZq/nHPgwLpG8RrxOO3hJ6ijcwuIcu3ADhsr6ydHMS7zWPeuDU50eIZ6ku4SNc/kgxQ7LP7eE4/LztX9pwwSSFPz7xZu1RVrS69tmBodosUf36RFKTfr6fLaUbPte7dvstHC58CrHkizq2/wwHXFX5gnjv9bU+vrXHU71t/9nEk8zKz5eWvMkljlSWXqRSnh1i5XKhLogUKzfwLC5JQpfoL13oyVzhvbabTdPt60O9awbSUwvvllzKUjj0IS4UwE0EsrwsdVzQKHlhwGv78ro1j6LvXvu3sI+u/DfFDEIjIcJf81zpDcEjz0+SGRO2676jvUX4c4XZLzc+giXvEdB50c97XGJwNwOZevHz3Ov+cR1OeM7cdp/7cJJf3RFrtl07tPU2lcz00wMFb7A+S8SOWfl9zSE44XiRObElQ8Xx7wkthTeQuqne9Tzh3oAsL77O1To0h3o9tG84MvcmR94gggRGwXnlz3RsF7kIRpk5TyL3lUbyrlg3pnWFH3Uusx/uRQVhjkCRn1RhLjWAooimAU0+dGEuQKY0OZoGNPkZf2aqHmmCqfLKD2P0zcJxqgDciz+uMhPzs+qAGn8AZMYWQI2/CI27oZ8rY+KcpI5Yup/mYCa3gfQwfo0fVOkne5mxU1INEO+vhYubn1Ek2Gf2orzZjdx/j80wtN3LMfmcVn4mg4lFGfrAA/OXu8XNA6X7r4txa/wU/cUbM5kJlB2aYzMkOsnKXxQzCwyAimP91qTmFj9dZ/YC36Hi4s79YRcrWvjFPcz1I1J02u3qQ/vPibnFL3JQTJQHNA3tsG3AffjxKDMD0B77fViI4VOt4pJFYQbIR/O0NygSMac6e9EyswdYeU0Xpdn9XNxlxbVw/6guCy2eml++hqkUn+trpqnb+lMTsmB/maiYM/C2PpLscnlHxG+koeSD9yY0s8TKiopzD36KmlkXta2/keI14VfoSGZP3zafh2Nc6CL89bBiFhpu6Qpf+Mk0r36QaVrbNXHWwByI7d0l87H39aZJpQ39IVjzBpNtv6634YpY+qtu7RJszHIb61zHoR5IOsnnDIq5mtzV+0tIa0qhavtyA7nSTwZqZuJi1xyP9UvouP7SXTOLy6ZZpfDJsip4jheL/NoOr/W+/dKEOTWf36qCF6dg4WSsEz52U8wcOZZ8rHfhAOhnABSzyMSJ9jwglOnXXDCDcyBzvz0ZxwWvsfIjW+a0d1EAa+/MSRWeSN7QHYuM6gz8dIEq894cKBxb+POz4I10V3HnAWp4bUjCbeW/sCqvW8Dci/TDNbW6UWLSAaRfXq6ZBa1X8UO979tu6D/90qwJn1n6cvO68AVNHpvj0QSA/ZcwaJN+fa4WvMnASf/cDOvXwxhdWsmfiWw/XhB5lmNGIH2CrEWe76Zfnc+QNbMA9yL10L+1pOzfB5/M6IaKi6N0H/1Ilfc0cWDtL1903rOM+6vyYSQz/eWknUiNsPRZmmbmXq2wfkC36s/azACFSAP7Dfynx8xk7PoNifV9sGQOZOFIodG0X+1duhXM0hUnOdBkjms5LwKYapqX2iweQ9znv2Vmqrnrh+ZT34cl6n6u7LIdgOfUTh6oBfFzZJciJ6aVp90nwpX8JI9ilrr1Xb3fh4OWP5OJkjcx9N2n5nN/aMwyNli/ekOqQ3PCbTQQlSNdzPxg363rbk1c0q/4l0xcDTYhaO/hFZe9Ea4CTPNetZHbH0Nv9/qy2z2hmXsc+m4sIA7keU+UGcb23SUcMOuscIHgTyXMxTuRZ2Li/jSYOtFwEeMXsWvmErXvqIl+JCykezNu949ccV1nytQqqDp07ukqfeWKNz0YDPvWvtRDY1BS0A0853KwTrgBTjIBfd8dTiH08t6dS5mIxUW8I5DsLhx1Xu/9ua4qFk5R5d4AM31Nkrnr17oLF6s+JnLPRrjdg+JSBFq5t3LZuLTi3eC+fmlo7YX2HiFzUrzw2bdos4H0q4k0E9/v27d+sOWM4WDup1BXvPHiHDEGD9XfMemKTRfuZbqaA3GpeXX7uuSlnoy58kivNKWfY2IOA/t+H5VN+Kl4xcTq+/7YxkGBjw2YecH9od3VhzBZ4QcFkllWCyNbfz+zchW7mlm26iSGVQ7+TgvhdlrI6lKQk2et4z3hQs+nCWebnT+5GVQx0/MpkBVG2f5E72ZSp9DtoMx8asGYFPZlP3I8a3OjktsPqQTPDQ/11/DR+RsJuDKabmNIaFwAHsxk/nt3lUSCmfnzQFg4kft+fn4UbixxxV6KmUo5mHwxTGj7i1Dm8u6K1UKu4Q84zk6eeZSiBXKDLYdOLm/yPm6+pAqSpJ/g1sxx5Lj5ktj5I/1Et2Zu1/LF2Vx8VHbrj+Ja8Wbc4+YLKrQ2x854sngzgpGVLC2Wfm5AM5MNkcRo0Sz9xIhmbsgyYv1yY5C/8XMPmkk0jpsveKSXfh2qZi5UPGkgVeAPfcwMvycQU1vpV7lqbv/efDG5FnrDvvswNyiY3G23oTO4Pw5LN4lJbp95rTf91zAi8FEVM5N23J5IZt6P/Erm+/TrBs0+8+CB+VY58OWId+HKOJnJVF8TiID9NJNmbncwXK1dwyS4CnZe3iINuLc/nTHPyxiFwlydn3Rhjt2BsMQOcD8foRa8oCYUDO7c9yxmNvo4fAtXJv7BJS4OcmtBsbis2y7HsrgF3MoVZLsVpHQb7mThVsKX6m1XZq6YuywvNSmBM/rE15Uku+SdK/mQ6hLLMSc1Wv4SqPSXBC7b41auLv2jBG9MBYtCH48ysxJDfXhpBozs/DJDt64WCxfaucp5WfHcb2gOQxstkvwhlhk3DM0/Qnjr59fPZfHPbsl1GbCfnXzzD+YTjrCAH5pI5mRqJ7zAC3wh57fvtuG6BbZYXEZg95eVu7HqElNfugHzwfX9dmj3oc/44JuZKqF7An0ZcuGMqi5bw3gj82m/gQdU+NiNWWJ3OjYmb92u7bqNEgY/qcmcg4zAt7rdmi5nN+kE8rwhj7mF4nRsyNkU9b4NZHouzSy9MjJPh0PTDRRA+bEVs2j8dAw2pce1LX6UxeRjxiyT+my6zS9fh0Nz3JsVfRgf+BE181naMCPMBPhRBnPh+dYe20/bBhzA4596xSxZPQtLbNT0D/RhrjuDPES8pPXXN9eTm3ih79fXdiCDnJ+6YQ6VX9vN8OpL8SuvV5fSRDeJuCyWdLlG6QJN6VLJirkf0CTtTcY+Gmb9rcDCBbbC5aAk86wbK37qSLDSc9nVhWFdBu1L7OI2WTF3FVq9hhahhIs/JDJ3pVp51rlNBY3ZFBbWP/nplUt6ruD1QCPbbVkI99l7S0UXLgh3QptwQZe4pOlWFydwy47FJSXpThRjBgnGJrP3YNt25DQxn56zvXt4TWS//Ip2N0MLdzSccPuvJbPkxyiKHdk/E8CFjeKya4+zp/1vz0/7dt+Yksyn7z7+7ddf/y//I7Kn"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/_docs/master/embedding/sdk/api/snippets/IconName.md b/_docs/master/embedding/sdk/api/snippets/IconName.md index 4e74dc5cd6..0fa50d7986 100644 --- a/_docs/master/embedding/sdk/api/snippets/IconName.md +++ b/_docs/master/embedding/sdk/api/snippets/IconName.md @@ -121,6 +121,7 @@ type IconName = | "gear_settings_filled" | "gem" | "globe" + | "git_branch" | "grabber" | "grid" | "group" @@ -194,12 +195,14 @@ type IconName = | "sort_arrows" | "sum" | "sync" + | "synced_collection" | "quote" | "redo" | "return" | "reference" | "refresh" | "refresh_downstream" + | "repository" | "rocket" | "ruler" | "schema" diff --git a/_docs/master/embedding/sdk/api/snippets/MetabaseCollectionItem.md b/_docs/master/embedding/sdk/api/snippets/MetabaseCollectionItem.md index e772ab9eb5..bf0683e612 100644 --- a/_docs/master/embedding/sdk/api/snippets/MetabaseCollectionItem.md +++ b/_docs/master/embedding/sdk/api/snippets/MetabaseCollectionItem.md @@ -23,7 +23,13 @@ type MetabaseCollectionItem = { }; model: string; name: string; - type?: "instance-analytics" | "trash" | "model" | "question" | "metric" | null; + type?: | "instance-analytics" + | "trash" + | "remote-synced" + | "model" + | "question" + | "metric" + | null; }; ``` @@ -46,6 +52,6 @@ The CollectionItem entity | `last-edit-info.timestamp` | `string` | | `model` | `string` | | `name` | `string` | -| `type?` | `"instance-analytics"` \| `"trash"` \| `"model"` \| `"question"` \| `"metric"` \| `null` | +| `type?` | \| `"instance-analytics"` \| `"trash"` \| `"remote-synced"` \| `"model"` \| `"question"` \| `"metric"` \| `null` | diff --git a/_docs/master/embedding/sdk/api/snippets/MetabasePluginsConfig.md b/_docs/master/embedding/sdk/api/snippets/MetabasePluginsConfig.md index 2e91254eef..d90f0718ea 100644 --- a/_docs/master/embedding/sdk/api/snippets/MetabasePluginsConfig.md +++ b/_docs/master/embedding/sdk/api/snippets/MetabasePluginsConfig.md @@ -12,6 +12,8 @@ layout: new-docs ```ts type MetabasePluginsConfig = { dashboard?: MetabaseDashboardPluginsConfig; + getNoDataIllustration?: () => string | null | undefined; + getNoObjectIllustration?: () => string | null | undefined; mapQuestionClickActions?: MetabaseClickActionPluginsConfig; }; ``` @@ -20,9 +22,11 @@ type MetabasePluginsConfig = { -| Property | Type | -| :-------------------------------------------------------------- | :------------------------------------------------------------------------------ | -| `dashboard?` | [`MetabaseDashboardPluginsConfig`](./api/MetabaseDashboardPluginsConfig) | -| `mapQuestionClickActions?` | [`MetabaseClickActionPluginsConfig`](./api/MetabaseClickActionPluginsConfig) | +| Property | Type | Description | +| :-------------------------------------------------------------- | :------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------- | +| `dashboard?` | [`MetabaseDashboardPluginsConfig`](./api/MetabaseDashboardPluginsConfig) | - | +| `getNoDataIllustration?` | () => `string` \| `null` \| `undefined` | Provides a custom illustration to display when there is no data. | +| `getNoObjectIllustration?` | () => `string` \| `null` \| `undefined` | Provides a custom illustration to display when there is no object (e.g., no dashboards, no collections). | +| `mapQuestionClickActions?` | [`MetabaseClickActionPluginsConfig`](./api/MetabaseClickActionPluginsConfig) | - | diff --git a/_site/docs/master/api.html b/_site/docs/master/api.html index cb3a6bc221..54c59aeabd 100644 --- a/_site/docs/master/api.html +++ b/_site/docs/master/api.html @@ -16435,6 +16435,94 @@ "tags" : [ "/api/ee/dependencies" ] } }, + "/api/ee/dependencies/graph" : { + "get" : { + "summary" : "GET /api/ee/dependencies/graph", + "description" : "TODO: This endpoint is supposed to take an :id and :type of an entity (currently :table, :card, :snippet,\n or :transform) and return the entity with all its upstream and downstream dependencies that should be fetched\n recursively. :edges match our :model/Dependency format. Each node in :nodes has :id, :type, and :data, and :data\n depends on the node type. For :table, there should be :display_name. For :card, there should be :name\n and :type. For :snippet -> :name. For :transform -> :name.", + "parameters" : [ { + "in" : "query", + "name" : "id", + "required" : false, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + }, { + "in" : "query", + "name" : "type", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ "table", "card", "snippet", "transform" ] + } + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/dependencies" ] + } + }, + "/api/ee/dependencies/graph/dependents" : { + "get" : { + "summary" : "GET /api/ee/dependencies/graph/dependents", + "description" : "TODO: This endpoint is supposed to take an :id and :type of an entity (currently :table, :card, :snippet,\n or :transform) and return the entity with all its upstream and downstream dependencies that should be fetched\n recursively. :edges match our :model/Dependency format. Each node in :nodes has :id, :type, and :data, and :data\n depends on the node type. For :table, there should be :display_name. For :card, there should be :name\n and :type. For :snippet -> :name. For :transform -> :name.", + "parameters" : [ { + "in" : "query", + "name" : "id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + }, { + "in" : "query", + "name" : "type", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ "table", "card", "snippet", "transform" ] + } + }, { + "in" : "query", + "name" : "dependent_type", + "required" : true, + "schema" : { + "type" : "string", + "enum" : [ "table", "card", "snippet", "transform" ] + } + }, { + "in" : "query", + "name" : "dependent_card_type", + "required" : false, + "schema" : { + "type" : "string", + "enum" : [ "question", "model", "metric" ] + } + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/dependencies" ] + } + }, "/api/ee/document/" : { "get" : { "summary" : "GET /api/ee/document/", @@ -25937,7 +26025,7 @@ "type" : "array", "items" : { "type" : "string", - "enum" : [ "dashboard", "table", "dataset", "segment", "collection", "document", "database", "action", "indexed-entity", "metric", "card" ] + "enum" : [ "dashboard", "table", "dataset", "segment", "collection", "transform", "document", "database", "action", "indexed-entity", "metric", "card" ] } } }, { diff --git a/_site/docs/master/developers-guide/driver-changelog.html b/_site/docs/master/developers-guide/driver-changelog.html index d3e69e7e73..3ca1383d91 100644 --- a/_site/docs/master/developers-guide/driver-changelog.html +++ b/_site/docs/master/developers-guide/driver-changelog.html @@ -4940,6 +4940,13 @@

          Metabase 0.57.0

          you can pass to [[metabase.lib.core/order-by]] – for example a Lib :metadata/column or an [MBQL 5] metabase.driver-api.core/order-by-clause.

          +
        • +

          metabase.driver-api.core/nest-query no longer automatically calls metabase.driver-api.core/add-alias-info on its +results, but it also no longer expect its input to have this information. If you were using both of these tools in +your driver, make change the order in which the are applied so nest-query happens first, followed by +add-alias-info. Note that drivers deriving from :sql do not need to make any changes, since this is done by the +base :sql driver implementation.

          +
        • Metabase 0.56.3

          diff --git a/_site/docs/master/embedding/embedded-analytics-js.html b/_site/docs/master/embedding/embedded-analytics-js.html index cfefb7af14..a2a9974ec5 100644 --- a/_site/docs/master/embedding/embedded-analytics-js.html +++ b/_site/docs/master/embedding/embedded-analytics-js.html @@ -4935,6 +4935,7 @@

          Embedded analytics JS

        • A question (chart). You can embed both questions built with the query builder and questions built with SQL.
        • Full graphical query builder to enable people to build their own charts and explorations.
        • A browser to navigate collections and open dashboards or questions.
        • +
        • AI chat interface.
        • Quickstart

          @@ -4963,10 +4964,10 @@

          2. Create a new embed

        • @@ -5312,7 +5313,7 @@

          Dashboard

          Question

          -

          To render a question (chart).

          +

          To render a question (chart):

          <metabase-question question-id="1"></metabase-question>
           
          @@ -5335,15 +5336,12 @@

          Question

        • with-downloads (default is false) - show downloads
        • initial-sql-parameters - default value for SQL parameters, only applicable to native SQL questions, like { "productId": "42" }
        • is-save-enabled (default is false)
        • -
        • -

          target-collection - this is to enforce saving into a particular collection. Values: regular ID, entity ID, "personal”, "root”

          -
        • -
        • -

          Browser

          -
        • +
        • target-collection - this is to enforce saving into a particular collection. Values: regular ID, entity ID, "personal”, "root”
        • -

          To render a collection browser so people can navigate a collection and open dashboards or questions.

          +

          Browser

          + +

          To render a collection browser so people can navigate a collection and open dashboards or questions:

          <metabase-browser initial-collection="14" read-only="false"></metabase-browser>
           
          @@ -5360,6 +5358,29 @@

          Browser

        • read-only (default is true) – if true, people can interact with items (filter, summarize, drill-through) but cannot save. If false, they can create and edit items in the collection.
        • +

          Metabot

          + +

          To render the AI chat interface:

          + +
          <metabase-metabot></metabase-metabot>
          +
          + +

          Required parameters:

          + +

          None.

          + +

          Optional parameters:

          + + +

          Embedding Metabase in a different domain

          If you want to embed Metabase in another domain (say, if Metabase is hosted at metabase.yourcompany.com, but you want to embed Metabase at yourcompany.github.io), you can tell Metabase to set the session cookie’s SameSite value to “none”.

          diff --git a/_site/docs/master/embedding/sdk/ai-chat.html b/_site/docs/master/embedding/sdk/ai-chat.html index 1973ff40e8..4a52df359c 100644 --- a/_site/docs/master/embedding/sdk/ai-chat.html +++ b/_site/docs/master/embedding/sdk/ai-chat.html @@ -4939,6 +4939,45 @@

          Example

          } +

          Props

          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          PropertyTypeDescription
          className?stringA custom class name to be added to the root element.
          height?Height<string | number>A number or string specifying a CSS size value that specifies the height of the component
          layout?"auto" | "sidebar" | "stacked"Layout for the MetabotQuestion component. - auto (default): Metabot uses the stacked layout on mobile screens, and a sidebar layout on larger screens. - stacked: the question visualization stacks on top of the chat interface. - sidebar: the question visualization appears to the left of the chat interface, which is on a sidebar on the right.
          style?CSSPropertiesA custom style object to be added to the root element.
          width?Width<string | number>A number or string specifying a CSS size value that specifies the width of the component
          +

          API reference