@micropermit/client-angular 0.4.5-alpha1 → 0.4.5-alpha2
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/{fesm2015/micropermit-client-angular.js → fesm2022/micropermit-client-angular.mjs} +354 -1513
- package/fesm2022/micropermit-client-angular.mjs.map +1 -0
- package/{micropermit-client-angular.d.ts → index.d.ts} +1 -0
- package/lib/components/errorindicator.component.d.ts +3 -0
- package/lib/components/loadingindicator.component.d.ts +3 -0
- package/lib/directives/call-link.directive.d.ts +3 -0
- package/lib/directives/linkfield.directive.d.ts +7 -4
- package/lib/directives/micro-link-validate.directive.d.ts +3 -0
- package/lib/link-field-paging-support.d.ts +1 -1
- package/lib/microclient.module.d.ts +10 -0
- package/lib/microclient.service.d.ts +3 -0
- package/lib/pipes/linkfield.pipe.d.ts +3 -0
- package/package.json +14 -12
- package/bundles/micropermit-client-angular.umd.js +0 -3315
- package/bundles/micropermit-client-angular.umd.js.map +0 -1
- package/bundles/micropermit-client-angular.umd.min.js +0 -16
- package/bundles/micropermit-client-angular.umd.min.js.map +0 -1
- package/esm2015/lib/components/errorindicator.component.js +0 -53
- package/esm2015/lib/components/loadingindicator.component.js +0 -49
- package/esm2015/lib/directives/call-link.directive.js +0 -110
- package/esm2015/lib/directives/linkfield.directive.js +0 -363
- package/esm2015/lib/directives/micro-link-validate.directive.js +0 -141
- package/esm2015/lib/error/microerror.js +0 -27
- package/esm2015/lib/link-field-paging-support.js +0 -318
- package/esm2015/lib/links/callablelink.js +0 -265
- package/esm2015/lib/links/linkfield.js +0 -289
- package/esm2015/lib/links/mock-linkfield.js +0 -42
- package/esm2015/lib/microclient.module.js +0 -54
- package/esm2015/lib/microclient.service.js +0 -515
- package/esm2015/lib/microobject.js +0 -222
- package/esm2015/lib/paramutils.js +0 -176
- package/esm2015/lib/pipes/linkfield.pipe.js +0 -53
- package/esm2015/micropermit-client-angular.js +0 -9
- package/esm2015/public_api.js +0 -23
- package/esm5/lib/components/errorindicator.component.js +0 -36
- package/esm5/lib/components/loadingindicator.component.js +0 -19
- package/esm5/lib/directives/call-link.directive.js +0 -112
- package/esm5/lib/directives/linkfield.directive.js +0 -420
- package/esm5/lib/directives/micro-link-validate.directive.js +0 -152
- package/esm5/lib/error/microerror.js +0 -31
- package/esm5/lib/link-field-paging-support.js +0 -387
- package/esm5/lib/links/callablelink.js +0 -336
- package/esm5/lib/links/linkfield.js +0 -369
- package/esm5/lib/links/mock-linkfield.js +0 -56
- package/esm5/lib/microclient.module.js +0 -61
- package/esm5/lib/microclient.service.js +0 -616
- package/esm5/lib/microobject.js +0 -296
- package/esm5/lib/paramutils.js +0 -228
- package/esm5/lib/pipes/linkfield.pipe.js +0 -60
- package/esm5/micropermit-client-angular.js +0 -9
- package/esm5/public_api.js +0 -23
- package/fesm2015/micropermit-client-angular.js.map +0 -1
- package/fesm5/micropermit-client-angular.js +0 -3116
- package/fesm5/micropermit-client-angular.js.map +0 -1
- package/micropermit-client-angular.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"micropermit-client-angular.js","sources":["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"],"sourcesContent":["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}"],"names":["tslib_1.__values","tslib_1.__extends","_.cloneDeepWith"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"MicroClient":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":23,"character":36}]}],"setSendAsPermitTokenHeader":[{"__symbolic":"method"}],"setAuthToken":[{"__symbolic":"method"}],"setAuthHeader":[{"__symbolic":"method"}],"getEntryPoint":[{"__symbolic":"method"}],"waitForEntryPoint":[{"__symbolic":"method"}],"copyAuthAndEntrypointOf":[{"__symbolic":"method"}],"setEntryPoint":[{"__symbolic":"method"}],"setDefaultErrorHandler":[{"__symbolic":"method"}],"handleError":[{"__symbolic":"method"}],"ignite":[{"__symbolic":"method"}],"load":[{"__symbolic":"method"}],"encodeBody":[{"__symbolic":"method"}],"catchAndHandleError":[{"__symbolic":"method"}],"createChildClientForEntryPoint":[{"__symbolic":"method"}],"setURLRewriter":[{"__symbolic":"method"}]},"statics":{"staticContentRegExp":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"RegExp"},"arguments":["[a-zA-Z0-9]://.*(:[0-9]+)?(/.*)*/static(/.*(\\?.*)?(#.*)?)?"]},"guessMicroComponentAuthorizeURL":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"error","message":"Expression form not supported","line":310,"character":15,"module":"./lib/microclient.service"},"right":"/authorize"}}}},"MicroClientLoadError":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"error","message":"Expression form not supported","line":318,"character":60,"module":"./lib/microclient.service"}]}],"handleDefault":[{"__symbolic":"method"}],"handleError":[{"__symbolic":"method"}],"isHandled":[{"__symbolic":"method"}],"shouldPreventDefault":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"hasDefaultHandler":[{"__symbolic":"method"}]}},"MicroError":{"__symbolic":"class","members":{}},"MicroObject":{"__symbolic":"class","members":{},"statics":{"META_KEY":"__meta","deepCopy":{"__symbolic":"function","parameters":["toCopy","client"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash","name":"cloneDeepWith","line":16,"character":18},"arguments":[{"__symbolic":"reference","name":"toCopy"},{"__symbolic":"select","expression":{"__symbolic":"reference","name":"MicroObject"},"member":"deepCopyCustomizer"}]}}}},"MicroObjectMetadata":{"__symbolic":"class","members":{"getLinkUrl":[{"__symbolic":"method"}],"hasLink":[{"__symbolic":"method"}],"forEachLink":[{"__symbolic":"method"}],"forEachAction":[{"__symbolic":"method"}]}},"MicroClientModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"entryComponents":[{"__symbolic":"reference","name":"MicroClientLoadingIndicatorComponent"},{"__symbolic":"reference","name":"MicroClientErrorIndicatorComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":16,"character":8}],"declarations":[{"__symbolic":"reference","name":"LinkFieldPipe"},{"__symbolic":"reference","name":"LinkFieldDirective"},{"__symbolic":"reference","name":"CallLinkDirective"},{"__symbolic":"reference","name":"MicroClientLoadingIndicatorComponent"},{"__symbolic":"reference","name":"MicroClientErrorIndicatorComponent"},{"__symbolic":"reference","name":"MicroLinkValidateDirective"}],"exports":[{"__symbolic":"reference","name":"LinkFieldPipe"},{"__symbolic":"reference","name":"LinkFieldDirective"},{"__symbolic":"reference","name":"CallLinkDirective"},{"__symbolic":"reference","name":"MicroClientErrorIndicatorComponent"},{"__symbolic":"reference","name":"MicroClientLoadingIndicatorComponent"},{"__symbolic":"reference","name":"MicroLinkValidateDirective"}]}]}],"members":{},"statics":{"forClientRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"MicroClientModule"},"providers":[{"__symbolic":"reference","name":"MicroClient"}]}}}},"ParamUtils":{"__symbolic":"class","members":{},"statics":{"plusRegex":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"RegExp"},"arguments":["\\+"]},"slashRegex":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"RegExp"},"arguments":["/","g"]},"multiEqualRegex":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"RegExp"},"arguments":["=+$","g"]},"minusRegex":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"RegExp"},"arguments":["-","g"]},"underscoreRegex":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"RegExp"},"arguments":["_","g"]},"base64UrlEncode":{"__symbolic":"function","parameters":["toEncode"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"btoa"},"arguments":[{"__symbolic":"reference","name":"toEncode"}]},"member":"replace"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ParamUtils"},"member":"plusRegex"},"-"]},"member":"replace"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ParamUtils"},"member":"slashRegex"},"_"]},"member":"replace"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ParamUtils"},"member":"multiEqualRegex"},""]}}}},"LinkFieldPagingSupport":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LinkField"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":9,"character":35},{"__symbolic":"reference","name":"number"}]}],"applySort":[{"__symbolic":"method"}],"loadNextPage":[{"__symbolic":"method"}],"loadEverything":[{"__symbolic":"method"}],"lastRow":[{"__symbolic":"method"}],"setRows":[{"__symbolic":"method"}],"clearRows":[{"__symbolic":"method"}],"reflectChanges":[{"__symbolic":"method"}],"setLoading":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}],"setPageLink":[{"__symbolic":"method"}],"hasLoadedCompletely":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"clearState":[{"__symbolic":"method"}]},"statics":{"from":{"__symbolic":"function","parameters":["pageLink","changeDetectorRef","pageLimit"],"defaults":[null,null,200],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LinkFieldPagingSupport"},"arguments":[{"__symbolic":"reference","name":"pageLink"},{"__symbolic":"reference","name":"changeDetectorRef"},{"__symbolic":"reference","name":"pageLimit"}]}}}},"SortInfo":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"MicroClientLoadingIndicatorComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"mc-loadingindicator","template":"\n <div id=\"container\">\n <div id=\"bar\"></div>\n </div>\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 "]}]}],"members":{}},"MicroClientErrorIndicatorComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"mc-errorindicator","template":"\n <div class=\"blinking-error\" [class.clickable]=\"error.hasDefaultHandler()\" (click)=\"onClick()\"></div>\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 "]}]}],"members":{"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"onClick":[{"__symbolic":"method"}]}},"CallLinkDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[callLink]"}]}],"members":{"callLink":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":5}}]}],"callStatusChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":5}}]}],"callSucess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":5}}]}],"callFinish":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":5}}]}],"callError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":30,"character":5}}]}],"callStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":33,"character":5}}]}],"callOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"callParameters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":42,"character":5},"arguments":["click"]}]}]}},"CallStatus":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CallableLink"},{"__symbolic":"error","message":"Could not resolve type","line":60,"character":22,"context":{"typeName":"CallState"},"module":"./lib/directives/call-link.directive"},{"__symbolic":"reference","name":"MicroObject"},{"__symbolic":"reference","name":"MicroError"}]}]}},"CallState":{"CALLING":0,"SUCCESS":1,"ERROR":2},"LinkFieldDirective":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[linkField][linkFieldFrom]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":39,"character":32},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"LinkFieldContext"}]},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":41,"character":35},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":42,"character":35}]}],"linkFieldFrom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":5}}]}],"linkFieldLoadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":5}}]}],"linkFieldErrorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":5}}]}],"linkFieldTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":5}}]}],"linkFieldDefaultErrorHandling":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":5}}]}],"linkFieldValueChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":5}}]}],"linkFieldParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":82,"character":5}}]}],"load":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"setError":[{"__symbolic":"method"}],"setLoading":[{"__symbolic":"method"}],"setLoadedResult":[{"__symbolic":"method"}],"updateIfDirty":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]}},"LinkFieldContext":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":213,"character":34,"context":{"typeName":"T"},"module":"./lib/directives/linkfield.directive"}]}]}},"MicroLinkValidateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"[microLinkValidate]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_ASYNC_VALIDATORS","line":16,"character":21},"useExisting":{"__symbolic":"reference","name":"MicroLinkValidateDirective"},"multi":true}],"exportAs":"microValidator"}]}],"members":{"microLinkValidate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":5}}]}],"microLinkValidateField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"microLinkValidateValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"microLinkValidateDebounce":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"validate":[{"__symbolic":"method"}],"getControlName":[{"__symbolic":"method"}]}},"CallableLink":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"MicroClient"},{"__symbolic":"error","message":"Expression form not supported","line":10,"character":30,"module":"./lib/links/callablelink"},{"__symbolic":"error","message":"Expression form not supported","line":11,"character":34,"module":"./lib/links/callablelink"}]}],"hasLink":[{"__symbolic":"method"}],"getLink":[{"__symbolic":"method"}],"getQueryParam":[{"__symbolic":"method"}],"getSignedParams":[{"__symbolic":"method"}],"getOpenParams":[{"__symbolic":"method"}],"getOptions":[{"__symbolic":"method"}],"getSignedMicroObjectParam":[{"__symbolic":"method"}],"getMicroObjectParam":[{"__symbolic":"method"}],"call":[{"__symbolic":"method"}],"callWith":[{"__symbolic":"method"}],"callWithObs":[{"__symbolic":"method"}],"copy":[{"__symbolic":"method"}],"withCallParams":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]}},"LinkSerializer":{"__symbolic":"class","members":{},"statics":{"DONT_SERIALIZE":{"__symbolic":"error","message":"Lambda not supported","line":148,"character":35},"AS_LINK":{"__symbolic":"error","message":"Lambda not supported","line":152,"character":28},"AS_VALUE_IF_INITIALIZED":{"__symbolic":"error","message":"Lambda not supported","line":156,"character":44}}},"LinkField":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"CallableLink"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"MicroClient"},{"__symbolic":"error","message":"Could not resolve type","line":17,"character":22,"context":{"typeName":"T"},"module":"./lib/links/linkfield"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"error","message":"Expression form not supported","line":19,"character":20,"module":"./lib/links/linkfield"},{"__symbolic":"error","message":"Expression form not supported","line":20,"character":24,"module":"./lib/links/linkfield"}]}],"get":[{"__symbolic":"method"}],"getPromise":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"stopRefresh":[{"__symbolic":"method"}],"listenObs":[{"__symbolic":"method"}],"getObs":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"isInitialized":[{"__symbolic":"method"}],"uninitialize":[{"__symbolic":"method"}],"copyUninitialized":[{"__symbolic":"method"}],"getInitializedValue":[{"__symbolic":"method"}],"initWith":[{"__symbolic":"method"}],"initWithObs":[{"__symbolic":"method"}],"withCallParams":[{"__symbolic":"method"}],"copy":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]},"statics":{"from":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LinkField"},"arguments":[null,null,{"__symbolic":"reference","name":"value"},true]}}}},"MockLinkField":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"LinkField"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"number"}]}],"callWithObs":[{"__symbolic":"method"}]}},"LinkFieldPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"linkField","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":10,"character":35}]}],"ngOnDestroy":[{"__symbolic":"method"}],"transform":[{"__symbolic":"method"}]}}},"origins":{"MicroClient":"./lib/microclient.service","MicroClientLoadError":"./lib/microclient.service","MicroError":"./lib/error/microerror","MicroObject":"./lib/microobject","MicroObjectMetadata":"./lib/microobject","MicroClientModule":"./lib/microclient.module","ParamUtils":"./lib/paramutils","LinkFieldPagingSupport":"./lib/link-field-paging-support","SortInfo":"./lib/link-field-paging-support","MicroClientLoadingIndicatorComponent":"./lib/components/loadingindicator.component","MicroClientErrorIndicatorComponent":"./lib/components/errorindicator.component","CallLinkDirective":"./lib/directives/call-link.directive","CallStatus":"./lib/directives/call-link.directive","CallState":"./lib/directives/call-link.directive","LinkFieldDirective":"./lib/directives/linkfield.directive","LinkFieldContext":"./lib/directives/linkfield.directive","MicroLinkValidateDirective":"./lib/directives/micro-link-validate.directive","CallableLink":"./lib/links/callablelink","LinkSerializer":"./lib/links/callablelink","LinkField":"./lib/links/linkfield","MockLinkField":"./lib/links/mock-linkfield","LinkFieldPipe":"./lib/pipes/linkfield.pipe"},"importAs":"@micropermit/client-angular"}
|