{"version":3,"sources":["webpack:///scripts/plugin--emit-on-dirty--76c297f7a9c03957d3fe.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","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","_jquery","_jquery2","_debug","_debug2","_lib","_lib2","_index","log","EmitOnDirty","element","options","this","$element","initial","value","on","change","bind","isDirty","trigger","eventNameDirty","eventNameClean","val","get","yesno","DEFAULTS","valueAttribute","PLUGIN_NAME"],"mappings":"AAAAA,cAAc,0BAERC,yKACA,SAAUC,EAAQC,EAASC,GAEjC,YA+EA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCA9EhH,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,MCiDhiBkB,EAAAzB,EAAA,qBDeI0B,EAAWzB,EAAuBwB,GCZtCE,EAAA3B,EAAA,4IDgBI4B,EAAU3B,EAAuB0B,GCfrCE,EAAA7B,EAAA,uJDmBI8B,EAAQ7B,EAAuB4B,GClBnCE,EAAA/B,EAAA,yKAGMgC,GAAM,EAAAJ,EAAAxB,SADQ,uBAIpB4B,GAAI,YDyBJ,ICvBMC,GDuBY,WCrBhB,QAAAA,GAAYC,EAASC,GAAS9B,EAAA+B,KAAAH,GAC5BD,EAAI,eAAgBE,EAASC,GAE7BC,KAAKF,QAAUA,EACfE,KAAKD,QAAUA,EAEfC,KAAKC,UAAW,EAAAX,EAAAtB,SAAE8B,GAClBE,KAAKE,QAAUF,KAAKG,MAEpBH,KAAKC,SAASG,GAAGJ,KAAKD,QAAQK,GAAIJ,KAAKK,OAAOC,KAAKN,OAEnDJ,EAAI,QAASI,KAAKC,UAElBD,KAAKK,SDuEP,MA5CAhC,GAAawB,IACXZ,IAAK,SACLkB,MAAO,WCzBP,GAAMJ,GAAUC,KAAKD,QACfI,EAAQH,KAAKG,MACbD,EAAUF,KAAKE,OACrBN,GAAI,SAAUI,KAAKC,SAAUE,EAAOD,GAEhCF,KAAKO,QACPP,KAAKC,SAASO,QAAQR,KAAKD,QAAQU,gBAAkBV,UAASI,QAAOD,YAErEF,KAAKC,SAASO,QAAQR,KAAKD,QAAQW,gBAAkBX,UAASI,QAAOD,eD8BvEjB,IAAK,QACLkB,MAAO,WC1BPH,KAAKE,QAAUF,KAAKC,SAASU,MAC7BX,KAAKK,YD8BLpB,IAAK,QACL2B,IAAK,WC3BL,MAAOZ,MAAKC,SAASU,SDwCrB1B,IAAK,UACL2B,IAAK,WC5BL,GAAMC,GAAQb,KAAKE,UAAYF,KAAKG,KAGpC,OAFAP,GAAI,UAAWI,KAAKC,SAAUY,GAEvBA,MDiCFhB,IC5BTA,GAAYiB,UACVV,GAAI,eACJW,eAAgB,QAChBN,eAAmBO,cAAnB,SACAN,eAAmBM,cAAnB,WAGF,EAAAtB,EAAA1B,SAAOgD,cAAanB","file":"scripts/plugin--emit-on-dirty--76c297f7a9c03957d3fe.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\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\n(0, _lib2.default)(_index.PLUGIN_NAME, EmitOnDirty);\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// scripts/plugin--emit-on-dirty--76c297f7a9c03957d3fe.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\nplugin(PLUGIN_NAME, EmitOnDirty);\r\n\n\n\n// WEBPACK FOOTER //\n// ./project/client/src/core/plugins/jquery__emit-on-dirty/plugin.js"],"sourceRoot":""}