@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.
Files changed (236) hide show
  1. package/CHANGELOG.JSON +26 -0
  2. package/CHANGELOG.md +17 -0
  3. package/lib/common/telemetry/version.js +1 -1
  4. package/lib/common/telemetry/version.js.map +1 -1
  5. package/lib/common/utilities/LocalesHelper.d.ts +5 -0
  6. package/lib/common/utilities/LocalesHelper.js +76 -0
  7. package/lib/common/utilities/LocalesHelper.js.map +1 -0
  8. package/lib/common/utilities/index.d.ts +1 -0
  9. package/lib/common/utilities/index.js +1 -0
  10. package/lib/common/utilities/index.js.map +1 -1
  11. package/lib/controls/accordion/Accordion.module.css +1 -1
  12. package/lib/controls/accordion/Accordion.module.scss.js +3 -3
  13. package/lib/controls/accordion/Accordion.module.scss.js.map +1 -1
  14. package/lib/controls/carousel/Carousel.module.css +1 -1
  15. package/lib/controls/carousel/Carousel.module.scss.js +35 -35
  16. package/lib/controls/carousel/Carousel.module.scss.js.map +1 -1
  17. package/lib/controls/chartControl/ChartControl.module.css +1 -1
  18. package/lib/controls/chartControl/ChartControl.module.scss.js +3 -3
  19. package/lib/controls/chartControl/ChartControl.module.scss.js.map +1 -1
  20. package/lib/controls/dateTimePicker/DateTimePicker.module.css +1 -1
  21. package/lib/controls/dateTimePicker/DateTimePicker.module.scss.js +10 -10
  22. package/lib/controls/dateTimePicker/DateTimePicker.module.scss.js.map +1 -1
  23. package/lib/controls/errorMessage/ErrorMessage.module.css +1 -1
  24. package/lib/controls/errorMessage/ErrorMessage.module.scss.js +2 -2
  25. package/lib/controls/errorMessage/ErrorMessage.module.scss.js.map +1 -1
  26. package/lib/controls/fieldCollectionData/FieldCollectionData.module.css +1 -1
  27. package/lib/controls/fieldCollectionData/FieldCollectionData.module.scss.js +18 -18
  28. package/lib/controls/fieldCollectionData/FieldCollectionData.module.scss.js.map +1 -1
  29. package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.css +1 -1
  30. package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.scss.js +4 -4
  31. package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.scss.js.map +1 -1
  32. package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.css +1 -1
  33. package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.scss.js +4 -4
  34. package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.scss.js.map +1 -1
  35. package/lib/controls/fields/fieldCommon/FieldRenderer.module.css +1 -1
  36. package/lib/controls/fields/fieldCommon/FieldRenderer.module.scss.js +3 -3
  37. package/lib/controls/fields/fieldCommon/FieldRenderer.module.scss.js.map +1 -1
  38. package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.css +1 -1
  39. package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.scss.js +5 -5
  40. package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.scss.js.map +1 -1
  41. package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.css +1 -1
  42. package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.scss.js +5 -5
  43. package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.scss.js.map +1 -1
  44. package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.css +1 -1
  45. package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.scss.js +9 -9
  46. package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.scss.js.map +1 -1
  47. package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.css +1 -1
  48. package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.scss.js +4 -4
  49. package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.scss.js.map +1 -1
  50. package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.css +1 -1
  51. package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.scss.js +6 -6
  52. package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.scss.js.map +1 -1
  53. package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.css +1 -1
  54. package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.scss.js +5 -5
  55. package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.scss.js.map +1 -1
  56. package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.css +1 -1
  57. package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.scss.js +13 -13
  58. package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.scss.js.map +1 -1
  59. package/lib/controls/filePicker/FilePicker.module.css +1 -1
  60. package/lib/controls/filePicker/FilePicker.module.scss.js +38 -38
  61. package/lib/controls/filePicker/FilePicker.module.scss.js.map +1 -1
  62. package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.css +1 -1
  63. package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.scss.js +41 -41
  64. package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.scss.js.map +1 -1
  65. package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.css +1 -1
  66. package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.scss.js +38 -38
  67. package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.scss.js.map +1 -1
  68. package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.css +1 -1
  69. package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.scss.js +59 -59
  70. package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.scss.js.map +1 -1
  71. package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.css +1 -1
  72. package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.scss.js +38 -38
  73. package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.scss.js.map +1 -1
  74. package/lib/controls/filePicker/StockImagesTab/StockImages.module.css +1 -1
  75. package/lib/controls/filePicker/StockImagesTab/StockImages.module.scss.js +40 -40
  76. package/lib/controls/filePicker/StockImagesTab/StockImages.module.scss.js.map +1 -1
  77. package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.css +1 -1
  78. package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.scss.js +43 -43
  79. package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.scss.js.map +1 -1
  80. package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.css +1 -1
  81. package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.scss.js +60 -60
  82. package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.scss.js.map +1 -1
  83. package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.css +1 -1
  84. package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.scss.js +7 -7
  85. package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.scss.js.map +1 -1
  86. package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.css +1 -1
  87. package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.scss.js +80 -80
  88. package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.scss.js.map +1 -1
  89. package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.css +1 -1
  90. package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.scss.js +38 -38
  91. package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.scss.js.map +1 -1
  92. package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.css +1 -1
  93. package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.scss.js +76 -76
  94. package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.scss.js.map +1 -1
  95. package/lib/controls/filePicker/controls/TilesList/TilesList.module.css +1 -1
  96. package/lib/controls/filePicker/controls/TilesList/TilesList.module.scss.js +70 -70
  97. package/lib/controls/filePicker/controls/TilesList/TilesList.module.scss.js.map +1 -1
  98. package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.css +1 -1
  99. package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.scss.js +5 -5
  100. package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.scss.js.map +1 -1
  101. package/lib/controls/folderExplorer/NewFolder/NewFolder.module.css +1 -1
  102. package/lib/controls/folderExplorer/NewFolder/NewFolder.module.scss.js +5 -5
  103. package/lib/controls/folderExplorer/NewFolder/NewFolder.module.scss.js.map +1 -1
  104. package/lib/controls/folderPicker/FolderPicker.module.css +1 -1
  105. package/lib/controls/folderPicker/FolderPicker.module.scss.js +7 -7
  106. package/lib/controls/folderPicker/FolderPicker.module.scss.js.map +1 -1
  107. package/lib/controls/gridLayout/GridLayout.module.css +1 -1
  108. package/lib/controls/gridLayout/GridLayout.module.scss.js +2 -2
  109. package/lib/controls/gridLayout/GridLayout.module.scss.js.map +1 -1
  110. package/lib/controls/iFrameDialog/IFrameDialogContent.module.css +1 -1
  111. package/lib/controls/iFrameDialog/IFrameDialogContent.module.scss.js +2 -2
  112. package/lib/controls/iFrameDialog/IFrameDialogContent.module.scss.js.map +1 -1
  113. package/lib/controls/iFramePanel/IFramePanelContent.module.css +1 -1
  114. package/lib/controls/iFramePanel/IFramePanelContent.module.scss.js +2 -2
  115. package/lib/controls/iFramePanel/IFramePanelContent.module.scss.js.map +1 -1
  116. package/lib/controls/iconPicker/IconPicker.module.css +1 -1
  117. package/lib/controls/iconPicker/IconPicker.module.scss.js +21 -21
  118. package/lib/controls/iconPicker/IconPicker.module.scss.js.map +1 -1
  119. package/lib/controls/listItemAttachments/ListItemAttachments.module.css +1 -1
  120. package/lib/controls/listItemAttachments/ListItemAttachments.module.scss.js +6 -6
  121. package/lib/controls/listItemAttachments/ListItemAttachments.module.scss.js.map +1 -1
  122. package/lib/controls/listItemPicker/ComboBoxListItemPicker.js +6 -3
  123. package/lib/controls/listItemPicker/ComboBoxListItemPicker.js.map +1 -1
  124. package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.css +1 -0
  125. package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.d.ts +5 -0
  126. package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.js +12 -0
  127. package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.js.map +1 -0
  128. package/lib/controls/listItemPicker/IComboBoxListItemPickerProps.d.ts +1 -0
  129. package/lib/controls/listItemPicker/IListItemPickerProps.d.ts +1 -0
  130. package/lib/controls/listItemPicker/ListItemPicker.d.ts +1 -0
  131. package/lib/controls/listItemPicker/ListItemPicker.js +18 -13
  132. package/lib/controls/listItemPicker/ListItemPicker.js.map +1 -1
  133. package/lib/controls/listPicker/ListPicker.module.css +1 -1
  134. package/lib/controls/listPicker/ListPicker.module.scss.js +2 -2
  135. package/lib/controls/listPicker/ListPicker.module.scss.js.map +1 -1
  136. package/lib/controls/listView/ListView.DragDrop.module.css +1 -1
  137. package/lib/controls/listView/ListView.DragDrop.module.scss.js +3 -3
  138. package/lib/controls/listView/ListView.DragDrop.module.scss.js.map +1 -1
  139. package/lib/controls/listView/ListView.js.map +1 -1
  140. package/lib/controls/map/Maps.module.css +1 -1
  141. package/lib/controls/map/Maps.module.scss.js +6 -6
  142. package/lib/controls/map/Maps.module.scss.js.map +1 -1
  143. package/lib/controls/pagination/Pagination.module.css +1 -1
  144. package/lib/controls/pagination/Pagination.module.scss.js +2 -2
  145. package/lib/controls/pagination/Pagination.module.scss.js.map +1 -1
  146. package/lib/controls/peoplepicker/PeoplePickerComponent.module.css +1 -1
  147. package/lib/controls/peoplepicker/PeoplePickerComponent.module.scss.js +3 -3
  148. package/lib/controls/peoplepicker/PeoplePickerComponent.module.scss.js.map +1 -1
  149. package/lib/controls/placeholder/PlaceholderComponent.module.css +1 -1
  150. package/lib/controls/placeholder/PlaceholderComponent.module.scss.js +9 -9
  151. package/lib/controls/placeholder/PlaceholderComponent.module.scss.js.map +1 -1
  152. package/lib/controls/progress/Progress.module.css +1 -1
  153. package/lib/controls/progress/Progress.module.scss.js +19 -19
  154. package/lib/controls/progress/Progress.module.scss.js.map +1 -1
  155. package/lib/controls/richText/RichText.module.css +1 -1
  156. package/lib/controls/richText/RichText.module.scss.js +17 -17
  157. package/lib/controls/richText/RichText.module.scss.js.map +1 -1
  158. package/lib/controls/richText/RichTextPropertyPane.module.css +1 -1
  159. package/lib/controls/richText/RichTextPropertyPane.module.scss.js +8 -8
  160. package/lib/controls/richText/RichTextPropertyPane.module.scss.js.map +1 -1
  161. package/lib/controls/richText/RteColorPicker.module.css +1 -1
  162. package/lib/controls/richText/RteColorPicker.module.scss.js +17 -17
  163. package/lib/controls/richText/RteColorPicker.module.scss.js.map +1 -1
  164. package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.css +1 -1
  165. package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.scss.js +2 -2
  166. package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.scss.js.map +1 -1
  167. package/lib/controls/taxonomyPicker/ITaxonomyPicker.d.ts +14 -0
  168. package/lib/controls/taxonomyPicker/TaxonomyPicker.d.ts +1 -0
  169. package/lib/controls/taxonomyPicker/TaxonomyPicker.js +107 -23
  170. package/lib/controls/taxonomyPicker/TaxonomyPicker.js.map +1 -1
  171. package/lib/controls/taxonomyPicker/TaxonomyPicker.module.css +1 -1
  172. package/lib/controls/taxonomyPicker/TaxonomyPicker.module.scss.js +21 -21
  173. package/lib/controls/taxonomyPicker/TaxonomyPicker.module.scss.js.map +1 -1
  174. package/lib/controls/treeView/TreeView.module.css +1 -1
  175. package/lib/controls/treeView/TreeView.module.scss.js +17 -17
  176. package/lib/controls/treeView/TreeView.module.scss.js.map +1 -1
  177. package/lib/controls/webPartTitle/WebPartTitle.module.css +1 -1
  178. package/lib/controls/webPartTitle/WebPartTitle.module.scss.js +3 -3
  179. package/lib/controls/webPartTitle/WebPartTitle.module.scss.js.map +1 -1
  180. package/lib/loc/bg-bg.js +8 -30
  181. package/lib/loc/bg-bg.js.map +1 -1
  182. package/lib/loc/ca-es.js +10 -32
  183. package/lib/loc/ca-es.js.map +1 -1
  184. package/lib/loc/da-dk.js +11 -33
  185. package/lib/loc/da-dk.js.map +1 -1
  186. package/lib/loc/de-de.js +1 -23
  187. package/lib/loc/de-de.js.map +1 -1
  188. package/lib/loc/el-gr.js +7 -29
  189. package/lib/loc/el-gr.js.map +1 -1
  190. package/lib/loc/es-es.js +1 -23
  191. package/lib/loc/es-es.js.map +1 -1
  192. package/lib/loc/et-ee.js +8 -30
  193. package/lib/loc/et-ee.js.map +1 -1
  194. package/lib/loc/fi-fi.js +8 -30
  195. package/lib/loc/fi-fi.js.map +1 -1
  196. package/lib/loc/fr-fr.js +12 -34
  197. package/lib/loc/fr-fr.js.map +1 -1
  198. package/lib/loc/it-it.js +3 -25
  199. package/lib/loc/it-it.js.map +1 -1
  200. package/lib/loc/ja-jp.js +10 -32
  201. package/lib/loc/ja-jp.js.map +1 -1
  202. package/lib/loc/lt-lt.js +2 -24
  203. package/lib/loc/lt-lt.js.map +1 -1
  204. package/lib/loc/lv-lv.js +10 -32
  205. package/lib/loc/lv-lv.js.map +1 -1
  206. package/lib/loc/nb-no.js +9 -31
  207. package/lib/loc/nb-no.js.map +1 -1
  208. package/lib/loc/nl-nl.js +9 -31
  209. package/lib/loc/nl-nl.js.map +1 -1
  210. package/lib/loc/pl-pl.js +7 -29
  211. package/lib/loc/pl-pl.js.map +1 -1
  212. package/lib/loc/pt-pt.js +3 -25
  213. package/lib/loc/pt-pt.js.map +1 -1
  214. package/lib/loc/ro-ro.js +9 -31
  215. package/lib/loc/ro-ro.js.map +1 -1
  216. package/lib/loc/ru-ru.js +1 -23
  217. package/lib/loc/ru-ru.js.map +1 -1
  218. package/lib/loc/sk-sk.js +15 -37
  219. package/lib/loc/sk-sk.js.map +1 -1
  220. package/lib/loc/sr-latn-rs.js +3 -25
  221. package/lib/loc/sr-latn-rs.js.map +1 -1
  222. package/lib/loc/sv-se.js +11 -33
  223. package/lib/loc/sv-se.js.map +1 -1
  224. package/lib/loc/tr-tr.js +1 -23
  225. package/lib/loc/tr-tr.js.map +1 -1
  226. package/lib/loc/vi-vn.js +11 -33
  227. package/lib/loc/vi-vn.js.map +1 -1
  228. package/lib/loc/zh-cn.js +1 -23
  229. package/lib/loc/zh-cn.js.map +1 -1
  230. package/lib/loc/zh-tw.js +1 -23
  231. package/lib/loc/zh-tw.js.map +1 -1
  232. package/lib/services/SPTermStorePickerService.d.ts +3 -3
  233. package/lib/services/SPTermStorePickerService.js +46 -15
  234. package/lib/services/SPTermStorePickerService.js.map +1 -1
  235. package/package.json +3 -1
  236. 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
- sessionStorage.setItem(termsetId_1, JSON.stringify(termStoreResultTermSet));
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
- var terms = sessionStorage.getItem(termId);
319
- if (terms)
320
- return JSON.parse(terms);
321
- else
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
- childTerms = this.getTermsById(termId);
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
- sessionStorage.setItem(anchorId, JSON.stringify(returnTerms));
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.1",
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",
@@ -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