{"version":3,"sources":["../src/dropdown-menu/dropdown-menu.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAEtC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAC1B,MAAM,IAAI,GAAG,GAAG,MAAM,gBAAgB,CAAC;AAEvC,UAAU,CAAC;IACT,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAI;SACZ;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;SACX;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAI;SACZ;KACF;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,CAAC,CAAC;QACb,MAAM,EAAE,CAAC;KACV;IACD,SAAS,EAAE;QACT,iBAAiB,EAAE;YACjB,IAAI,EAAE,OAAO;SACd;KACF;IACD,OAAO,EAAE;QACP,YAAY;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC;gBACX,KAAK;gBACL,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QACD,eAAe,CAAC,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YACnC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;oBACjC,IAAI,EAAE,KAAK;iBACZ,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAC7B;YACD,IAAI,SAAS,KAAK,GAAG,EAAE;gBACrB,IAAI,CAAC,OAAO,CAAC;oBACX,SAAS,EAAE,CAAC,CAAC;iBACd,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC;oBACX,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC3B,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAC7B;QACH,CAAC;KACF;IACD,KAAK;QACH,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF,CAAC,CAAC","file":"dropdown-menu.js","sourcesContent":["import TComponent from '../common/component';\nimport config from '../common/config';\n\nconst { prefix } = config;\nconst name = `${prefix}-dropdown-menu`;\n\nTComponent({\n properties: {\n overlay: {\n type: Boolean,\n value: true,\n },\n duration: {\n type: Number,\n value: 200,\n },\n closeOnClickOverlay: {\n type: Boolean,\n value: true,\n },\n },\n data: {\n classBasePrefix: prefix,\n classPrefix: name,\n nodes: null,\n menus: null,\n activeIdx: -1,\n bottom: 0,\n },\n relations: {\n './dropdown-item': {\n type: 'child',\n },\n },\n methods: {\n _getAllItems() {\n const nodes = this.getRelationNodes('./dropdown-item');\n const menus = nodes.map((a) => {\n const { title, disabled } = a.data;\n return { title, disabled };\n });\n this.setData({\n nodes,\n menus,\n });\n },\n _toggleDropdown(e) {\n const idx = e.target.dataset.index;\n const { activeIdx } = this.data;\n if (activeIdx !== -1) {\n this.triggerEvent('close');\n this.data.nodes[activeIdx].setData({\n show: false,\n });\n this.triggerEvent('closed');\n }\n if (activeIdx === idx) {\n this.setData({\n activeIdx: -1,\n });\n } else {\n this.triggerEvent('open');\n this.setData({\n activeIdx: idx,\n });\n this.data.nodes[idx].setData({\n show: true,\n });\n this.triggerEvent('opened');\n }\n },\n },\n ready() {\n this._getAllItems();\n },\n});\n"]}