{"version":3,"sources":["ko.extenders/async.js","ko.extenders/functions.js","ko.extenders/localStore.js"],"names":["ko","extenders","async","computedDeferred","options","console","log","plainObservable","observable","initialValue","promise","computed","cancel","then","res","catch","err","$error","dispose","subscribable","fn","kick","valueHasMutated","localStore","target","option","key","isNumeric","canBeEmpty","observableKey","exclude","unwrap","subscribe","value","localStorage","getItem","JSON","parse","warn","undefined","isNaN","includes","setItem","stringify","restore"],"mappings":"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","file":"ko.extenders.js","sourcesContent":[";\r\nko.extenders.async = function (computedDeferred, options)\r\n{\r\n\r\n console.log('is used')\r\n const plainObservable = ko.observable(options.initialValue);\r\n \r\n let promise;\r\n const computed = ko.computed(function () {\r\n \r\n //const count = plainObservable.getSubscriptionsCount();\r\n //console.log('COUNT: '+ count)\r\n promise?.cancel?.();\r\n\r\n promise = computedDeferred();\r\n\r\n promise\r\n .then(options.then)\r\n .then(res => plainObservable(res))\r\n .catch((err) => { \r\n plainObservable({ $error: err })\r\n });\r\n });\r\n ////at some point:\r\n //computed.dispose() \r\n plainObservable.dispose = function () {\r\n computed.dispose()\r\n }\r\n\r\n\r\n return plainObservable;\r\n};\r\n","ko.subscribable.fn.kick = function ()\r\n{\r\n this.valueHasMutated();\r\n}\r\n ; ","ko.extenders.localStore = function (target, option)\r\n{\r\n let key,\r\n isNumeric = false,\r\n canBeEmpty = true,\r\n observableKey = null,\r\n exclude = [];\r\n\r\n if (typeof option == 'string') {\r\n key = option;\r\n } else {\r\n\r\n isNumeric = option.isNumeric ?? isNumeric;\r\n canBeEmpty = option.canBeEmpty ?? canBeEmpty;\r\n exclude = option.exclude ?? exclude;\r\n\r\n if ('observableKey' in option) {\r\n key = ko.unwrap(option.observableKey);\r\n\r\n option.observableKey.subscribe(function (value)\r\n {\r\n key = value;\r\n\r\n value = localStorage.getItem(key);\r\n if (typeof value != 'undefined' && value != 'undefined' && value != '' && value != null) {\r\n target(JSON.parse(value));\r\n }\r\n })\r\n } else {\r\n key = option.key;\r\n }\r\n\r\n }\r\n try {\r\n var value = localStorage.getItem(key);\r\n if (typeof value != 'undefined' && value !== 'undefined' && value !== '' && value !== null) {\r\n target(JSON.parse(value));\r\n }\r\n } catch (err) { console.warn(err) }\r\n\r\n target.subscribe(function (value)\r\n {\r\n if (!canBeEmpty && (value === undefined || value === '')) { return; }\r\n if (!canBeEmpty && isNumeric && (value === undefined || value === '' || value === 0 || value === '0')) { return; }\r\n if (isNumeric && isNaN(value)) { return; }\r\n\r\n\r\n\r\n if (!exclude || !exclude.includes(value)) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n });\r\n\r\n //window.addEventListener('storage', onStorageEvent, false);\r\n\r\n\r\n\r\n target.restore = function ()\r\n {\r\n var value = localStorage.getItem(key);\r\n if (typeof value != 'undefined' && value != 'undefined' && value != '' && value != null) {\r\n target(JSON.parse(value));\r\n }\r\n\r\n }\r\n return target;\r\n}\r\n"]}