{"version":3,"sources":["AX6UISideNav.js"],"names":["_jqmin","require","_AX6UICore2","_AX6Util","AX6UISideNav","config","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","menu","width","position","transition","duration","easing","_AX6Util2","default","extend","$targetMenu","$targetPanel","animating","opened","init","_this2","target","panel","error","_jqmin2","css","attr","on","e","close","initOnce","initialized","_this3","console","transform","-webkit-transition","setTimeout","_this4"],"mappings":"2/BAAAA,OAAAC,QAAA,gDACAC,YAAAD,QAAA,+DACAE,SAAAF,QAAA,wDASMG,yBATN,SAAAA,EAAAC,GAAAC,gBAAAC,KAAAH,GAAA,IAAAI,EAAAC,2BAAAF,MAAAH,EAAAM,WAAAC,OAAAC,eAAAR,IAAAS,KAAAN,OAAA,OAIAC,EAAAH,QAyBMS,MAvBNC,MAAA,IAyBQC,SAAU,QAtBZZ,SAyBAa,YACEC,SAAU,IAzBhBC,OAAA,SAIAC,UAAAC,QAAAC,QAAA,EAAAd,EAAYH,OAAQA,GAGlBG,EAAAe,YAAA,KA2BAf,EAAKgB,aAAe,KAEpBhB,EAAKiB,WAAY,EACjBjB,EAAKkB,QAAS,OAEQ,IAAXrB,GAAwBG,EAAKmB,OAjD5CnB,uFAuDS,IAAAoB,EAAArB,KA3BLA,KAAKF,OAASS,KAAAe,QAAAtB,KAAAF,OAAAyB,MAAAD,QACZf,QAAMiB,MAAA,yDAIND,KAAAA,aALY,EAAAE,QAAAX,SAAAd,KAAAF,OAAAS,KAAAe,QAMZZ,KAAAA,cAAY,EAAAe,QAAAX,SAAAd,KAAAF,OAAAyB,MAAAD,QAEVV,KAAAA,YAFUc,KAAAlB,MAAAR,KAAAF,OAAAS,KAAAC,QAgCXmB,KAAK,8BAA+B3B,KAAKF,OAAOS,KAAKE,UAtC1CT,KAAdiB,aAYAU,KAAA,8BAAoB7B,KAApBA,OAAAS,KAAAE,UA6BGmB,GAAG,QAAS,SAAAC,GA3BfR,EAAAF,QAAAE,EAAAS,UAKA9B,KAAA+B,8CAmCA,GAAI/B,KAAKgC,YAAa,OAAOhC,KAC7BA,KAAKgC,aAAc,iCAGd,IAAAC,EAAAjC,KACL,OAAGA,KAAKkB,UAAkBlB,OAhCrB,EAAAyB,QAAAX,SAAA,QAAAa,KAAA,0BAAA,QACL3B,KAAAiB,aACEiB,KACDC,UAAA,cAAAnC,KAAAF,OAAAS,KAAAC,MAAA,MAoCG4B,qBAAsB,aAAepC,KAAKF,OAAOY,WAAWC,SAAW,MAAQX,KAAKF,OAAOY,WAAWE,SAG1GyB,WAAW,WAjCXJ,EAAKjB,QAAAA,GAGLhB,KAAKiB,OAAAA,WACGN,UAkCDX,sCA1BR,IAAAsC,EAAAtC,KA8BC,OAAGA,KAAKkB,UAAkBlB,MAG1BA,KAAKiB,aACFS,KACCS,UAAa,kBACbC,qBAAsB,aAAepC,KAAKF,OAAOY,WAAWC,SAAW,MAAQX,KAAKF,OAAOY,WAAWE,SA7B1GyB,WAAKL,YACN,EAAAP,QAAAX,SAAA,QAAAa,KAAA,0BAAA,MAiCGW,EAAKnB,QAAS,GACfnB,KAAKF,OAAOY,WAAWC,UAhCnBX,+BAGLH","file":"AX6UISideNav.js","sourcesContent":["import jQuery from \"jqmin\";\nimport AX6UICore from \"./AX6UICore\";\nimport U from \"./AX6Util\";\n/* ~~~~~~~~~~~~~~~~~~ end of import  ~~~~~~~~~~~~~~~~~~~~ */\n\n\n/* ~~~~~~~~~~~~~~~~~~ end of private  ~~~~~~~~~~~~~~~~~~~~ */\n\n/**\n * @class\n */\nclass AX6UISideNav extends AX6UICore {\n  /**\n   * @constructor\n   * @param config\n   */\n  constructor(config) {\n    super();\n\n    /**\n     * @member {JSON}\n     * @param config\n     * @param config.menu\n     * @param [config.menu.width=256]\n     * @param [config.menu.position='left']\n     * @param config.menu.target\n     * @param config.panel\n     * @param config.panel.target\n     *\n     */\n    this.config = {\n      menu: {\n        width: 256,\n        position: \"left\"\n      },\n      panel: {},\n      transition: {\n        duration: 300,\n        easing: 'ease'\n      }\n\n    };\n    U.extend(true, this.config, config);\n\n    // 멤버 변수 초기화\n    this.$targetMenu = null;\n    this.$targetPanel = null;\n\n    this.animating = false;\n    this.opened = false;\n\n    if (typeof config !== \"undefined\") this.init();\n  }\n\n  /**\n   * @method\n   */\n  init() {\n    if (!this.config.menu.target || !this.config.panel.target) {\n      console.error('Can not found config.menu.target, config.panel.target');\n    }\n\n\n    this.$targetMenu = jQuery(this.config.menu.target);\n    this.$targetPanel = jQuery(this.config.panel.target);\n\n    this.$targetMenu\n      .css({width: this.config.menu.width})\n      .attr(\"data-ax6ui-sidenav-position\", this.config.menu.position);\n    this.$targetPanel\n      .attr(\"data-ax6ui-sidenav-position\", this.config.menu.position)\n      .on('click', e => {\n        if(this.opened) this.close();\n      });\n\n\n    // init 호출 여부\n    this.initOnce();\n  }\n\n  /**\n   * @method\n   */\n  initOnce() {\n    if (this.initialized) return this;\n    this.initialized = true;\n  }\n\n  open() {\n    if(this.animating) return this;\n\n    jQuery('html').attr('data-ax6ui-sidenav-open', 'true');\n\n    this.$targetPanel\n      .css({\n        'transform': 'translateX('+ this.config.menu.width +'px)',\n        '-webkit-transition': 'transform ' + this.config.transition.duration + 'ms ' + this.config.transition.easing\n      });\n\n    setTimeout(() => {\n      this.opened = true;\n    }, this.config.transition.duration);\n\n\n    return this;\n  }\n\n  close(){\n    if(this.animating) return this;\n\n\n    this.$targetPanel\n      .css({\n        'transform': 'translateX(0px)',\n        '-webkit-transition': 'transform ' + this.config.transition.duration + 'ms ' + this.config.transition.easing\n      });\n\n    setTimeout(() => {\n      jQuery('html').attr('data-ax6ui-sidenav-open', null);\n      this.opened = false;\n  }, this.config.transition.duration);\n\n    return this;\n  }\n}\n\nexport default AX6UISideNav;"]}