framework7 7.0.0-beta.11 → 7.0.0-beta.16
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/components/preloader/preloader-ios.less +3 -0
- package/components/preloader/preloader-rtl.css +1 -1
- package/components/preloader/preloader.css +1 -1
- package/components/statusbar/statusbar.d.ts +9 -9
- package/components/view/view-class.js +8 -1
- package/components/view/view.d.ts +3 -1
- package/components/view/view.js +1 -0
- package/components/virtual-list/virtual-list-class.js +44 -7
- package/components/virtual-list/virtual-list.d.ts +2 -2
- package/components/virtual-list/virtual-list.lazy.js +1 -1
- package/framework7-bundle-rtl.css +5 -2
- package/framework7-bundle-rtl.min.css +3 -3
- package/framework7-bundle.css +5 -2
- package/framework7-bundle.esm.js +2 -2
- package/framework7-bundle.js +57 -13
- package/framework7-bundle.js.map +1 -1
- package/framework7-bundle.less +2 -2
- package/framework7-bundle.min.css +3 -3
- package/framework7-bundle.min.js +3 -3
- package/framework7-bundle.min.js.map +1 -1
- package/framework7-lite-bundle.esm.js +2 -2
- package/framework7-lite.esm.js +2 -2
- package/framework7-rtl.css +2 -2
- package/framework7-rtl.min.css +2 -2
- package/framework7.css +2 -2
- package/framework7.esm.js +2 -2
- package/framework7.js +13 -6
- package/framework7.js.map +1 -1
- package/framework7.less +2 -2
- package/framework7.min.css +2 -2
- package/framework7.min.js +3 -3
- package/framework7.min.js.map +1 -1
- package/modules/component/component.d.ts +2 -2
- package/modules/device/device.js +1 -1
- package/package.json +2 -1
- package/shared/get-device.d.ts +0 -2
- package/shared/get-device.js +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--f7-preloader-modal-padding:8px;--f7-preloader-modal-bg-color:rgba(0, 0, 0, 0.8)}.ios{--f7-preloader-color:#6c6c6c;--f7-preloader-size:20px;--f7-preloader-modal-preloader-size:34px;--f7-preloader-modal-border-radius:5px}.md{--f7-preloader-color:#757575;--f7-preloader-size:32px;--f7-preloader-modal-preloader-size:32px;--f7-preloader-modal-border-radius:4px}.aurora{--f7-preloader-color:#757575;--f7-preloader-size:24px;--f7-preloader-modal-preloader-size:24px;--f7-preloader-modal-border-radius:4px}.preloader{display:inline-block;vertical-align:middle;width:var(--f7-preloader-size);height:var(--f7-preloader-size);font-size:0;position:relative}.preloader .preloader-inner{width:100%;height:100%;display:block;position:relative}.preloader-backdrop{visibility:visible;opacity:0;background:0 0;z-index:14000}.preloader-modal{position:absolute;left:50%;top:50%;padding:var(--f7-preloader-modal-padding);background:var(--f7-preloader-modal-bg-color);z-index:14500;transform:translateX(-50%) translateY(-50%);border-radius:var(--f7-preloader-modal-border-radius)}.preloader-modal .preloader{--f7-preloader-size:var(--f7-preloader-modal-preloader-size);display:block!important}.with-modal-preloader .page-content,.with-modal-preloader.page-content,html.with-modal-preloader .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}.preloader[class*=color-]{--f7-preloader-color:var(--f7-theme-color)}.ios .preloader-inner{animation:ios-preloader-spin 1s steps(8,end) infinite}.ios .preloader-inner-line{display:block;width:11.6%;height:33.33%;border-radius:100px;background:var(--f7-preloader-color);position:absolute;left:50%;top:50%;transform-origin:center 150%}.ios .preloader.color-multi .preloader-inner-line{animation:ios-preloader-multicolor 3s linear infinite}.ios .preloader-inner-line:nth-child(1){transform:translate(-50%,-150%) rotate(0deg);opacity:.27}.ios .preloader-inner-line:nth-child(2){transform:translate(-50%,-150%) rotate(45deg);opacity:.35285714}.ios .preloader-inner-line:nth-child(3){transform:translate(-50%,-150%) rotate(90deg);opacity:.43571429}.ios .preloader-inner-line:nth-child(4){transform:translate(-50%,-150%) rotate(135deg);opacity:.51857143}.ios .preloader-inner-line:nth-child(5){transform:translate(-50%,-150%) rotate(180deg);opacity:.60142857}.ios .preloader-inner-line:nth-child(6){transform:translate(-50%,-150%) rotate(225deg);opacity:.68428571}.ios .preloader-inner-line:nth-child(7){transform:translate(-50%,-150%) rotate(270deg);opacity:.76714286}.ios .preloader-inner-line:nth-child(8){transform:translate(-50%,-150%) rotate(315deg);opacity:.85}@keyframes ios-preloader-spin{100%{transform:rotate(360deg)}}@keyframes ios-preloader-multicolor{0%,100%{background-color:#2196f3}25%{background-color:#ff3b30}50%{background-color:#4cd964}75%{background-color:#ff9500}}.md .preloader-inner{animation:md-preloader-rotate 1.4s linear infinite}.md .preloader-inner circle{fill:none;stroke:var(--f7-preloader-color);animation:md-preloader-circle-rotate 5.6s ease-in-out infinite;stroke-dasharray:100px;stroke-dashoffset:80px;stroke-width:4;transform:rotate(-90deg);transform-origin:18px 18px}.md .preloader.color-multi circle{animation:md-preloader-circle-rotate 5.6s ease-in-out infinite,md-preloader-multicolor 5.6s ease-in-out infinite}@keyframes md-preloader-multicolor{0%,100%{stroke:#4285f4}75%{stroke:#1b9a59}50%{stroke:#f7c223}25%{stroke:#de3e35}}@keyframes md-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes md-preloader-circle-rotate{0%{transform:rotate(-90deg);stroke-dashoffset:100px}12.5%{transform:rotate(-90deg);stroke-dashoffset:25px}25%{stroke-dashoffset:100px;transform:rotate(180deg)}25.1%{transform:rotate(-180deg);stroke-dashoffset:100px}37.5%{transform:rotate(-180deg);stroke-dashoffset:25px}50%{stroke-dashoffset:100px;transform:rotate(90deg)}50.1%{transform:rotate(90deg);stroke-dashoffset:100px}62.5%{transform:rotate(90deg);stroke-dashoffset:25px}75%{stroke-dashoffset:100px;transform:rotate(360deg)}75.1%{transform:rotate(0deg);stroke-dashoffset:100px}87.5%{transform:rotate(0deg);stroke-dashoffset:25px}100%{stroke-dashoffset:100px;transform:rotate(270deg)}}.aurora .preloader-inner{position:absolute;left:0;top:0}.aurora .preloader-inner-circle{width:100%;height:100%;position:absolute;left:0;top:0;border-radius:50%;border:calc(var(--f7-preloader-size)/ 8) solid var(--f7-preloader-color);border-top-color:transparent;box-sizing:border-box;animation:aurora-preloader-rotate .75s linear infinite}.aurora .preloader.color-multi .preloader-inner-circle{animation:aurora-preloader-rotate .75s linear infinite,aurora-preloader-multicolor 3s linear infinite}@keyframes aurora-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes aurora-preloader-multicolor{0%,100%{border-color:#2196f3;border-top-color:transparent}25%{border-color:#ff3b30;border-top-color:transparent}50%{border-color:#4cd964;border-top-color:transparent}75%{border-color:#ff9500;border-top-color:transparent}}
|
|
1
|
+
:root{--f7-preloader-modal-padding:8px;--f7-preloader-modal-bg-color:rgba(0, 0, 0, 0.8)}.ios{--f7-preloader-color:#6c6c6c;--f7-preloader-size:20px;--f7-preloader-modal-preloader-size:34px;--f7-preloader-modal-border-radius:5px}.md{--f7-preloader-color:#757575;--f7-preloader-size:32px;--f7-preloader-modal-preloader-size:32px;--f7-preloader-modal-border-radius:4px}.aurora{--f7-preloader-color:#757575;--f7-preloader-size:24px;--f7-preloader-modal-preloader-size:24px;--f7-preloader-modal-border-radius:4px}.preloader{display:inline-block;vertical-align:middle;width:var(--f7-preloader-size);height:var(--f7-preloader-size);font-size:0;position:relative}.preloader .preloader-inner{width:100%;height:100%;display:block;position:relative}.preloader-backdrop{visibility:visible;opacity:0;background:0 0;z-index:14000}.preloader-modal{position:absolute;left:50%;top:50%;padding:var(--f7-preloader-modal-padding);background:var(--f7-preloader-modal-bg-color);z-index:14500;transform:translateX(-50%) translateY(-50%);border-radius:var(--f7-preloader-modal-border-radius)}.preloader-modal .preloader{--f7-preloader-size:var(--f7-preloader-modal-preloader-size);display:block!important}.with-modal-preloader .page-content,.with-modal-preloader.page-content,html.with-modal-preloader .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}.preloader[class*=color-]{--f7-preloader-color:var(--f7-theme-color)}.ios .preloader-inner{animation:ios-preloader-spin 1s steps(8,end) infinite}.ios .preloader-inner-line{display:block;width:11.6%;height:33.33%;border-radius:100px;background:var(--f7-preloader-color);position:absolute;left:50%;top:50%;transform-origin:center 150%}.ios .preloader.color-multi .preloader-inner-line{animation:ios-preloader-multicolor 3s linear infinite}.ios .preloader-inner-line:nth-child(1){transform:translate(-50%,-150%) rotate(0deg);opacity:.27}.ios .preloader-inner-line:nth-child(2){transform:translate(-50%,-150%) rotate(45deg);opacity:.35285714}.ios .preloader-inner-line:nth-child(3){transform:translate(-50%,-150%) rotate(90deg);opacity:.43571429}.ios .preloader-inner-line:nth-child(4){transform:translate(-50%,-150%) rotate(135deg);opacity:.51857143}.ios .preloader-inner-line:nth-child(5){transform:translate(-50%,-150%) rotate(180deg);opacity:.60142857}.ios .preloader-inner-line:nth-child(6){transform:translate(-50%,-150%) rotate(225deg);opacity:.68428571}.ios .preloader-inner-line:nth-child(7){transform:translate(-50%,-150%) rotate(270deg);opacity:.76714286}.ios .preloader-inner-line:nth-child(8){transform:translate(-50%,-150%) rotate(315deg);opacity:.85}@keyframes ios-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes ios-preloader-multicolor{0%,100%{background-color:#2196f3}25%{background-color:#ff3b30}50%{background-color:#4cd964}75%{background-color:#ff9500}}.md .preloader-inner{animation:md-preloader-rotate 1.4s linear infinite}.md .preloader-inner circle{fill:none;stroke:var(--f7-preloader-color);animation:md-preloader-circle-rotate 5.6s ease-in-out infinite;stroke-dasharray:100px;stroke-dashoffset:80px;stroke-width:4;transform:rotate(-90deg);transform-origin:18px 18px}.md .preloader.color-multi circle{animation:md-preloader-circle-rotate 5.6s ease-in-out infinite,md-preloader-multicolor 5.6s ease-in-out infinite}@keyframes md-preloader-multicolor{0%,100%{stroke:#4285f4}75%{stroke:#1b9a59}50%{stroke:#f7c223}25%{stroke:#de3e35}}@keyframes md-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes md-preloader-circle-rotate{0%{transform:rotate(-90deg);stroke-dashoffset:100px}12.5%{transform:rotate(-90deg);stroke-dashoffset:25px}25%{stroke-dashoffset:100px;transform:rotate(180deg)}25.1%{transform:rotate(-180deg);stroke-dashoffset:100px}37.5%{transform:rotate(-180deg);stroke-dashoffset:25px}50%{stroke-dashoffset:100px;transform:rotate(90deg)}50.1%{transform:rotate(90deg);stroke-dashoffset:100px}62.5%{transform:rotate(90deg);stroke-dashoffset:25px}75%{stroke-dashoffset:100px;transform:rotate(360deg)}75.1%{transform:rotate(0deg);stroke-dashoffset:100px}87.5%{transform:rotate(0deg);stroke-dashoffset:25px}100%{stroke-dashoffset:100px;transform:rotate(270deg)}}.aurora .preloader-inner{position:absolute;left:0;top:0}.aurora .preloader-inner-circle{width:100%;height:100%;position:absolute;left:0;top:0;border-radius:50%;border:calc(var(--f7-preloader-size)/ 8) solid var(--f7-preloader-color);border-top-color:transparent;box-sizing:border-box;animation:aurora-preloader-rotate .75s linear infinite}.aurora .preloader.color-multi .preloader-inner-circle{animation:aurora-preloader-rotate .75s linear infinite,aurora-preloader-multicolor 3s linear infinite}@keyframes aurora-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes aurora-preloader-multicolor{0%,100%{border-color:#2196f3;border-top-color:transparent}25%{border-color:#ff3b30;border-top-color:transparent}50%{border-color:#4cd964;border-top-color:transparent}75%{border-color:#ff9500;border-top-color:transparent}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--f7-preloader-modal-padding:8px;--f7-preloader-modal-bg-color:rgba(0, 0, 0, 0.8)}.ios{--f7-preloader-color:#6c6c6c;--f7-preloader-size:20px;--f7-preloader-modal-preloader-size:34px;--f7-preloader-modal-border-radius:5px}.md{--f7-preloader-color:#757575;--f7-preloader-size:32px;--f7-preloader-modal-preloader-size:32px;--f7-preloader-modal-border-radius:4px}.aurora{--f7-preloader-color:#757575;--f7-preloader-size:24px;--f7-preloader-modal-preloader-size:24px;--f7-preloader-modal-border-radius:4px}.preloader{display:inline-block;vertical-align:middle;width:var(--f7-preloader-size);height:var(--f7-preloader-size);font-size:0;position:relative}.preloader .preloader-inner{width:100%;height:100%;display:block;position:relative}.preloader-backdrop{visibility:visible;opacity:0;background:0 0;z-index:14000}.preloader-modal{position:absolute;left:50%;top:50%;padding:var(--f7-preloader-modal-padding);background:var(--f7-preloader-modal-bg-color);z-index:14500;transform:translateX(-50%) translateY(-50%);border-radius:var(--f7-preloader-modal-border-radius)}.preloader-modal .preloader{--f7-preloader-size:var(--f7-preloader-modal-preloader-size);display:block!important}.with-modal-preloader .page-content,.with-modal-preloader.page-content,html.with-modal-preloader .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}.preloader[class*=color-]{--f7-preloader-color:var(--f7-theme-color)}.ios .preloader-inner{animation:ios-preloader-spin 1s steps(8,end) infinite}.ios .preloader-inner-line{display:block;width:11.6%;height:33.33%;border-radius:100px;background:var(--f7-preloader-color);position:absolute;left:50%;top:50%;transform-origin:center 150%}.ios .preloader.color-multi .preloader-inner-line{animation:ios-preloader-multicolor 3s linear infinite}.ios .preloader-inner-line:nth-child(1){transform:translate(-50%,-150%) rotate(0deg);opacity:.27}.ios .preloader-inner-line:nth-child(2){transform:translate(-50%,-150%) rotate(45deg);opacity:.35285714}.ios .preloader-inner-line:nth-child(3){transform:translate(-50%,-150%) rotate(90deg);opacity:.43571429}.ios .preloader-inner-line:nth-child(4){transform:translate(-50%,-150%) rotate(135deg);opacity:.51857143}.ios .preloader-inner-line:nth-child(5){transform:translate(-50%,-150%) rotate(180deg);opacity:.60142857}.ios .preloader-inner-line:nth-child(6){transform:translate(-50%,-150%) rotate(225deg);opacity:.68428571}.ios .preloader-inner-line:nth-child(7){transform:translate(-50%,-150%) rotate(270deg);opacity:.76714286}.ios .preloader-inner-line:nth-child(8){transform:translate(-50%,-150%) rotate(315deg);opacity:.85}@keyframes ios-preloader-spin{100%{transform:rotate(360deg)}}@keyframes ios-preloader-multicolor{0%,100%{background-color:#2196f3}25%{background-color:#ff3b30}50%{background-color:#4cd964}75%{background-color:#ff9500}}.md .preloader-inner{animation:md-preloader-rotate 1.4s linear infinite}.md .preloader-inner circle{fill:none;stroke:var(--f7-preloader-color);animation:md-preloader-circle-rotate 5.6s ease-in-out infinite;stroke-dasharray:100px;stroke-dashoffset:80px;stroke-width:4;transform:rotate(-90deg);transform-origin:18px 18px}.md .preloader.color-multi circle{animation:md-preloader-circle-rotate 5.6s ease-in-out infinite,md-preloader-multicolor 5.6s ease-in-out infinite}@keyframes md-preloader-multicolor{0%,100%{stroke:#4285f4}75%{stroke:#1b9a59}50%{stroke:#f7c223}25%{stroke:#de3e35}}@keyframes md-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes md-preloader-circle-rotate{0%{transform:rotate(-90deg);stroke-dashoffset:100px}12.5%{transform:rotate(-90deg);stroke-dashoffset:25px}25%{stroke-dashoffset:100px;transform:rotate(180deg)}25.1%{transform:rotate(-180deg);stroke-dashoffset:100px}37.5%{transform:rotate(-180deg);stroke-dashoffset:25px}50%{stroke-dashoffset:100px;transform:rotate(90deg)}50.1%{transform:rotate(90deg);stroke-dashoffset:100px}62.5%{transform:rotate(90deg);stroke-dashoffset:25px}75%{stroke-dashoffset:100px;transform:rotate(360deg)}75.1%{transform:rotate(0deg);stroke-dashoffset:100px}87.5%{transform:rotate(0deg);stroke-dashoffset:25px}100%{stroke-dashoffset:100px;transform:rotate(270deg)}}.aurora .preloader-inner{position:absolute;left:0;top:0}.aurora .preloader-inner-circle{width:100%;height:100%;position:absolute;left:0;top:0;border-radius:50%;border:calc(var(--f7-preloader-size)/ 8) solid var(--f7-preloader-color);border-top-color:transparent;box-sizing:border-box;animation:aurora-preloader-rotate .75s linear infinite}.aurora .preloader.color-multi .preloader-inner-circle{animation:aurora-preloader-rotate .75s linear infinite,aurora-preloader-multicolor 3s linear infinite}@keyframes aurora-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes aurora-preloader-multicolor{0%,100%{border-color:#2196f3;border-top-color:transparent}25%{border-color:#ff3b30;border-top-color:transparent}50%{border-color:#4cd964;border-top-color:transparent}75%{border-color:#ff9500;border-top-color:transparent}}
|
|
1
|
+
:root{--f7-preloader-modal-padding:8px;--f7-preloader-modal-bg-color:rgba(0, 0, 0, 0.8)}.ios{--f7-preloader-color:#6c6c6c;--f7-preloader-size:20px;--f7-preloader-modal-preloader-size:34px;--f7-preloader-modal-border-radius:5px}.md{--f7-preloader-color:#757575;--f7-preloader-size:32px;--f7-preloader-modal-preloader-size:32px;--f7-preloader-modal-border-radius:4px}.aurora{--f7-preloader-color:#757575;--f7-preloader-size:24px;--f7-preloader-modal-preloader-size:24px;--f7-preloader-modal-border-radius:4px}.preloader{display:inline-block;vertical-align:middle;width:var(--f7-preloader-size);height:var(--f7-preloader-size);font-size:0;position:relative}.preloader .preloader-inner{width:100%;height:100%;display:block;position:relative}.preloader-backdrop{visibility:visible;opacity:0;background:0 0;z-index:14000}.preloader-modal{position:absolute;left:50%;top:50%;padding:var(--f7-preloader-modal-padding);background:var(--f7-preloader-modal-bg-color);z-index:14500;transform:translateX(-50%) translateY(-50%);border-radius:var(--f7-preloader-modal-border-radius)}.preloader-modal .preloader{--f7-preloader-size:var(--f7-preloader-modal-preloader-size);display:block!important}.with-modal-preloader .page-content,.with-modal-preloader.page-content,html.with-modal-preloader .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}.preloader[class*=color-]{--f7-preloader-color:var(--f7-theme-color)}.ios .preloader-inner{animation:ios-preloader-spin 1s steps(8,end) infinite}.ios .preloader-inner-line{display:block;width:11.6%;height:33.33%;border-radius:100px;background:var(--f7-preloader-color);position:absolute;left:50%;top:50%;transform-origin:center 150%}.ios .preloader.color-multi .preloader-inner-line{animation:ios-preloader-multicolor 3s linear infinite}.ios .preloader-inner-line:nth-child(1){transform:translate(-50%,-150%) rotate(0deg);opacity:.27}.ios .preloader-inner-line:nth-child(2){transform:translate(-50%,-150%) rotate(45deg);opacity:.35285714}.ios .preloader-inner-line:nth-child(3){transform:translate(-50%,-150%) rotate(90deg);opacity:.43571429}.ios .preloader-inner-line:nth-child(4){transform:translate(-50%,-150%) rotate(135deg);opacity:.51857143}.ios .preloader-inner-line:nth-child(5){transform:translate(-50%,-150%) rotate(180deg);opacity:.60142857}.ios .preloader-inner-line:nth-child(6){transform:translate(-50%,-150%) rotate(225deg);opacity:.68428571}.ios .preloader-inner-line:nth-child(7){transform:translate(-50%,-150%) rotate(270deg);opacity:.76714286}.ios .preloader-inner-line:nth-child(8){transform:translate(-50%,-150%) rotate(315deg);opacity:.85}@keyframes ios-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes ios-preloader-multicolor{0%,100%{background-color:#2196f3}25%{background-color:#ff3b30}50%{background-color:#4cd964}75%{background-color:#ff9500}}.md .preloader-inner{animation:md-preloader-rotate 1.4s linear infinite}.md .preloader-inner circle{fill:none;stroke:var(--f7-preloader-color);animation:md-preloader-circle-rotate 5.6s ease-in-out infinite;stroke-dasharray:100px;stroke-dashoffset:80px;stroke-width:4;transform:rotate(-90deg);transform-origin:18px 18px}.md .preloader.color-multi circle{animation:md-preloader-circle-rotate 5.6s ease-in-out infinite,md-preloader-multicolor 5.6s ease-in-out infinite}@keyframes md-preloader-multicolor{0%,100%{stroke:#4285f4}75%{stroke:#1b9a59}50%{stroke:#f7c223}25%{stroke:#de3e35}}@keyframes md-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes md-preloader-circle-rotate{0%{transform:rotate(-90deg);stroke-dashoffset:100px}12.5%{transform:rotate(-90deg);stroke-dashoffset:25px}25%{stroke-dashoffset:100px;transform:rotate(180deg)}25.1%{transform:rotate(-180deg);stroke-dashoffset:100px}37.5%{transform:rotate(-180deg);stroke-dashoffset:25px}50%{stroke-dashoffset:100px;transform:rotate(90deg)}50.1%{transform:rotate(90deg);stroke-dashoffset:100px}62.5%{transform:rotate(90deg);stroke-dashoffset:25px}75%{stroke-dashoffset:100px;transform:rotate(360deg)}75.1%{transform:rotate(0deg);stroke-dashoffset:100px}87.5%{transform:rotate(0deg);stroke-dashoffset:25px}100%{stroke-dashoffset:100px;transform:rotate(270deg)}}.aurora .preloader-inner{position:absolute;left:0;top:0}.aurora .preloader-inner-circle{width:100%;height:100%;position:absolute;left:0;top:0;border-radius:50%;border:calc(var(--f7-preloader-size)/ 8) solid var(--f7-preloader-color);border-top-color:transparent;box-sizing:border-box;animation:aurora-preloader-rotate .75s linear infinite}.aurora .preloader.color-multi .preloader-inner-circle{animation:aurora-preloader-rotate .75s linear infinite,aurora-preloader-multicolor 3s linear infinite}@keyframes aurora-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes aurora-preloader-multicolor{0%,100%{border-color:#2196f3;border-top-color:transparent}25%{border-color:#ff3b30;border-top-color:transparent}50%{border-color:#4cd964;border-top-color:transparent}75%{border-color:#ff9500;border-top-color:transparent}}
|
|
@@ -7,20 +7,20 @@ export namespace Statusbar {
|
|
|
7
7
|
| {
|
|
8
8
|
/** Enables statusbar handling by Framework7. Disable it if you don't want Framework7 to handle statusbar behavior */
|
|
9
9
|
enabled?: boolean;
|
|
10
|
-
/** If enabled, then click on statusbar overlay will scroll top page content to the top.This functionality is only available when app is running under cordova/
|
|
10
|
+
/** If enabled, then click on statusbar overlay will scroll top page content to the top.This functionality is only available when app is running under cordova/capacitor environment with installed cordova-plugin-statusbar */
|
|
11
11
|
scrollTopOnClick?: boolean;
|
|
12
12
|
/** Hex string (#RRGGBB) with background color when app running under iOS device. If passed then it will override CSS value */
|
|
13
13
|
iosBackgroundColor?: string;
|
|
14
|
-
/** Makes the statusbar overlay or not overlay the WebView. This functionality is only available when app is running on iOS device under cordova/
|
|
14
|
+
/** Makes the statusbar overlay or not overlay the WebView. This functionality is only available when app is running on iOS device under cordova/capacitor environment with installed cordova-plugin-statusbar*/
|
|
15
15
|
iosOverlaysWebView?: boolean;
|
|
16
|
-
/** Statusbar text color. Can be white or black. This functionality is only available when app is running on iOS under cordova/
|
|
16
|
+
/** Statusbar text color. Can be white or black. This functionality is only available when app is running on iOS under cordova/capacitor environment with installed cordova-plugin-statusbar */
|
|
17
17
|
iosTextColor?: string;
|
|
18
18
|
/** Hex string (#RRGGBB) with background color when app running on Android device. If passed then it will override CSS value */
|
|
19
19
|
androidBackgroundColor?: string;
|
|
20
|
-
/** Makes the statusbar overlay or not overlay the WebView. This functionality is only available when app is running on Android and under cordova/
|
|
20
|
+
/** Makes the statusbar overlay or not overlay the WebView. This functionality is only available when app is running on Android and under cordova/capacitor environment with installed cordova-plugin-statusbar
|
|
21
21
|
*/
|
|
22
22
|
androidOverlaysWebView?: boolean;
|
|
23
|
-
/** Statusbar text color. Can be white or black. This functionality is only available when app is running on Android and under cordova/
|
|
23
|
+
/** Statusbar text color. Can be white or black. This functionality is only available when app is running on Android and under cordova/capacitor environment with installed cordova-plugin-statusbar */
|
|
24
24
|
androidTextColor?: string;
|
|
25
25
|
}
|
|
26
26
|
| undefined;
|
|
@@ -29,17 +29,17 @@ export namespace Statusbar {
|
|
|
29
29
|
interface AppMethods {
|
|
30
30
|
/** Statusbar methods and properties */
|
|
31
31
|
statusbar: {
|
|
32
|
-
/** Hide statusbar. In webapp it just hides statusbar overlay, but in cordova app it will hide statusbar at all. Hiding device statusbar is available when app is running under cordova/
|
|
32
|
+
/** Hide statusbar. In webapp it just hides statusbar overlay, but in cordova app it will hide statusbar at all. Hiding device statusbar is available when app is running under cordova/capacitor environment with installed cordova-plugin-statusbar */
|
|
33
33
|
hide(): void;
|
|
34
34
|
/** Show statusbar */
|
|
35
35
|
show(): void;
|
|
36
|
-
/** Makes the statusbar overlay or not overlay the WebView. This functionality is only available when app is running under cordova/
|
|
36
|
+
/** Makes the statusbar overlay or not overlay the WebView. This functionality is only available when app is running under cordova/capacitor environment with installed cordova-plugin-statusbar */
|
|
37
37
|
overlaysWebView(overlays: boolean): void;
|
|
38
|
-
/** "Set/change statusbar text color. "color" can be white or black. This functionality is only available when app is running under cordova/
|
|
38
|
+
/** "Set/change statusbar text color. "color" can be white or black. This functionality is only available when app is running under cordova/capacitor environment with installed cordova-plugin-statusbar" */
|
|
39
39
|
setTextColor(color: string): void;
|
|
40
40
|
/** Set/change statusbar background colorhex - string - Hex string (#RRGGBB) with background color */
|
|
41
41
|
setBackgroundColor(hex: string): void;
|
|
42
|
-
/** Returns Promise resolved with "true" if system statusbar is visible and false when it is not visible. This functionality is only available when app is running under cordova/
|
|
42
|
+
/** Returns Promise resolved with "true" if system statusbar is visible and false when it is not visible. This functionality is only available when app is running under cordova/capacitor/capacitor environment with installed cordova-plugin-statusbar */
|
|
43
43
|
isVisible(): Promise<boolean>;
|
|
44
44
|
};
|
|
45
45
|
}
|
|
@@ -207,7 +207,14 @@ class View extends Framework7Class {
|
|
|
207
207
|
view.initMasterDetail();
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
view.
|
|
210
|
+
if (view.params.initRouterOnTabShow && view.$el.hasClass('tab') && !view.$el.hasClass('tab-active')) {
|
|
211
|
+
view.$el.once('tab:show', () => {
|
|
212
|
+
view.router.init();
|
|
213
|
+
});
|
|
214
|
+
} else {
|
|
215
|
+
view.router.init();
|
|
216
|
+
}
|
|
217
|
+
|
|
211
218
|
view.$el.trigger('view:init');
|
|
212
219
|
view.emit('local::init viewInit', view);
|
|
213
220
|
}
|
|
@@ -26,6 +26,8 @@ export namespace View {
|
|
|
26
26
|
destroy(): void;
|
|
27
27
|
}
|
|
28
28
|
interface Parameters {
|
|
29
|
+
/** If enabled and View is tab, it won't initialize router and load initial page until View tab becomes visible */
|
|
30
|
+
initRouterOnTabShow?: boolean;
|
|
29
31
|
/** View name. If view was created with name, then it may be accessed via app.views.[name] */
|
|
30
32
|
name?: string;
|
|
31
33
|
/** Specify whether this is View is main or not. If not passed then will be determined based on whether its element has view-main class or not */
|
|
@@ -142,7 +144,7 @@ export namespace View {
|
|
|
142
144
|
auroraSwipeBackAnimateShadow?: boolean;
|
|
143
145
|
/** Enable/disable opacity animation during swipe back action. You can disable it to improve performance. For Aurora theme */
|
|
144
146
|
auroraSwipeBackAnimateOpacity?: boolean;
|
|
145
|
-
/** If you develop web app (not
|
|
147
|
+
/** If you develop web app (not Cordova/Capacitor or Home Screen web app) it is useful to enable hash navigation (browser url will look like "http://my-webapp.com/#!/about.html"). User as well will be able to navigate through app's history by using browser's default back and forward buttons. */
|
|
146
148
|
browserHistory?: boolean;
|
|
147
149
|
/** Browser history root URL, for example "http://my-app.com/". It is useful only in case when you use empty ("") browserHistorySeparator */
|
|
148
150
|
browserHistoryRoot?: string;
|
package/components/view/view.js
CHANGED
|
@@ -122,7 +122,8 @@ class VirtualList extends Framework7Class {
|
|
|
122
122
|
rowsToRender: undefined,
|
|
123
123
|
maxBufferHeight: 0,
|
|
124
124
|
listHeight: undefined,
|
|
125
|
-
dynamicHeight: typeof vl.params.height === 'function'
|
|
125
|
+
dynamicHeight: typeof vl.params.height === 'function',
|
|
126
|
+
autoHeight: vl.params.height === 'auto'
|
|
126
127
|
}); // Install Modules
|
|
127
128
|
|
|
128
129
|
vl.useModules(); // Attach events
|
|
@@ -163,10 +164,13 @@ class VirtualList extends Framework7Class {
|
|
|
163
164
|
return vl;
|
|
164
165
|
}
|
|
165
166
|
|
|
166
|
-
setListSize() {
|
|
167
|
+
setListSize(autoHeightRerender) {
|
|
167
168
|
const vl = this;
|
|
168
169
|
const items = vl.filteredItems || vl.items;
|
|
169
|
-
|
|
170
|
+
|
|
171
|
+
if (!autoHeightRerender) {
|
|
172
|
+
vl.pageHeight = vl.$scrollableParentEl[0].offsetHeight;
|
|
173
|
+
}
|
|
170
174
|
|
|
171
175
|
if (vl.dynamicHeight) {
|
|
172
176
|
vl.listHeight = 0;
|
|
@@ -177,6 +181,31 @@ class VirtualList extends Framework7Class {
|
|
|
177
181
|
vl.listHeight += itemHeight;
|
|
178
182
|
vl.heights.push(itemHeight);
|
|
179
183
|
}
|
|
184
|
+
} else if (vl.autoHeight) {
|
|
185
|
+
vl.listHeight = 0;
|
|
186
|
+
if (!vl.heights) vl.heights = [];
|
|
187
|
+
if (!vl.heightsCalculated) vl.heightsCalculated = [];
|
|
188
|
+
const renderedItems = {};
|
|
189
|
+
vl.$itemsWrapEl.find(`[data-virtual-list-index]`).forEach(el => {
|
|
190
|
+
renderedItems[parseInt(el.getAttribute('data-virtual-list-index'), 10)] = el;
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
for (let i = 0; i < items.length; i += 1) {
|
|
194
|
+
const renderedItem = renderedItems[i];
|
|
195
|
+
|
|
196
|
+
if (renderedItem) {
|
|
197
|
+
if (!vl.heightsCalculated.includes(i)) {
|
|
198
|
+
vl.heights[i] = renderedItem.offsetHeight;
|
|
199
|
+
vl.heightsCalculated.push(i);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (typeof vl.heights[i] === 'undefined') {
|
|
204
|
+
vl.heights[i] = 40;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
vl.listHeight += vl.heights[i];
|
|
208
|
+
}
|
|
180
209
|
} else {
|
|
181
210
|
vl.listHeight = Math.ceil(items.length / vl.params.cols) * vl.params.height;
|
|
182
211
|
vl.rowsPerScreen = Math.ceil(vl.pageHeight / vl.params.height);
|
|
@@ -211,7 +240,7 @@ class VirtualList extends Framework7Class {
|
|
|
211
240
|
let heightBeforeFirstItem = 0;
|
|
212
241
|
let heightBeforeLastItem = 0;
|
|
213
242
|
|
|
214
|
-
if (vl.dynamicHeight) {
|
|
243
|
+
if (vl.dynamicHeight || vl.autoHeight) {
|
|
215
244
|
let itemTop = 0;
|
|
216
245
|
let itemHeight;
|
|
217
246
|
vl.maxBufferHeight = vl.pageHeight;
|
|
@@ -278,7 +307,7 @@ class VirtualList extends Framework7Class {
|
|
|
278
307
|
|
|
279
308
|
|
|
280
309
|
if (i === fromIndex) {
|
|
281
|
-
if (vl.dynamicHeight) {
|
|
310
|
+
if (vl.dynamicHeight || vl.autoHeight) {
|
|
282
311
|
topPosition = heightBeforeFirstItem;
|
|
283
312
|
} else {
|
|
284
313
|
topPosition = i * vl.params.height / vl.params.cols;
|
|
@@ -296,7 +325,7 @@ class VirtualList extends Framework7Class {
|
|
|
296
325
|
|
|
297
326
|
|
|
298
327
|
if (!vl.updatableScroll) {
|
|
299
|
-
if (vl.dynamicHeight) {
|
|
328
|
+
if (vl.dynamicHeight || vl.autoHeight) {
|
|
300
329
|
vl.itemsWrapEl.style.height = `${heightBeforeLastItem}px`;
|
|
301
330
|
} else {
|
|
302
331
|
vl.itemsWrapEl.style.height = `${i * vl.params.height / vl.params.cols}px`;
|
|
@@ -336,6 +365,12 @@ class VirtualList extends Framework7Class {
|
|
|
336
365
|
items: renderExternalItems
|
|
337
366
|
});
|
|
338
367
|
}
|
|
368
|
+
|
|
369
|
+
if (vl.autoHeight) {
|
|
370
|
+
requestAnimationFrame(() => {
|
|
371
|
+
vl.setListSize(true);
|
|
372
|
+
});
|
|
373
|
+
}
|
|
339
374
|
} // Filter
|
|
340
375
|
|
|
341
376
|
|
|
@@ -372,7 +407,7 @@ class VirtualList extends Framework7Class {
|
|
|
372
407
|
if (index > vl.items.length) return false;
|
|
373
408
|
let itemTop = 0;
|
|
374
409
|
|
|
375
|
-
if (vl.dynamicHeight) {
|
|
410
|
+
if (vl.dynamicHeight || vl.autoHeight) {
|
|
376
411
|
for (let i = 0; i < index; i += 1) {
|
|
377
412
|
itemTop += vl.heights[i];
|
|
378
413
|
}
|
|
@@ -400,6 +435,7 @@ class VirtualList extends Framework7Class {
|
|
|
400
435
|
const vl = this;
|
|
401
436
|
|
|
402
437
|
if (vl.isVisible()) {
|
|
438
|
+
vl.heightsCalculated = [];
|
|
403
439
|
vl.setListSize();
|
|
404
440
|
vl.render(true);
|
|
405
441
|
}
|
|
@@ -600,6 +636,7 @@ class VirtualList extends Framework7Class {
|
|
|
600
636
|
vl.domCache = {};
|
|
601
637
|
}
|
|
602
638
|
|
|
639
|
+
vl.heightsCalculated = [];
|
|
603
640
|
vl.setListSize();
|
|
604
641
|
vl.render(true);
|
|
605
642
|
}
|
|
@@ -80,8 +80,8 @@ export namespace VirtualList {
|
|
|
80
80
|
rowsAfter?: number;
|
|
81
81
|
/** Number of items per row. Doesn't compatible when using Virtual List with dynamic height (default 1) */
|
|
82
82
|
cols?: number;
|
|
83
|
-
/** If number - list item height in px. If function then function should return item height. By default equals to 44 for iOS theme, 48 for MD theme, and 38 for Aurora theme */
|
|
84
|
-
height?: number | Function;
|
|
83
|
+
/** If number - list item height in px. If function then function should return item height. If "auto" - will automatically calculate each items heights. By default equals to 44 for iOS theme, 48 for MD theme, and 38 for Aurora theme */
|
|
84
|
+
height?: number | Function | string;
|
|
85
85
|
/** This optional function allows to use custom function to render item HTML. It could be used instead of template parameter */
|
|
86
86
|
renderItem?(item: any): string;
|
|
87
87
|
/** This optional function allows to render DOM items using some custom method. Useful in case it is used (e.g.) with Vue/React plugin to pass DOM rendering and manipulation to Vue/React. renderParameters conaints object with the following properties: fromIndex, toIndex, listHeight, topPosition, items */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var
|
|
1
|
+
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var s=e.$,a=e.utils,l=e.getDevice,r=(e.getSupport,e.Class),i=(e.Modal,e.ConstructorMethods),n=(e.ModalMethods,a.extend),o=a.deleteProps;class h extends r{constructor(e,t={}){super(t,[e]);const a=this,r=l(),i=getDocument();let o;"md"===e.theme?o=48:"ios"===e.theme?o=44:"aurora"===e.theme&&(o=38);const h={cols:1,height:o,cache:!0,dynamicHeightBufferSize:1,showFilteredItemsOnly:!1,renderExternal:void 0,setListHeight:!0,searchByItem:void 0,searchAll:void 0,ul:null,createUl:!0,scrollableParentEl:void 0,renderItem:e=>`\n <li>\n <div class="item-content">\n <div class="item-inner">\n <div class="item-title">${e}</div>\n </div>\n </div>\n </li>\n `.trim(),on:{}};if(a.useModulesParams(h),a.params=n(h,t),void 0!==a.params.height&&a.params.height||(a.params.height=o),a.$el=s(t.el),a.el=a.$el[0],0===a.$el.length)return;a.$el[0].f7VirtualList=a,a.items=a.params.items,a.params.showFilteredItemsOnly&&(a.filteredItems=[]),a.params.renderItem&&(a.renderItem=a.params.renderItem),a.$pageContentEl=a.$el.parents(".page-content"),a.pageContentEl=a.$pageContentEl[0],a.$scrollableParentEl=a.params.scrollableParentEl?s(a.params.scrollableParentEl).eq(0):a.$pageContentEl,!a.$scrollableParentEl.length&&a.$pageContentEl.length&&(a.$scrollableParentEl=a.$pageContentEl),a.scrollableParentEl=a.$scrollableParentEl[0],void 0!==a.params.updatableScroll?a.updatableScroll=a.params.updatableScroll:(a.updatableScroll=!0,r.ios&&r.osVersion.split(".")[0]<8&&(a.updatableScroll=!1));const m=a.params.ul;let c;a.$ul=m?s(a.params.ul):a.$el.children("ul"),0===a.$ul.length&&a.params.createUl&&(a.$el.append("<ul></ul>"),a.$ul=a.$el.children("ul")),a.ul=a.$ul[0],c=a.ul||a.params.createUl?a.$ul:a.$el,n(a,{$itemsWrapEl:c,itemsWrapEl:c[0],domCache:{},displayDomCache:{},tempDomElement:i.createElement("ul"),lastRepaintY:null,fragment:i.createDocumentFragment(),pageHeight:void 0,rowsPerScreen:void 0,rowsBefore:void 0,rowsAfter:void 0,rowsToRender:void 0,maxBufferHeight:0,listHeight:void 0,dynamicHeight:"function"==typeof a.params.height,autoHeight:"auto"===a.params.height}),a.useModules();const p=a.handleScroll.bind(a),d=a.handleResize.bind(a);let g,f,u,I;return a.attachEvents=function(){g=a.$el.parents(".page").eq(0),f=a.$el.parents(".tab").filter((e=>0===s(e).parent(".tabs").parent(".tabs-animated-wrap, .tabs-swipeable-wrap").length)).eq(0),u=a.$el.parents(".panel").eq(0),I=a.$el.parents(".popup").eq(0),a.$scrollableParentEl.on("scroll",p),g.length&&g.on("page:reinit",d),f.length&&f.on("tab:show",d),u.length&&u.on("panel:open",d),I.length&&I.on("popup:open",d),e.on("resize",d)},a.detachEvents=function(){a.$scrollableParentEl.off("scroll",p),g.length&&g.off("page:reinit",d),f.length&&f.off("tab:show",d),u.length&&u.off("panel:open",d),I.length&&I.off("popup:open",d),e.off("resize",d)},a.init(),a}setListSize(e){const t=this,s=t.filteredItems||t.items;if(e||(t.pageHeight=t.$scrollableParentEl[0].offsetHeight),t.dynamicHeight){t.listHeight=0,t.heights=[];for(let e=0;e<s.length;e+=1){const a=t.params.height(s[e]);t.listHeight+=a,t.heights.push(a)}}else if(t.autoHeight){t.listHeight=0,t.heights||(t.heights=[]),t.heightsCalculated||(t.heightsCalculated=[]);const e={};t.$itemsWrapEl.find("[data-virtual-list-index]").forEach((t=>{e[parseInt(t.getAttribute("data-virtual-list-index"),10)]=t}));for(let a=0;a<s.length;a+=1){const s=e[a];s&&(t.heightsCalculated.includes(a)||(t.heights[a]=s.offsetHeight,t.heightsCalculated.push(a))),void 0===t.heights[a]&&(t.heights[a]=40),t.listHeight+=t.heights[a]}}else t.listHeight=Math.ceil(s.length/t.params.cols)*t.params.height,t.rowsPerScreen=Math.ceil(t.pageHeight/t.params.height),t.rowsBefore=t.params.rowsBefore||2*t.rowsPerScreen,t.rowsAfter=t.params.rowsAfter||t.rowsPerScreen,t.rowsToRender=t.rowsPerScreen+t.rowsBefore+t.rowsAfter,t.maxBufferHeight=t.rowsBefore/2*t.params.height;(t.updatableScroll||t.params.setListHeight)&&t.$itemsWrapEl.css({height:`${t.listHeight}px`})}render(e,t){const s=this;e&&(s.lastRepaintY=null);let a=-(s.$el[0].getBoundingClientRect().top-s.$scrollableParentEl[0].getBoundingClientRect().top);if(void 0!==t&&(a=t),!(null===s.lastRepaintY||Math.abs(a-s.lastRepaintY)>s.maxBufferHeight||!s.updatableScroll&&s.$scrollableParentEl[0].scrollTop+s.pageHeight>=s.$scrollableParentEl[0].scrollHeight))return;s.lastRepaintY=a;const l=s.filteredItems||s.items;let r,i,n,o=0,h=0;if(s.dynamicHeight||s.autoHeight){let e,t=0;s.maxBufferHeight=s.pageHeight;for(let l=0;l<s.heights.length;l+=1)e=s.heights[l],void 0===r&&(t+e>=a-2*s.pageHeight*s.params.dynamicHeightBufferSize?r=l:o+=e),void 0===i&&((t+e>=a+2*s.pageHeight*s.params.dynamicHeightBufferSize||l===s.heights.length-1)&&(i=l+1),h+=e),t+=e;i=Math.min(i,l.length)}else r=(parseInt(a/s.params.height,10)-s.rowsBefore)*s.params.cols,r<0&&(r=0),i=Math.min(r+s.rowsToRender*s.params.cols,l.length);const m=[];let c;for(s.reachEnd=!1,c=r;c<i;c+=1){let e;const t=s.items.indexOf(l[c]);c===r&&(s.currentFromIndex=t),c===i-1&&(s.currentToIndex=t),s.filteredItems?s.items[t]===s.filteredItems[s.filteredItems.length-1]&&(s.reachEnd=!0):t===s.items.length-1&&(s.reachEnd=!0),s.params.renderExternal?m.push(l[c]):s.domCache[t]?(e=s.domCache[t],e.f7VirtualListIndex=t):(s.renderItem?s.tempDomElement.innerHTML=s.renderItem(l[c],t).trim():s.tempDomElement.innerHTML=l[c].toString().trim(),e=s.tempDomElement.childNodes[0],s.params.cache&&(s.domCache[t]=e),e.f7VirtualListIndex=t),c===r&&(n=s.dynamicHeight||s.autoHeight?o:c*s.params.height/s.params.cols),s.params.renderExternal||(e.style.top=`${n}px`,s.emit("local::itemBeforeInsert vlItemBeforeInsert",s,e,l[c]),s.fragment.appendChild(e))}s.updatableScroll||(s.dynamicHeight||s.autoHeight?s.itemsWrapEl.style.height=`${h}px`:s.itemsWrapEl.style.height=c*s.params.height/s.params.cols+"px"),s.params.renderExternal?l&&0===l.length&&(s.reachEnd=!0):(s.emit("local::beforeClear vlBeforeClear",s,s.fragment),s.itemsWrapEl.innerHTML="",s.emit("local::itemsBeforeInsert vlItemsBeforeInsert",s,s.fragment),l&&0===l.length?(s.reachEnd=!0,s.params.emptyTemplate&&(s.itemsWrapEl.innerHTML=s.params.emptyTemplate)):s.itemsWrapEl.appendChild(s.fragment),s.emit("local::itemsAfterInsert vlItemsAfterInsert",s,s.fragment)),void 0!==t&&e&&s.$scrollableParentEl.scrollTop(t,0),s.params.renderExternal&&s.params.renderExternal(s,{fromIndex:r,toIndex:i,listHeight:s.listHeight,topPosition:n,items:m}),s.autoHeight&&requestAnimationFrame((()=>{s.setListSize(!0)}))}filterItems(e,t=!0){const s=this;s.filteredItems=[];for(let t=0;t<e.length;t+=1)s.filteredItems.push(s.items[e[t]]);t&&(s.$scrollableParentEl[0].scrollTop=0),s.update()}resetFilter(){const e=this;e.params.showFilteredItemsOnly?e.filteredItems=[]:(e.filteredItems=null,delete e.filteredItems),e.update()}scrollToItem(e){const t=this;if(e>t.items.length)return!1;let s=0;if(t.dynamicHeight||t.autoHeight)for(let a=0;a<e;a+=1)s+=t.heights[a];else s=e*t.params.height;const a=t.$el[0].offsetTop;return t.render(!0,a+s-parseInt(t.$scrollableParentEl.css("padding-top"),10)),!0}handleScroll(){this.render()}isVisible(){const e=this;return!!(e.el.offsetWidth||e.el.offsetHeight||e.el.getClientRects().length)}handleResize(){const e=this;e.isVisible()&&(e.heightsCalculated=[],e.setListSize(),e.render(!0))}appendItems(e){const t=this;for(let s=0;s<e.length;s+=1)t.items.push(e[s]);t.update()}appendItem(e){this.appendItems([e])}replaceAllItems(e){const t=this;t.items=e,delete t.filteredItems,t.domCache={},t.update()}replaceItem(e,t){const s=this;s.items[e]=t,s.params.cache&&delete s.domCache[e],s.update()}prependItems(e){const t=this;for(let s=e.length-1;s>=0;s-=1)t.items.unshift(e[s]);if(t.params.cache){const s={};Object.keys(t.domCache).forEach((a=>{s[parseInt(a,10)+e.length]=t.domCache[a]})),t.domCache=s}t.update()}prependItem(e){this.prependItems([e])}moveItem(e,t){const s=this,a=e;let l=t;if(a===l)return;const r=s.items.splice(a,1)[0];if(l>=s.items.length?(s.items.push(r),l=s.items.length-1):s.items.splice(l,0,r),s.params.cache){const e={};Object.keys(s.domCache).forEach((t=>{const r=parseInt(t,10),i=a<l?a:l,n=a<l?l:a,o=a<l?-1:1;(r<i||r>n)&&(e[r]=s.domCache[r]),r===i&&(e[n]=s.domCache[r]),r>i&&r<=n&&(e[r+o]=s.domCache[r])})),s.domCache=e}s.update()}insertItemBefore(e,t){const s=this;if(0!==e)if(e>=s.items.length)s.appendItem(t);else{if(s.items.splice(e,0,t),s.params.cache){const t={};Object.keys(s.domCache).forEach((a=>{const l=parseInt(a,10);l>=e&&(t[l+1]=s.domCache[l])})),s.domCache=t}s.update()}else s.prependItem(t)}deleteItems(e){const t=this;let s,a=0;for(let l=0;l<e.length;l+=1){let r=e[l];void 0!==s&&r>s&&(a=-l),r+=a,s=e[l];const i=t.items.splice(r,1)[0];if(t.filteredItems&&t.filteredItems.indexOf(i)>=0&&t.filteredItems.splice(t.filteredItems.indexOf(i),1),t.params.cache){const e={};Object.keys(t.domCache).forEach((s=>{const a=parseInt(s,10);a===r?delete t.domCache[r]:parseInt(s,10)>r?e[a-1]=t.domCache[s]:e[a]=t.domCache[s]})),t.domCache=e}}t.update()}deleteAllItems(){const e=this;e.items=[],delete e.filteredItems,e.params.cache&&(e.domCache={}),e.update()}deleteItem(e){this.deleteItems([e])}clearCache(){this.domCache={}}update(e){const t=this;e&&t.params.cache&&(t.domCache={}),t.heightsCalculated=[],t.setListSize(),t.render(!0)}init(){const e=this;e.attachEvents(),e.setListSize(),e.render()}destroy(){let e=this;e.detachEvents(),e.$el[0].f7VirtualList=null,delete e.$el[0].f7VirtualList,o(e),e=null}}var m={name:"virtualList",static:{VirtualList:h},create(){this.virtualList=i({defaultSelector:".virtual-list",constructor:h,app:this,domProp:"f7VirtualList"})}};if(t){if(e.prototype.modules&&e.prototype.modules[m.name])return;e.use(m),e.instance&&(e.instance.useModuleParams(m,e.instance.params),e.instance.useModule(m))}return m}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Framework7 7.0.0-beta.
|
|
2
|
+
* Framework7 7.0.0-beta.16
|
|
3
3
|
* Full featured mobile HTML framework for building iOS & Android apps
|
|
4
4
|
* https://framework7.io/
|
|
5
5
|
*
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Released under the MIT License
|
|
9
9
|
*
|
|
10
|
-
* Released on:
|
|
10
|
+
* Released on: April 12, 2022
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
/*====================
|
|
@@ -8331,6 +8331,9 @@ html.with-modal-preloader .page-content,
|
|
|
8331
8331
|
opacity: 0.85;
|
|
8332
8332
|
}
|
|
8333
8333
|
@keyframes ios-preloader-spin {
|
|
8334
|
+
0% {
|
|
8335
|
+
transform: rotate(0deg);
|
|
8336
|
+
}
|
|
8334
8337
|
100% {
|
|
8335
8338
|
transform: rotate(360deg);
|
|
8336
8339
|
}
|