1 |
- {"version":3,"sources":["../../src/mixins/dependent.ts"],"names":[],"mappings":";;AAEA,OAAO,MAAP,MAAmB,gBAAnB;AAeA,SAAS,cAAT,CAAyB,QAAzB,EAAwC;AACtC,QAAM,UAAU,EAAhB;AACA,SAAK,IAAI,QAAQ,CAAjB,EAAoB,QAAQ,SAAS,MAArC,EAA6C,OAA7C,EAAsD;AACpD,YAAM,QAAQ,SAAS,KAAT,CAAd;AACA,YAAI,MAAM,QAAN,IAAkB,MAAM,WAA5B,EAAyC;AACvC,oBAAQ,IAAR,CAAa,KAAb;AACD,SAFD,MAEO;AACL,oBAAQ,IAAR,mCAAgB,eAAe,MAAM,SAArB,CAAhB;AACD;AACF;AAED,WAAO,OAAP;AACD;AAED;AACA,eAAe,SAAkB,MAAlB,CAAyB;AACtC,UAAM,WADgC;AAGtC,QAHsC,kBAGlC;AACF,eAAO;AACL,6BAAiB,IADZ;AAEL,sBAAU,KAFL;AAGL,yBAAa;AAHR,SAAP;AAKD,KATqC;;AAWtC,WAAO;AACL,gBADK,oBACK,GADL,EACQ;AACX,gBAAI,GAAJ,EAAS;AAET,gBAAM,iBAAiB,KAAK,iBAAL,EAAvB;AACA,iBAAK,IAAI,QAAQ,CAAjB,EAAoB,QAAQ,eAAe,MAA3C,EAAmD,OAAnD,EAA4D;AAC1D,+BAAe,KAAf,EAAsB,QAAtB,GAAiC,KAAjC;AACD;AACF;AARI,KAX+B;AAsBtC,aAAS;AACP,yBADO,+BACU;AACf,gBAAI,KAAK,eAAT,EAA0B,OAAO,eAAe,KAAK,SAApB,CAAP;AAE1B,mBAAO,EAAP;AACD,SALM;AAMP,gCANO,sCAMiB;AACtB,gBAAM,SAAS,EAAf;AACA,gBAAM,iBAAiB,KAAK,iBAAL,EAAvB;AAEA,iBAAK,IAAI,QAAQ,CAAjB,EAAoB,QAAQ,eAAe,MAA3C,EAAmD,OAAnD,EAA4D;AAC1D,uBAAO,IAAP,kCAAe,eAAe,KAAf,EAAsB,6BAAtB,EAAf;AACD;AAED,mBAAO,MAAP;AACD,SAfM;AAgBP,qCAhBO,2CAgBsB;AAC3B,gBAAM,SAAS,CAAC,KAAK,GAAN,CAAf;AACA,gBAAI,KAAK,KAAL,CAAW,OAAf,EAAwB,OAAO,IAAP,CAAY,KAAK,KAAL,CAAW,OAAvB;AACxB,gBAAI,KAAK,OAAT,EAAkB,OAAO,IAAP,CAAY,KAAK,OAAjB;AAClB,mBAAO,IAAP,kCAAe,KAAK,wBAAL,EAAf;AAEA,mBAAO,MAAP;AACD;AAvBM;AAtB6B,CAAzB,CAAf","sourcesContent":["import Vue from 'vue'\n\nimport mixins from '../util/mixins'\n\ninterface options extends Vue {\n $el: HTMLElement\n $refs: {\n content: HTMLElement\n }\n overlay?: HTMLElement\n}\n\ninterface DependentInstance extends Vue {\n isActive?: boolean\n isDependent?: boolean\n}\n\nfunction searchChildren (children: Vue[]): DependentInstance[] {\n const results = []\n for (let index = 0; index < children.length; index++) {\n const child = children[index] as DependentInstance\n if (child.isActive && child.isDependent) {\n results.push(child)\n } else {\n results.push(...searchChildren(child.$children))\n }\n }\n\n return results\n}\n\n/* @vue/component */\nexport default mixins<options>().extend({\n name: 'dependent',\n\n data () {\n return {\n closeDependents: true,\n isActive: false,\n isDependent: true\n }\n },\n\n watch: {\n isActive (val) {\n if (val) return\n\n const openDependents = this.getOpenDependents()\n for (let index = 0; index < openDependents.length; index++) {\n openDependents[index].isActive = false\n }\n }\n },\n\n methods: {\n getOpenDependents (): any[] {\n if (this.closeDependents) return searchChildren(this.$children)\n\n return []\n },\n getOpenDependentElements (): HTMLElement[] {\n const result = []\n const openDependents = this.getOpenDependents()\n\n for (let index = 0; index < openDependents.length; index++) {\n result.push(...openDependents[index].getClickableDependentElements())\n }\n\n return result\n },\n getClickableDependentElements (): HTMLElement[] {\n const result = [this.$el]\n if (this.$refs.content) result.push(this.$refs.content)\n if (this.overlay) result.push(this.overlay)\n result.push(...this.getOpenDependentElements())\n\n return result\n }\n }\n})\n"],"sourceRoot":""}
|