@micropermit/client-angular 0.4.4-alpha3 → 0.4.4
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.
- package/bundles/micropermit-client-angular.umd.js.map +1 -1
- package/bundles/micropermit-client-angular.umd.min.js.map +1 -1
- package/esm2015/lib/directives/linkfield.directive.js +1 -1
- package/esm2015/lib/links/callablelink.js +1 -1
- package/esm5/lib/directives/linkfield.directive.js +1 -1
- package/esm5/lib/links/callablelink.js +1 -1
- package/fesm2015/micropermit-client-angular.js.map +1 -1
- package/fesm5/micropermit-client-angular.js.map +1 -1
- package/lib/links/callablelink.d.ts +1 -1
- package/micropermit-client-angular.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@micropermit/client-angular/lib/paramutils.ts","ng://@micropermit/client-angular/lib/links/callablelink.ts","ng://@micropermit/client-angular/lib/links/linkfield.ts","ng://@micropermit/client-angular/lib/microobject.ts","ng://@micropermit/client-angular/lib/error/microerror.ts","ng://@micropermit/client-angular/lib/microclient.service.ts","ng://@micropermit/client-angular/lib/components/loadingindicator.component.ts","ng://@micropermit/client-angular/lib/pipes/linkfield.pipe.ts","ng://@micropermit/client-angular/lib/components/errorindicator.component.ts","ng://@micropermit/client-angular/lib/directives/linkfield.directive.ts","ng://@micropermit/client-angular/lib/directives/call-link.directive.ts","ng://@micropermit/client-angular/lib/directives/micro-link-validate.directive.ts","ng://@micropermit/client-angular/lib/microclient.module.ts","ng://@micropermit/client-angular/lib/link-field-paging-support.ts","ng://@micropermit/client-angular/lib/links/mock-linkfield.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__values","o","m","Symbol","iterator","i","call","next","length","value","done","__read","n","r","e","ar","push","error","ParamUtils","addParam","url","key","replaceExisting","hasQueryParams","indexOf","existingParam","getParam","replace","setParams","params","resURL","split","first","getParams","splitted","paramsStrs","paramsStrs_1","tslib_1.__values","paramsStrs_1_1","splittedParamStr","base64UrlEncode","toEncode","btoa","plusRegex","slashRegex","multiEqualRegex","base64UrlDecode","toDecode","slice","atob","minusRegex","underscoreRegex","needsBase64UrlEncoding","toCheck","name","urlDecode","paramsQueryIdx","substr","match","RegExp","encodeURIComponent","exec","CallableLink","link","microClient","callParams","requestOptions","serializeTo","LinkSerializer","DONT_SERIALIZE","hasLink","getLink","getQueryParam","getSignedParams","getSignedMicroObjectParam","getOpenParams","copy","getMicroObjectParam","MicroObject","fromString","JSON","stringify","assign","getOptions","options","paramsStr","Error","onNext","callWith","callWithObs","toPromise","then","paramsToUse","optionsToUse","load","withCallParams","toJSON","undefined","AS_LINK","AS_VALUE_IF_INITIALIZED","isInitialized","LinkField","initialValue","initialized","_this","_super","intervalId","isRefreshing","set","tslib_1.__extends","from","get","callback","getObs","subscribe","getPromise","_getPromise","refresh","interval","errorHandler","stopRefresh","resCb","initWithObs","setInterval","clearInterval","listenObs","valueSubj","valueSubj_1","ReplaySubject","defer","complete","pipe","take","oldValue","uninitialize","copyUninitialized","getInitializedValue","initWith","parms","map","withValue","__meta","deepCopy","toCopy","client","_.cloneDeepWith","deepCopyCustomizer","MicroClient","str","obj","parse","fromObject","isArray","objArr","elem","field","META_KEY","fieldValue","src","microObject","attachMetadataObject","rawMeta","clientToUse","permitToken","getEntryPoint","createChildClientForEntryPoint","MicroObjectMetadata","attachLinkFields","attachCallableLinks","meta","forEachLink","linkName","linkUrl","forEachAction","objMetadata","nextPage","getLinkUrl","links","op","actions","MicroError","httpClient","entryPointSubject","usePost","sendAsPermitTokenHeader","sendAsMultipartFormData","setSendAsPermitTokenHeader","setAuthToken","token","authHeader","setAuthHeader","entryPoint","waitForEntryPoint","cb","copyAuthAndEntrypointOf","other","setEntryPoint","setDefaultErrorHandler","handler","defaultErrorHandler","handleError","httpErr","toMicroError","microResultObj","ignite","username","password","headers","urlRewriter","requestHeaders","HttpHeaders","headerKey","val","catchAndHandleError","oParams","existingParamsStr","existingParams","prevOptionsStr","queryParams","httpObs","bOParams","encBOParams","body","bParams","post","encodeBody","formData","FormData","paramBlob","Blob","type","append","source","catchError","err","loadError","MicroClientLoadError","errToHandle","throwError","finalize","shouldPreventDefault","handleDefault","childClient","configurable","enumerable","writable","setURLRewriter","rewriter","httpResponse","res","guessMicroComponentBaseURL","href","window","location","staticContentRegExp","test","protocol","startsWith","hostname","guessMicroComponentAuthorizeURL","Injectable","HttpClient","defaultHandler","handled","doPreventDefault","isHandled","preventDefault","hasDefaultHandler","MicroClientLoadingIndicatorComponent","Component","args","selector","template","LinkFieldPipe","changeDetectorRef","asyncPipe","AsyncPipe","ngOnDestroy","transform","linkField","Pipe","pure","ChangeDetectorRef","MicroClientErrorIndicatorComponent","onClick","Input","LinkFieldDirective","_viewContainer","_template","componentResolver","isDirty","isLoading","loadedResult","hasResult","subscription","linkFieldDefaultErrorHandling","linkFieldParams","_defaultLoadingComponent","resolveComponentFactory","_defaultErrorComponent","defineProperty","_from","loadingTemplate","_loadingTemplate","updateIfDirty","errorTemplate","_errorTemplate","setLoading","lastObs","unsubscribe","setLoadedResult","linkFieldValueChange","setError","ngDoCheck","clear","ngOnChanges","changes","linkFieldFrom","previousValue","currentValue","remove","createEmbeddedView","$implicit","createComponent","instance","loading","result","currentContext","LinkFieldContext","markForCheck","ignoreDirty","Directive","ViewContainerRef","TemplateRef","ComponentFactoryResolver","CallLinkDirective","callStatusChange","EventEmitter","callSucess","callFinish","callError","callStart","callLink","callParameters","callOptions","response","emit","CallStatus","CallState","SUCCESS","ERROR","CALLING","Output","HostListener","state","MicroLinkValidateDirective","UNSET","microLinkValidateField","microLinkValidateValue","microLinkValidateDebounce","validate","control","timer","switchMap","validateValue","microLinkValidate","validationRes","hasErrors","validateMicroLink","getControlName","controlName","parent","FormGroup","keys","controls","forEach","providers","provide","NG_ASYNC_VALIDATORS","useExisting","forwardRef","multi","exportAs","MicroClientModule","forClientRoot","ngModule","NgModule","entryComponents","imports","HttpClientModule","declarations","exports","LinkFieldPagingSupport","pageLink","pageLimit","sorts","loadedCompletely","hasLoaded","_rows","loadingSubscription","loadingCallback","loadNextPage","applySort","externalSorting","detectChanges","pageSize","resultCallback","reqOptions","sorting","firstPage","setRows","lastRow","nextPageObs","clearRows","loadEverything","additionalPage","loadCallback","arguments","concat","__spread","rows","reflectChanges","rowsChangeCallback","isLoadingCallback","dispose","setPageLink","clearState","hasLoadedCompletely","init","SortInfo","dir","toUpperCase","MockLinkField","valueToLoad","delay","of"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","export class ParamUtils {\n\n private static plusRegex = new RegExp('\\\\+');\n private static slashRegex = new RegExp('/', 'g');\n private static multiEqualRegex = new RegExp('=+$', 'g');\n private static minusRegex = new RegExp('-', 'g');\n private static underscoreRegex = new RegExp('_', 'g');\n\n public static addParam(url: string, key: string, value: string, replaceExisting: boolean = true): string {\n const hasQueryParams = url.indexOf('?') >= 0;\n if (!hasQueryParams) {\n url += '?';\n }\n\n const existingParam: string = ParamUtils.getParam(url, key);\n if (existingParam != null && replaceExisting) {\n url = url.replace(key + '=' + existingParam, key + '=' + value);\n } else {\n if (hasQueryParams) {\n url += '&';\n }\n url += key + '=' + value;\n }\n\n return url;\n }\n\n public static setParams(url: string, params: Object): string {\n const splitted = url.split('?');\n\n let resURL = splitted[0];\n let first = true;\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n if (first) {\n resURL += '?';\n first = false;\n }\n\n resURL += key + '=' + params[key];\n }\n }\n return resURL;\n }\n\n public static getParams(url: string): Object {\n const splitted = url.split('?');\n if (splitted.length < 2) {\n return {};\n }\n\n const queryStr = splitted[1];\n const params = {};\n\n const paramsStrs = queryStr.split('&');\n for (const paramStr of paramsStrs) {\n const splittedParamStr = paramStr.split('=', 2);\n const key = splittedParamStr[0];\n\n if (splittedParamStr.length === 2) {\n params[key] = splittedParamStr[1];\n } else {\n params[key] = null;\n }\n }\n return params;\n }\n\n public static base64UrlEncode(toEncode: string): string {\n return btoa(toEncode)\n .replace(ParamUtils.plusRegex, '-')\n .replace(ParamUtils.slashRegex, '_')\n .replace(ParamUtils.multiEqualRegex, '');\n }\n\n public static base64UrlDecode(toDecode: string): string {\n toDecode = (toDecode + '===').slice(0, toDecode.length + (toDecode.length % 4));\n return atob(\n toDecode\n .replace(ParamUtils.minusRegex, '+')\n .replace(ParamUtils.underscoreRegex, '/')\n );\n }\n\n public static needsBase64UrlEncoding(toCheck: any): boolean {\n if (toCheck == null) {\n return false;\n } else {\n return typeof toCheck === 'object';\n }\n }\n\n public static getParam(url: string, name: string, urlDecode: boolean = false): string {\n const paramsQueryIdx = url.indexOf('?');\n url = url.substr(paramsQueryIdx);\n const regExp = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)'));\n const match = regExp.exec(url);\n if (match) {\n if (urlDecode && match[1]) {\n return this.base64UrlDecode(match[1]);\n } else {\n return match[1];\n }\n } else {\n return null;\n }\n }\n}\n","import {MicroClient} from '../microclient.service';\nimport {Observable} from 'rxjs';\nimport {MicroObject} from '../microobject';\nimport {ParamUtils} from '../paramutils';\n\nexport class CallableLink<T> {\n\n constructor(\n protected link: string,\n protected microClient: MicroClient,\n protected callParams: object = null,\n protected requestOptions: object = null\n ) {\n }\n\n public serializeTo: (link: string, callParams: object, requestOptions: object, value: any, isInitialized: boolean) => any = LinkSerializer.DONT_SERIALIZE;\n\n hasLink(): Boolean {\n return this.link != null;\n }\n\n getLink(): string {\n return this.link;\n }\n\n getQueryParam(key: string, urlDecode: boolean = false) {\n return ParamUtils.getParam(this.link, key, urlDecode);\n }\n\n getSignedParams(): MicroObject | MicroObject[] {\n let params = this.getSignedMicroObjectParam('params');\n if (params == null) {\n params = this.getSignedMicroObjectParam('bParams');\n }\n return params;\n }\n\n getOpenParams(copy: boolean = false): MicroObject | MicroObject[] {\n let params: MicroObject | MicroObject[] = this.getMicroObjectParam('oParams');\n if (params == null) {\n params = this.getMicroObjectParam('bOParams');\n } else {\n if (copy) {\n params = MicroObject.fromString(JSON.stringify(params), this.microClient);\n }\n\n if (this.callParams) {\n params = Object.assign(params, this.callParams);\n }\n }\n return params;\n }\n\n getOptions(): MicroObject {\n let options = this.getMicroObjectParam('options');\n\n if (this.requestOptions) {\n if (options == null) {\n options = new MicroObject();\n }\n options = Object.assign(options, this.requestOptions);\n }\n\n return options;\n }\n\n private getSignedMicroObjectParam(key: string): MicroObject {\n const paramsStr = ParamUtils.getParam(this.link, key, false);\n let params = null;\n if (paramsStr) {\n const splitted = paramsStr.split('.');\n if (splitted.length !== 3) {\n throw new Error('Expected a signed query param to have a JWT like structure');\n }\n params = MicroObject.fromString(atob(splitted[1]), this.microClient);\n }\n return params;\n }\n\n getMicroObjectParam(key: string): MicroObject {\n const paramsStr = ParamUtils.getParam(this.link, key, true);\n let params = null;\n if (paramsStr) {\n params = MicroObject.fromString(paramsStr, this.microClient);\n }\n return params;\n }\n\n call(onNext: (T) => void): Promise<T> {\n return this.callWith(null, null, onNext);\n }\n\n callWith(params: object = null, requestOptions: object = null, onNext: (T) => void): Promise<T> {\n return <Promise<T>>this.callWithObs(params, requestOptions).toPromise().then(onNext);\n }\n\n callWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n if (this.link == null) {\n throw Error('Can\\'t use callWithObs without a provided link');\n }\n if (this.microClient == null) {\n throw Error('Can\\'t use callWithObs without a provided microClient');\n }\n\n let paramsToUse = null;\n if (this.callParams != null) {\n paramsToUse = Object.assign(new MicroObject(), this.callParams);\n }\n if (params) {\n if (paramsToUse == null) {\n paramsToUse = new MicroObject();\n }\n paramsToUse = Object.assign(paramsToUse, params);\n }\n\n let optionsToUse = null;\n if (this.requestOptions != null) {\n optionsToUse = Object.assign(new MicroObject(), this.requestOptions);\n }\n if (requestOptions) {\n if (optionsToUse == null) {\n optionsToUse = new MicroObject();\n }\n optionsToUse = Object.assign(optionsToUse, requestOptions);\n }\n\n return <Observable<T>> this.microClient.load(this.link, paramsToUse, optionsToUse);\n }\n\n copy(): CallableLink<T> {\n return new CallableLink(this.link, this.microClient, this.callParams, this.requestOptions);\n }\n\n withCallParams(callParams: object, requestOptions: object = this.requestOptions) {\n return new CallableLink(this.link, this.microClient, callParams, requestOptions);\n }\n\n toJSON(): any {\n if (this.serializeTo) {\n return this.serializeTo(this.link, this.callParams, this.requestOptions, undefined, undefined);\n } else {\n return undefined;\n }\n }\n}\n\n// @dynamic\nexport class LinkSerializer {\n public static DONT_SERIALIZE = function () {\n return undefined;\n };\n\n public static AS_LINK = function (link: string) {\n return link;\n };\n\n public static AS_VALUE_IF_INITIALIZED = function (link: string, callParams: object, requestOptions: object, value: any, isInitialized: boolean) {\n if (isInitialized) {\n return value;\n } else {\n return undefined;\n }\n };\n}\n","import {defer, Observable, ReplaySubject} from 'rxjs';\nimport {MicroClient, MicroClientLoadError} from '../microclient.service';\nimport {CallableLink, LinkSerializer} from './callablelink';\nimport {map, take} from 'rxjs/operators';\n\nexport class LinkField<T> extends CallableLink<T> {\n private value: T;\n private initialized = false;\n private _getPromise: Promise<T>;\n\n private valueSubj: ReplaySubject<T>;\n\n public serializeTo: (link: string, callParams: object, requestOptions: object, value: T, isInitialized: boolean) => any = LinkSerializer.AS_VALUE_IF_INITIALIZED;\n\n constructor(\n link: string,\n microClient: MicroClient,\n initialValue: T = null,\n initialized: boolean = false,\n callParams: object = null,\n requestOptions: object = null\n ) {\n super(link, microClient, callParams, requestOptions);\n if (initialized) {\n this.set(initialValue);\n }\n }\n\n static from<T extends (object | object[])>(value: T): LinkField<T> {\n return new LinkField(null, null, value, true);\n }\n\n get(callback?: (T) => void): Promise<T> {\n if (callback) {\n this.getObs().subscribe(callback);\n return null;\n }\n return this.getPromise();\n }\n\n getPromise(): Promise<T> {\n if (!this._getPromise) {\n this._getPromise = this.getObs().toPromise();\n }\n return this._getPromise;\n }\n\n private intervalId = null;\n private isRefreshing = false;\n\n refresh(interval?: number, errorHandler?: (error: MicroClientLoadError) => void) {\n if (interval) {\n this.stopRefresh();\n }\n let resCb = () => {\n this.isRefreshing = false;\n };\n this.isRefreshing = true;\n this.initWithObs().subscribe(resCb, (error: MicroClientLoadError) => {\n resCb();\n if (errorHandler) {\n errorHandler(error);\n }\n }, resCb);\n\n if (interval) {\n this.intervalId = setInterval(() => {\n if (!this.isRefreshing) {\n this.isRefreshing = true;\n this.initWithObs().subscribe(resCb, (error: MicroClientLoadError) => {\n resCb();\n if (errorHandler) {\n errorHandler(error);\n }\n }, resCb);\n }\n }, interval);\n }\n }\n\n stopRefresh() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n listenObs(): Observable<T> {\n //TODO handle listeners in case of intermidiate uninitialize (new valueSubj)\n if (this.valueSubj) {\n return this.valueSubj;\n } else {\n let valueSubj = new ReplaySubject<T>(1);\n this.valueSubj = valueSubj;\n return defer(() => {\n this.initWithObs(null, null).subscribe((value: T) => {\n if (this.valueSubj !== valueSubj) {\n valueSubj.next(value);\n valueSubj.complete();\n }\n });\n return valueSubj;\n });\n }\n }\n\n getObs(): Observable<T> {\n return this.listenObs().pipe(\n take(1)\n );\n }\n\n set(value: T): T {\n const oldValue = this.value;\n this.value = value;\n this.initialized = true;\n if (!this.valueSubj) {\n this.valueSubj = new ReplaySubject<T>(1);\n }\n this.valueSubj.next(value);\n this._getPromise = null;\n\n return oldValue;\n }\n\n isInitialized(): boolean {\n return this.initialized;\n }\n\n uninitialize() {\n this.value = null;\n this.initialized = false;\n this.valueSubj = null;\n this._getPromise = null;\n }\n\n copyUninitialized(): LinkField<T> {\n let copy = this.copy();\n copy.uninitialize();\n return copy;\n }\n\n getInitializedValue(): T {\n if (!this.isInitialized()) {\n throw new Error('Can\\'t get the intialized value for a LinkField that hasn\\'t been initialized');\n }\n return this.value;\n }\n\n initWith(parms: object = null, requestOptions: object = null, callback: (T) => void) {\n this.initWithObs(parms, requestOptions).subscribe(callback);\n }\n\n initWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n return this.callWithObs(params, requestOptions).pipe(\n map((value) => {\n this.set(<T>value);\n return value;\n })\n );\n }\n\n withCallParams(callParams: object, requestOptions: object = this.requestOptions): LinkField<T> {\n return new LinkField(this.link, this.microClient, this.value, this.initialized, callParams, requestOptions);\n }\n\n copy(withValue?: T): LinkField<T> {\n if (withValue === undefined) {\n return new LinkField(this.link, this.microClient, this.value, this.initialized, this.callParams, this.requestOptions);\n } else {\n return new LinkField(this.link, this.microClient, withValue, true, this.callParams, this.requestOptions);\n }\n }\n\n toJSON(): any {\n if (this.serializeTo) {\n return this.serializeTo(this.link, this.callParams, this.requestOptions, this.value, this.isInitialized());\n } else {\n return undefined;\n }\n }\n}\n\n","import {MicroClient} from './microclient.service';\nimport {LinkField} from './links/linkfield';\nimport {CallableLink, LinkSerializer} from './links/callablelink';\nimport {MicroError} from './error/microerror';\nimport * as _ from 'lodash';\n\nexport interface MicroObject {\n __meta: MicroObjectMetadata;\n}\n\nexport class MicroObject implements MicroObject {\n public static META_KEY = '__meta';\n\n __meta: MicroObjectMetadata = undefined;\n\n public static deepCopy<T extends object | object[]>(toCopy: T, client?: MicroClient): T {\n return <T>_.cloneDeepWith(toCopy, MicroObject.deepCopyCustomizer);\n }\n\n private static deepCopyCustomizer(value) {\n if (value instanceof MicroClient) {\n return value;\n }\n return undefined;\n }\n\n\n public static fromString<T extends object>(str: string, client: MicroClient, prototype: T = null): T | T[] {\n const obj = JSON.parse(str);\n return this.fromObject(obj, client, prototype);\n }\n\n public static fromObject<T extends object>(obj: any, client: MicroClient, prototype: T = null): T | T[] {\n if (obj === null) {\n return null;\n }\n\n if (Array.isArray(obj)) {\n const objArr: T[] = obj;\n for (let i = 0; i < objArr.length; i++) {\n const elem = objArr[i];\n if (typeof elem === 'object') {\n objArr[i] = <T>MicroObject.fromObject(elem, client, prototype);\n }\n }\n return objArr;\n } else {\n for (const field in obj) {\n if (field !== MicroObject.META_KEY && obj.hasOwnProperty(field)) {\n const fieldValue = obj[field];\n if (fieldValue) {\n if (fieldValue instanceof Object || Array.isArray(fieldValue)) {\n obj[field] = MicroObject.fromObject(fieldValue, client, prototype);\n }\n }\n }\n }\n\n const src = prototype == null ? MicroObject.prototype : prototype;\n const microObject: MicroObject = Object.assign(Object.create(src), obj);\n\n\n MicroObject.attachMetadataObject(microObject, client);\n\n return <T>microObject;\n }\n\n }\n\n private static attachMetadataObject(microObject: MicroObject, client: MicroClient) {\n const rawMeta: MicroObjectMetadata = microObject != null ? microObject[MicroObject.META_KEY] : null;\n if (rawMeta != null) {\n let clientToUse = client;\n if (rawMeta.permitToken) {\n if (client.getEntryPoint() != null) {\n clientToUse = client.createChildClientForEntryPoint(microObject);\n }\n }\n\n microObject.__meta = MicroObjectMetadata.fromObject(microObject.__meta, clientToUse);\n\n MicroObject.attachLinkFields(microObject.__meta, microObject, clientToUse);\n MicroObject.attachCallableLinks(microObject.__meta, microObject, clientToUse);\n\n } else {\n return null;\n }\n }\n\n private static attachLinkFields(meta: MicroObjectMetadata, microObject: MicroObject, client: MicroClient) {\n meta.forEachLink((linkName, linkUrl) => {\n const value = microObject[linkName];\n microObject[linkName] = new LinkField(linkUrl, client, value, value !== undefined);\n });\n }\n\n private static attachCallableLinks(meta: MicroObjectMetadata, microObject: MicroObject, client: MicroClient) {\n meta.forEachAction((linkName, linkUrl) => {\n microObject[linkName] = new CallableLink(linkUrl, client);\n });\n }\n}\n\nexport class MicroObjectMetadata {\n links: any;\n actions: any;\n permitToken: string;\n nextPage: LinkField<any>;\n error: MicroError;\n\n\n static fromObject(obj: object, client: MicroClient): MicroObjectMetadata {\n const objMetadata = Object.assign(new MicroObjectMetadata(), obj);\n\n if (objMetadata.nextPage != null) {\n objMetadata.nextPage = new LinkField(<any>objMetadata.nextPage, client);\n objMetadata.nextPage.serializeTo = LinkSerializer.AS_LINK;\n }\n\n return objMetadata;\n }\n\n public getLinkUrl(key: string): string {\n return this.links[key];\n }\n\n public hasLink(key: string): boolean {\n return this.links[key] != null;\n }\n\n public forEachLink(op: (linkName: string, link: string) => void) {\n for (const link in this.links) {\n if (this.links.hasOwnProperty(link)) {\n op(link, this.links[link]);\n }\n }\n }\n\n public forEachAction(op: (linkName: string, link: string) => void) {\n for (const link in this.actions) {\n if (this.actions.hasOwnProperty(link)) {\n op(link, this.actions[link]);\n }\n }\n }\n\n\n}\n","export class MicroError {\n timestamp: number;\n errorMessage: string;\n atService: string;\n atEndpoint: string;\n instanceID: string;\n httpEquivCode: number;\n cause: MicroError;\n errorID: string;\n errorType: Array<String>;\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from '@angular/common/http';\nimport {MicroObject} from './microobject';\nimport {Observable, ReplaySubject, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, map, take, shareReplay} from 'rxjs/operators';\nimport {ParamUtils} from './paramutils';\nimport {MicroError} from './error/microerror';\n\n@Injectable()\nexport class MicroClient {\n\n private authHeader: string;\n private permitToken: string;\n private entryPoint: MicroObject;\n\n private entryPointSubject: ReplaySubject<MicroObject> = new ReplaySubject<MicroObject>();\n\n private urlRewriter: (string) => string;\n private defaultErrorHandler: (httpError: HttpErrorResponse, microError: MicroObject) => void;\n public usePost = true;\n public sendAsPermitTokenHeader = true;\n public sendAsMultipartFormData = false;\n\n constructor(private httpClient: HttpClient) {\n\n }\n\n public setSendAsPermitTokenHeader(sendAsPermitTokenHeader: boolean) {\n this.sendAsPermitTokenHeader = sendAsPermitTokenHeader;\n }\n\n public setAuthToken(token: string) {\n this.authHeader = 'Bearer ' + token;\n this.permitToken = token;\n }\n\n public setAuthHeader(authHeader: string) {\n this.authHeader = authHeader;\n }\n\n public getEntryPoint(): any {\n return this.entryPoint;\n }\n\n public waitForEntryPoint(cb?: (entryPoint: any) => void): Promise<any> {\n if (cb != null) {\n this.entryPointSubject.subscribe(cb);\n return null;\n }\n return this.entryPointSubject.toPromise();\n }\n\n public copyAuthAndEntrypointOf(other: MicroClient) {\n this.authHeader = other.authHeader;\n this.permitToken = other.permitToken;\n this.entryPoint = other.entryPoint;\n }\n\n public setEntryPoint<T extends MicroObject>(entryPoint: any) {\n if (entryPoint == null) {\n this.authHeader = null;\n this.entryPoint = null;\n this.permitToken = null;\n } else {\n this.entryPoint = entryPoint;\n if (this.entryPoint.__meta && this.entryPoint.__meta.permitToken) {\n this.setAuthToken(this.entryPoint.__meta.permitToken);\n } else {\n throw Error('Expected the entryPoint to contain a \"permitToken\" within the \"__meta\" field');\n }\n this.entryPointSubject.next(entryPoint);\n }\n }\n\n public setDefaultErrorHandler(handler: (httpError: HttpErrorResponse, microError: MicroObject) => void) {\n this.defaultErrorHandler = handler;\n }\n\n public handleError(httpErr: HttpErrorResponse) {\n if (this.defaultErrorHandler) {\n const microError = MicroClient.toMicroError(httpErr);\n if (microError) {\n const microResultObj: MicroObject = <MicroObject>MicroObject.fromObject(httpErr.error, this);\n this.defaultErrorHandler(httpErr, microResultObj);\n } else {\n this.defaultErrorHandler(httpErr, null);\n }\n }\n }\n\n public ignite<T>(\n url: string,\n username: String = null,\n password: String = null,\n headers: object = {}\n ): Observable<T> {\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n let requestHeaders = new HttpHeaders();\n for (const headerKey in headers) {\n if (headers.hasOwnProperty(headerKey)) {\n requestHeaders = requestHeaders.set(headerKey, headers[headerKey]);\n }\n }\n\n if (username != null || password != null) {\n requestHeaders = requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n return this.httpClient.get(url, {\n headers: requestHeaders\n }).pipe(\n map(val => {\n const entryPoint = MicroObject.fromObject(val, this);\n this.setEntryPoint(entryPoint);\n return entryPoint as T;\n }),\n this.catchAndHandleError()\n );\n }\n\n public load<T>(\n url: string,\n params?: object,\n requestOptions?: object\n ): Observable<T> {\n let requestHeaders = new HttpHeaders();\n if (this.authHeader) {\n requestHeaders = requestHeaders.set('Authorization', this.authHeader);\n\n if (this.sendAsPermitTokenHeader) {\n requestHeaders = requestHeaders.set('MicroPermitToken', this.permitToken);\n }\n }\n\n let oParams = params;\n if (params != null || this.usePost) {\n const existingParamsStr = ParamUtils.getParam(url, 'oParams', true);\n let existingParams;\n if (existingParamsStr) {\n existingParams = JSON.parse(existingParamsStr);\n } else {\n existingParams = {};\n }\n oParams = Object.assign(existingParams, params);\n }\n\n let options = requestOptions;\n if (requestOptions != null || this.usePost) {\n const prevOptionsStr = ParamUtils.getParam(url, 'options', true);\n if (prevOptionsStr) {\n options = JSON.parse(prevOptionsStr);\n } else {\n options = {};\n }\n\n options = Object.assign(options, requestOptions);\n }\n\n const queryParams = ParamUtils.getParams(url);\n\n let httpObs = null;\n if (this.usePost) {\n\n let bOParams;\n const encBOParams = queryParams['bOParams'];\n if (encBOParams) {\n bOParams = JSON.parse(ParamUtils.base64UrlDecode(encBOParams));\n }\n const body = {\n params: queryParams['params'],\n oParams: oParams,\n bParams: queryParams['bParams'],\n bOParams: bOParams,\n options: options,\n };\n\n delete queryParams['params'];\n delete queryParams['oParams'];\n delete queryParams['bParams'];\n delete queryParams['bOParams'];\n delete queryParams['options'];\n\n url = ParamUtils.setParams(url, queryParams);\n\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n httpObs = this.httpClient.post(url, this.encodeBody(body), {\n headers: requestHeaders\n });\n } else {\n if (oParams) {\n queryParams['oParams'] = ParamUtils.base64UrlEncode(JSON.stringify(oParams));\n }\n\n if (options) {\n queryParams['options'] = ParamUtils.base64UrlEncode(JSON.stringify(options));\n }\n url = ParamUtils.setParams(url, queryParams);\n\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n httpObs = this.httpClient.get(url, {\n headers: requestHeaders\n });\n }\n\n httpObs = httpObs.pipe(\n map(val => {\n return MicroObject.fromObject(val, this);\n }),\n this.catchAndHandleError()\n );\n\n return httpObs;\n }\n\n private encodeBody(body: any): any {\n if (this.sendAsMultipartFormData) {\n let formData = new FormData();\n let paramBlob = new Blob([JSON.stringify(body)], {type: \"application/json\"})\n formData.append('*', paramBlob);\n return formData;\n } else {\n return body;\n }\n }\n\n private catchAndHandleError<T>(): ((source: Observable<T>) => Observable<T>) {\n return (source: Observable<T>) => {\n return source.pipe(\n catchError(err => {\n let loadError = new MicroClientLoadError(err, (errToHandle) => {\n this.handleError(errToHandle);\n });\n return throwError(loadError).pipe(\n finalize(() => {\n if (!loadError.shouldPreventDefault()) {\n loadError.handleDefault();\n }\n })\n );\n })\n );\n };\n }\n\n public createChildClientForEntryPoint(entryPoint: MicroObject): MicroClient {\n if (entryPoint.__meta && entryPoint.__meta.permitToken) {\n const childClient: MicroClient = Object.create(this, {\n entryPoint: {\n configurable: true,\n enumerable: true,\n writable: true\n },\n authHeader: {\n configurable: true,\n enumerable: true,\n writable: true\n },\n permitToken: {\n configurable: true,\n enumerable: true,\n writable: true\n }\n });\n childClient.setEntryPoint(entryPoint);\n return childClient;\n } else {\n throw new Error('The supplied value can\\'t be used to construct a child MicroClient because it doesn\\'t contain metadata with a permitToken ');\n }\n }\n\n public setURLRewriter(rewriter: (string) => string) {\n this.urlRewriter = rewriter;\n }\n\n public static toMicroError(httpResponse: HttpErrorResponse): MicroError {\n const res = httpResponse.error;\n if (res && res.__meta && res.__meta.error) {\n return Object.assign(new MicroError(), res.__meta.error);\n }\n return null;\n }\n\n private static staticContentRegExp = new RegExp('[a-zA-Z0-9]://.*(:[0-9]+)?(/.*)*/static(/.*(\\\\?.*)?(#.*)?)?');\n\n public static guessMicroComponentBaseURL(): string {\n const href = window.location.href;\n\n // Last URL-Segement is static\n if (MicroClient.staticContentRegExp.test(href)) {\n return href.replace(new RegExp('/static/.*'), '')\n .replace(new RegExp('/#/.*'), '');\n } else {\n if (window.location.protocol.startsWith('file')) {\n return 'http://localhost:8080';\n } else {\n return window.location.protocol + '//' + window.location.hostname + ':8080';\n }\n }\n }\n\n public static guessMicroComponentAuthorizeURL(): string {\n return this.guessMicroComponentBaseURL() + '/authorize';\n }\n}\n\nexport class MicroClientLoadError {\n private handled = false;\n private doPreventDefault = false;\n\n constructor(private error: any, private defaultHandler: (err: any) => void) {\n\n }\n\n public handleDefault() {\n if (this.defaultHandler) {\n this.defaultHandler(this.error);\n this.handled = true;\n }\n }\n\n public handleError(handler: (error: any) => void) {\n handler(this.error);\n this.handled = true;\n }\n\n public isHandled(): boolean {\n return this.handled;\n }\n\n public shouldPreventDefault(): boolean {\n return this.doPreventDefault;\n }\n\n public preventDefault(): void {\n this.doPreventDefault = true;\n }\n\n public hasDefaultHandler(): boolean {\n return this.defaultHandler != null;\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mc-loadingindicator',\n template: `\n <div id=\"container\">\n <div id=\"bar\"></div>\n </div>\n `,\n styles: [`\n #container {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 5px;\n -webkit-transform: translate(0, 0) scale(1, 1);\n transform: translate(0, 0) scale(1, 1);\n background-color: #aad1f9;\n }\n #container #bar {\n transition: all .2s linear;\n -webkit-animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);\n animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);\n transition: -webkit-transform .2s linear;\n transition: transform .2s linear;\n background-color: #106cc8;\n width: 100%;\n height: 5px;\n }\n @keyframes query {\n 0% {\n opacity: 1;\n transform: translateX(35%) scale(0.3, 1);\n }\n 100% {\n opacity: 0;\n transform: translateX(-50%) scale(0, 1);\n }\n }\n `]\n})\nexport class MicroClientLoadingIndicatorComponent { }\n","import {LinkField} from '../links/linkfield';\nimport {PipeTransform, Pipe, OnDestroy, ChangeDetectorRef} from '@angular/core';\nimport {MicroObject} from '../microobject';\nimport {AsyncPipe} from '@angular/common';\n\n@Pipe({name: 'linkField', pure: false})\nexport class LinkFieldPipe implements OnDestroy, PipeTransform {\n\n private asyncPipe: AsyncPipe;\n\n constructor(changeDetectorRef: ChangeDetectorRef) {\n this.asyncPipe = new AsyncPipe(changeDetectorRef);\n }\n\n ngOnDestroy(): void {\n this.asyncPipe.ngOnDestroy();\n }\n\n transform<T extends (object | object[])>(linkField: LinkField<T>): any {\n if (linkField == null) {\n return null;\n }\n if (linkField instanceof LinkField) {\n return this.asyncPipe.transform(linkField.getObs());\n } else {\n // return linkField;\n throw new Error('Can\\'t use the linkField pipe with a value which isn\\'t an instance of LinkField');\n }\n }\n\n}\n","import {Component, Input} from '@angular/core';\nimport {MicroClientLoadError} from '../microclient.service';\n\n@Component({\n selector: 'mc-errorindicator',\n template: `\n <div class=\"blinking-error\" [class.clickable]=\"error.hasDefaultHandler()\" (click)=\"onClick()\"></div>\n `,\n styles: [`\n .blinking-error {\n background-image: linear-gradient(to right, tomato 0%, darkred 50%, tomato 100%);\n animation: blinkingText 0.5s 1;\n height: 5px;\n }\n\n .blinking-error.clickable {\n cursor: pointer;\n }\n\n @keyframes blinkingText {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n `]\n})\nexport class MicroClientErrorIndicatorComponent {\n @Input()\n error: MicroClientLoadError;\n\n onClick() {\n this.error.handleDefault();\n }\n}\n","import {\n Directive,\n Input,\n TemplateRef,\n ViewContainerRef,\n ComponentFactoryResolver,\n ComponentFactory,\n DoCheck,\n OnDestroy, ChangeDetectorRef, Output, EventEmitter, OnChanges, SimpleChanges\n} from '@angular/core';\nimport {LinkField} from '../links/linkfield';\nimport {MicroObject} from '../microobject';\nimport {Observable, Subscription} from 'rxjs';\nimport {MicroClientLoadingIndicatorComponent} from '../components/loadingindicator.component';\nimport {MicroClientErrorIndicatorComponent} from '../components/errorindicator.component';\nimport {finalize} from 'rxjs/operators';\nimport {MicroClientLoadError} from '../microclient.service';\n\n@Directive({\n selector: '[linkField][linkFieldFrom]'\n})\nexport class LinkFieldDirective<T> implements DoCheck, OnDestroy, OnChanges {\n private _from: LinkField<T> | T;\n private _loadingTemplate: TemplateRef<any>;\n private _errorTemplate: TemplateRef<any>;\n private _defaultLoadingComponent: ComponentFactory<MicroClientLoadingIndicatorComponent>;\n private _defaultErrorComponent: ComponentFactory<MicroClientErrorIndicatorComponent>;\n\n private isDirty = true;\n private isLoading = false;\n private loadedResult: T = null;\n private hasResult = false;\n\n private lastObs: Observable<T>;\n private subscription: Subscription = null;\n\n private currentContext: LinkFieldContext<T>;\n\n constructor(\n private _viewContainer: ViewContainerRef,\n private _template: TemplateRef<LinkFieldContext<T>>,\n private componentResolver: ComponentFactoryResolver,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);\n this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);\n }\n\n @Input()\n set linkFieldFrom(from: LinkField<T> | T) {\n this._from = from;\n }\n\n @Input()\n set linkFieldLoadingTemplate(loadingTemplate: TemplateRef<any>) {\n if (loadingTemplate) {\n this._loadingTemplate = loadingTemplate;\n }\n this.updateIfDirty(true);\n }\n\n @Input()\n set linkFieldErrorTemplate(errorTemplate: TemplateRef<any>) {\n if (errorTemplate) {\n this._errorTemplate = errorTemplate;\n }\n this.updateIfDirty(true);\n }\n\n @Input()\n set linkFieldTemplate(value: TemplateRef<LinkFieldContext<T>>) {\n if (value) {\n this._template = value;\n }\n }\n\n @Input()\n linkFieldDefaultErrorHandling = false;\n\n @Input()\n linkFieldValueChange: (T) => void;\n\n @Input()\n linkFieldParams: object = null;\n\n\n private load() {\n if (this._from) {\n if (this._from instanceof LinkField) {\n this.setLoading(true);\n this.lastObs = this._from.listenObs();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n this.subscription = this.lastObs.pipe(\n finalize(() => {\n this.setLoading(false);\n })\n ).subscribe((loadedResult: T) => {\n this.setLoadedResult(loadedResult);\n if (this.linkFieldValueChange) {\n this.linkFieldValueChange(loadedResult);\n }\n }, (loadError: MicroClientLoadError) => {\n if (!this.linkFieldDefaultErrorHandling) {\n loadError.preventDefault();\n }\n this.setError(loadError);\n });\n } else {\n this.setLoadedResult(this._from);\n // this.setLoadedResult(this._from);\n // throw new Error('Can\\'t use the linkField directive with a from value which isn\\'t an instance of LinkField');\n }\n }\n }\n\n\n ngDoCheck() {\n this.updateIfDirty();\n }\n\n ngOnDestroy() {\n this.clear();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.linkFieldFrom) {\n if (!(this._from instanceof LinkField)) {\n this._from = LinkField.from(this._from as any);\n }\n if (changes.linkFieldFrom.previousValue !== changes.linkFieldFrom.currentValue) {\n this.clear();\n this.load();\n }\n }\n\n if (changes.linkFieldParams && this.linkFieldParams) {\n let link = this._from as LinkField<T>;\n this._from = link.withCallParams(this.linkFieldParams);\n }\n }\n\n private setError(error: MicroClientLoadError) {\n this._viewContainer.remove();\n if (this._errorTemplate) {\n this._viewContainer.createEmbeddedView(this._errorTemplate, {\n $implicit: error\n });\n } else {\n let errorComponentInstance = this._viewContainer.createComponent(this._defaultErrorComponent);\n errorComponentInstance.instance['error'] = error;\n }\n }\n\n\n private setLoading(loading: boolean) {\n this.isLoading = loading;\n if (this.isLoading) {\n if (this._loadingTemplate) {\n this._viewContainer.remove();\n this._viewContainer.createEmbeddedView(this._loadingTemplate);\n } else {\n this._viewContainer.remove();\n this._viewContainer.createComponent(this._defaultLoadingComponent);\n }\n }\n }\n\n private setLoadedResult(result: T) {\n this.hasResult = true;\n this.loadedResult = result;\n if (this.currentContext == null) {\n this.currentContext = new LinkFieldContext<T>(result);\n this.isDirty = true;\n } else {\n this.currentContext.$implicit = result;\n this.changeDetectorRef.markForCheck();\n }\n if (!this._viewContainer || !this._template) {\n this.isDirty = true;\n } else {\n if (this.isDirty) {\n this._viewContainer.remove();\n this._viewContainer.createEmbeddedView(this._template, this.currentContext);\n this.isDirty = false;\n }\n }\n }\n\n private updateIfDirty(ignoreDirty: boolean = false) {\n if ((this.isDirty || ignoreDirty) && this._loadingTemplate && this._from && this._template && this._viewContainer) {\n if (this.hasResult) {\n this.setLoadedResult(this.loadedResult);\n }\n this.isDirty = false;\n }\n }\n\n private clear() {\n this.hasResult = false;\n this.loadedResult = null;\n this.isDirty = false;\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n this.lastObs = null;\n this.currentContext = null;\n }\n}\n\nexport class LinkFieldContext<T> {\n\n constructor(public $implicit: T) {\n }\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive, ElementRef, EmbeddedViewRef,\n EventEmitter, HostListener,\n Input, OnDestroy, OnInit,\n Output, Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {MicroObject} from '../microobject';\nimport {CallableLink} from '../links/callablelink';\nimport {MicroError} from '../error/microerror';\n\n@Directive({\n selector: '[callLink]'\n})\nexport class CallLinkDirective {\n @Input()\n callLink: CallableLink<MicroObject | MicroObject[]>;\n\n @Output()\n callStatusChange: EventEmitter<CallStatus> = new EventEmitter();\n\n @Output()\n callSucess: EventEmitter<MicroObject | MicroObject[]> = new EventEmitter();\n\n @Output()\n callFinish: EventEmitter<void> = new EventEmitter();\n\n @Output()\n callError: EventEmitter<MicroError> = new EventEmitter();\n\n @Output()\n callStart: EventEmitter<void> = new EventEmitter();\n\n @Input()\n callOptions: object;\n\n @Input()\n callParameters: object;\n\n @HostListener('click')\n onClick() {\n this.callLink.callWithObs(this.callParameters, this.callOptions).subscribe((response) => {\n this.callSucess.emit(response);\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.SUCCESS, response, null));\n }, (error) => {\n this.callError.emit(error);\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.ERROR, null, error));\n }, () => {\n this.callFinish.emit();\n });\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.CALLING, null, null));\n }\n}\n\nexport class CallStatus {\n constructor(\n public link: CallableLink<MicroObject | MicroObject[]>,\n public state: CallState,\n public response: MicroObject | MicroObject[],\n public error: MicroError\n ) {\n }\n}\n\nexport enum CallState {\n CALLING,\n SUCCESS,\n ERROR\n}\n","import {Directive, forwardRef, Input} from '@angular/core';\nimport {\n AbstractControl,\n FormGroup,\n NG_ASYNC_VALIDATORS,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport {Observable, timer} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\nimport {CallableLink} from '../links/callablelink';\n\n@Directive({\n selector: '[microLinkValidate]',\n providers: [\n {\n provide: NG_ASYNC_VALIDATORS,\n useExisting: forwardRef(() => MicroLinkValidateDirective),\n multi: true\n }\n ],\n exportAs: 'microValidator'\n})\nexport class MicroLinkValidateDirective implements Validator {\n\n private UNSET = \"\"\n\n @Input()\n microLinkValidate: CallableLink<any>\n\n @Input()\n microLinkValidateField: string = null\n\n @Input()\n microLinkValidateValue: any = this.UNSET\n\n @Input()\n microLinkValidateDebounce = 500;\n\n public result:any;\n\n\n validate(control: AbstractControl): Observable<ValidationErrors | null> {\n return timer(this.microLinkValidateDebounce).pipe(\n switchMap(() => {\n let validateValue = this.microLinkValidateValue\n if (validateValue === this.UNSET) {\n validateValue = control.value\n }\n\n let obj = {}\n if (this.microLinkValidateField) {\n obj[this.microLinkValidateField] = validateValue\n } else {\n obj = validateValue\n }\n\n return this.microLinkValidate.callWithObs(obj, null).pipe(\n map(validationRes => {\n let hasErrors = false\n if (this.microLinkValidateField) {\n if (validationRes[this.microLinkValidateField] != null) {\n hasErrors = true\n }\n } else {\n for (let key in validationRes) {\n if (validationRes[key] != null) {\n hasErrors = true\n }\n }\n }\n if (hasErrors) {\n this.result = validationRes\n return {\n validateMicroLink: this.result\n }\n\n } else {\n this.result = null\n return null\n }\n })\n )\n })\n )\n }\n\n getControlName(control: AbstractControl) {\n let controlName = null;\n let parent = control.parent;\n\n // only such parent, which is FormGroup, has a dictionary\n // with control-names as a key and a form-control as a value\n if (parent instanceof FormGroup) {\n // now we will iterate those keys (i.e. names of controls)\n Object.keys(parent.controls).forEach((name) => {\n // and compare the passed control and\n // a child control of a parent - with provided name (we iterate them all)\n if (control === parent.controls[name]) {\n // both are same: control passed to Validator\n // and this child - are the same references\n controlName = name;\n }\n });\n }\n // we either found a name or simply return null\n return controlName;\n }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {MicroClientLoadingIndicatorComponent} from './components/loadingindicator.component';\nimport {LinkFieldPipe} from './pipes/linkfield.pipe';\nimport {LinkFieldDirective} from './directives/linkfield.directive';\nimport {MicroClient} from './microclient.service';\nimport {HttpClientModule} from '@angular/common/http';\nimport {CallLinkDirective} from './directives/call-link.directive';\nimport {MicroClientErrorIndicatorComponent} from './components/errorindicator.component';\nimport {MicroLinkValidateDirective} from './directives/micro-link-validate.directive';\n\n@NgModule({\n entryComponents: [\n MicroClientLoadingIndicatorComponent,\n MicroClientErrorIndicatorComponent\n ],\n imports: [\n HttpClientModule\n ],\n declarations: [\n LinkFieldPipe,\n LinkFieldDirective,\n CallLinkDirective,\n MicroClientLoadingIndicatorComponent,\n MicroClientErrorIndicatorComponent,\n MicroLinkValidateDirective\n ],\n exports: [\n LinkFieldPipe,\n LinkFieldDirective,\n CallLinkDirective,\n MicroClientErrorIndicatorComponent,\n MicroClientLoadingIndicatorComponent,\n MicroLinkValidateDirective\n ]\n})\nexport class MicroClientModule {\n static forClientRoot(): ModuleWithProviders<MicroClientModule> {\n return {\n ngModule: MicroClientModule,\n providers: [\n MicroClient\n ]\n };\n }\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {Observable, Subscription} from 'rxjs';\nimport {LinkField} from './links/linkfield';\nimport {MicroObject} from './microobject';\n\nexport class LinkFieldPagingSupport {\n\n constructor(\n private pageLink: LinkField<MicroObject[]>,\n private changeDetectorRef: ChangeDetectorRef,\n public pageLimit: number = 200\n ) {\n }\n\n private sorts: SortInfo[] = null;\n\n public isLoading = false;\n private loadedCompletely = false;\n private hasLoaded = false;\n private _rows: any[] = null;\n private loadingSubscription: Subscription = null;\n\n public rowsChangeCallback: (rows: any[]) => void;\n public isLoadingCallback: (isLoading: boolean) => void;\n\n get rows(): any[] {\n if (!this.hasLoaded) {\n this.loadNextPage();\n }\n return this._rows;\n }\n\n public static from(\n pageLink: LinkField<MicroObject[]>,\n changeDetectorRef: ChangeDetectorRef,\n pageLimit: number = 200\n ): LinkFieldPagingSupport {\n return new LinkFieldPagingSupport(pageLink, changeDetectorRef, pageLimit);\n }\n\n public applySort(sorts: SortInfo[], externalSorting = true) {\n this.hasLoaded = false;\n this.sorts = null;\n this._rows = null;\n\n if (externalSorting) {\n this.sorts = sorts;\n this.loadNextPage();\n } else {\n if (!this.loadedCompletely) {\n this.loadNextPage(null);\n } else {\n this.changeDetectorRef.detectChanges();\n }\n }\n\n }\n\n private loadingCallback = () => {\n this.setLoading(false);\n };\n\n public loadNextPage(pageSize: number = this.pageLimit, resultCallback: ((page: any[], all: any[]) => void) = null) {\n if (this.pageLink && !this.isLoading) {\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n this.loadingSubscription = null;\n }\n\n this.hasLoaded = true;\n this.loadedCompletely = false;\n if (this._rows == null) {\n this.setLoading(true);\n\n const reqOptions: any = {};\n if (this.sorts != null) {\n reqOptions.sorting = this.sorts;\n }\n if (pageSize != null) {\n reqOptions.pageSize = pageSize;\n }\n\n\n this.loadingSubscription = this.pageLink.initWithObs(null, reqOptions).subscribe((firstPage) => {\n this.setRows(firstPage, resultCallback);\n }, this.loadingCallback, this.loadingCallback);\n } else {\n const lastRow = this.lastRow();\n if (lastRow) {\n if (lastRow.__meta.nextPage) {\n let reqOptions = null;\n if (pageSize != null) {\n reqOptions = {\n pageSize: pageSize\n };\n }\n\n const nextPageObs: Observable<MicroObject[]> = lastRow.__meta.nextPage.initWithObs(null, reqOptions);\n if (nextPageObs) {\n this.setLoading(true);\n this.loadingSubscription = nextPageObs.subscribe((nextPage) => {\n this.setRows(nextPage, resultCallback);\n }, this.loadingCallback, this.loadingCallback);\n }\n }\n }\n }\n } else if (!this.pageLink) {\n this.clearRows();\n }\n }\n\n public loadEverything() {\n this.loadNextPage(null);\n }\n\n private lastRow(): MicroObject {\n return this._rows[this._rows.length - 1];\n }\n\n private setRows(additionalPage: any[], loadCallback: ((page: any[], all: any[]) => void)) {\n if (this._rows) {\n this._rows = [...this.rows, ...additionalPage];\n } else {\n this._rows = additionalPage;\n }\n if (loadCallback) {\n loadCallback(additionalPage, this._rows);\n }\n this.reflectChanges();\n }\n\n private clearRows() {\n if (this._rows != null) {\n this._rows = null;\n this.reflectChanges();\n }\n }\n\n private reflectChanges() {\n const lastRow = this.lastRow();\n if (lastRow && lastRow.__meta) {\n this.loadedCompletely = lastRow.__meta.nextPage == null;\n } else {\n this.loadedCompletely = false;\n }\n\n if (this.rowsChangeCallback) {\n this.rowsChangeCallback(this._rows);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n private setLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n if (this.isLoadingCallback) {\n this.isLoadingCallback(this.isLoading);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n public dispose() {\n this.rowsChangeCallback = null;\n this.isLoadingCallback = null;\n }\n\n public setPageLink(pageLink: LinkField<MicroObject[]>) {\n this.clearState();\n this.pageLink = pageLink;\n this.loadNextPage();\n }\n\n public hasLoadedCompletely(): boolean {\n return this.loadedCompletely;\n }\n\n public init(rowsChangeCallback: (rows: any[]) => void, isLoadingCallback: ((isLoading: boolean) => void) = null) {\n this.rowsChangeCallback = rowsChangeCallback;\n this.isLoadingCallback = isLoadingCallback;\n }\n\n private clearState() {\n this.isLoading = false;\n this.loadedCompletely = false;\n this.hasLoaded = false;\n this._rows = null;\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n this.loadingSubscription = null;\n }\n }\n}\n\nexport class SortInfo {\n constructor(public field: string, public dir: string) {\n this.dir = dir.toUpperCase();\n if (!(this.dir === 'ASC' || this.dir === 'DESC')) {\n throw Error('dir can only be \\'ASC\\' or \\'DESC\\'');\n }\n }\n}\n","import {LinkField} from './linkfield';\nimport {Observable, of} from 'rxjs';\nimport {delay} from 'rxjs/operators';\n\nexport class MockLinkField<T extends (object | object[])> extends LinkField<T> {\n constructor(private valueToLoad: any, private delay: number) {\n super(null, null);\n }\n\n callWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n return of(this.valueToLoad).pipe(\n delay(this.delay)\n );\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@micropermit/client-angular/lib/paramutils.ts","ng://@micropermit/client-angular/lib/links/callablelink.ts","ng://@micropermit/client-angular/lib/links/linkfield.ts","ng://@micropermit/client-angular/lib/microobject.ts","ng://@micropermit/client-angular/lib/error/microerror.ts","ng://@micropermit/client-angular/lib/microclient.service.ts","ng://@micropermit/client-angular/lib/components/loadingindicator.component.ts","ng://@micropermit/client-angular/lib/pipes/linkfield.pipe.ts","ng://@micropermit/client-angular/lib/components/errorindicator.component.ts","ng://@micropermit/client-angular/lib/directives/linkfield.directive.ts","ng://@micropermit/client-angular/lib/directives/call-link.directive.ts","ng://@micropermit/client-angular/lib/directives/micro-link-validate.directive.ts","ng://@micropermit/client-angular/lib/microclient.module.ts","ng://@micropermit/client-angular/lib/link-field-paging-support.ts","ng://@micropermit/client-angular/lib/links/mock-linkfield.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__values","o","m","Symbol","iterator","i","call","next","length","value","done","__read","n","r","e","ar","push","error","ParamUtils","addParam","url","key","replaceExisting","hasQueryParams","indexOf","existingParam","getParam","replace","setParams","params","resURL","split","first","getParams","splitted","paramsStrs","paramsStrs_1","tslib_1.__values","paramsStrs_1_1","splittedParamStr","base64UrlEncode","toEncode","btoa","plusRegex","slashRegex","multiEqualRegex","base64UrlDecode","toDecode","slice","atob","minusRegex","underscoreRegex","needsBase64UrlEncoding","toCheck","name","urlDecode","paramsQueryIdx","substr","match","RegExp","encodeURIComponent","exec","CallableLink","link","microClient","callParams","requestOptions","serializeTo","LinkSerializer","DONT_SERIALIZE","hasLink","getLink","getQueryParam","getSignedParams","getSignedMicroObjectParam","getOpenParams","copy","getMicroObjectParam","MicroObject","fromString","JSON","stringify","assign","getOptions","options","paramsStr","Error","onNext","callWith","callWithObs","toPromise","then","paramsToUse","optionsToUse","load","withCallParams","toJSON","undefined","AS_LINK","AS_VALUE_IF_INITIALIZED","isInitialized","LinkField","initialValue","initialized","_this","_super","intervalId","isRefreshing","set","tslib_1.__extends","from","get","callback","getObs","subscribe","getPromise","_getPromise","refresh","interval","errorHandler","stopRefresh","resCb","initWithObs","setInterval","clearInterval","listenObs","valueSubj","valueSubj_1","ReplaySubject","defer","complete","pipe","take","oldValue","uninitialize","copyUninitialized","getInitializedValue","initWith","parms","map","withValue","__meta","deepCopy","toCopy","client","_.cloneDeepWith","deepCopyCustomizer","MicroClient","str","obj","parse","fromObject","isArray","objArr","elem","field","META_KEY","fieldValue","src","microObject","attachMetadataObject","rawMeta","clientToUse","permitToken","getEntryPoint","createChildClientForEntryPoint","MicroObjectMetadata","attachLinkFields","attachCallableLinks","meta","forEachLink","linkName","linkUrl","forEachAction","objMetadata","nextPage","getLinkUrl","links","op","actions","MicroError","httpClient","entryPointSubject","usePost","sendAsPermitTokenHeader","sendAsMultipartFormData","setSendAsPermitTokenHeader","setAuthToken","token","authHeader","setAuthHeader","entryPoint","waitForEntryPoint","cb","copyAuthAndEntrypointOf","other","setEntryPoint","setDefaultErrorHandler","handler","defaultErrorHandler","handleError","httpErr","toMicroError","microResultObj","ignite","username","password","headers","urlRewriter","requestHeaders","HttpHeaders","headerKey","val","catchAndHandleError","oParams","existingParamsStr","existingParams","prevOptionsStr","queryParams","httpObs","bOParams","encBOParams","body","bParams","post","encodeBody","formData","FormData","paramBlob","Blob","type","append","source","catchError","err","loadError","MicroClientLoadError","errToHandle","throwError","finalize","shouldPreventDefault","handleDefault","childClient","configurable","enumerable","writable","setURLRewriter","rewriter","httpResponse","res","guessMicroComponentBaseURL","href","window","location","staticContentRegExp","test","protocol","startsWith","hostname","guessMicroComponentAuthorizeURL","Injectable","HttpClient","defaultHandler","handled","doPreventDefault","isHandled","preventDefault","hasDefaultHandler","MicroClientLoadingIndicatorComponent","Component","args","selector","template","LinkFieldPipe","changeDetectorRef","asyncPipe","AsyncPipe","ngOnDestroy","transform","linkField","Pipe","pure","ChangeDetectorRef","MicroClientErrorIndicatorComponent","onClick","Input","LinkFieldDirective","_viewContainer","_template","componentResolver","isDirty","isLoading","loadedResult","hasResult","subscription","linkFieldDefaultErrorHandling","linkFieldParams","_defaultLoadingComponent","resolveComponentFactory","_defaultErrorComponent","defineProperty","_from","loadingTemplate","_loadingTemplate","updateIfDirty","errorTemplate","_errorTemplate","setLoading","lastObs","unsubscribe","setLoadedResult","linkFieldValueChange","setError","ngDoCheck","clear","ngOnChanges","changes","linkFieldFrom","previousValue","currentValue","remove","createEmbeddedView","$implicit","createComponent","instance","loading","result","currentContext","LinkFieldContext","markForCheck","ignoreDirty","Directive","ViewContainerRef","TemplateRef","ComponentFactoryResolver","CallLinkDirective","callStatusChange","EventEmitter","callSucess","callFinish","callError","callStart","callLink","callParameters","callOptions","response","emit","CallStatus","CallState","SUCCESS","ERROR","CALLING","Output","HostListener","state","MicroLinkValidateDirective","UNSET","microLinkValidateField","microLinkValidateValue","microLinkValidateDebounce","validate","control","timer","switchMap","validateValue","microLinkValidate","validationRes","hasErrors","validateMicroLink","getControlName","controlName","parent","FormGroup","keys","controls","forEach","providers","provide","NG_ASYNC_VALIDATORS","useExisting","forwardRef","multi","exportAs","MicroClientModule","forClientRoot","ngModule","NgModule","entryComponents","imports","HttpClientModule","declarations","exports","LinkFieldPagingSupport","pageLink","pageLimit","sorts","loadedCompletely","hasLoaded","_rows","loadingSubscription","loadingCallback","loadNextPage","applySort","externalSorting","detectChanges","pageSize","resultCallback","reqOptions","sorting","firstPage","setRows","lastRow","nextPageObs","clearRows","loadEverything","additionalPage","loadCallback","arguments","concat","__spread","rows","reflectChanges","rowsChangeCallback","isLoadingCallback","dispose","setPageLink","clearState","hasLoadedCompletely","init","SortInfo","dir","toUpperCase","MockLinkField","valueToLoad","delay","of"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","export class ParamUtils {\n\n private static plusRegex = new RegExp('\\\\+');\n private static slashRegex = new RegExp('/', 'g');\n private static multiEqualRegex = new RegExp('=+$', 'g');\n private static minusRegex = new RegExp('-', 'g');\n private static underscoreRegex = new RegExp('_', 'g');\n\n public static addParam(url: string, key: string, value: string, replaceExisting: boolean = true): string {\n const hasQueryParams = url.indexOf('?') >= 0;\n if (!hasQueryParams) {\n url += '?';\n }\n\n const existingParam: string = ParamUtils.getParam(url, key);\n if (existingParam != null && replaceExisting) {\n url = url.replace(key + '=' + existingParam, key + '=' + value);\n } else {\n if (hasQueryParams) {\n url += '&';\n }\n url += key + '=' + value;\n }\n\n return url;\n }\n\n public static setParams(url: string, params: Object): string {\n const splitted = url.split('?');\n\n let resURL = splitted[0];\n let first = true;\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n if (first) {\n resURL += '?';\n first = false;\n }\n\n resURL += key + '=' + params[key];\n }\n }\n return resURL;\n }\n\n public static getParams(url: string): Object {\n const splitted = url.split('?');\n if (splitted.length < 2) {\n return {};\n }\n\n const queryStr = splitted[1];\n const params = {};\n\n const paramsStrs = queryStr.split('&');\n for (const paramStr of paramsStrs) {\n const splittedParamStr = paramStr.split('=', 2);\n const key = splittedParamStr[0];\n\n if (splittedParamStr.length === 2) {\n params[key] = splittedParamStr[1];\n } else {\n params[key] = null;\n }\n }\n return params;\n }\n\n public static base64UrlEncode(toEncode: string): string {\n return btoa(toEncode)\n .replace(ParamUtils.plusRegex, '-')\n .replace(ParamUtils.slashRegex, '_')\n .replace(ParamUtils.multiEqualRegex, '');\n }\n\n public static base64UrlDecode(toDecode: string): string {\n toDecode = (toDecode + '===').slice(0, toDecode.length + (toDecode.length % 4));\n return atob(\n toDecode\n .replace(ParamUtils.minusRegex, '+')\n .replace(ParamUtils.underscoreRegex, '/')\n );\n }\n\n public static needsBase64UrlEncoding(toCheck: any): boolean {\n if (toCheck == null) {\n return false;\n } else {\n return typeof toCheck === 'object';\n }\n }\n\n public static getParam(url: string, name: string, urlDecode: boolean = false): string {\n const paramsQueryIdx = url.indexOf('?');\n url = url.substr(paramsQueryIdx);\n const regExp = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)'));\n const match = regExp.exec(url);\n if (match) {\n if (urlDecode && match[1]) {\n return this.base64UrlDecode(match[1]);\n } else {\n return match[1];\n }\n } else {\n return null;\n }\n }\n}\n","import {MicroClient} from '../microclient.service';\nimport {Observable} from 'rxjs';\nimport {MicroObject} from '../microobject';\nimport {ParamUtils} from '../paramutils';\n\nexport class CallableLink<T> {\n\n constructor(\n protected link: string,\n protected microClient: MicroClient,\n protected callParams: object = null,\n protected requestOptions: object = null\n ) {\n }\n\n public serializeTo: (link: string, callParams: object, requestOptions: object, value: any, isInitialized: boolean) => any = LinkSerializer.DONT_SERIALIZE;\n\n hasLink(): Boolean {\n return this.link != null;\n }\n\n getLink(): string {\n return this.link;\n }\n\n getQueryParam(key: string, urlDecode: boolean = false) {\n return ParamUtils.getParam(this.link, key, urlDecode);\n }\n\n getSignedParams(): MicroObject | MicroObject[] {\n let params = this.getSignedMicroObjectParam('params');\n if (params == null) {\n params = this.getSignedMicroObjectParam('bParams');\n }\n return params;\n }\n\n getOpenParams(copy: boolean = false): MicroObject | MicroObject[] {\n let params: MicroObject | MicroObject[] = this.getMicroObjectParam('oParams');\n if (params == null) {\n params = this.getMicroObjectParam('bOParams');\n } else {\n if (copy) {\n params = MicroObject.fromString(JSON.stringify(params), this.microClient);\n }\n\n if (this.callParams) {\n params = Object.assign(params, this.callParams);\n }\n }\n return params;\n }\n\n getOptions(): MicroObject {\n let options = this.getMicroObjectParam('options');\n\n if (this.requestOptions) {\n if (options == null) {\n options = new MicroObject();\n }\n options = Object.assign(options, this.requestOptions);\n }\n\n return options;\n }\n\n private getSignedMicroObjectParam(key: string): MicroObject {\n const paramsStr = ParamUtils.getParam(this.link, key, false);\n let params = null;\n if (paramsStr) {\n const splitted = paramsStr.split('.');\n if (splitted.length !== 3) {\n throw new Error('Expected a signed query param to have a JWT like structure');\n }\n params = MicroObject.fromString(atob(splitted[1]), this.microClient);\n }\n return params;\n }\n\n getMicroObjectParam(key: string): MicroObject {\n const paramsStr = ParamUtils.getParam(this.link, key, true);\n let params = null;\n if (paramsStr) {\n params = MicroObject.fromString(paramsStr, this.microClient);\n }\n return params;\n }\n\n call(onNext: (T) => void): Promise<T> {\n return this.callWith(null, null, onNext);\n }\n\n callWith(params: object = null, requestOptions: object = null, onNext: (T) => void): Promise<T> {\n return <Promise<T>>this.callWithObs(params, requestOptions).toPromise().then(onNext);\n }\n\n callWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n if (this.link == null) {\n throw Error('Can\\'t use callWithObs without a provided link');\n }\n if (this.microClient == null) {\n throw Error('Can\\'t use callWithObs without a provided microClient');\n }\n\n let paramsToUse = null;\n if (this.callParams != null) {\n paramsToUse = Object.assign(new MicroObject(), this.callParams);\n }\n if (params) {\n if (paramsToUse == null) {\n paramsToUse = new MicroObject();\n }\n paramsToUse = Object.assign(paramsToUse, params);\n }\n\n let optionsToUse = null;\n if (this.requestOptions != null) {\n optionsToUse = Object.assign(new MicroObject(), this.requestOptions);\n }\n if (requestOptions) {\n if (optionsToUse == null) {\n optionsToUse = new MicroObject();\n }\n optionsToUse = Object.assign(optionsToUse, requestOptions);\n }\n\n return <Observable<T>>this.microClient.load(this.link, paramsToUse, optionsToUse);\n }\n\n copy(): CallableLink<T> {\n return new CallableLink(this.link, this.microClient, this.callParams, this.requestOptions);\n }\n\n withCallParams(callParams: object, requestOptions: object = this.requestOptions): CallableLink<T> {\n return new CallableLink(this.link, this.microClient, callParams, requestOptions);\n }\n\n toJSON(): any {\n if (this.serializeTo) {\n return this.serializeTo(this.link, this.callParams, this.requestOptions, undefined, undefined);\n } else {\n return undefined;\n }\n }\n}\n\n// @dynamic\nexport class LinkSerializer {\n public static DONT_SERIALIZE = function () {\n return undefined;\n };\n\n public static AS_LINK = function (link: string) {\n return link;\n };\n\n public static AS_VALUE_IF_INITIALIZED = function (link: string, callParams: object, requestOptions: object, value: any, isInitialized: boolean) {\n if (isInitialized) {\n return value;\n } else {\n return undefined;\n }\n };\n}\n","import {defer, Observable, ReplaySubject} from 'rxjs';\nimport {MicroClient, MicroClientLoadError} from '../microclient.service';\nimport {CallableLink, LinkSerializer} from './callablelink';\nimport {map, take} from 'rxjs/operators';\n\nexport class LinkField<T> extends CallableLink<T> {\n private value: T;\n private initialized = false;\n private _getPromise: Promise<T>;\n\n private valueSubj: ReplaySubject<T>;\n\n public serializeTo: (link: string, callParams: object, requestOptions: object, value: T, isInitialized: boolean) => any = LinkSerializer.AS_VALUE_IF_INITIALIZED;\n\n constructor(\n link: string,\n microClient: MicroClient,\n initialValue: T = null,\n initialized: boolean = false,\n callParams: object = null,\n requestOptions: object = null\n ) {\n super(link, microClient, callParams, requestOptions);\n if (initialized) {\n this.set(initialValue);\n }\n }\n\n static from<T extends (object | object[])>(value: T): LinkField<T> {\n return new LinkField(null, null, value, true);\n }\n\n get(callback?: (T) => void): Promise<T> {\n if (callback) {\n this.getObs().subscribe(callback);\n return null;\n }\n return this.getPromise();\n }\n\n getPromise(): Promise<T> {\n if (!this._getPromise) {\n this._getPromise = this.getObs().toPromise();\n }\n return this._getPromise;\n }\n\n private intervalId = null;\n private isRefreshing = false;\n\n refresh(interval?: number, errorHandler?: (error: MicroClientLoadError) => void) {\n if (interval) {\n this.stopRefresh();\n }\n let resCb = () => {\n this.isRefreshing = false;\n };\n this.isRefreshing = true;\n this.initWithObs().subscribe(resCb, (error: MicroClientLoadError) => {\n resCb();\n if (errorHandler) {\n errorHandler(error);\n }\n }, resCb);\n\n if (interval) {\n this.intervalId = setInterval(() => {\n if (!this.isRefreshing) {\n this.isRefreshing = true;\n this.initWithObs().subscribe(resCb, (error: MicroClientLoadError) => {\n resCb();\n if (errorHandler) {\n errorHandler(error);\n }\n }, resCb);\n }\n }, interval);\n }\n }\n\n stopRefresh() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n listenObs(): Observable<T> {\n //TODO handle listeners in case of intermidiate uninitialize (new valueSubj)\n if (this.valueSubj) {\n return this.valueSubj;\n } else {\n let valueSubj = new ReplaySubject<T>(1);\n this.valueSubj = valueSubj;\n return defer(() => {\n this.initWithObs(null, null).subscribe((value: T) => {\n if (this.valueSubj !== valueSubj) {\n valueSubj.next(value);\n valueSubj.complete();\n }\n });\n return valueSubj;\n });\n }\n }\n\n getObs(): Observable<T> {\n return this.listenObs().pipe(\n take(1)\n );\n }\n\n set(value: T): T {\n const oldValue = this.value;\n this.value = value;\n this.initialized = true;\n if (!this.valueSubj) {\n this.valueSubj = new ReplaySubject<T>(1);\n }\n this.valueSubj.next(value);\n this._getPromise = null;\n\n return oldValue;\n }\n\n isInitialized(): boolean {\n return this.initialized;\n }\n\n uninitialize() {\n this.value = null;\n this.initialized = false;\n this.valueSubj = null;\n this._getPromise = null;\n }\n\n copyUninitialized(): LinkField<T> {\n let copy = this.copy();\n copy.uninitialize();\n return copy;\n }\n\n getInitializedValue(): T {\n if (!this.isInitialized()) {\n throw new Error('Can\\'t get the intialized value for a LinkField that hasn\\'t been initialized');\n }\n return this.value;\n }\n\n initWith(parms: object = null, requestOptions: object = null, callback: (T) => void) {\n this.initWithObs(parms, requestOptions).subscribe(callback);\n }\n\n initWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n return this.callWithObs(params, requestOptions).pipe(\n map((value) => {\n this.set(<T>value);\n return value;\n })\n );\n }\n\n withCallParams(callParams: object, requestOptions: object = this.requestOptions): LinkField<T> {\n return new LinkField(this.link, this.microClient, this.value, this.initialized, callParams, requestOptions);\n }\n\n copy(withValue?: T): LinkField<T> {\n if (withValue === undefined) {\n return new LinkField(this.link, this.microClient, this.value, this.initialized, this.callParams, this.requestOptions);\n } else {\n return new LinkField(this.link, this.microClient, withValue, true, this.callParams, this.requestOptions);\n }\n }\n\n toJSON(): any {\n if (this.serializeTo) {\n return this.serializeTo(this.link, this.callParams, this.requestOptions, this.value, this.isInitialized());\n } else {\n return undefined;\n }\n }\n}\n\n","import {MicroClient} from './microclient.service';\nimport {LinkField} from './links/linkfield';\nimport {CallableLink, LinkSerializer} from './links/callablelink';\nimport {MicroError} from './error/microerror';\nimport * as _ from 'lodash';\n\nexport interface MicroObject {\n __meta: MicroObjectMetadata;\n}\n\nexport class MicroObject implements MicroObject {\n public static META_KEY = '__meta';\n\n __meta: MicroObjectMetadata = undefined;\n\n public static deepCopy<T extends object | object[]>(toCopy: T, client?: MicroClient): T {\n return <T>_.cloneDeepWith(toCopy, MicroObject.deepCopyCustomizer);\n }\n\n private static deepCopyCustomizer(value) {\n if (value instanceof MicroClient) {\n return value;\n }\n return undefined;\n }\n\n\n public static fromString<T extends object>(str: string, client: MicroClient, prototype: T = null): T | T[] {\n const obj = JSON.parse(str);\n return this.fromObject(obj, client, prototype);\n }\n\n public static fromObject<T extends object>(obj: any, client: MicroClient, prototype: T = null): T | T[] {\n if (obj === null) {\n return null;\n }\n\n if (Array.isArray(obj)) {\n const objArr: T[] = obj;\n for (let i = 0; i < objArr.length; i++) {\n const elem = objArr[i];\n if (typeof elem === 'object') {\n objArr[i] = <T>MicroObject.fromObject(elem, client, prototype);\n }\n }\n return objArr;\n } else {\n for (const field in obj) {\n if (field !== MicroObject.META_KEY && obj.hasOwnProperty(field)) {\n const fieldValue = obj[field];\n if (fieldValue) {\n if (fieldValue instanceof Object || Array.isArray(fieldValue)) {\n obj[field] = MicroObject.fromObject(fieldValue, client, prototype);\n }\n }\n }\n }\n\n const src = prototype == null ? MicroObject.prototype : prototype;\n const microObject: MicroObject = Object.assign(Object.create(src), obj);\n\n\n MicroObject.attachMetadataObject(microObject, client);\n\n return <T>microObject;\n }\n\n }\n\n private static attachMetadataObject(microObject: MicroObject, client: MicroClient) {\n const rawMeta: MicroObjectMetadata = microObject != null ? microObject[MicroObject.META_KEY] : null;\n if (rawMeta != null) {\n let clientToUse = client;\n if (rawMeta.permitToken) {\n if (client.getEntryPoint() != null) {\n clientToUse = client.createChildClientForEntryPoint(microObject);\n }\n }\n\n microObject.__meta = MicroObjectMetadata.fromObject(microObject.__meta, clientToUse);\n\n MicroObject.attachLinkFields(microObject.__meta, microObject, clientToUse);\n MicroObject.attachCallableLinks(microObject.__meta, microObject, clientToUse);\n\n } else {\n return null;\n }\n }\n\n private static attachLinkFields(meta: MicroObjectMetadata, microObject: MicroObject, client: MicroClient) {\n meta.forEachLink((linkName, linkUrl) => {\n const value = microObject[linkName];\n microObject[linkName] = new LinkField(linkUrl, client, value, value !== undefined);\n });\n }\n\n private static attachCallableLinks(meta: MicroObjectMetadata, microObject: MicroObject, client: MicroClient) {\n meta.forEachAction((linkName, linkUrl) => {\n microObject[linkName] = new CallableLink(linkUrl, client);\n });\n }\n}\n\nexport class MicroObjectMetadata {\n links: any;\n actions: any;\n permitToken: string;\n nextPage: LinkField<any>;\n error: MicroError;\n\n\n static fromObject(obj: object, client: MicroClient): MicroObjectMetadata {\n const objMetadata = Object.assign(new MicroObjectMetadata(), obj);\n\n if (objMetadata.nextPage != null) {\n objMetadata.nextPage = new LinkField(<any>objMetadata.nextPage, client);\n objMetadata.nextPage.serializeTo = LinkSerializer.AS_LINK;\n }\n\n return objMetadata;\n }\n\n public getLinkUrl(key: string): string {\n return this.links[key];\n }\n\n public hasLink(key: string): boolean {\n return this.links[key] != null;\n }\n\n public forEachLink(op: (linkName: string, link: string) => void) {\n for (const link in this.links) {\n if (this.links.hasOwnProperty(link)) {\n op(link, this.links[link]);\n }\n }\n }\n\n public forEachAction(op: (linkName: string, link: string) => void) {\n for (const link in this.actions) {\n if (this.actions.hasOwnProperty(link)) {\n op(link, this.actions[link]);\n }\n }\n }\n\n\n}\n","export class MicroError {\n timestamp: number;\n errorMessage: string;\n atService: string;\n atEndpoint: string;\n instanceID: string;\n httpEquivCode: number;\n cause: MicroError;\n errorID: string;\n errorType: Array<String>;\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from '@angular/common/http';\nimport {MicroObject} from './microobject';\nimport {Observable, ReplaySubject, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, map, take, shareReplay} from 'rxjs/operators';\nimport {ParamUtils} from './paramutils';\nimport {MicroError} from './error/microerror';\n\n@Injectable()\nexport class MicroClient {\n\n private authHeader: string;\n private permitToken: string;\n private entryPoint: MicroObject;\n\n private entryPointSubject: ReplaySubject<MicroObject> = new ReplaySubject<MicroObject>();\n\n private urlRewriter: (string) => string;\n private defaultErrorHandler: (httpError: HttpErrorResponse, microError: MicroObject) => void;\n public usePost = true;\n public sendAsPermitTokenHeader = true;\n public sendAsMultipartFormData = false;\n\n constructor(private httpClient: HttpClient) {\n\n }\n\n public setSendAsPermitTokenHeader(sendAsPermitTokenHeader: boolean) {\n this.sendAsPermitTokenHeader = sendAsPermitTokenHeader;\n }\n\n public setAuthToken(token: string) {\n this.authHeader = 'Bearer ' + token;\n this.permitToken = token;\n }\n\n public setAuthHeader(authHeader: string) {\n this.authHeader = authHeader;\n }\n\n public getEntryPoint(): any {\n return this.entryPoint;\n }\n\n public waitForEntryPoint(cb?: (entryPoint: any) => void): Promise<any> {\n if (cb != null) {\n this.entryPointSubject.subscribe(cb);\n return null;\n }\n return this.entryPointSubject.toPromise();\n }\n\n public copyAuthAndEntrypointOf(other: MicroClient) {\n this.authHeader = other.authHeader;\n this.permitToken = other.permitToken;\n this.entryPoint = other.entryPoint;\n }\n\n public setEntryPoint<T extends MicroObject>(entryPoint: any) {\n if (entryPoint == null) {\n this.authHeader = null;\n this.entryPoint = null;\n this.permitToken = null;\n } else {\n this.entryPoint = entryPoint;\n if (this.entryPoint.__meta && this.entryPoint.__meta.permitToken) {\n this.setAuthToken(this.entryPoint.__meta.permitToken);\n } else {\n throw Error('Expected the entryPoint to contain a \"permitToken\" within the \"__meta\" field');\n }\n this.entryPointSubject.next(entryPoint);\n }\n }\n\n public setDefaultErrorHandler(handler: (httpError: HttpErrorResponse, microError: MicroObject) => void) {\n this.defaultErrorHandler = handler;\n }\n\n public handleError(httpErr: HttpErrorResponse) {\n if (this.defaultErrorHandler) {\n const microError = MicroClient.toMicroError(httpErr);\n if (microError) {\n const microResultObj: MicroObject = <MicroObject>MicroObject.fromObject(httpErr.error, this);\n this.defaultErrorHandler(httpErr, microResultObj);\n } else {\n this.defaultErrorHandler(httpErr, null);\n }\n }\n }\n\n public ignite<T>(\n url: string,\n username: String = null,\n password: String = null,\n headers: object = {}\n ): Observable<T> {\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n let requestHeaders = new HttpHeaders();\n for (const headerKey in headers) {\n if (headers.hasOwnProperty(headerKey)) {\n requestHeaders = requestHeaders.set(headerKey, headers[headerKey]);\n }\n }\n\n if (username != null || password != null) {\n requestHeaders = requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n return this.httpClient.get(url, {\n headers: requestHeaders\n }).pipe(\n map(val => {\n const entryPoint = MicroObject.fromObject(val, this);\n this.setEntryPoint(entryPoint);\n return entryPoint as T;\n }),\n this.catchAndHandleError()\n );\n }\n\n public load<T>(\n url: string,\n params?: object,\n requestOptions?: object\n ): Observable<T> {\n let requestHeaders = new HttpHeaders();\n if (this.authHeader) {\n requestHeaders = requestHeaders.set('Authorization', this.authHeader);\n\n if (this.sendAsPermitTokenHeader) {\n requestHeaders = requestHeaders.set('MicroPermitToken', this.permitToken);\n }\n }\n\n let oParams = params;\n if (params != null || this.usePost) {\n const existingParamsStr = ParamUtils.getParam(url, 'oParams', true);\n let existingParams;\n if (existingParamsStr) {\n existingParams = JSON.parse(existingParamsStr);\n } else {\n existingParams = {};\n }\n oParams = Object.assign(existingParams, params);\n }\n\n let options = requestOptions;\n if (requestOptions != null || this.usePost) {\n const prevOptionsStr = ParamUtils.getParam(url, 'options', true);\n if (prevOptionsStr) {\n options = JSON.parse(prevOptionsStr);\n } else {\n options = {};\n }\n\n options = Object.assign(options, requestOptions);\n }\n\n const queryParams = ParamUtils.getParams(url);\n\n let httpObs = null;\n if (this.usePost) {\n\n let bOParams;\n const encBOParams = queryParams['bOParams'];\n if (encBOParams) {\n bOParams = JSON.parse(ParamUtils.base64UrlDecode(encBOParams));\n }\n const body = {\n params: queryParams['params'],\n oParams: oParams,\n bParams: queryParams['bParams'],\n bOParams: bOParams,\n options: options,\n };\n\n delete queryParams['params'];\n delete queryParams['oParams'];\n delete queryParams['bParams'];\n delete queryParams['bOParams'];\n delete queryParams['options'];\n\n url = ParamUtils.setParams(url, queryParams);\n\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n httpObs = this.httpClient.post(url, this.encodeBody(body), {\n headers: requestHeaders\n });\n } else {\n if (oParams) {\n queryParams['oParams'] = ParamUtils.base64UrlEncode(JSON.stringify(oParams));\n }\n\n if (options) {\n queryParams['options'] = ParamUtils.base64UrlEncode(JSON.stringify(options));\n }\n url = ParamUtils.setParams(url, queryParams);\n\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n httpObs = this.httpClient.get(url, {\n headers: requestHeaders\n });\n }\n\n httpObs = httpObs.pipe(\n map(val => {\n return MicroObject.fromObject(val, this);\n }),\n this.catchAndHandleError()\n );\n\n return httpObs;\n }\n\n private encodeBody(body: any): any {\n if (this.sendAsMultipartFormData) {\n let formData = new FormData();\n let paramBlob = new Blob([JSON.stringify(body)], {type: \"application/json\"})\n formData.append('*', paramBlob);\n return formData;\n } else {\n return body;\n }\n }\n\n private catchAndHandleError<T>(): ((source: Observable<T>) => Observable<T>) {\n return (source: Observable<T>) => {\n return source.pipe(\n catchError(err => {\n let loadError = new MicroClientLoadError(err, (errToHandle) => {\n this.handleError(errToHandle);\n });\n return throwError(loadError).pipe(\n finalize(() => {\n if (!loadError.shouldPreventDefault()) {\n loadError.handleDefault();\n }\n })\n );\n })\n );\n };\n }\n\n public createChildClientForEntryPoint(entryPoint: MicroObject): MicroClient {\n if (entryPoint.__meta && entryPoint.__meta.permitToken) {\n const childClient: MicroClient = Object.create(this, {\n entryPoint: {\n configurable: true,\n enumerable: true,\n writable: true\n },\n authHeader: {\n configurable: true,\n enumerable: true,\n writable: true\n },\n permitToken: {\n configurable: true,\n enumerable: true,\n writable: true\n }\n });\n childClient.setEntryPoint(entryPoint);\n return childClient;\n } else {\n throw new Error('The supplied value can\\'t be used to construct a child MicroClient because it doesn\\'t contain metadata with a permitToken ');\n }\n }\n\n public setURLRewriter(rewriter: (string) => string) {\n this.urlRewriter = rewriter;\n }\n\n public static toMicroError(httpResponse: HttpErrorResponse): MicroError {\n const res = httpResponse.error;\n if (res && res.__meta && res.__meta.error) {\n return Object.assign(new MicroError(), res.__meta.error);\n }\n return null;\n }\n\n private static staticContentRegExp = new RegExp('[a-zA-Z0-9]://.*(:[0-9]+)?(/.*)*/static(/.*(\\\\?.*)?(#.*)?)?');\n\n public static guessMicroComponentBaseURL(): string {\n const href = window.location.href;\n\n // Last URL-Segement is static\n if (MicroClient.staticContentRegExp.test(href)) {\n return href.replace(new RegExp('/static/.*'), '')\n .replace(new RegExp('/#/.*'), '');\n } else {\n if (window.location.protocol.startsWith('file')) {\n return 'http://localhost:8080';\n } else {\n return window.location.protocol + '//' + window.location.hostname + ':8080';\n }\n }\n }\n\n public static guessMicroComponentAuthorizeURL(): string {\n return this.guessMicroComponentBaseURL() + '/authorize';\n }\n}\n\nexport class MicroClientLoadError {\n private handled = false;\n private doPreventDefault = false;\n\n constructor(private error: any, private defaultHandler: (err: any) => void) {\n\n }\n\n public handleDefault() {\n if (this.defaultHandler) {\n this.defaultHandler(this.error);\n this.handled = true;\n }\n }\n\n public handleError(handler: (error: any) => void) {\n handler(this.error);\n this.handled = true;\n }\n\n public isHandled(): boolean {\n return this.handled;\n }\n\n public shouldPreventDefault(): boolean {\n return this.doPreventDefault;\n }\n\n public preventDefault(): void {\n this.doPreventDefault = true;\n }\n\n public hasDefaultHandler(): boolean {\n return this.defaultHandler != null;\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mc-loadingindicator',\n template: `\n <div id=\"container\">\n <div id=\"bar\"></div>\n </div>\n `,\n styles: [`\n #container {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 5px;\n -webkit-transform: translate(0, 0) scale(1, 1);\n transform: translate(0, 0) scale(1, 1);\n background-color: #aad1f9;\n }\n #container #bar {\n transition: all .2s linear;\n -webkit-animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);\n animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);\n transition: -webkit-transform .2s linear;\n transition: transform .2s linear;\n background-color: #106cc8;\n width: 100%;\n height: 5px;\n }\n @keyframes query {\n 0% {\n opacity: 1;\n transform: translateX(35%) scale(0.3, 1);\n }\n 100% {\n opacity: 0;\n transform: translateX(-50%) scale(0, 1);\n }\n }\n `]\n})\nexport class MicroClientLoadingIndicatorComponent { }\n","import {LinkField} from '../links/linkfield';\nimport {PipeTransform, Pipe, OnDestroy, ChangeDetectorRef} from '@angular/core';\nimport {MicroObject} from '../microobject';\nimport {AsyncPipe} from '@angular/common';\n\n@Pipe({name: 'linkField', pure: false})\nexport class LinkFieldPipe implements OnDestroy, PipeTransform {\n\n private asyncPipe: AsyncPipe;\n\n constructor(changeDetectorRef: ChangeDetectorRef) {\n this.asyncPipe = new AsyncPipe(changeDetectorRef);\n }\n\n ngOnDestroy(): void {\n this.asyncPipe.ngOnDestroy();\n }\n\n transform<T extends (object | object[])>(linkField: LinkField<T>): any {\n if (linkField == null) {\n return null;\n }\n if (linkField instanceof LinkField) {\n return this.asyncPipe.transform(linkField.getObs());\n } else {\n // return linkField;\n throw new Error('Can\\'t use the linkField pipe with a value which isn\\'t an instance of LinkField');\n }\n }\n\n}\n","import {Component, Input} from '@angular/core';\nimport {MicroClientLoadError} from '../microclient.service';\n\n@Component({\n selector: 'mc-errorindicator',\n template: `\n <div class=\"blinking-error\" [class.clickable]=\"error.hasDefaultHandler()\" (click)=\"onClick()\"></div>\n `,\n styles: [`\n .blinking-error {\n background-image: linear-gradient(to right, tomato 0%, darkred 50%, tomato 100%);\n animation: blinkingText 0.5s 1;\n height: 5px;\n }\n\n .blinking-error.clickable {\n cursor: pointer;\n }\n\n @keyframes blinkingText {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n `]\n})\nexport class MicroClientErrorIndicatorComponent {\n @Input()\n error: MicroClientLoadError;\n\n onClick() {\n this.error.handleDefault();\n }\n}\n","import {\n Directive,\n Input,\n TemplateRef,\n ViewContainerRef,\n ComponentFactoryResolver,\n ComponentFactory,\n DoCheck,\n OnDestroy, ChangeDetectorRef, Output, EventEmitter, OnChanges, SimpleChanges\n} from '@angular/core';\nimport {LinkField} from '../links/linkfield';\nimport {MicroObject} from '../microobject';\nimport {Observable, Subscription} from 'rxjs';\nimport {MicroClientLoadingIndicatorComponent} from '../components/loadingindicator.component';\nimport {MicroClientErrorIndicatorComponent} from '../components/errorindicator.component';\nimport {finalize} from 'rxjs/operators';\nimport {MicroClientLoadError} from '../microclient.service';\n\n@Directive({\n selector: '[linkField][linkFieldFrom]'\n})\nexport class LinkFieldDirective<T> implements DoCheck, OnDestroy, OnChanges {\n private _from: LinkField<T> | T;\n private _loadingTemplate: TemplateRef<any>;\n private _errorTemplate: TemplateRef<any>;\n private _defaultLoadingComponent: ComponentFactory<MicroClientLoadingIndicatorComponent>;\n private _defaultErrorComponent: ComponentFactory<MicroClientErrorIndicatorComponent>;\n\n private isDirty = true;\n private isLoading = false;\n private loadedResult: T = null;\n private hasResult = false;\n\n private lastObs: Observable<T>;\n private subscription: Subscription = null;\n\n private currentContext: LinkFieldContext<T>;\n\n constructor(\n private _viewContainer: ViewContainerRef,\n private _template: TemplateRef<LinkFieldContext<T>>,\n private componentResolver: ComponentFactoryResolver,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);\n this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);\n }\n\n @Input()\n set linkFieldFrom(from: LinkField<T> | T) {\n this._from = from;\n }\n\n @Input()\n set linkFieldLoadingTemplate(loadingTemplate: TemplateRef<any>) {\n if (loadingTemplate) {\n this._loadingTemplate = loadingTemplate;\n }\n this.updateIfDirty(true);\n }\n\n @Input()\n set linkFieldErrorTemplate(errorTemplate: TemplateRef<any>) {\n if (errorTemplate) {\n this._errorTemplate = errorTemplate;\n }\n this.updateIfDirty(true);\n }\n\n @Input()\n set linkFieldTemplate(value: TemplateRef<LinkFieldContext<T>>) {\n if (value) {\n this._template = value;\n }\n }\n\n @Input()\n linkFieldDefaultErrorHandling = false;\n\n @Input()\n linkFieldValueChange: (T) => void;\n\n @Input()\n linkFieldParams: object = null;\n\n private load() {\n if (this._from) {\n if (this._from instanceof LinkField) {\n this.setLoading(true);\n this.lastObs = this._from.listenObs();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n this.subscription = this.lastObs.pipe(\n finalize(() => {\n this.setLoading(false);\n })\n ).subscribe((loadedResult: T) => {\n this.setLoadedResult(loadedResult);\n if (this.linkFieldValueChange) {\n this.linkFieldValueChange(loadedResult);\n }\n }, (loadError: MicroClientLoadError) => {\n if (!this.linkFieldDefaultErrorHandling) {\n loadError.preventDefault();\n }\n this.setError(loadError);\n });\n } else {\n this.setLoadedResult(this._from);\n // this.setLoadedResult(this._from);\n // throw new Error('Can\\'t use the linkField directive with a from value which isn\\'t an instance of LinkField');\n }\n }\n }\n\n\n ngDoCheck() {\n this.updateIfDirty();\n }\n\n ngOnDestroy() {\n this.clear();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.linkFieldFrom) {\n if (!(this._from instanceof LinkField)) {\n this._from = LinkField.from(this._from as any);\n }\n if (changes.linkFieldFrom.previousValue !== changes.linkFieldFrom.currentValue) {\n this.clear();\n this.load();\n }\n }\n\n if (changes.linkFieldParams && this.linkFieldParams) {\n let link = this._from as LinkField<T>;\n this._from = link.withCallParams(this.linkFieldParams);\n }\n }\n\n private setError(error: MicroClientLoadError) {\n this._viewContainer.remove();\n if (this._errorTemplate) {\n this._viewContainer.createEmbeddedView(this._errorTemplate, {\n $implicit: error\n });\n } else {\n let errorComponentInstance = this._viewContainer.createComponent(this._defaultErrorComponent);\n errorComponentInstance.instance['error'] = error;\n }\n }\n\n\n private setLoading(loading: boolean) {\n this.isLoading = loading;\n if (this.isLoading) {\n if (this._loadingTemplate) {\n this._viewContainer.remove();\n this._viewContainer.createEmbeddedView(this._loadingTemplate);\n } else {\n this._viewContainer.remove();\n this._viewContainer.createComponent(this._defaultLoadingComponent);\n }\n }\n }\n\n private setLoadedResult(result: T) {\n this.hasResult = true;\n this.loadedResult = result;\n if (this.currentContext == null) {\n this.currentContext = new LinkFieldContext<T>(result);\n this.isDirty = true;\n } else {\n this.currentContext.$implicit = result;\n this.changeDetectorRef.markForCheck();\n }\n if (!this._viewContainer || !this._template) {\n this.isDirty = true;\n } else {\n if (this.isDirty) {\n this._viewContainer.remove();\n this._viewContainer.createEmbeddedView(this._template, this.currentContext);\n this.isDirty = false;\n }\n }\n }\n\n private updateIfDirty(ignoreDirty: boolean = false) {\n if ((this.isDirty || ignoreDirty) && this._loadingTemplate && this._from && this._template && this._viewContainer) {\n if (this.hasResult) {\n this.setLoadedResult(this.loadedResult);\n }\n this.isDirty = false;\n }\n }\n\n private clear() {\n this.hasResult = false;\n this.loadedResult = null;\n this.isDirty = false;\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n this.lastObs = null;\n this.currentContext = null;\n }\n}\n\nexport class LinkFieldContext<T> {\n\n constructor(public $implicit: T) {\n }\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive, ElementRef, EmbeddedViewRef,\n EventEmitter, HostListener,\n Input, OnDestroy, OnInit,\n Output, Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {MicroObject} from '../microobject';\nimport {CallableLink} from '../links/callablelink';\nimport {MicroError} from '../error/microerror';\n\n@Directive({\n selector: '[callLink]'\n})\nexport class CallLinkDirective {\n @Input()\n callLink: CallableLink<MicroObject | MicroObject[]>;\n\n @Output()\n callStatusChange: EventEmitter<CallStatus> = new EventEmitter();\n\n @Output()\n callSucess: EventEmitter<MicroObject | MicroObject[]> = new EventEmitter();\n\n @Output()\n callFinish: EventEmitter<void> = new EventEmitter();\n\n @Output()\n callError: EventEmitter<MicroError> = new EventEmitter();\n\n @Output()\n callStart: EventEmitter<void> = new EventEmitter();\n\n @Input()\n callOptions: object;\n\n @Input()\n callParameters: object;\n\n @HostListener('click')\n onClick() {\n this.callLink.callWithObs(this.callParameters, this.callOptions).subscribe((response) => {\n this.callSucess.emit(response);\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.SUCCESS, response, null));\n }, (error) => {\n this.callError.emit(error);\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.ERROR, null, error));\n }, () => {\n this.callFinish.emit();\n });\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.CALLING, null, null));\n }\n}\n\nexport class CallStatus {\n constructor(\n public link: CallableLink<MicroObject | MicroObject[]>,\n public state: CallState,\n public response: MicroObject | MicroObject[],\n public error: MicroError\n ) {\n }\n}\n\nexport enum CallState {\n CALLING,\n SUCCESS,\n ERROR\n}\n","import {Directive, forwardRef, Input} from '@angular/core';\nimport {\n AbstractControl,\n FormGroup,\n NG_ASYNC_VALIDATORS,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport {Observable, timer} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\nimport {CallableLink} from '../links/callablelink';\n\n@Directive({\n selector: '[microLinkValidate]',\n providers: [\n {\n provide: NG_ASYNC_VALIDATORS,\n useExisting: forwardRef(() => MicroLinkValidateDirective),\n multi: true\n }\n ],\n exportAs: 'microValidator'\n})\nexport class MicroLinkValidateDirective implements Validator {\n\n private UNSET = \"\"\n\n @Input()\n microLinkValidate: CallableLink<any>\n\n @Input()\n microLinkValidateField: string = null\n\n @Input()\n microLinkValidateValue: any = this.UNSET\n\n @Input()\n microLinkValidateDebounce = 500;\n\n public result:any;\n\n\n validate(control: AbstractControl): Observable<ValidationErrors | null> {\n return timer(this.microLinkValidateDebounce).pipe(\n switchMap(() => {\n let validateValue = this.microLinkValidateValue\n if (validateValue === this.UNSET) {\n validateValue = control.value\n }\n\n let obj = {}\n if (this.microLinkValidateField) {\n obj[this.microLinkValidateField] = validateValue\n } else {\n obj = validateValue\n }\n\n return this.microLinkValidate.callWithObs(obj, null).pipe(\n map(validationRes => {\n let hasErrors = false\n if (this.microLinkValidateField) {\n if (validationRes[this.microLinkValidateField] != null) {\n hasErrors = true\n }\n } else {\n for (let key in validationRes) {\n if (validationRes[key] != null) {\n hasErrors = true\n }\n }\n }\n if (hasErrors) {\n this.result = validationRes\n return {\n validateMicroLink: this.result\n }\n\n } else {\n this.result = null\n return null\n }\n })\n )\n })\n )\n }\n\n getControlName(control: AbstractControl) {\n let controlName = null;\n let parent = control.parent;\n\n // only such parent, which is FormGroup, has a dictionary\n // with control-names as a key and a form-control as a value\n if (parent instanceof FormGroup) {\n // now we will iterate those keys (i.e. names of controls)\n Object.keys(parent.controls).forEach((name) => {\n // and compare the passed control and\n // a child control of a parent - with provided name (we iterate them all)\n if (control === parent.controls[name]) {\n // both are same: control passed to Validator\n // and this child - are the same references\n controlName = name;\n }\n });\n }\n // we either found a name or simply return null\n return controlName;\n }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {MicroClientLoadingIndicatorComponent} from './components/loadingindicator.component';\nimport {LinkFieldPipe} from './pipes/linkfield.pipe';\nimport {LinkFieldDirective} from './directives/linkfield.directive';\nimport {MicroClient} from './microclient.service';\nimport {HttpClientModule} from '@angular/common/http';\nimport {CallLinkDirective} from './directives/call-link.directive';\nimport {MicroClientErrorIndicatorComponent} from './components/errorindicator.component';\nimport {MicroLinkValidateDirective} from './directives/micro-link-validate.directive';\n\n@NgModule({\n entryComponents: [\n MicroClientLoadingIndicatorComponent,\n MicroClientErrorIndicatorComponent\n ],\n imports: [\n HttpClientModule\n ],\n declarations: [\n LinkFieldPipe,\n LinkFieldDirective,\n CallLinkDirective,\n MicroClientLoadingIndicatorComponent,\n MicroClientErrorIndicatorComponent,\n MicroLinkValidateDirective\n ],\n exports: [\n LinkFieldPipe,\n LinkFieldDirective,\n CallLinkDirective,\n MicroClientErrorIndicatorComponent,\n MicroClientLoadingIndicatorComponent,\n MicroLinkValidateDirective\n ]\n})\nexport class MicroClientModule {\n static forClientRoot(): ModuleWithProviders<MicroClientModule> {\n return {\n ngModule: MicroClientModule,\n providers: [\n MicroClient\n ]\n };\n }\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {Observable, Subscription} from 'rxjs';\nimport {LinkField} from './links/linkfield';\nimport {MicroObject} from './microobject';\n\nexport class LinkFieldPagingSupport {\n\n constructor(\n private pageLink: LinkField<MicroObject[]>,\n private changeDetectorRef: ChangeDetectorRef,\n public pageLimit: number = 200\n ) {\n }\n\n private sorts: SortInfo[] = null;\n\n public isLoading = false;\n private loadedCompletely = false;\n private hasLoaded = false;\n private _rows: any[] = null;\n private loadingSubscription: Subscription = null;\n\n public rowsChangeCallback: (rows: any[]) => void;\n public isLoadingCallback: (isLoading: boolean) => void;\n\n get rows(): any[] {\n if (!this.hasLoaded) {\n this.loadNextPage();\n }\n return this._rows;\n }\n\n public static from(\n pageLink: LinkField<MicroObject[]>,\n changeDetectorRef: ChangeDetectorRef,\n pageLimit: number = 200\n ): LinkFieldPagingSupport {\n return new LinkFieldPagingSupport(pageLink, changeDetectorRef, pageLimit);\n }\n\n public applySort(sorts: SortInfo[], externalSorting = true) {\n this.hasLoaded = false;\n this.sorts = null;\n this._rows = null;\n\n if (externalSorting) {\n this.sorts = sorts;\n this.loadNextPage();\n } else {\n if (!this.loadedCompletely) {\n this.loadNextPage(null);\n } else {\n this.changeDetectorRef.detectChanges();\n }\n }\n\n }\n\n private loadingCallback = () => {\n this.setLoading(false);\n };\n\n public loadNextPage(pageSize: number = this.pageLimit, resultCallback: ((page: any[], all: any[]) => void) = null) {\n if (this.pageLink && !this.isLoading) {\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n this.loadingSubscription = null;\n }\n\n this.hasLoaded = true;\n this.loadedCompletely = false;\n if (this._rows == null) {\n this.setLoading(true);\n\n const reqOptions: any = {};\n if (this.sorts != null) {\n reqOptions.sorting = this.sorts;\n }\n if (pageSize != null) {\n reqOptions.pageSize = pageSize;\n }\n\n\n this.loadingSubscription = this.pageLink.initWithObs(null, reqOptions).subscribe((firstPage) => {\n this.setRows(firstPage, resultCallback);\n }, this.loadingCallback, this.loadingCallback);\n } else {\n const lastRow = this.lastRow();\n if (lastRow) {\n if (lastRow.__meta.nextPage) {\n let reqOptions = null;\n if (pageSize != null) {\n reqOptions = {\n pageSize: pageSize\n };\n }\n\n const nextPageObs: Observable<MicroObject[]> = lastRow.__meta.nextPage.initWithObs(null, reqOptions);\n if (nextPageObs) {\n this.setLoading(true);\n this.loadingSubscription = nextPageObs.subscribe((nextPage) => {\n this.setRows(nextPage, resultCallback);\n }, this.loadingCallback, this.loadingCallback);\n }\n }\n }\n }\n } else if (!this.pageLink) {\n this.clearRows();\n }\n }\n\n public loadEverything() {\n this.loadNextPage(null);\n }\n\n private lastRow(): MicroObject {\n return this._rows[this._rows.length - 1];\n }\n\n private setRows(additionalPage: any[], loadCallback: ((page: any[], all: any[]) => void)) {\n if (this._rows) {\n this._rows = [...this.rows, ...additionalPage];\n } else {\n this._rows = additionalPage;\n }\n if (loadCallback) {\n loadCallback(additionalPage, this._rows);\n }\n this.reflectChanges();\n }\n\n private clearRows() {\n if (this._rows != null) {\n this._rows = null;\n this.reflectChanges();\n }\n }\n\n private reflectChanges() {\n const lastRow = this.lastRow();\n if (lastRow && lastRow.__meta) {\n this.loadedCompletely = lastRow.__meta.nextPage == null;\n } else {\n this.loadedCompletely = false;\n }\n\n if (this.rowsChangeCallback) {\n this.rowsChangeCallback(this._rows);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n private setLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n if (this.isLoadingCallback) {\n this.isLoadingCallback(this.isLoading);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n public dispose() {\n this.rowsChangeCallback = null;\n this.isLoadingCallback = null;\n }\n\n public setPageLink(pageLink: LinkField<MicroObject[]>) {\n this.clearState();\n this.pageLink = pageLink;\n this.loadNextPage();\n }\n\n public hasLoadedCompletely(): boolean {\n return this.loadedCompletely;\n }\n\n public init(rowsChangeCallback: (rows: any[]) => void, isLoadingCallback: ((isLoading: boolean) => void) = null) {\n this.rowsChangeCallback = rowsChangeCallback;\n this.isLoadingCallback = isLoadingCallback;\n }\n\n private clearState() {\n this.isLoading = false;\n this.loadedCompletely = false;\n this.hasLoaded = false;\n this._rows = null;\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n this.loadingSubscription = null;\n }\n }\n}\n\nexport class SortInfo {\n constructor(public field: string, public dir: string) {\n this.dir = dir.toUpperCase();\n if (!(this.dir === 'ASC' || this.dir === 'DESC')) {\n throw Error('dir can only be \\'ASC\\' or \\'DESC\\'');\n }\n }\n}\n","import {LinkField} from './linkfield';\nimport {Observable, of} from 'rxjs';\nimport {delay} from 'rxjs/operators';\n\nexport class MockLinkField<T extends (object | object[])> extends LinkField<T> {\n constructor(private valueToLoad: any, private delay: number) {\n super(null, null);\n }\n\n callWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n return of(this.valueToLoad).pipe(\n delay(this.delay)\n );\n }\n}"]}
|
|
@@ -360,4 +360,4 @@ if (false) {
|
|
|
360
360
|
/** @type {?} */
|
|
361
361
|
LinkFieldContext.prototype.$implicit;
|
|
362
362
|
}
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBR2IsaUJBQWlCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc3QyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNeEMsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7OztJQWlCM0IsWUFDWSxjQUFnQyxFQUNoQyxTQUEyQyxFQUMzQyxpQkFBMkMsRUFDM0MsaUJBQW9DO1FBSHBDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFkeEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBTSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixpQkFBWSxHQUFpQixJQUFJLENBQUM7UUEyQzFDLGtDQUE2QixHQUFHLEtBQUssQ0FBQztRQU10QyxvQkFBZSxHQUFXLElBQUksQ0FBQztRQXZDM0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLG9DQUFv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QzNCLDRDQUF3Qzs7Ozs7SUFDeEMsdUNBQW1EOzs7OztJQUNuRCwrQ0FBbUQ7Ozs7O0lBQ25ELCtDQUE0Qzs7Ozs7QUEwS3BELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFFekIsWUFBbUIsU0FBWTtRQUFaLGNBQVMsR0FBVCxTQUFTLENBQUc7SUFDL0IsQ0FBQztDQUNKOzs7SUFGZSxxQ0FBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGlua0ZpZWxkfSBmcm9tICcuLi9saW5rcy9saW5rZmllbGQnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi4vbWljcm9vYmplY3QnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvbG9hZGluZ2luZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2Vycm9yaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge2ZpbmFsaXplfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01pY3JvQ2xpZW50TG9hZEVycm9yfSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGlua0ZpZWxkXVtsaW5rRmllbGRGcm9tXSdcbn0pXG5leHBvcnQgY2xhc3MgTGlua0ZpZWxkRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgX2Zyb206IExpbmtGaWVsZDxUPiB8IFQ7XG4gICAgcHJpdmF0ZSBfbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHByaXZhdGUgX2Vycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJpdmF0ZSBfZGVmYXVsdExvYWRpbmdDb21wb25lbnQ6IENvbXBvbmVudEZhY3Rvcnk8TWljcm9DbGllbnRMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9kZWZhdWx0RXJyb3JDb21wb25lbnQ6IENvbXBvbmVudEZhY3Rvcnk8TWljcm9DbGllbnRFcnJvckluZGljYXRvckNvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIGlzRGlydHkgPSB0cnVlO1xuICAgIHByaXZhdGUgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsb2FkZWRSZXN1bHQ6IFQgPSBudWxsO1xuICAgIHByaXZhdGUgaGFzUmVzdWx0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGxhc3RPYnM6IE9ic2VydmFibGU8VD47XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgICBwcml2YXRlIGN1cnJlbnRDb250ZXh0OiBMaW5rRmllbGRDb250ZXh0PFQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxMaW5rRmllbGRDb250ZXh0PFQ+PixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0TG9hZGluZ0NvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50TG9hZGluZ0luZGljYXRvckNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRFcnJvckNvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50RXJyb3JJbmRpY2F0b3JDb21wb25lbnQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpbmtGaWVsZEZyb20oZnJvbTogTGlua0ZpZWxkPFQ+IHwgVCkge1xuICAgICAgICB0aGlzLl9mcm9tID0gZnJvbTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRMb2FkaW5nVGVtcGxhdGUobG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChsb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSA9IGxvYWRpbmdUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkRXJyb3JUZW1wbGF0ZShlcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChlcnJvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvclRlbXBsYXRlID0gZXJyb3JUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPExpbmtGaWVsZENvbnRleHQ8VD4+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkRGVmYXVsdEVycm9ySGFuZGxpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkVmFsdWVDaGFuZ2U6IChUKSA9PiB2b2lkO1xuXG4gICAgQElucHV0KClcbiAgICBsaW5rRmllbGRQYXJhbXM6IG9iamVjdCA9IG51bGw7XG5cblxuICAgIHByaXZhdGUgbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Zyb20pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9mcm9tIGluc3RhbmNlb2YgTGlua0ZpZWxkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdE9icyA9IHRoaXMuX2Zyb20ubGlzdGVuT2JzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5sYXN0T2JzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoKGxvYWRlZFJlc3VsdDogVCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdChsb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5rRmllbGRWYWx1ZUNoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5rRmllbGRWYWx1ZUNoYW5nZShsb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgKGxvYWRFcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxpbmtGaWVsZERlZmF1bHRFcnJvckhhbmRsaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkRXJyb3IucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEVycm9yKGxvYWRFcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGVkUmVzdWx0KHRoaXMuX2Zyb20pO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0TG9hZGVkUmVzdWx0KHRoaXMuX2Zyb20pO1xuICAgICAgICAgICAgICAgIC8vIHRocm93IG5ldyBFcnJvcignQ2FuXFwndCB1c2UgdGhlIGxpbmtGaWVsZCBkaXJlY3RpdmUgd2l0aCBhIGZyb20gdmFsdWUgd2hpY2ggaXNuXFwndCBhbiBpbnN0YW5jZSBvZiBMaW5rRmllbGQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubGlua0ZpZWxkRnJvbSkge1xuICAgICAgICAgICAgaWYgKCEodGhpcy5fZnJvbSBpbnN0YW5jZW9mIExpbmtGaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mcm9tID0gTGlua0ZpZWxkLmZyb20odGhpcy5fZnJvbSBhcyBhbnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNoYW5nZXMubGlua0ZpZWxkRnJvbS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2VzLmxpbmtGaWVsZEZyb20uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubGlua0ZpZWxkUGFyYW1zICYmIHRoaXMubGlua0ZpZWxkUGFyYW1zKSB7XG4gICAgICAgICAgICBsZXQgbGluayA9IHRoaXMuX2Zyb20gYXMgTGlua0ZpZWxkPFQ+O1xuICAgICAgICAgICAgdGhpcy5fZnJvbSA9IGxpbmsud2l0aENhbGxQYXJhbXModGhpcy5saW5rRmllbGRQYXJhbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRFcnJvcihlcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpIHtcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2Vycm9yVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vycm9yVGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGVycm9yXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBlcnJvckNvbXBvbmVudEluc3RhbmNlID0gdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5fZGVmYXVsdEVycm9yQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGVycm9yQ29tcG9uZW50SW5zdGFuY2UuaW5zdGFuY2VbJ2Vycm9yJ10gPSBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5fZGVmYXVsdExvYWRpbmdDb21wb25lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkZWRSZXN1bHQocmVzdWx0OiBUKSB7XG4gICAgICAgIHRoaXMuaGFzUmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkZWRSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDb250ZXh0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENvbnRleHQgPSBuZXcgTGlua0ZpZWxkQ29udGV4dDxUPihyZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENvbnRleHQuJGltcGxpY2l0ID0gcmVzdWx0O1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX3ZpZXdDb250YWluZXIgfHwgIXRoaXMuX3RlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNEaXJ0eSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGUsIHRoaXMuY3VycmVudENvbnRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJZkRpcnR5KGlnbm9yZURpcnR5OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCh0aGlzLmlzRGlydHkgfHwgaWdub3JlRGlydHkpICYmIHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSAmJiB0aGlzLl9mcm9tICYmIHRoaXMuX3RlbXBsYXRlICYmIHRoaXMuX3ZpZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc1Jlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGVkUmVzdWx0KHRoaXMubG9hZGVkUmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5oYXNSZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZWRSZXN1bHQgPSBudWxsO1xuICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdE9icyA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudENvbnRleHQgPSBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZENvbnRleHQ8VD4ge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljICRpbXBsaWNpdDogVCkge1xuICAgIH1cbn1cbiJdfQ==
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBR2IsaUJBQWlCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc3QyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNeEMsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7OztJQWlCM0IsWUFDWSxjQUFnQyxFQUNoQyxTQUEyQyxFQUMzQyxpQkFBMkMsRUFDM0MsaUJBQW9DO1FBSHBDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFkeEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBTSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixpQkFBWSxHQUFpQixJQUFJLENBQUM7UUEyQzFDLGtDQUE2QixHQUFHLEtBQUssQ0FBQztRQU10QyxvQkFBZSxHQUFXLElBQUksQ0FBQztRQXZDM0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLG9DQUFv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QzNCLDRDQUF3Qzs7Ozs7SUFDeEMsdUNBQW1EOzs7OztJQUNuRCwrQ0FBbUQ7Ozs7O0lBQ25ELCtDQUE0Qzs7Ozs7QUF5S3BELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFFekIsWUFBbUIsU0FBWTtRQUFaLGNBQVMsR0FBVCxTQUFTLENBQUc7SUFDL0IsQ0FBQztDQUNKOzs7SUFGZSxxQ0FBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGlua0ZpZWxkfSBmcm9tICcuLi9saW5rcy9saW5rZmllbGQnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi4vbWljcm9vYmplY3QnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvbG9hZGluZ2luZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2Vycm9yaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge2ZpbmFsaXplfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01pY3JvQ2xpZW50TG9hZEVycm9yfSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGlua0ZpZWxkXVtsaW5rRmllbGRGcm9tXSdcbn0pXG5leHBvcnQgY2xhc3MgTGlua0ZpZWxkRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgX2Zyb206IExpbmtGaWVsZDxUPiB8IFQ7XG4gICAgcHJpdmF0ZSBfbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHByaXZhdGUgX2Vycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJpdmF0ZSBfZGVmYXVsdExvYWRpbmdDb21wb25lbnQ6IENvbXBvbmVudEZhY3Rvcnk8TWljcm9DbGllbnRMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9kZWZhdWx0RXJyb3JDb21wb25lbnQ6IENvbXBvbmVudEZhY3Rvcnk8TWljcm9DbGllbnRFcnJvckluZGljYXRvckNvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIGlzRGlydHkgPSB0cnVlO1xuICAgIHByaXZhdGUgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsb2FkZWRSZXN1bHQ6IFQgPSBudWxsO1xuICAgIHByaXZhdGUgaGFzUmVzdWx0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGxhc3RPYnM6IE9ic2VydmFibGU8VD47XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgICBwcml2YXRlIGN1cnJlbnRDb250ZXh0OiBMaW5rRmllbGRDb250ZXh0PFQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxMaW5rRmllbGRDb250ZXh0PFQ+PixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0TG9hZGluZ0NvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50TG9hZGluZ0luZGljYXRvckNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRFcnJvckNvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50RXJyb3JJbmRpY2F0b3JDb21wb25lbnQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpbmtGaWVsZEZyb20oZnJvbTogTGlua0ZpZWxkPFQ+IHwgVCkge1xuICAgICAgICB0aGlzLl9mcm9tID0gZnJvbTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRMb2FkaW5nVGVtcGxhdGUobG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChsb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSA9IGxvYWRpbmdUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkRXJyb3JUZW1wbGF0ZShlcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChlcnJvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvclRlbXBsYXRlID0gZXJyb3JUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPExpbmtGaWVsZENvbnRleHQ8VD4+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkRGVmYXVsdEVycm9ySGFuZGxpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkVmFsdWVDaGFuZ2U6IChUKSA9PiB2b2lkO1xuXG4gICAgQElucHV0KClcbiAgICBsaW5rRmllbGRQYXJhbXM6IG9iamVjdCA9IG51bGw7XG5cbiAgICBwcml2YXRlIGxvYWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mcm9tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZnJvbSBpbnN0YW5jZW9mIExpbmtGaWVsZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RPYnMgPSB0aGlzLl9mcm9tLmxpc3Rlbk9icygpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubGFzdE9icy5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICkuc3Vic2NyaWJlKChsb2FkZWRSZXN1bHQ6IFQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkZWRSZXN1bHQobG9hZGVkUmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubGlua0ZpZWxkVmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlua0ZpZWxkVmFsdWVDaGFuZ2UobG9hZGVkUmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIChsb2FkRXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5saW5rRmllbGREZWZhdWx0RXJyb3JIYW5kbGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZEVycm9yLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFcnJvcihsb2FkRXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLl9mcm9tKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLl9mcm9tKTtcbiAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgdXNlIHRoZSBsaW5rRmllbGQgZGlyZWN0aXZlIHdpdGggYSBmcm9tIHZhbHVlIHdoaWNoIGlzblxcJ3QgYW4gaW5zdGFuY2Ugb2YgTGlua0ZpZWxkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJZkRpcnR5KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmxpbmtGaWVsZEZyb20pIHtcbiAgICAgICAgICAgIGlmICghKHRoaXMuX2Zyb20gaW5zdGFuY2VvZiBMaW5rRmllbGQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZnJvbSA9IExpbmtGaWVsZC5mcm9tKHRoaXMuX2Zyb20gYXMgYW55KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLmxpbmtGaWVsZEZyb20ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlcy5saW5rRmllbGRGcm9tLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLmxpbmtGaWVsZFBhcmFtcyAmJiB0aGlzLmxpbmtGaWVsZFBhcmFtcykge1xuICAgICAgICAgICAgbGV0IGxpbmsgPSB0aGlzLl9mcm9tIGFzIExpbmtGaWVsZDxUPjtcbiAgICAgICAgICAgIHRoaXMuX2Zyb20gPSBsaW5rLndpdGhDYWxsUGFyYW1zKHRoaXMubGlua0ZpZWxkUGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RXJyb3IoZXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSB7XG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgIGlmICh0aGlzLl9lcnJvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9lcnJvclRlbXBsYXRlLCB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBlcnJvclxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgZXJyb3JDb21wb25lbnRJbnN0YW5jZSA9IHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KHRoaXMuX2RlZmF1bHRFcnJvckNvbXBvbmVudCk7XG4gICAgICAgICAgICBlcnJvckNvbXBvbmVudEluc3RhbmNlLmluc3RhbmNlWydlcnJvciddID0gZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHByaXZhdGUgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gbG9hZGluZztcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9sb2FkaW5nVGVtcGxhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KHRoaXMuX2RlZmF1bHRMb2FkaW5nQ29tcG9uZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TG9hZGVkUmVzdWx0KHJlc3VsdDogVCkge1xuICAgICAgICB0aGlzLmhhc1Jlc3VsdCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZGVkUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q29udGV4dCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZXh0ID0gbmV3IExpbmtGaWVsZENvbnRleHQ8VD4ocmVzdWx0KTtcbiAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZXh0LiRpbXBsaWNpdCA9IHJlc3VsdDtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl92aWV3Q29udGFpbmVyIHx8ICF0aGlzLl90ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRGlydHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLCB0aGlzLmN1cnJlbnRDb250ZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSWZEaXJ0eShpZ25vcmVEaXJ0eTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICgodGhpcy5pc0RpcnR5IHx8IGlnbm9yZURpcnR5KSAmJiB0aGlzLl9sb2FkaW5nVGVtcGxhdGUgJiYgdGhpcy5fZnJvbSAmJiB0aGlzLl90ZW1wbGF0ZSAmJiB0aGlzLl92aWV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLmxvYWRlZFJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuaGFzUmVzdWx0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGVkUmVzdWx0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhc3RPYnMgPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRDb250ZXh0ID0gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5rRmllbGRDb250ZXh0PFQ+IHtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyAkaW1wbGljaXQ6IFQpIHtcbiAgICB9XG59XG4iXX0=
|