{"code":"import * as tslib_1 from \"tslib\";\r\nimport Vue from 'vue';\r\nimport poseFactory from 'popmotion-pose';\r\nimport { invariant } from 'hey-listen';\r\nimport supportedElements from '../utils/supported-elements';\r\nimport PoserMap from '../utils/poser-map';\r\nvar props = {\r\n    pose: {\r\n        type: String,\r\n        default: 'init'\r\n    },\r\n    preEnterPose: {\r\n        type: String,\r\n        default: undefined\r\n    },\r\n    poseKey: {\r\n        type: [String, Number],\r\n        default: undefined\r\n    },\r\n    onValueChange: {\r\n        type: Object,\r\n        default: undefined\r\n    },\r\n    onPoseComplete: {\r\n        type: Function,\r\n        default: undefined\r\n    },\r\n    withParent: {\r\n        type: Boolean,\r\n        default: true\r\n    }\r\n};\r\nvar watch = {\r\n    $attrs: function (newAttrs) {\r\n        this.poser.setProps(newAttrs);\r\n    },\r\n    pose: function (newPose, oldPose) {\r\n        if (newPose !== oldPose)\r\n            this.setPose(newPose);\r\n    },\r\n    poseKey: function (newPoseKey, oldPoseKey) {\r\n        if (newPoseKey !== oldPoseKey)\r\n            this.setPose(this.pose);\r\n    }\r\n};\r\nfunction destroyed() {\r\n    if (!this.poser || !this._poseDestroyOnUnmount)\r\n        return;\r\n    if (this._poseOnChildUnmount)\r\n        this._poseOnChildUnmount(this.poser);\r\n    PoserMap.delete(this.$el);\r\n    this.poser.destroy();\r\n}\r\nvar methods = {\r\n    getInitialPose: function () {\r\n        var _a = this.$props, preEnterPose = _a.preEnterPose, pose = _a.pose;\r\n        return this._poseGetInitialPoseFromParent\r\n            ? this._poseGetInitialPoseFromParent()\r\n            : preEnterPose || pose;\r\n    },\r\n    getFirstPoseToSet: function () {\r\n        var _a = this.$props, preEnterPose = _a.preEnterPose, pose = _a.pose;\r\n        return preEnterPose ? pose : false;\r\n    },\r\n    initPoser: function (poser) {\r\n        this.poser = poser;\r\n        this.flushChildren();\r\n        PoserMap.set(this.$el, poser);\r\n        var firstPose = this.getFirstPoseToSet();\r\n        if (firstPose)\r\n            this.setPose(firstPose);\r\n    },\r\n    setPose: function (pose) {\r\n        var _this = this;\r\n        this.poser.set(pose).then(function () { return _this.$emit('poseComplete', pose); });\r\n    },\r\n    flushChildren: function () {\r\n        var _this = this;\r\n        if (!this.children)\r\n            return;\r\n        this.children.forEach(function (_a) {\r\n            var element = _a.element, config = _a.config, onRegistered = _a.onRegistered;\r\n            onRegistered(_this.poser.addChild(element, tslib_1.__assign({}, config, { initialPose: _this.getInitialPose() })));\r\n        });\r\n        this.children.clear();\r\n    },\r\n    getPoserProps: function () {\r\n        return tslib_1.__assign({}, this.$attrs);\r\n    }\r\n};\r\nfunction provide() {\r\n    var parent = this;\r\n    return {\r\n        _poseRegisterChild: function (child) {\r\n            parent.children = parent.children || new Set();\r\n            parent.children.add(child);\r\n            if (parent.poser)\r\n                parent.flushChildren();\r\n        },\r\n        _poseOnChildUnmount: function (poser) {\r\n            parent.poser.removeChild(poser);\r\n        }\r\n    };\r\n}\r\nvar inject = {\r\n    _poseRegisterChild: { default: false },\r\n    _poseOnChildUnmount: { default: false },\r\n    _poseGetInitialPoseFromParent: { default: false },\r\n    _poseDestroyOnUnmount: { default: true }\r\n};\r\nvar createPosedComponentFactory = function (el) { return function (config) {\r\n    if (config === void 0) { config = {}; }\r\n    return Vue.extend({\r\n        props: props,\r\n        provide: provide,\r\n        inject: inject,\r\n        mounted: function () {\r\n            var _this = this;\r\n            invariant(typeof this.$el !== 'undefined', \"No DOM element found.\");\r\n            var poserConfig = tslib_1.__assign({}, config, { initialPose: this.getInitialPose(), onDragStart: this.$listeners['drag-start']\r\n                    ? function (e) { return _this.$emit('drag-start', e); }\r\n                    : undefined, onDragEnd: this.$listeners['drag-end']\r\n                    ? function (e) { return _this.$emit('drag-end', e); }\r\n                    : undefined, onPressStart: this.$listeners['press-start']\r\n                    ? function (e) { return _this.$emit('press-start', e); }\r\n                    : undefined, onPressEnd: this.$listeners['press-end']\r\n                    ? function (e) { return _this.$emit('press-end', e); }\r\n                    : undefined, onChange: this.$props.onValueChange, props: this.getPoserProps() });\r\n            if (!this.$props.withParent || !this._poseRegisterChild) {\r\n                this.initPoser(poseFactory(this.$el, poserConfig));\r\n            }\r\n            else {\r\n                this._poseRegisterChild({\r\n                    element: this.$el,\r\n                    config: poserConfig,\r\n                    onRegistered: function (poser) { return _this.initPoser(poser); }\r\n                });\r\n            }\r\n        },\r\n        watch: watch,\r\n        methods: methods,\r\n        destroyed: destroyed,\r\n        render: function (createElement) {\r\n            return createElement(el, {}, [this.$slots.default]);\r\n        }\r\n    });\r\n}; };\r\nvar posed = supportedElements.reduce(function (acc, el) {\r\n    acc[el] = createPosedComponentFactory(el);\r\n    return acc;\r\n}, {});\r\nexport default posed;\r\n//# sourceMappingURL=posed.js.map","map":"{\"version\":3,\"file\":\"posed.js\",\"sourceRoot\":\"\",\"sources\":[\"../src/components/posed.ts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,WAAkC,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAO5D,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAE1C,IAAM,KAAK,GAAoB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;KAChB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;KACnB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,SAAS;KACnB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;KACnB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;KACd;CACF,CAAC;AAEF,IAAM,KAAK,GAAG;IACZ,MAAM,YAAC,QAAa;QAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,YAAC,OAAe,EAAE,OAAe;QACnC,IAAI,OAAO,KAAK,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,YAAC,UAA2B,EAAE,UAA2B;QAC9D,IAAI,UAAU,KAAK,UAAU;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;CACF,CAAC;AAEF;IACE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,qBAAqB;QAAE,OAAO;IACvD,IAAI,IAAI,CAAC,mBAAmB;QAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,IAAM,OAAO,GAAG;IACd,cAAc;QACN,IAAA,gBAAoC,EAAlC,8BAAY,EAAE,cAAI,CAAiB;QAC3C,OAAO,IAAI,CAAC,6BAA6B;YACvC,CAAC,CAAC,IAAI,CAAC,6BAA6B,EAAE;YACtC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;IAC3B,CAAC;IACD,iBAAiB;QACT,IAAA,gBAAoC,EAAlC,8BAAY,EAAE,cAAI,CAAiB;QAE3C,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACrC,CAAC;IACD,SAAS,YAAC,KAAwB;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE9B,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3C,IAAI,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,YAAC,IAAY;QAApB,iBAEC;QADC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,EAAhC,CAAgC,CAAC,CAAC;IACpE,CAAC;IACD,aAAa;QAAb,iBAaC;QAZC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,UAAC,EAAoD;gBAAlD,oBAAO,EAAE,kBAAM,EAAE,8BAAY;YAC9B,YAAY,CACV,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,uBACtB,MAAM,IACT,WAAW,EAAE,KAAI,CAAC,cAAc,EAAE,IAClC,CACH,CAAC;QACJ,CAAC,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IACD,aAAa;QACX,4BAAY,IAAI,CAAC,MAAM,EAAG;IAC5B,CAAC;CACF,CAAC;AAEF;IACE,IAAM,MAAM,GAAG,IAAI,CAAC;IAEpB,OAAO;QACL,kBAAkB,YAAC,KAAwB;YACzC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,KAAK;gBAAE,MAAM,CAAC,aAAa,EAAE,CAAC;QAC3C,CAAC;QACD,mBAAmB,YAAC,KAAwB;YAC1C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,IAAM,MAAM,GAAG;IACb,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;IACtC,mBAAmB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;IACvC,6BAA6B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;IACjD,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CACzC,CAAC;AAEF,IAAM,2BAA2B,GAAiC,UAAA,EAAE,IAAI,OAAA,UACtE,MAAW;IAAX,uBAAA,EAAA,WAAW;IAEX,OAAA,GAAG,CAAC,MAAM,CAAC;QACT,KAAK,OAAA;QACL,OAAO,SAAA;QACP,MAAM,QAAA;QACN,OAAO;YAAP,iBAgCC;YA/BC,SAAS,CAAC,OAAO,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,uBAAuB,CAAC,CAAC;YAEpE,IAAM,WAAW,wBACZ,MAAM,IACT,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,EAClC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;oBACxC,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,EAA3B,CAA2B;oBACzC,CAAC,CAAC,SAAS,EACb,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;oBACpC,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,EAAzB,CAAyB;oBACvC,CAAC,CAAC,SAAS,EACb,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;oBAC1C,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,EAA5B,CAA4B;oBAC1C,CAAC,CAAC,SAAS,EACb,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;oBACtC,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAA1B,CAA0B;oBACxC,CAAC,CAAC,SAAS,EACb,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EACnC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,GAC5B,CAAC;YAGF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBACvD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;aACpD;iBAAM;gBACL,IAAI,CAAC,kBAAkB,CAAC;oBACtB,OAAO,EAAE,IAAI,CAAC,GAAG;oBACjB,MAAM,EAAE,WAAW;oBACnB,YAAY,EAAE,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB;iBACxB,CAAC,CAAC;aACzB;QACH,CAAC;QACD,KAAK,OAAA;QACL,OAAO,SAAA;QACP,SAAS,WAAA;QACT,MAAM,YAAC,aAAa;YAClB,OAAO,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;KACF,CAAC;AA3CF,CA2CE,EA9CoE,CA8CpE,CAAC;AAEL,IAAM,KAAK,GAA6B,iBAAiB,CAAC,MAAM,CAC9D,UAAC,GAA6B,EAAE,EAAE;IAChC,GAAG,CAAC,EAAE,CAAC,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAE1C,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAAE,CACH,CAAC;AAEF,eAAe,KAAK,CAAC\"}"}
