{"version":3,"sources":["hicomDirtyForms.ts"],"names":["hQueryReady","$","dirtyForms","fieldSelector","not","find","attr","addClass","on","ev","$submitResetButtons","target","type","removeClass","removeAttr","HicomDirtyForms","setDirtyStatus","$field","currentValue","let","original","data","form","parents","trigger","setHtmlEditorDirtyStatus","DOMParser","parseFromString","querySelector","textContent","replace"],"mappings":";AAIAA,YAAY,KACRC,EAAE,WAGEA,EAAE,MAAM,EAAEC,WAAW,CACjBC,cAAe,sH,CAClB,EAEDF,EAAE,MAAM,EAAEG,IAAI,8BAA8B,EAAEC,KAAK,aAAa,EAAEC,KAAK,WAAY,UAAU,EAAEC,SAAS,UAAU,EAElHN,EAAE,MAAM,EAAEG,IAAI,8BAA8B,EAAEI,GAAG,oCAAqC,SAAUC,GAC5F,IACIC,EADQT,EAAEQ,EAAGE,MAAM,EACSN,KAAK,aAAa,EAClC,UAAZI,EAAGG,KACHF,EAAoBG,YAAY,UAAU,EAAEC,WAAW,UAAU,EAEjEJ,EAAoBJ,KAAK,WAAY,UAAU,EAAEC,SAAS,UAAU,CAE5E,CAAC,CAEL,CAAC,CACL,CAAC,QAMKQ,gBACFC,sBAAsBC,EAAQC,GAC1BC,IAAIC,EAAWH,EAAOI,KAAK,SAAS,EAChCC,EAAOL,EAAOM,QAAQ,MAAM,EAE5BH,IAAaF,EACbD,EAAOV,SAAS,OAAO,EAGvBU,EAAOJ,YAAY,OAAO,EAE1BS,EAAKpB,WAAW,SAAS,EACzBoB,EAAKE,QAAQ,kBAAkB,EAE/BF,EAAKE,QAAQ,kBAAkB,CAEvC,CAEAC,gCAAgCR,EAAQC,GACpCC,IAEIC,GAFS,IAAIM,WAEKC,gBAAgBV,EAAOI,KAAK,QAAQ,EAAG,WAAW,EAAEO,cAAc,MAAM,EAAEC,YAC5FP,EAAOL,EAAOM,QAAQ,MAAM,EAE5BH,EAASU,QAAQ,MAAO,EAAE,IAAMZ,EAAaY,QAAQ,MAAO,EAAE,EAC9Db,EAAOV,SAAS,OAAO,EAGvBU,EAAOJ,YAAY,OAAO,EAE1BS,EAAKpB,WAAW,SAAS,EACzBoB,EAAKE,QAAQ,kBAAkB,EAE/BF,EAAKE,QAAQ,kBAAkB,CAEvC,C","file":"hicomDirtyForms.js","sourcesContent":["/** When the page and forms are loaded add dirtyForms\r\n *\r\n */\r\n// @ts-ignore\r\nhQueryReady(() => {\r\n $(function () {\r\n\r\n // @ts-ignore\r\n $('form').dirtyForms({\r\n fieldSelector: \"input:not([type='button'],[type='image'],[type='submit'],[type='reset'],[type='search'],.df-disable),select,textarea\"\r\n });\r\n\r\n $('form').not('.disable-dynamic-save-button').find('.saveButton').attr('disabled', 'disabled').addClass('disabled');\r\n\r\n $('form').not('.disable-dynamic-save-button').on('dirty.dirtyforms clean.dirtyforms', function (ev) {\r\n var $form = $(ev.target);\r\n var $submitResetButtons = $form.find('.saveButton');\r\n if (ev.type === 'dirty') {\r\n $submitResetButtons.removeClass('disabled').removeAttr('disabled');\r\n } else {\r\n $submitResetButtons.attr('disabled', 'disabled').addClass('disabled');\r\n }\r\n });\r\n\r\n })\r\n})\r\n\r\n/**\r\n * The function below has been introduced in order to provide DropDownTrees with a mechanism to mark themselves\r\n * as dirty. When the associated tag helper is rendered this is \"wired up\" on the page.\r\n **/\r\nclass HicomDirtyForms {\r\n static setDirtyStatus($field, currentValue): void {\r\n let original = $field.data('df-orig');\r\n let form = $field.parents('form');\r\n\r\n if (original !== currentValue) {\r\n $field.addClass('dirty');\r\n }\r\n else {\r\n $field.removeClass('dirty');\r\n }\r\n if (form.dirtyForms('isDirty')) {\r\n form.trigger('dirty.dirtyforms');\r\n } else {\r\n form.trigger('clean.dirtyforms');\r\n }\r\n }\r\n //The function below has been introduced in order to set dirty status in onkeyup event for HTMLEditor\r\n static setHtmlEditorDirtyStatus($field, currentValue): void {\r\n let parser = new DOMParser();\r\n //parser HTML get content of string with HTML tags\r\n let original = parser.parseFromString($field.data('dfOrig'), \"text/html\").querySelector(\"body\").textContent;\r\n let form = $field.parents('form');\r\n //Removed spaces from original and current value and compare\r\n if (original.replace(/\\s/g, '') !== currentValue.replace(/\\s/g, '')) {\r\n $field.addClass('dirty');\r\n }\r\n else {\r\n $field.removeClass('dirty');\r\n }\r\n if (form.dirtyForms('isDirty')) {\r\n form.trigger('dirty.dirtyforms');\r\n } else {\r\n form.trigger('clean.dirtyforms');\r\n }\r\n }\r\n}\r\n"]}