{"version":3,"sources":["webpack:///scripts/plugin--emit-on-dirty--cbcfb92164526fd34d14.js","webpack:///./client/src/core/plugins/jquery__emit-on-dirty/plugin.js"],"names":["webpackJsonp","/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/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","_jquery2","_jquery","_debug2","_debug","_lib2","_lib","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,oOACA,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,MCiDhiB,yBDeIkB,EAAWxB,EAAuByB,GCZtC,mNDgBIC,EAAU1B,EAAuB2B,GCfrC,sNDmBIC,EAAQ5B,EAAuB6B,GClBnC,wOAGMC,GAAM,aADQ,uBAIpBA,GAAI,YDyBJ,ICvBMC,G,WAEJ,WAAYC,EAASC,GAAS,UAC5BH,EAAI,eAAgBE,EAASC,GAE7BC,KAAKF,QAAUA,EACfE,KAAKD,QAAUA,EAEfC,KAAKC,UAAW,aAAEH,GAClBE,KAAKE,QAAUF,KAAKG,MAEpBH,KAAKC,SAASG,GAAGJ,KAAKD,QAAQK,GAAIJ,KAAKK,OAAOC,KAAKN,OAEnDJ,EAAI,QAASI,KAAKC,UAElBD,KAAKK,SDuEP,MA5CA/B,GAAauB,IACXX,IAAK,SACLiB,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,eD8BvEhB,IAAK,QACLiB,MAAO,WC1BPH,KAAKE,QAAUF,KAAKC,SAASU,MAC7BX,KAAKK,YD8BLnB,IAAK,QACL0B,IAAK,WC3BL,MAAOZ,MAAKC,SAASU,SDwCrBzB,IAAK,UACL0B,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,aAAOA,cAAanB","file":"scripts/plugin--emit-on-dirty--cbcfb92164526fd34d14.js","sourcesContent":["webpackJsonp([\"plugin--emit-on-dirty\"],{\n\n/***/ \"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/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; }; }(); /*\n Emit On Dirty\n \n Emits jquery events when decorated the value of the decorated element changes.\n \n ### Html Attributes\n \n ```\n data-add-element-classes\n data-add-element-classes--event-name-dirty=\"valid jquery event name\"\n data-add-element-classes--event-name-clean=\"valid jquery event name\"\n ```\n \n Markup:\n
\n
\n
\n Toggles the class `JS--is-dirty` when field is clean or dirty.\n changes box to red\n \n
\n
\n Customise the clean/dirty event names emitted.\n changes box to skyblue\n \n
\n
\n \n \n Styleguide Global.Javascript.EmitWhenDirty\n */\n\n\n/* global $:true */\n\n\nvar _jquery = __webpack_require__(\"external \\\"jQuery\\\"\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _debug = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/node_modules/debug/src/browser.js\");\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _lib = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/client/src/core/plugins/lib/index.js\");\n\nvar _lib2 = _interopRequireDefault(_lib);\n\nvar _index = __webpack_require__(\"/home/vsts/work/1/s/src/SCF/node_modules/babel-loader/lib/index.js??ref--11-0!/home/vsts/work/1/s/src/SCF/node_modules/eslint-loader/index.js!/home/vsts/work/1/s/src/SCF/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--cbcfb92164526fd34d14.js","/*\nEmit On Dirty\n\nEmits jquery events when decorated the value of the decorated element changes.\n\n### Html Attributes\n\n```\n data-add-element-classes\n data-add-element-classes--event-name-dirty=\"valid jquery event name\"\n data-add-element-classes--event-name-clean=\"valid jquery event name\"\n```\n\nMarkup:\n
\n
\n
\n Toggles the class `JS--is-dirty` when field is clean or dirty.\n changes box to red\n \n
\n
\n Customise the clean/dirty event names emitted.\n changes box to skyblue\n \n
\n
\n\n\nStyleguide Global.Javascript.EmitWhenDirty\n*/\nimport $ from 'jquery';\n\n/* global $:true */\nimport debug from 'debug';\nimport plugin from '@core/plugins/lib';\nimport { ELEMENT_SELECTOR, PLUGIN_NAME } from './index';\n\nconst MODULE_NAME = 'global/emit-on-dirty';\nconst log = debug(MODULE_NAME);\n\n\nlog('registerd');\n\nclass EmitOnDirty {\n\n constructor(element, options) {\n log('new instance', element, options);\n\n this.element = element;\n this.options = options;\n\n this.$element = $(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 change() {\n const options = this.options;\n const value = this.value;\n const initial = this.initial;\n log('change', this.$element, value, initial);\n\n if (this.isDirty) {\n this.$element.trigger(this.options.eventNameDirty, { options, value, initial});\n } else {\n this.$element.trigger(this.options.eventNameClean, { options, value, initial});\n }\n }\n\n clean () {\n this.initial = this.$element.val();\n this.change();\n }\n\n get value () {\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 get isDirty() {\n const yesno = this.initial !== this.value;\n log('isDirty', this.$element, yesno);\n\n return yesno;\n }\n\n}\n\nEmitOnDirty.DEFAULTS = {\n on: 'keyup change',\n valueAttribute: 'value',\n eventNameDirty: `${PLUGIN_NAME}.dirty`,\n eventNameClean: `${PLUGIN_NAME}.clean`\n};\n\nplugin(PLUGIN_NAME, EmitOnDirty);\n\n\n\n// WEBPACK FOOTER //\n// ./client/src/core/plugins/jquery__emit-on-dirty/plugin.js"],"sourceRoot":""}