You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1095 lines
50 KiB

6 days ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. "use strict";
  2. $.fn.pcodedmenu = function(settings) {
  3. var oid = this.attr("id");
  4. // Pcoded Menu default settings:
  5. var defaults = {
  6. // Common option both for vertical nad horizontal
  7. themelayout: 'vertical', // value should be horizontal/vertical
  8. MenuTrigger: 'click', // value should be hover/click
  9. SubMenuTrigger: 'click', // value should be hover/click
  10. activeMenuClass: 'active',
  11. ThemeBackgroundPattern: 'pattern6', // Value should be
  12. HeaderBackground: 'theme4', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9
  13. LHeaderBackground: 'theme4', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9
  14. NavbarBackground: 'theme4', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9
  15. ActiveItemBackground: 'theme0', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9
  16. SubItemBackground: 'theme4', // Value should be theme1/theme2/theme3/theme4/theme5/theme6/theme7/theme8/theme9
  17. ActiveItemStyle: 'style0',
  18. ItemBorder: true,
  19. ItemBorderStyle: 'solid', // value should be solid/dotted/dashed
  20. SubItemBorder: true,
  21. DropDownIconStyle: 'style1', // value should be style1,style2,style3
  22. FixedNavbarPosition: false,
  23. FixedHeaderPosition: false,
  24. // Horizontal Navigation option
  25. horizontalMenuplacement: 'top', // value should be top/bottom
  26. horizontalMenulayout: 'widebox', //value should be wide/box/widebox
  27. horizontalBrandItem: true,
  28. horizontalLeftNavItem: true,
  29. horizontalRightItem: false,
  30. horizontalSearchItem: false,
  31. horizontalBrandItemAlign: 'left',
  32. horizontalLeftNavItemAlign: 'right',
  33. horizontalRightItemAlign: 'right',
  34. horizontalsearchItemAlign: 'right',
  35. horizontalstickynavigation: false,
  36. horizontalNavigationView: 'view1',
  37. horizontalNavIsCentered: false,
  38. horizontalNavigationMenuIcon: true,
  39. layouttype:'light',
  40. // Vertical Navigation option
  41. verticalMenuplacement: 'left', // value should be left/right
  42. verticalMenulayout: 'wide', // value should be wide/box/widebox
  43. collapseVerticalLeftHeader: true,
  44. VerticalSubMenuItemIconStyle: 'style6', // value should be style1,style2,style3
  45. VerticalNavigationView: 'view1',
  46. verticalMenueffect: {
  47. desktop: "shrink",
  48. tablet: "push",
  49. phone: "overlay",
  50. },
  51. defaultVerticalMenu: {
  52. desktop: "expanded", // value should be offcanvas/collapsed/expanded/compact/compact-acc/fullpage/ex-popover/sub-expanded
  53. tablet: "collapsed", // value should be offcanvas/collapsed/expanded/compact
  54. phone: "offcanvas", // value should be offcanvas/collapsed/expanded/compact
  55. },
  56. onToggleVerticalMenu: {
  57. desktop: "collapsed", // value should be offcanvas/collapsed/expanded/compact
  58. tablet: "expanded", // value should be offcanvas/collapsed/expanded/compact
  59. phone: "expanded", // value should be offcanvas/collapsed/expanded/compact
  60. },
  61. };
  62. var satnt,mt,tw,dt,is_chrome,is_explorer ,is_firefox,is_safari,is_opera,is_mac,is_windows;
  63. var settings = $.extend({}, defaults, settings);
  64. var PcodedMenu = {
  65. PcodedMenuInit: function() {
  66. PcodedMenu.Handlethemelayout();
  67. PcodedMenu.HandleverticalMenuplacement();
  68. PcodedMenu.HandlehorizontalMenuplacement();
  69. PcodedMenu.HandleMenulayout();
  70. PcodedMenu.HandleDeviceType();
  71. PcodedMenu.Handlecomponetheight();
  72. PcodedMenu.HandleMenuOnClick();
  73. PcodedMenu.HandleMenuTrigger();
  74. PcodedMenu.HandleSubMenuTrigger();
  75. PcodedMenu.HandleActiveItem();
  76. PcodedMenu.HandleOffcanvasMenu();
  77. PcodedMenu.HandleVerticalLeftHeader();
  78. PcodedMenu.HandleThemeBackground();
  79. PcodedMenu.HandleActiveItemStyle();
  80. PcodedMenu.HandleItemBorder();
  81. PcodedMenu.HandleBorderStyle();
  82. PcodedMenu.HandleSubItemBorder();
  83. PcodedMenu.HandleDropDownIconStyle();
  84. PcodedMenu.HandleOptionSelectorPanel();
  85. PcodedMenu.HandleNavbarPosition();
  86. PcodedMenu.HandleVerticalSubMenuItemIconStyle();
  87. PcodedMenu.HandleVerticalNavigationView();
  88. PcodedMenu.HandleHorizontalItemIsCentered();
  89. PcodedMenu.HandleHorizontalItemAlignment();
  90. PcodedMenu.HandleSubMenuOffset();
  91. PcodedMenu.HandleHorizontalStickyNavigation();
  92. PcodedMenu.HandleDocumentClickEvent();
  93. PcodedMenu.HandleVerticalScrollbar();
  94. PcodedMenu.HandleHorizontalMobileMenuToggle();
  95. PcodedMenu.horizontalNavigationMenuIcon();
  96. PcodedMenu.verticalNavigationSearchBar();
  97. PcodedMenu.safariBrowsercompatibility();
  98. PcodedMenu.Handlemenutype();
  99. PcodedMenu.Handlelayoutvartype();
  100. },
  101. safariBrowsercompatibility: function() {
  102. is_chrome = navigator.userAgent.indexOf('Chrome') > -1;
  103. is_explorer = navigator.userAgent.indexOf('MSIE') > -1;
  104. is_firefox = navigator.userAgent.indexOf('Firefox') > -1;
  105. is_safari = navigator.userAgent.indexOf("Safari") > -1;
  106. is_opera = navigator.userAgent.indexOf("Presto") > -1;
  107. is_mac = (navigator.userAgent.indexOf('Mac OS') != -1);
  108. is_windows = !is_mac;
  109. if (is_chrome && is_safari) {
  110. is_safari = false;
  111. }
  112. if (is_safari || is_windows) {}
  113. },
  114. verticalNavigationSearchBar: function() {
  115. if (settings.themelayout === "vertical") {
  116. $('.searchbar-toggle').on('click', function() {
  117. $(this).parent('.pcoded-search').toggleClass('open');
  118. });
  119. }
  120. },
  121. horizontalNavigationMenuIcon: function() {
  122. if (settings.themelayout === "horizontal") {
  123. switch (settings.horizontalNavigationMenuIcon) {
  124. case false:
  125. $('#' + oid + '.pcoded .pcoded-navbar .pcoded-item > li > a .pcoded-micon').hide();
  126. $('#' + oid + '.pcoded .pcoded-navbar .pcoded-item.pcoded-search-item > li > a .pcoded-micon').show();
  127. break;
  128. default:
  129. }
  130. }
  131. },
  132. HandleHorizontalMobileMenuToggle: function() {
  133. if (settings.themelayout === "horizontal") {
  134. $('#mobile-collapse').on('click', function() {
  135. $('.pcoded-navbar').toggleClass('show-menu')
  136. });
  137. }
  138. },
  139. HandleVerticalScrollbar: function() {
  140. if (settings.themelayout === "vertical") {
  141. satnt = settings.defaultVerticalMenu.desktop;
  142. if (satnt === "expanded" || satnt === "compact") {
  143. mt = settings.MenuTrigger;
  144. if (mt === "click") {
  145. $(window).on("load", function() {
  146. $(".sidebar_toggle a").click(function(e) {
  147. e.preventDefault();
  148. var $this = $(this);
  149. rel = $this.attr("rel");
  150. el = $(".pcoded-navbar");
  151. // if (el.hasClass("mCS_destroyed")) {
  152. // el.mCustomScrollbar({
  153. // axis:"y",
  154. // setHeight:"calc(100% - 80px)",
  155. // autoHideScrollbar: false,
  156. // scrollInertia: 100,
  157. // theme:"minimal",
  158. // });
  159. // } else {
  160. // el.mCustomScrollbar("destroy");
  161. // }
  162. });
  163. });
  164. }
  165. // $(".main-menu").mCustomScrollbar({
  166. // axis:"y",
  167. // setHeight:"calc(100% - 80px)",
  168. // autoHideScrollbar: false,
  169. // scrollInertia: 100,
  170. // theme:"minimal",
  171. // });
  172. }
  173. }
  174. },
  175. HandleDocumentClickEvent: function() {
  176. function closeSubMenu() {
  177. $(document).on('click', function(evt) {
  178. var target = $(evt.target);
  179. var sdt = $('#' + oid).attr('pcoded-device-type');
  180. var vnt = $('#' + oid).attr('vertical-nav-type');
  181. var el = $('#' + oid + ' .pcoded-item li');
  182. if (!target.parents('.pcoded-item').length) {
  183. if (sdt != "phone") {
  184. if (vnt != "expanded") {
  185. el.removeClass('pcoded-trigger');
  186. }
  187. }
  188. }
  189. });
  190. };
  191. function closeLeftbarSearch() {
  192. $(document).on('click', function(evt) {
  193. var target = $(evt.target);
  194. var el = $('#' + oid + ' .pcoded-search');
  195. if (!target.parents('.pcoded-search').length) {
  196. el.removeClass('open');
  197. }
  198. });
  199. };
  200. closeSubMenu();
  201. closeLeftbarSearch();
  202. },
  203. HandleHorizontalStickyNavigation: function() {
  204. switch (settings.horizontalstickynavigation) {
  205. case true:
  206. $(window).on('scroll', function() {
  207. var scrolltop = $(this).scrollTop();
  208. if (scrolltop >= 100) {
  209. $('.pcoded-navbar').addClass('stickybar');
  210. $('stickybar').fadeIn(3000);
  211. } else if (scrolltop <= 100) {
  212. $('.pcoded-navbar').removeClass('stickybar')
  213. $('.stickybar').fadeOut(3000);
  214. }
  215. });
  216. break;
  217. case false:
  218. $('.pcoded-navbar').removeClass('stickybar')
  219. break;
  220. default:
  221. }
  222. },
  223. HandleSubMenuOffset: function() {
  224. switch (settings.themelayout) {
  225. case 'horizontal':
  226. var trigger = settings.SubMenuTrigger;
  227. if (trigger === "hover") {
  228. $("li.pcoded-hasmenu").on('mouseenter mouseleave', function(e) {
  229. if ($('.pcoded-submenu', this).length) {
  230. var elm = $('.pcoded-submenu:first', this);
  231. var off = elm.offset();
  232. var l = off.left;
  233. var w = elm.width();
  234. var docH = $(window).height();
  235. var docW = $(window).width();
  236. //console.log("length = " + $('.pcoded-submenu', this).length + " off=" + off + " l=" + l+ " w=" + w + " doch=" + docH + " docW=" + docW)
  237. var isEntirelyVisible = (l + w <= docW);
  238. if (!isEntirelyVisible) {
  239. $(this).addClass('edge');
  240. } else {
  241. $(this).removeClass('edge');
  242. }
  243. }
  244. });
  245. } else {
  246. $("li.pcoded-hasmenu").on('click', function(e) {
  247. e.preventDefault();
  248. if ($('.pcoded-submenu', this).length) {
  249. var elm = $('.pcoded-submenu:first', this);
  250. var off = elm.offset();
  251. var l = off.left;
  252. var w = elm.width();
  253. var docH = $(window).height();
  254. var docW = $(window).width();
  255. var isEntirelyVisible = (l + w <= docW);
  256. if (!isEntirelyVisible) {
  257. $(this).toggleClass('edge');
  258. }
  259. }
  260. });
  261. }
  262. break;
  263. default:
  264. }
  265. },
  266. HandleHorizontalItemIsCentered: function() {
  267. if (settings.themelayout === "horizontal") {
  268. switch (settings.horizontalNavIsCentered) {
  269. case true:
  270. $('#' + oid + ' .pcoded-navbar').addClass("isCentered");
  271. break;
  272. case false:
  273. $('#' + oid + ' .pcoded-navbar').removeClass("isCentered");
  274. break;
  275. default:
  276. }
  277. }
  278. },
  279. HandleHorizontalItemAlignment: function() {
  280. var layout = settings.themelayout;
  281. if (layout === "horizontal") {
  282. function branditemalignment() {
  283. var elm = $('#' + oid + '.pcoded .pcoded-navbar .pcoded-brand');
  284. if (settings.horizontalBrandItem === true) {
  285. switch (settings.horizontalBrandItemAlign) {
  286. case 'left':
  287. elm.removeClass('pcoded-right-align');
  288. elm.addClass('pcoded-left-align');
  289. break;
  290. case 'right':
  291. elm.removeClass('pcoded-left-align');
  292. elm.addClass('pcoded-right-align');
  293. break;
  294. default:
  295. }
  296. } else {
  297. elm.hide();
  298. }
  299. };
  300. function leftitemalignment() {
  301. var elm = $('#' + oid + '.pcoded .pcoded-navbar .pcoded-item.pcoded-left-item');
  302. if (settings.horizontalLeftNavItem === true) {
  303. switch (settings.horizontalLeftNavItemAlign) {
  304. case 'left':
  305. elm.removeClass('pcoded-right-align');
  306. elm.addClass('pcoded-left-align');
  307. break;
  308. case 'right':
  309. elm.removeClass('pcoded-left-align');
  310. elm.addClass('pcoded-right-align');
  311. break;
  312. default:
  313. }
  314. } else {
  315. elm.hide();
  316. }
  317. };
  318. function rightitemalignment() {
  319. var elm = $('#' + oid + '.pcoded .pcoded-navbar .pcoded-item.pcoded-right-item');
  320. if (settings.horizontalRightItem === true) {
  321. switch (settings.horizontalRightItemAlign) {
  322. case 'left':
  323. elm.removeClass('pcoded-right-align');
  324. elm.addClass('pcoded-left-align');
  325. break;
  326. case 'right':
  327. elm.removeClass('pcoded-left-align');
  328. elm.addClass('pcoded-right-align');
  329. break;
  330. default:
  331. }
  332. } else {
  333. elm.hide();
  334. }
  335. };
  336. function searchitemalignment() {
  337. var elm = $('#' + oid + '.pcoded .pcoded-navbar .pcoded-search-item');
  338. if (settings.horizontalSearchItem === true) {
  339. switch (settings.horizontalsearchItemAlign) {
  340. case 'left':
  341. elm.removeClass('pcoded-right-align');
  342. elm.addClass('pcoded-left-align');
  343. break;
  344. case 'right':
  345. elm.removeClass('pcoded-left-align');
  346. elm.addClass('pcoded-right-align');
  347. break;
  348. default:
  349. }
  350. } else {
  351. elm.hide();
  352. }
  353. };
  354. if (settings.horizontalNavIsCentered === false) {
  355. branditemalignment();
  356. leftitemalignment();
  357. rightitemalignment();
  358. searchitemalignment();
  359. }
  360. }
  361. },
  362. HandleVerticalNavigationView: function() {
  363. switch (settings.themelayout) {
  364. case 'vertical':
  365. var ev = settings.VerticalNavigationView;
  366. $('#' + oid + '.pcoded').attr("vnavigation-view", ev);
  367. break;
  368. case 'horizontal':
  369. var ev = settings.horizontalNavigationView;
  370. $('#' + oid + '.pcoded').attr("hnavigation-view", ev);
  371. break;
  372. default:
  373. }
  374. },
  375. HandleVerticalSubMenuItemIconStyle: function() {
  376. switch (settings.themelayout) {
  377. case 'vertical':
  378. var ev = settings.VerticalSubMenuItemIconStyle;
  379. $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').attr("subitem-icon", ev);
  380. break;
  381. case 'horizontal':
  382. $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').attr("subitem-icon", ev);
  383. break;
  384. default:
  385. }
  386. },
  387. HandleNavbarPosition: function() {
  388. var navposition = settings.FixedNavbarPosition;
  389. var headerposition = settings.FixedHeaderPosition;
  390. var rheaderposition = settings.FixedRightHeaderPosition;
  391. switch (settings.themelayout) {
  392. case 'vertical':
  393. if (navposition == true) {
  394. $('#' + oid + ' .pcoded-navbar').attr("pcoded-navbar-position", 'fixed');
  395. $('#' + oid + ' .pcoded-header .pcoded-left-header').attr("pcoded-lheader-position", 'fixed');
  396. } else {
  397. $('#' + oid + ' .pcoded-navbar').attr("pcoded-navbar-position", 'absolute');
  398. $('#' + oid + ' .pcoded-header .pcoded-left-header').attr("pcoded-lheader-position", 'absolute');
  399. }
  400. if (headerposition == true) {
  401. $('#' + oid + ' .pcoded-header').attr("pcoded-header-position", 'fixed');
  402. $('#' + oid + ' .pcoded-main-container').css('margin-top', $(".pcoded-header").outerHeight());
  403. } else {
  404. $('#' + oid + ' .pcoded-header').attr("pcoded-header-position", 'relative');
  405. $('#' + oid + ' .pcoded-main-container').css('margin-top', '0px');
  406. }
  407. break;
  408. case 'horizontal':
  409. if (navposition == true) {
  410. $('#' + oid + ' .pcoded-navbar').attr("pcoded-navbar-position", 'fixed');
  411. $('#' + oid + ' .pcoded-header .pcoded-left-header').attr("pcoded-lheader-position", 'fixed');
  412. } else {
  413. $('#' + oid + ' .pcoded-navbar').attr("pcoded-navbar-position", 'absolute');
  414. $('#' + oid + ' .pcoded-header .pcoded-left-header').attr("pcoded-lheader-position", 'absolute');
  415. }
  416. if (headerposition == true) {
  417. $('#' + oid + ' .pcoded-header').attr("pcoded-header-position", 'fixed');
  418. $('#' + oid + ' .pcoded-main-container').css('margin-top', $(".pcoded-header").outerHeight());
  419. } else {
  420. $('#' + oid + ' .pcoded-header').attr("pcoded-header-position", 'relative');
  421. $('#' + oid + ' .pcoded-main-container').css('margin-top', '0px');
  422. }
  423. break;
  424. default:
  425. }
  426. },
  427. HandleOptionSelectorPanel: function() {
  428. $('.selector-toggle > a').on("click", function() {
  429. //debugger;
  430. $('#styleSelector').toggleClass('open')
  431. });
  432. },
  433. HandleDropDownIconStyle: function() {
  434. var ev = settings.DropDownIconStyle;
  435. switch (settings.themelayout) {
  436. case 'vertical':
  437. $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').attr("dropdown-icon", ev);
  438. break;
  439. case 'horizontal':
  440. $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').attr("dropdown-icon", ev);
  441. break;
  442. default:
  443. }
  444. },
  445. HandleSubItemBorder: function() {
  446. switch (settings.SubItemBorder) {
  447. case true:
  448. $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("subitem-border", "true");
  449. break;
  450. case false:
  451. $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("subitem-border", "false");
  452. break;
  453. default:
  454. }
  455. },
  456. HandleBorderStyle: function() {
  457. var ev = settings.ItemBorderStyle;
  458. switch (settings.ItemBorder) {
  459. case true:
  460. $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("item-border-style", ev);
  461. break;
  462. case false:
  463. $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("item-border-style", "");
  464. break;
  465. default:
  466. }
  467. },
  468. HandleItemBorder: function() {
  469. switch (settings.ItemBorder) {
  470. case true:
  471. $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("item-border", "true");
  472. break;
  473. case false:
  474. $('#' + oid + ' .pcoded-navbar .pcoded-item').attr("item-border", "false");
  475. break;
  476. default:
  477. }
  478. },
  479. HandleActiveItemStyle: function() {
  480. var ev = settings.ActiveItemStyle;
  481. if (ev != undefined && ev != "") {
  482. $('#' + oid + ' .pcoded-navbar').attr("active-item-style", ev);
  483. } else {
  484. $('#' + oid + ' .pcoded-navbar').attr("active-item-style", "style0");
  485. }
  486. },
  487. Handlemenutype: function() {
  488. var ev = settings.menutype;
  489. var ef = settings.freamtype;
  490. var nimg = settings.NavbarImage;
  491. var img = settings.ActiveNavbarImage;
  492. if (ev != undefined && ev != "") {
  493. $('#' + oid).attr("nav-type", ev);
  494. } else {
  495. $('#' + oid).attr("nav-type", "st1");
  496. }
  497. if (ef != undefined && ef != "") {
  498. $('#' + oid).attr("fream-type", ef);
  499. } else {
  500. $('#' + oid).attr("fream-type", "theme1");
  501. }
  502. if (nimg != undefined && nimg != "") {
  503. $('#' + oid).attr("sidebar-img", nimg);
  504. } else {
  505. $('#' + oid).attr("sidebar-img", "false");
  506. }
  507. if (img != undefined && img != "") {
  508. $('#' + oid).attr("sidebar-img-type", img);
  509. } else {
  510. $('#' + oid).attr("sidebar-img-type", "img1");
  511. }
  512. },
  513. Handlelayoutvartype: function() {
  514. var ev = settings.layouttype;
  515. if (ev != undefined && ev != "") {
  516. $('#' + oid).attr("layout-type", ev);
  517. } else {
  518. $('#' + oid).attr("layout-type", "light");
  519. }
  520. },
  521. HandleThemeBackground: function() {
  522. function themebackgroundpattern() {
  523. var ev = settings.ThemeBackgroundPattern;
  524. if (ev != undefined && ev != "") {
  525. $('body').attr("themebg-pattern", ev);
  526. } else {
  527. $('body').attr("themebg-pattern", "pattern1");
  528. }
  529. };
  530. function setheadertheme() {
  531. var ev = settings.HeaderBackground;
  532. if (ev != undefined && ev != "") {
  533. $('#' + oid + ' .pcoded-header').attr("header-theme", ev);
  534. } else {
  535. $('#' + oid + ' .pcoded-header').attr("header-theme", "theme1");
  536. }
  537. };
  538. function setlheadertheme() {
  539. var ev = settings.LHeaderBackground;
  540. if (ev != undefined && ev != "") {
  541. $('#' + oid + ' .pcoded-header .navbar-logo').attr("logo-theme", ev);
  542. $('#' + oid + ' .pcoded-navigatio-lavel').attr("menu-title-theme", "theme5");
  543. } else {
  544. $('#' + oid + ' .pcoded-header .navbar-logo').attr("logo-theme", "theme4");
  545. $('#' + oid + ' .pcoded-navigatio-lavel').attr("menu-title-theme", "theme5");
  546. }
  547. };
  548. function setnavbartheme() {
  549. var ev = settings.NavbarBackground;
  550. if (ev != undefined && ev != "") {
  551. $('#' + oid + ' .pcoded-navbar').attr("navbar-theme", ev);
  552. } else {
  553. $('#' + oid + ' .pcoded-navbar').attr("navbar-theme", "theme1");
  554. }
  555. };
  556. function setactiveitemtheme() {
  557. var ev = settings.ActiveItemBackground;
  558. if (ev != undefined && ev != "") {
  559. $('#' + oid + ' .pcoded-navbar').attr("active-item-theme", ev);
  560. } else {
  561. $('#' + oid + ' .pcoded-navbar').attr("active-item-theme", "theme1");
  562. }
  563. };
  564. function setsubitemtheme() {
  565. var ev = settings.SubItemBackground;
  566. if (ev != undefined && ev != "") {
  567. $('#' + oid + ' .pcoded-navbar').attr("sub-item-theme", ev);
  568. } else {
  569. $('#' + oid + ' .pcoded-navbar').attr("sub-item-theme", "theme1");
  570. }
  571. };
  572. themebackgroundpattern();
  573. setheadertheme();
  574. setlheadertheme();
  575. setnavbartheme();
  576. setactiveitemtheme();
  577. setsubitemtheme();
  578. },
  579. HandleVerticalLeftHeader: function() {
  580. if (settings.themelayout === "vertical") {
  581. switch (settings.collapseVerticalLeftHeader) {
  582. case true:
  583. $('#' + oid + ' .pcoded-header').addClass('iscollapsed');
  584. $('#' + oid + ' .pcoded-header').removeClass('nocollapsed');
  585. $('#' + oid + '.pcoded').addClass('iscollapsed');
  586. $('#' + oid + '.pcoded').removeClass('nocollapsed');
  587. /* $('#'+oid + ' .pcoded-header.nocollapsed .pcoded-left-header').css('width', ''); */
  588. break;
  589. case false:
  590. $('#' + oid + ' .pcoded-header').removeClass('iscollapsed');
  591. $('#' + oid + ' .pcoded-header').addClass('nocollapsed');
  592. $('#' + oid + '.pcoded').removeClass('iscollapsed');
  593. $('#' + oid + '.pcoded').addClass('nocollapsed');
  594. /* $('#'+oid + ' .pcoded-header.nocollapsed .pcoded-left-header').css('width', $(".pcoded-navbar").width()); */
  595. break;
  596. default:
  597. }
  598. } else {
  599. return false;
  600. }
  601. },
  602. HandleOffcanvasMenu: function() {
  603. if (settings.themelayout === "vertical") {
  604. var vnt = $('#' + oid).attr("vertical-nav-type");
  605. if (vnt == "offcanvas") {
  606. $('#' + oid).attr("vertical-layout", "wide");
  607. }
  608. }
  609. },
  610. HandleActiveItem: function() {
  611. /*switch(settings.activeMenuClass){
  612. case "active":
  613. $('li:not("li.pcoded-hasmenu")').on( 'click', function () {
  614. var str = $(this).closest('.pcoded-submenu').length;
  615. if (str === 0){
  616. $(this).closest('.pcoded-inner-navbar').find('li.active').removeClass('active');
  617. $(this).addClass('active');
  618. }else{
  619. if($(this).hasClass('active')){
  620. $(this).removeClass('active');
  621. }else{
  622. $(this).closest('.pcoded-inner-navbar').find('li.active').removeClass('active');
  623. $(this).parents('.pcoded-hasmenu').addClass('active');
  624. $(this).addClass('active');
  625. }
  626. }
  627. });
  628. break;
  629. case false:
  630. $('.pcoded-header').removeClass(settings.navbbgclass);
  631. break;
  632. default:
  633. }*/
  634. },
  635. HandleSubMenuTrigger: function() {
  636. switch (settings.SubMenuTrigger) {
  637. case 'hover':
  638. $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').addClass('is-hover');
  639. // Initialize
  640. var $window = $(window);
  641. var $dropdown = $('.pcoded-submenu > li');
  642. var currentSize = $window.width();
  643. var currentEvent = '';
  644. // Attach current event on load
  645. (currentSize >= 767) ? bindTwo('hover'): bindTwo('click');
  646. // Atach window resize event
  647. $window.resize(function() {
  648. // get windows new size
  649. var newSize = $window.width();
  650. // Exit if size is same
  651. if (currentSize == newSize) {
  652. return;
  653. }
  654. // Check if size changed, if its greater/smaller and which current event is attached so we dont attach multiple events
  655. if (newSize >= 767 && currentEvent != 'hover') {
  656. bindTwo('hover');
  657. } else if (newSize < 767 && currentEvent != 'click') {
  658. bindTwo('click');
  659. }
  660. // Update new size
  661. currentSize = newSize;
  662. });
  663. function bindTwo(eventType) {
  664. if (eventType == 'hover') {
  665. // Update currentEvent
  666. currentEvent = eventType;
  667. // Make sure all previous events are removed and attach hover
  668. $dropdown.off('click').off('mouseenter mouseleave').hover(
  669. function() {
  670. $(this).addClass('pcoded-trigger');
  671. },
  672. function() {
  673. $(this).removeClass('pcoded-trigger');
  674. }
  675. );
  676. } else if (eventType == 'click') {
  677. // Update currentEvent
  678. currentEvent = eventType;
  679. // Make sure all previous events are removed and attach hover
  680. $dropdown.off('mouseenter mouseleave').off('click').on('click',
  681. function(e) {
  682. e.stopPropagation();
  683. var str = $(this).closest('.pcoded-submenu').length;
  684. if (str === 0) {
  685. if ($(this).hasClass('pcoded-trigger')) {
  686. $(this).removeClass('pcoded-trigger');
  687. } else {
  688. $(this).closest('.pcoded-inner-navbar').find('li.pcoded-trigger').removeClass('pcoded-trigger');
  689. $(this).addClass('pcoded-trigger');
  690. }
  691. } else {
  692. if ($(this).hasClass('pcoded-trigger')) {
  693. $(this).removeClass('pcoded-trigger');
  694. } else {
  695. $(this).closest('.pcoded-submenu').find('li.pcoded-trigger').removeClass('pcoded-trigger');
  696. $(this).addClass('pcoded-trigger');
  697. }
  698. }
  699. }
  700. );
  701. }
  702. }
  703. break;
  704. case 'click':
  705. $('#' + oid + ' .pcoded-navbar .pcoded-hasmenu').removeClass('is-hover');
  706. $(".pcoded-submenu > li").on('click', function(e) {
  707. e.stopPropagation();
  708. var str = $(this).closest('.pcoded-submenu').length;
  709. if (str === 0) {
  710. if ($(this).hasClass('pcoded-trigger')) {
  711. $(this).removeClass('pcoded-trigger');
  712. } else {
  713. $(this).closest('.pcoded-inner-navbar').find('li.pcoded-trigger').removeClass('pcoded-trigger');
  714. $(this).addClass('pcoded-trigger');
  715. }
  716. } else {
  717. if ($(this).hasClass('pcoded-trigger')) {
  718. $(this).removeClass('pcoded-trigger');
  719. } else {
  720. $(this).closest('.pcoded-submenu').find('li.pcoded-trigger').removeClass('pcoded-trigger');
  721. $(this).addClass('pcoded-trigger');
  722. }
  723. }
  724. });
  725. break;
  726. }
  727. },
  728. HandleMenuTrigger: function() {
  729. switch (settings.MenuTrigger) {
  730. case 'hover':
  731. $('#' + oid + ' .pcoded-navbar').addClass('is-hover');
  732. // Initialize
  733. var $window = $(window);
  734. var $dropdown = $(".pcoded-item > li");
  735. var currentSize = $window.width();
  736. var currentEvent = '';
  737. // Attach current event on load
  738. (currentSize >= 767) ? bindOne('hover'): bindOne('click');
  739. // Atach window resize event
  740. $window.resize(function() {
  741. // get windows new size
  742. var newSize = $window.width();
  743. // Exit if size is same
  744. if (currentSize == newSize) {
  745. return;
  746. }
  747. // Check if size changed, if its greater/smaller and which current event is attached so we dont attach multiple events
  748. if (newSize >= 767 && currentEvent != 'hover') {
  749. bindOne('hover');
  750. } else if (newSize < 767 && currentEvent != 'click') {
  751. bindOne('click');
  752. }
  753. // Update new size
  754. currentSize = newSize;
  755. });
  756. function bindOne(eventType) {
  757. if (eventType == 'hover') {
  758. // Update currentEvent
  759. currentEvent = eventType;
  760. // Make sure all previous events are removed and attach hover
  761. $dropdown.off('click').off('mouseenter mouseleave').hover(
  762. function() {
  763. $(this).addClass('pcoded-trigger');
  764. },
  765. function() {
  766. $(this).removeClass('pcoded-trigger');
  767. }
  768. );
  769. } else if (eventType == 'click') {
  770. // Update currentEvent
  771. currentEvent = eventType;
  772. // Make sure all previous events are removed and attach hover
  773. $dropdown.off('mouseenter mouseleave').off('click').on('click',
  774. function() {
  775. if ($(this).hasClass('pcoded-trigger')) {
  776. $(this).removeClass('pcoded-trigger');
  777. } else {
  778. $(this).closest('.pcoded-inner-navbar').find('li.pcoded-trigger').removeClass('pcoded-trigger');
  779. $(this).addClass('pcoded-trigger');
  780. }
  781. }
  782. );
  783. }
  784. }
  785. break;
  786. case 'click':
  787. $('#' + oid + ' .pcoded-navbar').removeClass('is-hover');
  788. $(".pcoded-item > li ").on('click', function() {
  789. if ($(this).hasClass('pcoded-trigger')) {
  790. $(this).removeClass('pcoded-trigger');
  791. } else {
  792. $(this).closest('.pcoded-inner-navbar').find('li.pcoded-trigger').removeClass('pcoded-trigger');
  793. $(this).addClass('pcoded-trigger');
  794. }
  795. });
  796. break;
  797. }
  798. },
  799. HandleMenuOnClick: function() {
  800. var totalwidth = $(window)[0].innerWidth;
  801. if (settings.themelayout === "vertical") {
  802. $('#mobile-collapse,.sidebar_toggle a, .pcoded-overlay-box,.menu-toggle a').on("click", function() {
  803. $(this).parent().find('.menu-icon').toggleClass("is-clicked");
  804. var dt = $('#' + oid).attr("pcoded-device-type");
  805. if (dt == "desktop") {
  806. var dmc = settings.onToggleVerticalMenu.desktop;
  807. var dm = settings.defaultVerticalMenu.desktop;
  808. var dn = $('#' + oid).attr("vertical-nav-type");
  809. if (dn == dm) {
  810. $('#' + oid).attr("vertical-nav-type", dmc);
  811. } else if (dn == dmc) {
  812. $('#' + oid).attr("vertical-nav-type", dm);
  813. } else {
  814. return false;
  815. }
  816. } else if (dt == "tablet") {
  817. var tmc = settings.onToggleVerticalMenu.tablet;
  818. var tm = settings.defaultVerticalMenu.tablet;
  819. var tn = $('#' + oid).attr("vertical-nav-type");
  820. if (tn == tm) {
  821. $('#' + oid).attr("vertical-nav-type", tmc);
  822. } else if (dn == dmc) {
  823. $('#' + oid).attr("vertical-nav-type", tm);
  824. }
  825. } else if (dt == "phone") {
  826. var pmc = settings.onToggleVerticalMenu.phone;
  827. var pm = settings.defaultVerticalMenu.phone;
  828. var pn = $('#' + oid).attr("vertical-nav-type");
  829. if (pn == pm) {
  830. $('#' + oid).attr("vertical-nav-type", pmc);
  831. } else if (dn == dmc) {
  832. $('#' + oid).attr("vertical-nav-type", pm);
  833. }
  834. }
  835. $('.pcoded').addClass("pcoded-toggle-animate");
  836. setTimeout(function() {
  837. $('.pcoded').removeClass("pcoded-toggle-animate");
  838. }, 250);
  839. });
  840. } else if (settings.themelayout === "horizontal") {
  841. if (totalwidth >= 768 && totalwidth <= 992) {
  842. $('#' + oid).attr("pcoded-device-type", "tablet");
  843. } else if (totalwidth < 768) {
  844. $('#' + oid).attr("pcoded-device-type", "phone");
  845. } else {
  846. $('#' + oid).attr("pcoded-device-type", "desktop");
  847. }
  848. }
  849. },
  850. Handlecomponetheight: function() {
  851. function setHeight() {
  852. var WH = $(window).height();
  853. var HH = $(".pcoded-header").innerHeight();
  854. var NH = $(".pcoded-navbar").innerHeight();
  855. var FH = $(".pcoded-footer").innerHeight();
  856. var contentHH = WH - HH;
  857. var contentVH = WH - HH;
  858. var lpanelH = WH - HH;
  859. // if (settings.themelayout === "horizontal" ) {
  860. // $(".pcoded-navbar").css('height', contentHH);
  861. // } else if (settings.themelayout === "vertical" ) {
  862. // if ( contentVH >= lpanelH ){
  863. // $(".pcoded-navbar").css('height', contentVH);
  864. // }else {
  865. // $(".pcoded-navbar").css('height', lpanelH);
  866. // }
  867. // } else {
  868. // return false;
  869. // }
  870. };
  871. setHeight();
  872. $(window).resize(function() {
  873. setHeight();
  874. });
  875. },
  876. HandleDeviceType: function() {
  877. function devicesize() {
  878. var totalwidth = $(window)[0].innerWidth;
  879. if (settings.themelayout === "vertical") {
  880. if (totalwidth >= 768 && totalwidth <= 992) {
  881. $('#' + oid).attr("pcoded-device-type", "tablet");
  882. var value = settings.defaultVerticalMenu.tablet;
  883. if (value != undefined && value != "") {
  884. $('#' + oid).attr("vertical-nav-type", value);
  885. } else {
  886. $('#' + oid).attr("vertical-nav-type", "collapsed");
  887. }
  888. var ev = settings.verticalMenueffect.tablet;
  889. if (ev != undefined && value != "") {
  890. $('#' + oid).attr("vertical-effect", ev);
  891. } else {
  892. $('#' + oid).attr("vertical-effect", "shrink");
  893. }
  894. } else if (totalwidth < 768) {
  895. $('#' + oid).attr("pcoded-device-type", "phone");
  896. var value = settings.defaultVerticalMenu.phone;
  897. if (value != undefined && value != "") {
  898. $('#' + oid).attr("vertical-nav-type", value);
  899. } else {
  900. $('#' + oid).attr("vertical-nav-type", "offcanvas");
  901. }
  902. var ev = settings.verticalMenueffect.phone;
  903. if (ev != undefined && value != "") {
  904. $('#' + oid).attr("vertical-effect", ev);
  905. } else {
  906. $('#' + oid).attr("vertical-effect", "push");
  907. }
  908. } else {
  909. $('#' + oid).attr("pcoded-device-type", "desktop");
  910. var value = settings.defaultVerticalMenu.desktop;
  911. if (value != undefined && value != "") {
  912. $('#' + oid).attr("vertical-nav-type", value);
  913. } else {
  914. $('#' + oid).attr("vertical-nav-type", "expanded");
  915. }
  916. var ev = settings.verticalMenueffect.desktop;
  917. if (ev != undefined && value != "") {
  918. $('#' + oid).attr("vertical-effect", ev);
  919. } else {
  920. $('#' + oid).attr("vertical-effect", "shrink");
  921. }
  922. }
  923. } else if (settings.themelayout === "horizontal") {
  924. if (totalwidth >= 768 && totalwidth <= 992) {
  925. $('#' + oid).attr("pcoded-device-type", "tablet");
  926. } else if (totalwidth < 768) {
  927. $('#' + oid).attr("pcoded-device-type", "phone");
  928. } else {
  929. $('#' + oid).attr("pcoded-device-type", "desktop");
  930. }
  931. }
  932. };
  933. devicesize();
  934. $(window).resize(function() {
  935. tw = $(window)[0].innerWidth;
  936. dt = $('#' + oid).attr('pcoded-device-type')
  937. if (dt == 'desktop' && tw < 992) {
  938. devicesize();
  939. } else if (dt == 'phone' && tw > 768) {
  940. devicesize();
  941. } else if (dt == 'tablet' && tw < 768) {
  942. devicesize();
  943. } else if (dt == 'tablet' && tw > 992) {
  944. devicesize();
  945. }
  946. });
  947. },
  948. HandleMenulayout: function() {
  949. if (settings.themelayout === "vertical") {
  950. switch (settings.verticalMenulayout) {
  951. case 'wide':
  952. $('#' + oid).attr("vertical-layout", "wide");
  953. break;
  954. case 'box':
  955. $('#' + oid).attr("vertical-layout", "box");
  956. break;
  957. case 'widebox':
  958. $('#' + oid).attr("vertical-layout", "widebox");
  959. break;
  960. default:
  961. }
  962. } else if (settings.themelayout === "horizontal") {
  963. switch (settings.horizontalMenulayout) {
  964. case 'wide':
  965. $('#' + oid).attr("horizontal-layout", "wide");
  966. break;
  967. case 'box':
  968. $('#' + oid).attr("horizontal-layout", "box");
  969. break;
  970. case 'widebox':
  971. $('#' + oid).attr("horizontal-layout", "widebox");
  972. break;
  973. default:
  974. }
  975. } else {
  976. return false;
  977. }
  978. },
  979. HandlehorizontalMenuplacement: function() {
  980. if (settings.themelayout === "horizontal") {
  981. switch (settings.horizontalMenuplacement) {
  982. case 'bottom':
  983. $('#' + oid).attr("horizontal-placement", "bottom");
  984. break;
  985. case 'top':
  986. $('#' + oid).attr("horizontal-placement", "top");
  987. break;
  988. default:
  989. }
  990. } else {
  991. $('#' + oid).removeAttr("horizontal-placement");
  992. }
  993. },
  994. HandleverticalMenuplacement: function() {
  995. if (settings.themelayout === "vertical") {
  996. switch (settings.verticalMenuplacement) {
  997. case 'left':
  998. $('#' + oid).attr("vertical-placement", "left");
  999. break;
  1000. case 'right':
  1001. $('#' + oid).attr("vertical-placement", "right");
  1002. break;
  1003. default:
  1004. }
  1005. } else {
  1006. $('#' + oid).removeAttr("vertical-placement");
  1007. }
  1008. },
  1009. Handlethemelayout: function() {
  1010. switch (settings.themelayout) {
  1011. case 'horizontal':
  1012. $('#' + oid).attr("theme-layout", "horizontal");
  1013. break;
  1014. case 'vertical':
  1015. $('#' + oid).attr("theme-layout", "vertical");
  1016. break;
  1017. default:
  1018. }
  1019. },
  1020. };
  1021. PcodedMenu.PcodedMenuInit();
  1022. };
  1023. // menu [ vertical ]
  1024. $(window).scroll(function() {
  1025. if ($(this).scrollTop() > 80) {
  1026. $('.pcoded[theme-layout="vertical"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('position', 'fixed');
  1027. $('.pcoded[theme-layout="vertical"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('top', 0);
  1028. } else {
  1029. $('.pcoded[theme-layout="vertical"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('position', 'absolute');
  1030. $('.pcoded[theme-layout="vertical"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('top', 'auto');
  1031. }
  1032. });
  1033. // menu [ horizontal ]
  1034. $(window).scroll(function() {
  1035. if ($(this).scrollTop() > 80) {
  1036. $('.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('position', 'fixed');
  1037. $('.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('top', 0);
  1038. } else {
  1039. $('.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('position', 'absolute');
  1040. $('.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar[pcoded-navbar-position="fixed"][pcoded-header-position="relative"]').css('top', 'auto');
  1041. }
  1042. });