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.
Files changed (115) hide show
  1. package/README.EN.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/css/bootstrap-italia-comuni.min.css +1 -1
  4. package/dist/css/bootstrap-italia.min.css +1 -1
  5. package/dist/css/bootstrap-italia.min.css.map +1 -1
  6. package/dist/js/bootstrap-italia.bundle.min.js +253 -189
  7. package/dist/js/bootstrap-italia.min.js +256 -0
  8. package/dist/plugins/input-label.js +4 -1
  9. package/dist/plugins/input-label.js.map +1 -1
  10. package/dist/plugins/notification.js +1 -23
  11. package/dist/plugins/notification.js.map +1 -1
  12. package/dist/plugins/progress-donut.js +2 -2
  13. package/dist/plugins/progress-donut.js.map +1 -1
  14. package/dist/plugins/tab.js +82 -1
  15. package/dist/plugins/tab.js.map +1 -1
  16. package/dist/svg/sprites.svg +1 -1
  17. package/dist/version.js +1 -1
  18. package/dist/version.js.map +1 -1
  19. package/package.json +6 -4
  20. package/src/js/bootstrap-italia.entry.js +14 -1
  21. package/src/js/icons.js +2 -0
  22. package/src/js/plugins/input-label.js +4 -1
  23. package/src/js/plugins/notification.js +1 -32
  24. package/src/js/plugins/progress-donut.js +2 -2
  25. package/src/js/plugins/tab.js +82 -1
  26. package/src/js/version.js +1 -1
  27. package/src/scss/_variables.scss +66 -57
  28. package/src/scss/bootstrap-italia-comuni.scss +40 -39
  29. package/src/scss/bootstrap-italia.scss +39 -38
  30. package/src/scss/custom/_accordion.scss +5 -5
  31. package/src/scss/custom/_alert.scss +3 -3
  32. package/src/scss/custom/_autocomplete.scss +2 -2
  33. package/src/scss/custom/_avatar.scss +5 -5
  34. package/src/scss/custom/_back-to-top.scss +2 -2
  35. package/src/scss/custom/_bottomnav.scss +2 -2
  36. package/src/scss/custom/_breadcrumb.scss +2 -0
  37. package/src/scss/custom/_buttons.scss +13 -8
  38. package/src/scss/custom/_calendar.scss +2 -2
  39. package/src/scss/custom/_callout.scss +25 -25
  40. package/src/scss/custom/_card.scss +1 -1
  41. package/src/scss/custom/_carousel.scss +3 -4
  42. package/src/scss/custom/_chips.scss +4 -4
  43. package/src/scss/custom/_cookiebar.scss +1 -1
  44. package/src/scss/custom/_dimmer.scss +5 -5
  45. package/src/scss/custom/_dropdown.scss +6 -6
  46. package/src/scss/custom/_footer.scss +2 -2
  47. package/src/scss/custom/_form-datepicker.scss +2 -6
  48. package/src/scss/custom/_form-input-file.scss +2 -2
  49. package/src/scss/custom/_form-input-number.scss +13 -13
  50. package/src/scss/custom/_form-password.scss +1 -1
  51. package/src/scss/custom/_form-select.scss +3 -3
  52. package/src/scss/custom/_forms.scss +19 -17
  53. package/src/scss/custom/_just-validate.scss +7 -0
  54. package/src/scss/custom/_linklist.scss +13 -13
  55. package/src/scss/custom/_list.scss +5 -5
  56. package/src/scss/custom/_masonry-loader.scss +1 -1
  57. package/src/scss/custom/_megamenu.scss +12 -12
  58. package/src/scss/custom/_modal.scss +1 -1
  59. package/src/scss/custom/_notifications.scss +6 -6
  60. package/src/scss/custom/_point-list.scss +0 -2
  61. package/src/scss/custom/_popover.scss +2 -2
  62. package/src/scss/custom/_progress-bars.scss +3 -4
  63. package/src/scss/custom/_progress-donuts.scss +3 -3
  64. package/src/scss/custom/_progress-spinners.scss +4 -4
  65. package/src/scss/custom/_sections.scss +3 -2
  66. package/src/scss/custom/_sidebar.scss +2 -2
  67. package/src/scss/custom/_steppers.scss +82 -57
  68. package/src/scss/custom/_tab.scss +23 -19
  69. package/src/scss/custom/_timeline.scss +9 -11
  70. package/src/scss/custom/_toolbar.scss +12 -12
  71. package/src/scss/custom/_tooltip.scss +1 -1
  72. package/src/scss/custom/_version.scss +1 -1
  73. package/src/scss/utilities/colors_vars.scss +64 -28
  74. package/src/svg/it-mastodon-square.svg +3 -0
  75. package/src/svg/it-mastodon.svg +3 -0
  76. package/types/index.d.ts +80 -0
  77. package/types/plugins/accordion.d.ts +39 -0
  78. package/types/plugins/alert.d.ts +20 -0
  79. package/types/plugins/backToTop.d.ts +77 -0
  80. package/types/plugins/button.d.ts +17 -0
  81. package/types/plugins/carousel-bi.d.ts +59 -0
  82. package/types/plugins/carousel.d.ts +19 -0
  83. package/types/plugins/collapse.d.ts +19 -0
  84. package/types/plugins/cookiebar.d.ts +59 -0
  85. package/types/plugins/dimmer.d.ts +34 -0
  86. package/types/plugins/dropdown.d.ts +20 -0
  87. package/types/plugins/form-validate.d.ts +53 -0
  88. package/types/plugins/form.d.ts +30 -0
  89. package/types/plugins/forward.d.ts +49 -0
  90. package/types/plugins/header-sticky.d.ts +24 -0
  91. package/types/plugins/history-back.d.ts +24 -0
  92. package/types/plugins/input-label.d.ts +25 -0
  93. package/types/plugins/input-number.d.ts +35 -0
  94. package/types/plugins/input-password.d.ts +128 -0
  95. package/types/plugins/input-search-autocomplete.d.ts +54 -0
  96. package/types/plugins/input.d.ts +26 -0
  97. package/types/plugins/list.d.ts +25 -0
  98. package/types/plugins/masonry.d.ts +59 -0
  99. package/types/plugins/modal.d.ts +20 -0
  100. package/types/plugins/navbar-collapsible.d.ts +77 -0
  101. package/types/plugins/navscroll.d.ts +85 -0
  102. package/types/plugins/notification.d.ts +92 -0
  103. package/types/plugins/offcanvas.d.ts +19 -0
  104. package/types/plugins/popover.d.ts +19 -0
  105. package/types/plugins/progress-donut.d.ts +89 -0
  106. package/types/plugins/scrollspy.d.ts +19 -0
  107. package/types/plugins/select-autocomplete.d.ts +57 -0
  108. package/types/plugins/sticky.d.ts +97 -0
  109. package/types/plugins/tab.d.ts +17 -0
  110. package/types/plugins/toast.d.ts +19 -0
  111. package/types/plugins/tooltip.d.ts +19 -0
  112. package/types/plugins/track-focus.d.ts +7 -0
  113. package/types/plugins/transfer.d.ts +52 -0
  114. package/types/plugins/upload-dragdrop.d.ts +44 -0
  115. 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 this._bindEvents()\n }\n }\n\n _bindEvents() {\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":";;;AAGA,MAAM,IAAI,GAAG,aAAY;AACzB,MAAM,QAAQ,GAAG,gBAAe;AAChC,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAC;AAChC;AACA;AACA,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAC;AACvC,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAAC;AACrC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAC;AACzC;AACA,MAAM,iBAAiB,GAAG,SAAQ;AAClC;AACA,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAO;AAC3B;AACA,IAAI,IAAI,CAAC,KAAK,GAAE;AAChB,GAAG;AACH;AACA;AACA;AACA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA,EAAE,OAAO,iBAAiB,GAAG,CAAC,YAAY,KAAK;AAC/C,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACzE,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,KAAK,GAAG;AACV,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAE;AAClC,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC/D;AACA,MAAM,IAAI,CAAC,SAAS,GAAE;AACtB,MAAM,IAAI,CAAC,UAAU,GAAE;AACvB,MAAM,IAAI,CAAC,WAAW,GAAE;AACxB,KAAK;AACL,GAAG;AACH;AACA,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;AACvD,MAAM,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM;AACvD,QAAQ,IAAI,CAAC,SAAS,GAAE;AACxB,OAAO,EAAC;AACR,KAAK,MAAM;AACX,MAAM,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM;AACxD,QAAQ,IAAI,CAAC,SAAS,GAAE;AACxB,OAAO,EAAC;AACR,MAAM,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM;AACvD,QAAQ,IAAI,CAAC,UAAU,GAAE;AACzB,OAAO,EAAC;AACR,MAAM,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM;AACzD,QAAQ,IAAI,CAAC,YAAY,GAAE;AAC3B,OAAO,EAAC;AACR,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,GAAG;AACd,IAAI,OAAO,cAAc,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC1F,GAAG;AACH;AACA,EAAE,QAAQ,GAAG;AACb,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC;AAC7E,GAAG;AACH;AACA,EAAE,SAAS,GAAG;AACd,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAE;AAClC,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACzB,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAE;AACpC,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAC;AACjD,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC1B,MAAM,IAAI,CAAC,SAAS,GAAE;AACtB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,UAAU,GAAE;AACvB,KAAK;AACL,GAAG;AACH;;;;"}
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, typeCheckConfig } from 'bootstrap/js/src/util';
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: '#0073E6',
15
- trailColor: '#D4E9FF',
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: '#0073E6',\n trailColor: '#D4E9FF',\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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"}
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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"}
@@ -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
- class Tab extends BSTab {}
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
@@ -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":";;AAEA,MAAM,GAAG,SAAS,KAAK,CAAC;;;;"}
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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"}