@micropermit/client-angular 0.1.8 → 0.2.5

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.
@@ -15,8 +15,9 @@ export { MicroClientLoadingIndicatorComponent } from './lib/components/loadingin
15
15
  export { MicroClientErrorIndicatorComponent } from './lib/components/errorindicator.component';
16
16
  export { CallLinkDirective, CallStatus, CallState } from './lib/directives/call-link.directive';
17
17
  export { LinkFieldDirective, LinkFieldContext } from './lib/directives/linkfield.directive';
18
+ export { MicroLinkValidateDirective } from './lib/directives/micro-link-validate.directive';
18
19
  export { CallableLink, LinkSerializer } from './lib/links/callablelink';
19
20
  export { LinkField } from './lib/links/linkfield';
20
21
  export { MockLinkField } from './lib/links/mock-linkfield';
21
22
  export { LinkFieldPipe } from './lib/pipes/linkfield.pipe';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLGtEQUFjLDJCQUEyQixDQUFDO0FBQzFDLDJCQUFjLHdCQUF3QixDQUFDO0FBRXZDLGlEQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGtDQUFjLDBCQUEwQixDQUFDO0FBQ3pDLDJCQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGlEQUFjLGlDQUFpQyxDQUFDO0FBRWhELHFEQUFjLDZDQUE2QyxDQUFDO0FBQzVELG1EQUFjLDJDQUEyQyxDQUFDO0FBRTFELHlEQUFjLHNDQUFzQyxDQUFDO0FBQ3JELHFEQUFjLHNDQUFzQyxDQUFDO0FBRXJELDZDQUFjLDBCQUEwQixDQUFDO0FBQ3pDLDBCQUFjLHVCQUF1QixDQUFDO0FBQ3RDLDhCQUFjLDRCQUE0QixDQUFDO0FBRTNDLDhCQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBtaWNyb3Blcm1pdFxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWNyb2NsaWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vycm9yL21pY3JvZXJyb3InO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWNyb29iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWNyb2NsaWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFyYW11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saW5rLWZpZWxkLXBhZ2luZy1zdXBwb3J0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2FkaW5naW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vycm9yaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvY2FsbC1saW5rLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9saW5rcy9jYWxsYWJsZWxpbmsnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlua3MvbGlua2ZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpbmtzL21vY2stbGlua2ZpZWxkJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvbGlua2ZpZWxkLnBpcGUnO1xuXG5cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLGtEQUFjLDJCQUEyQixDQUFDO0FBQzFDLDJCQUFjLHdCQUF3QixDQUFDO0FBRXZDLGlEQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGtDQUFjLDBCQUEwQixDQUFDO0FBQ3pDLDJCQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGlEQUFjLGlDQUFpQyxDQUFDO0FBRWhELHFEQUFjLDZDQUE2QyxDQUFDO0FBQzVELG1EQUFjLDJDQUEyQyxDQUFDO0FBRTFELHlEQUFjLHNDQUFzQyxDQUFDO0FBQ3JELHFEQUFjLHNDQUFzQyxDQUFDO0FBQ3JELDJDQUFjLGdEQUFnRCxDQUFDO0FBRS9ELDZDQUFjLDBCQUEwQixDQUFDO0FBQ3pDLDBCQUFjLHVCQUF1QixDQUFDO0FBQ3RDLDhCQUFjLDRCQUE0QixDQUFDO0FBRTNDLDhCQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBtaWNyb3Blcm1pdFxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWNyb2NsaWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vycm9yL21pY3JvZXJyb3InO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWNyb29iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWNyb2NsaWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFyYW11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saW5rLWZpZWxkLXBhZ2luZy1zdXBwb3J0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2FkaW5naW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vycm9yaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvY2FsbC1saW5rLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9taWNyby1saW5rLXZhbGlkYXRlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpbmtzL2NhbGxhYmxlbGluayc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saW5rcy9saW5rZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlua3MvbW9jay1saW5rZmllbGQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9saW5rZmllbGQucGlwZSc7XG5cblxuIl19
@@ -1,8 +1,9 @@
1
- import { Injectable, Component, Pipe, ChangeDetectorRef, Input, EventEmitter, Directive, ViewContainerRef, TemplateRef, ComponentFactoryResolver, Output, HostListener, NgModule } from '@angular/core';
1
+ import { Injectable, Component, Pipe, ChangeDetectorRef, Input, EventEmitter, Directive, ViewContainerRef, TemplateRef, ComponentFactoryResolver, Output, HostListener, forwardRef, NgModule } from '@angular/core';
2
2
  import { HttpHeaders, HttpClient, HttpClientModule } from '@angular/common/http';
3
- import { of, throwError } from 'rxjs';
4
- import { shareReplay, map, catchError, finalize, delay } from 'rxjs/operators';
3
+ import { of, throwError, timer } from 'rxjs';
4
+ import { shareReplay, map, catchError, finalize, switchMap, delay } from 'rxjs/operators';
5
5
  import { AsyncPipe } from '@angular/common';
6
+ import { FormGroup, NG_ASYNC_VALIDATORS } from '@angular/forms';
6
7
 
7
8
  /**
8
9
  * @fileoverview added by tsickle
@@ -1910,6 +1911,142 @@ CallState[CallState.CALLING] = 'CALLING';
1910
1911
  CallState[CallState.SUCCESS] = 'SUCCESS';
1911
1912
  CallState[CallState.ERROR] = 'ERROR';
1912
1913
 
1914
+ /**
1915
+ * @fileoverview added by tsickle
1916
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1917
+ */
1918
+ class MicroLinkValidateDirective {
1919
+ constructor() {
1920
+ this.UNSET = "";
1921
+ this.microLinkValidateField = null;
1922
+ this.microLinkValidateValue = this.UNSET;
1923
+ this.microLinkValidateDebounce = 500;
1924
+ }
1925
+ /**
1926
+ * @param {?} control
1927
+ * @return {?}
1928
+ */
1929
+ validate(control) {
1930
+ return timer(this.microLinkValidateDebounce).pipe(switchMap((/**
1931
+ * @return {?}
1932
+ */
1933
+ () => {
1934
+ /** @type {?} */
1935
+ let validateValue = this.microLinkValidateValue;
1936
+ if (validateValue === this.UNSET) {
1937
+ validateValue = control.value;
1938
+ }
1939
+ /** @type {?} */
1940
+ let obj = {};
1941
+ if (this.microLinkValidateField) {
1942
+ obj[this.microLinkValidateField] = validateValue;
1943
+ }
1944
+ else {
1945
+ obj = validateValue;
1946
+ }
1947
+ return this.microLinkValidate.callWithObs(obj, null).pipe(map((/**
1948
+ * @param {?} validationRes
1949
+ * @return {?}
1950
+ */
1951
+ validationRes => {
1952
+ /** @type {?} */
1953
+ let hasErrors = false;
1954
+ if (this.microLinkValidateField) {
1955
+ if (validationRes[this.microLinkValidateField] != null) {
1956
+ hasErrors = true;
1957
+ }
1958
+ }
1959
+ else {
1960
+ for (let key in validationRes) {
1961
+ if (validationRes[key] != null) {
1962
+ hasErrors = true;
1963
+ }
1964
+ }
1965
+ }
1966
+ if (hasErrors) {
1967
+ this.result = validationRes;
1968
+ return {
1969
+ validateMicroLink: this.result
1970
+ };
1971
+ }
1972
+ else {
1973
+ this.result = null;
1974
+ return null;
1975
+ }
1976
+ })));
1977
+ })));
1978
+ }
1979
+ /**
1980
+ * @param {?} control
1981
+ * @return {?}
1982
+ */
1983
+ getControlName(control) {
1984
+ /** @type {?} */
1985
+ let controlName = null;
1986
+ /** @type {?} */
1987
+ let parent = control.parent;
1988
+ // only such parent, which is FormGroup, has a dictionary
1989
+ // with control-names as a key and a form-control as a value
1990
+ if (parent instanceof FormGroup) {
1991
+ // now we will iterate those keys (i.e. names of controls)
1992
+ Object.keys(parent.controls).forEach((/**
1993
+ * @param {?} name
1994
+ * @return {?}
1995
+ */
1996
+ (name) => {
1997
+ // and compare the passed control and
1998
+ // a child control of a parent - with provided name (we iterate them all)
1999
+ if (control === parent.controls[name]) {
2000
+ // both are same: control passed to Validator
2001
+ // and this child - are the same references
2002
+ controlName = name;
2003
+ }
2004
+ }));
2005
+ }
2006
+ // we either found a name or simply return null
2007
+ return controlName;
2008
+ }
2009
+ }
2010
+ MicroLinkValidateDirective.decorators = [
2011
+ { type: Directive, args: [{
2012
+ selector: '[microLinkValidate]',
2013
+ providers: [
2014
+ {
2015
+ provide: NG_ASYNC_VALIDATORS,
2016
+ useExisting: forwardRef((/**
2017
+ * @return {?}
2018
+ */
2019
+ () => MicroLinkValidateDirective)),
2020
+ multi: true
2021
+ }
2022
+ ],
2023
+ exportAs: 'microValidator'
2024
+ },] }
2025
+ ];
2026
+ MicroLinkValidateDirective.propDecorators = {
2027
+ microLinkValidate: [{ type: Input }],
2028
+ microLinkValidateField: [{ type: Input }],
2029
+ microLinkValidateValue: [{ type: Input }],
2030
+ microLinkValidateDebounce: [{ type: Input }]
2031
+ };
2032
+ if (false) {
2033
+ /**
2034
+ * @type {?}
2035
+ * @private
2036
+ */
2037
+ MicroLinkValidateDirective.prototype.UNSET;
2038
+ /** @type {?} */
2039
+ MicroLinkValidateDirective.prototype.microLinkValidate;
2040
+ /** @type {?} */
2041
+ MicroLinkValidateDirective.prototype.microLinkValidateField;
2042
+ /** @type {?} */
2043
+ MicroLinkValidateDirective.prototype.microLinkValidateValue;
2044
+ /** @type {?} */
2045
+ MicroLinkValidateDirective.prototype.microLinkValidateDebounce;
2046
+ /** @type {?} */
2047
+ MicroLinkValidateDirective.prototype.result;
2048
+ }
2049
+
1913
2050
  /**
1914
2051
  * @fileoverview added by tsickle
1915
2052
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -1941,14 +2078,16 @@ MicroClientModule.decorators = [
1941
2078
  LinkFieldDirective,
1942
2079
  CallLinkDirective,
1943
2080
  MicroClientLoadingIndicatorComponent,
1944
- MicroClientErrorIndicatorComponent
2081
+ MicroClientErrorIndicatorComponent,
2082
+ MicroLinkValidateDirective
1945
2083
  ],
1946
2084
  exports: [
1947
2085
  LinkFieldPipe,
1948
2086
  LinkFieldDirective,
1949
2087
  CallLinkDirective,
1950
2088
  MicroClientErrorIndicatorComponent,
1951
- MicroClientLoadingIndicatorComponent
2089
+ MicroClientLoadingIndicatorComponent,
2090
+ MicroLinkValidateDirective
1952
2091
  ]
1953
2092
  },] }
1954
2093
  ];
@@ -2131,7 +2270,7 @@ class LinkFieldPagingSupport {
2131
2270
  reflectChanges() {
2132
2271
  /** @type {?} */
2133
2272
  const lastRow = this.lastRow();
2134
- if (lastRow) {
2273
+ if (lastRow && lastRow.__meta) {
2135
2274
  this.loadedCompletely = lastRow.__meta.nextPage == null;
2136
2275
  }
2137
2276
  else {
@@ -2320,5 +2459,5 @@ if (false) {
2320
2459
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2321
2460
  */
2322
2461
 
2323
- export { CallLinkDirective, CallState, CallStatus, CallableLink, LinkField, LinkFieldContext, LinkFieldDirective, LinkFieldPagingSupport, LinkFieldPipe, LinkSerializer, MicroClient, MicroClientErrorIndicatorComponent, MicroClientLoadError, MicroClientLoadingIndicatorComponent, MicroClientModule, MicroError, MicroObject, MicroObjectMetadata, MockLinkField, ParamUtils, SortInfo };
2462
+ export { CallLinkDirective, CallState, CallStatus, CallableLink, LinkField, LinkFieldContext, LinkFieldDirective, LinkFieldPagingSupport, LinkFieldPipe, LinkSerializer, MicroClient, MicroClientErrorIndicatorComponent, MicroClientLoadError, MicroClientLoadingIndicatorComponent, MicroClientModule, MicroError, MicroLinkValidateDirective, MicroObject, MicroObjectMetadata, MockLinkField, ParamUtils, SortInfo };
2324
2463
  //# sourceMappingURL=micropermit-client-angular.js.map