@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.
- package/CHANGELOG.JSON +28 -1
- package/CHANGELOG.md +38 -0
- package/lib/common/telemetry/version.js +1 -1
- package/lib/common/telemetry/version.js.map +1 -1
- package/lib/common/utilities/LocalesHelper.d.ts +5 -0
- package/lib/common/utilities/LocalesHelper.js +76 -0
- package/lib/common/utilities/LocalesHelper.js.map +1 -0
- package/lib/common/utilities/index.d.ts +1 -0
- package/lib/common/utilities/index.js +1 -0
- package/lib/common/utilities/index.js.map +1 -1
- package/lib/controls/accordion/Accordion.module.css +1 -1
- package/lib/controls/accordion/Accordion.module.scss.js +3 -3
- package/lib/controls/accordion/Accordion.module.scss.js.map +1 -1
- package/lib/controls/carousel/Carousel.module.css +1 -1
- package/lib/controls/carousel/Carousel.module.scss.js +35 -35
- package/lib/controls/carousel/Carousel.module.scss.js.map +1 -1
- package/lib/controls/chartControl/ChartControl.module.css +1 -1
- package/lib/controls/chartControl/ChartControl.module.scss.js +3 -3
- package/lib/controls/chartControl/ChartControl.module.scss.js.map +1 -1
- package/lib/controls/dateTimePicker/DateTimePicker.module.css +1 -1
- package/lib/controls/dateTimePicker/DateTimePicker.module.scss.js +10 -10
- package/lib/controls/dateTimePicker/DateTimePicker.module.scss.js.map +1 -1
- package/lib/controls/errorMessage/ErrorMessage.module.css +1 -1
- package/lib/controls/errorMessage/ErrorMessage.module.scss.js +2 -2
- package/lib/controls/errorMessage/ErrorMessage.module.scss.js.map +1 -1
- package/lib/controls/fieldCollectionData/FieldCollectionData.module.css +1 -1
- package/lib/controls/fieldCollectionData/FieldCollectionData.module.scss.js +18 -18
- package/lib/controls/fieldCollectionData/FieldCollectionData.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.css +1 -1
- package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.scss.js +4 -4
- package/lib/controls/fields/fieldAttachmentsRenderer/FieldAttachmentsRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.css +1 -1
- package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.scss.js +4 -4
- package/lib/controls/fields/fieldBaseTextRenderer/FieldBaseTextRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldCommon/FieldRenderer.module.css +1 -1
- package/lib/controls/fields/fieldCommon/FieldRenderer.module.scss.js +3 -3
- package/lib/controls/fields/fieldCommon/FieldRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.css +1 -1
- package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.scss.js +5 -5
- package/lib/controls/fields/fieldFileTypeRenderer/FieldFileTypeRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.css +1 -1
- package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.scss.js +5 -5
- package/lib/controls/fields/fieldLookupRenderer/FieldLookupRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.css +1 -1
- package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.scss.js +9 -9
- package/lib/controls/fields/fieldNameRenderer/FieldNameRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.css +1 -1
- package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.scss.js +4 -4
- package/lib/controls/fields/fieldTaxonomyRenderer/FieldTaxonomyRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.css +1 -1
- package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.scss.js +6 -6
- package/lib/controls/fields/fieldTextRenderer/FieldTextRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.css +1 -1
- package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.scss.js +5 -5
- package/lib/controls/fields/fieldUrlRenderer/FieldUrlRenderer.module.scss.js.map +1 -1
- package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.css +1 -1
- package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.scss.js +13 -13
- package/lib/controls/fields/fieldUserRenderer/FieldUserRenderer.module.scss.js.map +1 -1
- package/lib/controls/filePicker/FilePicker.module.css +1 -1
- package/lib/controls/filePicker/FilePicker.module.scss.js +38 -38
- package/lib/controls/filePicker/FilePicker.module.scss.js.map +1 -1
- package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.css +1 -1
- package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.scss.js +41 -41
- package/lib/controls/filePicker/LinkFilePickerTab/LinkFilePickerTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.css +1 -1
- package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.scss.js +38 -38
- package/lib/controls/filePicker/OneDriveFilesTab/OneDriveFilesTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.css +1 -1
- package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.scss.js +59 -59
- package/lib/controls/filePicker/RecentFilesTab/RecentFilesTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.css +1 -1
- package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.scss.js +38 -38
- package/lib/controls/filePicker/SiteFilePickerTab/SiteFilePickerTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/StockImagesTab/StockImages.module.css +1 -1
- package/lib/controls/filePicker/StockImagesTab/StockImages.module.scss.js +40 -40
- package/lib/controls/filePicker/StockImagesTab/StockImages.module.scss.js.map +1 -1
- package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.css +1 -1
- package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.scss.js +43 -43
- package/lib/controls/filePicker/UploadFilePickerTab/UploadFilePickerTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.css +1 -1
- package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.scss.js +60 -60
- package/lib/controls/filePicker/WebSearchTab/WebSearchTab.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.css +1 -1
- package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.scss.js +7 -7
- package/lib/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.css +1 -1
- package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.scss.js +80 -80
- package/lib/controls/filePicker/controls/DocumentTile/DocumentTile.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.css +1 -1
- package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.scss.js +38 -38
- package/lib/controls/filePicker/controls/FileBrowser/FileBrowser.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.css +1 -1
- package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.scss.js +76 -76
- package/lib/controls/filePicker/controls/FolderTile/FolderTile.module.scss.js.map +1 -1
- package/lib/controls/filePicker/controls/TilesList/TilesList.module.css +1 -1
- package/lib/controls/filePicker/controls/TilesList/TilesList.module.scss.js +70 -70
- package/lib/controls/filePicker/controls/TilesList/TilesList.module.scss.js.map +1 -1
- package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.css +1 -1
- package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.scss.js +5 -5
- package/lib/controls/folderExplorer/FolderExplorer/FolderExplorer.module.scss.js.map +1 -1
- package/lib/controls/folderExplorer/NewFolder/NewFolder.module.css +1 -1
- package/lib/controls/folderExplorer/NewFolder/NewFolder.module.scss.js +5 -5
- package/lib/controls/folderExplorer/NewFolder/NewFolder.module.scss.js.map +1 -1
- package/lib/controls/folderPicker/FolderPicker.module.css +1 -1
- package/lib/controls/folderPicker/FolderPicker.module.scss.js +7 -7
- package/lib/controls/folderPicker/FolderPicker.module.scss.js.map +1 -1
- package/lib/controls/gridLayout/GridLayout.module.css +1 -1
- package/lib/controls/gridLayout/GridLayout.module.scss.js +2 -2
- package/lib/controls/gridLayout/GridLayout.module.scss.js.map +1 -1
- package/lib/controls/iFrameDialog/IFrameDialogContent.module.css +1 -1
- package/lib/controls/iFrameDialog/IFrameDialogContent.module.scss.js +2 -2
- package/lib/controls/iFrameDialog/IFrameDialogContent.module.scss.js.map +1 -1
- package/lib/controls/iFramePanel/IFramePanelContent.module.css +1 -1
- package/lib/controls/iFramePanel/IFramePanelContent.module.scss.js +2 -2
- package/lib/controls/iFramePanel/IFramePanelContent.module.scss.js.map +1 -1
- package/lib/controls/iconPicker/IconPicker.module.css +1 -1
- package/lib/controls/iconPicker/IconPicker.module.scss.js +21 -21
- package/lib/controls/iconPicker/IconPicker.module.scss.js.map +1 -1
- package/lib/controls/listItemAttachments/ListItemAttachments.module.css +1 -1
- package/lib/controls/listItemAttachments/ListItemAttachments.module.scss.js +6 -6
- package/lib/controls/listItemAttachments/ListItemAttachments.module.scss.js.map +1 -1
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.js +6 -3
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.js.map +1 -1
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.css +1 -0
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.d.ts +5 -0
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.js +12 -0
- package/lib/controls/listItemPicker/ComboBoxListItemPicker.module.scss.js.map +1 -0
- package/lib/controls/listItemPicker/IComboBoxListItemPickerProps.d.ts +1 -0
- package/lib/controls/listItemPicker/IListItemPickerProps.d.ts +1 -0
- package/lib/controls/listItemPicker/ListItemPicker.d.ts +1 -0
- package/lib/controls/listItemPicker/ListItemPicker.js +18 -13
- package/lib/controls/listItemPicker/ListItemPicker.js.map +1 -1
- package/lib/controls/listPicker/ListPicker.module.css +1 -1
- package/lib/controls/listPicker/ListPicker.module.scss.js +2 -2
- package/lib/controls/listPicker/ListPicker.module.scss.js.map +1 -1
- package/lib/controls/listView/ListView.DragDrop.module.css +1 -1
- package/lib/controls/listView/ListView.DragDrop.module.scss.js +3 -3
- package/lib/controls/listView/ListView.DragDrop.module.scss.js.map +1 -1
- package/lib/controls/listView/ListView.js.map +1 -1
- package/lib/controls/map/Maps.module.css +1 -1
- package/lib/controls/map/Maps.module.scss.js +6 -6
- package/lib/controls/map/Maps.module.scss.js.map +1 -1
- package/lib/controls/pagination/Pagination.module.css +1 -1
- package/lib/controls/pagination/Pagination.module.scss.js +2 -2
- package/lib/controls/pagination/Pagination.module.scss.js.map +1 -1
- package/lib/controls/peoplepicker/PeoplePickerComponent.module.css +1 -1
- package/lib/controls/peoplepicker/PeoplePickerComponent.module.scss.js +3 -3
- package/lib/controls/peoplepicker/PeoplePickerComponent.module.scss.js.map +1 -1
- package/lib/controls/placeholder/PlaceholderComponent.module.css +1 -1
- package/lib/controls/placeholder/PlaceholderComponent.module.scss.js +9 -9
- package/lib/controls/placeholder/PlaceholderComponent.module.scss.js.map +1 -1
- package/lib/controls/progress/Progress.module.css +1 -1
- package/lib/controls/progress/Progress.module.scss.js +19 -19
- package/lib/controls/progress/Progress.module.scss.js.map +1 -1
- package/lib/controls/richText/RichText.module.css +1 -1
- package/lib/controls/richText/RichText.module.scss.js +17 -17
- package/lib/controls/richText/RichText.module.scss.js.map +1 -1
- package/lib/controls/richText/RichTextPropertyPane.module.css +1 -1
- package/lib/controls/richText/RichTextPropertyPane.module.scss.js +8 -8
- package/lib/controls/richText/RichTextPropertyPane.module.scss.js.map +1 -1
- package/lib/controls/richText/RteColorPicker.module.css +1 -1
- package/lib/controls/richText/RteColorPicker.module.scss.js +17 -17
- package/lib/controls/richText/RteColorPicker.module.scss.js.map +1 -1
- package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.css +1 -1
- package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.scss.js +2 -2
- package/lib/controls/siteBreadcrumb/SiteBreadcrumb.module.scss.js.map +1 -1
- package/lib/controls/taxonomyPicker/ITaxonomyPicker.d.ts +18 -0
- package/lib/controls/taxonomyPicker/TaxonomyPicker.d.ts +14 -0
- package/lib/controls/taxonomyPicker/TaxonomyPicker.js +148 -11
- package/lib/controls/taxonomyPicker/TaxonomyPicker.js.map +1 -1
- package/lib/controls/taxonomyPicker/TaxonomyPicker.module.css +1 -1
- package/lib/controls/taxonomyPicker/TaxonomyPicker.module.scss.js +21 -21
- package/lib/controls/taxonomyPicker/TaxonomyPicker.module.scss.js.map +1 -1
- package/lib/controls/taxonomyPicker/TermPicker.d.ts +5 -2
- package/lib/controls/taxonomyPicker/TermPicker.js +4 -4
- package/lib/controls/taxonomyPicker/TermPicker.js.map +1 -1
- package/lib/controls/treeView/TreeView.module.css +1 -1
- package/lib/controls/treeView/TreeView.module.scss.js +17 -17
- package/lib/controls/treeView/TreeView.module.scss.js.map +1 -1
- package/lib/controls/webPartTitle/WebPartTitle.module.css +1 -1
- package/lib/controls/webPartTitle/WebPartTitle.module.scss.js +3 -3
- package/lib/controls/webPartTitle/WebPartTitle.module.scss.js.map +1 -1
- package/lib/loc/bg-bg.js +8 -29
- package/lib/loc/bg-bg.js.map +1 -1
- package/lib/loc/ca-es.js +11 -32
- package/lib/loc/ca-es.js.map +1 -1
- package/lib/loc/da-dk.js +11 -32
- package/lib/loc/da-dk.js.map +1 -1
- package/lib/loc/de-de.js +1 -22
- package/lib/loc/de-de.js.map +1 -1
- package/lib/loc/el-gr.js +7 -28
- package/lib/loc/el-gr.js.map +1 -1
- package/lib/loc/en-us.js +1 -0
- package/lib/loc/en-us.js.map +1 -1
- package/lib/loc/es-es.js +1 -22
- package/lib/loc/es-es.js.map +1 -1
- package/lib/loc/et-ee.js +8 -29
- package/lib/loc/et-ee.js.map +1 -1
- package/lib/loc/fi-fi.js +8 -29
- package/lib/loc/fi-fi.js.map +1 -1
- package/lib/loc/fr-fr.js +11 -32
- package/lib/loc/fr-fr.js.map +1 -1
- package/lib/loc/it-it.js +3 -24
- package/lib/loc/it-it.js.map +1 -1
- package/lib/loc/ja-jp.js +10 -31
- package/lib/loc/ja-jp.js.map +1 -1
- package/lib/loc/lt-lt.js +3 -24
- package/lib/loc/lt-lt.js.map +1 -1
- package/lib/loc/lv-lv.js +9 -30
- package/lib/loc/lv-lv.js.map +1 -1
- package/lib/loc/nb-no.js +8 -29
- package/lib/loc/nb-no.js.map +1 -1
- package/lib/loc/nl-nl.js +9 -30
- package/lib/loc/nl-nl.js.map +1 -1
- package/lib/loc/pl-pl.js +7 -28
- package/lib/loc/pl-pl.js.map +1 -1
- package/lib/loc/pt-pt.js +3 -24
- package/lib/loc/pt-pt.js.map +1 -1
- package/lib/loc/ro-ro.js +9 -30
- package/lib/loc/ro-ro.js.map +1 -1
- package/lib/loc/ru-ru.js +1 -22
- package/lib/loc/ru-ru.js.map +1 -1
- package/lib/loc/sk-sk.js +15 -36
- package/lib/loc/sk-sk.js.map +1 -1
- package/lib/loc/sr-latn-rs.js +2 -23
- package/lib/loc/sr-latn-rs.js.map +1 -1
- package/lib/loc/sv-se.js +11 -32
- package/lib/loc/sv-se.js.map +1 -1
- package/lib/loc/tr-tr.js +1 -22
- package/lib/loc/tr-tr.js.map +1 -1
- package/lib/loc/vi-vn.js +11 -32
- package/lib/loc/vi-vn.js.map +1 -1
- package/lib/loc/zh-cn.js +1 -22
- package/lib/loc/zh-cn.js.map +1 -1
- package/lib/loc/zh-tw.js +1 -22
- package/lib/loc/zh-tw.js.map +1 -1
- package/lib/services/SPTermStorePickerService.d.ts +3 -3
- package/lib/services/SPTermStorePickerService.js +46 -15
- package/lib/services/SPTermStorePickerService.js.map +1 -1
- package/package.json +4 -2
- package/sonar-project.properties +0 -3
- package/.scannerwork/.sonar_lock +0 -0
- package/.scannerwork/css-bundle/bin/server +0 -15
- package/.scannerwork/css-bundle/lib/tsconfig.tsbuildinfo +0 -2025
- package/.scannerwork/css-bundle/package/package.json +0 -11
- package/.scannerwork/css-bundle/stylelintconfig.json +0 -1
- 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 (
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA+B;AAC/B,4DAA6F;AAC7F,0DAAoE;AACpE,8DAA0E;AAC1E,0DAAyD;AACzD,2CAAsC;AAGtC,sFAAiF;AAEjF,wCAA0C;AAC1C,2EAAkD;AAClD,gEAAyE;AACzE,sCAAyC;AACzC,2CAAsC;AACtC,+CAA+C;AAE/C,kDAAoD;AAEpD;;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;;GAEG;AACH;IAAoC,kCAA2D;IAK7F;;OAEG;IACH,wBAAY,KAA2B;QAAvC,YACE,kBAAM,KAAK,CAAC,SAkBb;QAzBO,oBAAc,GAAiB,EAAE,CAAC;QAClC,YAAM,GAAY,IAAI,CAAC;QAkQ/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;;;;;wBAE3C,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;wBACxB,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;wBACxB,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;QAlVC,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,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,CAAC,CAAC,CAAC;YAC3B,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;;;;;;wBAEQ,KAMF,IAAI,CAAC,KAAK,EALZ,kBAAkB,wBAAA,EAClB,8BAA8B,oCAAA,EAC9B,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,eAAe,qBAAA,CACF;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,CAAC,EAAA;;wBAAlH,OAAO,GAAG,SAAwG;wBAClH,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,iBAkBC;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,CAAC,CAAC,IAAI,CAAC,UAAC,QAAkB;YAC1J,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,CAAC,EAAA;;wBAA3J,eAAe,GAAG,SAAyI;wBAEjK,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;QACzC,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC;QACT,CAAC;QAED,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,4CAA4C;QAC5C,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,kDAAkD;YAClD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBACvC,uBAAuB;gBACvB,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,iCAAiC;gBACjC,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,uCAAuC;gBACvC,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,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;QACjE,CAAC;QACD,wBAAwB;QACxB,WAAW,GAAG,yBAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1C,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;IAGD;;;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;IA4FD;;OAEG;IACI,+BAAM,GAAb;QAAA,iBA6FC;QA5FO,IAAA,eAYQ,EAXZ,gBAAK,EACL,oBAAO,EACP,sBAAQ,EACR,4CAAmB,EACnB,oDAAuB,EACvB,oCAAe,EAAE,sEAAgC,EACjD,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,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,CAhcA,AAgcC,CAhcmC,KAAK,CAAC,SAAS,GAgclD;AAhcY,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 { 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":"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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 { 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
|
-
.
|
|
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: '
|
|
7
|
-
listItem: '
|
|
8
|
-
termField: '
|
|
9
|
-
termFieldInput: '
|
|
10
|
-
termFieldButton: '
|
|
11
|
-
termset: '
|
|
12
|
-
termSetSelectable: '
|
|
13
|
-
termSetSelector: '
|
|
14
|
-
term: '
|
|
15
|
-
termEnabled: '
|
|
16
|
-
termDisabled: '
|
|
17
|
-
termNoTagging: '
|
|
18
|
-
actions: '
|
|
19
|
-
termBasePicker: '
|
|
20
|
-
termSuggestion: '
|
|
21
|
-
termSuggestionSubTitle: '
|
|
22
|
-
pickedTermRoot: '
|
|
23
|
-
pickedTermText: '
|
|
24
|
-
pickedTermCloseIcon: '
|
|
25
|
-
errorMessage: '
|
|
26
|
-
errorIcon: '
|
|
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: '
|
|
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
|
-
|
|
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
|
-
|
|
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
|
};
|