@valtimo/layout 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/assets/css/app.css +30650 -0
  2. package/assets/img/1088x336.png +0 -0
  3. package/assets/img/140x140.png +0 -0
  4. package/assets/img/342x239.png +0 -0
  5. package/assets/img/346x106.png +0 -0
  6. package/assets/img/362x239.png +0 -0
  7. package/assets/img/404-bg.png +0 -0
  8. package/assets/img/529x161.png +0 -0
  9. package/assets/img/accessControl.svg +186 -0
  10. package/assets/img/avatar-150.png +0 -0
  11. package/assets/img/avatar.png +0 -0
  12. package/assets/img/avatar1.png +0 -0
  13. package/assets/img/avatar2.png +0 -0
  14. package/assets/img/avatar3.png +0 -0
  15. package/assets/img/avatar4.png +0 -0
  16. package/assets/img/avatar5.png +0 -0
  17. package/assets/img/avatar6.png +0 -0
  18. package/assets/img/bitbucket.png +0 -0
  19. package/assets/img/dashboard.svg +138 -0
  20. package/assets/img/db-icon.png +0 -0
  21. package/assets/img/dribbble.png +0 -0
  22. package/assets/img/dropbox.png +0 -0
  23. package/assets/img/emptystate-empty.svg +261 -0
  24. package/assets/img/emptystate-error.svg +245 -0
  25. package/assets/img/emptystate-error404.svg +146 -0
  26. package/assets/img/emptystate-no-result.svg +327 -0
  27. package/assets/img/emptystate-not-authorised.svg +279 -0
  28. package/assets/img/emptystate-success.svg +118 -0
  29. package/assets/img/fb-icon.png +0 -0
  30. package/assets/img/fl-icon.png +0 -0
  31. package/assets/img/gh-icon.png +0 -0
  32. package/assets/img/github.png +0 -0
  33. package/assets/img/gp-icon.png +0 -0
  34. package/assets/img/in-icon.png +0 -0
  35. package/assets/img/logo-fav.png +0 -0
  36. package/assets/img/logo-symbol.png +0 -0
  37. package/assets/img/logo-white-xx.png +0 -0
  38. package/assets/img/logo-white.png +0 -0
  39. package/assets/img/logo-white.svg +1 -0
  40. package/assets/img/logo-xx.png +0 -0
  41. package/assets/img/logo.png +0 -0
  42. package/assets/img/logo.svg +1 -0
  43. package/assets/img/mail_chimp.png +0 -0
  44. package/assets/img/marker.svg +3 -0
  45. package/assets/img/no-dashboards.svg +156 -0
  46. package/assets/img/no-results.svg +88 -0
  47. package/assets/img/no-widgets.svg +214 -0
  48. package/assets/img/pi-icon.png +0 -0
  49. package/assets/img/plugins.svg +1234 -0
  50. package/assets/img/slack.png +0 -0
  51. package/assets/img/slack_logo.png +0 -0
  52. package/assets/img/tu-icon.png +0 -0
  53. package/assets/img/tw-icon.png +0 -0
  54. package/assets/img/user-profile-display.png +0 -0
  55. package/assets/img/valtimo/favicons/android-chrome-192x192.png +0 -0
  56. package/assets/img/valtimo/favicons/android-chrome-256x256.png +0 -0
  57. package/assets/img/valtimo/favicons/apple-touch-icon.png +0 -0
  58. package/assets/img/valtimo/favicons/browserconfig.xml +25 -0
  59. package/assets/img/valtimo/favicons/favicon-16x16.png +0 -0
  60. package/assets/img/valtimo/favicons/favicon-32x32.png +0 -0
  61. package/assets/img/valtimo/favicons/favicon.ico +0 -0
  62. package/assets/img/valtimo/favicons/manifest.json +18 -0
  63. package/assets/img/valtimo/favicons/mstile-150x150.png +0 -0
  64. package/assets/img/valtimo/favicons/safari-pinned-tab.svg +19 -0
  65. package/assets/img/widget-management/density/compact.svg +65 -0
  66. package/assets/img/widget-management/density/default.svg +26 -0
  67. package/assets/img/widget-management/style/default.svg +26 -0
  68. package/assets/img/widget-management/style/high-contrast.svg +26 -0
  69. package/assets/img/widget-management/types/angular.svg +66 -0
  70. package/assets/img/widget-management/types/collection.svg +1 -0
  71. package/assets/img/widget-management/types/fields.svg +26 -0
  72. package/assets/img/widget-management/types/formio.svg +55 -0
  73. package/assets/img/widget-management/types/map.svg +63 -0
  74. package/assets/img/widget-management/types/table.svg +119 -0
  75. package/assets/img/widget-management/width/full-width.svg +44 -0
  76. package/assets/img/widget-management/width/half.svg +26 -0
  77. package/assets/img/widget-management/width/quarter.svg +17 -0
  78. package/assets/img/widget-management/width/three-quarters.svg +35 -0
  79. package/assets/img/yt-icon.png +0 -0
  80. package/assets/js/app.js +3062 -0
  81. package/assets/lib/jquery.gritter/images/gritter-bg.png +0 -0
  82. package/assets/lib/roboto/Roboto-Black.eot +0 -0
  83. package/assets/lib/roboto/Roboto-Black.svg +10968 -0
  84. package/assets/lib/roboto/Roboto-Black.ttf +0 -0
  85. package/assets/lib/roboto/Roboto-Black.woff +0 -0
  86. package/assets/lib/roboto/Roboto-Black.woff2 +0 -0
  87. package/assets/lib/roboto/Roboto-BlackItalic.eot +0 -0
  88. package/assets/lib/roboto/Roboto-BlackItalic.svg +11086 -0
  89. package/assets/lib/roboto/Roboto-BlackItalic.ttf +0 -0
  90. package/assets/lib/roboto/Roboto-BlackItalic.woff +0 -0
  91. package/assets/lib/roboto/Roboto-BlackItalic.woff2 +0 -0
  92. package/assets/lib/roboto/Roboto-Bold.eot +0 -0
  93. package/assets/lib/roboto/Roboto-Bold.svg +11010 -0
  94. package/assets/lib/roboto/Roboto-Bold.ttf +0 -0
  95. package/assets/lib/roboto/Roboto-Bold.woff +0 -0
  96. package/assets/lib/roboto/Roboto-Bold.woff2 +0 -0
  97. package/assets/lib/roboto/Roboto-BoldItalic.eot +0 -0
  98. package/assets/lib/roboto/Roboto-BoldItalic.svg +11096 -0
  99. package/assets/lib/roboto/Roboto-BoldItalic.ttf +0 -0
  100. package/assets/lib/roboto/Roboto-BoldItalic.woff +0 -0
  101. package/assets/lib/roboto/Roboto-BoldItalic.woff2 +0 -0
  102. package/assets/lib/roboto/Roboto-Light.eot +0 -0
  103. package/assets/lib/roboto/Roboto-Light.svg +10564 -0
  104. package/assets/lib/roboto/Roboto-Light.ttf +0 -0
  105. package/assets/lib/roboto/Roboto-Light.woff +0 -0
  106. package/assets/lib/roboto/Roboto-Light.woff2 +0 -0
  107. package/assets/lib/roboto/Roboto-LightItalic.eot +0 -0
  108. package/assets/lib/roboto/Roboto-LightItalic.svg +10646 -0
  109. package/assets/lib/roboto/Roboto-LightItalic.ttf +0 -0
  110. package/assets/lib/roboto/Roboto-LightItalic.woff +0 -0
  111. package/assets/lib/roboto/Roboto-LightItalic.woff2 +0 -0
  112. package/assets/lib/roboto/Roboto-Medium.eot +0 -0
  113. package/assets/lib/roboto/Roboto-Medium.svg +10999 -0
  114. package/assets/lib/roboto/Roboto-Medium.ttf +0 -0
  115. package/assets/lib/roboto/Roboto-Medium.woff +0 -0
  116. package/assets/lib/roboto/Roboto-Medium.woff2 +0 -0
  117. package/assets/lib/roboto/Roboto-MediumItalic.eot +0 -0
  118. package/assets/lib/roboto/Roboto-MediumItalic.svg +11100 -0
  119. package/assets/lib/roboto/Roboto-MediumItalic.ttf +0 -0
  120. package/assets/lib/roboto/Roboto-MediumItalic.woff +0 -0
  121. package/assets/lib/roboto/Roboto-MediumItalic.woff2 +0 -0
  122. package/assets/lib/roboto/Roboto-Regular.eot +0 -0
  123. package/assets/lib/roboto/Roboto-Regular.svg +10520 -0
  124. package/assets/lib/roboto/Roboto-Regular.ttf +0 -0
  125. package/assets/lib/roboto/Roboto-Regular.woff +0 -0
  126. package/assets/lib/roboto/Roboto-Regular.woff2 +0 -0
  127. package/assets/lib/roboto/Roboto-RegularItalic.eot +0 -0
  128. package/assets/lib/roboto/Roboto-RegularItalic.svg +10629 -0
  129. package/assets/lib/roboto/Roboto-RegularItalic.ttf +0 -0
  130. package/assets/lib/roboto/Roboto-RegularItalic.woff +0 -0
  131. package/assets/lib/roboto/Roboto-RegularItalic.woff2 +0 -0
  132. package/assets/lib/roboto/Roboto-Thin.eot +0 -0
  133. package/assets/lib/roboto/Roboto-Thin.svg +10617 -0
  134. package/assets/lib/roboto/Roboto-Thin.ttf +0 -0
  135. package/assets/lib/roboto/Roboto-Thin.woff +0 -0
  136. package/assets/lib/roboto/Roboto-Thin.woff2 +0 -0
  137. package/assets/lib/roboto/Roboto-ThinItalic.eot +0 -0
  138. package/assets/lib/roboto/Roboto-ThinItalic.svg +10726 -0
  139. package/assets/lib/roboto/Roboto-ThinItalic.ttf +0 -0
  140. package/assets/lib/roboto/Roboto-ThinItalic.woff +0 -0
  141. package/assets/lib/roboto/Roboto-ThinItalic.woff2 +0 -0
  142. package/fesm2022/valtimo-layout.mjs +5019 -0
  143. package/fesm2022/valtimo-layout.mjs.map +1 -0
  144. package/index.d.ts +6 -0
  145. package/lib/components/index.d.ts +16 -0
  146. package/lib/components/index.d.ts.map +1 -0
  147. package/lib/components/layout/index.d.ts +2 -0
  148. package/lib/components/layout/index.d.ts.map +1 -0
  149. package/lib/components/layout/layout.component.d.ts +22 -0
  150. package/lib/components/layout/layout.component.d.ts.map +1 -0
  151. package/lib/components/layout-internal/index.d.ts +2 -0
  152. package/lib/components/layout-internal/index.d.ts.map +1 -0
  153. package/lib/components/layout-internal/layout-internal.component.d.ts +21 -0
  154. package/lib/components/layout-internal/layout-internal.component.d.ts.map +1 -0
  155. package/lib/components/layout-public/index.d.ts +2 -0
  156. package/lib/components/layout-public/index.d.ts.map +1 -0
  157. package/lib/components/layout-public/layout-public.component.d.ts +6 -0
  158. package/lib/components/layout-public/layout-public.component.d.ts.map +1 -0
  159. package/lib/components/translation-management/index.d.ts +2 -0
  160. package/lib/components/translation-management/index.d.ts.map +1 -0
  161. package/lib/components/translation-management/translation-management.component.d.ts +46 -0
  162. package/lib/components/translation-management/translation-management.component.d.ts.map +1 -0
  163. package/lib/components/widget-action-button/widget-action-button.component.d.ts +14 -0
  164. package/lib/components/widget-action-button/widget-action-button.component.d.ts.map +1 -0
  165. package/lib/components/widget-block/index.d.ts +2 -0
  166. package/lib/components/widget-block/index.d.ts.map +1 -0
  167. package/lib/components/widget-block/widget-block.component.d.ts +39 -0
  168. package/lib/components/widget-block/widget-block.component.d.ts.map +1 -0
  169. package/lib/components/widget-collection/index.d.ts +2 -0
  170. package/lib/components/widget-collection/index.d.ts.map +1 -0
  171. package/lib/components/widget-collection/widget-collection.component.d.ts +45 -0
  172. package/lib/components/widget-collection/widget-collection.component.d.ts.map +1 -0
  173. package/lib/components/widget-container/index.d.ts +2 -0
  174. package/lib/components/widget-container/index.d.ts.map +1 -0
  175. package/lib/components/widget-container/widget-container.component.d.ts +30 -0
  176. package/lib/components/widget-container/widget-container.component.d.ts.map +1 -0
  177. package/lib/components/widget-custom/index.d.ts +2 -0
  178. package/lib/components/widget-custom/index.d.ts.map +1 -0
  179. package/lib/components/widget-custom/widget-custom.component.d.ts +31 -0
  180. package/lib/components/widget-custom/widget-custom.component.d.ts.map +1 -0
  181. package/lib/components/widget-field/index.d.ts +2 -0
  182. package/lib/components/widget-field/index.d.ts.map +1 -0
  183. package/lib/components/widget-field/widget-field.component.d.ts +36 -0
  184. package/lib/components/widget-field/widget-field.component.d.ts.map +1 -0
  185. package/lib/components/widget-formio/index.d.ts +2 -0
  186. package/lib/components/widget-formio/index.d.ts.map +1 -0
  187. package/lib/components/widget-formio/widget-formio.component.d.ts +32 -0
  188. package/lib/components/widget-formio/widget-formio.component.d.ts.map +1 -0
  189. package/lib/components/widget-interactive-table/index.d.ts +2 -0
  190. package/lib/components/widget-interactive-table/index.d.ts.map +1 -0
  191. package/lib/components/widget-interactive-table/widget-interactive-table.component.d.ts +37 -0
  192. package/lib/components/widget-interactive-table/widget-interactive-table.component.d.ts.map +1 -0
  193. package/lib/components/widget-management/index.d.ts +5 -0
  194. package/lib/components/widget-management/index.d.ts.map +1 -0
  195. package/lib/components/widget-management/management/widget-management.component.d.ts +27 -0
  196. package/lib/components/widget-management/management/widget-management.component.d.ts.map +1 -0
  197. package/lib/components/widget-management/management-action-button/widget-management-action-button.component.d.ts +30 -0
  198. package/lib/components/widget-management/management-action-button/widget-management-action-button.component.d.ts.map +1 -0
  199. package/lib/components/widget-management/management-content/collection/widget-management-collection.component.d.ts +65 -0
  200. package/lib/components/widget-management/management-content/collection/widget-management-collection.component.d.ts.map +1 -0
  201. package/lib/components/widget-management/management-content/custom/widget-management-custom.component.d.ts +44 -0
  202. package/lib/components/widget-management/management-content/custom/widget-management-custom.component.d.ts.map +1 -0
  203. package/lib/components/widget-management/management-content/fields/column/widget-management-fields-column.component.d.ts +60 -0
  204. package/lib/components/widget-management/management-content/fields/column/widget-management-fields-column.component.d.ts.map +1 -0
  205. package/lib/components/widget-management/management-content/fields/widget-management-fields.component.d.ts +39 -0
  206. package/lib/components/widget-management/management-content/fields/widget-management-fields.component.d.ts.map +1 -0
  207. package/lib/components/widget-management/management-content/formio/widget-management-widget-formio.component.d.ts +45 -0
  208. package/lib/components/widget-management/management-content/formio/widget-management-widget-formio.component.d.ts.map +1 -0
  209. package/lib/components/widget-management/management-content/index.d.ts +6 -0
  210. package/lib/components/widget-management/management-content/index.d.ts.map +1 -0
  211. package/lib/components/widget-management/management-content/interactive-table/widget-management-interactive-table.component.d.ts +27 -0
  212. package/lib/components/widget-management/management-content/interactive-table/widget-management-interactive-table.component.d.ts.map +1 -0
  213. package/lib/components/widget-management/management-content/map/widget-management-map.component.d.ts +33 -0
  214. package/lib/components/widget-management/management-content/map/widget-management-map.component.d.ts.map +1 -0
  215. package/lib/components/widget-management/management-content/table/widget-management-table.component.d.ts +42 -0
  216. package/lib/components/widget-management/management-content/table/widget-management-table.component.d.ts.map +1 -0
  217. package/lib/components/widget-management/management-divider-modal/widget-management-divider-modal.component.d.ts +34 -0
  218. package/lib/components/widget-management/management-divider-modal/widget-management-divider-modal.component.d.ts.map +1 -0
  219. package/lib/components/widget-management/management-editor/widget-management-editor.component.d.ts +53 -0
  220. package/lib/components/widget-management/management-editor/widget-management-editor.component.d.ts.map +1 -0
  221. package/lib/components/widget-management/management-process-selector/widget-management-process-selector.component.d.ts +29 -0
  222. package/lib/components/widget-management/management-process-selector/widget-management-process-selector.component.d.ts.map +1 -0
  223. package/lib/components/widget-management/management-wizard/steps/index.d.ts +8 -0
  224. package/lib/components/widget-management/management-wizard/steps/index.d.ts.map +1 -0
  225. package/lib/components/widget-management/management-wizard/steps/widget-wizard-content-step/widget-wizard-content-step.component.d.ts +16 -0
  226. package/lib/components/widget-management/management-wizard/steps/widget-wizard-content-step/widget-wizard-content-step.component.d.ts.map +1 -0
  227. package/lib/components/widget-management/management-wizard/steps/widget-wizard-density-step/widget-wizard-density-step.component.d.ts +15 -0
  228. package/lib/components/widget-management/management-wizard/steps/widget-wizard-density-step/widget-wizard-density-step.component.d.ts.map +1 -0
  229. package/lib/components/widget-management/management-wizard/steps/widget-wizard-display-conditions-step/widget-wizard-display-conditions-step.component.d.ts +33 -0
  230. package/lib/components/widget-management/management-wizard/steps/widget-wizard-display-conditions-step/widget-wizard-display-conditions-step.component.d.ts.map +1 -0
  231. package/lib/components/widget-management/management-wizard/steps/widget-wizard-style-step/widget-wizard-style-step.component.d.ts +15 -0
  232. package/lib/components/widget-management/management-wizard/steps/widget-wizard-style-step/widget-wizard-style-step.component.d.ts.map +1 -0
  233. package/lib/components/widget-management/management-wizard/steps/widget-wizard-type-step/widget-wizard-type-step.component.d.ts +15 -0
  234. package/lib/components/widget-management/management-wizard/steps/widget-wizard-type-step/widget-wizard-type-step.component.d.ts.map +1 -0
  235. package/lib/components/widget-management/management-wizard/steps/widget-wizard-width-step/widget-wizard-width-step.component.d.ts +16 -0
  236. package/lib/components/widget-management/management-wizard/steps/widget-wizard-width-step/widget-wizard-width-step.component.d.ts.map +1 -0
  237. package/lib/components/widget-management/management-wizard/widget-management-wizard.component.d.ts +46 -0
  238. package/lib/components/widget-management/management-wizard/widget-management-wizard.component.d.ts.map +1 -0
  239. package/lib/components/widget-map/index.d.ts +2 -0
  240. package/lib/components/widget-map/index.d.ts.map +1 -0
  241. package/lib/components/widget-map/widget-map.component.d.ts +27 -0
  242. package/lib/components/widget-map/widget-map.component.d.ts.map +1 -0
  243. package/lib/components/widget-table/index.d.ts +2 -0
  244. package/lib/components/widget-table/index.d.ts.map +1 -0
  245. package/lib/components/widget-table/widget-table.component.d.ts +27 -0
  246. package/lib/components/widget-table/widget-table.component.d.ts.map +1 -0
  247. package/lib/constants/custom-widget-token.d.ts +5 -0
  248. package/lib/constants/custom-widget-token.d.ts.map +1 -0
  249. package/lib/constants/index.d.ts +4 -0
  250. package/lib/constants/index.d.ts.map +1 -0
  251. package/lib/constants/widget-management.constants.d.ts +5 -0
  252. package/lib/constants/widget-management.constants.d.ts.map +1 -0
  253. package/lib/constants/widget.constants.d.ts +6 -0
  254. package/lib/constants/widget.constants.d.ts.map +1 -0
  255. package/lib/interfaces/index.d.ts +3 -0
  256. package/lib/interfaces/index.d.ts.map +1 -0
  257. package/lib/interfaces/widget-details-component.interface.d.ts +9 -0
  258. package/lib/interfaces/widget-details-component.interface.d.ts.map +1 -0
  259. package/lib/interfaces/widget-management-service.interface.d.ts +12 -0
  260. package/lib/interfaces/widget-management-service.interface.d.ts.map +1 -0
  261. package/lib/layout.module.d.ts +15 -0
  262. package/lib/layout.module.d.ts.map +1 -0
  263. package/lib/models/index.d.ts +6 -0
  264. package/lib/models/index.d.ts.map +1 -0
  265. package/lib/models/widget-content.model.d.ts +62 -0
  266. package/lib/models/widget-content.model.d.ts.map +1 -0
  267. package/lib/models/widget-display.model.d.ts +62 -0
  268. package/lib/models/widget-display.model.d.ts.map +1 -0
  269. package/lib/models/widget-editor.model.d.ts +10 -0
  270. package/lib/models/widget-editor.model.d.ts.map +1 -0
  271. package/lib/models/widget-wizard.model.d.ts +47 -0
  272. package/lib/models/widget-wizard.model.d.ts.map +1 -0
  273. package/lib/models/widget.model.d.ts +142 -0
  274. package/lib/models/widget.model.d.ts.map +1 -0
  275. package/lib/services/index.d.ts +4 -0
  276. package/lib/services/index.d.ts.map +1 -0
  277. package/lib/services/layout.service.d.ts +10 -0
  278. package/lib/services/layout.service.d.ts.map +1 -0
  279. package/lib/services/widget-fields.service.d.ts +17 -0
  280. package/lib/services/widget-fields.service.d.ts.map +1 -0
  281. package/lib/services/widget-layout.service.d.ts +35 -0
  282. package/lib/services/widget-layout.service.d.ts.map +1 -0
  283. package/lib/services/widget-wizard.service.d.ts +47 -0
  284. package/lib/services/widget-wizard.service.d.ts.map +1 -0
  285. package/lib/translation-management-routing.module.d.ts +8 -0
  286. package/lib/translation-management-routing.module.d.ts.map +1 -0
  287. package/lib/translation-management.module.d.ts +13 -0
  288. package/lib/translation-management.module.d.ts.map +1 -0
  289. package/package.json +35 -0
  290. package/public_api.d.ts +10 -0
  291. package/public_api.d.ts.map +1 -0
  292. package/valtimo-layout.d.ts.map +1 -0
@@ -0,0 +1,3062 @@
1
+ /*
2
+ * Copyright 2015-2025 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ var App = (function () {
18
+ 'use strict';
19
+
20
+ //Basic Config
21
+ var config = {
22
+ assetsPath: 'assets',
23
+ imgPath: 'img',
24
+ jsPath: 'js',
25
+ libsPath: 'lib',
26
+ leftSidebarSlideSpeed: 200,
27
+ leftSidebarToggleSpeed: 300,
28
+ enableLeftSidebar: false,
29
+ enableSwipe: false,
30
+ swipeTreshold: 100,
31
+ scrollTop: false,
32
+ openRightSidebarClass: 'open-right-sidebar',
33
+ openLeftSidebarClass: 'open-left-sidebar',
34
+ disabledLeftSidebarClass: 'be-left-sidebar-disabled',
35
+ offCanvasLeftSidebarClass: 'be-offcanvas-menu',
36
+ offCanvasLeftSidebarMobileClass: 'be-offcanvas-menu-sm',
37
+ topHeaderMenuClass: 'be-top-menu',
38
+ closeRsOnClickOutside: true,
39
+ removeLeftSidebarClass: 'be-nosidebar-left',
40
+ collapsibleSidebarClass: 'be-collapsible-sidebar',
41
+ collapsibleSidebarCollapsedClass: 'be-collapsible-sidebar-collapsed',
42
+ openLeftSidebarOnClick: true,
43
+ transitionClass: 'be-animate',
44
+ openSidebarDelay: 400,
45
+ };
46
+
47
+ var colors = {};
48
+ var scrollers = {};
49
+ var body,
50
+ wrapper,
51
+ topNavbar,
52
+ leftSidebar,
53
+ rightSidebar,
54
+ asideDiv,
55
+ notificationsDiv,
56
+ toggleLeftSidebarButton,
57
+ openSidebar;
58
+
59
+ //Perfect scrollbar variables
60
+ var ps_be_scroller_notifications,
61
+ ps_left_sidebar,
62
+ ps_be_scroller_left_sidebar,
63
+ ps_sub_menu_scroller,
64
+ ps_chat_scroll,
65
+ ps_todo_scroll,
66
+ ps_settings_scroll,
67
+ ps_messages_scroll,
68
+ ps_aside_scroll;
69
+
70
+ //Get the template css colors into js vars
71
+ function getColor(c) {
72
+ var tmp = $('<div>', {class: c}).appendTo('body');
73
+ var color = tmp.css('background-color');
74
+ tmp.remove();
75
+
76
+ return color;
77
+ }
78
+
79
+ // Refresh scroller
80
+ function updateScroller(ps_object) {
81
+ if (typeof ps_object !== 'undefined') {
82
+ ps_object.update();
83
+ }
84
+ }
85
+
86
+ // Destroy scroller
87
+ function destroyScroller(ps_object) {
88
+ if (ps_object) {
89
+ ps_object.destroy();
90
+ }
91
+ }
92
+
93
+ // Initialize scroller
94
+ function initScroller(domObject) {
95
+ if (typeof domObject[0] !== 'undefined') {
96
+ return new PerfectScrollbar(domObject[0], {
97
+ wheelPropagation: false,
98
+ });
99
+ }
100
+ }
101
+
102
+ //Core private functions
103
+ function leftSidebarInit() {
104
+ var firstAnchor = $('.sidebar-elements > li > a', leftSidebar);
105
+ var anchor = $('.sidebar-elements li a', leftSidebar);
106
+ var lsc = $('.left-sidebar-scroll', leftSidebar);
107
+ var lsToggle = $('.left-sidebar-toggle', leftSidebar);
108
+ var openLeftSidebarOnClick = config.openLeftSidebarOnClick ? true : false;
109
+
110
+ // Collapsible sidebar toggle functionality
111
+ function toggleSideBar() {
112
+ var button = $('.be-toggle-left-sidebar');
113
+
114
+ button.on('click', function () {
115
+ if (wrapper.hasClass(config.collapsibleSidebarCollapsedClass)) {
116
+ wrapper.removeClass(config.collapsibleSidebarCollapsedClass);
117
+ $('li.open', leftSidebar).removeClass('open');
118
+ $('li.active', leftSidebar).parents('.parent').addClass('active open');
119
+ leftSidebar.trigger('shown.left-sidebar.collapse');
120
+ if (
121
+ typeof ps_be_scroller_left_sidebar === 'undefined' ||
122
+ !ps_be_scroller_left_sidebar ||
123
+ !ps_be_scroller_left_sidebar.nodeName
124
+ ) {
125
+ ps_be_scroller_left_sidebar = initScroller($('.be-scroller', leftSidebar));
126
+ }
127
+ destroyScroller(ps_be_scroller_left_sidebar);
128
+ // Destroy Perfect Scrollbar collapsed instance
129
+ if (typeof ps_sub_menu_scroller !== 'undefined') {
130
+ destroyScroller(ps_sub_menu_scroller);
131
+ }
132
+ } else {
133
+ wrapper.addClass(config.collapsibleSidebarCollapsedClass);
134
+ $('li.active', leftSidebar).parents('.parent').removeClass('open');
135
+ $('li.open', leftSidebar).removeClass('open');
136
+ leftSidebar.trigger('hidden.left-sidebar.collapse');
137
+ }
138
+ });
139
+ }
140
+
141
+ // Tooltip sidebar funcionality
142
+ function tooltipSidebar() {
143
+ var menu = $('.sidebar-elements > li > a', leftSidebar);
144
+
145
+ for (var i = 0; i <= menu.length; i++) {
146
+ var _self = menu[i];
147
+ var title = $('> span', _self).text();
148
+
149
+ $(_self).attr({
150
+ 'data-toggle': 'tooltip',
151
+ 'data-placement': 'right',
152
+ title: title,
153
+ });
154
+
155
+ $(_self).tooltip({
156
+ trigger: 'manual',
157
+ });
158
+ }
159
+
160
+ menu.on('mouseenter', function () {
161
+ if (!$.isSm() && wrapper.hasClass(config.collapsibleSidebarCollapsedClass)) {
162
+ $(this).tooltip('show');
163
+ }
164
+ });
165
+
166
+ menu.on('mouseleave', function () {
167
+ $(this).tooltip('hide');
168
+ });
169
+ }
170
+
171
+ // Collapsed sidebar submenu title
172
+ function syncSubMenu(item) {
173
+ var elements;
174
+
175
+ if (typeof item !== 'undefined') {
176
+ elements = item;
177
+ } else {
178
+ elements = $('.sidebar-elements > li', leftSidebar);
179
+ }
180
+
181
+ $.each(elements, function () {
182
+ var title = $(this).find('> a span').html();
183
+ var ul = $(this).find('> ul');
184
+ var subEls = $('> li', ul);
185
+ title = $('<li class="title">' + title + '</li>');
186
+ var subContainer = $(
187
+ '<li class="nav-items"><div class="be-scroller"><div class="content"><ul></ul></div></div></li>'
188
+ );
189
+
190
+ if (!ul.find('> li.title').length) {
191
+ ul.prepend(title);
192
+ subEls.appendTo(subContainer.find('.content ul'));
193
+ subContainer.appendTo(ul);
194
+ }
195
+ });
196
+ }
197
+
198
+ // Return boolean whether the sidebar is collapsed or not
199
+ function isCollapsed() {
200
+ return wrapper.hasClass(config.collapsibleSidebarCollapsedClass);
201
+ }
202
+
203
+ // Return true if the collapsible left sidebar is enabled
204
+ function isCollapsible() {
205
+ return wrapper.hasClass(config.collapsibleSidebarClass);
206
+ }
207
+
208
+ // Close submenu function
209
+ function closeSubMenu(subMenu, event) {
210
+ var target = $(event.currentTarget);
211
+ var li = $(subMenu).parent();
212
+ var openChildren = $('li.open', li);
213
+
214
+ var clickOutside = !target.closest(leftSidebar).length;
215
+ var slideSpeed = config.leftSidebarSlideSpeed;
216
+ var isFirstLevel = target.parents().eq(1).hasClass('sidebar-elements');
217
+
218
+ // If left sidebar is collapsed, is not small device
219
+ // and the trigger element is first level
220
+ // or click outside the left sidebar
221
+ if (!$.isSm() && isCollapsed() && (isFirstLevel || clickOutside)) {
222
+ li.removeClass('open');
223
+ subMenu.removeClass('visible');
224
+ openChildren.removeClass('open').removeAttr('style');
225
+ } else {
226
+ // If not execute classic slide interaction
227
+
228
+ subMenu.slideUp({
229
+ duration: slideSpeed,
230
+ complete: function () {
231
+ li.removeClass('open');
232
+ $(this).removeAttr('style');
233
+
234
+ // Close opened child submenus
235
+ openChildren.removeClass('open').removeAttr('style');
236
+ if (wrapper.hasClass('be-fixed-sidebar') && !$.isSm()) {
237
+ updateScroller(ps_left_sidebar);
238
+ }
239
+ },
240
+ });
241
+ }
242
+ }
243
+
244
+ // Open submenu function
245
+ function openSubMenu(anchor, event) {
246
+ var _el = $(anchor);
247
+ var li = $(_el).parent();
248
+ var subMenu = $(_el).next();
249
+
250
+ var slideSpeed = config.leftSidebarSlideSpeed;
251
+ var isFirstLevel = $(event.currentTarget).parents().eq(1).hasClass('sidebar-elements');
252
+
253
+ // Get the open sub menus
254
+ var openSubMenus = li.siblings('.open');
255
+
256
+ // If there are open sub menus close them
257
+ if (openSubMenus) {
258
+ closeSubMenu($('> ul', openSubMenus), event);
259
+ }
260
+
261
+ // If left sidebar is collapsed, is not small device
262
+ // and the trigger element is first level
263
+ if (!$.isSm() && isCollapsed() && isFirstLevel) {
264
+ li.addClass('open');
265
+ subMenu.addClass('visible');
266
+
267
+ //Renew Perfect Scroller instance
268
+ if (typeof ps_sub_menu_scroller !== 'undefined') {
269
+ destroyScroller(ps_sub_menu_scroller);
270
+ }
271
+ if (
272
+ typeof ps_sub_menu_scroller === 'undefined' ||
273
+ !ps_sub_menu_scroller ||
274
+ !ps_sub_menu_scroller.nodeName
275
+ ) {
276
+ ps_sub_menu_scroller = initScroller(li.find('.be-scroller'));
277
+ }
278
+
279
+ $(window).resize(function () {
280
+ waitForFinalEvent(
281
+ function () {
282
+ if (!$.isXs()) {
283
+ if (typeof ps_sub_menu_scroller !== 'undefined') {
284
+ updateScroller(ps_sub_menu_scroller);
285
+ }
286
+ }
287
+ },
288
+ 500,
289
+ 'am_check_phone_classes'
290
+ );
291
+ });
292
+ } else {
293
+ // If not execute classic slide interaction
294
+
295
+ subMenu.slideDown({
296
+ duration: slideSpeed,
297
+ complete: function () {
298
+ li.addClass('open');
299
+ $(this).removeAttr('style');
300
+ if (wrapper.hasClass('be-fixed-sidebar') && !$.isSm()) {
301
+ updateScroller(ps_left_sidebar);
302
+ }
303
+ },
304
+ });
305
+ }
306
+ }
307
+
308
+ // Execute if collapsible sidebar is enabled
309
+ if (isCollapsible()) {
310
+ /*Create sub menu elements*/
311
+ syncSubMenu();
312
+ toggleSideBar();
313
+ tooltipSidebar();
314
+
315
+ if (!openLeftSidebarOnClick) {
316
+ /*Open sub-menu on hover*/
317
+ firstAnchor.on('mouseover', function (event) {
318
+ if (isCollapsed()) {
319
+ openSubMenu(this, event);
320
+ }
321
+ });
322
+
323
+ /*Open sub-menu on click (fix for touch devices)*/
324
+ firstAnchor.on('touchstart', function (event) {
325
+ var anchor = $(this);
326
+ var li = anchor.parent();
327
+ var subMenu = anchor.next();
328
+
329
+ if (isCollapsed() && !$.isSm()) {
330
+ if (li.hasClass('open')) {
331
+ closeSubMenu(subMenu, event);
332
+ } else {
333
+ openSubMenu(this, event);
334
+ }
335
+
336
+ if ($(this).next().is('ul')) {
337
+ event.preventDefault();
338
+ }
339
+ }
340
+ });
341
+
342
+ /*Sub-menu delay on mouse leave*/
343
+ firstAnchor.on('mouseleave', function (event) {
344
+ var _self = $(this);
345
+ var _li = _self.parent();
346
+ var subMenu = _li.find('> ul');
347
+
348
+ if (!$.isSm() && isCollapsed()) {
349
+ //If mouse is over sub menu attach an additional mouseleave event to submenu
350
+ if (subMenu.length > 0) {
351
+ setTimeout(function () {
352
+ if (subMenu.is(':hover')) {
353
+ subMenu.on('mouseleave', function () {
354
+ setTimeout(function () {
355
+ if (!_self.is(':hover')) {
356
+ closeSubMenu(subMenu, event);
357
+ subMenu.off('mouseleave');
358
+ }
359
+ }, 300);
360
+ });
361
+ } else {
362
+ closeSubMenu(subMenu, event);
363
+ }
364
+ }, 300);
365
+ } else {
366
+ _li.removeClass('open');
367
+ }
368
+ }
369
+ });
370
+ }
371
+
372
+ /*Close sidebar on click outside*/
373
+ $(document).on('mousedown touchstart', function (event) {
374
+ if (!$(event.target).closest(leftSidebar).length && !$.isSm()) {
375
+ closeSubMenu($('ul.visible', leftSidebar), event);
376
+ }
377
+ });
378
+ }
379
+
380
+ /*Open sub-menu functionality*/
381
+ anchor.on('click', function (event) {
382
+ var $el = $(this),
383
+ $open;
384
+ var $li = $el.parent();
385
+ var $subMenu = $el.next();
386
+ var isFirstLevel = $el.parents().eq(1).hasClass('sidebar-elements');
387
+
388
+ // Get the open menus
389
+ $open = $li.siblings('.open');
390
+
391
+ if ($li.hasClass('open')) {
392
+ closeSubMenu($subMenu, event);
393
+ } else {
394
+ openSubMenu(this, event);
395
+ }
396
+
397
+ //If current element has children stop link action
398
+ if ($el.next().is('ul')) {
399
+ event.preventDefault();
400
+ }
401
+ });
402
+
403
+ /*Calculate sidebar tree active & open classes*/
404
+ if (wrapper.hasClass(config.collapsibleSidebarCollapsedClass)) {
405
+ $('li.active', leftSidebar).parents('.parent').addClass('active');
406
+ } else {
407
+ $('li.active', leftSidebar).parents('.parent').addClass('active open');
408
+ }
409
+
410
+ /* Add classes if top menu is present */
411
+ if (topNavbar.find('.container-fluid > .navbar-collapse').length && leftSidebar.length) {
412
+ wrapper
413
+ .addClass(config.offCanvasLeftSidebarClass)
414
+ .addClass(config.offCanvasLeftSidebarMobileClass);
415
+ wrapper.addClass(config.topHeaderMenuClass);
416
+ toggleLeftSidebarButton = $(
417
+ '<a class="nav-link be-toggle-left-sidebar" href="#"><span class="icon mdi mdi-menu"></span></a>'
418
+ );
419
+ $('.be-navbar-header', topNavbar).prepend(toggleLeftSidebarButton);
420
+ }
421
+
422
+ /*Scrollbar plugin init when left sidebar is fixed*/
423
+ if (wrapper.hasClass('be-fixed-sidebar')) {
424
+ if (!$.isSm() || wrapper.hasClass(config.offCanvasLeftSidebarClass)) {
425
+ if (
426
+ typeof ps_left_sidebar === 'undefined' ||
427
+ !ps_left_sidebar ||
428
+ !ps_left_sidebar.nodeName
429
+ ) {
430
+ ps_left_sidebar = initScroller(lsc);
431
+ }
432
+ }
433
+
434
+ /*Update scrollbar height on window resize*/
435
+ $(window).resize(function () {
436
+ waitForFinalEvent(
437
+ function () {
438
+ if ($.isSm() && !wrapper.hasClass(config.offCanvasLeftSidebarClass)) {
439
+ destroyScroller(ps_left_sidebar);
440
+ } else {
441
+ if (lsc.hasClass('ps')) {
442
+ updateScroller(ps_left_sidebar);
443
+ } else {
444
+ if (
445
+ typeof ps_left_sidebar === 'undefined' ||
446
+ !ps_left_sidebar ||
447
+ !ps_left_sidebar.nodeName
448
+ ) {
449
+ ps_left_sidebar = initScroller(lsc);
450
+ }
451
+ }
452
+ }
453
+ },
454
+ 500,
455
+ 'be_update_scroller'
456
+ );
457
+ });
458
+ }
459
+
460
+ /*Toggle sidebar on small devices*/
461
+ lsToggle.on('click', function (e) {
462
+ var spacer = $(this).next('.left-sidebar-spacer'),
463
+ toggleBtn = $(this);
464
+ var toggleSpacerMenu = $('.left-sidebar-spacer');
465
+ toggleBtn.toggleClass('open');
466
+ toggleSpacerMenu.toggleClass('open');
467
+
468
+ spacer.slideToggle(config.leftSidebarToggleSpeed, function () {
469
+ $(this).removeAttr('style').toggleClass('open');
470
+ });
471
+
472
+ e.preventDefault();
473
+ });
474
+
475
+ /*Off canvas menu*/
476
+ function leftSidebarOffCanvas() {
477
+ /*Open Sidebar with toggle button*/
478
+ toggleLeftSidebarButton.on('click', function (e) {
479
+ if (openSidebar && body.hasClass(config.openLeftSidebarClass)) {
480
+ body.removeClass(config.openLeftSidebarClass);
481
+ sidebarDelay();
482
+ } else {
483
+ body.addClass(config.openLeftSidebarClass + ' ' + config.transitionClass);
484
+ openSidebar = true;
485
+ }
486
+ });
487
+
488
+ /*Close sidebar on click outside*/
489
+ $(document).on('mousedown touchstart', function (e) {
490
+ if (
491
+ !$(e.target).closest(leftSidebar).length &&
492
+ !$(e.target).closest(toggleLeftSidebarButton).length &&
493
+ body.hasClass(config.openLeftSidebarClass)
494
+ ) {
495
+ body.removeClass(config.openLeftSidebarClass);
496
+ sidebarDelay();
497
+ }
498
+ });
499
+ }
500
+
501
+ // Left sidebar off-canvas
502
+ if (wrapper.hasClass(config.offCanvasLeftSidebarClass)) {
503
+ leftSidebarOffCanvas();
504
+ }
505
+ }
506
+
507
+ function rightSidebarInit() {
508
+ var rsChatScrollbar = $('.be-scroller-chat', rightSidebar);
509
+ var rsTodoScrollbar = $('.be-scroller-todo', rightSidebar);
510
+ var rsSettingsScrollbar = $('.be-scroller-settings', rightSidebar);
511
+
512
+ function oSidebar() {
513
+ body.addClass(config.openRightSidebarClass + ' ' + config.transitionClass);
514
+ openSidebar = true;
515
+ }
516
+
517
+ function cSidebar() {
518
+ body.removeClass(config.openRightSidebarClass).addClass(config.transitionClass);
519
+ sidebarDelay();
520
+ }
521
+
522
+ if (rightSidebar.length > 0) {
523
+ /*Open-Sidebar when click on topbar button*/
524
+ $('.be-toggle-right-sidebar').on('click', function (e) {
525
+ if (openSidebar && body.hasClass(config.openRightSidebarClass)) {
526
+ cSidebar();
527
+ } else if (!openSidebar) {
528
+ oSidebar();
529
+ }
530
+
531
+ e.preventDefault();
532
+ });
533
+
534
+ /*Close sidebar on click outside*/
535
+ $(document).on('mousedown touchstart', function (e) {
536
+ if (
537
+ !$(e.target).closest(rightSidebar).length &&
538
+ body.hasClass(config.openRightSidebarClass) &&
539
+ (config.closeRsOnClickOutside || $.isSm())
540
+ ) {
541
+ cSidebar();
542
+ }
543
+ });
544
+ }
545
+
546
+ if (
547
+ (typeof ps_chat_scroll === 'undefined' || !ps_chat_scroll || !ps_chat_scroll.nodeName) &&
548
+ rsChatScrollbar.length
549
+ ) {
550
+ ps_chat_scroll = initScroller(rsChatScrollbar);
551
+ }
552
+
553
+ if (
554
+ (typeof ps_todo_scroll === 'undefined' || !ps_todo_scroll || !ps_todo_scroll.nodeName) &&
555
+ rsTodoScrollbar.length
556
+ ) {
557
+ ps_todo_scroll = initScroller(rsTodoScrollbar);
558
+ }
559
+
560
+ if (
561
+ (typeof ps_settings_scroll === 'undefined' ||
562
+ !ps_settings_scroll ||
563
+ !ps_settings_scroll.nodeName) &&
564
+ rsSettingsScrollbar.length
565
+ ) {
566
+ ps_settings_scroll = initScroller(rsSettingsScrollbar);
567
+ }
568
+
569
+ /*Update scrollbar height on window resize*/
570
+ $(window).resize(function () {
571
+ waitForFinalEvent(
572
+ function () {
573
+ updateScroller(ps_chat_scroll);
574
+ updateScroller(ps_todo_scroll);
575
+ updateScroller(ps_settings_scroll);
576
+ },
577
+ 500,
578
+ 'be_rs_update_scroller'
579
+ );
580
+ });
581
+
582
+ /*Update scrollbar when click on a tab*/
583
+ $('a[data-toggle="tab"]', rightSidebar).on('shown.bs.tab', function (e) {
584
+ updateScroller(ps_chat_scroll);
585
+ updateScroller(ps_todo_scroll);
586
+ updateScroller(ps_settings_scroll);
587
+ });
588
+ }
589
+
590
+ function sidebarDelay() {
591
+ openSidebar = true;
592
+ setTimeout(function () {
593
+ openSidebar = false;
594
+ }, config.openSidebarDelay);
595
+ }
596
+
597
+ function sidebarSwipe() {
598
+ /*Open sidedar on swipe*/
599
+ wrapper.swipe({
600
+ allowPageScroll: 'vertical',
601
+ preventDefaultEvents: false,
602
+ fallbackToMouseEvents: false,
603
+ swipeLeft: function (e) {
604
+ if (!openSidebar && rightSidebar.length > 0) {
605
+ body.addClass(config.openRightSidebarClass + ' ' + config.transitionClass);
606
+ openSidebar = true;
607
+ }
608
+ },
609
+ threshold: config.swipeTreshold,
610
+ });
611
+ }
612
+
613
+ function chatWidget() {
614
+ var chat = $('.be-right-sidebar .tab-chat');
615
+ var contactsEl = $('.chat-contacts', chat);
616
+ var conversationEl = $('.chat-window', chat);
617
+ var messagesContainer = $('.chat-messages', conversationEl);
618
+ var messagesList = $('.content ul', messagesContainer);
619
+ var messagesScroll = $('.be-scroller-messages', messagesContainer);
620
+ var chatInputContainer = $('.chat-input', conversationEl);
621
+ var chatInput = $('input', chatInputContainer);
622
+ var chatInputSendButton = $('.send-msg', chatInputContainer);
623
+
624
+ function openChatWindow() {
625
+ if (!chat.hasClass('chat-opened')) {
626
+ chat.addClass('chat-opened');
627
+ if (
628
+ typeof ps_messages_scroll === 'undefined' ||
629
+ !ps_messages_scroll ||
630
+ !ps_messages_scroll.nodeName
631
+ ) {
632
+ ps_messages_scroll = initScroller(messagesScroll);
633
+ }
634
+ }
635
+ }
636
+
637
+ function closeChatWindow() {
638
+ if (chat.hasClass('chat-opened')) {
639
+ chat.removeClass('chat-opened');
640
+ }
641
+ }
642
+
643
+ /*Open Conversation Window when click on chat user*/
644
+ $('.user a', contactsEl).on('click', function (e) {
645
+ openChatWindow();
646
+ e.preventDefault();
647
+ });
648
+
649
+ /*Close chat conv window*/
650
+ $('.title .return', conversationEl).on('click', function (e) {
651
+ closeChatWindow();
652
+ scrollerInit();
653
+ });
654
+
655
+ /*Send message*/
656
+ function sendMsg(msg, self) {
657
+ var $message = $('<li class="' + (self ? 'self' : 'friend') + '"></li>');
658
+
659
+ if (msg != '') {
660
+ $('<div class="msg">' + msg + '</div>').appendTo($message);
661
+ $message.appendTo(messagesList);
662
+
663
+ messagesScroll.stop().animate(
664
+ {
665
+ scrollTop: messagesScroll.prop('scrollHeight'),
666
+ },
667
+ 900,
668
+ 'swing'
669
+ );
670
+
671
+ updateScroller(ps_messages_scroll);
672
+ }
673
+ }
674
+
675
+ /*Send msg when click on 'send' button or press 'Enter'*/
676
+ chatInput.keypress(function (event) {
677
+ var keycode = event.keyCode ? event.keyCode : event.which;
678
+ var msg = $(this).val();
679
+
680
+ if (keycode == '13') {
681
+ sendMsg(msg, true);
682
+ $(this).val('');
683
+ }
684
+ event.stopPropagation();
685
+ });
686
+
687
+ chatInputSendButton.on('click', function () {
688
+ var msg = chatInput.val();
689
+ sendMsg(msg, true);
690
+ chatInput.val('');
691
+ });
692
+ }
693
+
694
+ function scrollerInit() {
695
+ if (
696
+ typeof ps_be_scroller_notifications === 'undefined' ||
697
+ !ps_be_scroller_notifications ||
698
+ !ps_be_scroller_notifications.nodeName
699
+ ) {
700
+ ps_be_scroller_notifications = initScroller(notificationsDiv);
701
+ }
702
+ }
703
+
704
+ function scrollTopButton() {
705
+ var offset = 220;
706
+ var duration = 500;
707
+ var button = $('<div class="be-scroll-top"></div>');
708
+ button.appendTo('body');
709
+
710
+ $(window).on('scroll', function () {
711
+ if ($(this).scrollTop() > offset) {
712
+ button.fadeIn(duration);
713
+ } else {
714
+ button.fadeOut(duration);
715
+ }
716
+ });
717
+
718
+ button.on('touchstart mouseup', function (e) {
719
+ $('html, body').animate({scrollTop: 0}, duration);
720
+ e.preventDefault();
721
+ });
722
+ }
723
+
724
+ //Add and remove active class on left sidebar
725
+ function activeItemLeftSidebar(menu_item) {
726
+ var firstAnchor = menu_item;
727
+ var li = $(firstAnchor).parent();
728
+ var menu = $(li).parents('li');
729
+
730
+ if (!li.hasClass('active')) {
731
+ $('li.active', leftSidebar).removeClass('active');
732
+ $(menu).addClass('active');
733
+ $(li).addClass('active');
734
+ }
735
+ }
736
+
737
+ function initAsidePS() {
738
+ var pas = asideDiv;
739
+ ps_aside_scroll = initScroller(asideDiv);
740
+ $(window).resize(function () {
741
+ if ($.isSm() && !wrapper.hasClass(config.offCanvasLeftSidebarClass)) {
742
+ destroyScroller(ps_aside_scroll);
743
+ } else {
744
+ if (pas.hasClass('ps')) {
745
+ updateScroller(ps_aside_scroll);
746
+ } else {
747
+ if (
748
+ typeof ps_aside_scroll === 'undefined' ||
749
+ !ps_aside_scroll ||
750
+ !ps_aside_scroll.nodeName
751
+ ) {
752
+ ps_aside_scroll = initScroller(asideDiv);
753
+ }
754
+ }
755
+ }
756
+ });
757
+ }
758
+
759
+ //Wait for final event on window resize
760
+ var waitForFinalEvent = (function () {
761
+ var timers = {};
762
+ return function (callback, ms, uniqueId) {
763
+ if (!uniqueId) {
764
+ uniqueId = 'x1x2x3x4';
765
+ }
766
+ if (timers[uniqueId]) {
767
+ clearTimeout(timers[uniqueId]);
768
+ }
769
+ timers[uniqueId] = setTimeout(callback, ms);
770
+ };
771
+ })();
772
+
773
+ return {
774
+ //General data
775
+ conf: config,
776
+ color: colors,
777
+ scroller: scrollers,
778
+
779
+ //Init function
780
+ init: function (options) {
781
+ //Get the main elements when document is ready
782
+ body = $('body');
783
+ wrapper = $('.be-wrapper');
784
+ topNavbar = $('.be-top-header', wrapper);
785
+ leftSidebar = $('.be-left-sidebar', wrapper);
786
+ rightSidebar = $('.be-right-sidebar', wrapper);
787
+ asideDiv = $('.be-scroller-aside', wrapper);
788
+ toggleLeftSidebarButton = $('.be-toggle-left-sidebar', topNavbar);
789
+ notificationsDiv = $('.be-scroller-notifications', topNavbar);
790
+ openSidebar = false;
791
+
792
+ //Extends basic config with options
793
+ $.extend(config, options);
794
+
795
+ /*FastClick on mobile*/
796
+ FastClick.attach(document.body);
797
+
798
+ /*Left Sidebar*/
799
+ if (config.enableLeftSidebar) {
800
+ leftSidebarInit();
801
+ } else {
802
+ wrapper.addClass(config.disabledLeftSidebarClass);
803
+ }
804
+
805
+ /*Right Sidebar*/
806
+ if (rightSidebar.length) {
807
+ rightSidebarInit();
808
+ chatWidget();
809
+ }
810
+
811
+ /*Sidebars Swipe*/
812
+ if (config.enableSwipe) {
813
+ sidebarSwipe();
814
+ }
815
+
816
+ /*Scroll Top button*/
817
+ if (config.scrollTop) {
818
+ scrollTopButton();
819
+ }
820
+
821
+ /*Page Aside*/
822
+ if (asideDiv.length) {
823
+ initAsidePS();
824
+ }
825
+
826
+ /*Scroller plugin init*/
827
+ if (notificationsDiv.length) {
828
+ scrollerInit();
829
+ }
830
+
831
+ /*Get colors*/
832
+ colors.primary = getColor('clr-primary');
833
+ colors.success = getColor('clr-success');
834
+ colors.warning = getColor('clr-warning');
835
+ colors.danger = getColor('clr-danger');
836
+ colors.grey = getColor('clr-grey');
837
+
838
+ /*Get scrollers*/
839
+ scrollers.be_scroller_notifications = ps_be_scroller_notifications;
840
+ scrollers.left_sidebar_scroll = ps_left_sidebar;
841
+ scrollers.be_left_sidebar_scroll = ps_be_scroller_left_sidebar;
842
+ scrollers.sub_menu_scroll = ps_sub_menu_scroller;
843
+ scrollers.chat_scroll = ps_chat_scroll;
844
+ scrollers.todo_scroll = ps_todo_scroll;
845
+ scrollers.settings_scroll = ps_settings_scroll;
846
+ scrollers.messages_scroll = ps_messages_scroll;
847
+ scrollers.aside_scroll = ps_aside_scroll;
848
+ scrollers.updateScroller = updateScroller;
849
+ scrollers.destroyScroller = destroyScroller;
850
+ scrollers.initScroller = initScroller;
851
+
852
+ /*Bind plugins on hidden elements*/
853
+ /*Dropdown shown event*/
854
+ $('.be-icons-nav .dropdown').on('shown.bs.dropdown', function () {
855
+ updateScroller(ps_be_scroller_notifications);
856
+ });
857
+
858
+ /*Tooltips*/
859
+ $('[data-toggle="tooltip"]').tooltip();
860
+
861
+ /*Popover*/
862
+ $('[data-toggle="popover"]').popover();
863
+
864
+ /*Bootstrap modal scroll top fix*/
865
+ $('.modal').on('show.bs.modal', function () {
866
+ $('html').addClass('be-modal-open');
867
+ });
868
+
869
+ $('.modal').on('hidden.bs.modal', function () {
870
+ $('html').removeClass('be-modal-open');
871
+ });
872
+
873
+ /*Fixes the Sweetalert gap in the top header on boxed layout*/
874
+ if (typeof Swal == 'function' && wrapper.hasClass('be-boxed-layout')) {
875
+ var observer = new MutationObserver(function (mutationsList, observer) {
876
+ mutationsList.forEach(function (mutation) {
877
+ if (mutation.type == 'attributes' && mutation.attributeName == 'style') {
878
+ if (document.body.className.indexOf('swal2-shown') > 0) {
879
+ topNavbar.css({marginLeft: 'calc(-' + document.body.style.paddingRight + ' / 2)'});
880
+ } else {
881
+ topNavbar.css({marginLeft: '0'});
882
+ }
883
+ }
884
+ });
885
+ });
886
+
887
+ observer.observe(document.body, {attributes: true});
888
+ }
889
+ },
890
+
891
+ //Methods
892
+ activeItemLeftSidebar: activeItemLeftSidebar,
893
+ };
894
+ })();
895
+
896
+ function FastClick(o, e) {
897
+ 'use strict';
898
+ var t;
899
+ if (
900
+ ((e = e || {}),
901
+ (this.trackingClick = !1),
902
+ (this.trackingClickStart = 0),
903
+ (this.targetElement = null),
904
+ (this.touchStartX = 0),
905
+ (this.touchStartY = 0),
906
+ (this.lastTouchIdentifier = 0),
907
+ (this.touchBoundary = e.touchBoundary || 10),
908
+ (this.layer = o),
909
+ (this.tapDelay = e.tapDelay || 200),
910
+ !FastClick.notNeeded(o))
911
+ ) {
912
+ for (
913
+ var n = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'],
914
+ i = this,
915
+ r = 0,
916
+ s = n.length;
917
+ r < s;
918
+ r++
919
+ )
920
+ i[n[r]] = c(i[n[r]], i);
921
+ deviceIsAndroid &&
922
+ (o.addEventListener('mouseover', this.onMouse, !0),
923
+ o.addEventListener('mousedown', this.onMouse, !0),
924
+ o.addEventListener('mouseup', this.onMouse, !0)),
925
+ o.addEventListener('click', this.onClick, !0),
926
+ o.addEventListener('touchstart', this.onTouchStart, !1),
927
+ o.addEventListener('touchmove', this.onTouchMove, !1),
928
+ o.addEventListener('touchend', this.onTouchEnd, !1),
929
+ o.addEventListener('touchcancel', this.onTouchCancel, !1),
930
+ Event.prototype.stopImmediatePropagation ||
931
+ ((o.removeEventListener = function (e, t, n) {
932
+ var i = Node.prototype.removeEventListener;
933
+ 'click' === e ? i.call(o, e, t.hijacked || t, n) : i.call(o, e, t, n);
934
+ }),
935
+ (o.addEventListener = function (e, t, n) {
936
+ var i = Node.prototype.addEventListener;
937
+ 'click' === e
938
+ ? i.call(
939
+ o,
940
+ e,
941
+ t.hijacked ||
942
+ (t.hijacked = function (e) {
943
+ e.propagationStopped || t(e);
944
+ }),
945
+ n
946
+ )
947
+ : i.call(o, e, t, n);
948
+ })),
949
+ 'function' == typeof o.onclick &&
950
+ ((t = o.onclick),
951
+ o.addEventListener(
952
+ 'click',
953
+ function (e) {
954
+ t(e);
955
+ },
956
+ !1
957
+ ),
958
+ (o.onclick = null));
959
+ }
960
+ function c(e, t) {
961
+ return function () {
962
+ return e.apply(t, arguments);
963
+ };
964
+ }
965
+ }
966
+ var deviceIsAndroid = 0 < navigator.userAgent.indexOf('Android'),
967
+ deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent),
968
+ deviceIsIOS4 = deviceIsIOS && /OS 4_\d(_\d)?/.test(navigator.userAgent),
969
+ deviceIsIOSWithBadTarget = deviceIsIOS && /OS ([6-9]|\d{2})_\d/.test(navigator.userAgent),
970
+ deviceIsBlackBerry10 = 0 < navigator.userAgent.indexOf('BB10');
971
+ (FastClick.prototype.needsClick = function (e) {
972
+ 'use strict';
973
+ switch (e.nodeName.toLowerCase()) {
974
+ case 'button':
975
+ case 'select':
976
+ case 'textarea':
977
+ if (e.disabled) return !0;
978
+ break;
979
+ case 'input':
980
+ if ((deviceIsIOS && 'file' === e.type) || e.disabled) return !0;
981
+ break;
982
+ case 'label':
983
+ case 'video':
984
+ return !0;
985
+ }
986
+ return /\bneedsclick\b/.test(e.className);
987
+ }),
988
+ (FastClick.prototype.needsFocus = function (e) {
989
+ 'use strict';
990
+ switch (e.nodeName.toLowerCase()) {
991
+ case 'textarea':
992
+ return !0;
993
+ case 'select':
994
+ return !deviceIsAndroid;
995
+ case 'input':
996
+ switch (e.type) {
997
+ case 'button':
998
+ case 'checkbox':
999
+ case 'file':
1000
+ case 'image':
1001
+ case 'radio':
1002
+ case 'submit':
1003
+ return !1;
1004
+ }
1005
+ return !e.disabled && !e.readOnly;
1006
+ default:
1007
+ return /\bneedsfocus\b/.test(e.className);
1008
+ }
1009
+ }),
1010
+ (FastClick.prototype.sendClick = function (e, t) {
1011
+ 'use strict';
1012
+ var n, i, o, r;
1013
+ document.activeElement && document.activeElement !== e && document.activeElement.blur(),
1014
+ (r = t.changedTouches[0]),
1015
+ (o = document.createEvent('MouseEvents')).initMouseEvent(
1016
+ 'mousedown',
1017
+ !0,
1018
+ !0,
1019
+ window,
1020
+ 1,
1021
+ r.screenX,
1022
+ r.screenY,
1023
+ r.clientX,
1024
+ r.clientY,
1025
+ !1,
1026
+ !1,
1027
+ !1,
1028
+ !1,
1029
+ 0,
1030
+ null
1031
+ ),
1032
+ (o.forwardedTouchEvent = !0),
1033
+ e.dispatchEvent(o),
1034
+ (i = document.createEvent('MouseEvents')).initMouseEvent(
1035
+ 'mouseup',
1036
+ !0,
1037
+ !0,
1038
+ window,
1039
+ 1,
1040
+ r.screenX,
1041
+ r.screenY,
1042
+ r.clientX,
1043
+ r.clientY,
1044
+ !1,
1045
+ !1,
1046
+ !1,
1047
+ !1,
1048
+ 0,
1049
+ null
1050
+ ),
1051
+ (i.forwardedTouchEvent = !0),
1052
+ e.dispatchEvent(i),
1053
+ (n = document.createEvent('MouseEvents')).initMouseEvent(
1054
+ this.determineEventType(e),
1055
+ !0,
1056
+ !0,
1057
+ window,
1058
+ 1,
1059
+ r.screenX,
1060
+ r.screenY,
1061
+ r.clientX,
1062
+ r.clientY,
1063
+ !1,
1064
+ !1,
1065
+ !1,
1066
+ !1,
1067
+ 0,
1068
+ null
1069
+ ),
1070
+ (n.forwardedTouchEvent = !0),
1071
+ e.dispatchEvent(n);
1072
+ }),
1073
+ (FastClick.prototype.determineEventType = function (e) {
1074
+ 'use strict';
1075
+ return deviceIsAndroid && 'select' === e.tagName.toLowerCase() ? 'mousedown' : 'click';
1076
+ }),
1077
+ (FastClick.prototype.focus = function (e) {
1078
+ 'use strict';
1079
+ var t;
1080
+ deviceIsIOS && e.setSelectionRange && 0 !== e.type.indexOf('date') && 'time' !== e.type
1081
+ ? ((t = e.value.length), e.setSelectionRange(t, t))
1082
+ : e.focus();
1083
+ }),
1084
+ (FastClick.prototype.updateScrollParent = function (e) {
1085
+ 'use strict';
1086
+ var t, n;
1087
+ if (!(t = e.fastClickScrollParent) || !t.contains(e)) {
1088
+ n = e;
1089
+ do {
1090
+ if (n.scrollHeight > n.offsetHeight) {
1091
+ (t = n), (e.fastClickScrollParent = n);
1092
+ break;
1093
+ }
1094
+ n = n.parentElement;
1095
+ } while (n);
1096
+ }
1097
+ t && (t.fastClickLastScrollTop = t.scrollTop);
1098
+ }),
1099
+ (FastClick.prototype.getTargetElementFromEventTarget = function (e) {
1100
+ 'use strict';
1101
+ return e.nodeType === Node.TEXT_NODE ? e.parentNode : e;
1102
+ }),
1103
+ (FastClick.prototype.onTouchStart = function (e) {
1104
+ 'use strict';
1105
+ var t, n, i;
1106
+ if (1 < e.targetTouches.length) return !0;
1107
+ if (
1108
+ ((t = this.getTargetElementFromEventTarget(e.target)), (n = e.targetTouches[0]), deviceIsIOS)
1109
+ ) {
1110
+ if ((i = window.getSelection()).rangeCount && !i.isCollapsed) return !0;
1111
+ if (!deviceIsIOS4) {
1112
+ if (n.identifier && n.identifier === this.lastTouchIdentifier)
1113
+ return e.preventDefault(), !1;
1114
+ (this.lastTouchIdentifier = n.identifier), this.updateScrollParent(t);
1115
+ }
1116
+ }
1117
+ return (
1118
+ (this.trackingClick = !0),
1119
+ (this.trackingClickStart = e.timeStamp),
1120
+ (this.targetElement = t),
1121
+ (this.touchStartX = n.pageX),
1122
+ (this.touchStartY = n.pageY),
1123
+ e.timeStamp - this.lastClickTime < this.tapDelay && e.preventDefault(),
1124
+ !0
1125
+ );
1126
+ }),
1127
+ (FastClick.prototype.touchHasMoved = function (e) {
1128
+ 'use strict';
1129
+ var t = e.changedTouches[0],
1130
+ n = this.touchBoundary;
1131
+ return Math.abs(t.pageX - this.touchStartX) > n || Math.abs(t.pageY - this.touchStartY) > n;
1132
+ }),
1133
+ (FastClick.prototype.onTouchMove = function (e) {
1134
+ 'use strict';
1135
+ return (
1136
+ this.trackingClick &&
1137
+ ((this.targetElement === this.getTargetElementFromEventTarget(e.target) &&
1138
+ !this.touchHasMoved(e)) ||
1139
+ ((this.trackingClick = !1), (this.targetElement = null))),
1140
+ !0
1141
+ );
1142
+ }),
1143
+ (FastClick.prototype.findControl = function (e) {
1144
+ 'use strict';
1145
+ return void 0 !== e.control
1146
+ ? e.control
1147
+ : e.htmlFor
1148
+ ? document.getElementById(e.htmlFor)
1149
+ : e.querySelector(
1150
+ 'button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea'
1151
+ );
1152
+ }),
1153
+ (FastClick.prototype.onTouchEnd = function (e) {
1154
+ 'use strict';
1155
+ var t,
1156
+ n,
1157
+ i,
1158
+ o,
1159
+ r,
1160
+ s = this.targetElement;
1161
+ if (!this.trackingClick) return !0;
1162
+ if (e.timeStamp - this.lastClickTime < this.tapDelay) return (this.cancelNextClick = !0);
1163
+ if (
1164
+ ((this.cancelNextClick = !1),
1165
+ (this.lastClickTime = e.timeStamp),
1166
+ (n = this.trackingClickStart),
1167
+ (this.trackingClick = !1),
1168
+ (this.trackingClickStart = 0),
1169
+ deviceIsIOSWithBadTarget &&
1170
+ ((r = e.changedTouches[0]),
1171
+ ((s =
1172
+ document.elementFromPoint(r.pageX - window.pageXOffset, r.pageY - window.pageYOffset) ||
1173
+ s).fastClickScrollParent = this.targetElement.fastClickScrollParent)),
1174
+ 'label' === (i = s.tagName.toLowerCase()))
1175
+ ) {
1176
+ if ((t = this.findControl(s))) {
1177
+ if ((this.focus(s), deviceIsAndroid)) return !1;
1178
+ s = t;
1179
+ }
1180
+ } else if (this.needsFocus(s))
1181
+ return (
1182
+ 100 < e.timeStamp - n || (deviceIsIOS && window.top !== window && 'input' === i)
1183
+ ? (this.targetElement = null)
1184
+ : (this.focus(s),
1185
+ this.sendClick(s, e),
1186
+ (deviceIsIOS && 'select' === i) || ((this.targetElement = null), e.preventDefault())),
1187
+ !1
1188
+ );
1189
+ return (
1190
+ !(
1191
+ !deviceIsIOS ||
1192
+ deviceIsIOS4 ||
1193
+ !(o = s.fastClickScrollParent) ||
1194
+ o.fastClickLastScrollTop === o.scrollTop
1195
+ ) || (this.needsClick(s) || (e.preventDefault(), this.sendClick(s, e)), !1)
1196
+ );
1197
+ }),
1198
+ (FastClick.prototype.onTouchCancel = function () {
1199
+ 'use strict';
1200
+ (this.trackingClick = !1), (this.targetElement = null);
1201
+ }),
1202
+ (FastClick.prototype.onMouse = function (e) {
1203
+ 'use strict';
1204
+ return (
1205
+ !this.targetElement ||
1206
+ !!e.forwardedTouchEvent ||
1207
+ !e.cancelable ||
1208
+ !(!this.needsClick(this.targetElement) || this.cancelNextClick) ||
1209
+ (e.stopImmediatePropagation ? e.stopImmediatePropagation() : (e.propagationStopped = !0),
1210
+ e.stopPropagation(),
1211
+ e.preventDefault(),
1212
+ !1)
1213
+ );
1214
+ }),
1215
+ (FastClick.prototype.onClick = function (e) {
1216
+ 'use strict';
1217
+ var t;
1218
+ return this.trackingClick
1219
+ ? ((this.targetElement = null), !(this.trackingClick = !1))
1220
+ : ('submit' === e.target.type && 0 === e.detail) ||
1221
+ ((t = this.onMouse(e)) || (this.targetElement = null), t);
1222
+ }),
1223
+ (FastClick.prototype.destroy = function () {
1224
+ 'use strict';
1225
+ var e = this.layer;
1226
+ deviceIsAndroid &&
1227
+ (e.removeEventListener('mouseover', this.onMouse, !0),
1228
+ e.removeEventListener('mousedown', this.onMouse, !0),
1229
+ e.removeEventListener('mouseup', this.onMouse, !0)),
1230
+ e.removeEventListener('click', this.onClick, !0),
1231
+ e.removeEventListener('touchstart', this.onTouchStart, !1),
1232
+ e.removeEventListener('touchmove', this.onTouchMove, !1),
1233
+ e.removeEventListener('touchend', this.onTouchEnd, !1),
1234
+ e.removeEventListener('touchcancel', this.onTouchCancel, !1);
1235
+ }),
1236
+ (FastClick.notNeeded = function (e) {
1237
+ 'use strict';
1238
+ var t, n, i;
1239
+ if (void 0 === window.ontouchstart) return !0;
1240
+ if ((n = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1])) {
1241
+ if (!deviceIsAndroid) return !0;
1242
+ if ((t = document.querySelector('meta[name=viewport]'))) {
1243
+ if (-1 !== t.content.indexOf('user-scalable=no')) return !0;
1244
+ if (31 < n && document.documentElement.scrollWidth <= window.outerWidth) return !0;
1245
+ }
1246
+ }
1247
+ if (
1248
+ deviceIsBlackBerry10 &&
1249
+ 10 <= (i = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/))[1] &&
1250
+ 3 <= i[2] &&
1251
+ (t = document.querySelector('meta[name=viewport]'))
1252
+ ) {
1253
+ if (-1 !== t.content.indexOf('user-scalable=no')) return !0;
1254
+ if (document.documentElement.scrollWidth <= window.outerWidth) return !0;
1255
+ }
1256
+ return 'none' === e.style.msTouchAction;
1257
+ }),
1258
+ (FastClick.attach = function (e, t) {
1259
+ 'use strict';
1260
+ return new FastClick(e, t);
1261
+ }),
1262
+ 'function' == typeof define && 'object' == typeof define.amd && define.amd
1263
+ ? define(function () {
1264
+ 'use strict';
1265
+ return FastClick;
1266
+ })
1267
+ : 'undefined' != typeof module && module.exports
1268
+ ? ((module.exports = FastClick.attach), (module.exports.FastClick = FastClick))
1269
+ : (window.FastClick = FastClick);
1270
+ /*!
1271
+ * @fileOverview TouchSwipe - jQuery Plugin
1272
+ * @version 1.6.18
1273
+ *
1274
+ * @author Matt Bryson http://www.github.com/mattbryson
1275
+ * @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
1276
+ * @see http://labs.rampinteractive.co.uk/touchSwipe/
1277
+ * @see http://plugins.jquery.com/project/touchSwipe
1278
+ * @license
1279
+ * Copyright (c) 2010-2015 Matt Bryson
1280
+ * Dual licensed under the MIT or GPL Version 2 licenses.
1281
+ *
1282
+ */
1283
+ !(function (factory) {
1284
+ 'function' == typeof define && define.amd && define.amd.jQuery
1285
+ ? define(['jquery'], factory)
1286
+ : factory('undefined' != typeof module && module.exports ? require('jquery') : jQuery);
1287
+ })(function ($) {
1288
+ 'use strict';
1289
+ function init(options) {
1290
+ return (
1291
+ !options ||
1292
+ void 0 !== options.allowPageScroll ||
1293
+ (void 0 === options.swipe && void 0 === options.swipeStatus) ||
1294
+ (options.allowPageScroll = NONE),
1295
+ void 0 !== options.click && void 0 === options.tap && (options.tap = options.click),
1296
+ options || (options = {}),
1297
+ (options = $.extend({}, $.fn.swipe.defaults, options)),
1298
+ this.each(function () {
1299
+ var $this = $(this),
1300
+ plugin = $this.data(PLUGIN_NS);
1301
+ plugin || ((plugin = new TouchSwipe(this, options)), $this.data(PLUGIN_NS, plugin));
1302
+ })
1303
+ );
1304
+ }
1305
+ function TouchSwipe(element, options) {
1306
+ function touchStart(jqEvent) {
1307
+ if (
1308
+ !(
1309
+ getTouchInProgress() ||
1310
+ $(jqEvent.target).closest(options.excludedElements, $element).length > 0
1311
+ )
1312
+ ) {
1313
+ var event = jqEvent.originalEvent ? jqEvent.originalEvent : jqEvent;
1314
+ if (
1315
+ !event.pointerType ||
1316
+ 'mouse' != event.pointerType ||
1317
+ 0 != options.fallbackToMouseEvents
1318
+ ) {
1319
+ var ret,
1320
+ touches = event.touches,
1321
+ evt = touches ? touches[0] : event;
1322
+ return (
1323
+ (phase = PHASE_START),
1324
+ touches
1325
+ ? (fingerCount = touches.length)
1326
+ : options.preventDefaultEvents !== !1 && jqEvent.preventDefault(),
1327
+ (distance = 0),
1328
+ (direction = null),
1329
+ (currentDirection = null),
1330
+ (pinchDirection = null),
1331
+ (duration = 0),
1332
+ (startTouchesDistance = 0),
1333
+ (endTouchesDistance = 0),
1334
+ (pinchZoom = 1),
1335
+ (pinchDistance = 0),
1336
+ (maximumsMap = createMaximumsData()),
1337
+ cancelMultiFingerRelease(),
1338
+ createFingerData(0, evt),
1339
+ !touches ||
1340
+ fingerCount === options.fingers ||
1341
+ options.fingers === ALL_FINGERS ||
1342
+ hasPinches()
1343
+ ? ((startTime = getTimeStamp()),
1344
+ 2 == fingerCount &&
1345
+ (createFingerData(1, touches[1]),
1346
+ (startTouchesDistance = endTouchesDistance =
1347
+ calculateTouchesDistance(fingerData[0].start, fingerData[1].start))),
1348
+ (options.swipeStatus || options.pinchStatus) &&
1349
+ (ret = triggerHandler(event, phase)))
1350
+ : (ret = !1),
1351
+ ret === !1
1352
+ ? ((phase = PHASE_CANCEL), triggerHandler(event, phase), ret)
1353
+ : (options.hold &&
1354
+ (holdTimeout = setTimeout(
1355
+ $.proxy(function () {
1356
+ $element.trigger('hold', [event.target]),
1357
+ options.hold && (ret = options.hold.call($element, event, event.target));
1358
+ }, this),
1359
+ options.longTapThreshold
1360
+ )),
1361
+ setTouchInProgress(!0),
1362
+ null)
1363
+ );
1364
+ }
1365
+ }
1366
+ }
1367
+ function touchMove(jqEvent) {
1368
+ var event = jqEvent.originalEvent ? jqEvent.originalEvent : jqEvent;
1369
+ if (phase !== PHASE_END && phase !== PHASE_CANCEL && !inMultiFingerRelease()) {
1370
+ var ret,
1371
+ touches = event.touches,
1372
+ evt = touches ? touches[0] : event,
1373
+ currentFinger = updateFingerData(evt);
1374
+ if (
1375
+ ((endTime = getTimeStamp()),
1376
+ touches && (fingerCount = touches.length),
1377
+ options.hold && clearTimeout(holdTimeout),
1378
+ (phase = PHASE_MOVE),
1379
+ 2 == fingerCount &&
1380
+ (0 == startTouchesDistance
1381
+ ? (createFingerData(1, touches[1]),
1382
+ (startTouchesDistance = endTouchesDistance =
1383
+ calculateTouchesDistance(fingerData[0].start, fingerData[1].start)))
1384
+ : (updateFingerData(touches[1]),
1385
+ (endTouchesDistance = calculateTouchesDistance(
1386
+ fingerData[0].end,
1387
+ fingerData[1].end
1388
+ )),
1389
+ (pinchDirection = calculatePinchDirection(fingerData[0].end, fingerData[1].end))),
1390
+ (pinchZoom = calculatePinchZoom(startTouchesDistance, endTouchesDistance)),
1391
+ (pinchDistance = Math.abs(startTouchesDistance - endTouchesDistance))),
1392
+ fingerCount === options.fingers ||
1393
+ options.fingers === ALL_FINGERS ||
1394
+ !touches ||
1395
+ hasPinches())
1396
+ ) {
1397
+ if (
1398
+ ((direction = calculateDirection(currentFinger.start, currentFinger.end)),
1399
+ (currentDirection = calculateDirection(currentFinger.last, currentFinger.end)),
1400
+ validateDefaultEvent(jqEvent, currentDirection),
1401
+ (distance = calculateDistance(currentFinger.start, currentFinger.end)),
1402
+ (duration = calculateDuration()),
1403
+ setMaxDistance(direction, distance),
1404
+ (ret = triggerHandler(event, phase)),
1405
+ !options.triggerOnTouchEnd || options.triggerOnTouchLeave)
1406
+ ) {
1407
+ var inBounds = !0;
1408
+ if (options.triggerOnTouchLeave) {
1409
+ var bounds = getbounds(this);
1410
+ inBounds = isInBounds(currentFinger.end, bounds);
1411
+ }
1412
+ !options.triggerOnTouchEnd && inBounds
1413
+ ? (phase = getNextPhase(PHASE_MOVE))
1414
+ : options.triggerOnTouchLeave && !inBounds && (phase = getNextPhase(PHASE_END)),
1415
+ (phase != PHASE_CANCEL && phase != PHASE_END) || triggerHandler(event, phase);
1416
+ }
1417
+ } else (phase = PHASE_CANCEL), triggerHandler(event, phase);
1418
+ ret === !1 && ((phase = PHASE_CANCEL), triggerHandler(event, phase));
1419
+ }
1420
+ }
1421
+ function touchEnd(jqEvent) {
1422
+ var event = jqEvent.originalEvent ? jqEvent.originalEvent : jqEvent,
1423
+ touches = event.touches;
1424
+ if (touches) {
1425
+ if (touches.length && !inMultiFingerRelease()) return startMultiFingerRelease(event), !0;
1426
+ if (touches.length && inMultiFingerRelease()) return !0;
1427
+ }
1428
+ return (
1429
+ inMultiFingerRelease() && (fingerCount = fingerCountAtRelease),
1430
+ (endTime = getTimeStamp()),
1431
+ (duration = calculateDuration()),
1432
+ didSwipeBackToCancel() || !validateSwipeDistance()
1433
+ ? ((phase = PHASE_CANCEL), triggerHandler(event, phase))
1434
+ : options.triggerOnTouchEnd || (options.triggerOnTouchEnd === !1 && phase === PHASE_MOVE)
1435
+ ? (options.preventDefaultEvents !== !1 &&
1436
+ jqEvent.cancelable !== !1 &&
1437
+ jqEvent.preventDefault(),
1438
+ (phase = PHASE_END),
1439
+ triggerHandler(event, phase))
1440
+ : !options.triggerOnTouchEnd && hasTap()
1441
+ ? ((phase = PHASE_END), triggerHandlerForGesture(event, phase, TAP))
1442
+ : phase === PHASE_MOVE && ((phase = PHASE_CANCEL), triggerHandler(event, phase)),
1443
+ setTouchInProgress(!1),
1444
+ null
1445
+ );
1446
+ }
1447
+ function touchCancel() {
1448
+ (fingerCount = 0),
1449
+ (endTime = 0),
1450
+ (startTime = 0),
1451
+ (startTouchesDistance = 0),
1452
+ (endTouchesDistance = 0),
1453
+ (pinchZoom = 1),
1454
+ cancelMultiFingerRelease(),
1455
+ setTouchInProgress(!1);
1456
+ }
1457
+ function touchLeave(jqEvent) {
1458
+ var event = jqEvent.originalEvent ? jqEvent.originalEvent : jqEvent;
1459
+ options.triggerOnTouchLeave &&
1460
+ ((phase = getNextPhase(PHASE_END)), triggerHandler(event, phase));
1461
+ }
1462
+ function removeListeners() {
1463
+ $element.off(START_EV, touchStart),
1464
+ $element.off(CANCEL_EV, touchCancel),
1465
+ $element.off(MOVE_EV, touchMove),
1466
+ $element.off(END_EV, touchEnd),
1467
+ LEAVE_EV && $element.off(LEAVE_EV, touchLeave),
1468
+ setTouchInProgress(!1);
1469
+ }
1470
+ function getNextPhase(currentPhase) {
1471
+ var nextPhase = currentPhase,
1472
+ validTime = validateSwipeTime(),
1473
+ validDistance = validateSwipeDistance(),
1474
+ didCancel = didSwipeBackToCancel();
1475
+ return (
1476
+ !validTime || didCancel
1477
+ ? (nextPhase = PHASE_CANCEL)
1478
+ : !validDistance ||
1479
+ currentPhase != PHASE_MOVE ||
1480
+ (options.triggerOnTouchEnd && !options.triggerOnTouchLeave)
1481
+ ? !validDistance &&
1482
+ currentPhase == PHASE_END &&
1483
+ options.triggerOnTouchLeave &&
1484
+ (nextPhase = PHASE_CANCEL)
1485
+ : (nextPhase = PHASE_END),
1486
+ nextPhase
1487
+ );
1488
+ }
1489
+ function triggerHandler(event, phase) {
1490
+ var ret,
1491
+ touches = event.touches;
1492
+ return (
1493
+ (didSwipe() || hasSwipes()) && (ret = triggerHandlerForGesture(event, phase, SWIPE)),
1494
+ (didPinch() || hasPinches()) &&
1495
+ ret !== !1 &&
1496
+ (ret = triggerHandlerForGesture(event, phase, PINCH)),
1497
+ didDoubleTap() && ret !== !1
1498
+ ? (ret = triggerHandlerForGesture(event, phase, DOUBLE_TAP))
1499
+ : didLongTap() && ret !== !1
1500
+ ? (ret = triggerHandlerForGesture(event, phase, LONG_TAP))
1501
+ : didTap() && ret !== !1 && (ret = triggerHandlerForGesture(event, phase, TAP)),
1502
+ phase === PHASE_CANCEL && touchCancel(event),
1503
+ phase === PHASE_END &&
1504
+ (touches ? touches.length || touchCancel(event) : touchCancel(event)),
1505
+ ret
1506
+ );
1507
+ }
1508
+ function triggerHandlerForGesture(event, phase, gesture) {
1509
+ var ret;
1510
+ if (gesture == SWIPE) {
1511
+ if (
1512
+ ($element.trigger('swipeStatus', [
1513
+ phase,
1514
+ direction || null,
1515
+ distance || 0,
1516
+ duration || 0,
1517
+ fingerCount,
1518
+ fingerData,
1519
+ currentDirection,
1520
+ ]),
1521
+ options.swipeStatus &&
1522
+ ((ret = options.swipeStatus.call(
1523
+ $element,
1524
+ event,
1525
+ phase,
1526
+ direction || null,
1527
+ distance || 0,
1528
+ duration || 0,
1529
+ fingerCount,
1530
+ fingerData,
1531
+ currentDirection
1532
+ )),
1533
+ ret === !1))
1534
+ )
1535
+ return !1;
1536
+ if (phase == PHASE_END && validateSwipe()) {
1537
+ if (
1538
+ (clearTimeout(singleTapTimeout),
1539
+ clearTimeout(holdTimeout),
1540
+ $element.trigger('swipe', [
1541
+ direction,
1542
+ distance,
1543
+ duration,
1544
+ fingerCount,
1545
+ fingerData,
1546
+ currentDirection,
1547
+ ]),
1548
+ options.swipe &&
1549
+ ((ret = options.swipe.call(
1550
+ $element,
1551
+ event,
1552
+ direction,
1553
+ distance,
1554
+ duration,
1555
+ fingerCount,
1556
+ fingerData,
1557
+ currentDirection
1558
+ )),
1559
+ ret === !1))
1560
+ )
1561
+ return !1;
1562
+ switch (direction) {
1563
+ case LEFT:
1564
+ $element.trigger('swipeLeft', [
1565
+ direction,
1566
+ distance,
1567
+ duration,
1568
+ fingerCount,
1569
+ fingerData,
1570
+ currentDirection,
1571
+ ]),
1572
+ options.swipeLeft &&
1573
+ (ret = options.swipeLeft.call(
1574
+ $element,
1575
+ event,
1576
+ direction,
1577
+ distance,
1578
+ duration,
1579
+ fingerCount,
1580
+ fingerData,
1581
+ currentDirection
1582
+ ));
1583
+ break;
1584
+ case RIGHT:
1585
+ $element.trigger('swipeRight', [
1586
+ direction,
1587
+ distance,
1588
+ duration,
1589
+ fingerCount,
1590
+ fingerData,
1591
+ currentDirection,
1592
+ ]),
1593
+ options.swipeRight &&
1594
+ (ret = options.swipeRight.call(
1595
+ $element,
1596
+ event,
1597
+ direction,
1598
+ distance,
1599
+ duration,
1600
+ fingerCount,
1601
+ fingerData,
1602
+ currentDirection
1603
+ ));
1604
+ break;
1605
+ case UP:
1606
+ $element.trigger('swipeUp', [
1607
+ direction,
1608
+ distance,
1609
+ duration,
1610
+ fingerCount,
1611
+ fingerData,
1612
+ currentDirection,
1613
+ ]),
1614
+ options.swipeUp &&
1615
+ (ret = options.swipeUp.call(
1616
+ $element,
1617
+ event,
1618
+ direction,
1619
+ distance,
1620
+ duration,
1621
+ fingerCount,
1622
+ fingerData,
1623
+ currentDirection
1624
+ ));
1625
+ break;
1626
+ case DOWN:
1627
+ $element.trigger('swipeDown', [
1628
+ direction,
1629
+ distance,
1630
+ duration,
1631
+ fingerCount,
1632
+ fingerData,
1633
+ currentDirection,
1634
+ ]),
1635
+ options.swipeDown &&
1636
+ (ret = options.swipeDown.call(
1637
+ $element,
1638
+ event,
1639
+ direction,
1640
+ distance,
1641
+ duration,
1642
+ fingerCount,
1643
+ fingerData,
1644
+ currentDirection
1645
+ ));
1646
+ }
1647
+ }
1648
+ }
1649
+ if (gesture == PINCH) {
1650
+ if (
1651
+ ($element.trigger('pinchStatus', [
1652
+ phase,
1653
+ pinchDirection || null,
1654
+ pinchDistance || 0,
1655
+ duration || 0,
1656
+ fingerCount,
1657
+ pinchZoom,
1658
+ fingerData,
1659
+ ]),
1660
+ options.pinchStatus &&
1661
+ ((ret = options.pinchStatus.call(
1662
+ $element,
1663
+ event,
1664
+ phase,
1665
+ pinchDirection || null,
1666
+ pinchDistance || 0,
1667
+ duration || 0,
1668
+ fingerCount,
1669
+ pinchZoom,
1670
+ fingerData
1671
+ )),
1672
+ ret === !1))
1673
+ )
1674
+ return !1;
1675
+ if (phase == PHASE_END && validatePinch())
1676
+ switch (pinchDirection) {
1677
+ case IN:
1678
+ $element.trigger('pinchIn', [
1679
+ pinchDirection || null,
1680
+ pinchDistance || 0,
1681
+ duration || 0,
1682
+ fingerCount,
1683
+ pinchZoom,
1684
+ fingerData,
1685
+ ]),
1686
+ options.pinchIn &&
1687
+ (ret = options.pinchIn.call(
1688
+ $element,
1689
+ event,
1690
+ pinchDirection || null,
1691
+ pinchDistance || 0,
1692
+ duration || 0,
1693
+ fingerCount,
1694
+ pinchZoom,
1695
+ fingerData
1696
+ ));
1697
+ break;
1698
+ case OUT:
1699
+ $element.trigger('pinchOut', [
1700
+ pinchDirection || null,
1701
+ pinchDistance || 0,
1702
+ duration || 0,
1703
+ fingerCount,
1704
+ pinchZoom,
1705
+ fingerData,
1706
+ ]),
1707
+ options.pinchOut &&
1708
+ (ret = options.pinchOut.call(
1709
+ $element,
1710
+ event,
1711
+ pinchDirection || null,
1712
+ pinchDistance || 0,
1713
+ duration || 0,
1714
+ fingerCount,
1715
+ pinchZoom,
1716
+ fingerData
1717
+ ));
1718
+ }
1719
+ }
1720
+ return (
1721
+ gesture == TAP
1722
+ ? (phase !== PHASE_CANCEL && phase !== PHASE_END) ||
1723
+ (clearTimeout(singleTapTimeout),
1724
+ clearTimeout(holdTimeout),
1725
+ hasDoubleTap() && !inDoubleTap()
1726
+ ? ((doubleTapStartTime = getTimeStamp()),
1727
+ (singleTapTimeout = setTimeout(
1728
+ $.proxy(function () {
1729
+ (doubleTapStartTime = null),
1730
+ $element.trigger('tap', [event.target]),
1731
+ options.tap && (ret = options.tap.call($element, event, event.target));
1732
+ }, this),
1733
+ options.doubleTapThreshold
1734
+ )))
1735
+ : ((doubleTapStartTime = null),
1736
+ $element.trigger('tap', [event.target]),
1737
+ options.tap && (ret = options.tap.call($element, event, event.target))))
1738
+ : gesture == DOUBLE_TAP
1739
+ ? (phase !== PHASE_CANCEL && phase !== PHASE_END) ||
1740
+ (clearTimeout(singleTapTimeout),
1741
+ clearTimeout(holdTimeout),
1742
+ (doubleTapStartTime = null),
1743
+ $element.trigger('doubletap', [event.target]),
1744
+ options.doubleTap && (ret = options.doubleTap.call($element, event, event.target)))
1745
+ : gesture == LONG_TAP &&
1746
+ ((phase !== PHASE_CANCEL && phase !== PHASE_END) ||
1747
+ (clearTimeout(singleTapTimeout),
1748
+ (doubleTapStartTime = null),
1749
+ $element.trigger('longtap', [event.target]),
1750
+ options.longTap && (ret = options.longTap.call($element, event, event.target)))),
1751
+ ret
1752
+ );
1753
+ }
1754
+ function validateSwipeDistance() {
1755
+ var valid = !0;
1756
+ return null !== options.threshold && (valid = distance >= options.threshold), valid;
1757
+ }
1758
+ function didSwipeBackToCancel() {
1759
+ var cancelled = !1;
1760
+ return (
1761
+ null !== options.cancelThreshold &&
1762
+ null !== direction &&
1763
+ (cancelled = getMaxDistance(direction) - distance >= options.cancelThreshold),
1764
+ cancelled
1765
+ );
1766
+ }
1767
+ function validatePinchDistance() {
1768
+ return null !== options.pinchThreshold ? pinchDistance >= options.pinchThreshold : !0;
1769
+ }
1770
+ function validateSwipeTime() {
1771
+ var result;
1772
+ return (result = options.maxTimeThreshold ? !(duration >= options.maxTimeThreshold) : !0);
1773
+ }
1774
+ function validateDefaultEvent(jqEvent, direction) {
1775
+ if (options.preventDefaultEvents !== !1)
1776
+ if (options.allowPageScroll === NONE) jqEvent.preventDefault();
1777
+ else {
1778
+ var auto = options.allowPageScroll === AUTO;
1779
+ switch (direction) {
1780
+ case LEFT:
1781
+ ((options.swipeLeft && auto) || (!auto && options.allowPageScroll != HORIZONTAL)) &&
1782
+ jqEvent.preventDefault();
1783
+ break;
1784
+ case RIGHT:
1785
+ ((options.swipeRight && auto) || (!auto && options.allowPageScroll != HORIZONTAL)) &&
1786
+ jqEvent.preventDefault();
1787
+ break;
1788
+ case UP:
1789
+ ((options.swipeUp && auto) || (!auto && options.allowPageScroll != VERTICAL)) &&
1790
+ jqEvent.preventDefault();
1791
+ break;
1792
+ case DOWN:
1793
+ ((options.swipeDown && auto) || (!auto && options.allowPageScroll != VERTICAL)) &&
1794
+ jqEvent.preventDefault();
1795
+ break;
1796
+ case NONE:
1797
+ }
1798
+ }
1799
+ }
1800
+ function validatePinch() {
1801
+ var hasCorrectFingerCount = validateFingers(),
1802
+ hasEndPoint = validateEndPoint(),
1803
+ hasCorrectDistance = validatePinchDistance();
1804
+ return hasCorrectFingerCount && hasEndPoint && hasCorrectDistance;
1805
+ }
1806
+ function hasPinches() {
1807
+ return !!(options.pinchStatus || options.pinchIn || options.pinchOut);
1808
+ }
1809
+ function didPinch() {
1810
+ return !(!validatePinch() || !hasPinches());
1811
+ }
1812
+ function validateSwipe() {
1813
+ var hasValidTime = validateSwipeTime(),
1814
+ hasValidDistance = validateSwipeDistance(),
1815
+ hasCorrectFingerCount = validateFingers(),
1816
+ hasEndPoint = validateEndPoint(),
1817
+ didCancel = didSwipeBackToCancel(),
1818
+ valid =
1819
+ !didCancel && hasEndPoint && hasCorrectFingerCount && hasValidDistance && hasValidTime;
1820
+ return valid;
1821
+ }
1822
+ function hasSwipes() {
1823
+ return !!(
1824
+ options.swipe ||
1825
+ options.swipeStatus ||
1826
+ options.swipeLeft ||
1827
+ options.swipeRight ||
1828
+ options.swipeUp ||
1829
+ options.swipeDown
1830
+ );
1831
+ }
1832
+ function didSwipe() {
1833
+ return !(!validateSwipe() || !hasSwipes());
1834
+ }
1835
+ function validateFingers() {
1836
+ return fingerCount === options.fingers || options.fingers === ALL_FINGERS || !SUPPORTS_TOUCH;
1837
+ }
1838
+ function validateEndPoint() {
1839
+ return 0 !== fingerData[0].end.x;
1840
+ }
1841
+ function hasTap() {
1842
+ return !!options.tap;
1843
+ }
1844
+ function hasDoubleTap() {
1845
+ return !!options.doubleTap;
1846
+ }
1847
+ function hasLongTap() {
1848
+ return !!options.longTap;
1849
+ }
1850
+ function validateDoubleTap() {
1851
+ if (null == doubleTapStartTime) return !1;
1852
+ var now = getTimeStamp();
1853
+ return hasDoubleTap() && now - doubleTapStartTime <= options.doubleTapThreshold;
1854
+ }
1855
+ function inDoubleTap() {
1856
+ return validateDoubleTap();
1857
+ }
1858
+ function validateTap() {
1859
+ return (
1860
+ (1 === fingerCount || !SUPPORTS_TOUCH) && (isNaN(distance) || distance < options.threshold)
1861
+ );
1862
+ }
1863
+ function validateLongTap() {
1864
+ return duration > options.longTapThreshold && DOUBLE_TAP_THRESHOLD > distance;
1865
+ }
1866
+ function didTap() {
1867
+ return !(!validateTap() || !hasTap());
1868
+ }
1869
+ function didDoubleTap() {
1870
+ return !(!validateDoubleTap() || !hasDoubleTap());
1871
+ }
1872
+ function didLongTap() {
1873
+ return !(!validateLongTap() || !hasLongTap());
1874
+ }
1875
+ function startMultiFingerRelease(event) {
1876
+ (previousTouchEndTime = getTimeStamp()), (fingerCountAtRelease = event.touches.length + 1);
1877
+ }
1878
+ function cancelMultiFingerRelease() {
1879
+ (previousTouchEndTime = 0), (fingerCountAtRelease = 0);
1880
+ }
1881
+ function inMultiFingerRelease() {
1882
+ var withinThreshold = !1;
1883
+ if (previousTouchEndTime) {
1884
+ var diff = getTimeStamp() - previousTouchEndTime;
1885
+ diff <= options.fingerReleaseThreshold && (withinThreshold = !0);
1886
+ }
1887
+ return withinThreshold;
1888
+ }
1889
+ function getTouchInProgress() {
1890
+ return !($element.data(PLUGIN_NS + '_intouch') !== !0);
1891
+ }
1892
+ function setTouchInProgress(val) {
1893
+ $element &&
1894
+ (val === !0
1895
+ ? ($element.on(MOVE_EV, touchMove),
1896
+ $element.on(END_EV, touchEnd),
1897
+ LEAVE_EV && $element.on(LEAVE_EV, touchLeave))
1898
+ : ($element.off(MOVE_EV, touchMove, !1),
1899
+ $element.off(END_EV, touchEnd, !1),
1900
+ LEAVE_EV && $element.off(LEAVE_EV, touchLeave, !1)),
1901
+ $element.data(PLUGIN_NS + '_intouch', val === !0));
1902
+ }
1903
+ function createFingerData(id, evt) {
1904
+ var f = {start: {x: 0, y: 0}, last: {x: 0, y: 0}, end: {x: 0, y: 0}};
1905
+ return (
1906
+ (f.start.x = f.last.x = f.end.x = evt.pageX || evt.clientX),
1907
+ (f.start.y = f.last.y = f.end.y = evt.pageY || evt.clientY),
1908
+ (fingerData[id] = f),
1909
+ f
1910
+ );
1911
+ }
1912
+ function updateFingerData(evt) {
1913
+ var id = void 0 !== evt.identifier ? evt.identifier : 0,
1914
+ f = getFingerData(id);
1915
+ return (
1916
+ null === f && (f = createFingerData(id, evt)),
1917
+ (f.last.x = f.end.x),
1918
+ (f.last.y = f.end.y),
1919
+ (f.end.x = evt.pageX || evt.clientX),
1920
+ (f.end.y = evt.pageY || evt.clientY),
1921
+ f
1922
+ );
1923
+ }
1924
+ function getFingerData(id) {
1925
+ return fingerData[id] || null;
1926
+ }
1927
+ function setMaxDistance(direction, distance) {
1928
+ direction != NONE &&
1929
+ ((distance = Math.max(distance, getMaxDistance(direction))),
1930
+ (maximumsMap[direction].distance = distance));
1931
+ }
1932
+ function getMaxDistance(direction) {
1933
+ return maximumsMap[direction] ? maximumsMap[direction].distance : void 0;
1934
+ }
1935
+ function createMaximumsData() {
1936
+ var maxData = {};
1937
+ return (
1938
+ (maxData[LEFT] = createMaximumVO(LEFT)),
1939
+ (maxData[RIGHT] = createMaximumVO(RIGHT)),
1940
+ (maxData[UP] = createMaximumVO(UP)),
1941
+ (maxData[DOWN] = createMaximumVO(DOWN)),
1942
+ maxData
1943
+ );
1944
+ }
1945
+ function createMaximumVO(dir) {
1946
+ return {direction: dir, distance: 0};
1947
+ }
1948
+ function calculateDuration() {
1949
+ return endTime - startTime;
1950
+ }
1951
+ function calculateTouchesDistance(startPoint, endPoint) {
1952
+ var diffX = Math.abs(startPoint.x - endPoint.x),
1953
+ diffY = Math.abs(startPoint.y - endPoint.y);
1954
+ return Math.round(Math.sqrt(diffX * diffX + diffY * diffY));
1955
+ }
1956
+ function calculatePinchZoom(startDistance, endDistance) {
1957
+ var percent = (endDistance / startDistance) * 1;
1958
+ return percent.toFixed(2);
1959
+ }
1960
+ function calculatePinchDirection() {
1961
+ return 1 > pinchZoom ? OUT : IN;
1962
+ }
1963
+ function calculateDistance(startPoint, endPoint) {
1964
+ return Math.round(
1965
+ Math.sqrt(Math.pow(endPoint.x - startPoint.x, 2) + Math.pow(endPoint.y - startPoint.y, 2))
1966
+ );
1967
+ }
1968
+ function calculateAngle(startPoint, endPoint) {
1969
+ var x = startPoint.x - endPoint.x,
1970
+ y = endPoint.y - startPoint.y,
1971
+ r = Math.atan2(y, x),
1972
+ angle = Math.round((180 * r) / Math.PI);
1973
+ return 0 > angle && (angle = 360 - Math.abs(angle)), angle;
1974
+ }
1975
+ function calculateDirection(startPoint, endPoint) {
1976
+ if (comparePoints(startPoint, endPoint)) return NONE;
1977
+ var angle = calculateAngle(startPoint, endPoint);
1978
+ return 45 >= angle && angle >= 0
1979
+ ? LEFT
1980
+ : 360 >= angle && angle >= 315
1981
+ ? LEFT
1982
+ : angle >= 135 && 225 >= angle
1983
+ ? RIGHT
1984
+ : angle > 45 && 135 > angle
1985
+ ? DOWN
1986
+ : UP;
1987
+ }
1988
+ function getTimeStamp() {
1989
+ var now = new Date();
1990
+ return now.getTime();
1991
+ }
1992
+ function getbounds(el) {
1993
+ el = $(el);
1994
+ var offset = el.offset(),
1995
+ bounds = {
1996
+ left: offset.left,
1997
+ right: offset.left + el.outerWidth(),
1998
+ top: offset.top,
1999
+ bottom: offset.top + el.outerHeight(),
2000
+ };
2001
+ return bounds;
2002
+ }
2003
+ function isInBounds(point, bounds) {
2004
+ return (
2005
+ point.x > bounds.left &&
2006
+ point.x < bounds.right &&
2007
+ point.y > bounds.top &&
2008
+ point.y < bounds.bottom
2009
+ );
2010
+ }
2011
+ function comparePoints(pointA, pointB) {
2012
+ return pointA.x == pointB.x && pointA.y == pointB.y;
2013
+ }
2014
+ var options = $.extend({}, options),
2015
+ useTouchEvents = SUPPORTS_TOUCH || SUPPORTS_POINTER || !options.fallbackToMouseEvents,
2016
+ START_EV = useTouchEvents
2017
+ ? SUPPORTS_POINTER
2018
+ ? SUPPORTS_POINTER_IE10
2019
+ ? 'MSPointerDown'
2020
+ : 'pointerdown'
2021
+ : 'touchstart'
2022
+ : 'mousedown',
2023
+ MOVE_EV = useTouchEvents
2024
+ ? SUPPORTS_POINTER
2025
+ ? SUPPORTS_POINTER_IE10
2026
+ ? 'MSPointerMove'
2027
+ : 'pointermove'
2028
+ : 'touchmove'
2029
+ : 'mousemove',
2030
+ END_EV = useTouchEvents
2031
+ ? SUPPORTS_POINTER
2032
+ ? SUPPORTS_POINTER_IE10
2033
+ ? 'MSPointerUp'
2034
+ : 'pointerup'
2035
+ : 'touchend'
2036
+ : 'mouseup',
2037
+ LEAVE_EV = useTouchEvents ? (SUPPORTS_POINTER ? 'mouseleave' : null) : 'mouseleave',
2038
+ CANCEL_EV = SUPPORTS_POINTER
2039
+ ? SUPPORTS_POINTER_IE10
2040
+ ? 'MSPointerCancel'
2041
+ : 'pointercancel'
2042
+ : 'touchcancel',
2043
+ distance = 0,
2044
+ direction = null,
2045
+ currentDirection = null,
2046
+ duration = 0,
2047
+ startTouchesDistance = 0,
2048
+ endTouchesDistance = 0,
2049
+ pinchZoom = 1,
2050
+ pinchDistance = 0,
2051
+ pinchDirection = 0,
2052
+ maximumsMap = null,
2053
+ $element = $(element),
2054
+ phase = 'start',
2055
+ fingerCount = 0,
2056
+ fingerData = {},
2057
+ startTime = 0,
2058
+ endTime = 0,
2059
+ previousTouchEndTime = 0,
2060
+ fingerCountAtRelease = 0,
2061
+ doubleTapStartTime = 0,
2062
+ singleTapTimeout = null,
2063
+ holdTimeout = null;
2064
+ try {
2065
+ $element.on(START_EV, touchStart), $element.on(CANCEL_EV, touchCancel);
2066
+ } catch (e) {
2067
+ $.error('events not supported ' + START_EV + ',' + CANCEL_EV + ' on jQuery.swipe');
2068
+ }
2069
+ (this.enable = function () {
2070
+ return (
2071
+ this.disable(),
2072
+ $element.on(START_EV, touchStart),
2073
+ $element.on(CANCEL_EV, touchCancel),
2074
+ $element
2075
+ );
2076
+ }),
2077
+ (this.disable = function () {
2078
+ return removeListeners(), $element;
2079
+ }),
2080
+ (this.destroy = function () {
2081
+ removeListeners(), $element.data(PLUGIN_NS, null), ($element = null);
2082
+ }),
2083
+ (this.option = function (property, value) {
2084
+ if ('object' == typeof property) options = $.extend(options, property);
2085
+ else if (void 0 !== options[property]) {
2086
+ if (void 0 === value) return options[property];
2087
+ options[property] = value;
2088
+ } else {
2089
+ if (!property) return options;
2090
+ $.error('Option ' + property + ' does not exist on jQuery.swipe.options');
2091
+ }
2092
+ return null;
2093
+ });
2094
+ }
2095
+ var VERSION = '1.6.18',
2096
+ LEFT = 'left',
2097
+ RIGHT = 'right',
2098
+ UP = 'up',
2099
+ DOWN = 'down',
2100
+ IN = 'in',
2101
+ OUT = 'out',
2102
+ NONE = 'none',
2103
+ AUTO = 'auto',
2104
+ SWIPE = 'swipe',
2105
+ PINCH = 'pinch',
2106
+ TAP = 'tap',
2107
+ DOUBLE_TAP = 'doubletap',
2108
+ LONG_TAP = 'longtap',
2109
+ HORIZONTAL = 'horizontal',
2110
+ VERTICAL = 'vertical',
2111
+ ALL_FINGERS = 'all',
2112
+ DOUBLE_TAP_THRESHOLD = 10,
2113
+ PHASE_START = 'start',
2114
+ PHASE_MOVE = 'move',
2115
+ PHASE_END = 'end',
2116
+ PHASE_CANCEL = 'cancel',
2117
+ SUPPORTS_TOUCH = 'ontouchstart' in window,
2118
+ SUPPORTS_POINTER_IE10 =
2119
+ window.navigator.msPointerEnabled && !window.PointerEvent && !SUPPORTS_TOUCH,
2120
+ SUPPORTS_POINTER =
2121
+ (window.PointerEvent || window.navigator.msPointerEnabled) && !SUPPORTS_TOUCH,
2122
+ PLUGIN_NS = 'TouchSwipe',
2123
+ defaults = {
2124
+ fingers: 1,
2125
+ threshold: 75,
2126
+ cancelThreshold: null,
2127
+ pinchThreshold: 20,
2128
+ maxTimeThreshold: null,
2129
+ fingerReleaseThreshold: 250,
2130
+ longTapThreshold: 500,
2131
+ doubleTapThreshold: 200,
2132
+ swipe: null,
2133
+ swipeLeft: null,
2134
+ swipeRight: null,
2135
+ swipeUp: null,
2136
+ swipeDown: null,
2137
+ swipeStatus: null,
2138
+ pinchIn: null,
2139
+ pinchOut: null,
2140
+ pinchStatus: null,
2141
+ click: null,
2142
+ tap: null,
2143
+ doubleTap: null,
2144
+ longTap: null,
2145
+ hold: null,
2146
+ triggerOnTouchEnd: !0,
2147
+ triggerOnTouchLeave: !1,
2148
+ allowPageScroll: 'auto',
2149
+ fallbackToMouseEvents: !0,
2150
+ excludedElements: '.noSwipe',
2151
+ preventDefaultEvents: !0,
2152
+ };
2153
+ ($.fn.swipe = function (method) {
2154
+ var $this = $(this),
2155
+ plugin = $this.data(PLUGIN_NS);
2156
+ if (plugin && 'string' == typeof method) {
2157
+ if (plugin[method])
2158
+ return plugin[method].apply(plugin, Array.prototype.slice.call(arguments, 1));
2159
+ $.error('Method ' + method + ' does not exist on jQuery.swipe');
2160
+ } else if (plugin && 'object' == typeof method) plugin.option.apply(plugin, arguments);
2161
+ else if (!(plugin || ('object' != typeof method && method))) return init.apply(this, arguments);
2162
+ return $this;
2163
+ }),
2164
+ ($.fn.swipe.version = VERSION),
2165
+ ($.fn.swipe.defaults = defaults),
2166
+ ($.fn.swipe.phases = {
2167
+ PHASE_START: PHASE_START,
2168
+ PHASE_MOVE: PHASE_MOVE,
2169
+ PHASE_END: PHASE_END,
2170
+ PHASE_CANCEL: PHASE_CANCEL,
2171
+ }),
2172
+ ($.fn.swipe.directions = {LEFT: LEFT, RIGHT: RIGHT, UP: UP, DOWN: DOWN, IN: IN, OUT: OUT}),
2173
+ ($.fn.swipe.pageScroll = {NONE: NONE, HORIZONTAL: HORIZONTAL, VERTICAL: VERTICAL, AUTO: AUTO}),
2174
+ ($.fn.swipe.fingers = {ONE: 1, TWO: 2, THREE: 3, FOUR: 4, FIVE: 5, ALL: ALL_FINGERS});
2175
+ });
2176
+ // TinyColor v1.4.1
2177
+ // https://github.com/bgrins/TinyColor
2178
+ // 2016-07-07, Brian Grinstead, MIT License
2179
+ !(function (a) {
2180
+ function b(a, d) {
2181
+ if (((a = a ? a : ''), (d = d || {}), a instanceof b)) return a;
2182
+ if (!(this instanceof b)) return new b(a, d);
2183
+ var e = c(a);
2184
+ (this._originalInput = a),
2185
+ (this._r = e.r),
2186
+ (this._g = e.g),
2187
+ (this._b = e.b),
2188
+ (this._a = e.a),
2189
+ (this._roundA = P(100 * this._a) / 100),
2190
+ (this._format = d.format || e.format),
2191
+ (this._gradientType = d.gradientType),
2192
+ this._r < 1 && (this._r = P(this._r)),
2193
+ this._g < 1 && (this._g = P(this._g)),
2194
+ this._b < 1 && (this._b = P(this._b)),
2195
+ (this._ok = e.ok),
2196
+ (this._tc_id = O++);
2197
+ }
2198
+ function c(a) {
2199
+ var b = {r: 0, g: 0, b: 0},
2200
+ c = 1,
2201
+ e = null,
2202
+ g = null,
2203
+ i = null,
2204
+ j = !1,
2205
+ k = !1;
2206
+ return (
2207
+ 'string' == typeof a && (a = K(a)),
2208
+ 'object' == typeof a &&
2209
+ (J(a.r) && J(a.g) && J(a.b)
2210
+ ? ((b = d(a.r, a.g, a.b)),
2211
+ (j = !0),
2212
+ (k = '%' === String(a.r).substr(-1) ? 'prgb' : 'rgb'))
2213
+ : J(a.h) && J(a.s) && J(a.v)
2214
+ ? ((e = G(a.s)), (g = G(a.v)), (b = h(a.h, e, g)), (j = !0), (k = 'hsv'))
2215
+ : J(a.h) &&
2216
+ J(a.s) &&
2217
+ J(a.l) &&
2218
+ ((e = G(a.s)), (i = G(a.l)), (b = f(a.h, e, i)), (j = !0), (k = 'hsl')),
2219
+ a.hasOwnProperty('a') && (c = a.a)),
2220
+ (c = z(c)),
2221
+ {
2222
+ ok: j,
2223
+ format: a.format || k,
2224
+ r: Q(255, R(b.r, 0)),
2225
+ g: Q(255, R(b.g, 0)),
2226
+ b: Q(255, R(b.b, 0)),
2227
+ a: c,
2228
+ }
2229
+ );
2230
+ }
2231
+ function d(a, b, c) {
2232
+ return {r: 255 * A(a, 255), g: 255 * A(b, 255), b: 255 * A(c, 255)};
2233
+ }
2234
+ function e(a, b, c) {
2235
+ (a = A(a, 255)), (b = A(b, 255)), (c = A(c, 255));
2236
+ var d,
2237
+ e,
2238
+ f = R(a, b, c),
2239
+ g = Q(a, b, c),
2240
+ h = (f + g) / 2;
2241
+ if (f == g) d = e = 0;
2242
+ else {
2243
+ var i = f - g;
2244
+ switch (((e = h > 0.5 ? i / (2 - f - g) : i / (f + g)), f)) {
2245
+ case a:
2246
+ d = (b - c) / i + (c > b ? 6 : 0);
2247
+ break;
2248
+ case b:
2249
+ d = (c - a) / i + 2;
2250
+ break;
2251
+ case c:
2252
+ d = (a - b) / i + 4;
2253
+ }
2254
+ d /= 6;
2255
+ }
2256
+ return {h: d, s: e, l: h};
2257
+ }
2258
+ function f(a, b, c) {
2259
+ function d(a, b, c) {
2260
+ return (
2261
+ 0 > c && (c += 1),
2262
+ c > 1 && (c -= 1),
2263
+ 1 / 6 > c
2264
+ ? a + 6 * (b - a) * c
2265
+ : 0.5 > c
2266
+ ? b
2267
+ : 2 / 3 > c
2268
+ ? a + 6 * (b - a) * (2 / 3 - c)
2269
+ : a
2270
+ );
2271
+ }
2272
+ var e, f, g;
2273
+ if (((a = A(a, 360)), (b = A(b, 100)), (c = A(c, 100)), 0 === b)) e = f = g = c;
2274
+ else {
2275
+ var h = 0.5 > c ? c * (1 + b) : c + b - c * b,
2276
+ i = 2 * c - h;
2277
+ (e = d(i, h, a + 1 / 3)), (f = d(i, h, a)), (g = d(i, h, a - 1 / 3));
2278
+ }
2279
+ return {r: 255 * e, g: 255 * f, b: 255 * g};
2280
+ }
2281
+ function g(a, b, c) {
2282
+ (a = A(a, 255)), (b = A(b, 255)), (c = A(c, 255));
2283
+ var d,
2284
+ e,
2285
+ f = R(a, b, c),
2286
+ g = Q(a, b, c),
2287
+ h = f,
2288
+ i = f - g;
2289
+ if (((e = 0 === f ? 0 : i / f), f == g)) d = 0;
2290
+ else {
2291
+ switch (f) {
2292
+ case a:
2293
+ d = (b - c) / i + (c > b ? 6 : 0);
2294
+ break;
2295
+ case b:
2296
+ d = (c - a) / i + 2;
2297
+ break;
2298
+ case c:
2299
+ d = (a - b) / i + 4;
2300
+ }
2301
+ d /= 6;
2302
+ }
2303
+ return {h: d, s: e, v: h};
2304
+ }
2305
+ function h(b, c, d) {
2306
+ (b = 6 * A(b, 360)), (c = A(c, 100)), (d = A(d, 100));
2307
+ var e = a.floor(b),
2308
+ f = b - e,
2309
+ g = d * (1 - c),
2310
+ h = d * (1 - f * c),
2311
+ i = d * (1 - (1 - f) * c),
2312
+ j = e % 6,
2313
+ k = [d, h, g, g, i, d][j],
2314
+ l = [i, d, d, h, g, g][j],
2315
+ m = [g, g, i, d, d, h][j];
2316
+ return {r: 255 * k, g: 255 * l, b: 255 * m};
2317
+ }
2318
+ function i(a, b, c, d) {
2319
+ var e = [F(P(a).toString(16)), F(P(b).toString(16)), F(P(c).toString(16))];
2320
+ return d &&
2321
+ e[0].charAt(0) == e[0].charAt(1) &&
2322
+ e[1].charAt(0) == e[1].charAt(1) &&
2323
+ e[2].charAt(0) == e[2].charAt(1)
2324
+ ? e[0].charAt(0) + e[1].charAt(0) + e[2].charAt(0)
2325
+ : e.join('');
2326
+ }
2327
+ function j(a, b, c, d, e) {
2328
+ var f = [F(P(a).toString(16)), F(P(b).toString(16)), F(P(c).toString(16)), F(H(d))];
2329
+ return e &&
2330
+ f[0].charAt(0) == f[0].charAt(1) &&
2331
+ f[1].charAt(0) == f[1].charAt(1) &&
2332
+ f[2].charAt(0) == f[2].charAt(1) &&
2333
+ f[3].charAt(0) == f[3].charAt(1)
2334
+ ? f[0].charAt(0) + f[1].charAt(0) + f[2].charAt(0) + f[3].charAt(0)
2335
+ : f.join('');
2336
+ }
2337
+ function k(a, b, c, d) {
2338
+ var e = [F(H(d)), F(P(a).toString(16)), F(P(b).toString(16)), F(P(c).toString(16))];
2339
+ return e.join('');
2340
+ }
2341
+ function l(a, c) {
2342
+ c = 0 === c ? 0 : c || 10;
2343
+ var d = b(a).toHsl();
2344
+ return (d.s -= c / 100), (d.s = B(d.s)), b(d);
2345
+ }
2346
+ function m(a, c) {
2347
+ c = 0 === c ? 0 : c || 10;
2348
+ var d = b(a).toHsl();
2349
+ return (d.s += c / 100), (d.s = B(d.s)), b(d);
2350
+ }
2351
+ function n(a) {
2352
+ return b(a).desaturate(100);
2353
+ }
2354
+ function o(a, c) {
2355
+ c = 0 === c ? 0 : c || 10;
2356
+ var d = b(a).toHsl();
2357
+ return (d.l += c / 100), (d.l = B(d.l)), b(d);
2358
+ }
2359
+ function p(a, c) {
2360
+ c = 0 === c ? 0 : c || 10;
2361
+ var d = b(a).toRgb();
2362
+ return (
2363
+ (d.r = R(0, Q(255, d.r - P(255 * -(c / 100))))),
2364
+ (d.g = R(0, Q(255, d.g - P(255 * -(c / 100))))),
2365
+ (d.b = R(0, Q(255, d.b - P(255 * -(c / 100))))),
2366
+ b(d)
2367
+ );
2368
+ }
2369
+ function q(a, c) {
2370
+ c = 0 === c ? 0 : c || 10;
2371
+ var d = b(a).toHsl();
2372
+ return (d.l -= c / 100), (d.l = B(d.l)), b(d);
2373
+ }
2374
+ function r(a, c) {
2375
+ var d = b(a).toHsl(),
2376
+ e = (d.h + c) % 360;
2377
+ return (d.h = 0 > e ? 360 + e : e), b(d);
2378
+ }
2379
+ function s(a) {
2380
+ var c = b(a).toHsl();
2381
+ return (c.h = (c.h + 180) % 360), b(c);
2382
+ }
2383
+ function t(a) {
2384
+ var c = b(a).toHsl(),
2385
+ d = c.h;
2386
+ return [b(a), b({h: (d + 120) % 360, s: c.s, l: c.l}), b({h: (d + 240) % 360, s: c.s, l: c.l})];
2387
+ }
2388
+ function u(a) {
2389
+ var c = b(a).toHsl(),
2390
+ d = c.h;
2391
+ return [
2392
+ b(a),
2393
+ b({h: (d + 90) % 360, s: c.s, l: c.l}),
2394
+ b({h: (d + 180) % 360, s: c.s, l: c.l}),
2395
+ b({h: (d + 270) % 360, s: c.s, l: c.l}),
2396
+ ];
2397
+ }
2398
+ function v(a) {
2399
+ var c = b(a).toHsl(),
2400
+ d = c.h;
2401
+ return [b(a), b({h: (d + 72) % 360, s: c.s, l: c.l}), b({h: (d + 216) % 360, s: c.s, l: c.l})];
2402
+ }
2403
+ function w(a, c, d) {
2404
+ (c = c || 6), (d = d || 30);
2405
+ var e = b(a).toHsl(),
2406
+ f = 360 / d,
2407
+ g = [b(a)];
2408
+ for (e.h = (e.h - ((f * c) >> 1) + 720) % 360; --c; ) (e.h = (e.h + f) % 360), g.push(b(e));
2409
+ return g;
2410
+ }
2411
+ function x(a, c) {
2412
+ c = c || 6;
2413
+ for (var d = b(a).toHsv(), e = d.h, f = d.s, g = d.v, h = [], i = 1 / c; c--; )
2414
+ h.push(b({h: e, s: f, v: g})), (g = (g + i) % 1);
2415
+ return h;
2416
+ }
2417
+ function y(a) {
2418
+ var b = {};
2419
+ for (var c in a) a.hasOwnProperty(c) && (b[a[c]] = c);
2420
+ return b;
2421
+ }
2422
+ function z(a) {
2423
+ return (a = parseFloat(a)), (isNaN(a) || 0 > a || a > 1) && (a = 1), a;
2424
+ }
2425
+ function A(b, c) {
2426
+ D(b) && (b = '100%');
2427
+ var d = E(b);
2428
+ return (
2429
+ (b = Q(c, R(0, parseFloat(b)))),
2430
+ d && (b = parseInt(b * c, 10) / 100),
2431
+ a.abs(b - c) < 1e-6 ? 1 : (b % c) / parseFloat(c)
2432
+ );
2433
+ }
2434
+ function B(a) {
2435
+ return Q(1, R(0, a));
2436
+ }
2437
+ function C(a) {
2438
+ return parseInt(a, 16);
2439
+ }
2440
+ function D(a) {
2441
+ return 'string' == typeof a && -1 != a.indexOf('.') && 1 === parseFloat(a);
2442
+ }
2443
+ function E(a) {
2444
+ return 'string' == typeof a && -1 != a.indexOf('%');
2445
+ }
2446
+ function F(a) {
2447
+ return 1 == a.length ? '0' + a : '' + a;
2448
+ }
2449
+ function G(a) {
2450
+ return 1 >= a && (a = 100 * a + '%'), a;
2451
+ }
2452
+ function H(b) {
2453
+ return a.round(255 * parseFloat(b)).toString(16);
2454
+ }
2455
+ function I(a) {
2456
+ return C(a) / 255;
2457
+ }
2458
+ function J(a) {
2459
+ return !!V.CSS_UNIT.exec(a);
2460
+ }
2461
+ function K(a) {
2462
+ a = a.replace(M, '').replace(N, '').toLowerCase();
2463
+ var b = !1;
2464
+ if (T[a]) (a = T[a]), (b = !0);
2465
+ else if ('transparent' == a) return {r: 0, g: 0, b: 0, a: 0, format: 'name'};
2466
+ var c;
2467
+ return (c = V.rgb.exec(a))
2468
+ ? {r: c[1], g: c[2], b: c[3]}
2469
+ : (c = V.rgba.exec(a))
2470
+ ? {r: c[1], g: c[2], b: c[3], a: c[4]}
2471
+ : (c = V.hsl.exec(a))
2472
+ ? {h: c[1], s: c[2], l: c[3]}
2473
+ : (c = V.hsla.exec(a))
2474
+ ? {h: c[1], s: c[2], l: c[3], a: c[4]}
2475
+ : (c = V.hsv.exec(a))
2476
+ ? {h: c[1], s: c[2], v: c[3]}
2477
+ : (c = V.hsva.exec(a))
2478
+ ? {h: c[1], s: c[2], v: c[3], a: c[4]}
2479
+ : (c = V.hex8.exec(a))
2480
+ ? {r: C(c[1]), g: C(c[2]), b: C(c[3]), a: I(c[4]), format: b ? 'name' : 'hex8'}
2481
+ : (c = V.hex6.exec(a))
2482
+ ? {r: C(c[1]), g: C(c[2]), b: C(c[3]), format: b ? 'name' : 'hex'}
2483
+ : (c = V.hex4.exec(a))
2484
+ ? {
2485
+ r: C(c[1] + '' + c[1]),
2486
+ g: C(c[2] + '' + c[2]),
2487
+ b: C(c[3] + '' + c[3]),
2488
+ a: I(c[4] + '' + c[4]),
2489
+ format: b ? 'name' : 'hex8',
2490
+ }
2491
+ : (c = V.hex3.exec(a))
2492
+ ? {
2493
+ r: C(c[1] + '' + c[1]),
2494
+ g: C(c[2] + '' + c[2]),
2495
+ b: C(c[3] + '' + c[3]),
2496
+ format: b ? 'name' : 'hex',
2497
+ }
2498
+ : !1;
2499
+ }
2500
+ function L(a) {
2501
+ var b, c;
2502
+ return (
2503
+ (a = a || {level: 'AA', size: 'small'}),
2504
+ (b = (a.level || 'AA').toUpperCase()),
2505
+ (c = (a.size || 'small').toLowerCase()),
2506
+ 'AA' !== b && 'AAA' !== b && (b = 'AA'),
2507
+ 'small' !== c && 'large' !== c && (c = 'small'),
2508
+ {level: b, size: c}
2509
+ );
2510
+ }
2511
+ var M = /^\s+/,
2512
+ N = /\s+$/,
2513
+ O = 0,
2514
+ P = a.round,
2515
+ Q = a.min,
2516
+ R = a.max,
2517
+ S = a.random;
2518
+ (b.prototype = {
2519
+ isDark: function () {
2520
+ return this.getBrightness() < 128;
2521
+ },
2522
+ isLight: function () {
2523
+ return !this.isDark();
2524
+ },
2525
+ isValid: function () {
2526
+ return this._ok;
2527
+ },
2528
+ getOriginalInput: function () {
2529
+ return this._originalInput;
2530
+ },
2531
+ getFormat: function () {
2532
+ return this._format;
2533
+ },
2534
+ getAlpha: function () {
2535
+ return this._a;
2536
+ },
2537
+ getBrightness: function () {
2538
+ var a = this.toRgb();
2539
+ return (299 * a.r + 587 * a.g + 114 * a.b) / 1e3;
2540
+ },
2541
+ getLuminance: function () {
2542
+ var b,
2543
+ c,
2544
+ d,
2545
+ e,
2546
+ f,
2547
+ g,
2548
+ h = this.toRgb();
2549
+ return (
2550
+ (b = h.r / 255),
2551
+ (c = h.g / 255),
2552
+ (d = h.b / 255),
2553
+ (e = 0.03928 >= b ? b / 12.92 : a.pow((b + 0.055) / 1.055, 2.4)),
2554
+ (f = 0.03928 >= c ? c / 12.92 : a.pow((c + 0.055) / 1.055, 2.4)),
2555
+ (g = 0.03928 >= d ? d / 12.92 : a.pow((d + 0.055) / 1.055, 2.4)),
2556
+ 0.2126 * e + 0.7152 * f + 0.0722 * g
2557
+ );
2558
+ },
2559
+ setAlpha: function (a) {
2560
+ return (this._a = z(a)), (this._roundA = P(100 * this._a) / 100), this;
2561
+ },
2562
+ toHsv: function () {
2563
+ var a = g(this._r, this._g, this._b);
2564
+ return {h: 360 * a.h, s: a.s, v: a.v, a: this._a};
2565
+ },
2566
+ toHsvString: function () {
2567
+ var a = g(this._r, this._g, this._b),
2568
+ b = P(360 * a.h),
2569
+ c = P(100 * a.s),
2570
+ d = P(100 * a.v);
2571
+ return 1 == this._a
2572
+ ? 'hsv(' + b + ', ' + c + '%, ' + d + '%)'
2573
+ : 'hsva(' + b + ', ' + c + '%, ' + d + '%, ' + this._roundA + ')';
2574
+ },
2575
+ toHsl: function () {
2576
+ var a = e(this._r, this._g, this._b);
2577
+ return {h: 360 * a.h, s: a.s, l: a.l, a: this._a};
2578
+ },
2579
+ toHslString: function () {
2580
+ var a = e(this._r, this._g, this._b),
2581
+ b = P(360 * a.h),
2582
+ c = P(100 * a.s),
2583
+ d = P(100 * a.l);
2584
+ return 1 == this._a
2585
+ ? 'hsl(' + b + ', ' + c + '%, ' + d + '%)'
2586
+ : 'hsla(' + b + ', ' + c + '%, ' + d + '%, ' + this._roundA + ')';
2587
+ },
2588
+ toHex: function (a) {
2589
+ return i(this._r, this._g, this._b, a);
2590
+ },
2591
+ toHexString: function (a) {
2592
+ return '#' + this.toHex(a);
2593
+ },
2594
+ toHex8: function (a) {
2595
+ return j(this._r, this._g, this._b, this._a, a);
2596
+ },
2597
+ toHex8String: function (a) {
2598
+ return '#' + this.toHex8(a);
2599
+ },
2600
+ toRgb: function () {
2601
+ return {r: P(this._r), g: P(this._g), b: P(this._b), a: this._a};
2602
+ },
2603
+ toRgbString: function () {
2604
+ return 1 == this._a
2605
+ ? 'rgb(' + P(this._r) + ', ' + P(this._g) + ', ' + P(this._b) + ')'
2606
+ : 'rgba(' + P(this._r) + ', ' + P(this._g) + ', ' + P(this._b) + ', ' + this._roundA + ')';
2607
+ },
2608
+ toPercentageRgb: function () {
2609
+ return {
2610
+ r: P(100 * A(this._r, 255)) + '%',
2611
+ g: P(100 * A(this._g, 255)) + '%',
2612
+ b: P(100 * A(this._b, 255)) + '%',
2613
+ a: this._a,
2614
+ };
2615
+ },
2616
+ toPercentageRgbString: function () {
2617
+ return 1 == this._a
2618
+ ? 'rgb(' +
2619
+ P(100 * A(this._r, 255)) +
2620
+ '%, ' +
2621
+ P(100 * A(this._g, 255)) +
2622
+ '%, ' +
2623
+ P(100 * A(this._b, 255)) +
2624
+ '%)'
2625
+ : 'rgba(' +
2626
+ P(100 * A(this._r, 255)) +
2627
+ '%, ' +
2628
+ P(100 * A(this._g, 255)) +
2629
+ '%, ' +
2630
+ P(100 * A(this._b, 255)) +
2631
+ '%, ' +
2632
+ this._roundA +
2633
+ ')';
2634
+ },
2635
+ toName: function () {
2636
+ return 0 === this._a
2637
+ ? 'transparent'
2638
+ : this._a < 1
2639
+ ? !1
2640
+ : U[i(this._r, this._g, this._b, !0)] || !1;
2641
+ },
2642
+ toFilter: function (a) {
2643
+ var c = '#' + k(this._r, this._g, this._b, this._a),
2644
+ d = c,
2645
+ e = this._gradientType ? 'GradientType = 1, ' : '';
2646
+ if (a) {
2647
+ var f = b(a);
2648
+ d = '#' + k(f._r, f._g, f._b, f._a);
2649
+ }
2650
+ return (
2651
+ 'progid:DXImageTransform.Microsoft.gradient(' +
2652
+ e +
2653
+ 'startColorstr=' +
2654
+ c +
2655
+ ',endColorstr=' +
2656
+ d +
2657
+ ')'
2658
+ );
2659
+ },
2660
+ toString: function (a) {
2661
+ var b = !!a;
2662
+ a = a || this._format;
2663
+ var c = !1,
2664
+ d = this._a < 1 && this._a >= 0,
2665
+ e =
2666
+ !b &&
2667
+ d &&
2668
+ ('hex' === a ||
2669
+ 'hex6' === a ||
2670
+ 'hex3' === a ||
2671
+ 'hex4' === a ||
2672
+ 'hex8' === a ||
2673
+ 'name' === a);
2674
+ return e
2675
+ ? 'name' === a && 0 === this._a
2676
+ ? this.toName()
2677
+ : this.toRgbString()
2678
+ : ('rgb' === a && (c = this.toRgbString()),
2679
+ 'prgb' === a && (c = this.toPercentageRgbString()),
2680
+ ('hex' === a || 'hex6' === a) && (c = this.toHexString()),
2681
+ 'hex3' === a && (c = this.toHexString(!0)),
2682
+ 'hex4' === a && (c = this.toHex8String(!0)),
2683
+ 'hex8' === a && (c = this.toHex8String()),
2684
+ 'name' === a && (c = this.toName()),
2685
+ 'hsl' === a && (c = this.toHslString()),
2686
+ 'hsv' === a && (c = this.toHsvString()),
2687
+ c || this.toHexString());
2688
+ },
2689
+ clone: function () {
2690
+ return b(this.toString());
2691
+ },
2692
+ _applyModification: function (a, b) {
2693
+ var c = a.apply(null, [this].concat([].slice.call(b)));
2694
+ return (this._r = c._r), (this._g = c._g), (this._b = c._b), this.setAlpha(c._a), this;
2695
+ },
2696
+ lighten: function () {
2697
+ return this._applyModification(o, arguments);
2698
+ },
2699
+ brighten: function () {
2700
+ return this._applyModification(p, arguments);
2701
+ },
2702
+ darken: function () {
2703
+ return this._applyModification(q, arguments);
2704
+ },
2705
+ desaturate: function () {
2706
+ return this._applyModification(l, arguments);
2707
+ },
2708
+ saturate: function () {
2709
+ return this._applyModification(m, arguments);
2710
+ },
2711
+ greyscale: function () {
2712
+ return this._applyModification(n, arguments);
2713
+ },
2714
+ spin: function () {
2715
+ return this._applyModification(r, arguments);
2716
+ },
2717
+ _applyCombination: function (a, b) {
2718
+ return a.apply(null, [this].concat([].slice.call(b)));
2719
+ },
2720
+ analogous: function () {
2721
+ return this._applyCombination(w, arguments);
2722
+ },
2723
+ complement: function () {
2724
+ return this._applyCombination(s, arguments);
2725
+ },
2726
+ monochromatic: function () {
2727
+ return this._applyCombination(x, arguments);
2728
+ },
2729
+ splitcomplement: function () {
2730
+ return this._applyCombination(v, arguments);
2731
+ },
2732
+ triad: function () {
2733
+ return this._applyCombination(t, arguments);
2734
+ },
2735
+ tetrad: function () {
2736
+ return this._applyCombination(u, arguments);
2737
+ },
2738
+ }),
2739
+ (b.fromRatio = function (a, c) {
2740
+ if ('object' == typeof a) {
2741
+ var d = {};
2742
+ for (var e in a) a.hasOwnProperty(e) && (d[e] = 'a' === e ? a[e] : G(a[e]));
2743
+ a = d;
2744
+ }
2745
+ return b(a, c);
2746
+ }),
2747
+ (b.equals = function (a, c) {
2748
+ return a && c ? b(a).toRgbString() == b(c).toRgbString() : !1;
2749
+ }),
2750
+ (b.random = function () {
2751
+ return b.fromRatio({r: S(), g: S(), b: S()});
2752
+ }),
2753
+ (b.mix = function (a, c, d) {
2754
+ d = 0 === d ? 0 : d || 50;
2755
+ var e = b(a).toRgb(),
2756
+ f = b(c).toRgb(),
2757
+ g = d / 100,
2758
+ h = {
2759
+ r: (f.r - e.r) * g + e.r,
2760
+ g: (f.g - e.g) * g + e.g,
2761
+ b: (f.b - e.b) * g + e.b,
2762
+ a: (f.a - e.a) * g + e.a,
2763
+ };
2764
+ return b(h);
2765
+ }),
2766
+ (b.readability = function (c, d) {
2767
+ var e = b(c),
2768
+ f = b(d);
2769
+ return (
2770
+ (a.max(e.getLuminance(), f.getLuminance()) + 0.05) /
2771
+ (a.min(e.getLuminance(), f.getLuminance()) + 0.05)
2772
+ );
2773
+ }),
2774
+ (b.isReadable = function (a, c, d) {
2775
+ var e,
2776
+ f,
2777
+ g = b.readability(a, c);
2778
+ switch (((f = !1), (e = L(d)), e.level + e.size)) {
2779
+ case 'AAsmall':
2780
+ case 'AAAlarge':
2781
+ f = g >= 4.5;
2782
+ break;
2783
+ case 'AAlarge':
2784
+ f = g >= 3;
2785
+ break;
2786
+ case 'AAAsmall':
2787
+ f = g >= 7;
2788
+ }
2789
+ return f;
2790
+ }),
2791
+ (b.mostReadable = function (a, c, d) {
2792
+ var e,
2793
+ f,
2794
+ g,
2795
+ h,
2796
+ i = null,
2797
+ j = 0;
2798
+ (d = d || {}), (f = d.includeFallbackColors), (g = d.level), (h = d.size);
2799
+ for (var k = 0; k < c.length; k++)
2800
+ (e = b.readability(a, c[k])), e > j && ((j = e), (i = b(c[k])));
2801
+ return b.isReadable(a, i, {level: g, size: h}) || !f
2802
+ ? i
2803
+ : ((d.includeFallbackColors = !1), b.mostReadable(a, ['#fff', '#000'], d));
2804
+ });
2805
+ var T = (b.names = {
2806
+ aliceblue: 'f0f8ff',
2807
+ antiquewhite: 'faebd7',
2808
+ aqua: '0ff',
2809
+ aquamarine: '7fffd4',
2810
+ azure: 'f0ffff',
2811
+ beige: 'f5f5dc',
2812
+ bisque: 'ffe4c4',
2813
+ black: '000',
2814
+ blanchedalmond: 'ffebcd',
2815
+ blue: '00f',
2816
+ blueviolet: '8a2be2',
2817
+ brown: 'a52a2a',
2818
+ burlywood: 'deb887',
2819
+ burntsienna: 'ea7e5d',
2820
+ cadetblue: '5f9ea0',
2821
+ chartreuse: '7fff00',
2822
+ chocolate: 'd2691e',
2823
+ coral: 'ff7f50',
2824
+ cornflowerblue: '6495ed',
2825
+ cornsilk: 'fff8dc',
2826
+ crimson: 'dc143c',
2827
+ cyan: '0ff',
2828
+ darkblue: '00008b',
2829
+ darkcyan: '008b8b',
2830
+ darkgoldenrod: 'b8860b',
2831
+ darkgray: 'a9a9a9',
2832
+ darkgreen: '006400',
2833
+ darkgrey: 'a9a9a9',
2834
+ darkkhaki: 'bdb76b',
2835
+ darkmagenta: '8b008b',
2836
+ darkolivegreen: '556b2f',
2837
+ darkorange: 'ff8c00',
2838
+ darkorchid: '9932cc',
2839
+ darkred: '8b0000',
2840
+ darksalmon: 'e9967a',
2841
+ darkseagreen: '8fbc8f',
2842
+ darkslateblue: '483d8b',
2843
+ darkslategray: '2f4f4f',
2844
+ darkslategrey: '2f4f4f',
2845
+ darkturquoise: '00ced1',
2846
+ darkviolet: '9400d3',
2847
+ deeppink: 'ff1493',
2848
+ deepskyblue: '00bfff',
2849
+ dimgray: '696969',
2850
+ dimgrey: '696969',
2851
+ dodgerblue: '1e90ff',
2852
+ firebrick: 'b22222',
2853
+ floralwhite: 'fffaf0',
2854
+ forestgreen: '228b22',
2855
+ fuchsia: 'f0f',
2856
+ gainsboro: 'dcdcdc',
2857
+ ghostwhite: 'f8f8ff',
2858
+ gold: 'ffd700',
2859
+ goldenrod: 'daa520',
2860
+ gray: '808080',
2861
+ green: '008000',
2862
+ greenyellow: 'adff2f',
2863
+ grey: '808080',
2864
+ honeydew: 'f0fff0',
2865
+ hotpink: 'ff69b4',
2866
+ indianred: 'cd5c5c',
2867
+ indigo: '4b0082',
2868
+ ivory: 'fffff0',
2869
+ khaki: 'f0e68c',
2870
+ lavender: 'e6e6fa',
2871
+ lavenderblush: 'fff0f5',
2872
+ lawngreen: '7cfc00',
2873
+ lemonchiffon: 'fffacd',
2874
+ lightblue: 'add8e6',
2875
+ lightcoral: 'f08080',
2876
+ lightcyan: 'e0ffff',
2877
+ lightgoldenrodyellow: 'fafad2',
2878
+ lightgray: 'd3d3d3',
2879
+ lightgreen: '90ee90',
2880
+ lightgrey: 'd3d3d3',
2881
+ lightpink: 'ffb6c1',
2882
+ lightsalmon: 'ffa07a',
2883
+ lightseagreen: '20b2aa',
2884
+ lightskyblue: '87cefa',
2885
+ lightslategray: '789',
2886
+ lightslategrey: '789',
2887
+ lightsteelblue: 'b0c4de',
2888
+ lightyellow: 'ffffe0',
2889
+ lime: '0f0',
2890
+ limegreen: '32cd32',
2891
+ linen: 'faf0e6',
2892
+ magenta: 'f0f',
2893
+ maroon: '800000',
2894
+ mediumaquamarine: '66cdaa',
2895
+ mediumblue: '0000cd',
2896
+ mediumorchid: 'ba55d3',
2897
+ mediumpurple: '9370db',
2898
+ mediumseagreen: '3cb371',
2899
+ mediumslateblue: '7b68ee',
2900
+ mediumspringgreen: '00fa9a',
2901
+ mediumturquoise: '48d1cc',
2902
+ mediumvioletred: 'c71585',
2903
+ midnightblue: '191970',
2904
+ mintcream: 'f5fffa',
2905
+ mistyrose: 'ffe4e1',
2906
+ moccasin: 'ffe4b5',
2907
+ navajowhite: 'ffdead',
2908
+ navy: '000080',
2909
+ oldlace: 'fdf5e6',
2910
+ olive: '808000',
2911
+ olivedrab: '6b8e23',
2912
+ orange: 'ffa500',
2913
+ orangered: 'ff4500',
2914
+ orchid: 'da70d6',
2915
+ palegoldenrod: 'eee8aa',
2916
+ palegreen: '98fb98',
2917
+ paleturquoise: 'afeeee',
2918
+ palevioletred: 'db7093',
2919
+ papayawhip: 'ffefd5',
2920
+ peachpuff: 'ffdab9',
2921
+ peru: 'cd853f',
2922
+ pink: 'ffc0cb',
2923
+ plum: 'dda0dd',
2924
+ powderblue: 'b0e0e6',
2925
+ purple: '800080',
2926
+ rebeccapurple: '663399',
2927
+ red: 'f00',
2928
+ rosybrown: 'bc8f8f',
2929
+ royalblue: '4169e1',
2930
+ saddlebrown: '8b4513',
2931
+ salmon: 'fa8072',
2932
+ sandybrown: 'f4a460',
2933
+ seagreen: '2e8b57',
2934
+ seashell: 'fff5ee',
2935
+ sienna: 'a0522d',
2936
+ silver: 'c0c0c0',
2937
+ skyblue: '87ceeb',
2938
+ slateblue: '6a5acd',
2939
+ slategray: '708090',
2940
+ slategrey: '708090',
2941
+ snow: 'fffafa',
2942
+ springgreen: '00ff7f',
2943
+ steelblue: '4682b4',
2944
+ tan: 'd2b48c',
2945
+ teal: '008080',
2946
+ thistle: 'd8bfd8',
2947
+ tomato: 'ff6347',
2948
+ turquoise: '40e0d0',
2949
+ violet: 'ee82ee',
2950
+ wheat: 'f5deb3',
2951
+ white: 'fff',
2952
+ whitesmoke: 'f5f5f5',
2953
+ yellow: 'ff0',
2954
+ yellowgreen: '9acd32',
2955
+ }),
2956
+ U = (b.hexNames = y(T)),
2957
+ V = (function () {
2958
+ var a = '[-\\+]?\\d+%?',
2959
+ b = '[-\\+]?\\d*\\.\\d+%?',
2960
+ c = '(?:' + b + ')|(?:' + a + ')',
2961
+ d = '[\\s|\\(]+(' + c + ')[,|\\s]+(' + c + ')[,|\\s]+(' + c + ')\\s*\\)?',
2962
+ e =
2963
+ '[\\s|\\(]+(' + c + ')[,|\\s]+(' + c + ')[,|\\s]+(' + c + ')[,|\\s]+(' + c + ')\\s*\\)?';
2964
+ return {
2965
+ CSS_UNIT: new RegExp(c),
2966
+ rgb: new RegExp('rgb' + d),
2967
+ rgba: new RegExp('rgba' + e),
2968
+ hsl: new RegExp('hsl' + d),
2969
+ hsla: new RegExp('hsla' + e),
2970
+ hsv: new RegExp('hsv' + d),
2971
+ hsva: new RegExp('hsva' + e),
2972
+ hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
2973
+ hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
2974
+ hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
2975
+ hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
2976
+ };
2977
+ })();
2978
+ 'undefined' != typeof module && module.exports
2979
+ ? (module.exports = b)
2980
+ : 'function' == typeof define && define.amd
2981
+ ? define(function () {
2982
+ return b;
2983
+ })
2984
+ : (window.tinycolor = b);
2985
+ })(Math);
2986
+ !(function (r) {
2987
+ var i = function (n) {
2988
+ var e, i;
2989
+ return (i = (e = r('<div/>', {class: n}).appendTo('body')).is(':visible')), e.remove(), i;
2990
+ };
2991
+ (r.isBreakpoint = function (n) {
2992
+ var e;
2993
+ switch (n) {
2994
+ case 'xs':
2995
+ e = 'd-block d-sm-none';
2996
+ break;
2997
+ case 'sm':
2998
+ e = 'd-none d-sm-block d-md-none';
2999
+ break;
3000
+ case 'md':
3001
+ e = 'd-none d-md-block d-lg-none';
3002
+ break;
3003
+ case 'lg':
3004
+ e = 'd-none d-lg-block d-xl-none';
3005
+ break;
3006
+ case 'xl':
3007
+ e = 'd-none d-xl-block';
3008
+ }
3009
+ return i(e);
3010
+ }),
3011
+ (r.isBreakpointUp = function (n) {
3012
+ var e;
3013
+ switch (n) {
3014
+ case 'xs':
3015
+ return !0;
3016
+ case 'sm':
3017
+ e = 'd-none d-sm-block';
3018
+ break;
3019
+ case 'md':
3020
+ e = 'd-none d-md-block';
3021
+ break;
3022
+ case 'lg':
3023
+ e = 'd-none d-lg-block';
3024
+ break;
3025
+ case 'xl':
3026
+ e = 'd-none d-xl-block';
3027
+ }
3028
+ return i(e);
3029
+ }),
3030
+ r.extend(r, {
3031
+ isXs: function () {
3032
+ return r.isBreakpoint('xs');
3033
+ },
3034
+ isSm: function () {
3035
+ return r.isBreakpoint('sm');
3036
+ },
3037
+ isMd: function () {
3038
+ return r.isBreakpoint('md');
3039
+ },
3040
+ isLg: function () {
3041
+ return r.isBreakpoint('lg');
3042
+ },
3043
+ isXl: function () {
3044
+ return r.isBreakpoint('xl');
3045
+ },
3046
+ isXsUp: function () {
3047
+ return r.isBreakpointUp('xs');
3048
+ },
3049
+ isSmUp: function () {
3050
+ return r.isBreakpointUp('sm');
3051
+ },
3052
+ isMdUp: function () {
3053
+ return r.isBreakpointUp('md');
3054
+ },
3055
+ isLgUp: function () {
3056
+ return r.isBreakpointUp('lg');
3057
+ },
3058
+ isXlUp: function () {
3059
+ return r.isBreakpointUp('xl');
3060
+ },
3061
+ });
3062
+ })(jQuery);