@coreui/coreui 4.1.5 → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +2 -2
- package/README.md +64 -11
- package/dist/css/coreui-grid.css +23 -949
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +3 -3
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +25 -951
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +5 -5
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +35 -42
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +3 -3
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +36 -44
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +5 -5
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +279 -951
- package/dist/css/coreui-utilities.css.map +1 -1
- package/dist/css/coreui-utilities.min.css +3 -3
- package/dist/css/coreui-utilities.min.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.css +275 -953
- package/dist/css/coreui-utilities.rtl.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.min.css +5 -5
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
- package/dist/css/coreui.css +2179 -2259
- package/dist/css/coreui.css.map +1 -1
- package/dist/css/coreui.min.css +3 -3
- package/dist/css/coreui.min.css.map +1 -1
- package/dist/css/coreui.rtl.css +2166 -2253
- package/dist/css/coreui.rtl.css.map +1 -1
- package/dist/css/coreui.rtl.min.css +5 -5
- package/dist/css/coreui.rtl.min.css.map +1 -1
- package/dist/js/coreui.bundle.js +2095 -1906
- package/dist/js/coreui.bundle.js.map +1 -1
- package/dist/js/coreui.bundle.min.js +2 -2
- package/dist/js/coreui.bundle.min.js.map +1 -1
- package/dist/js/coreui.esm.js +2098 -1909
- package/dist/js/coreui.esm.js.map +1 -1
- package/dist/js/coreui.esm.min.js +2 -2
- package/dist/js/coreui.esm.min.js.map +1 -1
- package/dist/js/coreui.js +2099 -1910
- package/dist/js/coreui.js.map +1 -1
- package/dist/js/coreui.min.js +2 -2
- package/dist/js/coreui.min.js.map +1 -1
- package/js/dist/alert.js +10 -148
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +36 -122
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +9 -76
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +212 -507
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +64 -251
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +2 -4
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +82 -133
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +22 -26
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +16 -81
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +99 -338
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +106 -774
- package/js/dist/modal.js.map +1 -1
- package/js/dist/navigation.js +309 -0
- package/js/dist/navigation.js.map +1 -0
- package/js/dist/offcanvas.js +88 -680
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +35 -120
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +178 -264
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/sidebar.js +347 -0
- package/js/dist/sidebar.js.map +1 -0
- package/js/dist/tab.js +226 -216
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +27 -216
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +271 -618
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +166 -0
- package/js/dist/util/backdrop.js.map +1 -0
- package/js/dist/util/component-functions.js +47 -0
- package/js/dist/util/component-functions.js.map +1 -0
- package/js/dist/util/config.js +80 -0
- package/js/dist/util/config.js.map +1 -0
- package/js/dist/util/focustrap.js +130 -0
- package/js/dist/util/focustrap.js.map +1 -0
- package/js/dist/util/index.js +354 -0
- package/js/dist/util/index.js.map +1 -0
- package/js/dist/util/sanitizer.js +126 -0
- package/js/dist/util/sanitizer.js.map +1 -0
- package/js/dist/util/scrollbar.js +139 -0
- package/js/dist/util/scrollbar.js.map +1 -0
- package/js/dist/util/swipe.js +156 -0
- package/js/dist/util/swipe.js.map +1 -0
- package/js/dist/util/template-factory.js +178 -0
- package/js/dist/util/template-factory.js.map +1 -0
- package/js/src/alert.js +3 -15
- package/js/src/base-component.js +28 -18
- package/js/src/button.js +3 -15
- package/js/src/carousel.js +203 -320
- package/js/src/collapse.js +61 -94
- package/js/src/dom/data.js +1 -3
- package/js/src/dom/event-handler.js +74 -107
- package/js/src/dom/manipulator.js +22 -31
- package/js/src/dom/selector-engine.js +10 -19
- package/js/src/dropdown.js +84 -138
- package/js/src/modal.js +94 -158
- package/js/src/navigation.js +12 -13
- package/js/src/offcanvas.js +71 -60
- package/js/src/popover.js +31 -62
- package/js/src/scrollspy.js +166 -171
- package/js/src/sidebar.js +5 -8
- package/js/src/tab.js +201 -110
- package/js/src/toast.js +19 -41
- package/js/src/tooltip.js +264 -374
- package/js/src/util/backdrop.js +55 -36
- package/js/src/util/component-functions.js +1 -1
- package/js/src/util/config.js +66 -0
- package/js/src/util/focustrap.js +38 -28
- package/js/src/util/index.js +41 -57
- package/js/src/util/sanitizer.js +9 -17
- package/js/src/util/scrollbar.js +47 -30
- package/js/src/util/swipe.js +146 -0
- package/js/src/util/template-factory.js +160 -0
- package/package.json +40 -40
- package/scss/_accordion.scss +53 -25
- package/scss/_alert.scss +29 -9
- package/scss/_badge.scss +15 -6
- package/scss/_breadcrumb.scss +23 -11
- package/scss/_button-group.scss +3 -0
- package/scss/_buttons.scss +77 -50
- package/scss/_callout.scss +18 -6
- package/scss/_card.scss +55 -37
- package/scss/_carousel.scss +6 -6
- package/scss/_close.scss +4 -4
- package/scss/_containers.scss +1 -1
- package/scss/_dropdown.scss +86 -64
- package/scss/_footer.scss +15 -5
- package/scss/_functions.scss +11 -24
- package/scss/_grid.scss +3 -3
- package/scss/_header.scss +59 -34
- package/scss/_helpers.scss +1 -0
- package/scss/_images.scss +3 -3
- package/scss/_list-group.scss +47 -29
- package/scss/_maps.scss +54 -0
- package/scss/_modal.scss +70 -43
- package/scss/_nav.scss +53 -20
- package/scss/_navbar.scss +84 -94
- package/scss/_offcanvas.scss +120 -60
- package/scss/_pagination.scss +66 -21
- package/scss/_popover.scss +90 -52
- package/scss/_progress.scss +20 -9
- package/scss/_reboot.scss +31 -58
- package/scss/_root.scss +41 -21
- package/scss/_spinners.scss +37 -21
- package/scss/_subheader.scss +9 -9
- package/scss/_tables.scss +34 -36
- package/scss/_toasts.scss +35 -19
- package/scss/_tooltip.scss +61 -56
- package/scss/_utilities.scss +42 -27
- package/scss/_variables.scss +169 -148
- package/scss/coreui-grid.rtl.scss +2 -2
- package/scss/coreui-grid.scss +3 -2
- package/scss/coreui-reboot.rtl.scss +2 -2
- package/scss/coreui-reboot.scss +2 -2
- package/scss/coreui-utilities.rtl.scss +2 -2
- package/scss/coreui-utilities.scss +3 -2
- package/scss/coreui.rtl.scss +2 -2
- package/scss/coreui.scss +3 -2
- package/scss/forms/_floating-labels.scss +14 -3
- package/scss/forms/_form-check.scss +42 -19
- package/scss/forms/_form-control.scss +25 -50
- package/scss/forms/_form-range.scss +8 -8
- package/scss/forms/_form-select.scss +8 -8
- package/scss/forms/_form-text.scss +1 -1
- package/scss/forms/_input-group.scss +3 -3
- package/scss/forms/_labels.scss +2 -2
- package/scss/helpers/_color-bg.scss +10 -0
- package/scss/helpers/_colored-links.scss +2 -2
- package/scss/helpers/_position.scss +7 -1
- package/scss/helpers/_ratio.scss +2 -2
- package/scss/helpers/_vr.scss +1 -0
- package/scss/mixins/_alert.scss +10 -10
- package/scss/mixins/_breakpoints.scss +8 -8
- package/scss/mixins/_buttons.scss +45 -47
- package/scss/mixins/_container.scss +4 -2
- package/scss/mixins/_css-vars.scss +47 -47
- package/scss/mixins/_forms.scss +8 -0
- package/scss/mixins/_gradients.scss +1 -1
- package/scss/mixins/_grid.scss +11 -11
- package/scss/mixins/_list-group.scss +7 -9
- package/scss/mixins/_pagination.scss +4 -25
- package/scss/mixins/_table-variants.scss +20 -12
- package/scss/mixins/_utilities.scss +8 -3
- package/scss/sidebar/_sidebar-narrow.scss +10 -10
- package/scss/sidebar/_sidebar-nav.scss +33 -32
- package/scss/sidebar/_sidebar.scss +110 -56
package/js/dist/scrollspy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollspy.js","sources":["../src/util/index.js","../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.1.5): alert.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-coreui-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransition\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.1.5): scrollspy.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElement,\n getSelectorFromElement,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'coreui.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-coreui-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n EventHandler.off(this._scrollElement, EVENT_KEY)\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n config.target = getElement(config.target) || document.documentElement\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = SELECTOR_LINK_ITEMS.split(',')\n .map(selector => `${selector}[data-coreui-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','), this._config.target)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n } else {\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(ScrollSpy)\n\nexport default ScrollSpy\n"],"names":["toType","object","undefined","Object","prototype","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","document","querySelector","isElement","obj","jquery","nodeType","getElement","length","typeCheckConfig","componentName","config","configTypes","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","getjQuery","jQuery","window","body","hasAttribute","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","defineJQueryPlugin","plugin","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","offset","method","target","DefaultType","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","BaseComponent","constructor","_scrollElement","_element","tagName","_config","_getConfig","_offsets","_targets","_activeTarget","_scrollHeight","EventHandler","on","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","SelectorEngine","find","map","targetSelector","findOne","targetBCR","getBoundingClientRect","width","height","Manipulator","top","filter","item","sort","a","b","dispose","off","getDataAttributes","documentElement","pageYOffset","scrollTop","scrollHeight","Math","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","i","isActiveTarget","queries","link","join","classList","add","contains","closest","parents","listGroup","prev","navItem","children","trigger","relatedTarget","node","remove","each","data","getOrCreateInstance","spy"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scrollspy.js","sources":["../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.1): scrollspy.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'coreui.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-coreui-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null\n}\n\nconst DefaultType = {\n offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: [0.1, 0.5, 1],\n rootMargin: this._getRootMargin()\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n _getRootMargin() {\n return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(anchor.hash, this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(anchor.hash, anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _clearActiveClass(parent) {\n parent.classList.remove(CLASS_NAME_ACTIVE)\n\n const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n ScrollSpy.getOrCreateInstance(spy)\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(ScrollSpy)\n\nexport default ScrollSpy\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_ACTIVATE","EVENT_CLICK","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","Default","offset","rootMargin","smoothScroll","target","DefaultType","ScrollSpy","BaseComponent","constructor","element","config","_targetLinks","Map","_observableSections","_rootElement","getComputedStyle","_element","overflowY","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","section","values","observe","dispose","_configAfterMerge","getElement","document","body","_config","EventHandler","off","on","event","observableSection","get","hash","preventDefault","root","window","height","offsetTop","scrollTo","top","behavior","scrollTop","options","threshold","_getRootMargin","IntersectionObserver","entries","_observerCallback","targetElement","entry","id","activate","_process","documentElement","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","SelectorEngine","find","anchor","isDisabled","findOne","isVisible","set","classList","add","_activateParents","trigger","relatedTarget","contains","closest","listGroup","parents","item","prev","parent","remove","activeNodes","node","jQueryInterface","each","data","getOrCreateInstance","undefined","startsWith","TypeError","spy","defineJQueryPlugin"],"mappings":"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"}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* CoreUI sidebar.js v4.2.1 (https://coreui.io)
|
|
3
|
+
* Copyright 2022 The CoreUI Team (https://github.com/orgs/coreui/people)
|
|
4
|
+
* Licensed under MIT (https://coreui.io)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./util/scrollbar'), require('./dom/event-handler'), require('./base-component'), require('./dom/manipulator'), require('./util/backdrop')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./util/index', './util/scrollbar', './dom/event-handler', './base-component', './dom/manipulator', './util/backdrop'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sidebar = factory(global.Index, global.Scrollbar, global.EventHandler, global.BaseComponent, global.Manipulator, global.Backdrop));
|
|
10
|
+
})(this, (function (index, ScrollBarHelper, EventHandler, BaseComponent, Manipulator, Backdrop) { 'use strict';
|
|
11
|
+
|
|
12
|
+
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
13
|
+
|
|
14
|
+
const ScrollBarHelper__default = /*#__PURE__*/_interopDefaultLegacy(ScrollBarHelper);
|
|
15
|
+
const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
17
|
+
const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
18
|
+
const Backdrop__default = /*#__PURE__*/_interopDefaultLegacy(Backdrop);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* --------------------------------------------------------------------------
|
|
22
|
+
* CoreUI (v4.2.1): sidebar.js
|
|
23
|
+
* Licensed under MIT (https://coreui.io/license)
|
|
24
|
+
* --------------------------------------------------------------------------
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* ------------------------------------------------------------------------
|
|
28
|
+
* Constants
|
|
29
|
+
* ------------------------------------------------------------------------
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
const NAME = 'sidebar';
|
|
33
|
+
const DATA_KEY = 'coreui.sidebar';
|
|
34
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
|
35
|
+
const DATA_API_KEY = '.data-api';
|
|
36
|
+
const Default = {};
|
|
37
|
+
const DefaultType = {};
|
|
38
|
+
const CLASS_NAME_BACKDROP = 'sidebar-backdrop';
|
|
39
|
+
const CLASS_NAME_HIDE = 'hide';
|
|
40
|
+
const CLASS_NAME_SHOW = 'show';
|
|
41
|
+
const CLASS_NAME_SIDEBAR_NARROW = 'sidebar-narrow';
|
|
42
|
+
const CLASS_NAME_SIDEBAR_OVERLAID = 'sidebar-overlaid';
|
|
43
|
+
const CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE = 'sidebar-narrow-unfoldable';
|
|
44
|
+
const EVENT_HIDE = `hide${EVENT_KEY}`;
|
|
45
|
+
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
|
|
46
|
+
const EVENT_RESIZE = 'resize';
|
|
47
|
+
const EVENT_SHOW = `show${EVENT_KEY}`;
|
|
48
|
+
const EVENT_SHOWN = `shown${EVENT_KEY}`;
|
|
49
|
+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
|
|
50
|
+
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
|
|
51
|
+
const SELECTOR_DATA_CLOSE = '[data-coreui-close="sidebar"]';
|
|
52
|
+
const SELECTOR_DATA_TOGGLE = '[data-coreui-toggle]';
|
|
53
|
+
const SELECTOR_SIDEBAR = '.sidebar';
|
|
54
|
+
/**
|
|
55
|
+
* ------------------------------------------------------------------------
|
|
56
|
+
* Class Definition
|
|
57
|
+
* ------------------------------------------------------------------------
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
class Sidebar extends BaseComponent__default.default {
|
|
61
|
+
constructor(element, config) {
|
|
62
|
+
super(element);
|
|
63
|
+
this._config = this._getConfig(config);
|
|
64
|
+
this._show = this._isVisible();
|
|
65
|
+
this._mobile = this._isMobile();
|
|
66
|
+
this._overlaid = this._isOverlaid();
|
|
67
|
+
this._narrow = this._isNarrow();
|
|
68
|
+
this._unfoldable = this._isUnfoldable();
|
|
69
|
+
this._backdrop = this._initializeBackDrop();
|
|
70
|
+
|
|
71
|
+
this._addEventListeners();
|
|
72
|
+
} // Getters
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
static get Default() {
|
|
76
|
+
return Default;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
static get DefaultType() {
|
|
80
|
+
return DefaultType;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
static get NAME() {
|
|
84
|
+
return NAME;
|
|
85
|
+
} // Public
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
show() {
|
|
89
|
+
EventHandler__default.default.trigger(this._element, EVENT_SHOW);
|
|
90
|
+
|
|
91
|
+
if (this._element.classList.contains(CLASS_NAME_HIDE)) {
|
|
92
|
+
this._element.classList.remove(CLASS_NAME_HIDE);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (this._isMobile()) {
|
|
96
|
+
this._element.classList.add(CLASS_NAME_SHOW);
|
|
97
|
+
|
|
98
|
+
this._backdrop.show();
|
|
99
|
+
|
|
100
|
+
new ScrollBarHelper__default.default().hide();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const complete = () => {
|
|
104
|
+
if (this._isVisible() === true) {
|
|
105
|
+
this._show = true;
|
|
106
|
+
|
|
107
|
+
if (this._isMobile() || this._isOverlaid()) {
|
|
108
|
+
this._addClickOutListener();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
EventHandler__default.default.trigger(this._element, EVENT_SHOWN);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
this._queueCallback(complete, this._element, true);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
hide() {
|
|
119
|
+
EventHandler__default.default.trigger(this._element, EVENT_HIDE);
|
|
120
|
+
|
|
121
|
+
if (this._element.classList.contains(CLASS_NAME_SHOW)) {
|
|
122
|
+
this._element.classList.remove(CLASS_NAME_SHOW);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (this._isMobile()) {
|
|
126
|
+
this._backdrop.hide();
|
|
127
|
+
|
|
128
|
+
new ScrollBarHelper__default.default().reset();
|
|
129
|
+
} else {
|
|
130
|
+
this._element.classList.add(CLASS_NAME_HIDE);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const complete = () => {
|
|
134
|
+
if (this._isVisible() === false) {
|
|
135
|
+
this._show = false;
|
|
136
|
+
|
|
137
|
+
if (this._isMobile() || this._isOverlaid()) {
|
|
138
|
+
this._removeClickOutListener();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
this._queueCallback(complete, this._element, true);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
toggle() {
|
|
149
|
+
if (this._isVisible()) {
|
|
150
|
+
this.hide();
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
this.show();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
narrow() {
|
|
158
|
+
if (!this._isMobile()) {
|
|
159
|
+
this._addClassName(CLASS_NAME_SIDEBAR_NARROW);
|
|
160
|
+
|
|
161
|
+
this._narrow = true;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
unfoldable() {
|
|
166
|
+
if (!this._isMobile()) {
|
|
167
|
+
this._addClassName(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE);
|
|
168
|
+
|
|
169
|
+
this._unfoldable = true;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
reset() {
|
|
174
|
+
if (!this._isMobile()) {
|
|
175
|
+
if (this._narrow) {
|
|
176
|
+
this._element.classList.remove(CLASS_NAME_SIDEBAR_NARROW);
|
|
177
|
+
|
|
178
|
+
this._narrow = false;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (this._unfoldable) {
|
|
182
|
+
this._element.classList.remove(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE);
|
|
183
|
+
|
|
184
|
+
this._unfoldable = false;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
toggleNarrow() {
|
|
190
|
+
if (this._narrow) {
|
|
191
|
+
this.reset();
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
this.narrow();
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
toggleUnfoldable() {
|
|
199
|
+
if (this._unfoldable) {
|
|
200
|
+
this.reset();
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
this.unfoldable();
|
|
205
|
+
} // Private
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
_getConfig(config) {
|
|
209
|
+
config = { ...Default,
|
|
210
|
+
...Manipulator__default.default.getDataAttributes(this._element),
|
|
211
|
+
...(typeof config === 'object' ? config : {})
|
|
212
|
+
};
|
|
213
|
+
return config;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
_initializeBackDrop() {
|
|
217
|
+
return new Backdrop__default.default({
|
|
218
|
+
className: CLASS_NAME_BACKDROP,
|
|
219
|
+
isVisible: this._isMobile(),
|
|
220
|
+
isAnimated: true,
|
|
221
|
+
rootElement: this._element.parentNode,
|
|
222
|
+
clickCallback: () => this.hide()
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
_isMobile() {
|
|
227
|
+
return Boolean(window.getComputedStyle(this._element, null).getPropertyValue('--cui-is-mobile'));
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
_isNarrow() {
|
|
231
|
+
return this._element.classList.contains(CLASS_NAME_SIDEBAR_NARROW);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
_isOverlaid() {
|
|
235
|
+
return this._element.classList.contains(CLASS_NAME_SIDEBAR_OVERLAID);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
_isUnfoldable() {
|
|
239
|
+
return this._element.classList.contains(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
_isVisible() {
|
|
243
|
+
const rect = this._element.getBoundingClientRect();
|
|
244
|
+
|
|
245
|
+
return rect.top >= 0 && rect.left >= 0 && Math.floor(rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) && Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
_addClassName(className) {
|
|
249
|
+
this._element.classList.add(className);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
_clickOutListener(event, sidebar) {
|
|
253
|
+
if (event.target.closest(SELECTOR_SIDEBAR) === null) {
|
|
254
|
+
event.preventDefault();
|
|
255
|
+
event.stopPropagation();
|
|
256
|
+
sidebar.hide();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
_addClickOutListener() {
|
|
261
|
+
EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, event => {
|
|
262
|
+
this._clickOutListener(event, this);
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
_removeClickOutListener() {
|
|
267
|
+
EventHandler__default.default.off(document, EVENT_CLICK_DATA_API);
|
|
268
|
+
} // Sidebar navigation
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
_addEventListeners() {
|
|
272
|
+
if (this._mobile && this._show) {
|
|
273
|
+
this._addClickOutListener();
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
if (this._overlaid && this._show) {
|
|
277
|
+
this._addClickOutListener();
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
EventHandler__default.default.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
|
|
281
|
+
event.preventDefault();
|
|
282
|
+
const toggle = Manipulator__default.default.getDataAttribute(event.target, 'toggle');
|
|
283
|
+
|
|
284
|
+
if (toggle === 'narrow') {
|
|
285
|
+
this.toggleNarrow();
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
if (toggle === 'unfoldable') {
|
|
289
|
+
this.toggleUnfoldable();
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
EventHandler__default.default.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_DATA_CLOSE, event => {
|
|
293
|
+
event.preventDefault();
|
|
294
|
+
this.hide();
|
|
295
|
+
});
|
|
296
|
+
EventHandler__default.default.on(window, EVENT_RESIZE, () => {
|
|
297
|
+
if (this._isMobile() && this._isVisible()) {
|
|
298
|
+
this.hide();
|
|
299
|
+
this._backdrop = this._initializeBackDrop();
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
} // Static
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
static sidebarInterface(element, config) {
|
|
306
|
+
const data = Sidebar.getOrCreateInstance(element, config);
|
|
307
|
+
|
|
308
|
+
if (typeof config === 'string') {
|
|
309
|
+
if (typeof data[config] === 'undefined') {
|
|
310
|
+
throw new TypeError(`No method named "${config}"`);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
data[config]();
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
static jQueryInterface(config) {
|
|
318
|
+
return this.each(function () {
|
|
319
|
+
Sidebar.sidebarInterface(this, config);
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* ------------------------------------------------------------------------
|
|
326
|
+
* Data Api implementation
|
|
327
|
+
* ------------------------------------------------------------------------
|
|
328
|
+
*/
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
|
|
332
|
+
for (const element of Array.from(document.querySelectorAll(SELECTOR_SIDEBAR))) {
|
|
333
|
+
Sidebar.sidebarInterface(element);
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
/**
|
|
337
|
+
* ------------------------------------------------------------------------
|
|
338
|
+
* jQuery
|
|
339
|
+
* ------------------------------------------------------------------------
|
|
340
|
+
*/
|
|
341
|
+
|
|
342
|
+
index.defineJQueryPlugin(Sidebar);
|
|
343
|
+
|
|
344
|
+
return Sidebar;
|
|
345
|
+
|
|
346
|
+
}));
|
|
347
|
+
//# sourceMappingURL=sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.js","sources":["../src/sidebar.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI (v4.2.1): sidebar.js\n * Licensed under MIT (https://coreui.io/license)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport ScrollBarHelper from './util/scrollbar'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport Manipulator from './dom/manipulator'\nimport Backdrop from './util/backdrop'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'sidebar'\nconst DATA_KEY = 'coreui.sidebar'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {}\n\nconst DefaultType = {}\n\nconst CLASS_NAME_BACKDROP = 'sidebar-backdrop'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SIDEBAR_NARROW = 'sidebar-narrow'\nconst CLASS_NAME_SIDEBAR_OVERLAID = 'sidebar-overlaid'\nconst CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE = 'sidebar-narrow-unfoldable'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = 'resize'\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_CLOSE = '[data-coreui-close=\"sidebar\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-coreui-toggle]'\n\nconst SELECTOR_SIDEBAR = '.sidebar'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Sidebar extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._show = this._isVisible()\n this._mobile = this._isMobile()\n this._overlaid = this._isOverlaid()\n this._narrow = this._isNarrow()\n this._unfoldable = this._isUnfoldable()\n this._backdrop = this._initializeBackDrop()\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (this._element.classList.contains(CLASS_NAME_HIDE)) {\n this._element.classList.remove(CLASS_NAME_HIDE)\n }\n\n if (this._isMobile()) {\n this._element.classList.add(CLASS_NAME_SHOW)\n this._backdrop.show()\n new ScrollBarHelper().hide()\n }\n\n const complete = () => {\n if (this._isVisible() === true) {\n this._show = true\n if (this._isMobile() || this._isOverlaid()) {\n this._addClickOutListener()\n }\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n }\n\n this._queueCallback(complete, this._element, true)\n }\n\n hide() {\n EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n if (this._isMobile()) {\n this._backdrop.hide()\n new ScrollBarHelper().reset()\n } else {\n this._element.classList.add(CLASS_NAME_HIDE)\n }\n\n const complete = () => {\n if (this._isVisible() === false) {\n this._show = false\n if (this._isMobile() || this._isOverlaid()) {\n this._removeClickOutListener()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n }\n\n this._queueCallback(complete, this._element, true)\n }\n\n toggle() {\n if (this._isVisible()) {\n this.hide()\n return\n }\n\n this.show()\n }\n\n narrow() {\n if (!this._isMobile()) {\n this._addClassName(CLASS_NAME_SIDEBAR_NARROW)\n this._narrow = true\n }\n }\n\n unfoldable() {\n if (!this._isMobile()) {\n this._addClassName(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE)\n this._unfoldable = true\n }\n }\n\n reset() {\n if (!this._isMobile()) {\n if (this._narrow) {\n this._element.classList.remove(CLASS_NAME_SIDEBAR_NARROW)\n this._narrow = false\n }\n\n if (this._unfoldable) {\n this._element.classList.remove(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE)\n this._unfoldable = false\n }\n }\n }\n\n toggleNarrow() {\n if (this._narrow) {\n this.reset()\n return\n }\n\n this.narrow()\n }\n\n toggleUnfoldable() {\n if (this._unfoldable) {\n this.reset()\n return\n }\n\n this.unfoldable()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n\n return config\n }\n\n _initializeBackDrop() {\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._isMobile(),\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: () => this.hide()\n })\n }\n\n _isMobile() {\n return Boolean(window.getComputedStyle(this._element, null).getPropertyValue('--cui-is-mobile'))\n }\n\n _isNarrow() {\n return this._element.classList.contains(CLASS_NAME_SIDEBAR_NARROW)\n }\n\n _isOverlaid() {\n return this._element.classList.contains(CLASS_NAME_SIDEBAR_OVERLAID)\n }\n\n _isUnfoldable() {\n return this._element.classList.contains(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE)\n }\n\n _isVisible() {\n const rect = this._element.getBoundingClientRect()\n return (\n rect.top >= 0 && rect.left >= 0 && Math.floor(rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) && Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth)\n )\n }\n\n _addClassName(className) {\n this._element.classList.add(className)\n }\n\n _clickOutListener(event, sidebar) {\n if (event.target.closest(SELECTOR_SIDEBAR) === null) {\n event.preventDefault()\n event.stopPropagation()\n sidebar.hide()\n }\n }\n\n _addClickOutListener() {\n EventHandler.on(document, EVENT_CLICK_DATA_API, event => {\n this._clickOutListener(event, this)\n })\n }\n\n _removeClickOutListener() {\n EventHandler.off(document, EVENT_CLICK_DATA_API)\n }\n\n // Sidebar navigation\n _addEventListeners() {\n if (this._mobile && this._show) {\n this._addClickOutListener()\n }\n\n if (this._overlaid && this._show) {\n this._addClickOutListener()\n }\n\n EventHandler.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n const toggle = Manipulator.getDataAttribute(event.target, 'toggle')\n\n if (toggle === 'narrow') {\n this.toggleNarrow()\n }\n\n if (toggle === 'unfoldable') {\n this.toggleUnfoldable()\n }\n })\n\n EventHandler.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_DATA_CLOSE, event => {\n event.preventDefault()\n this.hide()\n })\n\n EventHandler.on(window, EVENT_RESIZE, () => {\n if (this._isMobile() && this._isVisible()) {\n this.hide()\n this._backdrop = this._initializeBackDrop()\n }\n })\n }\n\n // Static\n\n static sidebarInterface(element, config) {\n const data = Sidebar.getOrCreateInstance(element, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Sidebar.sidebarInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of Array.from(document.querySelectorAll(SELECTOR_SIDEBAR))) {\n Sidebar.sidebarInterface(element)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(Sidebar)\n\nexport default Sidebar\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","DefaultType","CLASS_NAME_BACKDROP","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SIDEBAR_NARROW","CLASS_NAME_SIDEBAR_OVERLAID","CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE","EVENT_HIDE","EVENT_HIDDEN","EVENT_RESIZE","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_LOAD_DATA_API","SELECTOR_DATA_CLOSE","SELECTOR_DATA_TOGGLE","SELECTOR_SIDEBAR","Sidebar","BaseComponent","constructor","element","config","_config","_getConfig","_show","_isVisible","_mobile","_isMobile","_overlaid","_isOverlaid","_narrow","_isNarrow","_unfoldable","_isUnfoldable","_backdrop","_initializeBackDrop","_addEventListeners","show","EventHandler","trigger","_element","classList","contains","remove","add","ScrollBarHelper","hide","complete","_addClickOutListener","_queueCallback","reset","_removeClickOutListener","toggle","narrow","_addClassName","unfoldable","toggleNarrow","toggleUnfoldable","Manipulator","getDataAttributes","Backdrop","className","isVisible","isAnimated","rootElement","parentNode","clickCallback","Boolean","window","getComputedStyle","getPropertyValue","rect","getBoundingClientRect","top","left","Math","floor","bottom","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","_clickOutListener","event","sidebar","target","closest","preventDefault","stopPropagation","on","off","getDataAttribute","sidebarInterface","data","getOrCreateInstance","TypeError","jQueryInterface","each","Array","from","querySelectorAll","defineJQueryPlugin"],"mappings":"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"}
|