{"version":3,"sources":["webpack:///./django/project/@static/@modules/nav-pinned/main.ts","webpack:///./django/project/@static/@modules/nav-pinned/controller.ts","webpack:///./django/project/@static/@modules/nav-pinned/index.js"],"names":[],"mappings":";;;;;;;;IAKA,IAAM,GAAG,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE;IAExC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,oBAAc,EAAE,CAAC,MAAM,EAAE;IACjC,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC;QACE,GAAG,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICEH;QAA4C,kCAA+B;QAEvE;mBACI,iBAAO;QACX,CAAC;2BAJgB,cAAc;QAiB/B,iCAAQ,GAAR;YACI,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC;QAID,wCAAe,GAAf;YACI,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,4CAAmB,GAAnB;YAAA,iBAqDC;YAlDG,IAAI,WAAW,GAAG,IAAI,CAAC;YACvB,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,IAAI,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;YAGnD,IAAI,sBAAsB,GAAG,gBAAc,CAAC,yBAAyB,EAAE;gBACnE,WAAW,GAAG,IAAI,CAAC;aACtB;iBAAM;gBACH,WAAW,GAAG,KAAK,CAAC;aACvB;YAGD,IAAI,WAAW,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC,YAAY,EAAE,CAAC;aAEvB;iBAAM;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;aAEzB;YAED,YAAY,GAAG,WAAW,CAAC;YAK3B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBACb,IAAI,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;gBAGnD,IAAI,sBAAsB,GAAG,gBAAc,CAAC,yBAAyB,EAAE;oBACnE,WAAW,GAAG,IAAI,CAAC;iBACtB;qBAAM;oBACH,WAAW,GAAG,KAAK,CAAC;iBACvB;gBAGD,IAAI,WAAW,KAAK,YAAY,EAAE;oBAG9B,IAAI,WAAW,KAAK,IAAI,EAAE;wBACtB,KAAI,CAAC,YAAY,EAAE,CAAC;qBAEvB;yBAAM;wBACH,KAAI,CAAC,cAAc,EAAE,CAAC;qBAEzB;oBAED,YAAY,GAAG,WAAW,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,qCAAY,GAAZ;YACI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,uCAAc,GAAd;YACI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC;;QAhFe,wCAAyB,GAAG,GAAG,CAAC;QAChC,kCAAmB,GAAG,IAAI,CAAC;QAX1B,cAAc;YARlC,oBAAO,CAAC;gBACL,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,qBAAqB;gBACzB,EAAE,EAAE;oBACA,SAAS,EAAE,gBAAgB;oBAC3B,uBAAuB,EAAE,0BAA0B;iBACtD;aACJ,CAAC;WACmB,cAAc,CA2FlC;QAAD,qBAAC;KAAA,CA3F2C,UAAU,CAAC,IAAI,GA2F1D;sBA3FoB,cAAc;;;;;;;;;;ACfnC","file":"js/nav-pinned.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-pinned/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-pinned-wrap\",\r\n ui: {\r\n anchorNav: \".js-nav-pinned\",\r\n mainNavAccordionDrawers: \".js-subnav-wrap.collapse\"\r\n }\r\n})\r\nexport default class ViewController extends Marionette.View{\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n // -------------------------------------\r\n // constants\r\n // -------------------------------------\r\n\r\n static readonly PINNED_NAV_VERT_THRESHOLD = 300;\r\n static readonly BREAKPOINT_NAV_SWAP = 1200; // TODO: refactor. this is shared with other controllers.\r\n\r\n // -------------------------------------\r\n // functions\r\n // -------------------------------------\r\n\r\n onRender() {\r\n console.log(\"pinned nav appcontroller rendered\");\r\n this.scrollPositionCheck();\r\n }\r\n\r\n // TODO: possibly refactor. this function is shared with other controllers.\r\n // although we only want to close the pinned drawers.\r\n closeAllDrawers() {\r\n this.ui.mainNavAccordionDrawers.collapse(\"hide\"); // bootstrap function to close all drawers\r\n }\r\n\r\n scrollPositionCheck() {\r\n\r\n // inits\r\n let isOffScreen = null;\r\n let wasOffScreen = null;\r\n let currentScrollPositionY = $(window).scrollTop(); //\r\n\r\n // pin state has changed if bottom of subnav has crossed the offscreen threshold\r\n if (currentScrollPositionY > ViewController.PINNED_NAV_VERT_THRESHOLD) {\r\n isOffScreen = true;\r\n } else {\r\n isOffScreen = false;\r\n }\r\n\r\n // initial check\r\n if (isOffScreen === true) {\r\n this.pinAnchorNav();\r\n // console.log(\"Main nav is OFF-SCREEN\");\r\n } else {\r\n this.unpinAnchorNav();\r\n // console.log(\"Main nav is VISIBLE\");\r\n }\r\n\r\n wasOffScreen = isOffScreen;\r\n\r\n // need to reach outside el to get window scroll position.\r\n // tasks for each scroll update:\r\n\r\n $(window).scroll(() => {\r\n let currentScrollPositionY = $(window).scrollTop();\r\n\r\n // pin state has changed if bottom of subnav has crossed the offscreen threshold\r\n if (currentScrollPositionY > ViewController.PINNED_NAV_VERT_THRESHOLD) {\r\n isOffScreen = true;\r\n } else {\r\n isOffScreen = false;\r\n }\r\n\r\n // only pin/unpin if condition has changed\r\n if (isOffScreen !== wasOffScreen) {\r\n // console.log(\"***** STATE HAS CHANGED ***** \");\r\n\r\n if (isOffScreen === true) {\r\n this.pinAnchorNav();\r\n // console.log(\"Main nav is OFF-SCREEN\");\r\n } else {\r\n this.unpinAnchorNav();\r\n // console.log(\"Main nav is VISIBLE\");\r\n }\r\n\r\n wasOffScreen = isOffScreen;\r\n }\r\n });\r\n }\r\n\r\n pinAnchorNav() {\r\n this.ui.anchorNav.addClass(\"pinned\");\r\n }\r\n\r\n unpinAnchorNav() {\r\n this.ui.anchorNav.removeClass(\"pinned\");\r\n this.closeAllDrawers();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./django/project/@static/@modules/nav-pinned/controller.ts","require(\"./main.ts\");\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./django/project/@static/@modules/nav-pinned/index.js\n// module id = 73\n// module chunks = 28"],"sourceRoot":""}