{"version":3,"file":"StatusIndicator.js","sources":["requirejs/UI/StatusIndicator.js"],"sourcesContent":["define([\"require\", \"exports\", \"knockout\"], function (require, exports, ko) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.StatusIndicator = exports.Status = void 0;\n var Status;\n (function (Status) {\n Status[\"Initial\"] = \"Initial\";\n Status[\"Loading\"] = \"Loading\";\n Status[\"Success\"] = \"Success\";\n Status[\"Error\"] = \"Error\";\n })(Status = exports.Status || (exports.Status = {}));\n class StatusIndicator {\n constructor(data) {\n this.SetOptions(data);\n this.InitialState = (data && data.InitialState) || Status.Initial;\n this.History = ko.observableArray([]);\n this.setInternalStatus(this.InitialState);\n this.InternalStatus = ko.computed(() => {\n const history = this.History();\n const current = history[history.length - 1];\n return current && current[1] || null;\n });\n this.Errors = ko.observableArray([this.DefaultError()]);\n this.createFlags(); //creates boolean flags for each state\n }\n createFlags() {\n Object.keys(this.StatusEnum).forEach(key => this[`Is${key}`] = ko.computed(() => this.Is(key)));\n }\n setInternalStatus(status) {\n this.History.push([Date.now(), status]);\n }\n SetOptions(data) {\n data = $.extend({\n Delay: 200,\n Success: '',\n DefaultError: '',\n StatusEnum: Status\n }, data);\n ko.mapping.fromJS(data, {}, this);\n }\n Reset() {\n this.setInternalStatus(this.InitialState);\n this.Errors([this.DefaultError()]);\n }\n Is(status) {\n return Array.isArray(status) ? status.indexOf(this.InternalStatus()) > -1 : this.InternalStatus() === status;\n }\n GetStatus() {\n return this.InternalStatus();\n }\n GetStatusObs() {\n return this.InternalStatus;\n }\n GetPreviousStatus() {\n const history = this.History();\n return history.length > 1 ? history[history.length - 2][1] : null;\n }\n SubscribeToStatus(subscriber) {\n return this.InternalStatus.subscribe(subscriber);\n }\n SetStatus(status) {\n window.clearTimeout(this.Timeout);\n this.setInternalStatus(status);\n }\n SetStatusAfterDelay(status, delay, callback) {\n if (this.Timeout)\n window.clearTimeout(this.Timeout);\n this.Timeout = window.setTimeout(() => {\n if (callback) {\n callback();\n }\n this.setInternalStatus(status);\n }, delay || this.Delay());\n }\n }\n exports.StatusIndicator = StatusIndicator;\n});\n//# sourceMappingURL=StatusIndicator.js.map"],"names":["define","require","exports","ko","Status","Object","defineProperty","value","StatusIndicator","constructor","data","this","SetOptions","InitialState","Initial","History","observableArray","setInternalStatus","InternalStatus","computed","history","current","length","Errors","DefaultError","createFlags","keys","StatusEnum","forEach","key","Is","status","push","Date","now","$","extend","Delay","Success","mapping","fromJS","Reset","Array","isArray","indexOf","GetStatus","GetStatusObs","GetPreviousStatus","SubscribeToStatus","subscriber","subscribe","SetStatus","window","clearTimeout","Timeout","SetStatusAfterDelay","delay","callback","setTimeout"],"mappings":"AAAAA,OAAO,CAAC,UAAW,UAAW,YAAa,SAAUC,EAASC,EAASC,gBAInE,IAAIC,EACOA,EAHXC,OAAOC,eAAeJ,EAAS,aAAc,CAAEK,OAAO,IACtDL,EAAQM,gBAAkBN,EAAQE,YAAS,GAEhCA,EAKRA,EAASF,EAAQE,SAAWF,EAAQE,OAAS,KAJ5B,QAAI,UACpBA,EAAgB,QAAI,UACpBA,EAAgB,QAAI,UACpBA,EAAc,MAAI,QAkEtBF,EAAQM,sBA/DJC,YAAYC,GACRC,KAAKC,WAAWF,GAChBC,KAAKE,aAAgBH,GAAQA,EAAKG,cAAiBT,EAAOU,QAC1DH,KAAKI,QAAUZ,EAAGa,gBAAgB,IAClCL,KAAKM,kBAAkBN,KAAKE,cAC5BF,KAAKO,eAAiBf,EAAGgB,SAAS,KAC9B,IAAMC,EAAUT,KAAKI,UACfM,EAAUD,EAAQA,EAAQE,OAAS,GACzC,OAAOD,GAAWA,EAAQ,IAAM,OAEpCV,KAAKY,OAASpB,EAAGa,gBAAgB,CAACL,KAAKa,iBACvCb,KAAKc,cAETA,cACIpB,OAAOqB,KAAKf,KAAKgB,YAAYC,QAAQC,GAAOlB,KAAK,KAAKkB,GAAS1B,EAAGgB,SAAS,IAAMR,KAAKmB,GAAGD,KAE7FZ,kBAAkBc,GACdpB,KAAKI,QAAQiB,KAAK,CAACC,KAAKC,MAAOH,IAEnCnB,WAAWF,GACPA,EAAOyB,EAAEC,OAAO,CACZC,MAAO,IACPC,QAAS,GACTd,aAAc,GACdG,WAAYvB,GACbM,GACHP,EAAGoC,QAAQC,OAAO9B,EAAM,GAAIC,MAEhC8B,QACI9B,KAAKM,kBAAkBN,KAAKE,cAC5BF,KAAKY,OAAO,CAACZ,KAAKa,iBAEtBM,GAAGC,GACC,OAAOW,MAAMC,QAAQZ,IAAmD,EAAzCA,EAAOa,QAAQjC,KAAKO,kBAAyBP,KAAKO,mBAAqBa,EAE1Gc,YACI,OAAOlC,KAAKO,iBAEhB4B,eACI,OAAOnC,KAAKO,eAEhB6B,oBACI,IAAM3B,EAAUT,KAAKI,UACrB,OAAwB,EAAjBK,EAAQE,OAAaF,EAAQA,EAAQE,OAAS,GAAG,GAAK,KAEjE0B,kBAAkBC,GACd,OAAOtC,KAAKO,eAAegC,UAAUD,GAEzCE,UAAUpB,GACNqB,OAAOC,aAAa1C,KAAK2C,SACzB3C,KAAKM,kBAAkBc,GAE3BwB,oBAAoBxB,EAAQyB,EAAOC,GAC3B9C,KAAK2C,SACLF,OAAOC,aAAa1C,KAAK2C,SAC7B3C,KAAK2C,QAAUF,OAAOM,WAAW,KACzBD,GACAA,IAEJ9C,KAAKM,kBAAkBc,IACxByB,GAAS7C,KAAK0B"}