bootstrap-italia 2.11.1 → 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.
Files changed (69) hide show
  1. package/dist/css/bootstrap-italia.min.css +1 -1
  2. package/dist/css/bootstrap-italia.min.css.map +1 -1
  3. package/dist/js/bootstrap-italia.bundle.min.js +17 -510
  4. package/dist/js/bootstrap-italia.min.js +3 -234
  5. package/dist/plugins/accept-overlay.js.map +1 -1
  6. package/dist/plugins/accordion.js.map +1 -1
  7. package/dist/plugins/backToTop.js.map +1 -1
  8. package/dist/plugins/carousel-bi.js.map +1 -1
  9. package/dist/plugins/cookiebar.js.map +1 -1
  10. package/dist/plugins/dimmer.js.map +1 -1
  11. package/dist/plugins/fonts-loader.js.map +1 -1
  12. package/dist/plugins/form-validate.js.map +1 -1
  13. package/dist/plugins/forward.js.map +1 -1
  14. package/dist/plugins/header-sticky.js +0 -1
  15. package/dist/plugins/header-sticky.js.map +1 -1
  16. package/dist/plugins/history-back.js.map +1 -1
  17. package/dist/plugins/init.js.map +1 -1
  18. package/dist/plugins/input-label.js.map +1 -1
  19. package/dist/plugins/input-number.js.map +1 -1
  20. package/dist/plugins/input-password.js.map +1 -1
  21. package/dist/plugins/input-search-autocomplete.js +1 -0
  22. package/dist/plugins/input-search-autocomplete.js.map +1 -1
  23. package/dist/plugins/input.js.map +1 -1
  24. package/dist/plugins/list.js.map +1 -1
  25. package/dist/plugins/masonry.js.map +1 -1
  26. package/dist/plugins/navbar-collapsible.js.map +1 -1
  27. package/dist/plugins/navscroll.js.map +1 -1
  28. package/dist/plugins/notification.js.map +1 -1
  29. package/dist/plugins/progress-donut.js.map +1 -1
  30. package/dist/plugins/select-autocomplete.js.map +1 -1
  31. package/dist/plugins/sticky.js.map +1 -1
  32. package/dist/plugins/tab.js.map +1 -1
  33. package/dist/plugins/track-focus.js.map +1 -1
  34. package/dist/plugins/transfer.js.map +1 -1
  35. package/dist/plugins/upload-dragdrop.js.map +1 -1
  36. package/dist/plugins/util/cookies.js.map +1 -1
  37. package/dist/plugins/util/device.js.map +1 -1
  38. package/dist/plugins/util/dom.js.map +1 -1
  39. package/dist/plugins/util/observer.js +2 -2
  40. package/dist/plugins/util/observer.js.map +1 -1
  41. package/dist/plugins/util/on-document-scroll.js.map +1 -1
  42. package/dist/plugins/util/pageScroll.js.map +1 -1
  43. package/dist/plugins/util/tween.js.map +1 -1
  44. package/dist/plugins/util/youtube-video.js.map +1 -1
  45. package/dist/plugins/videoplayer.js.map +1 -1
  46. package/dist/version.js +2 -2
  47. package/dist/version.js.map +1 -1
  48. package/package.json +24 -22
  49. package/src/js/plugins/header-sticky.js +0 -1
  50. package/src/js/plugins/util/observer.js +2 -2
  51. package/src/js/version.js +2 -2
  52. package/src/scss/_variables.scss +3 -4
  53. package/src/scss/custom/_back-to-top.scss +10 -2
  54. package/src/scss/custom/_badge.scss +5 -1
  55. package/src/scss/custom/_buttons.scss +2 -20
  56. package/src/scss/custom/_card.scss +15 -5
  57. package/src/scss/custom/_carousel.scss +6 -0
  58. package/src/scss/custom/_chips.scss +6 -9
  59. package/src/scss/custom/_footer.scss +7 -1
  60. package/src/scss/custom/_form-datepicker.scss +0 -1
  61. package/src/scss/custom/_form-input-file.scss +0 -1
  62. package/src/scss/custom/_form-input-upload.scss +4 -10
  63. package/src/scss/custom/_form-toggles.scss +4 -1
  64. package/src/scss/custom/_forms.scss +24 -14
  65. package/src/scss/custom/_navscroll.scss +6 -2
  66. package/src/scss/custom/_version.scss +1 -1
  67. package/src/scss/custom/mixins/_buttons.scss +11 -42
  68. package/src/scss/utilities/colors_vars.scss +1 -0
  69. package/src/scss/utilities/focus.scss +76 -4
@@ -1 +1 @@
1
- {"version":3,"file":"youtube-video.js","sources":["../../../src/js/plugins/util/youtube-video.js"],"sourcesContent":["/* The MIT License (MIT)\n\nCopyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE. */\n/*global define, YT*/\nconst initYoutubePlugin = (videojs) => {\n\n const _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID;\n const Tech = videojs.getTech('Tech');\n\n class Youtube extends Tech {\n\n constructor(options, ready) {\n super(options, ready);\n\n this.setPoster(options.poster);\n this.setSrc(this.options_.source, true);\n\n // Set the vjs-youtube class to the player\n // Parent is not set yet so we have to wait a tick\n this.setTimeout(function () {\n if (this.el_) {\n this.el_.parentNode.className += ' vjs-youtube';\n\n if (_isOnMobile) {\n this.el_.parentNode.className += ' vjs-youtube-mobile';\n }\n\n if (Youtube.isApiReady) {\n this.initYTPlayer();\n } else {\n Youtube.apiReadyQueue.push(this);\n }\n }\n }.bind(this));\n }\n\n dispose() {\n if (this.ytPlayer) {\n //Dispose of the YouTube Player\n if (this.ytPlayer.stopVideo) {\n this.ytPlayer.stopVideo();\n }\n if (this.ytPlayer.destroy) {\n this.ytPlayer.destroy();\n }\n } else {\n //YouTube API hasn't finished loading or the player is already disposed\n var index = Youtube.apiReadyQueue.indexOf(this);\n if (index !== -1) {\n Youtube.apiReadyQueue.splice(index, 1);\n }\n }\n this.ytPlayer = null;\n\n this.el_.parentNode.className = this.el_.parentNode.className\n .replace(' vjs-youtube', '')\n .replace(' vjs-youtube-mobile', '');\n this.el_.parentNode.removeChild(this.el_);\n\n //Needs to be called after the YouTube player is destroyed, otherwise there will be a null reference exception\n Tech.prototype.dispose.call(this);\n }\n\n createEl() {\n if (typeof document === 'undefined') {\n return\n }\n var div = document.createElement('div');\n div.setAttribute('id', this.options_.techId);\n div.setAttribute('style', 'width:100%;height:100%;top:0;left:0;position:absolute');\n div.setAttribute('class', 'vjs-tech');\n\n var divWrapper = document.createElement('div');\n divWrapper.appendChild(div);\n\n if (!_isOnMobile && !this.options_.ytControls) {\n var divBlocker = document.createElement('div');\n divBlocker.setAttribute('class', 'vjs-iframe-blocker');\n divBlocker.setAttribute('style', 'position:absolute;top:0;left:0;width:100%;height:100%');\n\n // In case the blocker is still there and we want to pause\n divBlocker.onclick = function () {\n this.pause();\n }.bind(this);\n\n divWrapper.appendChild(divBlocker);\n }\n\n return divWrapper;\n }\n\n initYTPlayer() {\n var playerVars = {\n controls: 0,\n modestbranding: 1,\n rel: 0,\n showinfo: 0,\n loop: this.options_.loop ? 1 : 0\n };\n\n // Let the user set any YouTube parameter\n // https://developers.google.com/youtube/player_parameters?playerVersion=HTML5#Parameters\n // To use YouTube controls, you must use ytControls instead\n // To use the loop or autoplay, use the video.js settings\n\n if (typeof this.options_.autohide !== 'undefined') {\n playerVars.autohide = this.options_.autohide;\n }\n\n if (typeof this.options_['cc_load_policy'] !== 'undefined') {\n playerVars['cc_load_policy'] = this.options_['cc_load_policy'];\n }\n\n if (typeof this.options_.ytControls !== 'undefined') {\n playerVars.controls = this.options_.ytControls;\n }\n\n if (typeof this.options_.disablekb !== 'undefined') {\n playerVars.disablekb = this.options_.disablekb;\n }\n\n if (typeof this.options_.color !== 'undefined') {\n playerVars.color = this.options_.color;\n }\n\n if (!playerVars.controls) {\n // Let video.js handle the fullscreen unless it is the YouTube native controls\n playerVars.fs = 0;\n } else if (typeof this.options_.fs !== 'undefined') {\n playerVars.fs = this.options_.fs;\n }\n\n if (this.options_.source.src.indexOf('end=') !== -1) {\n var srcEndTime = this.options_.source.src.match(/end=([0-9]*)/);\n this.options_.end = parseInt(srcEndTime[1]);\n }\n\n if (typeof this.options_.end !== 'undefined') {\n playerVars.end = this.options_.end;\n }\n\n if (typeof this.options_.hl !== 'undefined') {\n playerVars.hl = this.options_.hl;\n } else if (typeof this.options_.language !== 'undefined') {\n // Set the YouTube player on the same language than video.js\n playerVars.hl = this.options_.language.substr(0, 2);\n }\n\n if (typeof this.options_['iv_load_policy'] !== 'undefined') {\n playerVars['iv_load_policy'] = this.options_['iv_load_policy'];\n }\n\n if (typeof this.options_.list !== 'undefined') {\n playerVars.list = this.options_.list;\n } else if (this.url && typeof this.url.listId !== 'undefined') {\n playerVars.list = this.url.listId;\n }\n\n if (typeof this.options_.listType !== 'undefined') {\n playerVars.listType = this.options_.listType;\n }\n\n if (typeof this.options_.modestbranding !== 'undefined') {\n playerVars.modestbranding = this.options_.modestbranding;\n }\n\n if (typeof this.options_.playlist !== 'undefined') {\n playerVars.playlist = this.options_.playlist;\n }\n\n if (typeof this.options_.playsinline !== 'undefined') {\n playerVars.playsinline = this.options_.playsinline;\n }\n\n if (typeof this.options_.rel !== 'undefined') {\n playerVars.rel = this.options_.rel;\n }\n\n if (typeof this.options_.showinfo !== 'undefined') {\n playerVars.showinfo = this.options_.showinfo;\n }\n\n if (this.options_.source.src.indexOf('start=') !== -1) {\n var srcStartTime = this.options_.source.src.match(/start=([0-9]*)/);\n this.options_.start = parseInt(srcStartTime[1]);\n }\n\n if (typeof this.options_.start !== 'undefined') {\n playerVars.start = this.options_.start;\n }\n\n if (typeof this.options_.theme !== 'undefined') {\n playerVars.theme = this.options_.theme;\n }\n\n // Allow undocumented options to be passed along via customVars\n if (typeof this.options_.customVars !== 'undefined') {\n var customVars = this.options_.customVars;\n Object.keys(customVars).forEach(function (key) {\n playerVars[key] = customVars[key];\n });\n }\n\n this.activeVideoId = this.url ? this.url.videoId : null;\n this.activeList = playerVars.list;\n\n var playerConfig = {\n videoId: this.activeVideoId,\n playerVars: playerVars,\n events: {\n onReady: this.onPlayerReady.bind(this),\n onPlaybackQualityChange: this.onPlayerPlaybackQualityChange.bind(this),\n onPlaybackRateChange: this.onPlayerPlaybackRateChange.bind(this),\n onStateChange: this.onPlayerStateChange.bind(this),\n onVolumeChange: this.onPlayerVolumeChange.bind(this),\n onError: this.onPlayerError.bind(this)\n }\n };\n\n if (typeof this.options_.enablePrivacyEnhancedMode !== 'undefined' && this.options_.enablePrivacyEnhancedMode) {\n playerConfig.host = 'https://www.youtube-nocookie.com';\n }\n\n this.ytPlayer = new YT.Player(this.options_.techId, playerConfig);\n }\n\n onPlayerReady() {\n if (this.options_.muted) {\n this.ytPlayer.mute();\n }\n\n var playbackRates = this.ytPlayer.getAvailablePlaybackRates();\n if (playbackRates.length > 1) {\n this.featuresPlaybackRate = true;\n }\n\n this.playerReady_ = true;\n this.triggerReady();\n\n if (this.playOnReady) {\n this.play();\n } else if (this.cueOnReady) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n }\n\n onPlayerPlaybackQualityChange() {\n\n }\n\n onPlayerPlaybackRateChange() {\n this.trigger('ratechange');\n }\n\n onPlayerStateChange(e) {\n var state = e.data;\n\n if (state === this.lastState || this.errorNumber) {\n return;\n }\n\n this.lastState = state;\n\n switch (state) {\n case -1:\n this.trigger('loadstart');\n this.trigger('loadedmetadata');\n this.trigger('durationchange');\n this.trigger('ratechange');\n break;\n\n case YT.PlayerState.ENDED:\n this.trigger('ended');\n break;\n\n case YT.PlayerState.PLAYING:\n this.trigger('timeupdate');\n this.trigger('durationchange');\n this.trigger('playing');\n this.trigger('play');\n\n if (this.isSeeking) {\n this.onSeeked();\n }\n break;\n\n case YT.PlayerState.PAUSED:\n this.trigger('canplay');\n if (this.isSeeking) {\n this.onSeeked();\n } else {\n this.trigger('pause');\n }\n break;\n\n case YT.PlayerState.BUFFERING:\n this.player_.trigger('timeupdate');\n this.player_.trigger('waiting');\n break;\n }\n }\n\n onPlayerVolumeChange() {\n this.trigger('volumechange');\n }\n\n onPlayerError(e) {\n this.errorNumber = e.data;\n this.trigger('pause');\n this.trigger('error');\n }\n\n error() {\n var code = 1000 + this.errorNumber; // as smaller codes are reserved\n switch (this.errorNumber) {\n case 5:\n return { code: code, message: 'Error while trying to play the video' };\n\n case 2:\n case 100:\n return { code: code, message: 'Unable to find the video' };\n\n case 101:\n case 150:\n return {\n code: code,\n message: 'Playback on other Websites has been disabled by the video owner.'\n };\n }\n\n return { code: code, message: 'YouTube unknown error (' + this.errorNumber + ')' };\n }\n\n loadVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.loadVideoById(options);\n }\n\n cueVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.cueVideoById(options);\n }\n\n src(src) {\n if (src) {\n this.setSrc({ src: src });\n }\n\n return this.source;\n }\n\n poster() {\n // You can't start programmaticlly a video with a mobile\n // through the iframe so we hide the poster and the play button (with CSS)\n if (_isOnMobile) {\n return null;\n }\n\n return this.poster_;\n }\n\n setPoster(poster) {\n this.poster_ = poster;\n }\n\n setSrc(source) {\n if (!source || !source.src) {\n return;\n }\n\n delete this.errorNumber;\n this.source = source;\n this.url = Youtube.parseUrl(source.src);\n\n if (!this.options_.poster) {\n if (this.url.videoId) {\n // Set the low resolution first\n this.poster_ = 'https://img.youtube.com/vi/' + this.url.videoId + '/0.jpg';\n this.trigger('posterchange');\n\n // Check if their is a high res\n this.checkHighResPoster();\n }\n }\n\n if (this.options_.autoplay && !_isOnMobile) {\n if (this.isReady_) {\n this.play();\n } else {\n this.playOnReady = true;\n }\n } else if (this.activeVideoId !== this.url.videoId) {\n if (this.isReady_) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n } else {\n this.cueOnReady = true;\n }\n }\n }\n\n autoplay() {\n return this.options_.autoplay;\n }\n\n setAutoplay(val) {\n this.options_.autoplay = val;\n }\n\n loop() {\n return this.options_.loop;\n }\n\n setLoop(val) {\n this.options_.loop = val;\n }\n\n play() {\n if (!this.url || !this.url.videoId) {\n return;\n }\n\n this.wasPausedBeforeSeek = false;\n\n if (this.isReady_) {\n if (this.url.listId) {\n if (this.activeList === this.url.listId) {\n this.ytPlayer.playVideo();\n } else {\n this.ytPlayer.loadPlaylist(this.url.listId);\n this.activeList = this.url.listId;\n }\n }\n\n if (this.activeVideoId === this.url.videoId) {\n this.ytPlayer.playVideo();\n } else {\n this.loadVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n } else {\n this.trigger('waiting');\n this.playOnReady = true;\n }\n }\n\n pause() {\n if (this.ytPlayer) {\n this.ytPlayer.pauseVideo();\n }\n }\n\n paused() {\n return (this.ytPlayer) ?\n (this.lastState !== YT.PlayerState.PLAYING && this.lastState !== YT.PlayerState.BUFFERING)\n : true;\n }\n\n currentTime() {\n return this.ytPlayer ? this.ytPlayer.getCurrentTime() : 0;\n }\n\n setCurrentTime(seconds) {\n if (this.lastState === YT.PlayerState.PAUSED) {\n this.timeBeforeSeek = this.currentTime();\n }\n\n if (!this.isSeeking) {\n this.wasPausedBeforeSeek = this.paused();\n }\n\n this.ytPlayer.seekTo(seconds, true);\n this.trigger('timeupdate');\n this.trigger('seeking');\n this.isSeeking = true;\n\n // A seek event during pause does not return an event to trigger a seeked event,\n // so run an interval timer to look for the currentTime to change\n if (this.lastState === YT.PlayerState.PAUSED && this.timeBeforeSeek !== seconds) {\n clearInterval(this.checkSeekedInPauseInterval);\n this.checkSeekedInPauseInterval = setInterval(function () {\n if (this.lastState !== YT.PlayerState.PAUSED || !this.isSeeking) {\n // If something changed while we were waiting for the currentTime to change,\n // clear the interval timer\n clearInterval(this.checkSeekedInPauseInterval);\n } else if (this.currentTime() !== this.timeBeforeSeek) {\n this.trigger('timeupdate');\n this.onSeeked();\n }\n }.bind(this), 250);\n }\n }\n\n seeking() {\n return this.isSeeking;\n }\n\n seekable() {\n if (!this.ytPlayer) {\n return videojs.createTimeRange();\n }\n\n return videojs.createTimeRange(0, this.ytPlayer.getDuration());\n }\n\n onSeeked() {\n clearInterval(this.checkSeekedInPauseInterval);\n this.isSeeking = false;\n\n if (this.wasPausedBeforeSeek) {\n this.pause();\n }\n\n this.trigger('seeked');\n }\n\n playbackRate() {\n return this.ytPlayer ? this.ytPlayer.getPlaybackRate() : 1;\n }\n\n setPlaybackRate(suggestedRate) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setPlaybackRate(suggestedRate);\n }\n\n duration() {\n return this.ytPlayer ? this.ytPlayer.getDuration() : 0;\n }\n\n currentSrc() {\n return this.source && this.source.src;\n }\n\n ended() {\n return this.ytPlayer ? (this.lastState === YT.PlayerState.ENDED) : false;\n }\n\n volume() {\n return this.ytPlayer ? this.ytPlayer.getVolume() / 100.0 : 1;\n }\n\n setVolume(percentAsDecimal) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setVolume(percentAsDecimal * 100.0);\n }\n\n muted() {\n return this.ytPlayer ? this.ytPlayer.isMuted() : false;\n }\n\n setMuted(mute) {\n if (!this.ytPlayer) {\n return;\n }\n else {\n this.muted(true);\n }\n\n if (mute) {\n this.ytPlayer.mute();\n } else {\n this.ytPlayer.unMute();\n }\n this.setTimeout(function () {\n this.trigger('volumechange');\n }, 50);\n }\n\n buffered() {\n if (!this.ytPlayer || !this.ytPlayer.getVideoLoadedFraction) {\n return videojs.createTimeRange();\n }\n\n var bufferedEnd = this.ytPlayer.getVideoLoadedFraction() * this.ytPlayer.getDuration();\n\n return videojs.createTimeRange(0, bufferedEnd);\n }\n\n // TODO: Can we really do something with this on YouTUbe?\n preload() { }\n load() { }\n reset() { }\n networkState() {\n if (!this.ytPlayer) {\n return 0; //NETWORK_EMPTY\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //NETWORK_EMPTY\n case 3: //buffering\n return 2; //NETWORK_LOADING\n default:\n return 1; //NETWORK_IDLE\n }\n }\n readyState() {\n if (!this.ytPlayer) {\n return 0; //HAVE_NOTHING\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //HAVE_NOTHING\n case 5: //video cued\n return 1; //HAVE_METADATA\n case 3: //buffering\n return 2; //HAVE_CURRENT_DATA\n default:\n return 4; //HAVE_ENOUGH_DATA\n }\n }\n\n supportsFullScreen() {\n if (typeof document === 'undefined') {\n return\n }\n return document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled;\n }\n\n // Tries to get the highest resolution thumbnail available for the video\n checkHighResPoster() {\n var uri = 'https://img.youtube.com/vi/' + this.url.videoId + '/maxresdefault.jpg';\n\n try {\n var image = new Image();\n image.onload = function () {\n // Onload may still be called if YouTube returns the 120x90 error thumbnail\n if ('naturalHeight' in image) {\n if (image.naturalHeight <= 90 || image.naturalWidth <= 120) {\n return;\n }\n } else if (image.height <= 90 || image.width <= 120) {\n return;\n }\n\n this.poster_ = uri;\n this.trigger('posterchange');\n }.bind(this);\n image.onerror = function () { };\n image.src = uri;\n }\n catch (e) { }\n }\n }\n\n Youtube.isSupported = function () {\n return true;\n };\n\n Youtube.canPlaySource = function (e) {\n return Youtube.canPlayType(e.type);\n };\n\n Youtube.canPlayType = function (e) {\n return (e === 'video/youtube');\n };\n\n Youtube.parseUrl = function (url) {\n var result = {\n videoId: null\n };\n\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n var match = url.match(regex);\n\n if (match && match[2].length === 11) {\n result.videoId = match[2];\n }\n\n var regPlaylist = /[?&]list=([^#\\&\\?]+)/;\n match = url.match(regPlaylist);\n\n if (match && match[1]) {\n result.listId = match[1];\n }\n\n return result;\n };\n\n function apiLoaded() {\n YT.ready(function () {\n Youtube.isApiReady = true;\n\n for (var i = 0; i < Youtube.apiReadyQueue.length; ++i) {\n Youtube.apiReadyQueue[i].initYTPlayer();\n }\n });\n }\n\n function loadScript(src, callback) {\n if (typeof document === 'undefined') {\n return\n }\n var loaded = false;\n var tag = document.createElement('script');\n var firstScriptTag = document.getElementsByTagName('script')[0];\n if (!firstScriptTag) {\n // when loaded in jest without jsdom setup it doesn't get any element.\n // In jest it doesn't really make sense to do anything, because no one is watching youtube in jest\n return;\n }\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n tag.onload = function () {\n if (!loaded) {\n loaded = true;\n callback();\n }\n };\n tag.onreadystatechange = function () {\n if (!loaded && (this.readyState === 'complete' || this.readyState === 'loaded')) {\n loaded = true;\n callback();\n }\n };\n tag.src = src;\n }\n\n function injectCss() {\n if (typeof document === 'undefined') {\n return\n }\n var css = // iframe blocker to catch mouse events\n '.vjs-youtube .vjs-iframe-blocker { display: none; }' +\n '.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +\n '.vjs-youtube .vjs-poster { background-size: cover; }' +\n '.vjs-youtube-mobile .vjs-big-play-button { display: none; }';\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n\n Youtube.apiReadyQueue = [];\n\n if (typeof document !== 'undefined') {\n loadScript('https://www.youtube.com/iframe_api', apiLoaded);\n injectCss();\n }\n\n // Older versions of VJS5 doesn't have the registerTech function\n if (typeof videojs.registerTech !== 'undefined') {\n videojs.registerTech('Youtube', Youtube);\n } else {\n videojs.registerComponent('Youtube', Youtube);\n }\n}\n\nexport { initYoutubePlugin }"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"youtube-video.js","sources":["../../../src/js/plugins/util/youtube-video.js"],"sourcesContent":["/* The MIT License (MIT)\n\nCopyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE. */\n/*global define, YT*/\nconst initYoutubePlugin = (videojs) => {\n\n const _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID;\n const Tech = videojs.getTech('Tech');\n\n class Youtube extends Tech {\n\n constructor(options, ready) {\n super(options, ready);\n\n this.setPoster(options.poster);\n this.setSrc(this.options_.source, true);\n\n // Set the vjs-youtube class to the player\n // Parent is not set yet so we have to wait a tick\n this.setTimeout(function () {\n if (this.el_) {\n this.el_.parentNode.className += ' vjs-youtube';\n\n if (_isOnMobile) {\n this.el_.parentNode.className += ' vjs-youtube-mobile';\n }\n\n if (Youtube.isApiReady) {\n this.initYTPlayer();\n } else {\n Youtube.apiReadyQueue.push(this);\n }\n }\n }.bind(this));\n }\n\n dispose() {\n if (this.ytPlayer) {\n //Dispose of the YouTube Player\n if (this.ytPlayer.stopVideo) {\n this.ytPlayer.stopVideo();\n }\n if (this.ytPlayer.destroy) {\n this.ytPlayer.destroy();\n }\n } else {\n //YouTube API hasn't finished loading or the player is already disposed\n var index = Youtube.apiReadyQueue.indexOf(this);\n if (index !== -1) {\n Youtube.apiReadyQueue.splice(index, 1);\n }\n }\n this.ytPlayer = null;\n\n this.el_.parentNode.className = this.el_.parentNode.className\n .replace(' vjs-youtube', '')\n .replace(' vjs-youtube-mobile', '');\n this.el_.parentNode.removeChild(this.el_);\n\n //Needs to be called after the YouTube player is destroyed, otherwise there will be a null reference exception\n Tech.prototype.dispose.call(this);\n }\n\n createEl() {\n if (typeof document === 'undefined') {\n return\n }\n var div = document.createElement('div');\n div.setAttribute('id', this.options_.techId);\n div.setAttribute('style', 'width:100%;height:100%;top:0;left:0;position:absolute');\n div.setAttribute('class', 'vjs-tech');\n\n var divWrapper = document.createElement('div');\n divWrapper.appendChild(div);\n\n if (!_isOnMobile && !this.options_.ytControls) {\n var divBlocker = document.createElement('div');\n divBlocker.setAttribute('class', 'vjs-iframe-blocker');\n divBlocker.setAttribute('style', 'position:absolute;top:0;left:0;width:100%;height:100%');\n\n // In case the blocker is still there and we want to pause\n divBlocker.onclick = function () {\n this.pause();\n }.bind(this);\n\n divWrapper.appendChild(divBlocker);\n }\n\n return divWrapper;\n }\n\n initYTPlayer() {\n var playerVars = {\n controls: 0,\n modestbranding: 1,\n rel: 0,\n showinfo: 0,\n loop: this.options_.loop ? 1 : 0\n };\n\n // Let the user set any YouTube parameter\n // https://developers.google.com/youtube/player_parameters?playerVersion=HTML5#Parameters\n // To use YouTube controls, you must use ytControls instead\n // To use the loop or autoplay, use the video.js settings\n\n if (typeof this.options_.autohide !== 'undefined') {\n playerVars.autohide = this.options_.autohide;\n }\n\n if (typeof this.options_['cc_load_policy'] !== 'undefined') {\n playerVars['cc_load_policy'] = this.options_['cc_load_policy'];\n }\n\n if (typeof this.options_.ytControls !== 'undefined') {\n playerVars.controls = this.options_.ytControls;\n }\n\n if (typeof this.options_.disablekb !== 'undefined') {\n playerVars.disablekb = this.options_.disablekb;\n }\n\n if (typeof this.options_.color !== 'undefined') {\n playerVars.color = this.options_.color;\n }\n\n if (!playerVars.controls) {\n // Let video.js handle the fullscreen unless it is the YouTube native controls\n playerVars.fs = 0;\n } else if (typeof this.options_.fs !== 'undefined') {\n playerVars.fs = this.options_.fs;\n }\n\n if (this.options_.source.src.indexOf('end=') !== -1) {\n var srcEndTime = this.options_.source.src.match(/end=([0-9]*)/);\n this.options_.end = parseInt(srcEndTime[1]);\n }\n\n if (typeof this.options_.end !== 'undefined') {\n playerVars.end = this.options_.end;\n }\n\n if (typeof this.options_.hl !== 'undefined') {\n playerVars.hl = this.options_.hl;\n } else if (typeof this.options_.language !== 'undefined') {\n // Set the YouTube player on the same language than video.js\n playerVars.hl = this.options_.language.substr(0, 2);\n }\n\n if (typeof this.options_['iv_load_policy'] !== 'undefined') {\n playerVars['iv_load_policy'] = this.options_['iv_load_policy'];\n }\n\n if (typeof this.options_.list !== 'undefined') {\n playerVars.list = this.options_.list;\n } else if (this.url && typeof this.url.listId !== 'undefined') {\n playerVars.list = this.url.listId;\n }\n\n if (typeof this.options_.listType !== 'undefined') {\n playerVars.listType = this.options_.listType;\n }\n\n if (typeof this.options_.modestbranding !== 'undefined') {\n playerVars.modestbranding = this.options_.modestbranding;\n }\n\n if (typeof this.options_.playlist !== 'undefined') {\n playerVars.playlist = this.options_.playlist;\n }\n\n if (typeof this.options_.playsinline !== 'undefined') {\n playerVars.playsinline = this.options_.playsinline;\n }\n\n if (typeof this.options_.rel !== 'undefined') {\n playerVars.rel = this.options_.rel;\n }\n\n if (typeof this.options_.showinfo !== 'undefined') {\n playerVars.showinfo = this.options_.showinfo;\n }\n\n if (this.options_.source.src.indexOf('start=') !== -1) {\n var srcStartTime = this.options_.source.src.match(/start=([0-9]*)/);\n this.options_.start = parseInt(srcStartTime[1]);\n }\n\n if (typeof this.options_.start !== 'undefined') {\n playerVars.start = this.options_.start;\n }\n\n if (typeof this.options_.theme !== 'undefined') {\n playerVars.theme = this.options_.theme;\n }\n\n // Allow undocumented options to be passed along via customVars\n if (typeof this.options_.customVars !== 'undefined') {\n var customVars = this.options_.customVars;\n Object.keys(customVars).forEach(function (key) {\n playerVars[key] = customVars[key];\n });\n }\n\n this.activeVideoId = this.url ? this.url.videoId : null;\n this.activeList = playerVars.list;\n\n var playerConfig = {\n videoId: this.activeVideoId,\n playerVars: playerVars,\n events: {\n onReady: this.onPlayerReady.bind(this),\n onPlaybackQualityChange: this.onPlayerPlaybackQualityChange.bind(this),\n onPlaybackRateChange: this.onPlayerPlaybackRateChange.bind(this),\n onStateChange: this.onPlayerStateChange.bind(this),\n onVolumeChange: this.onPlayerVolumeChange.bind(this),\n onError: this.onPlayerError.bind(this)\n }\n };\n\n if (typeof this.options_.enablePrivacyEnhancedMode !== 'undefined' && this.options_.enablePrivacyEnhancedMode) {\n playerConfig.host = 'https://www.youtube-nocookie.com';\n }\n\n this.ytPlayer = new YT.Player(this.options_.techId, playerConfig);\n }\n\n onPlayerReady() {\n if (this.options_.muted) {\n this.ytPlayer.mute();\n }\n\n var playbackRates = this.ytPlayer.getAvailablePlaybackRates();\n if (playbackRates.length > 1) {\n this.featuresPlaybackRate = true;\n }\n\n this.playerReady_ = true;\n this.triggerReady();\n\n if (this.playOnReady) {\n this.play();\n } else if (this.cueOnReady) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n }\n\n onPlayerPlaybackQualityChange() {\n\n }\n\n onPlayerPlaybackRateChange() {\n this.trigger('ratechange');\n }\n\n onPlayerStateChange(e) {\n var state = e.data;\n\n if (state === this.lastState || this.errorNumber) {\n return;\n }\n\n this.lastState = state;\n\n switch (state) {\n case -1:\n this.trigger('loadstart');\n this.trigger('loadedmetadata');\n this.trigger('durationchange');\n this.trigger('ratechange');\n break;\n\n case YT.PlayerState.ENDED:\n this.trigger('ended');\n break;\n\n case YT.PlayerState.PLAYING:\n this.trigger('timeupdate');\n this.trigger('durationchange');\n this.trigger('playing');\n this.trigger('play');\n\n if (this.isSeeking) {\n this.onSeeked();\n }\n break;\n\n case YT.PlayerState.PAUSED:\n this.trigger('canplay');\n if (this.isSeeking) {\n this.onSeeked();\n } else {\n this.trigger('pause');\n }\n break;\n\n case YT.PlayerState.BUFFERING:\n this.player_.trigger('timeupdate');\n this.player_.trigger('waiting');\n break;\n }\n }\n\n onPlayerVolumeChange() {\n this.trigger('volumechange');\n }\n\n onPlayerError(e) {\n this.errorNumber = e.data;\n this.trigger('pause');\n this.trigger('error');\n }\n\n error() {\n var code = 1000 + this.errorNumber; // as smaller codes are reserved\n switch (this.errorNumber) {\n case 5:\n return { code: code, message: 'Error while trying to play the video' };\n\n case 2:\n case 100:\n return { code: code, message: 'Unable to find the video' };\n\n case 101:\n case 150:\n return {\n code: code,\n message: 'Playback on other Websites has been disabled by the video owner.'\n };\n }\n\n return { code: code, message: 'YouTube unknown error (' + this.errorNumber + ')' };\n }\n\n loadVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.loadVideoById(options);\n }\n\n cueVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.cueVideoById(options);\n }\n\n src(src) {\n if (src) {\n this.setSrc({ src: src });\n }\n\n return this.source;\n }\n\n poster() {\n // You can't start programmaticlly a video with a mobile\n // through the iframe so we hide the poster and the play button (with CSS)\n if (_isOnMobile) {\n return null;\n }\n\n return this.poster_;\n }\n\n setPoster(poster) {\n this.poster_ = poster;\n }\n\n setSrc(source) {\n if (!source || !source.src) {\n return;\n }\n\n delete this.errorNumber;\n this.source = source;\n this.url = Youtube.parseUrl(source.src);\n\n if (!this.options_.poster) {\n if (this.url.videoId) {\n // Set the low resolution first\n this.poster_ = 'https://img.youtube.com/vi/' + this.url.videoId + '/0.jpg';\n this.trigger('posterchange');\n\n // Check if their is a high res\n this.checkHighResPoster();\n }\n }\n\n if (this.options_.autoplay && !_isOnMobile) {\n if (this.isReady_) {\n this.play();\n } else {\n this.playOnReady = true;\n }\n } else if (this.activeVideoId !== this.url.videoId) {\n if (this.isReady_) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n } else {\n this.cueOnReady = true;\n }\n }\n }\n\n autoplay() {\n return this.options_.autoplay;\n }\n\n setAutoplay(val) {\n this.options_.autoplay = val;\n }\n\n loop() {\n return this.options_.loop;\n }\n\n setLoop(val) {\n this.options_.loop = val;\n }\n\n play() {\n if (!this.url || !this.url.videoId) {\n return;\n }\n\n this.wasPausedBeforeSeek = false;\n\n if (this.isReady_) {\n if (this.url.listId) {\n if (this.activeList === this.url.listId) {\n this.ytPlayer.playVideo();\n } else {\n this.ytPlayer.loadPlaylist(this.url.listId);\n this.activeList = this.url.listId;\n }\n }\n\n if (this.activeVideoId === this.url.videoId) {\n this.ytPlayer.playVideo();\n } else {\n this.loadVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n } else {\n this.trigger('waiting');\n this.playOnReady = true;\n }\n }\n\n pause() {\n if (this.ytPlayer) {\n this.ytPlayer.pauseVideo();\n }\n }\n\n paused() {\n return (this.ytPlayer) ?\n (this.lastState !== YT.PlayerState.PLAYING && this.lastState !== YT.PlayerState.BUFFERING)\n : true;\n }\n\n currentTime() {\n return this.ytPlayer ? this.ytPlayer.getCurrentTime() : 0;\n }\n\n setCurrentTime(seconds) {\n if (this.lastState === YT.PlayerState.PAUSED) {\n this.timeBeforeSeek = this.currentTime();\n }\n\n if (!this.isSeeking) {\n this.wasPausedBeforeSeek = this.paused();\n }\n\n this.ytPlayer.seekTo(seconds, true);\n this.trigger('timeupdate');\n this.trigger('seeking');\n this.isSeeking = true;\n\n // A seek event during pause does not return an event to trigger a seeked event,\n // so run an interval timer to look for the currentTime to change\n if (this.lastState === YT.PlayerState.PAUSED && this.timeBeforeSeek !== seconds) {\n clearInterval(this.checkSeekedInPauseInterval);\n this.checkSeekedInPauseInterval = setInterval(function () {\n if (this.lastState !== YT.PlayerState.PAUSED || !this.isSeeking) {\n // If something changed while we were waiting for the currentTime to change,\n // clear the interval timer\n clearInterval(this.checkSeekedInPauseInterval);\n } else if (this.currentTime() !== this.timeBeforeSeek) {\n this.trigger('timeupdate');\n this.onSeeked();\n }\n }.bind(this), 250);\n }\n }\n\n seeking() {\n return this.isSeeking;\n }\n\n seekable() {\n if (!this.ytPlayer) {\n return videojs.createTimeRange();\n }\n\n return videojs.createTimeRange(0, this.ytPlayer.getDuration());\n }\n\n onSeeked() {\n clearInterval(this.checkSeekedInPauseInterval);\n this.isSeeking = false;\n\n if (this.wasPausedBeforeSeek) {\n this.pause();\n }\n\n this.trigger('seeked');\n }\n\n playbackRate() {\n return this.ytPlayer ? this.ytPlayer.getPlaybackRate() : 1;\n }\n\n setPlaybackRate(suggestedRate) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setPlaybackRate(suggestedRate);\n }\n\n duration() {\n return this.ytPlayer ? this.ytPlayer.getDuration() : 0;\n }\n\n currentSrc() {\n return this.source && this.source.src;\n }\n\n ended() {\n return this.ytPlayer ? (this.lastState === YT.PlayerState.ENDED) : false;\n }\n\n volume() {\n return this.ytPlayer ? this.ytPlayer.getVolume() / 100.0 : 1;\n }\n\n setVolume(percentAsDecimal) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setVolume(percentAsDecimal * 100.0);\n }\n\n muted() {\n return this.ytPlayer ? this.ytPlayer.isMuted() : false;\n }\n\n setMuted(mute) {\n if (!this.ytPlayer) {\n return;\n }\n else {\n this.muted(true);\n }\n\n if (mute) {\n this.ytPlayer.mute();\n } else {\n this.ytPlayer.unMute();\n }\n this.setTimeout(function () {\n this.trigger('volumechange');\n }, 50);\n }\n\n buffered() {\n if (!this.ytPlayer || !this.ytPlayer.getVideoLoadedFraction) {\n return videojs.createTimeRange();\n }\n\n var bufferedEnd = this.ytPlayer.getVideoLoadedFraction() * this.ytPlayer.getDuration();\n\n return videojs.createTimeRange(0, bufferedEnd);\n }\n\n // TODO: Can we really do something with this on YouTUbe?\n preload() { }\n load() { }\n reset() { }\n networkState() {\n if (!this.ytPlayer) {\n return 0; //NETWORK_EMPTY\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //NETWORK_EMPTY\n case 3: //buffering\n return 2; //NETWORK_LOADING\n default:\n return 1; //NETWORK_IDLE\n }\n }\n readyState() {\n if (!this.ytPlayer) {\n return 0; //HAVE_NOTHING\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //HAVE_NOTHING\n case 5: //video cued\n return 1; //HAVE_METADATA\n case 3: //buffering\n return 2; //HAVE_CURRENT_DATA\n default:\n return 4; //HAVE_ENOUGH_DATA\n }\n }\n\n supportsFullScreen() {\n if (typeof document === 'undefined') {\n return\n }\n return document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled;\n }\n\n // Tries to get the highest resolution thumbnail available for the video\n checkHighResPoster() {\n var uri = 'https://img.youtube.com/vi/' + this.url.videoId + '/maxresdefault.jpg';\n\n try {\n var image = new Image();\n image.onload = function () {\n // Onload may still be called if YouTube returns the 120x90 error thumbnail\n if ('naturalHeight' in image) {\n if (image.naturalHeight <= 90 || image.naturalWidth <= 120) {\n return;\n }\n } else if (image.height <= 90 || image.width <= 120) {\n return;\n }\n\n this.poster_ = uri;\n this.trigger('posterchange');\n }.bind(this);\n image.onerror = function () { };\n image.src = uri;\n }\n catch (e) { }\n }\n }\n\n Youtube.isSupported = function () {\n return true;\n };\n\n Youtube.canPlaySource = function (e) {\n return Youtube.canPlayType(e.type);\n };\n\n Youtube.canPlayType = function (e) {\n return (e === 'video/youtube');\n };\n\n Youtube.parseUrl = function (url) {\n var result = {\n videoId: null\n };\n\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n var match = url.match(regex);\n\n if (match && match[2].length === 11) {\n result.videoId = match[2];\n }\n\n var regPlaylist = /[?&]list=([^#\\&\\?]+)/;\n match = url.match(regPlaylist);\n\n if (match && match[1]) {\n result.listId = match[1];\n }\n\n return result;\n };\n\n function apiLoaded() {\n YT.ready(function () {\n Youtube.isApiReady = true;\n\n for (var i = 0; i < Youtube.apiReadyQueue.length; ++i) {\n Youtube.apiReadyQueue[i].initYTPlayer();\n }\n });\n }\n\n function loadScript(src, callback) {\n if (typeof document === 'undefined') {\n return\n }\n var loaded = false;\n var tag = document.createElement('script');\n var firstScriptTag = document.getElementsByTagName('script')[0];\n if (!firstScriptTag) {\n // when loaded in jest without jsdom setup it doesn't get any element.\n // In jest it doesn't really make sense to do anything, because no one is watching youtube in jest\n return;\n }\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n tag.onload = function () {\n if (!loaded) {\n loaded = true;\n callback();\n }\n };\n tag.onreadystatechange = function () {\n if (!loaded && (this.readyState === 'complete' || this.readyState === 'loaded')) {\n loaded = true;\n callback();\n }\n };\n tag.src = src;\n }\n\n function injectCss() {\n if (typeof document === 'undefined') {\n return\n }\n var css = // iframe blocker to catch mouse events\n '.vjs-youtube .vjs-iframe-blocker { display: none; }' +\n '.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +\n '.vjs-youtube .vjs-poster { background-size: cover; }' +\n '.vjs-youtube-mobile .vjs-big-play-button { display: none; }';\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n\n Youtube.apiReadyQueue = [];\n\n if (typeof document !== 'undefined') {\n loadScript('https://www.youtube.com/iframe_api', apiLoaded);\n injectCss();\n }\n\n // Older versions of VJS5 doesn't have the registerTech function\n if (typeof videojs.registerTech !== 'undefined') {\n videojs.registerTech('Youtube', Youtube);\n } else {\n videojs.registerComponent('Youtube', Youtube);\n }\n}\n\nexport { initYoutubePlugin }"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"videoplayer.js","sources":["../../src/js/plugins/videoplayer.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'\nimport videojs from 'video.js'\nimport { initYoutubePlugin } from './util/youtube-video'\n\nconst NAME = 'videoplayer'\n\nconst SELECTOR_TOGGLE = '[data-bs-video]'\n\nconst itLang = {\n 'Audio Player': 'Lettore audio',\n 'Video Player': 'Lettore video',\n Play: 'Play',\n Pause: 'Pausa',\n Replay: 'Replay',\n 'Current Time': 'Orario attuale',\n Duration: 'Durata',\n 'Remaining Time': 'Tempo rimanente',\n 'Stream Type': 'Tipo di streaming',\n LIVE: 'LIVE',\n Loaded: 'Caricato',\n Progress: 'Stato',\n 'Progress Bar': 'Barra di avanzamento',\n 'progress bar timing: currentTime={1} duration={2}': '{1} di {2}',\n Fullscreen: 'Schermo intero',\n 'Exit Fullscreen': 'Chiudi Schermo intero',\n Mute: 'Disattiva l’audio',\n Unmute: 'Attiva l’audio',\n 'Playback Rate': 'Velocità di riproduzione',\n Subtitles: 'Sottotitoli',\n 'subtitles off': 'Senza sottotitoli',\n Captions: 'Sottotitoli non udenti',\n 'captions off': 'Senza sottotitoli non udenti',\n Chapters: 'Capitolo',\n Descriptions: 'Descrizioni',\n 'descriptions off': 'Descrizioni disattivate',\n 'Audio Track': 'Traccia audio',\n 'Volume Level': 'Livello del volume',\n 'You aborted the media playback': 'La riproduzione del filmato è stata interrotta.',\n 'A network error caused the media download to fail part-way.': 'Il download del filmato è stato interrotto a causa di un problema rete.',\n 'The media could not be loaded, either because the server or network failed or because the format is not supported.':\n 'Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.',\n 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.':\n 'La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.',\n 'No compatible source was found for this media.': 'Non ci sono fonti compatibili per questo filmato.',\n 'The media is encrypted and we do not have the keys to decrypt it.': 'Il contenuto multimediale è criptato e non disponiamo delle chiavi per decifrarlo.',\n 'Play Video': 'Riproduci il video',\n Close: 'Chiudi',\n 'Close Modal Dialog': 'Chiudi la finestra di dialogo',\n 'Modal Window': 'Finestra di dialogo',\n 'This is a modal window': 'Questa è una finestra di dialogo',\n 'This modal can be closed by pressing the Escape key or activating the close button.':\n 'Questa finestra di dialogo può essere chiusa premendo sul tasto Esc o attivando il pulsante di chiusura.',\n ', opens captions settings dialog': ', aprire i parametri della trascrizione dei sottotitoli',\n ', opens subtitles settings dialog': ', aprire i parametri dei sottotitoli',\n ', opens descriptions settings dialog': ', aprire i parametri delle descrizioni',\n ', selected': ', selezionato',\n 'captions settings': 'Parametri sottotitoli non udenti',\n 'subtitles settings': 'Parametri sottotitoli',\n 'descriptions settings': 'Parametri descrizioni',\n Text: 'Testo',\n White: 'Bianco',\n Black: 'Nero',\n Red: 'Rosso',\n Green: 'Verde',\n Blue: 'Blu',\n Yellow: 'Giallo',\n Magenta: 'Magenta',\n Cyan: 'Ciano',\n Background: 'Sfondo',\n Window: 'Finestra',\n Transparent: 'Trasparente',\n 'Semi-Transparent': 'Semi-Trasparente',\n Opaque: 'Opaco',\n 'Font Size': 'Dimensione dei caratteri',\n 'Text Edge Style': 'Stile dei bordi del testo',\n None: 'Nessuno',\n Uniform: 'Uniforme',\n 'Drop shadow': 'Ombra',\n 'Font Family': 'Carattere',\n 'Proportional Sans-Serif': 'Sans-Serif proporzionale',\n 'Monospace Sans-Serif': 'Sans-Serif monospaziato',\n 'Proportional Serif': 'Serif proporzionale',\n 'Monospace Serif': 'Serif monospaziato',\n 'Small Caps': 'Maiuscoletto',\n Reset: 'Reinizializza',\n 'restore all settings to the default values': 'Ripristina i valori predefiniti per tutti i parametri',\n Done: 'Fatto',\n 'Caption Settings Dialog': 'Finestra di dialogo dei parametri della trascrizione dei sottotitoli',\n 'Beginning of dialog window. Escape will cancel and close the window.':\n 'Inizio della finestra di dialogo. Il tasto Esc annullerà l’operazione e chiuderà la finestra.',\n 'End of dialog window.': 'Fine della finestra di dialogo.',\n '{1} is loading.': '{1} in fase di caricamento.',\n 'Exit Picture-in-Picture': 'Esci dalla modalità Picture-in-Picture',\n 'Picture-in-Picture': 'Picture-in-Picture',\n Color: 'Colore',\n Opacity: 'Opacità',\n 'Text Background': 'Sfondo testo',\n 'Caption Area Background': 'Sfondo area sottotitoli',\n 'Skip forward {1} seconds': 'Avanti {1} secondi',\n 'Skip backward {1} seconds': 'Indietro {1} secondi',\n}\n\nconst DEFAULT_CONFIG = { languages: { it: itLang }, language: 'it' }\n\nconst Default = {}\n\nif (typeof window !== 'undefined') {\n window.videojs = videojs\n}\n\nclass VideoPlayer extends BaseComponent {\n constructor(element, config) {\n super(element)\n element.classList.add('video-js', 'vjs-theme-bootstrap-italia', 'vjs-fluid', 'vjs-big-play-centered')\n this._config = this._getConfig(config)\n this.player = videojs(element, DEFAULT_CONFIG)\n }\n\n // Public\n\n setYouTubeVideo(url) {\n initYoutubePlugin(videojs)\n this.player.tech('youtube')\n this.player.src({ type: 'video/youtube', src: url })\n }\n\n // Getters\n\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\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst players = SelectorEngine.find(SELECTOR_TOGGLE)\nif (players.length > 0) {\n players.forEach((player) => {\n VideoPlayer.getOrCreateInstance(player)\n })\n}\n\nexport default VideoPlayer\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"videoplayer.js","sources":["../../src/js/plugins/videoplayer.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'\nimport videojs from 'video.js'\nimport { initYoutubePlugin } from './util/youtube-video'\n\nconst NAME = 'videoplayer'\n\nconst SELECTOR_TOGGLE = '[data-bs-video]'\n\nconst itLang = {\n 'Audio Player': 'Lettore audio',\n 'Video Player': 'Lettore video',\n Play: 'Play',\n Pause: 'Pausa',\n Replay: 'Replay',\n 'Current Time': 'Orario attuale',\n Duration: 'Durata',\n 'Remaining Time': 'Tempo rimanente',\n 'Stream Type': 'Tipo di streaming',\n LIVE: 'LIVE',\n Loaded: 'Caricato',\n Progress: 'Stato',\n 'Progress Bar': 'Barra di avanzamento',\n 'progress bar timing: currentTime={1} duration={2}': '{1} di {2}',\n Fullscreen: 'Schermo intero',\n 'Exit Fullscreen': 'Chiudi Schermo intero',\n Mute: 'Disattiva l’audio',\n Unmute: 'Attiva l’audio',\n 'Playback Rate': 'Velocità di riproduzione',\n Subtitles: 'Sottotitoli',\n 'subtitles off': 'Senza sottotitoli',\n Captions: 'Sottotitoli non udenti',\n 'captions off': 'Senza sottotitoli non udenti',\n Chapters: 'Capitolo',\n Descriptions: 'Descrizioni',\n 'descriptions off': 'Descrizioni disattivate',\n 'Audio Track': 'Traccia audio',\n 'Volume Level': 'Livello del volume',\n 'You aborted the media playback': 'La riproduzione del filmato è stata interrotta.',\n 'A network error caused the media download to fail part-way.': 'Il download del filmato è stato interrotto a causa di un problema rete.',\n 'The media could not be loaded, either because the server or network failed or because the format is not supported.':\n 'Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.',\n 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.':\n 'La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.',\n 'No compatible source was found for this media.': 'Non ci sono fonti compatibili per questo filmato.',\n 'The media is encrypted and we do not have the keys to decrypt it.': 'Il contenuto multimediale è criptato e non disponiamo delle chiavi per decifrarlo.',\n 'Play Video': 'Riproduci il video',\n Close: 'Chiudi',\n 'Close Modal Dialog': 'Chiudi la finestra di dialogo',\n 'Modal Window': 'Finestra di dialogo',\n 'This is a modal window': 'Questa è una finestra di dialogo',\n 'This modal can be closed by pressing the Escape key or activating the close button.':\n 'Questa finestra di dialogo può essere chiusa premendo sul tasto Esc o attivando il pulsante di chiusura.',\n ', opens captions settings dialog': ', aprire i parametri della trascrizione dei sottotitoli',\n ', opens subtitles settings dialog': ', aprire i parametri dei sottotitoli',\n ', opens descriptions settings dialog': ', aprire i parametri delle descrizioni',\n ', selected': ', selezionato',\n 'captions settings': 'Parametri sottotitoli non udenti',\n 'subtitles settings': 'Parametri sottotitoli',\n 'descriptions settings': 'Parametri descrizioni',\n Text: 'Testo',\n White: 'Bianco',\n Black: 'Nero',\n Red: 'Rosso',\n Green: 'Verde',\n Blue: 'Blu',\n Yellow: 'Giallo',\n Magenta: 'Magenta',\n Cyan: 'Ciano',\n Background: 'Sfondo',\n Window: 'Finestra',\n Transparent: 'Trasparente',\n 'Semi-Transparent': 'Semi-Trasparente',\n Opaque: 'Opaco',\n 'Font Size': 'Dimensione dei caratteri',\n 'Text Edge Style': 'Stile dei bordi del testo',\n None: 'Nessuno',\n Uniform: 'Uniforme',\n 'Drop shadow': 'Ombra',\n 'Font Family': 'Carattere',\n 'Proportional Sans-Serif': 'Sans-Serif proporzionale',\n 'Monospace Sans-Serif': 'Sans-Serif monospaziato',\n 'Proportional Serif': 'Serif proporzionale',\n 'Monospace Serif': 'Serif monospaziato',\n 'Small Caps': 'Maiuscoletto',\n Reset: 'Reinizializza',\n 'restore all settings to the default values': 'Ripristina i valori predefiniti per tutti i parametri',\n Done: 'Fatto',\n 'Caption Settings Dialog': 'Finestra di dialogo dei parametri della trascrizione dei sottotitoli',\n 'Beginning of dialog window. Escape will cancel and close the window.':\n 'Inizio della finestra di dialogo. Il tasto Esc annullerà l’operazione e chiuderà la finestra.',\n 'End of dialog window.': 'Fine della finestra di dialogo.',\n '{1} is loading.': '{1} in fase di caricamento.',\n 'Exit Picture-in-Picture': 'Esci dalla modalità Picture-in-Picture',\n 'Picture-in-Picture': 'Picture-in-Picture',\n Color: 'Colore',\n Opacity: 'Opacità',\n 'Text Background': 'Sfondo testo',\n 'Caption Area Background': 'Sfondo area sottotitoli',\n 'Skip forward {1} seconds': 'Avanti {1} secondi',\n 'Skip backward {1} seconds': 'Indietro {1} secondi',\n}\n\nconst DEFAULT_CONFIG = { languages: { it: itLang }, language: 'it' }\n\nconst Default = {}\n\nif (typeof window !== 'undefined') {\n window.videojs = videojs\n}\n\nclass VideoPlayer extends BaseComponent {\n constructor(element, config) {\n super(element)\n element.classList.add('video-js', 'vjs-theme-bootstrap-italia', 'vjs-fluid', 'vjs-big-play-centered')\n this._config = this._getConfig(config)\n this.player = videojs(element, DEFAULT_CONFIG)\n }\n\n // Public\n\n setYouTubeVideo(url) {\n initYoutubePlugin(videojs)\n this.player.tech('youtube')\n this.player.src({ type: 'video/youtube', src: url })\n }\n\n // Getters\n\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\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst players = SelectorEngine.find(SELECTOR_TOGGLE)\nif (players.length > 0) {\n players.forEach((player) => {\n VideoPlayer.getOrCreateInstance(player)\n })\n}\n\nexport default VideoPlayer\n"],"names":[],"mappings":"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"}
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // bootstrap italia version variable
2
2
  // useful to check for the current version
3
- // eslint-disable-next-line no-unused-vars
4
- const BOOTSTRAP_ITALIA_VERSION = '2.11.1';
3
+
4
+ const BOOTSTRAP_ITALIA_VERSION = '2.12.0';
5
5
 
6
6
  export { BOOTSTRAP_ITALIA_VERSION as default };
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../src/js/version.js"],"sourcesContent":["// bootstrap italia version variable\n// useful to check for the current version\n// eslint-disable-next-line no-unused-vars\nconst BOOTSTRAP_ITALIA_VERSION = '2.11.1'\nexport default BOOTSTRAP_ITALIA_VERSION\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACK,MAAC,wBAAwB,GAAG;;;;"}
1
+ {"version":3,"file":"version.js","sources":["../src/js/version.js"],"sourcesContent":["// bootstrap italia version variable\n// useful to check for the current version\n\nconst BOOTSTRAP_ITALIA_VERSION = '2.12.0'\nexport default BOOTSTRAP_ITALIA_VERSION\n"],"names":[],"mappings":"AAAA;AACA;;AAEK,MAAC,wBAAwB,GAAG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bootstrap-italia",
3
- "version": "2.11.1",
3
+ "version": "2.12.0",
4
4
  "keywords": [
5
5
  "css",
6
6
  "sass",
@@ -56,40 +56,42 @@
56
56
  "@babel/plugin-proposal-object-rest-spread": "^7.16.5",
57
57
  "@babel/preset-env": "^7.17.10",
58
58
  "@babel/preset-react": "^7.16.7",
59
- "@lopatnov/rollup-plugin-uglify": "^2.1.2",
59
+ "@eslint/eslintrc": "^3.2.0",
60
+ "@eslint/js": "^9.15.0",
60
61
  "@octokit/rest": "^18.12.0",
61
- "@rollup/plugin-babel": "^5.3.1",
62
- "@rollup/plugin-legacy": "^2.2.0",
63
- "@rollup/plugin-node-resolve": "^13.1.3",
62
+ "@rollup/plugin-babel": "^6.0.4",
63
+ "@rollup/plugin-legacy": "^3.0.2",
64
+ "@rollup/plugin-node-resolve": "^15.3.0",
65
+ "@rollup/plugin-terser": "^0.4.4",
64
66
  "browser-sync": "^3.0.2",
65
67
  "browserslist-config-design-italia": "^1.1.0",
66
68
  "concurrently": "^7.0.0",
67
69
  "conventional-changelog": "^3.1.24",
68
70
  "conventional-changelog-cli": "^2.2.2",
69
- "cross-spawn": "^7.0.3",
70
- "eslint": "^8.10.0",
71
- "eslint-config-prettier": "^8.3.0",
72
- "eslint-plugin-prettier": "^4.0.0",
71
+ "cross-spawn": "^7.0.6",
72
+ "eslint": "^9.15.0",
73
+ "eslint-config-prettier": "^9.1.0",
74
+ "eslint-plugin-prettier": "^5.2.1",
73
75
  "fancy-log": "^1.3.3",
74
76
  "gh-pages": "^5.0.0",
75
- "pa11y-ci": "^3.0.1",
76
- "prettier": "^2.5.1",
77
+ "globals": "^15.12.0",
78
+ "pa11y": "^8.0.0",
79
+ "pa11y-ci": "^3.1.0",
80
+ "prettier": "^3.3.3",
77
81
  "replace-in-file": "^6.3.2",
78
- "rollup": "^2.79.2",
82
+ "rollup": "^4.26.0",
79
83
  "rollup-plugin-commonjs": "^10.1.0",
80
- "rollup-plugin-copy": "^3.4.0",
84
+ "rollup-plugin-copy": "^3.5.0",
81
85
  "rollup-plugin-inject-process-env": "^1.3.1",
82
- "rollup-plugin-sass": "^1.2.10",
83
86
  "rollup-plugin-scss": "^3.0.0",
84
87
  "rollup-plugin-svg-sprite-deterministic": "^2.0.0",
85
- "sass": "^1.32.6",
86
- "stylelint": "^15.6.0",
87
- "stylelint-config-prettier": "^9.0.3",
88
- "stylelint-config-recommended-scss": "^11.0.0",
89
- "stylelint-config-standard": "^33.0.0",
90
- "stylelint-prettier": "^2.0.0",
91
- "stylelint-scss": "^4.1.0",
92
- "terser": "^5.14.2"
88
+ "sass": "^1.81.0",
89
+ "semver": "^7.6.3",
90
+ "stylelint": "^16.10.0",
91
+ "stylelint-config-recommended-scss": "^14.1.0",
92
+ "stylelint-config-standard": "^36.0.1",
93
+ "stylelint-prettier": "^5.0.2",
94
+ "stylelint-scss": "^6.10.0"
93
95
  },
94
96
  "dependencies": {
95
97
  "@popperjs/core": "^2.11.2",
@@ -17,7 +17,6 @@ const SELECTOR_SEARCH_WRAPPER = '.it-search-wrapper'
17
17
  const SELECTOR_USER_WRAPPER = '.it-user-wrapper'
18
18
  const SELECTOR_CLONED = `.${CLASS_NAME_CLONED_HEADER}`
19
19
 
20
- // eslint-disable-next-line no-undef
21
20
  const dataSet = new Map()
22
21
 
23
22
  class HeaderSticky {
@@ -98,8 +98,8 @@ class ContentObserver {
98
98
  actionRemove && typeof this.contentRemovedCallback === 'function'
99
99
  ? this.contentRemovedCallback
100
100
  : typeof this.contentAddedCallback === 'function'
101
- ? this.contentAddedCallback
102
- : null
101
+ ? this.contentAddedCallback
102
+ : null
103
103
  if (foundNodes && callback) {
104
104
  foundNodes.forEach((node) => callback(node))
105
105
  }
package/src/js/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // bootstrap italia version variable
2
2
  // useful to check for the current version
3
- // eslint-disable-next-line no-unused-vars
4
- const BOOTSTRAP_ITALIA_VERSION = '2.11.1'
3
+
4
+ const BOOTSTRAP_ITALIA_VERSION = '2.12.0'
5
5
  export default BOOTSTRAP_ITALIA_VERSION
@@ -1,9 +1,6 @@
1
1
  // Import Design Tokens Italia
2
2
  // @import '../../node_modules/design-tokens-italia/scss/variables';
3
3
 
4
- // Shadows
5
- $enable-shadows: true;
6
-
7
4
  // Spacer
8
5
  $spacer: 1rem !default;
9
6
 
@@ -53,7 +50,9 @@ $small-font-size: 0.875rem !default;
53
50
  $link-decoration: underline;
54
51
 
55
52
  // Focus
56
- $focus-outline-color: $orange !default;
53
+ $focus-outline-color-in: $white !default;
54
+ $focus-outline-color-out: $black !default;
55
+ $focus-outline-color: $focus-outline-color-out !default; // xxx retro-compatibility, ex $orange
57
56
 
58
57
  //skiplinks
59
58
  $skiplinks-color: $primary !default;
@@ -12,7 +12,11 @@
12
12
  visibility: hidden;
13
13
  opacity: 0;
14
14
  text-align: center;
15
- transition: $transition-base, transform 0.25s cubic-bezier(0.75, -0.5, 0, 1.75), visibility 0.3s linear, opacity 0.3s ease-in-out;
15
+ transition:
16
+ $transition-base,
17
+ transform 0.25s cubic-bezier(0.75, -0.5, 0, 1.75),
18
+ visibility 0.3s linear,
19
+ opacity 0.3s ease-in-out;
16
20
  z-index: 1;
17
21
  transform: scale(0.7);
18
22
  transform-origin: center center;
@@ -20,7 +24,11 @@
20
24
  &.back-to-top-show {
21
25
  visibility: visible;
22
26
  opacity: 1;
23
- transition: $transition-base, transform 0.05s ease-out, visibility 0s linear, opacity 0.1s ease-in-out;
27
+ transition:
28
+ $transition-base,
29
+ transform 0.05s ease-out,
30
+ visibility 0s linear,
31
+ opacity 0.1s ease-in-out;
24
32
  transform: scale(1);
25
33
  }
26
34
  &:hover {
@@ -1,7 +1,11 @@
1
1
  .badge {
2
2
  --bs-badge-font-size: 0.875em;
3
3
  --bs-badge-font-weight: #{$font-weight-semibold};
4
- transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
4
+ transition:
5
+ color 0.15s ease-in-out,
6
+ background-color 0.15s ease-in-out,
7
+ border-color 0.15s ease-in-out,
8
+ box-shadow 0.15s ease-in-out;
5
9
  @each $color, $value in $theme-colors {
6
10
  &.badge-outline-#{$color} {
7
11
  background-color: transparent !important;
@@ -1,7 +1,7 @@
1
1
  .btn {
2
2
  //btn-css-vars
3
- --bs-btn-color: #06c;
4
- --bs-btn-hover-color: #004d99; // TODO change with tokens when available
3
+ --bs-btn-color: $primary;
4
+ --bs-btn-hover-color: $color-background-primary-hover;
5
5
  --bs-btn-active-color: #003366; // TODO change with tokens when available
6
6
  //btn-css-vars-end
7
7
  padding: 12px 24px;
@@ -224,15 +224,6 @@
224
224
  &:hover {
225
225
  box-shadow: inset 0 0 0 2px color-hover($white);
226
226
  }
227
- &:focus,
228
- &.focus {
229
- box-shadow: inset 0 0 0 2px $white, 0 0 0 $btn-focus-width rgba($white, 0.5);
230
- }
231
- &:not(:disabled):not(.disabled).active,
232
- &:not(:disabled):not(.disabled):active,
233
- .show > &.dropdown-toggle {
234
- box-shadow: inset 0 0 0 2px $white;
235
- }
236
227
  }
237
228
  .btn-secondary {
238
229
  @include button-variant($primary, $white, tint-color($primary, 7.5%), shade-color($white, 10%), tint-color($primary, 10%), shade-color($white, 12.5%));
@@ -240,14 +231,5 @@
240
231
  }
241
232
  .btn-outline-secondary {
242
233
  @include button-outline-variant($white, color-hover($white), transparent, color-hover($white));
243
- &:focus,
244
- &.focus {
245
- box-shadow: 0 0 0 $btn-focus-width rgba($white, 0.5);
246
- }
247
- &:not(:disabled):not(.disabled).active,
248
- &:not(:disabled):not(.disabled):active,
249
- .show > &.dropdown-toggle {
250
- box-shadow: none;
251
- }
252
234
  }
253
235
  }
@@ -220,9 +220,15 @@
220
220
  margin-top: -$v-gap * 2;
221
221
  }
222
222
  a {
223
+ display: inline-block;
223
224
  h5.card-title {
224
225
  color: $card-link-color;
225
226
  }
227
+ &:hover {
228
+ h5.card-title {
229
+ color: var(--bs-link-hover-color);
230
+ }
231
+ }
226
232
  }
227
233
  .card-text {
228
234
  font-family: $font-family-serif;
@@ -354,7 +360,9 @@
354
360
  width: 80px;
355
361
  border-radius: 4px;
356
362
  background-color: $white;
357
- box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1), 0 4px 8px 0 rgba(0, 0, 0, 0.1);
363
+ box-shadow:
364
+ 0 1px 4px 0 rgba(0, 0, 0, 0.1),
365
+ 0 4px 8px 0 rgba(0, 0, 0, 0.1);
358
366
  position: absolute;
359
367
  right: 32px;
360
368
  top: 10%;
@@ -427,11 +435,13 @@
427
435
  font-weight: normal;
428
436
  }
429
437
  }
438
+ h5.card-title {
439
+ color: $card-link-color;
440
+ }
430
441
  &:hover {
431
- text-decoration: none;
432
- h5 {
433
- text-decoration: underline;
434
- color: $primary;
442
+ text-decoration: underline;
443
+ h5.card-title {
444
+ color: var(--bs-link-hover-color);
435
445
  }
436
446
  .img-responsive-wrapper {
437
447
  &:before {
@@ -261,3 +261,9 @@
261
261
  }
262
262
  }
263
263
  }
264
+
265
+ @media (prefers-reduced-motion: reduce) {
266
+ .it-carousel-wrapper .splide__pagination button {
267
+ transition: none !important;
268
+ }
269
+ }
@@ -8,7 +8,7 @@
8
8
  border-radius: $v-gap * 1.5;
9
9
  height: $v-gap * 3;
10
10
  min-width: 100px;
11
- padding: 0 $v-gap * 2 2px $v-gap;
11
+ padding: 0 $v-gap / 2 2px $v-gap;
12
12
  transition: all 0.05s;
13
13
  margin-top: $v-gap * 0.5;
14
14
  margin-bottom: $v-gap;
@@ -35,8 +35,8 @@
35
35
  background: transparent;
36
36
  border: none;
37
37
  margin-left: auto;
38
- width: $v-gap;
39
- height: $v-gap;
38
+ width: 24px;
39
+ height: 24px;
40
40
  position: relative;
41
41
  &:hover:not([disabled]) {
42
42
  cursor: pointer;
@@ -48,9 +48,6 @@
48
48
  width: 22px;
49
49
  height: 22px;
50
50
  fill: $gray-secondary;
51
- position: absolute;
52
- top: -6px;
53
- left: 0;
54
51
  transition: fill 0.05s;
55
52
  }
56
53
  }
@@ -70,7 +67,7 @@
70
67
  height: $v-gap * 4;
71
68
  min-width: 120px;
72
69
  border-radius: $v-gap * 2;
73
- padding: 2px $v-gap * 3 0 $v-gap * 2;
70
+ padding: 2px $v-gap / 2 0 $v-gap * 2;
74
71
  //label
75
72
  .chip-label {
76
73
  font-size: $chips-label-font-size-l;
@@ -79,11 +76,11 @@
79
76
  }
80
77
  //close button
81
78
  button {
79
+ width: 32px;
80
+ height: 32px;
82
81
  .icon {
83
82
  width: 28px;
84
83
  height: 28px;
85
- top: -12px;
86
- left: 0;
87
84
  }
88
85
  }
89
86
  //left icon
@@ -1,5 +1,11 @@
1
1
  .it-footer {
2
- font-size: 1rem;
2
+ h4,
3
+ ul,
4
+ li,
5
+ p {
6
+ font-size: 1rem;
7
+ }
8
+
3
9
  a {
4
10
  color: $white;
5
11
  &:hover {
@@ -186,7 +186,6 @@ a.datepicker-button {
186
186
  .datepicker-month:focus,
187
187
  .datepicker-month:hover {
188
188
  background-color: #eee;
189
- border-color: #999;
190
189
  border: none;
191
190
  margin: 0;
192
191
  padding: 0;