$(element)
.one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))
- .emulateTransitionEnd(transitionDuration)
+
+ Util.emulateTransitionEnd(transitionDuration)
}
_destroyElement(element) {
setTimeout(() => $(this._element).trigger(slidEvent), 0)
})
- .emulateTransitionEnd(transitionDuration)
+
+ Util.emulateTransitionEnd(transitionDuration)
} else {
$(activeElement).removeClass(ClassName.ACTIVE)
$(nextElement).addClass(ClassName.ACTIVE)
$(this._element)
.one(Util.TRANSITION_END, complete)
- .emulateTransitionEnd(transitionDuration)
+ Util.emulateTransitionEnd(transitionDuration)
this._element.style[dimension] = `${this._element[scrollSize]}px`
}
$(this._element)
.one(Util.TRANSITION_END, complete)
- .emulateTransitionEnd(transitionDuration)
+
+ Util.emulateTransitionEnd(transitionDuration)
}
setTransitioning(isTransitioning) {
--- /dev/null
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta): dom/event.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+const Event = {
+ on(element, event, handler) {
+ if (typeof event !== 'string') {
+ return
+ }
+ element.addEventListener(event, handler, false)
+ },
+
+ one(element, event, handler) {
+ const complete = () => {
+ /* eslint func-style: off */
+ handler()
+ element.removeEventListener(event, complete, false)
+ }
+ Event.on(element, event, complete)
+ },
+
+ trigger(element, event) {
+ if (typeof event !== 'string') {
+ return
+ }
+
+ const eventToDispatch = new CustomEvent(event, {
+ bubbles: true,
+ cancelable: true
+ })
+ element.dispatchEvent(eventToDispatch)
+ }
+}
+
+export default Event
$(this._element)
.one(Util.TRANSITION_END, (event) => this._hideModal(event))
- .emulateTransitionEnd(transitionDuration)
+
+ Util.emulateTransitionEnd(this._element, transitionDuration)
} else {
this._hideModal()
}
$(this._dialog)
.one(Util.TRANSITION_END, transitionComplete)
- .emulateTransitionEnd(transitionDuration)
+
+ Util.emulateTransitionEnd(transitionDuration)
} else {
transitionComplete()
}
$(this._backdrop)
.one(Util.TRANSITION_END, callback)
- .emulateTransitionEnd(backdropTransitionDuration)
+
+ Util.emulateTransitionEnd(backdropTransitionDuration)
} else if (!this._isShown && this._backdrop) {
$(this._backdrop).removeClass(ClassName.SHOW)
$(this._backdrop)
.one(Util.TRANSITION_END, callbackRemove)
- .emulateTransitionEnd(backdropTransitionDuration)
+
+ Util.emulateTransitionEnd(backdropTransitionDuration)
} else {
callbackRemove()
}
$(active)
.removeClass(ClassName.SHOW)
.one(Util.TRANSITION_END, complete)
- .emulateTransitionEnd(transitionDuration)
+ Util.emulateTransitionEnd(active, transitionDuration)
} else {
complete()
}
$(this.tip)
.one(Util.TRANSITION_END, complete)
- .emulateTransitionEnd(transitionDuration)
+
+ Util.emulateTransitionEnd(tip, transitionDuration)
} else {
complete()
}
* --------------------------------------------------------------------------
*/
-import $ from 'jquery'
+import Event from './dom/event'
/**
* ------------------------------------------------------------------------
},
triggerTransitionEnd(element) {
- $(element).trigger(TRANSITION_END)
+ Event.trigger(element, Util.TRANSITION_END)
},
// TODO: Remove in v5
return (obj[0] || obj).nodeType
},
+ emulateTransitionEnd(element, duration) {
+ setTimeout(() => {
+ Util.triggerTransitionEnd(element)
+ }, duration)
+ },
+
typeCheckConfig(componentName, config, configTypes) {
for (const property in configTypes) {
if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
}
}
-setTransitionEndSupport()
-
export default Util
</script>
<!-- Transpiled Plugins -->
+ <script src="../dist/dom/event.js"></script>
<script src="../dist/util.js"></script>
<script src="../dist/alert.js"></script>
<script src="../dist/button.js"></script>
</div>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/alert.js"></script>
</body>
</div>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/button.js"></script>
</body>
</div>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/carousel.js"></script>
<script>
</div>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/collapse.js"></script>
</body>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
<script src="../../../node_modules/popper.js/dist/umd/popper.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/dropdown.js"></script>
<script src="../../dist/collapse.js"></script>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
<script src="../../../node_modules/popper.js/dist/umd/popper.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/modal.js"></script>
<script src="../../dist/collapse.js"></script>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
<script src="../../../node_modules/popper.js/dist/umd/popper.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/tooltip.js"></script>
<script src="../../dist/popover.js"></script>
</div>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
+ <script src="../../../site/docs/4.2/assets/js/vendor/popper.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/scrollspy.js"></script>
<script src="../../dist/dropdown.js"></script>
<script src="../../../node_modules/jquery/dist/jquery.slim.min.js"></script>
<script src="../../../node_modules/popper.js/dist/umd/popper.min.js"></script>
+ <script src="../../dist/dom/event.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/tab.js"></script>
<script src="../../dist/dropdown.js"></script>