{"version":3,"file":"index-DszZ3txh.js","sources":["../../../app/assets/javascripts/components/buttons/copy_btn/index.ts"],"sourcesContent":["\nimport $ from \"jquery\"\nimport Clipboard from \"clipboard\"\n\n\ninterface Selector {\n scope: string | HTMLElement | JQuery\n button: string | HTMLElement | JQuery\n}\nexport interface InputSelector {\n scope: string | HTMLElement | JQuery\n button?: string | HTMLElement | JQuery\n}\nconst default_selector = {\n scope: \"body\",\n button: \".js-listing-reference-copy\",\n}\n\n\nclass CopyBtn {\n protected selector: Selector\n protected $scope: JQuery\n protected $el: JQuery\n protected clip: Clipboard | null\n\n constructor(selector: InputSelector){\n this.selector = Object.assign({}, default_selector, selector)\n this.$scope = $(this.selector.scope)\n\n if (this.$scope.length !== 1 ) {\n throw new Error(\"clipboard btn init with more than one element\")\n }\n\n this.$el = this.$scope.find(this.selector.button)\n\n this.clip = new Clipboard(this.$el[0])\n this.bind_action()\n return this\n }\n\n protected bind_action(){\n if (this.clip != null) {\n this.clip.on(\"success\", (e) => this.onSuccess(e))\n }\n // to Stop weird jumping to page top\n this.$el.on(\"click\", (e) => e.preventDefault())\n return this\n }\n protected onSuccess(e: ClipboardJS.Event){\n e.clearSelection()\n }\n}\n\nexport {\n CopyBtn,\n}\n"],"names":["default_selector","CopyBtn","selector","$","Clipboard","e"],"mappings":"qFAaA,MAAMA,EAAmB,CACvB,MAAO,OACP,OAAQ,4BACV,EAGA,MAAMC,CAAQ,CAMZ,YAAYC,EAAwB,CAI9B,GAHJ,KAAK,SAAW,OAAO,OAAO,CAAC,EAAGF,EAAkBE,CAAQ,EAC5D,KAAK,OAASC,EAAE,KAAK,SAAS,KAAK,EAE/B,KAAK,OAAO,SAAW,EACnB,MAAA,IAAI,MAAM,+CAA+C,EAGjE,YAAK,IAAM,KAAK,OAAO,KAAK,KAAK,SAAS,MAAM,EAEhD,KAAK,KAAO,IAAIC,EAAU,KAAK,IAAI,CAAC,CAAC,EACrC,KAAK,YAAY,EACV,IAAA,CAGC,aAAa,CACjB,OAAA,KAAK,MAAQ,MACV,KAAA,KAAK,GAAG,UAAYC,GAAM,KAAK,UAAUA,CAAC,CAAC,EAGlD,KAAK,IAAI,GAAG,QAAUA,GAAMA,EAAE,gBAAgB,EACvC,IAAA,CAEC,UAAUA,EAAqB,CACvCA,EAAE,eAAe,CAAA,CAErB"}