@pnp/spfx-controls-react 1.21.1 → 1.21.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.JSON +26 -0
- package/CHANGELOG.md +17 -0
- package/lib/common/telemetry/version.js +1 -1
- package/lib/common/telemetry/version.js.map +1 -1
- package/lib/common/utilities/LocalesHelper.d.ts +5 -0
- package/lib/common/utilities/LocalesHelper.js +76 -0
- package/lib/common/utilities/LocalesHelper.js.map +1 -0
- package/lib/common/utilities/index.d.ts +1 -0
- package/lib/common/utilities/index.js +1 -0
- package/lib/common/utilities/index.js.map +1 -1
- package/lib/controls/accordion/Accordion.module.css +1 -1
- package/lib/controls/accordion/Accordion.module.scss.js +3 -3
- package/lib/controls/accordion/Accordion.module.scss.js.map +1 -1
- package/lib/controls/carousel/Carousel.module.css +1 -1
- package/lib/controls/carousel/Carousel.module.scss.js +35 -35
- package/lib/controls/carousel/Carousel.module.scss.js.map +1 -1
- package/lib/controls/chartControl/ChartControl.module.css +1 -1
- package/lib/controls/chartControl/ChartControl.module.scss.js +3 -3
- package/lib/controls/chartControl/ChartControl.module.scss.js.map +1 -1
- package/lib/controls/dateTimePicker/DateTimePicker.module.css +1 -1
- package/lib/controls/dateTimePicker/DateTimePicker.module.scss.js +10 -10
- package/lib/controls/dateTimePicker/DateTimePicker.module.scss.js.map +1 -1
- package/lib/controls/errorMessage/ErrorMessage.module.css +1 -1
- package/lib/controls/errorMessage/ErrorMessage.module.scss.js +2 -2
- package/lib/controls/errorMessage/ErrorMessage.module.scss.js.map +1 -1
- package/lib/controls/fieldCollectionData/FieldCollectionData.module.css +1 -1
- package/lib/controls/fieldCollectionData/FieldCollectionData.module.scss.js +18 -18
- package/lib/controls/fieldCollectionData/FieldCollectionData.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.css +1 -1
- package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.scss.js +4 -4
- package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.css +1 -1
- package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.scss.js +4 -4
- package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldCommon/FieldRenderer.module.css +1 -1
- package/lib/controls/fields/fieldCommon/FieldRenderer.module.scss.js +3 -3
- package/lib/controls/fields/fieldCommon/FieldRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.css +1 -1
- package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.scss.js +5 -5
- package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.css +1 -1
- package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.scss.js +5 -5
- package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.css +1 -1
- package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.scss.js +9 -9
- package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.css +1 -1
- package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.scss.js +4 -4
- package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.css +1 -1
- package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.scss.js +6 -6
- package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.css +1 -1
- package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.scss.js +5 -5
- package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.css +1 -1
- package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.scss.js +13 -13
- package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.scss.js.map +1 -1
- package/lib/controls/filePicker/FilePicker.module.css +1 -1
- package/lib/controls/filePicker/FilePicker.module.scss.js +38 -38
- package/lib/controls/filePicker/FilePicker.module.scss.js.map +1 -1
- package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.css +1 -1
- package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.scss.js +41 -41
- package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.css +1 -1
- package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.scss.js +38 -38
- package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.css +1 -1
- package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.scss.js +59 -59
- package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.css +1 -1
- package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.scss.js +38 -38
- package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/StockImagesTab/StockImages.module.css +1 -1
- package/lib/controls/filePicker/StockImagesTab/StockImages.module.scss.js +40 -40
- package/lib/controls/filePicker/StockImagesTab/StockImages.module.scss.js.map +1 -1
- package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.css +1 -1
- package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.scss.js +43 -43
- package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.css +1 -1
- package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.scss.js +60 -60
- package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.css +1 -1
- package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.scss.js +7 -7
- package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.css +1 -1
- package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.scss.js +80 -80
- package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.css +1 -1
- package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.scss.js +38 -38
- package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.css +1 -1
- package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.scss.js +76 -76
- package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/TilesList/TilesList.module.css +1 -1
- package/lib/controls/filePicker/controls/TilesList/TilesList.module.scss.js +70 -70
- package/lib/controls/filePicker/controls/TilesList/TilesList.module.scss.js.map +1 -1
- package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.css +1 -1
- package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.scss.js +5 -5
- package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.scss.js.map +1 -1
- package/lib/controls/folderExplorer/NewFolder/NewFolder.module.css +1 -1
- package/lib/controls/folderExplorer/NewFolder/NewFolder.module.scss.js +5 -5
- package/lib/controls/folderExplorer/NewFolder/NewFolder.module.scss.js.map +1 -1
- package/lib/controls/folderPicker/FolderPicker.module.css +1 -1
- package/lib/controls/folderPicker/FolderPicker.module.scss.js +7 -7
- package/lib/controls/folderPicker/FolderPicker.module.scss.js.map +1 -1
- package/lib/controls/gridLayout/GridLayout.module.css +1 -1
- package/lib/controls/gridLayout/GridLayout.module.scss.js +2 -2
- package/lib/controls/gridLayout/GridLayout.module.scss.js.map +1 -1
- package/lib/controls/iFrameDialog/IFrameDialogContent.module.css +1 -1
- package/lib/controls/iFrameDialog/IFrameDialogContent.module.scss.js +2 -2
- package/lib/controls/iFrameDialog/IFrameDialogContent.module.scss.js.map +1 -1
- package/lib/controls/iFramePanel/IFramePanelContent.module.css +1 -1
- package/lib/controls/iFramePanel/IFramePanelContent.module.scss.js +2 -2
- package/lib/controls/iFramePanel/IFramePanelContent.module.scss.js.map +1 -1
- package/lib/controls/iconPicker/IconPicker.module.css +1 -1
- package/lib/controls/iconPicker/IconPicker.module.scss.js +21 -21
- package/lib/controls/iconPicker/IconPicker.module.scss.js.map +1 -1
- package/lib/controls/listItemAttachments/ListItemAttachments.module.css +1 -1
- package/lib/controls/listItemAttachments/ListItemAttachments.module.scss.js +6 -6
- package/lib/controls/listItemAttachments/ListItemAttachments.module.scss.js.map +1 -1
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.js +6 -3
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.js.map +1 -1
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.css +1 -0
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.d.ts +5 -0
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.js +12 -0
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.js.map +1 -0
- package/lib/controls/listItemPicker/IComboBoxListItemPickerProps.d.ts +1 -0
- package/lib/controls/listItemPicker/IListItemPickerProps.d.ts +1 -0
- package/lib/controls/listItemPicker/ListItemPicker.d.ts +1 -0
- package/lib/controls/listItemPicker/ListItemPicker.js +18 -13
- package/lib/controls/listItemPicker/ListItemPicker.js.map +1 -1
- package/lib/controls/listPicker/ListPicker.module.css +1 -1
- package/lib/controls/listPicker/ListPicker.module.scss.js +2 -2
- package/lib/controls/listPicker/ListPicker.module.scss.js.map +1 -1
- package/lib/controls/listView/ListView.DragDrop.module.css +1 -1
- package/lib/controls/listView/ListView.DragDrop.module.scss.js +3 -3
- package/lib/controls/listView/ListView.DragDrop.module.scss.js.map +1 -1
- package/lib/controls/listView/ListView.js.map +1 -1
- package/lib/controls/map/Maps.module.css +1 -1
- package/lib/controls/map/Maps.module.scss.js +6 -6
- package/lib/controls/map/Maps.module.scss.js.map +1 -1
- package/lib/controls/pagination/Pagination.module.css +1 -1
- package/lib/controls/pagination/Pagination.module.scss.js +2 -2
- package/lib/controls/pagination/Pagination.module.scss.js.map +1 -1
- package/lib/controls/peoplepicker/PeoplePickerComponent.module.css +1 -1
- package/lib/controls/peoplepicker/PeoplePickerComponent.module.scss.js +3 -3
- package/lib/controls/peoplepicker/PeoplePickerComponent.module.scss.js.map +1 -1
- package/lib/controls/placeholder/PlaceholderComponent.module.css +1 -1
- package/lib/controls/placeholder/PlaceholderComponent.module.scss.js +9 -9
- package/lib/controls/placeholder/PlaceholderComponent.module.scss.js.map +1 -1
- package/lib/controls/progress/Progress.module.css +1 -1
- package/lib/controls/progress/Progress.module.scss.js +19 -19
- package/lib/controls/progress/Progress.module.scss.js.map +1 -1
- package/lib/controls/richText/RichText.module.css +1 -1
- package/lib/controls/richText/RichText.module.scss.js +17 -17
- package/lib/controls/richText/RichText.module.scss.js.map +1 -1
- package/lib/controls/richText/RichTextPropertyPane.module.css +1 -1
- package/lib/controls/richText/RichTextPropertyPane.module.scss.js +8 -8
- package/lib/controls/richText/RichTextPropertyPane.module.scss.js.map +1 -1
- package/lib/controls/richText/RteColorPicker.module.css +1 -1
- package/lib/controls/richText/RteColorPicker.module.scss.js +17 -17
- package/lib/controls/richText/RteColorPicker.module.scss.js.map +1 -1
- package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.css +1 -1
- package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.scss.js +2 -2
- package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.scss.js.map +1 -1
- package/lib/controls/taxonomyPicker/ITaxonomyPicker.d.ts +14 -0
- package/lib/controls/taxonomyPicker/TaxonomyPicker.d.ts +1 -0
- package/lib/controls/taxonomyPicker/TaxonomyPicker.js +107 -23
- package/lib/controls/taxonomyPicker/TaxonomyPicker.js.map +1 -1
- package/lib/controls/taxonomyPicker/TaxonomyPicker.module.css +1 -1
- package/lib/controls/taxonomyPicker/TaxonomyPicker.module.scss.js +21 -21
- package/lib/controls/taxonomyPicker/TaxonomyPicker.module.scss.js.map +1 -1
- package/lib/controls/treeView/TreeView.module.css +1 -1
- package/lib/controls/treeView/TreeView.module.scss.js +17 -17
- package/lib/controls/treeView/TreeView.module.scss.js.map +1 -1
- package/lib/controls/webPartTitle/WebPartTitle.module.css +1 -1
- package/lib/controls/webPartTitle/WebPartTitle.module.scss.js +3 -3
- package/lib/controls/webPartTitle/WebPartTitle.module.scss.js.map +1 -1
- package/lib/loc/bg-bg.js +8 -30
- package/lib/loc/bg-bg.js.map +1 -1
- package/lib/loc/ca-es.js +10 -32
- package/lib/loc/ca-es.js.map +1 -1
- package/lib/loc/da-dk.js +11 -33
- package/lib/loc/da-dk.js.map +1 -1
- package/lib/loc/de-de.js +1 -23
- package/lib/loc/de-de.js.map +1 -1
- package/lib/loc/el-gr.js +7 -29
- package/lib/loc/el-gr.js.map +1 -1
- package/lib/loc/es-es.js +1 -23
- package/lib/loc/es-es.js.map +1 -1
- package/lib/loc/et-ee.js +8 -30
- package/lib/loc/et-ee.js.map +1 -1
- package/lib/loc/fi-fi.js +8 -30
- package/lib/loc/fi-fi.js.map +1 -1
- package/lib/loc/fr-fr.js +12 -34
- package/lib/loc/fr-fr.js.map +1 -1
- package/lib/loc/it-it.js +3 -25
- package/lib/loc/it-it.js.map +1 -1
- package/lib/loc/ja-jp.js +10 -32
- package/lib/loc/ja-jp.js.map +1 -1
- package/lib/loc/lt-lt.js +2 -24
- package/lib/loc/lt-lt.js.map +1 -1
- package/lib/loc/lv-lv.js +10 -32
- package/lib/loc/lv-lv.js.map +1 -1
- package/lib/loc/nb-no.js +9 -31
- package/lib/loc/nb-no.js.map +1 -1
- package/lib/loc/nl-nl.js +9 -31
- package/lib/loc/nl-nl.js.map +1 -1
- package/lib/loc/pl-pl.js +7 -29
- package/lib/loc/pl-pl.js.map +1 -1
- package/lib/loc/pt-pt.js +3 -25
- package/lib/loc/pt-pt.js.map +1 -1
- package/lib/loc/ro-ro.js +9 -31
- package/lib/loc/ro-ro.js.map +1 -1
- package/lib/loc/ru-ru.js +1 -23
- package/lib/loc/ru-ru.js.map +1 -1
- package/lib/loc/sk-sk.js +15 -37
- package/lib/loc/sk-sk.js.map +1 -1
- package/lib/loc/sr-latn-rs.js +3 -25
- package/lib/loc/sr-latn-rs.js.map +1 -1
- package/lib/loc/sv-se.js +11 -33
- package/lib/loc/sv-se.js.map +1 -1
- package/lib/loc/tr-tr.js +1 -23
- package/lib/loc/tr-tr.js.map +1 -1
- package/lib/loc/vi-vn.js +11 -33
- package/lib/loc/vi-vn.js.map +1 -1
- package/lib/loc/zh-cn.js +1 -23
- package/lib/loc/zh-cn.js.map +1 -1
- package/lib/loc/zh-tw.js +1 -23
- package/lib/loc/zh-tw.js.map +1 -1
- package/lib/services/SPTermStorePickerService.d.ts +3 -3
- package/lib/services/SPTermStorePickerService.js +46 -15
- package/lib/services/SPTermStorePickerService.js.map +1 -1
- package/package.json +3 -1
- package/sonar-project.properties +0 -3
|
@@ -46,6 +46,7 @@ var sp_core_library_1 = require("@microsoft/sp-core-library");
|
|
|
46
46
|
var SPTermStorePickerMockService_1 = require("./SPTermStorePickerMockService");
|
|
47
47
|
var sp_lodash_subset_1 = require("@microsoft/sp-lodash-subset");
|
|
48
48
|
var Constants_1 = require("../common/Constants");
|
|
49
|
+
var LocalesHelper_1 = require("../common/utilities/LocalesHelper");
|
|
49
50
|
/**
|
|
50
51
|
* Service implementation to manage term stores in SharePoint
|
|
51
52
|
*/
|
|
@@ -186,7 +187,8 @@ var SPTermStorePickerService = (function () {
|
|
|
186
187
|
* Retrieve all terms for the given term set
|
|
187
188
|
* @param termset
|
|
188
189
|
*/
|
|
189
|
-
SPTermStorePickerService.prototype.getAllTerms = function (termset, hideDeprecatedTags, hideTagsNotAvailableForTagging) {
|
|
190
|
+
SPTermStorePickerService.prototype.getAllTerms = function (termset, hideDeprecatedTags, hideTagsNotAvailableForTagging, useSessionStorage) {
|
|
191
|
+
if (useSessionStorage === void 0) { useSessionStorage = true; }
|
|
190
192
|
return __awaiter(this, void 0, void 0, function () {
|
|
191
193
|
var _this = this;
|
|
192
194
|
var termsetId_1, termStore, crntTermSet, childTerms, data, reqHeaders, httpPostOptions;
|
|
@@ -211,7 +213,7 @@ var SPTermStorePickerService = (function () {
|
|
|
211
213
|
}
|
|
212
214
|
_a.label = 3;
|
|
213
215
|
case 3:
|
|
214
|
-
childTerms = this.getTermsById(termsetId_1);
|
|
216
|
+
childTerms = this.getTermsById(termsetId_1, useSessionStorage);
|
|
215
217
|
if (childTerms) {
|
|
216
218
|
return [2 /*return*/, childTerms];
|
|
217
219
|
}
|
|
@@ -263,7 +265,14 @@ var SPTermStorePickerService = (function () {
|
|
|
263
265
|
termStoreResultTermSet.Terms = terms;
|
|
264
266
|
}
|
|
265
267
|
}
|
|
266
|
-
|
|
268
|
+
try {
|
|
269
|
+
if (useSessionStorage && window.sessionStorage) {
|
|
270
|
+
window.sessionStorage.setItem(termsetId_1, JSON.stringify(termStoreResultTermSet));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
// Do nothing, sometimes storage quota exceed error if too many items
|
|
275
|
+
}
|
|
267
276
|
return termStoreResultTermSet;
|
|
268
277
|
}
|
|
269
278
|
return null;
|
|
@@ -314,12 +323,24 @@ var SPTermStorePickerService = (function () {
|
|
|
314
323
|
return this.searchTermsByTermSet(searchText);
|
|
315
324
|
}
|
|
316
325
|
};
|
|
317
|
-
SPTermStorePickerService.prototype.getTermsById = function (termId) {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
326
|
+
SPTermStorePickerService.prototype.getTermsById = function (termId, useSessionStorage) {
|
|
327
|
+
if (useSessionStorage === void 0) { useSessionStorage = true; }
|
|
328
|
+
try {
|
|
329
|
+
if (useSessionStorage && window.sessionStorage) {
|
|
330
|
+
var terms = window.sessionStorage.getItem(termId);
|
|
331
|
+
if (terms)
|
|
332
|
+
return JSON.parse(terms);
|
|
333
|
+
else {
|
|
334
|
+
return null;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
322
342
|
return null;
|
|
343
|
+
}
|
|
323
344
|
};
|
|
324
345
|
SPTermStorePickerService.prototype.searchTermsBySearchText = function (terms, searchText) {
|
|
325
346
|
if (terms) {
|
|
@@ -330,7 +351,7 @@ var SPTermStorePickerService = (function () {
|
|
|
330
351
|
};
|
|
331
352
|
SPTermStorePickerService.prototype.searchTermsByTermId = function (searchText, termId) {
|
|
332
353
|
return __awaiter(this, void 0, void 0, function () {
|
|
333
|
-
var childTerms, _a, termsetNameOrID, hideDeprecatedTags, hideTagsNotAvailableForTagging, terms;
|
|
354
|
+
var useSessionStorage, childTerms, _a, termsetNameOrID, hideDeprecatedTags, hideTagsNotAvailableForTagging, terms;
|
|
334
355
|
return __generator(this, function (_b) {
|
|
335
356
|
switch (_b.label) {
|
|
336
357
|
case 0:
|
|
@@ -338,12 +359,13 @@ var SPTermStorePickerService = (function () {
|
|
|
338
359
|
// If the running environment is local, load the data from the mock
|
|
339
360
|
return [2 /*return*/, SPTermStorePickerMockService_1.default.searchTermsByName(searchText)];
|
|
340
361
|
case 1:
|
|
341
|
-
|
|
362
|
+
useSessionStorage = this.props.useSessionStorage;
|
|
363
|
+
childTerms = this.getTermsById(termId, useSessionStorage);
|
|
342
364
|
if (!childTerms) return [3 /*break*/, 2];
|
|
343
365
|
return [2 /*return*/, this.searchTermsBySearchText(childTerms, searchText)];
|
|
344
366
|
case 2:
|
|
345
367
|
_a = this.props, termsetNameOrID = _a.termsetNameOrID, hideDeprecatedTags = _a.hideDeprecatedTags, hideTagsNotAvailableForTagging = _a.hideTagsNotAvailableForTagging;
|
|
346
|
-
return [4 /*yield*/, this.getAllTermsByAnchorId(termsetNameOrID, termId, hideDeprecatedTags, hideTagsNotAvailableForTagging)];
|
|
368
|
+
return [4 /*yield*/, this.getAllTermsByAnchorId(termsetNameOrID, termId, hideDeprecatedTags, hideTagsNotAvailableForTagging, useSessionStorage)];
|
|
347
369
|
case 3:
|
|
348
370
|
terms = _b.sent();
|
|
349
371
|
if (terms) {
|
|
@@ -358,7 +380,8 @@ var SPTermStorePickerService = (function () {
|
|
|
358
380
|
/**
|
|
359
381
|
* Retrieve all terms for the given term set and anchorId
|
|
360
382
|
*/
|
|
361
|
-
SPTermStorePickerService.prototype.getAllTermsByAnchorId = function (termsetNameOrID, anchorId, hideDeprecatedTags, hideTagsNotAvailableForTagging) {
|
|
383
|
+
SPTermStorePickerService.prototype.getAllTermsByAnchorId = function (termsetNameOrID, anchorId, hideDeprecatedTags, hideTagsNotAvailableForTagging, useSessionStorage) {
|
|
384
|
+
if (useSessionStorage === void 0) { useSessionStorage = true; }
|
|
362
385
|
return __awaiter(this, void 0, void 0, function () {
|
|
363
386
|
var _this = this;
|
|
364
387
|
var returnTerms, terms, childTerms, termSet, terms, anchorTerm_1, anchorTermPath_1, anchorTerms;
|
|
@@ -375,7 +398,7 @@ var SPTermStorePickerService = (function () {
|
|
|
375
398
|
});
|
|
376
399
|
return [3 /*break*/, 4];
|
|
377
400
|
case 2:
|
|
378
|
-
childTerms = this.getTermsById(anchorId);
|
|
401
|
+
childTerms = this.getTermsById(anchorId, useSessionStorage);
|
|
379
402
|
if (childTerms) {
|
|
380
403
|
return [2 /*return*/, childTerms];
|
|
381
404
|
}
|
|
@@ -391,7 +414,14 @@ var SPTermStorePickerService = (function () {
|
|
|
391
414
|
anchorTerms.forEach(function (term) {
|
|
392
415
|
returnTerms.push(_this.convertTermToPickerTerm(term));
|
|
393
416
|
});
|
|
394
|
-
|
|
417
|
+
try {
|
|
418
|
+
if (useSessionStorage && window.sessionStorage) {
|
|
419
|
+
window.sessionStorage.setItem(anchorId, JSON.stringify(returnTerms));
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
catch (error) {
|
|
423
|
+
// Do nothing
|
|
424
|
+
}
|
|
395
425
|
}
|
|
396
426
|
}
|
|
397
427
|
else {
|
|
@@ -435,9 +465,10 @@ var SPTermStorePickerService = (function () {
|
|
|
435
465
|
resolve(null);
|
|
436
466
|
return;
|
|
437
467
|
}
|
|
468
|
+
var loc = LocalesHelper_1.LocalesHelper.getLocaleId(_this.context.pageContext.cultureInfo.currentUICultureName);
|
|
438
469
|
var data = {
|
|
439
470
|
start: searchText,
|
|
440
|
-
lcid: _this.context.pageContext.web.language,
|
|
471
|
+
lcid: loc !== 0 ? loc : _this.context.pageContext.web.language,
|
|
441
472
|
sspList: _this.cleanGuid(termStore[0].Id),
|
|
442
473
|
termSetList: TermSetId,
|
|
443
474
|
anchorId: _this.props.anchorId ? _this.props.anchorId : Constants_1.EmptyGuid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["services/SPTermStorePickerService.ts"],"names":[],"mappings":"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","file":"services/SPTermStorePickerService.js","sourcesContent":["/**\n * DISCLAIMER\n *\n * As there is not yet an OData end-point for managed metadata, this service makes use of the ProcessQuery end-points.\n * The service will get updated once the APIs are in place for managing managed metadata.\n */\n\nimport { SPHttpClient, SPHttpClientResponse, ISPHttpClientOptions } from '@microsoft/sp-http';\nimport { Environment, EnvironmentType } from '@microsoft/sp-core-library';\nimport { IWebPartContext } from '@microsoft/sp-webpart-base';\nimport { ITaxonomyPickerProps } from '../controls/taxonomyPicker/ITaxonomyPicker';\nimport { IPickerTerm } from '../controls/taxonomyPicker/ITermPicker';\nimport { ITermStore, ITerms, ITerm, IGroup, ITermSet, ISuggestTerm } from './ISPTermStorePickerService';\nimport SPTermStoreMockHttpClient from './SPTermStorePickerMockService';\nimport { findIndex } from '@microsoft/sp-lodash-subset';\nimport { ExtensionContext } from '@microsoft/sp-extension-base';\nimport { EmptyGuid } from '../common/Constants';\n\n\n/**\n * Service implementation to manage term stores in SharePoint\n */\nexport default class SPTermStorePickerService {\n private taxonomySession: string;\n private formDigest: string;\n private clientServiceUrl: string;\n private suggestionServiceUrl: string;\n\n /**\n * Service constructor\n */\n constructor(private props: ITaxonomyPickerProps, private context: IWebPartContext | ExtensionContext) {\n if (Environment.type !== EnvironmentType.Local) {\n {\n this.clientServiceUrl = this.context.pageContext.web.absoluteUrl + '/_vti_bin/client.svc/ProcessQuery';\n this.suggestionServiceUrl = this.context.pageContext.web.absoluteUrl + \t\"/_vti_bin/TaxonomyInternalService.json/GetSuggestions\";\n }\n }\n }\n\n public async getTermLabels(termId: string): Promise<string[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return null;\n }\n\n let result = null;\n try {\n const data = `<Request AddExpandoFieldTypeSuffix=\"true\" SchemaVersion=\"15.0.0.0\" LibraryVersion=\"16.0.0.0\" ApplicationName=\".NET Library\" xmlns=\"http://schemas.microsoft.com/sharepoint/clientquery/2009\"><Actions><ObjectPath Id=\"8\" ObjectPathId=\"7\" /><ObjectIdentityQuery Id=\"9\" ObjectPathId=\"7\" /><ObjectPath Id=\"11\" ObjectPathId=\"10\" /><ObjectIdentityQuery Id=\"12\" ObjectPathId=\"10\" /><ObjectPath Id=\"14\" ObjectPathId=\"13\" /><ObjectIdentityQuery Id=\"15\" ObjectPathId=\"13\" /><Query Id=\"16\" ObjectPathId=\"13\"><Query SelectAllProperties=\"false\"><Properties><Property Name=\"Labels\" SelectAll=\"true\"><Query SelectAllProperties=\"false\"><Properties /></Query></Property></Properties></Query></Query></Actions><ObjectPaths><StaticMethod Id=\"7\" Name=\"GetTaxonomySession\" TypeId=\"{981cbc68-9edc-4f8d-872f-71146fcbb84f}\" /><Method Id=\"10\" ParentId=\"7\" Name=\"GetDefaultKeywordsTermStore\" /><Method Id=\"13\" ParentId=\"10\" Name=\"GetTerm\"><Parameters><Parameter Type=\"Guid\">${termId}</Parameter></Parameters></Method></ObjectPaths></Request>`;\n\n const reqHeaders = new Headers();\n reqHeaders.append(\"accept\", \"application/json\");\n reqHeaders.append(\"content-type\", \"application/xml\");\n\n const httpPostOptions: ISPHttpClientOptions = {\n headers: reqHeaders,\n body: data\n };\n\n const callResult = await this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions);\n const jsonResult = await callResult.json();\n\n let node = jsonResult.find(x => x._ObjectType_ == \"SP.Taxonomy.Term\");\n if (node && node.Labels && node.Labels._Child_Items_) {\n result = node.Labels._Child_Items_.map(termLabel => termLabel.Value);\n }\n } catch (error) {\n result = null;\n console.log(error.message);\n }\n return result;\n }\n\n /**\n * Gets the collection of term stores in the current SharePoint env\n */\n public getTermStores(): Promise<ITermStore[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return this.getTermStoresFromMock();\n } else {\n // Retrieve the term store name, groups, and term sets\n const data = '<Request AddExpandoFieldTypeSuffix=\"true\" SchemaVersion=\"15.0.0.0\" LibraryVersion=\"16.0.0.0\" ApplicationName=\".NET Library\" xmlns=\"http://schemas.microsoft.com/sharepoint/clientquery/2009\"><Actions><ObjectPath Id=\"2\" ObjectPathId=\"1\" /><ObjectIdentityQuery Id=\"3\" ObjectPathId=\"1\" /><ObjectPath Id=\"5\" ObjectPathId=\"4\" /><ObjectIdentityQuery Id=\"6\" ObjectPathId=\"4\" /><Query Id=\"7\" ObjectPathId=\"4\"><Query SelectAllProperties=\"false\"><Properties><Property Name=\"Id\" ScalarProperty=\"true\" /><Property Name=\"Name\" ScalarProperty=\"true\" /><Property Name=\"Groups\"><Query SelectAllProperties=\"false\"><Properties /></Query><ChildItemQuery SelectAllProperties=\"false\"><Properties><Property Name=\"Name\" ScalarProperty=\"true\" /><Property Name=\"Id\" ScalarProperty=\"true\" /><Property Name=\"IsSystemGroup\" ScalarProperty=\"true\" /><Property Name=\"TermSets\"><Query SelectAllProperties=\"false\"><Properties /></Query><ChildItemQuery SelectAllProperties=\"false\"><Properties><Property Name=\"Name\" ScalarProperty=\"true\" /><Property Name=\"Id\" ScalarProperty=\"true\" /><Property Name=\"Description\" ScalarProperty=\"true\" /><Property Name=\"Names\" ScalarProperty=\"true\" /></Properties></ChildItemQuery></Property></Properties></ChildItemQuery></Property></Properties></Query></Query></Actions><ObjectPaths><StaticMethod Id=\"1\" Name=\"GetTaxonomySession\" TypeId=\"{981cbc68-9edc-4f8d-872f-71146fcbb84f}\" /><Method Id=\"4\" ParentId=\"1\" Name=\"GetDefaultSiteCollectionTermStore\" /></ObjectPaths></Request>';\n\n const reqHeaders = new Headers();\n reqHeaders.append(\"accept\", \"application/json\");\n reqHeaders.append(\"content-type\", \"application/xml\");\n\n const httpPostOptions: ISPHttpClientOptions = {\n headers: reqHeaders,\n body: data\n };\n\n return this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => {\n return serviceResponse.json().then((serviceJSONResponse: any) => {\n // Construct results\n let termStoreResult: ITermStore[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermStore');\n // Check if term store was retrieved\n if (termStoreResult.length > 0) {\n // Check if the termstore needs to be filtered or limited\n if (this.props.termsetNameOrID) {\n return termStoreResult.map(termstore => {\n let termGroups = termstore.Groups._Child_Items_;\n\n // Check if the groups have to be limited to a specific term set\n if (this.props.termsetNameOrID) {\n const termsetNameOrId = this.props.termsetNameOrID;\n termGroups = termGroups.map((group: IGroup) => {\n group.TermSets._Child_Items_ = group.TermSets._Child_Items_.filter((termSet: ITermSet) => termSet.Name === termsetNameOrId || this.cleanGuid(termSet.Id).toLowerCase() === this.cleanGuid(termsetNameOrId).toLowerCase());\n return group;\n });\n }\n\n // Filter out all systen groups\n termGroups = termGroups.filter(group => !group.IsSystemGroup);\n\n // Filter out empty groups\n termGroups = termGroups.filter((group: IGroup) => group.TermSets._Child_Items_.length > 0);\n\n // Map the new groups\n termstore.Groups._Child_Items_ = termGroups;\n return termstore;\n });\n }\n\n // Return the term store results\n return termStoreResult;\n }\n return [];\n });\n });\n }\n }\n\n /**\n * Gets the current term set\n */\n public async getTermSet(): Promise<ITermSet> {\n if (Environment.type === EnvironmentType.Local) {\n const termSetInfo = await SPTermStoreMockHttpClient.getAllTerms();\n return termSetInfo;\n } else {\n const termStore = await this.getTermStores();\n return this.getTermSetId(termStore, this.props.termsetNameOrID);\n }\n }\n\n /**\n * Retrieve all terms for the given term set\n * @param termset\n */\n public async getAllTerms(termset: string, hideDeprecatedTags?: boolean, hideTagsNotAvailableForTagging?: boolean): Promise<ITermSet> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return this.getAllMockTerms();\n } else {\n let termsetId: string = termset;\n // Check if the provided term set property is a GUID or string\n if (!this.isGuid(termset)) {\n // Fetch the term store information\n const termStore = await this.getTermStores();\n // Get the ID of the provided term set name\n const crntTermSet = this.getTermSetId(termStore, termset);\n if (crntTermSet) {\n termsetId = this.cleanGuid(crntTermSet.Id);\n } else {\n return null;\n }\n }\n\n let childTerms = this.getTermsById(termsetId);\n\n if (childTerms) {\n return childTerms;\n }\n\n // Request body to retrieve all terms for the given term set\n const data = `<Request xmlns=\"http://schemas.microsoft.com/sharepoint/clientquery/2009\" SchemaVersion=\"15.0.0.0\" LibraryVersion=\"16.0.0.0\" ApplicationName=\"Javascript Library\"><Actions><ObjectPath Id=\"1\" ObjectPathId=\"0\" /><ObjectIdentityQuery Id=\"2\" ObjectPathId=\"0\" /><ObjectPath Id=\"4\" ObjectPathId=\"3\" /><ObjectIdentityQuery Id=\"5\" ObjectPathId=\"3\" /><ObjectPath Id=\"7\" ObjectPathId=\"6\" /><ObjectIdentityQuery Id=\"8\" ObjectPathId=\"6\" /><ObjectPath Id=\"10\" ObjectPathId=\"9\" /><Query Id=\"11\" ObjectPathId=\"6\"><Query SelectAllProperties=\"true\"><Properties /></Query></Query><Query Id=\"12\" ObjectPathId=\"9\"><Query SelectAllProperties=\"false\"><Properties /></Query><ChildItemQuery SelectAllProperties=\"false\"><Properties><Property Name=\"IsRoot\" SelectAll=\"true\" /><Property Name=\"Labels\" SelectAll=\"true\" /><Property Name=\"TermsCount\" SelectAll=\"true\" /><Property Name=\"CustomSortOrder\" SelectAll=\"true\" /><Property Name=\"Id\" SelectAll=\"true\" /><Property Name=\"Name\" SelectAll=\"true\" /><Property Name=\"PathOfTerm\" SelectAll=\"true\" /><Property Name=\"Parent\" SelectAll=\"true\" /><Property Name=\"LocalCustomProperties\" SelectAll=\"true\" /><Property Name=\"IsDeprecated\" ScalarProperty=\"true\" /><Property Name=\"IsAvailableForTagging\" ScalarProperty=\"true\" /></Properties></ChildItemQuery></Query></Actions><ObjectPaths><StaticMethod Id=\"0\" Name=\"GetTaxonomySession\" TypeId=\"{981cbc68-9edc-4f8d-872f-71146fcbb84f}\" /><Method Id=\"3\" ParentId=\"0\" Name=\"GetDefaultKeywordsTermStore\" /><Method Id=\"6\" ParentId=\"3\" Name=\"GetTermSet\"><Parameters><Parameter Type=\"Guid\">${termsetId}</Parameter></Parameters></Method><Method Id=\"9\" ParentId=\"6\" Name=\"GetAllTerms\" /></ObjectPaths></Request>`;\n\n\n const reqHeaders = new Headers();\n reqHeaders.append(\"accept\", \"application/json\");\n reqHeaders.append(\"content-type\", \"application/xml\");\n\n const httpPostOptions: ISPHttpClientOptions = {\n headers: reqHeaders,\n body: data\n };\n\n return this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => {\n return serviceResponse.json().then((serviceJSONResponse: any) => {\n const termStoreResultTermSets: ITermSet[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermSet');\n\n if (termStoreResultTermSets.length > 0) {\n var termStoreResultTermSet = termStoreResultTermSets[0];\n termStoreResultTermSet.Terms = [];\n // Retrieve the term collection results\n const termStoreResultTerms: ITerms[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermCollection');\n if (termStoreResultTerms.length > 0) {\n // Retrieve all terms\n let terms = termStoreResultTerms[0]._Child_Items_;\n\n if (hideDeprecatedTags === true) {\n terms = terms.filter(d => d[\"IsDeprecated\"] === false);\n }\n\n if (hideTagsNotAvailableForTagging === true) {\n terms = terms.filter(d => d[\"IsAvailableForTagging\"] === true);\n }\n\n // Clean the term ID and specify the path depth\n terms = terms.map(term => {\n if (term.IsRoot) {\n term.CustomSortOrderIndex = (termStoreResultTermSet.CustomSortOrder) ? termStoreResultTermSet.CustomSortOrder.split(\":\").indexOf(this.cleanGuid(term.Id)) : -1;\n } else {\n term.CustomSortOrderIndex = (term[\"Parent\"].CustomSortOrder) ? term[\"Parent\"].CustomSortOrder.split(\":\").indexOf(this.cleanGuid(term.Id)) : -1;\n }\n term.Id = this.cleanGuid(term.Id);\n term['PathDepth'] = term.PathOfTerm.split(';').length;\n term.TermSet = { Id: this.cleanGuid(termStoreResultTermSet.Id), Name: termStoreResultTermSet.Name };\n if (term[\"Parent\"]) {\n term.ParentId = this.cleanGuid(term[\"Parent\"].Id);\n }\n return term;\n });\n // Check if the term set was not empty\n if (terms.length > 0) {\n // Sort the terms by PathOfTerm and their depth\n terms = this.sortTerms(terms);\n termStoreResultTermSet.Terms = terms;\n }\n }\n\n sessionStorage.setItem(termsetId, JSON.stringify(termStoreResultTermSet));\n return termStoreResultTermSet;\n }\n return null;\n });\n });\n }\n }\n\n /**\n * Get the term set ID by its name\n * @param termstore\n * @param termset\n */\n private getTermSetId(termstore: ITermStore[], termsetName: string): ITermSet {\n if (termstore && termstore.length > 0 && termsetName) {\n // Get the first term store\n const ts = termstore[0];\n // Check if the term store contains groups\n if (ts.Groups && ts.Groups._Child_Items_) {\n for (const group of ts.Groups._Child_Items_) {\n // Check if the group contains term sets\n if (group.TermSets && group.TermSets._Child_Items_) {\n for (const termSet of group.TermSets._Child_Items_) {\n // Check if the term set is found\n if (termSet.Name === termsetName) {\n return termSet;\n }\n }\n }\n }\n }\n }\n\n return null;\n }\n\n\n /**\n * Retrieve all terms that starts with the searchText\n * @param searchText\n */\n public searchTermsByName(searchText: string): Promise<IPickerTerm[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return SPTermStoreMockHttpClient.searchTermsByName(searchText);\n } else {\n return this.searchTermsByTermSet(searchText);\n }\n }\n\n private getTermsById(termId) {\n var terms = sessionStorage.getItem(termId);\n if (terms)\n return JSON.parse(terms);\n else\n return null;\n }\n\n private searchTermsBySearchText(terms, searchText) {\n if (terms) {\n return terms.filter((t) => { return t.name.toLowerCase().indexOf(searchText.toLowerCase()) > -1; });\n }\n else\n return [];\n }\n\n public async searchTermsByTermId(searchText: string, termId: string): Promise<IPickerTerm[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return SPTermStoreMockHttpClient.searchTermsByName(searchText);\n } else {\n var childTerms = this.getTermsById(termId);\n if (childTerms) {\n return this.searchTermsBySearchText(childTerms, searchText);\n }\n else {\n const {\n termsetNameOrID,\n hideDeprecatedTags,\n hideTagsNotAvailableForTagging\n } = this.props;\n\n const terms = await this.getAllTermsByAnchorId(\n termsetNameOrID,\n termId,\n hideDeprecatedTags,\n hideTagsNotAvailableForTagging);\n\n if (terms) {\n return this.searchTermsBySearchText(terms, searchText);\n }\n }\n\n return null;\n }\n }\n\n /**\n * Retrieve all terms for the given term set and anchorId\n */\n public async getAllTermsByAnchorId(termsetNameOrID: string, anchorId: string, hideDeprecatedTags?: boolean, hideTagsNotAvailableForTagging?: boolean): Promise<IPickerTerm[]> {\n\n let returnTerms: IPickerTerm[] = [];\n\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n let terms = await this.getAllMockTermsByAnchor();\n terms.forEach(term => {\n returnTerms.push(this.convertTermToPickerTerm(term));\n });\n } else {\n const childTerms = this.getTermsById(anchorId);\n if (childTerms) {\n return childTerms;\n }\n\n let termSet = await this.getAllTerms(termsetNameOrID, hideDeprecatedTags, hideTagsNotAvailableForTagging);\n let terms = termSet.Terms;\n if (anchorId) {\n const anchorTerm = terms.filter(t => t.Id.toLowerCase() === anchorId.toLowerCase()).shift();\n if (anchorTerm) {\n // Append ';' separator, as a suffix to anchor term path.\n const anchorTermPath = `${anchorTerm.PathOfTerm};`;\n const anchorTerms: ITerm[] = terms.filter(t => t.PathOfTerm.substring(0, anchorTermPath.length) === anchorTermPath && t.Id !== anchorTerm.Id);\n\n anchorTerms.forEach(term => {\n returnTerms.push(this.convertTermToPickerTerm(term));\n });\n\n sessionStorage.setItem(anchorId, JSON.stringify(returnTerms));\n }\n } else {\n terms.forEach(term => {\n returnTerms.push(this.convertTermToPickerTerm(term));\n });\n }\n }\n\n return returnTerms;\n }\n\n /**\n * Searches terms for the given term set\n * @param searchText\n * @param termsetId\n */\n private searchTermsByTermSet(searchText: string): Promise<IPickerTerm[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return SPTermStoreMockHttpClient.searchTermsByName(searchText);\n } else {\n return new Promise<IPickerTerm[]>(resolve => {\n this.getTermStores().then(termStore => {\n let TermSetId = this.props.termsetNameOrID;\n if (!this.isGuid(TermSetId)) {\n // Get the ID of the provided term set name\n const crntTermSet = this.getTermSetId(termStore, TermSetId);\n if (crntTermSet) {\n TermSetId = this.cleanGuid(crntTermSet.Id);\n } else {\n resolve(null);\n return;\n }\n }\n if (termStore === undefined || termStore.length === 0) {\n resolve(null);\n return;\n }\n\n let data = {\n start: searchText,\n lcid : this.context.pageContext.web.language, // TODO : get the user's navitation LCID. Here it's the default web language LCID\n sspList: this.cleanGuid(termStore[0].Id),\n termSetList: TermSetId,\n anchorId: this.props.anchorId ? this.props.anchorId : EmptyGuid,\n isSpanTermStores: false,\n isSpanTermSets: false,\n isIncludeUnavailable: this.props.hideTagsNotAvailableForTagging === true,\n isIncludeDeprecated: this.props.hideDeprecatedTags === true,\n isAddTerms: false,\n isIncludePathData: false,\n excludeKeyword: false,\n excludedTermset: EmptyGuid\n };\n\n const reqHeaders = new Headers();\n reqHeaders.append(\"accept\", \"application/json\");\n reqHeaders.append(\"content-type\", \"application/json\");\n\n const httpPostOptions: ISPHttpClientOptions = {\n headers: reqHeaders,\n body: JSON.stringify(data)\n };\n\n\n return this.context.spHttpClient.post(this.suggestionServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => {\n return serviceResponse.json().then((serviceJSONResponse: any) => {\n const groups = serviceJSONResponse.d.Groups;\n if (groups && groups.length > 0) {\n // Retrieve the term collection results\n const terms: ISuggestTerm[] = groups[0].Suggestions;\n if (terms.length > 0) {\n // Retrieve all terms\n\n let returnTerms: IPickerTerm[] = terms.map((term: ISuggestTerm) => this.convertSuggestTermToPickerTerm(term));\n resolve(returnTerms);\n return;\n }\n\n }\n\n resolve([]);\n });\n });\n });\n });\n }\n }\n\n private isGuid(strGuid: string): boolean {\n return /^[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}$/.test(strGuid);\n }\n\n /**\n * Sorting terms based on their path and depth\n *\n * @param terms\n */\n private sortTerms(terms: ITerm[]) {\n // Start sorting by depth\n let newTermsOrder: ITerm[] = [];\n let itemsToSort = true;\n let pathLevel = 1;\n while (itemsToSort) {\n // Get terms for the current level\n let crntTerms = terms.filter(term => term.PathDepth === pathLevel);\n if (crntTerms && crntTerms.length > 0) {\n crntTerms = crntTerms.sort(this.sortTermByPath);\n\n if (pathLevel !== 1) {\n crntTerms = crntTerms.reverse();\n for (const crntTerm of crntTerms) {\n const pathElms = crntTerm.PathOfTerm.split(\";\");\n // Last item is not needed for parent path\n pathElms.pop();\n // Find the parent item and add the new item\n const idx = findIndex(newTermsOrder, term => term.PathOfTerm === pathElms.join(\";\"));\n if (idx !== -1) {\n newTermsOrder.splice(idx + 1, 0, crntTerm);\n } else {\n // Push the item at the end if the parent couldn't be found\n newTermsOrder.push(crntTerm);\n }\n }\n } else {\n newTermsOrder = crntTerms;\n }\n\n ++pathLevel;\n } else {\n itemsToSort = false;\n }\n }\n return newTermsOrder;\n }\n\n /**\n * Sort the terms by their path\n *\n * @param a term 2\n * @param b term 2\n */\n private sortTermByPath(a: ITerm, b: ITerm) {\n if (a.CustomSortOrderIndex === -1) {\n if (a.PathOfTerm.toLowerCase() < b.PathOfTerm.toLowerCase()) {\n return -1;\n }\n if (a.PathOfTerm.toLowerCase() > b.PathOfTerm.toLowerCase()) {\n return 1;\n }\n return 0;\n } else {\n if (a.CustomSortOrderIndex < b.CustomSortOrderIndex) {\n return -1;\n }\n if (a.CustomSortOrderIndex > b.CustomSortOrderIndex) {\n return 1;\n }\n return 0;\n }\n }\n\n /**\n * Clean the Guid from the Web Service response\n * @param guid\n */\n public cleanGuid(guid: string): string {\n if (guid !== undefined) {\n return guid.replace('/Guid(', '').replace('/', '').replace(')', '');\n } else {\n return '';\n }\n }\n\n /**\n * Returns 3 fake SharePoint lists for the Mock mode\n */\n private getTermStoresFromMock(): Promise<ITermStore[]> {\n return SPTermStoreMockHttpClient.getTermStores(this.context.pageContext.web.absoluteUrl).then((data) => {\n return data;\n }) as Promise<ITermStore[]>;\n }\n\n /**\n * Returns 3 fake SharePoint lists for the Mock mode\n */\n private getAllMockTerms(): Promise<ITermSet> {\n return SPTermStoreMockHttpClient.getAllTerms().then((data) => {\n return data;\n }) as Promise<ITermSet>;\n }\n\n /**\n * Returns 3 fake SharePoint lists for the Mock mode\n */\n private getAllMockTermsByAnchor(): Promise<ITerm[]> {\n return SPTermStoreMockHttpClient.getAllTermsByAnchorId().then((data) => {\n return data;\n }) as Promise<ITerm[]>;\n }\n\n private convertTermToPickerTerm(term: ITerm): IPickerTerm {\n return {\n key: this.cleanGuid(term.Id),\n name: term.Name,\n path: term.PathOfTerm,\n termSet: this.cleanGuid(term.TermSet.Id),\n termSetName: term.TermSet.Name\n };\n }\n\n private convertSuggestTermToPickerTerm(term: ISuggestTerm): IPickerTerm {\n let path: string = \"\";\n let termSetName: string = \"\";\n if (term.Paths && term.Paths.length > 0) {\n const fullPath = term.Paths[0].replace(/^\\[/, \"\").replace(/\\]$/, \"\");\n const fullPathParts = fullPath.split(\":\");\n path = fullPathParts.join(\";\") + \";\" + term.DefaultLabel;\n termSetName = fullPathParts[0];\n }\n return {\n key: this.cleanGuid(term.Id),\n name: term.DefaultLabel,\n path: path,\n termSet: EmptyGuid, // TermSet Guid is not given with suggestion\n termSetName: termSetName\n };\n }\n}\n"],"sourceRoot":"../../src"}
|
|
1
|
+
{"version":3,"sources":["services/SPTermStorePickerService.ts"],"names":[],"mappings":"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","file":"services/SPTermStorePickerService.js","sourcesContent":["/**\n * DISCLAIMER\n *\n * As there is not yet an OData end-point for managed metadata, this service makes use of the ProcessQuery end-points.\n * The service will get updated once the APIs are in place for managing managed metadata.\n */\n\nimport { SPHttpClient, SPHttpClientResponse, ISPHttpClientOptions } from '@microsoft/sp-http';\nimport { Environment, EnvironmentType } from '@microsoft/sp-core-library';\nimport { IWebPartContext } from '@microsoft/sp-webpart-base';\nimport { ITaxonomyPickerProps } from '../controls/taxonomyPicker/ITaxonomyPicker';\nimport { IPickerTerm } from '../controls/taxonomyPicker/ITermPicker';\nimport { ITermStore, ITerms, ITerm, IGroup, ITermSet, ISuggestTerm } from './ISPTermStorePickerService';\nimport SPTermStoreMockHttpClient from './SPTermStorePickerMockService';\nimport { findIndex } from '@microsoft/sp-lodash-subset';\nimport { ExtensionContext } from '@microsoft/sp-extension-base';\nimport { EmptyGuid } from '../common/Constants';\nimport { LocalesHelper } from '../common/utilities/LocalesHelper';\n\n/**\n * Service implementation to manage term stores in SharePoint\n */\nexport default class SPTermStorePickerService {\n private taxonomySession: string;\n private formDigest: string;\n private clientServiceUrl: string;\n private suggestionServiceUrl: string;\n\n /**\n * Service constructor\n */\n constructor(private props: ITaxonomyPickerProps, private context: IWebPartContext | ExtensionContext) {\n if (Environment.type !== EnvironmentType.Local) {\n {\n this.clientServiceUrl = this.context.pageContext.web.absoluteUrl + '/_vti_bin/client.svc/ProcessQuery';\n this.suggestionServiceUrl = this.context.pageContext.web.absoluteUrl + \t\"/_vti_bin/TaxonomyInternalService.json/GetSuggestions\";\n }\n }\n }\n\n public async getTermLabels(termId: string): Promise<string[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return null;\n }\n\n let result = null;\n try {\n const data = `<Request AddExpandoFieldTypeSuffix=\"true\" SchemaVersion=\"15.0.0.0\" LibraryVersion=\"16.0.0.0\" ApplicationName=\".NET Library\" xmlns=\"http://schemas.microsoft.com/sharepoint/clientquery/2009\"><Actions><ObjectPath Id=\"8\" ObjectPathId=\"7\" /><ObjectIdentityQuery Id=\"9\" ObjectPathId=\"7\" /><ObjectPath Id=\"11\" ObjectPathId=\"10\" /><ObjectIdentityQuery Id=\"12\" ObjectPathId=\"10\" /><ObjectPath Id=\"14\" ObjectPathId=\"13\" /><ObjectIdentityQuery Id=\"15\" ObjectPathId=\"13\" /><Query Id=\"16\" ObjectPathId=\"13\"><Query SelectAllProperties=\"false\"><Properties><Property Name=\"Labels\" SelectAll=\"true\"><Query SelectAllProperties=\"false\"><Properties /></Query></Property></Properties></Query></Query></Actions><ObjectPaths><StaticMethod Id=\"7\" Name=\"GetTaxonomySession\" TypeId=\"{981cbc68-9edc-4f8d-872f-71146fcbb84f}\" /><Method Id=\"10\" ParentId=\"7\" Name=\"GetDefaultKeywordsTermStore\" /><Method Id=\"13\" ParentId=\"10\" Name=\"GetTerm\"><Parameters><Parameter Type=\"Guid\">${termId}</Parameter></Parameters></Method></ObjectPaths></Request>`;\n\n const reqHeaders = new Headers();\n reqHeaders.append(\"accept\", \"application/json\");\n reqHeaders.append(\"content-type\", \"application/xml\");\n\n const httpPostOptions: ISPHttpClientOptions = {\n headers: reqHeaders,\n body: data\n };\n\n const callResult = await this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions);\n const jsonResult = await callResult.json();\n\n let node = jsonResult.find(x => x._ObjectType_ == \"SP.Taxonomy.Term\");\n if (node && node.Labels && node.Labels._Child_Items_) {\n result = node.Labels._Child_Items_.map(termLabel => termLabel.Value);\n }\n } catch (error) {\n result = null;\n console.log(error.message);\n }\n return result;\n }\n\n /**\n * Gets the collection of term stores in the current SharePoint env\n */\n public getTermStores(): Promise<ITermStore[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return this.getTermStoresFromMock();\n } else {\n // Retrieve the term store name, groups, and term sets\n const data = '<Request AddExpandoFieldTypeSuffix=\"true\" SchemaVersion=\"15.0.0.0\" LibraryVersion=\"16.0.0.0\" ApplicationName=\".NET Library\" xmlns=\"http://schemas.microsoft.com/sharepoint/clientquery/2009\"><Actions><ObjectPath Id=\"2\" ObjectPathId=\"1\" /><ObjectIdentityQuery Id=\"3\" ObjectPathId=\"1\" /><ObjectPath Id=\"5\" ObjectPathId=\"4\" /><ObjectIdentityQuery Id=\"6\" ObjectPathId=\"4\" /><Query Id=\"7\" ObjectPathId=\"4\"><Query SelectAllProperties=\"false\"><Properties><Property Name=\"Id\" ScalarProperty=\"true\" /><Property Name=\"Name\" ScalarProperty=\"true\" /><Property Name=\"Groups\"><Query SelectAllProperties=\"false\"><Properties /></Query><ChildItemQuery SelectAllProperties=\"false\"><Properties><Property Name=\"Name\" ScalarProperty=\"true\" /><Property Name=\"Id\" ScalarProperty=\"true\" /><Property Name=\"IsSystemGroup\" ScalarProperty=\"true\" /><Property Name=\"TermSets\"><Query SelectAllProperties=\"false\"><Properties /></Query><ChildItemQuery SelectAllProperties=\"false\"><Properties><Property Name=\"Name\" ScalarProperty=\"true\" /><Property Name=\"Id\" ScalarProperty=\"true\" /><Property Name=\"Description\" ScalarProperty=\"true\" /><Property Name=\"Names\" ScalarProperty=\"true\" /></Properties></ChildItemQuery></Property></Properties></ChildItemQuery></Property></Properties></Query></Query></Actions><ObjectPaths><StaticMethod Id=\"1\" Name=\"GetTaxonomySession\" TypeId=\"{981cbc68-9edc-4f8d-872f-71146fcbb84f}\" /><Method Id=\"4\" ParentId=\"1\" Name=\"GetDefaultSiteCollectionTermStore\" /></ObjectPaths></Request>';\n\n const reqHeaders = new Headers();\n reqHeaders.append(\"accept\", \"application/json\");\n reqHeaders.append(\"content-type\", \"application/xml\");\n\n const httpPostOptions: ISPHttpClientOptions = {\n headers: reqHeaders,\n body: data\n };\n\n return this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => {\n return serviceResponse.json().then((serviceJSONResponse: any) => {\n // Construct results\n let termStoreResult: ITermStore[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermStore');\n // Check if term store was retrieved\n if (termStoreResult.length > 0) {\n // Check if the termstore needs to be filtered or limited\n if (this.props.termsetNameOrID) {\n return termStoreResult.map(termstore => {\n let termGroups = termstore.Groups._Child_Items_;\n\n // Check if the groups have to be limited to a specific term set\n if (this.props.termsetNameOrID) {\n const termsetNameOrId = this.props.termsetNameOrID;\n termGroups = termGroups.map((group: IGroup) => {\n group.TermSets._Child_Items_ = group.TermSets._Child_Items_.filter((termSet: ITermSet) => termSet.Name === termsetNameOrId || this.cleanGuid(termSet.Id).toLowerCase() === this.cleanGuid(termsetNameOrId).toLowerCase());\n return group;\n });\n }\n\n // Filter out all systen groups\n termGroups = termGroups.filter(group => !group.IsSystemGroup);\n\n // Filter out empty groups\n termGroups = termGroups.filter((group: IGroup) => group.TermSets._Child_Items_.length > 0);\n\n // Map the new groups\n termstore.Groups._Child_Items_ = termGroups;\n return termstore;\n });\n }\n\n // Return the term store results\n return termStoreResult;\n }\n return [];\n });\n });\n }\n }\n\n /**\n * Gets the current term set\n */\n public async getTermSet(): Promise<ITermSet> {\n if (Environment.type === EnvironmentType.Local) {\n const termSetInfo = await SPTermStoreMockHttpClient.getAllTerms();\n return termSetInfo;\n } else {\n const termStore = await this.getTermStores();\n return this.getTermSetId(termStore, this.props.termsetNameOrID);\n }\n }\n\n /**\n * Retrieve all terms for the given term set\n * @param termset\n */\n public async getAllTerms(termset: string, hideDeprecatedTags?: boolean, hideTagsNotAvailableForTagging?: boolean, useSessionStorage: boolean = true): Promise<ITermSet> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return this.getAllMockTerms();\n } else {\n let termsetId: string = termset;\n // Check if the provided term set property is a GUID or string\n if (!this.isGuid(termset)) {\n // Fetch the term store information\n const termStore = await this.getTermStores();\n // Get the ID of the provided term set name\n const crntTermSet = this.getTermSetId(termStore, termset);\n if (crntTermSet) {\n termsetId = this.cleanGuid(crntTermSet.Id);\n } else {\n return null;\n }\n }\n\n let childTerms = this.getTermsById(termsetId, useSessionStorage);\n\n if (childTerms) {\n return childTerms;\n }\n\n // Request body to retrieve all terms for the given term set\n const data = `<Request xmlns=\"http://schemas.microsoft.com/sharepoint/clientquery/2009\" SchemaVersion=\"15.0.0.0\" LibraryVersion=\"16.0.0.0\" ApplicationName=\"Javascript Library\"><Actions><ObjectPath Id=\"1\" ObjectPathId=\"0\" /><ObjectIdentityQuery Id=\"2\" ObjectPathId=\"0\" /><ObjectPath Id=\"4\" ObjectPathId=\"3\" /><ObjectIdentityQuery Id=\"5\" ObjectPathId=\"3\" /><ObjectPath Id=\"7\" ObjectPathId=\"6\" /><ObjectIdentityQuery Id=\"8\" ObjectPathId=\"6\" /><ObjectPath Id=\"10\" ObjectPathId=\"9\" /><Query Id=\"11\" ObjectPathId=\"6\"><Query SelectAllProperties=\"true\"><Properties /></Query></Query><Query Id=\"12\" ObjectPathId=\"9\"><Query SelectAllProperties=\"false\"><Properties /></Query><ChildItemQuery SelectAllProperties=\"false\"><Properties><Property Name=\"IsRoot\" SelectAll=\"true\" /><Property Name=\"Labels\" SelectAll=\"true\" /><Property Name=\"TermsCount\" SelectAll=\"true\" /><Property Name=\"CustomSortOrder\" SelectAll=\"true\" /><Property Name=\"Id\" SelectAll=\"true\" /><Property Name=\"Name\" SelectAll=\"true\" /><Property Name=\"PathOfTerm\" SelectAll=\"true\" /><Property Name=\"Parent\" SelectAll=\"true\" /><Property Name=\"LocalCustomProperties\" SelectAll=\"true\" /><Property Name=\"IsDeprecated\" ScalarProperty=\"true\" /><Property Name=\"IsAvailableForTagging\" ScalarProperty=\"true\" /></Properties></ChildItemQuery></Query></Actions><ObjectPaths><StaticMethod Id=\"0\" Name=\"GetTaxonomySession\" TypeId=\"{981cbc68-9edc-4f8d-872f-71146fcbb84f}\" /><Method Id=\"3\" ParentId=\"0\" Name=\"GetDefaultKeywordsTermStore\" /><Method Id=\"6\" ParentId=\"3\" Name=\"GetTermSet\"><Parameters><Parameter Type=\"Guid\">${termsetId}</Parameter></Parameters></Method><Method Id=\"9\" ParentId=\"6\" Name=\"GetAllTerms\" /></ObjectPaths></Request>`;\n\n\n const reqHeaders = new Headers();\n reqHeaders.append(\"accept\", \"application/json\");\n reqHeaders.append(\"content-type\", \"application/xml\");\n\n const httpPostOptions: ISPHttpClientOptions = {\n headers: reqHeaders,\n body: data\n };\n\n return this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => {\n return serviceResponse.json().then((serviceJSONResponse: any) => {\n const termStoreResultTermSets: ITermSet[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermSet');\n\n if (termStoreResultTermSets.length > 0) {\n var termStoreResultTermSet = termStoreResultTermSets[0];\n termStoreResultTermSet.Terms = [];\n // Retrieve the term collection results\n const termStoreResultTerms: ITerms[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermCollection');\n if (termStoreResultTerms.length > 0) {\n // Retrieve all terms\n let terms = termStoreResultTerms[0]._Child_Items_;\n\n if (hideDeprecatedTags === true) {\n terms = terms.filter(d => d[\"IsDeprecated\"] === false);\n }\n\n if (hideTagsNotAvailableForTagging === true) {\n terms = terms.filter(d => d[\"IsAvailableForTagging\"] === true);\n }\n\n // Clean the term ID and specify the path depth\n terms = terms.map(term => {\n if (term.IsRoot) {\n term.CustomSortOrderIndex = (termStoreResultTermSet.CustomSortOrder) ? termStoreResultTermSet.CustomSortOrder.split(\":\").indexOf(this.cleanGuid(term.Id)) : -1;\n } else {\n term.CustomSortOrderIndex = (term[\"Parent\"].CustomSortOrder) ? term[\"Parent\"].CustomSortOrder.split(\":\").indexOf(this.cleanGuid(term.Id)) : -1;\n }\n term.Id = this.cleanGuid(term.Id);\n term['PathDepth'] = term.PathOfTerm.split(';').length;\n term.TermSet = { Id: this.cleanGuid(termStoreResultTermSet.Id), Name: termStoreResultTermSet.Name };\n if (term[\"Parent\"]) {\n term.ParentId = this.cleanGuid(term[\"Parent\"].Id);\n }\n return term;\n });\n // Check if the term set was not empty\n if (terms.length > 0) {\n // Sort the terms by PathOfTerm and their depth\n terms = this.sortTerms(terms);\n termStoreResultTermSet.Terms = terms;\n }\n }\n\n try {\n if (useSessionStorage && window.sessionStorage) {\n window.sessionStorage.setItem(termsetId, JSON.stringify(termStoreResultTermSet));\n }\n } catch (error) {\n // Do nothing, sometimes storage quota exceed error if too many items\n }\n return termStoreResultTermSet;\n }\n return null;\n });\n });\n }\n }\n\n /**\n * Get the term set ID by its name\n * @param termstore\n * @param termset\n */\n private getTermSetId(termstore: ITermStore[], termsetName: string): ITermSet {\n if (termstore && termstore.length > 0 && termsetName) {\n // Get the first term store\n const ts = termstore[0];\n // Check if the term store contains groups\n if (ts.Groups && ts.Groups._Child_Items_) {\n for (const group of ts.Groups._Child_Items_) {\n // Check if the group contains term sets\n if (group.TermSets && group.TermSets._Child_Items_) {\n for (const termSet of group.TermSets._Child_Items_) {\n // Check if the term set is found\n if (termSet.Name === termsetName) {\n return termSet;\n }\n }\n }\n }\n }\n }\n\n return null;\n }\n\n\n /**\n * Retrieve all terms that starts with the searchText\n * @param searchText\n */\n public searchTermsByName(searchText: string): Promise<IPickerTerm[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return SPTermStoreMockHttpClient.searchTermsByName(searchText);\n } else {\n return this.searchTermsByTermSet(searchText);\n }\n }\n\n private getTermsById(termId, useSessionStorage: boolean = true) {\n try {\n if (useSessionStorage && window.sessionStorage) {\n let terms = window.sessionStorage.getItem(termId);\n if (terms)\n return JSON.parse(terms);\n else {\n return null;\n }\n } else {\n return null;\n }\n } catch (error) {\n return null;\n }\n }\n\n private searchTermsBySearchText(terms, searchText) {\n if (terms) {\n return terms.filter((t) => { return t.name.toLowerCase().indexOf(searchText.toLowerCase()) > -1; });\n }\n else\n return [];\n }\n\n public async searchTermsByTermId(searchText: string, termId: string): Promise<IPickerTerm[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return SPTermStoreMockHttpClient.searchTermsByName(searchText);\n } else {\n const { useSessionStorage } = this.props;\n let childTerms = this.getTermsById(termId, useSessionStorage);\n if (childTerms) {\n return this.searchTermsBySearchText(childTerms, searchText);\n }\n else {\n const {\n termsetNameOrID,\n hideDeprecatedTags,\n hideTagsNotAvailableForTagging\n } = this.props;\n\n const terms = await this.getAllTermsByAnchorId(\n termsetNameOrID,\n termId,\n hideDeprecatedTags,\n hideTagsNotAvailableForTagging,\n useSessionStorage);\n\n if (terms) {\n return this.searchTermsBySearchText(terms, searchText);\n }\n }\n\n return null;\n }\n }\n\n /**\n * Retrieve all terms for the given term set and anchorId\n */\n public async getAllTermsByAnchorId(termsetNameOrID: string, anchorId: string, hideDeprecatedTags?: boolean, hideTagsNotAvailableForTagging?: boolean, useSessionStorage: boolean = true): Promise<IPickerTerm[]> {\n\n let returnTerms: IPickerTerm[] = [];\n\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n let terms = await this.getAllMockTermsByAnchor();\n terms.forEach(term => {\n returnTerms.push(this.convertTermToPickerTerm(term));\n });\n } else {\n const childTerms = this.getTermsById(anchorId, useSessionStorage);\n if (childTerms) {\n return childTerms;\n }\n\n let termSet = await this.getAllTerms(termsetNameOrID, hideDeprecatedTags, hideTagsNotAvailableForTagging);\n let terms = termSet.Terms;\n if (anchorId) {\n const anchorTerm = terms.filter(t => t.Id.toLowerCase() === anchorId.toLowerCase()).shift();\n if (anchorTerm) {\n // Append ';' separator, as a suffix to anchor term path.\n const anchorTermPath = `${anchorTerm.PathOfTerm};`;\n const anchorTerms: ITerm[] = terms.filter(t => t.PathOfTerm.substring(0, anchorTermPath.length) === anchorTermPath && t.Id !== anchorTerm.Id);\n\n anchorTerms.forEach(term => {\n returnTerms.push(this.convertTermToPickerTerm(term));\n });\n\n try {\n if (useSessionStorage && window.sessionStorage) {\n window.sessionStorage.setItem(anchorId, JSON.stringify(returnTerms));\n }\n } catch (error) {\n // Do nothing\n }\n }\n } else {\n terms.forEach(term => {\n returnTerms.push(this.convertTermToPickerTerm(term));\n });\n }\n }\n\n return returnTerms;\n }\n\n /**\n * Searches terms for the given term set\n * @param searchText\n * @param termsetId\n */\n private searchTermsByTermSet(searchText: string): Promise<IPickerTerm[]> {\n if (Environment.type === EnvironmentType.Local) {\n // If the running environment is local, load the data from the mock\n return SPTermStoreMockHttpClient.searchTermsByName(searchText);\n } else {\n return new Promise<IPickerTerm[]>(resolve => {\n this.getTermStores().then(termStore => {\n let TermSetId = this.props.termsetNameOrID;\n if (!this.isGuid(TermSetId)) {\n // Get the ID of the provided term set name\n const crntTermSet = this.getTermSetId(termStore, TermSetId);\n if (crntTermSet) {\n TermSetId = this.cleanGuid(crntTermSet.Id);\n } else {\n resolve(null);\n return;\n }\n }\n if (termStore === undefined || termStore.length === 0) {\n resolve(null);\n return;\n }\n let loc = LocalesHelper.getLocaleId(this.context.pageContext.cultureInfo.currentUICultureName);\n let data = {\n start: searchText,\n lcid: loc !== 0 ? loc : this.context.pageContext.web.language,\n sspList: this.cleanGuid(termStore[0].Id),\n termSetList: TermSetId,\n anchorId: this.props.anchorId ? this.props.anchorId : EmptyGuid,\n isSpanTermStores: false,\n isSpanTermSets: false,\n isIncludeUnavailable: this.props.hideTagsNotAvailableForTagging === true,\n isIncludeDeprecated: this.props.hideDeprecatedTags === true,\n isAddTerms: false,\n isIncludePathData: false,\n excludeKeyword: false,\n excludedTermset: EmptyGuid\n };\n\n const reqHeaders = new Headers();\n reqHeaders.append(\"accept\", \"application/json\");\n reqHeaders.append(\"content-type\", \"application/json\");\n\n const httpPostOptions: ISPHttpClientOptions = {\n headers: reqHeaders,\n body: JSON.stringify(data)\n };\n\n\n return this.context.spHttpClient.post(this.suggestionServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => {\n return serviceResponse.json().then((serviceJSONResponse: any) => {\n const groups = serviceJSONResponse.d.Groups;\n if (groups && groups.length > 0) {\n // Retrieve the term collection results\n const terms: ISuggestTerm[] = groups[0].Suggestions;\n if (terms.length > 0) {\n // Retrieve all terms\n\n let returnTerms: IPickerTerm[] = terms.map((term: ISuggestTerm) => this.convertSuggestTermToPickerTerm(term));\n resolve(returnTerms);\n return;\n }\n\n }\n\n resolve([]);\n });\n });\n });\n });\n }\n }\n\n private isGuid(strGuid: string): boolean {\n return /^[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}$/.test(strGuid);\n }\n\n /**\n * Sorting terms based on their path and depth\n *\n * @param terms\n */\n private sortTerms(terms: ITerm[]) {\n // Start sorting by depth\n let newTermsOrder: ITerm[] = [];\n let itemsToSort = true;\n let pathLevel = 1;\n while (itemsToSort) {\n // Get terms for the current level\n let crntTerms = terms.filter(term => term.PathDepth === pathLevel);\n if (crntTerms && crntTerms.length > 0) {\n crntTerms = crntTerms.sort(this.sortTermByPath);\n\n if (pathLevel !== 1) {\n crntTerms = crntTerms.reverse();\n for (const crntTerm of crntTerms) {\n const pathElms = crntTerm.PathOfTerm.split(\";\");\n // Last item is not needed for parent path\n pathElms.pop();\n // Find the parent item and add the new item\n const idx = findIndex(newTermsOrder, term => term.PathOfTerm === pathElms.join(\";\"));\n if (idx !== -1) {\n newTermsOrder.splice(idx + 1, 0, crntTerm);\n } else {\n // Push the item at the end if the parent couldn't be found\n newTermsOrder.push(crntTerm);\n }\n }\n } else {\n newTermsOrder = crntTerms;\n }\n\n ++pathLevel;\n } else {\n itemsToSort = false;\n }\n }\n return newTermsOrder;\n }\n\n /**\n * Sort the terms by their path\n *\n * @param a term 2\n * @param b term 2\n */\n private sortTermByPath(a: ITerm, b: ITerm) {\n if (a.CustomSortOrderIndex === -1) {\n if (a.PathOfTerm.toLowerCase() < b.PathOfTerm.toLowerCase()) {\n return -1;\n }\n if (a.PathOfTerm.toLowerCase() > b.PathOfTerm.toLowerCase()) {\n return 1;\n }\n return 0;\n } else {\n if (a.CustomSortOrderIndex < b.CustomSortOrderIndex) {\n return -1;\n }\n if (a.CustomSortOrderIndex > b.CustomSortOrderIndex) {\n return 1;\n }\n return 0;\n }\n }\n\n /**\n * Clean the Guid from the Web Service response\n * @param guid\n */\n public cleanGuid(guid: string): string {\n if (guid !== undefined) {\n return guid.replace('/Guid(', '').replace('/', '').replace(')', '');\n } else {\n return '';\n }\n }\n\n /**\n * Returns 3 fake SharePoint lists for the Mock mode\n */\n private getTermStoresFromMock(): Promise<ITermStore[]> {\n return SPTermStoreMockHttpClient.getTermStores(this.context.pageContext.web.absoluteUrl).then((data) => {\n return data;\n }) as Promise<ITermStore[]>;\n }\n\n /**\n * Returns 3 fake SharePoint lists for the Mock mode\n */\n private getAllMockTerms(): Promise<ITermSet> {\n return SPTermStoreMockHttpClient.getAllTerms().then((data) => {\n return data;\n }) as Promise<ITermSet>;\n }\n\n /**\n * Returns 3 fake SharePoint lists for the Mock mode\n */\n private getAllMockTermsByAnchor(): Promise<ITerm[]> {\n return SPTermStoreMockHttpClient.getAllTermsByAnchorId().then((data) => {\n return data;\n }) as Promise<ITerm[]>;\n }\n\n private convertTermToPickerTerm(term: ITerm): IPickerTerm {\n return {\n key: this.cleanGuid(term.Id),\n name: term.Name,\n path: term.PathOfTerm,\n termSet: this.cleanGuid(term.TermSet.Id),\n termSetName: term.TermSet.Name\n };\n }\n\n private convertSuggestTermToPickerTerm(term: ISuggestTerm): IPickerTerm {\n let path: string = \"\";\n let termSetName: string = \"\";\n if (term.Paths && term.Paths.length > 0) {\n const fullPath = term.Paths[0].replace(/^\\[/, \"\").replace(/\\]$/, \"\");\n const fullPathParts = fullPath.split(\":\");\n path = fullPathParts.join(\";\") + \";\" + term.DefaultLabel;\n termSetName = fullPathParts[0];\n }\n return {\n key: this.cleanGuid(term.Id),\n name: term.DefaultLabel,\n path: path,\n termSet: EmptyGuid, // TermSet Guid is not given with suggestion\n termSetName: termSetName\n };\n }\n}\n"],"sourceRoot":"../../src"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnp/spfx-controls-react",
|
|
3
3
|
"description": "Reusable React controls for SharePoint Framework solutions",
|
|
4
|
-
"version": "1.21.
|
|
4
|
+
"version": "1.21.3",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=0.10.0"
|
|
7
7
|
},
|
|
@@ -41,8 +41,10 @@
|
|
|
41
41
|
"@microsoft/sp-webpart-base": "~1.3.0",
|
|
42
42
|
"@microsoft/sp-webpart-workbench": "~1.3.0",
|
|
43
43
|
"@types/chai": ">=3.4.34 <3.6.0",
|
|
44
|
+
"@types/cheerio": "0.22.13",
|
|
44
45
|
"@types/enzyme": "2.8.7",
|
|
45
46
|
"@types/mocha": ">=2.2.33 <2.6.0",
|
|
47
|
+
"@types/prop-types": "15.5.3",
|
|
46
48
|
"@types/react": "15.0.38",
|
|
47
49
|
"@types/react-addons-shallow-compare": "0.14.17",
|
|
48
50
|
"@types/react-addons-test-utils": "0.14.15",
|
package/sonar-project.properties
CHANGED
|
@@ -4,6 +4,3 @@ sonar.ts.tslintconfigpath=temp/tslint.json
|
|
|
4
4
|
sonar.organization=sharepoint
|
|
5
5
|
sonar.projectKey=sp-dev-fx-controls-react
|
|
6
6
|
sonar.host.url=https://sonarcloud.io
|
|
7
|
-
sonar.login=/home/circleci/sp-dev-fx-controls-react/scripts/sonarcloud.js
|
|
8
|
-
sonar.projectVersion=1.21.1
|
|
9
|
-
sonar.branch.name=d1ff7356287cd6465a6d4ff44729519556aafbfe
|