- Only shim
Array.from
when it isn't available natively
- Disable Selenium tests because we don't have a BrowserStack subscription anymore
- Update Node.js engine to
4.8.6
in CircleCI config
- Update Node.js engine to
4.8.6
in package.json
- Slight readme fixes
- Ignore SauceLabs log file
- Remove
libraryTarget: 'umd'
from webpack config
- Fix action bar items on IE11. IE11 doesn't support adding multiple class names at once
element.classList.add('foo', 'bar')
so we separated out the calls - Fixed shim usage from breaking change in
array.from
that now uses es-shim API
- Update dependencies
- Add package to npm
gitter-sidecar
- Add build for module/package version of Sidecar
npm run build-module
- Add build for module/package version of Sidecar
- Use root element fallback in case there isn't a
<body>
element
- Remove
border-left
when the target element is 100% width at mobile sized breakpoint.
- Add
Array.from
polyfill to support the output from babel with comprehensions. SeegitterHQ/sidecar#28
- Update microsite docs
- Fix
options.targetElement
andoptions.activationElement
to be able to accept a selector string. What this really means is that we fixed the underlying FixdomUtility -> $
to return actual array(vs NodeList or HTMLCollection) when a selector string is passed in.
- Add
options
getter to public API - Add
custom-class-on-target
demo to address #25 - Action bar(
.gitter-chat-embed-action-bar
) is now in place whengitter-sidecar-instance-started
andgitter-chat-started
events are fired. - Update popout action bar item to standard
<a>
link - Add
examples/room-title-on-target
andexamples/custom-class-on-target
- Update microsite copy snippet block script version to reference
package.json
so it is always up to date - Add Gitter badge to readme
- First production release
- Update
options.activationElement
so you can passtrue
and it will automatically create an element. This is to round off the API because we addedfalse
to disable the activation element.
- You can now pass
false
ornull
intooptions.activationElement
to disable it - Add acceptable value types to options in
API.md
- Remove SVG sprite embed. Now using
postcss-write-svg
to writebackground-image
SVG declarations right inside the CSS - Update unit tests. Now using Tape and
selenium-webdriver
instead ofbrowserstack-webdriver
. Cleaned up and separated out environments from tests itself. - Fixes for IE
- Shim Symbol
- Shim custom event constructors
new CustomEvent
- Shim
toggleClass
for second parameter(force
) support:element.classList.toggle('is-awesome', true || false)
- Update unit tests
- Reduce action white occlusion gradient background
- Disabled tests temporarily
- Update action bar item hover/focus styles
- Add
options.host
so you can provide any Gitter instance(https://beta.gitter.im/
orhttps://gitter.im/
)
- Update open chat button hover/focus styles
- Change microsite room to
gitterHQ/sidecar-demo
- Adjust action bar item vertical alignment (update icon viewbox bounds)
- Moved away from array-like
ElementStore
- Ensured
destroy
method works and cleaned upexamples/create-destroy-chat/
- Add comment header specifying the version
- Microsite visual tweaks and updates
- Add
microsite/
to showcase Sidecar and some getting started goodness - Change
options.container
tooptions.targetElement
- Change
optionts.activation
tooptions.activationElement
- Listen to
.js-gitter-toggle-chat-button
elements for "activiation"(click) which can toggle the chat panel. You can also setdata-gitter-toggle-chat-state
to an explicit value oftrue
orfalse
to make a open and close button respectively. By default the value is'toggle'
. - Add
dom-utility.js -> off
to remove event handlers
- Emit
gitter-sidecar-ready
event ondocument
when the script has loaded:document.addEventListener('gitter-sidecar-ready', function(e) { var Chat = e.detail.Chat; var chat = new Chat(/*opts*/); });
- Emit
gitter-sidecar-instance-started
event ondocument
after a Sidecar chat instance is initialized:document.addEventListener('gitter-sidecar-instance-started', function(e) { var chat = e.detail.chat; chat.toggleChat(true); });
- Emit
gitter-chat-started
event on container after a Sidecar chat instance is initialized:document.querySelector('.gitter-chat-embed').addEventListener('gitter-chat-started', function(e) { var chat = e.detail.chat; chat.toggleChat(true); });
- Use
es6-promise
instead ofbluebird
for the sake of file size - Stop using
bling.js
for DOM manipulation. Now usingdom-utility.js
which is fully encapsulated from thewindow
world. - Now using
window.gitter
instead ofwindow.___gitter
options.preload
defaults tofalse
. Instead, we load the iframe after the "Open Chat" button is clicked and the aside is slid into place. This is to avoid the unnecessary strain to the Gitter servers for people who never click the open chat button, etc.- Add
.is-loading
state for when the iframe hasn't embedded yet but we are working on it. We don't add the iframe exactly on click because that causes jank in the slide in animation.
options.room
defaults toundefined
and will throw an error if no room is specified- Using a custom PostCSS plugin and
postcss-plugin-context
to addbox-sizing: border-box;
to each rule:@context border-box { /* ... */ }
- Use
<a>
element as the default generated activation element so that if the JS fails to execute, we still have it link through to the actual room.
- Update basic example(cosmetic)
- Add
popout
action button that opens the room in a new tab. - Update snippets for setting options on the
window
object so it properly deep sets properties - Proper immutable default options property
- Now using
window.___gitter.chat.options
instead ofwindow.___gitterEmbedConfig
- Add
window.___gitter.chat.options.disableDefaultChat
to stop the default chat from just loading on the page when including the Sidecar script - Add
gitter.Chat.destroy
to clean up any elements created by the embed - Add
gitter.Chat.toggleChat
to toggle visibility between chat window and activation element - Add
options.preload
for whether the chat iframe should be loaded on page load - Change
options.activationElement
tooptions.activation
which can be a dom element, promise, or a promise that resolves to a dom element. - Emit
gitter-chat-toggle
event on chat panel container element - Using symbols to make internal state and methods "private"
- Document options in Readme
- Add
options.container
- Add
options.useStyles
- Add
- Add keyboard support
- Add
/examples/
showing off different setups
- Initial release