bootstrap-italia 2.13.3 → 2.13.4
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 +2 -2
- package/dist/js/bootstrap-italia.min.js +2 -2
- package/dist/plugins/util/youtube-video.js +1 -2
- package/dist/plugins/util/youtube-video.js.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/src/js/plugins/util/youtube-video.js +1 -2
- package/src/js/version.js +1 -1
- package/src/scss/base/_version.scss +1 -1
- package/src/scss/components/_buttons.scss +2 -2
|
@@ -756,8 +756,7 @@ const initYoutubePlugin = (videojs) => {
|
|
|
756
756
|
var css = // iframe blocker to catch mouse events
|
|
757
757
|
'.vjs-youtube .vjs-iframe-blocker { display: none; }' +
|
|
758
758
|
'.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +
|
|
759
|
-
'.vjs-youtube .vjs-poster { background-size: cover; }'
|
|
760
|
-
'.vjs-youtube-mobile .vjs-big-play-button { display: none; }';
|
|
759
|
+
'.vjs-youtube .vjs-poster { background-size: cover; }';
|
|
761
760
|
|
|
762
761
|
var head = document.head || document.getElementsByTagName('head')[0];
|
|
763
762
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youtube-video.js","sources":["../../../src/js/plugins/util/youtube-video.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * This file is a modified version of Benoit Tremblay's VideoJS YouTube plugin \n * Main repository: https://github.com/videojs/videojs-youtube\n * Copyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>\n * Licensed under MIT license (https://github.com/videojs/videojs-youtube?tab=readme-ov-file#license)\n * --------------------------------------------------------------------------\n */\n\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":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * This file is a modified version of Benoit Tremblay's VideoJS YouTube plugin \n * Main repository: https://github.com/videojs/videojs-youtube\n * Copyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>\n * Licensed under MIT license (https://github.com/videojs/videojs-youtube?tab=readme-ov-file#license)\n * --------------------------------------------------------------------------\n */\n\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\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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"}
|
package/dist/version.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
// NOTE:bootstrap italia version variable, useful to check for the current version
|
|
10
10
|
|
|
11
|
-
const BOOTSTRAP_ITALIA_VERSION = '2.13.
|
|
11
|
+
const BOOTSTRAP_ITALIA_VERSION = '2.13.4';
|
|
12
12
|
|
|
13
13
|
export { BOOTSTRAP_ITALIA_VERSION as default };
|
|
14
14
|
//# sourceMappingURL=version.js.map
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../src/js/version.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// NOTE:bootstrap italia version variable, useful to check for the current version\n\nconst BOOTSTRAP_ITALIA_VERSION = '2.13.
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../src/js/version.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// NOTE:bootstrap italia version variable, useful to check for the current version\n\nconst BOOTSTRAP_ITALIA_VERSION = '2.13.4'\nexport default BOOTSTRAP_ITALIA_VERSION\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEK,MAAC,wBAAwB,GAAG;;;;"}
|
package/package.json
CHANGED
|
@@ -756,8 +756,7 @@ const initYoutubePlugin = (videojs) => {
|
|
|
756
756
|
var css = // iframe blocker to catch mouse events
|
|
757
757
|
'.vjs-youtube .vjs-iframe-blocker { display: none; }' +
|
|
758
758
|
'.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +
|
|
759
|
-
'.vjs-youtube .vjs-poster { background-size: cover; }'
|
|
760
|
-
'.vjs-youtube-mobile .vjs-big-play-button { display: none; }';
|
|
759
|
+
'.vjs-youtube .vjs-poster { background-size: cover; }';
|
|
761
760
|
|
|
762
761
|
var head = document.head || document.getElementsByTagName('head')[0];
|
|
763
762
|
|
package/src/js/version.js
CHANGED
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
.btn-icon {
|
|
241
241
|
display: inline-flex;
|
|
242
242
|
flex-direction: row;
|
|
243
|
-
justify-content:
|
|
243
|
+
justify-content: center;
|
|
244
244
|
align-items: center;
|
|
245
245
|
|
|
246
246
|
.rounded-icon {
|
|
@@ -310,7 +310,7 @@
|
|
|
310
310
|
flex: 1;
|
|
311
311
|
display: flex;
|
|
312
312
|
flex-direction: row;
|
|
313
|
-
justify-content:
|
|
313
|
+
justify-content: center;
|
|
314
314
|
align-items: center;
|
|
315
315
|
}
|
|
316
316
|
}
|