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.
- When clicking through fading carousel faster than their transition speed, the
odo-carousel__slide--behind
class was never removed from the slide.
- Test for
passive
property in event listener options. UseOdoDevice.HAS_PASSIVE_LISTENERS
to check if you can use the third argument ofaddEventListener
as an object. Needed for newer versions of iOS and Chrome which maketouchstart
andtouchmove
events on the document passive by default.
- Use the new
OdoDevice.HAS_PASSIVE_LISTENERS
inScrollFix
to prevent scrolling the page behind the dialog in iOS 11.3+ again.
- Add
min-width
,max-width
,min-height
,max-height
,letter-spacing
to numeric props.
!default
flag to component framework variables so they can be overriden by the consumer.
Carousel [2.1.2] Draggable [1.2.2] Dropdown [2.1.1] Dual-viewer [1.1.3] Expandable [0.2.2] Helpers [2.0.2] On-swipe [1.1.2] Pointer [1.2.1] Reveal [2.0.2] Tabs [2.0.2] Tap [1.1.2] - 2018-6-7
Bumped because OdoDevice
is a dependency.
- All click events on the entire page were having their default prevented. Now
preventDefault()
is only used when the expandable is going to be toggled.
update()
method to which will update the scroll-to offsets for expandable accordions #20.
- Issue #19 where the scroll-to behavior was scrolling to the wrong position under some conditions.
data-expandable-target
has been replaced withid
. Always give the target/content an id attribute.aria-describedby
on the trigger. This isn't necessary when the trigger has content within in.
- Triggers are automatically given an
id
if they do not have one so that thearia-labelledby
attribute on the target/content can reference the correct element. expandableItem.isOpen
changed from a getter which checked the existence of a class name to a boolean which is set onopen()
andclose()
.
- Incorrect draggable event property calculations related to the axis (
didMoveOnAxis
,isDirectionOnAxis
). This caused the carousel to not navigate after dragging.
- Update autoplay test so that iOS 11 passes stricter requirements.
- Update base64 encoded video string to be shorter.
- Update
OdoVideo
dependency.
Affix [1.2.0], Device [1.2.0], Draggable [1.2.0], Dropdown [2.1.0], Responsive Images [1.2.0], Scroll Animation [1.2.0], Scroll Feedback [1.2.0], Sticky Headers [1.2.0], Window Events [1.2.0] - 2018-02-23
index.d.ts
type definitions.
- JSDoc updates/fixes
Background Video [1.1.1], Dual-viewer [1.1.1], Expandable [0.1.1], Helpers [2.0.1], Hotspots [1.2.1], Module [1.2.1], Object-fit [1.1.1], On-swipe [1.1.1], Responsive Attributes [1.1.1], Responsive Classes [1.1.1], Reveal [2.0.1], Share [1.1.1], Tabs [2.0.1], Tap [1.1.1], Video [1.2.1], Viewport [1.1.1] - 2018-02-23
- JSDoc updates/fixes
- JSDoc updates/fixes
- Type definitions updates.
index.d.ts
type definitions.- Export
CarouselEvent
fromOdoCarousel
(OdoCarousel.CarouselEvent
).
- JSDoc updates/fixes
index.d.ts
type definitions.
- JSDoc updates/fixes
- Remove private
axis
property. Useoptions.axis
instead.
- New OdoExpandable (accordion) component.
<button data-expandable-trigger="demo-expand-1">Trigger</button>
<div data-expandable-target="demo-expand-1">Target</div>
- New ES builds. Every package now has a
"module"
field in itspackage.json
and adist/odo-{component}.esm.js
file which includes the originalimport
andexport
to allow tree shaking in bundlers. "sideEffects": false
topackage.json
.responsive-classes
andshare
have"sideEffects": true
.
- Polyfills (
Element#closest
Element#matches
,requestAnimationFrame
). animation.fadeElement
is now private.array.getLongestString
. Not used in anything we (odopod) do.device.getTranslate
.dom.getFirstElementChild
. Useelement.firstElementChild
instead.dom.getChildren
. UseArray.from(element.children)
instead.math.getAugmentedRect
. TheRect
class now includesright
andbottom
(getter) properties.style.getWindowHeight
. Was only an alias forwindow.innerHeight
.
- Helpers are no longer prefixed to a category object. Every helper is exported from the main entry point. This is a huge win for bundlers which can determine which exports are unused and remove them. To use
onTransitionEnd
, for example, you now need to import it like this:import { onTransitionEnd } from '@odopod/odo-helpers';
- All function names remain the same except:
animation.Stepper
=>Stepper
animation.Classes
=>animationClasses
array.remove
=>pull
string.random
=>randomString
.odo-responsive-img--cover
=>.image-cover
.responsive-image-cover
=>.background-image-cover
.ghost-center-wrap
,.ghost-center
. Use flexbox..table-center-wrap
,.table-center
. Use flexbox.outline:0
on.unstyled-button:focus
.
- Error when
data-class.xs
was not defined.data-class.xs
is now optional.
- No longer includes
Element#closest
polyfill.
- No longer includes
Element#closest
polyfill.
- No longer includes
Element#closest
polyfill.
- No longer includes
Element#closest
polyfill.
- No longer includes
Element#closest
polyfill.
- Allow dialogs to open other dialogs. Dialog inception! You were able to do this before, but it didn't work well.
- Add
initializeWhenIdle
method to initialize modules in arequestIdleCallback
.
- Fix incorrect repository name in
package.json
. - Replace
https
links to code.odopod.com in README.md files withhttp
. We don't have that set up yet.
- Toggle
grabbable
class when the draggable instance is enabled/disabled.
- Call
setPosition()
on the hotspot now that the cached position has been updated.
- Allow floats in hotspot positions. e.g.
data-position="10.5,62.2"
. - Update the parsed hotspot position on
refresh()
.
- Add title attributes to play toggle, volume toggle, and fullscreen toggle buttons. You can change the titles by overriding
OdoVideo.ControlsCreator.LABEL
.
- Fix
disable()
not removing atouchmove
event listener, preventing touch devices from scrolling the page when they should have been able to.
- Fix type defintions for static methods.
- Handle a case where
getComputedStyle
returns"none"
when a transform has not yet been applied to the element.
- The dialog instance now emits
TRIGGER_CLICKED
when an element with the[data-odo-dialog-open]
attribute is clicked. The first parameter of the event is the trigger element.defaultDialog.on(OdoDialog.EventType.TRIGGER_CLICKED, function (triggerElement) { console.log('dialog about to open because you clicked:', triggerElement); });
- Add an index.d.ts type definitions file for OdoDialog.
- Set height on main element for iOS.
100vh
on the main element makes it taller than it should be when toolbars open. - Avoid calling
focus()
on SVG elements in browsers which don't support that (IE11-)
- Add an
index.d.ts
type definitions file forOdoBaseComponent
.
-
Add support for pseudo classes and elements. You can define them with
':class-name'
or'::element-name'
. The old way for visited, hover, active, and focus still work as well as others.This now works as expected:
{ "':invalid'": { "border-bottom": "1px solid red" } }
-
Allow recursive usage of modifiers, qualifiers, and raw properties.
-
Add tests for the component framework mixins.