@sd-angular/core 0.0.905 → 0.0.906

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -521,7 +521,7 @@
521
521
  }
522
522
  }
523
523
  if (!__classPrivateFieldGet(this, _subject)[hashKey]) {
524
- __classPrivateFieldGet(this, _subject)[hashKey] = new rxjs.BehaviorSubject(option === null || option === void 0 ? void 0 : option.default);
524
+ __classPrivateFieldGet(this, _subject)[hashKey] = new rxjs.Subject();
525
525
  }
526
526
  var get = __classPrivateFieldGet(this, _get).call(this, hashKey, option);
527
527
  var set = __classPrivateFieldGet(this, _set).call(this, hashKey, option);
@@ -533,7 +533,7 @@
533
533
  has: has,
534
534
  remove: remove,
535
535
  subject: __classPrivateFieldGet(this, _subject)[hashKey],
536
- observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(operators.switchMap(get))
536
+ observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(operators.startWith(option === null || option === void 0 ? void 0 : option.default), operators.switchMap(get))
537
537
  };
538
538
  };
539
539
  return SdSettingService;
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-setting.umd.js","sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/setting/src/lib/setting.service.ts","../../../../projects/sd-core/setting/src/public-api.ts","../../../../projects/sd-core/setting/sd-angular-core-setting.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session' | 'server';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOption) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOption) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOption) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: BehaviorSubject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (option?.type === 'server') {\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<any>(option?.default);\r\n }\r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else if (option?.type === 'server') {\r\n await this.configuration?.remove(key, option);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/setting.model';\r\nexport * from './lib/setting.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["InjectionToken","hash","BehaviorSubject","switchMap","Injectable","Inject","Optional"],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-setting.umd.js","sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/setting/src/lib/setting.service.ts","../../../../projects/sd-core/setting/src/public-api.ts","../../../../projects/sd-core/setting/sd-angular-core-setting.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session' | 'server';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: Subject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOption) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOption) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOption) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: Subject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (option?.type === 'server') {\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new Subject<any>();\r\n }\r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(option?.default), switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else if (option?.type === 'server') {\r\n await this.configuration?.remove(key, option);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/setting.model';\r\nexport * from './lib/setting.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["InjectionToken","hash","Subject","startWith","switchMap","Injectable","Inject","Optional"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("object-hash"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@sd-angular/core/setting",["exports","@angular/core","object-hash","rxjs","rxjs/operators"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core.setting={}),e.ng.core,e.hash,e.rxjs,e.rxjs.operators)}(this,(function(e,t,r,n,i){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=o(r),a=new t.InjectionToken("setting.configuration");function u(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))}function c(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}Object.create;var l,f,h,d,v,p;Object.create;function g(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}var y=function(){function e(e){var t=this;this.configuration=e,l.set(this,{}),f.set(this,{}),h.set(this,(function(e,r){return function(){return u(t,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:if(n=g(this,l)[e],"session"!==(null==r?void 0:r.type))return[3,1];try{n=JSON.parse(sessionStorage.getItem(e))}catch(e){n=void 0}return[3,7];case 1:if("server"!==(null==r?void 0:r.type))return[3,6];i.label=2;case 2:return i.trys.push([2,4,,5]),[4,null===(t=this.configuration)||void 0===t?void 0:t.get(e,r)];case 3:return n=i.sent(),[3,5];case 4:return i.sent(),n=void 0,[3,5];case 5:return[3,7];case 6:try{n=JSON.parse(localStorage.getItem(e))}catch(e){n=void 0}i.label=7;case 7:return n?[2,JSON.parse(JSON.stringify(n.data))]:[2,null==r?void 0:r.default]}}))}))}})),d.set(this,(function(e,r){return function(n){return u(t,void 0,void 0,(function(){var t,i;return c(this,(function(o){switch(o.label){case 0:if(g(this,l)[e]={data:JSON.parse(JSON.stringify(n)),createdOn:new Date},"session"!==(null==r?void 0:r.type))return[3,1];try{sessionStorage.setItem(e,JSON.stringify(g(this,l)[e])),g(this,f)[e].next(g(this,l)[e].data)}catch(e){console.error(e)}return[3,7];case 1:if("server"!==(null==r?void 0:r.type))return[3,6];o.label=2;case 2:return o.trys.push([2,4,,5]),[4,null===(t=this.configuration)||void 0===t?void 0:t.set(e,g(this,l)[e])];case 3:return o.sent(),g(this,f)[e].next(g(this,l)[e].data),[3,5];case 4:return i=o.sent(),console.error(i),[3,5];case 5:return[3,7];case 6:try{localStorage.setItem(e,JSON.stringify(g(this,l)[e])),g(this,f)[e].next(g(this,l)[e].data)}catch(e){console.error(e)}o.label=7;case 7:return[2]}}))}))}})),v.set(this,(function(e,r){return function(){return u(t,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:if(n=g(this,l)[e],"session"!==(null==r?void 0:r.type))return[3,1];try{n=JSON.parse(sessionStorage.getItem(e))}catch(e){n=void 0}return[3,7];case 1:if("server"!==(null==r?void 0:r.type))return[3,6];i.label=2;case 2:return i.trys.push([2,4,,5]),[4,null===(t=this.configuration)||void 0===t?void 0:t.get(e,r)];case 3:return n=i.sent(),[3,5];case 4:return i.sent(),n=void 0,[3,5];case 5:return[3,7];case 6:try{n=JSON.parse(localStorage.getItem(e))}catch(e){n=void 0}i.label=7;case 7:return n?[2,!0]:[2,!1]}}))}))}})),p.set(this,(function(e,r){return function(){return u(t,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:return i.trys.push([0,5,,6]),"session"!==(null==r?void 0:r.type)?[3,1]:(sessionStorage.removeItem(e),[3,4]);case 1:return"server"!==(null==r?void 0:r.type)?[3,3]:[4,null===(t=this.configuration)||void 0===t?void 0:t.remove(e,r)];case 2:return i.sent(),[3,4];case 3:localStorage.removeItem(e),i.label=4;case 4:return g(this,l)[e]=void 0,g(this,f)[e].next(void 0),[3,6];case 5:return n=i.sent(),console.error(n),[3,6];case 6:return[2]}}))}))}}))}return e.prototype.create=function(e,t){var r,o,a,u;if(!e)throw new Error("Key is required");var c=null;if("string"==typeof e)c=e;else{if("object"!=typeof e)throw new Error("Invalid key");c=s.default(e)}if((null===(r=this.configuration)||void 0===r?void 0:r.convertKey)&&(c=this.configuration.convertKey(c)),"server"===(null==t?void 0:t.type)){if(!(null===(o=this.configuration)||void 0===o?void 0:o.get))throw new Error("Please init setting configuration method get for type server");if(!(null===(a=this.configuration)||void 0===a?void 0:a.set))throw new Error("Please init setting configuration method set for type server");if(!(null===(u=this.configuration)||void 0===u?void 0:u.remove))throw new Error("Please init setting configuration method remove for type server")}g(this,f)[c]||(g(this,f)[c]=new n.BehaviorSubject(null==t?void 0:t.default));var l=g(this,h).call(this,c,t);return{get:l,set:g(this,d).call(this,c,t),has:g(this,v).call(this,c,t),remove:g(this,p).call(this,c,t),subject:g(this,f)[c],observer:g(this,f)[c].pipe(i.switchMap(l))}},e}();l=new WeakMap,f=new WeakMap,h=new WeakMap,d=new WeakMap,v=new WeakMap,p=new WeakMap,y.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new y(t.ɵɵinject(a,8))},token:y,providedIn:"root"}),y.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],y.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[a]},{type:t.Optional}]}]},e.SETTING_CONFIG=a,e.SdSettingService=y,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("object-hash"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@sd-angular/core/setting",["exports","@angular/core","object-hash","rxjs","rxjs/operators"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core.setting={}),e.ng.core,e.hash,e.rxjs,e.rxjs.operators)}(this,(function(e,t,r,n,i){"use strict";function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=o(r),a=new t.InjectionToken("setting.configuration");function u(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}u((n=n.apply(e,t||[])).next())}))}function c(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}Object.create;var l,f,h,d,v,p;Object.create;function g(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}var y=function(){function e(e){var t=this;this.configuration=e,l.set(this,{}),f.set(this,{}),h.set(this,(function(e,r){return function(){return u(t,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:if(n=g(this,l)[e],"session"!==(null==r?void 0:r.type))return[3,1];try{n=JSON.parse(sessionStorage.getItem(e))}catch(e){n=void 0}return[3,7];case 1:if("server"!==(null==r?void 0:r.type))return[3,6];i.label=2;case 2:return i.trys.push([2,4,,5]),[4,null===(t=this.configuration)||void 0===t?void 0:t.get(e,r)];case 3:return n=i.sent(),[3,5];case 4:return i.sent(),n=void 0,[3,5];case 5:return[3,7];case 6:try{n=JSON.parse(localStorage.getItem(e))}catch(e){n=void 0}i.label=7;case 7:return n?[2,JSON.parse(JSON.stringify(n.data))]:[2,null==r?void 0:r.default]}}))}))}})),d.set(this,(function(e,r){return function(n){return u(t,void 0,void 0,(function(){var t,i;return c(this,(function(o){switch(o.label){case 0:if(g(this,l)[e]={data:JSON.parse(JSON.stringify(n)),createdOn:new Date},"session"!==(null==r?void 0:r.type))return[3,1];try{sessionStorage.setItem(e,JSON.stringify(g(this,l)[e])),g(this,f)[e].next(g(this,l)[e].data)}catch(e){console.error(e)}return[3,7];case 1:if("server"!==(null==r?void 0:r.type))return[3,6];o.label=2;case 2:return o.trys.push([2,4,,5]),[4,null===(t=this.configuration)||void 0===t?void 0:t.set(e,g(this,l)[e])];case 3:return o.sent(),g(this,f)[e].next(g(this,l)[e].data),[3,5];case 4:return i=o.sent(),console.error(i),[3,5];case 5:return[3,7];case 6:try{localStorage.setItem(e,JSON.stringify(g(this,l)[e])),g(this,f)[e].next(g(this,l)[e].data)}catch(e){console.error(e)}o.label=7;case 7:return[2]}}))}))}})),v.set(this,(function(e,r){return function(){return u(t,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:if(n=g(this,l)[e],"session"!==(null==r?void 0:r.type))return[3,1];try{n=JSON.parse(sessionStorage.getItem(e))}catch(e){n=void 0}return[3,7];case 1:if("server"!==(null==r?void 0:r.type))return[3,6];i.label=2;case 2:return i.trys.push([2,4,,5]),[4,null===(t=this.configuration)||void 0===t?void 0:t.get(e,r)];case 3:return n=i.sent(),[3,5];case 4:return i.sent(),n=void 0,[3,5];case 5:return[3,7];case 6:try{n=JSON.parse(localStorage.getItem(e))}catch(e){n=void 0}i.label=7;case 7:return n?[2,!0]:[2,!1]}}))}))}})),p.set(this,(function(e,r){return function(){return u(t,void 0,void 0,(function(){var t,n;return c(this,(function(i){switch(i.label){case 0:return i.trys.push([0,5,,6]),"session"!==(null==r?void 0:r.type)?[3,1]:(sessionStorage.removeItem(e),[3,4]);case 1:return"server"!==(null==r?void 0:r.type)?[3,3]:[4,null===(t=this.configuration)||void 0===t?void 0:t.remove(e,r)];case 2:return i.sent(),[3,4];case 3:localStorage.removeItem(e),i.label=4;case 4:return g(this,l)[e]=void 0,g(this,f)[e].next(void 0),[3,6];case 5:return n=i.sent(),console.error(n),[3,6];case 6:return[2]}}))}))}}))}return e.prototype.create=function(e,t){var r,o,a,u;if(!e)throw new Error("Key is required");var c=null;if("string"==typeof e)c=e;else{if("object"!=typeof e)throw new Error("Invalid key");c=s.default(e)}if((null===(r=this.configuration)||void 0===r?void 0:r.convertKey)&&(c=this.configuration.convertKey(c)),"server"===(null==t?void 0:t.type)){if(!(null===(o=this.configuration)||void 0===o?void 0:o.get))throw new Error("Please init setting configuration method get for type server");if(!(null===(a=this.configuration)||void 0===a?void 0:a.set))throw new Error("Please init setting configuration method set for type server");if(!(null===(u=this.configuration)||void 0===u?void 0:u.remove))throw new Error("Please init setting configuration method remove for type server")}g(this,f)[c]||(g(this,f)[c]=new n.Subject);var l=g(this,h).call(this,c,t);return{get:l,set:g(this,d).call(this,c,t),has:g(this,v).call(this,c,t),remove:g(this,p).call(this,c,t),subject:g(this,f)[c],observer:g(this,f)[c].pipe(i.startWith(null==t?void 0:t.default),i.switchMap(l))}},e}();l=new WeakMap,f=new WeakMap,h=new WeakMap,d=new WeakMap,v=new WeakMap,p=new WeakMap,y.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new y(t.ɵɵinject(a,8))},token:y,providedIn:"root"}),y.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],y.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[a]},{type:t.Optional}]}]},e.SETTING_CONFIG=a,e.SdSettingService=y,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=sd-angular-core-setting.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/setting/src/lib/setting.service.ts"],"names":["SETTING_CONFIG","InjectionToken","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__classPrivateFieldGet","receiver","privateMap","has","get","SdSettingService","configuration","_this","_cache","set","_subject","_get","key","option","cache","type","JSON","parse","sessionStorage","getItem","_b","undefined","_a","_e","localStorage","_d","stringify","data","default","_set","createdOn","Date","setItem","err","console","error","err_1","_has","_remove","removeItem","remove","err_2","prototype","Error","hashKey","hash","convertKey","_c","BehaviorSubject","subject","observer","pipe","switchMap","Injectable","args","providedIn","Inject","Optional"],"mappings":"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","sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session' | 'server';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOption) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOption) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOption) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: BehaviorSubject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (option?.type === 'server') {\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<any>(option?.default);\r\n }\r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else if (option?.type === 'server') {\r\n await this.configuration?.remove(key, option);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/setting/src/lib/setting.service.ts"],"names":["SETTING_CONFIG","InjectionToken","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__classPrivateFieldGet","receiver","privateMap","has","get","SdSettingService","configuration","_this","_cache","set","_subject","_get","key","option","cache","type","JSON","parse","sessionStorage","getItem","_b","undefined","_a","_e","localStorage","_d","stringify","data","default","_set","createdOn","Date","setItem","err","console","error","err_1","_has","_remove","removeItem","remove","err_2","prototype","Error","hashKey","hash","convertKey","_c","Subject","subject","observer","pipe","startWith","switchMap","Injectable","args","providedIn","Inject","Optional"],"mappings":"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","sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session' | 'server';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: Subject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOption) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOption) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOption) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: Subject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (option?.type === 'server') {\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new Subject<any>();\r\n }\r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(option?.default), switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else if (option?.type === 'server') {\r\n await this.configuration?.remove(key, option);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n"]}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb25maWcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvdXNlci9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9tb2RlbHMvZ3JpZC1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEdlbmVyYXRlZENvbHVtbiB9IGZyb20gJy4uL3NlcnZpY2VzL2dlbmVyYXRlZC1jb2x1bW4vZ2VuZXJhdGVkLWNvbHVtbi5tb2RlbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsQ29uZmlnT3B0aW9uPFQgPSBhbnk+IHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgc3RvcmFnZT86ICdzZXNzaW9uJyB8ICdzZXJ2ZXInO1xyXG4gIGN1c3RvbUNvbHVtbj86IGJvb2xlYW47XHJcbiAgYXJncz86IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICB9O1xyXG4gIHN5c3RlbUNvbHVtbj86IHtcclxuICAgIHBlcm1pc3Npb24/OiAnUkVBRCcgfCAnQ1JFQVRFJyB8ICdVUERBVEUnIHwgJ0RFTEVURSc7XHJcbiAgICBhcmdzPzoge1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RPcmlnaW5Db2x1bW4ge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBpbnZpc2libGU/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkR2VuZXJhdGVkQ29uZmlndXJhdGlvbiB7XHJcbiAgc3lzdGVtQ29sdW1uczogU2RHZW5lcmF0ZWRDb2x1bW5bXTtcclxuICBjb2x1bW5zOiBTZEdlbmVyYXRlZENvbHVtbltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkQ29sdW1uQ29uZmlndXJhdGlvbiB7XHJcbiAgb3JpZ2luOiBTZE9yaWdpbkNvbHVtbjtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBpbnZpc2libGU/OiBib29sZWFuO1xyXG4gIGZpeGVkPzogYm9vbGVhbjtcclxuICBpc0dlbmVyYXRlZENvbHVtbj86IGJvb2xlYW47XHJcbiAgZ2VuZXJhdGVkQ29sdW1ucz86IHN0cmluZ1tdO1xyXG4gIGh0bWxUZW1wbGF0ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZEdyaWRDb25maWd1cmF0aW9uIHtcclxuICBjb2x1bW5zPzogU2RDb2x1bW5Db25maWd1cmF0aW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RHcmlkQ29uZmlndXJhdGlvblJlc3VsdCB7XHJcbiAgY29sdW1uOiB7XHJcbiAgICBbZmllbGQ6IHN0cmluZ106IHtcclxuICAgICAgdGl0bGU/OiBzdHJpbmcsXHJcbiAgICAgIHdpZHRoPzogc3RyaW5nLFxyXG4gICAgfVxyXG4gIH07XHJcbiAgZml4ZWRDb2x1bW46IHtcclxuICAgIFtmaWVsZDogc3RyaW5nXToge1xyXG4gICAgICB0aXRsZT86IHN0cmluZyxcclxuICAgICAgd2lkdGg/OiBzdHJpbmcsXHJcbiAgICB9XHJcbiAgfTtcclxuICBmaXJzdENvbHVtbnM6IFNkR3JpZE1hdGVyaWFsQ29sdW1uW107XHJcbiAgc2Vjb25kQ29sdW1uczogU2RHcmlkTWF0ZXJpYWxDb2x1bW5bXTtcclxuICBmaXJzdEhlYWRlcnM6IHN0cmluZ1tdO1xyXG4gIHNlY29uZEhlYWRlcnM6IHN0cmluZ1tdO1xyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xyXG4gIGRpc3BsYXllZEZvb3RlcnM6IHN0cmluZ1tdO1xyXG4gIG11bHRpcGxlSGVhZGVyOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkR3JpZENvbmZpZ3VyYXRpb25DYWNoZSB7XHJcbiAgZ2V0OiAoKSA9PiBQcm9taXNlPFNkR3JpZENvbmZpZ3VyYXRpb24+O1xyXG4gIHNldDogKGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24pID0+IFNkR3JpZENvbmZpZ3VyYXRpb247XHJcbiAgcmVtb3ZlOiAoKSA9PiB2b2lkO1xyXG4gIG9ic2VydmVyOiBPYnNlcnZhYmxlPFNkR3JpZENvbmZpZ3VyYXRpb24+O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb25maWcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvdXNlci9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9tb2RlbHMvZ3JpZC1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEdlbmVyYXRlZENvbHVtbiB9IGZyb20gJy4uL3NlcnZpY2VzL2dlbmVyYXRlZC1jb2x1bW4vZ2VuZXJhdGVkLWNvbHVtbi5tb2RlbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsQ29uZmlnT3B0aW9uPFQgPSBhbnk+IHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgc3RvcmFnZT86ICdzZXNzaW9uJyB8ICdzZXJ2ZXInO1xyXG4gIGN1c3RvbUNvbHVtbj86IGJvb2xlYW47XHJcbiAgYXJncz86IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICB9O1xyXG4gIHN5c3RlbUNvbHVtbj86IHtcclxuICAgIHBlcm1pc3Npb24/OiAnUkVBRCcgfCAnQ1JFQVRFJyB8ICdVUERBVEUnIHwgJ0RFTEVURSc7XHJcbiAgICBhcmdzPzoge1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RPcmlnaW5Db2x1bW4ge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBpbnZpc2libGU/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkR2VuZXJhdGVkQ29uZmlndXJhdGlvbiB7XHJcbiAgc3lzdGVtQ29sdW1uczogU2RHZW5lcmF0ZWRDb2x1bW5bXTtcclxuICBjb2x1bW5zOiBTZEdlbmVyYXRlZENvbHVtbltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkQ29sdW1uQ29uZmlndXJhdGlvbiB7XHJcbiAgb3JpZ2luOiBTZE9yaWdpbkNvbHVtbjtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBpbnZpc2libGU/OiBib29sZWFuO1xyXG4gIGZpeGVkPzogYm9vbGVhbjtcclxuICBpc0dlbmVyYXRlZENvbHVtbj86IGJvb2xlYW47XHJcbiAgZ2VuZXJhdGVkQ29sdW1ucz86IHN0cmluZ1tdO1xyXG4gIGh0bWxUZW1wbGF0ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZEdyaWRDb25maWd1cmF0aW9uIHtcclxuICBjb2x1bW5zPzogU2RDb2x1bW5Db25maWd1cmF0aW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RHcmlkQ29uZmlndXJhdGlvblJlc3VsdCB7XHJcbiAgY29sdW1uOiB7XHJcbiAgICBbZmllbGQ6IHN0cmluZ106IHtcclxuICAgICAgdGl0bGU/OiBzdHJpbmcsXHJcbiAgICAgIHdpZHRoPzogc3RyaW5nLFxyXG4gICAgfVxyXG4gIH07XHJcbiAgZml4ZWRDb2x1bW46IHtcclxuICAgIFtmaWVsZDogc3RyaW5nXToge1xyXG4gICAgICB0aXRsZT86IHN0cmluZyxcclxuICAgICAgd2lkdGg/OiBzdHJpbmcsXHJcbiAgICB9XHJcbiAgfTtcclxuICBmaXJzdENvbHVtbnM6IFNkR3JpZE1hdGVyaWFsQ29sdW1uW107XHJcbiAgc2Vjb25kQ29sdW1uczogU2RHcmlkTWF0ZXJpYWxDb2x1bW5bXTtcclxuICBmaXJzdEhlYWRlcnM6IHN0cmluZ1tdO1xyXG4gIHNlY29uZEhlYWRlcnM6IHN0cmluZ1tdO1xyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xyXG4gIGRpc3BsYXllZEZvb3RlcnM6IHN0cmluZ1tdO1xyXG4gIG11bHRpcGxlSGVhZGVyOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkR3JpZENvbmZpZ3VyYXRpb25DYWNoZSB7XHJcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcclxuICBnZXQ6ICgpID0+IFByb21pc2U8U2RHcmlkQ29uZmlndXJhdGlvbj47XHJcbiAgc2V0OiAoY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbikgPT4gU2RHcmlkQ29uZmlndXJhdGlvbjtcclxuICByZW1vdmU6ICgpID0+IHZvaWQ7XHJcbiAgb2JzZXJ2ZXI6IE9ic2VydmFibGU8U2RHcmlkQ29uZmlndXJhdGlvbj47XHJcbn1cclxuIl19
@@ -1,11 +1,10 @@
1
- var _COLUMNS, _cache, _getKey, _default, _get, _set, _remove;
1
+ var _COLUMNS, _cache, _getKey, _default, _load, _get, _set, _remove;
2
2
  import { __awaiter, __classPrivateFieldGet } from "tslib";
3
3
  import { Inject, Injectable, Optional } from '@angular/core';
4
4
  import hash from 'object-hash';
5
5
  import { SdSettingService } from '@sd-angular/core/setting';
6
6
  import { Subject } from 'rxjs';
7
7
  import { GRID_MATERIAL_CONFIG } from '../models/grid-configuration.model';
8
- import { switchMap } from 'rxjs/operators';
9
8
  export class SdGridConfigurationService {
10
9
  constructor(settingService, gridMaterialConfiguration) {
11
10
  this.settingService = settingService;
@@ -19,20 +18,19 @@ export class SdGridConfigurationService {
19
18
  this.init = (key, gridOption) => {
20
19
  if (!__classPrivateFieldGet(this, _cache)[key]) {
21
20
  const subject = new Subject();
22
- const get = __classPrivateFieldGet(this, _get).call(this, gridOption);
23
- const set = (configuration) => {
24
- configuration = __classPrivateFieldGet(this, _set).call(this, gridOption, configuration);
25
- subject.next(Object.assign({}, configuration));
26
- return configuration;
27
- };
28
21
  __classPrivateFieldGet(this, _cache)[key] = {
29
- get,
30
- set,
22
+ load: __classPrivateFieldGet(this, _load).call(this, gridOption, subject),
23
+ get: __classPrivateFieldGet(this, _get).call(this, gridOption),
24
+ set: (configuration) => {
25
+ configuration = __classPrivateFieldGet(this, _set).call(this, gridOption, configuration);
26
+ subject.next(Object.assign({}, configuration));
27
+ return configuration;
28
+ },
31
29
  remove: () => {
32
30
  __classPrivateFieldGet(this, _remove).call(this, gridOption);
33
31
  subject.next(__classPrivateFieldGet(this, _default).call(this, gridOption));
34
32
  },
35
- observer: subject.pipe(switchMap(__classPrivateFieldGet(this, _get).call(this, gridOption)))
33
+ observer: subject
36
34
  };
37
35
  }
38
36
  return __classPrivateFieldGet(this, _cache)[key];
@@ -64,6 +62,13 @@ export class SdGridConfigurationService {
64
62
  columns
65
63
  };
66
64
  });
65
+ _load.set(this, (gridOption, subject) => {
66
+ return () => __awaiter(this, void 0, void 0, function* () {
67
+ const get = __classPrivateFieldGet(this, _get).call(this, gridOption);
68
+ const configuration = yield get();
69
+ subject.next(Object.assign({}, configuration));
70
+ });
71
+ });
67
72
  _get.set(this, (gridOption) => {
68
73
  return () => __awaiter(this, void 0, void 0, function* () {
69
74
  const key = __classPrivateFieldGet(this, _getKey).call(this, gridOption);
@@ -323,7 +328,7 @@ export class SdGridConfigurationService {
323
328
  };
324
329
  }
325
330
  }
326
- _COLUMNS = new WeakMap(), _cache = new WeakMap(), _getKey = new WeakMap(), _default = new WeakMap(), _get = new WeakMap(), _set = new WeakMap(), _remove = new WeakMap();
331
+ _COLUMNS = new WeakMap(), _cache = new WeakMap(), _getKey = new WeakMap(), _default = new WeakMap(), _load = new WeakMap(), _get = new WeakMap(), _set = new WeakMap(), _remove = new WeakMap();
327
332
  SdGridConfigurationService.decorators = [
328
333
  { type: Injectable }
329
334
  ];
@@ -331,4 +336,4 @@ SdGridConfigurationService.ctorParameters = () => [
331
336
  { type: SdSettingService },
332
337
  { type: undefined, decorators: [{ type: Inject, args: [GRID_MATERIAL_CONFIG,] }, { type: Optional }] }
333
338
  ];
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvdXNlci9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zZXJ2aWNlcy9ncmlkLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQWdDLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE1BQU0sT0FBTywwQkFBMEI7SUFTckMsWUFDVSxjQUFnQyxFQUNTLHlCQUF1RDtRQURoRyxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDUyw4QkFBeUIsR0FBekIseUJBQXlCLENBQThCO1FBVjFHLG1CQUFXO1lBQ1QsY0FBYyxFQUFFLHdCQUF3QjtZQUN4QyxPQUFPLEVBQUUsU0FBUztZQUNsQixTQUFTLEVBQUUsV0FBVztTQUN2QixFQUFDO1FBQ0YsaUJBRUksRUFBRSxFQUFDO1FBTVAsU0FBSSxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQWdDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMscUNBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO2dCQUNuRCxNQUFNLEdBQUcsR0FBRyx3Q0FBQSxJQUFJLEVBQU0sVUFBVSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU0sR0FB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0IHsgU2RTZXR0aW5nU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2V0dGluZyc7XHJcbmltcG9ydCB7IFNkR3JpZE1hdGVyaWFsT3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU2RDb2x1bW5Db25maWd1cmF0aW9uLCBTZEdyaWRDb25maWd1cmF0aW9uLCBTZEdyaWRDb25maWd1cmF0aW9uQ2FjaGUsIFNkR3JpZENvbmZpZ3VyYXRpb25SZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTZE1hdGVyaWFsU3ViSW5mb3JtYXRpb25EZWZEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3NkLW1hdGVyaWFsLXN1Yi1pbmZvcm1hdGlvbi1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbENvbHVtbiB9IGZyb20gJy4uL21vZGVscy9ncmlkLWNvbHVtbi5tb2RlbCc7XHJcbmltcG9ydCB7IEdSSURfTUFURVJJQUxfQ09ORklHLCBJU2RHcmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtY29uZmlndXJhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2RHcmlkQ29uZmlndXJhdGlvblNlcnZpY2Uge1xyXG4gICNDT0xVTU5TID0ge1xyXG4gICAgU1VCSU5GT1JNQVRJT046ICdzZFN1YkluZm9ybWF0aW9uQWN0aW9uJyxcclxuICAgIENPTU1BTkQ6ICdjb21tYW5kJyxcclxuICAgIFNFTEVDVElPTjogJ3NlbGVjdGlvbidcclxuICB9O1xyXG4gICNjYWNoZToge1xyXG4gICAgW2tleTogc3RyaW5nXTogU2RHcmlkQ29uZmlndXJhdGlvbkNhY2hlXHJcbiAgfSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZTogU2RTZXR0aW5nU2VydmljZSxcclxuICAgIEBJbmplY3QoR1JJRF9NQVRFUklBTF9DT05GSUcpIEBPcHRpb25hbCgpIHB1YmxpYyBncmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uOiBJU2RHcmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uKSB7XHJcbiAgfVxyXG5cclxuICBpbml0ID0gKGtleTogc3RyaW5nLCBncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikgPT4ge1xyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtrZXldKSB7XHJcbiAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxTZEdyaWRDb25maWd1cmF0aW9uPigpO1xyXG4gICAgICBjb25zdCBnZXQgPSB0aGlzLiNnZXQoZ3JpZE9wdGlvbik7XHJcbiAgICAgIGNvbnN0IHNldCA9IChjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uKSA9PiB7XHJcbiAgICAgICAgY29uZmlndXJhdGlvbiA9IHRoaXMuI3NldChncmlkT3B0aW9uLCBjb25maWd1cmF0aW9uKTtcclxuICAgICAgICBzdWJqZWN0Lm5leHQoeyAuLi5jb25maWd1cmF0aW9uIH0pO1xyXG4gICAgICAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLiNjYWNoZVtrZXldID0ge1xyXG4gICAgICAgIGdldCxcclxuICAgICAgICBzZXQsXHJcbiAgICAgICAgcmVtb3ZlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiNyZW1vdmUoZ3JpZE9wdGlvbik7XHJcbiAgICAgICAgICBzdWJqZWN0Lm5leHQodGhpcy4jZGVmYXVsdChncmlkT3B0aW9uKSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvYnNlcnZlcjogc3ViamVjdC5waXBlKHN3aXRjaE1hcCh0aGlzLiNnZXQoZ3JpZE9wdGlvbikpKVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2tleV07XHJcbiAgfVxyXG5cclxuICAjZ2V0S2V5ID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKSA9PiB7XHJcbiAgICBjb25zdCBwcmVmaXggPSAnYzllOTQ4MzYtNmFjZS00YWViLWIxNDgtNGYwYmU2MzU4OWVlJztcclxuICAgIGlmICghZ3JpZE9wdGlvbj8uY29uZmlnPy5rZXkgJiYgIWdyaWRPcHRpb24/LmtleSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBoYXNoKHtcclxuICAgICAgcHJlZml4LFxyXG4gICAgICBrZXk6IGdyaWRPcHRpb24/LmNvbmZpZz8ua2V5IHx8ICFncmlkT3B0aW9uPy5rZXlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgI2RlZmF1bHQgPSAoZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24pOiBTZEdyaWRDb25maWd1cmF0aW9uID0+IHtcclxuICAgIGNvbnN0IGNvbHVtbnM6IFNkQ29sdW1uQ29uZmlndXJhdGlvbltdID0gZ3JpZE9wdGlvbj8uY29sdW1ucz8uZmlsdGVyKGUgPT4gIWUuaGlkZGVuKS5tYXAoZSA9PiAoe1xyXG4gICAgICBvcmlnaW46IHtcclxuICAgICAgICBmaWVsZDogZS5maWVsZCxcclxuICAgICAgICB0aXRsZTogZS50aXRsZSxcclxuICAgICAgICB3aWR0aDogZS53aWR0aCxcclxuICAgICAgICBpbnZpc2libGU6IGUuaW52aXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGludmlzaWJsZTogZS5pbnZpc2libGUsXHJcbiAgICAgIGZpeGVkOiBmYWxzZVxyXG4gICAgfSkpIHx8IFtdO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29sdW1uc1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gICNnZXQgPSAoZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24pID0+IHtcclxuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHRoaXMuI2dldEtleShncmlkT3B0aW9uKTtcclxuICAgICAgaWYgKCFrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jZGVmYXVsdChncmlkT3B0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB7IGNvbHVtbnMsIGNvbmZpZyB9ID0gZ3JpZE9wdGlvbjtcclxuICAgICAgY29uc3QgeyBnZXQsIHJlbW92ZSB9ID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RHcmlkQ29uZmlndXJhdGlvbj4oa2V5LCB7XHJcbiAgICAgICAgdHlwZTogY29uZmlnPy5zdG9yYWdlLFxyXG4gICAgICAgIGFyZ3M6IGNvbmZpZz8uYXJnc1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbiA9IGF3YWl0IGdldCgpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XHJcbiAgICAgIGlmICghY29uZmlndXJhdGlvbj8uY29sdW1ucykge1xyXG4gICAgICAgIHJlbW92ZSgpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNkZWZhdWx0KGdyaWRPcHRpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24uY29sdW1ucyA9IGNvbmZpZ3VyYXRpb24uY29sdW1uc1xyXG4gICAgICAgIC5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5pc0dlbmVyYXRlZENvbHVtbiB8fCBjb2x1bW5zLnNvbWUoZSA9PiAhZS5oaWRkZW4gJiYgZS5maWVsZCA9PT0gY29sdW1uLm9yaWdpbi5maWVsZCkpO1xyXG4gICAgICAvLyBUaMOqbSBuaOG7r25nIGNvbHVtbiBt4bubaSB2w6BvIHN0b3JhZ2UgbuG6v3UgY8OzXHJcbiAgICAgIGNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbCA9IGNvbmZpZ3VyYXRpb24uY29sdW1ucy5maW5kKGUgPT4gZS5vcmlnaW4/LmZpZWxkID09PSBjb2x1bW4uZmllbGQpO1xyXG4gICAgICAgIGlmICghY29sKSB7XHJcbiAgICAgICAgICBjb25maWd1cmF0aW9uLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICAgIG9yaWdpbjoge1xyXG4gICAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZmllbGQsXHJcbiAgICAgICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAgICAgICAgICAgICB3aWR0aDogY29sdW1uLndpZHRoLFxyXG4gICAgICAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlLFxyXG4gICAgICAgICAgICBmaXhlZDogZmFsc2VcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb2wub3JpZ2luID0ge1xyXG4gICAgICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgICB0aXRsZTogY29sdW1uLnRpdGxlLFxyXG4gICAgICAgICAgICB3aWR0aDogY29sdW1uLndpZHRoLFxyXG4gICAgICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGVcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgI3NldCA9IChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbiwgY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbikgPT4ge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy4jZ2V0S2V5KGdyaWRPcHRpb24pO1xyXG4gICAgaWYgKGtleSkge1xyXG4gICAgICBjb25zdCB7IHNldCB9ID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RHcmlkQ29uZmlndXJhdGlvbj4oa2V5LCB7XHJcbiAgICAgICAgdHlwZTogZ3JpZE9wdGlvbj8uY29uZmlnPy5zdG9yYWdlLFxyXG4gICAgICAgIGFyZ3M6IGdyaWRPcHRpb24/LmNvbmZpZz8uYXJnc1xyXG4gICAgICB9KTtcclxuICAgICAgc2V0KGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29uZmlndXJhdGlvbikpO1xyXG4gIH1cclxuXHJcbiAgI3JlbW92ZSA9IChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikgPT4ge1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gdGhpcy4jZ2V0S2V5KGdyaWRPcHRpb24pO1xyXG4gICAgICBpZiAoa2V5KSB7XHJcbiAgICAgICAgY29uc3QgeyByZW1vdmUgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkR3JpZENvbmZpZ3VyYXRpb24+KGtleSwge1xyXG4gICAgICAgICAgdHlwZTogZ3JpZE9wdGlvbj8uY29uZmlnPy5zdG9yYWdlLFxyXG4gICAgICAgICAgYXJnczogZ3JpZE9wdGlvbj8uY29uZmlnPy5hcmdzXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmVtb3ZlKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBnZXQgPSBhc3luYyAoZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24pOiBQcm9taXNlPFNkR3JpZENvbmZpZ3VyYXRpb24+ID0+IHtcclxuICAvLyAgIGlmICghZ3JpZE9wdGlvbj8ua2V5KSB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLiNnZXREZWZhdWx0Q29uZmlndXJhdGlvbihncmlkT3B0aW9uKTtcclxuICAvLyAgIH1cclxuICAvLyAgIGNvbnN0IHsga2V5LCBjb2x1bW5zIH0gPSBncmlkT3B0aW9uO1xyXG4gIC8vICAgY29uc3QgY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbiA9IGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2UuZ2V0KHRoaXMuI2dldEtleShrZXkpKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xyXG4gIC8vICAgaWYgKCFjb25maWd1cmF0aW9uPy5jb2x1bW5zKSB7XHJcbiAgLy8gICAgIHRoaXMuc2V0dGluZ1NlcnZpY2UucmVtb3ZlKHRoaXMuI2dldEtleShrZXkpKS5jYXRjaChjb25zb2xlLmVycm9yKTtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuI2dldERlZmF1bHRDb25maWd1cmF0aW9uKGdyaWRPcHRpb24pO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgY29uZmlndXJhdGlvbi5jb2x1bW5zID0gY29uZmlndXJhdGlvbi5jb2x1bW5zXHJcbiAgLy8gICAgIC5maWx0ZXIoY29sdW1uID0+IGNvbHVtbnMuc29tZShlID0+ICFlLmhpZGRlbiAmJiBlLmZpZWxkID09PSBjb2x1bW4ub3JpZ2luLmZpZWxkKSk7XHJcbiAgLy8gICAvLyBUaMOqbSBuaOG7r25nIGNvbHVtbiBt4bubaSB2w6BvIHN0b3JhZ2UgbuG6v3UgY8OzXHJcbiAgLy8gICBjb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuICAvLyAgICAgY29uc3QgY29sID0gY29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoZSA9PiBlLm9yaWdpbj8uZmllbGQgPT09IGNvbHVtbi5maWVsZCk7XHJcbiAgLy8gICAgIGlmICghY29sKSB7XHJcbiAgLy8gICAgICAgY29uZmlndXJhdGlvbi5jb2x1bW5zLnB1c2goe1xyXG4gIC8vICAgICAgICAgb3JpZ2luOiB7XHJcbiAgLy8gICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZmllbGQsXHJcbiAgLy8gICAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGUsXHJcbiAgLy8gICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgLy8gICAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZSxcclxuICAvLyAgICAgICAgIH0sXHJcbiAgLy8gICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGUsXHJcbiAgLy8gICAgICAgICBmaXhlZDogZmFsc2VcclxuICAvLyAgICAgICB9KTtcclxuICAvLyAgICAgfSBlbHNlIHtcclxuICAvLyAgICAgICBjb2wub3JpZ2luID0ge1xyXG4gIC8vICAgICAgICAgZmllbGQ6IGNvbHVtbi5maWVsZCxcclxuICAvLyAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGUsXHJcbiAgLy8gICAgICAgICB3aWR0aDogY29sdW1uLndpZHRoLFxyXG4gIC8vICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlXHJcbiAgLy8gICAgICAgfTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSk7XHJcbiAgLy8gICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICAvLyB9XHJcblxyXG4gIC8vIHNldCA9IGFzeW5jIChrZXk6IHN0cmluZywgY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbik6IFByb21pc2U8U2RHcmlkQ29uZmlndXJhdGlvbj4gPT4ge1xyXG4gIC8vICAgaWYgKGtleSkge1xyXG4gIC8vICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnNldCh0aGlzLiNnZXRLZXkoa2V5KSwgY29uZmlndXJhdGlvbik7XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICAvLyB9XHJcblxyXG4gIC8vIHJlbW92ZSA9IChrZXk6IHN0cmluZykgPT4ge1xyXG4gIC8vICAgaWYgKGtleSkge1xyXG4gIC8vICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnJlbW92ZSh0aGlzLiNnZXRLZXkoa2V5KSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICBnZW5lcmF0ZUNvbmZpZ3VyYXRpb25SZXN1bHQgPSAoXHJcbiAgICBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uLFxyXG4gICAgZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24sXHJcbiAgICBzZFN1YkluZm9ybWF0aW9uOiBTZE1hdGVyaWFsU3ViSW5mb3JtYXRpb25EZWZEaXJlY3RpdmUpID0+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogU2RHcmlkQ29uZmlndXJhdGlvblJlc3VsdCA9IHtcclxuICAgICAgY29sdW1uOiB7fSxcclxuICAgICAgZml4ZWRDb2x1bW46IHt9LFxyXG4gICAgICBmaXJzdENvbHVtbnM6IFtdLFxyXG4gICAgICBzZWNvbmRDb2x1bW5zOiBbXSxcclxuICAgICAgZmlyc3RIZWFkZXJzOiBbXSxcclxuICAgICAgc2Vjb25kSGVhZGVyczogW10sXHJcbiAgICAgIGRpc3BsYXllZENvbHVtbnM6IFtdLFxyXG4gICAgICBkaXNwbGF5ZWRGb290ZXJzOiBbXSxcclxuICAgICAgbXVsdGlwbGVIZWFkZXI6IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgaWYgKGdyaWRPcHRpb24/LnNlbGVjdGlvbj8udmlzaWJsZSkge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5TRUxFQ1RJT04pO1xyXG4gICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKHRoaXMuI0NPTFVNTlMuU0VMRUNUSU9OKTtcclxuICAgIH1cclxuICAgIGlmIChncmlkT3B0aW9uPy5jb21tYW5kcz8ubGVuZ3RoKSB7XHJcbiAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaCh0aGlzLiNDT0xVTU5TLkNPTU1BTkQpO1xyXG4gICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKHRoaXMuI0NPTFVNTlMuQ09NTUFORCk7XHJcbiAgICB9XHJcbiAgICBjb25maWd1cmF0aW9uPy5jb2x1bW5zPy5maWx0ZXIoY29sID0+ICFjb2wuaW52aXNpYmxlKS5mb3JFYWNoKGNvbCA9PiB7XHJcbiAgICAgIGlmIChjb2wuaXNHZW5lcmF0ZWRDb2x1bW4pIHtcclxuICAgICAgICByZXN1bHQuY29sdW1uW2NvbC5vcmlnaW4uZmllbGRdID0ge1xyXG4gICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKGNvbC5maXhlZCkge1xyXG4gICAgICAgICAgcmVzdWx0LmZpeGVkQ29sdW1uW2NvbC5vcmlnaW4uZmllbGRdID0ge1xyXG4gICAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZENvbHVtbjogU2RHcmlkTWF0ZXJpYWxDb2x1bW4gPSB7XHJcbiAgICAgICAgICB0eXBlOiAnY2hpbGRyZW4nLFxyXG4gICAgICAgICAgZmllbGQ6IGNvbC5vcmlnaW4uZmllbGQsXHJcbiAgICAgICAgICB0aXRsZTogY29sLm9yaWdpbi50aXRsZSxcclxuICAgICAgICAgIGNoaWxkcmVuOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgZm9yIChjb25zdCBzdWJDb2x1bW4gb2YgZ3JpZE9wdGlvbj8uY29sdW1ucy5maWx0ZXIoZTEgPT4gY29sLmdlbmVyYXRlZENvbHVtbnMuaW5jbHVkZXMoZTEuZmllbGQpKSkge1xyXG4gICAgICAgICAgaWYgKHN1YkNvbHVtbi50eXBlID09PSAnY2hpbGRyZW4nIHx8IHN1YkNvbHVtbi50eXBlID09PSAnY2hpbGRyZW4tY29sJykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkQ29sdW1uIG9mIHN1YkNvbHVtbi5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5jaGlsZHJlbi5wdXNoKHtcclxuICAgICAgICAgICAgICAgIC4uLmNoaWxkQ29sdW1uLFxyXG4gICAgICAgICAgICAgICAgY29sU3BhbjogMlxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW4uY2hpbGRyZW4ucHVzaCh7XHJcbiAgICAgICAgICAgICAgLi4uc3ViQ29sdW1uLFxyXG4gICAgICAgICAgICAgIGNvbFNwYW46IDJcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXN1bHQuZmlyc3RDb2x1bW5zLnB1c2goe1xyXG4gICAgICAgICAgLi4uZ2VuZXJhdGVkQ29sdW1uLFxyXG4gICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKGNvbC5vcmlnaW4uZmllbGQpO1xyXG4gICAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGdyaWRPcHRpb24/LmNvbHVtbnMuZmluZChlID0+IGUuZmllbGQgPT09IGNvbC5vcmlnaW4uZmllbGQpO1xyXG4gICAgICBpZiAoY29sdW1uKSB7XHJcbiAgICAgICAgcmVzdWx0LmNvbHVtbltjb2wub3JpZ2luLmZpZWxkXSA9IHtcclxuICAgICAgICAgIHRpdGxlOiBjb2wudGl0bGUgfHwgY29sLm9yaWdpbi50aXRsZSxcclxuICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChjb2wuZml4ZWQpIHtcclxuICAgICAgICAgIHJlc3VsdC5maXhlZENvbHVtbltjb2wub3JpZ2luLmZpZWxkXSA9IHtcclxuICAgICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGgsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN1bHQuZmlyc3RDb2x1bW5zLnB1c2goe1xyXG4gICAgICAgICAgLi4uY29sdW1uLFxyXG4gICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKGNvbC5vcmlnaW4uZmllbGQpO1xyXG4gICAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2NoaWxkcmVuLWNvbCcpIHtcclxuICAgICAgICAgIGNvbHVtbi5jaGlsZHJlbj8uZm9yRWFjaChjaGlsZENvbHVtbiA9PiB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5zZWNvbmRDb2x1bW5zLnB1c2goY2hpbGRDb2x1bW4pO1xyXG4gICAgICAgICAgICByZXN1bHQuc2Vjb25kSGVhZGVycy5wdXNoKGNoaWxkQ29sdW1uLmZpZWxkKTtcclxuICAgICAgICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaChjaGlsZENvbHVtbi5maWVsZCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaChjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHNkU3ViSW5mb3JtYXRpb24/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaCh0aGlzLiNDT0xVTU5TLlNVQklORk9STUFUSU9OKTtcclxuICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaCh0aGlzLiNDT0xVTU5TLlNVQklORk9STUFUSU9OKTtcclxuICAgIH1cclxuICAgIHJlc3VsdC5tdWx0aXBsZUhlYWRlciA9IHJlc3VsdC5zZWNvbmRIZWFkZXJzLmxlbmd0aCA+IDA7XHJcbiAgICAvLyBTdWIgaW5mb21hdGlvbiBraMO0bmcgdGjhu4MgY8OzIGZvb3RlclxyXG4gICAgcmVzdWx0LmRpc3BsYXllZEZvb3RlcnMgPSByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5maWx0ZXIodmFsID0+IHZhbCAhPT0gdGhpcy4jQ09MVU1OUy5TVUJJTkZPUk1BVElPTik7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iXX0=
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvdXNlci9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zZXJ2aWNlcy9ncmlkLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQWdDLE1BQU0sb0NBQW9DLENBQUM7QUFHeEcsTUFBTSxPQUFPLDBCQUEwQjtJQVNyQyxZQUNVLGNBQWdDLEVBQ1MseUJBQXVEO1FBRGhHLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNTLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBOEI7UUFWMUcsbUJBQVc7WUFDVCxjQUFjLEVBQUUsd0JBQXdCO1lBQ3hDLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCLEVBQUM7UUFDRixpQkFFSSxFQUFFLEVBQUM7UUFNUCxTQUFJLEdBQUcsQ0FBQyxHQUFXLEVBQUUsVUFBZ0MsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxxQ0FBWSxHQUFHLENBQUMsRUFBRTtnQkFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7Z0JBQ25ELHFDQUFZLEdBQUcsQ0FBQyxHQUFHO29CQUNqQixJQUFJLEVBQUUseUNBQUEsSUFBSSxFQUFPLFVBQVUsRUFBRSxPQUFPLENBQUM7b0JBQ3JDLEdBQUcsRUFBRSx3Q0FBQSxJQUFJLEVB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QUFDLEdBQUcsS0FBSyx1Q0FBYyxjQUFjLENBQUMsQ0FBQztZQUN0RyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUE7SUExUkQsQ0FBQzs7OztZQWJGLFVBQVU7OztZQVJGLGdCQUFnQjs0Q0FvQnBCLE1BQU0sU0FBQyxvQkFBb0IsY0FBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgaGFzaCBmcm9tICdvYmplY3QtaGFzaCc7XHJcbmltcG9ydCB7IFNkU2V0dGluZ1NlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3NldHRpbmcnO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbE9wdGlvbiB9IGZyb20gJy4uL21vZGVscy9ncmlkLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNkQ29sdW1uQ29uZmlndXJhdGlvbiwgU2RHcmlkQ29uZmlndXJhdGlvbiwgU2RHcmlkQ29uZmlndXJhdGlvbkNhY2hlLCBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgU2RNYXRlcmlhbFN1YkluZm9ybWF0aW9uRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9zZC1tYXRlcmlhbC1zdWItaW5mb3JtYXRpb24tZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBHUklEX01BVEVSSUFMX0NPTkZJRywgSVNkR3JpZE1hdGVyaWFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9ncmlkLWNvbmZpZ3VyYXRpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2RHcmlkQ29uZmlndXJhdGlvblNlcnZpY2Uge1xyXG4gICNDT0xVTU5TID0ge1xyXG4gICAgU1VCSU5GT1JNQVRJT046ICdzZFN1YkluZm9ybWF0aW9uQWN0aW9uJyxcclxuICAgIENPTU1BTkQ6ICdjb21tYW5kJyxcclxuICAgIFNFTEVDVElPTjogJ3NlbGVjdGlvbidcclxuICB9O1xyXG4gICNjYWNoZToge1xyXG4gICAgW2tleTogc3RyaW5nXTogU2RHcmlkQ29uZmlndXJhdGlvbkNhY2hlXHJcbiAgfSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZTogU2RTZXR0aW5nU2VydmljZSxcclxuICAgIEBJbmplY3QoR1JJRF9NQVRFUklBTF9DT05GSUcpIEBPcHRpb25hbCgpIHB1YmxpYyBncmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uOiBJU2RHcmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uKSB7XHJcbiAgfVxyXG5cclxuICBpbml0ID0gKGtleTogc3RyaW5nLCBncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikgPT4ge1xyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtrZXldKSB7XHJcbiAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxTZEdyaWRDb25maWd1cmF0aW9uPigpO1xyXG4gICAgICB0aGlzLiNjYWNoZVtrZXldID0ge1xyXG4gICAgICAgIGxvYWQ6IHRoaXMuI2xvYWQoZ3JpZE9wdGlvbiwgc3ViamVjdCksXHJcbiAgICAgICAgZ2V0OiB0aGlzLiNnZXQoZ3JpZE9wdGlvbiksXHJcbiAgICAgICAgc2V0OiAoY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbikgPT4ge1xyXG4gICAgICAgICAgY29uZmlndXJhdGlvbiA9IHRoaXMuI3NldChncmlkT3B0aW9uLCBjb25maWd1cmF0aW9uKTtcclxuICAgICAgICAgIHN1YmplY3QubmV4dCh7IC4uLmNvbmZpZ3VyYXRpb24gfSk7XHJcbiAgICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4jcmVtb3ZlKGdyaWRPcHRpb24pO1xyXG4gICAgICAgICAgc3ViamVjdC5uZXh0KHRoaXMuI2RlZmF1bHQoZ3JpZE9wdGlvbikpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb2JzZXJ2ZXI6IHN1YmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLiNjYWNoZVtrZXldO1xyXG4gIH1cclxuXHJcbiAgI2dldEtleSA9IChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikgPT4ge1xyXG4gICAgY29uc3QgcHJlZml4ID0gJ2M5ZTk0ODM2LTZhY2UtNGFlYi1iMTQ4LTRmMGJlNjM1ODllZSc7XHJcbiAgICBpZiAoIWdyaWRPcHRpb24/LmNvbmZpZz8ua2V5ICYmICFncmlkT3B0aW9uPy5rZXkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaGFzaCh7XHJcbiAgICAgIHByZWZpeCxcclxuICAgICAga2V5OiBncmlkT3B0aW9uPy5jb25maWc/LmtleSB8fCAhZ3JpZE9wdGlvbj8ua2V5XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gICNkZWZhdWx0ID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKTogU2RHcmlkQ29uZmlndXJhdGlvbiA9PiB7XHJcbiAgICBjb25zdCBjb2x1bW5zOiBTZENvbHVtbkNvbmZpZ3VyYXRpb25bXSA9IGdyaWRPcHRpb24/LmNvbHVtbnM/LmZpbHRlcihlID0+ICFlLmhpZGRlbikubWFwKGUgPT4gKHtcclxuICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgZmllbGQ6IGUuZmllbGQsXHJcbiAgICAgICAgdGl0bGU6IGUudGl0bGUsXHJcbiAgICAgICAgd2lkdGg6IGUud2lkdGgsXHJcbiAgICAgICAgaW52aXNpYmxlOiBlLmludmlzaWJsZVxyXG4gICAgICB9LFxyXG4gICAgICBpbnZpc2libGU6IGUuaW52aXNpYmxlLFxyXG4gICAgICBmaXhlZDogZmFsc2VcclxuICAgIH0pKSB8fCBbXTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNvbHVtbnNcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAjbG9hZCA9IChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbiwgc3ViamVjdDogU3ViamVjdDxTZEdyaWRDb25maWd1cmF0aW9uPikgPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcclxuICAgICAgY29uc3QgZ2V0ID0gdGhpcy4jZ2V0KGdyaWRPcHRpb24pO1xyXG4gICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gYXdhaXQgZ2V0KCk7XHJcbiAgICAgIHN1YmplY3QubmV4dCh7IC4uLmNvbmZpZ3VyYXRpb24gfSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgI2dldCA9IChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikgPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gdGhpcy4jZ2V0S2V5KGdyaWRPcHRpb24pO1xyXG4gICAgICBpZiAoIWtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNkZWZhdWx0KGdyaWRPcHRpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHsgY29sdW1ucywgY29uZmlnIH0gPSBncmlkT3B0aW9uO1xyXG4gICAgICBjb25zdCB7IGdldCwgcmVtb3ZlIH0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdyaWRDb25maWd1cmF0aW9uPihrZXksIHtcclxuICAgICAgICB0eXBlOiBjb25maWc/LnN0b3JhZ2UsXHJcbiAgICAgICAgYXJnczogY29uZmlnPy5hcmdzXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uID0gYXdhaXQgZ2V0KCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcclxuICAgICAgaWYgKCFjb25maWd1cmF0aW9uPy5jb2x1bW5zKSB7XHJcbiAgICAgICAgcmVtb3ZlKCkuY2F0Y2goY29uc29sZS5lcnJvcik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2RlZmF1bHQoZ3JpZE9wdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY29uZmlndXJhdGlvbi5jb2x1bW5zID0gY29uZmlndXJhdGlvbi5jb2x1bW5zXHJcbiAgICAgICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLmlzR2VuZXJhdGVkQ29sdW1uIHx8IGNvbHVtbnMuc29tZShlID0+ICFlLmhpZGRlbiAmJiBlLmZpZWxkID09PSBjb2x1bW4ub3JpZ2luLmZpZWxkKSk7XHJcbiAgICAgIC8vIFRow6ptIG5o4buvbmcgY29sdW1uIG3hu5tpIHbDoG8gc3RvcmFnZSBu4bq/dSBjw7NcclxuICAgICAgY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sID0gY29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoZSA9PiBlLm9yaWdpbj8uZmllbGQgPT09IGNvbHVtbi5maWVsZCk7XHJcbiAgICAgICAgaWYgKCFjb2wpIHtcclxuICAgICAgICAgIGNvbmZpZ3VyYXRpb24uY29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5maWVsZCxcclxuICAgICAgICAgICAgICB0aXRsZTogY29sdW1uLnRpdGxlLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGUsXHJcbiAgICAgICAgICAgIGZpeGVkOiBmYWxzZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbC5vcmlnaW4gPSB7XHJcbiAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZmllbGQsXHJcbiAgICAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGUsXHJcbiAgICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAjc2V0ID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uLCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uKSA9PiB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkoZ3JpZE9wdGlvbik7XHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIGNvbnN0IHsgc2V0IH0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdyaWRDb25maWd1cmF0aW9uPihrZXksIHtcclxuICAgICAgICB0eXBlOiBncmlkT3B0aW9uPy5jb25maWc/LnN0b3JhZ2UsXHJcbiAgICAgICAgYXJnczogZ3JpZE9wdGlvbj8uY29uZmlnPy5hcmdzXHJcbiAgICAgIH0pO1xyXG4gICAgICBzZXQoY29uZmlndXJhdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb25maWd1cmF0aW9uKSk7XHJcbiAgfVxyXG5cclxuICAjcmVtb3ZlID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkoZ3JpZE9wdGlvbik7XHJcbiAgICAgIGlmIChrZXkpIHtcclxuICAgICAgICBjb25zdCB7IHJlbW92ZSB9ID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RHcmlkQ29uZmlndXJhdGlvbj4oa2V5LCB7XHJcbiAgICAgICAgICB0eXBlOiBncmlkT3B0aW9uPy5jb25maWc/LnN0b3JhZ2UsXHJcbiAgICAgICAgICBhcmdzOiBncmlkT3B0aW9uPy5jb25maWc/LmFyZ3NcclxuICAgICAgICB9KTtcclxuICAgICAgICByZW1vdmUoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIGdldCA9IGFzeW5jIChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbik6IFByb21pc2U8U2RHcmlkQ29uZmlndXJhdGlvbj4gPT4ge1xyXG4gIC8vICAgaWYgKCFncmlkT3B0aW9uPy5rZXkpIHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuI2dldERlZmF1bHRDb25maWd1cmF0aW9uKGdyaWRPcHRpb24pO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgY29uc3QgeyBrZXksIGNvbHVtbnMgfSA9IGdyaWRPcHRpb247XHJcbiAgLy8gICBjb25zdCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uID0gYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQodGhpcy4jZ2V0S2V5KGtleSkpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XHJcbiAgLy8gICBpZiAoIWNvbmZpZ3VyYXRpb24/LmNvbHVtbnMpIHtcclxuICAvLyAgICAgdGhpcy5zZXR0aW5nU2VydmljZS5yZW1vdmUodGhpcy4jZ2V0S2V5KGtleSkpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy4jZ2V0RGVmYXVsdENvbmZpZ3VyYXRpb24oZ3JpZE9wdGlvbik7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBjb25maWd1cmF0aW9uLmNvbHVtbnMgPSBjb25maWd1cmF0aW9uLmNvbHVtbnNcclxuICAvLyAgICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1ucy5zb21lKGUgPT4gIWUuaGlkZGVuICYmIGUuZmllbGQgPT09IGNvbHVtbi5vcmlnaW4uZmllbGQpKTtcclxuICAvLyAgIC8vIFRow6ptIG5o4buvbmcgY29sdW1uIG3hu5tpIHbDoG8gc3RvcmFnZSBu4bq/dSBjw7NcclxuICAvLyAgIGNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gIC8vICAgICBjb25zdCBjb2wgPSBjb25maWd1cmF0aW9uLmNvbHVtbnMuZmluZChlID0+IGUub3JpZ2luPy5maWVsZCA9PT0gY29sdW1uLmZpZWxkKTtcclxuICAvLyAgICAgaWYgKCFjb2wpIHtcclxuICAvLyAgICAgICBjb25maWd1cmF0aW9uLmNvbHVtbnMucHVzaCh7XHJcbiAgLy8gICAgICAgICBvcmlnaW46IHtcclxuICAvLyAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5maWVsZCxcclxuICAvLyAgICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAvLyAgICAgICAgICAgd2lkdGg6IGNvbHVtbi53aWR0aCxcclxuICAvLyAgICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlLFxyXG4gIC8vICAgICAgICAgfSxcclxuICAvLyAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZSxcclxuICAvLyAgICAgICAgIGZpeGVkOiBmYWxzZVxyXG4gIC8vICAgICAgIH0pO1xyXG4gIC8vICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgIGNvbC5vcmlnaW4gPSB7XHJcbiAgLy8gICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gIC8vICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAvLyAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgLy8gICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGVcclxuICAvLyAgICAgICB9O1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KTtcclxuICAvLyAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gc2V0ID0gYXN5bmMgKGtleTogc3RyaW5nLCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uKTogUHJvbWlzZTxTZEdyaWRDb25maWd1cmF0aW9uPiA9PiB7XHJcbiAgLy8gICBpZiAoa2V5KSB7XHJcbiAgLy8gICAgIHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2V0KHRoaXMuI2dldEtleShrZXkpLCBjb25maWd1cmF0aW9uKTtcclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcmVtb3ZlID0gKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgLy8gICBpZiAoa2V5KSB7XHJcbiAgLy8gICAgIHRoaXMuc2V0dGluZ1NlcnZpY2UucmVtb3ZlKHRoaXMuI2dldEtleShrZXkpKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGdlbmVyYXRlQ29uZmlndXJhdGlvblJlc3VsdCA9IChcclxuICAgIGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24sXHJcbiAgICBncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbixcclxuICAgIHNkU3ViSW5mb3JtYXRpb246IFNkTWF0ZXJpYWxTdWJJbmZvcm1hdGlvbkRlZkRpcmVjdGl2ZSkgPT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0ID0ge1xyXG4gICAgICBjb2x1bW46IHt9LFxyXG4gICAgICBmaXhlZENvbHVtbjoge30sXHJcbiAgICAgIGZpcnN0Q29sdW1uczogW10sXHJcbiAgICAgIHNlY29uZENvbHVtbnM6IFtdLFxyXG4gICAgICBmaXJzdEhlYWRlcnM6IFtdLFxyXG4gICAgICBzZWNvbmRIZWFkZXJzOiBbXSxcclxuICAgICAgZGlzcGxheWVkQ29sdW1uczogW10sXHJcbiAgICAgIGRpc3BsYXllZEZvb3RlcnM6IFtdLFxyXG4gICAgICBtdWx0aXBsZUhlYWRlcjogZmFsc2VcclxuICAgIH07XHJcbiAgICBpZiAoZ3JpZE9wdGlvbj8uc2VsZWN0aW9uPy52aXNpYmxlKSB7XHJcbiAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaCh0aGlzLiNDT0xVTU5TLlNFTEVDVElPTik7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5TRUxFQ1RJT04pO1xyXG4gICAgfVxyXG4gICAgaWYgKGdyaWRPcHRpb24/LmNvbW1hbmRzPy5sZW5ndGgpIHtcclxuICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKHRoaXMuI0NPTFVNTlMuQ09NTUFORCk7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5DT01NQU5EKTtcclxuICAgIH1cclxuICAgIGNvbmZpZ3VyYXRpb24/LmNvbHVtbnM/LmZpbHRlcihjb2wgPT4gIWNvbC5pbnZpc2libGUpLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbC5pc0dlbmVyYXRlZENvbHVtbikge1xyXG4gICAgICAgIHJlc3VsdC5jb2x1bW5bY29sLm9yaWdpbi5maWVsZF0gPSB7XHJcbiAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGgsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoY29sLmZpeGVkKSB7XHJcbiAgICAgICAgICByZXN1bHQuZml4ZWRDb2x1bW5bY29sLm9yaWdpbi5maWVsZF0gPSB7XHJcbiAgICAgICAgICAgIHRpdGxlOiBjb2wudGl0bGUgfHwgY29sLm9yaWdpbi50aXRsZSxcclxuICAgICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVkQ29sdW1uOiBTZEdyaWRNYXRlcmlhbENvbHVtbiA9IHtcclxuICAgICAgICAgIHR5cGU6ICdjaGlsZHJlbicsXHJcbiAgICAgICAgICBmaWVsZDogY29sLm9yaWdpbi5maWVsZCxcclxuICAgICAgICAgIHRpdGxlOiBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgY2hpbGRyZW46IFtdXHJcbiAgICAgICAgfTtcclxuICAgICAgICBmb3IgKGNvbnN0IHN1YkNvbHVtbiBvZiBncmlkT3B0aW9uPy5jb2x1bW5zLmZpbHRlcihlMSA9PiBjb2wuZ2VuZXJhdGVkQ29sdW1ucy5pbmNsdWRlcyhlMS5maWVsZCkpKSB7XHJcbiAgICAgICAgICBpZiAoc3ViQ29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbicgfHwgc3ViQ29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbi1jb2wnKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGRDb2x1bW4gb2Ygc3ViQ29sdW1uLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNoaWxkcmVuLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgLi4uY2hpbGRDb2x1bW4sXHJcbiAgICAgICAgICAgICAgICBjb2xTcGFuOiAyXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5jaGlsZHJlbi5wdXNoKHtcclxuICAgICAgICAgICAgICAuLi5zdWJDb2x1bW4sXHJcbiAgICAgICAgICAgICAgY29sU3BhbjogMlxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3VsdC5maXJzdENvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICAuLi5nZW5lcmF0ZWRDb2x1bW4sXHJcbiAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGhcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2goY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaChjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29sdW1uID0gZ3JpZE9wdGlvbj8uY29sdW1ucy5maW5kKGUgPT4gZS5maWVsZCA9PT0gY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgIGlmIChjb2x1bW4pIHtcclxuICAgICAgICByZXN1bHQuY29sdW1uW2NvbC5vcmlnaW4uZmllbGRdID0ge1xyXG4gICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKGNvbC5maXhlZCkge1xyXG4gICAgICAgICAgcmVzdWx0LmZpeGVkQ29sdW1uW2NvbC5vcmlnaW4uZmllbGRdID0ge1xyXG4gICAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3VsdC5maXJzdENvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICAuLi5jb2x1bW4sXHJcbiAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGhcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2goY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnY2hpbGRyZW4tY29sJykge1xyXG4gICAgICAgICAgY29sdW1uLmNoaWxkcmVuPy5mb3JFYWNoKGNoaWxkQ29sdW1uID0+IHtcclxuICAgICAgICAgICAgcmVzdWx0LnNlY29uZENvbHVtbnMucHVzaChjaGlsZENvbHVtbik7XHJcbiAgICAgICAgICAgIHJlc3VsdC5zZWNvbmRIZWFkZXJzLnB1c2goY2hpbGRDb2x1bW4uZmllbGQpO1xyXG4gICAgICAgICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKGNoaWxkQ29sdW1uLmZpZWxkKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKGNvbC5vcmlnaW4uZmllbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoc2RTdWJJbmZvcm1hdGlvbj8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKHRoaXMuI0NPTFVNTlMuU1VCSU5GT1JNQVRJT04pO1xyXG4gICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKHRoaXMuI0NPTFVNTlMuU1VCSU5GT1JNQVRJT04pO1xyXG4gICAgfVxyXG4gICAgcmVzdWx0Lm11bHRpcGxlSGVhZGVyID0gcmVzdWx0LnNlY29uZEhlYWRlcnMubGVuZ3RoID4gMDtcclxuICAgIC8vIFN1YiBpbmZvbWF0aW9uIGtow7RuZyB0aOG7gyBjw7MgZm9vdGVyXHJcbiAgICByZXN1bHQuZGlzcGxheWVkRm9vdGVycyA9IHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih2YWwgPT4gdmFsICE9PSB0aGlzLiNDT0xVTU5TLlNVQklORk9STUFUSU9OKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==