Skip to content

Releases: aws-samples/aws-lex-web-ui

0.14.4

28 Nov 00:29
0dc0bb9
Compare
Choose a tag to compare

Fixes for for login processing and noauth / auth role switching in full page sample. Added use of BotAlias to configuration.

0.13.2

30 Aug 14:29
Compare
Choose a tag to compare
rebuild dist

0.13.1

07 Jun 04:43
ca7df50
Compare
Choose a tag to compare

fixes #53

0.13.0

24 May 21:24
7b8940a
Compare
Choose a tag to compare
  • add markdown and html support
  • add loading icon

0.12.0

12 Jan 16:55
Compare
Choose a tag to compare

This release brings significant improvements which include various
breaking changes (see items with the [BREAKING] label). It overhauls
the following areas:

  1. The loader script has been integrated into a single library. This
    makes it easier to load the chatbot UI component since now there's only
    one JavaScript file and a unified configuration
  2. CloudFormation master template has been split into two different
    templates based on the deployment mode (CodeBuild or Pipeline). This
    simplifies the templates and their parameters
  3. The chatbot UI messages are now encapsulated in a custom component
    instead of a chip. The messages now display a date when clicked and can
    show a bot avatar image next to the bot messages. More importantly, the
    new message component will makes it easier in the future to extend the
    content displayed in messages (e.g. adding html/markup rendering)

Changed

  • [BREAKING] Merged fullpage and iframe loader functionality
    into a library that loads from a single script. If you were using
    including the chatbot-ui-*loader.js scripts, you should change it to
    lex-web-ui-loader.js. This new library uses a constructor to create
    a loader object. The loader object must explicitly call its load()
    function to load the component. For details, see the README under the
    src/lex-web-ui-loader directory and the html files under src/website.
    [0892314]
  • [BREAKING] Changed loader config to use a unified file for both the
    iframe and full page loader. The new default configuration file name is:
    lex-web-ui-loader-config.json. See a sample under the src/config/
    directory. [dbcac4c]
  • Changed loader to allow keeping parent origin in config when
    embedded [245ac70] - Changed
    loader build environment to be based on webpack. This includes
    integration with babel, eslint, post-css and webpack-dev-server
    [8f1b7ac]
  • Changed message bubble from vuetify chips to a custom component. This
    was done to allow greater flexibility in the style and structure of the
    message bubbles and in preparation to render a more complex message format
    [67192a0]
  • Changed vertical overflow in non-mobile devices to allow scrolling. This
    enables mobile browsers to go full-screen when scrolling
    [3b8efc9]
  • Changed height calculation of toolbar, inputbar and message list to
    make it more deterministic across browsers
    [8b9132d]
  • Bumped dependency versions [48aa6ac,
    72fb152]

Added

  • Added time stamps to messages. It is shown under message bubbles when
    focused [bd9e9f3]
  • Added basic mobile resolution detection
    [afa316b]
  • Added the ability to include an avatar image next to the bot messages
    [8140697]
  • Added message list event handler to scroll down to the bottom
    [2a20d33]
  • Added CSS to auto hyphernation and word break text in messages
    [502aa92]
  • Added automated test for MessageList and Message components
    [1667fc6]
  • Added origin configuration support to CodeBuild deployment
    [1d459d9]
  • Added a dynamically created page containing a code snippet and config
    [7636bac]
  • added a base URL parameter to the loader which is used to
    with relative links for the JSON configuration and dependencies
    [9c954f6]

Removed

  • [BREAKING] Removed iframe loader config file:
    src/config/chatbot-ui-iframe-loader-config.json. Its functionality
    is now integrated in src/config/lex-web-ui-loader-config.json.
    [2e158f7]
  • [BREAKING] Splitted the master cloudformation template into two
    different template to separate the CodeBuild and Pipeline deployment
    modes. This makes the templates much simpler and easier to configure
    [ee2ef48]
  • Removed the need to include CSS to manage overflow at the
    body tag level and removed display flex for the app element
    [8bf32f8]
  • Removed promise catch statements in loader script to allow user scripts
    to handle exceptions [bd929d6]

Fixed

  • Fixed a bug where the AWS SDK was loaded in the incorrect order
    [1b4637b]
  • Fixed a bug where the component config initialization had a timing issue
    when running in embedded mode [66de81c]
  • Fixed a bug where the toolbar image caused an error when not present
    [de77de6]
  • Fixed a bug where the display of dialog state in messages had the
    wrong alignment [d993d7a]
  • Fixed parent page in dev/test environment of component
    [39a1e1c]

0.11.0

13 Nov 17:50
Compare
Choose a tag to compare

This release adds support for IE11 (text only, requires babel-polyfill as a
dependency). We made it easier to create a full-page standalone chatbot
page with a new JavaScript loader that takes care of loading
dependencies and configuration.

The CloudFormation stack has a new set of parameters
to configured commonly changed parameters: toolbar title and initial
messages. The sample parent page under 'src/website' is now also used
when deploying with CodePipeline. As usual, this release also includes
bug fixes and dependency updates.

Changed

  • Various changes to support IE11 in text mode (no voice). IE11 support
    requires babel-polyfil to be loaded [59e8d32, e5c6afd]
  • [BREAKING] Renamed bot-config.json file to chatbot-ui-loader.json
    to be consistent with the iframe loader and new chatbot loader script [146af6b]
  • Moved CloudFormation bootstrap bucket configuration from a map to a
    parameter to make it easier to deploy from different sources without
    modifying the template [787adfa]
  • Changed the parent page setup when using the CreatePipeline deployment
    from the CloudFormation templates. It now uses the same page, iframe
    loader and configuration as the pre-built deployment. The parent page is
    also mounted under /static/iframe/parent.html when running the localhost
    dev server (i.e. npm run dev under the lex-web-ui dir)
    [ce594f2]
  • Improved dist Makefile to only build the library when there are
    changes to the component. Additionally added support to build the new
    chatbot loader [34e5037]

Added

  • Added a chatbot loader script that can be used to load dependencies
    and config. The loader simplifies the creation of a full page chatbot
    site by removing the need to manually add the dependencies and config
    [293b377]
  • Added CloudFormation parameters to support setting basic chatbot
    UI configuration including toolbar title and initial messages. These
    parameters are used when deploying the pre-built library from the dist
    directory (default) [efebbba]
  • Added an allow="microphone" attribute to the iframe tag created by the
    iframe loader script. This was done to avoid issues with cross-origin
    iframes in newer versions of Chrome
    [ab4cee5]

Removed

  • Removed webrtc-adapter dependency from the recorder component [d674fc4]
  • Removed the deprecated parent page under lex-web-ui/static/iframe. The
    parent page in src/website is now copied dynamically during build time [3154725]

Fixed

  • Fixed issue causing iframeOrigin to be overwritten by event in
    sample parent.html. The iframe loader now defaults the iframeOrigin to
    window.location.origin only if it is not found in the config
    [93982e1]

0.10.0

28 Oct 00:04
Compare
Choose a tag to compare

This release contains various bug fixes and improvements.

Changed

  • Detailed errors are no longer shown in bot response messages by default.
    This is controlled by the ui.showErrorDetails config field which
    defaults to false.
  • Changed display of minimized message list to hide using use v-show
    instead of v-if to maintain scroll position
  • Changed components to be more compatible with latest vuetify version
  • Changed tooltips to work with the latest vuetify and to clear on mobile
  • Changed playback progress indicator to have smoother updates
  • Clarified main readme including more HTML integration examples
  • Changed viewport of index.html to prevent scaling issues
  • Iframe loader script in the dist directory is now transpiled using babel
    to improve browser compatibility
  • Iframe loader css in the dist directory is now post-processed using
    autoprefixer to improve browser compatibility
  • Updated dependencies

Added

  • Added the ability to emit a vue event when the lex state changes.
    This event can be handled with v-on when using the library as a Vue
    component.
  • Added a new config field: ui.showErrorDetails that can be set to true
    to display detailed errors in bot response messages. When set to false
    (default), only generic error messages are displayed in bot responses.
  • Ability to pass a configuration object to the iframe loader during
    initialization
  • Added recorder options in default store config to make testing consistent

Fixed

  • Fixed a promise return issue when posting a text message
  • Fixed audio playback ended index issue
  • Fixed recording and playback interruption issue

Removed

  • Removed unused styles

0.9.1

21 Aug 00:20
Compare
Choose a tag to compare

This release refactors the LexWeb component to make it easier to test
and include it in other applications/sites. The input toolbar is now more
compact and provides better visual feedback. It adds a send button to the
text input and a progress bar to better indicate processing and playback
status. This release also provides bug fixes and improved unit testing.

Changed

  • LexWeb component is now wrapped in a vuetify v-app component to avoid
    having to use the vuetify v-app outside of it. The LexWeb component now
    sets a min height that is dynamcally calculated based on the input bar
    height. When minimized, all subcomponents are hidden with the exception
    of the top toolbar.
  • Input bar on the bottom of the chatbot UI is now wrapped in a vuetify
    toolbar component. The container now has a fixed height which makes it
    easier to calculate offsets
  • The StatusBar component was renamed to RecorderStatus as that is a more
    appropriate name. It is now loaded from the the InputContainer component
    instead of directly from the LexWeb component
  • Renamed bot-loader.* files to chatbot-ui-iframe-loader.* to better
    reflect the use case
  • Bump dependency versions

Added

  • Added a send button to the input container. This button is shown
    when typing a message or when the mic is disabled
  • Added an a linear progress bar when the bot audio is playing
  • Added an indeterminate linear progress bar when the recorder is
    processing
  • Added title attribute to iframe in bot-loader.js script to improve
    accessibility
  • Added config options to chatbot-ui-iframe-loader.js to better control
    the loading of the config and dependencies:
    • shouldLoadConfigFromJsonFile: controls if the script loads config
      from a JSON File
    • shouldLoadConfigFromEvent: controls if the script loads config
      from an event
    • shouldAddAwsSdk: controls if the AWS SDK is automatically added
  • Added unit tests for InputContainer and RecorderStatus components
  • Added getAudioProperties store action
  • Added README.md under src/website. For now, this readme
    is pretty much the same as the iframe embedding readme under
    lex-web-ui/static/iframe. This is in preparation to deprecate the parent
    page under lex-web-ui

Fixed

  • Fixed a bug affecting the enable config option of the recorder
  • Fixed creds refresh issue when running in an iframe.
  • Fixed an issue with space trimming in text input
  • Fixed iframe height issue in MS Edge
  • Fixed audio initialization that caused problems in unit tests

0.9.0

05 Aug 23:59
Compare
Choose a tag to compare

This release adds a couple of simplified deployment options:

  1. Simplfied CloudFormation stack without a deployment pipeline.
    It uses CodeBuild to create the config files and to deploy directly
    to S3.
    This mode is the new default of the CloudFormation setup so if
    you want to keep using the deployment pipeline setup (CodeCommit,
    CodeBuild, CodePipeline), you are going to need to explicitly set the
    CreatePipeline parameter to true.
  2. AWS Mobile Hub project file that deploys the Web UI to S3 fronted
    by a CloudFront distribution. The Mobile Hub project also creates the
    Cognito Identity Pool, Lex Bot and IAM Roles. This allows to deploy the
    application from a single file hosted in github.

NOTE: At this point, there is a Content-Type issue with the files
deployed using the Mobile Hub project file. The Mobile Hub deployed
files seem to have its content-type set to octect-stream which causes the
browser to download the files instead of rendering. To work around this
issue, you can re-upload the files using the S3 console or aws cli. The
Makefile in the root dir can be used to upload the files with the right
content type. Use the command: make sync-website (requires setting
the bucket name with the WEBAPP_BUCKET environmental variable). This
issue will be further investigated.

Added

  • Added Mobile Hub deployment
  • Added new CloudFormation template codebuild.yaml used to deploy the
    application without a pipeline
  • Added CreatePipeline parameter to the master.yaml template to control
    whether the stack should create a deployment pipeline
  • Added build-time support to set web UI config fields that are commonly
    changed using environmental variables. This is in preparation to set
    these variables from CloudFormation parameters. The new variables include:
    • BOT_INITIAL_TEXT
    • BOT_INITIAL_SPEECH
    • UI_TOOLBAR_TITLE
    • UI_TOOLBAR_LOGO
  • Added a new config directory in the root of the repo that includes
    build configuration
  • Added a new src directory in the root of the repo to hold the
    website files. This includes a modified version of the iframe parent
    page and bot-loader that resides in the lex-web-ui/static/iframe
    directory. Eventualy, this new version should replace, somehow get
    merged with the other, or sourced in both places from a single file.
  • Added a server.js file for quick development and testing. It loads
    the sample page from the dist and source directories. It can be used
    with the command npm start from the root directory. You may need to put
    the right values in the config files under src/config to make it work.
  • Added CloudFormation format statement to all templates files
  • Added .npmignore file
  • Added sample code on how to use the Vue plugin for including the
    component into an existing Vue application

Changed

  • [BREAKING] CloudFormation setup now defaults to not creating a
    development pipeline and just copy the prebuilt files to an S3 bucket.
    To use the pipeline, you now have to set the CreatePipeline parameter
    to true
  • Refactored the build scripts and Makefiles to have better separation
    of config and code. The config config used by the Makefiles now resides
    under: config/env.mk. Some of the names of the Makefile have changed so
    you may need to change your environment if you were using the Makefiles
    from other script.
  • The update-lex-web-ui-config.js build script now takes its config from
    a node js module in the config directory. The config is driven by the
    BUILD_TYPE environmental variable which controls whether the deployment
    is building the app from full source or using the dist dir. For this, the
    value of the BUILD_TYPE variable can be set to either full or dist.
  • Updated CodeBuild environment to node js v6.3.1 using ubuntu
  • Renamed iframe bot.css to bot-loader.css
  • Updated dependency versions
  • Clarified READMEs

0.8.3

29 Jul 06:00
Compare
Choose a tag to compare

Changed

  • Moved default icons from config to sample application
  • Reduced the size of silent sounds
  • Updated dependencies
  • Added input validation and safer var initialization to store

Fixed

  • Fixed mic icon tooltip message to show correct status
  • Excluded LexApp from unit testing which was causing unit test issues
  • Fixed audio playback on mobile due to autoplay bug
  • Fixed input container on mobile not showing on latest vuetify