Releases: aws-samples/aws-lex-web-ui
0.14.4
0.13.2
rebuild dist
0.13.1
0.13.0
- add markdown and html support
- add loading icon
0.12.0
This release brings significant improvements which include various
breaking changes (see items with the [BREAKING] label). It overhauls
the following areas:
- 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 - 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 - 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 thechatbot-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 itsload()
function to load the component. For details, see the README under the
src/lex-web-ui-loader
directory and the html files undersrc/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 thesrc/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 insrc/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
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
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 theui.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
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 FileshouldLoadConfigFromEvent
: controls if the script loads config
from an eventshouldAddAwsSdk
: 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
This release adds a couple of simplified deployment options:
- 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. - 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 thelex-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 commandnpm start
from the root directory. You may need to put
the right values in the config files undersrc/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 theCreatePipeline
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 theconfig
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 theBUILD_TYPE
variable can be set to eitherfull
ordist
. - 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
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