{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wool-fe/src/views/widgets/sidebarWidget/js/sidebarWidget.js"],"names":["CLS","SidebarWidget","element","_this","this","_classCallCheck","$element","$","itemPadding","$sidebarItemsWidget","find","concat","children","defineDepth","setTimeout","css","visibility","initActiveElement","key","value","$initialActiveElement","activateDropdown","length","parent","trigger","animate","$parentElement","parents","first","hasClass","$dropdownElement","depth","attr","multiplier","indentPadding","paddingStyle","padding","$children","innerDepth"],"mappings":"y3BAAA,IACMA,EAAM,gBAECC,EAAa,WAkBzB,SAjBA,SAAAA,EAAYC,GAAS,IAAAC,EAAAC,kGAAAC,CAAAD,KAAAH,GACpBG,KAAKF,QAAUA,EACfE,KAAKE,SAAWC,EAAEL,GAClBE,KAAKI,YAAc,GAEnBJ,KAAKK,oBAAsBL,KAAKE,SAASI,KAAI,IAAAC,OAAKX,EAAG,aAAYY,SAAQ,kCACzER,KAAKS,YAAYT,KAAKK,oBAAqB,GAE3CK,WAAW,WACVX,EAAKG,SAASS,KACbC,WAAY,aAEX,KAEHZ,KAAKa,0BAGNC,IAAA,oBAAAC,MAGA,WACC,IAAIC,EAAwBhB,KAAKE,SAASI,KAAK,wBAG3CW,EAAmB,SAACf,GACvB,GAAGA,GAAYA,EAASgB,OAAS,EAAG,CACnChB,EAASiB,OAAO,uBAAuBC,QAAQ,wCAC9CtB,QAASI,EACTmB,SAAS,IAGV,IAAIC,EAAiBpB,EAASiB,OAAO,uBAAuBI,QAAQ,gCAAgCC,QACpGP,EAAiBK,KAInB,GAAGN,GAA0D,IAAjCA,EAAsBE,OAEjD,GAAGF,EAAsBS,SAAS,2BAA4B,CAC7D,IAAIC,EAAmBV,EAAsBG,OAAO,uBAAuBI,QAAQ,gCAAgCC,QACnHP,EAAiBS,QAGVV,EAAsBS,SAAS,gCACtCR,EAAiBD,QAGXA,GAAyBA,EAAsBE,UAKxDJ,IAAA,cAAAC,MACA,SAAYb,EAAUyB,GACrBzB,EAAS0B,KAAK,aAAcD,GAE5B,IAAIE,EAAuB,IAAVF,EAAc3B,KAAKI,YAAcJ,KAAKI,YAAcuB,EAEjEG,EAAiB9B,KAAKI,YAAeyB,EACrCE,EAAY,KAAAxB,OAAQP,KAAKI,YAAW,SAAAG,OAAQuB,EAAa,MAE7D5B,EAASM,SAAS,4BAA4BG,KAC7CqB,QAASD,IAGV7B,EAASM,SAAS,gCAAgCA,SAAS,4BAA4BG,KACtFqB,QAASD,IAGV,IAAIE,EAAY/B,EAASM,SAAS,gCAAgCA,SAAS,wCAAwCA,SAAS,8CAA8CA,SAAS,kCACnL,GAAGyB,GAAaA,EAAUf,OAAS,EAAG,CACrC,IAAIgB,EAAaP,EAAQ,EACzB3B,KAAKS,YAAYwB,EAAWC,mGAzEL","file":"widget-22.430117f348aedc9992ce.js","sourcesContent":["const NS = 'SidebarWidget';\nconst CLS = 'sidebarWidget';\n\nexport class SidebarWidget {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.itemPadding = 16; // Left/right padding\n\n\t\tthis.$sidebarItemsWidget = this.$element.find(`.${CLS}-content`).children(`[data-wg=\"SidebarItemsWidget\"]`);\n\t\tthis.defineDepth(this.$sidebarItemsWidget, 0);\n\n\t\tsetTimeout(() => {\n\t\t\tthis.$element.css({\n\t\t\t\tvisibility: 'visible'\n\t\t\t});\n\t\t}, 250);\n\n\t\tthis.initActiveElement();\n\t}\n\n\t/**\n\t * Displays the active item (by opening its respective parent dropdowns)\n\t */\n\tinitActiveElement() {\n\t\tlet $initialActiveElement = this.$element.find('[data-active=\"true\"]');\n\n\t\t// Recursive loop to all parent dropdowns\n\t\tlet activateDropdown = ($element) => {\n\t\t\tif($element && $element.length > 0) {\n\t\t\t\t$element.parent('.sidebarItemsWidget').trigger('sidebarItemsWidget.dropdown.activate', {\n\t\t\t\t\telement: $element,\n\t\t\t\t\tanimate: false\n\t\t\t\t});\n\n\t\t\t\tlet $parentElement = $element.parent('.sidebarItemsWidget').parents('.sidebarItemsWidget-dropdown').first();\n\t\t\t\tactivateDropdown($parentElement);\n\t\t\t}\n\t\t};\n\n\t\tif($initialActiveElement && $initialActiveElement.length === 1) {\n\t\t\t// If the item is an individual item\n\t\t\tif($initialActiveElement.hasClass('sidebarItemsWidget-item')) {\n\t\t\t\tlet $dropdownElement = $initialActiveElement.parent('.sidebarItemsWidget').parents('.sidebarItemsWidget-dropdown').first();\n\t\t\t\tactivateDropdown($dropdownElement);\n\t\t\t}\n\t\t\t// If the item is a dropdown\n\t\t\telse if($initialActiveElement.hasClass('sidebarItemsWidget-dropdown')) {\n\t\t\t\tactivateDropdown($initialActiveElement);\n\t\t\t}\n\t\t}\n\t\telse if($initialActiveElement && $initialActiveElement.length > 1) {\n\t\t\tconsole.error(`${NS}::Error`, 'Please ensure there is only a single item link/dropdown) that has the attribute of [data-active=\"true\"].');\n\t\t}\n\t}\n\n\t// Recursive function that defines the depth of the sidebarItemsWidget\n\tdefineDepth($element, depth) {\n\t\t$element.attr('data-depth', depth);\n\n\t\tlet multiplier = depth === 2 ? this.itemPadding : this.itemPadding * depth;\n\n\t\tlet indentPadding = (this.itemPadding) + multiplier;\n\t\tlet paddingStyle = `0 ${this.itemPadding}px 0 ${indentPadding}px`;\n\n\t\t$element.children('.sidebarItemsWidget-item').css({\n\t\t\tpadding: paddingStyle\n\t\t});\n\n\t\t$element.children('.sidebarItemsWidget-dropdown').children('.sidebarItemsWidget-item').css({\n\t\t\tpadding: paddingStyle\n\t\t});\n\n\t\tlet $children = $element.children('.sidebarItemsWidget-dropdown').children('.sidebarItemsWidget-dropdown-content').children('.sidebarItemsWidget-dropdown-content-inner').children('[data-wg=\"SidebarItemsWidget\"]');\n\t\tif($children && $children.length > 0) {\n\t\t\tlet innerDepth = depth + 1;\n\t\t\tthis.defineDepth($children, innerDepth);\n\t\t}\n\t}\n}\n"],"sourceRoot":""}