botframework-webchat-component 4.13.0 → 4.15.0
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/.eslintrc.yml +4 -100
- package/.prettierrc.yml +1 -1
- package/lib/Activity/Avatar.d.ts +10 -0
- package/lib/Activity/Avatar.d.ts.map +1 -0
- package/lib/Activity/Avatar.js +2 -1
- package/lib/Activity/Bubble.d.ts +11 -0
- package/lib/Activity/Bubble.d.ts.map +1 -0
- package/lib/Activity/Bubble.js +2 -2
- package/lib/Activity/CarouselFilmStrip.js +21 -31
- package/lib/Activity/CarouselFilmStripAttachment.js +120 -0
- package/lib/Activity/CarouselLayout.js +5 -5
- package/lib/Activity/Speak.d.ts +10 -0
- package/lib/Activity/Speak.d.ts.map +1 -0
- package/lib/Activity/Speak.js +11 -13
- package/lib/Activity/StackedLayout.d.ts +18 -0
- package/lib/Activity/StackedLayout.d.ts.map +1 -0
- package/lib/Activity/StackedLayout.js +19 -15
- package/lib/Assets/TypingAnimation.js +2 -2
- package/lib/Attachment/Assets/DownloadIcon.js +3 -1
- package/lib/Attachment/AudioAttachment.js +2 -2
- package/lib/Attachment/AudioContent.d.ts +11 -0
- package/lib/Attachment/AudioContent.d.ts.map +1 -0
- package/lib/Attachment/AudioContent.js +4 -4
- package/lib/Attachment/FileAttachment.js +2 -2
- package/lib/Attachment/FileContent.d.ts +10 -0
- package/lib/Attachment/FileContent.d.ts.map +1 -0
- package/lib/Attachment/FileContent.js +14 -9
- package/lib/Attachment/HTMLVideoContent.d.ts +11 -0
- package/lib/Attachment/HTMLVideoContent.d.ts.map +1 -0
- package/lib/Attachment/HTMLVideoContent.js +2 -2
- package/lib/Attachment/ImageContent.d.ts +8 -0
- package/lib/Attachment/ImageContent.d.ts.map +1 -0
- package/lib/Attachment/ImageContent.js +2 -2
- package/lib/Attachment/TextContent.d.ts +8 -0
- package/lib/Attachment/TextContent.d.ts.map +1 -0
- package/lib/Attachment/TextContent.js +4 -4
- package/lib/Attachment/VideoAttachment.js +2 -2
- package/lib/Attachment/VideoContent.d.ts +11 -0
- package/lib/Attachment/VideoContent.d.ts.map +1 -0
- package/lib/Attachment/VideoContent.js +1 -1
- package/lib/Attachment/VimeoContent.d.ts +10 -0
- package/lib/Attachment/VimeoContent.d.ts.map +1 -0
- package/lib/Attachment/VimeoContent.js +8 -8
- package/lib/Attachment/YouTubeContent.d.ts +10 -0
- package/lib/Attachment/YouTubeContent.d.ts.map +1 -0
- package/lib/Attachment/YouTubeContent.js +5 -5
- package/lib/Avatar/ImageAvatar.js +2 -2
- package/lib/Avatar/InitialsAvatar.js +2 -2
- package/lib/BasicConnectivityStatus.js +2 -2
- package/lib/BasicSendBox.d.ts +9 -0
- package/lib/BasicSendBox.d.ts.map +1 -0
- package/lib/BasicSendBox.js +7 -6
- package/lib/BasicToast.js +4 -4
- package/lib/BasicToaster.js +8 -5
- package/lib/BasicTranscript.d.ts +7 -0
- package/lib/BasicTranscript.d.ts.map +1 -0
- package/lib/BasicTranscript.js +406 -743
- package/lib/BasicTypingIndicator.d.ts +6 -0
- package/lib/BasicTypingIndicator.d.ts.map +1 -0
- package/lib/BasicTypingIndicator.js +13 -5
- package/lib/BasicWebChat.d.ts +9 -0
- package/lib/BasicWebChat.d.ts.map +1 -0
- package/lib/BasicWebChat.js +6 -4
- package/lib/Composer.d.ts +23 -0
- package/lib/Composer.d.ts.map +1 -0
- package/lib/Composer.js +65 -82
- package/lib/ConnectivityStatus/Assets/ErrorNotificationIcon.js +2 -2
- package/lib/ConnectivityStatus/Assets/SpinnerAnimation.js +2 -2
- package/lib/ConnectivityStatus/Assets/WarningNotificationIcon.js +2 -2
- package/lib/ConnectivityStatus/Connected.js +1 -1
- package/lib/ConnectivityStatus/Connecting.js +4 -4
- package/lib/ConnectivityStatus/FailedToConnect.js +2 -2
- package/lib/ConnectivityStatus/JavaScriptError.js +2 -2
- package/lib/Dictation.js +13 -4
- package/lib/ErrorBox.d.ts +8 -0
- package/lib/ErrorBox.d.ts.map +1 -0
- package/lib/ErrorBox.js +2 -2
- package/lib/Middleware/Activity/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/Activity/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/Activity/createCoreMiddleware.js +1 -1
- package/lib/Middleware/ActivityStatus/AbsoluteTime.js +1 -1
- package/lib/Middleware/ActivityStatus/RelativeTime.js +1 -1
- package/lib/Middleware/ActivityStatus/SendStatus/SendFailedRetry.js +3 -3
- package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.d.ts +11 -0
- package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.d.ts.map +1 -0
- package/lib/Middleware/ActivityStatus/SendStatus/SendStatus.js +5 -5
- package/lib/Middleware/ActivityStatus/Timestamp.d.ts +9 -0
- package/lib/Middleware/ActivityStatus/Timestamp.d.ts.map +1 -0
- package/lib/Middleware/ActivityStatus/Timestamp.js +2 -2
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.js +1 -1
- package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.js +21 -16
- package/lib/Middleware/ActivityStatus/createTimestampMiddleware.js +1 -1
- package/lib/Middleware/Attachment/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/Attachment/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/Attachment/createCoreMiddleware.js +10 -13
- package/lib/Middleware/AttachmentForScreenReader/AudioAttachment.js +1 -1
- package/lib/Middleware/AttachmentForScreenReader/FileAttachment.js +1 -1
- package/lib/Middleware/AttachmentForScreenReader/ImageAttachment.js +1 -1
- package/lib/Middleware/AttachmentForScreenReader/TextAttachment.js +1 -1
- package/lib/Middleware/AttachmentForScreenReader/VideoAttachment.js +1 -1
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.js +9 -5
- package/lib/Middleware/Avatar/createCoreMiddleware.d.ts +11 -0
- package/lib/Middleware/Avatar/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/Avatar/createCoreMiddleware.js +3 -4
- package/lib/Middleware/CardAction/createCoreMiddleware.js +11 -4
- package/lib/Middleware/GroupActivities/createCoreMiddleware.js +1 -1
- package/lib/Middleware/ScrollToEndButton/ScrollToEndButton.js +71 -0
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts +3 -0
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts.map +1 -0
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.js +27 -0
- package/lib/Middleware/Toast/createCoreMiddleware.d.ts +4 -0
- package/lib/Middleware/Toast/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/Toast/createCoreMiddleware.js +1 -1
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.js +9 -6
- package/lib/ReactWebChat.d.ts +10 -0
- package/lib/ReactWebChat.d.ts.map +1 -0
- package/lib/ReactWebChat.js +19 -7
- package/lib/ScreenReaderActivity.js +76 -48
- package/lib/ScreenReaderText.d.ts +9 -0
- package/lib/ScreenReaderText.d.ts.map +1 -0
- package/lib/ScreenReaderText.js +22 -8
- package/lib/SendBox/Assets/AttachmentIcon.js +3 -1
- package/lib/SendBox/Assets/MicrophoneIcon.js +3 -1
- package/lib/SendBox/Assets/SendIcon.js +2 -2
- package/lib/SendBox/AutoResizeTextArea.d.ts +23 -0
- package/lib/SendBox/AutoResizeTextArea.d.ts.map +1 -0
- package/lib/SendBox/AutoResizeTextArea.js +6 -6
- package/lib/SendBox/DictationInterims.d.ts +9 -0
- package/lib/SendBox/DictationInterims.d.ts.map +1 -0
- package/lib/SendBox/DictationInterims.js +3 -3
- package/lib/SendBox/IconButton.d.ts +11 -0
- package/lib/SendBox/IconButton.d.ts.map +1 -0
- package/lib/SendBox/IconButton.js +27 -7
- package/lib/SendBox/MicrophoneButton.d.ts +11 -0
- package/lib/SendBox/MicrophoneButton.d.ts.map +1 -0
- package/lib/SendBox/MicrophoneButton.js +25 -24
- package/lib/SendBox/SendButton.d.ts +9 -0
- package/lib/SendBox/SendButton.d.ts.map +1 -0
- package/lib/SendBox/SendButton.js +8 -6
- package/lib/SendBox/SuggestedAction.d.ts +17 -0
- package/lib/SendBox/SuggestedAction.d.ts.map +1 -0
- package/lib/SendBox/SuggestedAction.js +29 -24
- package/lib/SendBox/SuggestedActions.d.ts +5 -0
- package/lib/SendBox/SuggestedActions.d.ts.map +1 -0
- package/lib/SendBox/SuggestedActions.js +33 -13
- package/lib/SendBox/TextBox.d.ts +28 -0
- package/lib/SendBox/TextBox.d.ts.map +1 -0
- package/lib/SendBox/TextBox.js +13 -8
- package/lib/SendBox/UploadButton.d.ts +9 -0
- package/lib/SendBox/UploadButton.d.ts.map +1 -0
- package/lib/SendBox/UploadButton.js +6 -6
- package/lib/Styles/StyleSet/Activities.d.ts +5 -0
- package/lib/Styles/StyleSet/Activities.d.ts.map +1 -0
- package/lib/Styles/StyleSet/AudioAttachment.d.ts +6 -0
- package/lib/Styles/StyleSet/AudioAttachment.d.ts.map +1 -0
- package/lib/Styles/StyleSet/AudioContent.d.ts +4 -0
- package/lib/Styles/StyleSet/AudioContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/AutoResizeTextArea.d.ts +37 -0
- package/lib/Styles/StyleSet/AutoResizeTextArea.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Avatar.d.ts +9 -0
- package/lib/Styles/StyleSet/Avatar.d.ts.map +1 -0
- package/lib/Styles/StyleSet/BasicTranscript.d.ts +85 -0
- package/lib/Styles/StyleSet/BasicTranscript.d.ts.map +1 -0
- package/lib/Styles/StyleSet/BasicTranscript.js +21 -9
- package/lib/Styles/StyleSet/Bubble.d.ts +5 -0
- package/lib/Styles/StyleSet/Bubble.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Bubble.js +2 -2
- package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts +5 -0
- package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts.map +1 -0
- package/lib/Styles/StyleSet/CarouselFilmStrip.js +2 -18
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts +3 -0
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts.map +1 -0
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.js +63 -0
- package/lib/Styles/StyleSet/CarouselFlipper.d.ts +27 -0
- package/lib/Styles/StyleSet/CarouselFlipper.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ConnectivityNotification.d.ts +13 -0
- package/lib/Styles/StyleSet/ConnectivityNotification.d.ts.map +1 -0
- package/lib/Styles/StyleSet/DictationInterims.d.ts +13 -0
- package/lib/Styles/StyleSet/DictationInterims.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ErrorBox.d.ts +33 -0
- package/lib/Styles/StyleSet/ErrorBox.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ErrorNotification.d.ts +23 -0
- package/lib/Styles/StyleSet/ErrorNotification.d.ts.map +1 -0
- package/lib/Styles/StyleSet/FileContent.d.ts +32 -0
- package/lib/Styles/StyleSet/FileContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ImageAvatar.d.ts +7 -0
- package/lib/Styles/StyleSet/ImageAvatar.d.ts.map +1 -0
- package/lib/Styles/StyleSet/InitialsAvatar.d.ts +19 -0
- package/lib/Styles/StyleSet/InitialsAvatar.d.ts.map +1 -0
- package/lib/Styles/StyleSet/KeyboardHelp.d.ts +123 -0
- package/lib/Styles/StyleSet/KeyboardHelp.d.ts.map +1 -0
- package/lib/Styles/StyleSet/KeyboardHelp.js +145 -0
- package/lib/Styles/StyleSet/MicrophoneButton.d.ts +13 -0
- package/lib/Styles/StyleSet/MicrophoneButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Root.d.ts +8 -0
- package/lib/Styles/StyleSet/Root.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ScrollToEndButton.d.ts +36 -0
- package/lib/Styles/StyleSet/ScrollToEndButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ScrollToEndButton.js +36 -34
- package/lib/Styles/StyleSet/SendBox.d.ts +24 -0
- package/lib/Styles/StyleSet/SendBox.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SendBoxButton.d.ts +79 -0
- package/lib/Styles/StyleSet/SendBoxButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SendBoxButton.js +76 -12
- package/lib/Styles/StyleSet/SendBoxTextBox.d.ts +41 -0
- package/lib/Styles/StyleSet/SendBoxTextBox.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SendBoxTextBox.js +3 -3
- package/lib/Styles/StyleSet/SendStatus.d.ts +8 -0
- package/lib/Styles/StyleSet/SendStatus.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SingleAttachmentActivity.d.ts +11 -0
- package/lib/Styles/StyleSet/SingleAttachmentActivity.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SpinnerAnimation.d.ts +15 -0
- package/lib/Styles/StyleSet/SpinnerAnimation.d.ts.map +1 -0
- package/lib/Styles/StyleSet/StackedLayout.d.ts +63 -0
- package/lib/Styles/StyleSet/StackedLayout.d.ts.map +1 -0
- package/lib/Styles/StyleSet/StackedLayout.js +1 -1
- package/lib/Styles/StyleSet/SuggestedAction.d.ts +94 -0
- package/lib/Styles/StyleSet/SuggestedAction.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SuggestedAction.js +116 -41
- package/lib/Styles/StyleSet/SuggestedActions.d.ts +125 -0
- package/lib/Styles/StyleSet/SuggestedActions.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SuggestedActions.js +13 -6
- package/lib/Styles/StyleSet/TextContent.d.ts +28 -0
- package/lib/Styles/StyleSet/TextContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Toast.d.ts +65 -0
- package/lib/Styles/StyleSet/Toast.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Toaster.d.ts +111 -0
- package/lib/Styles/StyleSet/Toaster.d.ts.map +1 -0
- package/lib/Styles/StyleSet/TypingAnimation.d.ts +8 -0
- package/lib/Styles/StyleSet/TypingAnimation.d.ts.map +1 -0
- package/lib/Styles/StyleSet/TypingIndicator.d.ts +11 -0
- package/lib/Styles/StyleSet/TypingIndicator.d.ts.map +1 -0
- package/lib/Styles/StyleSet/UploadButton.d.ts +14 -0
- package/lib/Styles/StyleSet/UploadButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/VideoAttachment.d.ts +2 -0
- package/lib/Styles/StyleSet/VideoAttachment.d.ts.map +1 -0
- package/lib/Styles/StyleSet/VideoContent.d.ts +6 -0
- package/lib/Styles/StyleSet/VideoContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/VimeoContent.d.ts +7 -0
- package/lib/Styles/StyleSet/VimeoContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/WarningNotification.d.ts +22 -0
- package/lib/Styles/StyleSet/WarningNotification.d.ts.map +1 -0
- package/lib/Styles/StyleSet/YouTubeContent.d.ts +7 -0
- package/lib/Styles/StyleSet/YouTubeContent.d.ts.map +1 -0
- package/lib/Styles/createStyleSet.d.ts +1372 -0
- package/lib/Styles/createStyleSet.d.ts.map +1 -0
- package/lib/Styles/createStyleSet.js +47 -41
- package/lib/Styles/mirrorStyle.js +13 -4
- package/lib/Toast/CollapseIcon.js +3 -1
- package/lib/Toast/DismissIcon.js +3 -1
- package/lib/Toast/ExpandIcon.js +3 -1
- package/lib/Toast/NotificationIcon.js +7 -3
- package/lib/Toast/createToastMiddleware.d.ts +4 -0
- package/lib/Toast/createToastMiddleware.d.ts.map +1 -0
- package/lib/Toast/createToastMiddleware.js +2 -2
- package/lib/Transcript/ActivityRow.d.ts +9 -0
- package/lib/Transcript/ActivityRow.d.ts.map +1 -0
- package/lib/Transcript/ActivityRow.js +157 -0
- package/lib/Transcript/ActivityTextAlt.js +57 -0
- package/lib/Transcript/FocusTrap.d.ts +8 -0
- package/lib/Transcript/FocusTrap.d.ts.map +1 -0
- package/lib/Transcript/FocusTrap.js +74 -0
- package/lib/Transcript/KeyboardHelp.d.ts +4 -0
- package/lib/Transcript/KeyboardHelp.d.ts.map +1 -0
- package/lib/Transcript/KeyboardHelp.js +550 -0
- package/lib/Transcript/LiveRegionTranscript.d.ts +8 -0
- package/lib/Transcript/LiveRegionTranscript.d.ts.map +1 -0
- package/lib/Transcript/LiveRegionTranscript.js +214 -0
- package/lib/Transcript/types.d.ts +2 -0
- package/lib/Transcript/types.d.ts.map +1 -0
- package/lib/Transcript/types.js +2 -0
- package/lib/Transcript/useActivityAccessibleName.d.ts +4 -0
- package/lib/Transcript/useActivityAccessibleName.d.ts.map +1 -0
- package/lib/Transcript/useActivityAccessibleName.js +97 -0
- package/lib/Utils/AccessKeySink/Surface.js +7 -5
- package/lib/Utils/AccessibleButton.d.ts +11 -0
- package/lib/Utils/AccessibleButton.d.ts.map +1 -0
- package/lib/Utils/AccessibleButton.js +15 -8
- package/lib/Utils/AccessibleInputText.d.ts +21 -0
- package/lib/Utils/AccessibleInputText.d.ts.map +1 -0
- package/lib/Utils/AccessibleInputText.js +29 -25
- package/lib/Utils/AccessibleTextArea.d.ts +20 -0
- package/lib/Utils/AccessibleTextArea.d.ts.map +1 -0
- package/lib/Utils/AccessibleTextArea.js +35 -24
- package/lib/Utils/CroppedImage.js +2 -2
- package/lib/Utils/Fade.js +2 -2
- package/lib/Utils/FocusRedirector.d.ts +9 -0
- package/lib/Utils/FocusRedirector.d.ts.map +1 -0
- package/lib/Utils/FocusRedirector.js +18 -15
- package/lib/Utils/InlineMarkdown.js +17 -10
- package/lib/Utils/TypeFocusSink/FocusBox.js +6 -4
- package/lib/Utils/TypeFocusSink/getTabIndex.d.ts +2 -0
- package/lib/Utils/TypeFocusSink/getTabIndex.d.ts.map +1 -0
- package/lib/Utils/TypeFocusSink/getTabIndex.js +1 -1
- package/lib/Utils/TypeFocusSink/inputtableKey.d.ts +2 -0
- package/lib/Utils/TypeFocusSink/inputtableKey.d.ts.map +1 -0
- package/lib/Utils/TypeFocusSink/inputtableKey.js +5 -2
- package/lib/Utils/TypeFocusSink/navigableEvent.js +1 -1
- package/lib/Utils/activityAltText.d.ts +8 -0
- package/lib/Utils/activityAltText.d.ts.map +1 -0
- package/lib/Utils/activityAltText.js +100 -0
- package/lib/Utils/addTargetBlankToHyperlinksMarkdown.js +1 -1
- package/lib/Utils/createCustomEvent.js +9 -3
- package/lib/Utils/debounce.js +1 -1
- package/lib/Utils/detectBrowser.js +4 -2
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.js +3 -3
- package/lib/Utils/downscaleImageToDataURL/index.js +2 -2
- package/lib/Utils/filterMap.js +1 -1
- package/lib/Utils/findAncestor.js +17 -0
- package/lib/Utils/getActivityUniqueId.js +4 -2
- package/lib/Utils/intersectionOf.d.ts +5 -0
- package/lib/Utils/intersectionOf.d.ts.map +1 -0
- package/lib/Utils/intersectionOf.js +17 -2
- package/lib/Utils/isZeroOrPositive.d.ts +5 -0
- package/lib/Utils/isZeroOrPositive.d.ts.map +1 -0
- package/lib/Utils/isZeroOrPositive.js +4 -1
- package/lib/Utils/mapMap.js +10 -3
- package/lib/Utils/readDataURIToBlob.js +3 -3
- package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts +7 -0
- package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts.map +1 -0
- package/lib/Utils/scrollIntoViewWithBlockNearest.js +48 -0
- package/lib/Utils/shallowEquals.js +7 -3
- package/lib/Utils/singleToArray.js +1 -1
- package/lib/Utils/supportPseudoClass.d.ts +2 -0
- package/lib/Utils/supportPseudoClass.d.ts.map +1 -0
- package/lib/Utils/supportPseudoClass.js +23 -0
- package/lib/Utils/tabbableElements.d.ts +2 -0
- package/lib/Utils/tabbableElements.d.ts.map +1 -0
- package/lib/Utils/tabbableElements.js +2 -2
- package/lib/connectToWebChat.js +17 -7
- package/lib/hooks/index.d.ts +21 -0
- package/lib/hooks/index.d.ts.map +1 -0
- package/lib/hooks/index.js +25 -25
- package/lib/hooks/internal/BypassSpeechSynthesisPonyfill.js +100 -41
- package/lib/hooks/internal/UITracker.js +2 -2
- package/lib/hooks/internal/useChanged.js +8 -1
- package/lib/hooks/internal/useDispatchScrollPosition.js +3 -7
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts +2 -0
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts.map +1 -0
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.js +15 -0
- package/lib/hooks/internal/useEnterKeyHint.js +1 -1
- package/lib/hooks/internal/useFocusVisible.d.ts +3 -0
- package/lib/hooks/internal/useFocusVisible.d.ts.map +1 -0
- package/lib/hooks/internal/useFocusVisible.js +48 -0
- package/lib/hooks/internal/useForceRender.js +2 -2
- package/lib/hooks/internal/useForceRenderAtInterval.js +2 -2
- package/lib/hooks/internal/useInternalRenderMarkdownInline.js +1 -1
- package/lib/hooks/internal/useLocalizeAccessKey.js +2 -2
- package/lib/hooks/internal/useMemoWithPrevious.d.ts +3 -0
- package/lib/hooks/internal/useMemoWithPrevious.d.ts.map +1 -0
- package/lib/hooks/internal/useMemoWithPrevious.js +22 -0
- package/lib/hooks/internal/useMemoize.d.ts +14 -0
- package/lib/hooks/internal/useMemoize.d.ts.map +1 -0
- package/lib/hooks/internal/useMemoize.js +12 -3
- package/lib/hooks/internal/useNavigatorPlatform.js +1 -1
- package/lib/hooks/internal/useNonce.js +1 -1
- package/lib/hooks/internal/useObserveFocusVisible.d.ts +3 -0
- package/lib/hooks/internal/useObserveFocusVisible.d.ts.map +1 -0
- package/lib/hooks/internal/useObserveFocusVisible.js +208 -0
- package/lib/hooks/internal/usePrevious.d.ts +2 -0
- package/lib/hooks/internal/usePrevious.d.ts.map +1 -0
- package/lib/hooks/internal/usePrevious.js +18 -0
- package/lib/hooks/internal/useRegisterFocusSendBox.js +1 -1
- package/lib/hooks/internal/useRegisterFocusTranscript.js +1 -1
- package/lib/hooks/internal/useRegisterScrollRelative.js +1 -1
- package/lib/hooks/internal/useRegisterScrollTo.js +1 -1
- package/lib/hooks/internal/useRegisterScrollToEnd.js +1 -1
- package/lib/hooks/internal/useReplaceEmoticon.js +2 -2
- package/lib/hooks/internal/useResumeAudioContext.js +33 -0
- package/lib/hooks/internal/useScrollRelative.js +1 -1
- package/lib/hooks/internal/useSettableDictateAbortable.js +1 -1
- package/lib/hooks/internal/useStateRef.d.ts +3 -0
- package/lib/hooks/internal/useStateRef.d.ts.map +1 -0
- package/lib/hooks/internal/useStateRef.js +40 -0
- package/lib/hooks/internal/useSuggestedActionsAccessKey.js +1 -1
- package/lib/hooks/internal/useUniqueId.d.ts +2 -0
- package/lib/hooks/internal/useUniqueId.d.ts.map +1 -0
- package/lib/hooks/internal/useUniqueId.js +1 -1
- package/lib/hooks/internal/useValueRef.d.ts +3 -0
- package/lib/hooks/internal/useValueRef.d.ts.map +1 -0
- package/lib/hooks/internal/useValueRef.js +25 -0
- package/lib/hooks/useDictateAbortable.d.ts +2 -0
- package/lib/hooks/useDictateAbortable.d.ts.map +1 -0
- package/lib/hooks/useDictateAbortable.js +2 -2
- package/lib/hooks/useFocus.d.ts +2 -0
- package/lib/hooks/useFocus.d.ts.map +1 -0
- package/lib/hooks/useFocus.js +1 -1
- package/lib/hooks/useFocusSendBox.d.ts +3 -0
- package/lib/hooks/useFocusSendBox.d.ts.map +1 -0
- package/lib/hooks/useFocusSendBox.js +2 -1
- package/lib/hooks/useObserveScrollPosition.d.ts +3 -0
- package/lib/hooks/useObserveScrollPosition.d.ts.map +1 -0
- package/lib/hooks/useObserveScrollPosition.js +2 -2
- package/lib/hooks/useObserveTranscriptFocus.d.ts +5 -0
- package/lib/hooks/useObserveTranscriptFocus.d.ts.map +1 -0
- package/lib/hooks/useObserveTranscriptFocus.js +2 -2
- package/lib/hooks/useRenderMarkdownAsHTML.d.ts +5 -0
- package/lib/hooks/useRenderMarkdownAsHTML.d.ts.map +1 -0
- package/lib/hooks/useRenderMarkdownAsHTML.js +2 -2
- package/lib/hooks/useScrollDown.d.ts +4 -0
- package/lib/hooks/useScrollDown.d.ts.map +1 -0
- package/lib/hooks/useScrollDown.js +1 -1
- package/lib/hooks/useScrollTo.d.ts +5 -0
- package/lib/hooks/useScrollTo.d.ts.map +1 -0
- package/lib/hooks/useScrollTo.js +1 -1
- package/lib/hooks/useScrollToEnd.d.ts +2 -0
- package/lib/hooks/useScrollToEnd.d.ts.map +1 -0
- package/lib/hooks/useScrollToEnd.js +1 -1
- package/lib/hooks/useScrollUp.d.ts +4 -0
- package/lib/hooks/useScrollUp.d.ts.map +1 -0
- package/lib/hooks/useScrollUp.js +1 -1
- package/lib/hooks/useSendFiles.d.ts +2 -0
- package/lib/hooks/useSendFiles.d.ts.map +1 -0
- package/lib/hooks/useSendFiles.js +3 -3
- package/lib/hooks/useStyleSet.d.ts +2 -0
- package/lib/hooks/useStyleSet.d.ts.map +1 -0
- package/lib/hooks/useStyleSet.js +1 -1
- package/lib/hooks/useWebSpeechPonyfill.d.ts +3 -0
- package/lib/hooks/useWebSpeechPonyfill.d.ts.map +1 -0
- package/lib/hooks/useWebSpeechPonyfill.js +1 -1
- package/lib/index.d.ts +219 -22
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +22 -20
- package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts +5 -0
- package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts.map +1 -0
- package/lib/providers/ActivityTree/ActivityTreeComposer.js +86 -0
- package/lib/providers/ActivityTree/private/Context.d.ts +9 -0
- package/lib/providers/ActivityTree/private/Context.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/Context.js +13 -0
- package/lib/providers/ActivityTree/private/types.d.ts +10 -0
- package/lib/providers/ActivityTree/private/types.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/types.js +2 -0
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts +4 -0
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.js +58 -0
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts +5 -0
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.js +166 -0
- package/lib/providers/ActivityTree/private/useContext.d.ts +3 -0
- package/lib/providers/ActivityTree/private/useContext.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/useContext.js +24 -0
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts +8 -0
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts.map +1 -0
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.js +17 -0
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts +35 -0
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.js +156 -0
- package/lib/providers/LiveRegionTwin/private/Context.d.ts +10 -0
- package/lib/providers/LiveRegionTwin/private/Context.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/Context.js +13 -0
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts +11 -0
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.js +86 -0
- package/lib/providers/LiveRegionTwin/private/types.d.ts +8 -0
- package/lib/providers/LiveRegionTwin/private/types.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/types.js +2 -0
- package/lib/providers/LiveRegionTwin/private/useContext.d.ts +3 -0
- package/lib/providers/LiveRegionTwin/private/useContext.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/useContext.js +24 -0
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts +2 -0
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.js +24 -0
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts +3 -0
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.js +15 -0
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts +8 -0
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.js +20 -0
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts +7 -0
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.js +184 -0
- package/lib/providers/TranscriptFocus/private/Context.d.ts +12 -0
- package/lib/providers/TranscriptFocus/private/Context.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/private/Context.js +13 -0
- package/lib/providers/TranscriptFocus/private/useContext.d.ts +2 -0
- package/lib/providers/TranscriptFocus/private/useContext.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/private/useContext.js +24 -0
- package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useActiveDescendantId.js +15 -0
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts +8 -0
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.js +21 -0
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.js +15 -0
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.js +15 -0
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.js +15 -0
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.js +15 -0
- package/lib/tsconfig.json +1 -1
- package/lib/types/ScrollPosition.d.ts +6 -0
- package/lib/types/ScrollPosition.d.ts.map +1 -0
- package/lib/types/ScrollPosition.js +2 -0
- package/package.json +33 -40
- package/src/Activity/{Avatar.js → Avatar.tsx} +9 -2
- package/src/Activity/{Bubble.js → Bubble.tsx} +10 -2
- package/src/Activity/CarouselFilmStrip.js +20 -29
- package/src/Activity/CarouselFilmStripAttachment.js +91 -0
- package/src/Activity/{Speak.js → Speak.tsx} +12 -5
- package/src/Activity/{StackedLayout.js → StackedLayout.tsx} +46 -20
- package/src/Attachment/Assets/DownloadIcon.js +8 -1
- package/src/Attachment/{AudioContent.js → AudioContent.tsx} +12 -3
- package/src/Attachment/FileAttachment.js +1 -1
- package/src/Attachment/{FileContent.js → FileContent.tsx} +22 -7
- package/src/Attachment/{HTMLVideoContent.js → HTMLVideoContent.tsx} +10 -2
- package/src/Attachment/{ImageContent.js → ImageContent.tsx} +7 -2
- package/src/Attachment/{TextContent.js → TextContent.tsx} +14 -7
- package/src/Attachment/{VideoContent.js → VideoContent.tsx} +10 -2
- package/src/Attachment/{VimeoContent.js → VimeoContent.tsx} +15 -8
- package/src/Attachment/{YouTubeContent.js → YouTubeContent.tsx} +12 -5
- package/src/{BasicSendBox.js → BasicSendBox.tsx} +9 -5
- package/src/BasicToaster.js +9 -5
- package/src/BasicTranscript.tsx +878 -0
- package/src/{BasicTypingIndicator.js → BasicTypingIndicator.tsx} +4 -3
- package/src/{BasicWebChat.js → BasicWebChat.tsx} +13 -4
- package/src/{Composer.js → Composer.tsx} +82 -71
- package/src/Dictation.js +13 -4
- package/src/{ErrorBox.js → ErrorBox.tsx} +7 -2
- package/src/Middleware/Activity/createCoreMiddleware.tsx +78 -0
- package/src/Middleware/ActivityStatus/SendStatus/{SendStatus.js → SendStatus.tsx} +8 -3
- package/src/Middleware/ActivityStatus/{Timestamp.js → Timestamp.tsx} +8 -2
- package/src/Middleware/ActivityStatus/{createCoreMiddleware.js → createCoreMiddleware.tsx} +3 -1
- package/src/Middleware/ActivityStatus/createSendStatusMiddleware.js +10 -6
- package/src/Middleware/ActivityStatus/createTimestampMiddleware.js +10 -8
- package/src/Middleware/Attachment/createCoreMiddleware.tsx +44 -0
- package/src/Middleware/AttachmentForScreenReader/createCoreMiddleware.tsx +40 -0
- package/src/Middleware/Avatar/{createCoreMiddleware.js → createCoreMiddleware.tsx} +19 -11
- package/src/Middleware/CardAction/createCoreMiddleware.js +51 -42
- package/src/Middleware/GroupActivities/createCoreMiddleware.js +6 -4
- package/src/Middleware/ScrollToEndButton/ScrollToEndButton.js +45 -0
- package/src/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.ts +19 -0
- package/src/Middleware/Toast/createCoreMiddleware.tsx +24 -0
- package/src/Middleware/TypingIndicator/{createCoreMiddleware.js → createCoreMiddleware.tsx} +10 -5
- package/src/{ReactWebChat.js → ReactWebChat.tsx} +25 -7
- package/src/ScreenReaderActivity.js +65 -40
- package/src/{ScreenReaderText.js → ScreenReaderText.tsx} +27 -9
- package/src/SendBox/Assets/AttachmentIcon.js +1 -1
- package/src/SendBox/Assets/MicrophoneIcon.js +1 -1
- package/src/SendBox/{AutoResizeTextArea.js → AutoResizeTextArea.tsx} +30 -4
- package/src/SendBox/{DictationInterims.js → DictationInterims.tsx} +6 -2
- package/src/SendBox/{IconButton.js → IconButton.tsx} +19 -3
- package/src/SendBox/{MicrophoneButton.js → MicrophoneButton.tsx} +35 -25
- package/src/SendBox/{SendButton.js → SendButton.tsx} +8 -3
- package/src/SendBox/{SuggestedAction.js → SuggestedAction.tsx} +62 -39
- package/src/SendBox/{SuggestedActions.js → SuggestedActions.tsx} +70 -22
- package/src/SendBox/{TextBox.js → TextBox.tsx} +21 -7
- package/src/SendBox/{UploadButton.js → UploadButton.tsx} +7 -3
- package/src/Styles/StyleSet/BasicTranscript.ts +34 -20
- package/src/Styles/StyleSet/Bubble.ts +0 -1
- package/src/Styles/StyleSet/CarouselFilmStrip.ts +12 -30
- package/src/Styles/StyleSet/CarouselFilmStripAttachment.ts +57 -0
- package/src/Styles/StyleSet/KeyboardHelp.ts +157 -0
- package/src/Styles/StyleSet/ScrollToEndButton.ts +33 -31
- package/src/Styles/StyleSet/SendBoxButton.ts +84 -13
- package/src/Styles/StyleSet/SendBoxTextBox.ts +1 -2
- package/src/Styles/StyleSet/StackedLayout.ts +13 -11
- package/src/Styles/StyleSet/SuggestedAction.ts +130 -43
- package/src/Styles/StyleSet/SuggestedActions.ts +13 -5
- package/src/Styles/createStyleSet.ts +43 -40
- package/src/Styles/mirrorStyle.js +10 -2
- package/src/Toast/CollapseIcon.js +9 -1
- package/src/Toast/DismissIcon.js +9 -1
- package/src/Toast/ExpandIcon.js +9 -1
- package/src/Toast/NotificationIcon.js +4 -1
- package/src/Toast/createToastMiddleware.tsx +15 -0
- package/src/Transcript/ActivityRow.tsx +124 -0
- package/src/Transcript/ActivityTextAlt.tsx +32 -0
- package/src/Transcript/FocusTrap.tsx +64 -0
- package/src/Transcript/KeyboardHelp.tsx +282 -0
- package/src/Transcript/LiveRegionTranscript.tsx +181 -0
- package/src/Transcript/types.ts +1 -0
- package/src/Transcript/useActivityAccessibleName.ts +85 -0
- package/src/Utils/{AccessibleButton.js → AccessibleButton.tsx} +19 -4
- package/src/Utils/{AccessibleInputText.js → AccessibleInputText.tsx} +48 -5
- package/src/Utils/{AccessibleTextArea.js → AccessibleTextArea.tsx} +67 -6
- package/src/Utils/{FocusRedirector.js → FocusRedirector.tsx} +21 -8
- package/src/Utils/InlineMarkdown.js +18 -2
- package/src/Utils/TypeFocusSink/FocusBox.js +4 -4
- package/src/Utils/TypeFocusSink/getTabIndex.ts +1 -1
- package/src/Utils/TypeFocusSink/inputtableKey.ts +5 -1
- package/src/Utils/activityAltText.ts +135 -0
- package/src/Utils/createCustomEvent.js +7 -1
- package/src/Utils/detectBrowser.js +2 -1
- package/src/Utils/findAncestor.ts +12 -0
- package/src/Utils/getActivityUniqueId.ts +5 -0
- package/src/Utils/intersectionOf.spec.js +2 -0
- package/src/Utils/intersectionOf.ts +14 -0
- package/src/Utils/isZeroOrPositive.ts +7 -0
- package/src/Utils/mapMap.js +7 -1
- package/src/Utils/mapMap.spec.js +2 -0
- package/src/Utils/removeInline.spec.js +2 -0
- package/src/Utils/scrollIntoViewWithBlockNearest.ts +20 -0
- package/src/Utils/shallowEquals.js +8 -1
- package/src/Utils/{singleToArray.js → singleToArray.ts} +1 -1
- package/src/Utils/supportPseudoClass.ts +17 -0
- package/src/Utils/{tabbableElements.js → tabbableElements.ts} +6 -5
- package/src/Utils/walkMarkdownTokens.spec.js +3 -3
- package/src/connectToWebChat.js +11 -4
- package/src/hooks/{index.js → index.ts} +1 -0
- package/src/hooks/internal/BypassSpeechSynthesisPonyfill.js +70 -17
- package/src/hooks/internal/useChanged.ts +17 -0
- package/src/hooks/internal/useDispatchScrollPosition.js +1 -3
- package/src/hooks/internal/useDispatchTranscriptFocusByActivityKey.ts +5 -0
- package/src/hooks/internal/useFocusVisible.ts +22 -0
- package/src/hooks/internal/useMemoWithPrevious.ts +16 -0
- package/src/hooks/internal/useMemoize.spec.js +3 -1
- package/src/hooks/internal/useMemoize.ts +53 -0
- package/src/hooks/internal/useObserveFocusVisible.ts +252 -0
- package/src/hooks/internal/usePrevious.ts +12 -0
- package/src/hooks/internal/useResumeAudioContext.ts +7 -0
- package/src/hooks/internal/useScrollRelative.js +4 -3
- package/src/hooks/internal/useStateRef.ts +31 -0
- package/src/hooks/internal/{useUniqueId.js → useUniqueId.ts} +1 -1
- package/src/hooks/internal/useValueRef.ts +22 -0
- package/src/hooks/{useDictateAbortable.js → useDictateAbortable.ts} +1 -1
- package/src/hooks/{useFocus.js → useFocus.ts} +1 -1
- package/src/hooks/{useFocusSendBox.js → useFocusSendBox.ts} +2 -1
- package/src/hooks/{useObserveScrollPosition.js → useObserveScrollPosition.ts} +6 -1
- package/src/hooks/{useObserveTranscriptFocus.js → useObserveTranscriptFocus.ts} +6 -1
- package/src/hooks/useRenderMarkdownAsHTML.ts +23 -0
- package/src/hooks/{useScrollDown.js → useScrollDown.ts} +1 -1
- package/src/hooks/useScrollTo.ts +16 -0
- package/src/hooks/useScrollToEnd.ts +12 -0
- package/src/hooks/{useScrollUp.js → useScrollUp.ts} +1 -1
- package/src/hooks/{useSendFiles.js → useSendFiles.ts} +3 -2
- package/src/hooks/{useStyleSet.js → useStyleSet.ts} +1 -1
- package/src/hooks/useWebSpeechPonyfill.ts +7 -0
- package/src/index.ts +7 -12
- package/src/providers/ActivityTree/ActivityTreeComposer.tsx +74 -0
- package/src/providers/ActivityTree/private/Context.ts +12 -0
- package/src/providers/ActivityTree/private/types.ts +12 -0
- package/src/providers/ActivityTree/private/useActivitiesWithRenderer.ts +66 -0
- package/src/providers/ActivityTree/private/useActivityTreeWithRenderer.ts +140 -0
- package/src/providers/ActivityTree/private/useContext.ts +15 -0
- package/src/providers/ActivityTree/useActivityTreeWithRenderer.ts +16 -0
- package/src/providers/LiveRegionTwin/LiveRegionTwinComposer.tsx +154 -0
- package/src/providers/LiveRegionTwin/private/Context.ts +15 -0
- package/src/providers/LiveRegionTwin/private/LiveRegionTwinContainer.tsx +64 -0
- package/src/providers/LiveRegionTwin/private/types.ts +10 -0
- package/src/providers/LiveRegionTwin/private/useContext.ts +15 -0
- package/src/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.ts +13 -0
- package/src/providers/LiveRegionTwin/private/useStaticElementEntries.ts +7 -0
- package/src/providers/LiveRegionTwin/useQueueStaticElement.ts +12 -0
- package/src/providers/TranscriptFocus/TranscriptFocusComposer.tsx +180 -0
- package/src/providers/TranscriptFocus/private/Context.ts +16 -0
- package/src/providers/TranscriptFocus/private/useContext.ts +13 -0
- package/src/providers/TranscriptFocus/useActiveDescendantId.ts +5 -0
- package/src/providers/TranscriptFocus/useFocusByActivityKey.ts +14 -0
- package/src/providers/TranscriptFocus/useFocusRelativeActivity.ts +5 -0
- package/src/providers/TranscriptFocus/useFocusedActivityKey.ts +5 -0
- package/src/providers/TranscriptFocus/useFocusedExplicitly.ts +5 -0
- package/src/providers/TranscriptFocus/useGetDescendantIdByActivityKey.ts +5 -0
- package/src/tsconfig.json +1 -1
- package/src/types/ScrollPosition.ts +6 -0
- package/.eslintignore +0 -9
- package/lib/Activity/ScrollToEndButton.js +0 -81
- package/lib/Attachment/Assets/ErrorIcon.js +0 -22
- package/lib/Utils/findLastIndex.js +0 -32
- package/lib/Utils/remarkStripMarkdown.js +0 -26
- package/lib/hooks/internal/useAcknowledgedActivity.js +0 -90
- package/lib/hooks/internal/useDispatchTranscriptFocus.js +0 -19
- package/lib/hooks/internal/useStripMarkdown.js +0 -19
- package/src/Activity/ScrollToEndButton.js +0 -58
- package/src/Attachment/Assets/ErrorIcon.js +0 -9
- package/src/BasicTranscript.js +0 -1123
- package/src/Middleware/Activity/createCoreMiddleware.js +0 -71
- package/src/Middleware/Attachment/createCoreMiddleware.js +0 -43
- package/src/Middleware/AttachmentForScreenReader/createCoreMiddleware.js +0 -37
- package/src/Middleware/Toast/createCoreMiddleware.js +0 -20
- package/src/Toast/createToastMiddleware.js +0 -11
- package/src/Utils/findLastIndex.js +0 -11
- package/src/Utils/findLastIndex.spec.js +0 -29
- package/src/Utils/getActivityUniqueId.js +0 -3
- package/src/Utils/intersectionOf.js +0 -11
- package/src/Utils/isZeroOrPositive.js +0 -4
- package/src/Utils/remarkStripMarkdown.js +0 -13
- package/src/hooks/internal/useAcknowledgedActivity.js +0 -65
- package/src/hooks/internal/useChanged.js +0 -10
- package/src/hooks/internal/useDispatchTranscriptFocus.js +0 -7
- package/src/hooks/internal/useMemoize.js +0 -37
- package/src/hooks/internal/useStripMarkdown.js +0 -7
- package/src/hooks/useRenderMarkdownAsHTML.js +0 -20
- package/src/hooks/useScrollTo.js +0 -11
- package/src/hooks/useScrollToEnd.js +0 -11
- package/src/hooks/useWebSpeechPonyfill.js +0 -5
- package/src/index.tsx +0 -35
|
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.default = exports.connectSuggestedAction = void 0;
|
|
9
9
|
|
|
10
10
|
var _botframeworkWebchatApi = require("botframework-webchat-api");
|
|
11
11
|
|
|
@@ -23,6 +23,8 @@ var _useFocus = _interopRequireDefault(require("../hooks/useFocus"));
|
|
|
23
23
|
|
|
24
24
|
var _useFocusAccessKeyEffect = _interopRequireDefault(require("../Utils/AccessKeySink/useFocusAccessKeyEffect"));
|
|
25
25
|
|
|
26
|
+
var _useFocusVisible3 = _interopRequireDefault(require("../hooks/internal/useFocusVisible"));
|
|
27
|
+
|
|
26
28
|
var _useLocalizeAccessKey = _interopRequireDefault(require("../hooks/internal/useLocalizeAccessKey"));
|
|
27
29
|
|
|
28
30
|
var _useScrollToEnd = _interopRequireDefault(require("../hooks/useScrollToEnd"));
|
|
@@ -33,9 +35,9 @@ var _useStyleSet3 = _interopRequireDefault(require("../hooks/useStyleSet"));
|
|
|
33
35
|
|
|
34
36
|
var _useStyleToEmotionObject = _interopRequireDefault(require("../hooks/internal/useStyleToEmotionObject"));
|
|
35
37
|
|
|
36
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
38
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
39
|
|
|
38
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
40
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
41
|
|
|
40
42
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
41
43
|
|
|
@@ -49,7 +51,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
49
51
|
|
|
50
52
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
51
53
|
|
|
52
|
-
function _iterableToArrayLimit(arr, i) {
|
|
54
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
53
55
|
|
|
54
56
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
55
57
|
|
|
@@ -60,11 +62,9 @@ var useDirection = _botframeworkWebchatApi.hooks.useDirection,
|
|
|
60
62
|
useSuggestedActions = _botframeworkWebchatApi.hooks.useSuggestedActions;
|
|
61
63
|
var ROOT_STYLE = {
|
|
62
64
|
'&.webchat__suggested-action': {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
overflow: 'hidden' // Prevent image from leaking; object-fit does not work with IE11
|
|
65
|
+
display: 'flex',
|
|
66
|
+
overflow: 'hidden' // Prevent image from leaking; object-fit does not work with IE11
|
|
66
67
|
|
|
67
|
-
}
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
|
|
@@ -101,8 +101,7 @@ var connectSuggestedAction = function connectSuggestedAction() {
|
|
|
101
101
|
exports.connectSuggestedAction = connectSuggestedAction;
|
|
102
102
|
|
|
103
103
|
var SuggestedAction = function SuggestedAction(_ref3) {
|
|
104
|
-
var
|
|
105
|
-
buttonText = _ref3.buttonText,
|
|
104
|
+
var buttonText = _ref3.buttonText,
|
|
106
105
|
className = _ref3.className,
|
|
107
106
|
displayText = _ref3.displayText,
|
|
108
107
|
image = _ref3.image,
|
|
@@ -141,10 +140,17 @@ var SuggestedAction = function SuggestedAction(_ref3) {
|
|
|
141
140
|
var focusRef = (0, _react.useRef)();
|
|
142
141
|
var localizeAccessKey = (0, _useLocalizeAccessKey.default)();
|
|
143
142
|
var performCardAction = usePerformCardAction();
|
|
144
|
-
var scrollToEnd = (0, _useScrollToEnd.default)();
|
|
145
143
|
var rootClassName = (0, _useStyleToEmotionObject.default)()(ROOT_STYLE) + '';
|
|
144
|
+
var scrollToEnd = (0, _useScrollToEnd.default)();
|
|
145
|
+
|
|
146
|
+
var _useFocusVisible = (0, _useFocusVisible3.default)(focusRef),
|
|
147
|
+
_useFocusVisible2 = _slicedToArray(_useFocusVisible, 1),
|
|
148
|
+
focusVisible = _useFocusVisible2[0];
|
|
149
|
+
|
|
146
150
|
var handleClick = (0, _react.useCallback)(function (_ref4) {
|
|
147
151
|
var target = _ref4.target;
|
|
152
|
+
// TODO: [P3] #XXX We should not destruct DirectLineCardAction into React props and pass them in. It makes typings difficult.
|
|
153
|
+
// Instead, we should pass a "cardAction" props.
|
|
148
154
|
performCardAction({
|
|
149
155
|
displayText: displayText,
|
|
150
156
|
text: text,
|
|
@@ -159,17 +165,14 @@ var SuggestedAction = function SuggestedAction(_ref3) {
|
|
|
159
165
|
scrollToEnd();
|
|
160
166
|
}, [displayText, focus, performCardAction, scrollToEnd, setSuggestedActions, text, type, value]);
|
|
161
167
|
(0, _useFocusAccessKeyEffect.default)(accessKey, focusRef);
|
|
162
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
163
|
-
"aria-hidden": ariaHidden,
|
|
164
|
-
className: (0, _classnames.default)('webchat__suggested-action', {
|
|
165
|
-
'webchat__suggested-action--rtl': direction === 'rtl'
|
|
166
|
-
}, rootClassName, suggestedActionStyleSet + '', (className || '') + '')
|
|
167
|
-
}, /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, _extends({}, accessKey ? {
|
|
168
|
+
return /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, _extends({}, accessKey ? {
|
|
168
169
|
'aria-keyshortcuts': localizeAccessKey(accessKey)
|
|
169
170
|
} : {}, {
|
|
170
|
-
className: (0, _classnames.default)('webchat__suggested-
|
|
171
|
+
className: (0, _classnames.default)('webchat__suggested-action', {
|
|
172
|
+
'webchat__suggested-action--focus-visible': focusVisible,
|
|
173
|
+
'webchat__suggested-action--rtl': direction === 'rtl',
|
|
171
174
|
'webchat__suggested-action--wrapping': suggestedActionsStackedLayoutButtonTextWrap
|
|
172
|
-
}),
|
|
175
|
+
}, rootClassName, suggestedActionStyleSet + '', (className || '') + ''),
|
|
173
176
|
disabled: disabled,
|
|
174
177
|
onClick: handleClick,
|
|
175
178
|
ref: focusRef,
|
|
@@ -180,22 +183,22 @@ var SuggestedAction = function SuggestedAction(_ref3) {
|
|
|
180
183
|
src: image
|
|
181
184
|
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
182
185
|
className: (0, _classnames.default)('webchat__suggested-action__text', (textClassName || '') + '')
|
|
183
|
-
}, buttonText)
|
|
186
|
+
}, buttonText), /*#__PURE__*/_react.default.createElement("div", {
|
|
187
|
+
className: "webchat__suggested-action__keyboard-focus-indicator"
|
|
188
|
+
}));
|
|
184
189
|
};
|
|
185
190
|
|
|
186
191
|
SuggestedAction.defaultProps = {
|
|
187
|
-
'aria-hidden': false,
|
|
188
192
|
className: '',
|
|
189
193
|
displayText: '',
|
|
190
194
|
image: '',
|
|
191
195
|
imageAlt: undefined,
|
|
192
196
|
text: '',
|
|
193
197
|
textClassName: '',
|
|
194
|
-
type:
|
|
198
|
+
type: undefined,
|
|
195
199
|
value: undefined
|
|
196
200
|
};
|
|
197
201
|
SuggestedAction.propTypes = {
|
|
198
|
-
'aria-hidden': _propTypes.default.bool,
|
|
199
202
|
buttonText: _propTypes.default.string.isRequired,
|
|
200
203
|
className: _propTypes.default.string,
|
|
201
204
|
displayText: _propTypes.default.string,
|
|
@@ -203,9 +206,11 @@ SuggestedAction.propTypes = {
|
|
|
203
206
|
imageAlt: _propTypes.default.string,
|
|
204
207
|
text: _propTypes.default.string,
|
|
205
208
|
textClassName: _propTypes.default.string,
|
|
209
|
+
// TypeScript class is not mappable to PropTypes.
|
|
210
|
+
// @ts-ignore
|
|
206
211
|
type: _propTypes.default.string,
|
|
207
212
|
value: _propTypes.default.any
|
|
208
213
|
};
|
|
209
214
|
var _default = SuggestedAction;
|
|
210
215
|
exports.default = _default;
|
|
211
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1N1Z2dlc3RlZEFjdGlvbi5qcyJdLCJuYW1lcyI6WyJ1c2VEaXJlY3Rpb24iLCJob29rcyIsInVzZURpc2FibGVkIiwidXNlUGVyZm9ybUNhcmRBY3Rpb24iLCJ1c2VTdHlsZU9wdGlvbnMiLCJ1c2VTdWdnZXN0ZWRBY3Rpb25zIiwiUk9PVF9TVFlMRSIsImRpc3BsYXkiLCJvdmVyZmxvdyIsImNvbm5lY3RTdWdnZXN0ZWRBY3Rpb24iLCJzZWxlY3RvcnMiLCJjb25uZWN0VG9XZWJDaGF0IiwiY2xlYXJTdWdnZXN0ZWRBY3Rpb25zIiwiZGlzYWJsZWQiLCJsYW5ndWFnZSIsIm9uQ2FyZEFjdGlvbiIsImRpc3BsYXlUZXh0IiwidGV4dCIsInR5cGUiLCJ2YWx1ZSIsImNsaWNrIiwiU3VnZ2VzdGVkQWN0aW9uIiwiYXJpYUhpZGRlbiIsImJ1dHRvblRleHQiLCJjbGFzc05hbWUiLCJpbWFnZSIsImltYWdlQWx0IiwidGV4dENsYXNzTmFtZSIsIl8iLCJzZXRTdWdnZXN0ZWRBY3Rpb25zIiwic3VnZ2VzdGVkQWN0aW9uc1N0YWNrZWRMYXlvdXRCdXR0b25UZXh0V3JhcCIsInN1Z2dlc3RlZEFjdGlvblN0eWxlU2V0Iiwic3VnZ2VzdGVkQWN0aW9uIiwiYWNjZXNzS2V5IiwiZGlyZWN0aW9uIiwiZm9jdXMiLCJmb2N1c1JlZiIsImxvY2FsaXplQWNjZXNzS2V5IiwicGVyZm9ybUNhcmRBY3Rpb24iLCJzY3JvbGxUb0VuZCIsInJvb3RDbGFzc05hbWUiLCJoYW5kbGVDbGljayIsInRhcmdldCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiYW55Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7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b0IsbUJBQVVFLE1BTk07QUFPMUIvQixFQUFBQSxJQUFJLEVBQUU2QixtQkFBVUUsTUFQVTtBQVExQnJCLEVBQUFBLGFBQWEsRUFBRW1CLG1CQUFVRSxNQVJDO0FBUzFCOUIsRUFBQUEsSUFBSSxFQUFFNEIsbUJBQVVFLE1BVFU7QUFVMUI3QixFQUFBQSxLQUFLLEVBQUUyQixtQkFBVUk7QUFWUyxDQUE1QjtlQWFlN0IsZSIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBBY2Nlc3NpYmxlQnV0dG9uIGZyb20gJy4uL1V0aWxzL0FjY2Vzc2libGVCdXR0b24nO1xuaW1wb3J0IGNvbm5lY3RUb1dlYkNoYXQgZnJvbSAnLi4vY29ubmVjdFRvV2ViQ2hhdCc7XG5pbXBvcnQgdXNlRm9jdXMgZnJvbSAnLi4vaG9va3MvdXNlRm9jdXMnO1xuaW1wb3J0IHVzZUZvY3VzQWNjZXNzS2V5RWZmZWN0IGZyb20gJy4uL1V0aWxzL0FjY2Vzc0tleVNpbmsvdXNlRm9jdXNBY2Nlc3NLZXlFZmZlY3QnO1xuaW1wb3J0IHVzZUxvY2FsaXplQWNjZXNzS2V5IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZUxvY2FsaXplQWNjZXNzS2V5JztcbmltcG9ydCB1c2VTY3JvbGxUb0VuZCBmcm9tICcuLi9ob29rcy91c2VTY3JvbGxUb0VuZCc7XG5pbXBvcnQgdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5JztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5pbXBvcnQgdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QnO1xuXG5jb25zdCB7IHVzZURpcmVjdGlvbiwgdXNlRGlzYWJsZWQsIHVzZVBlcmZvcm1DYXJkQWN0aW9uLCB1c2VTdHlsZU9wdGlvbnMsIHVzZVN1Z2dlc3RlZEFjdGlvbnMgfSA9IGhvb2tzO1xuXG5jb25zdCBST09UX1NUWUxFID0ge1xuICAnJi53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uJzoge1xuICAgICcmIC53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uX19idXR0b24nOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbicgLy8gUHJldmVudCBpbWFnZSBmcm9tIGxlYWtpbmc7IG9iamVjdC1maXQgZG9lcyBub3Qgd29yayB3aXRoIElFMTFcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGNvbm5lY3RTdWdnZXN0ZWRBY3Rpb24gPSAoLi4uc2VsZWN0b3JzKSA9PlxuICBjb25uZWN0VG9XZWJDaGF0KFxuICAgICh7IGNsZWFyU3VnZ2VzdGVkQWN0aW9ucywgZGlzYWJsZWQsIGxhbmd1YWdlLCBvbkNhcmRBY3Rpb24gfSwgeyBkaXNwbGF5VGV4dCwgdGV4dCwgdHlwZSwgdmFsdWUgfSkgPT4gKHtcbiAgICAgIGNsaWNrOiAoKSA9PiB7XG4gICAgICAgIG9uQ2FyZEFjdGlvbih7IGRpc3BsYXlUZXh0LCB0ZXh0LCB0eXBlLCB2YWx1ZSB9KTtcbiAgICAgICAgdHlwZSA9PT0gJ29wZW5VcmwnICYmIGNsZWFyU3VnZ2VzdGVkQWN0aW9ucygpO1xuICAgICAgfSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgbGFuZ3VhZ2VcbiAgICB9KSxcbiAgICAuLi5zZWxlY3RvcnNcbiAgKTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uID0gKHtcbiAgJ2FyaWEtaGlkZGVuJzogYXJpYUhpZGRlbixcbiAgYnV0dG9uVGV4dCxcbiAgY2xhc3NOYW1lLFxuICBkaXNwbGF5VGV4dCxcbiAgaW1hZ2UsXG4gIGltYWdlQWx0LFxuICB0ZXh0LFxuICB0ZXh0Q2xhc3NOYW1lLFxuICB0eXBlLFxuICB2YWx1ZVxufSkgPT4ge1xuICBjb25zdCBbXywgc2V0U3VnZ2VzdGVkQWN0aW9uc10gPSB1c2VTdWdnZXN0ZWRBY3Rpb25zKCk7XG4gIGNvbnN0IFt7IHN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXAgfV0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uOiBzdWdnZXN0ZWRBY3Rpb25TdHlsZVNldCB9XSA9IHVzZVN0eWxlU2V0KCk7XG4gIGNvbnN0IFthY2Nlc3NLZXldID0gdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSgpO1xuICBjb25zdCBbZGlyZWN0aW9uXSA9IHVzZURpcmVjdGlvbigpO1xuICBjb25zdCBbZGlzYWJsZWRdID0gdXNlRGlzYWJsZWQoKTtcbiAgY29uc3QgZm9jdXMgPSB1c2VGb2N1cygpO1xuICBjb25zdCBmb2N1c1JlZiA9IHVzZVJlZigpO1xuICBjb25zdCBsb2NhbGl6ZUFjY2Vzc0tleSA9IHVzZUxvY2FsaXplQWNjZXNzS2V5KCk7XG4gIGNvbnN0IHBlcmZvcm1DYXJkQWN0aW9uID0gdXNlUGVyZm9ybUNhcmRBY3Rpb24oKTtcbiAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VTY3JvbGxUb0VuZCgpO1xuICBjb25zdCByb290Q2xhc3NOYW1lID0gdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QoKShST09UX1NUWUxFKSArICcnO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgIHBlcmZvcm1DYXJkQWN0aW9uKHsgZGlzcGxheVRleHQsIHRleHQsIHR5cGUsIHZhbHVlIH0sIHsgdGFyZ2V0IH0pO1xuXG4gICAgICAvLyBTaW5jZSBcIm9wZW5VcmxcIiBhY3Rpb24gZG8gbm90IHN1Ym1pdCwgdGhlIHN1Z2dlc3RlZCBhY3Rpb24gYnV0dG9ucyBkbyBub3QgaGlkZSBhZnRlciBjbGljay5cbiAgICAgIHR5cGUgPT09ICdvcGVuVXJsJyAmJiBzZXRTdWdnZXN0ZWRBY3Rpb25zKFtdKTtcblxuICAgICAgZm9jdXMoJ3NlbmRCb3hXaXRob3V0S2V5Ym9hcmQnKTtcbiAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgfSxcbiAgICBbZGlzcGxheVRleHQsIGZvY3VzLCBwZXJmb3JtQ2FyZEFjdGlvbiwgc2Nyb2xsVG9FbmQsIHNldFN1Z2dlc3RlZEFjdGlvbnMsIHRleHQsIHR5cGUsIHZhbHVlXVxuICApO1xuXG4gIHVzZUZvY3VzQWNjZXNzS2V5RWZmZWN0KGFjY2Vzc0tleSwgZm9jdXNSZWYpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgYXJpYS1oaWRkZW49e2FyaWFIaWRkZW59XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uJyxcbiAgICAgICAgeyAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbi0tcnRsJzogZGlyZWN0aW9uID09PSAncnRsJyB9LFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb25TdHlsZVNldCArICcnLFxuICAgICAgICAoY2xhc3NOYW1lIHx8ICcnKSArICcnXG4gICAgICApfVxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uXG4gICAgICAgIHsuLi4oYWNjZXNzS2V5ID8geyAnYXJpYS1rZXlzaG9ydGN1dHMnOiBsb2NhbGl6ZUFjY2Vzc0tleShhY2Nlc3NLZXkpIH0gOiB7fSl9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbl9fYnV0dG9uJywge1xuICAgICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uLS13cmFwcGluZyc6IHN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXBcbiAgICAgICAgfSl9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIHJlZj17Zm9jdXNSZWZ9XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICB7aW1hZ2UgJiYgKFxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGFsdD17aW1hZ2VBbHR9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uX19pbWFnZScsXG4gICAgICAgICAgICAgIGRpcmVjdGlvbiA9PT0gJ3J0bCcgJiYgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25fX2ltYWdlLS1ydGwnXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgc3JjPXtpbWFnZX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25fX3RleHQnLCAodGV4dENsYXNzTmFtZSB8fCAnJykgKyAnJyl9PntidXR0b25UZXh0fTwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblN1Z2dlc3RlZEFjdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gICdhcmlhLWhpZGRlbic6IGZhbHNlLFxuICBjbGFzc05hbWU6ICcnLFxuICBkaXNwbGF5VGV4dDogJycsXG4gIGltYWdlOiAnJyxcbiAgaW1hZ2VBbHQ6IHVuZGVmaW5lZCxcbiAgdGV4dDogJycsXG4gIHRleHRDbGFzc05hbWU6ICcnLFxuICB0eXBlOiAnJyxcbiAgdmFsdWU6IHVuZGVmaW5lZFxufTtcblxuU3VnZ2VzdGVkQWN0aW9uLnByb3BUeXBlcyA9IHtcbiAgJ2FyaWEtaGlkZGVuJzogUHJvcFR5cGVzLmJvb2wsXG4gIGJ1dHRvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaXNwbGF5VGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaW1hZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGltYWdlQWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0ZXh0Q2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2YWx1ZTogUHJvcFR5cGVzLmFueVxufTtcblxuZXhwb3J0IGRlZmF1bHQgU3VnZ2VzdGVkQWN0aW9uO1xuXG5leHBvcnQgeyBjb25uZWN0U3VnZ2VzdGVkQWN0aW9uIH07XG4iXX0=
|
|
216
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1N1Z2dlc3RlZEFjdGlvbi50c3giXSwibmFtZXMiOlsidXNlRGlyZWN0aW9uIiwiaG9va3MiLCJ1c2VEaXNhYmxlZCIsInVzZVBlcmZvcm1DYXJkQWN0aW9uIiwidXNlU3R5bGVPcHRpb25zIiwidXNlU3VnZ2VzdGVkQWN0aW9ucyIsIlJPT1RfU1RZTEUiLCJkaXNwbGF5Iiwib3ZlcmZsb3ciLCJjb25uZWN0U3VnZ2VzdGVkQWN0aW9uIiwic2VsZWN0b3JzIiwiY29ubmVjdFRvV2ViQ2hhdCIsImNsZWFyU3VnZ2VzdGVkQWN0aW9ucyIsImRpc2FibGVkIiwibGFuZ3VhZ2UiLCJvbkNhcmRBY3Rpb24iLCJkaXNwbGF5VGV4dCIsInRleHQiLCJ0eXBlIiwidmFsdWUiLCJjbGljayIsIlN1Z2dlc3RlZEFjdGlvbiIsImJ1dHRvblRleHQiLCJjbGFzc05hbWUiLCJpbWFnZSIsImltYWdlQWx0IiwidGV4dENsYXNzTmFtZSIsIl8iLCJzZXRTdWdnZXN0ZWRBY3Rpb25zIiwic3VnZ2VzdGVkQWN0aW9uc1N0YWNrZWRMYXlvdXRCdXR0b25UZXh0V3JhcCIsInN1Z2dlc3RlZEFjdGlvblN0eWxlU2V0Iiwic3VnZ2VzdGVkQWN0aW9uIiwiYWNjZXNzS2V5IiwiZGlyZWN0aW9uIiwiZm9jdXMiLCJmb2N1c1JlZiIsImxvY2FsaXplQWNjZXNzS2V5IiwicGVyZm9ybUNhcmRBY3Rpb24iLCJyb290Q2xhc3NOYW1lIiwic2Nyb2xsVG9FbmQiLCJmb2N1c1Zpc2libGUiLCJoYW5kbGVDbGljayIsInRhcmdldCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJhbnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBUUEsWUFBUixHQUFrR0MsNkJBQWxHLENBQVFELFlBQVI7QUFBQSxJQUFzQkUsV0FBdEIsR0FBa0dELDZCQUFsRyxDQUFzQkMsV0FBdEI7QUFBQSxJQUFtQ0Msb0JBQW5DLEdBQWtHRiw2QkFBbEcsQ0FBbUNFLG9CQUFuQztBQUFBLElBQXlEQyxlQUF6RCxHQUFrR0gsNkJBQWxHLENBQXlERyxlQUF6RDtBQUFBLElBQTBFQyxtQkFBMUUsR0FBa0dKLDZCQUFsRyxDQUEwRUksbUJBQTFFO0FBRUEsSUFBTUMsVUFBVSxHQUFHO0FBQ2pCLGlDQUErQjtBQUM3QkMsSUFBQUEsT0FBTyxFQUFFLE1BRG9CO0FBRTdCQyxJQUFBQSxRQUFRLEVBQUUsUUFGbUIsQ0FFVjs7QUFGVTtBQURkLENBQW5COztBQU9BLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBeUI7QUFBQSxvQ0FBSUMsU0FBSjtBQUFJQSxJQUFBQSxTQUFKO0FBQUE7O0FBQUEsU0FDN0JDLHlDQUNFO0FBQUEsUUFBR0MscUJBQUgsUUFBR0EscUJBQUg7QUFBQSxRQUEwQkMsUUFBMUIsUUFBMEJBLFFBQTFCO0FBQUEsUUFBb0NDLFFBQXBDLFFBQW9DQSxRQUFwQztBQUFBLFFBQThDQyxZQUE5QyxRQUE4Q0EsWUFBOUM7QUFBQSxRQUFnRUMsV0FBaEUsU0FBZ0VBLFdBQWhFO0FBQUEsUUFBNkVDLElBQTdFLFNBQTZFQSxJQUE3RTtBQUFBLFFBQW1GQyxJQUFuRixTQUFtRkEsSUFBbkY7QUFBQSxRQUF5RkMsS0FBekYsU0FBeUZBLEtBQXpGO0FBQUEsV0FBc0c7QUFDcEdDLE1BQUFBLEtBQUssRUFBRSxpQkFBTTtBQUNYTCxRQUFBQSxZQUFZLENBQUM7QUFBRUMsVUFBQUEsV0FBVyxFQUFYQSxXQUFGO0FBQWVDLFVBQUFBLElBQUksRUFBSkEsSUFBZjtBQUFxQkMsVUFBQUEsSUFBSSxFQUFKQSxJQUFyQjtBQUEyQkMsVUFBQUEsS0FBSyxFQUFMQTtBQUEzQixTQUFELENBQVo7QUFDQUQsUUFBQUEsSUFBSSxLQUFLLFNBQVQsSUFBc0JOLHFCQUFxQixFQUEzQztBQUNELE9BSm1HO0FBS3BHQyxNQUFBQSxRQUFRLEVBQVJBLFFBTG9HO0FBTXBHQyxNQUFBQSxRQUFRLEVBQVJBO0FBTm9HLEtBQXRHO0FBQUEsR0FERixTQVNLSixTQVRMLEVBRDZCO0FBQUEsQ0FBL0I7Ozs7QUFtQ0EsSUFBTVcsZUFBMEMsR0FBRyxTQUE3Q0EsZUFBNkMsUUFVN0M7QUFBQSxNQVRKQyxVQVNJLFNBVEpBLFVBU0k7QUFBQSxNQVJKQyxTQVFJLFNBUkpBLFNBUUk7QUFBQSxNQVBKUCxXQU9JLFNBUEpBLFdBT0k7QUFBQSxNQU5KUSxLQU1JLFNBTkpBLEtBTUk7QUFBQSxNQUxKQyxRQUtJLFNBTEpBLFFBS0k7QUFBQSxNQUpKUixJQUlJLFNBSkpBLElBSUk7QUFBQSxNQUhKUyxhQUdJLFNBSEpBLGFBR0k7QUFBQSxNQUZKUixJQUVJLFNBRkpBLElBRUk7QUFBQSxNQURKQyxLQUNJLFNBREpBLEtBQ0k7O0FBQ0osNkJBQWlDZCxtQkFBbUIsRUFBcEQ7QUFBQTtBQUFBLE1BQU9zQixDQUFQO0FBQUEsTUFBVUMsbUJBQVY7O0FBQ0EseUJBQTBEeEIsZUFBZSxFQUF6RTtBQUFBO0FBQUEsTUFBU3lCLDJDQUFULHdCQUFTQSwyQ0FBVDs7QUFDQSxxQkFBdUQsNEJBQXZEO0FBQUE7QUFBQSxNQUEwQkMsdUJBQTFCLG9CQUFTQyxlQUFUOztBQUNBLDhCQUFvQiw0Q0FBcEI7QUFBQTtBQUFBLE1BQU9DLFNBQVA7O0FBQ0Esc0JBQW9CaEMsWUFBWSxFQUFoQztBQUFBO0FBQUEsTUFBT2lDLFNBQVA7O0FBQ0EscUJBQW1CL0IsV0FBVyxFQUE5QjtBQUFBO0FBQUEsTUFBT1csUUFBUDs7QUFDQSxNQUFNcUIsS0FBSyxHQUFHLHdCQUFkO0FBQ0EsTUFBTUMsUUFBUSxHQUFHLG9CQUFqQjtBQUNBLE1BQU1DLGlCQUFpQixHQUFHLG9DQUExQjtBQUNBLE1BQU1DLGlCQUFpQixHQUFHbEMsb0JBQW9CLEVBQTlDO0FBQ0EsTUFBTW1DLGFBQWEsR0FBRyx3Q0FBMEJoQyxVQUExQixJQUF3QyxFQUE5RDtBQUNBLE1BQU1pQyxXQUFXLEdBQUcsOEJBQXBCOztBQUVBLHlCQUF1QiwrQkFBZ0JKLFFBQWhCLENBQXZCO0FBQUE7QUFBQSxNQUFPSyxZQUFQOztBQUVBLE1BQU1DLFdBQVcsR0FBRyx3QkFDbEIsaUJBQWdCO0FBQUEsUUFBYkMsTUFBYSxTQUFiQSxNQUFhO0FBQ2Q7QUFDQTtBQUNBTCxJQUFBQSxpQkFBaUIsQ0FBQztBQUFFckIsTUFBQUEsV0FBVyxFQUFYQSxXQUFGO0FBQWVDLE1BQUFBLElBQUksRUFBSkEsSUFBZjtBQUFxQkMsTUFBQUEsSUFBSSxFQUFKQSxJQUFyQjtBQUEyQkMsTUFBQUEsS0FBSyxFQUFMQTtBQUEzQixLQUFELEVBQTZEO0FBQUV1QixNQUFBQSxNQUFNLEVBQU5BO0FBQUYsS0FBN0QsQ0FBakIsQ0FIYyxDQUtkOztBQUNBeEIsSUFBQUEsSUFBSSxLQUFLLFNBQVQsSUFBc0JVLG1CQUFtQixDQUFDLEVBQUQsQ0FBekM7QUFFQU0sSUFBQUEsS0FBSyxDQUFDLHdCQUFELENBQUw7QUFDQUssSUFBQUEsV0FBVztBQUNaLEdBWGlCLEVBWWxCLENBQUN2QixXQUFELEVBQWNrQixLQUFkLEVBQXFCRyxpQkFBckIsRUFBd0NFLFdBQXhDLEVBQXFEWCxtQkFBckQsRUFBMEVYLElBQTFFLEVBQWdGQyxJQUFoRixFQUFzRkMsS0FBdEYsQ0Faa0IsQ0FBcEI7QUFlQSx3Q0FBd0JhLFNBQXhCLEVBQW1DRyxRQUFuQztBQUVBLHNCQUNFLDZCQUFDLHlCQUFELGVBQ09ILFNBQVMsR0FBRztBQUFFLHlCQUFxQkksaUJBQWlCLENBQUNKLFNBQUQ7QUFBeEMsR0FBSCxHQUEyRCxFQUQzRTtBQUVFLElBQUEsU0FBUyxFQUFFLHlCQUNULDJCQURTLEVBRVQ7QUFDRSxrREFBNENRLFlBRDlDO0FBRUUsd0NBQWtDUCxTQUFTLEtBQUssS0FGbEQ7QUFHRSw2Q0FBdUNKO0FBSHpDLEtBRlMsRUFPVFMsYUFQUyxFQVFUUix1QkFBdUIsR0FBRyxFQVJqQixFQVNULENBQUNQLFNBQVMsSUFBSSxFQUFkLElBQW9CLEVBVFgsQ0FGYjtBQWFFLElBQUEsUUFBUSxFQUFFVixRQWJaO0FBY0UsSUFBQSxPQUFPLEVBQUU0QixXQWRYO0FBZUUsSUFBQSxHQUFHLEVBQUVOLFFBZlA7QUFnQkUsSUFBQSxJQUFJLEVBQUM7QUFoQlAsTUFrQkdYLEtBQUssaUJBQ0o7QUFDRSxJQUFBLEdBQUcsRUFBRUMsUUFEUDtBQUVFLElBQUEsU0FBUyxFQUFFLHlCQUNULGtDQURTLEVBRVRRLFNBQVMsS0FBSyxLQUFkLElBQXVCLHVDQUZkLENBRmI7QUFNRSxJQUFBLEdBQUcsRUFBRVQ7QUFOUCxJQW5CSixlQTRCRTtBQUFNLElBQUEsU0FBUyxFQUFFLHlCQUFXLGlDQUFYLEVBQThDLENBQUNFLGFBQWEsSUFBSSxFQUFsQixJQUF3QixFQUF0RTtBQUFqQixLQUE2RkosVUFBN0YsQ0E1QkYsZUE2QkU7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLElBN0JGLENBREY7QUFpQ0QsQ0E1RUQ7O0FBOEVBRCxlQUFlLENBQUNzQixZQUFoQixHQUErQjtBQUM3QnBCLEVBQUFBLFNBQVMsRUFBRSxFQURrQjtBQUU3QlAsRUFBQUEsV0FBVyxFQUFFLEVBRmdCO0FBRzdCUSxFQUFBQSxLQUFLLEVBQUUsRUFIc0I7QUFJN0JDLEVBQUFBLFFBQVEsRUFBRW1CLFNBSm1CO0FBSzdCM0IsRUFBQUEsSUFBSSxFQUFFLEVBTHVCO0FBTTdCUyxFQUFBQSxhQUFhLEVBQUUsRUFOYztBQU83QlIsRUFBQUEsSUFBSSxFQUFFMEIsU0FQdUI7QUFRN0J6QixFQUFBQSxLQUFLLEVBQUV5QjtBQVJzQixDQUEvQjtBQVdBdkIsZUFBZSxDQUFDd0IsU0FBaEIsR0FBNEI7QUFDMUJ2QixFQUFBQSxVQUFVLEVBQUV3QixtQkFBVUMsTUFBVixDQUFpQkMsVUFESDtBQUUxQnpCLEVBQUFBLFNBQVMsRUFBRXVCLG1CQUFVQyxNQUZLO0FBRzFCL0IsRUFBQUEsV0FBVyxFQUFFOEIsbUJBQVVDLE1BSEc7QUFJMUJ2QixFQUFBQSxLQUFLLEVBQUVzQixtQkFBVUMsTUFKUztBQUsxQnRCLEVBQUFBLFFBQVEsRUFBRXFCLG1CQUFVQyxNQUxNO0FBTTFCOUIsRUFBQUEsSUFBSSxFQUFFNkIsbUJBQVVDLE1BTlU7QUFPMUJyQixFQUFBQSxhQUFhLEVBQUVvQixtQkFBVUMsTUFQQztBQVExQjtBQUNBO0FBQ0E3QixFQUFBQSxJQUFJLEVBQUU0QixtQkFBVUMsTUFWVTtBQVcxQjVCLEVBQUFBLEtBQUssRUFBRTJCLG1CQUFVRztBQVhTLENBQTVCO2VBY2U1QixlIiwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgTW91c2VFdmVudEhhbmRsZXIsIHVzZUNhbGxiYWNrLCB1c2VSZWYsIFZGQyB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24gZnJvbSAnLi4vVXRpbHMvQWNjZXNzaWJsZUJ1dHRvbic7XG5pbXBvcnQgY29ubmVjdFRvV2ViQ2hhdCBmcm9tICcuLi9jb25uZWN0VG9XZWJDaGF0JztcbmltcG9ydCB1c2VGb2N1cyBmcm9tICcuLi9ob29rcy91c2VGb2N1cyc7XG5pbXBvcnQgdXNlRm9jdXNBY2Nlc3NLZXlFZmZlY3QgZnJvbSAnLi4vVXRpbHMvQWNjZXNzS2V5U2luay91c2VGb2N1c0FjY2Vzc0tleUVmZmVjdCc7XG5pbXBvcnQgdXNlRm9jdXNWaXNpYmxlIGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZUZvY3VzVmlzaWJsZSc7XG5pbXBvcnQgdXNlTG9jYWxpemVBY2Nlc3NLZXkgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlTG9jYWxpemVBY2Nlc3NLZXknO1xuaW1wb3J0IHVzZVNjcm9sbFRvRW5kIGZyb20gJy4uL2hvb2tzL3VzZVNjcm9sbFRvRW5kJztcbmltcG9ydCB1c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5IGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZVN1Z2dlc3RlZEFjdGlvbnNBY2Nlc3NLZXknO1xuaW1wb3J0IHVzZVN0eWxlU2V0IGZyb20gJy4uL2hvb2tzL3VzZVN0eWxlU2V0JztcbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5pbXBvcnQgeyBEaXJlY3RMaW5lQ2FyZEFjdGlvbiB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuXG5jb25zdCB7IHVzZURpcmVjdGlvbiwgdXNlRGlzYWJsZWQsIHVzZVBlcmZvcm1DYXJkQWN0aW9uLCB1c2VTdHlsZU9wdGlvbnMsIHVzZVN1Z2dlc3RlZEFjdGlvbnMgfSA9IGhvb2tzO1xuXG5jb25zdCBST09UX1NUWUxFID0ge1xuICAnJi53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uJzoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicgLy8gUHJldmVudCBpbWFnZSBmcm9tIGxlYWtpbmc7IG9iamVjdC1maXQgZG9lcyBub3Qgd29yayB3aXRoIElFMTFcbiAgfVxufTtcblxuY29uc3QgY29ubmVjdFN1Z2dlc3RlZEFjdGlvbiA9ICguLi5zZWxlY3RvcnMpID0+XG4gIGNvbm5lY3RUb1dlYkNoYXQoXG4gICAgKHsgY2xlYXJTdWdnZXN0ZWRBY3Rpb25zLCBkaXNhYmxlZCwgbGFuZ3VhZ2UsIG9uQ2FyZEFjdGlvbiB9LCB7IGRpc3BsYXlUZXh0LCB0ZXh0LCB0eXBlLCB2YWx1ZSB9KSA9PiAoe1xuICAgICAgY2xpY2s6ICgpID0+IHtcbiAgICAgICAgb25DYXJkQWN0aW9uKHsgZGlzcGxheVRleHQsIHRleHQsIHR5cGUsIHZhbHVlIH0pO1xuICAgICAgICB0eXBlID09PSAnb3BlblVybCcgJiYgY2xlYXJTdWdnZXN0ZWRBY3Rpb25zKCk7XG4gICAgICB9LFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBsYW5ndWFnZVxuICAgIH0pLFxuICAgIC4uLnNlbGVjdG9yc1xuICApO1xuXG50eXBlIFN1Z2dlc3RlZEFjdGlvblByb3BzID0ge1xuICBidXR0b25UZXh0OiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZGlzcGxheVRleHQ/OiBzdHJpbmc7XG4gIGltYWdlPzogc3RyaW5nO1xuICBpbWFnZUFsdD86IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgdGV4dENsYXNzTmFtZT86IHN0cmluZztcbiAgdHlwZT86XG4gICAgfCAnY2FsbCdcbiAgICB8ICdkb3dubG9hZEZpbGUnXG4gICAgfCAnaW1CYWNrJ1xuICAgIHwgJ21lc3NhZ2VCYWNrJ1xuICAgIHwgJ29wZW5VcmwnXG4gICAgfCAncGxheUF1ZGlvJ1xuICAgIHwgJ3BsYXlWaWRlbydcbiAgICB8ICdwb3N0QmFjaydcbiAgICB8ICdzaG93SW1hZ2UnXG4gICAgfCAnc2lnbmluJztcbiAgdmFsdWU/OiBhbnk7XG59O1xuXG5jb25zdCBTdWdnZXN0ZWRBY3Rpb246IFZGQzxTdWdnZXN0ZWRBY3Rpb25Qcm9wcz4gPSAoe1xuICBidXR0b25UZXh0LFxuICBjbGFzc05hbWUsXG4gIGRpc3BsYXlUZXh0LFxuICBpbWFnZSxcbiAgaW1hZ2VBbHQsXG4gIHRleHQsXG4gIHRleHRDbGFzc05hbWUsXG4gIHR5cGUsXG4gIHZhbHVlXG59KSA9PiB7XG4gIGNvbnN0IFtfLCBzZXRTdWdnZXN0ZWRBY3Rpb25zXSA9IHVzZVN1Z2dlc3RlZEFjdGlvbnMoKTtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uc1N0YWNrZWRMYXlvdXRCdXR0b25UZXh0V3JhcCB9XSA9IHVzZVN0eWxlT3B0aW9ucygpO1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb246IHN1Z2dlc3RlZEFjdGlvblN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW2FjY2Vzc0tleV0gPSB1c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5KCk7XG4gIGNvbnN0IFtkaXJlY3Rpb25dID0gdXNlRGlyZWN0aW9uKCk7XG4gIGNvbnN0IFtkaXNhYmxlZF0gPSB1c2VEaXNhYmxlZCgpO1xuICBjb25zdCBmb2N1cyA9IHVzZUZvY3VzKCk7XG4gIGNvbnN0IGZvY3VzUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IGxvY2FsaXplQWNjZXNzS2V5ID0gdXNlTG9jYWxpemVBY2Nlc3NLZXkoKTtcbiAgY29uc3QgcGVyZm9ybUNhcmRBY3Rpb24gPSB1c2VQZXJmb3JtQ2FyZEFjdGlvbigpO1xuICBjb25zdCByb290Q2xhc3NOYW1lID0gdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QoKShST09UX1NUWUxFKSArICcnO1xuICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZVNjcm9sbFRvRW5kKCk7XG5cbiAgY29uc3QgW2ZvY3VzVmlzaWJsZV0gPSB1c2VGb2N1c1Zpc2libGUoZm9jdXNSZWYpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2s8TW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+PihcbiAgICAoeyB0YXJnZXQgfSkgPT4ge1xuICAgICAgLy8gVE9ETzogW1AzXSAjWFhYIFdlIHNob3VsZCBub3QgZGVzdHJ1Y3QgRGlyZWN0TGluZUNhcmRBY3Rpb24gaW50byBSZWFjdCBwcm9wcyBhbmQgcGFzcyB0aGVtIGluLiBJdCBtYWtlcyB0eXBpbmdzIGRpZmZpY3VsdC5cbiAgICAgIC8vICAgICAgIEluc3RlYWQsIHdlIHNob3VsZCBwYXNzIGEgXCJjYXJkQWN0aW9uXCIgcHJvcHMuXG4gICAgICBwZXJmb3JtQ2FyZEFjdGlvbih7IGRpc3BsYXlUZXh0LCB0ZXh0LCB0eXBlLCB2YWx1ZSB9IGFzIERpcmVjdExpbmVDYXJkQWN0aW9uLCB7IHRhcmdldCB9KTtcblxuICAgICAgLy8gU2luY2UgXCJvcGVuVXJsXCIgYWN0aW9uIGRvIG5vdCBzdWJtaXQsIHRoZSBzdWdnZXN0ZWQgYWN0aW9uIGJ1dHRvbnMgZG8gbm90IGhpZGUgYWZ0ZXIgY2xpY2suXG4gICAgICB0eXBlID09PSAnb3BlblVybCcgJiYgc2V0U3VnZ2VzdGVkQWN0aW9ucyhbXSk7XG5cbiAgICAgIGZvY3VzKCdzZW5kQm94V2l0aG91dEtleWJvYXJkJyk7XG4gICAgICBzY3JvbGxUb0VuZCgpO1xuICAgIH0sXG4gICAgW2Rpc3BsYXlUZXh0LCBmb2N1cywgcGVyZm9ybUNhcmRBY3Rpb24sIHNjcm9sbFRvRW5kLCBzZXRTdWdnZXN0ZWRBY3Rpb25zLCB0ZXh0LCB0eXBlLCB2YWx1ZV1cbiAgKTtcblxuICB1c2VGb2N1c0FjY2Vzc0tleUVmZmVjdChhY2Nlc3NLZXksIGZvY3VzUmVmKTtcblxuICByZXR1cm4gKFxuICAgIDxBY2Nlc3NpYmxlQnV0dG9uXG4gICAgICB7Li4uKGFjY2Vzc0tleSA/IHsgJ2FyaWEta2V5c2hvcnRjdXRzJzogbG9jYWxpemVBY2Nlc3NLZXkoYWNjZXNzS2V5KSB9IDoge30pfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbicsXG4gICAgICAgIHtcbiAgICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbi0tZm9jdXMtdmlzaWJsZSc6IGZvY3VzVmlzaWJsZSxcbiAgICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbi0tcnRsJzogZGlyZWN0aW9uID09PSAncnRsJyxcbiAgICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbi0td3JhcHBpbmcnOiBzdWdnZXN0ZWRBY3Rpb25zU3RhY2tlZExheW91dEJ1dHRvblRleHRXcmFwXG4gICAgICAgIH0sXG4gICAgICAgIHJvb3RDbGFzc05hbWUsXG4gICAgICAgIHN1Z2dlc3RlZEFjdGlvblN0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgIHJlZj17Zm9jdXNSZWZ9XG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICB7aW1hZ2UgJiYgKFxuICAgICAgICA8aW1nXG4gICAgICAgICAgYWx0PXtpbWFnZUFsdH1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbl9faW1hZ2UnLFxuICAgICAgICAgICAgZGlyZWN0aW9uID09PSAncnRsJyAmJiAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbl9faW1hZ2UtLXJ0bCdcbiAgICAgICAgICApfVxuICAgICAgICAgIHNyYz17aW1hZ2V9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc05hbWVzKCd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uX190ZXh0JywgKHRleHRDbGFzc05hbWUgfHwgJycpICsgJycpfT57YnV0dG9uVGV4dH08L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25fX2tleWJvYXJkLWZvY3VzLWluZGljYXRvclwiIC8+XG4gICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICApO1xufTtcblxuU3VnZ2VzdGVkQWN0aW9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiAnJyxcbiAgZGlzcGxheVRleHQ6ICcnLFxuICBpbWFnZTogJycsXG4gIGltYWdlQWx0OiB1bmRlZmluZWQsXG4gIHRleHQ6ICcnLFxuICB0ZXh0Q2xhc3NOYW1lOiAnJyxcbiAgdHlwZTogdW5kZWZpbmVkLFxuICB2YWx1ZTogdW5kZWZpbmVkXG59O1xuXG5TdWdnZXN0ZWRBY3Rpb24ucHJvcFR5cGVzID0ge1xuICBidXR0b25UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGlzcGxheVRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGltYWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbWFnZUFsdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdGV4dENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLy8gVHlwZVNjcmlwdCBjbGFzcyBpcyBub3QgbWFwcGFibGUgdG8gUHJvcFR5cGVzLlxuICAvLyBAdHMtaWdub3JlXG4gIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHZhbHVlOiBQcm9wVHlwZXMuYW55XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTdWdnZXN0ZWRBY3Rpb247XG5cbmV4cG9ydCB7IGNvbm5lY3RTdWdnZXN0ZWRBY3Rpb24gfTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestedActions.d.ts","sourceRoot":"","sources":["../../src/SendBox/SuggestedActions.tsx"],"names":[],"mappings":"AA+CA,QAAA,MAAM,uBAAuB,8BAO1B,CAAC;;AAqRJ,wBAA2D;AAE3D,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.default = exports.connectSuggestedActions = void 0;
|
|
9
9
|
|
|
10
10
|
var _botframeworkWebchatApi = require("botframework-webchat-api");
|
|
11
11
|
|
|
@@ -37,9 +37,9 @@ var _useUniqueId = _interopRequireDefault(require("../hooks/internal/useUniqueId
|
|
|
37
37
|
|
|
38
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
39
|
|
|
40
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
40
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
41
|
|
|
42
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
42
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
43
|
|
|
44
44
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
45
45
|
|
|
@@ -49,7 +49,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
49
49
|
|
|
50
50
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
51
51
|
|
|
52
|
-
function _iterableToArrayLimit(arr, i) {
|
|
52
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
53
53
|
|
|
54
54
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
55
55
|
|
|
@@ -197,7 +197,7 @@ var SuggestedActionFlowContainer = function SuggestedActionFlowContainer(_ref4)
|
|
|
197
197
|
className: "webchat__suggested-actions__flow-box"
|
|
198
198
|
}, _react.default.Children.map(children, function (child) {
|
|
199
199
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
200
|
-
className: "webchat__suggested-
|
|
200
|
+
className: "webchat__suggested-actions__flow-item-box"
|
|
201
201
|
}, child);
|
|
202
202
|
})));
|
|
203
203
|
};
|
|
@@ -261,19 +261,23 @@ var SuggestedActions = function SuggestedActions(_ref6) {
|
|
|
261
261
|
_useSuggestedActionsA2 = _slicedToArray(_useSuggestedActionsA, 1),
|
|
262
262
|
accessKey = _useSuggestedActionsA2[0];
|
|
263
263
|
|
|
264
|
+
var hideEmptyRef = (0, _react.useRef)(true);
|
|
264
265
|
var localize = useLocalizer();
|
|
265
266
|
var localizeAccessKey = (0, _useLocalizeAccessKey.default)();
|
|
266
267
|
var screenReaderText = localize('SUGGESTED_ACTIONS_ALT', suggestedActions.length ? accessKey ? localize('SUGGESTED_ACTIONS_ALT_HAS_CONTENT_AND_ACCESS_KEY', localizeAccessKey(accessKey)) : localize('SUGGESTED_ACTIONS_ALT_HAS_CONTENT') : localize('SUGGESTED_ACTIONS_ALT_NO_CONTENT'));
|
|
267
|
-
var children = suggestedActions.map(function (
|
|
268
|
-
var
|
|
268
|
+
var children = suggestedActions.map(function (cardAction, index) {
|
|
269
|
+
var _ref7 = cardAction,
|
|
270
|
+
displayText = _ref7.displayText,
|
|
269
271
|
image = _ref7.image,
|
|
270
272
|
imageAltText = _ref7.imageAltText,
|
|
271
273
|
text = _ref7.text,
|
|
272
274
|
title = _ref7.title,
|
|
273
275
|
type = _ref7.type,
|
|
274
276
|
value = _ref7.value;
|
|
275
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
276
|
-
|
|
277
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
278
|
+
className: "webchat__suggested-actions__item-box",
|
|
279
|
+
key: index
|
|
280
|
+
}, /*#__PURE__*/_react.default.createElement(_SuggestedAction.default, {
|
|
277
281
|
buttonText: suggestedActionText({
|
|
278
282
|
displayText: displayText,
|
|
279
283
|
title: title,
|
|
@@ -284,13 +288,27 @@ var SuggestedActions = function SuggestedActions(_ref6) {
|
|
|
284
288
|
displayText: displayText,
|
|
285
289
|
image: image,
|
|
286
290
|
imageAlt: imageAltText,
|
|
287
|
-
key: index,
|
|
288
291
|
text: text,
|
|
289
292
|
textClassName: suggestedActionLayout === 'stacked' && suggestedActionsStackedLayoutButtonTextWrap ? 'webchat__suggested-actions__button-text-stacked-text-wrap' : 'webchat__suggested-actions__button-text',
|
|
290
293
|
type: type,
|
|
291
294
|
value: value
|
|
292
|
-
});
|
|
293
|
-
});
|
|
295
|
+
}));
|
|
296
|
+
}); // (Related to #4021)
|
|
297
|
+
//
|
|
298
|
+
// To improve accessibility UX, if there are no suggested actions, and this container was never shown.
|
|
299
|
+
// Then, avoid rendering the alt-text "Suggested Actions Container: Is empty".
|
|
300
|
+
//
|
|
301
|
+
// This is to reduce the narration of "Is empty".
|
|
302
|
+
//
|
|
303
|
+
// After any suggested actions were shown during the lifetime of this container, then we will
|
|
304
|
+
// continue to start showing "Suggested Actions Container: Is empty" when the container is empty.
|
|
305
|
+
|
|
306
|
+
if (!children.length && hideEmptyRef.current) {
|
|
307
|
+
return null;
|
|
308
|
+
} // Otherwise, if we have rendered once, we will continue to render "Is empty".
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
hideEmptyRef.current = false;
|
|
294
312
|
|
|
295
313
|
if (suggestedActionLayout === 'flow') {
|
|
296
314
|
return /*#__PURE__*/_react.default.createElement(SuggestedActionFlowContainer, {
|
|
@@ -315,6 +333,8 @@ SuggestedActions.defaultProps = {
|
|
|
315
333
|
};
|
|
316
334
|
SuggestedActions.propTypes = {
|
|
317
335
|
className: _propTypes.default.string,
|
|
336
|
+
// TypeScript class is not mappable to PropTypes.func
|
|
337
|
+
// @ts-ignore
|
|
318
338
|
suggestedActions: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
319
339
|
displayText: _propTypes.default.string,
|
|
320
340
|
image: _propTypes.default.string,
|
|
@@ -329,4 +349,4 @@ SuggestedActions.propTypes = {
|
|
|
329
349
|
var _default = connectSuggestedActions()(SuggestedActions);
|
|
330
350
|
|
|
331
351
|
exports.default = _default;
|
|
332
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1N1Z2dlc3RlZEFjdGlvbnMuanMiXSwibmFtZXMiOlsidXNlRGlyZWN0aW9uIiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJ1c2VTdHlsZU9wdGlvbnMiLCJST09UX1NUWUxFIiwiZGlzcGxheSIsImZsZXhXcmFwIiwiZmxleERpcmVjdGlvbiIsInN1Z2dlc3RlZEFjdGlvblRleHQiLCJkaXNwbGF5VGV4dCIsInRpdGxlIiwidHlwZSIsInZhbHVlIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbm5lY3RTdWdnZXN0ZWRBY3Rpb25zIiwic2VsZWN0b3JzIiwiY29ubmVjdFRvV2ViQ2hhdCIsImxhbmd1YWdlIiwic3VnZ2VzdGVkQWN0aW9ucyIsIlN1Z2dlc3RlZEFjdGlvbkNhcm91c2VsQ29udGFpbmVyIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJzY3JlZW5SZWFkZXJUZXh0Iiwic3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlckJveFdpZHRoIiwic3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlckN1cnNvciIsInN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJTaXplIiwic3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0IiwiZGlyZWN0aW9uIiwibm9uY2UiLCJhcmlhTGFiZWxJZCIsInJvb3RDbGFzc05hbWUiLCJmaWxtU3R5bGVTZXQiLCJhdXRvSGlkZSIsImN1cnNvciIsImZsaXBwZXJCb3hXaWR0aCIsImZsaXBwZXJTaXplIiwiUmVhY3QiLCJDaGlsZHJlbiIsImNvdW50IiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYW55Iiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIlN1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXIiLCJtYXAiLCJjaGlsZCIsIlN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIiLCJTdWdnZXN0ZWRBY3Rpb25zIiwic3VnZ2VzdGVkQWN0aW9uTGF5b3V0Iiwic3VnZ2VzdGVkQWN0aW9uc1N0YWNrZWRMYXlvdXRCdXR0b25UZXh0V3JhcCIsImFjY2Vzc0tleSIsImxvY2FsaXplIiwibG9jYWxpemVBY2Nlc3NLZXkiLCJsZW5ndGgiLCJpbmRleCIsImltYWdlIiwiaW1hZ2VBbHRUZXh0IiwidGV4dCIsImFycmF5T2YiLCJzaGFwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRVFBLFksR0FBZ0RDLDZCLENBQWhERCxZO0lBQWNFLFksR0FBa0NELDZCLENBQWxDQyxZO0lBQWNDLGUsR0FBb0JGLDZCLENBQXBCRSxlO0FBRXBDLElBQU1DLFVBQVUsR0FBRztBQUNqQixrQ0FBZ0M7QUFDOUIsdUZBQW1GO0FBQ2pGQyxNQUFBQSxPQUFPLEVBQUUsTUFEd0U7QUFFakZDLE1BQUFBLFFBQVEsRUFBRTtBQUZ1RSxLQURyRDtBQU05QixxRkFBaUY7QUFDL0VELE1BQUFBLE9BQU8sRUFBRSxNQURzRTtBQUUvRUUsTUFBQUEsYUFBYSxFQUFFO0FBRmdFO0FBTm5EO0FBRGYsQ0FBbkI7O0FBY0EsU0FBU0MsbUJBQVQsT0FBa0U7QUFBQSxNQUFuQ0MsV0FBbUMsUUFBbkNBLFdBQW1DO0FBQUEsTUFBdEJDLEtBQXNCLFFBQXRCQSxLQUFzQjtBQUFBLE1BQWZDLElBQWUsUUFBZkEsSUFBZTtBQUFBLE1BQVRDLEtBQVMsUUFBVEEsS0FBUzs7QUFDaEUsTUFBSUQsSUFBSSxLQUFLLGFBQWIsRUFBNEI7QUFDMUIsV0FBT0QsS0FBSyxJQUFJRCxXQUFoQjtBQUNELEdBRkQsTUFFTyxJQUFJQyxLQUFKLEVBQVc7QUFDaEIsV0FBT0EsS0FBUDtBQUNELEdBRk0sTUFFQSxJQUFJLE9BQU9FLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDcEMsV0FBT0EsS0FBUDtBQUNEOztBQUVE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LENBRGdCLEVBVWhCRTtBQVp5QixDQUE3Qjs7ZUFlZS9CLHVCQUF1QixHQUFHb0MsZ0JBQUgsQyIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IHJlYWN0L25vLWFycmF5LWluZGV4LWtleTogXCJvZmZcIiAqL1xuXG5pbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgQmFzaWNGaWxtLCB7IGNyZWF0ZUJhc2ljU3R5bGVTZXQgYXMgY3JlYXRlQmFzaWNTdHlsZVNldEZvclJlYWN0RmlsbSB9IGZyb20gJ3JlYWN0LWZpbG0nO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBjb25uZWN0VG9XZWJDaGF0IGZyb20gJy4uL2Nvbm5lY3RUb1dlYkNoYXQnO1xuaW1wb3J0IFNjcmVlblJlYWRlclRleHQgZnJvbSAnLi4vU2NyZWVuUmVhZGVyVGV4dCc7XG5pbXBvcnQgU3VnZ2VzdGVkQWN0aW9uIGZyb20gJy4vU3VnZ2VzdGVkQWN0aW9uJztcbmltcG9ydCB1c2VMb2NhbGl6ZUFjY2Vzc0tleSBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VMb2NhbGl6ZUFjY2Vzc0tleSc7XG5pbXBvcnQgdXNlTm9uY2UgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlTm9uY2UnO1xuaW1wb3J0IHVzZVN0eWxlU2V0IGZyb20gJy4uL2hvb2tzL3VzZVN0eWxlU2V0JztcbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5pbXBvcnQgdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdWdnZXN0ZWRBY3Rpb25zQWNjZXNzS2V5JztcbmltcG9ydCB1c2VVbmlxdWVJZCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VVbmlxdWVJZCc7XG5cbmNvbnN0IHsgdXNlRGlyZWN0aW9uLCB1c2VMb2NhbGl6ZXIsIHVzZVN0eWxlT3B0aW9ucyB9ID0gaG9va3M7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gICcmLndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJzoge1xuICAgICcmLndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zLS1mbG93LWxheW91dCAud2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2Zsb3ctYm94Jzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgZmxleFdyYXA6ICd3cmFwJ1xuICAgIH0sXG5cbiAgICAnJi53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tc3RhY2stbGF5b3V0IC53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fc3RhY2snOiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gc3VnZ2VzdGVkQWN0aW9uVGV4dCh7IGRpc3BsYXlUZXh0LCB0aXRsZSwgdHlwZSwgdmFsdWUgfSkge1xuICBpZiAodHlwZSA9PT0gJ21lc3NhZ2VCYWNrJykge1xuICAgIHJldHVybiB0aXRsZSB8fCBkaXNwbGF5VGV4dDtcbiAgfSBlbHNlIGlmICh0aXRsZSkge1xuICAgIHJldHVybiB0aXRsZTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbn1cblxuY29uc3QgY29ubmVjdFN1Z2dlc3RlZEFjdGlvbnMgPSAoLi4uc2VsZWN0b3JzKSA9PlxuICBjb25uZWN0VG9XZWJDaGF0KFxuICAgICh7IGxhbmd1YWdlLCBzdWdnZXN0ZWRBY3Rpb25zIH0pID0+ICh7XG4gICAgICBsYW5ndWFnZSxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNcbiAgICB9KSxcbiAgICAuLi5zZWxlY3RvcnNcbiAgKTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXIgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzY3JlZW5SZWFkZXJUZXh0IH0pID0+IHtcbiAgY29uc3QgW1xuICAgIHtcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZVxuICAgIH1cbiAgXSA9IHVzZVN0eWxlT3B0aW9ucygpO1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25zOiBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBbZGlyZWN0aW9uXSA9IHVzZURpcmVjdGlvbigpO1xuICBjb25zdCBbbm9uY2VdID0gdXNlTm9uY2UoKTtcbiAgY29uc3QgYXJpYUxhYmVsSWQgPSB1c2VVbmlxdWVJZCgnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICBjb25zdCBmaWxtU3R5bGVTZXQgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjcmVhdGVCYXNpY1N0eWxlU2V0Rm9yUmVhY3RGaWxtKHtcbiAgICAgICAgYXV0b0hpZGU6IGZhbHNlLFxuICAgICAgICBjdXJzb3I6IHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICAgIGZsaXBwZXJCb3hXaWR0aDogc3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlckJveFdpZHRoLFxuICAgICAgICBmbGlwcGVyU2l6ZTogc3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlclNpemVcbiAgICAgIH0pLFxuICAgIFtcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCxcbiAgICAgIHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZVxuICAgIF1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIC8vIFRPRE86IFRoZSBjb250ZW50IG9mIHN1Z2dlc3RlZCBhY3Rpb25zIHNob3VsZCBiZSB0aGUgbGFiZWxsZWQgYnkgdGhlIGFjdGl2aXR5LlxuICAgIC8vICAgICAgIFRoYXQgbWVhbnMsIHdoZW4gdGhlIHVzZXIgZm9jdXMgaW50byB0aGUgc3VnZ2VzdGVkIGFjdGlvbnMsIGl0IHNob3VsZCByZWFkIHNpbWlsYXIgdG8gXCJCb3Qgc2FpZCwgd2hhdCdzIHlvdXIgcHJlZmVyZW5jZSBvZiB0b2RheT8gU3VnZ2VzdGVkIGFjdGlvbnMgaGFzIGl0ZW1zOiBhcHBsZSBidXR0b24sIG9yYW5nZSBidXR0b24sIGJhbmFuYSBidXR0b24uXCJcbiAgICA8ZGl2XG4gICAgICBhcmlhLWxhYmVsbGVkYnk9e2FyaWFMYWJlbElkfVxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJyxcbiAgICAgICAgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zLS1jYXJvdXNlbC1sYXlvdXQnLFxuICAgICAgICB7ICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tcnRsJzogZGlyZWN0aW9uID09PSAncnRsJyB9LFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgKyAnJyxcbiAgICAgICAgKGNsYXNzTmFtZSB8fCAnJykgKyAnJ1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgID5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IGlkPXthcmlhTGFiZWxJZH0gdGV4dD17c2NyZWVuUmVhZGVyVGV4dH0gLz5cbiAgICAgIHshIWNoaWxkcmVuICYmICEhUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pICYmIChcbiAgICAgICAgPEJhc2ljRmlsbVxuICAgICAgICAgIGF1dG9DZW50ZXI9e2ZhbHNlfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19jYXJvdXNlbFwiXG4gICAgICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICAgICAgZmxpcHBlckJsdXJGb2N1c09uQ2xpY2s9e3RydWV9XG4gICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAgIHNob3dEb3RzPXtmYWxzZX1cbiAgICAgICAgICBzaG93U2Nyb2xsQmFyPXtmYWxzZX1cbiAgICAgICAgICBzdHlsZVNldD17ZmlsbVN0eWxlU2V0fVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0Jhc2ljRmlsbT5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lci5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogdW5kZWZpbmVkXG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNjcmVlblJlYWRlclRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uRmxvd0NvbnRhaW5lciA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHNjcmVlblJlYWRlclRleHQgfSkgPT4ge1xuICBjb25zdCBbeyBzdWdnZXN0ZWRBY3Rpb25zOiBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBhcmlhTGFiZWxJZCA9IHVzZVVuaXF1ZUlkKCd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucycpO1xuICBjb25zdCByb290Q2xhc3NOYW1lID0gdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QoKShST09UX1NUWUxFKSArICcnO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PXthcmlhTGFiZWxJZH1cbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucycsXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tZmxvdy1sYXlvdXQnLFxuICAgICAgICByb290Q2xhc3NOYW1lLFxuICAgICAgICBzdWdnZXN0ZWRBY3Rpb25zU3R5bGVTZXQgKyAnJyxcbiAgICAgICAgKGNsYXNzTmFtZSB8fCAnJykgKyAnJ1xuICAgICAgKX1cbiAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgID5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IGlkPXthcmlhTGFiZWxJZH0gdGV4dD17c2NyZWVuUmVhZGVyVGV4dH0gLz5cbiAgICAgIHshIWNoaWxkcmVuICYmICEhUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fZmxvdy1ib3hcIj5cbiAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19pdGVtXCI+e2NoaWxkfTwvZGl2PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWRcbn07XG5cblN1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzY3JlZW5SZWFkZXJUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbn07XG5cbmNvbnN0IFN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzY3JlZW5SZWFkZXJUZXh0IH0pID0+IHtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uczogc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgYXJpYUxhYmVsSWQgPSB1c2VVbmlxdWVJZCgnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGFyaWEtbGFiZWxsZWRieT17YXJpYUxhYmVsSWR9XG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnLFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMtLXN0YWNrZWQtbGF5b3V0JyxcbiAgICAgICAgcm9vdENsYXNzTmFtZSxcbiAgICAgICAgc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgICByb2xlPVwic3RhdHVzXCJcbiAgICA+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCBpZD17YXJpYUxhYmVsSWR9IHRleHQ9e3NjcmVlblJlYWRlclRleHR9IC8+XG4gICAgICB7ISFjaGlsZHJlbiAmJiAhIVJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX3N0YWNrXCI+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWU6IHVuZGVmaW5lZFxufTtcblxuU3VnZ2VzdGVkQWN0aW9uU3RhY2tlZENvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNjcmVlblJlYWRlclRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxufTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9ucyA9ICh7IGNsYXNzTmFtZSwgc3VnZ2VzdGVkQWN0aW9ucyA9IFtdIH0pID0+IHtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uTGF5b3V0LCBzdWdnZXN0ZWRBY3Rpb25zU3RhY2tlZExheW91dEJ1dHRvblRleHRXcmFwIH1dID0gdXNlU3R5bGVPcHRpb25zKCk7XG4gIGNvbnN0IFthY2Nlc3NLZXldID0gdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSgpO1xuICBjb25zdCBsb2NhbGl6ZSA9IHVzZUxvY2FsaXplcigpO1xuICBjb25zdCBsb2NhbGl6ZUFjY2Vzc0tleSA9IHVzZUxvY2FsaXplQWNjZXNzS2V5KCk7XG5cbiAgY29uc3Qgc2NyZWVuUmVhZGVyVGV4dCA9IGxvY2FsaXplKFxuICAgICdTVUdHRVNURURfQUNUSU9OU19BTFQnLFxuICAgIHN1Z2dlc3RlZEFjdGlvbnMubGVuZ3RoXG4gICAgICA/IGFjY2Vzc0tleVxuICAgICAgICA/IGxvY2FsaXplKCdTVUdHRVNURURfQUNUSU9OU19BTFRfSEFTX0NPTlRFTlRfQU5EX0FDQ0VTU19LRVknLCBsb2NhbGl6ZUFjY2Vzc0tleShhY2Nlc3NLZXkpKVxuICAgICAgICA6IGxvY2FsaXplKCdTVUdHRVNURURfQUNUSU9OU19BTFRfSEFTX0NPTlRFTlQnKVxuICAgICAgOiBsb2NhbGl6ZSgnU1VHR0VTVEVEX0FDVElPTlNfQUxUX05PX0NPTlRFTlQnKVxuICApO1xuXG4gIGNvbnN0IGNoaWxkcmVuID0gc3VnZ2VzdGVkQWN0aW9ucy5tYXAoKHsgZGlzcGxheVRleHQsIGltYWdlLCBpbWFnZUFsdFRleHQsIHRleHQsIHRpdGxlLCB0eXBlLCB2YWx1ZSB9LCBpbmRleCkgPT4gKFxuICAgIDxTdWdnZXN0ZWRBY3Rpb25cbiAgICAgIGFyaWFIaWRkZW49e3RydWV9XG4gICAgICBidXR0b25UZXh0PXtzdWdnZXN0ZWRBY3Rpb25UZXh0KHsgZGlzcGxheVRleHQsIHRpdGxlLCB0eXBlLCB2YWx1ZSB9KX1cbiAgICAgIGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19idXR0b25cIlxuICAgICAgZGlzcGxheVRleHQ9e2Rpc3BsYXlUZXh0fVxuICAgICAgaW1hZ2U9e2ltYWdlfVxuICAgICAgaW1hZ2VBbHQ9e2ltYWdlQWx0VGV4dH1cbiAgICAgIGtleT17aW5kZXh9XG4gICAgICB0ZXh0PXt0ZXh0fVxuICAgICAgdGV4dENsYXNzTmFtZT17XG4gICAgICAgIHN1Z2dlc3RlZEFjdGlvbkxheW91dCA9PT0gJ3N0YWNrZWQnICYmIHN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXBcbiAgICAgICAgICA/ICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fYnV0dG9uLXRleHQtc3RhY2tlZC10ZXh0LXdyYXAnXG4gICAgICAgICAgOiAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2J1dHRvbi10ZXh0J1xuICAgICAgfVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAvPlxuICApKTtcblxuICBpZiAoc3VnZ2VzdGVkQWN0aW9uTGF5b3V0ID09PSAnZmxvdycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHNjcmVlblJlYWRlclRleHQ9e3NjcmVlblJlYWRlclRleHR9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXI+XG4gICAgKTtcbiAgfSBlbHNlIGlmIChzdWdnZXN0ZWRBY3Rpb25MYXlvdXQgPT09ICdzdGFja2VkJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3VnZ2VzdGVkQWN0aW9uU3RhY2tlZENvbnRhaW5lciBjbGFzc05hbWU9e2NsYXNzTmFtZX0gc2NyZWVuUmVhZGVyVGV4dD17c2NyZWVuUmVhZGVyVGV4dH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvU3VnZ2VzdGVkQWN0aW9uU3RhY2tlZENvbnRhaW5lcj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHNjcmVlblJlYWRlclRleHQ9e3NjcmVlblJlYWRlclRleHR9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvU3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXI+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25zLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiAnJ1xufTtcblxuU3VnZ2VzdGVkQWN0aW9ucy5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3VnZ2VzdGVkQWN0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIGRpc3BsYXlUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaW1hZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBpbWFnZUFsdFRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICB2YWx1ZTogUHJvcFR5cGVzLmFueVxuICAgIH0pXG4gICkuaXNSZXF1aXJlZFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdFN1Z2dlc3RlZEFjdGlvbnMoKShTdWdnZXN0ZWRBY3Rpb25zKTtcblxuZXhwb3J0IHsgY29ubmVjdFN1Z2dlc3RlZEFjdGlvbnMgfTtcbiJdfQ==
|
|
352
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5kQm94L1N1Z2dlc3RlZEFjdGlvbnMudHN4Il0sIm5hbWVzIjpbInVzZURpcmVjdGlvbiIsImhvb2tzIiwidXNlTG9jYWxpemVyIiwidXNlU3R5bGVPcHRpb25zIiwiUk9PVF9TVFlMRSIsImRpc3BsYXkiLCJmbGV4V3JhcCIsImZsZXhEaXJlY3Rpb24iLCJzdWdnZXN0ZWRBY3Rpb25UZXh0IiwiZGlzcGxheVRleHQiLCJ0aXRsZSIsInR5cGUiLCJ2YWx1ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb25uZWN0U3VnZ2VzdGVkQWN0aW9ucyIsInNlbGVjdG9ycyIsImNvbm5lY3RUb1dlYkNoYXQiLCJsYW5ndWFnZSIsInN1Z2dlc3RlZEFjdGlvbnMiLCJTdWdnZXN0ZWRBY3Rpb25DYXJvdXNlbENvbnRhaW5lciIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic2NyZWVuUmVhZGVyVGV4dCIsInN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCIsInN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJDdXJzb3IiLCJzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyU2l6ZSIsInN1Z2dlc3RlZEFjdGlvbnNTdHlsZVNldCIsImRpcmVjdGlvbiIsIm5vbmNlIiwiYXJpYUxhYmVsSWQiLCJyb290Q2xhc3NOYW1lIiwiZmlsbVN0eWxlU2V0IiwiYXV0b0hpZGUiLCJjdXJzb3IiLCJmbGlwcGVyQm94V2lkdGgiLCJmbGlwcGVyU2l6ZSIsIlJlYWN0IiwiQ2hpbGRyZW4iLCJjb3VudCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFueSIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJTdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyIiwibWFwIiwiY2hpbGQiLCJTdWdnZXN0ZWRBY3Rpb25TdGFja2VkQ29udGFpbmVyIiwiU3VnZ2VzdGVkQWN0aW9ucyIsInN1Z2dlc3RlZEFjdGlvbkxheW91dCIsInN1Z2dlc3RlZEFjdGlvbnNTdGFja2VkTGF5b3V0QnV0dG9uVGV4dFdyYXAiLCJhY2Nlc3NLZXkiLCJoaWRlRW1wdHlSZWYiLCJsb2NhbGl6ZSIsImxvY2FsaXplQWNjZXNzS2V5IiwibGVuZ3RoIiwiY2FyZEFjdGlvbiIsImluZGV4IiwiaW1hZ2UiLCJpbWFnZUFsdFRleHQiLCJ0ZXh0IiwiY3VycmVudCIsImFycmF5T2YiLCJzaGFwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBUUEsWUFBUixHQUF3REMsNkJBQXhELENBQVFELFlBQVI7QUFBQSxJQUFzQkUsWUFBdEIsR0FBd0RELDZCQUF4RCxDQUFzQkMsWUFBdEI7QUFBQSxJQUFvQ0MsZUFBcEMsR0FBd0RGLDZCQUF4RCxDQUFvQ0UsZUFBcEM7QUFFQSxJQUFNQyxVQUFVLEdBQUc7QUFDakIsa0NBQWdDO0FBQzlCLHVGQUFtRjtBQUNqRkMsTUFBQUEsT0FBTyxFQUFFLE1BRHdFO0FBRWpGQyxNQUFBQSxRQUFRLEVBQUU7QUFGdUUsS0FEckQ7QUFNOUIscUZBQWlGO0FBQy9FRCxNQUFBQSxPQUFPLEVBQUUsTUFEc0U7QUFFL0VFLE1BQUFBLGFBQWEsRUFBRTtBQUZnRTtBQU5uRDtBQURmLENBQW5COztBQWNBLFNBQVNDLG1CQUFULE9BQWtFO0FBQUEsTUFBbkNDLFdBQW1DLFFBQW5DQSxXQUFtQztBQUFBLE1BQXRCQyxLQUFzQixRQUF0QkEsS0FBc0I7QUFBQSxNQUFmQyxJQUFlLFFBQWZBLElBQWU7QUFBQSxNQUFUQyxLQUFTLFFBQVRBLEtBQVM7O0FBQ2hFLE1BQUlELElBQUksS0FBSyxhQUFiLEVBQTRCO0FBQzFCLFdBQU9ELEtBQUssSUFBSUQsV0FBaEI7QUFDRCxHQUZELE1BRU8sSUFBSUMsS0FBSixFQUFXO0FBQ2hC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QUczQjtBQUNBO0FBQ0ExQixFQUFBQSxnQkFBZ0IsRUFBRXdCLG1CQUFVc0IsT0FBVixDQUNoQnRCLG1CQUFVdUIsS0FBVixDQUFnQjtBQUNkekQsSUFBQUEsV0FBVyxFQUFFa0MsbUJBQVVFLE1BRFQ7QUFFZGdCLElBQUFBLEtBQUssRUFBRWxCLG1CQUFVRSxNQUZIO0FBR2RpQixJQUFBQSxZQUFZLEVBQUVuQixtQkFBVUUsTUFIVjtBQUlka0IsSUFBQUEsSUFBSSxFQUFFcEIsbUJBQVVFLE1BSkY7QUFLZG5DLElBQUFBLEtBQUssRUFBRWlDLG1CQUFVRSxNQUxIO0FBTWRsQyxJQUFBQSxJQUFJLEVBQUVnQyxtQkFBVUUsTUFBVixDQUFpQkMsVUFOVDtBQU9kbEMsSUFBQUEsS0FBSyxFQUFFK0IsbUJBQVVDO0FBUEgsR0FBaEIsQ0FEZ0IsRUFVaEJFO0FBZnlCLENBQTdCOztlQWtCZS9CLHVCQUF1QixHQUFHb0MsZ0JBQUgsQyIsInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IHJlYWN0L25vLWFycmF5LWluZGV4LWtleTogXCJvZmZcIiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RMaW5lQ2FyZEFjdGlvbiB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IEJhc2ljRmlsbSwgeyBjcmVhdGVCYXNpY1N0eWxlU2V0IGFzIGNyZWF0ZUJhc2ljU3R5bGVTZXRGb3JSZWFjdEZpbG0gfSBmcm9tICdyZWFjdC1maWxtJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBGQywgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgY29ubmVjdFRvV2ViQ2hhdCBmcm9tICcuLi9jb25uZWN0VG9XZWJDaGF0JztcbmltcG9ydCBTY3JlZW5SZWFkZXJUZXh0IGZyb20gJy4uL1NjcmVlblJlYWRlclRleHQnO1xuaW1wb3J0IFN1Z2dlc3RlZEFjdGlvbiBmcm9tICcuL1N1Z2dlc3RlZEFjdGlvbic7XG5pbXBvcnQgdXNlTG9jYWxpemVBY2Nlc3NLZXkgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlTG9jYWxpemVBY2Nlc3NLZXknO1xuaW1wb3J0IHVzZU5vbmNlIGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZU5vbmNlJztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5pbXBvcnQgdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QnO1xuaW1wb3J0IHVzZVN1Z2dlc3RlZEFjdGlvbnNBY2Nlc3NLZXkgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSc7XG5pbXBvcnQgdXNlVW5pcXVlSWQgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlVW5pcXVlSWQnO1xuXG5jb25zdCB7IHVzZURpcmVjdGlvbiwgdXNlTG9jYWxpemVyLCB1c2VTdHlsZU9wdGlvbnMgfSA9IGhvb2tzO1xuXG5jb25zdCBST09UX1NUWUxFID0ge1xuICAnJi53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucyc6IHtcbiAgICAnJi53ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tZmxvdy1sYXlvdXQgLndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19mbG93LWJveCc6IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGZsZXhXcmFwOiAnd3JhcCdcbiAgICB9LFxuXG4gICAgJyYud2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMtLXN0YWNrLWxheW91dCAud2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX3N0YWNrJzoge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbidcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHN1Z2dlc3RlZEFjdGlvblRleHQoeyBkaXNwbGF5VGV4dCwgdGl0bGUsIHR5cGUsIHZhbHVlIH0pIHtcbiAgaWYgKHR5cGUgPT09ICdtZXNzYWdlQmFjaycpIHtcbiAgICByZXR1cm4gdGl0bGUgfHwgZGlzcGxheVRleHQ7XG4gIH0gZWxzZSBpZiAodGl0bGUpIHtcbiAgICByZXR1cm4gdGl0bGU7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG59XG5cbmNvbnN0IGNvbm5lY3RTdWdnZXN0ZWRBY3Rpb25zID0gKC4uLnNlbGVjdG9ycykgPT5cbiAgY29ubmVjdFRvV2ViQ2hhdChcbiAgICAoeyBsYW5ndWFnZSwgc3VnZ2VzdGVkQWN0aW9ucyB9KSA9PiAoe1xuICAgICAgbGFuZ3VhZ2UsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zXG4gICAgfSksXG4gICAgLi4uc2VsZWN0b3JzXG4gICk7XG5cbmNvbnN0IFN1Z2dlc3RlZEFjdGlvbkNhcm91c2VsQ29udGFpbmVyID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc2NyZWVuUmVhZGVyVGV4dCB9KSA9PiB7XG4gIGNvbnN0IFtcbiAgICB7XG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyQm94V2lkdGgsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyQ3Vyc29yLFxuICAgICAgc3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlclNpemVcbiAgICB9XG4gIF0gPSB1c2VTdHlsZU9wdGlvbnMoKTtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uczogc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW2RpcmVjdGlvbl0gPSB1c2VEaXJlY3Rpb24oKTtcbiAgY29uc3QgW25vbmNlXSA9IHVzZU5vbmNlKCk7XG4gIGNvbnN0IGFyaWFMYWJlbElkID0gdXNlVW5pcXVlSWQoJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJyk7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCgpKFJPT1RfU1RZTEUpICsgJyc7XG5cbiAgY29uc3QgZmlsbVN0eWxlU2V0ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgY3JlYXRlQmFzaWNTdHlsZVNldEZvclJlYWN0RmlsbSh7XG4gICAgICAgIGF1dG9IaWRlOiBmYWxzZSxcbiAgICAgICAgY3Vyc29yOiBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyQ3Vyc29yLFxuICAgICAgICBmbGlwcGVyQm94V2lkdGg6IHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJCb3hXaWR0aCxcbiAgICAgICAgZmxpcHBlclNpemU6IHN1Z2dlc3RlZEFjdGlvbnNDYXJvdXNlbEZsaXBwZXJTaXplXG4gICAgICB9KSxcbiAgICBbXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyQm94V2lkdGgsXG4gICAgICBzdWdnZXN0ZWRBY3Rpb25zQ2Fyb3VzZWxGbGlwcGVyQ3Vyc29yLFxuICAgICAgc3VnZ2VzdGVkQWN0aW9uc0Nhcm91c2VsRmxpcHBlclNpemVcbiAgICBdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICAvLyBUT0RPOiBUaGUgY29udGVudCBvZiBzdWdnZXN0ZWQgYWN0aW9ucyBzaG91bGQgYmUgdGhlIGxhYmVsbGVkIGJ5IHRoZSBhY3Rpdml0eS5cbiAgICAvLyAgICAgICBUaGF0IG1lYW5zLCB3aGVuIHRoZSB1c2VyIGZvY3VzIGludG8gdGhlIHN1Z2dlc3RlZCBhY3Rpb25zLCBpdCBzaG91bGQgcmVhZCBzaW1pbGFyIHRvIFwiQm90IHNhaWQsIHdoYXQncyB5b3VyIHByZWZlcmVuY2Ugb2YgdG9kYXk/IFN1Z2dlc3RlZCBhY3Rpb25zIGhhcyBpdGVtczogYXBwbGUgYnV0dG9uLCBvcmFuZ2UgYnV0dG9uLCBiYW5hbmEgYnV0dG9uLlwiXG4gICAgPGRpdlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PXthcmlhTGFiZWxJZH1cbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucycsXG4gICAgICAgICd3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9ucy0tY2Fyb3VzZWwtbGF5b3V0JyxcbiAgICAgICAgeyAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMtLXJ0bCc6IGRpcmVjdGlvbiA9PT0gJ3J0bCcgfSxcbiAgICAgICAgcm9vdENsYXNzTmFtZSxcbiAgICAgICAgc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgICByb2xlPVwic3RhdHVzXCJcbiAgICA+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCBpZD17YXJpYUxhYmVsSWR9IHRleHQ9e3NjcmVlblJlYWRlclRleHR9IC8+XG4gICAgICB7ISFjaGlsZHJlbiAmJiAhIVJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSAmJiAoXG4gICAgICAgIDxCYXNpY0ZpbG1cbiAgICAgICAgICBhdXRvQ2VudGVyPXtmYWxzZX1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fY2Fyb3VzZWxcIlxuICAgICAgICAgIGRpcj17ZGlyZWN0aW9ufVxuICAgICAgICAgIGZsaXBwZXJCbHVyRm9jdXNPbkNsaWNrPXt0cnVlfVxuICAgICAgICAgIG5vbmNlPXtub25jZX1cbiAgICAgICAgICBzaG93RG90cz17ZmFsc2V9XG4gICAgICAgICAgc2hvd1Njcm9sbEJhcj17ZmFsc2V9XG4gICAgICAgICAgc3R5bGVTZXQ9e2ZpbG1TdHlsZVNldH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9CYXNpY0ZpbG0+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuU3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWU6IHVuZGVmaW5lZFxufTtcblxuU3VnZ2VzdGVkQWN0aW9uQ2Fyb3VzZWxDb250YWluZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzY3JlZW5SZWFkZXJUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbn07XG5cbmNvbnN0IFN1Z2dlc3RlZEFjdGlvbkZsb3dDb250YWluZXIgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzY3JlZW5SZWFkZXJUZXh0IH0pID0+IHtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uczogc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgYXJpYUxhYmVsSWQgPSB1c2VVbmlxdWVJZCgnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnKTtcbiAgY29uc3Qgcm9vdENsYXNzTmFtZSA9IHVzZVN0eWxlVG9FbW90aW9uT2JqZWN0KCkoUk9PVF9TVFlMRSkgKyAnJztcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGFyaWEtbGFiZWxsZWRieT17YXJpYUxhYmVsSWR9XG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMnLFxuICAgICAgICAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnMtLWZsb3ctbGF5b3V0JyxcbiAgICAgICAgcm9vdENsYXNzTmFtZSxcbiAgICAgICAgc3VnZ2VzdGVkQWN0aW9uc1N0eWxlU2V0ICsgJycsXG4gICAgICAgIChjbGFzc05hbWUgfHwgJycpICsgJydcbiAgICAgICl9XG4gICAgICByb2xlPVwic3RhdHVzXCJcbiAgICA+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCBpZD17YXJpYUxhYmVsSWR9IHRleHQ9e3NjcmVlblJlYWRlclRleHR9IC8+XG4gICAgICB7ISFjaGlsZHJlbiAmJiAhIVJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2Zsb3ctYm94XCI+XG4gICAgICAgICAge1JlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3ZWJjaGF0X19zdWdnZXN0ZWQtYWN0aW9uc19fZmxvdy1pdGVtLWJveFwiPntjaGlsZH08L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuU3VnZ2VzdGVkQWN0aW9uRmxvd0NvbnRhaW5lci5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogdW5kZWZpbmVkXG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2NyZWVuUmVhZGVyVGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG59O1xuXG5jb25zdCBTdWdnZXN0ZWRBY3Rpb25TdGFja2VkQ29udGFpbmVyID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc2NyZWVuUmVhZGVyVGV4dCB9KSA9PiB7XG4gIGNvbnN0IFt7IHN1Z2dlc3RlZEFjdGlvbnM6IHN1Z2dlc3RlZEFjdGlvbnNTdHlsZVNldCB9XSA9IHVzZVN0eWxlU2V0KCk7XG4gIGNvbnN0IGFyaWFMYWJlbElkID0gdXNlVW5pcXVlSWQoJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJyk7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCgpKFJPT1RfU1RZTEUpICsgJyc7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBhcmlhLWxhYmVsbGVkYnk9e2FyaWFMYWJlbElkfVxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zJyxcbiAgICAgICAgJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zLS1zdGFja2VkLWxheW91dCcsXG4gICAgICAgIHJvb3RDbGFzc05hbWUsXG4gICAgICAgIHN1Z2dlc3RlZEFjdGlvbnNTdHlsZVNldCArICcnLFxuICAgICAgICAoY2xhc3NOYW1lIHx8ICcnKSArICcnXG4gICAgICApfVxuICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgPlxuICAgICAgPFNjcmVlblJlYWRlclRleHQgaWQ9e2FyaWFMYWJlbElkfSB0ZXh0PXtzY3JlZW5SZWFkZXJUZXh0fSAvPlxuICAgICAgeyEhY2hpbGRyZW4gJiYgISFSZWFjdC5DaGlsZHJlbi5jb3VudChjaGlsZHJlbikgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19zdGFja1wiPntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TdWdnZXN0ZWRBY3Rpb25TdGFja2VkQ29udGFpbmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWRcbn07XG5cblN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzY3JlZW5SZWFkZXJUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbn07XG5cbnR5cGUgU3VnZ2VzdGVkQWN0aW9uc1Byb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHN1Z2dlc3RlZEFjdGlvbnM/OiBEaXJlY3RMaW5lQ2FyZEFjdGlvbltdO1xufTtcblxuY29uc3QgU3VnZ2VzdGVkQWN0aW9uczogRkM8U3VnZ2VzdGVkQWN0aW9uc1Byb3BzPiA9ICh7IGNsYXNzTmFtZSwgc3VnZ2VzdGVkQWN0aW9ucyA9IFtdIH0pID0+IHtcbiAgY29uc3QgW3sgc3VnZ2VzdGVkQWN0aW9uTGF5b3V0LCBzdWdnZXN0ZWRBY3Rpb25zU3RhY2tlZExheW91dEJ1dHRvblRleHRXcmFwIH1dID0gdXNlU3R5bGVPcHRpb25zKCk7XG4gIGNvbnN0IFthY2Nlc3NLZXldID0gdXNlU3VnZ2VzdGVkQWN0aW9uc0FjY2Vzc0tleSgpO1xuICBjb25zdCBoaWRlRW1wdHlSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGxvY2FsaXplID0gdXNlTG9jYWxpemVyKCk7XG4gIGNvbnN0IGxvY2FsaXplQWNjZXNzS2V5ID0gdXNlTG9jYWxpemVBY2Nlc3NLZXkoKTtcblxuICBjb25zdCBzY3JlZW5SZWFkZXJUZXh0ID0gbG9jYWxpemUoXG4gICAgJ1NVR0dFU1RFRF9BQ1RJT05TX0FMVCcsXG4gICAgc3VnZ2VzdGVkQWN0aW9ucy5sZW5ndGhcbiAgICAgID8gYWNjZXNzS2V5XG4gICAgICAgID8gbG9jYWxpemUoJ1NVR0dFU1RFRF9BQ1RJT05TX0FMVF9IQVNfQ09OVEVOVF9BTkRfQUNDRVNTX0tFWScsIGxvY2FsaXplQWNjZXNzS2V5KGFjY2Vzc0tleSkpXG4gICAgICAgIDogbG9jYWxpemUoJ1NVR0dFU1RFRF9BQ1RJT05TX0FMVF9IQVNfQ09OVEVOVCcpXG4gICAgICA6IGxvY2FsaXplKCdTVUdHRVNURURfQUNUSU9OU19BTFRfTk9fQ09OVEVOVCcpXG4gICk7XG5cbiAgY29uc3QgY2hpbGRyZW4gPSBzdWdnZXN0ZWRBY3Rpb25zLm1hcCgoY2FyZEFjdGlvbiwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB7IGRpc3BsYXlUZXh0LCBpbWFnZSwgaW1hZ2VBbHRUZXh0LCB0ZXh0LCB0aXRsZSwgdHlwZSwgdmFsdWUgfSA9IGNhcmRBY3Rpb24gYXMge1xuICAgICAgZGlzcGxheVRleHQ/OiBzdHJpbmc7XG4gICAgICBpbWFnZT86IHN0cmluZztcbiAgICAgIGltYWdlQWx0VGV4dD86IHN0cmluZztcbiAgICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgIHR5cGU6XG4gICAgICAgIHwgJ2NhbGwnXG4gICAgICAgIHwgJ2Rvd25sb2FkRmlsZSdcbiAgICAgICAgfCAnaW1CYWNrJ1xuICAgICAgICB8ICdtZXNzYWdlQmFjaydcbiAgICAgICAgfCAnb3BlblVybCdcbiAgICAgICAgfCAncGxheUF1ZGlvJ1xuICAgICAgICB8ICdwbGF5VmlkZW8nXG4gICAgICAgIHwgJ3Bvc3RCYWNrJ1xuICAgICAgICB8ICdzaG93SW1hZ2UnXG4gICAgICAgIHwgJ3NpZ25pbic7XG4gICAgICB2YWx1ZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBzdHJpbmc7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIndlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19pdGVtLWJveFwiIGtleT17aW5kZXh9PlxuICAgICAgICA8U3VnZ2VzdGVkQWN0aW9uXG4gICAgICAgICAgYnV0dG9uVGV4dD17c3VnZ2VzdGVkQWN0aW9uVGV4dCh7IGRpc3BsYXlUZXh0LCB0aXRsZSwgdHlwZSwgdmFsdWUgfSl9XG4gICAgICAgICAgY2xhc3NOYW1lPVwid2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2J1dHRvblwiXG4gICAgICAgICAgZGlzcGxheVRleHQ9e2Rpc3BsYXlUZXh0fVxuICAgICAgICAgIGltYWdlPXtpbWFnZX1cbiAgICAgICAgICBpbWFnZUFsdD17aW1hZ2VBbHRUZXh0fVxuICAgICAgICAgIHRleHQ9e3RleHR9XG4gICAgICAgICAgdGV4dENsYXNzTmFtZT17XG4gICAgICAgICAgICBzdWdnZXN0ZWRBY3Rpb25MYXlvdXQgPT09ICdzdGFja2VkJyAmJiBzdWdnZXN0ZWRBY3Rpb25zU3RhY2tlZExheW91dEJ1dHRvblRleHRXcmFwXG4gICAgICAgICAgICAgID8gJ3dlYmNoYXRfX3N1Z2dlc3RlZC1hY3Rpb25zX19idXR0b24tdGV4dC1zdGFja2VkLXRleHQtd3JhcCdcbiAgICAgICAgICAgICAgOiAnd2ViY2hhdF9fc3VnZ2VzdGVkLWFjdGlvbnNfX2J1dHRvbi10ZXh0J1xuICAgICAgICAgIH1cbiAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH0pO1xuXG4gIC8vIChSZWxhdGVkIHRvICM0MDIxKVxuICAvL1xuICAvLyBUbyBpbXByb3ZlIGFjY2Vzc2liaWxpdHkgVVgsIGlmIHRoZXJlIGFyZSBubyBzdWdnZXN0ZWQgYWN0aW9ucywgYW5kIHRoaXMgY29udGFpbmVyIHdhcyBuZXZlciBzaG93bi5cbiAgLy8gVGhlbiwgYXZvaWQgcmVuZGVyaW5nIHRoZSBhbHQtdGV4dCBcIlN1Z2dlc3RlZCBBY3Rpb25zIENvbnRhaW5lcjogSXMgZW1wdHlcIi5cbiAgLy9cbiAgLy8gVGhpcyBpcyB0byByZWR1Y2UgdGhlIG5hcnJhdGlvbiBvZiBcIklzIGVtcHR5XCIuXG4gIC8vXG4gIC8vIEFmdGVyIGFueSBzdWdnZXN0ZWQgYWN0aW9ucyB3ZXJlIHNob3duIGR1cmluZyB0aGUgbGlmZXRpbWUgb2YgdGhpcyBjb250YWluZXIsIHRoZW4gd2Ugd2lsbFxuICAvLyBjb250aW51ZSB0byBzdGFydCBzaG93aW5nIFwiU3VnZ2VzdGVkIEFjdGlvbnMgQ29udGFpbmVyOiBJcyBlbXB0eVwiIHdoZW4gdGhlIGNvbnRhaW5lciBpcyBlbXB0eS5cbiAgaWYgKCFjaGlsZHJlbi5sZW5ndGggJiYgaGlkZUVtcHR5UmVmLmN1cnJlbnQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgaWYgd2UgaGF2ZSByZW5kZXJlZCBvbmNlLCB3ZSB3aWxsIGNvbnRpbnVlIHRvIHJlbmRlciBcIklzIGVtcHR5XCIuXG4gIGhpZGVFbXB0eVJlZi5jdXJyZW50ID0gZmFsc2U7XG5cbiAgaWYgKHN1Z2dlc3RlZEFjdGlvbkxheW91dCA9PT0gJ2Zsb3cnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBzY3JlZW5SZWFkZXJUZXh0PXtzY3JlZW5SZWFkZXJUZXh0fT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TdWdnZXN0ZWRBY3Rpb25GbG93Q29udGFpbmVyPlxuICAgICk7XG4gIH0gZWxzZSBpZiAoc3VnZ2VzdGVkQWN0aW9uTGF5b3V0ID09PSAnc3RhY2tlZCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXIgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHNjcmVlblJlYWRlclRleHQ9e3NjcmVlblJlYWRlclRleHR9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N1Z2dlc3RlZEFjdGlvblN0YWNrZWRDb250YWluZXI+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFN1Z2dlc3RlZEFjdGlvbkNhcm91c2VsQ29udGFpbmVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBzY3JlZW5SZWFkZXJUZXh0PXtzY3JlZW5SZWFkZXJUZXh0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1N1Z2dlc3RlZEFjdGlvbkNhcm91c2VsQ29udGFpbmVyPlxuICApO1xufTtcblxuU3VnZ2VzdGVkQWN0aW9ucy5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJydcbn07XG5cblN1Z2dlc3RlZEFjdGlvbnMucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLy8gVHlwZVNjcmlwdCBjbGFzcyBpcyBub3QgbWFwcGFibGUgdG8gUHJvcFR5cGVzLmZ1bmNcbiAgLy8gQHRzLWlnbm9yZVxuICBzdWdnZXN0ZWRBY3Rpb25zOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgZGlzcGxheVRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBpbWFnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGltYWdlQWx0VGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMuYW55XG4gICAgfSlcbiAgKS5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0U3VnZ2VzdGVkQWN0aW9ucygpKFN1Z2dlc3RlZEFjdGlvbnMpO1xuXG5leHBvcnQgeyBjb25uZWN0U3VnZ2VzdGVkQWN0aW9ucyB9O1xuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
declare const connectSendTextBox: (...selectors: any[]) => any;
|
|
3
|
+
declare function useTextBoxSubmit(): (setFocus?: boolean | 'sendBox') => void;
|
|
4
|
+
declare function useTextBoxValue(): [
|
|
5
|
+
string,
|
|
6
|
+
(textBoxValue: string, options: {
|
|
7
|
+
selectionEnd: number;
|
|
8
|
+
selectionStart: number;
|
|
9
|
+
}) => {
|
|
10
|
+
selectionEnd: number;
|
|
11
|
+
selectionStart: number;
|
|
12
|
+
value: string;
|
|
13
|
+
}
|
|
14
|
+
];
|
|
15
|
+
declare const TextBox: {
|
|
16
|
+
({ className }: {
|
|
17
|
+
className: any;
|
|
18
|
+
}): JSX.Element;
|
|
19
|
+
defaultProps: {
|
|
20
|
+
className: string;
|
|
21
|
+
};
|
|
22
|
+
propTypes: {
|
|
23
|
+
className: PropTypes.Requireable<string>;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export default TextBox;
|
|
27
|
+
export { connectSendTextBox, useTextBoxSubmit, useTextBoxValue };
|
|
28
|
+
//# sourceMappingURL=TextBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextBox.d.ts","sourceRoot":"","sources":["../../src/SendBox/TextBox.tsx"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AA6BnC,QAAA,MAAM,kBAAkB,8BAoCrB,CAAC;AAEJ,iBAAS,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CA6BpE;AAED,iBAAS,eAAe,IAAI;IAC1B,MAAM;IACN,CACE,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,KACtD;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CACrE,CAuCA;AAID,QAAA,MAAM,OAAO;;;;;;;;;;CAwRZ,CAAC;AAUF,eAAe,OAAO,CAAC;AAEvB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}
|