Skip to content

Latest commit

 

History

History
848 lines (740 loc) · 108 KB

CHANGELOG.md

File metadata and controls

848 lines (740 loc) · 108 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[Unreleased]

Changed

[4.9.0] - 2020-05-11

Added

  • Resolves #2897. Moved from JUnit to VSTest reporter with file attachments, by @compulim in PR #2990
  • Added aria-label attribute support for default Markdown engine, by @patniko in PR #3022
  • Resolves #2969. Support sovereign cloud for Cognitive Services Speech Services, by @compulim in PR #3040
  • Resolves #2481. Support selecting different audio input devices for Cognitive Services Speech Services, by @compulim in PR #3079
  • Resolves #2850. Added new useFocus hook and deprecating useFocusSendBox hook, by @compulim in PR #3123
    • Modify setFocus argument of useTextBoxSubmit to support main and sendBoxWithoutKeyboard
  • Fixes #1427. Support disabled prop and added actionPerformedClassName in Adaptive Card and other legacy cards, by @compulim in PR #3150

Fixed

  • Fixes #2989. Fix observeOnce to use ES Observable call pattern, by @compulim in PR #2993
  • Fixes #3024. Using bridge package markdown-it-attrs-es5 for consuming markdown-it-attrs for IE11, by @compulim in PR #3025
  • Fixes #2818. Fix user ID is not set when passing to embed as query parameter, by @p-nagpal in PR #3031
  • Fixes #3026. Fix link rel attribute in the renderMarkdown function, by @tdurnford in PR #3033
  • Fixes #2933. Fix text should not be ignored in messageBack action in hero card, by @geea-develop and @compulim in PR #3003
  • Fixes #2562. Fix timestamps should not stop updating, by @compulim in PR #3066
  • Fixes #2953. Direct Line Speech should not synthesize when the speak property is falsy, by @compulim in PR #3059
  • Fixes #2876. messageBack and postBack should send even if both text and value is falsy or undefined, by @compulim in PR #3120
  • Fixes #2668. Disable Web Audio on insecure connections, by @compulim in PR #3079
  • Fixes #2850. After click suggested action, should focus to send box without keyboard, by @compulim in PR #3123
  • Fixes #3133. Associate ARIA labels with buttons in hero card and Adaptive Cards, by @compulim in PR #3146.
    • Remove browser-based detection from <ScreenReaderText> because it is no longer needed.
    • After stripping Markdown syntax for accessibility labels, cache the result to improve rendering performance.
    • Skip stripping Markdown for non-Markdown text content.
  • Fixes #3155. Patch incoming activities with null fields, by @compulim in PR #3154
  • Fixes #2669 and [#3136. The "New messages" button will be accessible through TAB key, inbetween the last read and first unread activity, by @compulim in PR #3150.
    • After the "New message" button is clicked, focus will be moved to the first interactive UI of unread activity or the send box.
  • Fixes #3135. If the current widget is disabled, it will keep focus until the next TAB key is pressed, by @compulim in PR #3150

Changed

Samples

[4.8.1] - 2020-04-15

Fixed

  • Fixes #3075. Fix usability issues around accessibility, by @compulim in PR #3076
    • Fix timestamp should not be narrated more than once.
    • Associate the activity text with its attachments, by adding a role="region" to the activity DOM element.
  • Fixes #3074. Keep props.locale when sending to the bot, by @compulim in PR #3095
  • Fixes #3096. Use <ScreenReaderText> instead of aria-label for message bubbles, by @compulim in PR #3097

[4.8.0] - 2020-03-05

Breaking changes

  • Localization
    • locale prop: zh-YUE has been renamed to yue to conform with Unicode standard. zh-YUE will continue to work with warnings
    • Most strings have been validated and retranslated by the Microsoft localization team, with the exception of English (US), Egyptian Arabic, Jordan Arabic, and Chinese Yue
      • If the new strings are undesirable, please use the overideLocalizedStrings prop for customization
      • String IDs have been refreshed and now use a standard format
    • useLocalize and useLocalizeDate is deprecated. Please use useLocalizer and useDateFormatter instead
  • Customizable typing indicator: data and hook related to typing indicator are being revamped in PR #2912
    • lastTypingAt reducer is deprecated, use typing instead. The newer reducer contains typing indicator from the user
    • useLastTypingAt() hook is deprecated, use useActiveTyping(duration?: number) instead. For all typing information, pass Infinity to duration argument
  • Customizable activity status: new nextVisibleActivity to control activity status visibility
    • Previously, we use timestampClassName to control if the activity should show or hide timestamp. The timestampClassName was added as a class attribute the DOM element which contains the timestamp
    • Today, activity and nextVisibleActivity are passed to the middleware, so the activityRendererMiddleware can decide whether the timestamp should be shown or not. For example, developers can group timestamp based on activity type

Added

Fixed

Changed

Samples

[4.7.1] - 2019-12-13

Changed

  • Moved core-js from dev dependencies to dependencies in botframework-directlinespeech-sdk package, by @tonyanziano, in PR #2727

[4.7.0] - 2019-12-12

Breaking changes

  • adaptiveCardHostConfig is being renamed to adaptiveCardsHostConfig
    • If you are using the deprecated adaptiveCardHostConfig, we will rename it automatically

Added

  • Resolves #2539, added React hooks for customization, by @compulim, in the following PRs:
    • PR #2540: useActivities, useReferenceGrammarID, useSendBoxShowInterims
    • PR #2541: useStyleOptions, useStyleSet
    • PR #2542: useLanguage, useLocalize, useLocalizeDate
    • PR #2543: useAdaptiveCardsHostConfig, useAdaptiveCardsPackage, useRenderMarkdownAsHTML
    • PR #2544: useAvatarForBot, useAvatarForUser
    • PR #2547: useEmitTypingIndicator, usePeformCardAction, usePostActivity, useSendEvent, useSendFiles, useSendMessage, useSendMessageBack, useSendPostBack
    • PR #2548: useDisabled
    • PR #2549: useSuggestedActions
    • PR #2550: useConnectivityStatus, useGroupTimestamp, useTimeoutForSend, useUserID, useUsername
    • PR #2551: useLastTypingAt, useSendTypingIndicator, useTypingIndicator
    • PR #2552: useFocusSendBox, useScrollToEnd, useSendBoxValue, useSubmitSendBox, useTextBoxSubmit, useTextBoxValue
    • PR #2553: useDictateInterims, useDictateState, useGrammars, useMarkActivityAsSpoken, useMicrophoneButton, useShouldSpeakIncomingActivity, useStartDictate, useStopDictate, useVoiceSelector, useWebSpeechPonyfill
    • PR #2554: useRenderActivity, useRenderAttachment
    • PR #2644: Added internal/useWebChatUIContext for cleaner code
    • PR #2652: Update samples to use hooks
  • Bring your own Adaptive Cards package by specifying adaptiveCardsPackage prop, by @compulim in PR #2543
  • Fixes #2597. Modify watch script to start and add tableflip script for throwing node_modules, by @corinagum in PR #2598
  • Adds Arabic Language Support, by @midineo, in PR #2593
  • Adds AdaptiveCardsComposer and AdaptiveCardsContext for composability for Adaptive Cards, by @compulim, in PR #2648
  • Adds Direct Line Speech support, by @compulim in PR #2621
  • Fixes #2692. Rename sample 17 to 17.a, by @corinagum in PR #2695

Fixed

  • Fixes #2565. Fixed Adaptive Card host config should generate from style options with default options merged, by @compulim in PR #2566
  • Resolves #2337. Remove Cognitive Services Preview warning, by @corinagum in PR #2578
  • Fixes #2559. De-bump remark and strip-markdown, by @corinagum in PR #2576
  • Fixes #2512. Adds check to ensure Adaptive Card's content is an Object, by @tdurnford in PR #2590
  • Fixes #1780, #2277, and #2285. Make Suggested Actions accessible, Fix Markdown card in carousel being read multiple times, and label widgets of Connectivity Status and Suggested Actions containers, by @corinagum in PR #2613
  • Fixes #2608. Focus will return to sendbox after clicking New Messages or a Suggested Actions button, by @corinagum in PR #2628
  • Resolves #2597. Modify watch script to start and add tableflip script for throwing node_modules, by @corinagum in PR #2598
  • Resolves #1835. Adds suggestedActionLayout to defaultStyleOptions, by @spyip, in PR #2596
  • Resolves #2331. Updated timer to use React Hooks, by @spyip in PR #2546
  • Resolves #2620. Adds Chinese localization files, by @spyip in PR #2631
  • Fixes #2639. Fix passed in prop time from string to boolean, by @corinagum in PR #2640
  • component: Updated timer to use functional component, by @spyip in PR #2546
  • Fixes #2651. Add ends-with string module to ES5 bundle, by @corinagum in PR #2654
  • Fixes #2658. Fix rendering of markdown images in IE11, by @corinagum in PR #2659
  • Fixes #2662 and #2666. Fix various issues related to Direct Line Speech, by @compulim in PR #2671
    • Added triple-buffering to reduce pops/cracks.
    • Enable Safari by upsampling to 48000 Hz.
    • Support detailed output format on Web Chat side.
  • Fixes #2700. Enable <SayComposer> and Adaptive Cards in recompose story, in PR #2649
    • Moved <SayComposer> from <BasicTranscript> to <Composer>
    • Moved WebSpeechPonyfill patching code from <BasicTranscript> to <Composer>
  • Fixes #2699. Disable speech recognition and synthesis when using Direct Line Speech under IE11, by @compulim, in PR #2649
  • Fixes #2709. Reduce wasted render of activities by memoizing partial result of <BasicTranscript>, by @compulim in PR #2710
  • Fixes #2710. Suggested actions container should persist for AT, by @corinagum in PR #2710
  • Fixes #2718. Add Object.is polyfill for IE11, by @compulim in PR #2719
  • Fixes #2723. Fix renderMarkdown should not be called if it is undefined in minimal bundle, by @compulim in PR #2724
  • Fixes #2655. "Taking longer than usual to connect" should not show up after reconnect succeeded, by @curiousite and @compulim in PR #2656
  • Fixes #2942. Fix typing indicator should not show up for the user, by @compulim in PR #2950

Changed

Samples

[4.6.0] - 2019-10-31

Breaking changes

  • We will no longer include react and react-dom in our NPM package, instead, we will requires peer dependencies of react@^16.8.6 and react-dom@^16.8.6

Changed

Fixed

  • Fixes #2328. Updating submitSendBoxSaga.js to send sendBoxValue.trim(), by @jimmyjames177414 in PR #2331
  • Fixes #2160. Clear suggested actions after clicking on a suggested actions of type openUrl, by @tdurnford in PR #2190
  • Fixes #1954. Estimate clock skew and adjust timestamp for outgoing activity, by @compulim in PR #2208
  • Fixes #2240. Fix microphone button should be re-enabled after error, by @compulim in PR #2241
  • Fixes #2250. Fix React warnings related prop types, by @compulim in PR #2253
  • Fixes #2245. Fix speech synthesis not working on Safari by priming the engine on the first microphone button click, by @compulim in PR #2246
  • Fixes #1514. Added reference grammar ID when using Cognitive Services Speech Services, by @compulim in PR #2246
  • Fixes #1515. Added dynamic phrases when using Cognitive Services Speech Services, by @compulim in PR #2246
  • Fixes #2273. Add ScreenReaderText component, by @corinagum in PR #2278
  • Fixes #2231. Fallback to English (US) if date time formatting failed, by @compulim in PR #2286
  • Fixes #2298. Speech synthesize errors to be ignored, by @compulim in PR #2300
  • Fixes #2243. Fixed sagas to correctly mark activities with speaking attachments, by @tdurnford in PR #2320
  • Fixes #2365. Fix Adaptive Card pushButton appearance on Chrome, by @corinagum in PR #2382
  • Fixes #2379. Speech synthesis can be configured off by passing null, by @compulim in PR #2408
  • Fixes #2418. Connectivity status should not waste-render every 400 ms, by @compulim in PR #2419
  • Fixes #2415 and #2416. Fix receipt card rendering, by @compulim in PR #2417
  • Fixes #2415 and #2416. Fix Adaptive Cards cannot be disabled on-the-fly, by @compulim in PR #2417
  • Fixes #2360. Timestamp should update on language change, by @compulim in PR #2414
  • Fixes #2428. Should interrupt speech synthesis after microphone button is clicked, by @compulim in PR #2429
  • Fixes #2435. Fix microphone button getting stuck on voice-triggered expecting input hint without a speech synthesis engine, by @compulim in PR #2445
  • Fixes #2472. Update samples to use repo's version of React, by @corinagum in PR #2478
  • Fixes #2473. Fix samples 13 using wrong region for Speech Services credentials, by @compulim in PR #2482
  • Fixes #2420. Fix saga error should not result in an unhandled exception, by @compulim in PR #2421
  • Fixes #2513. Fix core-js not loading properly, by @compulim in PR #2514
  • Fixes #2516. Disable microphone input for expecting input hint on Safari, by @compulim in PR #2517 and PR #2520
  • Fixes #2518. Synthesis of bot activities with input hint expecting, should be interruptible, by @compulim in PR #2520
  • Fixes #2519. On Safari, microphone should turn on after synthesis of bot activities with input hint expecting, by @compulim in PR #2520
  • Fixes #2521. webchat-es5.js should not contains non-ES5 code and must be loadable by IE11, by @compulim in PR #2522
  • Fixes #2524. Version was not burnt into source code correctly, by @compulim in PR #2525

Added

  • Resolves #2157, added emitTypingIndicator action and dispatcher, by @compulim, in PR #2413
  • Resolves #2307. Added options to hide ScrollToEnd button, by @nt-7 in PR #2332
  • Added bubble nub and style options, by @compulim, in PR #2137 and PR #2487
  • Resolves #1808. Added documentation on activity types, by @corinagum in PR #2228
  • Added timestampFormat option to the default style options and created AbsoluteTime component, by @tdurnford, in PR #2295
  • embed: Added ES5 polyfills and dev server, by @compulim, in PR #2315
  • Resolves #2380. Added botAvatarBackgroundColor and userAvatarBackgroundColor to the default style options, by @tdurnford in PR #2384
  • Added full screen capability to IFRAME in the YouTubeContent and VimeoContent components by @tdurnford in PR #2399
  • Resolves #2461, added isomorphic-react and isomorphic-react-dom packages, by @compulim and @corinagum, in PR #2478 and PR #2486
  • Added missing Norwegian (nb-NO) translations, by @taarskog
  • Added missing Italian (it-IT) translations, by @AntoT84
  • Resolve #2481. Support alternative audio input source by adding audioConfig prop to createCognitiveServicesSpeechServicesPonyfillFactory, by @corinagum, in PR #2491
  • Added missing Finnish (fi-FI) translations, by @sk91swd, in PR #2501

Samples

[4.5.3] - 2019-10-10

Changed

  • bundle: Bumped DirectLineJS to support metadata when uploading attachments, in PR #2433
    • [email protected]
    • Removed DirectLineJS as a dev dependency for component because it was not referenced

Fixed

Added

[4.5.2] - 2019-08-07

[4.5.1] - 2019-08-01

Fixed

[4.5.0] - 2019-07-10

Added

Changed

Fixed

Samples

[4.4.1] - 2019-05-02

Added

Changed

Fixed

[4.3.0] - 2019-03-04

Added

  • Resolves #1383. Added options to hide upload button, by @compulim in PR #1491
  • Adds support of avatar image, thru styleOptions.botAvatarImage and styleOptions.userAvatarImage, in PR #1486
  • Adds ability to style sendbox background and text color, thru styleOptions.sendBoxBackground and styleOptions.sendBoxTextColor, in PR #1575
  • core: Adds sendEvent, in PR #1286
  • core: Adds CONNECT_FULFILLING action to workaround redux-saga design decision, in PR #1286
  • component: Added missing Spanish (es-ES) by @schgressive in PR #1615
  • Adds missing Spanish (es-ES) by @schgressive in PR #1615
  • Resolves #1602. Fix suggested actions regression of buttons, by @corinagum in PR #1616
  • component: Allow font family and adaptive cards text color to be set via styleOptions, by @a-b-r-o-w-n, in PR #1670
  • component: Add fallback logic to browser which do not support window.Intl, by @compulim, in PR #1696
  • *: Adds username back to activity, fixed #1321, by @compulim, in PR #1682
  • component: Allow root component height and width customization via styleOptions.rootHeight and styleOptions.rootWidth, by @tonyanziano, in PR #1702
  • component: Added cardActionMiddleware to customize the behavior of card action, by @compulim, in PR #1704
  • bundle: Add watermark and streamUrl parameters to createDirectLine, by @corinagum, in PR #1817
  • component: Added textarea option to SendBox per issues #17 and #124, by @tdurnford, in PR #1889
  • component: Added suggestedAction images per issue #1739, by @tdurnford, in PR #1909

Changed

Fixed

  • Fixes #1360. Added roles to components of Web Chat, by @corinagum in PR #1462
  • Fixes #1409. Added microphone status as screen reader only text, by @corinagum in PR #1490
  • Fixes #1605, #1316, #1341, #1411. Fix color contrast ratios & downloadIcon narrator accessibility by @corinagum in PR #1494
  • Fixes #1264, #1308, #1318, #1334,#1425. Update icons with accessibilty, Sent message accessibility, and fix sample README.md, @corinagum in PR #1506 and #1542
  • Fixes #1512. Fix #1512: fix sanitization of anchors (allow title attributes), by @corinagum in PR #1530
  • Fixes #1499.
    • Fix screen reader handling of name, activity, and timestamp,
    • connectCarouselFilmStrip: Fixed botAvatarInitials and userAvatarInitials functionality from recent name change,
    • BasicTranscript: Fixed user activity should not be recreated after receive ACK from Direct Line,
    • by @corinagum in PR #1528
  • component: Fix #1560, #1625 and #1635. Fixed carousel layout not showing date and alignment issues, by @compulim in PR #1561 and #1641
  • playground: Fixes #1562. Fixed timestamp grouping "Don't group" and added "Don't show timestamp", by @compulim in PR #1563
  • component: Fixes #1576. Rich card without tap should be rendered properly, by @compulim in PR #1577
  • core: Some sagas missed handling successive actions, in PR #1286
  • core: incomingActivitySaga may throw null-ref exception if the first activity is from user, in PR #1286
  • component: Fixes #1328. Should not start microphone if input hint is set to ignoringInput, in PR #1286
  • component: Fixes outgoing typing indicators are not sent and acknowledged properly, in PR #1286
  • Fixes #1402. Add messageBack support, by @corinagum in PR #1581
  • Fixes #1539. Fix outgoing typing indicators are not sent and acknowledged properly, in PR #1541
  • component: Fix #1547. Fixed unhandled activity type should be forwarded to custom middleware, by @compulim in PR #1569
  • playground: Fix #1610. Fixed bot and user avatar initials not working, by @compulim in PR #1611
  • bundle: Fix #1613. Pass conversationId to DirectLineJS constructor, by @neetu-das in PR #1614
  • component: Fix #1626. Fixed Number.isNaN is not available in IE11, by @compulim in PR #1628
  • bundle: Fix #1652. Pass pollingInterval to DirectLineJS constructor, by @neetu-das in PR #1655
  • core: Reworked logic on connect/disconnect for reliability on handling corner cases, by @compulim in PR #1649
  • core: Fix #1521. Add connectivity status component and update localization, by @corinagum in PR #1679
  • core: Fix #1057. Fixed suggested actions destined for other recipients should not show up, by @compulim in PR #1706
  • component: Fixed pt-br locale not being selected, added X minutes ago and missing translations, by @pedropacheco92 in PR #1745
  • component: Fix #1741 where scrollToEndButton does not have type="button"by @corinagum in PR #1743
  • component: Fix #1625 to update README.md by @corinagum in PR #1752

Removed

  • botAvatarImage and userAvatarImage props, as they are moved inside styleOptions, in PR #1486
  • sendTyping props is now renamed to sendTypingIndicator, by @compulim, in PR #1584

Samples

[4.2.0] - 2018-12-11

Added

  • Build: Development build now include instrumentation code, updated build scripts
    • npm run build will build for development with instrumentation code
    • npm run prepublishOnly will build for production
    • npm run watch will also run Webpack in watch loop
  • Build: Automated testing using visual regression testing technique in #1323
  • Added French localization, by @tao1 in PR #1327
  • Resolve #1344, by updating README.md and adding validation logic for userID props, in #1447
    • If userID props present and also embedded in Direct Line token, will use the one from Direct Line token
    • If userID props present, they must be string and not prefixed with dl_, to avoid confusion between userID props and Direct Line embedded user ID (which is forgery-proof)
    • If userID props does not pass the validation test or not specified, Web Chat will use default-user instead
  • Added support for Cognitive Services Speech to Text and Text to Speech in PR #1442

Changed

Fixed

  • Fixes #1397. Patched activities without from field, in PR #1405
  • Fixes #1237. Added new sample called migration, by @corinagum in PR #1398
  • Fixes #1332. Updated sample names and add table to README, by @corinagum in PR #1435
  • Fixes #1125. Added error handling for Adaptive Card JSON render, by @corinagum in PR #1395
  • Build: Webpack watch mode now emits non-minified code for shorter dev RTT, in #1331

Samples

[4.1.0] - 2018-10-31

Added

  • Initial release of Web Chat v4