@pnp/spfx-controls-react 1.21.1-beta.6fa9cb9 → 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 (247) hide show
  1. package/CHANGELOG.JSON +28 -1
  2. package/CHANGELOG.md +38 -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 +18 -0
  168. package/lib/controls/taxonomyPicker/TaxonomyPicker.d.ts +14 -0
  169. package/lib/controls/taxonomyPicker/TaxonomyPicker.js +148 -11
  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/taxonomyPicker/TermPicker.d.ts +5 -2
  175. package/lib/controls/taxonomyPicker/TermPicker.js +4 -4
  176. package/lib/controls/taxonomyPicker/TermPicker.js.map +1 -1
  177. package/lib/controls/treeView/TreeView.module.css +1 -1
  178. package/lib/controls/treeView/TreeView.module.scss.js +17 -17
  179. package/lib/controls/treeView/TreeView.module.scss.js.map +1 -1
  180. package/lib/controls/webPartTitle/WebPartTitle.module.css +1 -1
  181. package/lib/controls/webPartTitle/WebPartTitle.module.scss.js +3 -3
  182. package/lib/controls/webPartTitle/WebPartTitle.module.scss.js.map +1 -1
  183. package/lib/loc/bg-bg.js +8 -29
  184. package/lib/loc/bg-bg.js.map +1 -1
  185. package/lib/loc/ca-es.js +11 -32
  186. package/lib/loc/ca-es.js.map +1 -1
  187. package/lib/loc/da-dk.js +11 -32
  188. package/lib/loc/da-dk.js.map +1 -1
  189. package/lib/loc/de-de.js +1 -22
  190. package/lib/loc/de-de.js.map +1 -1
  191. package/lib/loc/el-gr.js +7 -28
  192. package/lib/loc/el-gr.js.map +1 -1
  193. package/lib/loc/en-us.js +1 -0
  194. package/lib/loc/en-us.js.map +1 -1
  195. package/lib/loc/es-es.js +1 -22
  196. package/lib/loc/es-es.js.map +1 -1
  197. package/lib/loc/et-ee.js +8 -29
  198. package/lib/loc/et-ee.js.map +1 -1
  199. package/lib/loc/fi-fi.js +8 -29
  200. package/lib/loc/fi-fi.js.map +1 -1
  201. package/lib/loc/fr-fr.js +11 -32
  202. package/lib/loc/fr-fr.js.map +1 -1
  203. package/lib/loc/it-it.js +3 -24
  204. package/lib/loc/it-it.js.map +1 -1
  205. package/lib/loc/ja-jp.js +10 -31
  206. package/lib/loc/ja-jp.js.map +1 -1
  207. package/lib/loc/lt-lt.js +3 -24
  208. package/lib/loc/lt-lt.js.map +1 -1
  209. package/lib/loc/lv-lv.js +9 -30
  210. package/lib/loc/lv-lv.js.map +1 -1
  211. package/lib/loc/nb-no.js +8 -29
  212. package/lib/loc/nb-no.js.map +1 -1
  213. package/lib/loc/nl-nl.js +9 -30
  214. package/lib/loc/nl-nl.js.map +1 -1
  215. package/lib/loc/pl-pl.js +7 -28
  216. package/lib/loc/pl-pl.js.map +1 -1
  217. package/lib/loc/pt-pt.js +3 -24
  218. package/lib/loc/pt-pt.js.map +1 -1
  219. package/lib/loc/ro-ro.js +9 -30
  220. package/lib/loc/ro-ro.js.map +1 -1
  221. package/lib/loc/ru-ru.js +1 -22
  222. package/lib/loc/ru-ru.js.map +1 -1
  223. package/lib/loc/sk-sk.js +15 -36
  224. package/lib/loc/sk-sk.js.map +1 -1
  225. package/lib/loc/sr-latn-rs.js +2 -23
  226. package/lib/loc/sr-latn-rs.js.map +1 -1
  227. package/lib/loc/sv-se.js +11 -32
  228. package/lib/loc/sv-se.js.map +1 -1
  229. package/lib/loc/tr-tr.js +1 -22
  230. package/lib/loc/tr-tr.js.map +1 -1
  231. package/lib/loc/vi-vn.js +11 -32
  232. package/lib/loc/vi-vn.js.map +1 -1
  233. package/lib/loc/zh-cn.js +1 -22
  234. package/lib/loc/zh-cn.js.map +1 -1
  235. package/lib/loc/zh-tw.js +1 -22
  236. package/lib/loc/zh-tw.js.map +1 -1
  237. package/lib/services/SPTermStorePickerService.d.ts +3 -3
  238. package/lib/services/SPTermStorePickerService.js +46 -15
  239. package/lib/services/SPTermStorePickerService.js.map +1 -1
  240. package/package.json +4 -2
  241. package/sonar-project.properties +0 -3
  242. package/.scannerwork/.sonar_lock +0 -0
  243. package/.scannerwork/css-bundle/bin/server +0 -15
  244. package/.scannerwork/css-bundle/lib/tsconfig.tsbuildinfo +0 -2025
  245. package/.scannerwork/css-bundle/package/package.json +0 -11
  246. package/.scannerwork/css-bundle/stylelintconfig.json +0 -1
  247. package/.scannerwork/report-task.txt +0 -8
@@ -66,7 +66,9 @@ var sp_lodash_subset_1 = require("@microsoft/sp-lodash-subset");
66
66
  var uniqBy = require("lodash/uniqBy");
67
67
  var TermParent_1 = require("./TermParent");
68
68
  var ErrorMessage_1 = require("./ErrorMessage");
69
+ var icons_1 = require("@uifabric/icons");
69
70
  var telemetry = require("../../common/telemetry");
71
+ var Constants_1 = require("../../common/Constants");
70
72
  /**
71
73
  * Image URLs / Base64
72
74
  */
@@ -75,6 +77,7 @@ exports.EXPANDED_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCA
75
77
  exports.GROUP_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC9SURBVDhPY2CgNXh1qEkdiJ8D8X90TNBuJM0V6IpBhoHFgIxebKYTIwYzAMNpxGhGdsFwNoBgNEFjAWsYgOSKiorMgPgbEP/Hgj8AxXpB0Yg1gQAldYuLix8/efLkzn8s4O7du9eAan7iM+DV/v37z546der/jx8/sJkBdhVOA5qbm08ePnwYrOjQoUOkGwDU+AFowLmjR4/idwGukAYaYAkMgxfPnj27h816kDg4DPABoAI/IP6DIxZA4l0AOd9H3QXl5+cAAAAASUVORK5CYII='; // /_layouts/15/Images/EMMGroup.png
76
78
  exports.TERMSET_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACaSURBVDhPrZLRCcAgDERdpZMIjuQA7uWH4CqdxMY0EQtNjKWB0A/77sxF55SKMTalk8a61lqCFqsLiwKac84ZRUUBi7MoYHVmAfjfjzE6vJqZQfie0AcwBQVW8ATi7AR7zGGGNSE6Q2cyLSPIjRswjO7qKhcPDN2hK46w05wZMcEUIG+HrzzcrRsQBIJ5hS8C9fGAPmRwu/9RFxW6L8CM4Ry8AAAAAElFTkSuQmCC'; // /_layouts/15/Images/EMMTermSet.png
77
79
  exports.TERM_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACzSURBVDhPY2AYNKCoqIgTiOcD8X8S8F6wB4Aa1IH4akNDw+mPHz++/E8EuHTp0jmQRSDNCcXFxa/XrVt3gAh9KEpgBvx/9OjRLVI1g9TDDYBp3rlz5//Kysr/IJoYgGEASPPatWsbQDQxAMOAbdu2gZ0FookBcAOePHlyhxgN6GqQY+Hdhg0bDpJqCNgAaDrQAnJuNDY2nvr06dMbYgw6e/bsabgBUEN4yEiJ2wdNViLfIQC3sTh2vtJcswAAAABJRU5ErkJggg==';
80
+ icons_1.initializeIcons();
78
81
  /**
79
82
  * Renders the controls for PropertyFieldTermPicker component
80
83
  */
@@ -86,6 +89,7 @@ var TaxonomyPicker = (function (_super) {
86
89
  function TaxonomyPicker(props) {
87
90
  var _this = _super.call(this, props) || this;
88
91
  _this.previousValues = [];
92
+ _this.invalidTerm = null;
89
93
  _this.cancel = true;
90
94
  /**
91
95
  * TermSet selection handler
@@ -142,6 +146,9 @@ var TaxonomyPicker = (function (_super) {
142
146
  if (!(typeof result === 'string')) return [3 /*break*/, 1];
143
147
  if (!result) {
144
148
  this.validated(value);
149
+ this.setState({
150
+ errorMessage: undefined
151
+ });
145
152
  }
146
153
  else {
147
154
  this.setState({
@@ -156,6 +163,9 @@ var TaxonomyPicker = (function (_super) {
156
163
  resolvedResult = _a.sent();
157
164
  if (!resolvedResult) {
158
165
  this.validated(value);
166
+ this.setState({
167
+ errorMessage: undefined
168
+ });
159
169
  }
160
170
  else {
161
171
  this.setState({
@@ -187,6 +197,8 @@ var TaxonomyPicker = (function (_super) {
187
197
  _this.onSave = _this.onSave.bind(_this);
188
198
  _this.termsChanged = _this.termsChanged.bind(_this);
189
199
  _this.termsFromPickerChanged = _this.termsFromPickerChanged.bind(_this);
200
+ _this.onInputChange = _this.onInputChange.bind(_this);
201
+ _this.onBlur = _this.onBlur.bind(_this);
190
202
  _this.termsService = new SPTermStorePickerService_1.default(_this.props, _this.props.context);
191
203
  return _this;
192
204
  }
@@ -212,7 +224,7 @@ var TaxonomyPicker = (function (_super) {
212
224
  activeNodes: nextProps.initialValues || []
213
225
  };
214
226
  }
215
- if (nextProps.errorMessage) {
227
+ if (nextProps.errorMessage !== this.props.errorMessage) {
216
228
  if (!newState) {
217
229
  newState = {};
218
230
  }
@@ -227,16 +239,16 @@ var TaxonomyPicker = (function (_super) {
227
239
  */
228
240
  TaxonomyPicker.prototype.validateTerms = function () {
229
241
  return __awaiter(this, void 0, void 0, function () {
230
- var _a, hideDeprecatedTags, hideTagsNotAvailableForTagging, initialValues, validateOnLoad, termsetNameOrID, isValidateOnLoad, notFoundTerms, notFoundTermIds, termSet, allTerms, _loop_1, i, len;
242
+ var _a, hideDeprecatedTags, hideTagsNotAvailableForTagging, initialValues, validateOnLoad, termsetNameOrID, useSessionStorage, isValidateOnLoad, notFoundTerms, notFoundTermIds, termSet, allTerms, _loop_1, i, len;
231
243
  return __generator(this, function (_b) {
232
244
  switch (_b.label) {
233
245
  case 0:
234
- _a = this.props, hideDeprecatedTags = _a.hideDeprecatedTags, hideTagsNotAvailableForTagging = _a.hideTagsNotAvailableForTagging, initialValues = _a.initialValues, validateOnLoad = _a.validateOnLoad, termsetNameOrID = _a.termsetNameOrID;
246
+ _a = this.props, hideDeprecatedTags = _a.hideDeprecatedTags, hideTagsNotAvailableForTagging = _a.hideTagsNotAvailableForTagging, initialValues = _a.initialValues, validateOnLoad = _a.validateOnLoad, termsetNameOrID = _a.termsetNameOrID, useSessionStorage = _a.useSessionStorage;
235
247
  isValidateOnLoad = validateOnLoad && initialValues && initialValues.length >= 1;
236
248
  if (!isValidateOnLoad) return [3 /*break*/, 2];
237
249
  notFoundTerms = [];
238
250
  notFoundTermIds = [];
239
- return [4 /*yield*/, this.termsService.getAllTerms(termsetNameOrID, hideDeprecatedTags, hideTagsNotAvailableForTagging)];
251
+ return [4 /*yield*/, this.termsService.getAllTerms(termsetNameOrID, hideDeprecatedTags, hideTagsNotAvailableForTagging, useSessionStorage)];
240
252
  case 1:
241
253
  termSet = _b.sent();
242
254
  allTerms = termSet.Terms;
@@ -273,7 +285,7 @@ var TaxonomyPicker = (function (_super) {
273
285
  // x.initialize(this.termsService);
274
286
  // });
275
287
  }
276
- this.termsService.getAllTerms(this.props.termsetNameOrID, this.props.hideDeprecatedTags, this.props.hideTagsNotAvailableForTagging).then(function (response) {
288
+ this.termsService.getAllTerms(this.props.termsetNameOrID, this.props.hideDeprecatedTags, this.props.hideTagsNotAvailableForTagging, this.props.useSessionStorage).then(function (response) {
277
289
  // Check if a response was retrieved
278
290
  var termSetAndTerms = response ? response : null;
279
291
  _this.setState({
@@ -290,7 +302,7 @@ var TaxonomyPicker = (function (_super) {
290
302
  var termSetAndTerms;
291
303
  return __generator(this, function (_a) {
292
304
  switch (_a.label) {
293
- case 0: return [4 /*yield*/, this.termsService.getAllTerms(this.props.termsetNameOrID, this.props.hideDeprecatedTags, this.props.hideTagsNotAvailableForTagging)];
305
+ case 0: return [4 /*yield*/, this.termsService.getAllTerms(this.props.termsetNameOrID, this.props.hideDeprecatedTags, this.props.hideTagsNotAvailableForTagging, this.props.useSessionStorage)];
294
306
  case 1:
295
307
  termSetAndTerms = _a.sent();
296
308
  this.setState({
@@ -347,10 +359,12 @@ var TaxonomyPicker = (function (_super) {
347
359
  * @param node
348
360
  */
349
361
  TaxonomyPicker.prototype.termsChanged = function (term, checked) {
350
- var activeNodes = this.state.activeNodes;
362
+ var activeNodes = this.state.activeNodes.slice();
351
363
  if (typeof term === 'undefined' || term === null) {
352
364
  return;
353
365
  }
366
+ var _a = this.props, allowMultipleSelections = _a.allowMultipleSelections, selectChildrenIfParentSelected = _a.selectChildrenIfParentSelected;
367
+ var termSetAndTerms = this.state.termSetAndTerms;
354
368
  // Term item to add to the active nodes array
355
369
  var termItem = {
356
370
  name: term.Name,
@@ -358,26 +372,55 @@ var TaxonomyPicker = (function (_super) {
358
372
  path: term.PathOfTerm,
359
373
  termSet: term.TermSet.Id
360
374
  };
375
+ // Check if we need to process child terms
376
+ var children = [];
377
+ if (allowMultipleSelections && selectChildrenIfParentSelected) {
378
+ if (term.Id === term.TermSet.Id) {
379
+ children = termSetAndTerms.Terms || [];
380
+ }
381
+ else {
382
+ children = termSetAndTerms.Terms ? termSetAndTerms.Terms.filter(function (t) {
383
+ return t.PathOfTerm.indexOf("" + term.PathOfTerm) !== -1;
384
+ }) : [];
385
+ }
386
+ }
361
387
  // Check if the term is checked or unchecked
362
388
  if (checked) {
363
389
  // Check if it is allowed to select multiple terms
364
- if (this.props.allowMultipleSelections) {
390
+ if (allowMultipleSelections) {
365
391
  // Add the checked term
366
392
  activeNodes.push(termItem);
367
- // Filter out the duplicate terms
368
- activeNodes = uniqBy(activeNodes, 'key');
369
393
  }
370
394
  else {
371
395
  // Only store the current selected item
372
396
  activeNodes = [termItem];
373
397
  }
398
+ if (children.length) {
399
+ activeNodes.push.apply(activeNodes, children.map(function (c) {
400
+ return {
401
+ name: c.Name,
402
+ key: c.Id,
403
+ path: c.PathOfTerm,
404
+ termSet: c.TermSet.Id
405
+ };
406
+ }));
407
+ }
408
+ // Filter out the duplicate terms
409
+ activeNodes = uniqBy(activeNodes, 'key');
374
410
  }
375
411
  else {
376
412
  // Remove the term from the list of active nodes
377
413
  activeNodes = activeNodes.filter(function (item) { return item.key !== term.Id; });
414
+ if (children.length) {
415
+ var childIds_1 = children.map(function (c) { return c.Id; });
416
+ activeNodes = activeNodes.filter(function (item) { return childIds_1.indexOf(item.key) === -1; });
417
+ }
378
418
  }
379
419
  // Sort all active nodes
380
420
  activeNodes = sp_lodash_subset_1.sortBy(activeNodes, 'path');
421
+ if (this.props.onPanelSelectionChange) {
422
+ this.props.onPanelSelectionChange(this.state.activeNodes.slice(), activeNodes);
423
+ }
381
424
  // Update the current state
382
425
  this.setState({
383
426
  activeNodes: activeNodes
@@ -393,6 +436,100 @@ var TaxonomyPicker = (function (_super) {
393
436
  });
394
437
  this.validate(terms);
395
438
  };
439
+ /**
440
+ * Shows an error message for any invalid input inside taxonomy picker control
441
+ */
442
+ TaxonomyPicker.prototype.validateInputText = function () {
443
+ // Show error message, if any unresolved value exists inside taxonomy picker control
444
+ if (!!this.invalidTerm) {
445
+ // An unresolved value exists
446
+ this.setState({
447
+ errorMessage: strings.TaxonomyPickerInvalidTerms.replace('{0}', this.invalidTerm)
448
+ });
449
+ }
450
+ else {
451
+ // There are no unresolved values
452
+ this.setState({
453
+ errorMessage: null
454
+ });
455
+ }
456
+ };
457
+ /**
458
+ * Triggers when input of taxonomy picker control changes
459
+ */
460
+ TaxonomyPicker.prototype.onInputChange = function (input) {
461
+ if (!input) {
462
+ var validateInput = this.props.validateInput;
463
+ if (!!validateInput) {
464
+ // Perform validation of input text, only if taxonomy picker is configured with validateInput={true} property.
465
+ this.invalidTerm = null;
466
+ this.validateInputText();
467
+ }
468
+ }
469
+ return input;
470
+ };
471
+ TaxonomyPicker.prototype.validateOnGetErrorMessage = function (targetValue) {
472
+ return __awaiter(this, void 0, void 0, function () {
473
+ var errorMessage;
474
+ return __generator(this, function (_a) {
475
+ switch (_a.label) {
476
+ case 0: return [4 /*yield*/, this.props.onGetErrorMessage([
477
+ {
478
+ key: Constants_1.EmptyGuid,
479
+ name: targetValue,
480
+ path: targetValue,
481
+ termSet: this.termsService.cleanGuid(this.props.termsetNameOrID)
482
+ }
483
+ ])];
484
+ case 1:
485
+ errorMessage = _a.sent();
486
+ if (!!errorMessage) {
487
+ this.setState({
488
+ errorMessage: errorMessage
489
+ });
490
+ }
491
+ else {
492
+ this.setState({
493
+ errorMessage: null
494
+ });
495
+ }
496
+ return [2 /*return*/, !errorMessage];
497
+ }
498
+ });
499
+ });
500
+ };
501
+ /**
502
+ * Triggers when taxonomy picker control loses focus
503
+ */
504
+ TaxonomyPicker.prototype.onBlur = function (event) {
505
+ return __awaiter(this, void 0, void 0, function () {
506
+ var validateInput, target, targetValue;
507
+ return __generator(this, function (_a) {
508
+ switch (_a.label) {
509
+ case 0:
510
+ validateInput = this.props.validateInput;
511
+ if (!!!validateInput) return [3 /*break*/, 3];
512
+ target = event.target;
513
+ targetValue = !!target ? target.value : null;
514
+ if (!(!!this.props.onGetErrorMessage && !!targetValue)) return [3 /*break*/, 2];
515
+ return [4 /*yield*/, this.validateOnGetErrorMessage(targetValue)];
516
+ case 1:
517
+ _a.sent();
518
+ return [3 /*break*/, 3];
519
+ case 2:
520
+ if (!!targetValue) {
521
+ this.invalidTerm = targetValue;
522
+ }
523
+ else {
524
+ this.invalidTerm = null;
525
+ }
526
+ this.validateInputText();
527
+ _a.label = 3;
528
+ case 3: return [2 /*return*/];
529
+ }
530
+ });
531
+ });
532
+ };
396
533
  /**
397
534
  * Gets the given node position in the active nodes collection
398
535
  * @param node
@@ -416,7 +553,7 @@ var TaxonomyPicker = (function (_super) {
416
553
  label && React.createElement(Label_1.Label, { required: required }, label),
417
554
  React.createElement("div", { className: TaxonomyPicker_module_scss_1.default.termField },
418
555
  React.createElement("div", { className: TaxonomyPicker_module_scss_1.default.termFieldInput },
419
- React.createElement(TermPicker_1.default, { context: context, termPickerHostProps: this.props, disabled: disabled, value: activeNodes, isTermSetSelectable: isTermSetSelectable, onChanged: this.termsFromPickerChanged, allowMultipleSelections: allowMultipleSelections, disabledTermIds: disabledTermIds, disableChildrenOfDisabledParents: disableChildrenOfDisabledParents, placeholder: placeholder })),
556
+ React.createElement(TermPicker_1.default, { context: context, termPickerHostProps: this.props, disabled: disabled, value: activeNodes, isTermSetSelectable: isTermSetSelectable, onChanged: this.termsFromPickerChanged, onInputChange: this.onInputChange, onBlur: this.onBlur, allowMultipleSelections: allowMultipleSelections, disabledTermIds: disabledTermIds, disableChildrenOfDisabledParents: disableChildrenOfDisabledParents, placeholder: placeholder })),
420
557
  React.createElement("div", { className: TaxonomyPicker_module_scss_1.default.termFieldButton },
421
558
  React.createElement(Button_1.IconButton, { disabled: disabled, iconProps: { iconName: 'Tag' }, onClick: this.onOpenPanel }))),
422
559
  React.createElement(ErrorMessage_1.default, { errorMessage: errorMessage || internalErrorMessage }),
@@ -1 +1 @@
1
- {"version":3,"sources":["controls/taxonomyPicker/TaxonomyPicker.tsx"],"names":[],"mappings":"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","file":"controls/taxonomyPicker/TaxonomyPicker.js","sourcesContent":["import * as React from 'react';\nimport { PrimaryButton, DefaultButton, IconButton } from 'office-ui-fabric-react/lib/Button';\nimport { Panel, PanelType } from 'office-ui-fabric-react/lib/Panel';\nimport { Spinner, SpinnerType } from 'office-ui-fabric-react/lib/Spinner';\nimport { Label } from 'office-ui-fabric-react/lib/Label';\nimport TermPicker from './TermPicker';\nimport { IPickerTerms, IPickerTerm } from './ITermPicker';\nimport { ITaxonomyPickerProps, ITaxonomyPickerState } from './ITaxonomyPicker';\nimport SPTermStorePickerService from './../../services/SPTermStorePickerService';\nimport { ITermSet, ITerm } from './../../services/ISPTermStorePickerService';\nimport * as strings from 'ControlStrings';\nimport styles from './TaxonomyPicker.module.scss';\nimport { sortBy, cloneDeep, isEqual } from '@microsoft/sp-lodash-subset';\nimport uniqBy = require('lodash/uniqBy');\nimport TermParent from './TermParent';\nimport FieldErrorMessage from './ErrorMessage';\n\nimport * as telemetry from '../../common/telemetry';\n\n/**\n * Image URLs / Base64\n */\nexport const COLLAPSED_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjEwcrIlkgAAAIJJREFUOE/NkjEKwCAMRdu7ewZXJ/EqHkJwE9TBCwR+a6FLUQsRwYBTeD8/35wADnZVmPvY4OOYO3UNbK1FKeUWH+fRtK21hjEG3vuhQBdOKUEpBedcV6ALExFijJBSIufcFBjCVSCEACEEqpNvBmsmT+3MTnvqn/+O4+1vdtv7274APmNjtuXVz6sAAAAASUVORK5CYII='; // /_layouts/15/images/MDNCollapsed.png\nexport const EXPANDED_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjEwcrIlkgAAAFtJREFUOE9j/P//PwPZAKSZXEy2RrCLybV1CGjetWvX/46ODqBLUQOXoJ9BGtXU1MCYJM0wjZGRkaRpRtZIkmZ0jSRpBgUOzJ8wmqwAw5eICIb2qGYSkyfNAgwAasU+UQcFvD8AAAAASUVORK5CYII='; // /_layouts/15/images/MDNExpanded.png\nexport const GROUP_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC9SURBVDhPY2CgNXh1qEkdiJ8D8X90TNBuJM0V6IpBhoHFgIxebKYTIwYzAMNpxGhGdsFwNoBgNEFjAWsYgOSKiorMgPgbEP/Hgj8AxXpB0Yg1gQAldYuLix8/efLkzn8s4O7du9eAan7iM+DV/v37z546der/jx8/sJkBdhVOA5qbm08ePnwYrOjQoUOkGwDU+AFowLmjR4/idwGukAYaYAkMgxfPnj27h816kDg4DPABoAI/IP6DIxZA4l0AOd9H3QXl5+cAAAAASUVORK5CYII='; // /_layouts/15/Images/EMMGroup.png\nexport const TERMSET_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACaSURBVDhPrZLRCcAgDERdpZMIjuQA7uWH4CqdxMY0EQtNjKWB0A/77sxF55SKMTalk8a61lqCFqsLiwKac84ZRUUBi7MoYHVmAfjfjzE6vJqZQfie0AcwBQVW8ATi7AR7zGGGNSE6Q2cyLSPIjRswjO7qKhcPDN2hK46w05wZMcEUIG+HrzzcrRsQBIJ5hS8C9fGAPmRwu/9RFxW6L8CM4Ry8AAAAAElFTkSuQmCC'; // /_layouts/15/Images/EMMTermSet.png\nexport const TERM_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACzSURBVDhPY2AYNKCoqIgTiOcD8X8S8F6wB4Aa1IH4akNDw+mPHz++/E8EuHTp0jmQRSDNCcXFxa/XrVt3gAh9KEpgBvx/9OjRLVI1g9TDDYBp3rlz5//Kysr/IJoYgGEASPPatWsbQDQxAMOAbdu2gZ0FookBcAOePHlyhxgN6GqQY+Hdhg0bDpJqCNgAaDrQAnJuNDY2nvr06dMbYgw6e/bsabgBUEN4yEiJ2wdNViLfIQC3sTh2vtJcswAAAABJRU5ErkJggg==';\n\n/**\n * Renders the controls for PropertyFieldTermPicker component\n */\nexport class TaxonomyPicker extends React.Component<ITaxonomyPickerProps, ITaxonomyPickerState> {\n private termsService: SPTermStorePickerService;\n private previousValues: IPickerTerms = [];\n private cancel: boolean = true;\n\n /**\n * Constructor method\n */\n constructor(props: ITaxonomyPickerProps) {\n super(props);\n\n telemetry.track('ReactTaxonomyPicker');\n\n this.state = {\n activeNodes: this.props.initialValues || [],\n termSetAndTerms: null,\n loaded: false,\n openPanel: false,\n errorMessage: props.errorMessage\n };\n\n this.onOpenPanel = this.onOpenPanel.bind(this);\n this.onClosePanel = this.onClosePanel.bind(this);\n this.onSave = this.onSave.bind(this);\n this.termsChanged = this.termsChanged.bind(this);\n this.termsFromPickerChanged = this.termsFromPickerChanged.bind(this);\n this.termsService = new SPTermStorePickerService(this.props, this.props.context);\n }\n\n /**\n * componentDidMount lifecycle hook\n */\n public componentDidMount() {\n this.validateTerms();\n }\n\n /**\n * componentWillMount lifecycle hook\n */\n public componentWillMount(): void {\n this.setState({\n activeNodes: this.props.initialValues || []\n });\n }\n\n\n public componentWillReceiveProps(nextProps: ITaxonomyPickerProps) {\n let newState: ITaxonomyPickerState | undefined;\n // Check if the initial values objects are not equal, if that is the case, data can be refreshed\n if (!isEqual(this.props.initialValues, nextProps.initialValues)) {\n newState = {\n activeNodes: nextProps.initialValues || []\n };\n }\n\n if (nextProps.errorMessage) {\n if (!newState) {\n newState = {};\n }\n\n newState.errorMessage = nextProps.errorMessage;\n }\n\n if (newState) {\n this.setState(newState);\n }\n }\n\n /**\n * it checks, if all entries still exist in term store. if allowMultipleSelections is true. it have to validate all values\n */\n private async validateTerms(): Promise<void> {\n\n const {\n hideDeprecatedTags,\n hideTagsNotAvailableForTagging,\n initialValues,\n validateOnLoad,\n termsetNameOrID\n } = this.props;\n\n let isValidateOnLoad = validateOnLoad && initialValues && initialValues.length >= 1;\n if (isValidateOnLoad) {\n\n const notFoundTerms: string[] = [];\n const notFoundTermIds: string[] = [];\n\n const termSet = await this.termsService.getAllTerms(termsetNameOrID, hideDeprecatedTags, hideTagsNotAvailableForTagging);\n const allTerms = termSet.Terms;\n\n for (let i = 0, len = initialValues.length; i < len; i++) {\n const pickerTerm = initialValues[i];\n\n if (!allTerms.filter(t => t.Id === pickerTerm.key).length) {\n notFoundTerms.push(pickerTerm.name);\n notFoundTermIds.push(pickerTerm.key);\n }\n }\n\n if (notFoundTerms.length) {\n this.setState({\n internalErrorMessage: strings.TaxonomyPickerTermsNotFound.replace('{0}', notFoundTerms.join(', ')),\n invalidNodeIds: notFoundTermIds\n });\n }\n }\n }\n\n /**\n * Loads the list from SharePoint current web site\n */\n private loadTermStores(): void {\n\n\n if (this.props.termActions && this.props.termActions.initialize) {\n this.props.termActions.initialize(this.termsService);\n // this.props.termActions.actions.forEach(x => {\n // x.initialize(this.termsService);\n // });\n }\n\n this.termsService.getAllTerms(this.props.termsetNameOrID, this.props.hideDeprecatedTags, this.props.hideTagsNotAvailableForTagging).then((response: ITermSet) => {\n // Check if a response was retrieved\n let termSetAndTerms = response ? response : null;\n this.setState({\n termSetAndTerms,\n loaded: true\n });\n });\n }\n\n /**\n * Force update of the taxonomy tree - required by term action in case the term has been added, deleted or moved.\n */\n private async updateTaxonomyTree(): Promise<void> {\n const termSetAndTerms = await this.termsService.getAllTerms(this.props.termsetNameOrID, this.props.hideDeprecatedTags, this.props.hideTagsNotAvailableForTagging);\n\n this.setState({\n termSetAndTerms\n });\n }\n\n /**\n * Open the right Panel\n */\n private onOpenPanel(): void {\n if (this.props.disabled === true) {\n return;\n }\n\n // Store the current code value\n this.previousValues = cloneDeep(this.state.activeNodes);\n this.cancel = true;\n\n this.loadTermStores();\n\n this.setState({\n openPanel: true,\n loaded: false\n });\n }\n\n /**\n * Close the panel\n */\n private onClosePanel(): void {\n\n this.setState(() => {\n const newState: ITaxonomyPickerState = {\n openPanel: false,\n loaded: false\n };\n\n // Check if the property has to be reset\n if (this.cancel) {\n newState.activeNodes = this.previousValues;\n }\n\n return newState;\n });\n }\n\n /**\n * On save click action\n */\n private onSave(): void {\n this.cancel = false;\n this.onClosePanel();\n\n this.validate(this.state.activeNodes);\n }\n\n /**\n * Clicks on a node\n * @param node\n */\n private termsChanged(term: ITerm, checked: boolean): void {\n\n let activeNodes = this.state.activeNodes;\n if (typeof term === 'undefined' || term === null) {\n return;\n }\n\n // Term item to add to the active nodes array\n const termItem = {\n name: term.Name,\n key: term.Id,\n path: term.PathOfTerm,\n termSet: term.TermSet.Id\n };\n\n // Check if the term is checked or unchecked\n if (checked) {\n // Check if it is allowed to select multiple terms\n if (this.props.allowMultipleSelections) {\n // Add the checked term\n activeNodes.push(termItem);\n // Filter out the duplicate terms\n activeNodes = uniqBy(activeNodes, 'key');\n } else {\n // Only store the current selected item\n activeNodes = [termItem];\n }\n } else {\n // Remove the term from the list of active nodes\n activeNodes = activeNodes.filter(item => item.key !== term.Id);\n }\n // Sort all active nodes\n activeNodes = sortBy(activeNodes, 'path');\n // Update the current state\n this.setState({\n activeNodes: activeNodes\n });\n }\n\n /**\n * Fires When Items Changed in TermPicker\n * @param node\n */\n private termsFromPickerChanged(terms: IPickerTerms) {\n this.setState({\n activeNodes: terms\n });\n\n this.validate(terms);\n }\n\n\n /**\n * Gets the given node position in the active nodes collection\n * @param node\n */\n private getSelectedNodePosition(node: IPickerTerm): number {\n for (let i = 0; i < this.state.activeNodes.length; i++) {\n if (node.key === this.state.activeNodes[i].key) {\n return i;\n }\n }\n return -1;\n }\n\n /**\n * TermSet selection handler\n * @param termSet\n * @param isChecked\n */\n private termSetSelectedChange = (termSet: ITermSet, isChecked: boolean) => {\n const ts: ITermSet = { ...termSet };\n // Clean /Guid.../ from the ID\n ts.Id = this.termsService.cleanGuid(ts.Id);\n // Create a term for the termset\n const term: ITerm = {\n Name: ts.Name,\n Id: ts.Id,\n TermSet: ts,\n PathOfTerm: \"\",\n _ObjectType_: ts._ObjectType_,\n _ObjectIdentity_: ts._ObjectIdentity_,\n Description: ts.Description,\n IsDeprecated: null,\n IsAvailableForTagging: null,\n IsRoot: null\n };\n\n // Trigger the normal change event\n this.termsChanged(term, isChecked);\n }\n\n private validate = async (value: IPickerTerms): Promise<void> => {\n\n //\n // checking if there are any invalid nodes left after initial validation\n //\n if (this.state.invalidNodeIds) {\n const changedInvalidNodeIds = this.state.invalidNodeIds.filter(id => {\n return !!value.filter(term => term.key === id).length;\n });\n\n let internalErrorMessage = changedInvalidNodeIds.length ? this.state.internalErrorMessage : '';\n\n this.setState({\n invalidNodeIds: changedInvalidNodeIds,\n internalErrorMessage: internalErrorMessage\n });\n }\n\n if (this.props.errorMessage || !this.props.onGetErrorMessage) { // ignoring all onGetErrorMessage logic\n this.validated(value);\n return;\n }\n\n const result: string | PromiseLike<string> = this.props.onGetErrorMessage(value || []);\n\n if (!result) {\n this.validated(value);\n return;\n }\n\n if (typeof result === 'string') {\n if (!result) {\n this.validated(value);\n }\n else {\n this.setState({\n errorMessage: result\n });\n }\n }\n else {\n try {\n const resolvedResult = await result;\n\n if (!resolvedResult) {\n this.validated(value);\n }\n else {\n this.setState({\n errorMessage: resolvedResult\n });\n }\n }\n catch (err) {\n this.validated(value);\n }\n }\n }\n\n private validated = (value: IPickerTerms): void => {\n this.props.onChange(value);\n }\n\n /**\n * Renders the SPListpicker controls with Office UI Fabric\n */\n public render(): JSX.Element {\n const {\n label,\n context,\n disabled,\n isTermSetSelectable,\n allowMultipleSelections,\n disabledTermIds, disableChildrenOfDisabledParents,\n placeholder,\n panelTitle,\n anchorId,\n termActions,\n required\n } = this.props;\n\n const {\n activeNodes,\n errorMessage,\n internalErrorMessage,\n openPanel,\n loaded,\n termSetAndTerms\n } = this.state;\n\n return (\n <div>\n {label && <Label required={required}>{label}</Label>}\n <div className={styles.termField}>\n <div className={styles.termFieldInput}>\n <TermPicker\n context={context}\n termPickerHostProps={this.props}\n disabled={disabled}\n value={activeNodes}\n isTermSetSelectable={isTermSetSelectable}\n onChanged={this.termsFromPickerChanged}\n allowMultipleSelections={allowMultipleSelections}\n disabledTermIds={disabledTermIds}\n disableChildrenOfDisabledParents={disableChildrenOfDisabledParents}\n placeholder={placeholder} />\n </div>\n <div className={styles.termFieldButton}>\n <IconButton disabled={disabled} iconProps={{ iconName: 'Tag' }} onClick={this.onOpenPanel} />\n </div>\n </div>\n\n <FieldErrorMessage errorMessage={errorMessage || internalErrorMessage} />\n\n <Panel\n isOpen={openPanel}\n hasCloseButton={true}\n onDismiss={this.onClosePanel}\n isLightDismiss={true}\n type={PanelType.medium}\n headerText={panelTitle}\n onRenderFooterContent={() => {\n return (\n <div className={styles.actions}>\n <PrimaryButton iconProps={{ iconName: 'Save' }} text={strings.SaveButtonLabel} value=\"Save\" onClick={this.onSave} />\n <DefaultButton iconProps={{ iconName: 'Cancel' }} text={strings.CancelButtonLabel} value=\"Cancel\" onClick={this.onClosePanel} />\n </div>\n );\n }}>\n\n {\n /* Show spinner in the panel while retrieving terms */\n loaded === false ? <Spinner type={SpinnerType.normal} /> : ''\n }\n {\n loaded === true && termSetAndTerms && (\n <div key={termSetAndTerms.Id} >\n <h3>{termSetAndTerms.Name}</h3>\n <TermParent anchorId={anchorId}\n autoExpand={null}\n termset={termSetAndTerms}\n isTermSetSelectable={isTermSetSelectable}\n termSetSelectedChange={this.termSetSelectedChange}\n activeNodes={activeNodes}\n disabledTermIds={disabledTermIds}\n disableChildrenOfDisabledParents={disableChildrenOfDisabledParents}\n changedCallback={this.termsChanged}\n multiSelection={allowMultipleSelections}\n spTermService={this.termsService}\n\n updateTaxonomyTree={this.updateTaxonomyTree}\n termActions={termActions}\n />\n </div>\n )\n }\n </Panel>\n </div >\n );\n }\n}\n"],"sourceRoot":"../../../src"}
1
+ {"version":3,"sources":["controls/taxonomyPicker/TaxonomyPicker.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA+B;AAC/B,4DAA6F;AAC7F,0DAAoE;AAEpE,8DAA0E;AAC1E,0DAAyD;AACzD,2CAAsC;AAGtC,sFAAiF;AAEjF,wCAA0C;AAC1C,2EAAkD;AAClD,gEAAyE;AACzE,sCAAyC;AACzC,2CAAsC;AACtC,+CAA+C;AAC/C,yCAAkD;AAClD,kDAAoD;AACpD,oDAAmD;AAEnD;;GAEG;AACU,QAAA,aAAa,GAAG,oaAAoa,CAAC,CAAC,uCAAuC;AAC7d,QAAA,YAAY,GAAG,gXAAgX,CAAC,CAAC,sCAAsC;AACva,QAAA,SAAS,GAAG,oaAAoa,CAAC,CAAC,mCAAmC;AACrd,QAAA,WAAW,GAAG,oXAAoX,CAAC,CAAC,qCAAqC;AACza,QAAA,QAAQ,GAAG,wZAAwZ,CAAC;AAEjb,uBAAe,EAAE,CAAC;AAElB;;GAEG;AACH;IAAoC,kCAA2D;IAM7F;;OAEG;IACH,wBAAY,KAA2B;QAAvC,YACE,kBAAM,KAAK,CAAC,SAqBb;QA7BO,oBAAc,GAAiB,EAAE,CAAC;QAClC,iBAAW,GAAW,IAAI,CAAC;QAC3B,YAAM,GAAY,IAAI,CAAC;QA+X/B;;;;WAIG;QACK,2BAAqB,GAAG,UAAC,OAAiB,EAAE,SAAkB;YACpE,IAAM,EAAE,gBAAkB,OAAO,CAAE,CAAC;YACpC,8BAA8B;YAC9B,EAAE,CAAC,EAAE,GAAG,KAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3C,gCAAgC;YAChC,IAAM,IAAI,GAAU;gBAClB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE,CAAC,YAAY;gBAC7B,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;gBACrC,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,YAAY,EAAE,IAAI;gBAClB,qBAAqB,EAAE,IAAI;gBAC3B,MAAM,EAAE,IAAI;aACb,CAAC;YAEF,kCAAkC;YAClC,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC,CAAA;QAEO,cAAQ,GAAG,UAAO,KAAmB;;;;;wBAC3C,EAAE;wBACF,wEAAwE;wBACxE,EAAE;wBACF,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;4BACxB,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,UAAA,EAAE;gCAC/D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,GAAG,KAAK,EAAE,EAAf,CAAe,CAAC,CAAC,MAAM,CAAC;4BACxD,CAAC,CAAC,CAAC;4BAEC,oBAAoB,GAAG,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC;4BAE/F,IAAI,CAAC,QAAQ,CAAC;gCACZ,cAAc,EAAE,qBAAqB;gCACrC,oBAAoB,EAAE,oBAAoB;6BAC3C,CAAC,CAAC;wBACL,CAAC;wBAED,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;4BAC7D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;4BACtB,MAAM,gBAAC;wBACT,CAAC;wBAEK,MAAM,GAAiC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;wBAEvF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;4BACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;4BACtB,MAAM,gBAAC;wBACT,CAAC;6BAEG,CAAA,OAAO,MAAM,KAAK,QAAQ,CAAA,EAA1B,wBAA0B;wBAC5B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;4BACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;4BACtB,IAAI,CAAC,QAAQ,CAAC;gCACZ,YAAY,EAAE,SAAS;6BACxB,CAAC,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,CAAC;4BACJ,IAAI,CAAC,QAAQ,CAAC;gCACZ,YAAY,EAAE,MAAM;6BACrB,CAAC,CAAC;wBACL,CAAC;;;;wBAIwB,qBAAM,MAAM,EAAA;;wBAA7B,cAAc,GAAG,SAAY;wBAEnC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;4BACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;4BACtB,IAAI,CAAC,QAAQ,CAAC;gCACZ,YAAY,EAAE,SAAS;6BACxB,CAAC,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,CAAC;4BACJ,IAAI,CAAC,QAAQ,CAAC;gCACZ,YAAY,EAAE,cAAc;6BAC7B,CAAC,CAAC;wBACL,CAAC;;;;wBAGD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;;;;aAG3B,CAAA;QAEO,eAAS,GAAG,UAAC,KAAmB;YACtC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAA;QApdC,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAEvC,KAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,KAAI,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE;YAC3C,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC;QAEF,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAC/C,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACjD,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACrC,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACjD,KAAI,CAAC,sBAAsB,GAAG,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACrE,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACnD,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAErC,KAAI,CAAC,YAAY,GAAG,IAAI,kCAAwB,CAAC,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;IACnF,CAAC;IAED;;OAEG;IACI,0CAAiB,GAAxB;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,2CAAkB,GAAzB;QACE,IAAI,CAAC,QAAQ,CAAC;YACZ,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAGM,kDAAyB,GAAhC,UAAiC,SAA+B;QAC9D,IAAI,QAA0C,CAAC;QAC/C,gGAAgG;QAChG,EAAE,CAAC,CAAC,CAAC,0BAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChE,QAAQ,GAAG;gBACT,WAAW,EAAE,SAAS,CAAC,aAAa,IAAI,EAAE;aAC3C,CAAC;QACJ,CAAC;QAED,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YACvD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACd,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;YAED,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QACjD,CAAC;QAED,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;MAEE;IACY,sCAAa,GAA3B;;;;;;wBACQ,KAOF,IAAI,CAAC,KAAK,EANZ,kBAAkB,wBAAA,EAClB,8BAA8B,oCAAA,EAC9B,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,eAAe,qBAAA,EACf,iBAAiB,uBAAA,CACJ;wBAEX,gBAAgB,GAAG,cAAc,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;6BAChF,gBAAgB,EAAhB,wBAAgB;wBAEZ,aAAa,GAAa,EAAE,CAAC;wBAC7B,eAAe,GAAa,EAAE,CAAC;wBAErB,qBAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,iBAAiB,CAAC,EAAA;;wBAArI,OAAO,GAAG,SAA2H;wBACrI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;4CAEtB,CAAC,EAAM,GAAG;4BACjB,IAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAEpC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,GAAG,EAAvB,CAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gCAC1D,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gCACpC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;4BACvC,CAAC;wBACH,CAAC;wBAPD,GAAG,CAAC,CAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;oCAA/C,CAAC,EAAM,GAAG;yBAOlB;wBAED,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;4BACzB,IAAI,CAAC,QAAQ,CAAC;gCACZ,oBAAoB,EAAE,OAAO,CAAC,2BAA2B,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAClG,cAAc,EAAE,eAAe;6BAChC,CAAC,CAAC;wBACL,CAAC;;;;;;KAEJ;IAED;;OAEG;IACK,uCAAc,GAAtB;QAAA,iBAgBC;QAfC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrD,gDAAgD;YAChD,qCAAqC;YACrC,MAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAC,QAAkB;YACxL,oCAAoC;YACpC,IAAI,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;YACjD,KAAI,CAAC,QAAQ,CAAC;gBACZ,eAAe,iBAAA;gBACf,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACW,2CAAkB,GAAhC;;;;;4BAC0B,qBAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAA;;wBAAzL,eAAe,GAAG,SAAuK;wBAE/L,IAAI,CAAC,QAAQ,CAAC;4BACZ,eAAe,iBAAA;yBAChB,CAAC,CAAC;;;;;KACJ;IAED;;OAEG;IACK,oCAAW,GAAnB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC;QACT,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,cAAc,GAAG,4BAAS,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,QAAQ,CAAC;YACZ,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,qCAAY,GAApB;QAAA,iBAeC;QAbC,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAM,QAAQ,GAAyB;gBACrC,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,KAAK;aACd,CAAC;YAEF,wCAAwC;YACxC,EAAE,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChB,QAAQ,CAAC,WAAW,GAAG,KAAI,CAAC,cAAc,CAAC;YAC7C,CAAC;YAED,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,+BAAM,GAAd;QACE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACK,qCAAY,GAApB,UAAqB,IAAW,EAAE,OAAgB;QAEhD,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACjD,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC;QACT,CAAC;QAEK,IAAA,eAGQ,EAFZ,oDAAuB,EACvB,kEAA8B,CACjB;QAGb,IAAA,4CAAe,CACF;QAEf,6CAA6C;QAC7C,IAAM,QAAQ,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;SACzB,CAAC;QAEF,0CAA0C;QAC1C,IAAI,QAAQ,GAAY,EAAE,CAAC;QAC3B,EAAE,CAAC,CAAC,uBAAuB,IAAI,8BAA8B,CAAC,CAAC,CAAC;YAC9D,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,QAAQ,GAAG,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,QAAQ,GAAG,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,CAAC;oBAC/D,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAG,IAAI,CAAC,UAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3D,CAAC,CAAC,GAAG,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,kDAAkD;YAClD,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC5B,uBAAuB;gBACvB,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,uCAAuC;gBACvC,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAED,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpB,WAAW,CAAC,IAAI,OAAhB,WAAW,EAAS,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC;oBAChC,MAAM,CAAC;wBACL,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,GAAG,EAAE,CAAC,CAAC,EAAE;wBACT,IAAI,EAAE,CAAC,CAAC,UAAU;wBAClB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;qBACtB,CAAC;gBACJ,CAAC,CAAC,EAAE;YACN,CAAC;YAED,iCAAiC;YACjC,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,gDAAgD;YAChD,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,EAApB,CAAoB,CAAC,CAAC;YAE/D,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpB,IAAM,UAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;gBACzC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,UAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAjC,CAAiC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QACD,wBAAwB;QACxB,WAAW,GAAG,yBAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE1C,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;QACjF,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,CAAC;YACZ,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;;KAGC;IACO,+CAAsB,GAA9B,UAA+B,KAAmB;QAChD,IAAI,CAAC,QAAQ,CAAC;YACZ,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,0CAAiB,GAAzB;QACE,oFAAoF;QACpF,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvB,6BAA6B;YAC7B,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,OAAO,CAAC,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;aAClF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,iCAAiC;YACjC,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sCAAa,GAArB,UAAsB,KAAa;QACjC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACH,IAAA,wCAAa,CAAgB;YACrC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBACpB,8GAA8G;gBAC9G,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAEa,kDAAyB,GAAvC,UAAwC,WAAmB;;;;;4BACpC,qBAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CACrD;4BACE;gCACE,GAAG,EAAE,qBAAS;gCACd,IAAI,EAAE,WAAW;gCACjB,IAAI,EAAE,WAAW;gCACjB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;6BACjE;yBACF,CACF,EAAA;;wBATK,YAAY,GAAG,SASpB;wBAED,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;4BACnB,IAAI,CAAC,QAAQ,CAAC;gCACZ,YAAY,EAAE,YAAY;6BAC3B,CAAC,CAAC;wBACL,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACN,IAAI,CAAC,QAAQ,CAAC;gCACZ,YAAY,EAAE,IAAI;6BACnB,CAAC,CAAC;wBACL,CAAC;wBAED,sBAAO,CAAC,YAAY,EAAC;;;;KACtB;IAED;;OAEG;IACW,+BAAM,GAApB,UAAqB,KAA+C;;;;;;wBAC1D,aAAa,GAAK,IAAI,CAAC,KAAK,cAAf,CAAgB;6BACjC,CAAC,CAAC,aAAa,EAAf,wBAAe;wBAEX,MAAM,GAAqB,KAAK,CAAC,MAA0B,CAAC;wBAC5D,WAAW,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;6BAC/C,CAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,WAAW,CAAA,EAA/C,wBAA+C;wBACjD,qBAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAA;;wBAAjD,SAAiD,CAAC;;;wBAElD,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;4BAClB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;wBACjC,CAAC;wBACD,IAAI,CAAC,CAAC;4BACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBAC1B,CAAC;wBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;;;;;;KAG9B;IAED;;;OAGG;IACK,gDAAuB,GAA/B,UAAgC,IAAiB;QAC/C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAiGD;;OAEG;IACI,+BAAM,GAAb;QAAA,iBAgGC;QA/FO,IAAA,eAaQ,EAZZ,gBAAK,EACL,oBAAO,EACP,sBAAQ,EACR,4CAAmB,EACnB,oDAAuB,EACvB,oCAAe,EACf,sEAAgC,EAChC,4BAAW,EACX,0BAAU,EACV,sBAAQ,EACR,4BAAW,EACX,sBAAQ,CACK;QAET,IAAA,eAOQ,EANZ,4BAAW,EACX,8BAAY,EACZ,8CAAoB,EACpB,wBAAS,EACT,kBAAM,EACN,oCAAe,CACF;QAEf,MAAM,CAAC,CACL;YACG,KAAK,IAAI,oBAAC,aAAK,IAAC,QAAQ,EAAE,QAAQ,IAAG,KAAK,CAAS;YACpD,6BAAK,SAAS,EAAE,oCAAM,CAAC,SAAS;gBAC9B,6BAAK,SAAS,EAAE,oCAAM,CAAC,cAAc;oBACnC,oBAAC,oBAAU,IACT,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAC/B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,WAAW,EAClB,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,EAAE,IAAI,CAAC,sBAAsB,EACtC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,EAAE,eAAe,EAChC,gCAAgC,EAAE,gCAAgC,EAClE,WAAW,EAAE,WAAW,GAAI,CAC1B;gBACN,6BAAK,SAAS,EAAE,oCAAM,CAAC,eAAe;oBACpC,oBAAC,mBAAU,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,GAAI,CACzF,CACF;YAEN,oBAAC,sBAAiB,IAAC,YAAY,EAAE,YAAY,IAAI,oBAAoB,GAAI;YAEzE,oBAAC,aAAK,IACJ,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,IAAI,EACpB,SAAS,EAAE,IAAI,CAAC,YAAY,EAC5B,cAAc,EAAE,IAAI,EACpB,IAAI,EAAE,iBAAS,CAAC,MAAM,EACtB,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE;oBACrB,MAAM,CAAC,CACL,6BAAK,SAAS,EAAE,oCAAM,CAAC,OAAO;wBAC5B,oBAAC,sBAAa,IAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,KAAI,CAAC,MAAM,GAAI;wBACpH,oBAAC,sBAAa,IAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAI,CAAC,YAAY,GAAI,CAC5H,CACP,CAAC;gBACJ,CAAC;gBAGC,sDAAsD;gBACtD,MAAM,KAAK,KAAK,GAAG,oBAAC,iBAAO,IAAC,IAAI,EAAE,qBAAW,CAAC,MAAM,GAAI,GAAG,EAAE;gBAG7D,MAAM,KAAK,IAAI,IAAI,eAAe,IAAI,CACpC,6BAAK,GAAG,EAAE,eAAe,CAAC,EAAE;oBAC1B,gCAAK,eAAe,CAAC,IAAI,CAAM;oBAC/B,oBAAC,oBAAU,IAAC,QAAQ,EAAE,QAAQ,EAC5B,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,eAAe,EACxB,mBAAmB,EAAE,mBAAmB,EACxC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,gCAAgC,EAAE,gCAAgC,EAClE,eAAe,EAAE,IAAI,CAAC,YAAY,EAClC,cAAc,EAAE,uBAAuB,EACvC,aAAa,EAAE,IAAI,CAAC,YAAY,EAEhC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,WAAW,EAAE,WAAW,GACxB,CACE,CACP,CAEG,CACH,CACR,CAAC;IACJ,CAAC;IACH,qBAAC;AAAD,CAtkBA,AAskBC,CAtkBmC,KAAK,CAAC,SAAS,GAskBlD;AAtkBY,wCAAc","file":"controls/taxonomyPicker/TaxonomyPicker.js","sourcesContent":["import * as React from 'react';\nimport { PrimaryButton, DefaultButton, IconButton } from 'office-ui-fabric-react/lib/Button';\nimport { Panel, PanelType } from 'office-ui-fabric-react/lib/Panel';\nimport { Autofill } from 'office-ui-fabric-react/lib/components/Autofill/Autofill';\nimport { Spinner, SpinnerType } from 'office-ui-fabric-react/lib/Spinner';\nimport { Label } from 'office-ui-fabric-react/lib/Label';\nimport TermPicker from './TermPicker';\nimport { IPickerTerms, IPickerTerm } from './ITermPicker';\nimport { ITaxonomyPickerProps, ITaxonomyPickerState } from './ITaxonomyPicker';\nimport SPTermStorePickerService from './../../services/SPTermStorePickerService';\nimport { ITermSet, ITerm } from './../../services/ISPTermStorePickerService';\nimport * as strings from 'ControlStrings';\nimport styles from './TaxonomyPicker.module.scss';\nimport { sortBy, cloneDeep, isEqual } from '@microsoft/sp-lodash-subset';\nimport uniqBy = require('lodash/uniqBy');\nimport TermParent from './TermParent';\nimport FieldErrorMessage from './ErrorMessage';\nimport { initializeIcons } from '@uifabric/icons';\nimport * as telemetry from '../../common/telemetry';\nimport { EmptyGuid } from '../../common/Constants';\n\n/**\n * Image URLs / Base64\n */\nexport const COLLAPSED_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjEwcrIlkgAAAIJJREFUOE/NkjEKwCAMRdu7ewZXJ/EqHkJwE9TBCwR+a6FLUQsRwYBTeD8/35wADnZVmPvY4OOYO3UNbK1FKeUWH+fRtK21hjEG3vuhQBdOKUEpBedcV6ALExFijJBSIufcFBjCVSCEACEEqpNvBmsmT+3MTnvqn/+O4+1vdtv7274APmNjtuXVz6sAAAAASUVORK5CYII='; // /_layouts/15/images/MDNCollapsed.png\nexport const EXPANDED_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjEwcrIlkgAAAFtJREFUOE9j/P//PwPZAKSZXEy2RrCLybV1CGjetWvX/46ODqBLUQOXoJ9BGtXU1MCYJM0wjZGRkaRpRtZIkmZ0jSRpBgUOzJ8wmqwAw5eICIb2qGYSkyfNAgwAasU+UQcFvD8AAAAASUVORK5CYII='; // /_layouts/15/images/MDNExpanded.png\nexport const GROUP_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC9SURBVDhPY2CgNXh1qEkdiJ8D8X90TNBuJM0V6IpBhoHFgIxebKYTIwYzAMNpxGhGdsFwNoBgNEFjAWsYgOSKiorMgPgbEP/Hgj8AxXpB0Yg1gQAldYuLix8/efLkzn8s4O7du9eAan7iM+DV/v37z546der/jx8/sJkBdhVOA5qbm08ePnwYrOjQoUOkGwDU+AFowLmjR4/idwGukAYaYAkMgxfPnj27h816kDg4DPABoAI/IP6DIxZA4l0AOd9H3QXl5+cAAAAASUVORK5CYII='; // /_layouts/15/Images/EMMGroup.png\nexport const TERMSET_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACaSURBVDhPrZLRCcAgDERdpZMIjuQA7uWH4CqdxMY0EQtNjKWB0A/77sxF55SKMTalk8a61lqCFqsLiwKac84ZRUUBi7MoYHVmAfjfjzE6vJqZQfie0AcwBQVW8ATi7AR7zGGGNSE6Q2cyLSPIjRswjO7qKhcPDN2hK46w05wZMcEUIG+HrzzcrRsQBIJ5hS8C9fGAPmRwu/9RFxW6L8CM4Ry8AAAAAElFTkSuQmCC'; // /_layouts/15/Images/EMMTermSet.png\nexport const TERM_IMG = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACzSURBVDhPY2AYNKCoqIgTiOcD8X8S8F6wB4Aa1IH4akNDw+mPHz++/E8EuHTp0jmQRSDNCcXFxa/XrVt3gAh9KEpgBvx/9OjRLVI1g9TDDYBp3rlz5//Kysr/IJoYgGEASPPatWsbQDQxAMOAbdu2gZ0FookBcAOePHlyhxgN6GqQY+Hdhg0bDpJqCNgAaDrQAnJuNDY2nvr06dMbYgw6e/bsabgBUEN4yEiJ2wdNViLfIQC3sTh2vtJcswAAAABJRU5ErkJggg==';\n\ninitializeIcons();\n\n/**\n * Renders the controls for PropertyFieldTermPicker component\n */\nexport class TaxonomyPicker extends React.Component<ITaxonomyPickerProps, ITaxonomyPickerState> {\n private termsService: SPTermStorePickerService;\n private previousValues: IPickerTerms = [];\n private invalidTerm: string = null;\n private cancel: boolean = true;\n\n /**\n * Constructor method\n */\n constructor(props: ITaxonomyPickerProps) {\n super(props);\n\n telemetry.track('ReactTaxonomyPicker');\n\n this.state = {\n activeNodes: this.props.initialValues || [],\n termSetAndTerms: null,\n loaded: false,\n openPanel: false,\n errorMessage: props.errorMessage\n };\n\n this.onOpenPanel = this.onOpenPanel.bind(this);\n this.onClosePanel = this.onClosePanel.bind(this);\n this.onSave = this.onSave.bind(this);\n this.termsChanged = this.termsChanged.bind(this);\n this.termsFromPickerChanged = this.termsFromPickerChanged.bind(this);\n this.onInputChange = this.onInputChange.bind(this);\n this.onBlur = this.onBlur.bind(this);\n\n this.termsService = new SPTermStorePickerService(this.props, this.props.context);\n }\n\n /**\n * componentDidMount lifecycle hook\n */\n public componentDidMount() {\n this.validateTerms();\n }\n\n /**\n * componentWillMount lifecycle hook\n */\n public componentWillMount(): void {\n this.setState({\n activeNodes: this.props.initialValues || []\n });\n }\n\n\n public componentWillReceiveProps(nextProps: ITaxonomyPickerProps) {\n let newState: ITaxonomyPickerState | undefined;\n // Check if the initial values objects are not equal, if that is the case, data can be refreshed\n if (!isEqual(this.props.initialValues, nextProps.initialValues)) {\n newState = {\n activeNodes: nextProps.initialValues || []\n };\n }\n\n if (nextProps.errorMessage !== this.props.errorMessage) {\n if (!newState) {\n newState = {};\n }\n\n newState.errorMessage = nextProps.errorMessage;\n }\n\n if (newState) {\n this.setState(newState);\n }\n }\n\n /**\n * it checks, if all entries still exist in term store. if allowMultipleSelections is true. it have to validate all values\n */\n private async validateTerms(): Promise<void> {\n const {\n hideDeprecatedTags,\n hideTagsNotAvailableForTagging,\n initialValues,\n validateOnLoad,\n termsetNameOrID,\n useSessionStorage\n } = this.props;\n\n let isValidateOnLoad = validateOnLoad && initialValues && initialValues.length >= 1;\n if (isValidateOnLoad) {\n\n const notFoundTerms: string[] = [];\n const notFoundTermIds: string[] = [];\n\n const termSet = await this.termsService.getAllTerms(termsetNameOrID, hideDeprecatedTags, hideTagsNotAvailableForTagging, useSessionStorage);\n const allTerms = termSet.Terms;\n\n for (let i = 0, len = initialValues.length; i < len; i++) {\n const pickerTerm = initialValues[i];\n\n if (!allTerms.filter(t => t.Id === pickerTerm.key).length) {\n notFoundTerms.push(pickerTerm.name);\n notFoundTermIds.push(pickerTerm.key);\n }\n }\n\n if (notFoundTerms.length) {\n this.setState({\n internalErrorMessage: strings.TaxonomyPickerTermsNotFound.replace('{0}', notFoundTerms.join(', ')),\n invalidNodeIds: notFoundTermIds\n });\n }\n }\n }\n\n /**\n * Loads the list from SharePoint current web site\n */\n private loadTermStores(): void {\n if (this.props.termActions && this.props.termActions.initialize) {\n this.props.termActions.initialize(this.termsService);\n // this.props.termActions.actions.forEach(x => {\n // x.initialize(this.termsService);\n // });\n }\n\n this.termsService.getAllTerms(this.props.termsetNameOrID, this.props.hideDeprecatedTags, this.props.hideTagsNotAvailableForTagging, this.props.useSessionStorage).then((response: ITermSet) => {\n // Check if a response was retrieved\n let termSetAndTerms = response ? response : null;\n this.setState({\n termSetAndTerms,\n loaded: true\n });\n });\n }\n\n /**\n * Force update of the taxonomy tree - required by term action in case the term has been added, deleted or moved.\n */\n private async updateTaxonomyTree(): Promise<void> {\n const termSetAndTerms = await this.termsService.getAllTerms(this.props.termsetNameOrID, this.props.hideDeprecatedTags, this.props.hideTagsNotAvailableForTagging, this.props.useSessionStorage);\n\n this.setState({\n termSetAndTerms\n });\n }\n\n /**\n * Open the right Panel\n */\n private onOpenPanel(): void {\n if (this.props.disabled === true) {\n return;\n }\n\n // Store the current code value\n this.previousValues = cloneDeep(this.state.activeNodes);\n this.cancel = true;\n\n this.loadTermStores();\n\n this.setState({\n openPanel: true,\n loaded: false\n });\n }\n\n /**\n * Close the panel\n */\n private onClosePanel(): void {\n\n this.setState(() => {\n const newState: ITaxonomyPickerState = {\n openPanel: false,\n loaded: false\n };\n\n // Check if the property has to be reset\n if (this.cancel) {\n newState.activeNodes = this.previousValues;\n }\n\n return newState;\n });\n }\n\n /**\n * On save click action\n */\n private onSave(): void {\n this.cancel = false;\n this.onClosePanel();\n\n this.validate(this.state.activeNodes);\n }\n\n /**\n * Clicks on a node\n * @param node\n */\n private termsChanged(term: ITerm, checked: boolean): void {\n\n let activeNodes = this.state.activeNodes.slice();\n if (typeof term === 'undefined' || term === null) {\n return;\n }\n\n const {\n allowMultipleSelections,\n selectChildrenIfParentSelected\n } = this.props;\n\n const {\n termSetAndTerms\n } = this.state;\n\n // Term item to add to the active nodes array\n const termItem = {\n name: term.Name,\n key: term.Id,\n path: term.PathOfTerm,\n termSet: term.TermSet.Id\n };\n\n // Check if we need to process child terms\n let children: ITerm[] = [];\n if (allowMultipleSelections && selectChildrenIfParentSelected) {\n if (term.Id === term.TermSet.Id) {\n children = termSetAndTerms.Terms || [];\n } else {\n children = termSetAndTerms.Terms ? termSetAndTerms.Terms.filter(t => {\n return t.PathOfTerm.indexOf(`${term.PathOfTerm}`) !== -1;\n }) : [];\n }\n }\n\n // Check if the term is checked or unchecked\n if (checked) {\n // Check if it is allowed to select multiple terms\n if (allowMultipleSelections) {\n // Add the checked term\n activeNodes.push(termItem);\n } else {\n // Only store the current selected item\n activeNodes = [termItem];\n }\n\n if (children.length) {\n activeNodes.push(...children.map(c => {\n return {\n name: c.Name,\n key: c.Id,\n path: c.PathOfTerm,\n termSet: c.TermSet.Id\n };\n }));\n }\n\n // Filter out the duplicate terms\n activeNodes = uniqBy(activeNodes, 'key');\n } else {\n // Remove the term from the list of active nodes\n activeNodes = activeNodes.filter(item => item.key !== term.Id);\n\n if (children.length) {\n const childIds = children.map(c => c.Id);\n activeNodes = activeNodes.filter(item => childIds.indexOf(item.key) === -1);\n }\n }\n // Sort all active nodes\n activeNodes = sortBy(activeNodes, 'path');\n\n if (this.props.onPanelSelectionChange) {\n this.props.onPanelSelectionChange(this.state.activeNodes.slice(), activeNodes);\n }\n\n // Update the current state\n this.setState({\n activeNodes: activeNodes\n });\n }\n\n /**\n * Fires When Items Changed in TermPicker\n * @param node\n */\n private termsFromPickerChanged(terms: IPickerTerms) {\n this.setState({\n activeNodes: terms\n });\n\n this.validate(terms);\n }\n\n /**\n * Shows an error message for any invalid input inside taxonomy picker control\n */\n private validateInputText(): void {\n // Show error message, if any unresolved value exists inside taxonomy picker control\n if (!!this.invalidTerm) {\n // An unresolved value exists\n this.setState({\n errorMessage: strings.TaxonomyPickerInvalidTerms.replace('{0}', this.invalidTerm)\n });\n }\n else {\n // There are no unresolved values\n this.setState({\n errorMessage: null\n });\n }\n }\n\n /**\n * Triggers when input of taxonomy picker control changes\n */\n private onInputChange(input: string): string {\n if (!input) {\n const { validateInput } = this.props;\n if (!!validateInput) {\n // Perform validation of input text, only if taxonomy picker is configured with validateInput={true} property.\n this.invalidTerm = null;\n this.validateInputText();\n }\n }\n return input;\n }\n\n private async validateOnGetErrorMessage(targetValue: string): Promise<boolean> {\n const errorMessage = await this.props.onGetErrorMessage(\n [\n {\n key: EmptyGuid,\n name: targetValue,\n path: targetValue,\n termSet: this.termsService.cleanGuid(this.props.termsetNameOrID)\n }\n ]\n );\n\n if (!!errorMessage) {\n this.setState({\n errorMessage: errorMessage\n });\n } else {\n this.setState({\n errorMessage: null\n });\n }\n\n return !errorMessage;\n }\n\n /**\n * Triggers when taxonomy picker control loses focus\n */\n private async onBlur(event: React.FocusEvent<HTMLElement | Autofill>): Promise<void> {\n const { validateInput } = this.props;\n if (!!validateInput) {\n // Perform validation of input text, only if taxonomy picker is configured with validateInput={true} property.\n const target: HTMLInputElement = event.target as HTMLInputElement;\n const targetValue = !!target ? target.value : null;\n if (!!this.props.onGetErrorMessage && !!targetValue) {\n await this.validateOnGetErrorMessage(targetValue);\n } else {\n if (!!targetValue) {\n this.invalidTerm = targetValue;\n }\n else {\n this.invalidTerm = null;\n }\n this.validateInputText();\n }\n }\n }\n \n /**\n * Gets the given node position in the active nodes collection\n * @param node\n */\n private getSelectedNodePosition(node: IPickerTerm): number {\n for (let i = 0; i < this.state.activeNodes.length; i++) {\n if (node.key === this.state.activeNodes[i].key) {\n return i;\n }\n }\n return -1;\n }\n\n /**\n * TermSet selection handler\n * @param termSet\n * @param isChecked\n */\n private termSetSelectedChange = (termSet: ITermSet, isChecked: boolean) => {\n const ts: ITermSet = { ...termSet };\n // Clean /Guid.../ from the ID\n ts.Id = this.termsService.cleanGuid(ts.Id);\n // Create a term for the termset\n const term: ITerm = {\n Name: ts.Name,\n Id: ts.Id,\n TermSet: ts,\n PathOfTerm: \"\",\n _ObjectType_: ts._ObjectType_,\n _ObjectIdentity_: ts._ObjectIdentity_,\n Description: ts.Description,\n IsDeprecated: null,\n IsAvailableForTagging: null,\n IsRoot: null\n };\n\n // Trigger the normal change event\n this.termsChanged(term, isChecked);\n }\n\n private validate = async (value: IPickerTerms): Promise<void> => {\n //\n // checking if there are any invalid nodes left after initial validation\n //\n if (this.state.invalidNodeIds) {\n const changedInvalidNodeIds = this.state.invalidNodeIds.filter(id => {\n return !!value.filter(term => term.key === id).length;\n });\n\n let internalErrorMessage = changedInvalidNodeIds.length ? this.state.internalErrorMessage : '';\n\n this.setState({\n invalidNodeIds: changedInvalidNodeIds,\n internalErrorMessage: internalErrorMessage\n });\n }\n\n if (this.props.errorMessage || !this.props.onGetErrorMessage) { // ignoring all onGetErrorMessage logic\n this.validated(value);\n return;\n }\n\n const result: string | PromiseLike<string> = this.props.onGetErrorMessage(value || []);\n\n if (!result) {\n this.validated(value);\n return;\n }\n\n if (typeof result === 'string') {\n if (!result) {\n this.validated(value);\n this.setState({\n errorMessage: undefined\n });\n }\n else {\n this.setState({\n errorMessage: result\n });\n }\n }\n else {\n try {\n const resolvedResult = await result;\n\n if (!resolvedResult) {\n this.validated(value);\n this.setState({\n errorMessage: undefined\n });\n }\n else {\n this.setState({\n errorMessage: resolvedResult\n });\n }\n }\n catch (err) {\n this.validated(value);\n }\n }\n }\n\n private validated = (value: IPickerTerms): void => {\n this.props.onChange(value);\n }\n\n /**\n * Renders the SPListpicker controls with Office UI Fabric\n */\n public render(): JSX.Element {\n const {\n label,\n context,\n disabled,\n isTermSetSelectable,\n allowMultipleSelections,\n disabledTermIds, \n disableChildrenOfDisabledParents,\n placeholder,\n panelTitle,\n anchorId,\n termActions,\n required\n } = this.props;\n\n const {\n activeNodes,\n errorMessage,\n internalErrorMessage,\n openPanel,\n loaded,\n termSetAndTerms\n } = this.state;\n\n return (\n <div>\n {label && <Label required={required}>{label}</Label>}\n <div className={styles.termField}>\n <div className={styles.termFieldInput}>\n <TermPicker\n context={context}\n termPickerHostProps={this.props}\n disabled={disabled}\n value={activeNodes}\n isTermSetSelectable={isTermSetSelectable}\n onChanged={this.termsFromPickerChanged}\n onInputChange={this.onInputChange}\n onBlur={this.onBlur}\n allowMultipleSelections={allowMultipleSelections}\n disabledTermIds={disabledTermIds}\n disableChildrenOfDisabledParents={disableChildrenOfDisabledParents}\n placeholder={placeholder} />\n </div>\n <div className={styles.termFieldButton}>\n <IconButton disabled={disabled} iconProps={{ iconName: 'Tag' }} onClick={this.onOpenPanel} />\n </div>\n </div>\n\n <FieldErrorMessage errorMessage={errorMessage || internalErrorMessage} />\n\n <Panel\n isOpen={openPanel}\n hasCloseButton={true}\n onDismiss={this.onClosePanel}\n isLightDismiss={true}\n type={PanelType.medium}\n headerText={panelTitle}\n onRenderFooterContent={() => {\n return (\n <div className={styles.actions}>\n <PrimaryButton iconProps={{ iconName: 'Save' }} text={strings.SaveButtonLabel} value=\"Save\" onClick={this.onSave} />\n <DefaultButton iconProps={{ iconName: 'Cancel' }} text={strings.CancelButtonLabel} value=\"Cancel\" onClick={this.onClosePanel} />\n </div>\n );\n }}>\n\n {\n /* Show spinner in the panel while retrieving terms */\n loaded === false ? <Spinner type={SpinnerType.normal} /> : ''\n }\n {\n loaded === true && termSetAndTerms && (\n <div key={termSetAndTerms.Id} >\n <h3>{termSetAndTerms.Name}</h3>\n <TermParent anchorId={anchorId}\n autoExpand={null}\n termset={termSetAndTerms}\n isTermSetSelectable={isTermSetSelectable}\n termSetSelectedChange={this.termSetSelectedChange}\n activeNodes={activeNodes}\n disabledTermIds={disabledTermIds}\n disableChildrenOfDisabledParents={disableChildrenOfDisabledParents}\n changedCallback={this.termsChanged}\n multiSelection={allowMultipleSelections}\n spTermService={this.termsService}\n\n updateTaxonomyTree={this.updateTaxonomyTree}\n termActions={termActions}\n />\n </div>\n )\n }\n </Panel>\n </div >\n );\n }\n}\n"],"sourceRoot":"../../../src"}
@@ -1 +1 @@
1
- .contextualMenu_bbbc76e9{display:inline-block}.listItem_bbbc76e9{min-height:36px;line-height:36px;cursor:pointer}.listItem_bbbc76e9>div{display:inline-block;margin-right:10px}.listItem_bbbc76e9 img{margin-right:5px;vertical-align:middle}.termField_bbbc76e9{-ms-flex-align:center;align-items:center;border-spacing:0;display:-ms-flexbox;display:flex;width:100%}.termField_bbbc76e9 .termFieldInput_bbbc76e9{width:90%}.termField_bbbc76e9 .termFieldButton_bbbc76e9{text-align:center;width:10%}.termField_bbbc76e9 input[type=text]{cursor:pointer;opacity:.8;width:100%}.termset_bbbc76e9{cursor:pointer;margin-left:15px}.termSetSelectable_bbbc76e9{height:50px;line-height:50px}.termSetSelector_bbbc76e9{display:inline-block;margin:0 8px 0 4px;vertical-align:middle}.term_bbbc76e9{padding-left:20px}.term_bbbc76e9 .termDisabled_bbbc76e9,.term_bbbc76e9 .termEnabled_bbbc76e9,.term_bbbc76e9 .termNoTagging_bbbc76e9{background-repeat:no-repeat;background-position:30px center}.term_bbbc76e9 .termEnabled_bbbc76e9{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACzSURBVDhPY2AYNKCoqIgTiOcD8X8S8F6wB4Aa1IH4akNDw+mPHz++/E8EuHTp0jmQRSDNCcXFxa/XrVt3gAh9KEpgBvx/9OjRLVI1g9TDDYBp3rlz5//Kysr/IJoYgGEASPPatWsbQDQxAMOAbdu2gZ0FookBcAOePHlyhxgN6GqQY+Hdhg0bDpJqCNgAaDrQAnJuNDY2nvr06dMbYgw6e/bsabgBUEN4yEiJ2wdNViLfIQC3sTh2vtJcswAAAABJRU5ErkJggg==)}.term_bbbc76e9 .termDisabled_bbbc76e9{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFMSURBVDhPzZPNSsNAFIULQqEQEPoSQqAg7gqC0HdwXxAElyYgBBGSZ+gDdOUyIauULATdKrgIKCKuQjbiDySCkNV4TrkzpJW2cefAxwwzc86de2em0/k3zXGcHpgC9Qeu5glAsAMefN+/K8vyVbVoWZbdMxDFY9d136Ioum6hW9iiDVSe588rxDXmJ+AAdAWOOVcbAy1O01R5nqfYoxVglyk+Hu7Z4FiwOcc1GBRMwQSnOAxDHz0jDyCwwCVQS3DO0gU0BkmSzG8A/UQiz7DxC5yLGQ1PwDeYGYOiKF6WarCPDUOJeor+A4z0m8P4SNaG+hY+4zi+aZh0scEBNeB41DTBuCcGjj6FjaM/BUFwW1XVO6vdMNiSdIzJLwN5TJZ+iSLQKYwbR9cmZyaFdX+JhZIiMue+cLFQxA0G22uusd/6I8OEb4LXRwZN4Q+3Ys8Mb9+nRgAAAABJRU5ErkJggg==)}.term_bbbc76e9 .termNoTagging_bbbc76e9{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZBJREFUeNqkU0trwkAQnhURBBFPKghekuJN7KW9pOCj0Agl9/4uT/6BHgXpxQfxYKltKEYhV3tXFF/4RrOdXYgkxpz8YA47O983O9+whFIKt8DvddHv9wej0UjY7/dwPB55sGaJRKImSVLxXMiSl9Hr9fRWq0WvoVKpUFVVv6xaF1nX9R+LvFqteKAgrVarVNM0fi6Xy9Sq99mfjeTv2Wz2mMvlYL1en/OGYYCiKKTT6fAzG8flQbfb1ReLxX0+n4fJZOLwQxRFKJVKNJPJwHa7dZuI5I/lcsnJrHMwGHQUpdNpHp5bGI/Hr7IsA3Pc7/dcDEynU5jP5xAIBJwCpmmeN+IF9IaT0VA20p+V5yaGQqF2s9mE3W4Hh8PBFXZyLBbTstmsaAkQqyuu7nOz2UiCIEAkEoFwOMzz6A0n44YgHo8bhULBYQaxP7vRaLyjyFsqleIiDLbOAyTfXY5GLueu1+s1XNULE2Fg5Gg0qj4jrnlDrhmHIu3hcPh0Op0gmUz+IvfBy1xy62/0wY34F2AAKtctO7g/KgIAAAAASUVORK5CYII=)}.term_bbbc76e9 label>span{padding-left:25px}.actions_bbbc76e9 button:first-child{margin-right:15px}.termBasePicker_bbbc76e9{background-color:#fff}.termSuggestion_bbbc76e9{min-height:40px;width:100%;text-align:left;cursor:pointer}.termSuggestion_bbbc76e9 .termSuggestionSubTitle_bbbc76e9{font-size:12px;color:#666}.pickedTermRoot_bbbc76e9{position:relative;outline:transparent;box-sizing:content-box;-ms-flex-negative:1;flex-shrink:1;background:#f4f4f4;margin:2px;height:26px;line-height:26px;cursor:default;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;max-width:300px}.pickedTermRoot_bbbc76e9 .pickedTermText_bbbc76e9{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:30px;margin:0 8px}.pickedTermRoot_bbbc76e9 .pickedTermCloseIcon_bbbc76e9{cursor:pointer;color:#666;font-size:12px;display:inline-block;text-align:center;vertical-align:top;width:30px;height:100%;-ms-flex-negative:0;flex-shrink:0}.errorMessage_bbbc76e9{font-size:12px;font-weight:400;color:#a80000;margin:0;padding-top:5px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.errorIcon_bbbc76e9{font-size:14px;margin-right:5px}
1
+ .contextualMenu_0133ff2b{display:inline-block}.listItem_0133ff2b{min-height:36px;line-height:36px;cursor:pointer}.listItem_0133ff2b>div{display:inline-block;margin-right:10px}.listItem_0133ff2b img{margin-right:5px;vertical-align:middle}.termField_0133ff2b{-ms-flex-align:center;align-items:center;border-spacing:0;display:-ms-flexbox;display:flex;width:100%}.termField_0133ff2b .termFieldInput_0133ff2b{width:90%}.termField_0133ff2b .termFieldButton_0133ff2b{text-align:center;width:10%}.termField_0133ff2b input[type=text]{cursor:pointer;opacity:.8;width:100%}.termset_0133ff2b{cursor:pointer;margin-left:15px}.termSetSelectable_0133ff2b{height:50px;line-height:50px}.termSetSelector_0133ff2b{display:inline-block;margin:0 8px 0 4px;vertical-align:middle}.term_0133ff2b{padding-left:20px}.term_0133ff2b .termDisabled_0133ff2b,.term_0133ff2b .termEnabled_0133ff2b,.term_0133ff2b .termNoTagging_0133ff2b{background-repeat:no-repeat;background-position:30px center}.term_0133ff2b .termEnabled_0133ff2b{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACzSURBVDhPY2AYNKCoqIgTiOcD8X8S8F6wB4Aa1IH4akNDw+mPHz++/E8EuHTp0jmQRSDNCcXFxa/XrVt3gAh9KEpgBvx/9OjRLVI1g9TDDYBp3rlz5//Kysr/IJoYgGEASPPatWsbQDQxAMOAbdu2gZ0FookBcAOePHlyhxgN6GqQY+Hdhg0bDpJqCNgAaDrQAnJuNDY2nvr06dMbYgw6e/bsabgBUEN4yEiJ2wdNViLfIQC3sTh2vtJcswAAAABJRU5ErkJggg==)}.term_0133ff2b .termDisabled_0133ff2b{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFMSURBVDhPzZPNSsNAFIULQqEQEPoSQqAg7gqC0HdwXxAElyYgBBGSZ+gDdOUyIauULATdKrgIKCKuQjbiDySCkNV4TrkzpJW2cefAxwwzc86de2em0/k3zXGcHpgC9Qeu5glAsAMefN+/K8vyVbVoWZbdMxDFY9d136Ioum6hW9iiDVSe588rxDXmJ+AAdAWOOVcbAy1O01R5nqfYoxVglyk+Hu7Z4FiwOcc1GBRMwQSnOAxDHz0jDyCwwCVQS3DO0gU0BkmSzG8A/UQiz7DxC5yLGQ1PwDeYGYOiKF6WarCPDUOJeor+A4z0m8P4SNaG+hY+4zi+aZh0scEBNeB41DTBuCcGjj6FjaM/BUFwW1XVO6vdMNiSdIzJLwN5TJZ+iSLQKYwbR9cmZyaFdX+JhZIiMue+cLFQxA0G22uusd/6I8OEb4LXRwZN4Q+3Ys8Mb9+nRgAAAABJRU5ErkJggg==)}.term_0133ff2b .termNoTagging_0133ff2b{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZBJREFUeNqkU0trwkAQnhURBBFPKghekuJN7KW9pOCj0Agl9/4uT/6BHgXpxQfxYKltKEYhV3tXFF/4RrOdXYgkxpz8YA47O983O9+whFIKt8DvddHv9wej0UjY7/dwPB55sGaJRKImSVLxXMiSl9Hr9fRWq0WvoVKpUFVVv6xaF1nX9R+LvFqteKAgrVarVNM0fi6Xy9Sq99mfjeTv2Wz2mMvlYL1en/OGYYCiKKTT6fAzG8flQbfb1ReLxX0+n4fJZOLwQxRFKJVKNJPJwHa7dZuI5I/lcsnJrHMwGHQUpdNpHp5bGI/Hr7IsA3Pc7/dcDEynU5jP5xAIBJwCpmmeN+IF9IaT0VA20p+V5yaGQqF2s9mE3W4Hh8PBFXZyLBbTstmsaAkQqyuu7nOz2UiCIEAkEoFwOMzz6A0n44YgHo8bhULBYQaxP7vRaLyjyFsqleIiDLbOAyTfXY5GLueu1+s1XNULE2Fg5Gg0qj4jrnlDrhmHIu3hcPh0Op0gmUz+IvfBy1xy62/0wY34F2AAKtctO7g/KgIAAAAASUVORK5CYII=)}.term_0133ff2b label>span{padding-left:25px}.actions_0133ff2b button:first-child{margin-right:15px}.termBasePicker_0133ff2b{background-color:#fff}.termSuggestion_0133ff2b{min-height:40px;width:100%;text-align:left;cursor:pointer}.termSuggestion_0133ff2b .termSuggestionSubTitle_0133ff2b{font-size:12px;color:#666}.pickedTermRoot_0133ff2b{position:relative;outline:transparent;box-sizing:content-box;-ms-flex-negative:1;flex-shrink:1;background:#f4f4f4;margin:2px;height:26px;line-height:26px;cursor:default;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;max-width:300px}.pickedTermRoot_0133ff2b .pickedTermText_0133ff2b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:30px;margin:0 8px}.pickedTermRoot_0133ff2b .pickedTermCloseIcon_0133ff2b{cursor:pointer;color:#666;font-size:12px;display:inline-block;text-align:center;vertical-align:top;width:30px;height:100%;-ms-flex-negative:0;flex-shrink:0}.errorMessage_0133ff2b{font-size:12px;font-weight:400;color:#a80000;margin:0;padding-top:5px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.errorIcon_0133ff2b{font-size:14px;margin-right:5px}
@@ -3,27 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  /* tslint:disable */
4
4
  require('./TaxonomyPicker.module.css');
5
5
  var styles = {
6
- contextualMenu: 'contextualMenu_bbbc76e9',
7
- listItem: 'listItem_bbbc76e9',
8
- termField: 'termField_bbbc76e9',
9
- termFieldInput: 'termFieldInput_bbbc76e9',
10
- termFieldButton: 'termFieldButton_bbbc76e9',
11
- termset: 'termset_bbbc76e9',
12
- termSetSelectable: 'termSetSelectable_bbbc76e9',
13
- termSetSelector: 'termSetSelector_bbbc76e9',
14
- term: 'term_bbbc76e9',
15
- termEnabled: 'termEnabled_bbbc76e9',
16
- termDisabled: 'termDisabled_bbbc76e9',
17
- termNoTagging: 'termNoTagging_bbbc76e9',
18
- actions: 'actions_bbbc76e9',
19
- termBasePicker: 'termBasePicker_bbbc76e9',
20
- termSuggestion: 'termSuggestion_bbbc76e9',
21
- termSuggestionSubTitle: 'termSuggestionSubTitle_bbbc76e9',
22
- pickedTermRoot: 'pickedTermRoot_bbbc76e9',
23
- pickedTermText: 'pickedTermText_bbbc76e9',
24
- pickedTermCloseIcon: 'pickedTermCloseIcon_bbbc76e9',
25
- errorMessage: 'errorMessage_bbbc76e9',
26
- errorIcon: 'errorIcon_bbbc76e9',
6
+ contextualMenu: 'contextualMenu_0133ff2b',
7
+ listItem: 'listItem_0133ff2b',
8
+ termField: 'termField_0133ff2b',
9
+ termFieldInput: 'termFieldInput_0133ff2b',
10
+ termFieldButton: 'termFieldButton_0133ff2b',
11
+ termset: 'termset_0133ff2b',
12
+ termSetSelectable: 'termSetSelectable_0133ff2b',
13
+ termSetSelector: 'termSetSelector_0133ff2b',
14
+ term: 'term_0133ff2b',
15
+ termEnabled: 'termEnabled_0133ff2b',
16
+ termDisabled: 'termDisabled_0133ff2b',
17
+ termNoTagging: 'termNoTagging_0133ff2b',
18
+ actions: 'actions_0133ff2b',
19
+ termBasePicker: 'termBasePicker_0133ff2b',
20
+ termSuggestion: 'termSuggestion_0133ff2b',
21
+ termSuggestionSubTitle: 'termSuggestionSubTitle_0133ff2b',
22
+ pickedTermRoot: 'pickedTermRoot_0133ff2b',
23
+ pickedTermText: 'pickedTermText_0133ff2b',
24
+ pickedTermCloseIcon: 'pickedTermCloseIcon_0133ff2b',
25
+ errorMessage: 'errorMessage_0133ff2b',
26
+ errorIcon: 'errorIcon_0133ff2b',
27
27
  };
28
28
  exports.default = styles;
29
29
  /* tslint:enable */
@@ -1 +1 @@
1
- {"version":3,"sources":["controls/taxonomyPicker/TaxonomyPicker.module.scss.ts"],"names":[],"mappings":";;AAAA,oBAAoB;AACpB,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACvC,IAAM,MAAM,GAAG;IACb,cAAc,EAAE,yBAAyB;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,SAAS,EAAE,oBAAoB;IAC/B,cAAc,EAAE,yBAAyB;IACzC,eAAe,EAAE,0BAA0B;IAC3C,OAAO,EAAE,kBAAkB;IAC3B,iBAAiB,EAAE,4BAA4B;IAC/C,eAAe,EAAE,0BAA0B;IAC3C,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,sBAAsB;IACnC,YAAY,EAAE,uBAAuB;IACrC,aAAa,EAAE,wBAAwB;IACvC,OAAO,EAAE,kBAAkB;IAC3B,cAAc,EAAE,yBAAyB;IACzC,cAAc,EAAE,yBAAyB;IACzC,sBAAsB,EAAE,iCAAiC;IACzD,cAAc,EAAE,yBAAyB;IACzC,cAAc,EAAE,yBAAyB;IACzC,mBAAmB,EAAE,8BAA8B;IACnD,YAAY,EAAE,uBAAuB;IACrC,SAAS,EAAE,oBAAoB;CAChC,CAAC;AAEF,kBAAe,MAAM,CAAC;AACtB,mBAAmB","file":"controls/taxonomyPicker/TaxonomyPicker.module.scss.js","sourcesContent":["/* tslint:disable */\nrequire('./TaxonomyPicker.module.css');\nconst styles = {\n contextualMenu: 'contextualMenu_bbbc76e9',\n listItem: 'listItem_bbbc76e9',\n termField: 'termField_bbbc76e9',\n termFieldInput: 'termFieldInput_bbbc76e9',\n termFieldButton: 'termFieldButton_bbbc76e9',\n termset: 'termset_bbbc76e9',\n termSetSelectable: 'termSetSelectable_bbbc76e9',\n termSetSelector: 'termSetSelector_bbbc76e9',\n term: 'term_bbbc76e9',\n termEnabled: 'termEnabled_bbbc76e9',\n termDisabled: 'termDisabled_bbbc76e9',\n termNoTagging: 'termNoTagging_bbbc76e9',\n actions: 'actions_bbbc76e9',\n termBasePicker: 'termBasePicker_bbbc76e9',\n termSuggestion: 'termSuggestion_bbbc76e9',\n termSuggestionSubTitle: 'termSuggestionSubTitle_bbbc76e9',\n pickedTermRoot: 'pickedTermRoot_bbbc76e9',\n pickedTermText: 'pickedTermText_bbbc76e9',\n pickedTermCloseIcon: 'pickedTermCloseIcon_bbbc76e9',\n errorMessage: 'errorMessage_bbbc76e9',\n errorIcon: 'errorIcon_bbbc76e9',\n};\n\nexport default styles;\n/* tslint:enable */"],"sourceRoot":"../../../src"}
1
+ {"version":3,"sources":["controls/taxonomyPicker/TaxonomyPicker.module.scss.ts"],"names":[],"mappings":";;AAAA,oBAAoB;AACpB,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACvC,IAAM,MAAM,GAAG;IACb,cAAc,EAAE,yBAAyB;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,SAAS,EAAE,oBAAoB;IAC/B,cAAc,EAAE,yBAAyB;IACzC,eAAe,EAAE,0BAA0B;IAC3C,OAAO,EAAE,kBAAkB;IAC3B,iBAAiB,EAAE,4BAA4B;IAC/C,eAAe,EAAE,0BAA0B;IAC3C,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,sBAAsB;IACnC,YAAY,EAAE,uBAAuB;IACrC,aAAa,EAAE,wBAAwB;IACvC,OAAO,EAAE,kBAAkB;IAC3B,cAAc,EAAE,yBAAyB;IACzC,cAAc,EAAE,yBAAyB;IACzC,sBAAsB,EAAE,iCAAiC;IACzD,cAAc,EAAE,yBAAyB;IACzC,cAAc,EAAE,yBAAyB;IACzC,mBAAmB,EAAE,8BAA8B;IACnD,YAAY,EAAE,uBAAuB;IACrC,SAAS,EAAE,oBAAoB;CAChC,CAAC;AAEF,kBAAe,MAAM,CAAC;AACtB,mBAAmB","file":"controls/taxonomyPicker/TaxonomyPicker.module.scss.js","sourcesContent":["/* tslint:disable */\nrequire('./TaxonomyPicker.module.css');\nconst styles = {\n contextualMenu: 'contextualMenu_0133ff2b',\n listItem: 'listItem_0133ff2b',\n termField: 'termField_0133ff2b',\n termFieldInput: 'termFieldInput_0133ff2b',\n termFieldButton: 'termFieldButton_0133ff2b',\n termset: 'termset_0133ff2b',\n termSetSelectable: 'termSetSelectable_0133ff2b',\n termSetSelector: 'termSetSelector_0133ff2b',\n term: 'term_0133ff2b',\n termEnabled: 'termEnabled_0133ff2b',\n termDisabled: 'termDisabled_0133ff2b',\n termNoTagging: 'termNoTagging_0133ff2b',\n actions: 'actions_0133ff2b',\n termBasePicker: 'termBasePicker_0133ff2b',\n termSuggestion: 'termSuggestion_0133ff2b',\n termSuggestionSubTitle: 'termSuggestionSubTitle_0133ff2b',\n pickedTermRoot: 'pickedTermRoot_0133ff2b',\n pickedTermText: 'pickedTermText_0133ff2b',\n pickedTermCloseIcon: 'pickedTermCloseIcon_0133ff2b',\n errorMessage: 'errorMessage_0133ff2b',\n errorIcon: 'errorIcon_0133ff2b',\n};\n\nexport default styles;\n/* tslint:enable */"],"sourceRoot":"../../../src"}
@@ -5,6 +5,7 @@ import { IPickerTerm, IPickerTerms } from './ITermPicker';
5
5
  import { ITaxonomyPickerProps } from './ITaxonomyPicker';
6
6
  import { IWebPartContext } from '@microsoft/sp-webpart-base';
7
7
  import { ExtensionContext } from '@microsoft/sp-extension-base';
8
+ import { Autofill } from 'office-ui-fabric-react/lib/components/Autofill/Autofill';
8
9
  export declare class TermBasePicker extends BasePicker<IPickerTerm, IBasePickerProps<IPickerTerm>> {
9
10
  }
10
11
  export interface ITermPickerState {
@@ -21,6 +22,8 @@ export interface ITermPickerProps {
21
22
  disableChildrenOfDisabledParents?: boolean;
22
23
  placeholder?: string;
23
24
  onChanged: (items: IPickerTerm[]) => void;
25
+ onInputChange: (input: string) => string;
26
+ onBlur: (ev: React.FocusEvent<HTMLElement | Autofill>) => void;
24
27
  }
25
28
  export default class TermPicker extends React.Component<ITermPickerProps, ITermPickerState> {
26
29
  private allTerms;
@@ -50,7 +53,7 @@ export default class TermPicker extends React.Component<ITermPickerProps, ITermP
50
53
  */
51
54
  private onGetTextFromItem(item);
52
55
  /**
53
- * Render method
54
- */
56
+ * Render method
57
+ */
55
58
  render(): JSX.Element;
56
59
  }
@@ -216,13 +216,13 @@ var TermPicker = (function (_super) {
216
216
  return item.name;
217
217
  };
218
218
  /**
219
- * Render method
220
- */
219
+ * Render method
220
+ */
221
221
  TermPicker.prototype.render = function () {
222
- var _a = this.props, disabled = _a.disabled, value = _a.value, onChanged = _a.onChanged, allowMultipleSelections = _a.allowMultipleSelections, placeholder = _a.placeholder;
222
+ var _a = this.props, disabled = _a.disabled, value = _a.value, onChanged = _a.onChanged, onInputChange = _a.onInputChange, onBlur = _a.onBlur, allowMultipleSelections = _a.allowMultipleSelections, placeholder = _a.placeholder;
223
223
  var terms = this.state.terms;
224
224
  return (React.createElement("div", null,
225
- React.createElement(TermBasePicker, { disabled: disabled, onResolveSuggestions: this.onFilterChanged, onRenderSuggestionsItem: this.onRenderSuggestionsItem, getTextFromItem: this.onGetTextFromItem, onRenderItem: this.onRenderItem, defaultSelectedItems: value, selectedItems: terms, onChange: onChanged, itemLimit: !allowMultipleSelections ? 1 : undefined, className: TaxonomyPicker_module_scss_1.default.termBasePicker, inputProps: {
225
+ React.createElement(TermBasePicker, { disabled: disabled, onResolveSuggestions: this.onFilterChanged, onRenderSuggestionsItem: this.onRenderSuggestionsItem, getTextFromItem: this.onGetTextFromItem, onRenderItem: this.onRenderItem, defaultSelectedItems: value, selectedItems: terms, onChange: onChanged, onInputChange: onInputChange, onBlur: onBlur, itemLimit: !allowMultipleSelections ? 1 : undefined, className: TaxonomyPicker_module_scss_1.default.termBasePicker, inputProps: {
226
226
  placeholder: placeholder
227
227
  } })));
228
228
  };