{"version":3,"sources":["webpack:///scripts/plugin--focus-element--9412f582db3e9bb88edc.js","webpack:///./project/client/src/core/plugins/jquery__focus/plugin.js"],"names":["webpackJsonp","/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/plugin.js","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","_jquery","_jquery2","_debug","_debug2","_lib","_lib2","_index","log","PluginKlass","element","options","this","$element","watch","value","_options","on","delegate","focusTarget","document","filterNonDelegateEvents","boundEvent","fn","_this","ignoreChildEvents","event","call","$target","selectors","selectTarget","ifTarget","is","trigger","PLUGIN_NAME","focus","DEFAULTS","if"],"mappings":"AAAAA,cAAc,0BAERC,kKACA,SAAUC,EAAQC,EAASC,GAEjC,YAiDA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAhDhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAAiB,MAAO,UAAUR,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYZ,EAAiBH,EAAYiB,UAAWF,GAAiBC,GAAab,EAAiBH,EAAagB,GAAqBhB,MCsBhiBkB,EAAAzB,EAAA,qBDYI0B,EAAWzB,EAAuBwB,GCVtCE,EAAA3B,EAAA,6IDcI4B,EAAU3B,EAAuB0B,GCbrCE,EAAA7B,EAAA,wJDiBI8B,EAAQ7B,EAAuB4B,GChBnCE,EAAA/B,EAAA,kKAIMgC,GAAM,EAAAJ,EAAAxB,SADQ,wBAIpB4B,GAAI,YDsBJ,ICpBMC,GDoBY,WClBhB,QAAAA,GAAYC,EAASC,GAAS9B,EAAA+B,KAAAH,GAC5BD,EAAI,eAAgBE,EAASC,GAE7BC,KAAKF,QAAUA,EACfE,KAAKD,QAAUA,EAEfC,KAAKC,UAAW,EAAAX,EAAAtB,SAAE8B,GAElBE,KAAKE,QAELN,EAAI,QAASI,KAAKC,UD4EpB,MApDA5B,GAAawB,IACXZ,IAAK,QACLkB,MAAO,WCvBD,GAAAC,GAC2BJ,KAAKD,QAA9BM,EADFD,EACEC,GAAI9B,EADN6B,EACM7B,OAAQ+B,EADdF,EACcE,QACT,WAAPD,EACFL,KAAKO,cACKD,GAIV,EAAAhB,EAAAtB,SAAEwC,UACCH,GAAGA,EAAIL,KAAKF,QAASE,KAAKS,wBAAwBT,KAAKO,cAJ1DP,KAAKU,WAAaV,KAAKC,SACpBI,GAAGA,EAAIL,KAAKS,wBAAwBT,KAAKO,cAK9CX,EAAI,WAAYI,KAAKF,SAAWO,KAAI9B,SAAQ+B,gBD4B5CrB,IAAK,0BACLkB,MAAO,SC1BeQ,GAAI,GAAAC,GAAAZ,KAExBa,EACEb,KAAKD,QADPc,iBAEF,OAAO,UAACC,GACFD,GACFC,EAAMvC,SAAWqC,EAAKd,SAGtBa,EAAGI,KAAKH,OD+BZ3B,IAAK,cACLkB,MAAO,WC1BPP,EAAI,UACCI,KAAKD,QAAQxB,QAChBqB,EAAI,+CAAgDI,KAAKC,SAE3D,IAAMe,GAAUhB,KAAKiB,UAAUC,aAAalB,KAAKD,QAAQxB,OAAQyB,KAAKC,SAElED,MAAKD,QAAQoB,WAAaH,EAAQI,GAAGpB,KAAKD,QAAQoB,YAItDvB,EAAI,mBAAoBoB,GACxBhB,KAAKC,SAASoB,QAAWC,cAAzB,WACAN,EAAQO,QACRP,EAAQK,QAAWC,cAAnB,gBD+BKzB,IC1BTA,GAAY2B,UACVnB,GAAI,QACJoB,GAAI,KACJN,SAAU,KACV5C,OAAQ,KACR+B,UAAU,EACVO,mBAAmB,IAGrB,EAAAnB,EAAA1B,SAAOsD,cAAazB","file":"scripts/plugin--focus-element--9412f582db3e9bb88edc.js","sourcesContent":["webpackJsonp([\"plugin--focus-element\"],{\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/plugin.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global $:true */\n/*\r\nSet Focus\r\n\r\nFocus another element on a valid jquery event. By default this is `click`.\r\n\r\n\r\n### Html Attributes\r\n\r\n```\r\n data-focus-element\r\n data-focus-element--on=\"valid jquery event name\"\r\n data-focus-element--target=\"[(scoping-directive)] .valid-jquery > selector\"\r\n data-focus-element--delegate=\"true|false, bind event on element, or on document root\"\r\n data-focus-element--ignore-child-events=\"true|false, child triggers events\"\r\n```\r\n\r\nMarkup:\r\n
\r\n Focus target\r\n A button\r\n\r\n\r\nStyleguide Global.Javascript.SetFocus\r\n*/\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _index = __webpack_require__(\"/tool/node_modules/babel-loader/lib/index.js??ref--11-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__focus/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MODULE_NAME = 'plugins/focus-element';\nvar log = (0, _debug2.default)(MODULE_NAME);\n\nlog('registerd');\n\nvar PluginKlass = function () {\n function PluginKlass(element, options) {\n _classCallCheck(this, PluginKlass);\n\n log('new instance', element, options);\n\n this.element = element;\n this.options = options;\n\n this.$element = (0, _jquery2.default)(element);\n\n this.watch();\n\n log('ready', this.$element);\n }\n\n _createClass(PluginKlass, [{\n key: 'watch',\n value: function watch() {\n var _options = this.options,\n on = _options.on,\n target = _options.target,\n delegate = _options.delegate;\n\n if (on === '(now)') {\n this.focusTarget();\n } else if (!delegate) {\n this.boundEvent = this.$element.on(on, this.filterNonDelegateEvents(this.focusTarget));\n } else {\n (0, _jquery2.default)(document).on(on, this.element, this.filterNonDelegateEvents(this.focusTarget));\n }\n log('watching', this.element, { on: on, target: target, delegate: delegate });\n }\n }, {\n key: 'filterNonDelegateEvents',\n value: function filterNonDelegateEvents(fn) {\n var _this = this;\n\n var ignoreChildEvents = this.options.ignoreChildEvents;\n\n return function (event) {\n if (ignoreChildEvents && event.target !== _this.element) {\n return;\n } else {\n fn.call(_this);\n }\n };\n }\n }, {\n key: 'focusTarget',\n value: function focusTarget() {\n log('change');\n if (!this.options.target) {\n log('WARNING! missing focus-element `target` for ', this.$element);\n }\n var $target = this.selectors.selectTarget(this.options.target, this.$element);\n\n if (this.options.ifTarget && !$target.is(this.options.ifTarget)) {\n return;\n }\n\n log('change.targeting', $target);\n this.$element.trigger(_index.PLUGIN_NAME + '.source');\n $target.focus();\n $target.trigger(_index.PLUGIN_NAME + '.target');\n }\n }]);\n\n return PluginKlass;\n}();\n\nPluginKlass.DEFAULTS = {\n on: 'click',\n if: null, // conditional selector state of element\n ifTarget: null, // conditional selector state of target\n target: null,\n delegate: false, // bind on element or use delegate events on document.\n ignoreChildEvents: false // whether or not child events trigger\n};\n\n(0, _lib2.default)(_index.PLUGIN_NAME, PluginKlass);\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// scripts/plugin--focus-element--9412f582db3e9bb88edc.js","/* global $:true */\r\n/*\r\nSet Focus\r\n\r\nFocus another element on a valid jquery event. By default this is `click`.\r\n\r\n\r\n### Html Attributes\r\n\r\n```\r\n data-focus-element\r\n data-focus-element--on=\"valid jquery event name\"\r\n data-focus-element--target=\"[(scoping-directive)] .valid-jquery > selector\"\r\n data-focus-element--delegate=\"true|false, bind event on element, or on document root\"\r\n data-focus-element--ignore-child-events=\"true|false, child triggers events\"\r\n```\r\n\r\nMarkup:\r\n
\r\n Focus target\r\n A button\r\n\r\n\r\nStyleguide Global.Javascript.SetFocus\r\n*/\r\nimport $ from 'jquery';\r\n\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\nimport { ELEMENT_SELECTOR, PLUGIN_NAME } from './index';\r\n\r\n\r\nconst MODULE_NAME = 'plugins/focus-element';\r\nconst log = debug(MODULE_NAME);\r\n\r\n\r\nlog('registerd');\r\n\r\nclass PluginKlass {\r\n\r\n constructor(element, options) {\r\n log('new instance', element, options);\r\n\r\n this.element = element;\r\n this.options = options;\r\n\r\n this.$element = $(element);\r\n\r\n this.watch();\r\n\r\n log('ready', this.$element);\r\n }\r\n\r\n watch() {\r\n const { on, target, delegate } = this.options;\r\n if (on === '(now)') {\r\n this.focusTarget();\r\n } else if (!delegate) {\r\n this.boundEvent = this.$element\r\n .on(on, this.filterNonDelegateEvents(this.focusTarget));\r\n } else {\r\n $(document)\r\n .on(on, this.element, this.filterNonDelegateEvents(this.focusTarget));\r\n }\r\n log('watching', this.element, { on, target, delegate });\r\n }\r\n\r\n filterNonDelegateEvents(fn) {\r\n const {\r\n ignoreChildEvents\r\n } = this.options;\r\n return (event) => {\r\n if (ignoreChildEvents &&\r\n event.target !== this.element) {\r\n return;\r\n } else {\r\n fn.call(this);\r\n }\r\n };\r\n }\r\n\r\n focusTarget () {\r\n log('change');\r\n if (!this.options.target) {\r\n log('WARNING! missing focus-element `target` for ', this.$element);\r\n }\r\n const $target = this.selectors.selectTarget(this.options.target, this.$element);\r\n\r\n if (this.options.ifTarget && !$target.is(this.options.ifTarget)) {\r\n return;\r\n }\r\n\r\n log('change.targeting', $target);\r\n this.$element.trigger(`${PLUGIN_NAME}.source`);\r\n $target.focus();\r\n $target.trigger(`${PLUGIN_NAME}.target`);\r\n }\r\n\r\n}\r\n\r\nPluginKlass.DEFAULTS = {\r\n on: 'click',\r\n if: null, // conditional selector state of element\r\n ifTarget: null, // conditional selector state of target\r\n target: null,\r\n delegate: false, // bind on element or use delegate events on document.\r\n ignoreChildEvents: false, // whether or not child events trigger\r\n};\r\n\r\nplugin(PLUGIN_NAME, PluginKlass);\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__focus/plugin.js"],"sourceRoot":""}