diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index a5cf8239a..81a0adf84 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -8,15 +8,16 @@ assignees: ''
---
### Check existing issues before logging new ones
+If you are not using the latest version, triage your issue with the latest version before logging as we won't provide patches to older versions.
-### Issues related to data mapping, e.g. SharePoint columns to crawled properties to managed properties, will be closed by default and should be asked elsewhere as it's outside the scope of this project. However if you cannot repro the issue with classic web parts, then it's ok as it relates to these web parts 🙂
+### Issues related to data mapping, e.g. SharePoint columns to crawled properties to managed properties should be asked in the discussion section.
**For any question regarding Web Parts usage, please use the ["Discussions"](https://github.com/microsoft-search/pnp-modern-search/discussions) tab instead of creating a new issue.**.
__Remove the above section before submitting, and removal of the below template will result in the issue being closed.__
**Version used**
-Ex: 4.2
+Ex: 4.5
**Describe the bug**
A clear and concise description of what the bug is. Keep questions and bugs related to the web parts. If the issue relates to KQL or question around crawled and managed properties please use [Microsoft TechCommunity](https://techcommunity.microsoft.com/t5/sharepoint-developer/bd-p/SharePointDev). Which means, if you experience the same behavior in classic web parts, then it's not an issue with PnP Modern Search 😉
diff --git a/docs/scenarios/Create-a-search-page-with-verticals-within-the-same-page.md b/docs/scenarios/Create-a-search-page-with-verticals-within-the-same-page.md
new file mode 100644
index 000000000..0033fb6d0
--- /dev/null
+++ b/docs/scenarios/Create-a-search-page-with-verticals-within-the-same-page.md
@@ -0,0 +1,66 @@
+# Scenario 8 - Create a search page with verticals (within the same page)
+
+!!! note
+ The PnP Modern Search Web Parts must be deployed to your App Catalog and activated on your site. See the [installation documentation](../installation.md) for details.
+
+This scenario describes how to configure multiple Search Verticals on the same page.
+
+## Create a new sharepoint page
+
+To add the Search Web Parts, you must first create a new modern SharePoint page. We will be configure this new page as a search page with the PnP Modern Search Web Parts.
+
+![Create a page](assets/Create-a-search-page-with-verticals-within-the-same-page/Create-a-page.png)
+
+## Add PnP Search Web Parts
+
+On the newly created page, add the PnP Modern Search Web Part Search Box, Search Verticals, and Search Results, twice.
+
+![Add PnP Web Parts](assets/Create-a-search-page-with-verticals-within-the-same-page/Add-PnP-Web-Parts.png)
+
+The Web Parts can be arranged and configured on the page as desired.
+
+![Search Web Parts](assets/Create-a-search-page-with-verticals-within-the-same-page/Search-Web-Parts.png)
+
+## Configure Search Box
+
+You can leave the default configuration.
+
+![Configure Search Box Web Part](assets/Create-a-search-page-with-verticals-within-the-same-page/Configure-Search-Box-Web-Part.png)
+
+## Configure Search Vertical
+
+In the Search Verticals Web Part, the verticals (tabs) must be configured.
+
+![Search Vertical](assets/Create-a-search-page-with-verticals-within-the-same-page/Search-Vertical.png)
+
+Insert the tab name and a fluent icon for e better visualization. The results are on the same page, so a link URL are not necessary.
+
+![Configure Search Vertical Web Part](assets/Create-a-search-page-with-verticals-within-the-same-page/Configure-Search-Vertical-Web-Part.png)
+
+## Configure first Search Result Web Part
+
+The first Results Web Part displays all results. Select the data source SharePoint and the result source "LocalSharePointResults".
+
+![First Result Web Part Vertical Everything](assets/Create-a-search-page-with-verticals-within-the-same-page/First-Result-Web-Part-Vertical-Everything.png)
+
+In the "available connections" section, the connection to the Search Box and the Search Vertical must be configured. The results web part should only be displayed if the vertical "Everything" is active.
+
+![First Result Web Part connection](assets/Create-a-search-page-with-verticals-within-the-same-page/First-Result-Web-Part-connection.png)
+
+## Configure second Search Result Web Part
+
+The second results web part displays results from the predefined result source knowledge, configures the result source in the SharePoint admin center, and the GUID must be added to the Web Part.
+
+![Second Result Web Part Vertical Knowledge](assets/Create-a-search-page-with-verticals-within-the-same-page/Second-Result-Web-Part-Vertical-Knowledge.png)
+
+In the "available connections" section, the connection to the Search Box and the Search Vertical must be configured again. The Results Web Part should only be displayed if the vertical "Knowledge" is selected.
+
+![Second Result Web Part connection](assets/Create-a-search-page-with-verticals-within-the-same-page/Second-Result-Web-Part-connection.png)
+
+After that, the minimum configuration is complete and the search page must be saved and published. The configuration can be customized, and a different layout can be used for the search results per Results WebPart.
+
+## Testing your configuration
+
+Now the query from the Search Box is sent to the verticals, depending on the choice of the verticals, the results are then displayed in the search result.
+
+![Test Your Search page](assets/Create-a-search-page-with-verticals-within-the-same-page/Test-Your-Search-page.png)
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Add-PnP-Web-Parts.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Add-PnP-Web-Parts.png
new file mode 100644
index 000000000..144cccb33
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Add-PnP-Web-Parts.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Configure-Search-Box-Web-Part.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Configure-Search-Box-Web-Part.png
new file mode 100644
index 000000000..9f3806324
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Configure-Search-Box-Web-Part.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Configure-Search-Vertical-Web-Part.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Configure-Search-Vertical-Web-Part.png
new file mode 100644
index 000000000..4ac396960
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Configure-Search-Vertical-Web-Part.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Create-a-page.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Create-a-page.png
new file mode 100644
index 000000000..27b8371a2
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Create-a-page.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/First-Result-Web-Part-Vertical-Everything.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/First-Result-Web-Part-Vertical-Everything.png
new file mode 100644
index 000000000..06a0b5339
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/First-Result-Web-Part-Vertical-Everything.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/First-Result-Web-Part-connection.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/First-Result-Web-Part-connection.png
new file mode 100644
index 000000000..ba4f1d165
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/First-Result-Web-Part-connection.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Search-Vertical.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Search-Vertical.png
new file mode 100644
index 000000000..dc3a7bcdb
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Search-Vertical.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Search-Web-Parts.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Search-Web-Parts.png
new file mode 100644
index 000000000..e59dcfc00
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Search-Web-Parts.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Second-Result-Web-Part-Vertical-Knowledge.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Second-Result-Web-Part-Vertical-Knowledge.png
new file mode 100644
index 000000000..1c1cf6865
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Second-Result-Web-Part-Vertical-Knowledge.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Second-Result-Web-Part-connection.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Second-Result-Web-Part-connection.png
new file mode 100644
index 000000000..966be91e6
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Second-Result-Web-Part-connection.png differ
diff --git a/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Test-Your-Search-page.png b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Test-Your-Search-page.png
new file mode 100644
index 000000000..1ed9c71bf
Binary files /dev/null and b/docs/scenarios/assets/Create-a-search-page-with-verticals-within-the-same-page/Test-Your-Search-page.png differ
diff --git a/docs/scenarios/index.md b/docs/scenarios/index.md
index ba2e3f288..d1dde89e3 100644
--- a/docs/scenarios/index.md
+++ b/docs/scenarios/index.md
@@ -44,7 +44,12 @@ Storing custom templates as files in a SharePoint site, is great when you want t
When you have your templates in SharePoint, it is easy to setup a way to edit locally on your computer and still get the result in SharePoint almost instantly.
+## Scenario 8
+[Create a search page with verticals (within the same page)](Create-a-search-page-with-verticals-within-the-same-page.md)
+
+Search verticals can be used to selectively search specific content per vertical. Using the SharePoint provider you can use result sources to limit the content returned,
+or you can add the required KQL in the web part itself. This sample shows how to set up multiple search verticals on the same page.
---
diff --git a/docs/usage/search-filters/index.md b/docs/usage/search-filters/index.md
index 448966f11..20d9402cd 100644
--- a/docs/usage/search-filters/index.md
+++ b/docs/usage/search-filters/index.md
@@ -32,7 +32,7 @@ The filter settings are as follow:
|------------|-----------------|
| **Display Name** | A friendly name for the filter |
| **Filter field** | The internal data source field to use as filter. Here you can select a field from the current data source (if data have been already retrieved) of type your own custom value (press enter to validate).
-| **# of values** | The maximum number of filter values/buckets to return (may be restricted by the API).
+| **# of values** | The maximum number of values to be retrieved for a given filter. This value is useful if you use SharePoint refiners with a lot of refiner values. By default SharePoint will only retreve the first 100 values. To get all refiner values, you must specify an higher number manually (maximum value is 1000).
| **Template** | The template to use to display filter values. The builtin templates are:
- **Check box**
!["Check box"](../../assets/webparts/search-filters/checkbox_template.png)
- **Date range**
!["Date range"](../../assets/webparts/search-filters/daterange_template.png)
- **Date interval**
!["Date interval"](../../assets/webparts/search-filters/dateinterval_template.png)
- **Combo**
!["Combo"](../../assets/webparts/search-filters/combo_template.png)
You can search a value directly in the list by typing keywords in the combo text field.
| **Filter type** | Specify if the filter is a 'static' filter or a 'refiner' filter. See below for more information.
| **Expand by default** | If applicable for the selected template, display values as expanded.
diff --git a/docs/usage/search-results/connections/item-selection.md b/docs/usage/search-results/connections/item-selection.md
index 6e8478c81..60f08847b 100644
--- a/docs/usage/search-results/connections/item-selection.md
+++ b/docs/usage/search-results/connections/item-selection.md
@@ -59,6 +59,8 @@
!!! info "Filtering general behavior"
-- `null` ou `empty` filters values **are ignored** in the resulting query.
+- If the source selected item field is `null` ou `empty`:
+ * It will be replaced by the FQL expression `string('')` expression if the mode is **Process values as filters**
+ * It will be resolved as an empty string if the mode is **Process values as tokens**.
- Duplicate values are trimmed (ex: user select items with the same filter values).
- Filter values should be 'string' values. All other types will be ignored (ex: 'objects' from JSON response).
\ No newline at end of file
diff --git a/docs/usage/search-results/data-sources/sharepoint-search.md b/docs/usage/search-results/data-sources/sharepoint-search.md
index 95102e5b0..3778936bb 100644
--- a/docs/usage/search-results/data-sources/sharepoint-search.md
+++ b/docs/usage/search-results/data-sources/sharepoint-search.md
@@ -9,11 +9,12 @@ The _'SharePoint Search'_ data source retrieve items from the SharePoint search
| **Query text** | The input query text to pass to the search engine. This setting is not configurable directly in the data source options. To enable it, go to the third configuration page of the Web Part and select either a static or dynamic value (Ex: from a connected search box Web Part). See [the connection documentation](../../search-results/connections/index.md) for more information on how to configure this option. This value can be then used in the **Query template** using the `{searchTerms}` token. Also this value can be a [Keyword Query Language expression (KQL)](https://docs.microsoft.com/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference). | None.
| **Query template** | The search query template to use. It allows you to use dynamic tokens according to the context or specifiy conditions that should always apply to the query. | `{searchTerms}`
| **Result source ID** | Can be either a built-in result source ID listed in the dropdown, or a custom result source that you specify. Type the `GUID` of the result source, or the `SCOPE` and `NAME`, separated by `\|` (pipe character). For this to take effect, you must press _'Enter'_ to save the value. Valid scopes are `SPSiteSubscription`, `SPSite`, `SPWeb`. Examples: - SPWeb`\|`Local News
- SPSite`\|`Contracts
- SPSiteSubscription`\|`Intranet
| LocalSharePointResults
-| **Selected properties** | The SharePoint managed properties to retrieve from the results. They can be used with the same name in layouts and slots afterwards.
To add other managed properties to the list, clear out the dropdown list field and type or paste the name of your managed property and press return. This will add it to the list of selected properties in the query. Pasting a comma separated list of property names also work. You can validate the property is working by using the [Debug](../layouts/#debug) layout. | - Title
- Path
- DefaultEncodingURL
- FileType
- HitHighlightedSummary
- AuthorOWSUSER
- owstaxidmetadataalltagsinfo
- Created
- UniqueID
- NormSiteID
- NormListID
- NormUniqueID
- ContentTypeId
- UserName
- JobTitle
- WorkPhone
+| **Selected properties** | The SharePoint managed properties to retrieve from the results. They can be used with the same name in layouts and slots afterwards.
To add other managed properties to the list, clear out the dropdown list field and type or paste the name of your managed property and press return. This will add it to the list of selected properties in the query. Pasting a comma separated list of property names also work. You can validate the property is working by using the [Debug](../layouts/#debug) layout. | - Title
- Path
- DefaultEncodingURL
- FileType
- HitHighlightedProperties
- HitHighlightedSummary
- AuthorOWSUSER
- owstaxidmetadataalltagsinfo
- Created
- UniqueID
- NormSiteID
- NormListID
- NormUniqueID
- ContentTypeId
- UserName
- JobTitle
- WorkPhone
- SPSiteUrl
- SiteTitle
- CreatedBy
- HtmlFileType
- SiteLogo
| **Sort order** | The initial results sort order. You will be able to select only _'Sortable'_ managed properties here. Make sure the selected properties satisfy this criteria in the [SharePoint search schema](https://docs.microsoft.com/sharepoint/technical-reference/crawled-and-managed-properties-overview). | None.
| **Refinement filters** | The initial refinement filters to apply to the query. Filters has to be written using FQL ([Fast Query Language](https://docs.microsoft.com/sharepoint/dev/general-development/fast-query-language-fql-syntax-reference)) (e.g. `FileType:equals("docx")`). They will be applied every time to the current search query regardless selected filters from connected Web Parts. Note: for string expressions, use `"` instead of `'`. | None.
| **Language of the search request** | The language to use for the search request. By default the search request will be made using the current user interface language. This parameter is mainly used to process diacritics, plurals, etc. correctly according to the language. | Current UI language.
| **Enable query rules** | Whether or not apply SharePoint query rules. | False.
| **Enable audience targeting** | Whether or not results should be targeted according to the audiences that the current user belongs to. [More information about modern audiences and how to configure them](https://support.microsoft.com/office/target-navigation-news-and-files-to-specific-audiences-33d84cb6-14ed-4e53-a426-74c38ea32293). | False.
| **Enable localization** | If enabled, the Web Part will try to translate the taxonomy term IDs found in result item properties and refinement values to their corresponding label according to the curent UI language. To get it work, you must map a new refinable managed property associated with `ows_taxId_` crawled property and turn this toggle 'on': If enabled and depending on how many items are currently being displayed, this could slightly decrease the loading performance. **To use translated values in your template, you must use the '`Auto + `' property format instead of the original property name**. For instance, to use translated values of the '_owstaxidmetadataalltagsinfo_' property, you must use the '**Auto**owstaxidmetadataalltagsinfo' auto created property. | False.
+| **Hit-highlighted properties** | The list of SharePoint managed properties (separated by a comma) to return hit highlighted information (whether the search query match each specified managed property or not).Note: **HitHighlightedProperties** will be null if there is a field in **Hit-highlighted properties** doesn't exist in **Selected properties**
| None.
diff --git a/docs/usage/search-results/layouts/index.md b/docs/usage/search-results/layouts/index.md
index 77b084aea..ccea75131 100644
--- a/docs/usage/search-results/layouts/index.md
+++ b/docs/usage/search-results/layouts/index.md
@@ -42,7 +42,8 @@ For all layouts, some common settings are available:
| Setting | Description | Default value
| ------- |---------------- | ---------- |
-| **Show a 'See all' link** | Allows you to specify a 'See all' link at the top right of the Web Part along the Web Part title. You can set the text that will appear plus the link to use. Tokens are supported in the link URL. !["Common options"](../../../assets/webparts/search-results/layouts/see_all_link.png)
| Disabled.
+| **Allow items selection** | If enabled, allow items to be selected in default layouts. See [documentation](../connections/item-selection.md) for usage. | Disabled.
+| **Allow multiple selection** | If the item selection is allowed, specifiy if users can select multiple items | Disabled.
| **Hide this web part if there's nothing to show** | If there is no results, the Web Part will remain blank in display mode (title and 'See all' link included). In edit mode, you will see a message indicating there is no results. !["Common options"](../../../assets/webparts/search-results/layouts/hide_webpart.png)
| Disabled.
| **Show results count** | Hide or display the results count for the current query. | Enabled.
| **Use Microsoft Graph Toolkit** | Enable or disable the Microsoft Graph Toolkit to be used in Handlebars template. Refer to the [MGT documentation](https://docs.microsoft.com/en-us/graph/toolkit/overview) to see available components.
diff --git a/docs/usage/search-results/tokens.md b/docs/usage/search-results/tokens.md
index 3b266a349..47f37de20 100644
--- a/docs/usage/search-results/tokens.md
+++ b/docs/usage/search-results/tokens.md
@@ -9,8 +9,6 @@ You can use tokens in the following locations:
- **SharePoint Search**
- Query template field.
- Refinement filters field.
- - Layouts
- - In the _'See all'_ link.
- **Search Verticals Web Part**
- In the link URL when the vertical item is a link.
diff --git a/search-extensibility/package-lock.json b/search-extensibility/package-lock.json
index 2a346790f..f9bba4478 100644
--- a/search-extensibility/package-lock.json
+++ b/search-extensibility/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@pnp/modern-search-extensibility",
- "version": "1.0.6",
+ "version": "1.0.9",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -710,7 +710,6 @@
"version": "7.9.1",
"resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.9.1.tgz",
"integrity": "sha512-o8iU1VIY+QsqVRWARKiky29fh4KR1xaKSgMClXIi65qkt8EDDhjmlzL0KVDEoDA2GWukwb/1PpaVCWDg4v3cUQ==",
- "dev": true,
"requires": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
@@ -720,7 +719,6 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-1.1.2.tgz",
"integrity": "sha512-XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==",
- "dev": true,
"requires": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
@@ -730,7 +728,6 @@
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.17.tgz",
"integrity": "sha512-iT1bU56rKrKEOfODoW6fScY11qj3iaYrZ+z11T6fo5+TDm84UGkkXjLXJTE57ZJzg0/gbccHQWYv+chY7bJN8Q==",
- "dev": true,
"requires": {
"tslib": "^1.10.0"
}
@@ -739,7 +736,6 @@
"version": "7.18.1",
"resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.18.1.tgz",
"integrity": "sha512-WXXkMR3t5mr9m5hg5vRWH/JZ+kaZmbuTGpTA7E7uc+Ag/RZfG/uVN+ZwBdDpP6Xg7+6f3wlkGCBtY/UDcW6qmw==",
- "dev": true,
"requires": {
"@fluentui/keyboard-key": "^0.2.12",
"@uifabric/merge-styles": "^7.19.2",
@@ -753,7 +749,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-1.0.2.tgz",
"integrity": "sha512-fGSgL3Vp/+6t1Ysfz21FWZmqsU+iFVxOigvHnm5uKVyyRPwtaabv/F6kQ2y5isLMI2YmJaUd2i0cDJKu8ggrvw==",
- "dev": true,
"requires": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
@@ -763,7 +758,6 @@
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-1.7.4.tgz",
"integrity": "sha512-o4eo7lstLxxXl1g2RR9yz18Yt8yjQO/LbQuZjsiAfv/4Bf0CRnb+3j1F7gxIdBWAchKj9gzaMpIFijfI98pvYQ==",
- "dev": true,
"requires": {
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
@@ -1317,30 +1311,38 @@
}
},
"@microsoft/api-extractor": {
- "version": "7.7.12",
- "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.7.12.tgz",
- "integrity": "sha512-RYMG/dIZs7VXWUgx8Cwk73Czlr9qMUMolxwStFKowy3yMluzHlAKB2srV6csoWlSms6J75tLq6z1c0LXZksWxg==",
+ "version": "7.7.8",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.7.8.tgz",
+ "integrity": "sha512-XNO6Dk6ByfJq24Cn1/j0B0F16ZtwYnEC/sxgB/M0wTphBdBlHjRXZmxofmjirBBj9f7vG4UJ18IOIZRLbhGFPw==",
"dev": true,
"requires": {
- "@microsoft/api-extractor-model": "7.7.10",
- "@microsoft/tsdoc": "0.12.19",
- "@rushstack/node-core-library": "3.19.6",
- "@rushstack/ts-command-line": "4.3.13",
+ "@microsoft/api-extractor-model": "7.7.7",
+ "@microsoft/node-core-library": "3.19.3",
+ "@microsoft/ts-command-line": "4.3.10",
+ "@microsoft/tsdoc": "0.12.14",
"colors": "~1.2.1",
"lodash": "~4.17.15",
"resolve": "1.8.1",
"source-map": "~0.6.1",
"typescript": "~3.7.2"
+ },
+ "dependencies": {
+ "typescript": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.7.tgz",
+ "integrity": "sha512-MmQdgo/XenfZPvVLtKZOq9jQQvzaUAUpcKW8Z43x9B2fOm4S5g//tPtMweZUIP+SoBqrVPEIm+dJeQ9dfO0QdA==",
+ "dev": true
+ }
}
},
"@microsoft/api-extractor-model": {
- "version": "7.7.10",
- "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.7.10.tgz",
- "integrity": "sha512-gMFDXwUgoQYz9TgatyNPALDdZN4xBC3Un3fGwlzME+vM13PoJ26pGuqI7kv/OlK9+q2sgrEdxWns8D3UnLf2TA==",
+ "version": "7.7.7",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.7.7.tgz",
+ "integrity": "sha512-822kyHMEx2sl+KnBioEiFoTIXuz/4pYBo94nQ4AMqb9BFvY9I1AZUPtC4HFh2zcXQqpFLpKKC55s/o8UOze2wQ==",
"dev": true,
"requires": {
- "@microsoft/tsdoc": "0.12.19",
- "@rushstack/node-core-library": "3.19.6"
+ "@microsoft/node-core-library": "3.19.3",
+ "@microsoft/tsdoc": "0.12.14"
}
},
"@microsoft/gulp-core-build": {
@@ -1778,8 +1780,7 @@
"@microsoft/load-themed-styles": {
"version": "1.10.146",
"resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.146.tgz",
- "integrity": "sha512-qQZ4J58J2VMe/XRpr2YRDusQB9uRBJ1SjJB76x7uH94t9hqxjVVxn2qL99Bl+ERbfrACZ9peGn2uamt4ponqZQ==",
- "dev": true
+ "integrity": "sha512-qQZ4J58J2VMe/XRpr2YRDusQB9uRBJ1SjJB76x7uH94t9hqxjVVxn2qL99Bl+ERbfrACZ9peGn2uamt4ponqZQ=="
},
"@microsoft/loader-load-themed-styles": {
"version": "1.9.26",
@@ -1826,17 +1827,30 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-1.1.0.tgz",
"integrity": "sha512-sDgchKZz1l3QJVNdkE1P1KpwTjupNt1mS9h1T0CiP+ayMN7IeFKfElB8IYtxFplNalZTmEq+iqoQFqUVpVMLfQ==",
- "dev": true,
"requires": {
"es6-promise": "^4.1.0",
"isomorphic-fetch": "^2.2.1"
}
},
+ "@microsoft/node-core-library": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/@microsoft/node-core-library/-/node-core-library-3.19.3.tgz",
+ "integrity": "sha512-rJ+hT6+XK5AESbhn31YBnHKpZSFKCmqHCRZyK9+jyWwav1HXv0qzuXnFvnyrO0MZyJ6rH0seWOZVWbU5KGv1tg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "10.17.13",
+ "colors": "~1.2.1",
+ "fs-extra": "~7.0.1",
+ "jju": "~1.4.0",
+ "semver": "~5.3.0",
+ "timsort": "~0.3.0",
+ "z-schema": "~3.18.3"
+ }
+ },
"@microsoft/office-ui-fabric-react-bundle": {
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/office-ui-fabric-react-bundle/-/office-ui-fabric-react-bundle-1.12.1.tgz",
"integrity": "sha512-Bi1Mi8Aw/paTnXSN89SVzUvuSYEbClSCM2C9FPzaNseoXamIIFnyxliEBfzSKD750hlN6ER+KTQ/l5JVWDIo7w==",
- "dev": true,
"requires": {
"@uifabric/icons": "7.5.18",
"office-ui-fabric-react": "7.156.0",
@@ -1849,7 +1863,6 @@
"version": "16.9.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
"integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
- "dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -1860,8 +1873,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2045,19 +2057,27 @@
}
},
"@microsoft/rush-stack-compiler-3.7": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@microsoft/rush-stack-compiler-3.7/-/rush-stack-compiler-3.7-0.2.8.tgz",
- "integrity": "sha512-Ay8XOROkLYHsSX7QlmKIl/QBwSSBa+rKjOaF4ql35tNhhC15bjQsFqcZDBkakWmUZCcaF1iABK0j7e4+xGEbYw==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@microsoft/rush-stack-compiler-3.7/-/rush-stack-compiler-3.7-0.2.3.tgz",
+ "integrity": "sha512-9GXfHslqUIWJ8+UE6mXj4Fmbb5yxKcefJrqLrqHhRmbDnqUKB9jPKcHFLrZgSkNFGdfoWoIC+Q6Q5+oD3lhk1w==",
"dev": true,
"requires": {
- "@microsoft/api-extractor": "7.7.12",
- "@rushstack/eslint-config": "0.5.6",
- "@rushstack/node-core-library": "3.19.6",
+ "@microsoft/api-extractor": "7.7.8",
+ "@microsoft/node-core-library": "3.19.3",
+ "@rushstack/eslint-config": "0.5.4",
"@types/node": "10.17.13",
"eslint": "~6.5.1",
"tslint": "~5.12.1",
- "tslint-microsoft-contrib": "~6.2.0",
+ "tslint-microsoft-contrib": "~5.2.1",
"typescript": "~3.7.2"
+ },
+ "dependencies": {
+ "typescript": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.7.tgz",
+ "integrity": "sha512-MmQdgo/XenfZPvVLtKZOq9jQQvzaUAUpcKW8Z43x9B2fOm4S5g//tPtMweZUIP+SoBqrVPEIm+dJeQ9dfO0QdA==",
+ "dev": true
+ }
}
},
"@microsoft/sp-application-base": {
@@ -2258,7 +2278,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-component-base/-/sp-component-base-1.12.1.tgz",
"integrity": "sha512-AEHWSuzV1uRv3oI7QPq0LYzHy5iuIbKXp964+WHDtg3ezECjv/sB0FZgHREfZSMsfWPmkcjJp1eFKRGw+MPOjQ==",
- "dev": true,
"requires": {
"@microsoft/office-ui-fabric-react-bundle": "1.12.1",
"@microsoft/sp-core-library": "1.12.1",
@@ -2274,8 +2293,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2283,7 +2301,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-core-library/-/sp-core-library-1.12.1.tgz",
"integrity": "sha512-LyycIx5ivku9i315mm6LJVTl/zfTaCLHTmJTftCZkLSxVIKhK1D3/4QGa/cdsZRPVYho/ZZBK5HnPYhIjN08/g==",
- "dev": true,
"requires": {
"@microsoft/sp-lodash-subset": "1.12.1",
"@microsoft/sp-module-interfaces": "1.12.1",
@@ -2294,8 +2311,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2577,7 +2593,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-diagnostics/-/sp-diagnostics-1.12.1.tgz",
"integrity": "sha512-cMOE9strjPxFA+hyP/k64sVi9qw/RKDpdCgS+/b8ONSTKKXQRD9b6FoxTOCroBWT92O6DVsqGG3xOhS0i8RyTg==",
- "dev": true,
"requires": {
"@microsoft/sp-core-library": "1.12.1",
"@microsoft/sp-lodash-subset": "1.12.1"
@@ -2587,7 +2602,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-dynamic-data/-/sp-dynamic-data-1.12.1.tgz",
"integrity": "sha512-gNH9p2sGu5jRnm3MJ65EyHvj72NTlOYU6hvY+ZlLlGZzMqsQyK54MyLUQSWwYWDvgYjiTBB0mTlXjULgHMCy5A==",
- "dev": true,
"requires": {
"@microsoft/sp-core-library": "1.12.1",
"@microsoft/sp-diagnostics": "1.12.1",
@@ -2599,8 +2613,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2630,7 +2643,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-http/-/sp-http-1.12.1.tgz",
"integrity": "sha512-ttTsuk7cKsz0c8crQBAN+uJc41KXWi3TZZLB3HYc6Bfg+Dl9nWgS3DVJvLe9IWjPPFtyLgFflgLFeYjkXkREPA==",
- "dev": true,
"requires": {
"@microsoft/microsoft-graph-client": "~1.1.0",
"@microsoft/sp-core-library": "1.12.1",
@@ -2645,7 +2657,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/msal/-/msal-1.4.0.tgz",
"integrity": "sha512-NTxMFQh6t5g2QWMlvZTWTxL1bmcqiCv0cs2lxTHhUbWEuxWCfvaVRZfjxN8i+T0VltVVGaVIdML8QEoBnlbaSw==",
- "dev": true,
"requires": {
"tslib": "^1.9.3"
}
@@ -2653,8 +2664,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2662,7 +2672,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-loader/-/sp-loader-1.12.1.tgz",
"integrity": "sha512-Uv+/d+NvHF1cM35p6G8/b4bOpTJAk/BERgUKAQHBZfRjp6XOOrPRy7b0mqTFbkZkn2Vss5giw/Reib3KooE21A==",
- "dev": true,
"requires": {
"@microsoft/office-ui-fabric-react-bundle": "1.12.1",
"@microsoft/sp-core-library": "1.12.1",
@@ -2688,7 +2697,6 @@
"version": "16.9.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
"integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
- "dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -2699,8 +2707,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2708,7 +2715,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-lodash-subset/-/sp-lodash-subset-1.12.1.tgz",
"integrity": "sha512-gLKdYjL3jtb1hegxnU3gvCzu4ygWTg4Gjl5jcH85zphuDEUfGrWVaAVJ6DbzhLQ+l34Tl9eUyW/ZBW2hh6hZMA==",
- "dev": true,
"requires": {
"@types/lodash": "4.14.117",
"tslib": "~1.10.0"
@@ -2717,8 +2723,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2726,7 +2731,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-module-interfaces/-/sp-module-interfaces-1.12.1.tgz",
"integrity": "sha512-yTiVlig0+VhEE7TypcOn66sP/Tbl0SzBSOSVMugA9kD31U8Cj134yqHzYneSQ1kBRRUmE8aHLYuSEdojv2hZbg==",
- "dev": true,
"requires": {
"@types/z-schema": "3.16.31",
"z-schema": "~3.18.3"
@@ -2736,7 +2740,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-odata-types/-/sp-odata-types-1.12.1.tgz",
"integrity": "sha512-BOQDAEz1Bfs/o9oOBhyBQrKhhnkA7g3uby9So3UEIlpx/0AOfKRmF+6kao9DJyg/KDUfxGbBCLs+Y/IAG2OhJw==",
- "dev": true,
"requires": {
"tslib": "~1.10.0"
},
@@ -2744,8 +2747,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2753,7 +2755,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-page-context/-/sp-page-context-1.12.1.tgz",
"integrity": "sha512-mb3NxEItPBCmgaORgF6+2HqP14iKhl7cWyXRautB+eU372Ng9dWRtUCjB3ZYz50RD2Fxst/7+yWV9Z8kMkK8eQ==",
- "dev": true,
"requires": {
"@microsoft/sp-core-library": "1.12.1",
"@microsoft/sp-diagnostics": "1.12.1",
@@ -2766,8 +2767,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2775,7 +2775,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-polyfills/-/sp-polyfills-1.12.1.tgz",
"integrity": "sha512-CKu6NW8mXShCZZuVCNOCfTbNBCKFx+AVOujBOraZR3EUttpetzCPznzaN0VcaR/P+pw4oZqIY2puurkeT3w7JQ==",
- "dev": true,
"requires": {
"es6-promise": "4.2.4",
"es6-symbol": "3.1.3",
@@ -2787,38 +2786,32 @@
"es6-promise": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
- "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
- "dev": true
+ "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ=="
},
"tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
- "dev": true
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
},
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
},
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
- "dev": true
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
},
"whatwg-fetch": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
- "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=",
- "dev": true
+ "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ="
},
"whatwg-url": {
"version": "4.7.1",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.7.1.tgz",
"integrity": "sha1-303C4/JaY7H6WzLtbWwTlXfWkN4=",
- "dev": true,
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -2830,7 +2823,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-property-pane/-/sp-property-pane-1.12.1.tgz",
"integrity": "sha512-Rd0DJf0RLcJPlziFtKx01GsAnsDVKwJwa8N7DpvVCYF8zpQPVN1Sp+sLbuoX+MZ2KtSOh0cn/r4bau2lnKEO5w==",
- "dev": true,
"requires": {
"@microsoft/office-ui-fabric-react-bundle": "1.12.1",
"@microsoft/sp-component-base": "1.12.1",
@@ -2848,7 +2840,6 @@
"version": "16.9.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
"integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
- "dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -2859,8 +2850,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -2948,7 +2938,6 @@
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/@microsoft/sp-webpart-base/-/sp-webpart-base-1.12.1.tgz",
"integrity": "sha512-kEtulXnKYxfc3BT/bRoX7+eJ84SqCO2w50ELKeN8f+NSRbkd8M4hnzaa1yi6zWvrt3SmlyH0tfjURnBkioI3rw==",
- "dev": true,
"requires": {
"@microsoft/sp-component-base": "1.12.1",
"@microsoft/sp-core-library": "1.12.1",
@@ -2972,7 +2961,6 @@
"version": "16.9.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
"integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
- "dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -2983,8 +2971,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "dev": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
}
}
},
@@ -3231,13 +3218,23 @@
"@microsoft/teams-js": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/@microsoft/teams-js/-/teams-js-1.8.0.tgz",
- "integrity": "sha512-3or+WqPJ73VHG6P5Bv/x882mzUASNLU2DIkzI5WPg9TW5vq2ISEv7yJ+fuRY9GNC0AcJiJQfzB+jl+HVgJAdcg==",
- "dev": true
+ "integrity": "sha512-3or+WqPJ73VHG6P5Bv/x882mzUASNLU2DIkzI5WPg9TW5vq2ISEv7yJ+fuRY9GNC0AcJiJQfzB+jl+HVgJAdcg=="
+ },
+ "@microsoft/ts-command-line": {
+ "version": "4.3.10",
+ "resolved": "https://registry.npmjs.org/@microsoft/ts-command-line/-/ts-command-line-4.3.10.tgz",
+ "integrity": "sha512-AgxArGqPt0H5WTo3fxNFP3Blm3obkCCopVG9kwIo+/mMdXaj6qMDn6+8Bv8+5Nke3CvvXpKAZtu3IaGY5cV1Hg==",
+ "dev": true,
+ "requires": {
+ "@types/argparse": "1.0.33",
+ "argparse": "~1.0.9",
+ "colors": "~1.2.1"
+ }
},
"@microsoft/tsdoc": {
- "version": "0.12.19",
- "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.12.19.tgz",
- "integrity": "sha512-IpgPxHrNxZiMNUSXqR1l/gePKPkfAmIKoDRP9hp7OwjU29ZR8WCJsOJ8iBKgw0Qk+pFwR+8Y1cy8ImLY6e9m4A==",
+ "version": "0.12.14",
+ "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.12.14.tgz",
+ "integrity": "sha512-518yewjSga1jLdiLrcmpMFlaba5P+50b0TWNFUpC+SL9Yzf0kMi57qw+bMl+rQ08cGqH1vLx4eg9YFUbZXgZ0Q==",
"dev": true
},
"@microsoft/tsdoc-config": {
@@ -3583,12 +3580,12 @@
}
},
"@rushstack/eslint-config": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-config/-/eslint-config-0.5.6.tgz",
- "integrity": "sha512-ahG0A5AhOv/+ozy9wLQyTcDxDFcaaxF1h+9DBA0fCFBGmer7uCQKSFgbjm4tEyJLPJui/GEOPElU0YsSKEjmeA==",
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-config/-/eslint-config-0.5.4.tgz",
+ "integrity": "sha512-AB7wAXYTuF0z1x9BpFM6Nm0hyk9v94k55w0bZHDJJoptopEOsoEEFf4QVnNRCnYi6JAABzOtvq2vW4g4mAx+Xw==",
"dev": true,
"requires": {
- "@rushstack/eslint-plugin": "0.3.2",
+ "@rushstack/eslint-plugin": "0.3.1",
"@typescript-eslint/eslint-plugin": "2.3.3",
"@typescript-eslint/experimental-utils": "2.3.3",
"@typescript-eslint/parser": "2.3.3",
@@ -3596,13 +3593,13 @@
"eslint-plugin-promise": "~4.2.1",
"eslint-plugin-react": "~7.16.0",
"eslint-plugin-security": "~1.4.0",
- "eslint-plugin-tsdoc": "~0.2.4"
+ "eslint-plugin-tsdoc": "~0.2.1"
}
},
"@rushstack/eslint-plugin": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-plugin/-/eslint-plugin-0.3.2.tgz",
- "integrity": "sha512-Fzg91tfXtft6IdZlE6altWXuglGT29P/6ZfFGj9IVM8FIEAjMrO7MELINF5LssbFG0Xlu7306cBJVRAyzOCPCw==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-plugin/-/eslint-plugin-0.3.1.tgz",
+ "integrity": "sha512-7C1tEdlNTxd8YP852jZnA1RAFEtKTEM112nPQWqyYp5IFHvNEnIaOSvHzutmTItjUCk/S7OygqK6oJyd4xQltQ==",
"dev": true
},
"@rushstack/heft-config-file": {
@@ -3657,7 +3654,6 @@
"version": "1.3.113",
"resolved": "https://registry.npmjs.org/@rushstack/loader-raw-script/-/loader-raw-script-1.3.113.tgz",
"integrity": "sha512-1sC9ZSfo3gYz4J2i1OueqZtpsmT7uoK6zoZlnMmnD1bu2WSH83Dj+Rl4QrG4qo2g9sEkvV89IHMncN8Ingkmqg==",
- "dev": true,
"requires": {
"loader-utils": "~1.1.0"
},
@@ -3665,26 +3661,22 @@
"big.js": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
- "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
- "dev": true
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q=="
},
"emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
- "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
- "dev": true
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
},
"json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
},
"loader-utils": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
- "dev": true,
"requires": {
"big.js": "^3.1.3",
"emojis-list": "^2.0.0",
@@ -3782,21 +3774,6 @@
}
}
},
- "@rushstack/node-core-library": {
- "version": "3.19.6",
- "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.19.6.tgz",
- "integrity": "sha512-1+FoymIdr9W9k0D8fdZBBPwi5YcMwh/RyESuL5bY29rLICFxSLOPK+ImVZ1OcWj9GEMsvDx5pNpJ311mHQk+MA==",
- "dev": true,
- "requires": {
- "@types/node": "10.17.13",
- "colors": "~1.2.1",
- "fs-extra": "~7.0.1",
- "jju": "~1.4.0",
- "semver": "~5.3.0",
- "timsort": "~0.3.0",
- "z-schema": "~3.18.3"
- }
- },
"@rushstack/package-deps-hash": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-3.0.3.tgz",
@@ -3968,17 +3945,6 @@
}
}
},
- "@rushstack/ts-command-line": {
- "version": "4.3.13",
- "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.3.13.tgz",
- "integrity": "sha512-BUBbjYu67NJGQkpHu8aYm7kDoMFizL1qx78+72XE3mX/vDdXYJzw/FWS7TPcMJmY4kNlYs979v2B0Q0qa2wRiw==",
- "dev": true,
- "requires": {
- "@types/argparse": "1.0.33",
- "argparse": "~1.0.9",
- "colors": "~1.2.1"
- }
- },
"@rushstack/typings-generator": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@rushstack/typings-generator/-/typings-generator-0.3.0.tgz",
@@ -4101,8 +4067,7 @@
"@types/adal-angular": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/adal-angular/-/adal-angular-1.0.1.tgz",
- "integrity": "sha512-2sRGxJYrluhvIz8ae98i5k5woe9Fics4dMFHTcNfY2xAkj5QGZor+sfZzlgM58Fpw7Kklau9Gn6OhgJP25dKug==",
- "dev": true
+ "integrity": "sha512-2sRGxJYrluhvIz8ae98i5k5woe9Fics4dMFHTcNfY2xAkj5QGZor+sfZzlgM58Fpw7Kklau9Gn6OhgJP25dKug=="
},
"@types/anymatch": {
"version": "3.0.0",
@@ -4166,6 +4131,11 @@
"integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=",
"dev": true
},
+ "@types/es6-promise": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/@types/es6-promise/-/es6-promise-0.0.33.tgz",
+ "integrity": "sha512-HKJFVLCGrWQ/1unEw8JdaTxu6n3EUxmwTxJ6D0O1x0gD8joCsgoTWxEgevb7fp2XIogNjof3KEd+3bJoGne/nw=="
+ },
"@types/eslint-visitor-keys": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
@@ -4256,8 +4226,7 @@
"@types/lodash": {
"version": "4.14.117",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.117.tgz",
- "integrity": "sha512-xyf2m6tRbz8qQKcxYZa7PA4SllYcay+eh25DN3jmNYY6gSTL7Htc/bttVdkqj2wfJGbeWlQiX8pIyJpKU+tubw==",
- "dev": true
+ "integrity": "sha512-xyf2m6tRbz8qQKcxYZa7PA4SllYcay+eh25DN3jmNYY6gSTL7Htc/bttVdkqj2wfJGbeWlQiX8pIyJpKU+tubw=="
},
"@types/minimatch": {
"version": "3.0.5",
@@ -4312,8 +4281,7 @@
"@types/office-js": {
"version": "1.0.36",
"resolved": "https://registry.npmjs.org/@types/office-js/-/office-js-1.0.36.tgz",
- "integrity": "sha512-v5jOXCPS0nbbuVzZThhDMzttuJrpzzvx1GsPo5Qed8Cs9uzMwEV1vdkKN5zLFnAUlEF4s8Szl9KXnhnSvH89Kw==",
- "dev": true
+ "integrity": "sha512-v5jOXCPS0nbbuVzZThhDMzttuJrpzzvx1GsPo5Qed8Cs9uzMwEV1vdkKN5zLFnAUlEF4s8Szl9KXnhnSvH89Kw=="
},
"@types/orchestrator": {
"version": "0.0.30",
@@ -4333,8 +4301,7 @@
"@types/prop-types": {
"version": "15.7.4",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
- "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==",
- "dev": true
+ "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
},
"@types/q": {
"version": "1.5.5",
@@ -4343,10 +4310,9 @@
"dev": true
},
"@types/react": {
- "version": "17.0.37",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz",
- "integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==",
- "dev": true,
+ "version": "17.0.38",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz",
+ "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==",
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -4354,10 +4320,9 @@
}
},
"@types/react-dom": {
- "version": "16.9.8",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz",
- "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==",
- "dev": true,
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.3.tgz",
+ "integrity": "sha512-HF5hD5YR3z9Mn6kXcW1VKe4AQ04ZlZj1EdLBae61hzQ3eEWWxMgNLUbIxeZp40BnSxqY1eAYLsH9QopQcxzScA==",
"requires": {
"@types/react": "*"
}
@@ -4365,8 +4330,7 @@
"@types/requirejs": {
"version": "2.1.29",
"resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.29.tgz",
- "integrity": "sha1-vEi8gzwHnCwkumr7ym06A7P04vM=",
- "dev": true
+ "integrity": "sha1-vEi8gzwHnCwkumr7ym06A7P04vM="
},
"@types/rimraf": {
"version": "2.0.2",
@@ -4381,8 +4345,7 @@
"@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
- "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
- "dev": true
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
},
"@types/semver": {
"version": "7.3.9",
@@ -4504,11 +4467,6 @@
"source-map": "^0.6.0"
}
},
- "@types/webpack-env": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.13.1.tgz",
- "integrity": "sha512-oHyg0NssP2RCpCvE35hhbSqMJRsc5lSW+GFe+Vc65JL+kHII1VMYM+0KeV/z4utFuUqPoQRmq8KMMp7ba0dj6Q=="
- },
"@types/webpack-sources": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz",
@@ -4552,8 +4510,7 @@
"@types/z-schema": {
"version": "3.16.31",
"resolved": "https://registry.npmjs.org/@types/z-schema/-/z-schema-3.16.31.tgz",
- "integrity": "sha1-LrHQCl5Ow/pYx2r94S4YK2bcXBw=",
- "dev": true
+ "integrity": "sha1-LrHQCl5Ow/pYx2r94S4YK2bcXBw="
},
"@typescript-eslint/eslint-plugin": {
"version": "2.3.3",
@@ -4615,7 +4572,6 @@
"version": "7.10.1",
"resolved": "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.10.1.tgz",
"integrity": "sha512-Op05qHLBFEieT4+fG8OgpzqDHTQyei1dgVXDd6M4VS6CFJ5ZIPtC7Lwi+ZlkPkwUwccQ9mijuQumzpNKdv035A==",
- "dev": true,
"requires": {
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
@@ -4628,7 +4584,6 @@
"version": "7.5.18",
"resolved": "https://registry.npmjs.org/@uifabric/icons/-/icons-7.5.18.tgz",
"integrity": "sha512-gLPEccWlTER9NiXcOHZ+dSJ3tgLAQ4mTf3hTlKV7e7dKBTl95jzcemG5S2NJQ7xWPTH3+5K1Bpd+nqZo9EJw3w==",
- "dev": true,
"requires": {
"@uifabric/set-version": "^7.0.23",
"@uifabric/styling": "^7.16.19",
@@ -4639,7 +4594,6 @@
"version": "7.19.2",
"resolved": "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.19.2.tgz",
"integrity": "sha512-kTlhwglDqwVgIaJq+0yXgzi65plGhmFcPrfme/rXUGMJZoU+qlGT5jXj5d3kuI59p6VB8jWEg9DAxHozhYeu0g==",
- "dev": true,
"requires": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
@@ -4649,7 +4603,6 @@
"version": "7.14.0",
"resolved": "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.14.0.tgz",
"integrity": "sha512-Ndu/DEKHF4gFXEZa2AGgSkdWaj+njVrsSyXbkWRh2UZReFWnH1LMko9p/ZCwk1i9kAd5CUmyIfURUzIEya9YCg==",
- "dev": true,
"requires": {
"@fluentui/react-window-provider": "^1.0.2",
"@uifabric/set-version": "^7.0.24",
@@ -4661,7 +4614,6 @@
"version": "7.0.24",
"resolved": "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.24.tgz",
"integrity": "sha512-t0Pt21dRqdC707/ConVJC0WvcQ/KF7tKLU8AZY7YdjgJpMHi1c0C427DB4jfUY19I92f60LOQyhJ4efH+KpFEg==",
- "dev": true,
"requires": {
"tslib": "^1.10.0"
}
@@ -4670,7 +4622,6 @@
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@uifabric/styling/-/styling-7.20.0.tgz",
"integrity": "sha512-SoaK5J4cwn8D9DWejRlWo+TmKZaHIiVlkIH+B2zLXE8Uc4ZYcotwYGxaSc1gCA16viLvGQkQU+ieWFq91RxdRw==",
- "dev": true,
"requires": {
"@fluentui/theme": "^1.7.4",
"@microsoft/load-themed-styles": "^1.10.26",
@@ -4684,7 +4635,6 @@
"version": "7.33.5",
"resolved": "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.33.5.tgz",
"integrity": "sha512-I+Oi0deD/xltSluFY8l2EVd/J4mvOaMljxKO2knSD9/KoGDlo/o5GN4gbnVo8nIt76HWHLAk3KtlJKJm6BhbIQ==",
- "dev": true,
"requires": {
"@fluentui/dom-utilities": "^1.1.2",
"@uifabric/merge-styles": "^7.19.2",
@@ -4869,15 +4819,14 @@
}
},
"@webcomponents/custom-elements": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.4.3.tgz",
- "integrity": "sha512-iD0YW46SreUQANGccywK/eC+gZELNHocZZrY2fGwrIlx/biQOTkAF9IohisibHbrmIHmA9pVCIdGwzfO+W0gig=="
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.4.1.tgz",
+ "integrity": "sha512-vNCS1+3sxJOpoIsBjUQiXjGLngakEAGOD5Ale+6ikg6OZG5qI5O39frm3raPhud/IwnF4vec5ags05YBsgzcuA=="
},
"@webcomponents/webcomponentsjs": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.5.0.tgz",
- "integrity": "sha512-C0l51MWQZ9kLzcxOZtniOMohpIFdCLZum7/TEHv3XWFc1Fvt5HCpbSX84x8ltka/JuNKcuiDnxXFkiB2gaePcg==",
- "dev": true
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.4.3.tgz",
+ "integrity": "sha512-cV4+sAmshf8ysU2USutrSRYQkJzEYKHsRCGa0CkMElGpG5747VHtkfsW3NdVIBV/m2MDKXTDydT4lkrysH7IFA=="
},
"@xtuc/ieee754": {
"version": "1.2.0",
@@ -4968,8 +4917,7 @@
"adal-angular": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/adal-angular/-/adal-angular-1.0.16.tgz",
- "integrity": "sha1-4rwxvHEqr/ugU6pN1GvITrXSCQ8=",
- "dev": true
+ "integrity": "sha1-4rwxvHEqr/ugU6pN1GvITrXSCQ8="
},
"agent-base": {
"version": "4.3.0",
@@ -4998,32 +4946,6 @@
}
}
},
- "ajv": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.5.tgz",
- "integrity": "sha1-tjcjTT4mdetfefxlIkKoU6SMtJ8=",
- "dev": true,
- "requires": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
- "json-schema-traverse": "^0.3.0",
- "json-stable-stringify": "^1.0.1"
- },
- "dependencies": {
- "fast-deep-equal": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
- "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
- "dev": true
- },
- "json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
- "dev": true
- }
- }
- },
"ajv-errors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
@@ -6986,8 +6908,7 @@
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"commondir": {
"version": "1.0.1",
@@ -7891,8 +7812,7 @@
"csstype": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz",
- "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==",
- "dev": true
+ "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="
},
"currently-unhandled": {
"version": "0.4.1",
@@ -7913,7 +7833,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
"requires": {
"es5-ext": "^0.10.50",
"type": "^1.0.1"
@@ -8495,7 +8414,6 @@
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
"integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "dev": true,
"requires": {
"iconv-lite": "^0.6.2"
},
@@ -8504,7 +8422,6 @@
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
}
@@ -8621,7 +8538,6 @@
"version": "0.10.53",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
"integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
- "dev": true,
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.3",
@@ -8632,7 +8548,6 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
- "dev": true,
"requires": {
"d": "1",
"es5-ext": "^0.10.35",
@@ -8642,8 +8557,7 @@
"es6-promise": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
- "dev": true
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
},
"es6-promisify": {
"version": "5.0.0",
@@ -8658,7 +8572,6 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
"integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
- "dev": true,
"requires": {
"d": "^1.0.1",
"ext": "^1.1.2"
@@ -8815,13 +8728,14 @@
},
"dependencies": {
"resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz",
+ "integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==",
"dev": true,
"requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
+ "is-core-module": "^2.8.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
}
}
}
@@ -9185,7 +9099,6 @@
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz",
"integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==",
- "dev": true,
"requires": {
"type": "^2.5.0"
},
@@ -9193,8 +9106,7 @@
"type": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
- "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==",
- "dev": true
+ "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw=="
}
}
},
@@ -10823,7 +10735,6 @@
"version": "4.7.6",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
"integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
- "dev": true,
"requires": {
"minimist": "^1.2.5",
"neo-async": "^2.6.0",
@@ -11916,8 +11827,7 @@
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "dev": true
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
"is-string": {
"version": "1.0.7",
@@ -12019,7 +11929,6 @@
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
- "dev": true,
"requires": {
"node-fetch": "^1.0.1",
"whatwg-fetch": ">=0.10.0"
@@ -12029,7 +11938,6 @@
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
- "dev": true,
"requires": {
"encoding": "^0.1.11",
"is-stream": "^1.0.1"
@@ -13826,8 +13734,7 @@
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
"version": "3.14.1",
@@ -13984,15 +13891,6 @@
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
- "json-stable-stringify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "dev": true,
- "requires": {
- "jsonify": "~0.0.0"
- }
- },
"json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
@@ -14029,12 +13927,6 @@
"graceful-fs": "^4.1.6"
}
},
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
- "dev": true
- },
"jsonparse": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.2.0.tgz",
@@ -14445,8 +14337,7 @@
"lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
- "dev": true
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
},
"lodash.includes": {
"version": "4.3.0",
@@ -14475,8 +14366,7 @@
"lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
- "dev": true
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
},
"lodash.isinteger": {
"version": "4.0.4",
@@ -14601,7 +14491,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dev": true,
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
@@ -15034,8 +14923,7 @@
"minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
},
"minipass": {
"version": "3.1.5",
@@ -15222,9 +15110,9 @@
"dev": true
},
"nanoid": {
- "version": "3.1.30",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
- "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz",
+ "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==",
"dev": true
},
"nanomatch": {
@@ -15268,14 +15156,12 @@
"neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"next-tick": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
- "dev": true
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"nice-try": {
"version": "1.0.5",
@@ -15737,8 +15623,7 @@
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-copy": {
"version": "0.1.0",
@@ -15909,7 +15794,6 @@
"version": "7.156.0",
"resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.156.0.tgz",
"integrity": "sha512-e9EwmkTGRjt+PJiRqB2ZU+8dTOUtDzNcOhiZmyI7Rvmz1XK3LhNDgoExbMQfAuDFEr2TcyvrOidwTAAkoRyWYw==",
- "dev": true,
"requires": {
"@fluentui/date-time-utilities": "^7.9.0",
"@fluentui/react-focus": "^7.17.1",
@@ -17293,7 +17177,6 @@
"version": "15.7.2",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
- "dev": true,
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -17491,8 +17374,7 @@
"raw-loader": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
- "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=",
- "dev": true
+ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao="
},
"rc": {
"version": "1.2.8",
@@ -17520,7 +17402,6 @@
"version": "16.9.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz",
"integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==",
- "dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -17528,34 +17409,20 @@
}
},
"react-dom": {
- "version": "16.8.5",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.5.tgz",
- "integrity": "sha512-VIEIvZLpFafsfu4kgmftP5L8j7P1f0YThfVTrANMhZUFMDOsA6e0kfR6wxw/8xxKs4NB59TZYbxNdPCDW34x4w==",
- "dev": true,
+ "version": "16.9.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
+ "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
- "scheduler": "^0.13.5"
- },
- "dependencies": {
- "scheduler": {
- "version": "0.13.6",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz",
- "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==",
- "dev": true,
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- }
+ "scheduler": "^0.15.0"
}
},
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"read": {
"version": "1.0.7",
@@ -18027,8 +17894,7 @@
"requirejs": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
- "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
- "dev": true
+ "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg=="
},
"requires-port": {
"version": "1.0.0",
@@ -18209,8 +18075,7 @@
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sane": {
"version": "4.1.0",
@@ -18525,7 +18390,6 @@
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz",
"integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==",
- "dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -19077,8 +18941,7 @@
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-loader": {
"version": "0.2.4",
@@ -19584,6 +19447,12 @@
}
}
},
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
"sver-compat": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz",
@@ -20144,8 +20013,7 @@
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"tslint": {
"version": "5.12.1",
@@ -20179,9 +20047,9 @@
}
},
"tslint-microsoft-contrib": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-6.2.0.tgz",
- "integrity": "sha512-6tfi/2tHqV/3CL77pULBcK+foty11Rr0idRDxKnteTaKm6gWF9qmaCNU17HVssOuwlYNyOmd9Jsmjd+1t3a3qw==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz",
+ "integrity": "sha512-PDYjvpo0gN9IfMULwKk0KpVOPMhU6cNoT9VwCOLeDl/QS8v8W2yspRpFFuUS7/c5EIH/n8ApMi8TxJAz1tfFUA==",
"dev": true,
"requires": {
"tsutils": "^2.27.2 <2.29.0"
@@ -20237,8 +20105,7 @@
"type": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
},
"type-check": {
"version": "0.3.2",
@@ -20287,16 +20154,15 @@
}
},
"typescript": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.7.tgz",
- "integrity": "sha512-MmQdgo/XenfZPvVLtKZOq9jQQvzaUAUpcKW8Z43x9B2fOm4S5g//tPtMweZUIP+SoBqrVPEIm+dJeQ9dfO0QdA==",
+ "version": "3.3.4000",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.4000.tgz",
+ "integrity": "sha512-jjOcCZvpkl2+z7JFn0yBOoLQyLoIkNZAs/fYJkUG6VKy6zLPHJGfQJYFHzibB6GJaF/8QrcECtlQ5cpvRHSMEA==",
"dev": true
},
"uglify-js": {
"version": "3.4.10",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
"integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==",
- "dev": true,
"requires": {
"commander": "~2.19.0",
"source-map": "~0.6.1"
@@ -20305,8 +20171,7 @@
"commander": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
- "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
- "dev": true
+ "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg=="
}
}
},
@@ -20640,8 +20505,7 @@
"validator": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-8.2.0.tgz",
- "integrity": "sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==",
- "dev": true
+ "integrity": "sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA=="
},
"value-or-function": {
"version": "3.0.0",
@@ -21696,8 +21560,7 @@
"whatwg-fetch": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
- "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==",
- "dev": true
+ "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
},
"whatwg-mimetype": {
"version": "2.3.0",
@@ -21768,8 +21631,7 @@
"wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
- "dev": true
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
},
"worker-farm": {
"version": "1.7.0",
@@ -22150,7 +22012,6 @@
"version": "3.18.4",
"resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.18.4.tgz",
"integrity": "sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==",
- "dev": true,
"requires": {
"commander": "^2.7.1",
"lodash.get": "^4.0.0",
diff --git a/search-parts/config/package-solution.json b/search-parts/config/package-solution.json
index b3322c281..326e49e61 100644
--- a/search-parts/config/package-solution.json
+++ b/search-parts/config/package-solution.json
@@ -3,7 +3,7 @@
"solution": {
"name": "PnP Modern Search - Search Web Parts - v4",
"id": "59903278-dd5d-4e9e-bef6-562aae716b8b",
- "version": "4.5.3.0",
+ "version": "4.5.4.0",
"includeClientSideAssets": true,
"skipFeatureDeployment": true,
"isDomainIsolated": false,
diff --git a/search-parts/package.json b/search-parts/package.json
index 3acf34043..0e915aa5d 100644
--- a/search-parts/package.json
+++ b/search-parts/package.json
@@ -1,6 +1,6 @@
{
"name": "@pnp/modern-search-web-parts",
- "version": "4.5.3",
+ "version": "4.5.4",
"private": true,
"main": "lib/index.js",
"engines": {
diff --git a/search-parts/src/components/CollapsibleContentComponent.tsx b/search-parts/src/components/CollapsibleContentComponent.tsx
index 762de688b..680672e1d 100644
--- a/search-parts/src/components/CollapsibleContentComponent.tsx
+++ b/search-parts/src/components/CollapsibleContentComponent.tsx
@@ -131,6 +131,8 @@ export class CollapsibleContentComponent extends React.Component
{
this._onTogglePanel(props);
}}
diff --git a/search-parts/src/components/PanelComponent.tsx b/search-parts/src/components/PanelComponent.tsx
index cfc0e2b35..08aa8f0f7 100644
--- a/search-parts/src/components/PanelComponent.tsx
+++ b/search-parts/src/components/PanelComponent.tsx
@@ -134,6 +134,8 @@ export class PanelComponent extends React.Component
{
diff --git a/search-parts/src/components/PersonaComponent.tsx b/search-parts/src/components/PersonaComponent.tsx
index 8e8702994..a1ecd4dbe 100644
--- a/search-parts/src/components/PersonaComponent.tsx
+++ b/search-parts/src/components/PersonaComponent.tsx
@@ -85,7 +85,6 @@ export class PersonaComponent extends React.Component
- {props.item.name}
+
+ {props.item.name}
+
= React.createElement("div", { key: this.properties.key },
React.createElement(NonReactiveTextField, {
+ key: this.properties.componentKey,
onUpdate: ((value) => {
changeCallback(this.targetProperty, value);
}).bind(this),
diff --git a/search-parts/src/controls/PropertyPaneNonReactiveTextField/components/INonReactiveTextFieldProps.ts b/search-parts/src/controls/PropertyPaneNonReactiveTextField/components/INonReactiveTextFieldProps.ts
index 388e9adfa..c5927581d 100644
--- a/search-parts/src/controls/PropertyPaneNonReactiveTextField/components/INonReactiveTextFieldProps.ts
+++ b/search-parts/src/controls/PropertyPaneNonReactiveTextField/components/INonReactiveTextFieldProps.ts
@@ -1,5 +1,10 @@
export interface INonReactiveTextFieldProps {
+ /**
+ * Unique key for the component
+ */
+ key?: string;
+
/**
* The default value to display
*/
diff --git a/search-parts/src/controls/PropertyPaneNonReactiveTextField/components/NonReactiveTextField.tsx b/search-parts/src/controls/PropertyPaneNonReactiveTextField/components/NonReactiveTextField.tsx
index fb5afd651..801d80a95 100644
--- a/search-parts/src/controls/PropertyPaneNonReactiveTextField/components/NonReactiveTextField.tsx
+++ b/search-parts/src/controls/PropertyPaneNonReactiveTextField/components/NonReactiveTextField.tsx
@@ -25,6 +25,7 @@ export class NonReactiveTextField extends React.Component
0) {
+ searchQuery.HitHighlightedProperties = this.properties.hitHighlightedProperties.split(",");
+ }
+
return searchQuery;
}
@@ -929,7 +947,7 @@ export class SharePointSearchDataSource extends BaseDataSource {
- const isTerm = /L0\|#(.+)\|/.test(value.name);
+ const isTerm = TAXONOMY_REFINER_REGEX.test(value.name);
if (isTerm) {
@@ -939,27 +957,27 @@ export class SharePointSearchDataSource extends BaseDataSource {
- // 20210811: We strip the language specific part of the term and use the GP0 value as the filter value
+ const matches = TAXONOMY_REFINER_REGEX.exec(term);
+ // We strip the language specific part of the term and use the GP0 value as the filter value
// and use also the striped value as the new term/key...
// --> 'GP0|#a2cf1afb-44b6-4cf4-bf37-642bb2e9bff3' instead of 'L0|#a2cf1afb-44b6-4cf4-bf37-642bb2e9bff3|Category 1' for the value/filter
// --> 'L0|#a2cf1afb-44b6-4cf4-bf37-642bb2e9bff3|' instead of 'L0|#a2cf1afb-44b6-4cf4-bf37-642bb2e9bff3|Category 1' for the name
- // Background: if the same term is used on sites with different default language, the indexed taxid property value contains the
+ // If the same term is used on sites with different default language, the indexed taxid property value contains the
// translation of that site collection and therefore it comes back as different values meaning the same with the same id but causing
// separate filters.
// (Example: 'L0|#a2cf1afb-44b6-4cf4-bf37-642bb2e9bff3|Food' and 'L0|#a2cf1afb-44b6-4cf4-bf37-642bb2e9bff3|Nahrung')
- let matches = /L0\|#(.+)\|/.exec(value.name);
- let termId = Guid.isValid(matches[1]) ? matches[1] : matches[1].substr(1);
- let strippedTermFilter = "GP0|#" + termId.toString();
- let strippedTerm = term.substring(0, term.lastIndexOf('|') + 1); // (we keep the last pipe for compatibility with further code/regexp)
+ // Using the GP0 refinement will ensure content will be filtered regardless of translations
+ const strippedTerm = matches[1];
- const fqlFilterValue = `"ǂǂ${this._bytesToHex(this._stringToUTF8Bytes(strippedTermFilter))}"`;
+ // Use FQL expression here to get the correct output. Otherwise a full match is performed
+ const fqlFilterValue = `"ǂǂ${this._bytesToHex(this._stringToUTF8Bytes(term))}"`;
const existingFilterIdx = updatedValues.map(updatedValue => updatedValue.name).indexOf(strippedTerm);
-
+
if (existingFilterIdx === -1) {
// Create a dedicated filter value entry
updatedValues.push({
count: value.count,
- name: strippedTerm, // New stripped term, ex: 'L0|#a2cf1afb-44b6-4cf4-bf37-642bb2e9bff3' instead of 'L0|#a2cf1afb-44b6-4cf4-bf37-642bb2e9bff3|Category 1'
+ name: strippedTerm,
value: fqlFilterValue
} as IDataFilterResultValue);
@@ -990,14 +1008,14 @@ export class SharePointSearchDataSource extends BaseDataSource 0) {
- let termId = Guid.isValid(matches[1]) ? matches[1] : matches[1].substr(1); // The substr(1) is to cover the case when a '0' is added at the beginning of the GUID for taxonomy values
+ let termId = matches[3];
// Duplicates can appear if multiple taxonomy filters with the same values are displayed at the same time.
if (termsToLocalize.map(t => t.uniqueIdentifier).indexOf(value.value) === -1) {
@@ -1069,12 +1087,24 @@ export class SharePointSearchDataSource extends BaseDataSource { return e.uniqueIdentifier === value.value; });
if (existingFilters.length > 0) {
- // 20210811: because we have modified the filter value to use the GP0 also for the L0 items, the mapping also returns items which are not L0
- // therefore we have to check the name for L0 again and only replace those...
- const isTerm = /L0\|#(.+)\|/.test(value.name);
+
+ const isTerm = TAXONOMY_REFINER_REGEX.test(value.name);
if (isTerm) {
- value.name = existingFilters[0].localizedTermLabel;
+ const matches = TAXONOMY_REFINER_REGEX.exec(value.name);
+ const termId = matches[3];
+ const termPrefix = matches[2]; // 'L0'
+ if (termPrefix.localeCompare("L0") === 0) {
+ const termFilterWithoutTranslations = `"ǂǂ${this._bytesToHex(this._stringToUTF8Bytes(`GP0|#${termId.toString()}`))}"`;
+ const termTextFilter = `L0|#${termId.toString()}`;
+
+ // value.value: HEX encoded value => original refiner value
+ // termFilterWithoutTranslations => language agnostic term value
+ // termTextFilter => Text value in case the value is a string (ex: a property bag value or a text column)
+ value.value = `or(${value.value},${termFilterWithoutTranslations},${termTextFilter})`;
+ }
}
+
+ value.name = existingFilters[0].localizedTermLabel;
}
// Keep only terms (L0). The crawl property ows_taxid_xxx return term sets too.
@@ -1103,7 +1133,7 @@ export class SharePointSearchDataSource extends BaseDataSource {
+ rawResults.forEach((result, index) => {
let properties = [];
@@ -1136,10 +1166,9 @@ export class SharePointSearchDataSource extends BaseDataSource 0) {
resultsToLocalize.push({
- uniqueIdentifier: result.UniqueID,
+ uniqueIdentifier: index,
properties: properties
});
}
@@ -1213,10 +1242,10 @@ export class SharePointSearchDataSource extends BaseDataSource {
+ updatedResults = rawResults.map((result, index) => {
const existingResults = localizedTerms.filter((e) => {
- return e.uniqueIdentifier === result.UniqueID;
+ return e.uniqueIdentifier === index;
});
if (existingResults.length > 0) {
diff --git a/search-parts/src/helpers/DataFilterHelper.ts b/search-parts/src/helpers/DataFilterHelper.ts
index 994a43092..46a20daa2 100644
--- a/search-parts/src/helpers/DataFilterHelper.ts
+++ b/search-parts/src/helpers/DataFilterHelper.ts
@@ -1,3 +1,4 @@
+import { isEmpty } from "@microsoft/sp-lodash-subset";
import { IDataFilter, IDataFilterConfiguration, FilterType, IDataFilterResult, FilterComparisonOperator } from "@pnp/modern-search-extensibility";
import { BuiltinTokenNames } from "../services/tokenService/TokenService";
@@ -115,6 +116,17 @@ export class DataFilterHelper {
}
}
+ // If the value is null or undefined, we replace it by the FQL expression string('')
+ // Otherwise the query syntax won't be vaild resuting of to an HTTP 500
+ if (isEmpty(value)) {
+ value = "string('')";
+ }
+
+ // Enclose the expression with quotes if the value contains spaces
+ if (/\s/.test(value)) {
+ value = `"${value}"`;
+ }
+
return /ǂǂ/.test(value) && encodeTokens ? encodeURIComponent(value) : value;
}).filter(c => c);
@@ -147,6 +159,17 @@ export class DataFilterHelper {
refinementToken = `range(min,${refinementToken})`;
}
}
+
+ // If the value is null or undefined, we replace it by the FQL expression string('')
+ // Otherwise the query syntax won't be vaild resuting of to an HTTP 500
+ if (isEmpty(refinementToken)) {
+ refinementToken = "string('')";
+ }
+
+ // Enclose the expression with quotes if the value contains spaces
+ if (/\s/.test(refinementToken)) {
+ refinementToken = `"${refinementToken}"`;
+ }
refinementQueryConditions.push(`${filter.filterName}:${refinementToken}`);
}
diff --git a/search-parts/src/helpers/DateHelper.ts b/search-parts/src/helpers/DateHelper.ts
index 44c96b11f..aa36051e6 100644
--- a/search-parts/src/helpers/DateHelper.ts
+++ b/search-parts/src/helpers/DateHelper.ts
@@ -11,7 +11,7 @@ export class DateHelper {
private pageContext: PageContext;
public constructor(serviceScope: ServiceScope) {
- serviceScope.whenFinished(()=> {
+ serviceScope.whenFinished(() => {
this.pageContext = serviceScope.consume(PageContext.serviceKey);
});
}
@@ -26,11 +26,15 @@ export class DateHelper {
'moment'
);
+ let culture = this.pageContext.cultureInfo.currentUICultureName.toLowerCase();
// Moment is by default 'en-us'
- if (['en-us','en'].indexOf(this.pageContext.cultureInfo.currentUICultureName.toLowerCase()) === -1) {
+ if (['en-us', 'en'].indexOf(culture) === -1) {
+ if (culture.indexOf("zh") === -1) {
+ culture = culture.split('-')[0];
+ }
await import(
/* webpackChunkName: 'pnp-modern-search-moment' */
- `moment/locale/${this.pageContext.cultureInfo.currentUICultureName.toLowerCase().split('-')[0]}.js`
+ `moment/locale/${culture}.js`
);
}
diff --git a/search-parts/src/helpers/ObjectHelper.ts b/search-parts/src/helpers/ObjectHelper.ts
index f665ffef2..bd33be222 100644
--- a/search-parts/src/helpers/ObjectHelper.ts
+++ b/search-parts/src/helpers/ObjectHelper.ts
@@ -37,13 +37,24 @@ export class ObjectHelper {
* Get object proeprty value by its deep path.
* @param object the object containg the property path
* @param path the property path to get
+ * @param delimiter if multiple matches are found, sepcifiy the delimiter character to use to separate values in the returned string
* @returns the property value as string if found, 'undefined' otherwise
*/
- public static byPath(object: any, path: string): string {
+ public static byPath(object: any, path: string, delimiter?: string): string {
- if (path && object) {
+ let isValidPredicate = true;
+
+ // Test if the provided path is a valid predicate https://www.npmjs.com/package/jspath#documentation
+ try {
+ jspath.compile(`.${path}`);
+ } catch (e) {
+ isValidPredicate = false;
+ }
+
+ if (path && object && isValidPredicate) {
try {
+
// jsPath always returns an array. See https://www.npmjs.com/package/jspath#result
const value: any[] = jspath.apply(`.${path}`, object);
@@ -62,12 +73,16 @@ export class ObjectHelper {
return JSON.stringify(value);
}
+ if (delimiter && value.length > 1) {
+ return value.join(delimiter);
+ }
+
// Use the default behavior of the toString() method. Arrays of simple values (string, integer, etc.) will be separated by a comma (',')
return value.toString();
} catch (error) {
// Case when unexpected string or tokens are passed in the path
- return object[path]; // fallback to see if the prop is on the object verbatim
+ return null;
}
} else {
diff --git a/search-parts/src/layouts/results/cards/CardsLayout.ts b/search-parts/src/layouts/results/cards/CardsLayout.ts
index 5e04434ff..e4814f3f2 100644
--- a/search-parts/src/layouts/results/cards/CardsLayout.ts
+++ b/search-parts/src/layouts/results/cards/CardsLayout.ts
@@ -56,7 +56,7 @@ export class CardsLayout extends BaseLayout {
[
{ name: strings.Layouts.Cards.Fields.Title, field: 'title', value: '{{slot item @root.slots.Title}}', useHandlebarsExpr: true, supportHtml: false },
{ name: strings.Layouts.Cards.Fields.Location, field: 'location', value: `{{SiteTitle}}`, useHandlebarsExpr: true, supportHtml: true },
- { name: strings.Layouts.Cards.Fields.Tags, field: 'tags', value: `{{#if (slot item @root.slots.Tags)}}\n\t\n\t\t
\n\t\t{{#each (split (slot item @root.slots.Tags) ',') as |tag| }}\n\t\t\t
{{tag}}\n\t{{/each}}\n\t
\n{{/if}}`, useHandlebarsExpr: true, supportHtml: true },
+ { name: strings.Layouts.Cards.Fields.Tags, field: 'tags', value: `\n\n{{#if (slot item @root.slots.Tags)}}\n\t\n{{/if}}`, useHandlebarsExpr: true, supportHtml: true },
{ name: strings.Layouts.Cards.Fields.PreviewImage, field: 'previewImage', value: "{{slot item @root.slots.PreviewImageUrl}}", useHandlebarsExpr: true, supportHtml: false },
{ name: strings.Layouts.Cards.Fields.PreviewUrl, field: 'previewUrl' , value: "{{slot item @root.slots.PreviewUrl}}", useHandlebarsExpr: true, supportHtml: false },
{ name: strings.Layouts.Cards.Fields.Date, field: 'date', value: "{{getDate (slot item @root.slots.Date) 'LL'}}", useHandlebarsExpr: true, supportHtml: false },
diff --git a/search-parts/src/layouts/results/people/people.html b/search-parts/src/layouts/results/people/people.html
index 461852ae9..b36adc479 100644
--- a/search-parts/src/layouts/results/people/people.html
+++ b/search-parts/src/layouts/results/people/people.html
@@ -38,7 +38,7 @@
{{#> resultTypes item=item}}
- {{#if @root.properties.layoutProperties.showPersonaCard}}
+ {{#and @root.properties.layoutProperties.showPersonaCard (slot item @root.slots.PersonQuery)}}
- {{/if}}
+ {{/and}}
{{/resultTypes}}
diff --git a/search-parts/src/layouts/results/simpleList/simple-list.html b/search-parts/src/layouts/results/simpleList/simple-list.html
index 940b5705e..98b5bfe1f 100644
--- a/search-parts/src/layouts/results/simpleList/simple-list.html
+++ b/search-parts/src/layouts/results/simpleList/simple-list.html
@@ -89,9 +89,13 @@
{{getSummary (slot item @root.slots.Summary)}}
diff --git a/search-parts/src/loc/commonStrings.d.ts b/search-parts/src/loc/commonStrings.d.ts
index 4bc5838ee..95f638537 100644
--- a/search-parts/src/loc/commonStrings.d.ts
+++ b/search-parts/src/loc/commonStrings.d.ts
@@ -118,6 +118,8 @@ declare interface ICommonStrings {
SelectedPropertiesFieldLabel: string;
SelectedPropertiesFieldDescription: string;
SelectedPropertiesPlaceholderLabel: string;
+ HitHighlightedPropertiesFieldLabel: string;
+ HitHighlightedPropertiesFieldDescription: string;
TermNotFound: string;
ApplyQueryTemplateBtnText: string;
EnableAudienceTargetingTglLabel: string;
diff --git a/search-parts/src/loc/da-dk.js b/search-parts/src/loc/da-dk.js
index 9008a8294..82e171cc9 100644
--- a/search-parts/src/loc/da-dk.js
+++ b/search-parts/src/loc/da-dk.js
@@ -119,6 +119,8 @@ define([], function() {
SelectedPropertiesFieldLabel: "Valgte egenskaber",
SelectedPropertiesFieldDescription: "Specificerer egenskaber der hentes fra søgeresultaterne.",
SelectedPropertiesPlaceholderLabel: "Vælg egenskaber",
+ HitHighlightedPropertiesFieldLabel: "Resultatfremhævede egenskaber",
+ HitHighlightedPropertiesFieldDescription: "Angiv listen med administrerede egenskaber til fremhævning af resultater.",
TermNotFound: "(Term med ID '{0}' blev ikke fundet)",
ApplyQueryTemplateBtnText: "Anvend",
EnableAudienceTargetingTglLabel: "Aktivér målgruppestyring"
diff --git a/search-parts/src/loc/en-us.js b/search-parts/src/loc/en-us.js
index 77466ad74..040de1861 100644
--- a/search-parts/src/loc/en-us.js
+++ b/search-parts/src/loc/en-us.js
@@ -119,6 +119,8 @@ define([], function() {
SelectedPropertiesFieldLabel: "Selected properties",
SelectedPropertiesFieldDescription: "Specifies the properties to retrieve from the search results.",
SelectedPropertiesPlaceholderLabel: "Select properties",
+ HitHighlightedPropertiesFieldLabel: "Hit-highlighted properties",
+ HitHighlightedPropertiesFieldDescription: "Provide the list of managed properties to hit highlight (i.e. Department,UserName).",
TermNotFound: "(Term with ID '{0}' not found)",
ApplyQueryTemplateBtnText: "Apply",
EnableAudienceTargetingTglLabel: "Enable audience targeting"
diff --git a/search-parts/src/loc/fi-fi.js b/search-parts/src/loc/fi-fi.js
new file mode 100644
index 000000000..7af975393
--- /dev/null
+++ b/search-parts/src/loc/fi-fi.js
@@ -0,0 +1,343 @@
+define([], function() {
+ return {
+ Tokens: {
+ SelectTokenLabel: "Valitse token...",
+ Context: {
+ ContextTokensGroupName: "Kontekstitokenit",
+ SiteAbsoluteUrl: "Sivustokokoelman absoluuttinen URL",
+ SiteRelativeUrl: "Sivustokokoelman suhteellinen URL",
+ WebAbsoluteUrl: "Sivuston absoluuttinen URL",
+ WebRelativeUrl: "Sivuston suhteellinen URL",
+ WebTitle: "Sivuston otsikko",
+ InputQueryText: "Hakukyselyn teksti"
+ },
+ Custom: {
+ CustomTokensGroupName: "Mukautettu arvo",
+ CustomValuePlaceholder: "Syötä arvo...",
+ InvalidtokenFormatErrorMessage: "Syötä tuettu token muodossa '{' and '}'. (ex: {Today})"
+ },
+ Date: {
+ DateTokensGroupName: "Päivämäärätokenit",
+ Today: "Tänään",
+ Yesterday: "Eilen",
+ Tomorrow: "Huomenna",
+ OneWeekAgo: "Viikko sitten",
+ OneMonthAgo: "Kuukausi sitten",
+ OneYearAgo: "Vuosi sitten"
+ },
+ Page: {
+ PageTokensGroupName: "Sivun tokenit",
+ PageId: "Sivun ID",
+ PageTitle: "Sivun otsikko",
+ PageCustom: "Muu sivun ominaisuus",
+ },
+ User: {
+ UserTokensGroupName: "Käyttäjätokenit",
+ UserName: "Käyttäjän nimi",
+ Me: "Minä",
+ UserDepartment: "Käyttäjän yksikkö (Department)",
+ UserCustom: "Muu käyttäjän ominaisuus"
+ }
+ },
+ General: {
+ OnTextLabel: "Käytössä",
+ OffTextLabel: "Pois käytöstä",
+ StaticArrayFieldName: "Taulukkotyyppinen kenttä",
+ About: "Lisätietoa",
+ Authors: "Tekijö(t)",
+ Version: "Versio",
+ InstanceId: "Webosainstanssin ID",
+ Resources: {
+ GroupName: "Resurssit",
+ Documentation: "Dokumentaatio",
+ PleaseReferToDocumentationMessage: "Viittaa viralliseen dokumentaatioon, kiitos."
+ },
+ Extensibility: {
+ InvalidDataSourceInstance: "Valittu sisältölähde '{0}' ei toteuta 'BaseDataSource' luokkaa oikein. Jotkut metodit puuttuvat.",
+ DataSourceDefinitionNotFound: "Mukautettua sisältölähdettä avaimella '{0}' ei löydy. Varmista että sovellus on asennettu sovellusluetteloon ja manifest ID on rekisteröity webosalle.",
+ LayoutDefinitionNotFound: "Mukautettua templaattia avaimella '{0}' ei löydy. Varmista että sovellus on asennettu sovellusluetteloon ja manifest ID on rekisteröity webosalle.",
+ InvalidLayoutInstance: "Valittu templaatti '{0}' ei toteuta 'BaseLayout' luokkaa oikein. Jotkut metodit puuttuvat.",
+ DefaultExtensibilityLibraryName: "Oletuksena käytettävä laajennuskirjasto",
+ InvalidProviderInstance: "Valittu kyselyehdotusten tarjoaja '{0}' ei toteuta 'BaseSuggestionProvider' luokkaa oikein. Jotkut metodit puuttuvat.",
+ ProviderDefinitionNotFound: "Mukautettua kyselyehdotusten tarjoajaa avaimella '{0}' ei löydy. Varmista että sovellus on asennettu sovellusluetteloon ja manifest ID on rekisteröity webosalle.",
+ },
+ DateFromLabel: "Alkaa",
+ DateTolabel: "Päättyy",
+ DatePickerStrings: {
+ months: ['Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kesäkuu', 'Heinäkuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu'],
+ shortMonths: ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'],
+ days: ['Sunnuntai', 'Maanantai', 'Tiistai', 'Keskiviikko', 'Torstai', 'Perjantai', 'Lauantai'],
+ shortDays: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],
+ goToToday: 'Siirry tähän päivään',
+ prevMonthAriaLabel: 'Siirry edelliseen kuukauteen',
+ nextMonthAriaLabel: 'Siirry seuraavaan kuukauteen',
+ prevYearAriaLabel: 'Siirry edelliseen vuoteen',
+ nextYearAriaLabel: 'Siirry seuraavaan vuoteen',
+ closeButtonAriaLabel: 'Sulje päivämäärävalitsin',
+ isRequiredErrorMessage: 'Alkamispäivä on pakollinen.',
+ invalidInputErrorMessage: 'Virheellinen päivämäärän muotoilu.'
+ },
+ DateIntervalStrings: {
+ AnyTime: "Milloin tahansa",
+ PastDay: "Edellisestä 24 tunnista edelliseen viikkoon",
+ PastWeek: "Edellisestä viikosta edelliseen kuukauteen",
+ PastMonth: "Edellisestä kuukaudesta edelliseen 3 kuukauteen",
+ Past3Months: "Edellisestä 3 kuukaudesta edelliseen vuoteen",
+ PastYear: "Edellinen vuosi",
+ Older: "Yli vuosi sitten"
+ },
+ SameTabOpenBehavior: "Avaa samaan välilehteen",
+ NewTabOpenBehavior: "Avaa uuteen välilehteen",
+ PageOpenBehaviorLabel: "Avautumistapa",
+ EmptyFieldErrorMessage: "Tämä kenttä ei voi olla tyhjä",
+ TagPickerStrings: {
+ NoResultsSearchMessage: "Tuloksia ei löytynyt",
+ SearchPlaceholder: "Hae arvoa..."
+ },
+ CurrentVerticalNotSelectedMessage: "Valittu vertikaali ei ole yhdistetty hakutulososaan ({0}). Hakutulososa on tyhjä sivun lukutilassa."
+ },
+ DataSources: {
+ SharePointSearch: {
+ SourceName: "SharePoint haku",
+ SourceConfigurationGroupName: "Lähteen konfigurointi",
+ QueryTextFieldLabel: "Hakukysely",
+ QueryTextFieldInfoMessage: "Käytä Tarjolla olevat yhteydet konfigurointisivua määrittääksesi joko staattisen arvon tai arvon dynaamisesta komponentista sivulla, kuten hakukentästä",
+ QueryTemplateFieldLabel: "Kyselytemplaatti",
+ QueryTemplatePlaceHolderText: "esimerkki: Path:{Site}",
+ QueryTemplateFieldDescription: "Hakukyselyn templaatti. Voit myös käyttää {} muotoilua rakentaaksesi dynaamisen kyselyn.",
+ ResultSourceIdLabel: "Haun tuloslähteen Id / Scope|Nimi",
+ ResultSourceIdDescription: "Valitse tarjolla oleva tuloslähde, syötä mukautetun tuloslähteen GUID, tai SCOPE ja NIMI erotettuna pystyviivalla | (i.e: SPSite|News). Mahdolliset tuloslähteet ovat [SPSiteSubscription, SPSite, SPWeb]. Paina [Enter] tallentaaksesi.",
+ InvalidResultSourceIdMessage: "Syötetty arvo ei ole toimiva GUID, tai muotoiltu muodossa SCOPE|NIMI",
+ EnableQueryRulesLabel: "Selli kyselysäännöt",
+ RefinementFilters: "Suodattimet",
+ RefinementFiltersDescription: "Suoraan hakukyselyyn liitettävät suodattimet. Nämä eivät näy valituissa suodattimissa. Tekstimuotoisissa suodattimissa käytä tuplalainausmerkkejä (\") yksittäisen hipsun sijasta (').",
+ EnableLocalizationLabel: "Salli lokalisointi",
+ EnableLocalizationOnLabel: "Käytössä",
+ EnableLocalizationOffLabel: "Pois käytöstä",
+ QueryCultureLabel: "Hakukyselyn kieli",
+ QueryCultureUseUiLanguageLabel: "Käytä käyttöliittymäkieltä",
+ SelectedPropertiesFieldLabel: "Valitut ominaisuudet",
+ SelectedPropertiesFieldDescription: "Määrittää ominaisuudet, jotka palautetaan hakutulosten joukosta",
+ SelectedPropertiesPlaceholderLabel: "Valitse ominaisuudet",
+ TermNotFound: "(Termiä ID:llä '{0}' ei löydy)",
+ ApplyQueryTemplateBtnText: "Ota käyttöön",
+ EnableAudienceTargetingTglLabel: "Salli käyttäjäryhmäkohdennus"
+ },
+ MicrosoftSearch: {
+ QueryTextFieldLabel: "Hakukysely",
+ QueryTextFieldInfoMessage: "Käytä Tarjolla olevat yhteydet konfigurointisivua määrittääksesi joko staattisen arvon tai arvon dynaamisesta komponentista sivulla, kuten hakukentästä",
+ SourceName: "Microsoft Search",
+ SourceConfigurationGroupName: "Microsoft Search",
+ EntityTypesField: "Haettavat entiteetit",
+ SelectedFieldsPropertiesFieldLabel: "Valitut ominaisuudet",
+ SelectedFieldsPropertiesFieldDescription: "Määrittää ominaisuudet, jotka palautetaan hakutulosten joukosta",
+ SelectedFieldsPlaceholderLabel: "Valitse ominaisuudet",
+ EnableTopResultsLabel: "Salli parhaat tulokset",
+ ContentSourcesFieldLabel: "Sisältölähteet",
+ ContentSourcesFieldDescriptionLabel: "Microsoft Search yhdistimien hallintaportaalissa määritettyjen yhteyksien ID:t.",
+ ContentSourcesFieldPlaceholderLabel: "esimerkki: 'MyCustomConnectorId'",
+ EnableSuggestionLabel: "Salli kirjoitusasun ehdotukset",
+ EnableModificationLabel: "Salli kirjoitusasun muutokset",
+ QueryTemplateFieldLabel: "Kyselytemplaatti",
+ QueryTemplatePlaceHolderText: "esimerkki: {searchTerms} IsDocument:true",
+ QueryTemplateFieldDescription: "Hakukyselyn templaatti. Voit myös käyttää {} muotoilua ja KQL-määreitä rakentaaksesi dynaamisen kyselyn.",
+ ApplyQueryTemplateBtnText: "Ota käyttöön",
+ UseBetaEndpoint: "Käytä beta endpointtia"
+ },
+ SearchCommon: {
+ Sort: {
+ SortPropertyPaneFieldLabel: "Lajittelujärjestys",
+ SortListDescription: "Määritä oletusarvoinen hakutulosten lajittelujärjestys. Voit joko valita kentän pudotusvalikosta (jos tulosjoukon data on jo haettu) tai kirjoittaa oman mukautetun arvosi (paina 'Enter' tallentaaksesi lisäyksen)",
+ SortDirectionAscendingLabel: "Nouseva",
+ SortDirectionDescendingLabel: "Laskeva",
+ SortErrorMessage: "Virheellinen haun ominaisuus (Tarkista, että hallittu ominaisuus on lajiteltava).",
+ SortPanelSortFieldLabel: "Lajittele kentän perusteella",
+ SortPanelSortFieldAria: "Lajitteluperuste",
+ SortPanelSortFieldPlaceHolder: "Lajitteluperuste",
+ SortPanelSortDirectionLabel: "Lajittelusuunta",
+ SortDirectionColumnLabel: "Suunta",
+ SortFieldColumnLabel: "Kentän nimi",
+ EditSortLabel: "Muokkaa lajittelujärjestystä",
+ SortInvalidSortableFieldMessage: "Tämä ominaisuus ei ole lajiteltava",
+ SortFieldColumnPlaceholder: "Valitse kenttä..."
+ }
+ }
+ },
+ Controls: {
+ TextDialogButtonText: "Lisää Handlebars komento",
+ TextDialogTitle: "Muokkaa Handlebars komentoja",
+ TextDialogCancelButtonText: "Peruuta",
+ TextDialogSaveButtonText: "Tallenna",
+ SelectItemComboPlaceHolder: "Valitse ominaisuus",
+ AddStaticDataLabel: "Lisää staattinen arvo",
+ TextFieldApplyButtonText: "Ota käyttöön"
+ },
+ Layouts: {
+ Debug: {
+ Name: "Debug"
+ },
+ Custom: {
+ Name: "Mukautettu"
+ },
+ SimpleList: {
+ Name: "Lista",
+ ShowFileIconLabel: "Näytä tiedostotyypin ikoni",
+ ShowItemThumbnailLabel: "Näytä pikkukuva"
+ },
+ DetailsList: {
+ Name: "Yksityiskohtainen lista",
+ UseHandlebarsExpressionLabel: "Käytä Handlebars komentoa",
+ MinimumWidthColumnLabel: "Minimileveys (px)",
+ MaximumWidthColumnLabel: "Maksimileveys (px)",
+ SortableColumnLabel: "Lajiteltava",
+ ResizableColumnLabel: "Leveys säädettävissä",
+ MultilineColumnLabel: "Monirivinen",
+ LinkToItemColumnLabel: "Linkki kohteeseen",
+ CompactModeLabel: "Tiivis muotoilu",
+ ShowFileIcon: "Näytä tiedostotyypin ikoni",
+ ManageDetailsListColumnDescription: "Lisää, muokkaa tai poista sarakkeita yksityiskohtaisen listan templaatista. Voit käyttää suoraan ominaisuuksien arvoja ilman muotoilua, tai käyttää Handlebars komentoja arvokentässä. Myös HTML-muotoilu on tuettu.",
+ ManageDetailsListColumnLabel: "Hallitse sarakkeita",
+ ValueColumnLabel: "Sarakkeen arvo",
+ ValueSortingColumnLabel: "Sarakkeen lajitteluperuste",
+ DisplayNameColumnLabel: "Sarakkeen näyttönimi",
+ FileExtensionFieldLabel: "Kenttä tiedostotyypin määrittämiseen",
+ GroupByFieldLabel: "Ryhmittele kentän mukaan",
+ EnableGrouping: "Salli ryhmittely",
+ CollapsedGroupsByDefault: "Näytä ryhmät tiivistettynä",
+ ResetFieldsBtnLabel: "Palauta kentät templaatin oletusarvoihin"
+ },
+ Cards: {
+ Name: "Kortit",
+ ManageTilesFieldsLabel: "Hallitse korttien kenttiä",
+ ManageTilesFieldsPanelDescriptionLabel: "Yhdistä mukautettuja kenttiä korttitemplaatin sarakkeisiin. Voit käyttää suoraan ominaisuuksien arvoja ilman muotoilua, tai käyttää Handlebars komentoja arvokentässä. Myös HTML-muotoilu on tuettu.",
+ PlaceholderNameFieldLabel: "Nimi",
+ SupportHTMLColumnLabel: "Salli HTML",
+ PlaceholderValueFieldLabel: "Arvo",
+ UseHandlebarsExpressionLabel: "Käytä Handlebars komentoa",
+ EnableItemPreview: "Salli tuloksen esikatselu",
+ EnableItemPreviewHoverMessage: "Jos tä'mä vaihtoehto on käytössä, sillä voi olla vaikutusta suorituskykyyn jos liian monta kohdetta ladataan kerralla näkyviin ja käytät 'AutoPreviewUrl' muotoilumäärettä (slot). Suosittelemme, että valitset tämän vaihtoehdon vain pienille tulosmäärille tai käytät sisältölähteen kenttien perusteella ennalta muodostettuja esikatselukuvan URL-osoitteita.",
+ ShowFileIcon: "Näytä tiedostotyypin ikoni",
+ CompactModeLabel: "Tiivistetty muotoilu",
+ PreferedCardNumberPerRow: "Toivottu korttien määrä per rivi",
+ Fields: {
+ Title: "Otsikko",
+ Location: "Sijainti",
+ Tags: "Aihesanat",
+ PreviewImage: "Esikatselukuva",
+ PreviewUrl: "Esikatselun URL",
+ Url: "Url",
+ Date: "Päiväys",
+ Author: "Tekijä",
+ ProfileImage: "Profiilikuvan URL",
+ FileExtension: "Tiedostotyyppi",
+ IsContainer: "On kansio"
+ },
+ ResetFieldsBtnLabel: "Palauta kentät templaatin oletusarvoihin"
+ },
+ Slider: {
+ Name: "Slider",
+ SliderAutoPlay: "Toista automaattisesti",
+ SliderAutoPlayDuration: "Automaattisen toiston kesto (sekunneissa)",
+ SliderPauseAutoPlayOnHover: "Pysäytä hoverilla",
+ SliderGroupCells: "Yhteen ryhmiteltävien elementtien määrä",
+ SliderShowPageDots: "Näytä sivujen pallurat",
+ SliderWrapAround: "Ääretön skrollaus",
+ SlideHeight: "Korkeus (px)",
+ SlideWidth: "Leveys (px)"
+ },
+ People: {
+ Name: "Henkilöt",
+ ManagePeopleFieldsLabel: "Hallitse kenttiä",
+ ManagePeopleFieldsPanelDescriptionLabel: "Tässä voit yhdistää templaatin kentät käyttäjäprofiilin ominaisuuksiin. Voit käyttää suoraan ominaisuuksien arvoja ilman muotoilua, tai käyttää Handlebars komentoja arvokentässä.",
+ PlaceholderNameFieldLabel: "Nimi",
+ PlaceholderValueFieldLabel: "Arvo",
+ UseHandlebarsExpressionLabel: "Käytä Handlebars komentoa",
+ PersonaSizeOptionsLabel: "Komponentin koko",
+ PersonaSizeExtraSmall: "Erittäin pieni",
+ PersonaSizeSmall: "Pieni",
+ PersonaSizeRegular: "Normaali",
+ PersonaSizeLarge: "Iso",
+ PersonaSizeExtraLarge: "Erittäin iso",
+ ShowInitialsToggleLabel: "Näytä nimikirjaimet jos kuva ei ole saatavilla",
+ SupportHTMLColumnLabel: "Salli HTML",
+ ResetFieldsBtnLabel: "Palauta kentät templaatin oletusarvoihin",
+ ShowPersonaCardOnHover: "Näytä henkilökortti hoverilla",
+ ShowPersonaCardOnHoverCalloutMsg: "Tämä ominaisuus käyttää Microsoft Graphia käyttäjäprofiilin tietojen näyttämiseen, ja tarvitsee seuraavat API oikeudet tenantissa toimiakseen: ['User.Read','People.Read','Contacts.Read','User.Read.All'].",
+ Fields: {
+ ImageUrl: "Kuvan URL",
+ PrimaryText: "Ensimmäisen rivin teksti",
+ SecondaryText: "Toisen rivin teksti",
+ TertiaryText: "Kolmannes rivin teksti",
+ OptionalText: "Valinnainen teksti"
+ }
+ },
+ Vertical: {
+ Name: "Vertikaalinen"
+ },
+ Horizontal: {
+ Name: "Horisontaalinen",
+ PreferedFilterNumberPerRow: "Toivottu suodattimien määrä per rivi",
+ },
+ Panel: {
+ Name: "Paneeli",
+ IsModal: "Modal",
+ IsLightDismiss: "Kevyt poistuminen",
+ Size: "Paneelin koko",
+ ButtonLabel: "Näytä suodattimet",
+ ButtonLabelFieldName: "Painikkeen näkyvä teksti",
+ HeaderText: "Suodattimet",
+ HeaderTextFieldName: "Paneelin ylätunnisteen teksti",
+ SizeOptions: {
+ SmallFixedFar: 'Pieni (oletus)',
+ SmallFixedNear: 'Pieni, lähellä sivua',
+ Medium: 'Keskikokoinen',
+ Large: 'Suuri',
+ LargeFixed: 'Suuri kiinteälevyinen',
+ ExtraLarge: 'Erittäin suuri',
+ SmallFluid: 'Täysleveä (fluid)'
+ }
+ }
+ },
+ HandlebarsHelpers: {
+ CountMessageLong: "{0} tulosta kyselylle '{1}'",
+ CountMessageShort: "{0} tulosta",
+ },
+ PropertyPane: {
+ ConnectionsPage: {
+ DataConnectionsGroupName: "Tarjolla olevat yhteydet",
+ UseDataVerticalsWebPartLabel: "Yhdistä hakuvertikaalien webosaan",
+ UseDataVerticalsFromComponentLabel: "Käytä vertikaaleja tästä webosasta"
+ },
+ InformationPage: {
+ Extensibility: {
+ GroupName: "Laajennusten konfigurointi",
+ FieldLabel: "Ladattavat laajennuskirjastot",
+ ManageBtnLabel: "Konfiguroi",
+ Columns: {
+ Name: "Nimi/Tarkoitus",
+ Id: "Manifest GUID",
+ Enabled: "Käytössä/Pois käytöstä"
+ }
+ },
+ ImportExport: "Vienti/Tuonti asetukset"
+ }
+ },
+ Filters: {
+ ApplyAllFiltersButtonLabel: "Ota käyttöön",
+ ClearAllFiltersButtonLabel: "Tyhjennä",
+ FilterNoValuesMessage: "Ei arvoja tälle suodattimelle",
+ OrOperator: "TAI",
+ AndOperator: "JA",
+ ComboBoxPlaceHolder: "Valitse arvo",
+ UseAndOperatorValues: "Käytä JA operaattoria arvojen välissä",
+ UseOrOperatorValues: "Käytä TAI operaattoria arvojen välissä",
+ UseValuesOperators: "Valitse operaattori käytettäväksi arvojen välissä"
+ },
+ SuggestionProviders: {
+ SharePointStatic: {
+ ProviderName: "SharePoint staattiset kyselyehdotukset",
+ ProviderDescription: "Palauta SharePoint staattiset käyttäjän määrittämät kyselyehdotukset"
+ }
+ }
+ }
+})
diff --git a/search-parts/src/loc/fr-fr.js b/search-parts/src/loc/fr-fr.js
index 93b01f220..7f4cce415 100644
--- a/search-parts/src/loc/fr-fr.js
+++ b/search-parts/src/loc/fr-fr.js
@@ -119,6 +119,8 @@ define([], function() {
SelectedPropertiesFieldLabel: "Propriétés sélectionnées",
SelectedPropertiesFieldDescription: "Indique les propriétés à extraire des résultats de recherche",
SelectedPropertiesPlaceholderLabel: "Propriétés de sélection",
+ HitHighlightedPropertiesFieldLabel: "Propriétés correspondantes",
+ HitHighlightedPropertiesFieldDescription: "Entrez la liste des propriétés gérées pour lesquelles trouver des correspondances.",
TermNotFound: "(Le critère contenant l’identifiant « {0} » est introuvable)",
ApplyQueryTemplateBtnText: "Appliquer",
EnableAudienceTargetingTglLabel: "Permet de cibler l’auditoire"
diff --git a/search-parts/src/loc/nb-no.js b/search-parts/src/loc/nb-no.js
index 37ae7a5e1..b7e4b5d27 100644
--- a/search-parts/src/loc/nb-no.js
+++ b/search-parts/src/loc/nb-no.js
@@ -119,6 +119,8 @@ define([], function () {
SelectedPropertiesFieldLabel: "Valgte egenskaper",
SelectedPropertiesFieldDescription: "Angi egenskapene som skal hentes søkeresultatene.",
SelectedPropertiesPlaceholderLabel: "Velg egenskaper",
+ HitHighlightedPropertiesFieldLabel: "Treffuthevede egenskaper",
+ HitHighlightedPropertiesFieldDescription: "Angi listen over forvaltede egenskaper som skal utheves etter treff.",
TermNotFound: "(Term med ID '{0}' ble ikke funnet)",
ApplyQueryTemplateBtnText: "Lagre",
EnableAudienceTargetingTglLabel: "Aktiver målgruppetilpasning"
diff --git a/search-parts/src/loc/nl-nl.js b/search-parts/src/loc/nl-nl.js
index d56d659cf..ae36fdf4c 100644
--- a/search-parts/src/loc/nl-nl.js
+++ b/search-parts/src/loc/nl-nl.js
@@ -119,6 +119,8 @@ define([], function() {
SelectedPropertiesFieldLabel: "Geselecteerde eigenschappen",
SelectedPropertiesFieldDescription: "Specificeert de uit de zoekresultaten op te halen eigenschappen.",
SelectedPropertiesPlaceholderLabel: "Selecteer eigenschappen",
+ HitHighlightedPropertiesFieldLabel: "Hit-gemarkeerde eigenschappen",
+ HitHighlightedPropertiesFieldDescription: "De lijst van beheerde eigenschappen opgeven om markeren in te schakelen. ",
TermNotFound: "(Term met ID '{0}' niet gevonden)",
ApplyQueryTemplateBtnText: "Toepassen",
EnableAudienceTargetingTglLabel: "Schakel doelgroepen in"
diff --git a/search-parts/src/loc/pl-pl.js b/search-parts/src/loc/pl-pl.js
index 01ce614bc..f7a75a4d0 100644
--- a/search-parts/src/loc/pl-pl.js
+++ b/search-parts/src/loc/pl-pl.js
@@ -119,6 +119,8 @@ define([], function() {
SelectedPropertiesFieldLabel: "Wybrane właściwości",
SelectedPropertiesFieldDescription: "Wskaż właściwości do pobrania.",
SelectedPropertiesPlaceholderLabel: "Wybierz właściwości",
+ HitHighlightedPropertiesFieldLabel: "Właściwości wyróżnionych trafień",
+ HitHighlightedPropertiesFieldDescription: "Podaj listę właściwości zarządzanych w celu wyróżniania trafień.",
TermNotFound: "(Nie znaleziono terminu o identyfikatorze '{0}')",
ApplyQueryTemplateBtnText: "Zastosuj",
EnableAudienceTargetingTglLabel: "Włącz audiencje"
diff --git a/search-parts/src/loc/sv-SE.js b/search-parts/src/loc/sv-SE.js
index 12a5980e7..536e8b9e6 100644
--- a/search-parts/src/loc/sv-SE.js
+++ b/search-parts/src/loc/sv-SE.js
@@ -119,6 +119,8 @@ define([], function () {
SelectedPropertiesFieldLabel: "Valda egenskaper",
SelectedPropertiesFieldDescription: "Ange egenskaperna som ska hämtas från sökresultaten.",
SelectedPropertiesPlaceholderLabel: "Välj egenskaper",
+ HitHighlightedPropertiesFieldLabel: "Egenskaper för träffmarkeringar",
+ HitHighlightedPropertiesFieldDescription: "Tillhandahåll lista över hanterade egenskaper till träffmarkeringar. ",
TermNotFound: "(Term med ID '{0}' hittades inte)",
ApplyQueryTemplateBtnText: "Tillämpa",
EnableAudienceTargetingTglLabel: "Aktivera målgruppsanpassning"
diff --git a/search-parts/src/models/search/ILocalizableSearchResult.ts b/search-parts/src/models/search/ILocalizableSearchResult.ts
index 25742e87c..31aefcd52 100644
--- a/search-parts/src/models/search/ILocalizableSearchResult.ts
+++ b/search-parts/src/models/search/ILocalizableSearchResult.ts
@@ -3,7 +3,7 @@ export interface ILocalizableSearchResult {
/**
* The unique identifier of the search result
*/
- uniqueIdentifier: string;
+ uniqueIdentifier: number;
/**
* All localizable properties for this result
diff --git a/search-parts/src/services/searchService/SharePointSearchService.ts b/search-parts/src/services/searchService/SharePointSearchService.ts
index 3e4334a1e..a4312f6fc 100644
--- a/search-parts/src/services/searchService/SharePointSearchService.ts
+++ b/search-parts/src/services/searchService/SharePointSearchService.ts
@@ -208,6 +208,10 @@ export class SharePointSearchService implements ISharePointSearchService {
searchQuery.Querytext = '*';
searchQuery.Refiners = 'ManagedProperties(filter=50000/0/*,sort=name/ascending)';
searchQuery.RowLimit = 1;
+ searchQuery.SortList = [{
+ Property: "[DocId]",
+ Direction: SortDirection.Ascending
+ }];
try {
diff --git a/search-parts/src/services/tokenService/TokenService.ts b/search-parts/src/services/tokenService/TokenService.ts
index 38c94fec4..7e5a5f1e8 100644
--- a/search-parts/src/services/tokenService/TokenService.ts
+++ b/search-parts/src/services/tokenService/TokenService.ts
@@ -6,6 +6,7 @@ import { DateHelper } from "../../helpers/DateHelper";
import { Constants } from "../../common/Constants";
import { ObjectHelper } from "../../helpers/ObjectHelper";
import { StringHelper } from "../../helpers/StringHelper";
+import { isEmpty, uniq } from "@microsoft/sp-lodash-subset";
const TokenService_ServiceKey = 'ModernSearchTokenService';
@@ -68,9 +69,9 @@ export class TokenService implements ITokenService {
* The list of static tokens values set by the Web Part as context
*/
private tokenValuesList: { [key: string]: any } = {
- [BuiltinTokenNames.inputQueryText]: null, // Should always be resolved as an empty string
- [BuiltinTokenNames.searchTerms]: null, // Should always be resolved as an empty string
- [BuiltinTokenNames.filters]: null, // Should always be resolved as an empty string
+ [BuiltinTokenNames.inputQueryText]: undefined,
+ [BuiltinTokenNames.searchTerms]: undefined,
+ [BuiltinTokenNames.filters]: undefined,
[BuiltinTokenNames.verticals]: undefined
};
@@ -164,8 +165,8 @@ export class TokenService implements ITokenService {
// The 'OR/AND' operator should be called after all tokens are processed (works with comma delimited values potentially coming from resolved)
inputString = this.replaceAndOrOperator(inputString);
- // Replace manually escaped characters
- inputString = inputString.replace(/\\(.)/gi, '$1');
+ // Replace manually escaped curly braces
+ inputString = inputString.replace(/\\({|})/gi, '$1');
}
return inputString;
@@ -348,38 +349,39 @@ export class TokenService implements ITokenService {
while (matches !== null) {
let userProperty = matches[1].toLowerCase();
+ let propertyValue = null;
- // {User.Audiences} is resolved server side by SharePoint
- if (!/^(audiences)$/gi.test(userProperty)) {
+ // Check if other user profile properties have to be retrieved
+ if (!/^(name|email)$/gi.test(userProperty)) {
- let propertyValue = null;
-
- // Check if other user profile properties have to be retrieved
- if (!/^(name|email)$/gi.test(userProperty)) {
-
- // Check if the user profile api was already called
- if (!this.userProperties) {
- this.userProperties = await this.getUserProfileProperties();
- }
+ // Check if the user profile api was already called
+ if (!this.userProperties) {
+ this.userProperties = await this.getUserProfileProperties();
+ }
- propertyValue = this.userProperties[userProperty] ? this.userProperties[userProperty] : '';
+ // Need to enclose with quotes because of dash separated values (ex: "sps-interests")
+ propertyValue = ObjectHelper.byPath(this.userProperties, `"${userProperty}"`);
- } else {
+ } else {
- switch (userProperty) {
+ switch (userProperty) {
- case "email":
- propertyValue = this.pageContext.user.email;
- break;
+ case "email":
+ propertyValue = this.pageContext.user.email;
+ break;
- case "name":
- propertyValue = this.pageContext.user.displayName;
- break;
- default:
- propertyValue = this.pageContext.user.displayName;
- break;
- }
+ case "name":
+ propertyValue = this.pageContext.user.displayName;
+ break;
+ default:
+ propertyValue = this.pageContext.user.displayName;
+ break;
}
+ }
+
+ // If value not found in the fetched properties, let the value untouched to be resolved server side by a query variable
+ // Ex: {User.Audiences} or {User.PreferredDisplayLanguage}
+ if (propertyValue !== undefined) {
const tokenExprToReplace = new RegExp(matches[0], 'gi');
@@ -499,7 +501,15 @@ export class TokenService implements ITokenService {
while (matches !== null) {
const siteProp = matches[1];
- inputString = inputString.replace(new RegExp(matches[0], "gi"), this.pageContext.site ? ObjectHelper.byPath(this.pageContext.site, siteProp) : '');
+
+ // Ensure the property is in the page context first.
+ // If not, let the value untouched as it could be a query variable instead processed server side (ex: {Site.URL}
+ const sitePropertyValue = ObjectHelper.byPath(this.pageContext.site, siteProp);
+
+ if (sitePropertyValue) {
+ inputString = inputString.replace(new RegExp(matches[0], "gi"), this.pageContext.site ? sitePropertyValue : '');
+ }
+
matches = siteRegExp.exec(inputString);
}
}
@@ -617,13 +627,20 @@ export class TokenService implements ITokenService {
if (!/\{(?:User)\.(.*?)\}/gi.test(tokenValue)) {
const allValues = tokenValue.split(','); // Works with taxonomy multi values (TermID, Label) + multi choices fields + {filters..valueAsText} token. By convention, all multi values for this operator should be sparated by a comma
- // If the token value contains a whitespace, we enclose the value with quotes
if (allValues.length > 0) {
- allValues.forEach(value => {
- conditions.push(`(${property}${operator}${/\s/g.test(value) ? `${quotes}${value}${quotes}` : value})`);
+ // Remove duplicates before processing
+ uniq(allValues).forEach(value => {
+
+ if (!isEmpty(value)) {
+ // If the token value contains a whitespace, we enclose the value with quotes
+ conditions.push(`(${property}${operator}${/\s/g.test(value) ? `${quotes}${value}${quotes}` : value})`);
+ }
});
} else {
- conditions.push(`(${property}${operator}${/\s/g.test(tokenValue) ? `${quotes}${tokenValue}${quotes}` : tokenValue})`);
+
+ if (!isEmpty(tokenValue)) {
+ conditions.push(`(${property}${operator}${/\s/g.test(tokenValue) ? `${quotes}${tokenValue}${quotes}` : tokenValue})`);
+ }
}
let condition = `${conditions.join(` ${orAndOperator} `)}`;
diff --git a/search-parts/src/webparts/searchBox/components/SearchBoxContainer.tsx b/search-parts/src/webparts/searchBox/components/SearchBoxContainer.tsx
index 6d0a243bf..dce104d5b 100644
--- a/search-parts/src/webparts/searchBox/components/SearchBoxContainer.tsx
+++ b/search-parts/src/webparts/searchBox/components/SearchBoxContainer.tsx
@@ -50,7 +50,7 @@ export default class SearchBoxContainer extends React.Component this.setState({ searchInputValue: event.currentTarget.value })}
+ onChange={(event) => this.setState({ searchInputValue: event && event.currentTarget ? event.currentTarget.value : "" })}
onSearch={() => this._onSearch(this.state.searchInputValue)}
onClear={() => {
this._onSearch('', true);
diff --git a/search-parts/src/webparts/searchBox/loc/fi-fi.js b/search-parts/src/webparts/searchBox/loc/fi-fi.js
new file mode 100644
index 000000000..e0af80f96
--- /dev/null
+++ b/search-parts/src/webparts/searchBox/loc/fi-fi.js
@@ -0,0 +1,50 @@
+define([], function() {
+ return {
+ General: {
+ DynamicPropertyDefinition: "Hakukysely"
+ },
+ PropertyPane: {
+ SearchBoxSettingsGroup: {
+ GroupName: "Hakukentän asetukset",
+ PlaceholderTextLabel: "Hakukentässä näkyvä teksti",
+ SearchInNewPageLabel: "Lähetä haku uudelle sivulle",
+ PageUrlLabel: "Sivun URL",
+ UrlErrorMessage: "Syötä validi URL.",
+ QueryPathBehaviorLabel: "Toimintatapa",
+ QueryInputTransformationLabel: "Kyselyn muunnostemplaatti",
+ UrlFragmentQueryPathBehavior: "URL osio",
+ QueryStringQueryPathBehavior: "Hakukyselyn parametri",
+ QueryStringParameterName: "Parametrin nimi",
+ QueryParameterNotEmpty: "Syötä arvo parametrille."
+ },
+ AvailableConnectionsGroup: {
+ GroupName: "Tarjolla olevat yhteydet",
+ UseDynamicDataSourceLabel: "Käytä dynaamista sisältölähdettä oletussyötteenä",
+ QueryKeywordsPropertyLabel: ""
+ },
+ QuerySuggestionsGroup: {
+ GroupName: "Kyselyehdotukset",
+ EnableQuerySuggestions: "Salli kyselyehdotukset",
+ EditSuggestionProvidersLabel: "Konfiguroi kyselyehdotusten tarjoajat",
+ SuggestionProvidersLabel: "Kyselyehdotusten tarjoajat",
+ SuggestionProvidersDescription: "Salli tai estä kyselyehdotusten tarjoajia.",
+ EnabledPropertyLabel: "Sallittu",
+ ProviderNamePropertyLabel: "Nimi",
+ ProviderDescriptionPropertyLabel: "Kuvaus",
+ DefaultSuggestionGroupName: "Suositeltu",
+ NumberOfSuggestionsToShow: "Kyselyehdotusten määrä per ryhmä"
+ },
+ InformationPage: {
+ Extensibility: {
+ PanelHeader: "Konfiguroi käynnistyksessä ladattavat laajennuskirjastot mukautetuille kyselyehdotusten tarjoajille",
+ PanelDescription: "Lisää/poista mukautetun laajennuskirjastosi ID:t tässä. Voit määrittää näyttönimen ja päättää, ladataanko kirjasto käynnistyksessä. Vain mukautetut kyselyehdotusten tarjoajat ladataan tässä.",
+ }
+ },
+
+ },
+ SearchBox: {
+ DefaultPlaceholder: "Syötä hakusanat...",
+ SearchButtonLabel: "Suorita haku"
+ }
+ }
+});
\ No newline at end of file
diff --git a/search-parts/src/webparts/searchFilters/loc/fi-fi.js b/search-parts/src/webparts/searchFilters/loc/fi-fi.js
new file mode 100644
index 000000000..bd11ecd17
--- /dev/null
+++ b/search-parts/src/webparts/searchFilters/loc/fi-fi.js
@@ -0,0 +1,70 @@
+define([], function() {
+ return {
+ General: {
+ PlaceHolder: {
+ EditLabel: "Muokkaa",
+ IconText: "PnP Haun suodattimet",
+ Description: "Näyttää suodattimet yhdistetylle hakutulosten webosalle",
+ ConfigureBtnLabel: "Konfiguroi"
+ },
+ NoAvailableFilterMessage: "Ei suodattimia näytettäväksi.",
+ WebPartDefaultTitle: "Haun suodattimet webosa"
+ },
+ PropertyPane: {
+ ConnectionsPage: {
+ UseDataResultsWebPartLabel: "Yhdistä hakutulosten webosaan",
+ UseDataResultsFromComponentsLabel: "Käytä tuloksia näistä hakutulosten webosista",
+ UseDataResultsFromComponentsDescription: "Jos yhdistät useamman kuin yhden hakutulosten webosan, suodatinarvot ja tulosmäärät yhdistetään samannimisille suodattimille.",
+ LinkToVerticalLabel: "Näytä suodattimet vain, kun nämä vertikaalit ovat valittuna",
+ LinkToVerticalLabelHoverMessage: "Suodattimet näytetään vain, jos valittu vertikaali on sama kuin tälle webosalle konfiguroitu. Muussa tapauksessa suodatinwebosa on tyhjä (ei vie tilaa eikä näytä kehystä) sivun lukutilassa."
+ },
+ FiltersSettingsPage: {
+ SettingsGroupName: "Suodattimien asetukset",
+ FilterOperator: "Suodattimien välinen operaattori"
+ },
+ DataFilterCollection: {
+ SelectFilterComboBoxLabel: "Valitse kenttä",
+ FilterNameLabel: "Suodatinkenttä",
+ FilterMaxBuckets: "# arvojen määrä",
+ FilterDisplayName: "Näyttönimi",
+ FilterTemplate: "Templaatti",
+ FilterExpandByDefault: "Näytä oletuksena laajennettuna",
+ FilterType: "Suodatintyyppi",
+ FilterTypeRefiner: "Tämä suodatintemplaatti mukautuu sisältölähteen palauttaman tulosjoukon saatavilla olevien arvojen perusteella, ja rajaa hakutulosta suodattimesta valittujen arvojen perusteella.",
+ FilterTypeStaticFilter: "Tämä suodatintemplaatti on staattinen ja ainoastaan lähettää valitut suodatinarvot yhdistettyyn sisältölähteeseen. Palautunut hakutulos ei vaikuta suodattimen arvoihin.",
+ CustomizeFiltersBtnLabel: "Muokkaa",
+ CustomizeFiltersHeader: "Muokkaa suodattimia",
+ CustomizeFiltersDescription: "Konfiguroi haun suodattimet lisäämällä tai poistamalla rivejä. Voit valita kenttiä kaikista sisältölähteistä tai käyttää staattisia arvoja suodattimina.",
+ CustomizeFiltersFieldLabel: "Mukauta suodattimia",
+ ShowCount: "Näytä tulosten määrä",
+ Operator: "Suodatinarvojen välinen operaattori",
+ ANDOperator: "JA",
+ OROperator: "TAI",
+ IsMulti: "Monivalinta",
+ Templates: {
+ CheckBoxTemplate: "Valintaruudut",
+ DateRangeTemplate: "Päivämäärärajaus",
+ ComboBoxTemplate: "Yhdistelmävalinta",
+ DateIntervalTemplate: "Ajankohtarajaus (esim. viime kuussa)",
+ TaxonomyPickerTemplate: "Taksonomiavalinta"
+ },
+ SortBy: "Lajitteluperuste",
+ SortDirection: "Lajittelun suunta",
+ SortByName: "Nimi",
+ SortByCount: "Tulosmäärä",
+ SortAscending: "Nouseva",
+ SortDescending: "Laskeva"
+ },
+ LayoutPage: {
+ AvailableLayoutsGroupName: "Tarjolla olevat muotoilut",
+ LayoutTemplateOptionsGroupName: "Muotoiluvaihtoehdot",
+ TemplateUrlFieldLabel: "Käytä ulkoisen templaatin URL-osoitetta",
+ TemplateUrlPlaceholder: "https://myfile.html",
+ ErrorTemplateExtension: "Templaatin pitää olla oikein muotoiltu .htm tai .html tiedosto",
+ ErrorTemplateResolve: "Templaatin tunnistaminen ei onnistunut. Virhetiedot: '{0}'",
+ FiltersTemplateFieldLabel: "Muokkaa suodatintemplaattia",
+ FiltersTemplatePanelHeader: "Muokkaa suodatintemplaattia"
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/search-parts/src/webparts/searchFilters/loc/fr-fr.js b/search-parts/src/webparts/searchFilters/loc/fr-fr.js
index 5623f8214..8833b32b8 100644
--- a/search-parts/src/webparts/searchFilters/loc/fr-fr.js
+++ b/search-parts/src/webparts/searchFilters/loc/fr-fr.js
@@ -4,7 +4,7 @@ define([], function() {
PlaceHolder: {
EditLabel: "Modifier",
IconText: "Filtres de recherche par @PnP",
- Description: "Affiche les filtres d’un composant Web connecté des résultats de recherche ",
+ Description: "Affiche les filtres d'un composant Web connecté des résultats de recherche ",
ConfigureBtnLabel: "Configurer"
},
NoAvailableFilterMessage: "Aucun filtre disponible à afficher.",
@@ -16,7 +16,9 @@ define([], function() {
UseDataResultsFromComponentsLabel: "Utiliser les données de ces composants Web",
UseDataResultsFromComponentsDescription: "Si vous connectez plusieurs composants Web, les valeurs et les nombres de filtres seront fusionnés avec les noms de filtres similaires",
UseDataVerticalsWebPartLabel: "Se connecter à un composant WebPart de verticales",
- UseDataVerticalsFromComponentLabel: "Utiliser les verticales de ce composant"
+ UseDataVerticalsFromComponentLabel: "Utiliser les verticales de ce composant",
+ LinkToVerticalLabel: "Afficher les données uniquement lorsque les verticales suivantes sont sélectionnées",
+ LinkToVerticalLabelHoverMessage: "Les filtres ne seront affichés que si la verticale sélectionnée correspond à celles configurées pour ce composant WebPart. Sinon, le composant WebPart restera vide (pas de marge ni de remplissage) en mode affichage."
},
FiltersSettingsPage: {
SettingsGroupName: "Paramètres des filtres",
@@ -26,7 +28,7 @@ define([], function() {
SelectFilterComboBoxLabel: "Sélectionner un champ",
FilterNameLabel: "Champ Filtre",
FilterMaxBuckets: "Nombre de valeurs",
- FilterDisplayName: "Nom d’affichage",
+ FilterDisplayName: "Nom d'affichage",
FilterTemplate: "Modèle",
FilterExpandByDefault: "Agrandir par défaut",
FilterType: "Type de filtre",
@@ -61,7 +63,7 @@ define([], function() {
TemplateUrlFieldLabel: "Utiliser une adresse URL de modèle externe",
TemplateUrlPlaceholder: "https://myfile.html",
ErrorTemplateExtension: "Le modèle doit être un fichier .htm ou .html valide",
- ErrorTemplateResolve: "Impossible de résoudre le modèle indiqué. Renseignements sur l’erreur '{0}'",
+ ErrorTemplateResolve: "Impossible de résoudre le modèle indiqué. Renseignements sur l'erreur '{0}'",
FiltersTemplateFieldLabel: "Modifier le modèle de filtres",
FiltersTemplatePanelHeader: "Modifier le modèle de filtres"
}
diff --git a/search-parts/src/webparts/searchResults/SearchResultsWebPart.ts b/search-parts/src/webparts/searchResults/SearchResultsWebPart.ts
index ea39c1550..1eb55b796 100644
--- a/search-parts/src/webparts/searchResults/SearchResultsWebPart.ts
+++ b/search-parts/src/webparts/searchResults/SearchResultsWebPart.ts
@@ -1,6 +1,6 @@
import * as React from 'react';
import * as ReactDom from 'react-dom';
-import { Version, Text, DisplayMode, ServiceScope, Log } from '@microsoft/sp-core-library';
+import { Version, Text, DisplayMode, ServiceScope, Log, Guid } from '@microsoft/sp-core-library';
import { IComboBoxOption, Toggle, IToggleProps, MessageBarType, MessageBar, Link } from 'office-ui-fabric-react';
import { IWebPartPropertiesMetadata } from '@microsoft/sp-webpart-base';
import * as webPartStrings from 'SearchResultsWebPartStrings';
@@ -282,13 +282,29 @@ export default class SearchResultsWebPart extends BaseWebPart 0) {
- fieldValue = ObjectHelper.byPath(this._currentDataResultsSourceData.selectedItems, field);
- }
-
- fields[field] = fieldValue ? fieldValue.split(',') : undefined;
+ fields[field] = [];
+ this._currentDataResultsSourceData.selectedItems.forEach(selectedItem => {
+ const fieldValue = ObjectHelper.byPath(selectedItem, field);
+
+ // Special case where there value is a taxonomy item. In this case, we only take the GP0 part as it won't work otherwise with SharePoint search refiners or KQL conditions
+ const taxonomyItemRegExp = /GP0\|#0?((\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1})/gi;
+
+ if (taxonomyItemRegExp.test(fieldValue)) {
+ fieldValue.match(taxonomyItemRegExp).forEach(match => {
+ fields[field].push(match);
+ });
+ } else {
+
+ if (fieldValue) {
+ // Break down multiple values in a field value (like a multi choice or taxonomy column)
+ fieldValue.split(";").forEach(value => {
+ fields[field].push(value);
+ });
+ } else {
+ fields[field].push(undefined);
+ }
+ }
+ });
});
return fields;
@@ -818,7 +834,7 @@ export default class SearchResultsWebPart extends BaseWebPart 0 ? itemFieldValues.join(',') : undefined; // This allow the `{? }` to work
this.tokenService.setTokenValue(BuiltinTokenNames.filters, filterTokens);
}
@@ -2214,11 +2225,11 @@ export default class SearchResultsWebPart extends BaseWebPart !isEmpty(value) && typeof value === 'string') // Make sure the value is actually a not empty/null 'string'
- .map(fieldValue => {
+ .filter(value => !value || typeof value === 'string')
+ .map(fieldValue => {
return {
name: fieldValue,
- value: fieldValue,
+ value: fieldValue,
operator: FilterComparisonOperator.Eq
};
});
diff --git a/search-parts/src/webparts/searchResults/loc/da-dk.js b/search-parts/src/webparts/searchResults/loc/da-dk.js
index 83e1536a9..16be15575 100644
--- a/search-parts/src/webparts/searchResults/loc/da-dk.js
+++ b/search-parts/src/webparts/searchResults/loc/da-dk.js
@@ -68,18 +68,18 @@ define([], function() {
CancelButtonText: "Annuller",
DialogButtonText: "Redigér skabelon",
DialogTitle: "Redigér resultatsskabelon",
- SaveButtonText: "Gem",
- AllowItemSelection: "Tillad valg af elementer",
- AllowMultipleItemSelection: "Tillad flere valg",
- SelectionModeLabel: "Valgtilstand",
- AsTokensSelectionMode: "Behandl valgte værdier som tokens (manuel tilstand)",
- AsDataFiltersSelectionMode: "Behandle valgte værdier som filtre (standardtilstand)",
- AsDataFiltersDescription: "I denne tilstand sendes valgte værdier til datakilden som almindelige filtre",
- AsTokensDescription: "I denne tilstand bruges de valgte værdier manuelt gennem tokens og tilgængelige metoder. Eksempel med SharePoint søgeforespørgselsskabelon: {?Title:{filters.<destination_field_name>.valueAsText}}",
- FilterValuesOperator: "Den logiske operator, der skal bruges mellem valgte værdier",
- FieldToConsumeLabel: "Kildefelt til at forbruge",
- FieldToConsumeDescription: "Brug denne feltværdi til udvalgte varer"
- }
+ SaveButtonText: "Gem"
+ },
+ AllowItemSelection: "Tillad valg af elementer",
+ AllowMultipleItemSelection: "Tillad flere valg",
+ SelectionModeLabel: "Valgtilstand",
+ AsTokensSelectionMode: "Behandl valgte værdier som tokens (manuel tilstand)",
+ AsDataFiltersSelectionMode: "Behandle valgte værdier som filtre (standardtilstand)",
+ AsDataFiltersDescription: "I denne tilstand sendes valgte værdier til datakilden som almindelige filtre",
+ AsTokensDescription: "I denne tilstand bruges de valgte værdier manuelt gennem tokens og tilgængelige metoder. Eksempel med SharePoint søgeforespørgselsskabelon: {?Title:{filters.<destination_field_name>.valueAsText}}",
+ FilterValuesOperator: "Den logiske operator, der skal bruges mellem valgte værdier",
+ FieldToConsumeLabel: "Kildefelt til at forbruge",
+ FieldToConsumeDescription: "Brug denne feltværdi til udvalgte varer"
},
ConnectionsPage: {
ConnectionsPageGroupName: "Tilgængelige forbindelser",
diff --git a/search-parts/src/webparts/searchResults/loc/fi-fi.js b/search-parts/src/webparts/searchResults/loc/fi-fi.js
new file mode 100644
index 000000000..a78593d34
--- /dev/null
+++ b/search-parts/src/webparts/searchResults/loc/fi-fi.js
@@ -0,0 +1,119 @@
+define([], function() {
+ return {
+ General: {
+ PlaceHolder: {
+ EditLabel: "Muokkaa",
+ IconText: "PnP Hakutulosten webosa",
+ Description: "Näyttää hakutulokset SharePoint tai Microsoft hausta.",
+ ConfigureBtnLabel: "Konfiguroi"
+ },
+ WebPartDefaultTitle: "Hakutulosten webosa",
+ ShowBlankEditInfoMessage: "Ei tuloksia tälle hakukyselylle. Näillä parametreillä webosa on tyhjä sivun lukutilassa.",
+ CurrentVerticalNotSelectedMessage: "Valittu vertikaali ei ole yhdistetty tähän tuloswebosaan. Tuloswebosa on tyhjä sivun lukutilassa."
+ },
+ PropertyPane: {
+ DataSourcePage: {
+ DataSourceConnectionGroupName: "Saatavilla olevat sisältölähteet",
+ PagingOptionsGroupName: "Sivutuksen vaihtoehdot",
+ ItemsCountPerPageFieldName: "Kohteiden määrä sivulla",
+ PagingRangeFieldName: "Näytettävien sivujen määrä",
+ ShowPagingFieldName: "Näytä sivutus",
+ HidePageNumbersFieldName: "Piilota sivunumerot",
+ HideNavigationFieldName: "Piilota siirtymäpainikkeet (edellinen sivu, seuraava sivu)",
+ HideFirstLastPagesFieldName: "Piilota ensimmäinen/viimeinen siirtymäpainikkeet",
+ HideDisabledFieldName: "Piilota siirtymäpainikkeet (edellinen, seuraava, ensimmäinen, viimeinen) jos ne eivät ole käytössä.",
+ TemplateSlots: {
+ GroupName: "Muotoilumääreet (slots)",
+ ConfigureSlotsLabel: "Muokkaa muotoilumääreitä tälle sisältölähteelle",
+ ConfigureSlotsBtnLabel: "Mukauta",
+ ConfigureSlotsPanelHeader: "Muotoilumääreet",
+ ConfigureSlotsPanelDescription: "Lisää tänne määreitä, joita voit käyttää eri templaateissa. Muotoilumääre on muuttuja, jota käytetään templaatissa, ja jonka arvo korvataan dynaamisesti sisältölähteen kentän arvolla. Tämä mahdollistaa templaattien yleiskäyttöisyyden riippumatta sisältölähteen kentistä. Käytä muotoilumääreitä `{{slot item @root.slots.}}` Handlebar ilmaisulla.",
+ SlotNameFieldName: "Muotoilumääreen nimi",
+ SlotFieldFieldName: "Muotoilumääreen kenttä",
+ SlotFieldPlaceholderName: "Valitse kenttä"
+ }
+ },
+ LayoutPage: {
+ LayoutSelectionGroupName: "Tarjolla olevat templaatit",
+ LayoutTemplateOptionsGroupName: "Templaattien vaihtoehdot",
+ CommonOptionsGroupName: "Yleinen",
+ TemplateUrlFieldLabel: "Käytä ulkoisen templaatin URL-osoitetta",
+ TemplateUrlPlaceholder: "https://myfile.html",
+ ErrorTemplateExtension: "Templaatin pitää olla oikein muotoiltu .htm tai .html tiedosto",
+ ErrorTemplateResolve: "Templaatin tunnistaminen ei onnistunut. Virhetiedot: '{0}'",
+ DialogButtonLabel: "Muokkaa hakutulosten templaattia",
+ DialogTitle: "Muokkaa hakutulosten templaattia",
+ ShowSelectedFilters: "Näytä valitut suodattimet",
+ ShowBlankIfNoResult: "Piilota webosa, jos tuloksia ei ole",
+ ShowResultsCount: "Näytä tulosten lukumäärä",
+ UseMicrosoftGraphToolkit: "Käytä Microsoft Graph Toolkitiä",
+ ResultTypes: {
+ ResultTypeslabel: "Tulostyypit",
+ ResultTypesDescription: "Lisää tähän templaatteja käytettäväksi tuloskohteiden ominaisuuksien perusteella. Ominaisuuksia tarkastellaan konfiguroidussa järjestyksessä ja ulkoiset templaatit yliajavat suoraan webosaan määritetyt templaatit. Varmista, että käyttämäsi sisältölähteen kentät ovat mukana tulosjoukossa.",
+ InlineTemplateContentLabel: "Webosaan määritetty templaatti",
+ EditResultTypesLabel: "Muokkaa tulostyyppejä",
+ ConditionPropertyLabel: "Sisältölähteen kenttä",
+ ConditionValueLabel: "Ehdon arvo",
+ CondtionOperatorValue: "Operaattori",
+ ExternalUrlLabel: "Ulkoisen templaatin URL",
+ EqualOperator: "On yhtä kuin",
+ NotEqualOperator: "On eri suuri kuin",
+ ContainsOperator: "Sisältää",
+ StartsWithOperator: "Alkaa merkkijonolla",
+ NotNullOperator: "Ei ole tyhjä",
+ GreaterOrEqualOperator: "Suurempi tai yhtä suuri",
+ GreaterThanOperator: "Suurempi kuin",
+ LessOrEqualOperator: "Pienempi tai yhtä suuri",
+ LessThanOperator: "Pienempi kuin",
+ CancelButtonText: "Peruuta",
+ DialogButtonText: "Muokkaa templaattia",
+ DialogTitle: "Muokkaa hakutulosten templaattia",
+ SaveButtonText: "Tallenna"
+ },
+ AllowItemSelection: "Salli kohteiden valinta",
+ AllowMultipleItemSelection: "Salli monivalinta",
+ SelectionModeLabel: "Valintatila",
+ AsTokensSelectionMode: "Käsittele valittuja arvoja tokeneina (manuaalitila)",
+ AsDataFiltersSelectionMode: "Käsittele valittuja arvoja suodattimina (oletustila)",
+ AsDataFiltersDescription: "Tässä tilassa valitut arvot lähetetään sisältölähteelle tavallisina haun suodattimina. Valitun ominaisuuden pitää olla suodatettava haun skeemassa.",
+ AsTokensDescription: "Tässä tilassa valittuja arvoja käsitellään manuaalisesti tokenien ja tarjolla olevien metodien avulla. Esimerkki SharePointin kyselyn templaatista: {?Title:{filters.<destination_field_name>.valueAsText}}",
+ FilterValuesOperator: "Looginen operaattori arvojen välillä",
+ FieldToConsumeLabel: "Käytettävä lähteen kenttä",
+ FieldToConsumeDescription: "Käytä tätä kentän arvoa valituille kohteille"
+ },
+ ConnectionsPage: {
+ ConnectionsPageGroupName: "Tarjolla olevat yhteydet",
+ UseFiltersWebPartLabel: "Yhdistä suodatinwebosaan",
+ UseFiltersFromComponentLabel: "Käytä suodattimia tästä webosasta",
+ UseDynamicFilteringsWebPartLabel: "Yhdistä hakutulosten webosaan",
+ UseDataResultsFromComponentsLabel: "Käytä tuloksia tästä webosasta",
+ UseDataResultsFromComponentsDescription: "Käytä tuloksia valituista kohteista näissä webosissa",
+ UseSearchVerticalsWebPartLabel: "Yhdistä vertikaalien webosaan",
+ UseSearchVerticalsFromComponentLabel: "Käytä vertikaaleja näistä webosista",
+ LinkToVerticalLabel: "Näytä tulokset vain, kun seuraava vertikaali on valittu",
+ LinkToVerticalLabelHoverMessage: "Tulokset näytetään vain, jos alla konfiguroitu vertikaali vastaa vertikaaliwebosasta valittua vertikaalia. Muussa tapauksessa webosa on tyhjä (ei vie tilaa eikä näytä kehystä) sivun lukutilassa.",
+ UseInputQueryText: "Käytä kyselytekstiä",
+ UseInputQueryTextHoverMessage: "Käytä {inputQueryText} tokenia sisältölähteessäsi palauttaaksesi tämän arvon",
+ SearchQueryTextFieldLabel: "Kyselyn teksti",
+ SearchQueryTextFieldDescription: "",
+ SearchQueryPlaceHolderText: "Syötä kyselyn teksti...",
+ InputQueryTextStaticValue: "Staattinen arvo",
+ InputQueryTextDynamicValue: "Dynaaminen arvo",
+ SearchQueryTextUseDefaultQuery: "Käytä oletusarvoa",
+ SearchQueryTextDefaultValue: "Oletusarvo",
+ SourceDestinationFieldLabel: "Kohdekentän nimi",
+ SourceDestinationFieldDescription: "Tässä webosassa käytettävä kohdekenttä, joka vastaa valittuihin arvoihin",
+ AvailableFieldValuesFromResults: "Kenttä joka sisältää suodatinarvon"
+ },
+ InformationPage: {
+ Extensibility: {
+ PanelHeader: "Konsiguroi laajennuskirjastot ladattavaksi käynnistyksessä.",
+ PanelDescription: "Lisää/poista mukautetun laajennuskirjastosi ID:t tässä. Voit määrittää näyttönimen ja päättää, ladataanko kirjasto käynnistyksessä. Vain mukautetut sisältölähtee, templaatit, komponentit ja Handlebar helperit tarjoajat ladataan tässä.",
+ },
+ EnableTelemetryLabel: "PnP telemetria",
+ EnableTelemetryOn: "Aseta telemetria käyttöön",
+ EnableTelemetryOff: "Poista telemetria käytöstä"
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/search-parts/src/webparts/searchResults/loc/fr-fr.js b/search-parts/src/webparts/searchResults/loc/fr-fr.js
index cbf1c93a4..df2f2ecc0 100644
--- a/search-parts/src/webparts/searchResults/loc/fr-fr.js
+++ b/search-parts/src/webparts/searchResults/loc/fr-fr.js
@@ -35,18 +35,18 @@ define([], function() {
},
LayoutPage: {
LayoutSelectionGroupName: "Mises en page disponibles",
- LayoutTemplateOptionsGroupName: "Options de mise en page",
- CommonOptionsGroupName: "Courantes",
+ LayoutTemplateOptionsGroupName: "Options de mise en page",
+ CommonOptionsGroupName: "Courantes",
TemplateUrlFieldLabel: "Utiliser une adresse URL de modèle externe",
TemplateUrlPlaceholder: "https://myfile.html",
ErrorTemplateExtension: "Le modèle doit être un fichier .htm ou .html valide",
ErrorTemplateResolve: "Impossible de résoudre le modèle indiqué. Renseignements sur l’erreur '{0}'",
- DialogButtonLabel: "Modifier le modèle de résultats",
- DialogTitle: "Modifier le modèle de résultats",
- ShowSelectedFilters: "Afficher les filtres sélectionnés",
- ShowBlankIfNoResult: "Masquer ce composant Web s’il n’y a rien à afficher",
- ShowResultsCount: "Afficher le nombre de résultats",
- UseMicrosoftGraphToolkit: "Utiliser la boîte à outils Microsoft Graph",
+ DialogButtonLabel: "Modifier le modèle de résultats",
+ DialogTitle: "Modifier le modèle de résultats",
+ ShowSelectedFilters: "Afficher les filtres sélectionnés",
+ ShowBlankIfNoResult: "Masquer ce composant Web s’il n’y a rien à afficher",
+ ShowResultsCount: "Afficher le nombre de résultats",
+ UseMicrosoftGraphToolkit: "Utiliser la boîte à outils Microsoft Graph",
ResultTypes: {
ResultTypeslabel: "Type de résultat",
ResultTypesDescription: "Ajoutez ici les modèles à utiliser pour les éléments de résultat selon une ou plusieurs conditions supplémentaires. Les conditions sont évaluées dans l’ordre configuré et les modèles externes ont préséance sur les modèles intégrés. Assurez-vous également que les champs de la source des données que vous utilisez sont présents dans la réponse aux données.",
@@ -70,17 +70,17 @@ define([], function() {
DialogButtonText: "Modifier le modèle",
DialogTitle: "Modifier le modèle de résultats",
SaveButtonText: "Enregistrer",
- AllowItemSelection: "Autoriser la sélection d'éléments",
- AllowMultipleItemSelection: "Autoriser la sélection multiple",
- SelectionModeLabel: "Mode de sélection",
- AsTokensSelectionMode: "Traiter les valeurs en tant que tokens (manuel)",
- AsDataFiltersSelectionMode: "Traiter les valeurs en tant que filtres (default)",
- AsDataFiltersDescription: "Dans ce mode, les éléments sélectionnés sont traitées en tant que qu'affinements de recherche. Cela signifie que la propriété de destination doit être affinables dans le schéma de recherche.",
- AsTokensDescription: "Dans ce mode, les éléments sélectionnés sont traitées manuellement en tant que tokens. Exemple avec la recherche SharePoint et le modèle de requête: {?Title:{filters.<destination_field_name>.valueAsText}}",
- FilterValuesOperator: "L'opérateur logique entre les valeurs sélectionnées",
- FieldToConsumeLabel: "Champ source à utiliser",
- FieldToConsumeDescription: "Utiliser la valeur de ce champ pour les éléments sélectionnés"
- }
+ },
+ AllowItemSelection: "Autoriser la sélection d'éléments",
+ AllowMultipleItemSelection: "Autoriser la sélection multiple",
+ SelectionModeLabel: "Mode de sélection",
+ AsTokensSelectionMode: "Traiter les valeurs en tant que tokens (manuel)",
+ AsDataFiltersSelectionMode: "Traiter les valeurs en tant que filtres (default)",
+ AsDataFiltersDescription: "Dans ce mode, les éléments sélectionnés sont traités en tant que qu'affinements de recherche. Cela signifie que la propriété de destination doit être affinables dans le schéma de recherche.",
+ AsTokensDescription: "Dans ce mode, les éléments sélectionnés sont traités manuellement en tant que tokens. Exemple avec la recherche SharePoint et le modèle de requête: {?Title:{filters.<destination_field_name>.valueAsText}}",
+ FilterValuesOperator: "L'opérateur logique entre les valeurs sélectionnées",
+ FieldToConsumeLabel: "Champ source à utiliser",
+ FieldToConsumeDescription: "Utiliser la valeur de ce champ pour les éléments sélectionnés"
},
ConnectionsPage: {
ConnectionsPageGroupName: "Connexions disponibles",
diff --git a/search-parts/src/webparts/searchResults/loc/nb-no.js b/search-parts/src/webparts/searchResults/loc/nb-no.js
index 3ff23c20b..8ddd3b771 100644
--- a/search-parts/src/webparts/searchResults/loc/nb-no.js
+++ b/search-parts/src/webparts/searchResults/loc/nb-no.js
@@ -68,18 +68,18 @@ define([], function() {
CancelButtonText: "Avbryt",
DialogButtonText: "Rediger mal",
DialogTitle: "Rediger resultatmal",
- SaveButtonText: "Lagre",
- AllowItemSelection: "Tillat valg av elementer",
- AllowMultipleItemSelection: "Tillat flere valg",
- SelectionModeLabel: "Valgmodus",
- AsTokensSelectionMode: "Behandle valgte verdier som tokens (manuell modus)",
- AsDataFiltersSelectionMode: "Behandle valgte verdier som filtre (standardmodus)",
- AsDataFiltersDescription: "I denne modusen sendes valgte verdier til datakilden som vanlige filtre",
- AsTokensDescription: "I denne modusen brukes valgte verdier manuelt gjennom tokens og tilgjengelige metoder. Eksempel med SharePoint-søkemal: {?Title:{filters.<destination_field_name>.valueAsText}}",
- FilterValuesOperator: "Den logiske operatoren som skal brukes mellom valgte verdier",
- FieldToConsumeLabel: "Kildefelt å konsumere",
- FieldToConsumeDescription: "Bruk denne feltverdien for valgte elementer"
- }
+ SaveButtonText: "Lagre"
+ },
+ AllowItemSelection: "Tillat valg av elementer",
+ AllowMultipleItemSelection: "Tillat flere valg",
+ SelectionModeLabel: "Valgmodus",
+ AsTokensSelectionMode: "Behandle valgte verdier som tokens (manuell modus)",
+ AsDataFiltersSelectionMode: "Behandle valgte verdier som filtre (standardmodus)",
+ AsDataFiltersDescription: "I denne modusen sendes valgte verdier til datakilden som vanlige filtre",
+ AsTokensDescription: "I denne modusen brukes valgte verdier manuelt gjennom tokens og tilgjengelige metoder. Eksempel med SharePoint-søkemal: {?Title:{filters.<destination_field_name>.valueAsText}}",
+ FilterValuesOperator: "Den logiske operatoren som skal brukes mellom valgte verdier",
+ FieldToConsumeLabel: "Kildefelt å konsumere",
+ FieldToConsumeDescription: "Bruk denne feltverdien for valgte elementer"
},
ConnectionsPage: {
ConnectionsPageGroupName: "Tilgjengelige tilkoblinger",
diff --git a/search-parts/src/webparts/searchResults/loc/nl-nl.js b/search-parts/src/webparts/searchResults/loc/nl-nl.js
index 434a8c25f..85fd11bda 100644
--- a/search-parts/src/webparts/searchResults/loc/nl-nl.js
+++ b/search-parts/src/webparts/searchResults/loc/nl-nl.js
@@ -69,17 +69,17 @@ define([], function() {
DialogButtonText: "Bewerk sjabloon",
DialogTitle: "Bewerk resultaatsjabloon",
SaveButtonText: "Bewaar",
- AllowItemSelection: "Selectie van items toestaan",
- AllowMultipleItemSelection: "Meerdere selectie toestaan",
- SelectionModeLabel: "Selectiemodus",
- AsTokensSelectionMode: "Verwerk geselecteerde waarden als tokens (handmatige modus)",
- AsDataFiltersSelectionMode: "Verwerk geselecteerde waarden als filters (standaardmodus)",
- AsDataFiltersDescription: "In deze modus worden geselecteerde waarden als gewone filters naar de gegevensbron verzonden",
- AsTokensDescription: "In deze modus worden geselecteerde waarden handmatig gebruikt via tokens en beschikbare methoden. Voorbeeld met SharePoint-zoekopdrachtsjabloon: {?Title:{filters.<destination_field_name>.valueAsText}}",
- FilterValuesOperator: "De logische operator die tussen geselecteerde waarden moet worden gebruikt",
- FieldToConsumeLabel: "Bronveld om te consumeren",
- FieldToConsumeDescription: "Gebruik deze veldwaarde voor geselecteerde items"
- }
+ },
+ AllowItemSelection: "Selectie van items toestaan",
+ AllowMultipleItemSelection: "Meerdere selectie toestaan",
+ SelectionModeLabel: "Selectiemodus",
+ AsTokensSelectionMode: "Verwerk geselecteerde waarden als tokens (handmatige modus)",
+ AsDataFiltersSelectionMode: "Verwerk geselecteerde waarden als filters (standaardmodus)",
+ AsDataFiltersDescription: "In deze modus worden geselecteerde waarden als gewone filters naar de gegevensbron verzonden",
+ AsTokensDescription: "In deze modus worden geselecteerde waarden handmatig gebruikt via tokens en beschikbare methoden. Voorbeeld met SharePoint-zoekopdrachtsjabloon: {?Title:{filters.<destination_field_name>.valueAsText}}",
+ FilterValuesOperator: "De logische operator die tussen geselecteerde waarden moet worden gebruikt",
+ FieldToConsumeLabel: "Bronveld om te consumeren",
+ FieldToConsumeDescription: "Gebruik deze veldwaarde voor geselecteerde items"
},
ConnectionsPage: {
ConnectionsPageGroupName: "Beschikbare verbindingen",
diff --git a/search-parts/src/webparts/searchResults/loc/pl-pl.js b/search-parts/src/webparts/searchResults/loc/pl-pl.js
index 7bff8fe54..9a6466dc2 100644
--- a/search-parts/src/webparts/searchResults/loc/pl-pl.js
+++ b/search-parts/src/webparts/searchResults/loc/pl-pl.js
@@ -68,18 +68,18 @@ define([], function() {
CancelButtonText: "Anuluj",
DialogButtonText: "Edytuj szablon",
DialogTitle: "Edytuj szablon wyników",
- SaveButtonText: "Zapisz",
- AllowItemSelection: "Zezwalaj na wybór przedmiotów",
- AllowMultipleItemSelection: "Zezwalaj na wielokrotny wybór",
- SelectionModeLabel: "Tryb wyboru",
- AsTokensSelectionMode: "Przetwarzaj wybrane wartości jako tokeny (tryb ręczny)",
- AsDataFiltersSelectionMode: "Przetwarzaj wybrane wartości jako filtry (tryb domyślny)",
- AsDataFiltersDescription: "W tym trybie wybrane wartości są wysyłane do źródła danych jako zwykłe filtry",
- AsTokensDescription: "W tym trybie wybrane wartości są używane ręcznie za pomocą tokenów i dostępnych metod. Przykład z szablonem zapytania wyszukiwania SharePoint: {?Title:{filters.<destination_field_name>.valueAsText}}",
- FilterValuesOperator: "Operator logiczny do użycia między wybranymi wartościami",
- FieldToConsumeLabel: "Pole źródłowe do wykorzystania",
- FieldToConsumeDescription: "Użyj tej wartości pola dla wybranych elementów"
- }
+ SaveButtonText: "Zapisz"
+ },
+ AllowItemSelection: "Zezwalaj na wybór przedmiotów",
+ AllowMultipleItemSelection: "Zezwalaj na wielokrotny wybór",
+ SelectionModeLabel: "Tryb wyboru",
+ AsTokensSelectionMode: "Przetwarzaj wybrane wartości jako tokeny (tryb ręczny)",
+ AsDataFiltersSelectionMode: "Przetwarzaj wybrane wartości jako filtry (tryb domyślny)",
+ AsDataFiltersDescription: "W tym trybie wybrane wartości są wysyłane do źródła danych jako zwykłe filtry",
+ AsTokensDescription: "W tym trybie wybrane wartości są używane ręcznie za pomocą tokenów i dostępnych metod. Przykład z szablonem zapytania wyszukiwania SharePoint: {?Title:{filters.<destination_field_name>.valueAsText}}",
+ FilterValuesOperator: "Operator logiczny do użycia między wybranymi wartościami",
+ FieldToConsumeLabel: "Pole źródłowe do wykorzystania",
+ FieldToConsumeDescription: "Użyj tej wartości pola dla wybranych elementów"
},
ConnectionsPage: {
ConnectionsPageGroupName: "Dostępne połączenia",
diff --git a/search-parts/src/webparts/searchResults/loc/sv-SE.js b/search-parts/src/webparts/searchResults/loc/sv-SE.js
index 02f1ea1ef..68ae3fe8e 100644
--- a/search-parts/src/webparts/searchResults/loc/sv-SE.js
+++ b/search-parts/src/webparts/searchResults/loc/sv-SE.js
@@ -68,18 +68,18 @@ define([], function() {
CancelButtonText: "Avbryt",
DialogButtonText: "Redigera mall",
DialogTitle: "Redigera resultatmall",
- SaveButtonText: "Spara",
- AllowItemSelection: "Tillåt val av objekt",
- AllowMultipleItemSelection: "Tillåt flera val",
- SelectionModeLabel: "Urvalsläge",
- AsTokensSelectionMode: "Bearbeta valda värden som tokens (manuellt läge)",
- AsDataFiltersSelectionMode: "Bearbeta valda värden som filter (standardläge)",
- AsDataFiltersDescription: "I det här läget skickas valda värden till datakällan som vanliga filter",
- AsTokensDescription: "I det här läget används valda värden manuellt genom tokens och tillgängliga metoder. Exempel med SharePoint-sökfrågemall: {?Title:{filters.<destination_field_name>.valueAsText}}",
- FilterValuesOperator: "Den logiska operatorn att använda mellan valda värden",
- FieldToConsumeLabel: "Källfält att konsumera",
- FieldToConsumeDescription: "Använd detta fältvärde för valda objekt"
- }
+ SaveButtonText: "Spara"
+ },
+ AllowItemSelection: "Tillåt val av objekt",
+ AllowMultipleItemSelection: "Tillåt flera val",
+ SelectionModeLabel: "Urvalsläge",
+ AsTokensSelectionMode: "Bearbeta valda värden som tokens (manuellt läge)",
+ AsDataFiltersSelectionMode: "Bearbeta valda värden som filter (standardläge)",
+ AsDataFiltersDescription: "I det här läget skickas valda värden till datakällan som vanliga filter",
+ AsTokensDescription: "I det här läget används valda värden manuellt genom tokens och tillgängliga metoder. Exempel med SharePoint-sökfrågemall: {?Title:{filters.<destination_field_name>.valueAsText}}",
+ FilterValuesOperator: "Den logiska operatorn att använda mellan valda värden",
+ FieldToConsumeLabel: "Källfält att konsumera",
+ FieldToConsumeDescription: "Använd detta fältvärde för valda objekt"
},
ConnectionsPage: {
ConnectionsPageGroupName: "Tillgängliga anslutningar",
diff --git a/search-parts/src/webparts/searchVerticals/loc/fi-fi.js b/search-parts/src/webparts/searchVerticals/loc/fi-fi.js
new file mode 100644
index 000000000..b969f15c5
--- /dev/null
+++ b/search-parts/src/webparts/searchVerticals/loc/fi-fi.js
@@ -0,0 +1,33 @@
+define([], function() {
+ return {
+ General: {
+ WebPartDefaultTitle: "Hakuvertikaalien webosa",
+ PlaceHolder: {
+ EditLabel: "Muokkaa",
+ IconText: "Pnp Hakuvertikaalien webosa",
+ Description: "Mahdollistaa sisällön selaamisen vertikaalien (siilojen) avulla. Tätä webosaa käytetään yhdistettynä Hakutulosten webosaan sivulla.",
+ ConfigureBtnLabel: "Konfiguroi"
+ }
+ },
+ PropertyPane: {
+ SearchVerticalsGroupName: "Hakuvertikaalien konfiguronti",
+ Verticals: {
+ PropertyLabel: "Hakuvertikaalit",
+ PanelHeader: "Konfiguroi hakuvertikaalit",
+ PanelDescription: "Lisää vertikaali, jotta käyttäjät voivat kohdistaa haun valmiiksi määritettyyn sisältölähteeseen. Vertikaaleilla kontrolloidaan yhdistettyjen hakutuloswebosien näkymistä sivulla.",
+ ButtonLabel: "Konfiguroi hakuvertikaalit",
+ DefaultVerticalQueryStringParamLabel: "URL-osoitteen parametri, jolla määritetään oletuksena valittu vertikaali",
+ DefaultVerticalQueryStringParamDescription: "Parametri yhdistetään vertikaalin nimeen tai sivun URL-osoitteeseen, jos vertikaali on linkki",
+ Fields: {
+ TabName: "Vertikaalin nimi",
+ TabValue: "Vertikaalin arvo",
+ IconName: "Fluent UI ikonin nimi",
+ IsLink: "On linkki",
+ LinkUrl: "Linkin URL",
+ ShowLinkIcon: "Näytä linkin ikoni",
+ OpenBehavior: "Linkin avausmuoto"
+ }
+ }
+ }
+ }
+ });
\ No newline at end of file