{"version":3,"sources":["webpack:///./django/project/@static/@modules/nav-desktop-drawer-controls/main.ts","webpack:///./django/project/@static/@modules/nav-desktop-drawer-controls/controller.ts","webpack:///./django/project/@static/@modules/nav-desktop-drawer-controls/index.js"],"names":[],"mappings":"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","file":"js/nav-desktop-drawer-controls.js","sourcesContent":["import * as Backbone from \"backbone\";\r\nimport * as Marionette from \"backbone.marionette\";\r\nimport * as $ from \"jquery\";\r\nimport ViewController from \"./controller\";\r\n\r\nconst app = new Marionette.Application()\r\n\r\napp.once(\"start\", () => {\r\n new ViewController().render()\r\n});\r\n\r\n$(() => {\r\n app.start();\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./django/project/@static/@modules/nav-desktop-drawer-controls/main.ts","import * as $ from \"jquery\";\r\nimport * as Backbone from \"backbone\";\r\nimport * as Marionette from \"backbone.marionette\";\r\nimport * as _ from \"underscore\";\r\nimport {on, Options} from \"../utils/decorators\";\r\n\r\n\r\n@Options({\r\n template: false,\r\n el: \".js-nav-primary-wrap\",\r\n ui: {\r\n mainNavCollapseToggleLinks: \".nav-item > a[data-toggle='collapse']\",\r\n mainNavAccordionDrawers: \".js-subnav-wrap.collapse\",\r\n subnavCloseBtns: \".js-btn-subnav-close-x\"\r\n }\r\n})\r\n\r\nexport default class ViewController extends Marionette.View{\r\n constructor() {\r\n super();\r\n }\r\n\r\n // -------------------------------------\r\n // CONSTANTS\r\n // -------------------------------------\r\n\r\n // * match value in `config.scss`\r\n static readonly BREAKPOINT_NAV_SWAP = 1200;\r\n\r\n // -------------------------------------\r\n // EVENTS\r\n // -------------------------------------\r\n\r\n /** \r\n * if desktop width, when a main nav item that controls\r\n * an accordion is clicked, close all other drawers \r\n */\r\n @on(\"click @ui.mainNavCollapseToggleLinks\")\r\n onClickCollapseToggleLink(JQueryEventObject) {\r\n if (!this.isMobileNav()) {\r\n const $thisTogglelink = $(JQueryEventObject.currentTarget);\r\n const targetDrawerID = $thisTogglelink.attr(\"href\");\r\n\r\n this.closeAllDrawers();\r\n this.openActiveDrawer(targetDrawerID); // just a backup: doesn't seem to need this due to default behavior\r\n }\r\n }\r\n\r\n /** \r\n * on desktop only: \r\n * ensure that clicking on subnav drawers does\r\n * NOT close them by excluding them from window click\r\n */\r\n @on(\"click @ui.mainNavAccordionDrawers\")\r\n onClickAccordionDrawers(JQueryEventObject) {\r\n if (!this.isMobileNav()) {\r\n JQueryEventObject.stopPropagation();\r\n }\r\n }\r\n\r\n @on(\"click @ui.subnavCloseBtns\")\r\n onClickSubnavCloseBtn(JQueryEventObject) {\r\n this.closeAllDrawers();\r\n }\r\n\r\n // -------------------------------------\r\n // METHODS\r\n // -------------------------------------\r\n\r\n onRender() {\r\n console.log(\"nav desktop drawer controls viewcontroller rendered\");\r\n this.initWindowCheck();\r\n this.windowResizeCheck();\r\n this.addClickOffNavHandler();\r\n }\r\n\r\n /** \r\n * on desktop only: \r\n * close all drawers\r\n */\r\n closeAllDrawers() {\r\n if (!this.isMobileNav()) {\r\n this.ui.mainNavAccordionDrawers.collapse(\"hide\"); // bootstrap function to close all drawers\r\n }\r\n }\r\n\r\n /** \r\n * close subnav drawers when clicking anywhere on window,\r\n * EXCEPT if clicking on the subnav drawers.\r\n */\r\n addClickOffNavHandler() {\r\n // ** ALL OF THE FOLLOWING WORK:\r\n // window.addEventListener(\"click\", () => {this.closeAllDrawers()});\r\n // $(window).click(() => this.closeAllDrawers());\r\n $(window).on(\"click\", () => this.closeAllDrawers());\r\n }\r\n\r\n /** \r\n * opens the active drawer.\r\n */\r\n openActiveDrawer(targetDrawerID: string) {\r\n const $el = $(this.el);\r\n const $activeDrawer = this.$el.find(targetDrawerID);\r\n\r\n ($activeDrawer).collapse(\"show\"); // need to cast as type to prevent error here:\r\n }\r\n\r\n /** \r\n * tests to see if window is smaller than width\r\n * for mobile nav.\r\n */\r\n isMobileNav() {\r\n // need to reach out to window here.\r\n if ($(window).width() <= ViewController.BREAKPOINT_NAV_SWAP) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /** \r\n * recurring check when window resized.\r\n */\r\n windowResizeCheck() {\r\n $(window).resize(() => {\r\n this.oneTimeWindowCheck();\r\n\r\n if (this.isMobileNav) {\r\n // stub\r\n }\r\n });\r\n }\r\n\r\n /** \r\n * initially check to see if viewport width is within\r\n * mobile breakpoint.\r\n */\r\n initWindowCheck() {\r\n this.oneTimeWindowCheck();\r\n }\r\n\r\n /** \r\n * initially check to see if viewport width is within\r\n * mobile breakpoint.\r\n */\r\n oneTimeWindowCheck() {\r\n if (this.isMobileNav()) {\r\n // this.activateAccordions();\r\n // console.log(\"i'm at a mobile breakpoint\");\r\n } else {\r\n // this.deactivateAccordions();\r\n // console.log(\"i'm at a desktop breakpoint\");\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./django/project/@static/@modules/nav-desktop-drawer-controls/controller.ts","require(\"./main.ts\");\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./django/project/@static/@modules/nav-desktop-drawer-controls/index.js\n// module id = 72\n// module chunks = 29"],"sourceRoot":""}