bootstrap-italia 2.11.2 → 2.12.0
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/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 +17 -510
- package/dist/js/bootstrap-italia.min.js +3 -234
- package/dist/plugins/accept-overlay.js.map +1 -1
- package/dist/plugins/accordion.js.map +1 -1
- package/dist/plugins/backToTop.js.map +1 -1
- package/dist/plugins/carousel-bi.js.map +1 -1
- package/dist/plugins/cookiebar.js.map +1 -1
- package/dist/plugins/dimmer.js.map +1 -1
- package/dist/plugins/fonts-loader.js.map +1 -1
- package/dist/plugins/form-validate.js.map +1 -1
- package/dist/plugins/forward.js.map +1 -1
- package/dist/plugins/header-sticky.js +0 -1
- package/dist/plugins/header-sticky.js.map +1 -1
- package/dist/plugins/history-back.js.map +1 -1
- package/dist/plugins/init.js.map +1 -1
- package/dist/plugins/input-label.js.map +1 -1
- package/dist/plugins/input-number.js.map +1 -1
- package/dist/plugins/input-password.js.map +1 -1
- package/dist/plugins/input-search-autocomplete.js +1 -0
- package/dist/plugins/input-search-autocomplete.js.map +1 -1
- package/dist/plugins/input.js.map +1 -1
- package/dist/plugins/list.js.map +1 -1
- package/dist/plugins/masonry.js.map +1 -1
- package/dist/plugins/navbar-collapsible.js.map +1 -1
- package/dist/plugins/navscroll.js.map +1 -1
- package/dist/plugins/notification.js.map +1 -1
- package/dist/plugins/progress-donut.js.map +1 -1
- package/dist/plugins/select-autocomplete.js.map +1 -1
- package/dist/plugins/sticky.js.map +1 -1
- package/dist/plugins/tab.js.map +1 -1
- package/dist/plugins/track-focus.js.map +1 -1
- package/dist/plugins/transfer.js.map +1 -1
- package/dist/plugins/upload-dragdrop.js.map +1 -1
- package/dist/plugins/util/cookies.js.map +1 -1
- package/dist/plugins/util/device.js.map +1 -1
- package/dist/plugins/util/dom.js.map +1 -1
- package/dist/plugins/util/observer.js +2 -2
- package/dist/plugins/util/observer.js.map +1 -1
- package/dist/plugins/util/on-document-scroll.js.map +1 -1
- package/dist/plugins/util/pageScroll.js.map +1 -1
- package/dist/plugins/util/tween.js.map +1 -1
- package/dist/plugins/util/youtube-video.js.map +1 -1
- package/dist/plugins/videoplayer.js.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +24 -22
- package/src/js/plugins/header-sticky.js +0 -1
- package/src/js/plugins/util/observer.js +2 -2
- package/src/js/version.js +2 -2
- package/src/scss/_variables.scss +3 -4
- package/src/scss/custom/_back-to-top.scss +10 -2
- package/src/scss/custom/_badge.scss +5 -1
- package/src/scss/custom/_buttons.scss +2 -20
- package/src/scss/custom/_card.scss +15 -5
- package/src/scss/custom/_carousel.scss +6 -0
- package/src/scss/custom/_chips.scss +6 -9
- package/src/scss/custom/_form-datepicker.scss +0 -1
- package/src/scss/custom/_form-input-file.scss +0 -1
- package/src/scss/custom/_form-input-upload.scss +4 -10
- package/src/scss/custom/_form-toggles.scss +4 -1
- package/src/scss/custom/_forms.scss +24 -14
- package/src/scss/custom/_navscroll.scss +6 -2
- package/src/scss/custom/_version.scss +1 -1
- package/src/scss/custom/mixins/_buttons.scss +11 -42
- package/src/scss/utilities/colors_vars.scss +1 -0
- package/src/scss/utilities/focus.scss +76 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-number.js","sources":["../../src/js/plugins/input-number.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport InputLabel from './input-label'\n\nconst NAME = 'inputnumber'\nconst DATA_KEY = 'bs.inputnumber'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_INPUT = `input`\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ADAPTIVE = 'input-number-adaptive'\nconst CLASS_NAME_DECREMENT = 'input-number-sub'\n\nconst SELECTOR_WRAPPER = '.input-number'\nconst SELECTOR_INPUT = 'input[data-bs-input][type=\"number\"]'\nconst SELECTOR_BTN = 'button[class^=\"input-number-\"]'\n\nclass InputNumber extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._wrapperElement = this._element.closest(SELECTOR_WRAPPER)\n\n this._label = new InputLabel(element)\n\n this._init()\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n // Private\n _init() {\n if (this._wrapperElement) {\n this._inputResize()\n }\n }\n\n _bindEvents() {\n if (this._wrapperElement) {\n SelectorEngine.find(SELECTOR_BTN, this._wrapperElement).forEach((btn) => {\n EventHandler.on(btn, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this._incrDecr(btn.classList.contains(CLASS_NAME_DECREMENT))\n this._label._labelOut()\n })\n })\n\n EventHandler.on(this._element, EVENT_CHANGE, () => this._checkLimit())\n }\n }\n\n _inputResize() {\n if (this._wrapperElement.classList.contains(CLASS_NAME_ADAPTIVE)) {\n let newWidth = null\n newWidth = 'calc(70px + ' + this._element.value.length + 'ch)'\n\n if (newWidth) {\n this._element.style.width = newWidth\n }\n }\n }\n\n _incrDecr(isDecr) {\n var inputVal = 0\n if (this._element.value !== '') inputVal = parseFloat(this._element.value)\n\n if (!isNaN(inputVal)) {\n //get step\n let step = parseFloat(this._element.getAttribute('step'))\n if (!step) {\n step = 1\n }\n\n this._element.value = inputVal + step * (isDecr ? -1 : 1)\n EventHandler.trigger(this._element, EVENT_CHANGE)\n EventHandler.trigger(this._element, EVENT_INPUT)\n }\n }\n\n _checkLimit() {\n const inputVal = parseFloat(this._element.value)\n\n if (!isNaN(inputVal)) {\n let val = inputVal\n const max = parseFloat(this._element.getAttribute('max'))\n const min = parseFloat(this._element.getAttribute('min'))\n\n if (min && inputVal < min) {\n val = min\n }\n //limit max\n if (max && inputVal > max) {\n val = max\n }\n\n this._element.value = val\n }\n\n this._inputResize()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst createInput = (element) => {\n if (element && element.matches(SELECTOR_INPUT) && element.parentNode.querySelector(SELECTOR_BTN)) {\n return InputNumber.getOrCreateInstance(element)\n }\n return null\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('DOMContentLoaded', function () {\n var frmel = document.querySelectorAll(SELECTOR_INPUT + ', label')\n frmel.forEach(function (item) {\n const target = InputLabel.getInputFromLabel(item) || item\n createInput(target)\n })\n })\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BTN, function () {\n const wrapper = this.closest(SELECTOR_WRAPPER)\n if (wrapper) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, wrapper)\n if (input) {\n InputNumber.getOrCreateInstance(input)\n }\n }\n })\n}\n\nexport default InputNumber\n"],"names":[],"mappings":";;;;;AAMA,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"input-number.js","sources":["../../src/js/plugins/input-number.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport InputLabel from './input-label'\n\nconst NAME = 'inputnumber'\nconst DATA_KEY = 'bs.inputnumber'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_INPUT = `input`\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ADAPTIVE = 'input-number-adaptive'\nconst CLASS_NAME_DECREMENT = 'input-number-sub'\n\nconst SELECTOR_WRAPPER = '.input-number'\nconst SELECTOR_INPUT = 'input[data-bs-input][type=\"number\"]'\nconst SELECTOR_BTN = 'button[class^=\"input-number-\"]'\n\nclass InputNumber extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._wrapperElement = this._element.closest(SELECTOR_WRAPPER)\n\n this._label = new InputLabel(element)\n\n this._init()\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n // Private\n _init() {\n if (this._wrapperElement) {\n this._inputResize()\n }\n }\n\n _bindEvents() {\n if (this._wrapperElement) {\n SelectorEngine.find(SELECTOR_BTN, this._wrapperElement).forEach((btn) => {\n EventHandler.on(btn, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this._incrDecr(btn.classList.contains(CLASS_NAME_DECREMENT))\n this._label._labelOut()\n })\n })\n\n EventHandler.on(this._element, EVENT_CHANGE, () => this._checkLimit())\n }\n }\n\n _inputResize() {\n if (this._wrapperElement.classList.contains(CLASS_NAME_ADAPTIVE)) {\n let newWidth = null\n newWidth = 'calc(70px + ' + this._element.value.length + 'ch)'\n\n if (newWidth) {\n this._element.style.width = newWidth\n }\n }\n }\n\n _incrDecr(isDecr) {\n var inputVal = 0\n if (this._element.value !== '') inputVal = parseFloat(this._element.value)\n\n if (!isNaN(inputVal)) {\n //get step\n let step = parseFloat(this._element.getAttribute('step'))\n if (!step) {\n step = 1\n }\n\n this._element.value = inputVal + step * (isDecr ? -1 : 1)\n EventHandler.trigger(this._element, EVENT_CHANGE)\n EventHandler.trigger(this._element, EVENT_INPUT)\n }\n }\n\n _checkLimit() {\n const inputVal = parseFloat(this._element.value)\n\n if (!isNaN(inputVal)) {\n let val = inputVal\n const max = parseFloat(this._element.getAttribute('max'))\n const min = parseFloat(this._element.getAttribute('min'))\n\n if (min && inputVal < min) {\n val = min\n }\n //limit max\n if (max && inputVal > max) {\n val = max\n }\n\n this._element.value = val\n }\n\n this._inputResize()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst createInput = (element) => {\n if (element && element.matches(SELECTOR_INPUT) && element.parentNode.querySelector(SELECTOR_BTN)) {\n return InputNumber.getOrCreateInstance(element)\n }\n return null\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('DOMContentLoaded', function () {\n var frmel = document.querySelectorAll(SELECTOR_INPUT + ', label')\n frmel.forEach(function (item) {\n const target = InputLabel.getInputFromLabel(item) || item\n createInput(target)\n })\n })\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BTN, function () {\n const wrapper = this.closest(SELECTOR_WRAPPER)\n if (wrapper) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, wrapper)\n if (input) {\n InputNumber.getOrCreateInstance(input)\n }\n }\n })\n}\n\nexport default InputNumber\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-password.js","sources":["../../src/js/plugins/input-password.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component'\nimport 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\nimport InputLabel from './input-label'\n\nconst NAME = 'inputpassword'\nconst DATA_KEY = 'bs.inputpassword'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n shortPass: 'Password troppo breve',\n badPass: 'Password debole.',\n goodPass: 'Password abbastanza sicura.',\n strongPass: 'Password sicura.',\n minimumLength: 8,\n suggestionsLabel: 'Suggerimenti per una buona password:',\n suggestionFollowed: 'suggerimenti seguito',\n suggestionFollowedPlural: 'suggerimenti seguiti',\n suggestionOf: 'di',\n suggestionMetLabel: 'Soddisfatto: ',\n suggestionMetIconPath: `\n M9.6 16.9 4 11.4l.8-.7 4.8 4.8 8.5-8.4.7.7-9.2 9.1z\n `,\n suggestionLength: 'Almeno {minLength} caratteri.',\n suggestionUppercase: 'Una o più maiuscole.',\n suggestionLowercase: 'Una o più minuscole.',\n suggestionNumber: 'Uno o più numeri.',\n suggestionSpecial: 'Uno o più caratteri speciali.',\n}\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_KEYUP = `keyup${EVENT_KEY}`\nconst EVENT_SCORE = `score${EVENT_KEY}`\nconst EVENT_TEXT = `text${EVENT_KEY}`\nconst EVENT_SUGGS = `suggs${EVENT_KEY}`\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_MOUSEDOWN_DATA_API = `mousedown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_PASSWORD = 'input-password'\n\nconst SELECTOR_PASSWORD = 'input[data-bs-input][type=\"password\"]'\nconst SELECTOR_BTN_SHOW_PWD = '.password-icon'\nconst SELECTOR_METER = '.password-strength-meter'\nconst SELECTOR_METER_GRAYBAR = '.password-meter'\nconst SELECTOR_METER_COLBAR = '.progress-bar'\nconst SELECTOR_METER_TEXT = '.strength-meter-info'\nconst SELECTOR_METER_SUGGS = '.strenght-meter-suggestions'\n\nclass InputPassword extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isCustom = this._element.classList.contains(CLASS_NAME_PASSWORD)\n this._meter = this._element.parentNode.querySelector(SELECTOR_METER)\n\n this._grayBarElement = null\n this._colorBarElement = null\n this._textElement = null\n this._suggsElement = null\n this._showPwdElement = null\n\n this._text = {}\n\n this._label = new InputLabel(element)\n\n this._suggestions = [\n {\n key: 'length',\n text: (config) => config.suggestionLength.replace('{minLength}', config.minimumLength.toString()),\n test: (password, config) => password.length >= config.minimumLength,\n },\n {\n key: 'uppercase',\n text: (config) => config.suggestionUppercase,\n test: (password) => /[A-Z]/.test(password),\n },\n {\n key: 'lowercase',\n text: (config) => config.suggestionLowercase,\n test: (password) => /[a-z]/.test(password),\n },\n {\n key: 'number',\n text: (config) => config.suggestionNumber,\n test: (password) => /[0-9]/.test(password),\n },\n {\n key: 'special',\n text: (config) => config.suggestionSpecial,\n test: (password) => /[^A-Za-z0-9]/.test(password),\n },\n ]\n\n this._init()\n this._bindEvents()\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _init() {\n if (this._isCustom) {\n this._handleAutofill()\n this._showPwdElement = SelectorEngine.findOne(SELECTOR_BTN_SHOW_PWD, this._element.parentNode)\n if (this._meter) {\n this._grayBarElement = this._meter.querySelector(SELECTOR_METER_GRAYBAR)\n this._colorBarElement = this._meter.querySelector(SELECTOR_METER_COLBAR)\n this._textElement = this._meter.querySelector(SELECTOR_METER_TEXT)\n this._suggsElement = this._meter.querySelector(SELECTOR_METER_SUGGS)\n if (this._textElement) {\n this._config = Object.assign({}, this._config, { ...Manipulator.getDataAttributes(this._textElement) })\n }\n if (this._suggsElement) {\n this._createsuggestionsList()\n }\n }\n }\n }\n\n _bindEvents() {\n if (this._isCustom) {\n if (this._showPwdElement) {\n EventHandler.on(this._showPwdElement, EVENT_CLICK, () => this._toggleShowPassword())\n }\n if (this._meter) {\n EventHandler.on(this._element, EVENT_KEYUP, () => this._checkPassword())\n EventHandler.on(this._element, 'input', () => this._checkPassword())\n }\n }\n }\n\n _handleAutofill() {\n const checkAndActivate = () => {\n if (this._element.value !== '') {\n this._label._labelOut()\n this._checkPassword()\n }\n }\n checkAndActivate()\n setTimeout(checkAndActivate, 100)\n EventHandler.on(this._element, 'animationstart', (event) => {\n if (event.animationName === 'onAutoFillStart') {\n checkAndActivate()\n }\n })\n }\n\n _toggleShowPassword() {\n const toShow = this._element.getAttribute('type') === 'password'\n SelectorEngine.find('[class^=\"password-icon\"]', this._showPwdElement).forEach((icon) => icon.classList.toggle('d-none'))\n this._element.setAttribute('type', toShow ? 'text' : 'password')\n this._showPwdElement.setAttribute('aria-checked', toShow.toString())\n }\n\n _checkPassword() {\n const password = this._element.value\n const score = this._calculateScore(password)\n this._updateMeter(score)\n this._updateText(score, password)\n this._updateSuggestions(password)\n }\n\n _updateMeter(score) {\n const perc = score < 0 ? 0 : score\n if (this._colorBarElement) {\n this._colorBarElement.classList.forEach((className) => {\n if (className.match(/(^|\\s)bg-\\S+/g)) {\n this._colorBarElement.classList.remove(className)\n }\n })\n this._colorBarElement.classList.add(`bg-${this._scoreColor(score)}`)\n this._colorBarElement.style.width = `${perc}%`\n this._colorBarElement.setAttribute('aria-valuenow', perc)\n }\n EventHandler.trigger(this._element, EVENT_SCORE)\n }\n\n _updateText(score, password) {\n if (this._textElement) {\n let text = this._scoreText(score)\n if (this._suggsElement) {\n const { completedCount, totalCount } = this._getCompletedSuggestions(password)\n const suggestionText = completedCount === 1 ? this._config.suggestionFollowed : this._config.suggestionFollowedPlural\n text += ` ${completedCount} ${this._config.suggestionOf} ${totalCount} ${suggestionText}.`\n }\n if (this._textElement.textContent !== text) {\n this._textElement.textContent = text\n this._textElement.classList.forEach((className) => {\n if (className.match(/(^|\\s)text-\\S+/g)) {\n this._textElement.classList.remove(className)\n }\n })\n this._textElement.classList.add(`text-${this._scoreColor(score)}`)\n EventHandler.trigger(this._element, EVENT_TEXT)\n }\n }\n }\n\n _updateSuggestions(password) {\n if (this._suggsElement) {\n this._updateSuggestionsList(password)\n EventHandler.trigger(this._element, EVENT_SUGGS)\n }\n }\n\n _getCompletedSuggestions(password) {\n let completedCount = 0\n const totalCount = this._suggestions.length\n this._suggestions.forEach((sugg) => {\n if (sugg.test(password, this._config)) completedCount++\n })\n return { completedCount, totalCount }\n }\n\n _createsuggestionsList() {\n if (this._suggsElement.querySelector('.password-suggestions')) {\n return\n }\n const suggLabel = document.createElement('label')\n suggLabel.className = 'visually-hidden'\n suggLabel.htmlFor = 'suggestions'\n suggLabel.textContent = Default.suggestionsLabel\n const suggContainer = document.createElement('div')\n suggContainer.id = 'suggestions'\n suggContainer.className = 'password-suggestions'\n\n this._suggestions.forEach((sugg) => {\n const suggElement = document.createElement('div')\n suggElement.className = 'suggestion'\n suggElement.dataset.suggestion = sugg.key\n const checkIcon = this._createIconCheck()\n const textSpan = document.createElement('span')\n textSpan.textContent = sugg.text(this._config)\n suggElement.appendChild(checkIcon)\n suggElement.appendChild(textSpan)\n suggContainer.appendChild(suggElement)\n })\n\n this._suggsElement.appendChild(suggLabel)\n this._suggsElement.appendChild(suggContainer)\n }\n\n _createIconCheck() {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n svg.setAttribute('class', `icon icon-xs me-1 d-none`)\n svg.setAttribute('aria-label', this._config.suggestionMetLabel)\n svg.setAttribute('viewBox', '0 0 24 24')\n svg.style.width = '1em'\n svg.style.height = '1em'\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n path.setAttribute('d', this._config.suggestionMetIconPath.trim())\n svg.appendChild(path)\n return svg\n }\n\n _updateSuggestionsList(password) {\n if (!this._suggsElement) return\n this._suggestions.forEach((sugg) => {\n const suggElement = this._suggsElement.querySelector(`[data-suggestion=\"${sugg.key}\"]`)\n if (suggElement) {\n const isMet = sugg.test(password, this._config)\n const checkIcon = suggElement.querySelector('.icon')\n if (checkIcon) {\n checkIcon.classList.toggle('d-none', !isMet)\n }\n }\n })\n }\n\n /**\n * Returns strings based on the score given.\n *\n * @param int score Score base.\n * @return string\n */\n _scoreText(score) {\n if (score === -1) {\n return this._config.shortPass\n }\n\n if (score === -2) {\n return ''\n }\n\n score = score < 0 ? 0 : score\n\n if (score < 26) {\n return this._config.badPass\n }\n if (score < 51) {\n return this._config.badPass\n }\n if (score < 76) {\n return this._config.goodPass\n }\n\n return this._config.strongPass\n }\n\n _scoreColor(score) {\n if (score === -1 || score === -2 || score < 26) {\n return 'danger'\n }\n if (score < 51) {\n return 'warning'\n }\n if (score < 76) {\n return 'success'\n }\n return 'success'\n }\n\n /**\n * Returns a value between -1 and 100 to score\n * the user's password.\n *\n * @param string password The password to be checked.\n * @return int\n */\n _calculateScore(password) {\n var score = 0\n\n // empty password\n if (password.trim().length === 0) {\n return -2\n }\n\n // password < this._config.minimumLength\n if (password.length < this._config.minimumLength) {\n return -1\n }\n\n // password length\n score += password.length * 4\n score += this._checkRepetition(1, password).length - password.length\n score += this._checkRepetition(2, password).length - password.length\n score += this._checkRepetition(3, password).length - password.length\n score += this._checkRepetition(4, password).length - password.length\n\n // password has 3 numbers\n if (password.match(/(.*[0-9].*[0-9].*[0-9])/)) {\n score += 5\n }\n\n // password has at least 2 symbols\n var symbols = '.*[!,@,#,$,%,^,&,*,?,_,~]'\n symbols = new RegExp('(' + symbols + symbols + ')')\n if (password.match(symbols)) {\n score += 5\n }\n\n // password has Upper and Lower chars\n if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) {\n score += 10\n }\n\n // password has number and chars\n if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/)) {\n score += 15\n }\n\n // password has number and symbol\n if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([0-9])/)) {\n score += 15\n }\n\n // password has char and symbol\n if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([a-zA-Z])/)) {\n score += 15\n }\n\n // password is just numbers or chars\n if (password.match(/^\\w+$/) || password.match(/^\\d+$/)) {\n score -= 10\n }\n\n if (score > 100) {\n score = 100\n }\n\n if (score < 0) {\n score = 0\n }\n\n return score\n }\n\n /**\n * Checks for repetition of characters in\n * a string\n *\n * @param int rLen Repetition length.\n * @param string str The string to be checked.\n * @return string\n */\n _checkRepetition(rLen, str) {\n var res = '',\n repeated = false\n for (var i = 0; i < str.length; i++) {\n repeated = true\n for (var j = 0; j < rLen && j + i + rLen < str.length; j++) {\n repeated = repeated && str.charAt(j + i) === str.charAt(j + i + rLen)\n }\n if (j < rLen) {\n repeated = false\n }\n if (repeated) {\n i += rLen - 1\n repeated = false\n } else {\n res += str.charAt(i)\n }\n }\n return res\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst createInput = (element) => {\n if (element && element.matches(SELECTOR_PASSWORD)) {\n return InputPassword.getOrCreateInstance(element)\n }\n return null\n}\n\nconst initInputPassword = () => {\n const element = SelectorEngine.findOne(SELECTOR_PASSWORD)\n if (element) {\n InputPassword.getOrCreateInstance(element)\n }\n}\n\nif (document.readyState !== 'loading') {\n initInputPassword()\n} else {\n document.addEventListener('DOMContentLoaded', initInputPassword)\n}\n\nEventHandler.on(document, EVENT_MOUSEDOWN_DATA_API, SELECTOR_PASSWORD + ', label', function () {\n const target = InputLabel.getInputFromLabel(this) || this\n createInput(target)\n})\nEventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_PASSWORD + ', label', function () {\n const target = InputLabel.getInputFromLabel(this) || this\n const element = createInput(target)\n if (element && element._label) {\n element._label._labelOut()\n }\n})\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BTN_SHOW_PWD, function () {\n const target = this.parentNode && this.parentNode.querySelector(SELECTOR_PASSWORD)\n if (target) {\n InputPassword.getOrCreateInstance(target)\n }\n})\n\nexport default InputPassword\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input-password.js","sources":["../../src/js/plugins/input-password.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component'\nimport 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\nimport InputLabel from './input-label'\n\nconst NAME = 'inputpassword'\nconst DATA_KEY = 'bs.inputpassword'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n shortPass: 'Password troppo breve',\n badPass: 'Password debole.',\n goodPass: 'Password abbastanza sicura.',\n strongPass: 'Password sicura.',\n minimumLength: 8,\n suggestionsLabel: 'Suggerimenti per una buona password:',\n suggestionFollowed: 'suggerimenti seguito',\n suggestionFollowedPlural: 'suggerimenti seguiti',\n suggestionOf: 'di',\n suggestionMetLabel: 'Soddisfatto: ',\n suggestionMetIconPath: `\n M9.6 16.9 4 11.4l.8-.7 4.8 4.8 8.5-8.4.7.7-9.2 9.1z\n `,\n suggestionLength: 'Almeno {minLength} caratteri.',\n suggestionUppercase: 'Una o più maiuscole.',\n suggestionLowercase: 'Una o più minuscole.',\n suggestionNumber: 'Uno o più numeri.',\n suggestionSpecial: 'Uno o più caratteri speciali.',\n}\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_KEYUP = `keyup${EVENT_KEY}`\nconst EVENT_SCORE = `score${EVENT_KEY}`\nconst EVENT_TEXT = `text${EVENT_KEY}`\nconst EVENT_SUGGS = `suggs${EVENT_KEY}`\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_MOUSEDOWN_DATA_API = `mousedown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_PASSWORD = 'input-password'\n\nconst SELECTOR_PASSWORD = 'input[data-bs-input][type=\"password\"]'\nconst SELECTOR_BTN_SHOW_PWD = '.password-icon'\nconst SELECTOR_METER = '.password-strength-meter'\nconst SELECTOR_METER_GRAYBAR = '.password-meter'\nconst SELECTOR_METER_COLBAR = '.progress-bar'\nconst SELECTOR_METER_TEXT = '.strength-meter-info'\nconst SELECTOR_METER_SUGGS = '.strenght-meter-suggestions'\n\nclass InputPassword extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isCustom = this._element.classList.contains(CLASS_NAME_PASSWORD)\n this._meter = this._element.parentNode.querySelector(SELECTOR_METER)\n\n this._grayBarElement = null\n this._colorBarElement = null\n this._textElement = null\n this._suggsElement = null\n this._showPwdElement = null\n\n this._text = {}\n\n this._label = new InputLabel(element)\n\n this._suggestions = [\n {\n key: 'length',\n text: (config) => config.suggestionLength.replace('{minLength}', config.minimumLength.toString()),\n test: (password, config) => password.length >= config.minimumLength,\n },\n {\n key: 'uppercase',\n text: (config) => config.suggestionUppercase,\n test: (password) => /[A-Z]/.test(password),\n },\n {\n key: 'lowercase',\n text: (config) => config.suggestionLowercase,\n test: (password) => /[a-z]/.test(password),\n },\n {\n key: 'number',\n text: (config) => config.suggestionNumber,\n test: (password) => /[0-9]/.test(password),\n },\n {\n key: 'special',\n text: (config) => config.suggestionSpecial,\n test: (password) => /[^A-Za-z0-9]/.test(password),\n },\n ]\n\n this._init()\n this._bindEvents()\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _init() {\n if (this._isCustom) {\n this._handleAutofill()\n this._showPwdElement = SelectorEngine.findOne(SELECTOR_BTN_SHOW_PWD, this._element.parentNode)\n if (this._meter) {\n this._grayBarElement = this._meter.querySelector(SELECTOR_METER_GRAYBAR)\n this._colorBarElement = this._meter.querySelector(SELECTOR_METER_COLBAR)\n this._textElement = this._meter.querySelector(SELECTOR_METER_TEXT)\n this._suggsElement = this._meter.querySelector(SELECTOR_METER_SUGGS)\n if (this._textElement) {\n this._config = Object.assign({}, this._config, { ...Manipulator.getDataAttributes(this._textElement) })\n }\n if (this._suggsElement) {\n this._createsuggestionsList()\n }\n }\n }\n }\n\n _bindEvents() {\n if (this._isCustom) {\n if (this._showPwdElement) {\n EventHandler.on(this._showPwdElement, EVENT_CLICK, () => this._toggleShowPassword())\n }\n if (this._meter) {\n EventHandler.on(this._element, EVENT_KEYUP, () => this._checkPassword())\n EventHandler.on(this._element, 'input', () => this._checkPassword())\n }\n }\n }\n\n _handleAutofill() {\n const checkAndActivate = () => {\n if (this._element.value !== '') {\n this._label._labelOut()\n this._checkPassword()\n }\n }\n checkAndActivate()\n setTimeout(checkAndActivate, 100)\n EventHandler.on(this._element, 'animationstart', (event) => {\n if (event.animationName === 'onAutoFillStart') {\n checkAndActivate()\n }\n })\n }\n\n _toggleShowPassword() {\n const toShow = this._element.getAttribute('type') === 'password'\n SelectorEngine.find('[class^=\"password-icon\"]', this._showPwdElement).forEach((icon) => icon.classList.toggle('d-none'))\n this._element.setAttribute('type', toShow ? 'text' : 'password')\n this._showPwdElement.setAttribute('aria-checked', toShow.toString())\n }\n\n _checkPassword() {\n const password = this._element.value\n const score = this._calculateScore(password)\n this._updateMeter(score)\n this._updateText(score, password)\n this._updateSuggestions(password)\n }\n\n _updateMeter(score) {\n const perc = score < 0 ? 0 : score\n if (this._colorBarElement) {\n this._colorBarElement.classList.forEach((className) => {\n if (className.match(/(^|\\s)bg-\\S+/g)) {\n this._colorBarElement.classList.remove(className)\n }\n })\n this._colorBarElement.classList.add(`bg-${this._scoreColor(score)}`)\n this._colorBarElement.style.width = `${perc}%`\n this._colorBarElement.setAttribute('aria-valuenow', perc)\n }\n EventHandler.trigger(this._element, EVENT_SCORE)\n }\n\n _updateText(score, password) {\n if (this._textElement) {\n let text = this._scoreText(score)\n if (this._suggsElement) {\n const { completedCount, totalCount } = this._getCompletedSuggestions(password)\n const suggestionText = completedCount === 1 ? this._config.suggestionFollowed : this._config.suggestionFollowedPlural\n text += ` ${completedCount} ${this._config.suggestionOf} ${totalCount} ${suggestionText}.`\n }\n if (this._textElement.textContent !== text) {\n this._textElement.textContent = text\n this._textElement.classList.forEach((className) => {\n if (className.match(/(^|\\s)text-\\S+/g)) {\n this._textElement.classList.remove(className)\n }\n })\n this._textElement.classList.add(`text-${this._scoreColor(score)}`)\n EventHandler.trigger(this._element, EVENT_TEXT)\n }\n }\n }\n\n _updateSuggestions(password) {\n if (this._suggsElement) {\n this._updateSuggestionsList(password)\n EventHandler.trigger(this._element, EVENT_SUGGS)\n }\n }\n\n _getCompletedSuggestions(password) {\n let completedCount = 0\n const totalCount = this._suggestions.length\n this._suggestions.forEach((sugg) => {\n if (sugg.test(password, this._config)) completedCount++\n })\n return { completedCount, totalCount }\n }\n\n _createsuggestionsList() {\n if (this._suggsElement.querySelector('.password-suggestions')) {\n return\n }\n const suggLabel = document.createElement('label')\n suggLabel.className = 'visually-hidden'\n suggLabel.htmlFor = 'suggestions'\n suggLabel.textContent = Default.suggestionsLabel\n const suggContainer = document.createElement('div')\n suggContainer.id = 'suggestions'\n suggContainer.className = 'password-suggestions'\n\n this._suggestions.forEach((sugg) => {\n const suggElement = document.createElement('div')\n suggElement.className = 'suggestion'\n suggElement.dataset.suggestion = sugg.key\n const checkIcon = this._createIconCheck()\n const textSpan = document.createElement('span')\n textSpan.textContent = sugg.text(this._config)\n suggElement.appendChild(checkIcon)\n suggElement.appendChild(textSpan)\n suggContainer.appendChild(suggElement)\n })\n\n this._suggsElement.appendChild(suggLabel)\n this._suggsElement.appendChild(suggContainer)\n }\n\n _createIconCheck() {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n svg.setAttribute('class', `icon icon-xs me-1 d-none`)\n svg.setAttribute('aria-label', this._config.suggestionMetLabel)\n svg.setAttribute('viewBox', '0 0 24 24')\n svg.style.width = '1em'\n svg.style.height = '1em'\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n path.setAttribute('d', this._config.suggestionMetIconPath.trim())\n svg.appendChild(path)\n return svg\n }\n\n _updateSuggestionsList(password) {\n if (!this._suggsElement) return\n this._suggestions.forEach((sugg) => {\n const suggElement = this._suggsElement.querySelector(`[data-suggestion=\"${sugg.key}\"]`)\n if (suggElement) {\n const isMet = sugg.test(password, this._config)\n const checkIcon = suggElement.querySelector('.icon')\n if (checkIcon) {\n checkIcon.classList.toggle('d-none', !isMet)\n }\n }\n })\n }\n\n /**\n * Returns strings based on the score given.\n *\n * @param int score Score base.\n * @return string\n */\n _scoreText(score) {\n if (score === -1) {\n return this._config.shortPass\n }\n\n if (score === -2) {\n return ''\n }\n\n score = score < 0 ? 0 : score\n\n if (score < 26) {\n return this._config.badPass\n }\n if (score < 51) {\n return this._config.badPass\n }\n if (score < 76) {\n return this._config.goodPass\n }\n\n return this._config.strongPass\n }\n\n _scoreColor(score) {\n if (score === -1 || score === -2 || score < 26) {\n return 'danger'\n }\n if (score < 51) {\n return 'warning'\n }\n if (score < 76) {\n return 'success'\n }\n return 'success'\n }\n\n /**\n * Returns a value between -1 and 100 to score\n * the user's password.\n *\n * @param string password The password to be checked.\n * @return int\n */\n _calculateScore(password) {\n var score = 0\n\n // empty password\n if (password.trim().length === 0) {\n return -2\n }\n\n // password < this._config.minimumLength\n if (password.length < this._config.minimumLength) {\n return -1\n }\n\n // password length\n score += password.length * 4\n score += this._checkRepetition(1, password).length - password.length\n score += this._checkRepetition(2, password).length - password.length\n score += this._checkRepetition(3, password).length - password.length\n score += this._checkRepetition(4, password).length - password.length\n\n // password has 3 numbers\n if (password.match(/(.*[0-9].*[0-9].*[0-9])/)) {\n score += 5\n }\n\n // password has at least 2 symbols\n var symbols = '.*[!,@,#,$,%,^,&,*,?,_,~]'\n symbols = new RegExp('(' + symbols + symbols + ')')\n if (password.match(symbols)) {\n score += 5\n }\n\n // password has Upper and Lower chars\n if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) {\n score += 10\n }\n\n // password has number and chars\n if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/)) {\n score += 15\n }\n\n // password has number and symbol\n if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([0-9])/)) {\n score += 15\n }\n\n // password has char and symbol\n if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([a-zA-Z])/)) {\n score += 15\n }\n\n // password is just numbers or chars\n if (password.match(/^\\w+$/) || password.match(/^\\d+$/)) {\n score -= 10\n }\n\n if (score > 100) {\n score = 100\n }\n\n if (score < 0) {\n score = 0\n }\n\n return score\n }\n\n /**\n * Checks for repetition of characters in\n * a string\n *\n * @param int rLen Repetition length.\n * @param string str The string to be checked.\n * @return string\n */\n _checkRepetition(rLen, str) {\n var res = '',\n repeated = false\n for (var i = 0; i < str.length; i++) {\n repeated = true\n for (var j = 0; j < rLen && j + i + rLen < str.length; j++) {\n repeated = repeated && str.charAt(j + i) === str.charAt(j + i + rLen)\n }\n if (j < rLen) {\n repeated = false\n }\n if (repeated) {\n i += rLen - 1\n repeated = false\n } else {\n res += str.charAt(i)\n }\n }\n return res\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst createInput = (element) => {\n if (element && element.matches(SELECTOR_PASSWORD)) {\n return InputPassword.getOrCreateInstance(element)\n }\n return null\n}\n\nconst initInputPassword = () => {\n const element = SelectorEngine.findOne(SELECTOR_PASSWORD)\n if (element) {\n InputPassword.getOrCreateInstance(element)\n }\n}\n\nif (document.readyState !== 'loading') {\n initInputPassword()\n} else {\n document.addEventListener('DOMContentLoaded', initInputPassword)\n}\n\nEventHandler.on(document, EVENT_MOUSEDOWN_DATA_API, SELECTOR_PASSWORD + ', label', function () {\n const target = InputLabel.getInputFromLabel(this) || this\n createInput(target)\n})\nEventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_PASSWORD + ', label', function () {\n const target = InputLabel.getInputFromLabel(this) || this\n const element = createInput(target)\n if (element && element._label) {\n element._label._labelOut()\n }\n})\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BTN_SHOW_PWD, function () {\n const target = this.parentNode && this.parentNode.querySelector(SELECTOR_PASSWORD)\n if (target) {\n InputPassword.getOrCreateInstance(target)\n }\n})\n\nexport default InputPassword\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-search-autocomplete.js","sources":["../../src/js/plugins/input-search-autocomplete.js"],"sourcesContent":["//import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport BaseComponent from 'bootstrap/js/src/base-component'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\n//import SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport InputLabel from './input-label'\n\nconst NAME = 'inputsearchautocomplete'\nconst DATA_KEY = 'bs.inputsearchautocomplete'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Default = {\n autocomplete: [],\n}\n\nconst EVENT_KEYUP = `keyup${EVENT_KEY}`\n\nconst CLASS_NAME_SHOW = 'autocomplete-list-show'\nconst CLASS_NAME_AUTOCOMPLETE = 'autocomplete'\n\nconst DATA_AUTOCOMPLETE = 'data-bs-autocomplete'\n\nconst SELECTOR_SEARCH = 'input[' + DATA_AUTOCOMPLETE + '][type=\"search\"]'\n\nclass InputSearch extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._items = []\n this._autocompleteElement = null\n\n this._label = new InputLabel(element)\n\n this._init()\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n search() {\n const value = this._element.value\n\n //!!! $autocomplete.empty()\n this._autocompleteElement.innerHTML = ''\n\n if (value) {\n this._items.forEach((item) => {\n let markText = new RegExp('(' + value + ')', 'gi')\n let optionText = item.text.replace(markText, '<mark>$1</mark>')\n let optionLabel = item.label ? '<em>' + item.label + '</em>' : ''\n let optionIcon = item.icon ? item.icon : ''\n let optionLink = item.link ? item.link : '#'\n\n if (optionText.toLowerCase().indexOf(value.toLowerCase()) !== -1) {\n this._autocompleteElement.classList.add(CLASS_NAME_SHOW)\n this._autocompleteElement.appendChild(this._createOption(optionLink, optionText, optionLabel, optionIcon))\n }\n })\n } else {\n this._autocompleteElement.classList.remove(CLASS_NAME_SHOW)\n }\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _getItems() {\n try {\n return JSON.parse(this._element.getAttribute(DATA_AUTOCOMPLETE))\n } catch (error) {\n console.error('[InputSearchAutocomplete] invalid data provided for ' + DATA_AUTOCOMPLETE + ' attribute', error)\n return []\n }\n }\n\n _init() {\n if (this._element.classList.contains(CLASS_NAME_AUTOCOMPLETE)) {\n if (typeof document === 'undefined') {\n return\n }\n this._items = this._getItems()\n this._autocompleteElement = document.createElement('ul')\n this._autocompleteElement.classList.add('autocomplete-list')\n this._element.parentNode.insertBefore(this._autocompleteElement, this._element.nextSibling)\n }\n }\n\n _bindEvents() {\n EventHandler.on(this._element, EVENT_KEYUP, () => this.search())\n }\n\n _createOption(link, text, label, icon) {\n if (typeof document === 'undefined') {\n return\n }\n const option = document.createElement('li')\n option.innerHTML = `<a href=\"${link}\">\n ${icon}\n <span class=\"autocomplete-list-text\">\n <span>${text}</span>\n ${label}\n </span>\n </a>`\n\n return option\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n/*const inputs = SelectorEngine.find(SELECTOR_SEARCH)\ninputs.forEach((input) => {\n EventHandler.one(input, EVENT_KEYUP_DATA_API, () => {\n const searchInput = InputSearch.getOrCreateInstance(input)\n searchInput.search()\n })\n})*/\n\nconst createInput = (element) => {\n if (element && element.matches(SELECTOR_SEARCH)) {\n return InputSearch.getOrCreateInstance(element)\n }\n return null\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('DOMContentLoaded', function () {\n var frmel = document.querySelectorAll(SELECTOR_SEARCH + ', label')\n frmel.forEach(function (item) {\n const target = InputLabel.getInputFromLabel(item) || item\n createInput(target)\n })\n })\n}\n\nexport default InputSearch\n"],"names":[],"mappings":";;;;AAAA
|
|
1
|
+
{"version":3,"file":"input-search-autocomplete.js","sources":["../../src/js/plugins/input-search-autocomplete.js"],"sourcesContent":["//import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport BaseComponent from 'bootstrap/js/src/base-component'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\n//import SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport InputLabel from './input-label'\n\nconst NAME = 'inputsearchautocomplete'\nconst DATA_KEY = 'bs.inputsearchautocomplete'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Default = {\n autocomplete: [],\n}\n\nconst EVENT_KEYUP = `keyup${EVENT_KEY}`\n\nconst CLASS_NAME_SHOW = 'autocomplete-list-show'\nconst CLASS_NAME_AUTOCOMPLETE = 'autocomplete'\n\nconst DATA_AUTOCOMPLETE = 'data-bs-autocomplete'\n\nconst SELECTOR_SEARCH = 'input[' + DATA_AUTOCOMPLETE + '][type=\"search\"]'\n\nclass InputSearch extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._items = []\n this._autocompleteElement = null\n\n this._label = new InputLabel(element)\n\n this._init()\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n search() {\n const value = this._element.value\n\n //!!! $autocomplete.empty()\n this._autocompleteElement.innerHTML = ''\n\n if (value) {\n this._items.forEach((item) => {\n let markText = new RegExp('(' + value + ')', 'gi')\n let optionText = item.text.replace(markText, '<mark>$1</mark>')\n let optionLabel = item.label ? '<em>' + item.label + '</em>' : ''\n let optionIcon = item.icon ? item.icon : ''\n let optionLink = item.link ? item.link : '#'\n\n if (optionText.toLowerCase().indexOf(value.toLowerCase()) !== -1) {\n this._autocompleteElement.classList.add(CLASS_NAME_SHOW)\n this._autocompleteElement.appendChild(this._createOption(optionLink, optionText, optionLabel, optionIcon))\n }\n })\n } else {\n this._autocompleteElement.classList.remove(CLASS_NAME_SHOW)\n }\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _getItems() {\n try {\n return JSON.parse(this._element.getAttribute(DATA_AUTOCOMPLETE))\n } catch (error) {\n console.error('[InputSearchAutocomplete] invalid data provided for ' + DATA_AUTOCOMPLETE + ' attribute', error)\n return []\n }\n }\n\n _init() {\n if (this._element.classList.contains(CLASS_NAME_AUTOCOMPLETE)) {\n if (typeof document === 'undefined') {\n return\n }\n this._items = this._getItems()\n this._autocompleteElement = document.createElement('ul')\n this._autocompleteElement.classList.add('autocomplete-list')\n this._element.parentNode.insertBefore(this._autocompleteElement, this._element.nextSibling)\n }\n }\n\n _bindEvents() {\n EventHandler.on(this._element, EVENT_KEYUP, () => this.search())\n }\n\n _createOption(link, text, label, icon) {\n if (typeof document === 'undefined') {\n return\n }\n const option = document.createElement('li')\n option.innerHTML = `<a href=\"${link}\">\n ${icon}\n <span class=\"autocomplete-list-text\">\n <span>${text}</span>\n ${label}\n </span>\n </a>`\n\n return option\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n/*const inputs = SelectorEngine.find(SELECTOR_SEARCH)\ninputs.forEach((input) => {\n EventHandler.one(input, EVENT_KEYUP_DATA_API, () => {\n const searchInput = InputSearch.getOrCreateInstance(input)\n searchInput.search()\n })\n})*/\n\nconst createInput = (element) => {\n if (element && element.matches(SELECTOR_SEARCH)) {\n return InputSearch.getOrCreateInstance(element)\n }\n return null\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('DOMContentLoaded', function () {\n var frmel = document.querySelectorAll(SELECTOR_SEARCH + ', label')\n frmel.forEach(function (item) {\n const target = InputLabel.getInputFromLabel(item) || item\n createInput(target)\n })\n })\n}\n\nexport default InputSearch\n"],"names":[],"mappings":";;;;AAAA;;;AAQA,MAAM,IAAI,GAAG;AACb,MAAM,QAAQ,GAAG;AACjB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;;AAE/B,MAAM,OAAO,GAAG;AAChB,EAAE,YAAY,EAAE,EAAE;AAClB;;AAEA,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;;AAEtC,MAAM,eAAe,GAAG;AACxB,MAAM,uBAAuB,GAAG;;AAEhC,MAAM,iBAAiB,GAAG;;AAE1B,MAAM,eAAe,GAAG,QAAQ,GAAG,iBAAiB,GAAG;;AAEvD,MAAM,WAAW,SAAS,aAAa,CAAC;AACxC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE;AAC/B,IAAI,KAAK,CAAC,OAAO;;AAEjB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;AACzC,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,IAAI,CAAC,oBAAoB,GAAG;;AAEhC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO;;AAExC,IAAI,IAAI,CAAC,KAAK;AACd,IAAI,IAAI,CAAC,WAAW;AACpB;;AAEA;;AAEA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO;AACX;;AAEA;AACA,EAAE,MAAM,GAAG;AACX,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;;AAEhC;AACA,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG;;AAE1C,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACpC,QAAQ,IAAI,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,EAAE,IAAI;AACzD,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB;AACtE,QAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG;AACvE,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;AACjD,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;;AAEjD,QAAQ,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1E,UAAU,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe;AACjE,UAAU,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;AACnH;AACA,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe;AAChE;AACA;;AAEA;AACA,EAAE,UAAU,CAAC,MAAM,EAAE;AACrB,IAAI,MAAM,GAAG;AACb,MAAM,GAAG,OAAO;AAChB,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;AACnD;AACA,IAAI,OAAO;AACX;;AAEA,EAAE,SAAS,GAAG;AACd,IAAI,IAAI;AACR,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC;AACrE,KAAK,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,OAAO,CAAC,KAAK,CAAC,sDAAsD,GAAG,iBAAiB,GAAG,YAAY,EAAE,KAAK;AACpH,MAAM,OAAO;AACb;AACA;;AAEA,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;AACnE,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AAC3C,QAAQ;AACR;AACA,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS;AAClC,MAAM,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI;AAC7D,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB;AACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;AAChG;AACA;;AAEA,EAAE,WAAW,GAAG;AAChB,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;AACnE;;AAEA,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AACzC,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM;AACN;AACA,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI;AAC9C,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;AACxC,QAAQ,EAAE,IAAI;AACd;AACA,gBAAgB,EAAE,IAAI,CAAC;AACvB,UAAU,EAAE,KAAK;AACjB;AACA,UAAU;;AAEV,IAAI,OAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,WAAW,GAAG,CAAC,OAAO,KAAK;AACjC,EAAE,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AACnD,IAAI,OAAO,WAAW,CAAC,mBAAmB,CAAC,OAAO;AAClD;AACA,EAAE,OAAO;AACT;;AAEA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACrC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,YAAY;AAC5D,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,eAAe,GAAG,SAAS;AACrE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAClC,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI;AAC3D,MAAM,WAAW,CAAC,MAAM;AACxB,KAAK;AACL,GAAG;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sources":["../../src/js/plugins/input.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport InputLabel from './input-label'\n\nconst NAME = 'input'\nconst DATA_KEY = 'bs.input'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\n\nclass Input extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._label = new InputLabel(element)\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n // Private\n _bindEvents() {\n if (this._element.getAttribute('type') === 'file') {\n EventHandler.on(this._element, EVENT_CHANGE, () => {\n this._handleFileDescription()\n })\n }\n }\n\n _handleFileDescription() {\n const fileNames = []\n let labelPrefix = ''\n\n Array.from(this._element.files).forEach((file) => {\n const fileSize = Math.round(parseInt(file.size, 10) / 1024)\n fileNames.push(file.name + ' (' + fileSize + 'kb)')\n })\n\n if (this._element.files.length > 1) {\n labelPrefix = this._element.files.length + ' file da caricare: '\n }\n\n const label = SelectorEngine.findOne('label[for=\"' + this._element.getAttribute('id') + '\"] label.form-file-name', this._element)\n if (label) {\n label.innerText = labelPrefix + fileNames.join('; ')\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nconst excludes = [\n 'select',\n 'input[data-bs-input][type=\"password\"]',\n 'input.input-password[data-bs-input]',\n 'input[data-bs-autocomplete][type=\"search\"]',\n 'input[type=\"time\"]',\n 'input[type=\"radio\"]',\n 'input[type=\"checkbox\"]',\n]\n\nconst createInput = (element) => {\n const toExclude = !!excludes.find((selector) => element.matches(selector))\n const isInputNumber = !!(element.getAttribute('type') === 'number' && element.parentNode.querySelector('button[class^=\"input-number-\"]')) //check if it's a InputNumber component\n if (!toExclude && !isInputNumber) {\n return Input.getOrCreateInstance(element)\n }\n return null\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('DOMContentLoaded', function () {\n var frmel = document.querySelectorAll('input, textarea, label')\n frmel.forEach(function (item) {\n const target = InputLabel.getInputFromLabel(item) || item\n createInput(target)\n })\n })\n}\n\nexport default Input\n"],"names":[],"mappings":";;;;;AAOA,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"input.js","sources":["../../src/js/plugins/input.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport InputLabel from './input-label'\n\nconst NAME = 'input'\nconst DATA_KEY = 'bs.input'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CHANGE = `change${EVENT_KEY}`\n\nclass Input extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._label = new InputLabel(element)\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n // Private\n _bindEvents() {\n if (this._element.getAttribute('type') === 'file') {\n EventHandler.on(this._element, EVENT_CHANGE, () => {\n this._handleFileDescription()\n })\n }\n }\n\n _handleFileDescription() {\n const fileNames = []\n let labelPrefix = ''\n\n Array.from(this._element.files).forEach((file) => {\n const fileSize = Math.round(parseInt(file.size, 10) / 1024)\n fileNames.push(file.name + ' (' + fileSize + 'kb)')\n })\n\n if (this._element.files.length > 1) {\n labelPrefix = this._element.files.length + ' file da caricare: '\n }\n\n const label = SelectorEngine.findOne('label[for=\"' + this._element.getAttribute('id') + '\"] label.form-file-name', this._element)\n if (label) {\n label.innerText = labelPrefix + fileNames.join('; ')\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nconst excludes = [\n 'select',\n 'input[data-bs-input][type=\"password\"]',\n 'input.input-password[data-bs-input]',\n 'input[data-bs-autocomplete][type=\"search\"]',\n 'input[type=\"time\"]',\n 'input[type=\"radio\"]',\n 'input[type=\"checkbox\"]',\n]\n\nconst createInput = (element) => {\n const toExclude = !!excludes.find((selector) => element.matches(selector))\n const isInputNumber = !!(element.getAttribute('type') === 'number' && element.parentNode.querySelector('button[class^=\"input-number-\"]')) //check if it's a InputNumber component\n if (!toExclude && !isInputNumber) {\n return Input.getOrCreateInstance(element)\n }\n return null\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('DOMContentLoaded', function () {\n var frmel = document.querySelectorAll('input, textarea, label')\n frmel.forEach(function (item) {\n const target = InputLabel.getInputFromLabel(item) || item\n createInput(target)\n })\n })\n}\n\nexport default Input\n"],"names":[],"mappings":"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"}
|
package/dist/plugins/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../src/js/plugins/list.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\n\nconst NAME = 'list'\nconst DATA_KEY = 'bs.list'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_LIST = '[data-bs-list-checkbox]' //'.it-list'\nconst SELECTOR_ITEM_CHECKBOX = 'input[type=checkbox]'\n\nclass List extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._init()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggleCheckbox(item) {\n const input = SelectorEngine.findOne('input', item)\n if (input) {\n if (input.checked) {\n input.checked = false\n item.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n input.checked = true\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n // Private\n _init() {\n this._initCheckbox()\n }\n _initCheckbox() {\n SelectorEngine.find(SELECTOR_ITEM_CHECKBOX, this._element).forEach((item) => {\n EventHandler.on(item.closest('a'), EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this.toggleCheckbox(item.closest('a'))\n })\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nSelectorEngine.find(SELECTOR_LIST).forEach((list) => {\n SelectorEngine.find(SELECTOR_ITEM_CHECKBOX, list).forEach((checkbox) => {\n EventHandler.one(checkbox.closest('a'), EVENT_CLICK_DATA_API, (evt) => {\n if (!List.getInstance(list)) {\n evt.preventDefault()\n const listObj = List.getOrCreateInstance(list)\n listObj.toggleCheckbox(evt.currentTarget)\n }\n })\n })\n})\n\nexport default List\n"],"names":[],"mappings":";;;;AAKA,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../src/js/plugins/list.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\n\nconst NAME = 'list'\nconst DATA_KEY = 'bs.list'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_LIST = '[data-bs-list-checkbox]' //'.it-list'\nconst SELECTOR_ITEM_CHECKBOX = 'input[type=checkbox]'\n\nclass List extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._init()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggleCheckbox(item) {\n const input = SelectorEngine.findOne('input', item)\n if (input) {\n if (input.checked) {\n input.checked = false\n item.classList.remove(CLASS_NAME_ACTIVE)\n } else {\n input.checked = true\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n // Private\n _init() {\n this._initCheckbox()\n }\n _initCheckbox() {\n SelectorEngine.find(SELECTOR_ITEM_CHECKBOX, this._element).forEach((item) => {\n EventHandler.on(item.closest('a'), EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this.toggleCheckbox(item.closest('a'))\n })\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nSelectorEngine.find(SELECTOR_LIST).forEach((list) => {\n SelectorEngine.find(SELECTOR_ITEM_CHECKBOX, list).forEach((checkbox) => {\n EventHandler.one(checkbox.closest('a'), EVENT_CLICK_DATA_API, (evt) => {\n if (!List.getInstance(list)) {\n evt.preventDefault()\n const listObj = List.getOrCreateInstance(list)\n listObj.toggleCheckbox(evt.currentTarget)\n }\n })\n })\n})\n\nexport default List\n"],"names":[],"mappings":";;;;AAKA,MAAM,IAAI,GAAG;AACb,MAAM,QAAQ,GAAG;AACjB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC/B,MAAM,YAAY,GAAG;;AAErB,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;AACtC,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;;AAE9D,MAAM,iBAAiB,GAAG;;AAE1B,MAAM,aAAa,GAAG,0BAAyB;AAC/C,MAAM,sBAAsB,GAAG;;AAE/B,MAAM,IAAI,SAAS,aAAa,CAAC;AACjC,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,KAAK,CAAC,OAAO;;AAEjB,IAAI,IAAI,CAAC,KAAK;AACd;;AAEA;;AAEA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO;AACX;;AAEA;AACA,EAAE,cAAc,CAAC,IAAI,EAAE;AACvB,IAAI,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI;AACtD,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,CAAC,OAAO,GAAG;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB;AAC/C,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,OAAO,GAAG;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB;AAC5C;AACA;AACA;;AAEA;AACA,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,aAAa;AACtB;AACA,EAAE,aAAa,GAAG;AAClB,IAAI,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACjF,MAAM,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK;AAC/D,QAAQ,GAAG,CAAC,cAAc;AAC1B,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7C,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACrD,EAAE,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AAC1E,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC,GAAG,KAAK;AAC3E,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACnC,QAAQ,GAAG,CAAC,cAAc;AAC1B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI;AACrD,QAAQ,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa;AAChD;AACA,KAAK;AACL,GAAG;AACH,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masonry.js","sources":["../../src/js/plugins/masonry.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport Manipulator from 'bootstrap/js/src/dom/manipulator'\n\nimport MasonryPlugin from 'masonry-layout'\n\nconst NAME = 'masonry'\n//const DATA_KEY = 'bs.masonry'\n//const EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_LOADER = 'masonry-loader'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"masonry\"]'\nconst SELECTOR_LOADER = `.${CLASS_NAME_LOADER}`\n\nconst Default = {\n percentPosition: true,\n}\n\nclass Masonry extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._masonry = null\n\n this._images = SelectorEngine.find('img', this._element)\n this._loadCounter = 0\n\n this._init()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._masonry) {\n this._masonry.destroy()\n this._masonry = null\n }\n\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _init() {\n if (this._images.length > 0) {\n //this._showLoader()\n\n this._images.forEach((img) => {\n const imgDummy = new Image()\n imgDummy.onload = () => this._onLoadEnd()\n imgDummy.src = img.src\n })\n } else {\n this._initMasonry()\n }\n }\n\n _onLoadEnd() {\n this._loadCounter++\n if (this._loadCounter >= this._images.length) {\n //this._hideLoader()\n this._initMasonry()\n }\n }\n\n _initMasonry() {\n this._masonry = new MasonryPlugin(this._element, this._config)\n }\n\n _createLoader() {\n if (typeof document === 'undefined') {\n return\n }\n const loader = document.createElement('div')\n loader.classList.add(CLASS_NAME_LOADER, 'fade', 'd-flex', 'justify-content-center', 'align-items-center')\n loader.innerHTML = '<div class=\"progress-spinner progress-spinner-active\"><span class=\"visually-hidden\">Caricamento...</span></div>'\n this._element.appendChild(loader)\n return loader\n }\n _getOrCreateLoader() {\n const loader = SelectorEngine.findOne(SELECTOR_LOADER, this._element)\n if (!loader) {\n return this._createLoader()\n }\n return loader\n }\n _destroyLoader() {\n const loader = SelectorEngine.findOne(SELECTOR_LOADER, this._element)\n if (loader) {\n loader.remove()\n }\n }\n _showLoader() {\n const loader = this._getOrCreateLoader()\n loader.classList.add(CLASS_NAME_SHOW)\n }\n _hideLoader() {\n this._destroyLoader()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst masonries = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\nif (masonries.length > 0) {\n /*if (!MASONRY_EXISTS) {\n console.warn('[Masonry] Masonry component needs Masonry library to work properly')\n } else {\n masonries.forEach((masonry) => {\n Masonry.getOrCreateInstance(masonry)\n })\n }*/\n masonries.forEach((masonry) => {\n Masonry.getOrCreateInstance(masonry)\n })\n}\n\nexport default Masonry\n"],"names":[],"mappings":";;;;;AAOA,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"masonry.js","sources":["../../src/js/plugins/masonry.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport Manipulator from 'bootstrap/js/src/dom/manipulator'\n\nimport MasonryPlugin from 'masonry-layout'\n\nconst NAME = 'masonry'\n//const DATA_KEY = 'bs.masonry'\n//const EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_LOADER = 'masonry-loader'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"masonry\"]'\nconst SELECTOR_LOADER = `.${CLASS_NAME_LOADER}`\n\nconst Default = {\n percentPosition: true,\n}\n\nclass Masonry extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._masonry = null\n\n this._images = SelectorEngine.find('img', this._element)\n this._loadCounter = 0\n\n this._init()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n if (this._masonry) {\n this._masonry.destroy()\n this._masonry = null\n }\n\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _init() {\n if (this._images.length > 0) {\n //this._showLoader()\n\n this._images.forEach((img) => {\n const imgDummy = new Image()\n imgDummy.onload = () => this._onLoadEnd()\n imgDummy.src = img.src\n })\n } else {\n this._initMasonry()\n }\n }\n\n _onLoadEnd() {\n this._loadCounter++\n if (this._loadCounter >= this._images.length) {\n //this._hideLoader()\n this._initMasonry()\n }\n }\n\n _initMasonry() {\n this._masonry = new MasonryPlugin(this._element, this._config)\n }\n\n _createLoader() {\n if (typeof document === 'undefined') {\n return\n }\n const loader = document.createElement('div')\n loader.classList.add(CLASS_NAME_LOADER, 'fade', 'd-flex', 'justify-content-center', 'align-items-center')\n loader.innerHTML = '<div class=\"progress-spinner progress-spinner-active\"><span class=\"visually-hidden\">Caricamento...</span></div>'\n this._element.appendChild(loader)\n return loader\n }\n _getOrCreateLoader() {\n const loader = SelectorEngine.findOne(SELECTOR_LOADER, this._element)\n if (!loader) {\n return this._createLoader()\n }\n return loader\n }\n _destroyLoader() {\n const loader = SelectorEngine.findOne(SELECTOR_LOADER, this._element)\n if (loader) {\n loader.remove()\n }\n }\n _showLoader() {\n const loader = this._getOrCreateLoader()\n loader.classList.add(CLASS_NAME_SHOW)\n }\n _hideLoader() {\n this._destroyLoader()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst masonries = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\nif (masonries.length > 0) {\n /*if (!MASONRY_EXISTS) {\n console.warn('[Masonry] Masonry component needs Masonry library to work properly')\n } else {\n masonries.forEach((masonry) => {\n Masonry.getOrCreateInstance(masonry)\n })\n }*/\n masonries.forEach((masonry) => {\n Masonry.getOrCreateInstance(masonry)\n })\n}\n\nexport default Masonry\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navbar-collapsible.js","sources":["../../src/js/plugins/navbar-collapsible.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport {\n //defineJQueryPlugin,\n getElementFromSelector,\n isVisible,\n reflow,\n //typeCheckConfig,\n //getSelectorFromElement,\n} from 'bootstrap/js/src/util'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport { isScreenMobile } from './util/device'\nimport { getElementIndex } from './util/dom'\nimport { disablePageScroll, enablePageScroll } from './util/pageScroll'\n\nconst NAME = 'navbarcollapsible'\nconst DATA_KEY = 'bs.navbarcollapsible'\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_CLICK = `click${EVENT_KEY}`\nconst EVENT_KEYUP = `keyup${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_EXPANDED = 'expanded'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"navbarcollapsible\"]'\n\n//const SELECTOR_NAVBAR = '.navbar-collapsable'\nconst SELECTOR_BTN_CLOSE = '.close-div button'\nconst SELECTOR_BTN_MENU_CLOSE = '.close-menu'\nconst SELECTOR_BTN_BACK = '.it-back-button'\nconst SELECTOR_OVERLAY = '.overlay'\nconst SELECTOR_MENU_WRAPPER = '.menu-wrapper'\nconst SELECTOR_NAVLINK = '.nav-link'\nconst SELECTOR_MEGAMENUNAVLINK = '.nav-item .list-item'\nconst SELECTOR_HEADINGLINK = '.it-heading-link'\nconst SELECTOR_FOOTERLINK = '.it-footer-link'\n\nclass NavBarCollapsible extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._isShown = this._element.classList.contains(CLASS_NAME_EXPANDED)\n this._isTransitioning = false\n\n this._isMobile = isScreenMobile()\n this._isKeyShift = false\n\n this._currItemIdx = 0\n\n this._btnClose = SelectorEngine.findOne(SELECTOR_BTN_CLOSE, this._element)\n this._btnBack = SelectorEngine.findOne(SELECTOR_BTN_BACK, this._element)\n this._menuWrapper = SelectorEngine.findOne(SELECTOR_MENU_WRAPPER, this._element)\n this._overlay = null\n this._setOverlay()\n this._menuItems = SelectorEngine.find(\n [SELECTOR_NAVLINK, SELECTOR_MEGAMENUNAVLINK, SELECTOR_HEADINGLINK, SELECTOR_FOOTERLINK, SELECTOR_BTN_MENU_CLOSE].join(','),\n this._element\n )\n\n this._bindEvents()\n }\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget,\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._btnBack) {\n this._btnBack.classList.add(CLASS_NAME_SHOW)\n }\n\n this._isShown = true\n\n disablePageScroll()\n this._showElement()\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n if (this._btnBack) {\n this._btnBack.classList.remove(CLASS_NAME_SHOW)\n }\n if (this._overlay) {\n this._overlay.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.classList.remove(CLASS_NAME_EXPANDED)\n\n enablePageScroll()\n this._queueCallback(() => this._hideElement(), this._menuWrapper, isAnimated)\n }\n\n toggle(relatedTarget) {\n this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n dispose() {\n EventHandler.off(window, EVENT_RESIZE)\n\n super.dispose()\n }\n\n // Private\n\n _bindEvents() {\n EventHandler.on(window, EVENT_RESIZE, () => this._onResize())\n\n if (this._overlay) {\n EventHandler.on(this._overlay, EVENT_CLICK, () => this.hide())\n }\n EventHandler.on(this._btnClose, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this.hide()\n })\n EventHandler.on(this._btnBack, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this.hide()\n })\n\n this._menuItems.forEach((item) => {\n EventHandler.on(item, EVENT_KEYDOWN, (evt) => this._isMobile && this._onMenuItemKeyDown(evt))\n EventHandler.on(item, EVENT_KEYUP, (evt) => this._isMobile && this._onMenuItemKeyUp(evt))\n EventHandler.on(item, EVENT_CLICK, (evt) => this._isMobile && this._onMenuItemClick(evt))\n })\n }\n\n _onResize() {\n this._isMobile = isScreenMobile()\n }\n\n _onMenuItemKeyUp(evt) {\n if (evt.key === 'Shift') {\n this._isKeyShift = false\n }\n }\n _onMenuItemKeyDown(evt) {\n if (evt.key === 'Shift') {\n this._isKeyShift = true\n }\n if (evt.key === 'Tab') {\n evt.preventDefault()\n this._focusNext()\n }\n }\n /**\n * Update the last focused element when an interactive element is clicked\n */\n _onMenuItemClick(evt) {\n this.currItemIdx = getElementIndex(evt.currentTarget, this._menuItems)\n }\n\n _isAnimated() {\n //there's no an animation css class you can toggle with a \"show\" css class, so it is supposed true\n return true //this._element.classList.contains(CLASS_NAME_EXPANDED)\n }\n\n _isElementHidden(element) {\n return element.offsetParent === null\n }\n\n _showElement() {\n const isAnimated = this._isAnimated()\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-expanded', true)\n //this._element.setAttribute('role', 'dialog')\n if (this._overlay) {\n this._overlay.style.display = 'block'\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_EXPANDED)\n if (this._overlay) {\n this._overlay.classList.add(CLASS_NAME_SHOW)\n }\n\n const transitionComplete = () => {\n this._isTransitioning = false\n const firstItem = this._getNextVisibleItem(0) //at pos 0 there's the close button\n if (firstItem.item) {\n firstItem.item.focus()\n this._currItemIdx = firstItem.index\n }\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n this._queueCallback(transitionComplete, this._menuWrapper, isAnimated)\n }\n\n _hideElement() {\n if (this._overlay) {\n this._overlay.style.display = 'none'\n }\n\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-expanded')\n //this._element.removeAttribute('aria-modal')\n //this._element.removeAttribute('role')\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n _setOverlay() {\n this._overlay = SelectorEngine.findOne(SELECTOR_OVERLAY, this._element)\n if (this._isAnimated) {\n this._overlay.classList.add(CLASS_NAME_FADE)\n }\n }\n\n /**\n * Moves focus to the next focusable element based on the DOM exploration direction\n */\n _focusNext() {\n let nextIdx = this._currItemIdx + (this._isKeyShift ? -1 : 1)\n if (nextIdx < 0) {\n nextIdx = this._menuItems.length - 1\n } else if (nextIdx >= this._menuItems.length) {\n nextIdx = 0\n }\n const target = this._getNextVisibleItem(nextIdx, this._isKeyShift)\n if (target.item) {\n target.item.focus()\n this._currItemIdx = target.index\n }\n }\n /**\n * Get the next focusable element from a starting point\n * @param {int} start - the index of the array of the elements as starting point (included)\n * @param {boolean} wayTop - the array search direction (true: bottom to top, false: top to bottom)\n * @returns {Object} the item found and its index in the array\n */\n _getNextVisibleItem(start, wayTop) {\n let found = null\n let foundIdx = null\n\n let i = start\n let incr = wayTop ? -1 : 1\n let firstCheck = false\n while (!found && (i != start || !firstCheck)) {\n if (i == start) {\n firstCheck = true\n }\n if (!this._isElementHidden(this._menuItems[i])) {\n found = this._menuItems[i]\n foundIdx = i\n }\n i = i + incr\n if (i < 0) {\n i = this._menuItems.length - 1\n } else if (i >= this._menuItems.length) {\n i = 0\n }\n }\n\n return {\n item: found,\n index: foundIdx,\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n/*const navs = SelectorEngine.find(SELECTOR_NAVBAR)\nnavs.forEach((nav) => {\n NavBarCollapsible.getOrCreateInstance(nav)\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 = NavBarCollapsible.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nexport default NavBarCollapsible\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navbar-collapsible.js","sources":["../../src/js/plugins/navbar-collapsible.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport {\n //defineJQueryPlugin,\n getElementFromSelector,\n isVisible,\n reflow,\n //typeCheckConfig,\n //getSelectorFromElement,\n} from 'bootstrap/js/src/util'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport { isScreenMobile } from './util/device'\nimport { getElementIndex } from './util/dom'\nimport { disablePageScroll, enablePageScroll } from './util/pageScroll'\n\nconst NAME = 'navbarcollapsible'\nconst DATA_KEY = 'bs.navbarcollapsible'\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_CLICK = `click${EVENT_KEY}`\nconst EVENT_KEYUP = `keyup${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_EXPANDED = 'expanded'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"navbarcollapsible\"]'\n\n//const SELECTOR_NAVBAR = '.navbar-collapsable'\nconst SELECTOR_BTN_CLOSE = '.close-div button'\nconst SELECTOR_BTN_MENU_CLOSE = '.close-menu'\nconst SELECTOR_BTN_BACK = '.it-back-button'\nconst SELECTOR_OVERLAY = '.overlay'\nconst SELECTOR_MENU_WRAPPER = '.menu-wrapper'\nconst SELECTOR_NAVLINK = '.nav-link'\nconst SELECTOR_MEGAMENUNAVLINK = '.nav-item .list-item'\nconst SELECTOR_HEADINGLINK = '.it-heading-link'\nconst SELECTOR_FOOTERLINK = '.it-footer-link'\n\nclass NavBarCollapsible extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._isShown = this._element.classList.contains(CLASS_NAME_EXPANDED)\n this._isTransitioning = false\n\n this._isMobile = isScreenMobile()\n this._isKeyShift = false\n\n this._currItemIdx = 0\n\n this._btnClose = SelectorEngine.findOne(SELECTOR_BTN_CLOSE, this._element)\n this._btnBack = SelectorEngine.findOne(SELECTOR_BTN_BACK, this._element)\n this._menuWrapper = SelectorEngine.findOne(SELECTOR_MENU_WRAPPER, this._element)\n this._overlay = null\n this._setOverlay()\n this._menuItems = SelectorEngine.find(\n [SELECTOR_NAVLINK, SELECTOR_MEGAMENUNAVLINK, SELECTOR_HEADINGLINK, SELECTOR_FOOTERLINK, SELECTOR_BTN_MENU_CLOSE].join(','),\n this._element\n )\n\n this._bindEvents()\n }\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget,\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._btnBack) {\n this._btnBack.classList.add(CLASS_NAME_SHOW)\n }\n\n this._isShown = true\n\n disablePageScroll()\n this._showElement()\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n if (this._btnBack) {\n this._btnBack.classList.remove(CLASS_NAME_SHOW)\n }\n if (this._overlay) {\n this._overlay.classList.remove(CLASS_NAME_SHOW)\n }\n\n this._element.classList.remove(CLASS_NAME_EXPANDED)\n\n enablePageScroll()\n this._queueCallback(() => this._hideElement(), this._menuWrapper, isAnimated)\n }\n\n toggle(relatedTarget) {\n this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n dispose() {\n EventHandler.off(window, EVENT_RESIZE)\n\n super.dispose()\n }\n\n // Private\n\n _bindEvents() {\n EventHandler.on(window, EVENT_RESIZE, () => this._onResize())\n\n if (this._overlay) {\n EventHandler.on(this._overlay, EVENT_CLICK, () => this.hide())\n }\n EventHandler.on(this._btnClose, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this.hide()\n })\n EventHandler.on(this._btnBack, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this.hide()\n })\n\n this._menuItems.forEach((item) => {\n EventHandler.on(item, EVENT_KEYDOWN, (evt) => this._isMobile && this._onMenuItemKeyDown(evt))\n EventHandler.on(item, EVENT_KEYUP, (evt) => this._isMobile && this._onMenuItemKeyUp(evt))\n EventHandler.on(item, EVENT_CLICK, (evt) => this._isMobile && this._onMenuItemClick(evt))\n })\n }\n\n _onResize() {\n this._isMobile = isScreenMobile()\n }\n\n _onMenuItemKeyUp(evt) {\n if (evt.key === 'Shift') {\n this._isKeyShift = false\n }\n }\n _onMenuItemKeyDown(evt) {\n if (evt.key === 'Shift') {\n this._isKeyShift = true\n }\n if (evt.key === 'Tab') {\n evt.preventDefault()\n this._focusNext()\n }\n }\n /**\n * Update the last focused element when an interactive element is clicked\n */\n _onMenuItemClick(evt) {\n this.currItemIdx = getElementIndex(evt.currentTarget, this._menuItems)\n }\n\n _isAnimated() {\n //there's no an animation css class you can toggle with a \"show\" css class, so it is supposed true\n return true //this._element.classList.contains(CLASS_NAME_EXPANDED)\n }\n\n _isElementHidden(element) {\n return element.offsetParent === null\n }\n\n _showElement() {\n const isAnimated = this._isAnimated()\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-expanded', true)\n //this._element.setAttribute('role', 'dialog')\n if (this._overlay) {\n this._overlay.style.display = 'block'\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_EXPANDED)\n if (this._overlay) {\n this._overlay.classList.add(CLASS_NAME_SHOW)\n }\n\n const transitionComplete = () => {\n this._isTransitioning = false\n const firstItem = this._getNextVisibleItem(0) //at pos 0 there's the close button\n if (firstItem.item) {\n firstItem.item.focus()\n this._currItemIdx = firstItem.index\n }\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n this._queueCallback(transitionComplete, this._menuWrapper, isAnimated)\n }\n\n _hideElement() {\n if (this._overlay) {\n this._overlay.style.display = 'none'\n }\n\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-expanded')\n //this._element.removeAttribute('aria-modal')\n //this._element.removeAttribute('role')\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n _setOverlay() {\n this._overlay = SelectorEngine.findOne(SELECTOR_OVERLAY, this._element)\n if (this._isAnimated) {\n this._overlay.classList.add(CLASS_NAME_FADE)\n }\n }\n\n /**\n * Moves focus to the next focusable element based on the DOM exploration direction\n */\n _focusNext() {\n let nextIdx = this._currItemIdx + (this._isKeyShift ? -1 : 1)\n if (nextIdx < 0) {\n nextIdx = this._menuItems.length - 1\n } else if (nextIdx >= this._menuItems.length) {\n nextIdx = 0\n }\n const target = this._getNextVisibleItem(nextIdx, this._isKeyShift)\n if (target.item) {\n target.item.focus()\n this._currItemIdx = target.index\n }\n }\n /**\n * Get the next focusable element from a starting point\n * @param {int} start - the index of the array of the elements as starting point (included)\n * @param {boolean} wayTop - the array search direction (true: bottom to top, false: top to bottom)\n * @returns {Object} the item found and its index in the array\n */\n _getNextVisibleItem(start, wayTop) {\n let found = null\n let foundIdx = null\n\n let i = start\n let incr = wayTop ? -1 : 1\n let firstCheck = false\n while (!found && (i != start || !firstCheck)) {\n if (i == start) {\n firstCheck = true\n }\n if (!this._isElementHidden(this._menuItems[i])) {\n found = this._menuItems[i]\n foundIdx = i\n }\n i = i + incr\n if (i < 0) {\n i = this._menuItems.length - 1\n } else if (i >= this._menuItems.length) {\n i = 0\n }\n }\n\n return {\n item: found,\n index: foundIdx,\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n/*const navs = SelectorEngine.find(SELECTOR_NAVBAR)\nnavs.forEach((nav) => {\n NavBarCollapsible.getOrCreateInstance(nav)\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 = NavBarCollapsible.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nexport default NavBarCollapsible\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navscroll.js","sources":["../../src/js/plugins/navscroll.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport 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\nimport onDocumentScroll from './util/on-document-scroll'\nimport NavBarCollapsible from './navbar-collapsible'\n\nimport { documentScrollTo } from './util/tween'\n\nconst NAME = 'navscroll'\n//const DATA_KEY = 'bs.navscroll'\n//const EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\n//const EVENT_SCROLL = `scroll${EVENT_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_NAVSCROLL = '[data-bs-navscroll]' //'.it-navscroll-wrapper'\nconst SELECTOR_LIST = 'ul.link-list'\n//const SELECTOR_ITEM = '.nav-item'\nconst SELECTOR_LINK_CONTAINER = 'li.nav-link, li.nav-item'\nconst SELECTOR_LINK = 'a.nav-link'\nconst SELECTOR_LINK_ACTIVE = `${SELECTOR_LINK}.${CLASS_NAME_ACTIVE}`\nconst SELECTOR_LINK_CLICKABLE = `${SELECTOR_LINK}[href^=\"#\"]`\nconst SELECTOR_CONTAINER = '.it-page-sections-container'\nconst SELECTOR_PAGE_SECTION = '.it-page-section'\nconst SELECTOR_TOGGLER = '.custom-navbar-toggler'\nconst SELECTOR_TOGGLER_ICON = '.it-list'\nconst SELECTOR_COLLAPSIBLE = '.navbar-collapsable'\nconst SELECTOR_PROGRESS_BAR = '.it-navscroll-progressbar'\n\nconst Default = {\n scrollPadding: 10,\n duration: 800,\n easing: 'easeInOutSine',\n}\nclass NavScroll extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n\n this._togglerElement = SelectorEngine.findOne(SELECTOR_TOGGLER, this._element)\n this._sectionContainer = SelectorEngine.findOne(SELECTOR_CONTAINER)\n this._collapsible = this._getCollapsible()\n this._isCollapseOpened = false\n this._callbackQueue = []\n this._scrollCb = null\n\n this._bindEvents()\n }\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n setScrollPadding(scrollPadding) {\n this._config.scrollPadding = scrollPadding\n }\n\n dispose() {\n //EventHandler.off(window, EVENT_SCROLL, this._onScroll)\n if (this._scrollCb) {\n this._scrollCb.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _bindEvents() {\n //EventHandler.on(window, EVENT_SCROLL, this._onScroll)\n\n this._scrollCb = onDocumentScroll(() => this._onScroll())\n\n if (this._collapsible) {\n EventHandler.on(this._collapsible._element, 'shown.bs.navbarcollapsible', () => this._onCollapseOpened())\n EventHandler.on(this._collapsible._element, 'hidden.bs.navbarcollapsible', () => this._onCollapseClosed())\n }\n\n SelectorEngine.find(SELECTOR_LINK_CLICKABLE, this._element).forEach((link) => {\n link.addEventListener('click', () => {\n const scrollHash = () => this._scrollToHash(link.hash)\n if (this._isCollapseOpened) {\n this._callbackQueue.push(scrollHash)\n this._collapsible.hide()\n } else {\n scrollHash()\n }\n })\n })\n\n EventHandler.on(window, 'load', () => {\n //if page is already scrolled\n setTimeout(() => this._onScroll(), 150)\n })\n }\n\n _onCollapseOpened() {\n this._isCollapseOpened = true\n }\n _onCollapseClosed() {\n while (this._callbackQueue.length > 0) {\n const cb = this._callbackQueue.shift()\n if (typeof cb === 'function') {\n cb()\n }\n }\n this._isCollapseOpened = false\n }\n\n _getParentLinks(element) {\n const parents = []\n let parentContainer = element.closest(SELECTOR_LIST)\n let parentContainerPrev = null\n let exit = false\n while (parentContainer && !exit) {\n const parentLinkContainer = parentContainer.closest(SELECTOR_LINK_CONTAINER)\n if (parentLinkContainer) {\n const link = parentLinkContainer.querySelector(SELECTOR_LINK)\n if (link) {\n parents.push(link)\n }\n }\n parentContainerPrev = parentContainer\n parentContainer = (parentContainer.parentElement || parentContainer).closest(SELECTOR_LIST) //avoid self select of closest\n if (parentContainer === parentContainerPrev) {\n exit = true\n }\n }\n return parents\n }\n\n _decorateToggler(text) {\n if (this._togglerElement) {\n const icon = SelectorEngine.findOne(SELECTOR_TOGGLER_ICON, this._togglerElement)\n this._togglerElement.innerText = ''\n this._togglerElement.textContent = ''\n this._togglerElement.append(icon)\n this._togglerElement.append(text)\n }\n }\n\n _scrollToHash(hash) {\n const target = SelectorEngine.findOne(hash, this._sectionContainer)\n if (target) {\n documentScrollTo(target.offsetTop - this._getScrollPadding(), {\n duration: this._config.duration,\n easing: this._config.easing,\n /*complete: () => {\n },*/\n })\n\n if (history.pushState) {\n history.pushState(null, null, hash)\n } else {\n location.hash = hash\n }\n }\n }\n\n _updateProgress(content) {\n if (!content) {\n return\n }\n const progressBars = SelectorEngine.find(SELECTOR_PROGRESS_BAR)\n if (progressBars) {\n const offset = Math.abs(content.getBoundingClientRect().top)\n const height = content.getBoundingClientRect().height\n const scrollAmount = (offset / height) * 100\n const scrollValue = Math.min(100, Math.max(0, scrollAmount))\n\n progressBars.forEach((progressBar) => {\n if (content.getBoundingClientRect().top <= 0) {\n progressBar.style.width = scrollValue + '%'\n progressBar.setAttribute('aria-valuenow', scrollValue)\n } else {\n progressBar.style.width = 0 + '%'\n progressBar.setAttribute('aria-valuenow', 0)\n }\n })\n }\n }\n\n _onScroll() {\n const sectionsContainerTop = this._sectionContainer ? this._sectionContainer.offsetTop : 0\n if (typeof document === 'undefined') {\n return\n }\n const scrollDistance = document.scrollingElement.scrollTop - sectionsContainerTop\n\n const navItems = SelectorEngine.find(SELECTOR_LINK, this._element)\n\n const scrollPadding = this._getScrollPadding()\n\n SelectorEngine.find(SELECTOR_PAGE_SECTION).forEach((pageSec, idx) => {\n if (pageSec.offsetTop - sectionsContainerTop <= scrollDistance + scrollPadding) {\n SelectorEngine.find(SELECTOR_LINK_ACTIVE, this._element).forEach((link) => {\n link.classList.remove(CLASS_NAME_ACTIVE)\n })\n if (idx < navItems.length) {\n const currActive = navItems[idx]\n this._getParentLinks(currActive).forEach((parentLink) => {\n parentLink.classList.add(CLASS_NAME_ACTIVE)\n })\n currActive.classList.add(CLASS_NAME_ACTIVE)\n this._decorateToggler(currActive.innerText)\n }\n }\n })\n this._updateProgress(this._sectionContainer)\n }\n\n _getCollapsible() {\n const coll = SelectorEngine.findOne(SELECTOR_COLLAPSIBLE, this._element)\n if (coll) {\n return NavBarCollapsible.getOrCreateInstance(coll)\n }\n return null\n }\n\n _getScrollPadding() {\n if (typeof this._config.scrollPadding === 'function') {\n return this._config.scrollPadding()\n }\n return this._config.scrollPadding\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst navs = SelectorEngine.find(SELECTOR_NAVSCROLL)\nnavs.map((nav) => {\n NavScroll.getOrCreateInstance(nav)\n})\n\nexport default NavScroll\n"],"names":[],"mappings":";;;;;;;;AAWA,MAAM,IAAI,GAAG,YAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAiB,GAAG,SAAQ;AAClC;AACA,MAAM,kBAAkB,GAAG,sBAAqB;AAChD,MAAM,aAAa,GAAG,eAAc;AACpC;AACA,MAAM,uBAAuB,GAAG,2BAA0B;AAC1D,MAAM,aAAa,GAAG,aAAY;AAClC,MAAM,oBAAoB,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAC;AACpE,MAAM,uBAAuB,GAAG,CAAC,EAAE,aAAa,CAAC,WAAW,EAAC;AAC7D,MAAM,kBAAkB,GAAG,8BAA6B;AACxD,MAAM,qBAAqB,GAAG,mBAAkB;AAChD,MAAM,gBAAgB,GAAG,yBAAwB;AACjD,MAAM,qBAAqB,GAAG,WAAU;AACxC,MAAM,oBAAoB,GAAG,sBAAqB;AAClD,MAAM,qBAAqB,GAAG,4BAA2B;AACzD;AACA,MAAM,OAAO,GAAG;AAChB,EAAE,aAAa,EAAE,EAAE;AACnB,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,MAAM,EAAE,eAAe;AACzB,EAAC;AACD,MAAM,SAAS,SAAS,aAAa,CAAC;AACtC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE;AAC/B,IAAI,KAAK,CAAC,OAAO,EAAC;AAClB;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;AAC1C;AACA,IAAI,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAC;AAClF,IAAI,IAAI,CAAC,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAC;AACvE,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,GAAE;AAC9C,IAAI,IAAI,CAAC,iBAAiB,GAAG,MAAK;AAClC,IAAI,IAAI,CAAC,cAAc,GAAG,GAAE;AAC5B,IAAI,IAAI,CAAC,SAAS,GAAG,KAAI;AACzB;AACA,IAAI,IAAI,CAAC,WAAW,GAAE;AACtB,GAAG;AACH;AACA;AACA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA;AACA,EAAE,gBAAgB,CAAC,aAAa,EAAE;AAClC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,cAAa;AAC9C,GAAG;AACH;AACA,EAAE,OAAO,GAAG;AACZ;AACA,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,GAAE;AAC9B,KAAK;AACL;AACA,IAAI,KAAK,CAAC,OAAO,GAAE;AACnB,GAAG;AACH;AACA;AACA,EAAE,UAAU,CAAC,MAAM,EAAE;AACrB,IAAI,MAAM,GAAG;AACb,MAAM,GAAG,OAAO;AAChB,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrD,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;AACnD,MAAK;AACL,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,WAAW,GAAG;AAChB;AACA;AACA,IAAI,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAC;AAC7D;AACA,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,4BAA4B,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAC;AAC/G,MAAM,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,6BAA6B,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAC;AAChH,KAAK;AACL;AACA,IAAI,cAAc,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAClF,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC3C,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAC;AAC9D,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpC,UAAU,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAC;AAC9C,UAAU,IAAI,CAAC,YAAY,CAAC,IAAI,GAAE;AAClC,SAAS,MAAM;AACf,UAAU,UAAU,GAAE;AACtB,SAAS;AACT,OAAO,EAAC;AACR,KAAK,EAAC;AACN;AACA,IAAI,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM;AAC1C;AACA,MAAM,UAAU,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAC;AAC7C,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,iBAAiB,GAAG;AACtB,IAAI,IAAI,CAAC,iBAAiB,GAAG,KAAI;AACjC,GAAG;AACH,EAAE,iBAAiB,GAAG;AACtB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,GAAE;AAC5C,MAAM,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AACpC,QAAQ,EAAE,GAAE;AACZ,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,iBAAiB,GAAG,MAAK;AAClC,GAAG;AACH;AACA,EAAE,eAAe,CAAC,OAAO,EAAE;AAC3B,IAAI,MAAM,OAAO,GAAG,GAAE;AACtB,IAAI,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAC;AACxD,IAAI,IAAI,mBAAmB,GAAG,KAAI;AAClC,IAAI,IAAI,IAAI,GAAG,MAAK;AACpB,IAAI,OAAO,eAAe,IAAI,CAAC,IAAI,EAAE;AACrC,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,OAAO,CAAC,uBAAuB,EAAC;AAClF,MAAM,IAAI,mBAAmB,EAAE;AAC/B,QAAQ,MAAM,IAAI,GAAG,mBAAmB,CAAC,aAAa,CAAC,aAAa,EAAC;AACrE,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,OAAO,CAAC,IAAI,CAAC,IAAI,EAAC;AAC5B,SAAS;AACT,OAAO;AACP,MAAM,mBAAmB,GAAG,gBAAe;AAC3C,MAAM,eAAe,GAAG,CAAC,eAAe,CAAC,aAAa,IAAI,eAAe,EAAE,OAAO,CAAC,aAAa,EAAC;AACjG,MAAM,IAAI,eAAe,KAAK,mBAAmB,EAAE;AACnD,QAAQ,IAAI,GAAG,KAAI;AACnB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,OAAO;AAClB,GAAG;AACH;AACA,EAAE,gBAAgB,CAAC,IAAI,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9B,MAAM,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,EAAC;AACtF,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,GAAE;AACzC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,GAAE;AAC3C,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAC;AACvC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAC;AACvC,KAAK;AACL,GAAG;AACH;AACA,EAAE,aAAa,CAAC,IAAI,EAAE;AACtB,IAAI,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAC;AACvE,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,gBAAgB,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE;AACpE,QAAQ,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;AACvC,QAAQ,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACnC;AACA;AACA,OAAO,EAAC;AACR;AACA,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE;AAC7B,QAAQ,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;AAC3C,OAAO,MAAM;AACb,QAAQ,QAAQ,CAAC,IAAI,GAAG,KAAI;AAC5B,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,eAAe,CAAC,OAAO,EAAE;AAC3B,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,qBAAqB,EAAC;AACnE,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAC;AAClE,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,OAAM;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,MAAM,IAAI,IAAG;AAClD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,EAAC;AAClE;AACA,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK;AAC5C,QAAQ,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;AACtD,UAAU,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,GAAG,IAAG;AACrD,UAAU,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE,WAAW,EAAC;AAChE,SAAS,MAAM;AACf,UAAU,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAG;AAC3C,UAAU,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,EAAC;AACtD,SAAS;AACT,OAAO,EAAC;AACR,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,GAAG;AACd,IAAI,MAAM,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,EAAC;AAC9F,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,GAAG,qBAAoB;AACrF;AACA,IAAI,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAC;AACtE;AACA,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,GAAE;AAClD;AACA,IAAI,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK;AACzE,MAAM,IAAI,OAAO,CAAC,SAAS,GAAG,oBAAoB,IAAI,cAAc,GAAG,aAAa,EAAE;AACtF,QAAQ,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACnF,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAC;AAClD,SAAS,EAAC;AACV,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE;AACnC,UAAU,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAC;AAC1C,UAAU,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK;AACnE,YAAY,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAC;AACvD,WAAW,EAAC;AACZ,UAAU,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAC;AACrD,UAAU,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAC;AACrD,SAAS;AACT,OAAO;AACP,KAAK,EAAC;AACN,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAC;AAChD,GAAG;AACH;AACA,EAAE,eAAe,GAAG;AACpB,IAAI,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,EAAC;AAC5E,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC;AACxD,KAAK;AACL,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA,EAAE,iBAAiB,GAAG;AACtB,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE;AAC1D,MAAM,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AACzC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa;AACrC,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAC;AACpD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AAClB,EAAE,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAC;AACpC,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"navscroll.js","sources":["../../src/js/plugins/navscroll.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport 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\nimport onDocumentScroll from './util/on-document-scroll'\nimport NavBarCollapsible from './navbar-collapsible'\n\nimport { documentScrollTo } from './util/tween'\n\nconst NAME = 'navscroll'\n//const DATA_KEY = 'bs.navscroll'\n//const EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\n//const EVENT_SCROLL = `scroll${EVENT_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_NAVSCROLL = '[data-bs-navscroll]' //'.it-navscroll-wrapper'\nconst SELECTOR_LIST = 'ul.link-list'\n//const SELECTOR_ITEM = '.nav-item'\nconst SELECTOR_LINK_CONTAINER = 'li.nav-link, li.nav-item'\nconst SELECTOR_LINK = 'a.nav-link'\nconst SELECTOR_LINK_ACTIVE = `${SELECTOR_LINK}.${CLASS_NAME_ACTIVE}`\nconst SELECTOR_LINK_CLICKABLE = `${SELECTOR_LINK}[href^=\"#\"]`\nconst SELECTOR_CONTAINER = '.it-page-sections-container'\nconst SELECTOR_PAGE_SECTION = '.it-page-section'\nconst SELECTOR_TOGGLER = '.custom-navbar-toggler'\nconst SELECTOR_TOGGLER_ICON = '.it-list'\nconst SELECTOR_COLLAPSIBLE = '.navbar-collapsable'\nconst SELECTOR_PROGRESS_BAR = '.it-navscroll-progressbar'\n\nconst Default = {\n scrollPadding: 10,\n duration: 800,\n easing: 'easeInOutSine',\n}\nclass NavScroll extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n\n this._togglerElement = SelectorEngine.findOne(SELECTOR_TOGGLER, this._element)\n this._sectionContainer = SelectorEngine.findOne(SELECTOR_CONTAINER)\n this._collapsible = this._getCollapsible()\n this._isCollapseOpened = false\n this._callbackQueue = []\n this._scrollCb = null\n\n this._bindEvents()\n }\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n setScrollPadding(scrollPadding) {\n this._config.scrollPadding = scrollPadding\n }\n\n dispose() {\n //EventHandler.off(window, EVENT_SCROLL, this._onScroll)\n if (this._scrollCb) {\n this._scrollCb.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _bindEvents() {\n //EventHandler.on(window, EVENT_SCROLL, this._onScroll)\n\n this._scrollCb = onDocumentScroll(() => this._onScroll())\n\n if (this._collapsible) {\n EventHandler.on(this._collapsible._element, 'shown.bs.navbarcollapsible', () => this._onCollapseOpened())\n EventHandler.on(this._collapsible._element, 'hidden.bs.navbarcollapsible', () => this._onCollapseClosed())\n }\n\n SelectorEngine.find(SELECTOR_LINK_CLICKABLE, this._element).forEach((link) => {\n link.addEventListener('click', () => {\n const scrollHash = () => this._scrollToHash(link.hash)\n if (this._isCollapseOpened) {\n this._callbackQueue.push(scrollHash)\n this._collapsible.hide()\n } else {\n scrollHash()\n }\n })\n })\n\n EventHandler.on(window, 'load', () => {\n //if page is already scrolled\n setTimeout(() => this._onScroll(), 150)\n })\n }\n\n _onCollapseOpened() {\n this._isCollapseOpened = true\n }\n _onCollapseClosed() {\n while (this._callbackQueue.length > 0) {\n const cb = this._callbackQueue.shift()\n if (typeof cb === 'function') {\n cb()\n }\n }\n this._isCollapseOpened = false\n }\n\n _getParentLinks(element) {\n const parents = []\n let parentContainer = element.closest(SELECTOR_LIST)\n let parentContainerPrev = null\n let exit = false\n while (parentContainer && !exit) {\n const parentLinkContainer = parentContainer.closest(SELECTOR_LINK_CONTAINER)\n if (parentLinkContainer) {\n const link = parentLinkContainer.querySelector(SELECTOR_LINK)\n if (link) {\n parents.push(link)\n }\n }\n parentContainerPrev = parentContainer\n parentContainer = (parentContainer.parentElement || parentContainer).closest(SELECTOR_LIST) //avoid self select of closest\n if (parentContainer === parentContainerPrev) {\n exit = true\n }\n }\n return parents\n }\n\n _decorateToggler(text) {\n if (this._togglerElement) {\n const icon = SelectorEngine.findOne(SELECTOR_TOGGLER_ICON, this._togglerElement)\n this._togglerElement.innerText = ''\n this._togglerElement.textContent = ''\n this._togglerElement.append(icon)\n this._togglerElement.append(text)\n }\n }\n\n _scrollToHash(hash) {\n const target = SelectorEngine.findOne(hash, this._sectionContainer)\n if (target) {\n documentScrollTo(target.offsetTop - this._getScrollPadding(), {\n duration: this._config.duration,\n easing: this._config.easing,\n /*complete: () => {\n },*/\n })\n\n if (history.pushState) {\n history.pushState(null, null, hash)\n } else {\n location.hash = hash\n }\n }\n }\n\n _updateProgress(content) {\n if (!content) {\n return\n }\n const progressBars = SelectorEngine.find(SELECTOR_PROGRESS_BAR)\n if (progressBars) {\n const offset = Math.abs(content.getBoundingClientRect().top)\n const height = content.getBoundingClientRect().height\n const scrollAmount = (offset / height) * 100\n const scrollValue = Math.min(100, Math.max(0, scrollAmount))\n\n progressBars.forEach((progressBar) => {\n if (content.getBoundingClientRect().top <= 0) {\n progressBar.style.width = scrollValue + '%'\n progressBar.setAttribute('aria-valuenow', scrollValue)\n } else {\n progressBar.style.width = 0 + '%'\n progressBar.setAttribute('aria-valuenow', 0)\n }\n })\n }\n }\n\n _onScroll() {\n const sectionsContainerTop = this._sectionContainer ? this._sectionContainer.offsetTop : 0\n if (typeof document === 'undefined') {\n return\n }\n const scrollDistance = document.scrollingElement.scrollTop - sectionsContainerTop\n\n const navItems = SelectorEngine.find(SELECTOR_LINK, this._element)\n\n const scrollPadding = this._getScrollPadding()\n\n SelectorEngine.find(SELECTOR_PAGE_SECTION).forEach((pageSec, idx) => {\n if (pageSec.offsetTop - sectionsContainerTop <= scrollDistance + scrollPadding) {\n SelectorEngine.find(SELECTOR_LINK_ACTIVE, this._element).forEach((link) => {\n link.classList.remove(CLASS_NAME_ACTIVE)\n })\n if (idx < navItems.length) {\n const currActive = navItems[idx]\n this._getParentLinks(currActive).forEach((parentLink) => {\n parentLink.classList.add(CLASS_NAME_ACTIVE)\n })\n currActive.classList.add(CLASS_NAME_ACTIVE)\n this._decorateToggler(currActive.innerText)\n }\n }\n })\n this._updateProgress(this._sectionContainer)\n }\n\n _getCollapsible() {\n const coll = SelectorEngine.findOne(SELECTOR_COLLAPSIBLE, this._element)\n if (coll) {\n return NavBarCollapsible.getOrCreateInstance(coll)\n }\n return null\n }\n\n _getScrollPadding() {\n if (typeof this._config.scrollPadding === 'function') {\n return this._config.scrollPadding()\n }\n return this._config.scrollPadding\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst navs = SelectorEngine.find(SELECTOR_NAVSCROLL)\nnavs.map((nav) => {\n NavScroll.getOrCreateInstance(nav)\n})\n\nexport default NavScroll\n"],"names":[],"mappings":"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"}
|
|
@@ -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 { 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":";;;;;;AAMA,MAAM,IAAI,GAAG
|
|
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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"}
|