UNPKG

@rxap/remote-method

Version:

This package provides abstractions for defining and executing remote methods in Angular applications. It includes features such as automatic refreshing, proxying, and error handling. It offers a structured way to manage remote calls and their dependencies

1 lines 41.5 kB
{"version":3,"file":"rxap-remote-method-directive.mjs","sources":["../../../../../packages/angular/remote-method/directive/src/lib/error.ts","../../../../../packages/angular/remote-method/directive/src/lib/tokens.ts","../../../../../packages/angular/remote-method/directive/src/lib/remote-method-template-collection.directive.ts","../../../../../packages/angular/remote-method/directive/src/lib/remote-method-template.directive.ts","../../../../../packages/angular/remote-method/directive/src/lib/remote-method.directive.ts","../../../../../packages/angular/remote-method/directive/src/index.ts","../../../../../packages/angular/remote-method/directive/src/rxap-remote-method-directive.ts"],"sourcesContent":["import { RxapRemoteMethodError } from '@rxap/remote-method';\n\nexport class RxapRemoteMethodDirectiveError extends RxapRemoteMethodError {\n\n constructor(message: string, code?: string, scope?: string) {\n super(message, code ?? '', scope);\n }\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const RXAP_REMOTE_METHOD_DIRECTIVE_TOKEN = new InjectionToken('rxap/remote-method/directive/token');\n","import {\n ChangeDetectorRef,\n Directive,\n DoCheck,\n EmbeddedViewRef,\n Inject,\n Injector,\n INJECTOR,\n Input,\n isDevMode,\n IterableChangeRecord,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n NgZone,\n OnChanges,\n OnInit,\n Optional,\n Self,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n BaseRemoteMethod,\n BaseRemoteMethodMetadata,\n RemoteMethodLoader,\n} from '@rxap/remote-method';\nimport { Required } from '@rxap/utilities';\nimport { IdOrInstanceOrToken } from '@rxap/definition';\nimport {\n take,\n tap,\n} from 'rxjs/operators';\nimport { RXAP_REMOTE_METHOD_DIRECTIVE_TOKEN } from './tokens';\n\nexport class RemoteMethodTemplateCollectionDirectiveContext<ReturnType = any> {\n constructor(\n public $implicit: ReturnType,\n public index: number,\n public count: number,\n ) {\n }\n\n get first(): boolean {\n return this.index === 0;\n }\n\n get last(): boolean {\n return this.index === this.count - 1;\n }\n\n get even(): boolean {\n return this.index % 2 === 0;\n }\n\n get odd(): boolean {\n return !this.even;\n }\n}\n\nexport interface RemoteMethodTemplateCollectionDirectiveErrorContext {\n $implicit: Error;\n message?: string;\n name?: string;\n}\n\nfunction getTypeName(type: any): string {\n return type['name'] || typeof type;\n}\n\nclass RecordViewTuple<T> {\n constructor(public record: any, public view: EmbeddedViewRef<RemoteMethodTemplateCollectionDirectiveContext<T>>) {\n }\n}\n\n@Directive({\n selector: '[rxapRemoteMethodCollection]',\n exportAs: 'rxapRemoteMethodCollection',\n standalone: true,\n})\nexport class RemoteMethodTemplateCollectionDirective<ReturnType = any,\n Parameters = any,\n Metadata extends BaseRemoteMethodMetadata = BaseRemoteMethodMetadata>\n implements OnChanges, DoCheck, OnInit {\n\n @Input('rxapRemoteMethodCollectionParameters')\n public parameters?: Parameters;\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('rxapRemoteMethodCollectionEmpty')\n public emptyTemplate?: TemplateRef<void>;\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('rxapRemoteMethodCollectionError')\n public errorTemplate?: TemplateRef<RemoteMethodTemplateCollectionDirectiveErrorContext>;\n @Input('rxapRemoteMethodCollectionWithoutParameters')\n public withoutParameters = false;\n private _differ: IterableDiffer<ReturnType> | null = null;\n private _trackByFn!: TrackByFunction<ReturnType>;\n private _dirty = true;\n /**\n * Indicates that the remote method returned a empty collection\n *\n * true - is empty\n * false - is NOT empty\n * null - unknown\n *\n * @private\n */\n private _empty: boolean | null = null;\n /**\n * Holds the error that call of the remote method throws\n *\n * @private\n */\n private _error: Error | null = null;\n /**\n * Holds the empty template view ref.\n *\n * Is used to determine if a empty template is added to the\n * view. And used to destruct the empty template if the remote method\n * changes from empty to not empty.\n *\n * @private\n */\n private _emptyTemplateViewRef: EmbeddedViewRef<void> | null = null;\n /**\n * Holds the error template view ref.\n *\n * Is used to determine if a error template is added to the\n * view. And used to destruct the error template if the remote method\n * is called again with an error.\n *\n * @private\n */\n private _errorTemplateViewRef: EmbeddedViewRef<RemoteMethodTemplateCollectionDirectiveErrorContext> | null = null;\n\n constructor(\n @Inject(TemplateRef)\n private readonly template: TemplateRef<RemoteMethodTemplateCollectionDirectiveContext<ReturnType>>,\n @Inject(RemoteMethodLoader)\n protected readonly remoteMethodLoader: RemoteMethodLoader,\n @Inject(INJECTOR)\n private readonly injector: Injector,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(ChangeDetectorRef)\n protected readonly cdr: ChangeDetectorRef,\n @Inject(IterableDiffers)\n private readonly differs: IterableDiffers,\n @Inject(NgZone)\n private readonly zone: NgZone,\n @Optional()\n @Self()\n @Inject(RXAP_REMOTE_METHOD_DIRECTIVE_TOKEN)\n private readonly remoteMethodToken?: any,\n ) {\n if (this.remoteMethodToken) {\n this._remoteMethodOrIdOrToken = this.remoteMethodToken;\n }\n }\n\n get trackBy(): TrackByFunction<ReturnType> {\n return this._trackByFn;\n }\n\n /**\n * A function that defines how to track changes for items in the iterable.\n *\n * When items are added, moved, or removed in the iterable,\n * the directive must re-render the appropriate DOM nodes.\n * To minimize churn in the DOM, only nodes that have changed\n * are re-rendered.\n *\n * By default, the change detector assumes that\n * the object instance identifies the node in the iterable.\n * When this function is supplied, the directive uses\n * the result of calling this function to identify the item node,\n * rather than the identity of the object itself.\n *\n * The function receives two inputs,\n * the iteration index and the node object ID.\n */\n @Input('rxapRemoteMethodCollectionTrackBy')\n set trackBy(fn: TrackByFunction<ReturnType>) {\n if (isDevMode() && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (<any>console && <any>console.warn) {\n console.warn(\n `trackBy must be a function, but received ${ JSON.stringify(fn) }. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n }\n this._trackByFn = fn;\n }\n\n protected _remoteMethodOrIdOrToken!: IdOrInstanceOrToken<BaseRemoteMethod<ReturnType[], Parameters, Metadata>>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('rxapRemoteMethodCollectionCall')\n public set remoteMethodOrIdOrToken(value: IdOrInstanceOrToken<BaseRemoteMethod<ReturnType[], Parameters, Metadata>>) {\n if (value) {\n this._remoteMethodOrIdOrToken = value;\n }\n }\n\n /**\n * Holds the data that should be displayed\n * @private\n */\n private _data: ReturnType[] | null = null;\n\n protected set data(data: ReturnType[]) {\n this._data = data;\n this._dirty = true;\n }\n\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard<T>(dir: RemoteMethodTemplateCollectionDirective<T>, ctx: any):\n ctx is RemoteMethodTemplateCollectionDirectiveContext<T> {\n return true;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const parametersChanges = changes['parameters'];\n if (parametersChanges) {\n this.call(parametersChanges.currentValue);\n }\n }\n\n public ngOnInit() {\n if (this.withoutParameters) {\n this.call();\n }\n }\n\n public call(parameters?: Parameters): void {\n this.zone.onStable.pipe(\n take(1),\n tap(() => {\n this.zone.run(() => {\n this.remoteMethodLoader\n .call$(this._remoteMethodOrIdOrToken, parameters, undefined, this.injector)\n .then(response => {\n this._empty = response.length === 0;\n this._data = response;\n this.cdr.detectChanges();\n })\n .catch(error => {\n this._error = error;\n this.cdr.detectChanges();\n });\n });\n }),\n ).subscribe();\n }\n\n /**\n * Applies the changes when needed.\n */\n public ngDoCheck(): void {\n if (this._error !== null) {\n\n this.viewContainerRef.clear();\n this._differ = null;\n\n if (this.errorTemplate) {\n this._errorTemplateViewRef = this.viewContainerRef.createEmbeddedView(this.errorTemplate, {\n $implicit: this._error,\n message: this._error.message,\n name: this._error.name,\n });\n }\n\n } else if (this._empty === true) {\n\n this.viewContainerRef.clear();\n this._differ = null;\n\n // attaches the empty template if the data source is empty\n if (this.emptyTemplate) {\n this._emptyTemplateViewRef = this.viewContainerRef.createEmbeddedView(this.emptyTemplate);\n }\n\n } else if (this._empty === false) {\n\n // detach and destroy the empty template if the data source is not\n // empty any more\n if (this._emptyTemplateViewRef) {\n this._emptyTemplateViewRef.detach();\n this._emptyTemplateViewRef.destroy();\n this._errorTemplateViewRef = null;\n }\n\n if (this._errorTemplateViewRef) {\n this._errorTemplateViewRef.detach();\n this._errorTemplateViewRef.destroy();\n this._errorTemplateViewRef = null;\n }\n\n if (this._data) {\n this._dirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._data;\n if (!this._differ && value) {\n try {\n this._differ = this.differs.find(value).create(this.trackBy);\n } catch {\n throw new Error(`Cannot find a differ supporting object '${ value }' of type '${\n getTypeName(value) }'. NgFor only supports binding to Iterables such as Arrays.`);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._data);\n if (changes) {\n this.applyChanges(changes);\n }\n }\n }\n }\n\n protected applyChanges(changes: IterableChanges<ReturnType>) {\n\n const insertTuples: RecordViewTuple<ReturnType>[] = [];\n changes.forEachOperation(\n (item: IterableChangeRecord<any>, adjustedPreviousIndex: number | null, currentIndex: number | null) => {\n\n if (item.previousIndex == null) {\n\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n const view = this.viewContainerRef.createEmbeddedView(\n this.template,\n new RemoteMethodTemplateCollectionDirectiveContext<ReturnType>(null!, -1, -1),\n currentIndex === null ? undefined : currentIndex,\n );\n const tuple = new RecordViewTuple<ReturnType>(item, view);\n insertTuples.push(tuple);\n\n } else if (currentIndex == null) {\n\n this.viewContainerRef.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n\n } else if (adjustedPreviousIndex !== null) {\n\n const view = this.viewContainerRef.get(adjustedPreviousIndex)!;\n this.viewContainerRef.move(view, currentIndex);\n const tuple = new RecordViewTuple(\n item,\n <EmbeddedViewRef<RemoteMethodTemplateCollectionDirectiveContext<ReturnType>>>view,\n );\n insertTuples.push(tuple);\n\n }\n\n });\n\n for (let i = 0; i < insertTuples.length; i++) {\n this.perViewChange(insertTuples[i].view, insertTuples[i].record);\n }\n\n for (let i = 0,\n ilen = this.viewContainerRef.length; i < ilen; i++) {\n const viewRef = <EmbeddedViewRef<RemoteMethodTemplateCollectionDirectiveContext<ReturnType>>>this.viewContainerRef.get(\n i);\n viewRef.context.index = i;\n viewRef.context.count = ilen;\n }\n\n changes.forEachIdentityChange((record: any) => {\n const viewRef =\n <EmbeddedViewRef<RemoteMethodTemplateCollectionDirectiveContext<ReturnType>>>this.viewContainerRef.get(record.currentIndex);\n viewRef.context.$implicit = record.item;\n });\n\n }\n\n private perViewChange(\n view: EmbeddedViewRef<RemoteMethodTemplateCollectionDirectiveContext<ReturnType>>,\n record: IterableChangeRecord<any>,\n ) {\n view.context.$implicit = record.item;\n }\n\n}\n\n\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n Inject,\n Injector,\n INJECTOR,\n Input,\n isDevMode,\n OnChanges,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n BaseRemoteMethod,\n BaseRemoteMethodMetadata,\n RemoteMethodLoader,\n} from '@rxap/remote-method';\nimport {\n Deprecated,\n Required,\n} from '@rxap/utilities';\nimport { IdOrInstanceOrToken } from '@rxap/definition';\nimport { RXAP_REMOTE_METHOD_DIRECTIVE_TOKEN } from './tokens';\nimport { ToggleSubject } from '@rxap/rxjs';\n\nexport interface RemoteMethodTemplateDirectiveContext<ReturnType = any> {\n $implicit: ReturnType;\n}\n\nexport interface RemoteMethodTemplateDirectiveErrorContext {\n $implicit: Error;\n message: string;\n}\n\n@Directive({\n selector: '[rxapRemoteMethod]',\n exportAs: 'rxapRemoteMethod',\n standalone: true,\n})\nexport class RemoteMethodTemplateDirective<ReturnType = any, Parameters = any, Metadata extends BaseRemoteMethodMetadata = BaseRemoteMethodMetadata>\n implements OnChanges, OnInit {\n\n // TODO : remove template context Guard\n // the template context Guard must be defined with a concrete context type\n // else the context guard is resolved to any\n // For each child directive that should have a template context guard\n // the template context guard must be defined\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('executed')\n public executed$ = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('failure')\n public failure$ = new EventEmitter<Error>();\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('successful')\n public successful$ = new EventEmitter<ReturnType>();\n @Input('rxapRemoteMethodMetadata')\n public metadata?: Metadata;\n /**\n * true - a remote method call is in progress\n */\n public executing$ = new ToggleSubject();\n @Input('rxapRemoteMethodParameters')\n public parameters?: Parameters;\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('rxapRemoteMethodError')\n public errorTemplate?: TemplateRef<RemoteMethodTemplateDirectiveErrorContext>;\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('rxapRemoteMethodLoading')\n public loadingTemplate?: TemplateRef<void>;\n @Input('rxapRemoteMethodWithoutParameters')\n public withoutParameters = false;\n @Output()\n public embedded = new EventEmitter();\n\n constructor(\n @Inject(TemplateRef)\n private readonly template: TemplateRef<RemoteMethodTemplateDirectiveContext<ReturnType>>,\n @Inject(RemoteMethodLoader)\n protected readonly remoteMethodLoader: RemoteMethodLoader,\n @Inject(INJECTOR)\n private readonly injector: Injector,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(ChangeDetectorRef)\n protected readonly cdr: ChangeDetectorRef,\n @Optional()\n @Self()\n @Inject(RXAP_REMOTE_METHOD_DIRECTIVE_TOKEN)\n private readonly remoteMethodToken?: any,\n ) {\n if (this.remoteMethodToken) {\n this._remoteMethodOrIdOrToken = this.remoteMethodToken;\n }\n }\n\n protected _remoteMethodOrIdOrToken!: IdOrInstanceOrToken<BaseRemoteMethod<ReturnType, Parameters, Metadata>>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('rxapRemoteMethodCall')\n public set remoteMethodOrIdOrToken(value: IdOrInstanceOrToken<BaseRemoteMethod<ReturnType, Parameters, Metadata>>) {\n if (value) {\n this._remoteMethodOrIdOrToken = value;\n }\n }\n\n // !! add generation of concrete template context guard to openapi schematics !!\n static ngTemplateContextGuard<T>(dir: RemoteMethodTemplateDirective<T>, ctx: any):\n ctx is RemoteMethodTemplateDirectiveContext<T> {\n return true;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const parametersChanges = changes['parameters'];\n if (parametersChanges) {\n this.execute(parametersChanges.currentValue);\n }\n }\n\n public ngOnInit() {\n this.renderLoadingTemplate();\n if (this.withoutParameters) {\n this.execute();\n }\n }\n\n public async execute(parameters: Parameters | undefined = this.parameters): Promise<void> {\n this.executing$.enable();\n this.renderLoadingTemplate();\n try {\n const result = await this.remoteMethodLoader.call$(\n this._remoteMethodOrIdOrToken,\n parameters,\n this.metadata,\n this.injector,\n );\n this.executed(result);\n this.renderTemplate(result);\n this.successful(result);\n } catch (error: any) {\n if (isDevMode()) {\n console.error(`Remote method directive execution failed:`, error.message);\n }\n this.failure(error);\n } finally {\n this.executing$.disable();\n }\n }\n\n /**\n * @deprecated removed\n * @protected\n */\n @Deprecated('removed')\n public call(parameters?: Parameters): void {\n this.execute(parameters)\n .catch(error => console.error('Remote method template rendering failed: ' + error.message));\n }\n\n public setParameter<Key extends keyof Parameters>(parameterKey: Key, value: Parameters[Key]): void {\n this.updateParameters({ [parameterKey]: value } as any);\n }\n\n public updateParameters(parameters: Partial<Parameters>): void {\n this.parameters = { ...(this.parameters ?? {}), ...parameters } as any;\n }\n\n protected executed(result: any) {\n this.executed$.emit(result);\n }\n\n protected failure(error: Error) {\n this.failure$.emit(error);\n }\n\n protected successful(result: ReturnType) {\n this.successful$.emit(result);\n }\n\n protected renderTemplate(result: ReturnType) {\n\n this.viewContainerRef.clear();\n\n try {\n this.viewContainerRef.createEmbeddedView(this.template, { $implicit: result });\n } catch (error: any) {\n if (this.errorTemplate) {\n this.viewContainerRef.createEmbeddedView(\n this.errorTemplate,\n {\n $implicit: error,\n message: error.message,\n },\n );\n }\n console.error(error.message);\n }\n\n this.embedded.emit();\n\n this.cdr.detectChanges();\n\n }\n\n private renderLoadingTemplate() {\n if (this.loadingTemplate) {\n this.viewContainerRef.clear();\n this.viewContainerRef.createEmbeddedView(this.loadingTemplate);\n }\n }\n\n}\n\n\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Inject,\n Injector,\n INJECTOR,\n Input,\n isDevMode,\n OnInit,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport {\n BaseRemoteMethod,\n BaseRemoteMethodMetadata,\n RemoteMethodLoader,\n} from '@rxap/remote-method';\nimport {\n coerceBoolean,\n Deprecated,\n Required,\n} from '@rxap/utilities';\nimport { IdOrInstanceOrToken } from '@rxap/definition';\nimport { RXAP_REMOTE_METHOD_DIRECTIVE_TOKEN } from './tokens';\nimport { ToggleSubject } from '@rxap/rxjs';\n\n@Directive({\n selector: '[rxapRemoteMethod]',\n exportAs: 'rxapRemoteMethod',\n standalone: true,\n})\nexport class RemoteMethodDirective<ReturnType = any, Parameters = any, Metadata extends BaseRemoteMethodMetadata = BaseRemoteMethodMetadata>\n implements OnInit {\n\n @Input()\n public parameters?: Parameters;\n @Input()\n public metadata?: Metadata;\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('executed')\n public executed$ = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('failure')\n public failure$ = new EventEmitter<Error>();\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('successful')\n public successful$ = new EventEmitter<ReturnType>();\n @Input()\n public immediately = false;\n /**\n * true - a remote method call is in progress\n */\n public executing$ = new ToggleSubject();\n\n constructor(\n @Inject(RemoteMethodLoader)\n protected readonly remoteMethodLoader: RemoteMethodLoader,\n @Inject(INJECTOR)\n private readonly injector: Injector = Injector.NULL,\n @Optional()\n @Self()\n @Inject(RXAP_REMOTE_METHOD_DIRECTIVE_TOKEN)\n private readonly remoteMethodToken?: any,\n ) {\n if (this.remoteMethodToken) {\n this._remoteMethodOrIdOrToken = this.remoteMethodToken;\n }\n }\n\n protected _remoteMethodOrIdOrToken!: IdOrInstanceOrToken<BaseRemoteMethod<ReturnType, Parameters, Metadata>>;\n\n @Input('rxapRemoteMethod')\n public set remoteMethodOrIdOrToken(value: IdOrInstanceOrToken<BaseRemoteMethod<ReturnType, Parameters, Metadata>>) {\n if (value) {\n this._remoteMethodOrIdOrToken = value;\n }\n }\n\n private _hasConfirmDirective = false;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('rxapConfirm')\n public set hasConfirmDirective(value: any) {\n this._hasConfirmDirective = coerceBoolean(value);\n }\n\n public ngOnInit(): void {\n if (this.immediately) {\n this.execute();\n }\n }\n\n @HostListener('confirmed')\n public onConfirmed() {\n this.execute();\n }\n\n @HostListener('click')\n public onClick() {\n if (!this._hasConfirmDirective) {\n this.execute();\n } else {\n console.debug('skip remote method call. Wait for confirmation.');\n }\n }\n\n public async execute(): Promise<void> {\n this.executing$.enable();\n try {\n const result = await this.remoteMethodLoader.call$(\n this._remoteMethodOrIdOrToken,\n this.parameters,\n this.metadata,\n this.injector,\n );\n this.executed(result);\n this.successful(result);\n } catch (error: any) {\n if (isDevMode()) {\n console.error(`Remote method directive execution failed:`, error.message);\n }\n this.failure(error);\n } finally {\n this.executing$.disable();\n }\n }\n\n public setParameter<Key extends keyof Parameters>(parameterKey: Key, value: Parameters[Key]): void {\n this.updateParameters({ [parameterKey]: value } as any);\n }\n\n public updateParameters(parameters: Partial<Parameters>): void {\n this.parameters = { ...(this.parameters ?? {}), ...parameters } as any;\n }\n\n protected executed(result: any) {\n this.executed$.emit(result);\n }\n\n protected failure(error: Error) {\n this.failure$.emit(error);\n }\n\n protected successful(result: ReturnType) {\n this.successful$.emit(result);\n }\n\n /**\n * @deprecated removed\n * @protected\n */\n @Deprecated('removed')\n protected async call(): Promise<any> {\n this.executing$.enable();\n const result = await this.remoteMethodLoader.call$(\n this._remoteMethodOrIdOrToken,\n this.parameters,\n this.metadata,\n this.injector,\n );\n this.executing$.disable();\n return result;\n }\n\n}\n\n\n","// region \nexport * from './lib/error';\nexport * from './lib/remote-method-template-collection.directive';\nexport * from './lib/remote-method-template.directive';\nexport * from './lib/remote-method.directive';\nexport * from './lib/tokens';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}