{"version":3,"sources":["webpack:///scripts/plugin--remove-element-classes--2e650b5371d64ebda3af.js","webpack:///./project/client/src/core/plugins/jquery__remove-element-classes/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__remove-element-classes/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","PLUGIN_NAME","PluginKlass","element","options","this","$element","$classes","classes","split","$targets","watch","value","_options","on","delegate","remove","document","filterNonDelegateEvents","boundEvent","fn","_this","ignoreChildEvents","event","call","_this2","trigger","forEach","index","$target","$utils","selectors","selectTarget","$has","hasClass","removeClass","DEFAULTS"],"mappings":"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","file":"scripts/plugin--remove-element-classes--2e650b5371d64ebda3af.js","sourcesContent":["webpackJsonp([\"plugin--remove-element-classes\"],{\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__remove-element-classes/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; }; }(); /*\r\n Remove Element Classes\r\n \r\n ### Html Attributes\r\n \r\n ```\r\n data-remove-element-classes\r\n data-remove-element-classes--on=\"valid jquery event name or (now)\"\r\n data-remove-element-classes--target=\"[scoping-directive] .valid-jquery > selector\"\r\n data-remove-element-classes--classes=\"space separated class name(s)\"\r\n data-remove-element-classes--delegate=\"true|false, bind event on element, or on document root\"\r\n data-remove-element-classes--ignore-child-events=\"true|false, child triggers events\"\r\n ```\r\n \r\n #### scoping directives\r\n \r\n Scoping directives control where or what direction in the dom the selector is applied\r\n \r\n - `(parent)` Find a parent\r\n - `(parents)` Find all parents\r\n - `(here)` Find siblings or descendants\r\n - `(siblings)` Find siblings\r\n - `(self)` current element\r\n \r\n \r\n Markup:\r\n {{#> Core.Styleguide.Box\r\n modifier_class=\"remove-class-box u-align u-align--horizontal u-align--horizontal-center\"\r\n width=\"100%\" height=\"5rem\" grow=\"0\"}}\r\n \r\n \r\n {{/Core.Styleguide.Box}}\r\n \r\n Styleguide Global.Javascript.RemoveClass\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__remove-element-classes/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 log = (0, _debug2.default)('plugins/' + _index.PLUGIN_NAME);\n\nvar PluginKlass = function () {\n function PluginKlass(element, options) {\n _classCallCheck(this, PluginKlass);\n\n this.element = element;\n this.$element = (0, _jquery2.default)(element);\n this.options = options;\n\n this.$classes = this.options.classes.split(',');\n this.$targets = this.options.target.split(',');\n log('construct', element, options);\n\n this.watch();\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.remove();\n } else if (!delegate) {\n this.boundEvent = this.$element.on(on, this.filterNonDelegateEvents(this.remove));\n } else {\n (0, _jquery2.default)(document).on(on, this.element, this.filterNonDelegateEvents(this.remove));\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: 'remove',\n value: function remove() {\n var _this2 = this;\n\n log('remove', this.options);\n this.$element.trigger(_index.PLUGIN_NAME + '.before', this.options);\n this.$targets.forEach(function (target, index) {\n var $classes = _this2.$classes[index];\n log('remove.targets', { target: target, $classes: $classes });\n var $target = _this2.$utils.selectors.selectTarget(target, _this2.$element);\n var $has = $target.hasClass($classes);\n\n $target.trigger(_index.PLUGIN_NAME + '.beforeTarget', _this2.options);\n $target.removeClass($classes);\n $target.trigger(_index.PLUGIN_NAME + '.afterTarget', _this2.options);\n log('remove', { $target: $target, $classes: $classes, $has: $has });\n });\n this.$element.trigger(_index.PLUGIN_NAME + '.after', this.options);\n }\n }]);\n\n return PluginKlass;\n}();\n\nPluginKlass.DEFAULTS = {\n on: 'click', // event which current element is triggered\n target: '', // selector for the target to remove classnames on\n classes: '', // the classname to remove\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--remove-element-classes--2e650b5371d64ebda3af.js","/*\r\nRemove Element Classes\r\n\r\n### Html Attributes\r\n\r\n```\r\n data-remove-element-classes\r\n data-remove-element-classes--on=\"valid jquery event name or (now)\"\r\n data-remove-element-classes--target=\"[scoping-directive] .valid-jquery > selector\"\r\n data-remove-element-classes--classes=\"space separated class name(s)\"\r\n data-remove-element-classes--delegate=\"true|false, bind event on element, or on document root\"\r\n data-remove-element-classes--ignore-child-events=\"true|false, child triggers events\"\r\n```\r\n\r\n#### scoping directives\r\n\r\nScoping directives control where or what direction in the dom the selector is applied\r\n\r\n- `(parent)` Find a parent\r\n- `(parents)` Find all parents\r\n- `(here)` Find siblings or descendants\r\n- `(siblings)` Find siblings\r\n- `(self)` current element\r\n\r\n\r\nMarkup:\r\n{{#> Core.Styleguide.Box\r\n modifier_class=\"remove-class-box u-align u-align--horizontal u-align--horizontal-center\"\r\n width=\"100%\" height=\"5rem\" grow=\"0\"}}\r\n\r\n\r\n{{/Core.Styleguide.Box}}\r\n\r\nStyleguide Global.Javascript.RemoveClass\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\nconst log = debug(`plugins/${PLUGIN_NAME}`);\r\n\r\nclass PluginKlass {\r\n\r\n constructor(element, options) {\r\n this.element = element;\r\n this.$element = $(element);\r\n this.options = options;\r\n\r\n this.$classes = this.options.classes.split(',');\r\n this.$targets = this.options.target.split(',');\r\n log('construct', element, options);\r\n\r\n this.watch();\r\n\r\n }\r\n\r\n watch () {\r\n const { on, target, delegate} = this.options;\r\n if (on === '(now)') {\r\n this.remove();\r\n }\r\n else if (!delegate) {\r\n this.boundEvent = this.$element\r\n .on(on, this.filterNonDelegateEvents(this.remove));\r\n }\r\n else {\r\n $(document)\r\n .on(on, this.element, this.filterNonDelegateEvents(this.remove));\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 remove () {\r\n log('remove', this.options);\r\n this.$element.trigger(`${PLUGIN_NAME}.before`, this.options);\r\n this.$targets.forEach( (target, index) => {\r\n const $classes = this.$classes[index];\r\n log('remove.targets', {target, $classes});\r\n const $target = this.$utils.selectors.selectTarget(target, this.$element);\r\n const $has = $target.hasClass($classes);\r\n\r\n $target.trigger(`${PLUGIN_NAME}.beforeTarget`, this.options);\r\n $target.removeClass($classes);\r\n $target.trigger(`${PLUGIN_NAME}.afterTarget`, this.options);\r\n log('remove', {$target, $classes, $has});\r\n });\r\n this.$element.trigger(`${PLUGIN_NAME}.after`, this.options);\r\n }\r\n\r\n}\r\n\r\nPluginKlass.DEFAULTS = {\r\n on: 'click', // event which current element is triggered\r\n target: '', // selector for the target to remove classnames on\r\n classes: '', // the classname to remove\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\n\r\nplugin(PLUGIN_NAME, PluginKlass);\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__remove-element-classes/plugin.js"],"sourceRoot":""}