bootstrap-italia 2.2.0 → 2.3.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/README.EN.md +1 -1
- package/README.md +1 -1
- package/dist/css/bootstrap-italia-comuni.min.css +1 -1
- package/dist/css/bootstrap-italia.min.css +1 -1
- package/dist/css/bootstrap-italia.min.css.map +1 -1
- package/dist/js/bootstrap-italia.bundle.min.js +253 -189
- package/dist/js/bootstrap-italia.min.js +256 -0
- package/dist/plugins/input-label.js +4 -1
- package/dist/plugins/input-label.js.map +1 -1
- package/dist/plugins/notification.js +1 -23
- package/dist/plugins/notification.js.map +1 -1
- package/dist/plugins/progress-donut.js +2 -2
- package/dist/plugins/progress-donut.js.map +1 -1
- package/dist/plugins/tab.js +82 -1
- package/dist/plugins/tab.js.map +1 -1
- package/dist/svg/sprites.svg +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +6 -4
- package/src/js/bootstrap-italia.entry.js +14 -1
- package/src/js/icons.js +2 -0
- package/src/js/plugins/input-label.js +4 -1
- package/src/js/plugins/notification.js +1 -32
- package/src/js/plugins/progress-donut.js +2 -2
- package/src/js/plugins/tab.js +82 -1
- package/src/js/version.js +1 -1
- package/src/scss/_variables.scss +66 -57
- package/src/scss/bootstrap-italia-comuni.scss +40 -39
- package/src/scss/bootstrap-italia.scss +39 -38
- package/src/scss/custom/_accordion.scss +5 -5
- package/src/scss/custom/_alert.scss +3 -3
- package/src/scss/custom/_autocomplete.scss +2 -2
- package/src/scss/custom/_avatar.scss +5 -5
- package/src/scss/custom/_back-to-top.scss +2 -2
- package/src/scss/custom/_bottomnav.scss +2 -2
- package/src/scss/custom/_breadcrumb.scss +2 -0
- package/src/scss/custom/_buttons.scss +13 -8
- package/src/scss/custom/_calendar.scss +2 -2
- package/src/scss/custom/_callout.scss +25 -25
- package/src/scss/custom/_card.scss +1 -1
- package/src/scss/custom/_carousel.scss +3 -4
- package/src/scss/custom/_chips.scss +4 -4
- package/src/scss/custom/_cookiebar.scss +1 -1
- package/src/scss/custom/_dimmer.scss +5 -5
- package/src/scss/custom/_dropdown.scss +6 -6
- package/src/scss/custom/_footer.scss +2 -2
- package/src/scss/custom/_form-datepicker.scss +2 -6
- package/src/scss/custom/_form-input-file.scss +2 -2
- package/src/scss/custom/_form-input-number.scss +13 -13
- package/src/scss/custom/_form-password.scss +1 -1
- package/src/scss/custom/_form-select.scss +3 -3
- package/src/scss/custom/_forms.scss +19 -17
- package/src/scss/custom/_just-validate.scss +7 -0
- package/src/scss/custom/_linklist.scss +13 -13
- package/src/scss/custom/_list.scss +5 -5
- package/src/scss/custom/_masonry-loader.scss +1 -1
- package/src/scss/custom/_megamenu.scss +12 -12
- package/src/scss/custom/_modal.scss +1 -1
- package/src/scss/custom/_notifications.scss +6 -6
- package/src/scss/custom/_point-list.scss +0 -2
- package/src/scss/custom/_popover.scss +2 -2
- package/src/scss/custom/_progress-bars.scss +3 -4
- package/src/scss/custom/_progress-donuts.scss +3 -3
- package/src/scss/custom/_progress-spinners.scss +4 -4
- package/src/scss/custom/_sections.scss +3 -2
- package/src/scss/custom/_sidebar.scss +2 -2
- package/src/scss/custom/_steppers.scss +82 -57
- package/src/scss/custom/_tab.scss +23 -19
- package/src/scss/custom/_timeline.scss +9 -11
- package/src/scss/custom/_toolbar.scss +12 -12
- package/src/scss/custom/_tooltip.scss +1 -1
- package/src/scss/custom/_version.scss +1 -1
- package/src/scss/utilities/colors_vars.scss +64 -28
- package/src/svg/it-mastodon-square.svg +3 -0
- package/src/svg/it-mastodon.svg +3 -0
- package/types/index.d.ts +80 -0
- package/types/plugins/accordion.d.ts +39 -0
- package/types/plugins/alert.d.ts +20 -0
- package/types/plugins/backToTop.d.ts +77 -0
- package/types/plugins/button.d.ts +17 -0
- package/types/plugins/carousel-bi.d.ts +59 -0
- package/types/plugins/carousel.d.ts +19 -0
- package/types/plugins/collapse.d.ts +19 -0
- package/types/plugins/cookiebar.d.ts +59 -0
- package/types/plugins/dimmer.d.ts +34 -0
- package/types/plugins/dropdown.d.ts +20 -0
- package/types/plugins/form-validate.d.ts +53 -0
- package/types/plugins/form.d.ts +30 -0
- package/types/plugins/forward.d.ts +49 -0
- package/types/plugins/header-sticky.d.ts +24 -0
- package/types/plugins/history-back.d.ts +24 -0
- package/types/plugins/input-label.d.ts +25 -0
- package/types/plugins/input-number.d.ts +35 -0
- package/types/plugins/input-password.d.ts +128 -0
- package/types/plugins/input-search-autocomplete.d.ts +54 -0
- package/types/plugins/input.d.ts +26 -0
- package/types/plugins/list.d.ts +25 -0
- package/types/plugins/masonry.d.ts +59 -0
- package/types/plugins/modal.d.ts +20 -0
- package/types/plugins/navbar-collapsible.d.ts +77 -0
- package/types/plugins/navscroll.d.ts +85 -0
- package/types/plugins/notification.d.ts +92 -0
- package/types/plugins/offcanvas.d.ts +19 -0
- package/types/plugins/popover.d.ts +19 -0
- package/types/plugins/progress-donut.d.ts +89 -0
- package/types/plugins/scrollspy.d.ts +19 -0
- package/types/plugins/select-autocomplete.d.ts +57 -0
- package/types/plugins/sticky.d.ts +97 -0
- package/types/plugins/tab.d.ts +17 -0
- package/types/plugins/toast.d.ts +19 -0
- package/types/plugins/tooltip.d.ts +19 -0
- package/types/plugins/track-focus.d.ts +7 -0
- package/types/plugins/transfer.d.ts +52 -0
- package/types/plugins/upload-dragdrop.d.ts +44 -0
- package/types/decs.d.ts +0 -1
|
@@ -38,11 +38,14 @@ class InputLabel {
|
|
|
38
38
|
//script disabled if active on init
|
|
39
39
|
this._labelOut();
|
|
40
40
|
this._labelOver();
|
|
41
|
-
this._bindEvents();
|
|
42
41
|
}
|
|
42
|
+
this._bindEvents();
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
_bindEvents() {
|
|
46
|
+
if (['date', 'time'].includes(this._element.getAttribute('type'))) {
|
|
47
|
+
return
|
|
48
|
+
}
|
|
46
49
|
if (this._element.getAttribute('type') === 'file') {
|
|
47
50
|
EventHandler.on(this._element, EVENT_BLUR, () => {
|
|
48
51
|
this._labelOut();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-label.js","sources":["../../src/js/plugins/input-label.js"],"sourcesContent":["import EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nconst NAME = 'inputlabel'\nconst DATA_KEY = 'bs.inputlabel'\nconst EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\nconst EVENT_FOCUS = `focus${EVENT_KEY}`\nconst EVENT_BLUR = `blur${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nclass InputLabel {\n constructor(element) {\n this._element = element\n\n this._init()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n static getInputFromLabel = (labelElement) => {\n return document.querySelector('#' + labelElement.getAttribute('for'))\n }\n\n // Public\n\n // Private\n _init() {\n const label = this._getLabel()\n if (label && !label.classList.contains(CLASS_NAME_ACTIVE)) {\n //script disabled if active on init\n this._labelOut()\n this._labelOver()\n
|
|
1
|
+
{"version":3,"file":"input-label.js","sources":["../../src/js/plugins/input-label.js"],"sourcesContent":["import EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nconst NAME = 'inputlabel'\nconst DATA_KEY = 'bs.inputlabel'\nconst EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\nconst EVENT_FOCUS = `focus${EVENT_KEY}`\nconst EVENT_BLUR = `blur${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nclass InputLabel {\n constructor(element) {\n this._element = element\n\n this._init()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n static getInputFromLabel = (labelElement) => {\n return document.querySelector('#' + labelElement.getAttribute('for'))\n }\n\n // Public\n\n // Private\n _init() {\n const label = this._getLabel()\n if (label && !label.classList.contains(CLASS_NAME_ACTIVE)) {\n //script disabled if active on init\n this._labelOut()\n this._labelOver()\n }\n this._bindEvents()\n }\n\n _bindEvents() {\n if (['date', 'time'].includes(this._element.getAttribute('type'))) {\n return\n }\n if (this._element.getAttribute('type') === 'file') {\n EventHandler.on(this._element, EVENT_BLUR, () => {\n this._labelOut()\n })\n } else {\n EventHandler.on(this._element, EVENT_FOCUS, () => {\n this._labelOut()\n })\n EventHandler.on(this._element, EVENT_BLUR, () => {\n this._labelOver()\n })\n EventHandler.on(this._element, EVENT_CHANGE, () => {\n this._labelToggle()\n })\n }\n }\n\n _getLabel() {\n return SelectorEngine.findOne('label[for=\"' + this._element.getAttribute('id') + '\"]')\n }\n\n _isEmpty() {\n return !this._element.value && !this._element.getAttribute('placeholder')\n }\n\n _labelOut() {\n const label = this._getLabel()\n if (label) {\n label.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n _labelOver() {\n if (this._isEmpty()) {\n const label = this._getLabel()\n if (label) {\n label.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n }\n _labelToggle() {\n if (!this._isEmpty()) {\n this._labelOut()\n } else {\n this._labelOver()\n }\n }\n}\n\nexport default InputLabel\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import BaseComponent from 'bootstrap/js/src/base-component.js';
|
|
2
|
-
import { getElementFromSelector, isVisible, reflow
|
|
2
|
+
import { getElementFromSelector, isVisible, reflow } from 'bootstrap/js/src/util';
|
|
3
3
|
import Manipulator from 'bootstrap/js/src/dom/manipulator';
|
|
4
4
|
import EventHandler from 'bootstrap/js/src/dom/event-handler';
|
|
5
5
|
import { enableDismissTrigger } from 'bootstrap/js/src/util/component-functions';
|
|
@@ -17,15 +17,10 @@ const Default = {
|
|
|
17
17
|
timeout: 0,
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
const DefaultType = {
|
|
21
|
-
timeout: 'number',
|
|
22
|
-
};
|
|
23
|
-
|
|
24
20
|
const CLASS_NAME_FADE = 'fade';
|
|
25
21
|
const CLASS_NAME_SHOW = 'show';
|
|
26
22
|
|
|
27
23
|
const ATTRIBUTE_TIMEOUT = 'data-bs-timeout';
|
|
28
|
-
//const ATTRIBUTE_TARGET = 'data-bs-target' //const selector = getSelectorFromElement(this)
|
|
29
24
|
|
|
30
25
|
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="notification"]';
|
|
31
26
|
|
|
@@ -60,14 +55,6 @@ class Notification extends BaseComponent {
|
|
|
60
55
|
return
|
|
61
56
|
}
|
|
62
57
|
|
|
63
|
-
//manage event - TODO
|
|
64
|
-
/*const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {
|
|
65
|
-
relatedTarget
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
if (showEvent.defaultPrevented) {
|
|
69
|
-
return
|
|
70
|
-
}*/
|
|
71
58
|
const timeoutVal = timeout || this._getElementTimeout(relatedTarget);
|
|
72
59
|
|
|
73
60
|
this._isShown = true;
|
|
@@ -133,8 +120,6 @@ class Notification extends BaseComponent {
|
|
|
133
120
|
_hideElement() {
|
|
134
121
|
this._element.style.display = 'none';
|
|
135
122
|
this._element.setAttribute('aria-hidden', true);
|
|
136
|
-
//this._element.removeAttribute('aria-modal')
|
|
137
|
-
//this._element.removeAttribute('role')
|
|
138
123
|
this._isTransitioning = false;
|
|
139
124
|
}
|
|
140
125
|
|
|
@@ -144,7 +129,6 @@ class Notification extends BaseComponent {
|
|
|
144
129
|
...Manipulator.getDataAttributes(this._element),
|
|
145
130
|
...(typeof config === 'object' ? config : {}),
|
|
146
131
|
};
|
|
147
|
-
typeCheckConfig(NAME, config, DefaultType);
|
|
148
132
|
return config
|
|
149
133
|
}
|
|
150
134
|
|
|
@@ -191,12 +175,6 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (
|
|
|
191
175
|
});
|
|
192
176
|
});
|
|
193
177
|
|
|
194
|
-
// avoid conflict when clicking moddal toggler while another one is open
|
|
195
|
-
/*const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)
|
|
196
|
-
if (allReadyOpen) {
|
|
197
|
-
Modal.getInstance(allReadyOpen).hide()
|
|
198
|
-
}*/
|
|
199
|
-
|
|
200
178
|
const data = Notification.getOrCreateInstance(target);
|
|
201
179
|
|
|
202
180
|
data.toggle(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.js","sources":["../../src/js/plugins/notification.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\nimport {\n //defineJQueryPlugin,\n getElementFromSelector,\n //isRTL,\n isVisible,\n reflow,\n typeCheckConfig,\n //getSelectorFromElement,\n} from 'bootstrap/js/src/util'\nimport Manipulator from 'bootstrap/js/src/dom/manipulator'\n//import SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport { enableDismissTrigger } from 'bootstrap/js/src/util/component-functions'\n\nconst NAME = 'notification'\nconst DATA_KEY = 'bs.notification'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\n\nconst Default = {\n timeout: 0,\n}\n\nconst DefaultType = {\n timeout: 'number',\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst ATTRIBUTE_TIMEOUT = 'data-bs-timeout'\n//const ATTRIBUTE_TARGET = 'data-bs-target' //const selector = getSelectorFromElement(this)\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"notification\"]'\n\n/**\n * toggle per attivazione\n * attrib per timeout (assegnabili al toggler o al componente, vince sempre il toggler)\n * gestione chiusura (dismissable)\n * la classe si riferisce all'elemento notification, con options, metodi open(timeout) e close (che deve gestire il timeout)\n **/\n\nclass Notification extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n\n this._isShown = this._element.classList.contains(CLASS_NAME_SHOW)\n this._isTransitioning = false\n this._toId = null\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n show(timeout, relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n //manage event - TODO\n /*const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }*/\n const timeoutVal = timeout || this._getElementTimeout(relatedTarget)\n\n this._isShown = true\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n this._showElement(timeoutVal)\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n this._isShown = false\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideElement(), this._element, isAnimated)\n }\n\n toggle(relatedTarget) {\n this._isShown ? this.hide() : this.show(null, relatedTarget)\n }\n\n //Private\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _showElement(timeout) {\n const isAnimated = this._isAnimated()\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n //this._element.setAttribute('aria-modal', true)\n //this._element.setAttribute('role', 'dialog')\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n this._isTransitioning = false\n if (timeout) {\n this._setTimeout(timeout, () => this.hide())\n }\n }\n\n this._queueCallback(transitionComplete, this._element, isAnimated)\n }\n\n _hideElement() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n //this._element.removeAttribute('aria-modal')\n //this._element.removeAttribute('role')\n this._isTransitioning = false\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getElementTimeout(relatedTarget) {\n const relTimeout = relatedTarget ? parseInt(relatedTarget.getAttribute(ATTRIBUTE_TIMEOUT)) : null\n return relTimeout > 0 ? relTimeout : this._config.timeout\n }\n\n _setTimeout(duration, callback) {\n this._clearTimeout()\n setTimeout(callback, duration)\n }\n _clearTimeout() {\n if (this._toId) {\n clearTimeout(this._toId)\n this._toId = null\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, (showEvent) => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking moddal toggler while another one is open\n /*const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (allReadyOpen) {\n Modal.getInstance(allReadyOpen).hide()\n }*/\n\n const data = Notification.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Notification)\n\nexport default Notification\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notification.js","sources":["../../src/js/plugins/notification.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\nimport { getElementFromSelector, isVisible, reflow } from 'bootstrap/js/src/util'\nimport Manipulator from 'bootstrap/js/src/dom/manipulator'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport { enableDismissTrigger } from 'bootstrap/js/src/util/component-functions'\n\nconst NAME = 'notification'\nconst DATA_KEY = 'bs.notification'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\n\nconst Default = {\n timeout: 0,\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst ATTRIBUTE_TIMEOUT = 'data-bs-timeout'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"notification\"]'\n\n/**\n * toggle per attivazione\n * attrib per timeout (assegnabili al toggler o al componente, vince sempre il toggler)\n * gestione chiusura (dismissable)\n * la classe si riferisce all'elemento notification, con options, metodi open(timeout) e close (che deve gestire il timeout)\n **/\n\nclass Notification extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n\n this._isShown = this._element.classList.contains(CLASS_NAME_SHOW)\n this._isTransitioning = false\n this._toId = null\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n show(timeout, relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const timeoutVal = timeout || this._getElementTimeout(relatedTarget)\n\n this._isShown = true\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n this._showElement(timeoutVal)\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n this._isShown = false\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideElement(), this._element, isAnimated)\n }\n\n toggle(relatedTarget) {\n this._isShown ? this.hide() : this.show(null, relatedTarget)\n }\n\n //Private\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _showElement(timeout) {\n const isAnimated = this._isAnimated()\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n //this._element.setAttribute('aria-modal', true)\n //this._element.setAttribute('role', 'dialog')\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n this._isTransitioning = false\n if (timeout) {\n this._setTimeout(timeout, () => this.hide())\n }\n }\n\n this._queueCallback(transitionComplete, this._element, isAnimated)\n }\n\n _hideElement() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _getElementTimeout(relatedTarget) {\n const relTimeout = relatedTarget ? parseInt(relatedTarget.getAttribute(ATTRIBUTE_TIMEOUT)) : null\n return relTimeout > 0 ? relTimeout : this._config.timeout\n }\n\n _setTimeout(duration, callback) {\n this._clearTimeout()\n setTimeout(callback, duration)\n }\n _clearTimeout() {\n if (this._toId) {\n clearTimeout(this._toId)\n this._toId = null\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, (showEvent) => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n const data = Notification.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Notification)\n\nexport default Notification\n"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ const NAME = 'progressdonut';
|
|
|
11
11
|
const SELECTOR_DONUT = '[data-bs-progress-donut]';
|
|
12
12
|
|
|
13
13
|
const Default = {
|
|
14
|
-
color: '#
|
|
15
|
-
trailColor: '#
|
|
14
|
+
color: '#5C6F82',
|
|
15
|
+
trailColor: '#D9DADB',
|
|
16
16
|
// This has to be the same size as the maximum width to
|
|
17
17
|
// prevent clipping
|
|
18
18
|
strokeWidth: 24,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-donut.js","sources":["../../src/js/plugins/progress-donut.js"],"sourcesContent":["import ProgressBar from 'progressbar.js'\nimport BaseComponent from 'bootstrap/js/src/base-component.js'\n\n//import EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport Manipulator from 'bootstrap/js/src/dom/manipulator'\n\nconst NAME = 'progressdonut'\n//const DATA_KEY = 'bs.progressdonut'\n//const EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DONUT = '[data-bs-progress-donut]'\n\nconst Default = {\n color: '#
|
|
1
|
+
{"version":3,"file":"progress-donut.js","sources":["../../src/js/plugins/progress-donut.js"],"sourcesContent":["import ProgressBar from 'progressbar.js'\nimport BaseComponent from 'bootstrap/js/src/base-component.js'\n\n//import EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport Manipulator from 'bootstrap/js/src/dom/manipulator'\n\nconst NAME = 'progressdonut'\n//const DATA_KEY = 'bs.progressdonut'\n//const EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DONUT = '[data-bs-progress-donut]'\n\nconst Default = {\n color: '#5C6F82',\n trailColor: '#D9DADB',\n // This has to be the same size as the maximum width to\n // prevent clipping\n strokeWidth: 24,\n trailWidth: 12,\n easing: 'easeInOut',\n duration: 1400,\n text: {\n autoStyleContainer: false,\n },\n animate: true,\n value: 0,\n //from: { color: '#aaa', width: 1 },\n //to: { color: '#333', width: 4 },\n}\n\nclass ProgressDonut extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._bar = null\n\n this._init()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n set(progess) {\n if (this._config.animate) {\n this._bar.animate(progess)\n } else {\n this._bar.set(progess)\n }\n }\n\n dispose() {\n this._bar.destroy()\n\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...{ step: this._getStepCallback() },\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n //config.value = parseFloat(config.value)\n return config\n }\n\n _getStepCallback() {\n return (state, circle) => {\n //circle.path.setAttribute('stroke', state.color)\n //circle.path.setAttribute('stroke-width', state.width)\n\n const value = Math.round(circle.value() * 100)\n circle.setText(value + '%')\n /*if (value === 0) {\n circle.setText('')\n } else {\n circle.setText(value)\n }*/\n }\n }\n\n _init() {\n this._bar = new ProgressBar.Circle(this._element, this._config)\n\n if (this._config.value > 0) {\n this.set(this._config.value)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nSelectorEngine.find(SELECTOR_DONUT).forEach((donut) => {\n ProgressDonut.getOrCreateInstance(donut)\n})\n\nexport default ProgressDonut\n"],"names":[],"mappings":"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"}
|
package/dist/plugins/tab.js
CHANGED
|
@@ -1,6 +1,87 @@
|
|
|
1
1
|
import BSTab from 'bootstrap/js/src/tab';
|
|
2
|
+
import { isDisabled, defineJQueryPlugin, getNextActiveElement } from 'bootstrap/js/src/util/index.js';
|
|
3
|
+
import EventHandler from 'bootstrap/js/src/dom/event-handler.js';
|
|
4
|
+
import SelectorEngine from 'bootstrap/js/src/dom/selector-engine.js';
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
const DATA_KEY = 'bs.tab';
|
|
7
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
|
8
|
+
|
|
9
|
+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}`;
|
|
10
|
+
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}`;
|
|
11
|
+
|
|
12
|
+
const ARROW_LEFT_KEY = 'ArrowLeft';
|
|
13
|
+
const ARROW_RIGHT_KEY = 'ArrowRight';
|
|
14
|
+
const ARROW_UP_KEY = 'ArrowUp';
|
|
15
|
+
const ARROW_DOWN_KEY = 'ArrowDown';
|
|
16
|
+
const ENTER_KEY = 'Enter';
|
|
17
|
+
const SPACE_BAR_KEY = ' ';
|
|
18
|
+
|
|
19
|
+
const CLASS_NAME_ACTIVE = 'active';
|
|
20
|
+
|
|
21
|
+
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // todo:v6: could be only `tab`
|
|
22
|
+
|
|
23
|
+
const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
|
|
24
|
+
|
|
25
|
+
class Tab extends BSTab {
|
|
26
|
+
constructor(element) {
|
|
27
|
+
super(element);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_keydown(event) {
|
|
31
|
+
if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, ENTER_KEY, SPACE_BAR_KEY].includes(event.key)) {
|
|
32
|
+
return
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
|
|
38
|
+
if (event.key === ENTER_KEY || event.key === SPACE_BAR_KEY) {
|
|
39
|
+
Tab.getOrCreateInstance(event.target).show();
|
|
40
|
+
return
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
|
|
44
|
+
const nextActiveElement = getNextActiveElement(
|
|
45
|
+
this._getChildren().filter((element) => !isDisabled(element)),
|
|
46
|
+
event.target,
|
|
47
|
+
isNext,
|
|
48
|
+
true
|
|
49
|
+
);
|
|
50
|
+
if (nextActiveElement) {
|
|
51
|
+
nextActiveElement.focus({ preventScroll: true });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
57
|
+
if (['A', 'AREA'].includes(this.tagName)) {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (isDisabled(this)) {
|
|
62
|
+
return
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const t = Tab.getOrCreateInstance(this);
|
|
66
|
+
t.dispose();
|
|
67
|
+
Tab.getOrCreateInstance(this).show();
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Initialize on focus
|
|
72
|
+
*/
|
|
73
|
+
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
|
|
74
|
+
for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
|
|
75
|
+
const t = Tab.getOrCreateInstance(element);
|
|
76
|
+
t.dispose();
|
|
77
|
+
Tab.getOrCreateInstance(element);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
/**
|
|
81
|
+
* jQuery
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
defineJQueryPlugin(Tab);
|
|
4
85
|
|
|
5
86
|
export { Tab as default };
|
|
6
87
|
//# sourceMappingURL=tab.js.map
|
package/dist/plugins/tab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.js","sources":["../../src/js/plugins/tab.js"],"sourcesContent":["import { default as BSTab } from 'bootstrap/js/src/tab'\n\nclass Tab extends BSTab {}\n\nexport default Tab\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tab.js","sources":["../../src/js/plugins/tab.js"],"sourcesContent":["import { default as BSTab } from 'bootstrap/js/src/tab'\nimport { defineJQueryPlugin, getNextActiveElement, isDisabled } from 'bootstrap/js/src/util/index.js'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler.js'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine.js'\n\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst ENTER_KEY = 'Enter'\nconst SPACE_BAR_KEY = ' '\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]' // todo:v6: could be only `tab`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`\n\nclass Tab extends BSTab {\n constructor(element) {\n super(element)\n }\n\n _keydown(event) {\n if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, ENTER_KEY, SPACE_BAR_KEY].includes(event.key)) {\n return\n }\n\n event.stopPropagation() // stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n if (event.key === ENTER_KEY || event.key === SPACE_BAR_KEY) {\n Tab.getOrCreateInstance(event.target).show()\n return\n }\n\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n const nextActiveElement = getNextActiveElement(\n this._getChildren().filter((element) => !isDisabled(element)),\n event.target,\n isNext,\n true\n )\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n }\n }\n}\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const t = Tab.getOrCreateInstance(this)\n t.dispose()\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n const t = Tab.getOrCreateInstance(element)\n t.dispose()\n Tab.getOrCreateInstance(element)\n }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n"],"names":[],"mappings":"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"}
|