framework7 7.1.5 → 8.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/components/accordion/accordion.js +2 -16
  2. package/components/accordion/accordion.less +0 -3
  3. package/components/actions/actions-class.js +13 -58
  4. package/components/actions/actions-ios.less +42 -0
  5. package/components/actions/actions-md.less +12 -0
  6. package/components/actions/actions-rtl.css +1 -1
  7. package/components/actions/actions-vars.less +17 -42
  8. package/components/actions/actions.css +1 -1
  9. package/components/actions/actions.d.ts +2 -2
  10. package/components/actions/actions.js +0 -4
  11. package/components/actions/actions.less +5 -35
  12. package/components/app/app-class.d.ts +14 -12
  13. package/components/app/app-class.js +93 -75
  14. package/components/app/app-ios.less +0 -2
  15. package/components/app/app-md.less +0 -2
  16. package/components/app/app-vars.less +13 -96
  17. package/components/app/app.less +1 -4
  18. package/components/app/load-module.js +17 -36
  19. package/components/area-chart/area-chart-class.js +8 -64
  20. package/components/area-chart/area-chart.js +0 -3
  21. package/components/area-chart/area-chart.less +0 -3
  22. package/components/autocomplete/autocomplete-class.js +30 -175
  23. package/components/autocomplete/autocomplete-ios.less +0 -8
  24. package/components/autocomplete/autocomplete-rtl.css +1 -1
  25. package/components/autocomplete/autocomplete-vars.less +8 -22
  26. package/components/autocomplete/autocomplete.css +1 -1
  27. package/components/autocomplete/autocomplete.d.ts +1 -3
  28. package/components/autocomplete/autocomplete.js +1 -6
  29. package/components/autocomplete/autocomplete.less +6 -18
  30. package/components/badge/badge-vars.less +3 -6
  31. package/components/badge/badge.less +1 -3
  32. package/components/block/block-vars.less +25 -52
  33. package/components/block/block.less +37 -12
  34. package/components/breadcrumbs/breadcrumbs-rtl.css +1 -1
  35. package/components/breadcrumbs/breadcrumbs-vars.less +31 -15
  36. package/components/breadcrumbs/breadcrumbs.css +1 -1
  37. package/components/breadcrumbs/breadcrumbs.js +0 -2
  38. package/components/breadcrumbs/breadcrumbs.less +4 -10
  39. package/components/button/button-vars.less +42 -43
  40. package/components/button/button.less +24 -26
  41. package/components/calendar/calendar-class.js +81 -401
  42. package/components/calendar/calendar-rtl.css +1 -1
  43. package/components/calendar/calendar-vars.less +32 -46
  44. package/components/calendar/calendar.css +1 -1
  45. package/components/calendar/calendar.js +6 -4
  46. package/components/calendar/calendar.less +10 -21
  47. package/components/card/card-rtl.css +1 -1
  48. package/components/card/card-vars.less +41 -44
  49. package/components/card/card.css +1 -1
  50. package/components/card/card.js +0 -108
  51. package/components/card/card.less +18 -24
  52. package/components/checkbox/checkbox-rtl.css +1 -1
  53. package/components/checkbox/checkbox-vars.less +0 -8
  54. package/components/checkbox/checkbox.css +1 -1
  55. package/components/checkbox/checkbox.less +32 -3
  56. package/components/chip/chip-ios.less +3 -0
  57. package/components/chip/chip-md.less +4 -3
  58. package/components/chip/chip-rtl.css +1 -1
  59. package/components/chip/chip-vars.less +17 -20
  60. package/components/chip/chip.css +1 -1
  61. package/components/chip/chip.less +16 -21
  62. package/components/color-picker/color-picker-class.js +27 -158
  63. package/components/color-picker/color-picker-rtl.css +1 -1
  64. package/components/color-picker/color-picker.css +1 -1
  65. package/components/color-picker/color-picker.js +0 -4
  66. package/components/color-picker/color-picker.less +18 -8
  67. package/components/color-picker/modules/alpha-slider.js +0 -12
  68. package/components/color-picker/modules/brightness-slider.js +0 -8
  69. package/components/color-picker/modules/current-color.js +0 -2
  70. package/components/color-picker/modules/hex.js +0 -12
  71. package/components/color-picker/modules/hs-spectrum.js +0 -20
  72. package/components/color-picker/modules/hsb-sliders.js +0 -18
  73. package/components/color-picker/modules/hue-slider.js +0 -7
  74. package/components/color-picker/modules/initial-current-colors.js +0 -7
  75. package/components/color-picker/modules/palette.js +2 -10
  76. package/components/color-picker/modules/rgb-bars.js +0 -17
  77. package/components/color-picker/modules/rgb-sliders.js +0 -17
  78. package/components/color-picker/modules/sb-spectrum.js +0 -20
  79. package/components/color-picker/modules/wheel.js +0 -28
  80. package/components/contacts-list/contacts-list-md.less +4 -3
  81. package/components/contacts-list/contacts-list-rtl.css +1 -1
  82. package/components/contacts-list/contacts-list-vars.less +3 -15
  83. package/components/contacts-list/contacts-list.css +1 -1
  84. package/components/contacts-list/contacts-list.less +0 -3
  85. package/components/data-table/data-table-class.js +10 -32
  86. package/components/data-table/data-table-rtl.css +1 -1
  87. package/components/data-table/data-table-vars.less +6 -39
  88. package/components/data-table/data-table.css +1 -1
  89. package/components/data-table/data-table.js +0 -8
  90. package/components/data-table/data-table.less +0 -3
  91. package/components/dialog/dialog-class.js +7 -41
  92. package/components/dialog/dialog-ios.less +0 -3
  93. package/components/dialog/dialog-md.less +9 -9
  94. package/components/dialog/dialog-rtl.css +1 -1
  95. package/components/dialog/dialog-vars.less +25 -70
  96. package/components/dialog/dialog.css +1 -1
  97. package/components/dialog/dialog.d.ts +2 -2
  98. package/components/dialog/dialog.js +12 -48
  99. package/components/dialog/dialog.less +8 -4
  100. package/components/fab/fab-rtl.css +1 -1
  101. package/components/fab/fab-vars.less +20 -14
  102. package/components/fab/fab.css +1 -1
  103. package/components/fab/fab.js +0 -21
  104. package/components/fab/fab.less +50 -53
  105. package/components/form/form.d.ts +4 -4
  106. package/components/form/form.js +58 -94
  107. package/components/form/form.less +0 -3
  108. package/components/gauge/gauge-class.js +4 -20
  109. package/components/gauge/gauge.js +0 -9
  110. package/components/gauge/gauge.less +0 -3
  111. package/components/grid/grid-rtl.css +1 -1
  112. package/components/grid/grid-vars.less +0 -7
  113. package/components/grid/grid.css +1 -1
  114. package/components/grid/grid.d.ts +2 -8
  115. package/components/grid/grid.js +1 -225
  116. package/components/grid/grid.less +54 -184
  117. package/components/icon/icon.less +0 -3
  118. package/components/infinite-scroll/infinite-scroll-rtl.css +1 -1
  119. package/components/infinite-scroll/infinite-scroll.css +1 -1
  120. package/components/infinite-scroll/infinite-scroll.js +0 -16
  121. package/components/infinite-scroll/infinite-scroll.less +0 -3
  122. package/components/input/input-ios.less +49 -41
  123. package/components/input/input-md.less +87 -19
  124. package/components/input/input-rtl.css +1 -1
  125. package/components/input/input-vars.less +26 -60
  126. package/components/input/input.css +1 -1
  127. package/components/input/input.js +8 -67
  128. package/components/input/input.less +67 -153
  129. package/components/link/link-vars.less +0 -5
  130. package/components/link/link.less +3 -3
  131. package/components/list/list-md.less +0 -7
  132. package/components/list/list-vars.less +59 -108
  133. package/components/list/list.less +122 -90
  134. package/components/list-index/list-index-class.js +12 -69
  135. package/components/list-index/list-index-rtl.css +1 -1
  136. package/components/list-index/list-index-vars.less +0 -7
  137. package/components/list-index/list-index.css +1 -1
  138. package/components/list-index/list-index.d.ts +1 -3
  139. package/components/list-index/list-index.js +0 -8
  140. package/components/list-index/list-index.less +4 -7
  141. package/components/login-screen/login-screen-class.js +4 -9
  142. package/components/login-screen/login-screen-rtl.css +1 -1
  143. package/components/login-screen/login-screen-vars.less +13 -12
  144. package/components/login-screen/login-screen.css +1 -1
  145. package/components/login-screen/login-screen.js +0 -4
  146. package/components/login-screen/login-screen.less +2 -8
  147. package/components/messagebar/messagebar-class.js +18 -79
  148. package/components/messagebar/messagebar-ios.less +36 -0
  149. package/components/messagebar/messagebar-md.less +96 -16
  150. package/components/messagebar/messagebar-rtl.css +1 -1
  151. package/components/messagebar/messagebar-vars.less +27 -50
  152. package/components/messagebar/messagebar.css +1 -1
  153. package/components/messagebar/messagebar.js +0 -8
  154. package/components/messagebar/messagebar.less +11 -42
  155. package/components/messages/messages-class.js +17 -110
  156. package/components/messages/messages-ios.less +9 -0
  157. package/components/messages/messages-md.less +63 -28
  158. package/components/messages/messages-rtl.css +1 -1
  159. package/components/messages/messages-vars.less +43 -50
  160. package/components/messages/messages.css +1 -1
  161. package/components/messages/messages.js +0 -8
  162. package/components/messages/messages.less +0 -11
  163. package/components/modal/custom-modal-class.js +4 -14
  164. package/components/modal/modal-class.js +19 -55
  165. package/components/modal/modal.js +0 -3
  166. package/components/navbar/navbar-ios.less +3 -39
  167. package/components/navbar/navbar-md.less +12 -0
  168. package/components/navbar/navbar-vars.less +20 -49
  169. package/components/navbar/navbar.d.ts +0 -2
  170. package/components/navbar/navbar.js +37 -166
  171. package/components/navbar/navbar.less +4 -26
  172. package/components/notification/notification-class.js +4 -39
  173. package/components/notification/notification-md.less +18 -8
  174. package/components/notification/notification-rtl.css +1 -1
  175. package/components/notification/notification-vars.less +15 -54
  176. package/components/notification/notification.css +1 -1
  177. package/components/notification/notification.js +0 -2
  178. package/components/notification/notification.less +0 -3
  179. package/components/page/page-md.less +40 -10
  180. package/components/page/page-transitions/circle.less +15 -9
  181. package/components/page/page-transitions/fade.less +17 -11
  182. package/components/page/page-transitions/flip.less +9 -4
  183. package/components/page/page-vars.less +3 -19
  184. package/components/page/page.less +2 -10
  185. package/components/panel/panel-class.js +27 -132
  186. package/components/panel/panel-md.less +9 -0
  187. package/components/panel/panel-rtl.css +1 -1
  188. package/components/panel/panel-vars.less +7 -21
  189. package/components/panel/panel.css +1 -1
  190. package/components/panel/panel.d.ts +2 -2
  191. package/components/panel/panel.js +0 -34
  192. package/components/panel/panel.less +56 -48
  193. package/components/panel/resizable-panel.js +2 -32
  194. package/components/panel/swipe-panel.js +16 -71
  195. package/components/photo-browser/photo-browser-class.js +41 -171
  196. package/components/photo-browser/photo-browser-rtl.css +1 -1
  197. package/components/photo-browser/photo-browser-vars.less +0 -3
  198. package/components/photo-browser/photo-browser.css +1 -1
  199. package/components/photo-browser/photo-browser.d.ts +2 -4
  200. package/components/photo-browser/photo-browser.js +1 -6
  201. package/components/photo-browser/photo-browser.less +0 -4
  202. package/components/picker/picker-class.js +26 -133
  203. package/components/picker/picker-column.js +11 -31
  204. package/components/picker/picker-ios.less +10 -0
  205. package/components/picker/picker-md.less +6 -0
  206. package/components/picker/picker-rtl.css +1 -1
  207. package/components/picker/picker-vars.less +9 -25
  208. package/components/picker/picker.css +1 -1
  209. package/components/picker/picker.js +0 -4
  210. package/components/picker/picker.less +0 -11
  211. package/components/pie-chart/pie-chart-class.js +8 -31
  212. package/components/pie-chart/pie-chart.js +0 -3
  213. package/components/pie-chart/pie-chart.less +0 -3
  214. package/components/popover/popover-class.js +72 -126
  215. package/components/popover/popover-ios.less +0 -50
  216. package/components/popover/popover-rtl.css +1 -1
  217. package/components/popover/popover-vars.less +6 -23
  218. package/components/popover/popover.css +1 -1
  219. package/components/popover/popover.d.ts +2 -0
  220. package/components/popover/popover.js +1 -12
  221. package/components/popover/popover.less +62 -5
  222. package/components/popup/popup-class.js +12 -78
  223. package/components/popup/popup-rtl.css +1 -1
  224. package/components/popup/popup-vars.less +7 -9
  225. package/components/popup/popup.css +1 -1
  226. package/components/popup/popup.js +0 -4
  227. package/components/popup/popup.less +4 -4
  228. package/components/preloader/preloader-ios.less +3 -1
  229. package/components/preloader/preloader-md.less +5 -1
  230. package/components/preloader/preloader-rtl.css +1 -1
  231. package/components/preloader/preloader-vars.less +0 -6
  232. package/components/preloader/preloader.css +1 -1
  233. package/components/preloader/preloader.js +8 -25
  234. package/components/preloader/preloader.less +6 -3
  235. package/components/progressbar/progressbar-rtl.css +1 -1
  236. package/components/progressbar/progressbar-vars.less +2 -12
  237. package/components/progressbar/progressbar.css +1 -1
  238. package/components/progressbar/progressbar.js +2 -31
  239. package/components/progressbar/progressbar.less +0 -3
  240. package/components/pull-to-refresh/pull-to-refresh-class.js +15 -107
  241. package/components/pull-to-refresh/pull-to-refresh-md.less +2 -1
  242. package/components/pull-to-refresh/pull-to-refresh-rtl.css +1 -1
  243. package/components/pull-to-refresh/pull-to-refresh-vars.less +0 -4
  244. package/components/pull-to-refresh/pull-to-refresh.css +1 -1
  245. package/components/pull-to-refresh/pull-to-refresh.js +0 -8
  246. package/components/pull-to-refresh/pull-to-refresh.less +0 -3
  247. package/components/radio/radio-rtl.css +1 -1
  248. package/components/radio/radio-vars.less +0 -7
  249. package/components/radio/radio.css +1 -1
  250. package/components/radio/radio.less +12 -5
  251. package/components/range/range-class.js +27 -112
  252. package/components/range/range-rtl.css +1 -1
  253. package/components/range/range-vars.less +10 -32
  254. package/components/range/range.css +1 -1
  255. package/components/range/range.js +0 -12
  256. package/components/range/range.less +0 -3
  257. package/components/searchbar/remove-diacritics.js +0 -4
  258. package/components/searchbar/searchbar-class.js +17 -138
  259. package/components/searchbar/searchbar-md.less +41 -16
  260. package/components/searchbar/searchbar-rtl.css +1 -1
  261. package/components/searchbar/searchbar-vars.less +25 -76
  262. package/components/searchbar/searchbar.css +1 -1
  263. package/components/searchbar/searchbar.d.ts +2 -2
  264. package/components/searchbar/searchbar.js +0 -15
  265. package/components/searchbar/searchbar.less +14 -28
  266. package/components/sheet/sheet-class.js +15 -110
  267. package/components/sheet/sheet-rtl.css +1 -1
  268. package/components/sheet/sheet-vars.less +17 -6
  269. package/components/sheet/sheet.css +1 -1
  270. package/components/sheet/sheet.js +0 -9
  271. package/components/sheet/sheet.less +10 -3
  272. package/components/skeleton/skeleton.less +0 -3
  273. package/components/smart-select/smart-select-class.js +39 -176
  274. package/components/smart-select/smart-select.d.ts +3 -3
  275. package/components/smart-select/smart-select.js +2 -14
  276. package/components/smart-select/smart-select.less +0 -3
  277. package/components/sortable/sortable-rtl.css +1 -1
  278. package/components/sortable/sortable-vars.less +8 -8
  279. package/components/sortable/sortable.css +1 -1
  280. package/components/sortable/sortable.js +0 -44
  281. package/components/sortable/sortable.less +0 -3
  282. package/components/statusbar/statusbar.js +0 -36
  283. package/components/statusbar/statusbar.less +0 -3
  284. package/components/stepper/stepper-class.js +10 -83
  285. package/components/stepper/stepper-rtl.css +1 -1
  286. package/components/stepper/stepper-vars.less +12 -24
  287. package/components/stepper/stepper.css +1 -1
  288. package/components/stepper/stepper.js +0 -12
  289. package/components/stepper/stepper.less +12 -23
  290. package/components/subnavbar/subnavbar-vars.less +3 -18
  291. package/components/subnavbar/subnavbar.js +0 -3
  292. package/components/subnavbar/subnavbar.less +1 -11
  293. package/components/swipeout/swipeout-rtl.css +1 -1
  294. package/components/swipeout/swipeout-vars.less +7 -6
  295. package/components/swipeout/swipeout.css +1 -1
  296. package/components/swipeout/swipeout.js +2 -99
  297. package/components/swipeout/swipeout.less +2 -7
  298. package/components/swiper/swiper-rtl.css +1 -1
  299. package/components/swiper/swiper.css +1 -1
  300. package/components/swiper/swiper.js +15 -48
  301. package/components/swiper/swiper.less +0 -15
  302. package/components/tabs/tabs-rtl.css +1 -1
  303. package/components/tabs/tabs.css +1 -1
  304. package/components/tabs/tabs.js +23 -60
  305. package/components/tabs/tabs.less +1 -3
  306. package/components/text-editor/text-editor-class.js +16 -102
  307. package/components/text-editor/text-editor-rtl.css +1 -1
  308. package/components/text-editor/text-editor-vars.less +12 -16
  309. package/components/text-editor/text-editor.css +1 -1
  310. package/components/text-editor/text-editor.js +0 -8
  311. package/components/text-editor/text-editor.less +0 -6
  312. package/components/timeline/timeline-rtl.css +1 -1
  313. package/components/timeline/timeline-vars.less +13 -47
  314. package/components/timeline/timeline.css +1 -1
  315. package/components/timeline/timeline.less +2 -9
  316. package/components/toast/toast-class.js +2 -16
  317. package/components/toast/toast-rtl.css +1 -1
  318. package/components/toast/toast-vars.less +5 -9
  319. package/components/toast/toast.css +1 -1
  320. package/components/toast/toast.js +0 -3
  321. package/components/toast/toast.less +0 -3
  322. package/components/toggle/toggle-class.js +6 -30
  323. package/components/toggle/toggle-ios.less +5 -1
  324. package/components/toggle/toggle-md.less +27 -11
  325. package/components/toggle/toggle-rtl.css +1 -1
  326. package/components/toggle/toggle-vars.less +19 -21
  327. package/components/toggle/toggle.css +1 -1
  328. package/components/toggle/toggle.js +0 -8
  329. package/components/toggle/toggle.less +0 -4
  330. package/components/toolbar/toolbar-ios.less +2 -2
  331. package/components/toolbar/toolbar-md.less +28 -4
  332. package/components/toolbar/toolbar-vars.less +17 -52
  333. package/components/toolbar/toolbar.js +5 -43
  334. package/components/toolbar/toolbar.less +27 -45
  335. package/components/tooltip/tooltip-class.js +10 -64
  336. package/components/tooltip/tooltip-rtl.css +1 -1
  337. package/components/tooltip/tooltip-vars.less +12 -3
  338. package/components/tooltip/tooltip.css +1 -1
  339. package/components/tooltip/tooltip.js +0 -15
  340. package/components/tooltip/tooltip.less +0 -3
  341. package/components/touch-ripple/touch-ripple-class.js +0 -13
  342. package/components/touch-ripple/touch-ripple.js +0 -4
  343. package/components/touch-ripple/touch-ripple.less +1 -5
  344. package/components/treeview/treeview-rtl.css +1 -1
  345. package/components/treeview/treeview-vars.less +0 -3
  346. package/components/treeview/treeview.css +1 -1
  347. package/components/treeview/treeview.js +2 -11
  348. package/components/treeview/treeview.less +0 -3
  349. package/components/typography/typography-rtl.css +1 -1
  350. package/components/typography/typography.css +1 -1
  351. package/components/typography/typography.less +25 -3
  352. package/components/view/resizable-view.js +2 -24
  353. package/components/view/view-class.js +28 -53
  354. package/components/view/view.d.ts +0 -14
  355. package/components/view/view.js +8 -32
  356. package/components/view/view.less +1 -4
  357. package/components/virtual-list/virtual-list-class.js +58 -146
  358. package/components/virtual-list/virtual-list.d.ts +1 -1
  359. package/components/virtual-list/virtual-list.js +0 -2
  360. package/components/virtual-list/virtual-list.less +0 -3
  361. package/framework7-bundle-rtl.css +3064 -6057
  362. package/framework7-bundle-rtl.min.css +3 -3
  363. package/framework7-bundle.css +3063 -6059
  364. package/framework7-bundle.esm.js +4 -10
  365. package/framework7-bundle.js +6442 -12377
  366. package/framework7-bundle.js.map +1 -1
  367. package/framework7-bundle.less +2 -27
  368. package/framework7-bundle.min.css +3 -3
  369. package/framework7-bundle.min.js +3 -3
  370. package/framework7-bundle.min.js.map +1 -1
  371. package/framework7-lite-bundle.esm.js +4 -10
  372. package/framework7-lite.esm.js +4 -6
  373. package/framework7-rtl.css +803 -1591
  374. package/framework7-rtl.min.css +3 -3
  375. package/framework7-types.d.ts +1 -32
  376. package/framework7.css +803 -1594
  377. package/framework7.d.ts +1 -32
  378. package/framework7.esm.js +4 -6
  379. package/framework7.less +2 -23
  380. package/framework7.min.css +3 -3
  381. package/less/mixins.less +7 -88
  382. package/modules/clicks/clicks.js +10 -22
  383. package/modules/component/$h.js +0 -3
  384. package/modules/component/$jsx.js +0 -5
  385. package/modules/component/component-class.js +13 -66
  386. package/modules/component/component.d.ts +1 -2
  387. package/modules/component/component.js +0 -8
  388. package/modules/component/eventslisteners.js +12 -20
  389. package/modules/component/parse-component.js +18 -20
  390. package/modules/component/snabbdom/h.js +3 -12
  391. package/modules/component/snabbdom/helpers/attachto.js +9 -14
  392. package/modules/component/snabbdom/htmldomapi.js +0 -16
  393. package/modules/component/snabbdom/modules/attributes.js +7 -11
  394. package/modules/component/snabbdom/modules/class.js +4 -8
  395. package/modules/component/snabbdom/modules/dataset.js +3 -7
  396. package/modules/component/snabbdom/modules/eventlisteners.js +16 -22
  397. package/modules/component/snabbdom/modules/hero.js +4 -44
  398. package/modules/component/snabbdom/modules/props.js +5 -9
  399. package/modules/component/snabbdom/modules/style.js +13 -30
  400. package/modules/component/snabbdom/snabbdom.bundle.js +0 -6
  401. package/modules/component/snabbdom/snabbdom.js +13 -72
  402. package/modules/component/snabbdom/thunk.js +3 -11
  403. package/modules/component/snabbdom/tovnode.js +1 -6
  404. package/modules/component/vdom.js +4 -62
  405. package/modules/demo-module.js +0 -8
  406. package/modules/device/device.js +6 -11
  407. package/modules/history/history.js +0 -1
  408. package/modules/resize/resize.js +8 -11
  409. package/modules/router/async-component.js +0 -3
  410. package/modules/router/back.js +86 -275
  411. package/modules/router/clear-previous-history.js +5 -18
  412. package/modules/router/component-loader.js +4 -25
  413. package/modules/router/modal.js +16 -43
  414. package/modules/router/navigate.js +80 -250
  415. package/modules/router/process-route-queue.js +0 -12
  416. package/modules/router/redirect.js +0 -8
  417. package/modules/router/router-class.js +92 -315
  418. package/modules/router/router.d.ts +3 -5
  419. package/modules/router/router.js +0 -3
  420. package/modules/router/swipe-back.js +35 -139
  421. package/modules/router/tab.js +14 -43
  422. package/modules/service-worker/service-worker.js +0 -11
  423. package/modules/store/create-store.js +10 -29
  424. package/modules/touch/touch.d.ts +2 -4
  425. package/modules/touch/touch.js +13 -108
  426. package/package.json +3 -14
  427. package/shared/$jsx.js +0 -6
  428. package/shared/class.js +18 -43
  429. package/shared/constructor-methods.js +0 -11
  430. package/shared/events-class.js +0 -17
  431. package/shared/get-device.js +18 -34
  432. package/shared/get-support.js +2 -8
  433. package/shared/history.js +2 -30
  434. package/shared/material-color-utils.js +728 -0
  435. package/shared/material-colors.js +75 -0
  436. package/shared/modal-methods.js +0 -18
  437. package/shared/utils.d.ts +0 -4
  438. package/shared/utils.js +191 -71
  439. package/components/accordion/accordion-aurora.less +0 -2
  440. package/components/accordion/accordion.lazy.js +0 -1
  441. package/components/actions/actions-aurora.less +0 -9
  442. package/components/actions/actions.lazy.js +0 -1
  443. package/components/app/app-aurora.less +0 -10
  444. package/components/appbar/appbar-aurora.less +0 -2
  445. package/components/appbar/appbar-ios.less +0 -2
  446. package/components/appbar/appbar-md.less +0 -2
  447. package/components/appbar/appbar-rtl.css +0 -1
  448. package/components/appbar/appbar-vars.less +0 -28
  449. package/components/appbar/appbar.css +0 -1
  450. package/components/appbar/appbar.d.ts +0 -14
  451. package/components/appbar/appbar.js +0 -3
  452. package/components/appbar/appbar.lazy.js +0 -1
  453. package/components/appbar/appbar.less +0 -106
  454. package/components/area-chart/area-chart-aurora.less +0 -2
  455. package/components/area-chart/area-chart.lazy.js +0 -1
  456. package/components/autocomplete/autocomplete-aurora.less +0 -17
  457. package/components/autocomplete/autocomplete.lazy.js +0 -1
  458. package/components/badge/badge-aurora.less +0 -2
  459. package/components/block/block-aurora.less +0 -2
  460. package/components/breadcrumbs/breadcrumbs-aurora.less +0 -2
  461. package/components/breadcrumbs/breadcrumbs.lazy.js +0 -1
  462. package/components/button/button-aurora.less +0 -25
  463. package/components/calendar/calendar-aurora.less +0 -2
  464. package/components/calendar/calendar.lazy.js +0 -1
  465. package/components/card/card-aurora.less +0 -2
  466. package/components/card/card.lazy.js +0 -1
  467. package/components/checkbox/checkbox-aurora.less +0 -39
  468. package/components/checkbox/checkbox.lazy.js +0 -1
  469. package/components/chip/chip-aurora.less +0 -14
  470. package/components/chip/chip.lazy.js +0 -1
  471. package/components/color-picker/color-picker-aurora.less +0 -2
  472. package/components/color-picker/color-picker.lazy.js +0 -1
  473. package/components/contacts-list/contacts-list-aurora.less +0 -2
  474. package/components/contacts-list/contacts-list.lazy.js +0 -1
  475. package/components/data-table/data-table-aurora.less +0 -64
  476. package/components/data-table/data-table.lazy.js +0 -1
  477. package/components/dialog/dialog-aurora.less +0 -112
  478. package/components/dialog/dialog.lazy.js +0 -1
  479. package/components/elevation/elevation-aurora.less +0 -2
  480. package/components/elevation/elevation-ios.less +0 -2
  481. package/components/elevation/elevation-md.less +0 -2
  482. package/components/elevation/elevation-rtl.css +0 -1
  483. package/components/elevation/elevation-vars.less +0 -51
  484. package/components/elevation/elevation.css +0 -1
  485. package/components/elevation/elevation.d.ts +0 -14
  486. package/components/elevation/elevation.js +0 -3
  487. package/components/elevation/elevation.lazy.js +0 -1
  488. package/components/elevation/elevation.less +0 -54
  489. package/components/fab/fab-aurora.less +0 -2
  490. package/components/fab/fab.lazy.js +0 -1
  491. package/components/form/form-aurora.less +0 -0
  492. package/components/form/form.lazy.js +0 -1
  493. package/components/gauge/gauge-aurora.less +0 -2
  494. package/components/gauge/gauge.lazy.js +0 -1
  495. package/components/grid/grid-aurora.less +0 -2
  496. package/components/grid/grid.lazy.js +0 -1
  497. package/components/icon/icon-aurora.less +0 -49
  498. package/components/infinite-scroll/infinite-scroll-aurora.less +0 -6
  499. package/components/infinite-scroll/infinite-scroll.lazy.js +0 -1
  500. package/components/input/input-aurora.less +0 -120
  501. package/components/input/input.lazy.js +0 -1
  502. package/components/lazy/lazy-aurora.less +0 -2
  503. package/components/lazy/lazy-ios.less +0 -2
  504. package/components/lazy/lazy-md.less +0 -2
  505. package/components/lazy/lazy-rtl.css +0 -1
  506. package/components/lazy/lazy.css +0 -1
  507. package/components/lazy/lazy.d.ts +0 -57
  508. package/components/lazy/lazy.js +0 -283
  509. package/components/lazy/lazy.lazy.js +0 -1
  510. package/components/lazy/lazy.less +0 -23
  511. package/components/link/link-aurora.less +0 -15
  512. package/components/list/list-aurora.less +0 -25
  513. package/components/list-index/list-index-aurora.less +0 -21
  514. package/components/list-index/list-index.lazy.js +0 -1
  515. package/components/login-screen/login-screen-aurora.less +0 -2
  516. package/components/login-screen/login-screen.lazy.js +0 -1
  517. package/components/menu/menu-aurora.less +0 -8
  518. package/components/menu/menu-ios.less +0 -2
  519. package/components/menu/menu-md.less +0 -2
  520. package/components/menu/menu-rtl.css +0 -1
  521. package/components/menu/menu-vars.less +0 -27
  522. package/components/menu/menu.css +0 -1
  523. package/components/menu/menu.d.ts +0 -32
  524. package/components/menu/menu.js +0 -87
  525. package/components/menu/menu.lazy.js +0 -1
  526. package/components/menu/menu.less +0 -232
  527. package/components/messagebar/messagebar-aurora.less +0 -53
  528. package/components/messagebar/messagebar.lazy.js +0 -1
  529. package/components/messages/messages-aurora.less +0 -137
  530. package/components/messages/messages.lazy.js +0 -1
  531. package/components/navbar/navbar-aurora.less +0 -70
  532. package/components/notification/notification-aurora.less +0 -59
  533. package/components/notification/notification.lazy.js +0 -1
  534. package/components/page/page-aurora.less +0 -49
  535. package/components/panel/panel-aurora.less +0 -2
  536. package/components/panel/panel.lazy.js +0 -1
  537. package/components/photo-browser/photo-browser-aurora.less +0 -2
  538. package/components/photo-browser/photo-browser.lazy.js +0 -1
  539. package/components/picker/picker-aurora.less +0 -2
  540. package/components/picker/picker.lazy.js +0 -1
  541. package/components/pie-chart/pie-chart-aurora.less +0 -2
  542. package/components/pie-chart/pie-chart.lazy.js +0 -1
  543. package/components/popover/popover-aurora.less +0 -56
  544. package/components/popover/popover.lazy.js +0 -1
  545. package/components/popup/popup-aurora.less +0 -2
  546. package/components/popup/popup.lazy.js +0 -1
  547. package/components/preloader/preloader-aurora.less +0 -53
  548. package/components/preloader/preloader.lazy.js +0 -1
  549. package/components/progressbar/progressbar-aurora.less +0 -72
  550. package/components/progressbar/progressbar.lazy.js +0 -1
  551. package/components/pull-to-refresh/pull-to-refresh-aurora.less +0 -122
  552. package/components/pull-to-refresh/pull-to-refresh.lazy.js +0 -1
  553. package/components/radio/radio-aurora.less +0 -86
  554. package/components/radio/radio.lazy.js +0 -1
  555. package/components/range/range-aurora.less +0 -9
  556. package/components/range/range.lazy.js +0 -1
  557. package/components/searchbar/searchbar-aurora.less +0 -86
  558. package/components/searchbar/searchbar.lazy.js +0 -1
  559. package/components/sheet/sheet-aurora.less +0 -2
  560. package/components/sheet/sheet.lazy.js +0 -1
  561. package/components/skeleton/skeleton-aurora.less +0 -2
  562. package/components/skeleton/skeleton.lazy.js +0 -1
  563. package/components/smart-select/smart-select-aurora.less +0 -2
  564. package/components/smart-select/smart-select.lazy.js +0 -1
  565. package/components/sortable/sortable-aurora.less +0 -7
  566. package/components/sortable/sortable.lazy.js +0 -1
  567. package/components/statusbar/statusbar-aurora.less +0 -2
  568. package/components/stepper/stepper-aurora.less +0 -32
  569. package/components/stepper/stepper.lazy.js +0 -1
  570. package/components/subnavbar/subnavbar-aurora.less +0 -51
  571. package/components/swipeout/swipeout-aurora.less +0 -2
  572. package/components/swipeout/swipeout.lazy.js +0 -1
  573. package/components/swiper/swiper-aurora.less +0 -2
  574. package/components/swiper/swiper.lazy.js +0 -1
  575. package/components/tabs/tabs-aurora.less +0 -2
  576. package/components/tabs/tabs.lazy.js +0 -1
  577. package/components/text-editor/text-editor-aurora.less +0 -9
  578. package/components/text-editor/text-editor.lazy.js +0 -1
  579. package/components/timeline/timeline-aurora.less +0 -7
  580. package/components/timeline/timeline.lazy.js +0 -1
  581. package/components/toast/toast-aurora.less +0 -64
  582. package/components/toast/toast.lazy.js +0 -1
  583. package/components/toggle/toggle-aurora.less +0 -26
  584. package/components/toggle/toggle.lazy.js +0 -1
  585. package/components/toolbar/toolbar-aurora.less +0 -43
  586. package/components/tooltip/tooltip-aurora.less +0 -2
  587. package/components/tooltip/tooltip.lazy.js +0 -1
  588. package/components/touch-ripple/touch-ripple-aurora.less +0 -2
  589. package/components/treeview/treeview-aurora.less +0 -31
  590. package/components/treeview/treeview.lazy.js +0 -1
  591. package/components/typography/typography-aurora.less +0 -2
  592. package/components/typography/typography.lazy.js +0 -1
  593. package/components/view/view-aurora.less +0 -2
  594. package/components/virtual-list/virtual-list-aurora.less +0 -2
  595. package/components/virtual-list/virtual-list.lazy.js +0 -1
  596. package/framework7.js +0 -14715
  597. package/framework7.js.map +0 -1
  598. package/framework7.min.js +0 -14
  599. package/framework7.min.js.map +0 -1
  600. package/modules/request/request.d.ts +0 -15
  601. package/modules/request/request.js +0 -11
  602. package/shared/request.d.ts +0 -115
  603. package/shared/request.js +0 -512
@@ -7,7 +7,6 @@ import redirect from './redirect.js';
7
7
  import processRouteQueue from './process-route-queue.js';
8
8
  import appRouterCheck from './app-router-check.js';
9
9
  import asyncComponent from './async-component.js';
10
-
11
10
  function backward(router, el, backwardOptions) {
12
11
  const device = getDevice();
13
12
  const document = getDocument();
@@ -28,51 +27,45 @@ function backward(router, el, backwardOptions) {
28
27
  const $oldPage = router.$el.children('.page-current');
29
28
  const initialPreload = $oldPage.length === 0 && options.preload;
30
29
  const currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master');
31
-
32
30
  if ($newPage.length) {
33
31
  // Remove theme elements
34
32
  router.removeThemeElements($newPage);
35
33
  }
36
-
37
34
  let $navbarsEl;
38
35
  let $newNavbarEl;
39
36
  let $oldNavbarEl;
40
-
41
37
  if (dynamicNavbar) {
42
38
  $newNavbarEl = $newPage.children('.navbar');
43
39
  $navbarsEl = router.$navbarsEl;
44
-
45
40
  if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) {
46
41
  // Try from pageData
47
42
  $newNavbarEl = $newPage[0].f7Page.$navbarEl;
48
43
  }
49
-
50
44
  $oldNavbarEl = $navbarsEl.find('.navbar-current');
51
45
  }
52
-
53
46
  router.allowPageChange = false;
54
-
55
47
  if ($newPage.length === 0 || $oldPage.length === 0 && !options.preload) {
56
48
  router.allowPageChange = true;
57
49
  return router;
58
- } // Remove theme elements
59
-
50
+ }
60
51
 
61
- router.removeThemeElements($newPage); // Save Keep Alive Cache
52
+ // Remove theme elements
53
+ router.removeThemeElements($newPage);
62
54
 
55
+ // Save Keep Alive Cache
63
56
  if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) {
64
57
  options.route.route.keepAliveData = {
65
58
  pageEl: $el[0]
66
59
  };
67
- } // Pages In View
68
-
60
+ }
69
61
 
62
+ // Pages In View
70
63
  let isDetail;
71
64
  let isDetailRoot;
72
-
73
65
  if (masterDetailEnabled) {
74
- const $pagesInView = router.$el.children('.page:not(.stacked)').filter(pageInView => pageInView !== $newPage[0]); // Find Detail' master page
66
+ const $pagesInView = router.$el.children('.page').filter(pageInView => pageInView !== $newPage[0]);
75
67
 
68
+ // Find Detail' master page
76
69
  for (let i = 0; i < $pagesInView.length; i += 1) {
77
70
  if (!masterPageEl && $pagesInView[i].classList.contains('page-master')) {
78
71
  masterPageEl = $pagesInView[i];
@@ -81,23 +74,20 @@ function backward(router, el, backwardOptions) {
81
74
  }
82
75
 
83
76
  isDetail = !isMaster && masterPageEl && router.history.indexOf(options.route.url) > router.history.indexOf(masterPageEl.f7Page.route.url);
84
-
85
77
  if (!isDetail && !isMaster && masterPageEl && masterPageEl.f7Page && options.route.route.masterRoute) {
86
78
  isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path;
87
79
  }
88
80
  }
89
-
90
81
  if (isDetail && masterPageEl && masterPageEl.f7Page) {
91
82
  isDetailRoot = router.history.indexOf(options.route.url) - router.history.indexOf(masterPageEl.f7Page.route.url) === 1;
92
- } // New Page
93
-
83
+ }
94
84
 
95
- $newPage.addClass(`page-${initialPreload ? 'current' : 'previous'}${isMaster ? ' page-master' : ''}${isDetail ? ' page-master-detail' : ''}${isDetailRoot ? ' page-master-detail-root' : ''}`).removeClass('stacked').removeAttr('aria-hidden').trigger('page:unstack').trigger('page:position', {
85
+ // New Page
86
+ $newPage.addClass(`page-${initialPreload ? 'current' : 'previous'}${isMaster ? ' page-master' : ''}${isDetail ? ' page-master-detail' : ''}${isDetailRoot ? ' page-master-detail-root' : ''}`).removeAttr('aria-hidden').trigger('page:unstack').trigger('page:position', {
96
87
  position: initialPreload ? 'current' : 'previous'
97
88
  });
98
89
  router.emit('pageUnstack', $newPage[0]);
99
90
  router.emit('pagePosition', $newPage[0], initialPreload ? 'current' : 'previous');
100
-
101
91
  if (isMaster || isDetail) {
102
92
  $newPage.trigger('page:role', {
103
93
  role: isMaster ? 'master' : 'detail',
@@ -108,27 +98,24 @@ function backward(router, el, backwardOptions) {
108
98
  detailRoot: !!isDetailRoot
109
99
  });
110
100
  }
111
-
112
101
  if (dynamicNavbar && $newNavbarEl.length > 0) {
113
- $newNavbarEl.addClass(`navbar-${initialPreload ? 'current' : 'previous'}${isMaster ? ' navbar-master' : ''}${isDetail ? ' navbar-master-detail' : ''}${isDetailRoot ? ' navbar-master-detail-root' : ''}`).removeClass('stacked').removeAttr('aria-hidden');
102
+ $newNavbarEl.addClass(`navbar-${initialPreload ? 'current' : 'previous'}${isMaster ? ' navbar-master' : ''}${isDetail ? ' navbar-master-detail' : ''}${isDetailRoot ? ' navbar-master-detail-root' : ''}`).removeAttr('aria-hidden');
114
103
  $newNavbarEl.trigger('navbar:position', {
115
104
  position: initialPreload ? 'current' : 'previous'
116
105
  });
117
106
  router.emit('navbarPosition', $newNavbarEl[0], initialPreload ? 'current' : 'previous');
118
-
119
107
  if (isMaster || isDetailRoot) {
120
108
  router.emit('navbarRole', $newNavbarEl[0], {
121
109
  role: isMaster ? 'master' : 'detail',
122
110
  detailRoot: !!isDetailRoot
123
111
  });
124
112
  }
125
- } // Remove previous page in case of "forced"
126
-
113
+ }
127
114
 
115
+ // Remove previous page in case of "forced"
128
116
  let backIndex;
129
-
130
117
  if (options.force) {
131
- if ($oldPage.prev('.page-previous:not(.stacked)').length > 0 || $oldPage.prev('.page-previous').length === 0) {
118
+ if ($oldPage.prev('.page-previous').length >= 0) {
132
119
  if (router.history.indexOf(options.route.url) >= 0) {
133
120
  backIndex = router.history.length - router.history.indexOf(options.route.url) - 1;
134
121
  router.history = router.history.slice(0, router.history.indexOf(options.route.url) + 2);
@@ -140,76 +127,27 @@ function backward(router, el, backwardOptions) {
140
127
  router.history.unshift(router.url);
141
128
  router.propsHistory.unshift(options.props || {});
142
129
  }
143
-
144
- if (backIndex && router.params.stackPages) {
145
- $oldPage.prevAll('.page-previous').each(pageToRemove => {
146
- const $pageToRemove = $(pageToRemove);
147
- let $navbarToRemove;
148
-
149
- if (dynamicNavbar) {
150
- // $navbarToRemove = $oldNavbarEl.prevAll('.navbar-previous').eq(index);
151
- $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));
152
- }
153
-
154
- if ($pageToRemove[0] !== $newPage[0] && $pageToRemove.index() > $newPage.index()) {
155
- if (router.initialPages.indexOf($pageToRemove[0]) >= 0) {
156
- $pageToRemove.addClass('stacked');
157
- $pageToRemove.trigger('page:stack');
158
- router.emit('pageStack', $pageToRemove[0]);
159
-
160
- if (dynamicNavbar) {
161
- $navbarToRemove.addClass('stacked');
162
- }
163
- } else {
164
- router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options);
165
-
166
- if ($pageToRemove[0] === masterPageEl) {
167
- masterPageRemoved = true;
168
- }
169
-
170
- router.removePage($pageToRemove);
171
-
172
- if (dynamicNavbar && $navbarToRemove.length > 0) {
173
- router.removeNavbar($navbarToRemove);
174
- }
175
- }
176
- }
177
- });
178
- } else {
179
- const $pageToRemove = $oldPage.prev('.page-previous:not(.stacked)');
180
- let $navbarToRemove;
181
-
182
- if (dynamicNavbar) {
183
- // $navbarToRemove = $oldNavbarEl.prev('.navbar-inner:not(.stacked)');
184
- $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));
130
+ const $pageToRemove = $oldPage.prev('.page-previous');
131
+ let $navbarToRemove;
132
+ if (dynamicNavbar) {
133
+ $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));
134
+ }
135
+ if ($pageToRemove.length > 0) {
136
+ router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options);
137
+ if ($pageToRemove[0] === masterPageEl) {
138
+ masterPageRemoved = true;
185
139
  }
186
-
187
- if (router.params.stackPages && router.initialPages.indexOf($pageToRemove[0]) >= 0) {
188
- $pageToRemove.addClass('stacked');
189
- $pageToRemove.trigger('page:stack');
190
- router.emit('pageStack', $pageToRemove[0]);
191
- $navbarToRemove.addClass('stacked');
192
- } else if ($pageToRemove.length > 0) {
193
- router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options);
194
-
195
- if ($pageToRemove[0] === masterPageEl) {
196
- masterPageRemoved = true;
197
- }
198
-
199
- router.removePage($pageToRemove);
200
-
201
- if (dynamicNavbar && $navbarToRemove.length) {
202
- router.removeNavbar($navbarToRemove);
203
- }
140
+ router.removePage($pageToRemove);
141
+ if (dynamicNavbar && $navbarToRemove.length) {
142
+ router.removeNavbar($navbarToRemove);
204
143
  }
205
144
  }
206
145
  }
207
- } // Insert new page
208
-
146
+ }
209
147
 
148
+ // Insert new page
210
149
  const newPageInDom = $newPage.parents(document).length > 0;
211
150
  const f7Component = $newPage[0].f7Component;
212
-
213
151
  function insertPage() {
214
152
  if (initialPreload) {
215
153
  if (!newPageInDom && f7Component) {
@@ -220,7 +158,6 @@ function backward(router, el, backwardOptions) {
220
158
  router.$el.append($newPage);
221
159
  }
222
160
  }
223
-
224
161
  if ($newPage.next($oldPage).length === 0) {
225
162
  if (!newPageInDom && f7Component) {
226
163
  f7Component.mount(componentEl => {
@@ -230,25 +167,20 @@ function backward(router, el, backwardOptions) {
230
167
  $newPage.insertBefore($oldPage);
231
168
  }
232
169
  }
233
-
234
170
  if (dynamicNavbar && $newNavbarEl.length) {
235
171
  if ($newNavbarEl.find('.title-large').length) {
236
172
  $newNavbarEl.addClass('navbar-large');
237
173
  }
238
-
239
174
  $newNavbarEl.insertBefore($oldNavbarEl);
240
-
241
175
  if ($oldNavbarEl.length > 0) {
242
176
  $newNavbarEl.insertBefore($oldNavbarEl);
243
177
  } else {
244
178
  if (!router.$navbarsEl.parents(document).length) {
245
179
  router.$el.prepend(router.$navbarsEl);
246
180
  }
247
-
248
181
  $navbarsEl.append($newNavbarEl);
249
182
  }
250
183
  }
251
-
252
184
  if (!newPageInDom) {
253
185
  router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);
254
186
  } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) {
@@ -256,11 +188,10 @@ function backward(router, el, backwardOptions) {
256
188
  router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);
257
189
  }
258
190
  }
259
-
260
191
  if (options.preload) {
261
192
  // Insert Page
262
- insertPage(); // Tab route
263
-
193
+ insertPage();
194
+ // Tab route
264
195
  if (options.route.route.tab) {
265
196
  router.tabLoad(options.route.route.tab, extend({}, options, {
266
197
  history: false,
@@ -268,61 +199,40 @@ function backward(router, el, backwardOptions) {
268
199
  preload: true
269
200
  }));
270
201
  }
271
-
272
202
  if (isMaster) {
273
203
  $newPage.removeClass('page-master-stacked').trigger('page:masterunstack');
274
204
  router.emit('pageMasterUnstack', $newPage[0]);
275
-
276
205
  if (dynamicNavbar) {
277
206
  $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked');
278
207
  router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage));
279
208
  }
280
- } // Page init and before init events
281
-
282
-
209
+ }
210
+ // Page init and before init events
283
211
  router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);
284
-
285
212
  if (initialPreload) {
286
213
  router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'current', undefined, options);
287
214
  router.pageCallback('afterIn', $newPage, $newNavbarEl, 'current', undefined, options);
288
215
  }
289
-
290
- const $previousPages = $newPage.prevAll('.page-previous:not(.stacked):not(.page-master)');
291
-
216
+ const $previousPages = $newPage.prevAll('.page-previous:not(.page-master)');
292
217
  if ($previousPages.length > 0) {
293
218
  $previousPages.each(pageToRemove => {
294
219
  const $pageToRemove = $(pageToRemove);
295
220
  let $navbarToRemove;
296
-
297
221
  if (dynamicNavbar) {
298
- // $navbarToRemove = $newNavbarEl.prevAll('.navbar-previous:not(.stacked)').eq(index);
299
222
  $navbarToRemove = $(app.navbar.getElByPage($pageToRemove));
300
223
  }
301
-
302
- if (router.params.stackPages && router.initialPages.indexOf(pageToRemove) >= 0) {
303
- $pageToRemove.addClass('stacked');
304
- $pageToRemove.trigger('page:stack');
305
- router.emit('pageStack', $pageToRemove[0]);
306
-
307
- if (dynamicNavbar) {
308
- $navbarToRemove.addClass('stacked');
309
- }
310
- } else {
311
- router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined);
312
- router.removePage($pageToRemove);
313
-
314
- if (dynamicNavbar && $navbarToRemove.length) {
315
- router.removeNavbar($navbarToRemove);
316
- }
224
+ router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined);
225
+ router.removePage($pageToRemove);
226
+ if (dynamicNavbar && $navbarToRemove.length) {
227
+ router.removeNavbar($navbarToRemove);
317
228
  }
318
229
  });
319
230
  }
320
-
321
231
  router.allowPageChange = true;
322
232
  return router;
323
- } // History State
324
-
233
+ }
325
234
 
235
+ // History State
326
236
  if (!(device.ie || device.edge || device.firefox && !device.ios)) {
327
237
  if (router.params.browserHistory && options.browserHistory) {
328
238
  if (options.replaceState) {
@@ -336,9 +246,9 @@ function backward(router, el, backwardOptions) {
336
246
  History.back();
337
247
  }
338
248
  }
339
- } // Update History
340
-
249
+ }
341
250
 
251
+ // Update History
342
252
  if (options.replaceState) {
343
253
  router.history[router.history.length - 1] = options.route.url;
344
254
  router.propsHistory[router.propsHistory.length - 1] = options.props || {};
@@ -347,24 +257,23 @@ function backward(router, el, backwardOptions) {
347
257
  router.history.unshift(router.url);
348
258
  router.propsHistory.unshift(options.props || {});
349
259
  }
350
-
351
260
  router.history.pop();
352
261
  router.propsHistory.pop();
353
262
  }
263
+ router.saveHistory();
354
264
 
355
- router.saveHistory(); // Current Page & Navbar
356
-
265
+ // Current Page & Navbar
357
266
  router.currentPageEl = $newPage[0];
358
-
359
267
  if (dynamicNavbar && $newNavbarEl.length) {
360
268
  router.currentNavbarEl = $newNavbarEl[0];
361
269
  } else {
362
270
  delete router.currentNavbarEl;
363
- } // Current Route
364
-
271
+ }
365
272
 
366
- router.currentRoute = options.route; // History State
273
+ // Current Route
274
+ router.currentRoute = options.route;
367
275
 
276
+ // History State
368
277
  if (device.ie || device.edge || device.firefox && !device.ios) {
369
278
  if (router.params.browserHistory && options.browserHistory) {
370
279
  if (options.replaceState) {
@@ -378,105 +287,89 @@ function backward(router, el, backwardOptions) {
378
287
  History.back();
379
288
  }
380
289
  }
381
- } // Insert Page
382
-
290
+ }
383
291
 
384
- insertPage(); // Load Tab
292
+ // Insert Page
293
+ insertPage();
385
294
 
295
+ // Load Tab
386
296
  if (options.route.route.tab) {
387
297
  router.tabLoad(options.route.route.tab, extend({}, options, {
388
298
  history: false,
389
299
  browserHistory: false
390
300
  }));
391
- } // Check master detail
301
+ }
392
302
 
303
+ // Check master detail
393
304
 
394
305
  if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) {
395
306
  view.checkMasterDetailBreakpoint(false);
396
- } // Page init and before init events
397
-
307
+ }
398
308
 
399
- router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); // Before animation callback
309
+ // Page init and before init events
310
+ router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage);
400
311
 
312
+ // Before animation callback
401
313
  router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options);
402
- router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options); // Animation
314
+ router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options);
403
315
 
316
+ // Animation
404
317
  function afterAnimation() {
405
318
  // Set classes
406
319
  router.setPagePosition($newPage, 'current', false);
407
320
  router.setPagePosition($oldPage, 'next', true);
408
-
409
321
  if (dynamicNavbar) {
410
322
  router.setNavbarPosition($newNavbarEl, 'current', false);
411
323
  router.setNavbarPosition($oldNavbarEl, 'next', true);
412
- } // After animation event
413
-
324
+ }
414
325
 
326
+ // After animation event
415
327
  router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options);
416
- router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options); // Remove Old Page
417
-
418
- if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) {
419
- $oldPage.addClass('stacked');
420
- $oldPage.trigger('page:stack');
421
- router.emit('pageStack', $oldPage[0]);
328
+ router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options);
422
329
 
423
- if (dynamicNavbar) {
424
- $oldNavbarEl.addClass('stacked');
425
- }
426
- } else {
427
- router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options);
428
- router.removePage($oldPage);
330
+ // Remove Old Page
429
331
 
430
- if (dynamicNavbar && $oldNavbarEl.length) {
431
- router.removeNavbar($oldNavbarEl);
432
- }
332
+ router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options);
333
+ router.removePage($oldPage);
334
+ if (dynamicNavbar && $oldNavbarEl.length) {
335
+ router.removeNavbar($oldNavbarEl);
433
336
  }
434
-
435
337
  router.allowPageChange = true;
436
- router.emit('routeChanged', router.currentRoute, router.previousRoute, router); // Preload previous page
338
+ router.emit('routeChanged', router.currentRoute, router.previousRoute, router);
437
339
 
340
+ // Preload previous page
438
341
  const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];
439
-
440
342
  if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) {
441
343
  router.back(router.history[router.history.length - 2], {
442
344
  preload: true,
443
345
  props: router.propsHistory[router.propsHistory.length - 2] || {}
444
346
  });
445
347
  }
446
-
447
348
  if (router.params.browserHistory) {
448
349
  History.clearRouterQueue();
449
350
  }
450
351
  }
451
-
452
352
  function setPositionClasses() {
453
353
  router.setPagePosition($oldPage, 'current');
454
354
  router.setPagePosition($newPage, 'previous', false);
455
-
456
355
  if (dynamicNavbar) {
457
356
  router.setNavbarPosition($oldNavbarEl, 'current');
458
357
  router.setNavbarPosition($newNavbarEl, 'previous', false);
459
358
  }
460
359
  }
461
-
462
360
  if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) {
463
361
  let transition = router.params.transition;
464
-
465
362
  if ($oldPage[0] && $oldPage[0].f7PageTransition) {
466
363
  transition = $oldPage[0].f7PageTransition;
467
364
  delete $oldPage[0].f7PageTransition;
468
365
  }
469
-
470
366
  if (options.transition) transition = options.transition;
471
-
472
367
  if (!transition && router.previousRoute && router.previousRoute.route) {
473
368
  transition = router.previousRoute.route.transition;
474
369
  }
475
-
476
370
  if (!transition && router.previousRoute && router.previousRoute.route && router.previousRoute.route.options) {
477
371
  transition = router.previousRoute.route.options.transition;
478
372
  }
479
-
480
373
  setPositionClasses();
481
374
  router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, () => {
482
375
  afterAnimation();
@@ -484,10 +377,8 @@ function backward(router, el, backwardOptions) {
484
377
  } else {
485
378
  afterAnimation();
486
379
  }
487
-
488
380
  return router;
489
381
  }
490
-
491
382
  function loadBack(router, backParams, backOptions, ignorePageChange) {
492
383
  if (!router.allowPageChange && !ignorePageChange) return router;
493
384
  const params = backParams;
@@ -500,31 +391,27 @@ function loadBack(router, backParams, backOptions, ignorePageChange) {
500
391
  component,
501
392
  componentUrl
502
393
  } = params;
503
-
504
394
  if (options.route.url && router.url === options.route.url && !(options.reloadCurrent || options.reloadPrevious) && !router.params.allowDuplicateUrls) {
505
395
  router.allowPageChange = true;
506
396
  return false;
507
397
  }
508
-
509
398
  if (!options.route && url) {
510
399
  options.route = router.parseRouteUrl(url);
511
- } // Component Callbacks
512
-
400
+ }
513
401
 
402
+ // Component Callbacks
514
403
  function resolve(pageEl, newOptions) {
515
404
  return backward(router, pageEl, extend(options, newOptions));
516
405
  }
517
-
518
406
  function reject() {
519
407
  router.allowPageChange = true;
520
408
  return router;
521
409
  }
522
-
523
410
  if (url || componentUrl || component) {
524
411
  router.allowPageChange = false;
525
- } // Proceed
526
-
412
+ }
527
413
 
414
+ // Proceed
528
415
  if (content) {
529
416
  backward(router, router.getPageEl(content), options);
530
417
  } else if (el) {
@@ -554,17 +441,14 @@ function loadBack(router, backParams, backOptions, ignorePageChange) {
554
441
  router.xhrAbortController.abort();
555
442
  router.xhrAbortController = false;
556
443
  }
557
-
558
444
  router.xhrRequest(url, options).then(pageContent => {
559
445
  backward(router, router.getPageEl(pageContent), options);
560
446
  }).catch(() => {
561
447
  router.allowPageChange = true;
562
448
  });
563
449
  }
564
-
565
450
  return router;
566
451
  }
567
-
568
452
  function back() {
569
453
  const router = this;
570
454
  const device = getDevice();
@@ -573,27 +457,23 @@ function back() {
573
457
  let navigateOptions;
574
458
  let navigateProps;
575
459
  let route;
576
-
577
460
  if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'object') {
578
461
  navigateOptions = (arguments.length <= 0 ? undefined : arguments[0]) || {};
579
462
  } else {
580
463
  navigateUrl = arguments.length <= 0 ? undefined : arguments[0];
581
464
  navigateOptions = (arguments.length <= 1 ? undefined : arguments[1]) || {};
582
465
  }
583
-
584
466
  const {
585
467
  name,
586
468
  params,
587
469
  query
588
470
  } = navigateOptions;
589
-
590
471
  if (name) {
591
472
  navigateUrl = router.generateUrl({
592
473
  name,
593
474
  params,
594
475
  query
595
476
  });
596
-
597
477
  if (navigateUrl) {
598
478
  return router.back(navigateUrl, extend({}, navigateOptions, {
599
479
  name: null,
@@ -601,15 +481,12 @@ function back() {
601
481
  query: null
602
482
  }));
603
483
  }
604
-
605
484
  return router;
606
485
  }
607
-
608
486
  const app = router.app;
609
487
  appRouterCheck(router, 'back');
610
488
  let currentRouteIsModal = router.currentRoute.modal;
611
489
  let modalType;
612
-
613
490
  if (!currentRouteIsModal) {
614
491
  'popup popover sheet loginScreen actions customModal panel'.split(' ').forEach(modalLoadProp => {
615
492
  if (router.currentRoute.route[modalLoadProp]) {
@@ -618,28 +495,24 @@ function back() {
618
495
  }
619
496
  });
620
497
  }
621
-
622
498
  if (currentRouteIsModal && !navigateOptions.preload) {
623
499
  const modalToClose = router.currentRoute.modal || router.currentRoute.route.modalInstance || app[modalType].get();
624
500
  const previousUrl = router.history[router.history.length - 2];
625
- let previousRoute; // check if previous route is modal too
626
-
501
+ let previousRoute;
502
+ // check if previous route is modal too
627
503
  if (modalToClose && modalToClose.$el) {
628
504
  const prevOpenedModals = modalToClose.$el.prevAll('.modal-in');
629
-
630
505
  if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) {
631
- const modalEl = prevOpenedModals[0]; // check if current router not inside of the modalEl
632
-
506
+ const modalEl = prevOpenedModals[0];
507
+ // check if current router not inside of the modalEl
633
508
  if (!router.$el.parents(modalEl).length) {
634
509
  previousRoute = modalEl.f7Modal.route;
635
510
  }
636
511
  }
637
512
  }
638
-
639
513
  if (!previousRoute) {
640
514
  previousRoute = router.findMatchingRoute(previousUrl);
641
515
  }
642
-
643
516
  if (!previousRoute && previousUrl) {
644
517
  previousRoute = {
645
518
  url: previousUrl,
@@ -651,35 +524,27 @@ function back() {
651
524
  }
652
525
  };
653
526
  }
654
-
655
527
  if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) {
656
528
  if (!previousRoute || !modalToClose) {
657
529
  return router;
658
530
  }
659
531
  }
660
-
661
532
  const forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl;
662
-
663
533
  if (previousRoute && modalToClose) {
664
534
  const isBrokenBrowserHistory = device.ie || device.edge || device.firefox && !device.ios;
665
535
  const needHistoryBack = router.params.browserHistory && navigateOptions.browserHistory !== false;
666
536
  const currentRouteWithoutBrowserHistory = router.currentRoute && router.currentRoute.route && router.currentRoute.route.options && router.currentRoute.route.options.browserHistory === false;
667
-
668
537
  if (needHistoryBack && !isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {
669
538
  History.back();
670
539
  }
671
-
672
540
  router.currentRoute = previousRoute;
673
541
  router.history.pop();
674
542
  router.propsHistory.pop();
675
543
  router.saveHistory();
676
-
677
544
  if (needHistoryBack && isBrokenBrowserHistory && !currentRouteWithoutBrowserHistory) {
678
545
  History.back();
679
546
  }
680
-
681
547
  router.modalRemove(modalToClose);
682
-
683
548
  if (forceOtherUrl) {
684
549
  router.navigate(navigateUrl, {
685
550
  reloadCurrent: true
@@ -687,41 +552,33 @@ function back() {
687
552
  }
688
553
  } else if (modalToClose) {
689
554
  router.modalRemove(modalToClose);
690
-
691
555
  if (navigateUrl) {
692
556
  router.navigate(navigateUrl, {
693
557
  reloadCurrent: true
694
558
  });
695
559
  }
696
560
  }
697
-
698
561
  return router;
699
562
  }
700
-
701
563
  let $previousPage = router.$el.children('.page-current').prevAll('.page-previous:not(.page-master)').eq(0);
702
564
  let skipMaster;
703
-
704
565
  if (router.params.masterDetailBreakpoint > 0) {
705
566
  const classes = [];
706
567
  router.$el.children('.page').each(pageEl => {
707
568
  classes.push(pageEl.className);
708
569
  });
709
570
  const $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0);
710
-
711
571
  if ($previousMaster.length) {
712
572
  const expectedPreviousPageUrl = router.history[router.history.length - 2];
713
573
  const expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl);
714
-
715
574
  if (expectedPreviousPageRoute && $previousMaster[0].f7Page && expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route) {
716
575
  $previousPage = $previousMaster;
717
-
718
576
  if (!navigateOptions.preload) {
719
577
  skipMaster = app.width >= router.params.masterDetailBreakpoint;
720
578
  }
721
579
  }
722
580
  }
723
581
  }
724
-
725
582
  if (!navigateOptions.force && $previousPage.length && !skipMaster) {
726
583
  if (router.params.browserHistory && $previousPage[0].f7Page && router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url) {
727
584
  router.back(router.history[router.history.length - 2], extend(navigateOptions, {
@@ -730,18 +587,7 @@ function back() {
730
587
  }));
731
588
  return router;
732
589
  }
733
-
734
590
  const previousPageRoute = $previousPage[0].f7Page.route;
735
-
736
- if (navigateOptions.preload && $previousPage.hasClass('stacked')) {
737
- loadBack(router, {
738
- el: $previousPage
739
- }, extend(navigateOptions, {
740
- route: previousPageRoute
741
- }));
742
- return router;
743
- }
744
-
745
591
  processRouteQueue.call(router, previousPageRoute, router.currentRoute, () => {
746
592
  loadBack(router, {
747
593
  el: $previousPage
@@ -750,22 +596,19 @@ function back() {
750
596
  }));
751
597
  }, () => {}, 'backward');
752
598
  return router;
753
- } // Navigate URL
754
-
599
+ }
755
600
 
601
+ // Navigate URL
756
602
  if (navigateUrl === '#') {
757
603
  navigateUrl = undefined;
758
604
  }
759
-
760
605
  if (navigateUrl && navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) {
761
606
  navigateUrl = ((router.path || '/') + navigateUrl).replace('//', '/');
762
607
  }
763
-
764
608
  if (!navigateUrl && router.history.length > 1) {
765
609
  navigateUrl = router.history[router.history.length - 2];
766
610
  navigateProps = router.propsHistory[router.propsHistory.length - 2] || {};
767
611
  }
768
-
769
612
  if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) {
770
613
  return router.back(router.history[router.history.length - 3], extend({}, navigateOptions || {}, {
771
614
  force: true,
@@ -773,14 +616,12 @@ function back() {
773
616
  props: router.propsHistory[router.propsHistory.length - 3] || {}
774
617
  }));
775
618
  }
776
-
777
619
  if (skipMaster && !navigateOptions.force) {
778
620
  return router;
779
- } // Find route to load
780
-
621
+ }
781
622
 
623
+ // Find route to load
782
624
  route = router.findMatchingRoute(navigateUrl);
783
-
784
625
  if (!route) {
785
626
  if (navigateUrl) {
786
627
  route = {
@@ -794,17 +635,13 @@ function back() {
794
635
  };
795
636
  }
796
637
  }
797
-
798
638
  if (!route) {
799
639
  return router;
800
640
  }
801
-
802
641
  if (route.route.redirect) {
803
642
  return redirect.call(router, 'backward', route, navigateOptions);
804
643
  }
805
-
806
644
  const options = {};
807
-
808
645
  if (route.route.options) {
809
646
  extend(options, route.route.options, navigateOptions, {
810
647
  props: navigateProps || {}
@@ -814,35 +651,15 @@ function back() {
814
651
  props: navigateProps || {}
815
652
  });
816
653
  }
817
-
818
654
  options.route = route;
819
- let backForceLoaded;
820
-
821
- if (options.force && router.params.stackPages) {
822
- router.$el.children('.page-previous.stacked').each(pageEl => {
823
- if (pageEl.f7Page && pageEl.f7Page.route && pageEl.f7Page.route.url === route.url) {
824
- backForceLoaded = true;
825
- loadBack(router, {
826
- el: pageEl
827
- }, options);
828
- }
829
- });
830
-
831
- if (backForceLoaded) {
832
- return router;
833
- }
834
- }
835
-
836
655
  function resolve() {
837
656
  let routerLoaded = false;
838
-
839
657
  if (route.route.keepAlive && route.route.keepAliveData) {
840
658
  loadBack(router, {
841
659
  el: route.route.keepAliveData.pageEl
842
660
  }, options);
843
661
  routerLoaded = true;
844
662
  }
845
-
846
663
  'url content component pageName el componentUrl'.split(' ').forEach(pageLoadProp => {
847
664
  if (route.route[pageLoadProp] && !routerLoaded) {
848
665
  routerLoaded = true;
@@ -851,17 +668,15 @@ function back() {
851
668
  }, options);
852
669
  }
853
670
  });
854
- if (routerLoaded) return; // Async
855
-
671
+ if (routerLoaded) return;
672
+ // Async
856
673
  function asyncResolve(resolveParams, resolveOptions) {
857
674
  router.allowPageChange = false;
858
675
  loadBack(router, resolveParams, extend(options, resolveOptions), true);
859
676
  }
860
-
861
677
  function asyncReject() {
862
678
  router.allowPageChange = true;
863
679
  }
864
-
865
680
  if (route.route.async) {
866
681
  router.allowPageChange = false;
867
682
  route.route.async.call(router, {
@@ -874,16 +689,13 @@ function back() {
874
689
  app
875
690
  });
876
691
  }
877
-
878
692
  if (route.route.asyncComponent) {
879
693
  asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject);
880
694
  }
881
695
  }
882
-
883
696
  function reject() {
884
697
  router.allowPageChange = true;
885
698
  }
886
-
887
699
  if (options.preload) {
888
700
  resolve();
889
701
  } else {
@@ -900,10 +712,9 @@ function back() {
900
712
  }, () => {
901
713
  reject();
902
714
  }, 'backward');
903
- } // Return Router
904
-
715
+ }
905
716
 
717
+ // Return Router
906
718
  return router;
907
719
  }
908
-
909
720
  export { back };