{"version":3,"sources":["webpack:///scripts/plugin--emit-on-dirty--82b18d46057a76721879.js","webpack:///./project/client/src/core/plugins/jquery__emit-on-dirty/plugin.js"],"names":["webpackJsonp","/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/plugin.js","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","Object","defineProperty","value","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","prototype","_jquery","_jquery2","_debug","_debug2","_lib","_index","log","EmitOnDirty","element","options","this","$element","initial","on","change","bind","isDirty","trigger","eventNameDirty","eventNameClean","val","get","yesno","DEFAULTS","valueAttribute","PLUGIN_NAME"],"mappings":"AAAAA,cAAc,0BAERC,yKACA,SAAUC,EAAQC,EAASC,GAEjC,YAmFA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAlFhHC,OAAOC,eAAeX,EAAS,cAC7BY,OAAO,GAGT,IAAIC,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,GAAMZ,OAAOC,eAAeI,EAAQI,EAAWI,IAAKJ,IAAiB,MAAO,UAAUX,EAAagB,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBN,EAAYkB,UAAWF,GAAiBC,GAAaX,EAAiBN,EAAaiB,GAAqBjB,MC6ChiBmB,EAAA1B,EAAA,qBDmBI2B,EAAW1B,EAAuByB,GChBtCE,EAAA5B,EAAA,4IDoBI6B,EAAU5B,EAAuB2B,GCnBrCE,EAAA9B,EAAA,uJACA+B,GDsBY9B,EAAuB6B,GCtBnC9B,EAAA,0KAGMgC,GAAM,EAAAH,EAAAzB,SADQ,uBAIpB4B,GAAI,YD6BJ,IC3BMC,GD2BY,WCzBhB,QAAAA,GAAYC,EAASC,GAAS9B,EAAA+B,KAAAH,GAC5BD,EAAI,eAAgBE,EAASC,GAE7BC,KAAKF,QAAUA,EACfE,KAAKD,QAAUA,EAEfC,KAAKC,UAAW,EAAAV,EAAAvB,SAAE8B,GAClBE,KAAKE,QAAUF,KAAKzB,MAEpByB,KAAKC,SAASE,GAAGH,KAAKD,QAAQI,GAAIH,KAAKI,OAAOC,KAAKL,OAEnDJ,EAAI,QAASI,KAAKC,UAElBD,KAAKI,SD2EP,MA5CA5B,GAAaqB,IACXX,IAAK,SACLX,MAAO,WC7BP,GAAMwB,GAAUC,KAAKD,QACfxB,EAAQyB,KAAKzB,MACb2B,EAAUF,KAAKE,OACrBN,GAAI,SAAUI,KAAKC,SAAU1B,EAAO2B,GAEhCF,KAAKM,QACPN,KAAKC,SAASM,QAAQP,KAAKD,QAAQS,gBAAkBT,UAASxB,QAAO2B,YAErEF,KAAKC,SAASM,QAAQP,KAAKD,QAAQU,gBAAkBV,UAASxB,QAAO2B,eDkCvEhB,IAAK,QACLX,MAAO,WC9BPyB,KAAKE,QAAUF,KAAKC,SAASS,MAC7BV,KAAKI,YDkCLlB,IAAK,QACLyB,IAAK,WC/BL,MAAOX,MAAKC,SAASS,SD4CrBxB,IAAK,UACLyB,IAAK,WChCL,GAAMC,GAAQZ,KAAKE,UAAYF,KAAKzB,KAGpC,OAFAqB,GAAI,UAAWI,KAAKC,SAAUW,GAEvBA,MDqCFf,IChCTA,GAAYgB,UACVV,GAAI,eACJW,eAAgB,QAChBN,eAAmBO,cAAnB,SACAN,eAAmBM,cAAnB,UDsCFpD,EAAQK,QCnCO6B","file":"scripts/plugin--emit-on-dirty--82b18d46057a76721879.js","sourcesContent":["webpackJsonp([\"plugin--emit-on-dirty\"],{\n\n/***/ \"/tool/node_modules/babel-loader/lib/index.js??ref--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/plugin.js\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 Emit On Dirty\r\n \r\n Emits jquery events when decorated the value of the decorated element changes.\r\n \r\n ### Html Attributes\r\n \r\n ```\r\n data-add-element-classes\r\n data-add-element-classes--event-name-dirty=\"valid jquery event name\"\r\n data-add-element-classes--event-name-clean=\"valid jquery event name\"\r\n ```\r\n \r\n Markup:\r\n
\r\n
\r\n
\r\n Toggles the class `JS--is-dirty` when field is clean or dirty.\r\n changes box to red\r\n \r\n
\r\n
\r\n Customise the clean/dirty event names emitted.\r\n changes box to skyblue\r\n \r\n
\r\n
\r\n \r\n \r\n Styleguide Global.Javascript.EmitWhenDirty\r\n */\n\n\n/* global $:true */\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--7-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--7-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--7-0!/tool/node_modules/eslint-loader/index.js!/tool/project/client/src/core/plugins/jquery__emit-on-dirty/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 = 'global/emit-on-dirty';\nvar log = (0, _debug2.default)(MODULE_NAME);\n\nlog('registerd');\n\nvar EmitOnDirty = function () {\n function EmitOnDirty(element, options) {\n _classCallCheck(this, EmitOnDirty);\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 this.initial = this.value;\n\n this.$element.on(this.options.on, this.change.bind(this));\n\n log('ready', this.$element);\n\n this.change();\n }\n\n _createClass(EmitOnDirty, [{\n key: 'change',\n value: function change() {\n var options = this.options;\n var value = this.value;\n var initial = this.initial;\n log('change', this.$element, value, initial);\n\n if (this.isDirty) {\n this.$element.trigger(this.options.eventNameDirty, { options: options, value: value, initial: initial });\n } else {\n this.$element.trigger(this.options.eventNameClean, { options: options, value: value, initial: initial });\n }\n }\n }, {\n key: 'clean',\n value: function clean() {\n this.initial = this.$element.val();\n this.change();\n }\n }, {\n key: 'value',\n get: function get() {\n return this.$element.val();\n // const elementTag = this.$element.prop('tagName');\n\n // switch (this.options.valueAttribute) {\n // case \"value\":\n // return elementTag === 'INPUT' && this.$element.val()\n // || this.$element.attr('value');\n // default:\n // return this.$element.attr(this.options.valueAttribute);\n // }\n }\n }, {\n key: 'isDirty',\n get: function get() {\n var yesno = this.initial !== this.value;\n log('isDirty', this.$element, yesno);\n\n return yesno;\n }\n }]);\n\n return EmitOnDirty;\n}();\n\nEmitOnDirty.DEFAULTS = {\n on: 'keyup change',\n valueAttribute: 'value',\n eventNameDirty: _index.PLUGIN_NAME + '.dirty',\n eventNameClean: _index.PLUGIN_NAME + '.clean'\n};\n\nexports.default = EmitOnDirty;\n//plugin(PLUGIN_NAME, EmitOnDirty);\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// scripts/plugin--emit-on-dirty--82b18d46057a76721879.js","/*\r\nEmit On Dirty\r\n\r\nEmits jquery events when decorated the value of the decorated element changes.\r\n\r\n### Html Attributes\r\n\r\n```\r\n data-add-element-classes\r\n data-add-element-classes--event-name-dirty=\"valid jquery event name\"\r\n data-add-element-classes--event-name-clean=\"valid jquery event name\"\r\n```\r\n\r\nMarkup:\r\n
\r\n
\r\n
\r\n Toggles the class `JS--is-dirty` when field is clean or dirty.\r\n changes box to red\r\n \r\n
\r\n
\r\n Customise the clean/dirty event names emitted.\r\n changes box to skyblue\r\n \r\n
\r\n
\r\n\r\n\r\nStyleguide Global.Javascript.EmitWhenDirty\r\n*/\r\nimport $ from 'jquery';\r\n\r\n/* global $:true */\r\nimport debug from 'debug';\r\nimport plugin from '@core/plugins/lib';\r\nimport { ELEMENT_SELECTOR, PLUGIN_NAME } from './index';\r\n\r\nconst MODULE_NAME = 'global/emit-on-dirty';\r\nconst log = debug(MODULE_NAME);\r\n\r\n\r\nlog('registerd');\r\n\r\nclass EmitOnDirty {\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 this.initial = this.value;\r\n\r\n this.$element.on(this.options.on, this.change.bind(this));\r\n\r\n log('ready', this.$element);\r\n\r\n this.change();\r\n }\r\n\r\n change() {\r\n const options = this.options;\r\n const value = this.value;\r\n const initial = this.initial;\r\n log('change', this.$element, value, initial);\r\n\r\n if (this.isDirty) {\r\n this.$element.trigger(this.options.eventNameDirty, { options, value, initial});\r\n } else {\r\n this.$element.trigger(this.options.eventNameClean, { options, value, initial});\r\n }\r\n }\r\n\r\n clean () {\r\n this.initial = this.$element.val();\r\n this.change();\r\n }\r\n\r\n get value () {\r\n return this.$element.val();\r\n // const elementTag = this.$element.prop('tagName');\r\n\r\n // switch (this.options.valueAttribute) {\r\n // case \"value\":\r\n // return elementTag === 'INPUT' && this.$element.val()\r\n // || this.$element.attr('value');\r\n // default:\r\n // return this.$element.attr(this.options.valueAttribute);\r\n // }\r\n }\r\n\r\n get isDirty() {\r\n const yesno = this.initial !== this.value;\r\n log('isDirty', this.$element, yesno);\r\n\r\n return yesno;\r\n }\r\n\r\n}\r\n\r\nEmitOnDirty.DEFAULTS = {\r\n on: 'keyup change',\r\n valueAttribute: 'value',\r\n eventNameDirty: `${PLUGIN_NAME}.dirty`,\r\n eventNameClean: `${PLUGIN_NAME}.clean`\r\n};\r\n\r\nexport default EmitOnDirty;\r\n//plugin(PLUGIN_NAME, EmitOnDirty);\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__emit-on-dirty/plugin.js"],"sourceRoot":""}