{"version":3,"sources":["charactersremaining.js","webpack://skyward_qmlativ_web/Scripts/skyward.base.ts","webpack://skyward_qmlativ_web/Scripts/skyward.ui.charactersremaining.ts"],"names":["self","webpackChunkskyward_qmlativ_web","push","t","n","e","r","d","registerScript","i","_registeredScripts","Object","create","namespace","callback","registerEvents","window","skyward","jQuery","base","_skyward","$","classNames","init","label","this","context","closest","concat","length","forElement","find","data","charactersRemainingForId","updateCharactersRemaining","on","element","charactersRemainingLabel","value","val","maxLength","attr","parseInt","undefined","charactersRemainingCount","text","toggle"],"mappings":"AAAA,cAAcA,KAAKC,gCAAgCD,KAAKC,iCAAiC,IAAIC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAACC,EAAEC,EAAEC,KAAKA,EAAEC,EAAEF,GAAGC,EAAEE,EAAEH,EAAE,CAACI,eAAeA,IAAIC,IAAI,IAAIH,EAAED,EAAE,MCEvK,MAAMK,EAA+CC,OAAOC,OAAO,MAO5D,SAASJ,EAAeK,EAAmBC,GAE1CJ,EAAmBG,IAKC,mBAAbC,IAEPJ,EAAmBG,IAAa,GAEhCE,EAAAA,EAAAA,gBAAeF,EAAWC,EAASE,OAAOC,QAASD,OAAOE,SAElE,GDtByT,KAAK,CAACf,EAAEC,EAAEC,KAAKA,EAAEC,EAAEF,GAAGC,EAAE,MEEjVW,OAAOC,QAAQE,KAAKX,eAAe,uBAAuB,SAAUY,EAAmBC,GAEnF,MAAMC,EAEmB,sBAQzB,MAJA,CACIC,KAKJ,WAEI,MAAMC,EAAQH,EAAEI,MACVC,EAAUF,EAAMG,QAAQ,IAADC,OAAKN,IAElC,GAAII,EAAQG,OAAS,EAEjB,OAGJ,MAAMC,EAAaJ,EAAQK,KAAK,UAADH,OAAWJ,EAAMQ,OAAOC,yBAAwB,OAE/E,GAAIH,EAAWD,OAAS,EAEpB,OAGJK,EAA0BJ,EAAYN,GAEtCM,EAAWK,GAAG,SAAS,WAEnBD,EAA0BJ,EAAYN,EAC1C,GACJ,GAEA,SAASU,EAA0BE,EAA8BC,GAE7D,MAAMC,EAAQF,EAAQG,MAChBC,EAAYJ,EAAQK,KAAK,aAAeC,SAASN,EAAQK,KAAK,mBAAiBE,EAE/EC,OAAyCD,IAAdH,GAAqC,OAAVF,EAAiBE,EAAYF,EAAMT,YAASc,OAEvEA,IAA7BC,IAEAP,EAAyBQ,KAAK,yBAADjB,OAA0BgB,IACvDP,EAAyBS,OAAOF,GAA4B,IAEpE,CACJ,GFtD82B","file":"charactersremaining.js","sourcesContent":["\"use strict\";(self.webpackChunkskyward_qmlativ_web=self.webpackChunkskyward_qmlativ_web||[]).push([[4757],{5618:(t,n,e)=>{e.r(n),e.d(n,{registerScript:()=>i});var r=e(2214);const a=Object.create(null);function i(t,n){a[t]||\"function\"==typeof n&&(a[t]=!0,(0,r.registerEvents)(t,n(window.skyward,window.jQuery)))}},4627:(t,n,e)=>{e.r(n);e(5618);window.skyward.base.registerScript(\"charactersRemaining\",(function(t,n){const e=\"skywardContentPanel\";return{init:function(){const t=n(this),a=t.closest(\".\".concat(e));if(a.length<1)return;const i=a.find(\"[name='\".concat(t.data().charactersRemainingForId,\"']\"));if(i.length<1)return;r(i,t),i.on(\"input\",(function(){r(i,t)}))}};function r(t,n){const e=t.val(),r=t.attr(\"maxlength\")?parseInt(t.attr(\"maxlength\")):void 0,a=void 0!==r&&null!==e?r-e.length:void 0;void 0!==a&&(n.text(\"Characters Remaining: \".concat(a)),n.toggle(a<=50))}}))}}]);\n","import { Dictionary, Skyward, EventDictionary } from \"./types\";\r\nimport { registerEvents } from \"./skyward.ui.events\";\r\nconst _registeredScripts: Dictionary = Object.create(null);\r\n\r\n/**\r\n* Registers a script with a namespace\r\n* @param {String} namespace The namespace of the script that will be registered\r\n* @param {Function} callback A function to call to initialize the script, should return an events object\r\n*/\r\nexport function registerScript(namespace: string, callback: (skyward: Skyward, $: JQueryStatic) => EventDictionary): void\r\n{\r\n if (_registeredScripts[namespace])\r\n {\r\n return;\r\n }\r\n\r\n if (typeof callback === \"function\")\r\n {\r\n _registeredScripts[namespace] = true;\r\n\r\n registerEvents(namespace, callback(window.skyward, window.jQuery));\r\n }\r\n};","import { JQueryInput, Skyward } from \"./types\"\n\nwindow.skyward.base.registerScript(\"charactersRemaining\", function (_skyward: Skyward, $: JQueryStatic)\n{\n const classNames =\n {\n skywardContentPanel: \"skywardContentPanel\"\n };\n\n const events =\n {\n init: init\n };\n\n return events;\n\n function init(this: JQueryInput)\n {\n const label = $(this);\n const context = label.closest(`.${classNames.skywardContentPanel}`);\n\n if (context.length < 1)\n {\n return;\n }\n\n const forElement = context.find(`[name='${label.data().charactersRemainingForId}']`);\n\n if (forElement.length < 1) \n {\n return;\n }\n\n updateCharactersRemaining(forElement, label);\n\n forElement.on(\"input\", function ()\n {\n updateCharactersRemaining(forElement, label);\n });\n }\n\n function updateCharactersRemaining(element: JQuery, charactersRemainingLabel: JQuery)\n {\n const value = element.val() as string;\n const maxLength = element.attr(\"maxlength\") ? parseInt(element.attr(\"maxlength\")!) : undefined;\n\n const charactersRemainingCount = maxLength !== undefined && value !== null ? maxLength - value.length : undefined;\n\n if (charactersRemainingCount !== undefined)\n {\n charactersRemainingLabel.text(`Characters Remaining: ${charactersRemainingCount}`);\n charactersRemainingLabel.toggle(charactersRemainingCount <= 50);\n }\n }\n});"]}