j1-template 2024.3.16 → 2024.3.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/assets/data/amplitude.html +132 -61
- data/assets/data/banner.html +1 -1
- data/assets/data/cookieconsent.html +1 -1
- data/assets/data/docsearch.html +1 -1
- data/assets/data/fab.html +1 -1
- data/assets/data/footer.html +1 -1
- data/assets/data/galeries.html +1 -1
- data/assets/data/gallery_customizer.html +1 -1
- data/assets/data/gemini-ui.html +1 -1
- data/assets/data/iframes.html +1 -1
- data/assets/data/masonry.html +1 -1
- data/assets/data/masterslider.html +1 -1
- data/assets/data/menu.html +1 -1
- data/assets/data/mmenu.html +1 -1
- data/assets/data/mmenu_sidebar.html +1 -1
- data/assets/data/mmenu_toc.html +1 -1
- data/assets/data/panel.html +1 -1
- data/assets/data/quicklinks.html +1 -1
- data/assets/data/rtext_resizer.html +1 -1
- data/assets/data/slick.html +1 -1
- data/assets/data/speak2me.html +1 -1
- data/assets/data/swiper.html +313 -0
- data/assets/theme/j1/adapter/js/amplitude.30.js +1177 -0
- data/assets/theme/j1/adapter/js/amplitude.js +152 -121
- data/assets/theme/j1/adapter/js/j1.js +3 -3
- data/assets/theme/j1/adapter/js/masterslider.js +2 -1
- data/assets/theme/j1/adapter/js/swiper.js +231 -0
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +13 -3
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +53 -6
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +2 -1
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.15.js +1594 -0
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +1617 -89
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/bar.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/circular-equalizer.js +31 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/frequency-analyzer.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/michael-bromley.js +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/visualizations/template.js +1 -1
- data/assets/theme/j1/modules/photoswipe/.version_5.4.4 +6 -0
- data/assets/theme/j1/modules/photoswipe/LICENSE +21 -0
- data/assets/theme/j1/modules/photoswipe/README.md +32 -0
- data/assets/theme/j1/modules/photoswipe/css/org/photoswipe-dynamic-caption-plugin.umd.min.js +5 -0
- data/assets/theme/j1/modules/photoswipe/css/org/photoswipe.css +420 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.css +67 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.min.css +16 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe.css +376 -0
- data/assets/theme/j1/modules/photoswipe/css/photoswipe.min.css +17 -0
- data/assets/theme/j1/modules/photoswipe/css/scss/photoswipe.scss +427 -0
- data/assets/theme/j1/modules/photoswipe/example/photoswipe-caption-plugin.html +237 -0
- data/assets/theme/j1/modules/photoswipe/example/test-gallery.html +36 -0
- data/assets/theme/j1/modules/photoswipe/js/README.md +43 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-caption-plugin.min.js +5 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-core.min.js +18 -0
- data/assets/theme/j1/modules/photoswipe/js/photoswipe-lightbox.min.js +18 -0
- data/assets/theme/j1/modules/swiper/.version_1.2.0 +15 -0
- data/assets/theme/j1/modules/swiper/LICENSE +20 -0
- data/assets/theme/j1/modules/swiper/README.md +95 -0
- data/assets/theme/j1/modules/swiper/css/swiper-bundle.css +740 -0
- data/assets/theme/j1/modules/swiper/css/swiper-bundle.min..css +17 -0
- data/assets/theme/j1/modules/swiper/css/theme/uno.css +249 -0
- data/assets/theme/j1/modules/swiper/css/theme/uno.min.css +154 -0
- data/assets/theme/j1/modules/swiper/js/swiper-bundle.js +9785 -0
- data/assets/theme/j1/modules/swiper/js/swiper-bundle.min.js +17 -0
- data/assets/theme/j1/modules/swiper/swiperjs.com-demos.url +2 -0
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/modules/amplitude.yml +374 -39
- data/lib/starter_web/_data/modules/defaults/amplitude.yml +60 -35
- data/lib/starter_web/_data/modules/defaults/slick.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/swiper.yml +515 -0
- data/lib/starter_web/_data/modules/swiper.yml +227 -0
- data/lib/starter_web/_data/resources.yml +53 -1
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_plugins/asciidoctor/amplitude-block.rb +1 -0
- data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +0 -4
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/assets/video/poster/youtube/faelle_des_bnd/der_unverzichtbare_feind.jpg +0 -0
- data/lib/starter_web/assets/video/poster/youtube/faelle_des_bnd/ein_diener_vieler_herren.jpg +0 -0
- data/lib/starter_web/assets/video/poster/youtube/the_piano/the-piano.jpg +0 -0
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/_includes/attributes.asciidoc +45 -0
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/200_photoswipe_parameters.asciidoc +510 -0
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/210_photoswipe_lightbox_parameters.asciidoc +98 -0
- data/lib/starter_web/pages/public/_includes/documents/photoswipe/300_caption_plugin_for_photoSwipe.asciidoc +327 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_features.asciidoc +50 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_html_layout.asciidoc +122 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/100_swiper_initialization.asciidoc +53 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/110_swiper_common_options.asciidoc +43 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_a_k.asciidoc +994 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_l_o.asciidoc +473 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_p_s.asciidoc +700 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/200_swiper_parameters_t_z.asciidoc +413 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/300_swiper_instance_properties.asciidoc +873 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/400_swiper_modules.asciidoc +2514 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/500_swiper_methods.asciidoc +989 -0
- data/lib/starter_web/pages/public/_includes/documents/swiper/600_swiper_events.asciidoc +1534 -0
- data/lib/starter_web/pages/public/amplitude_yt_tester.adoc +77 -63
- data/lib/starter_web/pages/public/photoswipe_api.adoc +150 -0
- data/lib/starter_web/pages/public/swiper_api.adoc +128 -0
- data/lib/starter_web/pages/public/swiper_tester.adoc +973 -0
- data/lib/starter_web/pages/public/tour/modal_extentions.adoc +12 -5
- data/lib/starter_web/pages/public/tour/play_audio.adoc +60 -5
- data/lib/starter_web/pages/public/tour/play_video.adoc +30 -0
- data/lib/starter_web/pages/public/tour/present_images.adoc +5 -5
- metadata +56 -3
- data/assets/theme/j1/modules/amplitudejs/js/tech/youtube_example.js +0 -211
@@ -21,7 +21,7 @@
|
|
21
21
|
* Simple visualization that shows the waveforms as a bar graph
|
22
22
|
*/
|
23
23
|
|
24
|
-
function BarVisualization(){
|
24
|
+
function BarVisualization() {
|
25
25
|
/*
|
26
26
|
Define the ID, name, and initialize the container. These are a part
|
27
27
|
of the visualization template and are necessary.
|
@@ -17,4 +17,34 @@
|
|
17
17
|
# -----------------------------------------------------------------------------
|
18
18
|
*/
|
19
19
|
|
20
|
-
function CircularEqualizer()
|
20
|
+
function CircularEqualizer() {
|
21
|
+
this.id = "circular_equalizer", this.name = "Circular Equalizer", this.container = "", this.preferences = {
|
22
|
+
barWidth: 2,
|
23
|
+
barHeight: 2,
|
24
|
+
barSpacing: 5,
|
25
|
+
barColor: "#ffffff",
|
26
|
+
shadowColor: "#ffffff",
|
27
|
+
shadowBlur: 10
|
28
|
+
}, this.analyser = "", this.frequencyData = [], this.canvas = null, this.canvasCtx = null, this.gradient = null, this.getID = function () {
|
29
|
+
return this.id
|
30
|
+
}, this.getName = function () {
|
31
|
+
return this.name
|
32
|
+
}, this.setPreferences = function (t) {
|
33
|
+
for (var e in this.preferences) null != t[e] && (this.preferences[e] = t[e])
|
34
|
+
}, this.startVisualization = function (t) {
|
35
|
+
this.analyser = Amplitude.getAnalyser(), this.container = t, window.cont = this.container, this.canvas = document.createElement("canvas"), this.canvas.width = this.container.offsetWidth, this.canvas.height = this.container.offsetHeight, this.container.appendChild(this.canvas), this.canvasCtx = this.canvas.getContext("2d"), this.frequencyData = new Uint8Array(this.analyser.frequencyBinCount), this.gradient = this.canvasCtx.createLinearGradient(0, 0, 0, 400), this.gradient.addColorStop(0, this.preferences.barColor), this.gradient.addColorStop(1, "orange"), this.canvasCtx.fillStyle = this.gradient, this.canvasCtx.shadowBlur = this.preferences.shadowBlur, this.canvasCtx.shadowColor = this.preferences.shadowColor, requestAnimationFrame(this.renderFrame.bind(this))
|
36
|
+
}, this.stopVisualization = function () {
|
37
|
+
this.container.innerHTML = "", window.cancelAnimationFrame(this.renderFrame.bind(this))
|
38
|
+
}, this.renderFrame = function () {
|
39
|
+
requestAnimationFrame(this.renderFrame.bind(this)), this.analyser.getByteFrequencyData(this.frequencyData), this.canvasCtx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
40
|
+
for (var t = this.canvas.width / 2, e = this.canvas.height / 2, a = t - 27, i = Math.floor(2 * a * Math.PI / (this.preferences.barWidth + this.preferences.barSpacing)), s = i - Math.floor(25 * i / 100), n = Math.floor(this.frequencyData.length / i), r = 0; r < s; r++) {
|
41
|
+
var h = this.frequencyData[r * n],
|
42
|
+
c = 2 * r * Math.PI / i + Math.PI,
|
43
|
+
o = (135 - this.preferences.barWidth) * Math.PI / 180,
|
44
|
+
f = a - (h / 12 - this.preferences.barHeight),
|
45
|
+
l = this.preferences.barWidth,
|
46
|
+
d = h / 6 + this.preferences.barHeight;
|
47
|
+
this.canvasCtx.save(), this.canvasCtx.translate(t, e), this.canvasCtx.rotate(c - o), this.canvasCtx.fillRect(0, f, l, d), this.canvasCtx.restore()
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
@@ -17,7 +17,7 @@
|
|
17
17
|
# -----------------------------------------------------------------------------
|
18
18
|
*/
|
19
19
|
|
20
|
-
function FrequencyAnalyzerVisualization(){
|
20
|
+
function FrequencyAnalyzerVisualization() {
|
21
21
|
/*
|
22
22
|
Define the ID of your visualization. This is used to apply
|
23
23
|
visualizations to songs, playlists, and default. It is a JSON
|
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014-2022 Dmitry Semenov, https://dimsemenov.com
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
@@ -0,0 +1,32 @@
|
|
1
|
+
[](https://savelife.in.ua/en/)
|
2
|
+
|
3
|
+
|
4
|
+
PhotoSwipe v5 — JavaScript image gallery and lightbox
|
5
|
+
|
6
|
+
**[Demo](https://photoswipe.com)** | **[Documentation](https://photoswipe.com/getting-started/)**
|
7
|
+
|
8
|
+
[](https://opencollective.com/photoswipe)
|
9
|
+
[](https://twitter.com/intent/user?screen_name=photoswipe)
|
10
|
+
|
11
|
+
|
12
|
+
### Repo structure
|
13
|
+
|
14
|
+
- `dist/` - main JS and CSS
|
15
|
+
- `src/` - source JS and CSS.
|
16
|
+
- `src/js/photoswipe.js` - entry for PhotoSwipe Core.
|
17
|
+
- `src/js/lightbox/lightbox.js` - entry for PhotoSwipe Lightbox.
|
18
|
+
- `docs/` - documentation markdown files.
|
19
|
+
- `demo-docs-website/` - website with documentation, demos and manual tests.
|
20
|
+
- `build/` - rollup build config.
|
21
|
+
|
22
|
+
To build JS and CSS in `dist/` directory, run `npm run build`.
|
23
|
+
|
24
|
+
To run the demo website and automatically rebuild files during development, run `npm install` in `demo-docs-website/` and `npm run watch` in the root directory.
|
25
|
+
|
26
|
+
### Older versions
|
27
|
+
|
28
|
+
Documentation for the old version (v4) can be found [here](https://photoswipe.com/v4-docs/getting-started.html) and [the code for 4.1.3 is here](https://github.com/dimsemenov/PhotoSwipe/tree/v4.1.3).
|
29
|
+
|
30
|
+
---
|
31
|
+
|
32
|
+
This project is tested with [BrowserStack](https://www.browserstack.com/).
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/*!
|
2
|
+
* PhotoSwipe Dynamic Caption plugin 1.2.7 - https://photoswipe.com
|
3
|
+
* (c) 2022 Dmytro Semenov
|
4
|
+
*/
|
5
|
+
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).PhotoSwipeDynamicCaption=i()}(this,(function(){"use strict";const t={captionContent:".pswp-caption-content",type:"auto",horizontalEdgeThreshold:20,mobileCaptionOverlapRatio:.3,mobileLayoutBreakpoint:600,verticallyCenterImage:!1};return class{constructor(i,e){this.options={...t,...e},this.lightbox=i,this.lightbox.on("init",(()=>{this.pswp=this.lightbox.pswp,this.initCaption()}))}initCaption(){const{pswp:t}=this;t.on("change",(()=>{this.showCaption(this.pswp.currSlide)})),t.on("calcSlideSize",(t=>this.onCalcSlideSize(t))),t.on("slideDestroy",(t=>{t.slide.dynamicCaption&&(t.slide.dynamicCaption.element&&t.slide.dynamicCaption.element.remove(),delete t.slide.dynamicCaption)})),t.on("zoomPanUpdate",(({slide:i})=>{if(t.opener.isOpen&&i.dynamicCaption){if(i.currZoomLevel>i.zoomLevels.initial?this.hideCaption(i):this.showCaption(i),i.dynamicCaption.element){let t=0;if(i.currZoomLevel<=i.zoomLevels.initial){const e=i.pan.y-i.bounds.center.y;Math.abs(e)>1&&(t=e)}this.setCaptionYOffset(i.dynamicCaption.element,t)}this.adjustPanArea(i,i.currZoomLevel)}})),t.on("beforeZoomTo",(i=>{this.adjustPanArea(t.currSlide,i.destZoomLevel)})),t.on("tapAction",(t=>{t.originalEvent.target.closest(".pswp__dynamic-caption")&&t.preventDefault()}))}adjustPanArea(t,i){t.dynamicCaption&&t.dynamicCaption.adjustedPanAreaSize&&(i>t.zoomLevels.initial?(t.panAreaSize.x=t.dynamicCaption.originalPanAreaSize.x,t.panAreaSize.y=t.dynamicCaption.originalPanAreaSize.y):(t.panAreaSize.x=t.dynamicCaption.adjustedPanAreaSize.x,t.panAreaSize.y=t.dynamicCaption.adjustedPanAreaSize.y))}useMobileLayout(){const{mobileLayoutBreakpoint:t}=this.options;return"function"==typeof t?t.call(this):"number"==typeof t&&window.innerWidth<t}hideCaption(t){if(t.dynamicCaption&&!t.dynamicCaption.hidden){const i=t.dynamicCaption.element;if(!i)return;t.dynamicCaption.hidden=!0,i.classList.add("pswp__dynamic-caption--faded"),t.captionFadeTimeout&&clearTimeout(t.captionFadeTimeout),t.captionFadeTimeout=setTimeout((()=>{i.style.visibility="hidden",delete t.captionFadeTimeout}),400)}}setCaptionYOffset(t,i){t.style.transform=`translateY(${i}px)`}showCaption(t){if(t.dynamicCaption&&t.dynamicCaption.hidden){const i=t.dynamicCaption.element;if(!i)return;t.dynamicCaption.hidden=!1,i.style.visibility="visible",clearTimeout(t.captionFadeTimeout),t.captionFadeTimeout=setTimeout((()=>{i.classList.remove("pswp__dynamic-caption--faded"),delete t.captionFadeTimeout}),50)}}setCaptionPosition(t,i,e){const s=i<=this.options.horizontalEdgeThreshold;t.classList[s?"add":"remove"]("pswp__dynamic-caption--on-hor-edge"),t.style.left=i+"px",t.style.top=e+"px"}setCaptionWidth(t,i){i?t.style.width=i+"px":t.style.removeProperty("width")}setCaptionType(t,i){const e=t.dataset.pswpCaptionType;i!==e&&(t.classList.add("pswp__dynamic-caption--"+i),t.classList.remove("pswp__dynamic-caption--"+e),t.dataset.pswpCaptionType=i)}updateCaptionPosition(t){if(!t.dynamicCaption||!t.dynamicCaption.type||!t.dynamicCaption.element)return;if("mobile"===t.dynamicCaption.type)return this.setCaptionType(t.dynamicCaption.element,t.dynamicCaption.type),t.dynamicCaption.element.style.removeProperty("left"),t.dynamicCaption.element.style.removeProperty("top"),void this.setCaptionWidth(t.dynamicCaption.element,!1);const i=t.zoomLevels.initial,e=Math.ceil(t.width*i),s=Math.ceil(t.height*i);this.setCaptionType(t.dynamicCaption.element,t.dynamicCaption.type),"aside"===t.dynamicCaption.type?(this.setCaptionPosition(t.dynamicCaption.element,t.bounds.center.x+e,t.bounds.center.y),this.setCaptionWidth(t.dynamicCaption.element,!1)):"below"===t.dynamicCaption.type&&(this.setCaptionPosition(t.dynamicCaption.element,t.bounds.center.x,t.bounds.center.y+s),this.setCaptionWidth(t.dynamicCaption.element,e))}onCalcSlideSize(t){const{slide:i}=t;let e,s;if(!i.dynamicCaption){i.dynamicCaption={element:void 0,type:!1,hidden:!1};const t=this.getCaptionHTML(i);if(!t)return;i.dynamicCaption.element=document.createElement("div"),i.dynamicCaption.element.className="pswp__dynamic-caption pswp__hide-on-close",i.dynamicCaption.element.innerHTML=t,this.pswp.dispatch("dynamicCaptionUpdateHTML",{captionElement:i.dynamicCaption.element,slide:i}),i.holderElement.appendChild(i.dynamicCaption.element)}if(!i.dynamicCaption.element)return;this.storeOriginalPanAreaSize(i),i.bounds.update(i.zoomLevels.initial),this.useMobileLayout()?(i.dynamicCaption.type="mobile",s=!0):"auto"===this.options.type?i.bounds.center.x>i.bounds.center.y?i.dynamicCaption.type="aside":i.dynamicCaption.type="below":i.dynamicCaption.type=this.options.type;const o=Math.ceil(i.width*i.zoomLevels.initial),n=Math.ceil(i.height*i.zoomLevels.initial);if(this.setCaptionType(i.dynamicCaption.element,i.dynamicCaption.type),"aside"===i.dynamicCaption.type){this.setCaptionWidth(i.dynamicCaption.element,!1),e=this.measureCaptionSize(i.dynamicCaption.element,t.slide);const s=e.x,n=o+i.bounds.center.x;i.panAreaSize.x-n<=s&&(i.panAreaSize.x-=s,this.recalculateZoomLevelAndBounds(i))}else if("below"===i.dynamicCaption.type||s){this.setCaptionWidth(i.dynamicCaption.element,s?this.pswp.viewportSize.x:o),e=this.measureCaptionSize(i.dynamicCaption.element,t.slide);const a=e.y;if(this.options.verticallyCenterImage)i.panAreaSize.y-=a,this.recalculateZoomLevelAndBounds(i);else{const t=n+i.bounds.center.y,e=i.panAreaSize.y-t,o=i.panAreaSize.y;if(e<=a){i.panAreaSize.y-=Math.min(2*(a-e),a),this.recalculateZoomLevelAndBounds(i);const t=i.panAreaSize.x*this.options.mobileCaptionOverlapRatio/2;s&&i.bounds.center.x>t&&(i.panAreaSize.y=o,this.recalculateZoomLevelAndBounds(i))}}}this.storeAdjustedPanAreaSize(i),this.updateCaptionPosition(i)}measureCaptionSize(t,i){const e=t.getBoundingClientRect();return this.pswp.dispatch("dynamicCaptionMeasureSize",{captionEl:t,slide:i,captionSize:{x:e.width,y:e.height}}).captionSize}recalculateZoomLevelAndBounds(t){t.zoomLevels.update(t.width,t.height,t.panAreaSize),t.bounds.update(t.zoomLevels.initial)}storeAdjustedPanAreaSize(t){t.dynamicCaption&&(t.dynamicCaption.adjustedPanAreaSize||(t.dynamicCaption.adjustedPanAreaSize={}),t.dynamicCaption.adjustedPanAreaSize.x=t.panAreaSize.x,t.dynamicCaption.adjustedPanAreaSize.y=t.panAreaSize.y)}storeOriginalPanAreaSize(t){t.dynamicCaption&&(t.dynamicCaption.originalPanAreaSize||(t.dynamicCaption.originalPanAreaSize={}),t.dynamicCaption.originalPanAreaSize.x=t.panAreaSize.x,t.dynamicCaption.originalPanAreaSize.y=t.panAreaSize.y)}getCaptionHTML(t){if("function"==typeof this.options.captionContent)return this.options.captionContent.call(this,t);const i=t.data.element;let e="";if(i){const t=i.querySelector(this.options.captionContent);if(t)e=t.innerHTML;else{const t=i.querySelector("img");t&&(e=t.getAttribute("alt"))}}return e}}}));
|
@@ -0,0 +1,420 @@
|
|
1
|
+
/*! PhotoSwipe main CSS by Dmytro Semenov | photoswipe.com */
|
2
|
+
|
3
|
+
.pswp {
|
4
|
+
--pswp-bg: #000;
|
5
|
+
--pswp-placeholder-bg: #222;
|
6
|
+
|
7
|
+
|
8
|
+
--pswp-root-z-index: 100000;
|
9
|
+
|
10
|
+
--pswp-preloader-color: rgba(79, 79, 79, 0.4);
|
11
|
+
--pswp-preloader-color-secondary: rgba(255, 255, 255, 0.9);
|
12
|
+
|
13
|
+
/* defined via js:
|
14
|
+
--pswp-transition-duration: 333ms; */
|
15
|
+
|
16
|
+
--pswp-icon-color: #fff;
|
17
|
+
--pswp-icon-color-secondary: #4f4f4f;
|
18
|
+
--pswp-icon-stroke-color: #4f4f4f;
|
19
|
+
--pswp-icon-stroke-width: 2px;
|
20
|
+
|
21
|
+
--pswp-error-text-color: var(--pswp-icon-color);
|
22
|
+
}
|
23
|
+
|
24
|
+
|
25
|
+
/*
|
26
|
+
Styles for basic PhotoSwipe (pswp) functionality (sliding area, open/close transitions)
|
27
|
+
*/
|
28
|
+
|
29
|
+
.pswp {
|
30
|
+
position: fixed;
|
31
|
+
top: 0;
|
32
|
+
left: 0;
|
33
|
+
width: 100%;
|
34
|
+
height: 100%;
|
35
|
+
z-index: var(--pswp-root-z-index);
|
36
|
+
display: none;
|
37
|
+
touch-action: none;
|
38
|
+
outline: 0;
|
39
|
+
opacity: 0.003;
|
40
|
+
contain: layout style size;
|
41
|
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
42
|
+
}
|
43
|
+
|
44
|
+
/* Prevents focus outline on the root element,
|
45
|
+
(it may be focused initially) */
|
46
|
+
.pswp:focus {
|
47
|
+
outline: 0;
|
48
|
+
}
|
49
|
+
|
50
|
+
.pswp * {
|
51
|
+
box-sizing: border-box;
|
52
|
+
}
|
53
|
+
|
54
|
+
.pswp img {
|
55
|
+
max-width: none;
|
56
|
+
}
|
57
|
+
|
58
|
+
.pswp--open {
|
59
|
+
display: block;
|
60
|
+
}
|
61
|
+
|
62
|
+
.pswp,
|
63
|
+
.pswp__bg {
|
64
|
+
transform: translateZ(0);
|
65
|
+
will-change: opacity;
|
66
|
+
}
|
67
|
+
|
68
|
+
.pswp__bg {
|
69
|
+
opacity: 0.005;
|
70
|
+
background: var(--pswp-bg);
|
71
|
+
}
|
72
|
+
|
73
|
+
.pswp,
|
74
|
+
.pswp__scroll-wrap {
|
75
|
+
overflow: hidden;
|
76
|
+
}
|
77
|
+
|
78
|
+
.pswp__scroll-wrap,
|
79
|
+
.pswp__bg,
|
80
|
+
.pswp__container,
|
81
|
+
.pswp__item,
|
82
|
+
.pswp__content,
|
83
|
+
.pswp__img,
|
84
|
+
.pswp__zoom-wrap {
|
85
|
+
position: absolute;
|
86
|
+
top: 0;
|
87
|
+
left: 0;
|
88
|
+
width: 100%;
|
89
|
+
height: 100%;
|
90
|
+
}
|
91
|
+
|
92
|
+
.pswp__img,
|
93
|
+
.pswp__zoom-wrap {
|
94
|
+
width: auto;
|
95
|
+
height: auto;
|
96
|
+
}
|
97
|
+
|
98
|
+
.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img {
|
99
|
+
cursor: -webkit-zoom-in;
|
100
|
+
cursor: -moz-zoom-in;
|
101
|
+
cursor: zoom-in;
|
102
|
+
}
|
103
|
+
|
104
|
+
.pswp--click-to-zoom.pswp--zoomed-in .pswp__img {
|
105
|
+
cursor: move;
|
106
|
+
cursor: -webkit-grab;
|
107
|
+
cursor: -moz-grab;
|
108
|
+
cursor: grab;
|
109
|
+
}
|
110
|
+
|
111
|
+
.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active {
|
112
|
+
cursor: -webkit-grabbing;
|
113
|
+
cursor: -moz-grabbing;
|
114
|
+
cursor: grabbing;
|
115
|
+
}
|
116
|
+
|
117
|
+
/* :active to override grabbing cursor */
|
118
|
+
.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,
|
119
|
+
.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,
|
120
|
+
.pswp__img {
|
121
|
+
cursor: -webkit-zoom-out;
|
122
|
+
cursor: -moz-zoom-out;
|
123
|
+
cursor: zoom-out;
|
124
|
+
}
|
125
|
+
|
126
|
+
|
127
|
+
/* Prevent selection and tap highlights */
|
128
|
+
.pswp__container,
|
129
|
+
.pswp__img,
|
130
|
+
.pswp__button,
|
131
|
+
.pswp__counter {
|
132
|
+
-webkit-user-select: none;
|
133
|
+
-moz-user-select: none;
|
134
|
+
-ms-user-select: none;
|
135
|
+
user-select: none;
|
136
|
+
}
|
137
|
+
|
138
|
+
.pswp__item {
|
139
|
+
/* z-index for fade transition */
|
140
|
+
z-index: 1;
|
141
|
+
overflow: hidden;
|
142
|
+
}
|
143
|
+
|
144
|
+
.pswp__hidden {
|
145
|
+
display: none !important;
|
146
|
+
}
|
147
|
+
|
148
|
+
/* Allow to click through pswp__content element, but not its children */
|
149
|
+
.pswp__content {
|
150
|
+
pointer-events: none;
|
151
|
+
}
|
152
|
+
.pswp__content > * {
|
153
|
+
pointer-events: auto;
|
154
|
+
}
|
155
|
+
|
156
|
+
|
157
|
+
/*
|
158
|
+
|
159
|
+
PhotoSwipe UI
|
160
|
+
|
161
|
+
*/
|
162
|
+
|
163
|
+
/*
|
164
|
+
Error message appears when image is not loaded
|
165
|
+
(JS option errorMsg controls markup)
|
166
|
+
*/
|
167
|
+
.pswp__error-msg-container {
|
168
|
+
display: grid;
|
169
|
+
}
|
170
|
+
.pswp__error-msg {
|
171
|
+
margin: auto;
|
172
|
+
font-size: 1em;
|
173
|
+
line-height: 1;
|
174
|
+
color: var(--pswp-error-text-color);
|
175
|
+
}
|
176
|
+
|
177
|
+
/*
|
178
|
+
class pswp__hide-on-close is applied to elements that
|
179
|
+
should hide (for example fade out) when PhotoSwipe is closed
|
180
|
+
and show (for example fade in) when PhotoSwipe is opened
|
181
|
+
*/
|
182
|
+
.pswp .pswp__hide-on-close {
|
183
|
+
opacity: 0.005;
|
184
|
+
will-change: opacity;
|
185
|
+
transition: opacity var(--pswp-transition-duration) cubic-bezier(0.4, 0, 0.22, 1);
|
186
|
+
z-index: 10; /* always overlap slide content */
|
187
|
+
pointer-events: none; /* hidden elements should not be clickable */
|
188
|
+
}
|
189
|
+
|
190
|
+
/* class pswp--ui-visible is added when opening or closing transition starts */
|
191
|
+
.pswp--ui-visible .pswp__hide-on-close {
|
192
|
+
opacity: 1;
|
193
|
+
pointer-events: auto;
|
194
|
+
}
|
195
|
+
|
196
|
+
/* <button> styles, including css reset */
|
197
|
+
.pswp__button {
|
198
|
+
position: relative;
|
199
|
+
display: block;
|
200
|
+
width: 50px;
|
201
|
+
height: 60px;
|
202
|
+
padding: 0;
|
203
|
+
margin: 0;
|
204
|
+
overflow: hidden;
|
205
|
+
cursor: pointer;
|
206
|
+
background: none;
|
207
|
+
border: 0;
|
208
|
+
box-shadow: none;
|
209
|
+
opacity: 0.85;
|
210
|
+
-webkit-appearance: none;
|
211
|
+
-webkit-touch-callout: none;
|
212
|
+
}
|
213
|
+
|
214
|
+
.pswp__button:hover,
|
215
|
+
.pswp__button:active,
|
216
|
+
.pswp__button:focus {
|
217
|
+
transition: none;
|
218
|
+
padding: 0;
|
219
|
+
background: none;
|
220
|
+
border: 0;
|
221
|
+
box-shadow: none;
|
222
|
+
opacity: 1;
|
223
|
+
}
|
224
|
+
|
225
|
+
.pswp__button:disabled {
|
226
|
+
opacity: 0.3;
|
227
|
+
cursor: auto;
|
228
|
+
}
|
229
|
+
|
230
|
+
.pswp__icn {
|
231
|
+
fill: var(--pswp-icon-color);
|
232
|
+
color: var(--pswp-icon-color-secondary);
|
233
|
+
}
|
234
|
+
|
235
|
+
.pswp__icn {
|
236
|
+
position: absolute;
|
237
|
+
top: 14px;
|
238
|
+
left: 9px;
|
239
|
+
width: 32px;
|
240
|
+
height: 32px;
|
241
|
+
overflow: hidden;
|
242
|
+
pointer-events: none;
|
243
|
+
}
|
244
|
+
|
245
|
+
.pswp__icn-shadow {
|
246
|
+
stroke: var(--pswp-icon-stroke-color);
|
247
|
+
stroke-width: var(--pswp-icon-stroke-width);
|
248
|
+
fill: none;
|
249
|
+
}
|
250
|
+
|
251
|
+
.pswp__icn:focus {
|
252
|
+
outline: 0;
|
253
|
+
}
|
254
|
+
|
255
|
+
/*
|
256
|
+
div element that matches size of large image,
|
257
|
+
large image loads on top of it,
|
258
|
+
used when msrc is not provided
|
259
|
+
*/
|
260
|
+
div.pswp__img--placeholder,
|
261
|
+
.pswp__img--with-bg {
|
262
|
+
background: var(--pswp-placeholder-bg);
|
263
|
+
}
|
264
|
+
|
265
|
+
.pswp__top-bar {
|
266
|
+
position: absolute;
|
267
|
+
left: 0;
|
268
|
+
top: 0;
|
269
|
+
width: 100%;
|
270
|
+
height: 60px;
|
271
|
+
display: flex;
|
272
|
+
flex-direction: row;
|
273
|
+
justify-content: flex-end;
|
274
|
+
z-index: 10;
|
275
|
+
|
276
|
+
/* allow events to pass through top bar itself */
|
277
|
+
pointer-events: none !important;
|
278
|
+
}
|
279
|
+
.pswp__top-bar > * {
|
280
|
+
pointer-events: auto;
|
281
|
+
/* this makes transition significantly more smooth,
|
282
|
+
even though inner elements are not animated */
|
283
|
+
will-change: opacity;
|
284
|
+
}
|
285
|
+
|
286
|
+
|
287
|
+
/*
|
288
|
+
|
289
|
+
Close button
|
290
|
+
|
291
|
+
*/
|
292
|
+
.pswp__button--close {
|
293
|
+
margin-right: 6px;
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
/*
|
298
|
+
|
299
|
+
Arrow buttons
|
300
|
+
|
301
|
+
*/
|
302
|
+
.pswp__button--arrow {
|
303
|
+
position: absolute;
|
304
|
+
top: 0;
|
305
|
+
width: 75px;
|
306
|
+
height: 100px;
|
307
|
+
top: 50%;
|
308
|
+
margin-top: -50px;
|
309
|
+
}
|
310
|
+
|
311
|
+
.pswp__button--arrow:disabled {
|
312
|
+
display: none;
|
313
|
+
cursor: default;
|
314
|
+
}
|
315
|
+
|
316
|
+
.pswp__button--arrow .pswp__icn {
|
317
|
+
top: 50%;
|
318
|
+
margin-top: -30px;
|
319
|
+
width: 60px;
|
320
|
+
height: 60px;
|
321
|
+
background: none;
|
322
|
+
border-radius: 0;
|
323
|
+
}
|
324
|
+
|
325
|
+
.pswp--one-slide .pswp__button--arrow {
|
326
|
+
display: none;
|
327
|
+
}
|
328
|
+
|
329
|
+
/* hide arrows on touch screens */
|
330
|
+
.pswp--touch .pswp__button--arrow {
|
331
|
+
visibility: hidden;
|
332
|
+
}
|
333
|
+
|
334
|
+
/* show arrows only after mouse was used */
|
335
|
+
.pswp--has_mouse .pswp__button--arrow {
|
336
|
+
visibility: visible;
|
337
|
+
}
|
338
|
+
|
339
|
+
.pswp__button--arrow--prev {
|
340
|
+
right: auto;
|
341
|
+
left: 0px;
|
342
|
+
}
|
343
|
+
|
344
|
+
.pswp__button--arrow--next {
|
345
|
+
right: 0px;
|
346
|
+
}
|
347
|
+
.pswp__button--arrow--next .pswp__icn {
|
348
|
+
left: auto;
|
349
|
+
right: 14px;
|
350
|
+
/* flip horizontally */
|
351
|
+
transform: scale(-1, 1);
|
352
|
+
}
|
353
|
+
|
354
|
+
/*
|
355
|
+
|
356
|
+
Zoom button
|
357
|
+
|
358
|
+
*/
|
359
|
+
.pswp__button--zoom {
|
360
|
+
display: none;
|
361
|
+
}
|
362
|
+
|
363
|
+
.pswp--zoom-allowed .pswp__button--zoom {
|
364
|
+
display: block;
|
365
|
+
}
|
366
|
+
|
367
|
+
/* "+" => "-" */
|
368
|
+
.pswp--zoomed-in .pswp__zoom-icn-bar-v {
|
369
|
+
display: none;
|
370
|
+
}
|
371
|
+
|
372
|
+
|
373
|
+
/*
|
374
|
+
|
375
|
+
Loading indicator
|
376
|
+
|
377
|
+
*/
|
378
|
+
.pswp__preloader {
|
379
|
+
position: relative;
|
380
|
+
overflow: hidden;
|
381
|
+
width: 50px;
|
382
|
+
height: 60px;
|
383
|
+
margin-right: auto;
|
384
|
+
}
|
385
|
+
|
386
|
+
.pswp__preloader .pswp__icn {
|
387
|
+
opacity: 0;
|
388
|
+
transition: opacity 0.2s linear;
|
389
|
+
animation: pswp-clockwise 600ms linear infinite;
|
390
|
+
}
|
391
|
+
|
392
|
+
.pswp__preloader--active .pswp__icn {
|
393
|
+
opacity: 0.85;
|
394
|
+
}
|
395
|
+
|
396
|
+
@keyframes pswp-clockwise {
|
397
|
+
0% { transform: rotate(0deg); }
|
398
|
+
100% { transform: rotate(360deg); }
|
399
|
+
}
|
400
|
+
|
401
|
+
|
402
|
+
/*
|
403
|
+
|
404
|
+
"1 of 10" counter
|
405
|
+
|
406
|
+
*/
|
407
|
+
.pswp__counter {
|
408
|
+
height: 30px;
|
409
|
+
margin-top: 15px;
|
410
|
+
margin-inline-start: 20px;
|
411
|
+
font-size: 14px;
|
412
|
+
line-height: 30px;
|
413
|
+
color: var(--pswp-icon-color);
|
414
|
+
text-shadow: 1px 1px 3px var(--pswp-icon-color-secondary);
|
415
|
+
opacity: 0.85;
|
416
|
+
}
|
417
|
+
|
418
|
+
.pswp--one-slide .pswp__counter {
|
419
|
+
display: none;
|
420
|
+
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.css
|
4
|
+
# Caption plugin for PhotoSwipe v5
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# https://github.com/dimsemenov/photoswipe-dynamic-caption-plugin
|
9
|
+
# Copyright (C) 2021 Dmitry Semenov
|
10
|
+
#
|
11
|
+
# Caption plugin for PhotoSwipe is licensed under the MIT License.
|
12
|
+
# See: https://github.com/dimsemenov/photoswipe-dynamic-caption-plugin/blob/main/LICENSE
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
.pswp__dynamic-caption {
|
17
|
+
color: #fff;
|
18
|
+
position: absolute;
|
19
|
+
width: 100%;
|
20
|
+
left: 0;
|
21
|
+
top: 0;
|
22
|
+
transition: opacity 120ms linear !important; /* override default */
|
23
|
+
}
|
24
|
+
|
25
|
+
.pswp-caption-content {
|
26
|
+
display: none;
|
27
|
+
}
|
28
|
+
|
29
|
+
.pswp__dynamic-caption a {
|
30
|
+
color: #fff;
|
31
|
+
}
|
32
|
+
|
33
|
+
.pswp__dynamic-caption--faded {
|
34
|
+
opacity: 0 !important;
|
35
|
+
}
|
36
|
+
|
37
|
+
.pswp__dynamic-caption--aside {
|
38
|
+
width: auto;
|
39
|
+
max-width: 300px;
|
40
|
+
padding: 20px 15px 20px 20px;
|
41
|
+
margin-top: 70px;
|
42
|
+
}
|
43
|
+
|
44
|
+
.pswp__dynamic-caption--below {
|
45
|
+
width: auto;
|
46
|
+
max-width: 700px;
|
47
|
+
padding: 15px 0 0;
|
48
|
+
}
|
49
|
+
|
50
|
+
.pswp__dynamic-caption--on-hor-edge {
|
51
|
+
padding-left: 15px;
|
52
|
+
padding-right: 15px;
|
53
|
+
}
|
54
|
+
|
55
|
+
.pswp__dynamic-caption--mobile {
|
56
|
+
width: 100%;
|
57
|
+
background: rgba(0,0,0,0.5);
|
58
|
+
padding: 10px 15px;
|
59
|
+
|
60
|
+
right: 0;
|
61
|
+
bottom: 0;
|
62
|
+
|
63
|
+
/* override styles that were set via JS.
|
64
|
+
as they interfere with size measurement */
|
65
|
+
top: auto !important;
|
66
|
+
left: 0 !important;
|
67
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/photoswipe/css/photoswipe-caption-plugin.css
|
4
|
+
# Caption plugin for PhotoSwipe v5
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# https://github.com/dimsemenov/photoswipe-dynamic-caption-plugin
|
9
|
+
# Copyright (C) 2021 Dmitry Semenov
|
10
|
+
#
|
11
|
+
# Caption plugin for PhotoSwipe is licensed under the MIT License.
|
12
|
+
# See: https://github.com/dimsemenov/photoswipe-dynamic-caption-plugin/blob/main/LICENSE
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
.pswp__dynamic-caption{color:#fff;position:absolute;width:100%;left:0;top:0;transition:opacity .12s linear!important}.pswp-caption-content{display:none}.pswp__dynamic-caption a{color:#fff}.pswp__dynamic-caption--faded{opacity:0!important}.pswp__dynamic-caption--aside{width:auto;max-width:300px;padding:20px 15px 20px 20px;margin-top:70px}.pswp__dynamic-caption--below{width:auto;max-width:700px;padding:15px 0 0}.pswp__dynamic-caption--on-hor-edge{padding-left:15px;padding-right:15px}.pswp__dynamic-caption--mobile{width:100%;background:rgba(0,0,0,.5);padding:10px 15px;right:0;bottom:0;top:auto!important;left:0!important}
|