{"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"}