From 3dc8e8a1e41b883305086eb51f851c73cca1d2f0 Mon Sep 17 00:00:00 2001 From: Franck Cornu Date: Tue, 16 Jan 2024 11:09:38 -0500 Subject: [PATCH] - Storybook doc fixes and updates --- packages/components/custom-elements.json | 9399 +++++++++-------- .../search-results/SearchResultsComponent.ts | 6 +- .../src/stories/assets/m365_logo.png | Bin 167578 -> 0 bytes .../components/src/stories/assets/pnp.png | Bin 0 -> 24745 bytes .../assets/ubisoft_stacked_logo_black.png | Bin 0 -> 7681 bytes .../components/search-filters/filters.mdx | 48 +- .../search-results/query.stories.ts | 1 + .../components/search-results/styling.mdx | 8 +- .../search-results/styling.stories.ts | 3 + .../src/stories/introduction/auth.stories.mdx | 6 +- .../introduction/introduction.stories.mdx | 70 +- .../layouts/results/tiles/results-tiles.html | 2 +- 12 files changed, 4799 insertions(+), 4744 deletions(-) delete mode 100644 packages/components/src/stories/assets/m365_logo.png create mode 100644 packages/components/src/stories/assets/pnp.png create mode 100644 packages/components/src/stories/assets/ubisoft_stacked_logo_black.png diff --git a/packages/components/custom-elements.json b/packages/components/custom-elements.json index 29ec503..4d86df0 100644 --- a/packages/components/custom-elements.json +++ b/packages/components/custom-elements.json @@ -91,6 +91,109 @@ } ] }, + { + "kind": "javascript-module", + "path": "src/exports/index.ts", + "declarations": [], + "exports": [ + { + "kind": "js", + "name": "SearchResultsComponent", + "declaration": { + "name": "SearchResultsComponent", + "module": "\"../components/search-results/SearchResultsComponent\"" + } + }, + { + "kind": "js", + "name": "SearchInputComponent", + "declaration": { + "name": "SearchInputComponent", + "module": "\"../components/search-input/SearchInputComponent\"" + } + }, + { + "kind": "js", + "name": "SearchVerticalsComponent", + "declaration": { + "name": "SearchVerticalsComponent", + "module": "\"../components/search-verticals/SearchVerticalsComponent\"" + } + }, + { + "kind": "js", + "name": "SearchFiltersComponent", + "declaration": { + "name": "SearchFiltersComponent", + "module": "\"../components/search-filters/SearchFiltersComponent\"" + } + }, + { + "kind": "js", + "name": "LanguageProvider", + "declaration": { + "name": "LanguageProvider", + "module": "\"../components/language-provider/LanguageProvider\"" + } + }, + { + "kind": "js", + "name": "AdaptiveCardComponent", + "declaration": { + "name": "AdaptiveCardComponent", + "module": "\"../components/adaptive-card/AdaptiveCardComponent\"" + } + }, + { + "kind": "js", + "name": "VideoPlayerComponent", + "declaration": { + "name": "VideoPlayerComponent", + "module": "\"../components/video-player/VideoPlayerComponent\"" + } + }, + { + "kind": "js", + "name": "*", + "declaration": { + "name": "*", + "package": "\"@microsoft/mgt-sharepoint-provider\"" + } + }, + { + "kind": "js", + "name": "*", + "declaration": { + "name": "*", + "package": "\"@microsoft/mgt-element/dist/es6/utils/TemplateHelper\"" + } + }, + { + "kind": "js", + "name": "*", + "declaration": { + "name": "*", + "package": "\"@microsoft/mgt-element/dist/es6/providers/IProvider\"" + } + }, + { + "kind": "js", + "name": "*", + "declaration": { + "name": "*", + "package": "\"@microsoft/mgt-element/dist/es6/providers/Providers\"" + } + }, + { + "kind": "js", + "name": "*", + "declaration": { + "name": "*", + "package": "\"@microsoft/mgt-element/dist/es6/utils/LocalizationHelper\"" + } + } + ] + }, { "kind": "javascript-module", "path": "src/loc/strings.default.ts", @@ -101,7 +204,7 @@ "type": { "text": "object" }, - "default": "{\r\n seeAllLink: \"See all\",\r\n results: \"results\"\r\n}" + "default": "{\r\n seeAllLink: \"See all\",\r\n results: \"results\",\r\n modifiedBy: \"Modified by\"\r\n}" }, { "kind": "variable", @@ -285,7 +388,7 @@ "type": { "text": "object" }, - "default": "{ \r\n language: \"fr-fr\",\r\n _components: {\r\n \"pnp-search-results\": {\r\n seeAllLink: \"Voir tout\",\r\n results: \"résultats\"\r\n },\r\n \"pnp-pagination\": {\r\n nextBtn: \"Suivant\",\r\n previousBtn: \"Précédent\",\r\n tooManyPages: \"Trop de pages!\",\r\n screenTipContent: `Il semble que ta recherche ait retourné beaucoup trop de pages!\r\nEssaye de restreindre le périmètre de ta recherche en utilisant des mots-clés plus précis🙏\r\n `\r\n },\r\n \"pnp-filter-date\": {\r\n anyTime: \"N'importe quand\",\r\n today: \"Aujourd'hui\",\r\n past24: \"Dernières 24h\",\r\n pastWeek: \"Semaine dernière\",\r\n pastMonth: \"Mois dernier\",\r\n past3Months: \"Derniers 3 mois\",\r\n pastYear: \"Année dernière\",\r\n olderThanAYear: \"Au delà d'un an\",\r\n reset: \"Réinitialiser\",\r\n from: \"À partir du\",\r\n to: \"Au\",\r\n applyDates: \"Appliquer\",\r\n selections: \"sélection(s)\"\r\n },\r\n \"pnp-filter-checkbox\": {\r\n reset: \"Réinitialiser\",\r\n searchPlaceholder: \"Rechercher une valeur...\",\r\n apply: \"Appliquer\",\r\n cancel: \"Annuler\",\r\n selections: \"sélection(s)\"\r\n },\r\n \"pnp-search-filters\": {\r\n resetAllFilters: \"Réinitialiser les filtres\",\r\n noFilters: \"Aucun filtre à afficher\"\r\n },\r\n \"pnp-search-input\": {\r\n searchPlaceholder: \"Rechercher un mot clé...\",\r\n clearSearch: \"Réinitialiser la boîte de recherche\",\r\n previousSearches: \"Recherche(s) précédente(s)\"\r\n },\r\n \"pnp-search-infos\": {\r\n searchQueryResultText: (keywords) : string => `Voici ce que nous avons trouvé pour \"${keywords}\"`,\r\n resultCountText: (count): string => `${count} résultats trouvés auxquels vous avez accès.`,\r\n notFoundSuggestions: (keywords) => html`\r\n

Votre recherche pour \"${keywords}\" n'a retourné aucun résultat.

\r\n

Quelques suggestions:

\r\n \r\n `,\r\n didYouMean: (handlerFunction, updatedQueryString) => html`\r\n

Vouliez-vous dire: \"${unsafeHTML(updatedQueryString)}\"?

\r\n `\r\n },\r\n \"pnp-error-message\": {\r\n errorMessage:\"Erreur\"\r\n },\r\n \"pnp-search-sort\":{\r\n sortedByRelevance: \"Trier par pertinence\",\r\n sortDefault:\"Pertinence\",\r\n sortAscending: \"Tri ascendant\",\r\n sortDescending: \"Tri descendant\",\r\n }\r\n }\r\n}" + "default": "{ \r\n language: \"fr-fr\",\r\n _components: {\r\n \"pnp-search-results\": {\r\n seeAllLink: \"Voir tout\",\r\n results: \"résultats\",\r\n modifiedBy: \"Modifié par\"\r\n },\r\n \"pnp-pagination\": {\r\n nextBtn: \"Suivant\",\r\n previousBtn: \"Précédent\",\r\n tooManyPages: \"Trop de pages!\",\r\n screenTipContent: `Il semble que ta recherche ait retourné beaucoup trop de pages!\r\nEssaye de restreindre le périmètre de ta recherche en utilisant des mots-clés plus précis🙏\r\n `\r\n },\r\n \"pnp-filter-date\": {\r\n anyTime: \"N'importe quand\",\r\n today: \"Aujourd'hui\",\r\n past24: \"Dernières 24h\",\r\n pastWeek: \"Semaine dernière\",\r\n pastMonth: \"Mois dernier\",\r\n past3Months: \"Derniers 3 mois\",\r\n pastYear: \"Année dernière\",\r\n olderThanAYear: \"Au delà d'un an\",\r\n reset: \"Réinitialiser\",\r\n from: \"À partir du\",\r\n to: \"Au\",\r\n applyDates: \"Appliquer\",\r\n selections: \"sélection(s)\"\r\n },\r\n \"pnp-filter-checkbox\": {\r\n reset: \"Réinitialiser\",\r\n searchPlaceholder: \"Rechercher une valeur...\",\r\n apply: \"Appliquer\",\r\n cancel: \"Annuler\",\r\n selections: \"sélection(s)\"\r\n },\r\n \"pnp-search-filters\": {\r\n resetAllFilters: \"Réinitialiser les filtres\",\r\n noFilters: \"Aucun filtre à afficher\"\r\n },\r\n \"pnp-search-input\": {\r\n searchPlaceholder: \"Rechercher un mot clé...\",\r\n clearSearch: \"Réinitialiser la boîte de recherche\",\r\n previousSearches: \"Recherche(s) précédente(s)\"\r\n },\r\n \"pnp-search-infos\": {\r\n searchQueryResultText: (keywords) : string => `Voici ce que nous avons trouvé pour \"${keywords}\"`,\r\n resultCountText: (count): string => `${count} résultats trouvés auxquels vous avez accès.`,\r\n notFoundSuggestions: (keywords) => html`\r\n

Votre recherche pour \"${keywords}\" n'a retourné aucun résultat.

\r\n

Quelques suggestions:

\r\n \r\n `,\r\n didYouMean: (handlerFunction, updatedQueryString) => html`\r\n

Vouliez-vous dire: \"${unsafeHTML(updatedQueryString)}\"?

\r\n `\r\n },\r\n \"pnp-error-message\": {\r\n errorMessage:\"Erreur\"\r\n },\r\n \"pnp-search-sort\":{\r\n sortedByRelevance: \"Trier par pertinence\",\r\n sortDefault:\"Pertinence\",\r\n sortAscending: \"Tri ascendant\",\r\n sortDescending: \"Tri descendant\",\r\n }\r\n }\r\n}" } ], "exports": [ @@ -301,254 +404,310 @@ }, { "kind": "javascript-module", - "path": "src/components/BaseComponent.ts", + "path": "src/helpers/DataFilterHelper.ts", "declarations": [ { "kind": "class", "description": "", - "name": "MgtTemplatedComponentBase", - "superclass": { - "name": "MgtTemplatedComponent", - "package": "@microsoft/mgt-element" - } - }, - { - "kind": "class", - "description": "", - "name": "BaseComponent", + "name": "DataFilterHelper", "members": [ { "kind": "field", - "name": "theme", - "attribute": "theme", - "reflects": true - }, - { - "kind": "field", - "name": "enableDebugMode", + "name": "dayJs", "type": { - "text": "boolean" + "text": "any" }, - "default": "false", - "description": "Enable the debug to explore data from context", - "attribute": "enable-debug" + "static": true }, { - "kind": "field", - "name": "renderedOnce", - "type": { - "text": "boolean" + "kind": "method", + "name": "buildFqlRefinementString", + "privacy": "public", + "static": true, + "return": { + "type": { + "text": "string[]" + } }, - "default": "false", - "description": "Flag indicating if data have been rendered at least once" - }, + "parameters": [ + { + "name": "selectedFilters", + "type": { + "text": "IDataFilter[]" + }, + "description": "The selected filter array" + }, + { + "name": "encodeTokens", + "optional": true, + "type": { + "text": "boolean" + }, + "description": "If true, encodes the taxonomy refinement tokens in UTF-8 to work with GET requests. Javascript encodes natively in UTF-16 by default." + }, + { + "description": "The dayJs instance to resolve dates", + "name": "dayJs" + } + ], + "description": "Build the refinement condition in FQL format" + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "DataFilterHelper", + "declaration": { + "name": "DataFilterHelper", + "module": "src/helpers/DataFilterHelper.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/helpers/DateHelper.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "DateHelper", + "members": [ { "kind": "field", - "name": "showDebugData", + "name": "dayJsLibrary", "type": { - "text": "boolean" + "text": "any" }, - "default": "false" + "privacy": "private" }, { - "kind": "field", - "name": "isInitialized", - "type": { - "text": "boolean" + "kind": "method", + "name": "dayJs", + "privacy": "public", + "return": { + "type": { + "text": "" + } }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "attribute": "initialized", - "reflects": true + "parameters": [ + { + "name": "culture", + "optional": true, + "type": { + "text": "string" + } + } + ], + "description": "Creates or returns instance of the dayJs library" }, { - "kind": "field", - "name": "_eventHanlders", - "type": { - "text": "Map}>" + "kind": "method", + "name": "setLocale", + "privacy": "private", + "return": { + "type": { + "text": "Promise" + } }, - "privacy": "public", - "default": "new Map}>()" + "parameters": [ + { + "name": "locale", + "type": { + "text": "string" + } + } + ] }, { - "kind": "field", - "name": "componentError", - "type": { - "text": "Error" - }, + "kind": "method", + "name": "isDST", "privacy": "public" }, - { - "kind": "field", - "name": "scopedElements", - "static": true, - "readonly": true - }, - { - "kind": "field", - "name": "themeStyles", - "static": true, - "description": "Returns styles from theme (i.e. define CSS variables)", - "readonly": true - }, - { - "kind": "method", - "name": "renderDebugMode", - "privacy": "protected" - }, { "kind": "method", - "name": "renderDebugData", - "privacy": "protected", + "name": "addMinutes", + "privacy": "public", "parameters": [ { - "name": "data", + "name": "isDst", "type": { - "text": "any" + "text": "boolean" } - } - ] - }, - { - "kind": "method", - "name": "toggleDebugData", - "privacy": "private" - }, - { - "kind": "method", - "name": "bindComponents", - "privacy": "protected", - "return": { - "type": { - "text": "Promise" - } - }, - "parameters": [ + }, { - "name": "bindings", + "name": "date", "type": { - "text": "IComponentBinding[]" - }, - "description": "the bindings to perform" - } - ], - "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)" - }, - { - "kind": "method", - "name": "unbindComponents", - "privacy": "protected", - "parameters": [ + "text": "Date" + } + }, { - "name": "bindings", + "name": "minutes", "type": { - "text": "IComponentBinding[]" + "text": "number" + } + }, + { + "name": "dst", + "type": { + "text": "number" } } ] - }, + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "DateHelper", + "declaration": { + "name": "DateHelper", + "module": "src/helpers/DateHelper.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/helpers/LocalizedStringHelper.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "LocalizedStringHelper", + "members": [ { "kind": "method", - "name": "getTheme", - "privacy": "protected", + "name": "isLocalizedString", + "privacy": "public", + "static": true, "return": { "type": { - "text": "" + "text": "boolean" } }, - "description": "Get CSS variables values for the component predefined variables" - }, - { - "kind": "method", - "name": "getLocalizedString", - "privacy": "protected", "parameters": [ { - "name": "string", + "name": "value", "type": { - "text": "ILocalizedString | string" + "text": "string | ILocalizedString" } } ] }, { "kind": "method", - "name": "setFASTColors", - "privacy": "private" - }, - { - "kind": "method", - "name": "hasPropertyUpdated", - "privacy": "protected", + "name": "getDefaultValue", + "privacy": "public", + "static": true, + "return": { + "type": { + "text": "string" + } + }, "parameters": [ { - "name": "changedProperties", - "type": { - "text": "PropertyValueMap" - } - }, - { - "name": "propertyName", + "name": "value", "type": { - "text": "string" + "text": "string | ILocalizedString" } } ] - }, + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "LocalizedStringHelper", + "declaration": { + "name": "LocalizedStringHelper", + "module": "src/helpers/LocalizedStringHelper.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/helpers/ObjectHelper.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "ObjectHelper", + "members": [ { "kind": "method", - "name": "fireCustomEvent", + "name": "byPath", + "privacy": "public", + "static": true, "return": { "type": { - "text": "*" + "text": "" } }, "parameters": [ { - "name": "eventName", + "name": "object", "type": { - "text": "string" - } + "text": "any" + }, + "description": "the object containg the property path" }, { - "name": "detail", - "optional": true, + "name": "path", "type": { - "text": "*" - } + "text": "string" + }, + "description": "the property path to get" }, { - "name": "bubbles", - "default": "false", + "name": "delimiter", "optional": true, "type": { - "text": "boolean" + "text": "string" + }, + "description": "if multiple matches are found, specifiy the delimiter character to use to separate values in the returned string" + } + ], + "description": "Get object property value by its deep path using jsPath predicate." + }, + { + "kind": "method", + "name": "setPropertyByPath", + "privacy": "public", + "static": true, + "parameters": [ + { + "name": "object", + "type": { + "text": "any" } }, { - "name": "cancelable", - "default": "false", - "optional": true, + "name": "path", "type": { - "text": "boolean" + "text": "string" } }, { - "name": "composed", - "default": "false", - "optional": true, + "name": "value", "type": { - "text": "boolean" + "text": "unknown" } } - ], - "description": "Override of default method to support 'composed' flag", - "privacy": "protected" + ] }, { "kind": "method", - "name": "timeoutPromise", - "privacy": "private", + "name": "getPropertyByPath", + "privacy": "public", + "static": true, "return": { "type": { "text": "" @@ -556,197 +715,106 @@ }, "parameters": [ { - "name": "promise", - "type": { - "text": "Promise" - }, - "description": "the promise to timeout" - }, - { - "name": "timeout", + "name": "object", "type": { - "text": "number" + "text": "any" }, - "description": "the timeout delay" + "description": "the source object" }, { - "name": "exception", + "name": "path", "type": { - "text": "unknown" + "text": "string" }, - "description": "the exception raised if any error occures" + "description": "the property path" } ], - "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/" + "description": "Returns the property with original type according to the provided object path" }, { "kind": "method", - "name": "waitForElement", - "privacy": "private", + "name": "flatten", + "privacy": "public", + "static": true, "return": { "type": { - "text": "" + "text": "any" } }, "parameters": [ { - "name": "binding", + "name": "object", "type": { - "text": "IComponentBinding" + "text": "any" }, - "description": "the binding detail" + "description": "the object to flatten" }, { - "name": "timeout", - "optional": true, - "type": { - "text": "number" - } + "name": "prefix", + "default": "\"\"", + "description": "the prefix to use" } ], - "description": "Waits for a component to be present on the page and initialized to perform event binding" - } - ], - "attributes": [ - { - "name": "theme", - "fieldName": "theme" - }, - { - "name": "enable-debug", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Enable the debug to explore data from context", - "fieldName": "enableDebugMode" - }, - { - "name": "initialized", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "fieldName": "isInitialized" - } - ], - "mixins": [ - { - "name": "ScopedElementsMixin", - "package": "@open-wc/scoped-elements" + "description": "Flatten object properties\r\nExample: input = { \"a\":{ \"b\":{ \"b2\":2 }, \"c\":{ \"c2\":2, \"c3\":3 } } }\r\nResult: { a.b.b2: 2, a.c.c2: 2, a.c.c3: 3 }\r\nReference: https://gist.github.com/penguinboy/762197" } - ], - "superclass": { - "name": "MgtTemplatedComponentBase", - "module": "src/components/BaseComponent.ts" - } + ] } ], "exports": [ { "kind": "js", - "name": "MgtTemplatedComponentBase", - "declaration": { - "name": "MgtTemplatedComponentBase", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "js", - "name": "BaseComponent", + "name": "ObjectHelper", "declaration": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" + "name": "ObjectHelper", + "module": "src/helpers/ObjectHelper.ts" } } ] }, { "kind": "javascript-module", - "path": "src/helpers/DataFilterHelper.ts", + "path": "src/helpers/SearchResultsHelper.ts", "declarations": [ { - "kind": "class", - "description": "", - "name": "DataFilterHelper", - "members": [ + "kind": "function", + "name": "sanitizeSummary", + "parameters": [ { - "kind": "field", - "name": "dayJs", + "name": "summary", "type": { - "text": "any" - }, - "static": true - }, - { - "kind": "method", - "name": "buildFqlRefinementString", - "privacy": "public", - "static": true, - "return": { - "type": { - "text": "string[]" - } - }, - "parameters": [ - { - "name": "selectedFilters", - "type": { - "text": "IDataFilter[]" - }, - "description": "The selected filter array" - }, - { - "name": "encodeTokens", - "optional": true, - "type": { - "text": "boolean" - }, - "description": "If true, encodes the taxonomy refinement tokens in UTF-8 to work with GET requests. Javascript encodes natively in UTF-16 by default." - }, - { - "description": "The dayJs instance to resolve dates", - "name": "dayJs" - } - ], - "description": "Build the refinement condition in FQL format" + "text": "string" + } } ] - } - ], - "exports": [ - { - "kind": "js", - "name": "DataFilterHelper", - "declaration": { - "name": "DataFilterHelper", - "module": "src/helpers/DataFilterHelper.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/helpers/DateHelper.ts", - "declarations": [ + }, { "kind": "class", "description": "", - "name": "DateHelper", + "name": "SearchResultsHelper", "members": [ { "kind": "field", - "name": "dayJsLibrary", + "name": "controller", "type": { - "text": "any" + "text": "AbortController" }, "privacy": "private" }, { - "kind": "method", - "name": "dayJs", + "kind": "field", + "name": "FileTypeAssociations", + "type": { + "text": "object" + }, "privacy": "public", + "static": true, + "readonly": true, + "default": "{\r\n \"word\": [\"doc\",\"docx\",\"docm\",\"dot\",\"dotx\",\"dotm\"],\r\n \"excel\": [\"xls\",\"xlsx\",\"csv\",\"xlsm\",\"xlsb\",\"xlx\",\"xml\",\"csv\",\"xltm\",\"xlt\",\"xltx\"],\r\n \"powerpoint\": [\"ppt\",\"pptx\",\"pptm\",\"pps\",\"ppsm\",\"ppsx\",\"potx\",\"potm\",\"pot\"],\r\n \"onenote\": [\"one\"],\r\n \"text\": [\"txt\",\"rtf\"],\r\n \"visio\": [\"vsd\",\"vsdx\",\"vsdm\"],\r\n \"webpage\": [\"aspx\",\"html\"],\r\n \"pdf\": [\"pdf\",\"application/pdf\"],\r\n \"archive\": [\"zip\",\"7z\",\"rar\"],\r\n \"video\": [\"mp4\",\"avi\",\"mov\",\"flv\",\"wmv\",\"webm\",\"ogg\"]\r\n }" + }, + { + "kind": "method", + "name": "getFileIconType", + "privacy": "private", "return": { "type": { "text": "" @@ -754,268 +822,157 @@ }, "parameters": [ { - "name": "culture", - "optional": true, + "name": "fileExtension", "type": { "text": "string" - } + }, + "description": "the file extension" } ], - "description": "Creates or returns instance of the dayJs library" + "description": "Get the file famnily for its extension" }, { "kind": "method", - "name": "setLocale", - "privacy": "private", + "name": "enhanceResults", + "privacy": "public", "return": { "type": { - "text": "Promise" + "text": "Promise" } }, "parameters": [ { - "name": "locale", - "type": { - "text": "string" - } - } - ] - }, - { - "kind": "method", - "name": "isDST", - "privacy": "public" - }, - { - "kind": "method", - "name": "addMinutes", - "privacy": "public", - "parameters": [ - { - "name": "isDst", - "type": { - "text": "boolean" - } - }, - { - "name": "date", + "name": "items", "type": { - "text": "Date" + "text": "{ [key: string]:any }[]" } }, { - "name": "minutes", + "name": "selectedFields", "type": { - "text": "number" + "text": "string[]" } }, { - "name": "dst", + "name": "isWildcard", + "optional": true, "type": { - "text": "number" + "text": "boolean" } } ] - } - ] - } - ], - "exports": [ - { - "kind": "js", - "name": "DateHelper", - "declaration": { - "name": "DateHelper", - "module": "src/helpers/DateHelper.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/helpers/LocalizedStringHelper.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "LocalizedStringHelper", - "members": [ + }, { "kind": "method", - "name": "isLocalizedString", - "privacy": "public", - "static": true, + "name": "abortRequest", + "privacy": "public" + }, + { + "kind": "method", + "name": "getThumbnailUrls", + "privacy": "private", "return": { "type": { - "text": "boolean" + "text": "Promise>" } }, "parameters": [ { - "name": "value", + "name": "items", "type": { - "text": "string | ILocalizedString" + "text": "{[key: string]: string}[]" } } ] }, { "kind": "method", - "name": "getDefaultValue", - "privacy": "public", - "static": true, + "name": "getPreviewUrls", + "privacy": "private", "return": { "type": { - "text": "string" + "text": "Promise>" } }, "parameters": [ { - "name": "value", + "name": "items", "type": { - "text": "string | ILocalizedString" + "text": "{[key: string]: string}[]" } } ] - } - ] - } - ], - "exports": [ - { - "kind": "js", - "name": "LocalizedStringHelper", - "declaration": { - "name": "LocalizedStringHelper", - "module": "src/helpers/LocalizedStringHelper.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/helpers/ObjectHelper.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "ObjectHelper", - "members": [ + }, { "kind": "method", - "name": "byPath", - "privacy": "public", - "static": true, - "return": { - "type": { - "text": "" - } - }, + "name": "getItemsByBatch", + "privacy": "private", "parameters": [ { - "name": "object", + "name": "items", "type": { - "text": "any" + "text": "{[key: string]: string}[]" }, - "description": "the object containg the property path" + "description": "items data to build the batch requests" }, { - "name": "path", + "name": "batchRequestConditionCallback", "type": { - "text": "string" + "text": "(item) => boolean" }, - "description": "the property path to get" + "description": "the condition for a batch request to be perfomed (ex. required fields on a item)" }, { - "name": "delimiter", - "optional": true, + "name": "batchRequestBodyCallabck", "type": { - "text": "string" + "text": "(item) => IGraphBatchRequest" }, - "description": "if multiple matches are found, specifiy the delimiter character to use to separate values in the returned string" - } - ], - "description": "Get object property value by its deep path using jsPath predicate." - }, - { - "kind": "method", - "name": "setPropertyByPath", - "privacy": "public", - "static": true, - "parameters": [ - { - "name": "object", - "type": { - "text": "any" - } - }, - { - "name": "path", - "type": { - "text": "string" - } + "description": "the batch request body to pass according to item" }, { - "name": "value", + "name": "batchResponseValueCallback", "type": { - "text": "unknown" - } + "text": "(batchResponse) => string" + }, + "description": "the property to use as returned value from the batch HTTP call response. This callback is only called when the HTTP response succeedeed (i.e. HTTP 200)." } - ] + ], + "description": "Build and send a Microsoft Graph batch request from items data", + "return": { + "type": { + "text": "" + } + } }, { "kind": "method", - "name": "getPropertyByPath", - "privacy": "public", - "static": true, + "name": "isCustomApp", + "privacy": "private", "return": { "type": { - "text": "" - } - }, - "parameters": [ - { - "name": "object", - "type": { - "text": "any" - }, - "description": "the source object" - }, - { - "name": "path", - "type": { - "text": "string" - }, - "description": "the property path" + "text": "boolean" } - ], - "description": "Returns the property with original type according to the provided object path" + } }, { "kind": "method", - "name": "flatten", + "name": "getAvailableFieldsFromResults", "privacy": "public", - "static": true, "return": { "type": { - "text": "any" + "text": "string[]" } }, "parameters": [ { - "name": "object", + "name": "data", "type": { - "text": "any" + "text": "IDataSourceData" }, - "description": "the object to flatten" - }, - { - "name": "prefix", - "default": "\"\"", - "description": "the prefix to use" + "description": "the current data" } ], - "description": "Flatten object properties\r\nExample: input = { \"a\":{ \"b\":{ \"b2\":2 }, \"c\":{ \"c2\":2, \"c3\":3 } } }\r\nResult: { a.b.b2: 2, a.c.c2: 2, a.c.c3: 3 }\r\nReference: https://gist.github.com/penguinboy/762197" + "description": "Retrieves the available fields from results" } ] } @@ -1023,329 +980,112 @@ "exports": [ { "kind": "js", - "name": "ObjectHelper", + "name": "sanitizeSummary", "declaration": { - "name": "ObjectHelper", - "module": "src/helpers/ObjectHelper.ts" + "name": "sanitizeSummary", + "module": "src/helpers/SearchResultsHelper.ts" + } + }, + { + "kind": "js", + "name": "SearchResultsHelper", + "declaration": { + "name": "SearchResultsHelper", + "module": "src/helpers/SearchResultsHelper.ts" } } ] }, { "kind": "javascript-module", - "path": "src/helpers/SearchResultsHelper.ts", + "path": "src/helpers/SearchSvgHelper.ts", "declarations": [ { "kind": "function", - "name": "sanitizeSummary", + "name": "getInternalSvg", "parameters": [ { - "name": "summary", + "name": "svgIcon", "type": { - "text": "string" - } + "text": "SearchSvgIcon" + }, + "description": "defined by name" + }, + { + "description": "hex value", + "name": "color" } - ] - }, + ], + "description": "returns an svg" + } + ], + "exports": [ + { + "kind": "js", + "name": "getInternalSvg", + "declaration": { + "name": "getInternalSvg", + "module": "src/helpers/SearchSvgHelper.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/helpers/StringHelper.ts", + "declarations": [ { "kind": "class", "description": "", - "name": "SearchResultsHelper", + "name": "StringHelper", "members": [ { - "kind": "field", - "name": "controller", - "type": { - "text": "AbortController" - }, - "privacy": "private" - }, - { - "kind": "field", - "name": "FileTypeAssociations", - "type": { - "text": "object" - }, + "kind": "method", + "name": "escapeRegExp", "privacy": "public", "static": true, - "readonly": true, - "default": "{\r\n \"word\": [\"doc\",\"docx\",\"docm\",\"dot\",\"dotx\",\"dotm\"],\r\n \"excel\": [\"xls\",\"xlsx\",\"csv\",\"xlsm\",\"xlsb\",\"xlx\",\"xml\",\"csv\",\"xltm\",\"xlt\",\"xltx\"],\r\n \"powerpoint\": [\"ppt\",\"pptx\",\"pptm\",\"pps\",\"ppsm\",\"ppsx\",\"potx\",\"potm\",\"pot\"],\r\n \"onenote\": [\"one\"],\r\n \"text\": [\"txt\",\"rtf\"],\r\n \"visio\": [\"vsd\",\"vsdx\",\"vsdm\"],\r\n \"webpage\": [\"aspx\",\"html\"],\r\n \"pdf\": [\"pdf\",\"application/pdf\"],\r\n \"archive\": [\"zip\",\"7z\",\"rar\"],\r\n \"video\": [\"mp4\",\"avi\",\"mov\",\"flv\",\"wmv\",\"webm\",\"ogg\"]\r\n }" - }, - { - "kind": "method", - "name": "getFileIconType", - "privacy": "private", - "return": { - "type": { - "text": "" - } - }, "parameters": [ { - "name": "fileExtension", - "type": { - "text": "string" - }, - "description": "the file extension" + "name": "string" } - ], - "description": "Get the file famnily for its extension" - }, + ] + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "StringHelper", + "declaration": { + "name": "StringHelper", + "module": "src/helpers/StringHelper.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/helpers/TemplateHelper.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "TemplateHelper", + "members": [ { "kind": "method", - "name": "enhanceResults", + "name": "normalizeHtmlTemplate", "privacy": "public", + "static": true, "return": { "type": { - "text": "Promise" + "text": "" } }, "parameters": [ { - "name": "items", - "type": { - "text": "{ [key: string]:any }[]" - } - }, - { - "name": "selectedFields", - "type": { - "text": "string[]" - } - }, - { - "name": "isWildcard", - "optional": true, - "type": { - "text": "boolean" - } - } - ] - }, - { - "kind": "method", - "name": "abortRequest", - "privacy": "public" - }, - { - "kind": "method", - "name": "getThumbnailUrls", - "privacy": "private", - "return": { - "type": { - "text": "Promise>" - } - }, - "parameters": [ - { - "name": "items", - "type": { - "text": "{[key: string]: string}[]" - } - } - ] - }, - { - "kind": "method", - "name": "getPreviewUrls", - "privacy": "private", - "return": { - "type": { - "text": "Promise>" - } - }, - "parameters": [ - { - "name": "items", - "type": { - "text": "{[key: string]: string}[]" - } - } - ] - }, - { - "kind": "method", - "name": "getItemsByBatch", - "privacy": "private", - "parameters": [ - { - "name": "items", - "type": { - "text": "{[key: string]: string}[]" - }, - "description": "items data to build the batch requests" - }, - { - "name": "batchRequestConditionCallback", - "type": { - "text": "(item) => boolean" - }, - "description": "the condition for a batch request to be perfomed (ex. required fields on a item)" - }, - { - "name": "batchRequestBodyCallabck", - "type": { - "text": "(item) => IGraphBatchRequest" - }, - "description": "the batch request body to pass according to item" - }, - { - "name": "batchResponseValueCallback", - "type": { - "text": "(batchResponse) => string" - }, - "description": "the property to use as returned value from the batch HTTP call response. This callback is only called when the HTTP response succeedeed (i.e. HTTP 200)." - } - ], - "description": "Build and send a Microsoft Graph batch request from items data", - "return": { - "type": { - "text": "" - } - } - }, - { - "kind": "method", - "name": "isCustomApp", - "privacy": "private", - "return": { - "type": { - "text": "boolean" - } - } - }, - { - "kind": "method", - "name": "getAvailableFieldsFromResults", - "privacy": "public", - "return": { - "type": { - "text": "string[]" - } - }, - "parameters": [ - { - "name": "data", - "type": { - "text": "IDataSourceData" - }, - "description": "the current data" - } - ], - "description": "Retrieves the available fields from results" - } - ] - } - ], - "exports": [ - { - "kind": "js", - "name": "sanitizeSummary", - "declaration": { - "name": "sanitizeSummary", - "module": "src/helpers/SearchResultsHelper.ts" - } - }, - { - "kind": "js", - "name": "SearchResultsHelper", - "declaration": { - "name": "SearchResultsHelper", - "module": "src/helpers/SearchResultsHelper.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/helpers/SearchSvgHelper.ts", - "declarations": [ - { - "kind": "function", - "name": "getInternalSvg", - "parameters": [ - { - "name": "svgIcon", - "type": { - "text": "SearchSvgIcon" - }, - "description": "defined by name" - }, - { - "description": "hex value", - "name": "color" - } - ], - "description": "returns an svg" - } - ], - "exports": [ - { - "kind": "js", - "name": "getInternalSvg", - "declaration": { - "name": "getInternalSvg", - "module": "src/helpers/SearchSvgHelper.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/helpers/StringHelper.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "StringHelper", - "members": [ - { - "kind": "method", - "name": "escapeRegExp", - "privacy": "public", - "static": true, - "parameters": [ - { - "name": "string" - } - ] - } - ] - } - ], - "exports": [ - { - "kind": "js", - "name": "StringHelper", - "declaration": { - "name": "StringHelper", - "module": "src/helpers/StringHelper.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/helpers/TemplateHelper.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "TemplateHelper", - "members": [ - { - "kind": "method", - "name": "normalizeHtmlTemplate", - "privacy": "public", - "static": true, - "return": { - "type": { - "text": "" - } - }, - "parameters": [ - { - "name": "template", + "name": "template", "type": { "text": "HTMLTemplateElement" }, @@ -1566,257 +1306,27 @@ }, { "kind": "javascript-module", - "path": "src/exports/index.ts", - "declarations": [], - "exports": [ + "path": "src/components/BaseComponent.ts", + "declarations": [ { - "kind": "js", - "name": "SearchResultsComponent", - "declaration": { - "name": "SearchResultsComponent", - "module": "\"../components/search-results/SearchResultsComponent\"" + "kind": "class", + "description": "", + "name": "MgtTemplatedComponentBase", + "superclass": { + "name": "MgtTemplatedComponent", + "package": "@microsoft/mgt-element" } }, - { - "kind": "js", - "name": "SearchInputComponent", - "declaration": { - "name": "SearchInputComponent", - "module": "\"../components/search-input/SearchInputComponent\"" - } - }, - { - "kind": "js", - "name": "SearchVerticalsComponent", - "declaration": { - "name": "SearchVerticalsComponent", - "module": "\"../components/search-verticals/SearchVerticalsComponent\"" - } - }, - { - "kind": "js", - "name": "SearchFiltersComponent", - "declaration": { - "name": "SearchFiltersComponent", - "module": "\"../components/search-filters/SearchFiltersComponent\"" - } - }, - { - "kind": "js", - "name": "LanguageProvider", - "declaration": { - "name": "LanguageProvider", - "module": "\"../components/language-provider/LanguageProvider\"" - } - }, - { - "kind": "js", - "name": "AdaptiveCardComponent", - "declaration": { - "name": "AdaptiveCardComponent", - "module": "\"../components/adaptive-card/AdaptiveCardComponent\"" - } - }, - { - "kind": "js", - "name": "VideoPlayerComponent", - "declaration": { - "name": "VideoPlayerComponent", - "module": "\"../components/video-player/VideoPlayerComponent\"" - } - }, - { - "kind": "js", - "name": "*", - "declaration": { - "name": "*", - "package": "\"@microsoft/mgt-sharepoint-provider\"" - } - }, - { - "kind": "js", - "name": "*", - "declaration": { - "name": "*", - "package": "\"@microsoft/mgt-element/dist/es6/utils/TemplateHelper\"" - } - }, - { - "kind": "js", - "name": "*", - "declaration": { - "name": "*", - "package": "\"@microsoft/mgt-element/dist/es6/providers/IProvider\"" - } - }, - { - "kind": "js", - "name": "*", - "declaration": { - "name": "*", - "package": "\"@microsoft/mgt-element/dist/es6/providers/Providers\"" - } - }, - { - "kind": "js", - "name": "*", - "declaration": { - "name": "*", - "package": "\"@microsoft/mgt-element/dist/es6/utils/LocalizationHelper\"" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/styles/tailwind-styles-css.ts", - "declarations": [ - { - "kind": "variable", - "name": "styles", - "type": { - "text": "CSSResult[]" - }, - "default": "[\r\n css`\r/* ! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:var(--pnpsearch-internal-fontFamilySecondary),Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}\n\n[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],select,textarea{\n --tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;\n background-color:#fff;\n border-color:#6b7280;\n border-radius:0;\n border-width:1px;\n font-size:1rem;\n line-height:1.5rem;\n padding:.5rem .75rem}\n\n[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,select:focus,textarea:focus{\n --tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width:0px;\n --tw-ring-offset-color:#fff;\n --tw-ring-color:#2563eb;\n --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n border-color:#2563eb;\n box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);\n outline:2px solid transparent;\n outline-offset:2px}\n\ninput::-moz-placeholder,textarea::-moz-placeholder{\n color:#6b7280;\n opacity:1}\n\ninput::placeholder,textarea::placeholder{\n color:#6b7280;\n opacity:1}\n\n::-webkit-datetime-edit-fields-wrapper{\n padding:0}\n\n::-webkit-date-and-time-value{\n min-height:1.5em}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{\n padding-bottom:0;\n padding-top:0}\n\nselect{\n background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position:right .5rem center;\n background-repeat:no-repeat;\n background-size:1.5em 1.5em;\n padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}\n\n[multiple]{\n background-image:none;\n background-position:0 0;\n background-repeat:unset;\n background-size:initial;\n padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}\n\n[type=checkbox],[type=radio]{\n --tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;\n background-color:#fff;\n background-origin:border-box;\n border-color:#6b7280;\n border-width:1px;\n color:#2563eb;\n display:inline-block;\n flex-shrink:0;\n height:1rem;\n padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;\n vertical-align:middle;\n width:1rem}\n\n[type=checkbox]{\n border-radius:0}\n\n[type=radio]{\n border-radius:100%}\n\n[type=checkbox]:focus,[type=radio]:focus{\n --tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width:2px;\n --tw-ring-offset-color:#fff;\n --tw-ring-color:#2563eb;\n --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);\n outline:2px solid transparent;\n outline-offset:2px}\n\n[type=checkbox]:checked,[type=radio]:checked{\n background-color:currentColor;\n background-position:50%;\n background-repeat:no-repeat;\n background-size:100% 100%;\n border-color:transparent}\n\n[type=checkbox]:checked{\n background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E\")}\n\n[type=radio]:checked{\n background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E\")}\n\n[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{\n background-color:currentColor;\n border-color:transparent}\n\n[type=checkbox]:indeterminate{\n background-color:currentColor;\n background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E\");\n background-position:50%;\n background-repeat:no-repeat;\n background-size:100% 100%;\n border-color:transparent}\n\n[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{\n background-color:currentColor;\n border-color:transparent}\n\n[type=file]{\n background:unset;\n border-color:inherit;\n border-radius:0;\n border-width:0;\n font-size:unset;\n line-height:inherit;\n padding:0}\n\n[type=file]:focus{\n outline:1px solid ButtonText;\n outline:1px auto -webkit-focus-ring-color}\n\n*,:after,:before{\n --tw-border-spacing-x:0;\n --tw-border-spacing-y:0;\n --tw-translate-x:0;\n --tw-translate-y:0;\n --tw-rotate:0;\n --tw-skew-x:0;\n --tw-skew-y:0;\n --tw-scale-x:1;\n --tw-scale-y:1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness:proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width:0px;\n --tw-ring-offset-color:#fff;\n --tw-ring-color:rgba(59,130,246,.5);\n --tw-ring-offset-shadow:0 0 #0000;\n --tw-ring-shadow:0 0 #0000;\n --tw-shadow:0 0 #0000;\n --tw-shadow-colored:0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: }\n\n::backdrop{\n --tw-border-spacing-x:0;\n --tw-border-spacing-y:0;\n --tw-translate-x:0;\n --tw-translate-y:0;\n --tw-rotate:0;\n --tw-skew-x:0;\n --tw-skew-y:0;\n --tw-scale-x:1;\n --tw-scale-y:1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness:proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width:0px;\n --tw-ring-offset-color:#fff;\n --tw-ring-color:rgba(59,130,246,.5);\n --tw-ring-offset-shadow:0 0 #0000;\n --tw-ring-shadow:0 0 #0000;\n --tw-shadow:0 0 #0000;\n --tw-shadow-colored:0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: }.container{\n width:100%}@media (min-width:640px){\n\n .container{\n max-width:640px}}@media (min-width:768px){\n\n .container{\n max-width:768px}}@media (min-width:1024px){\n\n .container{\n max-width:1024px}}@media (min-width:1280px){\n\n .container{\n max-width:1280px}}@media (min-width:1536px){\n\n .container{\n max-width:1536px}}.sr-only{\n clip:rect(0,0,0,0);\n border-width:0;\n height:1px;\n margin:-1px;\n overflow:hidden;\n padding:0;\n position:absolute;\n white-space:nowrap;\n width:1px}.pointer-events-none{\n pointer-events:none}.visible{\n visibility:visible}.invisible{\n visibility:hidden}.static{\n position:static}.absolute{\n position:absolute}.relative{\n position:relative}.sticky{\n position:sticky}.top-\\\\[10px\\\\]{\n top:10px}.right-\\\\[10px\\\\]{\n right:10px}.top-0{\n top:0}.bottom-0{\n bottom:0}.z-10{\n z-index:10}.mb-2{\n margin-bottom:.5rem}.mb-4{\n margin-bottom:1rem}.mb-8{\n margin-bottom:2rem}.ml-auto{\n margin-left:auto}.mr-auto{\n margin-right:auto}.ml-4{\n margin-left:1rem}.mt-6{\n margin-top:1.5rem}.mb-6{\n margin-bottom:1.5rem}.mt-4{\n margin-top:1rem}.ml-1{\n margin-left:.25rem}.mr-1{\n margin-right:.25rem}.mt-1{\n margin-top:.25rem}.mb-1{\n margin-bottom:.25rem}.ml-0{\n margin-left:0}.mr-0{\n margin-right:0}.mr-0\\\\.5{\n margin-right:.125rem}.mt-2{\n margin-top:.5rem}.ml-3{\n margin-left:.75rem}.block{\n display:block}.inline-block{\n display:inline-block}.flex{\n display:flex}.inline-flex{\n display:inline-flex}.table{\n display:table}.grid{\n display:grid}.h-\\\\[65vh\\\\]{\n height:65vh}.h-1{\n height:.25rem}.h-full{\n height:100%}.h-3{\n height:.75rem}.h-9{\n height:2.25rem}.h-5{\n height:1.25rem}.h-8{\n height:2rem}.h-7{\n height:1.75rem}.h-\\\\[72px\\\\]{\n height:72px}.h-6{\n height:1.5rem}.h-\\\\[22px\\\\]{\n height:22px}.max-h-80{\n max-height:20rem}.min-h-\\\\[176px\\\\]{\n min-height:176px}.min-h-\\\\[48px\\\\]{\n min-height:48px}.w-full{\n width:100%}.w-1{\n width:.25rem}.w-14{\n width:3.5rem}.w-96{\n width:24rem}.w-40{\n width:10rem}.w-8{\n width:2rem}.w-7{\n width:1.75rem}.w-\\\\[126px\\\\]{\n width:126px}.w-6{\n width:1.5rem}.w-\\\\[22px\\\\]{\n width:22px}.w-3{\n width:.75rem}.w-44{\n width:11rem}.w-\\\\[16px\\\\]{\n width:16px}.w-\\\\[24px\\\\]{\n width:24px}.min-w-full{\n min-width:100%}.min-w-min{\n min-width:-moz-min-content;\n min-width:min-content}.min-w-\\\\[140px\\\\]{\n min-width:140px}.max-w-7xl{\n max-width:80rem}.max-w-\\\\[126px\\\\]{\n max-width:126px}@keyframes fadein{\n\n 0%{\n opacity:0}\n\n to{\n opacity:1}}.animate-fadein{\n animation:fadein .8s ease}@keyframes bounce{\n\n 0%,to{\n animation-timing-function:cubic-bezier(.8,0,1,1);\n transform:translateY(-25%)}\n\n 50%{\n animation-timing-function:cubic-bezier(0,0,.2,1);\n transform:none}}.animate-bounce{\n animation:bounce 1s infinite}@keyframes shimmer{\n\n 0%,to{\n opacity:1}\n\n 50%{\n opacity:.5}}.animate-shimmer{\n animation:shimmer 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{\n cursor:pointer}.cursor-not-allowed{\n cursor:not-allowed}.list-disc{\n list-style-type:disc}.grid-flow-col{\n grid-auto-flow:column}.grid-cols-searchResult{\n grid-template-columns:32px 2fr 0fr}.flex-col{\n flex-direction:column}.flex-wrap{\n flex-wrap:wrap}.items-start{\n align-items:flex-start}.items-end{\n align-items:flex-end}.items-center{\n align-items:center}.justify-end{\n justify-content:flex-end}.justify-center{\n justify-content:center}.justify-between{\n justify-content:space-between}.justify-around{\n justify-content:space-around}.gap-2{\n gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){\n --tw-space-x-reverse:0;\n margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));\n margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){\n --tw-space-x-reverse:0;\n margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));\n margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){\n --tw-space-y-reverse:0;\n margin-bottom:calc(.5rem*var(--tw-space-y-reverse));\n margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){\n --tw-space-x-reverse:0;\n margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));\n margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){\n --tw-space-x-reverse:0;\n margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));\n margin-right:calc(1rem*var(--tw-space-x-reverse))}.overflow-auto{\n overflow:auto}.rounded{\n border-radius:.25rem}.rounded-full{\n border-radius:9999px}.rounded-lg{\n border-radius:.5rem}.rounded-\\\\[50\\\\%\\\\]{\n border-radius:50%}.rounded-none{\n border-radius:0}.border-0{\n border-width:0}.border-t-\\\\[1px\\\\]{\n border-top-width:1px}.border-l-2{\n border-left-width:2px}.border-b{\n border-bottom-width:1px}.border-t{\n border-top-width:1px}.border-red-500{\n --tw-border-opacity:1;\n border-color:rgb(239 68 68/var(--tw-border-opacity))}.border-gray-400{\n --tw-border-opacity:1;\n border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-l-red-600{\n --tw-border-opacity:1;\n border-left-color:rgb(220 38 38/var(--tw-border-opacity))}.border-opacity-25{\n --tw-border-opacity:0.25}.bg-primary{\n background-color:var(--pnpsearch-internal-colorPrimary,#7c4dff)}.bg-slate-200{\n --tw-bg-opacity:1;\n background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-\\\\[var\\\\(--gray200\\\\)\\\\]{\n background-color:var(--gray200)}.bg-transparent{\n background-color:transparent}.bg-white{\n --tw-bg-opacity:1;\n background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-black\\\\/\\\\[0\\\\.02\\\\]{\n background-color:rgba(0,0,0,.02)}.bg-opacity-60{\n --tw-bg-opacity:0.6}.bg-gradient-to-r{\n background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-cover{\n background-size:cover}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-center{\n background-position:50%}.fill-current{\n fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{\n padding:.5rem}.p-1{\n padding:.25rem}.p-4{\n padding:1rem}.p-8{\n padding:2rem}.p-5{\n padding:1.25rem}.p-0{\n padding:0}.px-2\\\\.5{\n padding-left:.625rem;\n padding-right:.625rem}.px-2{\n padding-left:.5rem;\n padding-right:.5rem}.px-4{\n padding-left:1rem;\n padding-right:1rem}.py-\\\\[18px\\\\]{\n padding-bottom:18px;\n padding-top:18px}.px-3{\n padding-left:.75rem;\n padding-right:.75rem}.py-1{\n padding-bottom:.25rem;\n padding-top:.25rem}.px-6{\n padding-left:1.5rem;\n padding-right:1.5rem}.py-3{\n padding-bottom:.75rem;\n padding-top:.75rem}.py-2{\n padding-bottom:.5rem;\n padding-top:.5rem}.pl-8{\n padding-left:2rem}.pt-12{\n padding-top:3rem}.pb-14{\n padding-bottom:3.5rem}.pt-2{\n padding-top:.5rem}.pb-2{\n padding-bottom:.5rem}.pt-\\\\[3px\\\\]{\n padding-top:3px}.pb-8{\n padding-bottom:2rem}.pl-3{\n padding-left:.75rem}.font-primary{\n font-family:var(--pnpsearch-internal-fontFamilyPrimary),\"Segoe UI\",\"Arial, sans-serif\"}.font-sans{\n font-family:var(--pnpsearch-internal-fontFamilySecondary),Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\"}.text-sm{\n font-size:.875rem;\n line-height:1.25rem}.text-3xl{\n font-size:1.875rem;\n line-height:2.25rem}.text-xl{\n font-size:1.25rem;\n line-height:1.75rem}.text-base{\n font-size:1rem;\n line-height:1.5rem}.font-bold{\n font-weight:700}.font-normal{\n font-weight:400}.font-semibold{\n font-weight:600}.font-medium{\n font-weight:500}.text-primary{\n color:var(--pnpsearch-internal-colorPrimary,#7c4dff)}.text-textColor{\n color:var(--pnpsearch-internal-textColor,#1e252b)}.text-transparent{\n color:transparent}.text-white{\n --tw-text-opacity:1;\n color:rgb(255 255 255/var(--tw-text-opacity))}.text-black{\n --tw-text-opacity:1;\n color:rgb(0 0 0/var(--tw-text-opacity))}.text-textColorDark{\n color:var(--pnpsearch-internal-textColorDark,#fff)}.opacity-75{\n opacity:.75}.opacity-\\\\[0\\\\.20\\\\]{\n opacity:.2}.opacity-25{\n opacity:.25}.opacity-50{\n opacity:.5}.outline-none{\n outline:2px solid transparent;\n outline-offset:2px}.outline{\n outline-style:solid}.blur{\n --tw-blur:blur(8px)}.blur,.filter{\n filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{\n transition-duration:.15s;\n transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;\n transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;\n transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;\n transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{\n transition-duration:.15s;\n transition-property:all;\n transition-timing-function:cubic-bezier(.4,0,.2,1)}.selection\\\\:tracking-\\\\[0\\\\.0012em\\\\] ::-moz-selection{\n letter-spacing:.0012em}.selection\\\\:tracking-\\\\[0\\\\.0012em\\\\] ::selection{\n letter-spacing:.0012em}.selection\\\\:tracking-\\\\[0\\\\.0012em\\\\]::-moz-selection{\n letter-spacing:.0012em}.selection\\\\:tracking-\\\\[0\\\\.0012em\\\\]::selection{\n letter-spacing:.0012em}.last\\\\:p-0:last-child{\n padding:0}.hover\\\\:rounded-lg:hover{\n border-radius:.5rem}.hover\\\\:bg-black\\\\/\\\\[0\\\\.02\\\\]:hover{\n background-color:rgba(0,0,0,.02)}.hover\\\\:text-primary:hover{\n color:var(--pnpsearch-internal-colorPrimary,#7c4dff)}.hover\\\\:text-primaryHover:hover{\n color:var(--pnpsearch-internal-colorPrimaryHover,#651fff)}.hover\\\\:underline:hover{\n text-decoration-line:underline}.focus\\\\:shadow-none:focus{\n --tw-shadow:0 0 #0000;\n --tw-shadow-colored:0 0 #0000;\n box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\\\:outline:focus{\n outline-style:solid}.focus\\\\:outline-2:focus{\n outline-width:2px}.focus\\\\:ring-transparent:focus{\n --tw-ring-color:transparent}.focus\\\\:ring-offset-0:focus{\n --tw-ring-offset-width:0px}.focus\\\\:ring-offset-inherit:focus{\n --tw-ring-offset-color:inherit}.focus-visible\\\\:outline:focus-visible{\n outline-style:solid}.focus-visible\\\\:outline-2:focus-visible{\n outline-width:2px}.aria-selected\\\\:font-bold[aria-selected=true]{\n font-weight:700}.dark .dark\\\\:bg-primaryBackgroundColorDark{\n background-color:var(--pnpsearch-internal-colorBackgroundDarkPrimary,#202831)}.dark .dark\\\\:bg-opacity-0{\n --tw-bg-opacity:0}.dark .dark\\\\:fill-textColorDark{\n fill:var(--pnpsearch-internal-textColorDark,#fff)}.dark .dark\\\\:text-textColorDark{\n color:var(--pnpsearch-internal-textColorDark,#fff)}.dark .dark\\\\:text-textColor{\n color:var(--pnpsearch-internal-textColor,#1e252b)}.dark .dark\\\\:placeholder-textColorDark::-moz-placeholder{\n color:var(--pnpsearch-internal-textColorDark,#fff)}.dark .dark\\\\:placeholder-textColorDark::placeholder{\n color:var(--pnpsearch-internal-textColorDark,#fff)}.dark .dark\\\\:placeholder-opacity-50::-moz-placeholder{\n --tw-placeholder-opacity:0.5}.dark .dark\\\\:placeholder-opacity-50::placeholder{\n --tw-placeholder-opacity:0.5}.dark .dark\\\\:opacity-\\\\[1\\\\]{\n opacity:1}.dark .dark\\\\:hover\\\\:text-black:hover{\n --tw-text-opacity:1;\n color:rgb(0 0 0/var(--tw-text-opacity))}.dark .dark\\\\:active\\\\:text-textColor:active,.dark .dark\\\\:hover\\\\:aria-selected\\\\:text-textColor[aria-selected=true]:hover,.dark .dark\\\\:hover\\\\:text-textColor:hover{\n color:var(--pnpsearch-internal-textColor,#1e252b)} \n`]", - "description": "exports lit-element css" - } - ], - "exports": [ - { - "kind": "js", - "name": "styles", - "declaration": { - "name": "styles", - "module": "src/styles/tailwind-styles-css.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/styles/tailwind-styles.module.ts", - "declarations": [ - { - "kind": "variable", - "name": "styles", - "type": { - "text": "CSSResult[]" - }, - "default": "[\r\n css`\r\n @tailwind base;\r\n @tailwind components;\r\n @tailwind utilities;\r\n @tailwind screens; \r\n`]", - "description": "exports lit-element css" - } - ], - "exports": [ - { - "kind": "js", - "name": "styles", - "declaration": { - "name": "styles", - "module": "src/styles/tailwind-styles.module.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/utils/version.ts", - "declarations": [ - { - "kind": "variable", - "name": "PACKAGE_VERSION", - "type": { - "text": "string" - }, - "default": "\"[VERSION]\"" - } - ], - "exports": [ - { - "kind": "js", - "name": "PACKAGE_VERSION", - "declaration": { - "name": "PACKAGE_VERSION", - "module": "src/utils/version.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/components/adaptive-card/AdaptiveCardComponent.ts", - "declarations": [ { "kind": "class", - "description": "Process adaptive card content from an external file", - "name": "AdaptiveCardComponent", + "description": "", + "name": "BaseComponent", "members": [ - { - "kind": "field", - "name": "fileUrl", - "type": { - "text": "string" - }, - "description": "The file URL to fetch", - "attribute": "url" - }, - { - "kind": "field", - "name": "fileFormat", - "type": { - "text": "FileFormat" - }, - "description": "The file format to load", - "attribute": "format" - }, - { - "kind": "field", - "name": "fallbackImageUrl", - "type": { - "text": "string" - }, - "description": "The fallback image URL", - "attribute": "fallback-img-url" - }, - { - "kind": "field", - "name": "cardContext", - "type": { - "text": "object" - }, - "description": "The data context to use to render the card", - "attribute": "context" - }, - { - "kind": "field", - "name": "cardContent", - "type": { - "text": "string" - }, - "description": "The raw adaptive card content as string (i.e. JSON stringified)", - "attribute": "content" - }, - { - "kind": "field", - "name": "content", - "type": { - "text": "HTMLElement" - }, - "description": "The file content to display\r\nIMPORTANT: This must be an HTMLElement instead of a string to be able to render event listeners added dynamically by the adaptivecards library (ex: play videos)." - }, - { - "kind": "method", - "name": "_processAdaptiveCard", - "privacy": "private" - }, { "kind": "field", "name": "theme", "attribute": "theme", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "reflects": true }, { "kind": "field", @@ -1826,11 +1336,7 @@ }, "default": "false", "description": "Enable the debug to explore data from context", - "attribute": "enable-debug", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "attribute": "enable-debug" }, { "kind": "field", @@ -1839,11 +1345,7 @@ "text": "boolean" }, "default": "false", - "description": "Flag indicating if data have been rendered at least once", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Flag indicating if data have been rendered at least once" }, { "kind": "field", @@ -1851,11 +1353,7 @@ "type": { "text": "boolean" }, - "default": "false", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "default": "false" }, { "kind": "field", @@ -1866,11 +1364,7 @@ "default": "false", "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", "attribute": "initialized", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "reflects": true }, { "kind": "field", @@ -1879,11 +1373,7 @@ "text": "Map}>" }, "privacy": "public", - "default": "new Map}>()", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "default": "new Map}>()" }, { "kind": "field", @@ -1891,41 +1381,25 @@ "type": { "text": "Error" }, - "privacy": "public", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "public" }, { "kind": "field", "name": "scopedElements", "static": true, - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "readonly": true }, { "kind": "field", "name": "themeStyles", "static": true, "description": "Returns styles from theme (i.e. define CSS variables)", - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "readonly": true }, { "kind": "method", "name": "renderDebugMode", - "privacy": "protected", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "protected" }, { "kind": "method", @@ -1938,20 +1412,12 @@ "text": "any" } } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", "name": "toggleDebugData", - "privacy": "private", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "private" }, { "kind": "method", @@ -1971,11 +1437,7 @@ "description": "the bindings to perform" } ], - "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)" }, { "kind": "method", @@ -1988,11 +1450,7 @@ "text": "IComponentBinding[]" } } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", @@ -2003,11 +1461,7 @@ "text": "" } }, - "description": "Get CSS variables values for the component predefined variables", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Get CSS variables values for the component predefined variables" }, { "kind": "method", @@ -2020,20 +1474,12 @@ "text": "ILocalizedString | string" } } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", "name": "setFASTColors", - "privacy": "private", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "private" }, { "kind": "method", @@ -2052,11 +1498,7 @@ "text": "string" } } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", @@ -2106,11 +1548,7 @@ } ], "description": "Override of default method to support 'composed' flag", - "privacy": "protected", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "protected" }, { "kind": "method", @@ -2144,11 +1582,7 @@ "description": "the exception raised if any error occures" } ], - "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/" }, { "kind": "method", @@ -2175,61 +1609,13 @@ } } ], - "description": "Waits for a component to be present on the page and initialized to perform event binding", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Waits for a component to be present on the page and initialized to perform event binding" } ], "attributes": [ - { - "name": "url", - "type": { - "text": "string" - }, - "description": "The file URL to fetch", - "fieldName": "fileUrl" - }, - { - "name": "format", - "type": { - "text": "FileFormat" - }, - "description": "The file format to load", - "fieldName": "fileFormat" - }, - { - "name": "fallback-img-url", - "type": { - "text": "string" - }, - "description": "The fallback image URL", - "fieldName": "fallbackImageUrl" - }, - { - "name": "context", - "type": { - "text": "object" - }, - "description": "The data context to use to render the card", - "fieldName": "cardContext" - }, - { - "name": "content", - "type": { - "text": "string" - }, - "description": "The raw adaptive card content as string (i.e. JSON stringified)", - "fieldName": "cardContent" - }, { "name": "theme", - "fieldName": "theme", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "fieldName": "theme" }, { "name": "enable-debug", @@ -2238,11 +1624,7 @@ }, "default": "false", "description": "Enable the debug to explore data from context", - "fieldName": "enableDebugMode", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "fieldName": "enableDebugMode" }, { "name": "initialized", @@ -2251,690 +1633,964 @@ }, "default": "false", "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "fieldName": "isInitialized", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "fieldName": "isInitialized" + } + ], + "mixins": [ + { + "name": "ScopedElementsMixin", + "package": "@open-wc/scoped-elements" } ], "superclass": { + "name": "MgtTemplatedComponentBase", + "module": "src/components/BaseComponent.ts" + } + } + ], + "exports": [ + { + "kind": "js", + "name": "MgtTemplatedComponentBase", + "declaration": { + "name": "MgtTemplatedComponentBase", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "js", + "name": "BaseComponent", + "declaration": { "name": "BaseComponent", - "module": "/src/components/BaseComponent" + "module": "src/components/BaseComponent.ts" } } + ] + }, + { + "kind": "javascript-module", + "path": "src/styles/tailwind-styles-css.ts", + "declarations": [ + { + "kind": "variable", + "name": "styles", + "type": { + "text": "CSSResult[]" + }, + "default": "[\r\n css`\r/* ! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:var(--pnpsearch-internal-fontFamilySecondary),Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}\n\n[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],select,textarea{\n --tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;\n background-color:#fff;\n border-color:#6b7280;\n border-radius:0;\n border-width:1px;\n font-size:1rem;\n line-height:1.5rem;\n padding:.5rem .75rem}\n\n[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,select:focus,textarea:focus{\n --tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width:0px;\n --tw-ring-offset-color:#fff;\n --tw-ring-color:#2563eb;\n --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n border-color:#2563eb;\n box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);\n outline:2px solid transparent;\n outline-offset:2px}\n\ninput::-moz-placeholder,textarea::-moz-placeholder{\n color:#6b7280;\n opacity:1}\n\ninput::placeholder,textarea::placeholder{\n color:#6b7280;\n opacity:1}\n\n::-webkit-datetime-edit-fields-wrapper{\n padding:0}\n\n::-webkit-date-and-time-value{\n min-height:1.5em}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{\n padding-bottom:0;\n padding-top:0}\n\nselect{\n background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position:right .5rem center;\n background-repeat:no-repeat;\n background-size:1.5em 1.5em;\n padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}\n\n[multiple]{\n background-image:none;\n background-position:0 0;\n background-repeat:unset;\n background-size:initial;\n padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}\n\n[type=checkbox],[type=radio]{\n --tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;\n background-color:#fff;\n background-origin:border-box;\n border-color:#6b7280;\n border-width:1px;\n color:#2563eb;\n display:inline-block;\n flex-shrink:0;\n height:1rem;\n padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;\n vertical-align:middle;\n width:1rem}\n\n[type=checkbox]{\n border-radius:0}\n\n[type=radio]{\n border-radius:100%}\n\n[type=checkbox]:focus,[type=radio]:focus{\n --tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width:2px;\n --tw-ring-offset-color:#fff;\n --tw-ring-color:#2563eb;\n --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);\n outline:2px solid transparent;\n outline-offset:2px}\n\n[type=checkbox]:checked,[type=radio]:checked{\n background-color:currentColor;\n background-position:50%;\n background-repeat:no-repeat;\n background-size:100% 100%;\n border-color:transparent}\n\n[type=checkbox]:checked{\n background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E\")}\n\n[type=radio]:checked{\n background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E\")}\n\n[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{\n background-color:currentColor;\n border-color:transparent}\n\n[type=checkbox]:indeterminate{\n background-color:currentColor;\n background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E\");\n background-position:50%;\n background-repeat:no-repeat;\n background-size:100% 100%;\n border-color:transparent}\n\n[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{\n background-color:currentColor;\n border-color:transparent}\n\n[type=file]{\n background:unset;\n border-color:inherit;\n border-radius:0;\n border-width:0;\n font-size:unset;\n line-height:inherit;\n padding:0}\n\n[type=file]:focus{\n outline:1px solid ButtonText;\n outline:1px auto -webkit-focus-ring-color}\n\n*,:after,:before{\n --tw-border-spacing-x:0;\n --tw-border-spacing-y:0;\n --tw-translate-x:0;\n --tw-translate-y:0;\n --tw-rotate:0;\n --tw-skew-x:0;\n --tw-skew-y:0;\n --tw-scale-x:1;\n --tw-scale-y:1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness:proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width:0px;\n --tw-ring-offset-color:#fff;\n --tw-ring-color:rgba(59,130,246,.5);\n --tw-ring-offset-shadow:0 0 #0000;\n --tw-ring-shadow:0 0 #0000;\n --tw-shadow:0 0 #0000;\n --tw-shadow-colored:0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: }\n\n::backdrop{\n --tw-border-spacing-x:0;\n --tw-border-spacing-y:0;\n --tw-translate-x:0;\n --tw-translate-y:0;\n --tw-rotate:0;\n --tw-skew-x:0;\n --tw-skew-y:0;\n --tw-scale-x:1;\n --tw-scale-y:1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness:proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width:0px;\n --tw-ring-offset-color:#fff;\n --tw-ring-color:rgba(59,130,246,.5);\n --tw-ring-offset-shadow:0 0 #0000;\n --tw-ring-shadow:0 0 #0000;\n --tw-shadow:0 0 #0000;\n --tw-shadow-colored:0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: }.container{\n width:100%}@media (min-width:640px){\n\n .container{\n max-width:640px}}@media (min-width:768px){\n\n .container{\n max-width:768px}}@media (min-width:1024px){\n\n .container{\n max-width:1024px}}@media (min-width:1280px){\n\n .container{\n max-width:1280px}}@media (min-width:1536px){\n\n .container{\n max-width:1536px}}.sr-only{\n clip:rect(0,0,0,0);\n border-width:0;\n height:1px;\n margin:-1px;\n overflow:hidden;\n padding:0;\n position:absolute;\n white-space:nowrap;\n width:1px}.pointer-events-none{\n pointer-events:none}.visible{\n visibility:visible}.invisible{\n visibility:hidden}.static{\n position:static}.absolute{\n position:absolute}.relative{\n position:relative}.sticky{\n position:sticky}.top-\\\\[10px\\\\]{\n top:10px}.right-\\\\[10px\\\\]{\n right:10px}.top-0{\n top:0}.bottom-0{\n bottom:0}.z-10{\n z-index:10}.mb-2{\n margin-bottom:.5rem}.mb-4{\n margin-bottom:1rem}.mb-8{\n margin-bottom:2rem}.ml-auto{\n margin-left:auto}.mr-auto{\n margin-right:auto}.ml-4{\n margin-left:1rem}.mt-6{\n margin-top:1.5rem}.mb-6{\n margin-bottom:1.5rem}.mt-4{\n margin-top:1rem}.ml-1{\n margin-left:.25rem}.mr-1{\n margin-right:.25rem}.mt-1{\n margin-top:.25rem}.mb-1{\n margin-bottom:.25rem}.ml-0{\n margin-left:0}.mr-0{\n margin-right:0}.mr-0\\\\.5{\n margin-right:.125rem}.mt-2{\n margin-top:.5rem}.ml-3{\n margin-left:.75rem}.block{\n display:block}.inline-block{\n display:inline-block}.flex{\n display:flex}.table{\n display:table}.grid{\n display:grid}.h-\\\\[65vh\\\\]{\n height:65vh}.h-1{\n height:.25rem}.h-full{\n height:100%}.h-3{\n height:.75rem}.h-9{\n height:2.25rem}.h-5{\n height:1.25rem}.h-8{\n height:2rem}.h-7{\n height:1.75rem}.h-\\\\[72px\\\\]{\n height:72px}.h-6{\n height:1.5rem}.h-\\\\[22px\\\\]{\n height:22px}.max-h-80{\n max-height:20rem}.min-h-\\\\[176px\\\\]{\n min-height:176px}.min-h-\\\\[48px\\\\]{\n min-height:48px}.w-full{\n width:100%}.w-1{\n width:.25rem}.w-14{\n width:3.5rem}.w-96{\n width:24rem}.w-40{\n width:10rem}.w-8{\n width:2rem}.w-7{\n width:1.75rem}.w-\\\\[126px\\\\]{\n width:126px}.w-6{\n width:1.5rem}.w-\\\\[22px\\\\]{\n width:22px}.w-3{\n width:.75rem}.w-44{\n width:11rem}.w-\\\\[16px\\\\]{\n width:16px}.w-\\\\[24px\\\\]{\n width:24px}.min-w-full{\n min-width:100%}.min-w-min{\n min-width:-moz-min-content;\n min-width:min-content}.min-w-\\\\[140px\\\\]{\n min-width:140px}.max-w-7xl{\n max-width:80rem}.max-w-\\\\[126px\\\\]{\n max-width:126px}@keyframes fadein{\n\n 0%{\n opacity:0}\n\n to{\n opacity:1}}.animate-fadein{\n animation:fadein .8s ease}@keyframes bounce{\n\n 0%,to{\n animation-timing-function:cubic-bezier(.8,0,1,1);\n transform:translateY(-25%)}\n\n 50%{\n animation-timing-function:cubic-bezier(0,0,.2,1);\n transform:none}}.animate-bounce{\n animation:bounce 1s infinite}@keyframes shimmer{\n\n 0%,to{\n opacity:1}\n\n 50%{\n opacity:.5}}.animate-shimmer{\n animation:shimmer 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{\n cursor:pointer}.cursor-not-allowed{\n cursor:not-allowed}.list-disc{\n list-style-type:disc}.grid-flow-col{\n grid-auto-flow:column}.grid-cols-searchResult{\n grid-template-columns:32px 2fr 0fr}.flex-col{\n flex-direction:column}.flex-wrap{\n flex-wrap:wrap}.items-start{\n align-items:flex-start}.items-end{\n align-items:flex-end}.items-center{\n align-items:center}.justify-end{\n justify-content:flex-end}.justify-center{\n justify-content:center}.justify-between{\n justify-content:space-between}.justify-around{\n justify-content:space-around}.gap-2{\n gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){\n --tw-space-x-reverse:0;\n margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));\n margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){\n --tw-space-x-reverse:0;\n margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));\n margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){\n --tw-space-y-reverse:0;\n margin-bottom:calc(.5rem*var(--tw-space-y-reverse));\n margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){\n --tw-space-x-reverse:0;\n margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));\n margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){\n --tw-space-x-reverse:0;\n margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));\n margin-right:calc(1rem*var(--tw-space-x-reverse))}.overflow-auto{\n overflow:auto}.rounded{\n border-radius:.25rem}.rounded-full{\n border-radius:9999px}.rounded-lg{\n border-radius:.5rem}.rounded-xl{\n border-radius:.75rem}.rounded-\\\\[50\\\\%\\\\]{\n border-radius:50%}.rounded-none{\n border-radius:0}.border-0{\n border-width:0}.border-t-\\\\[1px\\\\]{\n border-top-width:1px}.border-l-2{\n border-left-width:2px}.border-b{\n border-bottom-width:1px}.border-t{\n border-top-width:1px}.border-red-500{\n --tw-border-opacity:1;\n border-color:rgb(239 68 68/var(--tw-border-opacity))}.border-gray-400{\n --tw-border-opacity:1;\n border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-l-red-600{\n --tw-border-opacity:1;\n border-left-color:rgb(220 38 38/var(--tw-border-opacity))}.border-opacity-25{\n --tw-border-opacity:0.25}.bg-primary{\n background-color:var(--pnpsearch-internal-colorPrimary,#7c4dff)}.bg-slate-200{\n --tw-bg-opacity:1;\n background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-\\\\[var\\\\(--gray200\\\\)\\\\]{\n background-color:var(--gray200)}.bg-transparent{\n background-color:transparent}.bg-white{\n --tw-bg-opacity:1;\n background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-black\\\\/\\\\[0\\\\.02\\\\]{\n background-color:rgba(0,0,0,.02)}.bg-opacity-60{\n --tw-bg-opacity:0.6}.bg-gradient-to-r{\n background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-cover{\n background-size:cover}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-center{\n background-position:50%}.fill-current{\n fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{\n padding:.5rem}.p-1{\n padding:.25rem}.p-4{\n padding:1rem}.p-8{\n padding:2rem}.p-5{\n padding:1.25rem}.p-0{\n padding:0}.px-2\\\\.5{\n padding-left:.625rem;\n padding-right:.625rem}.px-2{\n padding-left:.5rem;\n padding-right:.5rem}.px-4{\n padding-left:1rem;\n padding-right:1rem}.py-\\\\[18px\\\\]{\n padding-bottom:18px;\n padding-top:18px}.px-3{\n padding-left:.75rem;\n padding-right:.75rem}.py-1{\n padding-bottom:.25rem;\n padding-top:.25rem}.px-6{\n padding-left:1.5rem;\n padding-right:1.5rem}.py-3{\n padding-bottom:.75rem;\n padding-top:.75rem}.py-2{\n padding-bottom:.5rem;\n padding-top:.5rem}.pl-8{\n padding-left:2rem}.pt-12{\n padding-top:3rem}.pb-14{\n padding-bottom:3.5rem}.pt-2{\n padding-top:.5rem}.pb-2{\n padding-bottom:.5rem}.pt-\\\\[3px\\\\]{\n padding-top:3px}.pb-8{\n padding-bottom:2rem}.pl-3{\n padding-left:.75rem}.font-primary{\n font-family:var(--pnpsearch-internal-fontFamilyPrimary),\"Segoe UI\",\"Arial, sans-serif\"}.font-sans{\n font-family:var(--pnpsearch-internal-fontFamilySecondary),Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\"}.text-sm{\n font-size:.875rem;\n line-height:1.25rem}.text-3xl{\n font-size:1.875rem;\n line-height:2.25rem}.text-xl{\n font-size:1.25rem;\n line-height:1.75rem}.text-base{\n font-size:1rem;\n line-height:1.5rem}.font-bold{\n font-weight:700}.font-normal{\n font-weight:400}.font-semibold{\n font-weight:600}.font-medium{\n font-weight:500}.text-primary{\n color:var(--pnpsearch-internal-colorPrimary,#7c4dff)}.text-textColor{\n color:var(--pnpsearch-internal-textColor,#1e252b)}.text-transparent{\n color:transparent}.text-white{\n --tw-text-opacity:1;\n color:rgb(255 255 255/var(--tw-text-opacity))}.text-black{\n --tw-text-opacity:1;\n color:rgb(0 0 0/var(--tw-text-opacity))}.text-textColorDark{\n color:var(--pnpsearch-internal-textColorDark,#fff)}.opacity-75{\n opacity:.75}.opacity-\\\\[0\\\\.20\\\\]{\n opacity:.2}.opacity-25{\n opacity:.25}.opacity-50{\n opacity:.5}.outline-none{\n outline:2px solid transparent;\n outline-offset:2px}.outline{\n outline-style:solid}.blur{\n --tw-blur:blur(8px)}.blur,.filter{\n filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{\n transition-duration:.15s;\n transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;\n transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;\n transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;\n transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{\n transition-duration:.15s;\n transition-property:all;\n transition-timing-function:cubic-bezier(.4,0,.2,1)}.line-clamp-4{\n -webkit-box-orient:vertical;\n -webkit-line-clamp:4;\n display:-webkit-box;\n overflow:hidden}.selection\\\\:tracking-\\\\[0\\\\.0012em\\\\] ::-moz-selection{\n letter-spacing:.0012em}.selection\\\\:tracking-\\\\[0\\\\.0012em\\\\] ::selection{\n letter-spacing:.0012em}.selection\\\\:tracking-\\\\[0\\\\.0012em\\\\]::-moz-selection{\n letter-spacing:.0012em}.selection\\\\:tracking-\\\\[0\\\\.0012em\\\\]::selection{\n letter-spacing:.0012em}.last\\\\:p-0:last-child{\n padding:0}.hover\\\\:rounded-lg:hover{\n border-radius:.5rem}.hover\\\\:bg-black\\\\/\\\\[0\\\\.02\\\\]:hover{\n background-color:rgba(0,0,0,.02)}.hover\\\\:text-primary:hover{\n color:var(--pnpsearch-internal-colorPrimary,#7c4dff)}.hover\\\\:text-primaryHover:hover{\n color:var(--pnpsearch-internal-colorPrimaryHover,#651fff)}.hover\\\\:underline:hover{\n text-decoration-line:underline}.focus\\\\:shadow-none:focus{\n --tw-shadow:0 0 #0000;\n --tw-shadow-colored:0 0 #0000;\n box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\\\:outline:focus{\n outline-style:solid}.focus\\\\:outline-2:focus{\n outline-width:2px}.focus\\\\:ring-transparent:focus{\n --tw-ring-color:transparent}.focus\\\\:ring-offset-0:focus{\n --tw-ring-offset-width:0px}.focus\\\\:ring-offset-inherit:focus{\n --tw-ring-offset-color:inherit}.focus-visible\\\\:outline:focus-visible{\n outline-style:solid}.focus-visible\\\\:outline-2:focus-visible{\n outline-width:2px}.aria-selected\\\\:font-bold[aria-selected=true]{\n font-weight:700}.dark .dark\\\\:bg-primaryBackgroundColorDark{\n background-color:var(--pnpsearch-internal-colorBackgroundDarkPrimary,#202831)}.dark .dark\\\\:bg-opacity-0{\n --tw-bg-opacity:0}.dark .dark\\\\:fill-textColorDark{\n fill:var(--pnpsearch-internal-textColorDark,#fff)}.dark .dark\\\\:text-textColorDark{\n color:var(--pnpsearch-internal-textColorDark,#fff)}.dark .dark\\\\:text-textColor{\n color:var(--pnpsearch-internal-textColor,#1e252b)}.dark .dark\\\\:placeholder-textColorDark::-moz-placeholder{\n color:var(--pnpsearch-internal-textColorDark,#fff)}.dark .dark\\\\:placeholder-textColorDark::placeholder{\n color:var(--pnpsearch-internal-textColorDark,#fff)}.dark .dark\\\\:placeholder-opacity-50::-moz-placeholder{\n --tw-placeholder-opacity:0.5}.dark .dark\\\\:placeholder-opacity-50::placeholder{\n --tw-placeholder-opacity:0.5}.dark .dark\\\\:opacity-\\\\[1\\\\]{\n opacity:1}.dark .dark\\\\:hover\\\\:text-black:hover{\n --tw-text-opacity:1;\n color:rgb(0 0 0/var(--tw-text-opacity))}.dark .dark\\\\:active\\\\:text-textColor:active,.dark .dark\\\\:hover\\\\:aria-selected\\\\:text-textColor[aria-selected=true]:hover,.dark .dark\\\\:hover\\\\:text-textColor:hover{\n color:var(--pnpsearch-internal-textColor,#1e252b)} \n`]", + "description": "exports lit-element css" + } ], "exports": [ { "kind": "js", - "name": "AdaptiveCardComponent", + "name": "styles", "declaration": { - "name": "AdaptiveCardComponent", - "module": "src/components/adaptive-card/AdaptiveCardComponent.ts" + "name": "styles", + "module": "src/styles/tailwind-styles-css.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/language-provider/LanguageProvider.ts", + "path": "src/styles/tailwind-styles.module.ts", "declarations": [ { - "kind": "class", - "description": "", - "name": "LanguageProvider", - "members": [ - { - "kind": "field", - "name": "dateHelper", - "type": { - "text": "DateHelper" - }, - "privacy": "private", - "default": "new DateHelper()" - }, - { - "kind": "method", - "name": "setLanguage", - "privacy": "public", - "return": { - "type": { - "text": "Promise" - } - }, - "parameters": [ - { - "name": "locale", - "type": { - "text": "string" - } - } - ] - } - ] + "kind": "variable", + "name": "styles", + "type": { + "text": "CSSResult[]" + }, + "default": "[\r\n css`\r\n @tailwind base;\r\n @tailwind components;\r\n @tailwind utilities;\r\n @tailwind screens; \r\n`]", + "description": "exports lit-element css" } ], "exports": [ { "kind": "js", - "name": "LanguageProvider", + "name": "styles", "declaration": { - "name": "LanguageProvider", - "module": "src/components/language-provider/LanguageProvider.ts" + "name": "styles", + "module": "src/styles/tailwind-styles.module.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/language-provider/LanguageProviderComponent.ts", + "path": "src/utils/version.ts", "declarations": [ { - "kind": "class", - "description": "", - "name": "LanguageProviderComponent", - "members": [ - { - "kind": "field", - "name": "defaultLocale", - "type": { - "text": "string" - }, - "description": "The default locale to use for components on the page", - "attribute": "locale", - "reflects": true - }, + "kind": "variable", + "name": "PACKAGE_VERSION", + "type": { + "text": "string" + }, + "default": "\"[VERSION]\"" + } + ], + "exports": [ + { + "kind": "js", + "name": "PACKAGE_VERSION", + "declaration": { + "name": "PACKAGE_VERSION", + "module": "src/utils/version.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-adaptive-card.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "AdaptiveCardComponent", + "module": "/src/components/adaptive-card/AdaptiveCardComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-checkbox-filter.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "CheckboxFilterComponent", + "module": "/src/components/search-filters/sub-components/filters/checkbox-filter/CheckboxFilterComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-date-filter.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "DateFilterComponent", + "module": "/src/components/search-filters/sub-components/filters/date-filter/DateFilterComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-error-message.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "ErrorMessageComponent", + "module": "/src/components/search-results/sub-components/error-message/ErrorMessageComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-language-provider.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "LanguageProviderComponent", + "module": "/src/components/language-provider/LanguageProviderComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-pagination.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "PaginationComponent", + "module": "/src/components/search-results/sub-components/pagination/PaginationComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-search-filters.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "SearchFiltersComponent", + "module": "/src/components/search-filters/SearchFiltersComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-search-infos.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "SearchInfosComponents", + "module": "/src/components/search-infos/SearchInfosComponents" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-search-input.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "SearchInputComponent", + "module": "/src/components/search-input/SearchInputComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-search-results.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "SearchResultsComponent", + "module": "/src/components/search-results/SearchResultsComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-search-sort.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "SearchSortComponent", + "module": "/src/components/search-filters/sub-components/search-sort/SearchSortComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-search-verticals.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "SearchVerticalsComponent", + "module": "/src/components/search-verticals/SearchVerticalsComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/exports/define/pnp-video-player.ts", + "declarations": [], + "exports": [ + { + "kind": "custom-element-definition", + "declaration": { + "name": "VideoPlayerComponent", + "module": "/src/components/video-player/VideoPlayerComponent" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/models/events/EventType.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/events/ISearchFiltersEventData.ts.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/events/ISearchInputEventData.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/events/ISearchResultsEventData.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/events/ISearchSortEventData.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/events/ISearchVerticalEventData.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "ISearchVerticalEventData", + "members": [ { "kind": "field", - "name": "showLanguagePicker", + "name": "selectedVertical", "type": { - "text": "boolean" + "text": "IDataVertical" }, - "description": "Use this property for testing purpose to select a specific locale", - "attribute": "show-picker" + "description": "Current selected vertical key" }, { "kind": "field", - "name": "languageProvider", + "name": "eventType", "type": { - "text": "LanguageProvider" - }, - "default": "new LanguageProvider()" - }, - { - "kind": "method", - "name": "_onSelectLanguage", - "privacy": "private", - "parameters": [ - { - "name": "e", - "type": { - "text": "Event" - } - } - ] - }, - { - "kind": "field", - "name": "theme", - "attribute": "theme", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "enableDebugMode", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Enable the debug to explore data from context", - "attribute": "enable-debug", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "renderedOnce", - "type": { - "text": "boolean" + "text": "ComponentEventType" }, - "default": "false", - "description": "Flag indicating if data have been rendered at least once", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, + "description": "Type of this event" + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "ISearchVerticalEventData", + "declaration": { + "name": "ISearchVerticalEventData", + "module": "src/models/events/ISearchVerticalEventData.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/models/search/IMicrosoftSearchDataSourceData.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/search/IMicrosoftSearchRequest.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/search/IMicrosoftSearchResponse.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/search/IResultTemplates.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/services/microsoftSearchService/IMicrosoftSearchService.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/services/microsoftSearchService/MicrosoftSearchService.ts", + "declarations": [ + { + "kind": "variable", + "name": "EntityTypesValidCombination", + "type": { + "text": "array" + }, + "default": "[EntityType.Drive, EntityType.DriveItem, EntityType.Site, EntityType.List, EntityType.ListItem]" + }, + { + "kind": "class", + "description": "", + "name": "MicrosoftSearchService", + "members": [ { "kind": "field", - "name": "showDebugData", + "name": "_useBetaEndPoint", "type": { "text": "boolean" }, - "default": "false", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "private" }, { "kind": "field", - "name": "isInitialized", + "name": "useBetaEndPoint", "type": { "text": "boolean" }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "attribute": "initialized", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "public" }, { "kind": "field", - "name": "_eventHanlders", + "name": "controller", "type": { - "text": "Map}>" + "text": "AbortController" }, - "privacy": "public", - "default": "new Map}>()", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "private" }, { "kind": "field", - "name": "componentError", + "name": "_microsoftSearchUrl", "type": { - "text": "Error" + "text": "string" }, - "privacy": "public", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "scopedElements", - "static": true, - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "themeStyles", - "static": true, - "description": "Returns styles from theme (i.e. define CSS variables)", - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "method", - "name": "renderDebugMode", - "privacy": "protected", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "method", - "name": "renderDebugData", - "privacy": "protected", - "parameters": [ - { - "name": "data", - "type": { - "text": "any" - } - } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "method", - "name": "toggleDebugData", "privacy": "private", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "default": "\"https://graph.microsoft.com/v1.0/search/query\"" }, { "kind": "method", - "name": "bindComponents", - "privacy": "protected", + "name": "search", + "privacy": "public", "return": { "type": { - "text": "Promise" + "text": "Promise" } }, "parameters": [ { - "name": "bindings", + "name": "searchQuery", "type": { - "text": "IComponentBinding[]" - }, - "description": "the bindings to perform" - } - ], - "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "method", - "name": "unbindComponents", - "privacy": "protected", - "parameters": [ + "text": "IMicrosoftSearchQuery" + } + }, { - "name": "bindings", + "name": "culture", + "optional": true, "type": { - "text": "IComponentBinding[]" + "text": "string" } } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "getTheme", - "privacy": "protected", - "return": { - "type": { - "text": "" - } - }, - "description": "Get CSS variables values for the component predefined variables", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, + "name": "abortRequest", + "privacy": "public" + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "EntityTypesValidCombination", + "declaration": { + "name": "EntityTypesValidCombination", + "module": "src/services/microsoftSearchService/MicrosoftSearchService.ts" + } + }, + { + "kind": "js", + "name": "MicrosoftSearchService", + "declaration": { + "name": "MicrosoftSearchService", + "module": "src/services/microsoftSearchService/MicrosoftSearchService.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/models/common/BuiltinTemplate.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/IComponentBinding.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/IDataFilter.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/IDataFilterConfiguration.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/IDataSourceData.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/IDataVertical.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/IDataVerticalConfiguration.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/IGraphBatch.ts", + "declarations": [ + { + "kind": "variable", + "name": "BATCH_SIZE_LIMIT", + "type": { + "text": "number" + }, + "default": "20" + } + ], + "exports": [ + { + "kind": "js", + "name": "BATCH_SIZE_LIMIT", + "declaration": { + "name": "BATCH_SIZE_LIMIT", + "module": "src/models/common/IGraphBatch.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/models/common/ILocalizedString.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/ISearchedItem.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/ISortFieldConfiguration.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/models/common/IThemeDefinition.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/services/tokenService/ITokenService.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/services/tokenService/TokenService.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "TokenService", + "members": [ { - "kind": "method", - "name": "getLocalizedString", - "privacy": "protected", - "parameters": [ - { - "name": "string", - "type": { - "text": "ILocalizedString | string" - } - } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "kind": "field", + "name": "genericTokenRegexp", + "privacy": "private", + "default": "/{[^{]+?[^\\\\]}/gi", + "description": "This regex only matches expressions enclosed with single, not escaped, curly braces '{}'" }, { - "kind": "method", - "name": "setFASTColors", + "kind": "field", + "name": "tokenValuesList", + "type": { + "text": "{ [key: string]: string }" + }, "privacy": "private", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "default": "{\r\n [BuiltinTokenNames.searchTerms]: undefined,\r\n [BuiltinTokenNames.verticals]: undefined\r\n }", + "description": "The list of static tokens values set by the Web Part as context" }, { "kind": "method", - "name": "hasPropertyUpdated", - "privacy": "protected", + "name": "setTokenValue", + "privacy": "public", "parameters": [ { - "name": "changedProperties", + "name": "token", "type": { - "text": "PropertyValueMap" + "text": "string" } }, { - "name": "propertyName", + "name": "value", "type": { - "text": "string" + "text": "any" } } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "fireCustomEvent", + "name": "getTokenValue", + "privacy": "public", "return": { "type": { - "text": "*" + "text": "string" } }, "parameters": [ { - "name": "eventName", + "name": "token", "type": { "text": "string" } - }, - { - "name": "detail", - "optional": true, - "type": { - "text": "*" - } - }, - { - "name": "bubbles", - "default": "false", - "optional": true, - "type": { - "text": "boolean" - } - }, - { - "name": "cancelable", - "default": "false", - "optional": true, - "type": { - "text": "boolean" - } - }, - { - "name": "composed", - "default": "false", - "optional": true, - "type": { - "text": "boolean" - } } - ], - "description": "Override of default method to support 'composed' flag", - "privacy": "protected", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "timeoutPromise", - "privacy": "private", + "name": "resolveTokens", + "privacy": "public", "return": { "type": { - "text": "" + "text": "string" } }, "parameters": [ { - "name": "promise", - "type": { - "text": "Promise" - }, - "description": "the promise to timeout" - }, - { - "name": "timeout", - "type": { - "text": "number" - }, - "description": "the timeout delay" - }, - { - "name": "exception", + "name": "inputString", "type": { - "text": "unknown" - }, - "description": "the exception raised if any error occures" + "text": "string" + } + } + ] + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "TokenService", + "declaration": { + "name": "TokenService", + "module": "src/services/tokenService/TokenService.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/services/templateService/ITemplateService.ts", + "declarations": [], + "exports": [] + }, + { + "kind": "javascript-module", + "path": "src/services/templateService/TemplateService.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "TemplateService", + "members": [ + { + "kind": "field", + "name": "_adaptiveCardsNS", + "privacy": "private" + }, + { + "kind": "field", + "name": "_markdownIt", + "privacy": "private" + }, + { + "kind": "field", + "name": "_adaptiveCardsTemplating", + "privacy": "private" + }, + { + "kind": "field", + "name": "_serializationContext", + "privacy": "private" + }, + { + "kind": "method", + "name": "loadAdaptiveCardsResources", + "privacy": "public", + "return": { + "type": { + "text": "Promise" } - ], - "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" } }, { "kind": "method", - "name": "waitForElement", - "privacy": "private", + "name": "getFileContent", + "privacy": "public", "return": { "type": { - "text": "" + "text": "Promise" } }, "parameters": [ { - "name": "binding", + "name": "fileAbsoluteUrl", "type": { - "text": "IComponentBinding" - }, - "description": "the binding detail" + "text": "string" + } + } + ] + }, + { + "kind": "method", + "name": "processAdaptiveCardTemplate", + "privacy": "public", + "return": { + "type": { + "text": "HTMLElement" + } + }, + "parameters": [ + { + "name": "templateContent", + "type": { + "text": "string" + } }, { - "name": "timeout", + "name": "templateContext", + "type": { + "text": "object" + } + }, + { + "name": "theme", "optional": true, "type": { - "text": "number" + "text": "IThemeDefinition" + } + }, + { + "name": "fallbackImageUrl", + "optional": true, + "type": { + "text": "string" } } - ], - "description": "Waits for a component to be present on the page and initialized to perform event binding", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - } - ], - "attributes": [ - { - "name": "locale", - "type": { - "text": "string" - }, - "description": "The default locale to use for components on the page", - "fieldName": "defaultLocale" - }, - { - "name": "show-picker", - "type": { - "text": "boolean" - }, - "description": "Use this property for testing purpose to select a specific locale", - "fieldName": "showLanguagePicker" - }, - { - "name": "theme", - "fieldName": "theme", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { - "name": "enable-debug", - "type": { - "text": "boolean" + "kind": "method", + "name": "processResultTypesFromHtml", + "privacy": "public", + "return": { + "type": { + "text": "HTMLElement" + } }, - "default": "false", - "description": "Enable the debug to explore data from context", - "fieldName": "enableDebugMode", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "parameters": [ + { + "name": "data", + "type": { + "text": "IDataSourceData" + } + }, + { + "name": "templateContent", + "type": { + "text": "HTMLElement" + } + } + ] }, { - "name": "initialized", - "type": { - "text": "boolean" + "kind": "method", + "name": "_getHostConfiguration", + "privacy": "private", + "return": { + "type": { + "text": "{ [key: string]: any }" + } }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "fieldName": "isInitialized", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "parameters": [ + { + "name": "theme", + "optional": true, + "type": { + "text": "IThemeDefinition" + } + } + ] } - ], - "superclass": { - "name": "BaseComponent", - "module": "/src/components/BaseComponent" - } + ] } ], "exports": [ { "kind": "js", - "name": "LanguageProviderComponent", + "name": "TemplateService", "declaration": { - "name": "LanguageProviderComponent", - "module": "src/components/language-provider/LanguageProviderComponent.ts" + "name": "TemplateService", + "module": "src/services/templateService/TemplateService.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/search-filters/SearchFiltersComponent.ts", + "path": "src/components/monaco-editor/MonacoEditorComponent.ts", "declarations": [ { "kind": "class", "description": "", - "name": "SearchFiltersComponent", + "name": "MonacoEditorComponent", "members": [ { "kind": "field", - "name": "searchResultsComponentIds", + "name": "value", "type": { - "text": "string[]" + "text": "IDataSourceData" }, - "default": "[]", - "description": "The connected search results component ids", - "attribute": "search-results-ids" + "attribute": "value" }, { "kind": "field", - "name": "searchVerticalsComponentId", + "name": "editor", "type": { - "text": "string" + "text": "editor.IStandaloneCodeEditor" }, - "description": "The search verticals component ID if connected to a search verticals", - "attribute": "search-verticals-id", - "reflects": true + "default": "null" }, { - "kind": "field", - "name": "filterConfiguration", - "type": { - "text": "IDataFilterConfiguration[]" - }, - "default": "[]", - "description": "The filters configration", - "attribute": "settings" + "kind": "method", + "name": "createEditor", + "privacy": "private" }, { "kind": "field", - "name": "operator", - "type": { - "text": "FilterConditionOperator" - }, - "description": "The default logical operator to use between filters", - "attribute": "operator" - }, - { - "kind": "field", - "name": "availableFilters", - "type": { - "text": "IDataFilterResult[]" - }, - "default": "[]", - "description": "Available filters received from connected search results component" + "name": "theme", + "attribute": "theme", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "allSelectedFilters", + "name": "enableDebugMode", "type": { - "text": "IDataFilter[]" + "text": "boolean" }, - "default": "[]", - "description": "All selected values from all filters combined (not necessarily submitted)" - }, - { - "kind": "field", - "name": "selectedVertical", - "type": { - "text": "IDataVertical" + "default": "false", + "description": "Enable the debug to explore data from context", + "attribute": "enable-debug", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" } }, { "kind": "field", - "name": "disabledFilters", + "name": "renderedOnce", "type": { - "text": "string[]" + "text": "boolean" }, - "privacy": "private", - "description": "The list of disabled filters", - "default": "[]" + "default": "false", + "description": "Flag indicating if data have been rendered at least once", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "allSubmittedFilters", + "name": "showDebugData", "type": { - "text": "IDataFilter[]" + "text": "boolean" }, - "privacy": "public", - "description": "All submitted values from all filters combined", - "default": "[]" + "default": "false", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "previousAvailableFilters", + "name": "isInitialized", "type": { - "text": "IDataFilterResult[]" + "text": "boolean" }, - "privacy": "private", - "description": "The previous applied filters" + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "attribute": "initialized", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "submittedQueryText", + "name": "_eventHanlders", "type": { - "text": "string" + "text": "Map}>" }, "privacy": "public", - "description": "The current query submitted" + "default": "new Map}>()", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "searchResultsEventData", + "name": "componentError", "type": { - "text": "ISearchResultsEventData" + "text": "Error" }, - "privacy": "private" + "privacy": "public", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", @@ -2948,30 +2604,54 @@ }, { "kind": "field", - "name": "strings", - "type": { - "text": "{ [x: string]: string; }" - }, + "name": "themeStyles", + "static": true, + "description": "Returns styles from theme (i.e. define CSS variables)", + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "renderDebugMode", "privacy": "protected", - "readonly": true + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "handleSearchResultsFilters", - "privacy": "public", + "name": "renderDebugData", + "privacy": "protected", "parameters": [ { - "name": "e", + "name": "data", "type": { - "text": "CustomEvent" + "text": "any" } } - ] + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "handleSearchVertical", + "name": "toggleDebugData", "privacy": "private", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "bindComponents", + "privacy": "protected", "return": { "type": { "text": "Promise" @@ -2979,360 +2659,439 @@ }, "parameters": [ { - "name": "e", + "name": "bindings", "type": { - "text": "CustomEvent" - } + "text": "IComponentBinding[]" + }, + "description": "the bindings to perform" } - ] - }, - { - "kind": "method", - "name": "initVerticalSelectedKeys", - "privacy": "private" + ], + "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "onFilterUpdated", - "privacy": "private", + "name": "unbindComponents", + "privacy": "protected", "parameters": [ { - "name": "filterName", - "type": { - "text": "string" - }, - "description": "the filter name from where values has been applied" - }, - { - "name": "filterValue", - "type": { - "text": "IDataFilterValue" - }, - "description": "the filter value that has been updated" - }, - { - "name": "selected", + "name": "bindings", "type": { - "text": "boolean" + "text": "IComponentBinding[]" } } ], - "description": "Handler when a value is updated (selected/unselected)from a specific filter" + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "onApplyFilters", - "privacy": "private", - "parameters": [ - { - "name": "filterName", - "type": { - "text": "string" - }, - "description": "the filter name from where values has been applied" + "name": "getTheme", + "privacy": "protected", + "return": { + "type": { + "text": "" } - ], - "description": "Handler when values are applied from a specific filter" + }, + "description": "Get CSS variables values for the component predefined variables", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "onSort", - "privacy": "private", + "name": "getLocalizedString", + "privacy": "protected", "parameters": [ { - "name": "sortProperties", + "name": "string", "type": { - "text": "ISearchSortProperty[]" - }, - "description": "the sort properties" + "text": "ILocalizedString | string" + } } ], - "description": "Handler when sort properties are updated" + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "applyFilters", + "name": "setFASTColors", "privacy": "private", - "description": "Send filters to connected search results component" + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "getFilterConfiguration", - "privacy": "private", - "return": { - "type": { - "text": "IDataFilterConfiguration" - } - }, + "name": "hasPropertyUpdated", + "privacy": "protected", "parameters": [ { - "name": "filterName", + "name": "changedProperties", + "type": { + "text": "PropertyValueMap" + } + }, + { + "name": "propertyName", "type": { "text": "string" } } - ] + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "mergeFilters", - "privacy": "private", + "name": "fireCustomEvent", "return": { "type": { - "text": "" + "text": "*" } }, "parameters": [ { - "name": "availableFilters", + "name": "eventName", "type": { - "text": "IDataFilterResult[]" - }, - "description": "the available filters returned from the search response" - } - ], - "description": "Merges filter values having the same filter name" - }, - { - "kind": "method", - "name": "clearAllSelectedValues", - "privacy": "public", - "parameters": [ + "text": "string" + } + }, { - "name": "preventApply", + "name": "detail", + "optional": true, + "type": { + "text": "*" + } + }, + { + "name": "bubbles", + "default": "false", "optional": true, "type": { "text": "boolean" } - } - ] - }, - { - "kind": "method", - "name": "getFilterComponents", - "privacy": "private", - "return": { - "type": { - "text": "" - } - }, - "parameters": [ + }, { - "name": "filterName", + "name": "cancelable", + "default": "false", "optional": true, "type": { - "text": "string" - }, - "description": "Optionnal. A specific filter name to retrieve" - } - ], - "description": "Retrieved the list of child filters" - }, - { - "kind": "method", - "name": "getSearchResultsBindings", - "privacy": "private", - "return": { - "type": { - "text": "IComponentBinding[]" - } - }, - "parameters": [ + "text": "boolean" + } + }, { - "name": "ids", + "name": "composed", + "default": "false", + "optional": true, "type": { - "text": "string[]" + "text": "boolean" } } - ] + ], + "description": "Override of default method to support 'composed' flag", + "privacy": "protected", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "getSearchVerticalsBinding", + "name": "timeoutPromise", "privacy": "private", "return": { "type": { - "text": "IComponentBinding[]" + "text": "" } }, "parameters": [ { - "name": "ids", + "name": "promise", "type": { - "text": "string[]" - } + "text": "Promise" + }, + "description": "the promise to timeout" + }, + { + "name": "timeout", + "type": { + "text": "number" + }, + "description": "the timeout delay" + }, + { + "name": "exception", + "type": { + "text": "unknown" + }, + "description": "the exception raised if any error occures" } - ] + ], + "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "updateBinding", + "name": "waitForElement", "privacy": "private", "return": { "type": { - "text": "Promise" + "text": "" } }, "parameters": [ { - "name": "event", - "type": { - "text": "EventConstants" - } - }, - { - "name": "newValue", + "name": "binding", "type": { - "text": "string | string[]" - } + "text": "IComponentBinding" + }, + "description": "the binding detail" }, { - "name": "previousValue", + "name": "timeout", + "optional": true, "type": { - "text": "string | string[]" + "text": "number" } } - ] + ], + "description": "Waits for a component to be present on the page and initialized to perform event binding", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + } + ], + "attributes": [ + { + "name": "value", + "type": { + "text": "IDataSourceData" + }, + "fieldName": "value" }, { - "kind": "field", "name": "theme", - "attribute": "theme", - "reflects": true, + "fieldName": "theme", "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" } }, { - "kind": "field", - "name": "enableDebugMode", + "name": "enable-debug", "type": { "text": "boolean" }, "default": "false", "description": "Enable the debug to explore data from context", - "attribute": "enable-debug", + "fieldName": "enableDebugMode", "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" } }, { - "kind": "field", - "name": "renderedOnce", + "name": "initialized", "type": { "text": "boolean" }, "default": "false", - "description": "Flag indicating if data have been rendered at least once", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "fieldName": "isInitialized", "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" } + } + ], + "superclass": { + "name": "BaseComponent", + "module": "/src/components/BaseComponent" + } + } + ], + "exports": [ + { + "kind": "js", + "name": "MonacoEditorComponent", + "declaration": { + "name": "MonacoEditorComponent", + "module": "src/components/monaco-editor/MonacoEditorComponent.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/components/search-filters/SearchFiltersComponent.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "SearchFiltersComponent", + "members": [ + { + "kind": "field", + "name": "searchResultsComponentIds", + "type": { + "text": "string[]" + }, + "default": "[]", + "description": "The connected search results component ids", + "attribute": "search-results-ids" }, { "kind": "field", - "name": "showDebugData", + "name": "searchVerticalsComponentId", "type": { - "text": "boolean" + "text": "string" }, - "default": "false", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "The search verticals component ID if connected to a search verticals", + "attribute": "search-verticals-id", + "reflects": true }, { "kind": "field", - "name": "isInitialized", + "name": "filterConfiguration", "type": { - "text": "boolean" + "text": "IDataFilterConfiguration[]" }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "attribute": "initialized", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "default": "[]", + "description": "The filters configration", + "attribute": "settings" }, { "kind": "field", - "name": "_eventHanlders", + "name": "operator", "type": { - "text": "Map}>" + "text": "FilterConditionOperator" }, - "privacy": "public", - "default": "new Map}>()", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "The default logical operator to use between filters", + "attribute": "operator" }, { "kind": "field", - "name": "componentError", + "name": "availableFilters", "type": { - "text": "Error" + "text": "IDataFilterResult[]" }, - "privacy": "public", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "default": "[]", + "description": "Available filters received from connected search results component" }, { "kind": "field", - "name": "themeStyles", - "static": true, - "description": "Returns styles from theme (i.e. define CSS variables)", - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" + "name": "allSelectedFilters", + "type": { + "text": "IDataFilter[]" + }, + "default": "[]", + "description": "All selected values from all filters combined (not necessarily submitted)" + }, + { + "kind": "field", + "name": "selectedVertical", + "type": { + "text": "IDataVertical" } }, { - "kind": "method", - "name": "renderDebugMode", - "privacy": "protected", + "kind": "field", + "name": "disabledFilters", + "type": { + "text": "string[]" + }, + "privacy": "private", + "description": "The list of disabled filters", + "default": "[]" + }, + { + "kind": "field", + "name": "allSubmittedFilters", + "type": { + "text": "IDataFilter[]" + }, + "privacy": "public", + "description": "All submitted values from all filters combined", + "default": "[]" + }, + { + "kind": "field", + "name": "previousAvailableFilters", + "type": { + "text": "IDataFilterResult[]" + }, + "privacy": "private", + "description": "The previous applied filters" + }, + { + "kind": "field", + "name": "submittedQueryText", + "type": { + "text": "string" + }, + "privacy": "public", + "description": "The current query submitted" + }, + { + "kind": "field", + "name": "searchResultsEventData", + "type": { + "text": "ISearchResultsEventData" + }, + "privacy": "private" + }, + { + "kind": "field", + "name": "scopedElements", + "static": true, + "readonly": true, "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" } }, { - "kind": "method", - "name": "renderDebugData", + "kind": "field", + "name": "strings", + "type": { + "text": "{ [x: string]: string; }" + }, "privacy": "protected", + "readonly": true + }, + { + "kind": "method", + "name": "handleSearchResultsFilters", + "privacy": "public", "parameters": [ { - "name": "data", + "name": "e", "type": { - "text": "any" + "text": "CustomEvent" } } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "toggleDebugData", + "name": "handleSearchVertical", "privacy": "private", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "method", - "name": "bindComponents", - "privacy": "protected", "return": { "type": { "text": "Promise" @@ -3340,157 +3099,137 @@ }, "parameters": [ { - "name": "bindings", + "name": "e", "type": { - "text": "IComponentBinding[]" - }, - "description": "the bindings to perform" + "text": "CustomEvent" + } } - ], - "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "unbindComponents", - "privacy": "protected", + "name": "initVerticalSelectedKeys", + "privacy": "private" + }, + { + "kind": "method", + "name": "onFilterUpdated", + "privacy": "private", "parameters": [ { - "name": "bindings", + "name": "filterName", "type": { - "text": "IComponentBinding[]" + "text": "string" + }, + "description": "the filter name from where values has been applied" + }, + { + "name": "filterValue", + "type": { + "text": "IDataFilterValue" + }, + "description": "the filter value that has been updated" + }, + { + "name": "selected", + "type": { + "text": "boolean" } } ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Handler when a value is updated (selected/unselected)from a specific filter" }, { "kind": "method", - "name": "getTheme", - "privacy": "protected", - "return": { - "type": { - "text": "" + "name": "onApplyFilters", + "privacy": "private", + "parameters": [ + { + "name": "filterName", + "type": { + "text": "string" + }, + "description": "the filter name from where values has been applied" } - }, - "description": "Get CSS variables values for the component predefined variables", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ], + "description": "Handler when values are applied from a specific filter" }, { "kind": "method", - "name": "getLocalizedString", - "privacy": "protected", + "name": "onSort", + "privacy": "private", "parameters": [ { - "name": "string", + "name": "sortProperties", "type": { - "text": "ILocalizedString | string" - } + "text": "ISearchSortProperty[]" + }, + "description": "the sort properties" } ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Handler when sort properties are updated" }, { "kind": "method", - "name": "setFASTColors", + "name": "applyFilters", "privacy": "private", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Send filters to connected search results component" }, { "kind": "method", - "name": "hasPropertyUpdated", - "privacy": "protected", + "name": "getFilterConfiguration", + "privacy": "private", + "return": { + "type": { + "text": "IDataFilterConfiguration" + } + }, "parameters": [ { - "name": "changedProperties", - "type": { - "text": "PropertyValueMap" - } - }, - { - "name": "propertyName", + "name": "filterName", "type": { "text": "string" } } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "fireCustomEvent", + "name": "mergeFilters", + "privacy": "private", "return": { "type": { - "text": "*" + "text": "" } }, "parameters": [ { - "name": "eventName", - "type": { - "text": "string" - } - }, - { - "name": "detail", - "optional": true, - "type": { - "text": "*" - } - }, - { - "name": "bubbles", - "default": "false", - "optional": true, + "name": "availableFilters", "type": { - "text": "boolean" - } - }, + "text": "IDataFilterResult[]" + }, + "description": "the available filters returned from the search response" + } + ], + "description": "Merges filter values having the same filter name" + }, + { + "kind": "method", + "name": "clearAllSelectedValues", + "privacy": "public", + "parameters": [ { - "name": "cancelable", - "default": "false", - "optional": true, - "type": { - "text": "boolean" - } - }, - { - "name": "composed", - "default": "false", + "name": "preventApply", "optional": true, "type": { "text": "boolean" } } - ], - "description": "Override of default method to support 'composed' flag", - "privacy": "protected", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "timeoutPromise", + "name": "getFilterComponents", "privacy": "private", "return": { "type": { @@ -3499,397 +3238,181 @@ }, "parameters": [ { - "name": "promise", - "type": { - "text": "Promise" - }, - "description": "the promise to timeout" - }, - { - "name": "timeout", - "type": { - "text": "number" - }, - "description": "the timeout delay" - }, - { - "name": "exception", + "name": "filterName", + "optional": true, "type": { - "text": "unknown" + "text": "string" }, - "description": "the exception raised if any error occures" + "description": "Optionnal. A specific filter name to retrieve" } ], - "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Retrieved the list of child filters" }, { "kind": "method", - "name": "waitForElement", + "name": "getSearchResultsBindings", "privacy": "private", "return": { "type": { - "text": "" + "text": "IComponentBinding[]" } }, "parameters": [ { - "name": "binding", - "type": { - "text": "IComponentBinding" - }, - "description": "the binding detail" - }, - { - "name": "timeout", - "optional": true, + "name": "ids", "type": { - "text": "number" + "text": "string[]" } } - ], - "description": "Waits for a component to be present on the page and initialized to perform event binding", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - } - ], - "attributes": [ - { - "name": "search-results-ids", - "type": { - "text": "string[]" - }, - "default": "[]", - "description": "The connected search results component ids", - "fieldName": "searchResultsComponentIds" - }, - { - "name": "search-verticals-id", - "type": { - "text": "string" - }, - "description": "The search verticals component ID if connected to a search verticals", - "fieldName": "searchVerticalsComponentId" + ] }, { - "name": "settings", - "type": { - "text": "IDataFilterConfiguration[]" + "kind": "method", + "name": "getSearchVerticalsBinding", + "privacy": "private", + "return": { + "type": { + "text": "IComponentBinding[]" + } }, - "default": "[]", - "description": "The filters configration", - "fieldName": "filterConfiguration" + "parameters": [ + { + "name": "ids", + "type": { + "text": "string[]" + } + } + ] }, { - "name": "operator", - "type": { - "text": "FilterConditionOperator" + "kind": "method", + "name": "updateBinding", + "privacy": "private", + "return": { + "type": { + "text": "Promise" + } }, - "description": "The default logical operator to use between filters", - "fieldName": "operator" + "parameters": [ + { + "name": "event", + "type": { + "text": "EventConstants" + } + }, + { + "name": "newValue", + "type": { + "text": "string | string[]" + } + }, + { + "name": "previousValue", + "type": { + "text": "string | string[]" + } + } + ] }, { + "kind": "field", "name": "theme", - "fieldName": "theme", + "attribute": "theme", + "reflects": true, "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" } }, { - "name": "enable-debug", + "kind": "field", + "name": "enableDebugMode", "type": { "text": "boolean" }, "default": "false", "description": "Enable the debug to explore data from context", - "fieldName": "enableDebugMode", + "attribute": "enable-debug", "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" } }, { - "name": "initialized", + "kind": "field", + "name": "renderedOnce", "type": { "text": "boolean" }, "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "fieldName": "isInitialized", + "description": "Flag indicating if data have been rendered at least once", "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" } - } - ], - "superclass": { - "name": "BaseComponent", - "module": "/src/components/BaseComponent" - } - } - ], - "exports": [ - { - "kind": "js", - "name": "SearchFiltersComponent", - "declaration": { - "name": "SearchFiltersComponent", - "module": "src/components/search-filters/SearchFiltersComponent.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/components/search-input/SearchInputComponent.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "SearchInputComponent", - "members": [ - { - "kind": "field", - "name": "defaultQueryStringParameter", - "type": { - "text": "string" - }, - "description": "If specified, get the default query text from this query string parameter name", - "attribute": "default-query-string-parameter" }, { "kind": "field", - "name": "searchInNewPage", + "name": "showDebugData", "type": { "text": "boolean" }, "default": "false", - "description": "Flag indicating in the search query text should be sent to an other page", - "attribute": "search-in-new-page" + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "pageUrl", + "name": "isInitialized", "type": { - "text": "string" + "text": "boolean" }, - "description": "The page URL to send the query text", - "attribute": "search-page-url" + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "attribute": "initialized", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "queryPathBehavior", + "name": "_eventHanlders", "type": { - "text": "QueryPathBehavior" + "text": "Map}>" }, - "description": "Whether to use an URL fragment (#) or query string parameter to pass the query text", - "attribute": "query-behavior" + "privacy": "public", + "default": "new Map}>()", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "queryStringParameter", + "name": "componentError", "type": { - "text": "string" + "text": "Error" }, - "default": "\"q\"", - "description": "The query string parameter to use to send the query text", - "attribute": "query-parameter" + "privacy": "public", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "openBehavior", - "type": { - "text": "PageOpenBehavior" - }, - "description": "Flag indicating if the search box should open a new tab or use the current page", - "attribute": "open-behavior" - }, - { - "kind": "field", - "name": "inputPlaceholder", - "type": { - "text": "string" - }, - "description": "Placeholder text for the search box", - "attribute": "placeholder" - }, - { - "kind": "field", - "name": "searchKeywords", - "type": { - "text": "string" - } - }, - { - "kind": "field", - "name": "hasValidationError", - "type": { - "text": "boolean" - } - }, - { - "kind": "field", - "name": "_submittedKeywords", - "type": { - "text": "string" - } - }, - { - "kind": "field", - "name": "strings", - "type": { - "text": "{ [x: string]: string; }" - }, - "privacy": "protected", - "readonly": true - }, - { - "kind": "method", - "name": "onInputChange", - "privacy": "protected", - "parameters": [ - { - "name": "e" - } - ] - }, - { - "kind": "method", - "name": "clearSearchKeywords", - "privacy": "protected" - }, - { - "kind": "method", - "name": "submitSearch", - "privacy": "public" - }, - { - "kind": "method", - "name": "initializeDefaultValue", - "privacy": "private", - "description": "Initialize the default search keywords value according to settings" - }, - { - "kind": "method", - "name": "handleQueryStringChange", - "privacy": "private", - "description": "Subscribes to URL query string change events using windows state" - }, - { - "kind": "field", - "name": "theme", - "attribute": "theme", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "enableDebugMode", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Enable the debug to explore data from context", - "attribute": "enable-debug", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "renderedOnce", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Flag indicating if data have been rendered at least once", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "showDebugData", - "type": { - "text": "boolean" - }, - "default": "false", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "isInitialized", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "attribute": "initialized", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "_eventHanlders", - "type": { - "text": "Map}>" - }, - "privacy": "public", - "default": "new Map}>()", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "componentError", - "type": { - "text": "Error" - }, - "privacy": "public", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "scopedElements", - "static": true, - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "kind": "field", - "name": "themeStyles", - "static": true, - "description": "Returns styles from theme (i.e. define CSS variables)", - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "name": "themeStyles", + "static": true, + "description": "Returns styles from theme (i.e. define CSS variables)", + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", @@ -4157,62 +3680,38 @@ ], "attributes": [ { - "name": "default-query-string-parameter", - "type": { - "text": "string" - }, - "description": "If specified, get the default query text from this query string parameter name", - "fieldName": "defaultQueryStringParameter" - }, - { - "name": "search-in-new-page", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Flag indicating in the search query text should be sent to an other page", - "fieldName": "searchInNewPage" - }, - { - "name": "search-page-url", - "type": { - "text": "string" - }, - "description": "The page URL to send the query text", - "fieldName": "pageUrl" - }, - { - "name": "query-behavior", + "name": "search-results-ids", "type": { - "text": "QueryPathBehavior" + "text": "string[]" }, - "description": "Whether to use an URL fragment (#) or query string parameter to pass the query text", - "fieldName": "queryPathBehavior" + "default": "[]", + "description": "The connected search results component ids", + "fieldName": "searchResultsComponentIds" }, { - "name": "query-parameter", + "name": "search-verticals-id", "type": { "text": "string" }, - "default": "\"q\"", - "description": "The query string parameter to use to send the query text", - "fieldName": "queryStringParameter" + "description": "The search verticals component ID if connected to a search verticals", + "fieldName": "searchVerticalsComponentId" }, { - "name": "open-behavior", + "name": "settings", "type": { - "text": "PageOpenBehavior" + "text": "IDataFilterConfiguration[]" }, - "description": "Flag indicating if the search box should open a new tab or use the current page", - "fieldName": "openBehavior" + "default": "[]", + "description": "The filters configration", + "fieldName": "filterConfiguration" }, { - "name": "placeholder", + "name": "operator", "type": { - "text": "string" + "text": "FilterConditionOperator" }, - "description": "Placeholder text for the search box", - "fieldName": "inputPlaceholder" + "description": "The default logical operator to use between filters", + "fieldName": "operator" }, { "name": "theme", @@ -4258,42 +3757,79 @@ "exports": [ { "kind": "js", - "name": "SearchInputComponent", + "name": "SearchFiltersComponent", "declaration": { - "name": "SearchInputComponent", - "module": "src/components/search-input/SearchInputComponent.ts" + "name": "SearchFiltersComponent", + "module": "src/components/search-filters/SearchFiltersComponent.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/monaco-editor/MonacoEditorComponent.ts", + "path": "src/components/adaptive-card/AdaptiveCardComponent.ts", "declarations": [ { "kind": "class", - "description": "", - "name": "MonacoEditorComponent", + "description": "Process adaptive card content from an external file", + "name": "AdaptiveCardComponent", "members": [ { "kind": "field", - "name": "value", + "name": "fileUrl", "type": { - "text": "IDataSourceData" + "text": "string" }, - "attribute": "value" + "description": "The file URL to fetch", + "attribute": "url" }, { "kind": "field", - "name": "editor", + "name": "fileFormat", "type": { - "text": "editor.IStandaloneCodeEditor" + "text": "FileFormat" }, - "default": "null" + "description": "The file format to load", + "attribute": "format" + }, + { + "kind": "field", + "name": "fallbackImageUrl", + "type": { + "text": "string" + }, + "description": "The fallback image URL", + "attribute": "fallback-img-url" + }, + { + "kind": "field", + "name": "cardContext", + "type": { + "text": "object" + }, + "description": "The data context to use to render the card", + "attribute": "context" + }, + { + "kind": "field", + "name": "cardContent", + "type": { + "text": "string" + }, + "description": "The raw adaptive card content as string (i.e. JSON stringified)", + "attribute": "content" + }, + { + "kind": "field", + "name": "content", + "type": { + "text": "HTMLElement" + }, + "description": "The file content to display\r\nIMPORTANT: This must be an HTMLElement instead of a string to be able to render event listeners added dynamically by the adaptivecards library (ex: play videos)." }, { "kind": "method", - "name": "createEditor", + "name": "_processAdaptiveCard", "privacy": "private" }, { @@ -4672,11 +4208,44 @@ ], "attributes": [ { - "name": "value", + "name": "url", "type": { - "text": "IDataSourceData" + "text": "string" }, - "fieldName": "value" + "description": "The file URL to fetch", + "fieldName": "fileUrl" + }, + { + "name": "format", + "type": { + "text": "FileFormat" + }, + "description": "The file format to load", + "fieldName": "fileFormat" + }, + { + "name": "fallback-img-url", + "type": { + "text": "string" + }, + "description": "The fallback image URL", + "fieldName": "fallbackImageUrl" + }, + { + "name": "context", + "type": { + "text": "object" + }, + "description": "The data context to use to render the card", + "fieldName": "cardContext" + }, + { + "name": "content", + "type": { + "text": "string" + }, + "description": "The raw adaptive card content as string (i.e. JSON stringified)", + "fieldName": "cardContent" }, { "name": "theme", @@ -4722,557 +4291,912 @@ "exports": [ { "kind": "js", - "name": "MonacoEditorComponent", + "name": "AdaptiveCardComponent", "declaration": { - "name": "MonacoEditorComponent", - "module": "src/components/monaco-editor/MonacoEditorComponent.ts" + "name": "AdaptiveCardComponent", + "module": "src/components/adaptive-card/AdaptiveCardComponent.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/search-results/SearchResultsComponent.ts", + "path": "src/components/language-provider/LanguageProvider.ts", "declarations": [ { "kind": "class", "description": "", - "name": "SearchResultsComponent", + "name": "LanguageProvider", "members": [ { "kind": "field", - "name": "useBetaEndpoint", + "name": "dateHelper", "type": { - "text": "boolean" + "text": "DateHelper" }, - "default": "false", - "description": "Flag indicating if the beta endpoint for Microsoft Graph API should be used", - "attribute": "use-beta" + "privacy": "private", + "default": "new DateHelper()" }, { - "kind": "field", - "name": "entityTypes", - "type": { - "text": "EntityType[]" + "kind": "method", + "name": "setLanguage", + "privacy": "public", + "return": { + "type": { + "text": "Promise" + } }, - "default": "[EntityType.ListItem]", - "description": "The Microsoft Search entity types to query", - "attribute": "entity-types" - }, + "parameters": [ + { + "name": "locale", + "type": { + "text": "string" + } + } + ] + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "LanguageProvider", + "declaration": { + "name": "LanguageProvider", + "module": "src/components/language-provider/LanguageProvider.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/components/language-provider/LanguageProviderComponent.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "LanguageProviderComponent", + "members": [ { "kind": "field", - "name": "defaultQueryText", + "name": "defaultLocale", "type": { "text": "string" }, - "description": "The default query text to apply.\r\nQuery string parameter and search box have priority over this value during first load", - "attribute": "query-text" + "description": "The default locale to use for components on the page", + "attribute": "locale", + "reflects": true }, { "kind": "field", - "name": "queryTemplate", + "name": "showLanguagePicker", "type": { - "text": "string" + "text": "boolean" }, - "description": "The search query template to use. Support tokens https://learn.microsoft.com/en-us/graph/search-concept-query-template", - "attribute": "query-template" + "description": "Use this property for testing purpose to select a specific locale", + "attribute": "show-picker" }, { "kind": "field", - "name": "defaultQueryStringParameter", + "name": "languageProvider", "type": { - "text": "string" + "text": "LanguageProvider" }, - "description": "If specified, get the default query text from this query string parameter name", - "attribute": "default-query-string-parameter" + "default": "new LanguageProvider()" }, { - "kind": "field", - "name": "selectedFields", - "type": { - "text": "string[]" - }, - "default": "[\"name\",\"title\",\"summary\",\"created\",\"createdBy\",\"filetype\",\"defaultEncodingURL\",\"lastModifiedTime\",\"modifiedBy\",\"path\",\"hitHighlightedSummary\",\"SPSiteURL\",\"SiteTitle\"]", - "description": "Search managed properties to retrieve for results and usable in the results template. \r\nComma separated. Refer to the [Microsoft Search API documentation](https://learn.microsoft.com/en-us/graph/api/resources/search-api-overview?view=graph-rest-1.0&preserve-view=true#scope-search-based-on-entity-types) to know what properties can be used according to entity types.", - "attribute": "fields" + "kind": "method", + "name": "_onSelectLanguage", + "privacy": "private", + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ] }, { "kind": "field", - "name": "sortFieldsConfiguration", - "type": { - "text": "ISortFieldConfiguration[]" - }, - "default": "[]", - "description": "Sort properties for the request", - "attribute": "sort-properties" + "name": "theme", + "attribute": "theme", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "showPaging", + "name": "enableDebugMode", "type": { "text": "boolean" }, - "description": "Flag indicating if the pagination control should be displayed", - "attribute": "show-paging" + "default": "false", + "description": "Enable the debug to explore data from context", + "attribute": "enable-debug", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "pageSize", + "name": "renderedOnce", "type": { - "text": "number" + "text": "boolean" }, - "default": "10", - "description": "The number of results to show per results page", - "attribute": "page-size" + "default": "false", + "description": "Flag indicating if data have been rendered at least once", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "numberOfPagesToDisplay", + "name": "showDebugData", "type": { - "text": "number" + "text": "boolean" }, - "default": "5", - "description": "The number of pages to display in the pagination control", - "attribute": "pages-number" + "default": "false", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "enableResultTypes", + "name": "isInitialized", "type": { "text": "boolean" }, - "description": "Flag indicating if Micrsoft Search result types should be applied in results", - "attribute": "enable-result-types" + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "attribute": "initialized", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "connectionIds", + "name": "_eventHanlders", "type": { - "text": "string[]" + "text": "Map}>" }, - "description": "If \"entityTypes\" contains \"externalItem\", specify the connection id of the external source", - "attribute": "connections" - }, - { - "kind": "field", - "name": "enableModification", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Indicates whether spelling modifications are enabled. If enabled, the user will get the search results for the corrected query in case of no results for the original query with typos.", - "attribute": "enable-modification" - }, - { - "kind": "field", - "name": "enableSuggestion", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Indicates whether spelling suggestions are enabled. If enabled, the user will get the search results for the original search query and suggestions for spelling correction", - "attribute": "enable-suggestion" + "privacy": "public", + "default": "new Map}>()", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "componentTitle", + "name": "componentError", "type": { - "text": "string | ILocalizedString" + "text": "Error" }, - "description": "If specified, shows the title on top of the results", - "attribute": "comp-title" + "privacy": "public", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "seeAllLink", - "type": { - "text": "string" - }, - "description": "If specified, shows a \"See all\" link at top top of the results", - "attribute": "see-all-link" + "name": "scopedElements", + "static": true, + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "showCount", - "type": { - "text": "boolean" - }, - "description": "If specified, show the results count at the top of the results", - "attribute": "show-count" + "name": "themeStyles", + "static": true, + "description": "Returns styles from theme (i.e. define CSS variables)", + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "searchFiltersComponentId", - "type": { - "text": "string" - }, - "description": "The search filters component ID if connected to a search filters", - "attribute": "search-filters-id", - "reflects": true + "kind": "method", + "name": "renderDebugMode", + "privacy": "protected", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "searchInputComponentId", - "type": { - "text": "string" - }, - "description": "The search input component ID if connected to a search input", - "attribute": "search-input-id", - "reflects": true + "kind": "method", + "name": "renderDebugData", + "privacy": "protected", + "parameters": [ + { + "name": "data", + "type": { + "text": "any" + } + } + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "searchVerticalsComponentId", - "type": { - "text": "string" - }, - "description": "The search verticals component ID if connected to a search verticals", - "attribute": "search-verticals-id", - "reflects": true + "kind": "method", + "name": "toggleDebugData", + "privacy": "private", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "searchSortComponentId", - "type": { - "text": "string" + "kind": "method", + "name": "bindComponents", + "privacy": "protected", + "return": { + "type": { + "text": "Promise" + } }, - "description": "The search sort component ID if connected to a search sort component", - "attribute": "search-sort-id", - "reflects": true + "parameters": [ + { + "name": "bindings", + "type": { + "text": "IComponentBinding[]" + }, + "description": "the bindings to perform" + } + ], + "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "selectedVerticalKeys", - "type": { - "text": "string[]" - }, - "description": "If connected to a search verticals component on the same page, determines on which keys this component should be displayed", - "attribute": "verticals-keys" + "kind": "method", + "name": "unbindComponents", + "privacy": "protected", + "parameters": [ + { + "name": "bindings", + "type": { + "text": "IComponentBinding[]" + } + } + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "noLoadingIndicator", - "type": { - "text": "boolean" + "kind": "method", + "name": "getTheme", + "privacy": "protected", + "return": { + "type": { + "text": "" + } }, - "description": "Flag indicating if the loading indication (spinner/shimmers) should be displayed when fectching the data", - "attribute": "no-loading" + "description": "Get CSS variables values for the component predefined variables", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "data", - "type": { - "text": "IDataSourceData" - }, - "default": "{ items: [] }" + "kind": "method", + "name": "getLocalizedString", + "privacy": "protected", + "parameters": [ + { + "name": "string", + "type": { + "text": "ILocalizedString | string" + } + } + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "isLoading", - "type": { - "text": "boolean" - }, - "default": "true" + "kind": "method", + "name": "setFASTColors", + "privacy": "private", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "shouldRender", - "type": { - "text": "boolean" + "kind": "method", + "name": "hasPropertyUpdated", + "privacy": "protected", + "parameters": [ + { + "name": "changedProperties", + "type": { + "text": "PropertyValueMap" + } + }, + { + "name": "propertyName", + "type": { + "text": "string" + } + } + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" } }, { - "kind": "field", - "name": "error", - "type": { - "text": "Error" + "kind": "method", + "name": "fireCustomEvent", + "return": { + "type": { + "text": "*" + } }, - "default": "null" - }, - { - "kind": "field", - "name": "searchQuery", - "type": { - "text": "IMicrosoftSearchQuery" - }, - "privacy": "public", - "default": "{\r\n requests: []\r\n }" + "parameters": [ + { + "name": "eventName", + "type": { + "text": "string" + } + }, + { + "name": "detail", + "optional": true, + "type": { + "text": "*" + } + }, + { + "name": "bubbles", + "default": "false", + "optional": true, + "type": { + "text": "boolean" + } + }, + { + "name": "cancelable", + "default": "false", + "optional": true, + "type": { + "text": "boolean" + } + }, + { + "name": "composed", + "default": "false", + "optional": true, + "type": { + "text": "boolean" + } + } + ], + "description": "Override of default method to support 'composed' flag", + "privacy": "protected", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "msSearchService", - "type": { - "text": "IMicrosoftSearchService" + "kind": "method", + "name": "timeoutPromise", + "privacy": "private", + "return": { + "type": { + "text": "" + } }, - "privacy": "public", - "default": "new MicrosoftSearchService()" + "parameters": [ + { + "name": "promise", + "type": { + "text": "Promise" + }, + "description": "the promise to timeout" + }, + { + "name": "timeout", + "type": { + "text": "number" + }, + "description": "the timeout delay" + }, + { + "name": "exception", + "type": { + "text": "unknown" + }, + "description": "the exception raised if any error occures" + } + ], + "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "templateService", + "kind": "method", + "name": "waitForElement", + "privacy": "private", + "return": { + "type": { + "text": "" + } + }, + "parameters": [ + { + "name": "binding", + "type": { + "text": "IComponentBinding" + }, + "description": "the binding detail" + }, + { + "name": "timeout", + "optional": true, + "type": { + "text": "number" + } + } + ], + "description": "Waits for a component to be present on the page and initialized to perform event binding", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + } + ], + "attributes": [ + { + "name": "locale", "type": { - "text": "ITemplateService" + "text": "string" }, - "privacy": "private", - "default": "new TemplateService()" + "description": "The default locale to use for components on the page", + "fieldName": "defaultLocale" }, { - "kind": "field", - "name": "tokenService", + "name": "show-picker", "type": { - "text": "ITokenService" + "text": "boolean" }, - "privacy": "private", - "default": "new TokenService()" + "description": "Use this property for testing purpose to select a specific locale", + "fieldName": "showLanguagePicker" }, { - "kind": "field", - "name": "dateHelper", + "name": "theme", + "fieldName": "theme", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "name": "enable-debug", "type": { - "text": "DateHelper" + "text": "boolean" }, - "privacy": "private", - "default": "new DateHelper()" + "default": "false", + "description": "Enable the debug to explore data from context", + "fieldName": "enableDebugMode", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "searchResultsHelper", + "name": "initialized", "type": { - "text": "SearchResultsHelper" + "text": "boolean" }, - "privacy": "private", - "default": "new SearchResultsHelper()" - }, + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "fieldName": "isInitialized", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + } + ], + "superclass": { + "name": "BaseComponent", + "module": "/src/components/BaseComponent" + } + } + ], + "exports": [ + { + "kind": "js", + "name": "LanguageProviderComponent", + "declaration": { + "name": "LanguageProviderComponent", + "module": "src/components/language-provider/LanguageProviderComponent.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/components/search-infos/SearchInfosComponents.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "SearchInfosComponents", + "members": [ { "kind": "field", - "name": "dayJs", + "name": "searchResultsComponentIds", "type": { - "text": "any" + "text": "string[]" }, - "privacy": "private" + "default": "[]", + "attribute": "search-results-ids" }, { "kind": "field", - "name": "currentLanguage", + "name": "searchInputComponentId", "type": { "text": "string" }, - "privacy": "private" + "description": "The search input component ID if connected to a search input", + "attribute": "search-input-id" }, { "kind": "field", - "name": "sortProperties", + "name": "searchResultsEventData", "type": { - "text": "ISearchSortProperty[]" - } + "text": "ISearchResultsEventData" + }, + "default": "{\r\n availableFilters: [],\r\n resultsCount: undefined,\r\n submittedQueryText: undefined\r\n }" }, { "kind": "field", - "name": "_searchRequestAggregations", + "name": "strings", "type": { - "text": "ISearchRequestAggregation[]" - } - }, - { - "kind": "method", - "name": "renderDefaultItems", - "privacy": "private" - }, - { - "kind": "method", - "name": "renderHeader", - "privacy": "private" + "text": "{ [x: string]: any ; }" + }, + "privacy": "protected", + "readonly": true }, { "kind": "method", - "name": "renderSeeAllLink", - "privacy": "private" + "name": "handleSearchResultsInfos", + "privacy": "private", + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ] }, { - "kind": "method", - "name": "renderOverlay", - "privacy": "private" + "kind": "field", + "name": "theme", + "attribute": "theme", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "method", - "name": "renderErrorMessage", - "privacy": "private" + "kind": "field", + "name": "enableDebugMode", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Enable the debug to explore data from context", + "attribute": "enable-debug", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "method", - "name": "renderPagination", - "privacy": "private" + "kind": "field", + "name": "renderedOnce", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Flag indicating if data have been rendered at least once", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "showDebugData", + "type": { + "text": "boolean" + }, + "default": "false", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "isInitialized", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "attribute": "initialized", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "_eventHanlders", + "type": { + "text": "Map}>" + }, + "privacy": "public", + "default": "new Map}>()", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "componentError", + "type": { + "text": "Error" + }, + "privacy": "public", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "scopedElements", + "static": true, + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "themeStyles", + "static": true, + "description": "Returns styles from theme (i.e. define CSS variables)", + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "renderDriveItem", - "privacy": "private", - "parameters": [ - { - "name": "result", - "type": { - "text": "SearchHit" - } - } - ] + "name": "renderDebugMode", + "privacy": "protected", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "renderSite", - "privacy": "private", + "name": "renderDebugData", + "privacy": "protected", "parameters": [ { - "name": "result", + "name": "data", "type": { - "text": "SearchHit" + "text": "any" } } ], - "description": "Renders a site entity", - "return": { - "type": { - "text": "" - } + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" } }, { "kind": "method", - "name": "renderList", + "name": "toggleDebugData", "privacy": "private", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "bindComponents", + "privacy": "protected", + "return": { + "type": { + "text": "Promise" + } + }, "parameters": [ { - "name": "result", + "name": "bindings", "type": { - "text": "SearchHit" - } + "text": "IComponentBinding[]" + }, + "description": "the bindings to perform" } ], - "description": "Renders a list entity", - "return": { - "type": { - "text": "" - } + "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" } }, { "kind": "method", - "name": "renderListItem", - "privacy": "private", + "name": "unbindComponents", + "privacy": "protected", "parameters": [ { - "name": "result", + "name": "bindings", "type": { - "text": "SearchHit" + "text": "IComponentBinding[]" } } ], - "description": "Renders a listItem entity", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "getTheme", + "privacy": "protected", "return": { "type": { "text": "" } + }, + "description": "Get CSS variables values for the component predefined variables", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" } }, { "kind": "method", - "name": "renderPerson", - "privacy": "private", + "name": "getLocalizedString", + "privacy": "protected", "parameters": [ { - "name": "result", + "name": "string", "type": { - "text": "SearchHit" + "text": "ILocalizedString | string" } } ], - "description": "Renders a person entity", - "return": { - "type": { - "text": "" - } + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" } }, { "kind": "method", - "name": "renderBookmark", + "name": "setFASTColors", "privacy": "private", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "hasPropertyUpdated", + "privacy": "protected", "parameters": [ { - "name": "result", + "name": "changedProperties", "type": { - "text": "SearchHit" + "text": "PropertyValueMap" + } + }, + { + "name": "propertyName", + "type": { + "text": "string" } } ], - "description": "Renders a bookmark entity" + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "renderAcronym", - "privacy": "private", + "name": "fireCustomEvent", + "return": { + "type": { + "text": "*" + } + }, "parameters": [ { - "name": "result", + "name": "eventName", "type": { - "text": "SearchHit" + "text": "string" } - } - ], - "description": "Renders an acronym entity" - }, - { - "kind": "method", - "name": "renderQnA", - "privacy": "private", - "parameters": [ + }, { - "name": "result", + "name": "detail", + "optional": true, "type": { - "text": "SearchHit" + "text": "*" } - } - ], - "description": "Renders a qna entity" - }, - { - "kind": "method", - "name": "renderAnswer", - "privacy": "private", - "parameters": [ + }, { - "name": "result", + "name": "bubbles", + "default": "false", + "optional": true, "type": { - "text": "SearchHit" + "text": "boolean" } }, { - "name": "icon", + "name": "cancelable", + "default": "false", + "optional": true, "type": { - "text": "SvgIcon" + "text": "boolean" } - } - ], - "description": "Renders an answer entity" - }, - { - "kind": "method", - "name": "renderDefault", - "privacy": "private", - "parameters": [ + }, { - "name": "result", + "name": "composed", + "default": "false", + "optional": true, "type": { - "text": "SearchHit" + "text": "boolean" } } ], - "description": "Renders any entity" - }, - { - "kind": "field", - "name": "scopedElements", - "static": true, - "readonly": true, + "description": "Override of default method to support 'composed' flag", + "privacy": "protected", "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" @@ -5280,327 +5204,278 @@ }, { "kind": "method", - "name": "updateBinding", + "name": "timeoutPromise", "privacy": "private", "return": { "type": { - "text": "Promise" + "text": "" } }, "parameters": [ { - "name": "event", + "name": "promise", "type": { - "text": "EventConstants" - } + "text": "Promise" + }, + "description": "the promise to timeout" }, { - "name": "newValue", + "name": "timeout", "type": { - "text": "string" - } + "text": "number" + }, + "description": "the timeout delay" }, { - "name": "previousValue", + "name": "exception", "type": { - "text": "string" - } - } - ] - }, - { - "kind": "method", - "name": "loadState", - "privacy": "public", - "return": { - "type": { - "text": "" + "text": "unknown" + }, + "description": "the exception raised if any error occures" } - }, - "description": "Only calls when the provider is in ProviderState.SignedIn state" - }, - { - "kind": "field", - "name": "strings", - "privacy": "protected", - "readonly": true + ], + "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "_search", + "name": "waitForElement", "privacy": "private", "return": { "type": { - "text": "Promise" + "text": "" } }, "parameters": [ { - "name": "searchQuery", + "name": "binding", "type": { - "text": "IMicrosoftSearchQuery" - } - } - ] - }, - { - "kind": "method", - "name": "buildAggregationsFromFiltersConfig", - "privacy": "private", - "return": { - "type": { - "text": "ISearchRequestAggregation[]" - } - } - }, - { - "kind": "method", - "name": "buildSearchQuery", - "privacy": "private", - "description": "Builds the search query according to the current component parameters and context" - }, - { - "kind": "method", - "name": "handleSearchFilters", - "privacy": "private", - "return": { - "type": { - "text": "Promise" - } - }, - "parameters": [ + "text": "IComponentBinding" + }, + "description": "the binding detail" + }, { - "name": "e", + "name": "timeout", + "optional": true, "type": { - "text": "CustomEvent" + "text": "number" } } - ] - }, + ], + "description": "Waits for a component to be present on the page and initialized to perform event binding", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + } + ], + "attributes": [ { - "kind": "method", - "name": "handleSearchInput", - "privacy": "private", - "return": { - "type": { - "text": "Promise" - } + "name": "search-results-ids", + "type": { + "text": "string[]" }, - "parameters": [ - { - "name": "e", - "type": { - "text": "CustomEvent" - } - } - ] + "default": "[]", + "fieldName": "searchResultsComponentIds" }, { - "kind": "method", - "name": "handleSearchVertical", - "privacy": "private", - "return": { - "type": { - "text": "Promise" - } + "name": "search-input-id", + "type": { + "text": "string" }, - "parameters": [ - { - "name": "e", - "type": { - "text": "CustomEvent" - }, - "description": "the selected vertical information" - } - ], - "description": "Handler when a new vertical is selected" + "description": "The search input component ID if connected to a search input", + "fieldName": "searchInputComponentId" }, { - "kind": "method", - "name": "handleSearchSort", - "privacy": "private", - "return": { - "type": { - "text": "Promise" - } - }, - "parameters": [ - { - "name": "e", - "type": { - "text": "CustomEvent" - } - } - ] + "name": "theme", + "fieldName": "theme", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "method", - "name": "getSearchInputBinding", - "privacy": "private", - "return": { - "type": { - "text": "IComponentBinding" - } + "name": "enable-debug", + "type": { + "text": "boolean" }, - "parameters": [ - { - "name": "id", - "type": { - "text": "string" - } - } - ] + "default": "false", + "description": "Enable the debug to explore data from context", + "fieldName": "enableDebugMode", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "method", - "name": "getSearchVerticalsBinding", - "privacy": "private", - "return": { - "type": { - "text": "IComponentBinding" - } + "name": "initialized", + "type": { + "text": "boolean" }, - "parameters": [ - { - "name": "id", - "type": { - "text": "string" - } - } - ] + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "fieldName": "isInitialized", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + } + ], + "superclass": { + "name": "BaseComponent", + "module": "/src/components/BaseComponent" + } + } + ], + "exports": [ + { + "kind": "js", + "name": "SearchInfosComponents", + "declaration": { + "name": "SearchInfosComponents", + "module": "src/components/search-infos/SearchInfosComponents.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/components/search-input/SearchInputComponent.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "SearchInputComponent", + "members": [ + { + "kind": "field", + "name": "defaultQueryStringParameter", + "type": { + "text": "string" + }, + "description": "If specified, get the default query text from this query string parameter name", + "attribute": "default-query-string-parameter" }, { - "kind": "method", - "name": "getSearchSortBinding", - "privacy": "private", - "parameters": [ - { - "name": "id", - "type": { - "text": "string" - } - } - ] + "kind": "field", + "name": "searchInNewPage", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Flag indicating in the search query text should be sent to an other page", + "attribute": "search-in-new-page" }, { - "kind": "method", - "name": "getSearchFiltersBinding", - "privacy": "private", - "parameters": [ - { - "name": "id", - "type": { - "text": "string" - } - } - ] + "kind": "field", + "name": "pageUrl", + "type": { + "text": "string" + }, + "description": "The page URL to send the query text", + "attribute": "search-page-url" }, { - "kind": "method", - "name": "getDefaultQueryText", - "privacy": "private", - "return": { - "type": { - "text": "string" - } - } + "kind": "field", + "name": "queryPathBehavior", + "type": { + "text": "QueryPathBehavior" + }, + "description": "Whether to use an URL fragment (#) or query string parameter to pass the query text", + "attribute": "query-behavior" }, { - "kind": "method", - "name": "goToPage", - "privacy": "private", - "parameters": [ - { - "name": "pageNumber", - "type": { - "text": "number" - } - } - ] + "kind": "field", + "name": "queryStringParameter", + "type": { + "text": "string" + }, + "default": "\"q\"", + "description": "The query string parameter to use to send the query text", + "attribute": "query-parameter" }, { - "kind": "method", - "name": "resetPagination", - "privacy": "private" + "kind": "field", + "name": "openBehavior", + "type": { + "text": "PageOpenBehavior" + }, + "description": "Flag indicating if the search box should open a new tab or use the current page", + "attribute": "open-behavior" }, { - "kind": "method", - "name": "resetFilters", - "privacy": "private" + "kind": "field", + "name": "inputPlaceholder", + "type": { + "text": "string" + }, + "description": "Placeholder text for the search box", + "attribute": "placeholder" }, { - "kind": "method", - "name": "initSortProperties", - "privacy": "private" + "kind": "field", + "name": "searchKeywords", + "type": { + "text": "string" + } }, { - "kind": "method", - "name": "initVerticalSelectedKeys", - "privacy": "private" + "kind": "field", + "name": "hasValidationError", + "type": { + "text": "boolean" + } }, { - "kind": "method", - "name": "resetQueryText", - "privacy": "private" + "kind": "field", + "name": "_submittedKeywords", + "type": { + "text": "string" + } + }, + { + "kind": "field", + "name": "strings", + "type": { + "text": "{ [x: string]: string; }" + }, + "privacy": "protected", + "readonly": true }, { "kind": "method", - "name": "getResourceIcon", - "privacy": "private", + "name": "onInputChange", + "privacy": "protected", "parameters": [ { - "name": "resource", - "type": { - "text": "SearchResource" - } + "name": "e" } - ], - "description": "Gets default resource icon" + ] }, { "kind": "method", - "name": "getResourceUrl", - "privacy": "private", - "parameters": [ - { - "name": "resource", - "type": { - "text": "SearchResource" - } - } - ], - "description": "Gets default resource URLs" + "name": "clearSearchKeywords", + "privacy": "protected" }, { "kind": "method", - "name": "getResourceName", + "name": "submitSearch", + "privacy": "public" + }, + { + "kind": "method", + "name": "initializeDefaultValue", "privacy": "private", - "parameters": [ - { - "name": "resource", - "type": { - "text": "SearchResource" - } - } - ], - "description": "Gets default resource Names" + "description": "Initialize the default search keywords value according to settings" }, { "kind": "method", - "name": "getResultSummary", + "name": "handleQueryStringChange", "privacy": "private", - "parameters": [ - { - "name": "result", - "type": { - "text": "SearchHit" - } - }, - { - "name": "resource" - } - ], - "description": "Gets default result summary" + "description": "Subscribes to URL query string change events using windows state" }, { "kind": "field", @@ -5691,6 +5566,16 @@ "module": "src/components/BaseComponent.ts" } }, + { + "kind": "field", + "name": "scopedElements", + "static": true, + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, { "kind": "field", "name": "themeStyles", @@ -5968,605 +5853,658 @@ ], "attributes": [ { - "name": "use-beta", + "name": "default-query-string-parameter", "type": { - "text": "boolean" + "text": "string" }, - "default": "false", + "description": "If specified, get the default query text from this query string parameter name", + "fieldName": "defaultQueryStringParameter" + }, + { + "name": "search-in-new-page", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Flag indicating in the search query text should be sent to an other page", + "fieldName": "searchInNewPage" + }, + { + "name": "search-page-url", + "type": { + "text": "string" + }, + "description": "The page URL to send the query text", + "fieldName": "pageUrl" + }, + { + "name": "query-behavior", + "type": { + "text": "QueryPathBehavior" + }, + "description": "Whether to use an URL fragment (#) or query string parameter to pass the query text", + "fieldName": "queryPathBehavior" + }, + { + "name": "query-parameter", + "type": { + "text": "string" + }, + "default": "\"q\"", + "description": "The query string parameter to use to send the query text", + "fieldName": "queryStringParameter" + }, + { + "name": "open-behavior", + "type": { + "text": "PageOpenBehavior" + }, + "description": "Flag indicating if the search box should open a new tab or use the current page", + "fieldName": "openBehavior" + }, + { + "name": "placeholder", + "type": { + "text": "string" + }, + "description": "Placeholder text for the search box", + "fieldName": "inputPlaceholder" + }, + { + "name": "theme", + "fieldName": "theme", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "name": "enable-debug", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Enable the debug to explore data from context", + "fieldName": "enableDebugMode", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "name": "initialized", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "fieldName": "isInitialized", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + } + ], + "superclass": { + "name": "BaseComponent", + "module": "/src/components/BaseComponent" + } + } + ], + "exports": [ + { + "kind": "js", + "name": "SearchInputComponent", + "declaration": { + "name": "SearchInputComponent", + "module": "src/components/search-input/SearchInputComponent.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/components/search-results/SearchResultsComponent.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "SearchResultsComponent", + "members": [ + { + "kind": "field", + "name": "useBetaEndpoint", + "type": { + "text": "boolean" + }, + "default": "false", "description": "Flag indicating if the beta endpoint for Microsoft Graph API should be used", - "fieldName": "useBetaEndpoint" + "attribute": "use-beta" }, { - "name": "entity-types", + "kind": "field", + "name": "entityTypes", "type": { "text": "EntityType[]" }, "default": "[EntityType.ListItem]", "description": "The Microsoft Search entity types to query", - "fieldName": "entityTypes" + "attribute": "entity-types" }, { - "name": "query-text", + "kind": "field", + "name": "defaultQueryText", "type": { "text": "string" }, "description": "The default query text to apply.\r\nQuery string parameter and search box have priority over this value during first load", - "fieldName": "defaultQueryText" + "attribute": "query-text" }, { - "name": "query-template", + "kind": "field", + "name": "queryTemplate", "type": { "text": "string" }, "description": "The search query template to use. Support tokens https://learn.microsoft.com/en-us/graph/search-concept-query-template", - "fieldName": "queryTemplate" + "attribute": "query-template" }, { - "name": "default-query-string-parameter", + "kind": "field", + "name": "defaultQueryStringParameter", "type": { "text": "string" }, "description": "If specified, get the default query text from this query string parameter name", - "fieldName": "defaultQueryStringParameter" + "attribute": "default-query-string-parameter" }, { - "name": "fields", + "kind": "field", + "name": "selectedFields", "type": { "text": "string[]" }, "default": "[\"name\",\"title\",\"summary\",\"created\",\"createdBy\",\"filetype\",\"defaultEncodingURL\",\"lastModifiedTime\",\"modifiedBy\",\"path\",\"hitHighlightedSummary\",\"SPSiteURL\",\"SiteTitle\"]", "description": "Search managed properties to retrieve for results and usable in the results template. \r\nComma separated. Refer to the [Microsoft Search API documentation](https://learn.microsoft.com/en-us/graph/api/resources/search-api-overview?view=graph-rest-1.0&preserve-view=true#scope-search-based-on-entity-types) to know what properties can be used according to entity types.", - "fieldName": "selectedFields" + "attribute": "fields" }, { - "name": "sort-properties", + "kind": "field", + "name": "sortFieldsConfiguration", "type": { "text": "ISortFieldConfiguration[]" }, "default": "[]", "description": "Sort properties for the request", - "fieldName": "sortFieldsConfiguration" + "attribute": "sort-properties" }, { - "name": "show-paging", + "kind": "field", + "name": "showPaging", "type": { "text": "boolean" }, "description": "Flag indicating if the pagination control should be displayed", - "fieldName": "showPaging" + "attribute": "show-paging" }, { - "name": "page-size", + "kind": "field", + "name": "pageSize", "type": { "text": "number" }, "default": "10", "description": "The number of results to show per results page", - "fieldName": "pageSize" + "attribute": "page-size" }, { - "name": "pages-number", + "kind": "field", + "name": "numberOfPagesToDisplay", "type": { "text": "number" }, "default": "5", "description": "The number of pages to display in the pagination control", - "fieldName": "numberOfPagesToDisplay" + "attribute": "pages-number" }, { - "name": "enable-result-types", + "kind": "field", + "name": "enableResultTypes", "type": { "text": "boolean" }, "description": "Flag indicating if Micrsoft Search result types should be applied in results", - "fieldName": "enableResultTypes" + "attribute": "enable-result-types" }, { - "name": "connections", + "kind": "field", + "name": "connectionIds", "type": { "text": "string[]" }, "description": "If \"entityTypes\" contains \"externalItem\", specify the connection id of the external source", - "fieldName": "connectionIds" + "attribute": "connections" }, { - "name": "enable-modification", + "kind": "field", + "name": "enableModification", "type": { "text": "boolean" }, "default": "false", "description": "Indicates whether spelling modifications are enabled. If enabled, the user will get the search results for the corrected query in case of no results for the original query with typos.", - "fieldName": "enableModification" + "attribute": "enable-modification" }, { - "name": "enable-suggestion", + "kind": "field", + "name": "enableSuggestion", "type": { "text": "boolean" }, "default": "false", "description": "Indicates whether spelling suggestions are enabled. If enabled, the user will get the search results for the original search query and suggestions for spelling correction", - "fieldName": "enableSuggestion" + "attribute": "enable-suggestion" }, { - "name": "comp-title", + "kind": "field", + "name": "componentTitle", "type": { "text": "string | ILocalizedString" }, "description": "If specified, shows the title on top of the results", - "fieldName": "componentTitle" + "attribute": "comp-title" }, { - "name": "see-all-link", + "kind": "field", + "name": "seeAllLink", "type": { "text": "string" }, "description": "If specified, shows a \"See all\" link at top top of the results", - "fieldName": "seeAllLink" + "attribute": "see-all-link" }, { - "name": "show-count", + "kind": "field", + "name": "showCount", "type": { "text": "boolean" }, "description": "If specified, show the results count at the top of the results", - "fieldName": "showCount" + "attribute": "show-count" }, { - "name": "search-filters-id", + "kind": "field", + "name": "searchFiltersComponentId", "type": { "text": "string" }, "description": "The search filters component ID if connected to a search filters", - "fieldName": "searchFiltersComponentId" + "attribute": "search-filters-id", + "reflects": true }, { - "name": "search-input-id", + "kind": "field", + "name": "searchInputComponentId", "type": { "text": "string" }, "description": "The search input component ID if connected to a search input", - "fieldName": "searchInputComponentId" + "attribute": "search-input-id", + "reflects": true }, { - "name": "search-verticals-id", + "kind": "field", + "name": "searchVerticalsComponentId", "type": { "text": "string" }, "description": "The search verticals component ID if connected to a search verticals", - "fieldName": "searchVerticalsComponentId" + "attribute": "search-verticals-id", + "reflects": true }, { - "name": "search-sort-id", + "kind": "field", + "name": "searchSortComponentId", "type": { "text": "string" }, "description": "The search sort component ID if connected to a search sort component", - "fieldName": "searchSortComponentId" + "attribute": "search-sort-id", + "reflects": true }, { - "name": "verticals-keys", + "kind": "field", + "name": "selectedVerticalKeys", "type": { "text": "string[]" }, "description": "If connected to a search verticals component on the same page, determines on which keys this component should be displayed", - "fieldName": "selectedVerticalKeys" + "attribute": "verticals-keys" }, { - "name": "no-loading", + "kind": "field", + "name": "noLoadingIndicator", "type": { "text": "boolean" }, "description": "Flag indicating if the loading indication (spinner/shimmers) should be displayed when fectching the data", - "fieldName": "noLoadingIndicator" + "attribute": "no-loading" }, { - "name": "theme", - "fieldName": "theme", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "kind": "field", + "name": "data", + "type": { + "text": "IDataSourceData" + }, + "default": "{ items: [] }" }, { - "name": "enable-debug", + "kind": "field", + "name": "isLoading", "type": { "text": "boolean" }, - "default": "false", - "description": "Enable the debug to explore data from context", - "fieldName": "enableDebugMode", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "default": "true" }, { - "name": "initialized", + "kind": "field", + "name": "shouldRender", "type": { "text": "boolean" - }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "fieldName": "isInitialized", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" } - } - ], - "superclass": { - "name": "BaseComponent", - "module": "/src/components/BaseComponent" - } - } - ], - "exports": [ - { - "kind": "js", - "name": "SearchResultsComponent", - "declaration": { - "name": "SearchResultsComponent", - "module": "src/components/search-results/SearchResultsComponent.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/components/search-infos/SearchInfosComponents.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "SearchInfosComponents", - "members": [ + }, { "kind": "field", - "name": "searchResultsComponentIds", + "name": "error", "type": { - "text": "string[]" + "text": "Error" }, - "default": "[]", - "attribute": "search-results-ids" + "default": "null" }, { "kind": "field", - "name": "searchInputComponentId", + "name": "searchQuery", "type": { - "text": "string" + "text": "IMicrosoftSearchQuery" }, - "description": "The search input component ID if connected to a search input", - "attribute": "search-input-id" + "privacy": "public", + "default": "{\r\n requests: []\r\n }" }, { "kind": "field", - "name": "searchResultsEventData", + "name": "msSearchService", "type": { - "text": "ISearchResultsEventData" + "text": "IMicrosoftSearchService" }, - "default": "{\r\n availableFilters: [],\r\n resultsCount: undefined,\r\n submittedQueryText: undefined\r\n }" + "privacy": "public", + "default": "new MicrosoftSearchService()" }, { "kind": "field", - "name": "strings", + "name": "templateService", "type": { - "text": "{ [x: string]: any ; }" + "text": "ITemplateService" }, - "privacy": "protected", - "readonly": true - }, - { - "kind": "method", - "name": "handleSearchResultsInfos", "privacy": "private", - "parameters": [ - { - "name": "e", - "type": { - "text": "CustomEvent" - } - } - ] + "default": "new TemplateService()" }, { "kind": "field", - "name": "theme", - "attribute": "theme", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "name": "tokenService", + "type": { + "text": "ITokenService" + }, + "privacy": "private", + "default": "new TokenService()" }, { "kind": "field", - "name": "enableDebugMode", + "name": "dateHelper", "type": { - "text": "boolean" + "text": "DateHelper" }, - "default": "false", - "description": "Enable the debug to explore data from context", - "attribute": "enable-debug", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "private", + "default": "new DateHelper()" }, { "kind": "field", - "name": "renderedOnce", + "name": "searchResultsHelper", "type": { - "text": "boolean" + "text": "SearchResultsHelper" }, - "default": "false", - "description": "Flag indicating if data have been rendered at least once", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "private", + "default": "new SearchResultsHelper()" }, { "kind": "field", - "name": "showDebugData", + "name": "dayJs", "type": { - "text": "boolean" + "text": "any" }, - "default": "false", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "private" }, { "kind": "field", - "name": "isInitialized", + "name": "currentLanguage", "type": { - "text": "boolean" + "text": "string" }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "attribute": "initialized", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "privacy": "private" }, { "kind": "field", - "name": "_eventHanlders", + "name": "sortProperties", "type": { - "text": "Map}>" - }, - "privacy": "public", - "default": "new Map}>()", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" + "text": "ISearchSortProperty[]" } }, { "kind": "field", - "name": "componentError", + "name": "_searchRequestAggregations", "type": { - "text": "Error" - }, - "privacy": "public", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" + "text": "ISearchRequestAggregation[]" } }, { - "kind": "field", - "name": "scopedElements", - "static": true, - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "kind": "method", + "name": "renderDefaultItems", + "privacy": "private" }, { - "kind": "field", - "name": "themeStyles", - "static": true, - "description": "Returns styles from theme (i.e. define CSS variables)", - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "kind": "method", + "name": "renderHeader", + "privacy": "private" }, { "kind": "method", - "name": "renderDebugMode", - "privacy": "protected", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "name": "renderSeeAllLink", + "privacy": "private" }, { "kind": "method", - "name": "renderDebugData", - "privacy": "protected", - "parameters": [ - { - "name": "data", - "type": { - "text": "any" - } - } - ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "name": "renderOverlay", + "privacy": "private" }, { "kind": "method", - "name": "toggleDebugData", - "privacy": "private", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "name": "renderErrorMessage", + "privacy": "private" }, { "kind": "method", - "name": "bindComponents", - "privacy": "protected", - "return": { - "type": { - "text": "Promise" - } - }, + "name": "renderPagination", + "privacy": "private" + }, + { + "kind": "method", + "name": "renderDriveItem", + "privacy": "private", "parameters": [ { - "name": "bindings", + "name": "result", "type": { - "text": "IComponentBinding[]" - }, - "description": "the bindings to perform" + "text": "SearchHit" + } } - ], - "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "unbindComponents", - "privacy": "protected", + "name": "renderSite", + "privacy": "private", "parameters": [ { - "name": "bindings", + "name": "result", "type": { - "text": "IComponentBinding[]" + "text": "SearchHit" } } ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" + "description": "Renders a site entity", + "return": { + "type": { + "text": "" + } } }, { "kind": "method", - "name": "getTheme", - "privacy": "protected", + "name": "renderList", + "privacy": "private", + "parameters": [ + { + "name": "result", + "type": { + "text": "SearchHit" + } + } + ], + "description": "Renders a list entity", "return": { "type": { "text": "" } - }, - "description": "Get CSS variables values for the component predefined variables", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" } }, { "kind": "method", - "name": "getLocalizedString", - "privacy": "protected", + "name": "renderListItem", + "privacy": "private", "parameters": [ { - "name": "string", + "name": "result", "type": { - "text": "ILocalizedString | string" + "text": "SearchHit" } } ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" + "description": "Renders a listItem entity", + "return": { + "type": { + "text": "" + } } }, { "kind": "method", - "name": "setFASTColors", + "name": "renderPerson", "privacy": "private", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" + "parameters": [ + { + "name": "result", + "type": { + "text": "SearchHit" + } + } + ], + "description": "Renders a person entity", + "return": { + "type": { + "text": "" + } } }, { "kind": "method", - "name": "hasPropertyUpdated", - "privacy": "protected", + "name": "renderBookmark", + "privacy": "private", "parameters": [ { - "name": "changedProperties", - "type": { - "text": "PropertyValueMap" - } - }, - { - "name": "propertyName", + "name": "result", "type": { - "text": "string" + "text": "SearchHit" } } ], - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "Renders a bookmark entity" }, { "kind": "method", - "name": "fireCustomEvent", - "return": { - "type": { - "text": "*" - } - }, + "name": "renderAcronym", + "privacy": "private", "parameters": [ { - "name": "eventName", + "name": "result", "type": { - "text": "string" + "text": "SearchHit" } - }, + } + ], + "description": "Renders an acronym entity" + }, + { + "kind": "method", + "name": "renderQnA", + "privacy": "private", + "parameters": [ { - "name": "detail", - "optional": true, + "name": "result", "type": { - "text": "*" + "text": "SearchHit" } - }, + } + ], + "description": "Renders a qna entity" + }, + { + "kind": "method", + "name": "renderAnswer", + "privacy": "private", + "parameters": [ { - "name": "bubbles", - "default": "false", - "optional": true, + "name": "result", "type": { - "text": "boolean" + "text": "SearchHit" } }, { - "name": "cancelable", - "default": "false", - "optional": true, + "name": "icon", "type": { - "text": "boolean" + "text": "SvgIcon" } - }, + } + ], + "description": "Renders an answer entity" + }, + { + "kind": "method", + "name": "renderDefault", + "privacy": "private", + "parameters": [ { - "name": "composed", - "default": "false", - "optional": true, + "name": "result", "type": { - "text": "boolean" + "text": "SearchHit" } } ], - "description": "Override of default method to support 'composed' flag", - "privacy": "protected", + "description": "Renders any entity" + }, + { + "kind": "field", + "name": "scopedElements", + "static": true, + "readonly": true, "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" @@ -6574,299 +6512,376 @@ }, { "kind": "method", - "name": "timeoutPromise", + "name": "updateBinding", "privacy": "private", "return": { "type": { - "text": "" + "text": "Promise" } }, "parameters": [ { - "name": "promise", + "name": "event", "type": { - "text": "Promise" - }, - "description": "the promise to timeout" + "text": "EventConstants" + } }, { - "name": "timeout", + "name": "newValue", "type": { - "text": "number" - }, - "description": "the timeout delay" + "text": "string" + } }, { - "name": "exception", + "name": "previousValue", "type": { - "text": "unknown" - }, - "description": "the exception raised if any error occures" + "text": "string" + } } - ], - "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + ] }, { "kind": "method", - "name": "waitForElement", - "privacy": "private", + "name": "loadState", + "privacy": "public", "return": { "type": { "text": "" } }, - "parameters": [ - { - "name": "binding", - "type": { - "text": "IComponentBinding" - }, - "description": "the binding detail" - }, - { - "name": "timeout", - "optional": true, - "type": { - "text": "number" - } - } - ], - "description": "Waits for a component to be present on the page and initialized to perform event binding", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - } - ], - "attributes": [ + "description": "Only calls when the provider is in ProviderState.SignedIn state" + }, { - "name": "search-results-ids", + "kind": "field", + "name": "strings", "type": { - "text": "string[]" + "text": "{ [x: string]: string; }" }, - "default": "[]", - "fieldName": "searchResultsComponentIds" + "privacy": "protected", + "readonly": true }, { - "name": "search-input-id", - "type": { - "text": "string" + "kind": "method", + "name": "_search", + "privacy": "private", + "return": { + "type": { + "text": "Promise" + } }, - "description": "The search input component ID if connected to a search input", - "fieldName": "searchInputComponentId" + "parameters": [ + { + "name": "searchQuery", + "type": { + "text": "IMicrosoftSearchQuery" + } + } + ] }, { - "name": "theme", - "fieldName": "theme", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" + "kind": "method", + "name": "buildAggregationsFromFiltersConfig", + "privacy": "private", + "return": { + "type": { + "text": "ISearchRequestAggregation[]" + } } }, { - "name": "enable-debug", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Enable the debug to explore data from context", - "fieldName": "enableDebugMode", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "kind": "method", + "name": "buildSearchQuery", + "privacy": "private", + "description": "Builds the search query according to the current component parameters and context" }, { - "name": "initialized", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "fieldName": "isInitialized", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - } - ], - "superclass": { - "name": "BaseComponent", - "module": "/src/components/BaseComponent" - } - } - ], - "exports": [ - { - "kind": "js", - "name": "SearchInfosComponents", - "declaration": { - "name": "SearchInfosComponents", - "module": "src/components/search-infos/SearchInfosComponents.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/components/search-verticals/SearchVerticalsComponent.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "SearchVerticalsComponent", - "members": [ - { - "kind": "field", - "name": "verticals", - "type": { - "text": "IDataVerticalConfiguration[]" + "kind": "method", + "name": "handleSearchFilters", + "privacy": "private", + "return": { + "type": { + "text": "Promise" + } }, - "default": "[]", - "description": "The configured search verticals", - "attribute": "settings" + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ] }, { - "kind": "field", - "name": "defaultVerticalQueryStringParam", - "type": { - "text": "string" + "kind": "method", + "name": "handleSearchInput", + "privacy": "private", + "return": { + "type": { + "text": "Promise" + } }, - "default": "\"v\"", - "description": "The query string parameter name to use to select a vertical tab by default", - "attribute": "default-query-string-param" + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ] }, { - "kind": "field", - "name": "selectedVerticalKey", - "type": { - "text": "string" + "kind": "method", + "name": "handleSearchVertical", + "privacy": "private", + "return": { + "type": { + "text": "Promise" + } }, - "attribute": "selected-key", - "reflects": true + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + }, + "description": "the selected vertical information" + } + ], + "description": "Handler when a new vertical is selected" }, { - "kind": "field", - "name": "selectedVertical", - "type": { - "text": "IDataVertical" + "kind": "method", + "name": "handleSearchSort", + "privacy": "private", + "return": { + "type": { + "text": "Promise" + } }, - "description": "The current selected vertical" + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ] }, { "kind": "method", - "name": "selectVertical", - "privacy": "public", + "name": "getSearchInputBinding", + "privacy": "private", + "return": { + "type": { + "text": "IComponentBinding" + } + }, "parameters": [ { - "name": "verticalKey", + "name": "id", "type": { "text": "string" - }, - "description": "the vertical key to select" + } } - ], - "description": "Select the vertical and notifies all subscribers" + ] }, { "kind": "method", - "name": "onVerticalSelected", + "name": "getSearchVerticalsBinding", "privacy": "private", "return": { "type": { - "text": "void" + "text": "IComponentBinding" } }, "parameters": [ { - "name": "vertical", + "name": "id", "type": { - "text": "IDataVerticalConfiguration" - }, - "description": "the current selected vertical" + "text": "string" + } } - ], - "description": "Handler when a vertical is slected by an user" + ] }, { "kind": "method", - "name": "initializeDefaultValue", + "name": "getSearchSortBinding", "privacy": "private", - "description": "Initialize the default vertical value according to settings" + "parameters": [ + { + "name": "id", + "type": { + "text": "string" + } + } + ] }, { "kind": "method", - "name": "handleQueryStringChange", + "name": "getSearchFiltersBinding", "privacy": "private", - "description": "Subscribes to URL query string change events using windows state" + "parameters": [ + { + "name": "id", + "type": { + "text": "string" + } + } + ] }, { "kind": "method", - "name": "toDataVertical", + "name": "getDefaultQueryText", "privacy": "private", "return": { "type": { - "text": "IDataVertical" + "text": "string" } - }, + } + }, + { + "kind": "method", + "name": "goToPage", + "privacy": "private", "parameters": [ { - "name": "verticalKey", + "name": "pageNumber", "type": { - "text": "string" + "text": "number" } } ] }, { - "kind": "field", - "name": "theme", - "attribute": "theme", - "reflects": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "kind": "method", + "name": "resetPagination", + "privacy": "private" }, { - "kind": "field", - "name": "enableDebugMode", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Enable the debug to explore data from context", - "attribute": "enable-debug", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "kind": "method", + "name": "resetFilters", + "privacy": "private" }, { - "kind": "field", - "name": "renderedOnce", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Flag indicating if data have been rendered at least once", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "kind": "method", + "name": "initSortProperties", + "privacy": "private" }, { - "kind": "field", - "name": "showDebugData", - "type": { - "text": "boolean" - }, - "default": "false", - "inheritedFrom": { + "kind": "method", + "name": "initVerticalSelectedKeys", + "privacy": "private" + }, + { + "kind": "method", + "name": "resetQueryText", + "privacy": "private" + }, + { + "kind": "method", + "name": "getResourceIcon", + "privacy": "private", + "parameters": [ + { + "name": "resource", + "type": { + "text": "SearchResource" + } + } + ], + "description": "Gets default resource icon" + }, + { + "kind": "method", + "name": "getResourceUrl", + "privacy": "private", + "parameters": [ + { + "name": "resource", + "type": { + "text": "SearchResource" + } + } + ], + "description": "Gets default resource URLs" + }, + { + "kind": "method", + "name": "getResourceName", + "privacy": "private", + "parameters": [ + { + "name": "resource", + "type": { + "text": "SearchResource" + } + } + ], + "description": "Gets default resource Names" + }, + { + "kind": "method", + "name": "getResultSummary", + "privacy": "private", + "parameters": [ + { + "name": "result", + "type": { + "text": "SearchHit" + } + }, + { + "name": "resource" + } + ], + "description": "Gets default result summary" + }, + { + "kind": "field", + "name": "theme", + "attribute": "theme", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "enableDebugMode", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Enable the debug to explore data from context", + "attribute": "enable-debug", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "renderedOnce", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Flag indicating if data have been rendered at least once", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "showDebugData", + "type": { + "text": "boolean" + }, + "default": "false", + "inheritedFrom": { "name": "BaseComponent", "module": "src/components/BaseComponent.ts" } @@ -6911,16 +6926,6 @@ "module": "src/components/BaseComponent.ts" } }, - { - "kind": "field", - "name": "scopedElements", - "static": true, - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, { "kind": "field", "name": "themeStyles", @@ -7198,138 +7203,305 @@ ], "attributes": [ { - "name": "settings", + "name": "use-beta", "type": { - "text": "IDataVerticalConfiguration[]" + "text": "boolean" }, - "default": "[]", - "description": "The configured search verticals", - "fieldName": "verticals" + "default": "false", + "description": "Flag indicating if the beta endpoint for Microsoft Graph API should be used", + "fieldName": "useBetaEndpoint" }, { - "name": "default-query-string-param", + "name": "entity-types", "type": { - "text": "string" + "text": "EntityType[]" }, - "default": "\"v\"", - "description": "The query string parameter name to use to select a vertical tab by default", - "fieldName": "defaultVerticalQueryStringParam" + "default": "[EntityType.ListItem]", + "description": "The Microsoft Search entity types to query", + "fieldName": "entityTypes" }, { - "name": "selected-key", + "name": "query-text", "type": { "text": "string" }, - "fieldName": "selectedVerticalKey" - }, - { - "name": "theme", - "fieldName": "theme", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "The default query text to apply.\r\nQuery string parameter and search box have priority over this value during first load", + "fieldName": "defaultQueryText" }, { - "name": "enable-debug", + "name": "query-template", "type": { - "text": "boolean" + "text": "string" }, - "default": "false", - "description": "Enable the debug to explore data from context", - "fieldName": "enableDebugMode", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "description": "The search query template to use. Support tokens https://learn.microsoft.com/en-us/graph/search-concept-query-template", + "fieldName": "queryTemplate" }, { - "name": "initialized", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "fieldName": "isInitialized", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - } - ], - "superclass": { - "name": "BaseComponent", - "module": "/src/components/BaseComponent" - } - } - ], - "exports": [ - { - "kind": "js", - "name": "SearchVerticalsComponent", - "declaration": { - "name": "SearchVerticalsComponent", - "module": "src/components/search-verticals/SearchVerticalsComponent.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/components/video-player/VideoPlayerComponent.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "VideoPlayerComponent", - "members": [ - { - "kind": "field", - "name": "videoTitle", + "name": "default-query-string-parameter", "type": { "text": "string" }, - "description": "Title of the video for ARIA screen readers", - "attribute": "title" + "description": "If specified, get the default query text from this query string parameter name", + "fieldName": "defaultQueryStringParameter" }, { - "kind": "field", - "name": "videoUrl", + "name": "fields", "type": { - "text": "string" + "text": "string[]" }, - "description": "*\r\nUrl from Microsoft SharePoint", - "attribute": "video-url" + "default": "[\"name\",\"title\",\"summary\",\"created\",\"createdBy\",\"filetype\",\"defaultEncodingURL\",\"lastModifiedTime\",\"modifiedBy\",\"path\",\"hitHighlightedSummary\",\"SPSiteURL\",\"SiteTitle\"]", + "description": "Search managed properties to retrieve for results and usable in the results template. \r\nComma separated. Refer to the [Microsoft Search API documentation](https://learn.microsoft.com/en-us/graph/api/resources/search-api-overview?view=graph-rest-1.0&preserve-view=true#scope-search-based-on-entity-types) to know what properties can be used according to entity types.", + "fieldName": "selectedFields" }, { - "kind": "field", - "name": "thumbnailUrl", + "name": "sort-properties", "type": { - "text": "string" + "text": "ISortFieldConfiguration[]" }, - "description": "Thumbnail URl to use. Only used when 'lazy-loading' is set to true.\r\nIf 'video-url' is set, this thumbnail will be used.", - "attribute": "thumbnail-url" + "default": "[]", + "description": "Sort properties for the request", + "fieldName": "sortFieldsConfiguration" }, { - "kind": "field", - "name": "width", + "name": "show-paging", "type": { - "text": "string" + "text": "boolean" }, - "description": "Width of the player. If not set, follow width of the parent", - "attribute": "width" + "description": "Flag indicating if the pagination control should be displayed", + "fieldName": "showPaging" }, { - "kind": "field", - "name": "height", + "name": "page-size", "type": { - "text": "string" + "text": "number" }, - "description": "Height of the player. If not set, follow height of the parent", - "attribute": "height" + "default": "10", + "description": "The number of results to show per results page", + "fieldName": "pageSize" }, { - "kind": "field", + "name": "pages-number", + "type": { + "text": "number" + }, + "default": "5", + "description": "The number of pages to display in the pagination control", + "fieldName": "numberOfPagesToDisplay" + }, + { + "name": "enable-result-types", + "type": { + "text": "boolean" + }, + "description": "Flag indicating if Micrsoft Search result types should be applied in results", + "fieldName": "enableResultTypes" + }, + { + "name": "connections", + "type": { + "text": "string[]" + }, + "description": "If \"entityTypes\" contains \"externalItem\", specify the connection id of the external source", + "fieldName": "connectionIds" + }, + { + "name": "enable-modification", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Indicates whether spelling modifications are enabled. If enabled, the user will get the search results for the corrected query in case of no results for the original query with typos.", + "fieldName": "enableModification" + }, + { + "name": "enable-suggestion", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Indicates whether spelling suggestions are enabled. If enabled, the user will get the search results for the original search query and suggestions for spelling correction", + "fieldName": "enableSuggestion" + }, + { + "name": "comp-title", + "type": { + "text": "string | ILocalizedString" + }, + "description": "If specified, shows the title on top of the results", + "fieldName": "componentTitle" + }, + { + "name": "see-all-link", + "type": { + "text": "string" + }, + "description": "If specified, shows a \"See all\" link at top top of the results", + "fieldName": "seeAllLink" + }, + { + "name": "show-count", + "type": { + "text": "boolean" + }, + "description": "If specified, show the results count at the top of the results", + "fieldName": "showCount" + }, + { + "name": "search-filters-id", + "type": { + "text": "string" + }, + "description": "The search filters component ID if connected to a search filters", + "fieldName": "searchFiltersComponentId" + }, + { + "name": "search-input-id", + "type": { + "text": "string" + }, + "description": "The search input component ID if connected to a search input", + "fieldName": "searchInputComponentId" + }, + { + "name": "search-verticals-id", + "type": { + "text": "string" + }, + "description": "The search verticals component ID if connected to a search verticals", + "fieldName": "searchVerticalsComponentId" + }, + { + "name": "search-sort-id", + "type": { + "text": "string" + }, + "description": "The search sort component ID if connected to a search sort component", + "fieldName": "searchSortComponentId" + }, + { + "name": "verticals-keys", + "type": { + "text": "string[]" + }, + "description": "If connected to a search verticals component on the same page, determines on which keys this component should be displayed", + "fieldName": "selectedVerticalKeys" + }, + { + "name": "no-loading", + "type": { + "text": "boolean" + }, + "description": "Flag indicating if the loading indication (spinner/shimmers) should be displayed when fectching the data", + "fieldName": "noLoadingIndicator" + }, + { + "name": "theme", + "fieldName": "theme", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "name": "enable-debug", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Enable the debug to explore data from context", + "fieldName": "enableDebugMode", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "name": "initialized", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "fieldName": "isInitialized", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + } + ], + "superclass": { + "name": "BaseComponent", + "module": "/src/components/BaseComponent" + } + } + ], + "exports": [ + { + "kind": "js", + "name": "SearchResultsComponent", + "declaration": { + "name": "SearchResultsComponent", + "module": "src/components/search-results/SearchResultsComponent.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/components/video-player/VideoPlayerComponent.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "VideoPlayerComponent", + "members": [ + { + "kind": "field", + "name": "videoTitle", + "type": { + "text": "string" + }, + "description": "Title of the video for ARIA screen readers", + "attribute": "title" + }, + { + "kind": "field", + "name": "videoUrl", + "type": { + "text": "string" + }, + "description": "*\r\nUrl from Microsoft SharePoint", + "attribute": "video-url" + }, + { + "kind": "field", + "name": "thumbnailUrl", + "type": { + "text": "string" + }, + "description": "Thumbnail URl to use. Only used when 'lazy-loading' is set to true.\r\nIf 'video-url' is set, this thumbnail will be used.", + "attribute": "thumbnail-url" + }, + { + "kind": "field", + "name": "width", + "type": { + "text": "string" + }, + "description": "Width of the player. If not set, follow width of the parent", + "attribute": "width" + }, + { + "kind": "field", + "name": "height", + "type": { + "text": "string" + }, + "description": "Height of the player. If not set, follow height of the parent", + "attribute": "height" + }, + { + "kind": "field", "name": "autoplay", "type": { "text": "boolean" @@ -7850,849 +8022,702 @@ "fieldName": "videoTitle" }, { - "name": "video-url", - "type": { - "text": "string" - }, - "description": "*\r\nUrl from Microsoft SharePoint", - "fieldName": "videoUrl" - }, - { - "name": "thumbnail-url", - "type": { - "text": "string" - }, - "description": "Thumbnail URl to use. Only used when 'lazy-loading' is set to true.\r\nIf 'video-url' is set, this thumbnail will be used.", - "fieldName": "thumbnailUrl" - }, - { - "name": "width", - "type": { - "text": "string" - }, - "description": "Width of the player. If not set, follow width of the parent", - "fieldName": "width" - }, - { - "name": "height", - "type": { - "text": "string" - }, - "description": "Height of the player. If not set, follow height of the parent", - "fieldName": "height" - }, - { - "name": "autoplay", - "type": { - "text": "boolean" - }, - "description": "Flag indicating if the video should start automatically. \r\nATTENTION: May be blocked by browser evn if true", - "fieldName": "autoplay" - }, - { - "name": "allowfullscreen", - "type": { - "text": "boolean" - }, - "description": "Allows fullscreen on the video", - "fieldName": "allowfullscreen" - }, - { - "name": "preview-url", - "type": { - "text": "string" - }, - "description": "The video preview URL to use in the iframe. This URL must be accessible by the current user.", - "fieldName": "previewUrl" - }, - { - "name": "lazy-loading", - "type": { - "text": "boolean" - }, - "description": "If set to 'true', the component won't load the iframe until a click on a fake play button is performed by the user + the video thumbnail will be displayed\r\nWhen clicked, the iframew is loaded and the video launches in autoplay mode.", - "fieldName": "lazyLoading" - }, - { - "name": "theme", - "fieldName": "theme", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "name": "enable-debug", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Enable the debug to explore data from context", - "fieldName": "enableDebugMode", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - }, - { - "name": "initialized", - "type": { - "text": "boolean" - }, - "default": "false", - "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", - "fieldName": "isInitialized", - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } - } - ], - "superclass": { - "name": "BaseComponent", - "module": "/src/components/BaseComponent" - } - } - ], - "exports": [ - { - "kind": "js", - "name": "VideoPlayerComponent", - "declaration": { - "name": "VideoPlayerComponent", - "module": "src/components/video-player/VideoPlayerComponent.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/models/common/BuiltinTemplate.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/IComponentBinding.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/IDataFilter.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/IDataFilterConfiguration.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/IDataSourceData.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/IDataVertical.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/IDataVerticalConfiguration.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/IGraphBatch.ts", - "declarations": [ - { - "kind": "variable", - "name": "BATCH_SIZE_LIMIT", - "type": { - "text": "number" - }, - "default": "20" - } - ], - "exports": [ - { - "kind": "js", - "name": "BATCH_SIZE_LIMIT", - "declaration": { - "name": "BATCH_SIZE_LIMIT", - "module": "src/models/common/IGraphBatch.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/models/common/ILocalizedString.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/ISearchedItem.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/ISortFieldConfiguration.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/common/IThemeDefinition.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/events/EventType.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/events/ISearchFiltersEventData.ts.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/events/ISearchInputEventData.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/events/ISearchResultsEventData.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/events/ISearchSortEventData.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/events/ISearchVerticalEventData.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "ISearchVerticalEventData", - "members": [ - { - "kind": "field", - "name": "selectedVertical", - "type": { - "text": "IDataVertical" - }, - "description": "Current selected vertical key" - }, - { - "kind": "field", - "name": "eventType", - "type": { - "text": "ComponentEventType" - }, - "description": "Type of this event" - } - ] - } - ], - "exports": [ - { - "kind": "js", - "name": "ISearchVerticalEventData", - "declaration": { - "name": "ISearchVerticalEventData", - "module": "src/models/events/ISearchVerticalEventData.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/models/search/IMicrosoftSearchDataSourceData.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/search/IMicrosoftSearchRequest.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/search/IMicrosoftSearchResponse.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/models/search/IResultTemplates.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-adaptive-card.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "AdaptiveCardComponent", - "module": "/src/components/adaptive-card/AdaptiveCardComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-checkbox-filter.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "CheckboxFilterComponent", - "module": "/src/components/search-filters/sub-components/filters/checkbox-filter/CheckboxFilterComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-date-filter.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "DateFilterComponent", - "module": "/src/components/search-filters/sub-components/filters/date-filter/DateFilterComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-error-message.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "ErrorMessageComponent", - "module": "/src/components/search-results/sub-components/error-message/ErrorMessageComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-language-provider.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "LanguageProviderComponent", - "module": "/src/components/language-provider/LanguageProviderComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-pagination.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "PaginationComponent", - "module": "/src/components/search-results/sub-components/pagination/PaginationComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-search-filters.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "SearchFiltersComponent", - "module": "/src/components/search-filters/SearchFiltersComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-search-infos.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "SearchInfosComponents", - "module": "/src/components/search-infos/SearchInfosComponents" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-search-input.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "SearchInputComponent", - "module": "/src/components/search-input/SearchInputComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-search-results.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "SearchResultsComponent", - "module": "/src/components/search-results/SearchResultsComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-search-sort.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "SearchSortComponent", - "module": "/src/components/search-filters/sub-components/search-sort/SearchSortComponent" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-search-verticals.ts", - "declarations": [], - "exports": [ - { - "kind": "custom-element-definition", - "declaration": { - "name": "SearchVerticalsComponent", - "module": "/src/components/search-verticals/SearchVerticalsComponent" + "name": "video-url", + "type": { + "text": "string" + }, + "description": "*\r\nUrl from Microsoft SharePoint", + "fieldName": "videoUrl" + }, + { + "name": "thumbnail-url", + "type": { + "text": "string" + }, + "description": "Thumbnail URl to use. Only used when 'lazy-loading' is set to true.\r\nIf 'video-url' is set, this thumbnail will be used.", + "fieldName": "thumbnailUrl" + }, + { + "name": "width", + "type": { + "text": "string" + }, + "description": "Width of the player. If not set, follow width of the parent", + "fieldName": "width" + }, + { + "name": "height", + "type": { + "text": "string" + }, + "description": "Height of the player. If not set, follow height of the parent", + "fieldName": "height" + }, + { + "name": "autoplay", + "type": { + "text": "boolean" + }, + "description": "Flag indicating if the video should start automatically. \r\nATTENTION: May be blocked by browser evn if true", + "fieldName": "autoplay" + }, + { + "name": "allowfullscreen", + "type": { + "text": "boolean" + }, + "description": "Allows fullscreen on the video", + "fieldName": "allowfullscreen" + }, + { + "name": "preview-url", + "type": { + "text": "string" + }, + "description": "The video preview URL to use in the iframe. This URL must be accessible by the current user.", + "fieldName": "previewUrl" + }, + { + "name": "lazy-loading", + "type": { + "text": "boolean" + }, + "description": "If set to 'true', the component won't load the iframe until a click on a fake play button is performed by the user + the video thumbnail will be displayed\r\nWhen clicked, the iframew is loaded and the video launches in autoplay mode.", + "fieldName": "lazyLoading" + }, + { + "name": "theme", + "fieldName": "theme", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "name": "enable-debug", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Enable the debug to explore data from context", + "fieldName": "enableDebugMode", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "name": "initialized", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "fieldName": "isInitialized", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + } + ], + "superclass": { + "name": "BaseComponent", + "module": "/src/components/BaseComponent" } } - ] - }, - { - "kind": "javascript-module", - "path": "src/exports/define/pnp-video-player.ts", - "declarations": [], + ], "exports": [ { - "kind": "custom-element-definition", + "kind": "js", + "name": "VideoPlayerComponent", "declaration": { "name": "VideoPlayerComponent", - "module": "/src/components/video-player/VideoPlayerComponent" + "module": "src/components/video-player/VideoPlayerComponent.ts" } } ] }, { "kind": "javascript-module", - "path": "src/services/microsoftSearchService/IMicrosoftSearchService.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/services/microsoftSearchService/MicrosoftSearchService.ts", + "path": "src/components/search-verticals/SearchVerticalsComponent.ts", "declarations": [ - { - "kind": "variable", - "name": "EntityTypesValidCombination", - "type": { - "text": "array" - }, - "default": "[EntityType.Drive, EntityType.DriveItem, EntityType.Site, EntityType.List, EntityType.ListItem]" - }, { "kind": "class", "description": "", - "name": "MicrosoftSearchService", + "name": "SearchVerticalsComponent", "members": [ { "kind": "field", - "name": "_useBetaEndPoint", + "name": "verticals", + "type": { + "text": "IDataVerticalConfiguration[]" + }, + "default": "[]", + "description": "The configured search verticals", + "attribute": "settings" + }, + { + "kind": "field", + "name": "defaultVerticalQueryStringParam", + "type": { + "text": "string" + }, + "default": "\"v\"", + "description": "The query string parameter name to use to select a vertical tab by default", + "attribute": "default-query-string-param" + }, + { + "kind": "field", + "name": "selectedVerticalKey", + "type": { + "text": "string" + }, + "attribute": "selected-key", + "reflects": true + }, + { + "kind": "field", + "name": "selectedVertical", + "type": { + "text": "IDataVertical" + }, + "description": "The current selected vertical" + }, + { + "kind": "field", + "name": "scopedElements", + "static": true, + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "selectVertical", + "privacy": "public", + "parameters": [ + { + "name": "verticalKey", + "type": { + "text": "string" + }, + "description": "the vertical key to select" + } + ], + "description": "Select the vertical and notifies all subscribers" + }, + { + "kind": "method", + "name": "onVerticalSelected", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "vertical", + "type": { + "text": "IDataVerticalConfiguration" + }, + "description": "the current selected vertical" + } + ], + "description": "Handler when a vertical is slected by an user" + }, + { + "kind": "method", + "name": "initializeDefaultValue", + "privacy": "private", + "description": "Initialize the default vertical value according to settings" + }, + { + "kind": "method", + "name": "handleQueryStringChange", + "privacy": "private", + "description": "Subscribes to URL query string change events using windows state" + }, + { + "kind": "method", + "name": "onTemplateVerticalSelected", + "privacy": "private", + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + }, + "description": "the HTML event" + }, + { + "name": "context", + "type": { + "text": "any" + }, + "description": "the context of current vertical" + } + ], + "description": "Handler for 'verticals' tempalte whe na vertical is selcted" + }, + { + "kind": "method", + "name": "toDataVertical", + "privacy": "private", + "return": { + "type": { + "text": "IDataVertical" + } + }, + "parameters": [ + { + "name": "verticalKey", + "type": { + "text": "string" + } + } + ] + }, + { + "kind": "field", + "name": "theme", + "attribute": "theme", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "enableDebugMode", "type": { "text": "boolean" }, - "privacy": "private" + "default": "false", + "description": "Enable the debug to explore data from context", + "attribute": "enable-debug", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "useBetaEndPoint", + "name": "renderedOnce", "type": { "text": "boolean" }, - "privacy": "public" + "default": "false", + "description": "Flag indicating if data have been rendered at least once", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "controller", + "name": "showDebugData", "type": { - "text": "AbortController" + "text": "boolean" }, - "privacy": "private" + "default": "false", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "field", - "name": "_microsoftSearchUrl", + "name": "isInitialized", "type": { - "text": "string" + "text": "boolean" + }, + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "attribute": "initialized", + "reflects": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "_eventHanlders", + "type": { + "text": "Map}>" + }, + "privacy": "public", + "default": "new Map}>()", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "componentError", + "type": { + "text": "Error" }, + "privacy": "public", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "field", + "name": "themeStyles", + "static": true, + "description": "Returns styles from theme (i.e. define CSS variables)", + "readonly": true, + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "renderDebugMode", + "privacy": "protected", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "renderDebugData", + "privacy": "protected", + "parameters": [ + { + "name": "data", + "type": { + "text": "any" + } + } + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "toggleDebugData", "privacy": "private", - "default": "\"https://graph.microsoft.com/v1.0/search/query\"" + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "search", - "privacy": "public", + "name": "bindComponents", + "privacy": "protected", "return": { "type": { - "text": "Promise" + "text": "Promise" } }, "parameters": [ { - "name": "searchQuery", + "name": "bindings", "type": { - "text": "IMicrosoftSearchQuery" - } - }, + "text": "IComponentBinding[]" + }, + "description": "the bindings to perform" + } + ], + "description": "Binds all connected to the current one by listening all required events.\r\nThe method will wait for the component to be present on the page after a predefined timeout (default 5000ms)", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "kind": "method", + "name": "unbindComponents", + "privacy": "protected", + "parameters": [ { - "name": "culture", - "optional": true, + "name": "bindings", "type": { - "text": "string" + "text": "IComponentBinding[]" } } - ] + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "abortRequest", - "privacy": "public" - } - ] - } - ], - "exports": [ - { - "kind": "js", - "name": "EntityTypesValidCombination", - "declaration": { - "name": "EntityTypesValidCombination", - "module": "src/services/microsoftSearchService/MicrosoftSearchService.ts" - } - }, - { - "kind": "js", - "name": "MicrosoftSearchService", - "declaration": { - "name": "MicrosoftSearchService", - "module": "src/services/microsoftSearchService/MicrosoftSearchService.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/services/templateService/ITemplateService.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/services/templateService/TemplateService.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "TemplateService", - "members": [ - { - "kind": "field", - "name": "_adaptiveCardsNS", - "privacy": "private" - }, - { - "kind": "field", - "name": "_markdownIt", - "privacy": "private" - }, - { - "kind": "field", - "name": "_adaptiveCardsTemplating", - "privacy": "private" + "name": "getTheme", + "privacy": "protected", + "return": { + "type": { + "text": "" + } + }, + "description": "Get CSS variables values for the component predefined variables", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "field", - "name": "_serializationContext", - "privacy": "private" + "kind": "method", + "name": "getLocalizedString", + "privacy": "protected", + "parameters": [ + { + "name": "string", + "type": { + "text": "ILocalizedString | string" + } + } + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "loadAdaptiveCardsResources", - "privacy": "public", - "return": { - "type": { - "text": "Promise" - } + "name": "setFASTColors", + "privacy": "private", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" } }, { "kind": "method", - "name": "getFileContent", - "privacy": "public", - "return": { - "type": { - "text": "Promise" - } - }, + "name": "hasPropertyUpdated", + "privacy": "protected", "parameters": [ { - "name": "fileAbsoluteUrl", + "name": "changedProperties", + "type": { + "text": "PropertyValueMap" + } + }, + { + "name": "propertyName", "type": { "text": "string" } } - ] + ], + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "processAdaptiveCardTemplate", - "privacy": "public", + "name": "fireCustomEvent", "return": { "type": { - "text": "HTMLElement" + "text": "*" } }, "parameters": [ { - "name": "templateContent", + "name": "eventName", "type": { "text": "string" } }, { - "name": "templateContext", + "name": "detail", + "optional": true, "type": { - "text": "object" + "text": "*" } }, { - "name": "theme", + "name": "bubbles", + "default": "false", "optional": true, "type": { - "text": "IThemeDefinition" + "text": "boolean" } }, { - "name": "fallbackImageUrl", + "name": "cancelable", + "default": "false", "optional": true, "type": { - "text": "string" + "text": "boolean" + } + }, + { + "name": "composed", + "default": "false", + "optional": true, + "type": { + "text": "boolean" } } - ] + ], + "description": "Override of default method to support 'composed' flag", + "privacy": "protected", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "processResultTypesFromHtml", - "privacy": "public", + "name": "timeoutPromise", + "privacy": "private", "return": { "type": { - "text": "HTMLElement" + "text": "" } }, "parameters": [ { - "name": "data", + "name": "promise", "type": { - "text": "IDataSourceData" - } + "text": "Promise" + }, + "description": "the promise to timeout" }, { - "name": "templateContent", + "name": "timeout", "type": { - "text": "HTMLElement" - } + "text": "number" + }, + "description": "the timeout delay" + }, + { + "name": "exception", + "type": { + "text": "unknown" + }, + "description": "the exception raised if any error occures" } - ] + ], + "description": "Allows a promise to be timeout \r\nhttps://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { "kind": "method", - "name": "_getHostConfiguration", + "name": "waitForElement", "privacy": "private", "return": { "type": { - "text": "{ [key: string]: any }" + "text": "" } }, "parameters": [ { - "name": "theme", + "name": "binding", + "type": { + "text": "IComponentBinding" + }, + "description": "the binding detail" + }, + { + "name": "timeout", "optional": true, "type": { - "text": "IThemeDefinition" + "text": "number" } } - ] + ], + "description": "Waits for a component to be present on the page and initialized to perform event binding", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } } - ] - } - ], - "exports": [ - { - "kind": "js", - "name": "TemplateService", - "declaration": { - "name": "TemplateService", - "module": "src/services/templateService/TemplateService.ts" - } - } - ] - }, - { - "kind": "javascript-module", - "path": "src/services/tokenService/ITokenService.ts", - "declarations": [], - "exports": [] - }, - { - "kind": "javascript-module", - "path": "src/services/tokenService/TokenService.ts", - "declarations": [ - { - "kind": "class", - "description": "", - "name": "TokenService", - "members": [ + ], + "attributes": [ { - "kind": "field", - "name": "genericTokenRegexp", - "privacy": "private", - "default": "/{[^{]+?[^\\\\]}/gi", - "description": "This regex only matches expressions enclosed with single, not escaped, curly braces '{}'" + "name": "settings", + "type": { + "text": "IDataVerticalConfiguration[]" + }, + "default": "[]", + "description": "The configured search verticals", + "fieldName": "verticals" }, { - "kind": "field", - "name": "tokenValuesList", + "name": "default-query-string-param", "type": { - "text": "{ [key: string]: string }" + "text": "string" }, - "privacy": "private", - "default": "{\r\n [BuiltinTokenNames.searchTerms]: undefined,\r\n [BuiltinTokenNames.verticals]: undefined\r\n }", - "description": "The list of static tokens values set by the Web Part as context" + "default": "\"v\"", + "description": "The query string parameter name to use to select a vertical tab by default", + "fieldName": "defaultVerticalQueryStringParam" }, { - "kind": "method", - "name": "setTokenValue", - "privacy": "public", - "parameters": [ - { - "name": "token", - "type": { - "text": "string" - } - }, - { - "name": "value", - "type": { - "text": "any" - } - } - ] + "name": "selected-key", + "type": { + "text": "string" + }, + "fieldName": "selectedVerticalKey" }, { - "kind": "method", - "name": "getTokenValue", - "privacy": "public", - "return": { - "type": { - "text": "string" - } + "name": "theme", + "fieldName": "theme", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } + }, + { + "name": "enable-debug", + "type": { + "text": "boolean" }, - "parameters": [ - { - "name": "token", - "type": { - "text": "string" - } - } - ] + "default": "false", + "description": "Enable the debug to explore data from context", + "fieldName": "enableDebugMode", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } }, { - "kind": "method", - "name": "resolveTokens", - "privacy": "public", - "return": { - "type": { - "text": "string" - } + "name": "initialized", + "type": { + "text": "boolean" }, - "parameters": [ - { - "name": "inputString", - "type": { - "text": "string" - } - } - ] + "default": "false", + "description": "Property indicating the component has finished its initialization squence, for instance setting default values than can be read from other component\r\nThis property is set as reflected attribute to be able to trigger a mutation for consumer components", + "fieldName": "isInitialized", + "inheritedFrom": { + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" + } } - ] + ], + "superclass": { + "name": "BaseComponent", + "module": "/src/components/BaseComponent" + } } ], "exports": [ { "kind": "js", - "name": "TokenService", + "name": "SearchVerticalsComponent", "declaration": { - "name": "TokenService", - "module": "src/services/tokenService/TokenService.ts" + "name": "SearchVerticalsComponent", + "module": "src/components/search-verticals/SearchVerticalsComponent.ts" } } ] @@ -8971,6 +8996,36 @@ } ] }, + { + "kind": "javascript-module", + "path": "src/stories/components/search-verticals/verticals.stories.ts", + "declarations": [ + { + "kind": "variable", + "name": "BasicUsageStory", + "type": { + "text": "Story" + } + } + ], + "exports": [ + { + "kind": "js", + "name": "default", + "declaration": { + "module": "src/stories/components/search-verticals/verticals.stories.ts" + } + }, + { + "kind": "js", + "name": "BasicUsageStory", + "declaration": { + "name": "BasicUsageStory", + "module": "src/stories/components/search-verticals/verticals.stories.ts" + } + } + ] + }, { "kind": "javascript-module", "path": "src/stories/components/search-results/query.stories.ts", @@ -9088,36 +9143,6 @@ } ] }, - { - "kind": "javascript-module", - "path": "src/stories/components/search-verticals/verticals.stories.ts", - "declarations": [ - { - "kind": "variable", - "name": "BasicUsageStory", - "type": { - "text": "Story" - } - } - ], - "exports": [ - { - "kind": "js", - "name": "default", - "declaration": { - "module": "src/stories/components/search-verticals/verticals.stories.ts" - } - }, - { - "kind": "js", - "name": "BasicUsageStory", - "declaration": { - "name": "BasicUsageStory", - "module": "src/stories/components/search-verticals/verticals.stories.ts" - } - } - ] - }, { "kind": "javascript-module", "path": "src/stories/components/video-player/video-player.stories.ts", @@ -9150,223 +9175,107 @@ }, { "kind": "javascript-module", - "path": "src/components/search-filters/sub-components/filters/BaseFilterComponent.ts", + "path": "src/components/search-filters/sub-components/search-sort/SearchSortComponent.ts", "declarations": [ { "kind": "class", "description": "", - "name": "BaseFilterComponent", + "name": "SearchSortComponent", "members": [ { "kind": "field", - "name": "filter", - "type": { - "text": "IDataFilterResult" - }, - "description": "Filter information to display" - }, - { - "kind": "field", - "name": "filterConfiguration", - "type": { - "text": "IDataFilterConfiguration" - }, - "description": "Filter confguration" - }, - { - "kind": "field", - "name": "disabled", - "type": { - "text": "boolean" - }, - "description": "Flag indicating if the filter should be disabled" - }, - { - "kind": "field", - "name": "onFilterUpdated", - "type": { - "text": "(filterName: string, filterValue: IDataFilterValue, selected: boolean) => void" - }, - "description": "Callback function when a filter is selected", - "attribute": "onFilterUpdated" - }, - { - "kind": "field", - "name": "onApplyFilters", - "type": { - "text": "(filterName: string) => void" - }, - "description": "Callback function when filters are submitted", - "attribute": "onApplyFilters" - }, - { - "kind": "field", - "name": "isExpanded", - "type": { - "text": "boolean" - } - }, - { - "kind": "field", - "name": "selectedValues", + "name": "sortProperties", "type": { - "text": "IDataFilterValue[]" + "text": "ISortFieldConfiguration[]" }, "default": "[]", - "description": "The current selected values in the component" + "description": "Available sort properties and configuration", + "attribute": "sort-properties" }, { "kind": "field", - "name": "submittedFilterValues", + "name": "onSort", "type": { - "text": "IDataFilterValue[]" + "text": "(sortProperties: ISearchSortProperty[]) => void" }, - "privacy": "public", - "description": "The submitted filter values", - "default": "[]" + "description": "Callback handler when the sort properties change", + "parameters": [ + { + "description": "the sort properties", + "name": "sortProperties" + } + ] }, { "kind": "field", - "name": "localizedFilterName", + "name": "selectedFieldName", "type": { "text": "string" }, - "privacy": "protected", - "readonly": true + "default": "null", + "description": "The current selected field name in the dropdown list" }, { "kind": "field", - "name": "canApplyValues", + "name": "selectedSortDirection", "type": { - "text": "boolean" - }, - "privacy": "protected", - "description": "Flag indicating if the selected values can be applied as filters", - "readonly": true - }, - { - "kind": "method", - "name": "resetSelectedValues", - "privacy": "protected", - "description": "Reset all selected values for the current filter in the UI.\r\nCan be called from parent components" - }, - { - "kind": "method", - "name": "clearSelectedValues", - "privacy": "public", - "parameters": [ - { - "name": "preventApply", - "optional": true, - "type": { - "text": "boolean" - }, - "description": "Set true if you want to prevent new values to be submitted for that filter" - } - ], - "description": "Clear all selected values in the UI and submit empty filters to connected components" - }, - { - "kind": "method", - "name": "onItemUpdated", - "privacy": "protected", - "parameters": [ - { - "name": "filterValue", - "type": { - "text": "IDataFilterValue" - } - }, - { - "name": "selected", - "type": { - "text": "boolean" - } - } - ] - }, - { - "kind": "method", - "name": "isSelectedValue", - "privacy": "protected", - "return": { - "type": { - "text": "boolean" - } - }, - "parameters": [ - { - "name": "key", - "type": { - "text": "string" - } - } - ] - }, - { - "kind": "method", - "name": "renderFilterContent", - "privacy": "protected", - "return": { - "type": { - "text": "TemplateResult" - } - }, - "description": "The filter content to be implemented by concrete classes" - }, - { - "kind": "method", - "name": "applyFilters", - "privacy": "protected", - "return": { - "type": { - "text": "void" - } + "text": "SortFieldDirection" } }, - { - "kind": "method", - "name": "processAggregations", - "privacy": "protected", - "return": { - "type": { - "text": "" - } - }, - "parameters": [ - { - "name": "values", - "type": { - "text": "IDataFilterResultValue[]" - }, - "description": "the original filter values received from the results" - } - ], - "description": "Process manual filter aggregations according to matched values from configuration" + { + "kind": "field", + "name": "isExpanded", + "type": { + "text": "boolean" + } }, { - "kind": "method", - "name": "closeMenu", - "privacy": "public" + "kind": "field", + "name": "localizedSelectedSortFieldName", + "type": { + "text": "string" + }, + "privacy": "protected", + "readonly": true }, { - "kind": "method", - "name": "toggleMenu", - "privacy": "public" + "kind": "field", + "name": "strings", + "type": { + "text": "{ [x: string]: string; }" + }, + "privacy": "protected", + "readonly": true }, { "kind": "method", - "name": "blurMenu", - "privacy": "protected", + "name": "onSelectSort", + "privacy": "public", "parameters": [ { - "name": "e", + "name": "sortFieldName", "type": { - "text": "MouseEvent" + "text": "string" + } + }, + { + "name": "sortFieldDirection", + "type": { + "text": "SortFieldDirection" } } ] }, + { + "kind": "method", + "name": "getSortIcon", + "privacy": "private" + }, + { + "kind": "method", + "name": "setDefaultSortProperty", + "privacy": "private" + }, { "kind": "field", "name": "theme", @@ -9743,20 +9652,13 @@ ], "attributes": [ { - "name": "onFilterUpdated", - "type": { - "text": "(filterName: string, filterValue: IDataFilterValue, selected: boolean) => void" - }, - "description": "Callback function when a filter is selected", - "fieldName": "onFilterUpdated" - }, - { - "name": "onApplyFilters", + "name": "sort-properties", "type": { - "text": "(filterName: string) => void" + "text": "ISortFieldConfiguration[]" }, - "description": "Callback function when filters are submitted", - "fieldName": "onApplyFilters" + "default": "[]", + "description": "Available sort properties and configuration", + "fieldName": "sortProperties" }, { "name": "theme", @@ -9802,62 +9704,64 @@ "exports": [ { "kind": "js", - "name": "BaseFilterComponent", + "name": "SearchSortComponent", "declaration": { - "name": "BaseFilterComponent", - "module": "src/components/search-filters/sub-components/filters/BaseFilterComponent.ts" + "name": "SearchSortComponent", + "module": "src/components/search-filters/sub-components/search-sort/SearchSortComponent.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/search-filters/sub-components/search-sort/SearchSortComponent.ts", + "path": "src/components/search-filters/sub-components/filters/BaseFilterComponent.ts", "declarations": [ { "kind": "class", "description": "", - "name": "SearchSortComponent", + "name": "BaseFilterComponent", "members": [ { "kind": "field", - "name": "sortProperties", + "name": "filter", "type": { - "text": "ISortFieldConfiguration[]" + "text": "IDataFilterResult" }, - "default": "[]", - "description": "Available sort properties and configuration", - "attribute": "sort-properties" + "description": "Filter information to display" }, { "kind": "field", - "name": "onSort", + "name": "filterConfiguration", "type": { - "text": "(sortProperties: ISearchSortProperty[]) => void" + "text": "IDataFilterConfiguration" }, - "description": "Callback handler when the sort properties change", - "parameters": [ - { - "description": "the sort properties", - "name": "sortProperties" - } - ] + "description": "Filter confguration" }, { "kind": "field", - "name": "selectedFieldName", + "name": "disabled", "type": { - "text": "string" + "text": "boolean" }, - "default": "null", - "description": "The current selected field name in the dropdown list" + "description": "Flag indicating if the filter should be disabled" }, { "kind": "field", - "name": "selectedSortDirection", + "name": "onFilterUpdated", "type": { - "text": "SortFieldDirection" - } + "text": "(filterName: string, filterValue: IDataFilterValue, selected: boolean) => void" + }, + "description": "Callback function when a filter is selected", + "attribute": "onFilterUpdated" + }, + { + "kind": "field", + "name": "onApplyFilters", + "type": { + "text": "(filterName: string) => void" + }, + "description": "Callback function when filters are submitted", + "attribute": "onApplyFilters" }, { "kind": "field", @@ -9868,7 +9772,26 @@ }, { "kind": "field", - "name": "localizedSelectedSortFieldName", + "name": "selectedValues", + "type": { + "text": "IDataFilterValue[]" + }, + "default": "[]", + "description": "The current selected values in the component" + }, + { + "kind": "field", + "name": "submittedFilterValues", + "type": { + "text": "IDataFilterValue[]" + }, + "privacy": "public", + "description": "The submitted filter values", + "default": "[]" + }, + { + "kind": "field", + "name": "localizedFilterName", "type": { "text": "string" }, @@ -9877,42 +9800,137 @@ }, { "kind": "field", - "name": "strings", + "name": "canApplyValues", "type": { - "text": "{ [x: string]: string; }" + "text": "boolean" }, "privacy": "protected", + "description": "Flag indicating if the selected values can be applied as filters", "readonly": true }, { "kind": "method", - "name": "onSelectSort", - "privacy": "public", + "name": "resetSelectedValues", + "privacy": "protected", + "description": "Reset all selected values for the current filter in the UI.\r\nCan be called from parent components" + }, + { + "kind": "method", + "name": "clearSelectedValues", + "privacy": "public", + "parameters": [ + { + "name": "preventApply", + "optional": true, + "type": { + "text": "boolean" + }, + "description": "Set true if you want to prevent new values to be submitted for that filter" + } + ], + "description": "Clear all selected values in the UI and submit empty filters to connected components" + }, + { + "kind": "method", + "name": "onItemUpdated", + "privacy": "protected", + "parameters": [ + { + "name": "filterValue", + "type": { + "text": "IDataFilterValue" + } + }, + { + "name": "selected", + "type": { + "text": "boolean" + } + } + ] + }, + { + "kind": "method", + "name": "isSelectedValue", + "privacy": "protected", + "return": { + "type": { + "text": "boolean" + } + }, + "parameters": [ + { + "name": "key", + "type": { + "text": "string" + } + } + ] + }, + { + "kind": "method", + "name": "renderFilterContent", + "privacy": "protected", + "return": { + "type": { + "text": "TemplateResult" + } + }, + "description": "The filter content to be implemented by concrete classes" + }, + { + "kind": "method", + "name": "applyFilters", + "privacy": "protected", + "return": { + "type": { + "text": "void" + } + } + }, + { + "kind": "method", + "name": "processAggregations", + "privacy": "protected", + "return": { + "type": { + "text": "" + } + }, + "parameters": [ + { + "name": "values", + "type": { + "text": "IDataFilterResultValue[]" + }, + "description": "the original filter values received from the results" + } + ], + "description": "Process manual filter aggregations according to matched values from configuration" + }, + { + "kind": "method", + "name": "closeMenu", + "privacy": "public" + }, + { + "kind": "method", + "name": "toggleMenu", + "privacy": "public" + }, + { + "kind": "method", + "name": "blurMenu", + "privacy": "protected", "parameters": [ { - "name": "sortFieldName", - "type": { - "text": "string" - } - }, - { - "name": "sortFieldDirection", + "name": "e", "type": { - "text": "SortFieldDirection" + "text": "MouseEvent" } } ] }, - { - "kind": "method", - "name": "getSortIcon", - "privacy": "private" - }, - { - "kind": "method", - "name": "setDefaultSortProperty", - "privacy": "private" - }, { "kind": "field", "name": "theme", @@ -10289,13 +10307,20 @@ ], "attributes": [ { - "name": "sort-properties", + "name": "onFilterUpdated", "type": { - "text": "ISortFieldConfiguration[]" + "text": "(filterName: string, filterValue: IDataFilterValue, selected: boolean) => void" }, - "default": "[]", - "description": "Available sort properties and configuration", - "fieldName": "sortProperties" + "description": "Callback function when a filter is selected", + "fieldName": "onFilterUpdated" + }, + { + "name": "onApplyFilters", + "type": { + "text": "(filterName: string) => void" + }, + "description": "Callback function when filters are submitted", + "fieldName": "onApplyFilters" }, { "name": "theme", @@ -10341,39 +10366,43 @@ "exports": [ { "kind": "js", - "name": "SearchSortComponent", + "name": "BaseFilterComponent", "declaration": { - "name": "SearchSortComponent", - "module": "src/components/search-filters/sub-components/search-sort/SearchSortComponent.ts" + "name": "BaseFilterComponent", + "module": "src/components/search-filters/sub-components/filters/BaseFilterComponent.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/search-results/sub-components/error-message/ErrorMessageComponent.ts", + "path": "src/components/search-results/sub-components/monaco-editor/MonacoEditorComponent.ts", "declarations": [ { "kind": "class", "description": "", - "name": "ErrorMessageComponent", + "name": "MonacoEditorComponent", "members": [ { "kind": "field", - "name": "error", + "name": "value", "type": { - "text": "Error" + "text": "IDataSourceData" }, - "attribute": "error" + "attribute": "value" }, { "kind": "field", - "name": "strings", + "name": "editor", "type": { - "text": "{ [x: string]: string; }" + "text": "editor.IStandaloneCodeEditor" }, - "privacy": "protected", - "readonly": true + "default": "null" + }, + { + "kind": "method", + "name": "createEditor", + "privacy": "private" }, { "kind": "field", @@ -10751,11 +10780,11 @@ ], "attributes": [ { - "name": "error", + "name": "value", "type": { - "text": "Error" + "text": "IDataSourceData" }, - "fieldName": "error" + "fieldName": "value" }, { "name": "theme", @@ -10801,43 +10830,39 @@ "exports": [ { "kind": "js", - "name": "ErrorMessageComponent", + "name": "MonacoEditorComponent", "declaration": { - "name": "ErrorMessageComponent", - "module": "src/components/search-results/sub-components/error-message/ErrorMessageComponent.ts" + "name": "MonacoEditorComponent", + "module": "src/components/search-results/sub-components/monaco-editor/MonacoEditorComponent.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/search-results/sub-components/monaco-editor/MonacoEditorComponent.ts", + "path": "src/components/search-results/sub-components/error-message/ErrorMessageComponent.ts", "declarations": [ { "kind": "class", "description": "", - "name": "MonacoEditorComponent", + "name": "ErrorMessageComponent", "members": [ { "kind": "field", - "name": "value", + "name": "error", "type": { - "text": "IDataSourceData" + "text": "Error" }, - "attribute": "value" + "attribute": "error" }, { "kind": "field", - "name": "editor", + "name": "strings", "type": { - "text": "editor.IStandaloneCodeEditor" + "text": "{ [x: string]: string; }" }, - "default": "null" - }, - { - "kind": "method", - "name": "createEditor", - "privacy": "private" + "privacy": "protected", + "readonly": true }, { "kind": "field", @@ -11215,11 +11240,11 @@ ], "attributes": [ { - "name": "value", + "name": "error", "type": { - "text": "IDataSourceData" + "text": "Error" }, - "fieldName": "value" + "fieldName": "error" }, { "name": "theme", @@ -11265,10 +11290,10 @@ "exports": [ { "kind": "js", - "name": "MonacoEditorComponent", + "name": "ErrorMessageComponent", "declaration": { - "name": "MonacoEditorComponent", - "module": "src/components/search-results/sub-components/monaco-editor/MonacoEditorComponent.ts" + "name": "ErrorMessageComponent", + "module": "src/components/search-results/sub-components/error-message/ErrorMessageComponent.ts" } } ] @@ -11850,231 +11875,147 @@ }, { "kind": "javascript-module", - "path": "src/components/search-filters/sub-components/filters/date-filter/DateFilterComponent.ts", + "path": "src/components/search-filters/sub-components/filters/checkbox-filter/CheckboxFilterComponent.ts", "declarations": [ { "kind": "class", "description": "", - "name": "DateFilterComponent", + "name": "CheckboxFilterComponent", "members": [ { "kind": "field", - "name": "dayJs", + "name": "searchKeyword", "type": { - "text": "any" - }, - "privacy": "private" + "text": "string" + } }, { "kind": "field", - "name": "dateHelper", + "name": "filteredValues", "type": { - "text": "DateHelper" + "text": "IDataFilterResultValue[]" }, - "privacy": "private", - "default": "new DateHelper()" - }, - { - "kind": "field", - "name": "scopedElements", - "static": true, - "readonly": true, - "inheritedFrom": { - "name": "BaseComponent", - "module": "src/components/BaseComponent.ts" - } + "default": "[]", + "description": "List of filtered values" }, { "kind": "field", - "name": "fromDate", + "name": "startOffset", "type": { - "text": "string" + "text": "number" }, - "privacy": "public", - "readonly": true + "default": "0" }, { "kind": "field", - "name": "toDate", + "name": "pageSize", "type": { - "text": "string" + "text": "number" }, - "privacy": "public", - "readonly": true + "description": "Number of items to be displayed in the menu. Limit this number to increase performances", + "default": "50" }, { - "kind": "method", - "name": "renderFilterContent", - "privacy": "protected", - "return": { - "type": { - "text": "TemplateResult" - } - }, - "description": "The filter content to be implemented by concrete classes", + "kind": "field", + "name": "scopedElements", + "static": true, + "readonly": true, "inheritedFrom": { - "name": "BaseFilterComponent", - "module": "src/components/search-filters/sub-components/filters/BaseFilterComponent.ts" + "name": "BaseComponent", + "module": "src/components/BaseComponent.ts" } }, { - "kind": "field", - "name": "strings", - "type": { - "text": "{ [x: string]: string; }" - }, - "privacy": "protected", - "readonly": true - }, - { - "kind": "method", - "name": "updateFilterValuesKey", - "privacy": "private", - "parameters": [ - { - "name": "values", - "type": { - "text": "IDataFilterResultValue[]" - } - } - ] - }, - { - "kind": "method", - "name": "_getIntervalDate", - "privacy": "private", - "return": { - "type": { - "text": "Date" - } - }, - "parameters": [ - { - "name": "unit", - "type": { - "text": "string" - } - }, - { - "name": "count", - "type": { - "text": "number" - } - } - ] - }, - { - "kind": "method", - "name": "_getIntervalDateFromStartDate", - "privacy": "private", - "return": { - "type": { - "text": "Date" - } - }, - "parameters": [ - { - "name": "startDate", - "type": { - "text": "Date" - } - }, - { - "name": "unit", - "type": { - "text": "string" - } - }, - { - "name": "count", - "type": { - "text": "number" - } - } - ] - }, - { - "kind": "method", - "name": "_getIntervalForValue", - "privacy": "private", + "kind": "method", + "name": "renderFilterContent", + "privacy": "protected", "return": { "type": { - "text": "string" + "text": "TemplateResult" } }, + "description": "The filter content to be implemented by concrete classes", + "inheritedFrom": { + "name": "BaseFilterComponent", + "module": "src/components/search-filters/sub-components/filters/BaseFilterComponent.ts" + } + }, + { + "kind": "field", + "name": "strings", + "type": { + "text": "{ [x: string]: string; }" + }, + "privacy": "protected", + "readonly": true + }, + { + "kind": "method", + "name": "filterValues", + "privacy": "public", "parameters": [ { - "name": "filterValue", + "name": "value", "type": { - "text": "IDataFilterValue" + "text": "string" } } ] }, { "kind": "method", - "name": "_getIntervalFromDateString", + "name": "sortBySelectedValues", "privacy": "private", - "return": { - "type": { - "text": "DateFilterInterval" - } - }, "parameters": [ { - "name": "dateAsString", + "name": "filters", "type": { - "text": "string" + "text": "IDataFilterResultValue[]" } } ] }, { "kind": "method", - "name": "onUpdateFromDate", + "name": "highlightMatches", "privacy": "private", "parameters": [ { - "name": "e", + "name": "value", "type": { - "text": "InputEvent" + "text": "string" } } ] }, { "kind": "method", - "name": "onUpdateToDate", - "privacy": "private", - "parameters": [ - { - "name": "e" - } - ] + "name": "clearSearchKeywords", + "privacy": "private" }, { "kind": "method", - "name": "applyDateFilters", + "name": "onScroll", "privacy": "private" }, { "kind": "method", - "name": "getDateValue", + "name": "getFilterAggregation", "privacy": "private", + "return": { + "type": { + "text": "IDataFilterAggregation" + } + }, "parameters": [ { - "name": "dateKey", + "name": "name", "type": { - "text": "DateFilterKeys" + "text": "string" } } ] }, - { - "kind": "method", - "name": "getAllIntervals", - "privacy": "private" - }, { "kind": "field", "name": "filter", @@ -12783,55 +12724,39 @@ "exports": [ { "kind": "js", - "name": "DateFilterComponent", + "name": "CheckboxFilterComponent", "declaration": { - "name": "DateFilterComponent", - "module": "src/components/search-filters/sub-components/filters/date-filter/DateFilterComponent.ts" + "name": "CheckboxFilterComponent", + "module": "src/components/search-filters/sub-components/filters/checkbox-filter/CheckboxFilterComponent.ts" } } ] }, { "kind": "javascript-module", - "path": "src/components/search-filters/sub-components/filters/checkbox-filter/CheckboxFilterComponent.ts", + "path": "src/components/search-filters/sub-components/filters/date-filter/DateFilterComponent.ts", "declarations": [ { "kind": "class", "description": "", - "name": "CheckboxFilterComponent", + "name": "DateFilterComponent", "members": [ { "kind": "field", - "name": "searchKeyword", - "type": { - "text": "string" - } - }, - { - "kind": "field", - "name": "filteredValues", - "type": { - "text": "IDataFilterResultValue[]" - }, - "default": "[]", - "description": "List of filtered values" - }, - { - "kind": "field", - "name": "startOffset", + "name": "dayJs", "type": { - "text": "number" + "text": "any" }, - "default": "0" + "privacy": "private" }, { "kind": "field", - "name": "pageSize", + "name": "dateHelper", "type": { - "text": "number" + "text": "DateHelper" }, - "description": "Number of items to be displayed in the menu. Limit this number to increase performances", - "default": "50" + "privacy": "private", + "default": "new DateHelper()" }, { "kind": "field", @@ -12843,6 +12768,24 @@ "module": "src/components/BaseComponent.ts" } }, + { + "kind": "field", + "name": "fromDate", + "type": { + "text": "string" + }, + "privacy": "public", + "readonly": true + }, + { + "kind": "field", + "name": "toDate", + "type": { + "text": "string" + }, + "privacy": "public", + "readonly": true + }, { "kind": "method", "name": "renderFilterContent", @@ -12869,71 +12812,153 @@ }, { "kind": "method", - "name": "filterValues", - "privacy": "public", + "name": "updateFilterValuesKey", + "privacy": "private", "parameters": [ { - "name": "value", + "name": "values", "type": { - "text": "string" + "text": "IDataFilterResultValue[]" } } ] }, { "kind": "method", - "name": "sortBySelectedValues", + "name": "_getIntervalDate", "privacy": "private", + "return": { + "type": { + "text": "Date" + } + }, "parameters": [ { - "name": "filters", + "name": "unit", "type": { - "text": "IDataFilterResultValue[]" + "text": "string" + } + }, + { + "name": "count", + "type": { + "text": "number" } } ] }, { "kind": "method", - "name": "highlightMatches", + "name": "_getIntervalDateFromStartDate", "privacy": "private", + "return": { + "type": { + "text": "Date" + } + }, "parameters": [ { - "name": "value", + "name": "startDate", + "type": { + "text": "Date" + } + }, + { + "name": "unit", "type": { "text": "string" } + }, + { + "name": "count", + "type": { + "text": "number" + } } ] }, { "kind": "method", - "name": "clearSearchKeywords", - "privacy": "private" - }, - { - "kind": "method", - "name": "onScroll", - "privacy": "private" + "name": "_getIntervalForValue", + "privacy": "private", + "return": { + "type": { + "text": "string" + } + }, + "parameters": [ + { + "name": "filterValue", + "type": { + "text": "IDataFilterValue" + } + } + ] }, { "kind": "method", - "name": "getFilterAggregation", + "name": "_getIntervalFromDateString", "privacy": "private", "return": { "type": { - "text": "IDataFilterAggregation" + "text": "DateFilterInterval" } }, "parameters": [ { - "name": "name", + "name": "dateAsString", "type": { "text": "string" } } ] }, + { + "kind": "method", + "name": "onUpdateFromDate", + "privacy": "private", + "parameters": [ + { + "name": "e", + "type": { + "text": "InputEvent" + } + } + ] + }, + { + "kind": "method", + "name": "onUpdateToDate", + "privacy": "private", + "parameters": [ + { + "name": "e" + } + ] + }, + { + "kind": "method", + "name": "applyDateFilters", + "privacy": "private" + }, + { + "kind": "method", + "name": "getDateValue", + "privacy": "private", + "parameters": [ + { + "name": "dateKey", + "type": { + "text": "DateFilterKeys" + } + } + ] + }, + { + "kind": "method", + "name": "getAllIntervals", + "privacy": "private" + }, { "kind": "field", "name": "filter", @@ -13642,10 +13667,10 @@ "exports": [ { "kind": "js", - "name": "CheckboxFilterComponent", + "name": "DateFilterComponent", "declaration": { - "name": "CheckboxFilterComponent", - "module": "src/components/search-filters/sub-components/filters/checkbox-filter/CheckboxFilterComponent.ts" + "name": "DateFilterComponent", + "module": "src/components/search-filters/sub-components/filters/date-filter/DateFilterComponent.ts" } } ] diff --git a/packages/components/src/components/search-results/SearchResultsComponent.ts b/packages/components/src/components/search-results/SearchResultsComponent.ts index faea570..3bf3e5a 100644 --- a/packages/components/src/components/search-results/SearchResultsComponent.ts +++ b/packages/components/src/components/search-results/SearchResultsComponent.ts @@ -395,7 +395,7 @@ export class SearchResultsComponent extends BaseComponent {
- ${resource?.lastModifiedBy?.user?.displayName ? `${strings.modifiedBy} ${resource?.lastModifiedBy?.user?.displayName}` : null } + ${resource?.lastModifiedBy?.user?.displayName ? `${this.strings.modifiedBy} ${resource?.lastModifiedBy?.user?.displayName}` : null }
${ resource.lastModifiedDateTime ? @@ -496,7 +496,7 @@ export class SearchResultsComponent extends BaseComponent {
- ${resource?.lastModifiedBy?.user?.displayName ? `${strings.modifiedBy} ${resource?.lastModifiedBy?.user?.displayName}` : null } + ${resource?.lastModifiedBy?.user?.displayName ? `${this.strings.modifiedBy} ${resource?.lastModifiedBy?.user?.displayName}` : null }
${ resource.lastModifiedDateTime ? @@ -941,7 +941,7 @@ export class SearchResultsComponent extends BaseComponent { ]; } - protected override get strings() { + protected override get strings(): { [x: string]: string; } { return strings; } diff --git a/packages/components/src/stories/assets/m365_logo.png b/packages/components/src/stories/assets/m365_logo.png deleted file mode 100644 index 2bcce2e6aed0bbd74cc9d589d3fbe6afd935defc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167578 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�Vd#n6bYeKY zK07^a85I?qFXJ7cpr+dEZ7#0u&g;EuciXZvE~(ch{{Zp8bhnRdC#0Hn2p)TXaR{d7 zk=ufjaHc>nS5}3?=K`hi&z_gr0KM~=C2tk~_sa3|6o>XKFRCXlx7IPfd7 zT$!`sfVC>T?;>=6l&FrDbqm_+*HJmKz?#GKQY#HOsun+TKBUHBx)J3OwH6gb(+_10 zbU>0KkZM$<_R=Z@WNFUpUn&e?tWTOh*NzHTrcLebngq>kAfl_o_*Ch6=RM?*!j-^^ zU4LU~j7(c5{JGvTqL3Kdnv1Ix3PbEgViuwLXPf$&BkKmnS)9)&M_v4W8s-9o^KU_uErhBRzdKYocJDhTYU% zk;cAs#{4|xvv0OEJ-%)HE;A$U4HEAw-e9m{4>O|#LKy4JQq z2VD~IqRLoqzy+RK2eF+Y@Ru~>!py#^!bVcRy28c0R<2DRG=sr#%Q8e%`30cklIsQ_ zW4pQKgaa(PI|w0F3Z_r!X=1=cT%_uE<>+&qVkHj^R8eT^D~^J>r5L2i68_e39Z1he zI>_(zwc$FT9E5-hy8zLBUQ-Yh9I_$?=x_(njWzHf(o&T7(?=K%CLa_mek�c6-{O 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 z̬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 diff --git a/packages/components/src/stories/assets/pnp.png b/packages/components/src/stories/assets/pnp.png new file mode 100644 index 0000000000000000000000000000000000000000..7ac81bb68bbf72fd178fa79b9c1f50d6e9716f6f GIT binary patch literal 24745 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 +```json +{ + ...Other filter properties + aggregations: [ + { + "aggregationName":{ + "fr-fr":"Document Word", + "ro-ro":"document Word", + "default":"Word document" + }, + "matchingValues":[ + "docx", + "doc", + "docm" + ], + "aggregationValue":"or(\"docx\",\"doc\",\"docm\")", + "aggregationValueIconUrl":"http://localhost:8000/assets/icons/word.svg" + } + ] + ... +} +``` | Property | Description | Example | | -------- | ----------- | -------- | diff --git a/packages/components/src/stories/components/search-results/query.stories.ts b/packages/components/src/stories/components/search-results/query.stories.ts index 61688d2..966eae8 100644 --- a/packages/components/src/stories/components/search-results/query.stories.ts +++ b/packages/components/src/stories/components/search-results/query.stories.ts @@ -55,6 +55,7 @@ const AdvancedQueryTemplate = (args) => { fields=${args.fields.join(",")} page-size=${args["page-size"]} sort-properties=${JSON.stringify(args["sort-properties"])} + theme=${args["theme"]} > `; diff --git a/packages/components/src/stories/components/search-results/styling.mdx b/packages/components/src/stories/components/search-results/styling.mdx index a760642..b3e845c 100644 --- a/packages/components/src/stories/components/search-results/styling.mdx +++ b/packages/components/src/stories/components/search-results/styling.mdx @@ -25,7 +25,7 @@ To use a custom template, simply use the `