{"version":3,"file":"utilscore-ar.mjs","sources":["../../../projects/utilscore-ar/src/lib/helpers/enums.ts","../../../projects/utilscore-ar/src/lib/helpers/httpCode.ts","../../../projects/utilscore-ar/src/lib/services/error-handler.ts","../../../projects/utilscore-ar/src/lib/services/modelwrapper-strategy.ts","../../../projects/utilscore-ar/src/lib/helpers/appinjector.ts","../../../projects/utilscore-ar/src/lib/components/auth/helper.ts","../../../projects/utilscore-ar/src/lib/components/auth/auth.route.ts","../../../projects/utilscore-ar/src/lib/components/auth/auth.config.ts","../../../projects/utilscore-ar/src/lib/services/config.service.ts","../../../projects/utilscore-ar/src/lib/helpers/claimtype.ts","../../../projects/utilscore-ar/src/lib/components/auth/token.service.ts","../../../projects/utilscore-ar/src/lib/components/auth/auth.guard.ts","../../../projects/utilscore-ar/src/lib/helpers/guid.ts","../../../projects/utilscore-ar/src/lib/helpers/toastType.ts","../../../projects/utilscore-ar/src/lib/helpers/function.ts","../../../projects/utilscore-ar/src/lib/helpers/response.ts","../../../projects/utilscore-ar/src/lib/helpers/dictionary.ts","../../../projects/utilscore-ar/src/lib/helpers/navigate.ts","../../../projects/utilscore-ar/src/lib/helpers/setting.ts","../../../projects/utilscore-ar/src/lib/helpers/msgbox.ts","../../../projects/utilscore-ar/src/lib/helpers/list-utils.ts","../../../projects/utilscore-ar/src/lib/helpers/identityvalue.ts","../../../projects/utilscore-ar/src/lib/helpers/baseobject.ts","../../../projects/utilscore-ar/src/lib/helpers/cachedataobject.ts","../../../projects/utilscore-ar/src/lib/helpers/caller.component.ts","../../../projects/utilscore-ar/src/lib/helpers/cachecontainer.ts","../../../projects/utilscore-ar/src/lib/helpers/servicesubscriber.ts","../../../projects/utilscore-ar/src/lib/helpers/filtrable.ts","../../../projects/utilscore-ar/src/lib/helpers/searchcolumn.ts","../../../projects/utilscore-ar/src/lib/helpers/servermethod.helper.ts","../../../projects/utilscore-ar/src/lib/helpers/servermethod.ts","../../../projects/utilscore-ar/src/lib/services/previous-route.service.ts","../../../projects/utilscore-ar/src/lib/services/httpbase.service.ts","../../../projects/utilscore-ar/src/lib/services/data.service.ts","../../../projects/utilscore-ar/src/lib/components/crud/crud.service.ts","../../../projects/utilscore-ar/src/lib/services/base.service.ts","../../../projects/utilscore-ar/src/lib/services/relationship.service.ts","../../../projects/utilscore-ar/src/lib/components/crud/crud.directive.ts","../../../projects/utilscore-ar/src/lib/components/auth/tokenerror.ts","../../../projects/utilscore-ar/src/lib/components/auth/token.ts","../../../projects/utilscore-ar/src/lib/components/auth/auth.service.ts","../../../projects/utilscore-ar/src/lib/components/auth/auth.interceptor.ts","../../../projects/utilscore-ar/src/lib/components/auth/auth.module.ts","../../../projects/utilscore-ar/src/lib/components/auth/login.manager.ts","../../../projects/utilscore-ar/src/lib/components/auth/changepassword.manager.ts","../../../projects/utilscore-ar/src/lib/components/form-template/form-utils.ts","../../../projects/utilscore-ar/src/lib/shared/utils.module.ts","../../../projects/utilscore-ar/src/lib/components/form-template/form-template-base.ts","../../../projects/utilscore-ar/src/lib/components/switch/switch.directive.ts","../../../projects/utilscore-ar/src/lib/components/switch/switch.component.ts","../../../projects/utilscore-ar/src/lib/components/switch/switch.component.html","../../../projects/utilscore-ar/src/lib/components/form-template/form-template.component.ts","../../../projects/utilscore-ar/src/lib/components/form-template/form-template.component.html","../../../projects/utilscore-ar/src/lib/components/switch/switch.module.ts","../../../projects/utilscore-ar/src/lib/components/form-buttons/d-switch.component.ts","../../../projects/utilscore-ar/src/lib/components/form-buttons/d-command-btns.component.ts","../../../projects/utilscore-ar/src/lib/components/form-templ/form-templ.component.ts","../../../projects/utilscore-ar/src/lib/components/form-templ/form-templ.component.html","../../../projects/utilscore-ar/src/lib/components/form-buttons/form-buttons.module.ts","../../../projects/utilscore-ar/src/lib/components/form-template/form-template.module.ts","../../../projects/utilscore-ar/src/lib/components/form-template/form-level.ts","../../../projects/utilscore-ar/src/lib/components/upload-btn/upload-btn.service.ts","../../../projects/utilscore-ar/src/lib/components/upload-btn/upload-btn.component.ts","../../../projects/utilscore-ar/src/lib/components/upload-btn/upload-btn.component.html","../../../projects/utilscore-ar/src/lib/components/upload-btn/upload-btn.module.ts","../../../projects/utilscore-ar/src/lib/components/crud/crud.module.ts","../../../projects/utilscore-ar/src/lib/components/input-wrapper/input-wrapper.component.ts","../../../projects/utilscore-ar/src/lib/components/input-wrapper/input-wrapper.component.html","../../../projects/utilscore-ar/src/lib/components/input-wrapper/input-wrapper.module.ts","../../../projects/utilscore-ar/src/lib/components/button-go-to/button-go-to.component.ts","../../../projects/utilscore-ar/src/lib/components/button-go-to/button-go-to.component.html","../../../projects/utilscore-ar/src/lib/components/button-go-to/button-go-to.module.ts","../../../projects/utilscore-ar/src/lib/services/search.service.ts","../../../projects/utilscore-ar/src/lib/validator/uuid/validator.ts","../../../projects/utilscore-ar/src/lib/validator/uuid/directive.ts","../../../projects/utilscore-ar/src/lib/validator/base64/validator.ts","../../../projects/utilscore-ar/src/lib/validator/base64/directive.ts","../../../projects/utilscore-ar/src/lib/validator/credit-card/validator.ts","../../../projects/utilscore-ar/src/lib/validator/credit-card/directive.ts","../../../projects/utilscore-ar/src/lib/validator/date/validator.ts","../../../projects/utilscore-ar/src/lib/validator/date/directive.ts","../../../projects/utilscore-ar/src/lib/validator/date-iso/validator.ts","../../../projects/utilscore-ar/src/lib/validator/date-iso/directive.ts","../../../projects/utilscore-ar/src/lib/validator/digits/validator.ts","../../../projects/utilscore-ar/src/lib/validator/digits/directive.ts","../../../projects/utilscore-ar/src/lib/validator/equal/validator.ts","../../../projects/utilscore-ar/src/lib/validator/equal/directive.ts","../../../projects/utilscore-ar/src/lib/validator/url/validator.ts","../../../projects/utilscore-ar/src/lib/validator/url/directive.ts","../../../projects/utilscore-ar/src/lib/validator/range-length/validator.ts","../../../projects/utilscore-ar/src/lib/validator/range-length/directive.ts","../../../projects/utilscore-ar/src/lib/validator/phone/validator.ts","../../../projects/utilscore-ar/src/lib/validator/phone/directive.ts","../../../projects/utilscore-ar/src/lib/validator/not-equal/validator.ts","../../../projects/utilscore-ar/src/lib/validator/not-equal/directive.ts","../../../projects/utilscore-ar/src/lib/validator/min-date/validator.ts","../../../projects/utilscore-ar/src/lib/validator/min-date/directive.ts","../../../projects/utilscore-ar/src/lib/validator/max/validator.ts","../../../projects/utilscore-ar/src/lib/validator/max/directive.ts","../../../projects/utilscore-ar/src/lib/validator/range/validator.ts","../../../projects/utilscore-ar/src/lib/validator/range/directive.ts","../../../projects/utilscore-ar/src/lib/validator/not-equal-to/validator.ts","../../../projects/utilscore-ar/src/lib/validator/not-equal-to/directive.ts","../../../projects/utilscore-ar/src/lib/validator/equal-to/validator.ts","../../../projects/utilscore-ar/src/lib/validator/equal-to/directive.ts","../../../projects/utilscore-ar/src/lib/validator/greater-than/validator.ts","../../../projects/utilscore-ar/src/lib/validator/greater-than/directive.ts","../../../projects/utilscore-ar/src/lib/validator/greater-than-equal/validator.ts","../../../projects/utilscore-ar/src/lib/validator/greater-than-equal/directive.ts","../../../projects/utilscore-ar/src/lib/validator/json/validator.ts","../../../projects/utilscore-ar/src/lib/validator/json/directive.ts","../../../projects/utilscore-ar/src/lib/validator/less-than/validator.ts","../../../projects/utilscore-ar/src/lib/validator/less-than/directive.ts","../../../projects/utilscore-ar/src/lib/validator/less-than-equal/validator.ts","../../../projects/utilscore-ar/src/lib/validator/less-than-equal/directive.ts","../../../projects/utilscore-ar/src/lib/validator/max-date/validator.ts","../../../projects/utilscore-ar/src/lib/validator/max-date/directive.ts","../../../projects/utilscore-ar/src/lib/validator/min/validator.ts","../../../projects/utilscore-ar/src/lib/validator/min/directive.ts","../../../projects/utilscore-ar/src/lib/validator/email/validator.ts","../../../projects/utilscore-ar/src/lib/validator/email/directive.ts","../../../projects/utilscore-ar/src/lib/validator/number/validator.ts","../../../projects/utilscore-ar/src/lib/validator/number/directive.ts","../../../projects/utilscore-ar/src/lib/validator/validator.module.ts","../../../projects/utilscore-ar/src/lib/directives/auto-scroll.directive.ts","../../../projects/utilscore-ar/src/lib/directives/lazy-loader.directive.ts","../../../projects/utilscore-ar/src/lib/directives/mail-to.directive.ts","../../../projects/utilscore-ar/src/lib/directives/number-input.directive.ts","../../../projects/utilscore-ar/src/lib/directives/object-watcher.directive.ts","../../../projects/utilscore-ar/src/lib/directives/directive.module.ts","../../../projects/utilscore-ar/src/lib/pipes/custom-filter.pipe.ts","../../../projects/utilscore-ar/src/lib/pipes/phone.pipe.ts","../../../projects/utilscore-ar/src/lib/pipes/safe.pipe.ts","../../../projects/utilscore-ar/src/lib/pipes/identification.pipe.ts","../../../projects/utilscore-ar/src/lib/pipes/split-filter.pipe.ts","../../../projects/utilscore-ar/src/lib/pipes/time.pipe.ts","../../../projects/utilscore-ar/src/lib/pipes/timeSecond.pipe.ts","../../../projects/utilscore-ar/src/lib/pipes/select-filter.pipe.ts","../../../projects/utilscore-ar/src/lib/pipes/pipe.module.ts","../../../projects/utilscore-ar/src/lib/managers/service.manager.ts","../../../projects/utilscore-ar/src/lib/components/currency-mask/currency-mask.config.ts","../../../projects/utilscore-ar/src/lib/components/currency-mask/currency-mask.input.manager.ts","../../../projects/utilscore-ar/src/lib/components/currency-mask/currency-mask.input.service.ts","../../../projects/utilscore-ar/src/lib/components/currency-mask/currency-mask.input.handler.ts","../../../projects/utilscore-ar/src/lib/components/currency-mask/currency-mask.directive.ts","../../../projects/utilscore-ar/src/lib/components/currency-mask/currency-mask.module.ts","../../../projects/utilscore-ar/src/lib/managers/requery.manager.ts","../../../projects/utilscore-ar/src/lib/services/appTitle.service.ts","../../../projects/utilscore-ar/src/public-api.ts","../../../projects/utilscore-ar/src/utilscore-ar.ts"],"sourcesContent":["export enum ModelState {\r\n  Browse,\r\n  Add,\r\n  Edit,\r\n  Delete,\r\n  Added,\r\n  Edited,\r\n  Deleted,\r\n  Canceled,\r\n  Loaded,\r\n  Loading,\r\n  MaskAsDeleted,\r\n  Error,\r\n  SettingChange,\r\n  StateChange\r\n}\r\n\r\nexport enum DeletionMode {\r\n  Hard,\r\n  Soft\r\n}\r\n\r\nexport enum DataType {\r\n  String = 0,\r\n  Number = 1,\r\n  Date = 2,\r\n  Boolean = 3,\r\n  Lookup = 4,\r\n  Guid = 5\r\n}\r\n\r\nexport enum FilterOperator {\r\n  None = 0,\r\n  Contains = 1,\r\n  GreaterThan = 2,\r\n  GreaterThanOrEqual = 4,\r\n  LessThan = 8,\r\n  LessThanOrEqualTo = 16,\r\n  StartsWith = 32,\r\n  EndsWith = 64,\r\n  Equals = 128,\r\n  NotEqual = 256,\r\n  Between = 1024,\r\n  In = 2048\r\n}\r\n\r\nexport enum DefaultWhenType {\r\n  None = 0,\r\n  Numeric = 1,\r\n  Text = 2\r\n}\r\n\r\nexport enum CrudAction {\r\n  None = 0,\r\n  Load = 1,\r\n  Create = 2,\r\n  Read = 4,\r\n  Update = 8,\r\n  Delete = 16\r\n}\r\n\r\nexport enum TriggerAction {\r\n  none,\r\n  open,\r\n  close\r\n}\r\n\r\nexport enum NavigationMode {\r\n  Default = 0,\r\n  Routing = 1,\r\n  Modal = 2\r\n}\r\n\r\nexport enum DismissReason {\r\n  Cancel,\r\n  Ok\r\n}\r\n\r\nexport enum ListAction {\r\n  Add,\r\n  Edit,\r\n  Delete,\r\n  Paginate,\r\n  Refresh\r\n}\r\n\r\nexport enum PushMode {\r\n  Last,\r\n  First,\r\n  Current\r\n}\r\n\r\nexport enum ValueType {\r\n  undefined,\r\n  constant,\r\n  function,\r\n  property\r\n}\r\n\r\nexport enum SortDirection {\r\n  Ascendent,\r\n  Descendent\r\n}\r\n","export enum HttpStatusCode {\r\n  /// <summary>Equivalent to HTTP status 100. <see cref=\"F:System.Net.HttpStatusCode.Continue\" /> indicates that the client can continue with its request.</summary>\r\n  Continue = 100, // 0x00000064\r\n  /// <summary>Equivalent to HTTP status 101. <see cref=\"F:System.Net.HttpStatusCode.SwitchingProtocols\" /> indicates that the protocol version or protocol is being changed.</summary>\r\n  SwitchingProtocols = 101, // 0x00000065\r\n  /// <summary>Equivalent to HTTP status 200. <see cref=\"F:System.Net.HttpStatusCode.OK\" /> indicates that the request succeeded and that the requested information is in the response. This is the most common status code to receive.</summary>\r\n  OK = 200, // 0x000000C8\r\n  /// <summary>Equivalent to HTTP status 201. <see cref=\"F:System.Net.HttpStatusCode.Created\" /> indicates that the request resulted in a new resource created before the response was sent.</summary>\r\n  Created = 201, // 0x000000C9\r\n  /// <summary>Equivalent to HTTP status 202. <see cref=\"F:System.Net.HttpStatusCode.Accepted\" /> indicates that the request has been accepted for further processing.</summary>\r\n  Accepted = 202, // 0x000000CA\r\n  /// <summary>Equivalent to HTTP status 203. <see cref=\"F:System.Net.HttpStatusCode.NonAuthoritativeInformation\" /> indicates that the returned metainformation is from a cached copy instead of the origin server and therefore may be incorrect.</summary>\r\n  NonAuthoritativeInformation = 203, // 0x000000CB\r\n  /// <summary>Equivalent to HTTP status 204. <see cref=\"F:System.Net.HttpStatusCode.NoContent\" /> indicates that the request has been successfully processed and that the response is intentionally blank.</summary>\r\n  NoContent = 204, // 0x000000CC\r\n  /// <summary>Equivalent to HTTP status 205. <see cref=\"F:System.Net.HttpStatusCode.ResetContent\" /> indicates that the client should reset (not reload) the current resource.</summary>\r\n  ResetContent = 205, // 0x000000CD\r\n  /// <summary>Equivalent to HTTP status 206. <see cref=\"F:System.Net.HttpStatusCode.PartialContent\" /> indicates that the response is a partial response as requested by a GET request that includes a byte range.</summary>\r\n  PartialContent = 206, // 0x000000CE\r\n  /// <summary>Equivalent to HTTP status 300. <see cref=\"F:System.Net.HttpStatusCode.Ambiguous\" /> indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response.</summary>\r\n  Ambiguous = 300, // 0x0000012C\r\n  /// <summary>Equivalent to HTTP status 300. <see cref=\"F:System.Net.HttpStatusCode.MultipleChoices\" /> indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response.</summary>\r\n  MultipleChoices = 300, // 0x0000012C\r\n  /// <summary>Equivalent to HTTP status 301. <see cref=\"F:System.Net.HttpStatusCode.Moved\" /> indicates that the requested information has been moved to the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method.</summary>\r\n  Moved = 301, // 0x0000012D\r\n  /// <summary>Equivalent to HTTP status 301. <see cref=\"F:System.Net.HttpStatusCode.MovedPermanently\" /> indicates that the requested information has been moved to the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response.</summary>\r\n  MovedPermanently = 301, // 0x0000012D\r\n  /// <summary>Equivalent to HTTP status 302. <see cref=\"F:System.Net.HttpStatusCode.Found\" /> indicates that the requested information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method.</summary>\r\n  Found = 302, // 0x0000012E\r\n  /// <summary>Equivalent to HTTP status 302. <see cref=\"F:System.Net.HttpStatusCode.Redirect\" /> indicates that the requested information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method.</summary>\r\n  Redirect = 302, // 0x0000012E\r\n  /// <summary>Equivalent to HTTP status 303. <see cref=\"F:System.Net.HttpStatusCode.RedirectMethod\" /> automatically redirects the client to the URI specified in the Location header as the result of a POST. The request to the resource specified by the Location header will be made with a GET.</summary>\r\n  RedirectMethod = 303, // 0x0000012F\r\n  /// <summary>Equivalent to HTTP status 303. <see cref=\"F:System.Net.HttpStatusCode.SeeOther\" /> automatically redirects the client to the URI specified in the Location header as the result of a POST. The request to the resource specified by the Location header will be made with a GET.</summary>\r\n  SeeOther = 303, // 0x0000012F\r\n  /// <summary>Equivalent to HTTP status 304. <see cref=\"F:System.Net.HttpStatusCode.NotModified\" /> indicates that the client's cached copy is up to date. The contents of the resource are not transferred.</summary>\r\n  NotModified = 304, // 0x00000130\r\n  /// <summary>Equivalent to HTTP status 305. <see cref=\"F:System.Net.HttpStatusCode.UseProxy\" /> indicates that the request should use the proxy server at the URI specified in the Location header.</summary>\r\n  UseProxy = 305, // 0x00000131\r\n  /// <summary>Equivalent to HTTP status 306. <see cref=\"F:System.Net.HttpStatusCode.Unused\" /> is a proposed extension to the HTTP/1.1 specification that is not fully specified.</summary>\r\n  Unused = 306, // 0x00000132\r\n  /// <summary>Equivalent to HTTP status 307. <see cref=\"F:System.Net.HttpStatusCode.RedirectKeepVerb\" /> indicates that the request information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will also use the POST method.</summary>\r\n  RedirectKeepVerb = 307, // 0x00000133\r\n  /// <summary>Equivalent to HTTP status 307. <see cref=\"F:System.Net.HttpStatusCode.TemporaryRedirect\" /> indicates that the request information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will also use the POST method.</summary>\r\n  TemporaryRedirect = 307, // 0x00000133\r\n  /// <summary>Equivalent to HTTP status 400. <see cref=\"F:System.Net.HttpStatusCode.BadRequest\" /> indicates that the request could not be understood by the server. <see cref=\"F:System.Net.HttpStatusCode.BadRequest\" /> is sent when no other error is applicable, or if the exact error is unknown or does not have its own error code.</summary>\r\n  BadRequest = 400, // 0x00000190\r\n  /// <summary>Equivalent to HTTP status 401. <see cref=\"F:System.Net.HttpStatusCode.Unauthorized\" /> indicates that the requested resource requires authentication. The WWW-Authenticate header contains the details of how to perform the authentication.</summary>\r\n  Unauthorized = 401, // 0x00000191\r\n  /// <summary>Equivalent to HTTP status 402. <see cref=\"F:System.Net.HttpStatusCode.PaymentRequired\" /> is reserved for future use.</summary>\r\n  PaymentRequired = 402, // 0x00000192\r\n  /// <summary>Equivalent to HTTP status 403. <see cref=\"F:System.Net.HttpStatusCode.Forbidden\" /> indicates that the server refuses to fulfill the request.</summary>\r\n  Forbidden = 403, // 0x00000193\r\n  /// <summary>Equivalent to HTTP status 404. <see cref=\"F:System.Net.HttpStatusCode.NotFound\" /> indicates that the requested resource does not exist on the server.</summary>\r\n  NotFound = 404, // 0x00000194\r\n  /// <summary>Equivalent to HTTP status 405. <see cref=\"F:System.Net.HttpStatusCode.MethodNotAllowed\" /> indicates that the request method (POST or GET) is not allowed on the requested resource.</summary>\r\n  MethodNotAllowed = 405, // 0x00000195\r\n  /// <summary>Equivalent to HTTP status 406. <see cref=\"F:System.Net.HttpStatusCode.NotAcceptable\" /> indicates that the client has indicated with Accept headers that it will not accept any of the available representations of the resource.</summary>\r\n  NotAcceptable = 406, // 0x00000196\r\n  /// <summary>Equivalent to HTTP status 407. <see cref=\"F:System.Net.HttpStatusCode.ProxyAuthenticationRequired\" /> indicates that the requested proxy requires authentication. The Proxy-authenticate header contains the details of how to perform the authentication.</summary>\r\n  ProxyAuthenticationRequired = 407, // 0x00000197\r\n  /// <summary>Equivalent to HTTP status 408. <see cref=\"F:System.Net.HttpStatusCode.RequestTimeout\" /> indicates that the client did not send a request within the time the server was expecting the request.</summary>\r\n  RequestTimeout = 408, // 0x00000198\r\n  /// <summary>Equivalent to HTTP status 409. <see cref=\"F:System.Net.HttpStatusCode.Conflict\" /> indicates that the request could not be carried out because of a conflict on the server.</summary>\r\n  Conflict = 409, // 0x00000199\r\n  /// <summary>Equivalent to HTTP status 410. <see cref=\"F:System.Net.HttpStatusCode.Gone\" /> indicates that the requested resource is no longer available.</summary>\r\n  Gone = 410, // 0x0000019A\r\n  /// <summary>Equivalent to HTTP status 411. <see cref=\"F:System.Net.HttpStatusCode.LengthRequired\" /> indicates that the required Content-length header is missing.</summary>\r\n  LengthRequired = 411, // 0x0000019B\r\n  /// <summary>Equivalent to HTTP status 412. <see cref=\"F:System.Net.HttpStatusCode.PreconditionFailed\" /> indicates that a condition set for this request failed, and the request cannot be carried out. Conditions are set with conditional request headers like If-Match, If-None-Match, or If-Unmodified-Since.</summary>\r\n  PreconditionFailed = 412, // 0x0000019C\r\n  /// <summary>Equivalent to HTTP status 413. <see cref=\"F:System.Net.HttpStatusCode.RequestEntityTooLarge\" /> indicates that the request is too large for the server to process.</summary>\r\n  RequestEntityTooLarge = 413, // 0x0000019D\r\n  /// <summary>Equivalent to HTTP status 414. <see cref=\"F:System.Net.HttpStatusCode.RequestUriTooLong\" /> indicates that the URI is too long.</summary>\r\n  RequestUriTooLong = 414, // 0x0000019E\r\n  /// <summary>Equivalent to HTTP status 415. <see cref=\"F:System.Net.HttpStatusCode.UnsupportedMediaType\" /> indicates that the request is an unsupported type.</summary>\r\n  UnsupportedMediaType = 415, // 0x0000019F\r\n  /// <summary>Equivalent to HTTP status 416. <see cref=\"F:System.Net.HttpStatusCode.RequestedRangeNotSatisfiable\" /> indicates that the range of data requested from the resource cannot be returned, either because the beginning of the range is before the beginning of the resource, or the end of the range is after the end of the resource.</summary>\r\n  RequestedRangeNotSatisfiable = 416, // 0x000001A0\r\n  /// <summary>Equivalent to HTTP status 417. <see cref=\"F:System.Net.HttpStatusCode.ExpectationFailed\" /> indicates that an expectation given in an Expect header could not be met by the server.</summary>\r\n  ExpectationFailed = 417, // 0x000001A1\r\n  /// <summary>Equivalent to HTTP status 426. <see cref=\"F:System.Net.HttpStatusCode.UpgradeRequired\" /> indicates that the client should switch to a different protocol such as TLS/1.0.</summary>\r\n  UpgradeRequired = 426, // 0x000001AA\r\n  /// <summary>Equivalent to HTTP status 500. <see cref=\"F:System.Net.HttpStatusCode.InternalServerError\" /> indicates that a generic error has occurred on the server.</summary>\r\n  InternalServerError = 500, // 0x000001F4\r\n  /// <summary>Equivalent to HTTP status 501. <see cref=\"F:System.Net.HttpStatusCode.NotImplemented\" /> indicates that the server does not support the requested function.</summary>\r\n  NotImplemented = 501, // 0x000001F5\r\n  /// <summary>Equivalent to HTTP status 502. <see cref=\"F:System.Net.HttpStatusCode.BadGateway\" /> indicates that an intermediate proxy server received a bad response from another proxy or the origin server.</summary>\r\n  BadGateway = 502, // 0x000001F6\r\n  /// <summary>Equivalent to HTTP status 503. <see cref=\"F:System.Net.HttpStatusCode.ServiceUnavailable\" /> indicates that the server is temporarily unavailable, usually due to high load or maintenance.</summary>\r\n  ServiceUnavailable = 503, // 0x000001F7\r\n  /// <summary>Equivalent to HTTP status 504. <see cref=\"F:System.Net.HttpStatusCode.GatewayTimeout\" /> indicates that an intermediate proxy server timed out while waiting for a response from another proxy or the origin server.</summary>\r\n  GatewayTimeout = 504, // 0x000001F8\r\n  /// <summary>Equivalent to HTTP status 505. <see cref=\"F:System.Net.HttpStatusCode.HttpVersionNotSupported\" /> indicates that the requested HTTP version is not supported by the server.</summary>\r\n  HttpVersionNotSupported = 505 // 0x000001F9\r\n}\r\n","import { getErrorMessage } from '../helpers/function';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport interface IErrorResult {\r\n  title: string;\r\n  message?: string;\r\n  enableHtml?: boolean;\r\n  closeButton?: boolean;\r\n}\r\n\r\nexport abstract class ErrorHandler {\r\n  abstract processError(er: HttpErrorResponse): IErrorResult;\r\n\r\n  toErrorResult(error?: string): IErrorResult {\r\n    return {\r\n      title: 'Error',\r\n      message: error,\r\n      enableHtml: true,\r\n      closeButton: true\r\n    };\r\n  }\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class DefaultErrorHandler extends ErrorHandler {\r\n  processError(er: HttpErrorResponse): IErrorResult {\r\n    return {\r\n      title: 'Error',\r\n      message: getErrorMessage(er),\r\n      enableHtml: true,\r\n      closeButton: true\r\n    };\r\n  }\r\n}\r\n\r\n/**\r\n *Machine readable error\r\n *\r\n * @export\r\n * @class MrErrorHandler\r\n * @extends {ErrorHandler}\r\n */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class MrErrorHandler extends ErrorHandler {\r\n  formatterFunc = (line: string) => `&#9658; ${line} <br/>`;\r\n\r\n  processError(er: HttpErrorResponse): IErrorResult {\r\n    if (typeof er.error === 'object' && er.error.title) {\r\n      return {\r\n        title: er.error.title,\r\n        message: this.format(er.error),\r\n        enableHtml: true,\r\n        closeButton: true\r\n      };\r\n    }\r\n\r\n    return {\r\n      title: 'Error',\r\n      message: getErrorMessage(er),\r\n      enableHtml: true,\r\n      closeButton: true\r\n    };\r\n  }\r\n\r\n  protected format(error: any): string {\r\n    let detail = '';\r\n\r\n    if (error.detail) detail = error.detail;\r\n\r\n    if (error.errors) {\r\n      for (const err in error.errors) {\r\n        for (const element of error.errors[err]) detail += this.formatterFunc(element);\r\n      }\r\n    }\r\n\r\n    return detail;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport type RequestAction = 'add' | 'edit' | 'delete' | 'requery' | 'settings';\r\nexport type RequestExtra = (model: any, wrapper: any, action: RequestAction) => any;\r\n\r\n/**\r\n *Sirve como envoltura para el envio del modelo al servidor\r\n de este manera es posible enviar informacion adicional al servidor.\r\n *\r\n * @export\r\n * @class ModelWrapper\r\n * @template T\r\n */\r\nexport class RequestWrapper {\r\n  Properties: { [key: string]: any } = {};\r\n\r\n  constructor(public Model: any, property?: { [key: string]: any }) {\r\n    Object.assign(this.Properties, property);\r\n  }\r\n}\r\n\r\nexport abstract class RequestWrapperStrategy {\r\n  abstract execute(model: any, wrapper?: any, action?: RequestAction, strategy?: RequestExtra): any;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DefaultRequestWrapper extends RequestWrapperStrategy {\r\n  execute(model: any) {\r\n    return model;\r\n  }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DesycoRequestWrapper extends RequestWrapperStrategy {\r\n  execute(model: any, wrapper: any, action: RequestAction, strategy: RequestExtra) {\r\n    return strategy(model, wrapper, action);\r\n  }\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { DefaultErrorHandler, ErrorHandler } from '../services/error-handler';\r\nimport { DefaultRequestWrapper, RequestWrapperStrategy } from '../services/modelwrapper-strategy';\r\n\r\nlet appInjectorRef: Injector;\r\nlet internalInjector: Injector;\r\n\r\nexport const appInjector = (injector?: Injector): Injector => {\r\n  //inicia el injector local\r\n\r\n  if (injector) {\r\n    appInjectorRef = injector;\r\n\r\n    internalInjector = Injector.create({\r\n      providers: [\r\n        { provide: ErrorHandler, useClass: DefaultErrorHandler, deps: [] },\r\n        {\r\n          provide: RequestWrapperStrategy,\r\n          useClass: DefaultRequestWrapper,\r\n          deps: []\r\n        }\r\n      ]\r\n    });\r\n  }\r\n\r\n  return appInjectorRef;\r\n};\r\n\r\nexport class ServiceLocator {\r\n  static get(service: any) {\r\n    try {\r\n      // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n      return appInjector().get(service);\r\n    } catch {\r\n      return internalInjector.get(service);\r\n    }\r\n  }\r\n}\r\n","import { IAuthConfig, IAuthRoute } from './auth.interfaces';\r\n\r\nexport enum TokenStorage {\r\n  SESSION_STORAGE,\r\n  LOCAL_STORAGE\r\n}\r\n\r\nexport const AUTH_CONFIG_DEFAULTS: IAuthConfig = {\r\n    TokenName: 'token',\r\n    RefreshTokenName: 'refresh_token',\r\n    HeaderName: 'Authorization',\r\n    HeaderPrefix: 'Bearer',\r\n    NoJwtError: false,\r\n    TokenStorage: TokenStorage.LOCAL_STORAGE\r\n  },\r\n  AUTH_ROUTE_DEFAULTS: IAuthRoute = {\r\n    LoginSegment: 'Account/Login',\r\n    RegisterSegment: 'Account/Register',\r\n    LogOutSegment: 'Account/Logout',\r\n    RefreshSegment: 'Account/Refresh',\r\n    ChangePasswordSegment: 'Account/ChangePassword',\r\n    ResetPasswordSegment: 'Account/ResetPassword',\r\n    ToogleDisabledSegment: 'Account/ToogleDisabled',\r\n    LoginUrl: '/login',\r\n    ChangePasswordUrl: '/change-password'\r\n  };\r\n","import { IAuthRoute } from './auth.interfaces';\r\nimport { AUTH_ROUTE_DEFAULTS } from './helper';\r\n\r\nexport class AuthRoute implements IAuthRoute {\r\n  LoginSegment?: string;\r\n  RegisterSegment?: string;\r\n  LogOutSegment?: string;\r\n  RefreshSegment?: string;\r\n  ChangePasswordSegment?: string;\r\n  ResetPasswordSegment?: string;\r\n  ToogleDisabledSegment?: string;\r\n  LoginUrl?: string;\r\n  ChangePasswordUrl?: string;\r\n\r\n  constructor(config: IAuthRoute = {}) {\r\n    for (const option in config) {\r\n      // @ts-ignore\r\n      this[option] = config[option];\r\n    }\r\n\r\n    for (const option in AUTH_ROUTE_DEFAULTS) {\r\n      // @ts-ignore\r\n      this[option] = config[option] ? config[option] : AUTH_ROUTE_DEFAULTS[option];\r\n    }\r\n  }\r\n}\r\n","import { IAuthConfig } from './auth.interfaces';\r\nimport { AUTH_CONFIG_DEFAULTS, TokenStorage } from './helper';\r\n\r\nexport class AuthConfig implements IAuthConfig {\r\n  GlobalHeaders: Array<Object> | undefined;\r\n  HeaderName: string | undefined;\r\n  HeaderPrefix: string | undefined;\r\n  NoJwtError: boolean | undefined;\r\n  TokenName: string | undefined;\r\n  RefreshTokenName: string | undefined;\r\n  TokenStorage: TokenStorage | undefined;\r\n\r\n  constructor(config: IAuthConfig = {}) {\r\n    for (const option in config) {\r\n      // @ts-ignore\r\n      this[option] = config[option];\r\n    }\r\n\r\n    for (const option in AUTH_CONFIG_DEFAULTS) {\r\n      // @ts-ignore\r\n      this[option] = config[option] ? config[option] : AUTH_CONFIG_DEFAULTS[option];\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AuthRoute } from '../components/auth/auth.route';\r\nimport { AuthConfig } from '../components/auth/auth.config';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { first } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ConfigService {\r\n  configuration: any = {};\r\n  blockerSubject = new BehaviorSubject<boolean>(false);\r\n  minDate = new Date('1900-01-01T00:00:00Z');\r\n  maxDate = new Date('2099-12-31T00:00:00Z');\r\n  dateFormat = 'dd/mm/yyyy';\r\n  appNameKey = 'appName';\r\n\r\n  /*\r\n   configuracion global para poder activa o desactivar opciones y poder controlar los comportamientos\r\n   de los servicios y clases de la librería\r\n  */\r\n  readonly blockUIOptions = {\r\n    /*\r\n    @turnOff: boolean = false; apaga el blockUI y evita que emita durante toda la ejecucion del SPA\r\n     */\r\n    turnOff: false,\r\n    /*\r\n    @turnOffOnce: boolean = false; esta variable se valida cada vez que se dispara el bloquer. Si es true y blocker.turnOff = false\r\n    entones el bloque no se disparará en esa sola ocasión una vez evaluada volvera a ser false\r\n     */\r\n    turnOffOnce: false,\r\n    /*\r\n    @active: boolean = false; Indica si el blocker esta activo o no\r\n     */\r\n    active: false,\r\n    skipFinalizeInterceptorOnce: false\r\n  };\r\n\r\n  constructor(public http: HttpClient) {}\r\n\r\n  load(url: string): Promise<any> {\r\n    return new Promise(resolve => {\r\n      this.http\r\n        .get(url)\r\n        .pipe(first())\r\n        .subscribe({\r\n          next: config => {\r\n            try {\r\n              this.configuration = config;\r\n              const appName = localStorage.getItem(this.appNameKey);\r\n\r\n              if (appName) this.activeConfiguration = appName;\r\n\r\n              if (!this.configuration)\r\n                this.configuration = {\r\n                  config: {}\r\n                };\r\n\r\n              this.configuration.config.AuthRoute = new AuthRoute(this.configuration.config.AuthRoute);\r\n              this.configuration.config.AuthConfig = new AuthConfig(this.configuration.config.AuthConfig);\r\n\r\n              resolve(config);\r\n            } catch {\r\n              throw new Error('Error leyendo archivo config.json');\r\n            }\r\n          },\r\n          error: error => {\r\n            throw new Error(error);\r\n          }\r\n        });\r\n    });\r\n  }\r\n\r\n  getUrlApi(segment?: string): string {\r\n    try {\r\n      const { config } = this.configuration;\r\n\r\n      if (config) {\r\n        const active = config?.apps?.find((val: any) => val.key === config.active);\r\n\r\n        if (active) {\r\n          if (location.protocol === 'https:' && active.api.includes('http:'))\r\n            active.api = active.api.replace('http:', 'https:');\r\n\r\n          return `${active.api}${segment || ''}`;\r\n        }\r\n      }\r\n\r\n      return '';\r\n    } catch {\r\n      throw new Error('Error reading configuration file');\r\n    }\r\n  }\r\n\r\n  set skipFinalizeInterceptorOnce(value: boolean) {\r\n    this.blockUIOptions.skipFinalizeInterceptorOnce = value;\r\n  }\r\n\r\n  get skipFinalizeInterceptorOnce() {\r\n    return this.blockUIOptions.skipFinalizeInterceptorOnce;\r\n  }\r\n\r\n  get urlReport(): string {\r\n    try {\r\n      const { config } = this.configuration;\r\n\r\n      if (config) {\r\n        const active = config?.apps?.find((val: any) => val.key === config.active);\r\n\r\n        if (active) {\r\n          if (location.protocol === 'https:' && active.report.includes('http:'))\r\n            active.report = active.report.replace('http:', 'https:');\r\n\r\n          return active.report;\r\n        }\r\n      }\r\n\r\n      return '';\r\n    } catch {\r\n      throw new Error('Error reading configuration file');\r\n    }\r\n  }\r\n\r\n  get disableGuard(): boolean {\r\n    try {\r\n      const { config } = this.configuration;\r\n\r\n      if (config) {\r\n        const active = config?.apps?.find((val: any) => val.key === config.active);\r\n\r\n        if (active) return active.disableGuard;\r\n      }\r\n\r\n      return false;\r\n    } catch {\r\n      throw new Error('Error reading configuration file');\r\n    }\r\n  }\r\n\r\n  set activeConfiguration(key: string) {\r\n    this.configuration.config.active = key;\r\n  }\r\n\r\n  get activeConfiguration(): string {\r\n    return this.configuration.config.active;\r\n  }\r\n\r\n  get configurationApps(): any[] {\r\n    return this.configuration.config.apps;\r\n  }\r\n\r\n  get activeAppName(): string {\r\n    const { config } = this.configuration;\r\n\r\n    if (config) {\r\n      const active = config?.apps?.find((val: any) => val.key === config.active);\r\n\r\n      return active ? active.name : '';\r\n    }\r\n\r\n    throw new Error('Application active name not found');\r\n  }\r\n\r\n  get authRoute(): AuthRoute {\r\n    return this.configuration?.config?.AuthRoute ?? null;\r\n  }\r\n\r\n  get authConfig(): AuthConfig {\r\n    return this.configuration?.config?.AuthConfig ?? null;\r\n  }\r\n\r\n  get hasAuthConfig() {\r\n    return !!this.authConfig;\r\n  }\r\n\r\n  set turnOffOnceBlocker(turnOffOnce: boolean) {\r\n    this.blockUIOptions.turnOffOnce = turnOffOnce;\r\n  }\r\n\r\n  set turnOffBlocker(turnOff: boolean) {\r\n    this.blockUIOptions.turnOff = turnOff;\r\n  }\r\n\r\n  set activeBlocker(active: boolean) {\r\n    this.blockUIOptions.active = active;\r\n  }\r\n\r\n  set blocker(value: boolean) {\r\n    if (this.activeBlocker === value) return;\r\n\r\n    this.blockUIOptions.active = value;\r\n\r\n    if (this.turnOffBlocker) return;\r\n\r\n    if (this.turnOffOnceBlocker) {\r\n      this.turnOffOnceBlocker = false;\r\n      return;\r\n    }\r\n\r\n    this.blockerSubject.next(this.activeBlocker);\r\n  }\r\n\r\n  get turnOffOnceBlocker() {\r\n    return this.blockUIOptions.turnOffOnce;\r\n  }\r\n\r\n  get turnOffBlocker() {\r\n    return this.blockUIOptions.turnOff;\r\n  }\r\n\r\n  get activeBlocker() {\r\n    return this.blockUIOptions.active;\r\n  }\r\n\r\n  get blocker() {\r\n    return this.activeBlocker && !this.turnOffBlocker && this.turnOffOnceBlocker;\r\n  }\r\n}\r\n","export class ClaimTypes {\r\n  static readonly ClaimTypeNamespace = 'http://schemas.microsoft.com/ws/2008/06/identity/claims';\r\n  /// <summary>The URI for a claim that specifies the instant at which an entity was authenticated; http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant.</summary>\r\n  static readonly AuthenticationInstant =\r\n    'http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant';\r\n  /// <summary>The URI for a claim that specifies the method with which an entity was authenticated; http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod.</summary>\r\n  static readonly AuthenticationMethod = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod';\r\n  /// <summary>The URI for a claim that specifies the cookie path; http://schemas.microsoft.com/ws/2008/06/identity/claims/cookiepath.</summary>\r\n  static readonly CookiePath = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/cookiepath';\r\n  /// <summary>The URI for a claim that specifies the deny-only primary SID on an entity; http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid. A deny-only SID denies the specified entity to a securable object.</summary>\r\n  static readonly DenyOnlyPrimarySid = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid';\r\n  /// <summary>The URI for a claim that specifies the deny-only primary group SID on an entity; http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid. A deny-only SID denies the specified entity to a securable object.</summary>\r\n  static readonly DenyOnlyPrimaryGroupSid =\r\n    'http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlywindowsdevicegroup.</summary>\r\n  static readonly DenyOnlyWindowsDeviceGroup =\r\n    'http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlywindowsdevicegroup';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/dsa.</summary>\r\n  static readonly Dsa = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/dsa';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/expiration.</summary>\r\n  static readonly Expiration = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/expiration';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/expired.</summary>\r\n  static readonly Expired = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/expired';\r\n  /// <summary>The URI for a claim that specifies the SID for the group of an entity, http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid.</summary>\r\n  static readonly GroupSid = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/ispersistent.</summary>\r\n  static readonly IsPersistent = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/ispersistent';\r\n  /// <summary>The URI for a claim that specifies the primary group SID of an entity, http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid.</summary>\r\n  static readonly PrimaryGroupSid = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid';\r\n  /// <summary>The URI for a claim that specifies the primary SID of an entity, http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid.</summary>\r\n  static readonly PrimarySid = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid';\r\n  /// <summary>The URI for a claim that specifies the role of an entity, http://schemas.microsoft.com/ws/2008/06/identity/claims/role.</summary>\r\n  static readonly Role = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role';\r\n  /// <summary>The URI for a claim that specifies a serial number, http://schemas.microsoft.com/ws/2008/06/identity/claims/serialnumber.</summary>\r\n  static readonly SerialNumber = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/serialnumber';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/userdata.</summary>\r\n  static readonly UserData = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/userdata';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/version.</summary>\r\n  static readonly Version = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/version';\r\n  /// <summary>The URI for a claim that specifies the Windows domain account name of an entity, http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname.</summary>\r\n  static readonly WindowsAccountName = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdeviceclaim.</summary>\r\n  static readonly WindowsDeviceClaim = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdeviceclaim';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdevicegroup.</summary>\r\n  static readonly WindowsDeviceGroup = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdevicegroup';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsuserclaim.</summary>\r\n  static readonly WindowsUserClaim = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsuserclaim';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsfqbnversion.</summary>\r\n  static readonly WindowsFqbnVersion = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsfqbnversion';\r\n  /// <summary>http://schemas.microsoft.com/ws/2008/06/identity/claims/windowssubauthority.</summary>\r\n  static readonly WindowsSubAuthority = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/windowssubauthority';\r\n  static readonly ClaimType2005Namespace = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims';\r\n  /// <summary>The URI for a claim that specifies the anonymous user; http://schemas.xmlsoap.org/ws/2005/05/identity/claims/anonymous.</summary>\r\n  static readonly Anonymous = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/anonymous';\r\n  /// <summary>The URI for a claim that specifies details about whether an identity is authenticated, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authenticated.</summary>\r\n  static readonly Authentication = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication';\r\n  /// <summary>The URI for a claim that specifies an authorization decision on an entity; http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision.</summary>\r\n  static readonly AuthorizationDecision = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision';\r\n  /// <summary>The URI for a claim that specifies the country/region in which an entity resides, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country.</summary>\r\n  static readonly Country = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country';\r\n  /// <summary>The URI for a claim that specifies the date of birth of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth.</summary>\r\n  static readonly DateOfBirth = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth';\r\n  /// <summary>The URI for a claim that specifies the DNS name associated with the computer name or with the alternative name of either the subject or issuer of an X.509 certificate, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns.</summary>\r\n  static readonly Dns = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns';\r\n  /// <summary>The URI for a claim that specifies a deny-only security identifier (SID) for an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid. A deny-only SID denies the specified entity to a securable object.</summary>\r\n  static readonly DenyOnlySid = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid';\r\n  /// <summary>The URI for a claim that specifies the email address of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/email.</summary>\r\n  static readonly Email = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress';\r\n  /// <summary>The URI for a claim that specifies the gender of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/gender.</summary>\r\n  static readonly Gender = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/gender';\r\n  /// <summary>The URI for a claim that specifies the given name of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname.</summary>\r\n  static readonly GivenName = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname';\r\n  /// <summary>The URI for a claim that specifies a hash value, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/hash.</summary>\r\n  static readonly Hash = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/hash';\r\n  /// <summary>The URI for a claim that specifies the home phone number of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/homephone.</summary>\r\n  static readonly HomePhone = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/homephone';\r\n  /// <summary>The URI for a claim that specifies the locale in which an entity resides, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality.</summary>\r\n  static readonly Locality = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality';\r\n  /// <summary>The URI for a claim that specifies the mobile phone number of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone.</summary>\r\n  static readonly MobilePhone = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone';\r\n  /// <summary>The URI for a claim that specifies the name of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name.</summary>\r\n  static readonly Name = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name';\r\n  /// <summary>The URI for a claim that specifies the name of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier.</summary>\r\n  static readonly NameIdentifier = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier';\r\n  /// <summary>The URI for a claim that specifies the alternative phone number of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone.</summary>\r\n  static readonly OtherPhone = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone';\r\n  /// <summary>The URI for a claim that specifies the postal code of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode.</summary>\r\n  static readonly PostalCode = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode';\r\n  /// <summary>The URI for a claim that specifies an RSA key, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa.</summary>\r\n  static readonly Rsa = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa';\r\n  /// <summary>The URI for a claim that specifies a security identifier (SID), http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid.</summary>\r\n  static readonly Sid = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid';\r\n  /// <summary>The URI for a claim that specifies a service principal name (SPN) claim, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn.</summary>\r\n  static readonly Spn = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn';\r\n  /// <summary>The URI for a claim that specifies the state or province in which an entity resides, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince.</summary>\r\n  static readonly StateOrProvince = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince';\r\n  /// <summary>The URI for a claim that specifies the street address of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress.</summary>\r\n  static readonly StreetAddress = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress';\r\n  /// <summary>The URI for a claim that specifies the surname of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname.</summary>\r\n  static readonly Surname = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname';\r\n  /// <summary>The URI for a claim that identifies the system entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/system.</summary>\r\n  static readonly System = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/system';\r\n  /// <summary>The URI for a claim that specifies a thumbprint, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint. A thumbprint is a globally unique SHA-1 hash of an X.509 certificate.</summary>\r\n  static readonly Thumbprint = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint';\r\n  /// <summary>The URI for a claim that specifies a user principal name (UPN), http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn.</summary>\r\n  static readonly Upn = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn';\r\n  /// <summary>The URI for a claim that specifies a URI, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/uri.</summary>\r\n  static readonly Uri = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/uri';\r\n  /// <summary>The URI for a claim that specifies the webpage of an entity, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/webpage.</summary>\r\n  static readonly Webpage = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/webpage';\r\n  /// <summary>The URI for a distinguished name claim of an X.509 certificate, http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname. The X.500 standard defines the methodology for defining distinguished names that are used by X.509 certificates.</summary>\r\n  static readonly X500DistinguishedName = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname';\r\n  static readonly ClaimType2009Namespace = 'http://schemas.xmlsoap.org/ws/2009/09/identity/claims';\r\n  /// <summary>http://schemas.xmlsoap.org/ws/2009/09/identity/claims/actor.</summary>\r\n  static readonly Actor = 'http://schemas.xmlsoap.org/ws/2009/09/identity/claims/actor';\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TokenStorage } from './helper';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport { ClaimTypes } from '../../helpers/claimtype';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n  constructor(private _configService: ConfigService) {}\r\n\r\n  private static _b64decode(str: string) {\r\n    const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\n    let output = '';\r\n\r\n    str = String(str).replace(/=+$/, '');\r\n\r\n    if (str.length % 4 === 1) {\r\n      throw new Error(\"'atob' failed: The string to be decoded is not correctly encoded.\");\r\n    }\r\n    for (\r\n      // initialize result and counters\r\n      let bc = 0, bs: any = void 0, buffer: any = void 0, idx = 0; // get next character\r\n      (buffer = str.charAt(idx++)); // character found in table? initialize bit storage and add its ascii value;\r\n      ~buffer &&\r\n      ((bs = bc % 4 ? bs * 64 + buffer : buffer), // and if not first of each 4 characters,\r\n      // convert the first 8 bits to one ascii character\r\n      bc++ % 4)\r\n        ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\r\n        : 0\r\n    ) {\r\n      // try to find character in table (0-63, not found => -1)\r\n      buffer = chars.indexOf(buffer);\r\n    }\r\n\r\n    return output;\r\n  }\r\n\r\n  private _b64DecodeUnicode(str: string) {\r\n    return decodeURIComponent(\r\n      Array.prototype.map\r\n        .call(TokenService._b64decode(str), function (c) {\r\n          return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n        })\r\n        .join('')\r\n    );\r\n  }\r\n\r\n  private _urlBase64Decode(str: string): string {\r\n    let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n\r\n    switch (output.length % 4) {\r\n      case 0: {\r\n        break;\r\n      }\r\n      case 2: {\r\n        output += '==';\r\n        break;\r\n      }\r\n      case 3: {\r\n        output += '=';\r\n        break;\r\n      }\r\n      default: {\r\n        throw new Error('Illegal base64url string!');\r\n      }\r\n    }\r\n\r\n    return this._b64DecodeUnicode(output);\r\n  }\r\n\r\n  setToken(token: string, refreshToken?: string) {\r\n    const authConfig = this._configService.authConfig;\r\n\r\n    switch (authConfig.TokenStorage) {\r\n      case TokenStorage.LOCAL_STORAGE:\r\n        if (authConfig.TokenName) localStorage.setItem(authConfig.TokenName, token);\r\n\r\n        if (refreshToken && authConfig.RefreshTokenName)\r\n          localStorage.setItem(authConfig.RefreshTokenName, refreshToken);\r\n\r\n        break;\r\n\r\n      case TokenStorage.SESSION_STORAGE:\r\n        if (authConfig.TokenName) sessionStorage.setItem(authConfig.TokenName, token);\r\n\r\n        if (refreshToken && authConfig.RefreshTokenName)\r\n          sessionStorage.setItem(authConfig.RefreshTokenName, refreshToken);\r\n\r\n        break;\r\n\r\n      default:\r\n        throw new Error('Token storage not found');\r\n    }\r\n  }\r\n\r\n  set setRefreshToken(refreshToken: string) {\r\n    const authConfig = this._configService.authConfig;\r\n\r\n    switch (authConfig.TokenStorage) {\r\n      case TokenStorage.LOCAL_STORAGE:\r\n        if (authConfig.RefreshTokenName) localStorage.setItem(authConfig.RefreshTokenName, refreshToken);\r\n\r\n        break;\r\n\r\n      case TokenStorage.SESSION_STORAGE:\r\n        if (authConfig.RefreshTokenName) sessionStorage.setItem(authConfig.RefreshTokenName, refreshToken);\r\n\r\n        break;\r\n\r\n      default:\r\n        throw new Error('Token storage not found');\r\n    }\r\n  }\r\n\r\n  get getToken(): string | null {\r\n    const authConfig = this._configService.authConfig;\r\n\r\n    switch (authConfig.TokenStorage) {\r\n      case TokenStorage.LOCAL_STORAGE:\r\n        if (authConfig.TokenName) return localStorage.getItem(authConfig.TokenName);\r\n        break;\r\n\r\n      case TokenStorage.SESSION_STORAGE:\r\n        if (authConfig.TokenName) return sessionStorage.getItem(authConfig.TokenName);\r\n        break;\r\n\r\n      default:\r\n        return null;\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  get toJSON() {\r\n    return JSON.parse(this.decodeToken);\r\n  }\r\n\r\n  getValueFromClaim(claim: string): string {\r\n    return this.decodeToken[claim];\r\n  }\r\n\r\n  getValueFromProperty(propertyName: string): string {\r\n    // @ts-ignore\r\n    return this.decodeToken[ClaimTypes[propertyName]];\r\n  }\r\n\r\n  removeToken() {\r\n    const authConfig = this._configService.authConfig;\r\n\r\n    switch (authConfig.TokenStorage) {\r\n      case TokenStorage.LOCAL_STORAGE:\r\n        localStorage.removeItem(authConfig?.TokenName ?? '');\r\n        localStorage.removeItem(authConfig?.RefreshTokenName ?? '');\r\n        break;\r\n\r\n      case TokenStorage.SESSION_STORAGE:\r\n        sessionStorage.removeItem(authConfig?.TokenName ?? '');\r\n        sessionStorage.removeItem(authConfig?.RefreshTokenName ?? '');\r\n        break;\r\n    }\r\n  }\r\n\r\n  isTokenExpired(offsetSeconds?: number): boolean {\r\n    const tokenName = this.getToken;\r\n\r\n    if (!tokenName) return true;\r\n\r\n    const date = this.getTokenExpirationDate;\r\n\r\n    offsetSeconds = offsetSeconds || 0;\r\n\r\n    if (!date) return false;\r\n\r\n    // Token expired?\r\n    return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\r\n  }\r\n\r\n  get decodeToken(): any {\r\n    const parts = this.getToken?.split('.');\r\n\r\n    if (parts?.length !== 3) {\r\n      throw new Error('JWT must have 3 parts');\r\n    }\r\n\r\n    const decoded = this._urlBase64Decode(parts[1]);\r\n\r\n    if (!decoded) {\r\n      throw new Error('Cannot decode the token');\r\n    }\r\n\r\n    return JSON.parse(decoded);\r\n  }\r\n\r\n  get getTokenExpirationDate(): Date | null {\r\n    const decoded = this.decodeToken;\r\n\r\n    if (!Object.prototype.hasOwnProperty.call(decoded, 'exp')) return null;\r\n\r\n    const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n\r\n    date.setUTCSeconds(decoded.exp);\r\n\r\n    return date;\r\n  }\r\n}\r\n","import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthRoute } from './auth.route';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n  private _authRoute: AuthRoute;\r\n\r\n  constructor(private _router: Router, private _configService: ConfigService, private _tokenService: TokenService) {\r\n    this._authRoute = this._configService.authRoute;\r\n  }\r\n\r\n  canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n    if (this.checkDisabled) return true;\r\n\r\n    try {\r\n      if (!this._tokenService.isTokenExpired()) return true;\r\n\r\n      return this.logout(state.url);\r\n    } catch {\r\n      return this.logout(state.url);\r\n    }\r\n  }\r\n\r\n  logout(url?: string): boolean {\r\n    this._tokenService.removeToken();\r\n\r\n    if (url) {\r\n      this._router.navigate([this._authRoute.LoginUrl], {\r\n        queryParams: {\r\n          returnUrl: url\r\n        }\r\n      });\r\n    } else {\r\n      this._router.navigate([this._authRoute.LoginUrl]);\r\n    }\r\n\r\n    return false;\r\n  }\r\n\r\n  get checkDisabled() {\r\n    return this._configService.disableGuard;\r\n  }\r\n}\r\n","export class Guid {\r\n  static readonly empty = '00000000-0000-0000-0000-000000000000';\r\n  private value = Guid.empty;\r\n\r\n  constructor(_value?: string) {\r\n    if (_value) {\r\n      if (Guid.isValid(_value)) this.value = _value;\r\n    } else {\r\n      this.value = Guid.empty;\r\n    }\r\n  }\r\n\r\n  static isValid(str: string) {\r\n    if (str[0] === '{') str = str.substring(1, str.length - 1);\r\n\r\n    const regexGuid =\r\n      /^(\\{){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(\\}){0,1}$/gi;\r\n\r\n    return regexGuid.test(str);\r\n  }\r\n\r\n  get toString() {\r\n    return this.value;\r\n  }\r\n\r\n  get toJSON(): string {\r\n    return this.value;\r\n  }\r\n\r\n  static newGuid(): Guid {\r\n    const str = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n      const r = (Math.random() * 16) | 0;\r\n      const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n      return v.toString(16);\r\n    });\r\n\r\n    return new Guid(str);\r\n  }\r\n}\r\n","export enum ToastType {\r\n  None,\r\n  Error,\r\n  Info,\r\n  Warn,\r\n  Success\r\n}\r\n","import { ActivatedRoute } from '@angular/router';\r\nimport { DataType } from './enums';\r\nimport { ResponseData } from './response';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { HttpStatusCode } from './httpCode';\r\nimport { appInjector } from './appinjector';\r\nimport { AuthGuard } from '../components/auth/auth.guard';\r\nimport { Guid } from './guid';\r\nimport { NgForm } from '@angular/forms';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { ToastType } from './toastType';\r\n\r\nexport function getErrorMessage(error: HttpErrorResponse): string {\r\n  try {\r\n    if (JSON.stringify(error.error) === '{\"isTrusted\":true}') return 'Servidor no disponible';\r\n\r\n    if (error.status === HttpStatusCode.NotFound)\r\n      return `Error 404, metodo ${error.url?.split('/').slice(3).join('/')} no encontrado`;\r\n\r\n    const errorJson = error.error;\r\n\r\n    if (isUnauthorized(error)) {\r\n      setTimeout(() => {\r\n        try {\r\n          const guard = appInjector().get<AuthGuard>(AuthGuard);\r\n\r\n          if (!guard.checkDisabled) guard.logout();\r\n          // eslint-disable-next-line no-empty\r\n        } catch {}\r\n      });\r\n\r\n      if (errorJson) return errorJson.Message;\r\n\r\n      return 'Error validando el token de autenticación';\r\n    } else if (errorJson) {\r\n      const { Message, detail } = errorJson;\r\n\r\n      if (Message && Message.length > 0) return Message;\r\n\r\n      //Problem details\r\n      if (detail && detail.length > 0) return detail;\r\n\r\n      if (errorJson.errors) {\r\n        let message = '';\r\n\r\n        for (const property in errorJson.errors) message += errorJson.errors[property].join(', ');\r\n\r\n        return message;\r\n      }\r\n    }\r\n\r\n    return JSON.stringify(error.error) || 'Error desconocido';\r\n  } catch (err) {\r\n    return `${error.url?.split('/').slice(3).join('/')}, ${error.statusText}`;\r\n  }\r\n}\r\n\r\nexport function showToast(response: ResponseData<any>, title?: string) {\r\n  showMessageToast(response?.Extensions?.ToastType, response?.Message, title);\r\n}\r\n\r\nexport function showMessageToast(toastType: ToastType, message?: string, title?: string) {\r\n  const toastrService = appInjector().get(ToastrService);\r\n\r\n  switch (toastType) {\r\n    //TODO: descomentar cuando se unifiquen todas las librerias\r\n    // case ToastType.None:\r\n    //   break;\r\n\r\n    case ToastType.Error:\r\n      toastrService.error(message, title, getToastConfiguration());\r\n      break;\r\n\r\n    case ToastType.Info:\r\n      toastrService.info(message, title, getToastConfiguration());\r\n      break;\r\n\r\n    case ToastType.Success:\r\n      toastrService.success(message, title, getToastConfiguration());\r\n      break;\r\n\r\n    case ToastType.Warn:\r\n      toastrService.warning(message, title, getToastConfiguration());\r\n      break;\r\n\r\n    default:\r\n      toastrService.error(message, title, getToastConfiguration());\r\n      break;\r\n  }\r\n}\r\n\r\nexport function isUnauthorized(error: HttpErrorResponse): boolean {\r\n  if (error.status === HttpStatusCode.Unauthorized) return true;\r\n\r\n  try {\r\n    return JSONisUnauthorized(error.error);\r\n  } catch {\r\n    return false;\r\n  }\r\n}\r\n\r\nexport function JSONisUnauthorized(error: ResponseData<any>): boolean {\r\n  return error && [error.HttpCode, (error as any).status].includes(HttpStatusCode.Unauthorized);\r\n}\r\n\r\nexport function sumArray(items: any, prop: any): number {\r\n  if (!items) return 0;\r\n\r\n  return items.reduce(function (a: any, b: any) {\r\n    return !b[prop] ? a : a + b[prop];\r\n  }, 0);\r\n}\r\n\r\nexport function resetFormControls(form?: NgForm) {\r\n  if (form) {\r\n    for (const ctlr in form.controls) {\r\n      form.controls[ctlr].setErrors(null);\r\n      form.controls[ctlr].markAsPristine({ onlySelf: true });\r\n      form.controls[ctlr].markAsUntouched({ onlySelf: true });\r\n    }\r\n\r\n    form.resetForm();\r\n  }\r\n}\r\n\r\nexport function replicate(num: number, charReplicate: string = '0', padding: string = 'l', size = 2): string {\r\n  let number: string = String(num);\r\n\r\n  if (number.length === size) return number;\r\n\r\n  while (number.length < size) number = padding === 'l' ? charReplicate + number : number + charReplicate;\r\n\r\n  return number;\r\n}\r\n\r\nexport function replicateString(num: number, charReplicate = '0'): string {\r\n  let number = '';\r\n\r\n  for (let i = 1; i <= num; i++) number += charReplicate;\r\n\r\n  return number;\r\n}\r\n\r\nexport function floatToString(flt: number): string {\r\n  const rx = /^([\\d.]+?)e-(\\d+)$/,\r\n    fStr = flt.toString();\r\n  let details: any, num: any, cnt: any;\r\n\r\n  if (rx.test(fStr)) {\r\n    details = rx.exec(fStr);\r\n    num = details[1];\r\n    cnt = parseInt(details[2], 10);\r\n    cnt += num.replace(/\\./g, '').length - 1; // Adjust for longer numbers\r\n\r\n    return flt.toFixed(cnt);\r\n  }\r\n\r\n  return fStr;\r\n}\r\n\r\nexport function getRandomNumber(min: number, max: number): number {\r\n  return Math.floor(Math.random() * (max - min + 1)) + min;\r\n}\r\n\r\nexport function createBreadcrumbs(currentRoute: ActivatedRoute | null): Array<Object> {\r\n  const breadcrumbs: any[] = [];\r\n\r\n  let url = '',\r\n    previousRoute: any;\r\n\r\n  do {\r\n    const childrenRoutes = currentRoute?.children;\r\n    currentRoute = null;\r\n\r\n    childrenRoutes?.forEach(child => {\r\n      if (child.outlet === 'primary') {\r\n        const routeSnapshot = child.snapshot;\r\n\r\n        url += `/${routeSnapshot.url.map(segment => segment.path).join('/')}`;\r\n\r\n        if (!previousRoute) {\r\n          previousRoute = { label: child.snapshot.data, url: url };\r\n          breadcrumbs.push(previousRoute);\r\n        } else {\r\n          if (previousRoute['label'].title !== child.snapshot.data['title']) {\r\n            let label = child.snapshot.data;\r\n\r\n            if (\r\n              (!label['title'] || label['title'] === '') &&\r\n              (child.snapshot.routeConfig?.path === 'add' || child.snapshot.routeConfig?.path === 'edit')\r\n            ) {\r\n              label = { title: child.snapshot.routeConfig.path };\r\n\r\n              if (breadcrumbs.length > 0) {\r\n                const previous = breadcrumbs[breadcrumbs.length - 1];\r\n\r\n                if (previous['url'].substring(previous['url'].length - 1) !== '/') previous['url'] += '/';\r\n              }\r\n            }\r\n\r\n            previousRoute = { label: label, url: url };\r\n            breadcrumbs.push(previousRoute);\r\n          }\r\n        }\r\n        currentRoute = child;\r\n      }\r\n    });\r\n  } while (currentRoute);\r\n\r\n  return breadcrumbs;\r\n}\r\n\r\nexport function toInteger(value: any) {\r\n  return parseInt('' + value, 10);\r\n}\r\n\r\nexport function toString(value: any) {\r\n  return value ? `${value}` : '';\r\n}\r\n\r\nexport function getValueInRange(value: number, max: number, min: number) {\r\n  if (min === void 0) min = 0;\r\n\r\n  return Math.max(Math.min(value, max), min);\r\n}\r\n\r\nexport function isString(value: any) {\r\n  return !value || typeof value === 'string';\r\n}\r\n\r\nexport function isEmpty(obj: any) {\r\n  for (const key in obj) {\r\n    if (Object.prototype.hasOwnProperty.call(obj, key)) return false;\r\n  }\r\n\r\n  return true;\r\n}\r\n\r\nexport function isNumber(value: any) {\r\n  return !isNaN(toInteger(value));\r\n}\r\n\r\nexport function isInteger(value: any) {\r\n  return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\r\n}\r\n\r\nexport function isDefined(value: any) {\r\n  return !!value;\r\n}\r\n\r\nexport function padNumber(value: any) {\r\n  if (isNumber(value)) return ('0' + value).slice(-2);\r\n  else return '';\r\n}\r\n\r\nexport function regExpEscape(text: string) {\r\n  return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n}\r\n\r\nexport function getDefaultValue(type: DataType): any {\r\n  switch (type) {\r\n    case DataType.Number:\r\n      return 0;\r\n\r\n    case DataType.String:\r\n      return null;\r\n\r\n    case DataType.Guid:\r\n      return Guid.empty;\r\n\r\n    default:\r\n      throw Error(`getDefaultValue = ${type} is not supported`);\r\n  }\r\n}\r\n\r\nexport function isValidType(type: DataType, value: any): boolean {\r\n  switch (type) {\r\n    case DataType.Number:\r\n      return isNumber(value);\r\n\r\n    case DataType.String:\r\n      return isString(value);\r\n\r\n    case DataType.Guid:\r\n      return Guid.isValid(value);\r\n\r\n    default:\r\n      throw Error(`Condición isValidType = ${type} no evaluada `);\r\n  }\r\n}\r\n\r\nexport function assignProps(source: any, target: any, props: string[]) {\r\n  props.forEach(prop => {\r\n    if (Object.prototype.hasOwnProperty.call(source, prop)) {\r\n      // @ts-ignore\r\n      this[prop] = target[prop];\r\n      delete source[prop];\r\n    }\r\n  });\r\n}\r\n\r\nexport function isPresent(obj: any): boolean {\r\n  return !!obj;\r\n}\r\n\r\nexport function isDate(obj: any): boolean {\r\n  return !/Invalid|NaN/.test(new Date(obj).toString());\r\n}\r\n\r\nexport function getToastConfiguration(): Partial<IndividualConfig> {\r\n  return {\r\n    enableHtml: true,\r\n    closeButton: true\r\n  } as Partial<IndividualConfig>;\r\n}\r\n","import { CacheDataRequest } from './setting';\r\nimport { IFilter, SortItem } from './filtrable';\r\nimport { ToastType } from './toastType';\r\n\r\nexport class SecurityParam {\r\n  CRUD: number | undefined;\r\n  EnableAuthAction: boolean | undefined;\r\n}\r\n\r\n/**\r\n *Encapsula informacion de la respuesta recibida al ejecular los\r\n metodos getSubscription, getSettingSubscription y requerySubscription.\r\n *\r\n * @export\r\n * @class ResponseSetting\r\n */\r\nexport class ResponseSetting {\r\n  FilterStorage = new Array<IFilter>();\r\n  CacheData: any;\r\n  SecurityParam = new SecurityParam();\r\n\r\n  /**\r\n   *contiene la instancia del modelo definido en el backend y\r\n   *sirve para inicializar el modelo del servicio en el cliente\r\n   * @private\r\n   * @type {*}\r\n   * @memberof ServiceManager\r\n   */\r\n  DefaultModel: any = {};\r\n}\r\n\r\nexport interface IResponseAPI<TModel> {\r\n  DataSource: TModel | undefined;\r\n  Commit: boolean | undefined;\r\n  Message: string | undefined;\r\n  HttpCode: number | undefined;\r\n  Extensions:\r\n    | Partial<{\r\n        Setting: ResponseSetting;\r\n        ToastType: ToastType;\r\n        TotalItems: number;\r\n      }>\r\n    | {}\r\n    | any;\r\n}\r\n\r\nexport class ResponseData<TModel> implements IResponseAPI<TModel> {\r\n  DataSource: TModel | undefined;\r\n  Commit: boolean | undefined;\r\n  Message: string | undefined;\r\n  HttpCode: number | undefined;\r\n  Extensions:\r\n    | Partial<{\r\n        Setting: ResponseSetting;\r\n        ToastType: ToastType;\r\n        TotalItems: number;\r\n      }>\r\n    | {}\r\n    | any = {\r\n    Setting: new ResponseSetting()\r\n  };\r\n}\r\n\r\nexport class Page {\r\n  RowCount: number | undefined;\r\n\r\n  constructor(public Number = 1, public Size = 0, public SkipPagesCalculation?: boolean) {\r\n    this.RowCount = 0;\r\n  }\r\n}\r\n\r\nexport interface IPageParameter {\r\n  Page: Page;\r\n  Filters?: IFilter[];\r\n  Sorts?: SortItem[];\r\n}\r\n\r\nexport class PageParameter implements IPageParameter {\r\n  Page = new Page();\r\n  Filters? = new Array<IFilter>();\r\n  Sorts? = new Array<SortItem>();\r\n}\r\n\r\nexport class RequestSetting implements IPageParameter {\r\n  EnableFilter = true;\r\n  LoadCRUD = true;\r\n  Page = new Page();\r\n  Filters? = new Array<IFilter>();\r\n  Sorts? = new Array<SortItem>();\r\n  CacheDataProviders? = new Array<CacheDataRequest>();\r\n  FilterText?: string;\r\n  Data? = {};\r\n  DisableCacheData?: boolean;\r\n}\r\n\r\nexport function objectIsResponseModel<TModel>(\r\n  arg: Partial<ResponseData<TModel>> | TModel\r\n): arg is Partial<ResponseData<TModel>> {\r\n  return !!(<ResponseData<TModel>>arg).DataSource;\r\n}\r\n","export interface ICollection<T> {\r\n  Add(key: string, value: T): void;\r\n\r\n  ContainsKey(key: string): boolean;\r\n\r\n  Count(): number;\r\n\r\n  Item(key: string): T | undefined;\r\n\r\n  Keys(): string[];\r\n\r\n  Remove(key: string): T | null;\r\n\r\n  Values(): T[];\r\n\r\n  Clear(): void;\r\n}\r\n\r\nexport class Dictionary<T> implements ICollection<T> {\r\n  private _items: { [index: string]: T } | undefined;\r\n  private _count = 0;\r\n\r\n  public constructor() {\r\n    this.Clear();\r\n  }\r\n\r\n  ContainsKey(key: string): boolean {\r\n    return Object.prototype.hasOwnProperty.call(this._items, key) ?? false;\r\n  }\r\n\r\n  Count(): number {\r\n    return this._count;\r\n  }\r\n\r\n  Add(key: string, value: T) {\r\n    if (!Object.prototype.hasOwnProperty.call(this._items, key)) {\r\n      this._count++;\r\n    }\r\n\r\n    if (this._items) this._items[key] = value;\r\n  }\r\n\r\n  Remove(key: string): T | null {\r\n    if (this._items) {\r\n      const val = this._items[key];\r\n      delete this._items[key];\r\n      this._count--;\r\n\r\n      if (this._count < 0) {\r\n        this._count = 0;\r\n      }\r\n\r\n      return val;\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  Item(key: string): T | undefined {\r\n    return this._items ? this._items[key] : undefined;\r\n  }\r\n\r\n  Keys(): string[] {\r\n    const keySet: string[] = [];\r\n\r\n    for (const prop in this._items) {\r\n      if (Object.prototype.hasOwnProperty.call(this._items, prop)) keySet.push(prop);\r\n    }\r\n\r\n    return keySet;\r\n  }\r\n\r\n  Values(): T[] {\r\n    const values: T[] = [];\r\n\r\n    for (const prop in this._items) {\r\n      if (Object.prototype.hasOwnProperty.call(this._items, prop)) values.push(this._items[prop]);\r\n    }\r\n\r\n    return values;\r\n  }\r\n\r\n  Clear() {\r\n    this._items = {};\r\n    this._count = 0;\r\n  }\r\n}\r\n","import { NavigationMode, TriggerAction } from './enums';\r\nimport { ConfigService } from '../services/config.service';\r\n\r\nexport interface INavigateAction {\r\n  openWith?: NavigationMode;\r\n  route?: any[];\r\n}\r\n\r\nexport class NavigateAction implements INavigateAction {\r\n  openWith?: NavigationMode;\r\n  route?: any[];\r\n\r\n  constructor(mode: NavigationMode, route?: any[]) {\r\n    this.openWith = mode;\r\n    this.route = route || [];\r\n  }\r\n}\r\n\r\nexport class NavigateOptions {\r\n  add?: INavigateAction = new NavigateAction(NavigationMode.Default);\r\n  edit?: INavigateAction = new NavigateAction(NavigationMode.Default);\r\n  added?: INavigateAction = new NavigateAction(NavigationMode.Default);\r\n  edited?: INavigateAction = new NavigateAction(NavigationMode.Default);\r\n  default: any[] = [];\r\n\r\n  // add?: {\r\n  //   openWith?: NavigationMode;\r\n  //   route?: any[];\r\n  // };\r\n\r\n  // edit: {\r\n  //   openWith?: NavigationMode;\r\n  //   route?: any[];\r\n  // };\r\n\r\n  // added: {\r\n  //   route?: any[];\r\n  // };\r\n\r\n  // edited: {\r\n  //   route?: any[];\r\n  // };\r\n\r\n  set(action: string, options: INavigateAction) {\r\n    // @ts-ignore\r\n    if (!this[action]) throw Error('action do not exist');\r\n\r\n    // @ts-ignore\r\n    Object.assign(this[action], options);\r\n  }\r\n}\r\n\r\nexport class ModalTriggerOpts {\r\n  triggeredMethod?: string;\r\n  IsShown: boolean | undefined;\r\n  model: any;\r\n  cancel: boolean | undefined;\r\n  private _internalAction = TriggerAction.none;\r\n\r\n  get action(): TriggerAction {\r\n    return this._internalAction;\r\n  }\r\n\r\n  set action(value: TriggerAction) {\r\n    this._internalAction = value;\r\n    this.IsShown = this._internalAction === TriggerAction.open;\r\n  }\r\n\r\n  // open(model?:any): ModalTriggerOpts {\r\n  //   this.action = TriggerAction.open;\r\n  //   this.model = model;\r\n  //   return this;\r\n  // }\r\n\r\n  // close(model?:any): ModalTriggerOpts {\r\n  //   this.action = TriggerAction.close;\r\n  //   this.model = model;\r\n  //   return this;\r\n  // }\r\n\r\n  set(action: TriggerAction, cancel = false, model?: any): ModalTriggerOpts {\r\n    this.action = action;\r\n    this.cancel = cancel;\r\n    this.model = model;\r\n\r\n    return this;\r\n  }\r\n}\r\n\r\nexport class BlockerManager {\r\n  private readonly _config: ConfigService;\r\n\r\n  constructor(config: ConfigService) {\r\n    this._config = config;\r\n  }\r\n\r\n  turnOff(once?: boolean): BlockerManager {\r\n    if (!this._config) return this;\r\n\r\n    if (once) this._config.turnOffOnceBlocker = true;\r\n    else this._config.turnOffBlocker = true;\r\n\r\n    return this;\r\n  }\r\n\r\n  turnOn() {\r\n    if (!this._config) return this;\r\n\r\n    this._config.turnOffBlocker = false;\r\n    return this;\r\n  }\r\n\r\n  show() {\r\n    this._config.blocker = true;\r\n  }\r\n\r\n  hide() {\r\n    this._config.blocker = false;\r\n  }\r\n}\r\n","import { FilterOperator, ValueType } from './enums';\r\nimport { IFilter } from './filtrable';\r\n\r\nexport interface IMEMBER_INFO {\r\n  MEMBER_OBJECT: any;\r\n  MEMBER_NAME: string;\r\n  VALID: boolean;\r\n}\r\n\r\nexport interface IMAPPING_SOURCE_INFO {\r\n  MEMBER: string;\r\n  MAP_ONPUSH_ONLY: boolean;\r\n  DEFAULT_VALUE: any;\r\n  SUPPORT_UNBIND_ONLY: boolean;\r\n}\r\n\r\nexport interface ICACHE_DATA_PROVIDER {\r\n  key: string;\r\n  alias: string | undefined;\r\n  method: string | undefined;\r\n  lookupMapping: any;\r\n  relationships: any;\r\n  mappings: any;\r\n  filters: (string | IFilter | (() => IFilter))[] | (() => IFilter[]) | undefined;\r\n  asyncBind: boolean;\r\n  useRelationship: boolean;\r\n  bindFirstItemOnChange: boolean;\r\n}\r\n\r\nexport class CommonHelper {\r\n  static readonly contains = '**';\r\n  static readonly greaterThan = '>';\r\n  static readonly greaterThanOrEqual = '>=';\r\n  static readonly between = '><';\r\n  static readonly lessThan = '<';\r\n  static readonly lessThanOrEqualTo = '<=';\r\n  static readonly startsWith = '-*';\r\n  static readonly endsWith = '*-';\r\n  static readonly equals = '=';\r\n  static readonly notEqual = '!=';\r\n  static readonly functionSign = '()=>';\r\n  static readonly propertySign = '?';\r\n  static readonly mappingSign = '=>';\r\n  static readonly commaSep = ',';\r\n  static readonly defaultValueSign = '??';\r\n  static readonly aliasReservedWord = ' as ';\r\n  static readonly INVALID_MAPPING_EXCEPTION =\r\n    'Must specify a correct mapping expression. example: [member]=>object.member';\r\n\r\n  static readonly operatorMapped = new Map<string, FilterOperator>([\r\n    [CommonHelper.contains, FilterOperator.Contains],\r\n    [CommonHelper.greaterThan, FilterOperator.GreaterThan],\r\n    [CommonHelper.greaterThanOrEqual, FilterOperator.GreaterThanOrEqual],\r\n    [CommonHelper.between, FilterOperator.Between],\r\n    [CommonHelper.lessThan, FilterOperator.LessThan],\r\n    [CommonHelper.lessThanOrEqualTo, FilterOperator.LessThanOrEqualTo],\r\n    [CommonHelper.startsWith, FilterOperator.StartsWith],\r\n    [CommonHelper.endsWith, FilterOperator.EndsWith],\r\n    [CommonHelper.equals, FilterOperator.Equals],\r\n    [CommonHelper.notEqual, FilterOperator.NotEqual]\r\n  ]);\r\n\r\n  static getCacheFilterFromString(cacheFilter: string | (() => IFilter) | IFilter): CacheDataFilter {\r\n    if (typeof cacheFilter === 'string') {\r\n      const filter = new CacheDataFilter();\r\n      filter.valueType = ValueType.undefined;\r\n\r\n      let index = cacheFilter.indexOf(CommonHelper.functionSign);\r\n\r\n      if (index !== -1) {\r\n        filter.internalValue = cacheFilter.split(CommonHelper.functionSign)[1];\r\n        cacheFilter = cacheFilter.split(CommonHelper.functionSign)[0];\r\n        filter.valueType = ValueType.function;\r\n      }\r\n\r\n      const entries = this.operatorMapped.entries();\r\n\r\n      for (let nextValue = entries.next(); nextValue.done !== true; nextValue = entries.next()) {\r\n        const key = nextValue.value[0];\r\n        index = cacheFilter.indexOf(key);\r\n\r\n        if (index !== -1) {\r\n          if (key.length === 1) {\r\n            //descartar coincidencias falsas\r\n            const veryNextChar = cacheFilter.substr(index + 1, 1);\r\n\r\n            if (\r\n              key === CommonHelper.greaterThan &&\r\n              (veryNextChar === CommonHelper.equals || veryNextChar === CommonHelper.lessThan)\r\n            )\r\n              continue;\r\n            else if (\r\n              key === CommonHelper.lessThan &&\r\n              (veryNextChar === CommonHelper.equals || cacheFilter.substr(index - 1, 1) === CommonHelper.greaterThan)\r\n            )\r\n              continue;\r\n            else if (key === CommonHelper.equals && cacheFilter.substr(index - 1, 1) === CommonHelper.notEqual[0])\r\n              continue;\r\n          }\r\n\r\n          filter.PropertyName = cacheFilter.substr(0, index).trim();\r\n          filter.Operator = nextValue.value[1];\r\n\r\n          if (!filter.internalValue) filter.internalValue = cacheFilter.substring(index + key.length).trim();\r\n\r\n          break;\r\n        }\r\n      }\r\n\r\n      //aplicar logica para sacar el valor\r\n      if (filter.valueType === ValueType.undefined) {\r\n        if (filter.internalValue?.trim()[0] === CommonHelper.propertySign) {\r\n          filter.valueType = ValueType.property;\r\n          filter.internalValue = filter.internalValue.replace(CommonHelper.propertySign, '');\r\n        } else {\r\n          filter.valueType = ValueType.constant;\r\n          filter.Value = filter.internalValue;\r\n        }\r\n      }\r\n\r\n      return filter;\r\n    } else if (typeof cacheFilter === 'function') {\r\n      return cacheFilter() as CacheDataFilter;\r\n    } else if (typeof cacheFilter === 'object') {\r\n      return cacheFilter as CacheDataFilter;\r\n    } else {\r\n      throw new Error('cacheFilter not recognize');\r\n    }\r\n  }\r\n\r\n  static getMemberValue(memberName: string, source: any): any {\r\n    let _source = source;\r\n\r\n    memberName.split('.').forEach(m => {\r\n      _source = _source[m];\r\n    });\r\n\r\n    return _source;\r\n  }\r\n\r\n  /**\r\n   * @param memberName\r\n   * @param source\r\n   */\r\n  static getMemberObject(memberName: string | undefined, source: Map<string, Object>): Partial<IMEMBER_INFO> {\r\n    const members: any = memberName?.split('.');\r\n\r\n    if (members?.length === 1) {\r\n      //ya que no se puede omitir el origen en la expresion y debe ser el primer indice, entonces nos aseguramos que exista\r\n      throw Error('Member expression must contain more than one level of depth. Example: Object.member');\r\n    }\r\n\r\n    //[0]: cero representa el origen y debe existir siempre.\r\n    // @ts-ignore\r\n    let _source: any = source.get(members[0]);\r\n\r\n    if (!_source) {\r\n      return {\r\n        VALID: false\r\n      };\r\n    }\r\n\r\n    for (let i = 1; i < members.length - 1; i++) _source = _source[members[i]];\r\n\r\n    return {\r\n      MEMBER_OBJECT: _source,\r\n      MEMBER_NAME: members[members.length - 1],\r\n      VALID: true\r\n    };\r\n  }\r\n\r\n  static getMemberObjectValue(memberName: string | undefined, source: Map<string, Object>): any {\r\n    const members = CommonHelper.getMemberObject(memberName, source);\r\n    // @ts-ignore\r\n    return members.MEMBER_OBJECT[members.MEMBER_NAME];\r\n  }\r\n\r\n  static jsonParser(expresionToEvaluate: string) {\r\n    return Function(`\"use strict\";return ( ${expresionToEvaluate} )`)();\r\n  }\r\n\r\n  /**\r\n   * @param source\r\n   */\r\n  static getMappingSourceInfo(source: string): IMAPPING_SOURCE_INFO {\r\n    //\r\n    const result = {\r\n      MEMBER: '',\r\n      MAP_ONPUSH_ONLY: false,\r\n      DEFAULT_VALUE: undefined,\r\n      SUPPORT_UNBIND_ONLY: false\r\n    };\r\n\r\n    const splitMember = source.split(CommonHelper.defaultValueSign);\r\n    const member = splitMember[0].replace('[', '').replace(']', '');\r\n    //\r\n    result.MEMBER = member.trim();\r\n    result.SUPPORT_UNBIND_ONLY = result.MEMBER === '';\r\n    result.MAP_ONPUSH_ONLY = splitMember[0].length > member.length;\r\n    result.DEFAULT_VALUE = splitMember.length === 1 ? undefined : CommonHelper.jsonParser(splitMember[1].trim());\r\n\r\n    return result;\r\n  }\r\n\r\n  //['[ColorId]??=>this.model.ColorId', 'Nombre=>$.model.Nombre, $.model.Apellido']\r\n  static getCacheMappingFromString(strMapping: string): CacheDataMapping {\r\n    //logica para sacar el lado izauierdo de mappingSign\r\n    const mapping = strMapping.split(CommonHelper.mappingSign);\r\n\r\n    if (mapping.length !== 2) throw Error(CommonHelper.INVALID_MAPPING_EXCEPTION);\r\n\r\n    const sourceinfo = CommonHelper.getMappingSourceInfo(mapping[0].trim());\r\n    const cachemapping = new CacheDataMapping(\r\n      sourceinfo.MEMBER,\r\n      sourceinfo.MAP_ONPUSH_ONLY,\r\n      sourceinfo.DEFAULT_VALUE,\r\n      sourceinfo.SUPPORT_UNBIND_ONLY\r\n    );\r\n    //logica pra sacar el lado derecho de mappingSign\r\n    const targets = mapping[1].split(CommonHelper.commaSep);\r\n\r\n    for (const element of targets) cachemapping.targets.push(new MappingItem(element.trim()));\r\n\r\n    return cachemapping;\r\n  }\r\n\r\n  static getCacheRelationshipFromString(strMapping: string): Relationship {\r\n    //logica para sacar el lado izauierdo de mappingSign\r\n    const mapping = strMapping.split(CommonHelper.mappingSign);\r\n\r\n    if (mapping.length !== 2)\r\n      throw Error('Must specify a correct mapping expression. example: [member]=>object.member');\r\n\r\n    //logica pra sacar el lado derecho de mappingSign\r\n    const mappedkeys = new Array<MappingItem>();\r\n    const keys = mapping[1].split(CommonHelper.commaSep);\r\n\r\n    for (const element of keys) {\r\n      const value = element.split(CommonHelper.equals);\r\n      mappedkeys.push(new MappingItem(value[0].replace(`${mapping[0].trim()}.`, '').trim(), value[1].trim()));\r\n    }\r\n\r\n    return new Relationship(mapping[0].trim(), mappedkeys);\r\n  }\r\n\r\n  static createCompatibleProvider(providerKey: any): ICACHE_DATA_PROVIDER {\r\n    const defaultProvider: ICACHE_DATA_PROVIDER = {\r\n      key: '',\r\n      alias: undefined,\r\n      method: undefined,\r\n      lookupMapping: undefined,\r\n      relationships: undefined,\r\n      mappings: undefined,\r\n      filters: undefined,\r\n      asyncBind: true,\r\n      useRelationship: true,\r\n      bindFirstItemOnChange: false\r\n    };\r\n\r\n    let providerStr;\r\n\r\n    if (providerKey && typeof providerKey === 'object') {\r\n      providerStr = providerKey.key;\r\n      Object.assign(defaultProvider, providerKey);\r\n    } else {\r\n      providerStr = providerKey;\r\n    }\r\n\r\n    //separa el key del lookupMapping\r\n    const parray = providerStr.split(CommonHelper.mappingSign);\r\n    const names = parray[0].split(CommonHelper.aliasReservedWord);\r\n    //\r\n    defaultProvider.key = names[0].trim();\r\n    // @ts-ignore\r\n    defaultProvider.alias = defaultProvider.key;\r\n\r\n    if (names.length > 1) defaultProvider.alias = names[1].trim();\r\n\r\n    if (parray.length > 1) {\r\n      //\r\n      const lookup = parray[1].split(CommonHelper.equals);\r\n\r\n      if (lookup.length !== 2) throw Error(CommonHelper.INVALID_MAPPING_EXCEPTION);\r\n\r\n      //en este caso el miebro de la\r\n      defaultProvider.lookupMapping = {\r\n        leftMember: lookup[0].trim(),\r\n        rightMember: lookup[1].replace(`${defaultProvider.key.trim()}.`, '').trim()\r\n      };\r\n    }\r\n\r\n    return defaultProvider;\r\n  }\r\n}\r\n\r\nexport class CacheDataFilter implements Partial<IFilter> {\r\n  internalValue: string | undefined;\r\n  defaultValue: any;\r\n\r\n  constructor(\r\n    public PropertyName?: string,\r\n    public Operator?: FilterOperator,\r\n    public Value?: any,\r\n    public valueType?: ValueType\r\n  ) {}\r\n}\r\n\r\n/**\r\n * ESTA CLASE HA SIDO DESARROLLADA PARA MATERIALIZAR RELACIONES ENTRE DOS OBJECTOS ATRAVES DE UN MIEMPRO\r\n DE CADA OBJETO\r\n * @property {any} sourceOject  para guardar la referencia del objecto de cual se obtendra o acutlizara\r\n * @property {any} targetObject\r\n * @property {string} leftMember  string que representa el nombre del miembro de la izquierda\r\n * @property {string} rightMember? string que representa el nombre del miembro de la derecha\r\n * @property {any} value? any que representa el valor que se le asigna al miembre de la izquierda\r\n */\r\nexport class MappingItem {\r\n  sourceOject: any;\r\n  targetObject: any;\r\n  leftMember: string;\r\n  rightMember?: string;\r\n  value?: any;\r\n\r\n  constructor(leftMember: string, rightMember?: string, value?: any) {\r\n    this.leftMember = leftMember;\r\n    this.rightMember = rightMember;\r\n    this.value = value;\r\n  }\r\n}\r\n\r\nexport class CacheDataMapping {\r\n  targets: MappingItem[] = [];\r\n\r\n  constructor(\r\n    public source: string,\r\n    public mapOnPushOlny: boolean,\r\n    public defaultValue: any,\r\n    public supportUnbindOnly: boolean\r\n  ) {}\r\n}\r\n\r\nexport class Relationship {\r\n  /**\r\n   * @param targetObject:  string que contiene el nombre del CacheDataRequest.Key que recibirá la notificacion de relación\r\n   * @param  keys: MappingItem[] arreglo de objetos\r\n   */\r\n  constructor(public targetObject: string, public keys: MappingItem[]) {}\r\n}\r\n\r\nexport class CacheDataRequest {\r\n  Filters = new Array<CacheDataFilter>();\r\n  Key: string | undefined;\r\n  Method: string | undefined;\r\n  Alias: string | undefined;\r\n\r\n  constructor(provider: Partial<ICACHE_DATA_PROVIDER>) {\r\n    this.Key = provider.key;\r\n    this.Method = provider.method;\r\n    this.Alias = provider.alias;\r\n\r\n    //si tiene filtros definidos\r\n    if (provider.filters) {\r\n      let filters = provider.filters as any;\r\n\r\n      if (typeof provider.filters === 'function') filters = provider.filters();\r\n\r\n      for (const element of filters) this.Filters.push(CommonHelper.getCacheFilterFromString(element));\r\n    }\r\n  }\r\n}\r\n\r\nexport class NotifierEventArgs {\r\n  constructor(public sender: string | undefined, public relationships: Relationship[]) {}\r\n}\r\n","export enum MsgBoxButtons {\r\n  OK,\r\n  OKCancel,\r\n  AbortRetryIgnore,\r\n  YesNoCancel,\r\n  YesNo,\r\n  RetryCancel,\r\n  DeleteConfirm\r\n}\r\n\r\nexport enum MsgBoxIcon {\r\n  None,\r\n  Error,\r\n  Question,\r\n  Warning,\r\n  Information\r\n}\r\n\r\nexport enum DialogResult {\r\n  OK,\r\n  Cancel,\r\n  Abort,\r\n  Retry,\r\n  Ignore,\r\n  Yes,\r\n  No\r\n}\r\n\r\nexport enum TextColor {\r\n  Default,\r\n  Danger,\r\n  Info,\r\n  Secondary,\r\n  Primary,\r\n  Success,\r\n  Warning,\r\n  Light,\r\n  Dark,\r\n  Muted,\r\n  White\r\n}\r\n\r\nexport class DialogConfig {\r\n  icon = MsgBoxIcon.Question;\r\n  iconColor = TextColor.Info;\r\n  buttons = MsgBoxButtons.OKCancel;\r\n\r\n  constructor(options?: any) {\r\n    Object.assign(this, options);\r\n  }\r\n\r\n  private _dialogConfig = {\r\n    icons: {\r\n      error: 'fa fa-times-circle',\r\n      warning: 'fa fa-exclamation-triangle',\r\n      question: 'fa fa-question-circle',\r\n      information: 'fa fa-info-circle'\r\n    },\r\n    colors: {\r\n      default: 'text-default',\r\n      danger: 'text-danger',\r\n      info: 'text-info',\r\n      secondary: 'text-secondary',\r\n      primary: 'text-primary',\r\n      success: 'text-success',\r\n      warning: 'text-warning',\r\n      light: 'text-light bg-dark',\r\n      dark: 'text-dark',\r\n      muted: 'text-muted',\r\n      white: 'text-white bg-dark'\r\n    },\r\n    buttons: {\r\n      ok: { text: 'Aceptar', class: 'btn-info', icon: '' },\r\n      cancel: { text: 'Cancelar', class: 'btn-danger', icon: '' },\r\n      abort: { text: 'Abortar', class: 'btn-danger', icon: '' },\r\n      retry: { text: 'Reintentar', class: 'btn-info', icon: '' },\r\n      ignore: { text: 'Ignorar', class: 'btn-warning', icon: '' },\r\n      yes: { text: 'Sí', class: 'btn-info', icon: '' },\r\n      no: { text: 'No', class: 'btn-secondary', icon: '' }\r\n    }\r\n  };\r\n\r\n  createDefaultOptions() {\r\n    const buttons = [];\r\n    let icon = '',\r\n      iconColor = '';\r\n\r\n    switch (this.buttons) {\r\n      case MsgBoxButtons.OK:\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.ok.text,\r\n          class: this._dialogConfig.buttons.ok.class,\r\n          icon: this._dialogConfig.buttons.ok.icon,\r\n          result: DialogResult.OK\r\n        });\r\n        break;\r\n\r\n      case MsgBoxButtons.OKCancel:\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.ok.text,\r\n          class: this._dialogConfig.buttons.ok.class,\r\n          icon: this._dialogConfig.buttons.ok.icon,\r\n          result: DialogResult.OK\r\n        });\r\n\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.cancel.text,\r\n          class: this._dialogConfig.buttons.cancel.class,\r\n          icon: this._dialogConfig.buttons.cancel.icon,\r\n          result: DialogResult.Cancel\r\n        });\r\n        break;\r\n\r\n      case MsgBoxButtons.AbortRetryIgnore:\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.abort.text,\r\n          class: this._dialogConfig.buttons.abort.class,\r\n          icon: this._dialogConfig.buttons.abort.icon,\r\n          result: DialogResult.Abort\r\n        });\r\n\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.retry.text,\r\n          class: this._dialogConfig.buttons.retry.class,\r\n          icon: this._dialogConfig.buttons.retry.icon,\r\n          result: DialogResult.Retry\r\n        });\r\n\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.ignore.text,\r\n          class: this._dialogConfig.buttons.ignore.class,\r\n          icon: this._dialogConfig.buttons.ignore.icon,\r\n          result: DialogResult.Ignore\r\n        });\r\n        break;\r\n\r\n      case MsgBoxButtons.YesNoCancel:\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.yes.text,\r\n          class: this._dialogConfig.buttons.yes.class,\r\n          icon: this._dialogConfig.buttons.yes.icon,\r\n          result: DialogResult.Yes\r\n        });\r\n\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.no.text,\r\n          class: this._dialogConfig.buttons.no.class,\r\n          icon: this._dialogConfig.buttons.no.icon,\r\n          result: DialogResult.No\r\n        });\r\n\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.cancel.text,\r\n          class: this._dialogConfig.buttons.cancel.class,\r\n          icon: this._dialogConfig.buttons.cancel.icon,\r\n          result: DialogResult.Cancel\r\n        });\r\n        break;\r\n\r\n      case MsgBoxButtons.YesNo:\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.yes.text,\r\n          class: this._dialogConfig.buttons.yes.class,\r\n          icon: this._dialogConfig.buttons.yes.icon,\r\n          result: DialogResult.Yes\r\n        });\r\n\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.no.text,\r\n          class: this._dialogConfig.buttons.no.class,\r\n          icon: this._dialogConfig.buttons.no.icon,\r\n          result: DialogResult.No\r\n        });\r\n        break;\r\n\r\n      case MsgBoxButtons.DeleteConfirm:\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.yes.text,\r\n          class: this._dialogConfig.buttons.cancel.class,\r\n          icon: 'fa-trash',\r\n          result: DialogResult.Yes\r\n        });\r\n\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.no.text,\r\n          class: this._dialogConfig.buttons.no.class,\r\n          icon: this._dialogConfig.buttons.no.icon,\r\n          result: DialogResult.No\r\n        });\r\n        break;\r\n\r\n      case MsgBoxButtons.RetryCancel:\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.retry.text,\r\n          class: this._dialogConfig.buttons.retry.class,\r\n          icon: this._dialogConfig.buttons.retry.icon,\r\n          result: DialogResult.Retry\r\n        });\r\n\r\n        buttons.push({\r\n          text: this._dialogConfig.buttons.cancel.text,\r\n          class: this._dialogConfig.buttons.cancel.class,\r\n          icon: this._dialogConfig.buttons.cancel.icon,\r\n          result: DialogResult.Cancel\r\n        });\r\n        break;\r\n    }\r\n\r\n    switch (this.icon) {\r\n      case MsgBoxIcon.Error:\r\n        icon = this._dialogConfig.icons.error;\r\n        break;\r\n\r\n      case MsgBoxIcon.Information:\r\n        icon = this._dialogConfig.icons.information;\r\n        break;\r\n\r\n      case MsgBoxIcon.Question:\r\n        icon = this._dialogConfig.icons.question;\r\n        break;\r\n\r\n      case MsgBoxIcon.Warning:\r\n        icon = this._dialogConfig.icons.warning;\r\n        break;\r\n    }\r\n\r\n    switch (this.iconColor) {\r\n      case TextColor.Danger:\r\n        iconColor = this._dialogConfig.colors.danger;\r\n        break;\r\n\r\n      case TextColor.Dark:\r\n        iconColor = this._dialogConfig.colors.dark;\r\n        break;\r\n\r\n      case TextColor.Default:\r\n        iconColor = this._dialogConfig.colors.default;\r\n        break;\r\n\r\n      case TextColor.Info:\r\n        iconColor = this._dialogConfig.colors.info;\r\n        break;\r\n\r\n      case TextColor.Light:\r\n        iconColor = this._dialogConfig.colors.light;\r\n        break;\r\n\r\n      case TextColor.Muted:\r\n        iconColor = this._dialogConfig.colors.muted;\r\n        break;\r\n\r\n      case TextColor.Primary:\r\n        iconColor = this._dialogConfig.colors.primary;\r\n        break;\r\n\r\n      case TextColor.Secondary:\r\n        iconColor = this._dialogConfig.colors.secondary;\r\n        break;\r\n\r\n      case TextColor.Success:\r\n        iconColor = this._dialogConfig.colors.success;\r\n        break;\r\n\r\n      case TextColor.Warning:\r\n        iconColor = this._dialogConfig.colors.warning;\r\n        break;\r\n\r\n      case TextColor.White:\r\n        iconColor = this._dialogConfig.colors.white;\r\n        break;\r\n    }\r\n\r\n    return {\r\n      icon: icon,\r\n      iconColor: iconColor,\r\n      buttons: buttons,\r\n      callback: function () {}\r\n    };\r\n  }\r\n}\r\n\r\nexport class DialogEventArgs {\r\n  constructor(public state: string, public content?: any) {}\r\n}\r\n","import { ListAction } from './enums';\r\n\r\nexport class ListEventArgs {\r\n  constructor(public sender: ListAction, public model?: any) {}\r\n}\r\n","import { DataType } from './enums';\r\n\r\nexport class IdentityValue {\r\n  public constructor(public PropertyName: string, public Value: any) {}\r\n}\r\n\r\nexport interface IPropertyMetadata {\r\n  name: string;\r\n  type: DataType;\r\n}\r\n\r\nexport class PropertyMetadata implements IPropertyMetadata {\r\n  constructor(public name: string, public type: DataType = DataType.String) {}\r\n}\r\n\r\n/**\r\n * Decorador que marca la propiedad que representa la clave unica del modelo de datos\r\n * @param dataType representa el tipo de dato. Solo number y string son admitidos\r\n */\r\nexport function Key(dataType: DataType) {\r\n  return (target: any, key: string) => {\r\n    //asigna el valor por default segun el tipo\r\n    target[key] = dataType === DataType.String ? null : 0;\r\n\r\n    //aplica la metadata al model. No se clona ni se puede modificar\r\n    Object.defineProperty(target, 'metadata', {\r\n      configurable: false,\r\n      enumerable: false,\r\n      writable: false,\r\n      value: new PropertyMetadata(key, dataType)\r\n    });\r\n  };\r\n}\r\n","export class BaseObject {}\r\n","import { CacheDataContainer } from './cachecontainer';\r\nimport {\r\n  CacheDataFilter,\r\n  CacheDataMapping,\r\n  CacheDataRequest,\r\n  CommonHelper,\r\n  ICACHE_DATA_PROVIDER,\r\n  MappingItem,\r\n  NotifierEventArgs,\r\n  Relationship\r\n} from './setting';\r\nimport { FilterOperator, ValueType } from './enums';\r\n\r\nexport class CacheDataObject {\r\n  //private _pushExecuted: boolean;\r\n  loading = false;\r\n  //\r\n  container: CacheDataContainer;\r\n  cacheDataRequest: CacheDataRequest | undefined;\r\n  List: any[] = [];\r\n\r\n  //esta propiedad me dice la relacion entre el cacheobject.List y el modelo externo relacionado\r\n  //key: categorias => categorias.CategoriaId = $.model.CategoriaId))\r\n  lookupMapping: MappingItem | undefined;\r\n  //mappings\r\n  mappings = new Array<CacheDataMapping>();\r\n  relationships = new Array<Relationship>();\r\n  asyncBind: boolean = false;\r\n  useRelationship: boolean = false;\r\n  bindFirstItemOnChange: boolean = false;\r\n\r\n  constructor(provider: Partial<ICACHE_DATA_PROVIDER>, container: CacheDataContainer) {\r\n    this.container = container;\r\n    this.container.targetObjects.set('$', this.container.service);\r\n\r\n    if (provider) {\r\n      //\r\n      this.cacheDataRequest = new CacheDataRequest(provider);\r\n\r\n      if (provider.asyncBind) this.asyncBind = provider.asyncBind;\r\n\r\n      if (provider.useRelationship) this.useRelationship = provider.useRelationship;\r\n\r\n      if (provider.bindFirstItemOnChange) this.bindFirstItemOnChange = provider.bindFirstItemOnChange;\r\n\r\n      if (provider.lookupMapping) this.lookupMapping = provider.lookupMapping;\r\n\r\n      //mapping necesarios para actualizar el model cualquier objeto del service con\r\n      // el item de la lista que se haya seleccionado.\r\n      if (provider.mappings) {\r\n        for (const element of provider.mappings) this.mappings.push(CommonHelper.getCacheMappingFromString(element));\r\n      }\r\n\r\n      //guarda la relaciones con otros cachedataobjects\r\n      if (provider.relationships) {\r\n        for (const element of provider.relationships)\r\n          this.relationships.push(CommonHelper.getCacheRelationshipFromString(element));\r\n      }\r\n    }\r\n  }\r\n\r\n  private _loadRelationship(args: NotifierEventArgs) {\r\n    setTimeout(() => {\r\n      for (const element of args.relationships) {\r\n        const relationship = element;\r\n        // @ts-ignore\r\n        const cdo = <CacheDataObject>this.container[relationship.targetObject];\r\n\r\n        for (const key of relationship.keys) {\r\n          const filter = cdo.cacheDataRequest?.Filters.find(f => f.PropertyName === key.leftMember);\r\n\r\n          if (!filter) {\r\n            cdo.cacheDataRequest?.Filters.push(\r\n              new CacheDataFilter(key.leftMember, FilterOperator.Equals, key.value, ValueType.constant)\r\n            );\r\n          } else {\r\n            filter.Value = key.value;\r\n          }\r\n        }\r\n        cdo.get(cdo.cacheDataRequest);\r\n      }\r\n    }, 0);\r\n  }\r\n\r\n  private _internalbind(item: any) {\r\n    const action = item ? 'bind' : 'unbind';\r\n    // this._lastItemBinded = item;\r\n    // if (!stopNotification) {\r\n    // \tthis.notifyChanges(item);\r\n    // }\r\n    for (const element of this.mappings) {\r\n      //Si el mapping string esta marcado para ejecutar el bind solo cuando se haga push a la lista\r\n      //entonces saldra y pasará a evaluar el siguiente\r\n      const mapping = element;\r\n      // if (mapping.mapOnPushOlny /*&& !this._pushExecuted*/) {\r\n      // \tcontinue;\r\n      // }\r\n\r\n      let memberValue;\r\n      // let haschanged;\r\n      if (action === 'bind') {\r\n        memberValue = CommonHelper.getMemberValue(mapping.source, item);\r\n        // haschanged = !CommonHelper.sameObject(item, this._lastItemBinded,mapping.bracketsMembers);\r\n      } else {\r\n        memberValue = mapping.defaultValue;\r\n      }\r\n\r\n      for (const targetMapping of mapping.targets) {\r\n        if (action === 'bind' && mapping.supportUnbindOnly) continue;\r\n\r\n        const target = CommonHelper.getMemberObject(targetMapping.leftMember, this.container.targetObjects);\r\n        if (target.VALID) {\r\n          // @ts-ignore\r\n          target.MEMBER_OBJECT[target.MEMBER_NAME] = memberValue;\r\n        }\r\n      }\r\n      //\r\n    }\r\n    // this._pushExecuted = false;\r\n  }\r\n\r\n  push(...items: any[]) {\r\n    this.List = [...this.List.concat(items)];\r\n\r\n    if (this.lookupMapping) {\r\n      const target = CommonHelper.getMemberObject(this.lookupMapping.leftMember, this.container.targetObjects);\r\n      if (target.VALID) {\r\n        // @ts-ignore\r\n        target.MEMBER_OBJECT[target.MEMBER_NAME] = items[0][this.lookupMapping.rightMember];\r\n      }\r\n    }\r\n    this.bind(items[0]);\r\n  }\r\n\r\n  get(item?: CacheDataRequest) {\r\n    if (!item) item = this.cacheDataRequest;\r\n\r\n    this.container.get([item]);\r\n  }\r\n\r\n  find(predicate: (value: any, index: number, obj: any[]) => boolean) {\r\n    return this.List.find(predicate);\r\n  }\r\n\r\n  filter(callback: (value: any, index: number, array: any[]) => any) {\r\n    return this.List.filter(callback);\r\n  }\r\n\r\n  bind(item: any) {\r\n    if (this.asyncBind) {\r\n      //para no esperar ya que hacer el bind es idependiente de actualizar el model\r\n      setTimeout(() => {\r\n        this._internalbind(item);\r\n      }, 0);\r\n    } else {\r\n      this._internalbind(item);\r\n    }\r\n  }\r\n\r\n  notifyChanges(item: any) {\r\n    if (this.useRelationship && /*!this._pushExecuted &&*/ this.relationships.length > 0) {\r\n      //es necesario que solo emita cuando se ejecute el bind que no provenga de un push\r\n      for (const element of this.relationships) {\r\n        {\r\n          const relationship = element;\r\n\r\n          if (item) {\r\n            for (const element of relationship.keys) {\r\n              const key = element;\r\n              // const oldValue = key.value;\r\n              // @ts-ignore\r\n              key.value = item ? item[key.rightMember] : undefined;\r\n            }\r\n          } else {\r\n            // @ts-ignore\r\n            const dco = <CacheDataObject>this.container[relationship.targetObject];\r\n\r\n            dco.List = [];\r\n            let target;\r\n\r\n            if (dco.lookupMapping)\r\n              target = CommonHelper.getMemberObject(dco.lookupMapping.leftMember, this.container.targetObjects);\r\n\r\n            //aqui limpiaria\r\n            if (target && target.VALID) {\r\n              // @ts-ignore\r\n              target.MEMBER_OBJECT[target.MEMBER_NAME] = undefined;\r\n            }\r\n          }\r\n        }\r\n\r\n        //CHANGE:KEY\r\n        if (item) this._loadRelationship(new NotifierEventArgs(this.cacheDataRequest?.Alias, this.relationships));\r\n      }\r\n    }\r\n  }\r\n}\r\n","export class CallerComponent {\r\n  host: 'service' | 'manager' | 'list' | 'form' = 'service';\r\n  state: 'stopped' | 'initializing' | 'destroying' = 'stopped';\r\n\r\n  resetState() {\r\n    this.state = 'stopped';\r\n  }\r\n}\r\n","import { IServiceManager } from '../interfaces/servicemanager.interface';\r\nimport { CacheDataObject } from './cachedataobject';\r\nimport { CacheDataRequest, CommonHelper, ICACHE_DATA_PROVIDER } from './setting';\r\nimport { Page } from './response';\r\nimport { ValueType } from './enums';\r\nimport { ICacheDataProvider } from '../interfaces/cachedataprovider.interface';\r\n\r\nexport class CacheDataContainer {\r\n  private _initialized = false;\r\n\r\n  providers = new Map<string, CacheDataRequest>();\r\n  targetObjects = new Map<string, Object>();\r\n\r\n  constructor(public service: Partial<IServiceManager<any>>, public providerOptions?: ICacheDataProvider) {\r\n    if (this.providerOptions && !this.providerOptions.disableInitialization) {\r\n      this.init();\r\n    }\r\n  }\r\n\r\n  init() {\r\n    if (this._initialized) {\r\n      console.warn('CacheDataObject already initialize');\r\n      return;\r\n    }\r\n\r\n    const options = { ...this.providerOptions };\r\n\r\n    if (options.providers) {\r\n      for (const element of options.providers) {\r\n        const provider = CommonHelper.createCompatibleProvider(element);\r\n\r\n        const newObject = new CacheDataObject(provider, this);\r\n\r\n        if (provider.alias) {\r\n          Object.defineProperty(this, provider.alias, { value: newObject });\r\n          this.providers.set(provider.alias, newObject.cacheDataRequest as any);\r\n        }\r\n      }\r\n    }\r\n\r\n    this._initialized = true;\r\n  }\r\n\r\n  updateFilters() {\r\n    const filtersProviders = (this.providerOptions?.providers as Partial<ICACHE_DATA_PROVIDER>[]).filter(f => {\r\n      // @ts-ignore\r\n      return f.filters || f.filters?.length > 0;\r\n    });\r\n\r\n    for (const element of filtersProviders) {\r\n      const provider = CommonHelper.createCompatibleProvider(element);\r\n\r\n      const request = new CacheDataRequest(provider);\r\n\r\n      if (provider.alias) {\r\n        const providerRequest = this.providers.get(provider.alias);\r\n\r\n        if (providerRequest) providerRequest.Filters = request.Filters;\r\n\r\n        this.providers.set(provider.alias, providerRequest as any);\r\n      }\r\n      // this.providers = this.providers.filter((f) => f.Alias !== provider.alias);\r\n      // this.providers.push(providerRequest);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * @deprecated The method should not be used, instead use getList\r\n   */\r\n  get values(): any {\r\n    return this;\r\n  }\r\n\r\n  get dflt() {\r\n    // @ts-ignore\r\n    return this['default'];\r\n  }\r\n\r\n  // set default(value) {\r\n  //   this[\"default\"] = value;\r\n  // }\r\n\r\n  get(cacheDataRequests?: (CacheDataRequest | undefined)[]) {\r\n    if (this.providers.size === 0) return;\r\n\r\n    this.service.blocker?.turnOff(true);\r\n    // @ts-ignore\r\n    this.service.getSettingSubscription(\r\n      {\r\n        Page: new Page(),\r\n        LoadCRUD: false,\r\n        EnableFilter: false,\r\n        CacheDataProviders: this.getCacheDataRequest(cacheDataRequests)\r\n      },\r\n      ({ Extensions }) => this.update(Extensions?.Setting?.CacheData)\r\n    );\r\n  }\r\n\r\n  pushList(providerKey: string, object: CacheDataObject | any) {\r\n    // @ts-ignore\r\n    const data = this[providerKey];\r\n\r\n    if (!data) return;\r\n\r\n    data.List = [...data.List, object];\r\n    // @ts-ignore\r\n    this[providerKey].List = data.List;\r\n  }\r\n\r\n  bindEvent(providerKey: string, event: any, service?: any) {\r\n    if (service) {\r\n      // @ts-ignore\r\n      this[providerKey].bind(event, service);\r\n    } else {\r\n      // @ts-ignore\r\n      this[providerKey]?.bind(event);\r\n    }\r\n  }\r\n\r\n  setList(providerKey: string, values: CacheDataObject | any) {\r\n    // @ts-ignore\r\n    const data = this[providerKey];\r\n\r\n    if (!data) return;\r\n\r\n    data.List = values;\r\n    // @ts-ignore\r\n    this[providerKey].List = data.List;\r\n  }\r\n\r\n  getList(providerKey: string): any[] {\r\n    try {\r\n      // @ts-ignore\r\n      return this[providerKey].List;\r\n    } catch (error) {\r\n      return [];\r\n    }\r\n  }\r\n\r\n  update(data: any) {\r\n    if (!data) return;\r\n\r\n    const keys = Object.keys(data);\r\n\r\n    keys.forEach(key => {\r\n      const modelKey = this.providers.get(key);\r\n\r\n      if (modelKey) {\r\n        // @ts-ignore\r\n        const dco = this[key] as CacheDataObject;\r\n        dco.List = data[key];\r\n        dco.loading = false;\r\n\r\n        if (dco.bindFirstItemOnChange) {\r\n          //\r\n          if (dco.lookupMapping) {\r\n            const target = CommonHelper.getMemberObject(dco.lookupMapping.leftMember, this.targetObjects);\r\n\r\n            if (target.VALID) {\r\n              // @ts-ignore\r\n              target.MEMBER_OBJECT[target.MEMBER_NAME] =\r\n                // @ts-ignore\r\n                dco.List.length > 0 ? dco.List[0][dco.lookupMapping.rightMember] : undefined;\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        // @ts-ignore\r\n        this[key] = data[key];\r\n      }\r\n    });\r\n  }\r\n\r\n  destroy() {\r\n    //aqui se destruiria cualquier emitter u otro objecto al llamerse\r\n    //explicitamente o al destruir la instancia del service manager\r\n  }\r\n\r\n  addTarget(alias: string, targetObject: any) {\r\n    if (this.targetObjects.has(alias)) {\r\n      return;\r\n    }\r\n    this.targetObjects.set(alias, targetObject);\r\n  }\r\n\r\n  getCacheDataRequest(cacheDataRequests?: (CacheDataRequest | undefined)[]): CacheDataRequest[] {\r\n    const result = new Array<CacheDataRequest>();\r\n\r\n    if (!cacheDataRequests) {\r\n      this.providers.forEach(value => {\r\n        const cache = this.setupCacheDataRequest(value);\r\n\r\n        if (cache) result.push(cache);\r\n      });\r\n    } else {\r\n      for (const element of cacheDataRequests) {\r\n        const cache = this.setupCacheDataRequest(element);\r\n\r\n        if (cache) result.push();\r\n      }\r\n    }\r\n\r\n    return result;\r\n  }\r\n\r\n  setupCacheDataRequest(cacheDataRequest: CacheDataRequest | undefined): CacheDataRequest | undefined {\r\n    //activar el loading por cada cachedataobject\r\n\r\n    // @ts-ignore\r\n    this[cacheDataRequest.Alias].loading = true;\r\n\r\n    if (cacheDataRequest?.Filters) {\r\n      for (const element of cacheDataRequest.Filters) {\r\n        const filter = element;\r\n\r\n        if (filter.valueType === ValueType.property || filter.valueType === ValueType.function) {\r\n          const member = CommonHelper.getMemberObjectValue(filter.internalValue, this.targetObjects);\r\n          filter.Value = typeof member === 'function' ? member() : member;\r\n        } else if (filter.valueType === ValueType.undefined) {\r\n          throw new Error('Cache data filter valuetype cannot be undefined');\r\n        }\r\n      }\r\n    }\r\n\r\n    return cacheDataRequest;\r\n  }\r\n}\r\n","import { Subscription } from 'rxjs/internal/Subscription';\r\nimport { IServiceManager } from '../interfaces/servicemanager.interface';\r\nimport { ModelState } from './enums';\r\nimport { IServiceMethods } from '../interfaces/servicemethod.interface';\r\n\r\nexport abstract class EventSubscriber {\r\n  protected subscriptions = new Array<Subscription>();\r\n  protected _callback: Function | undefined;\r\n\r\n  abstract subscribe(args?: any): void;\r\n\r\n  addSubscription(subscription?: Subscription) {\r\n    if (subscription) this.subscriptions.push(subscription);\r\n  }\r\n\r\n  protected callbackArgs(args: any, state: any) {\r\n    if (!this._callback) return;\r\n\r\n    args['state'] = state;\r\n    this._callback(args);\r\n  }\r\n\r\n  callBack(callback: Function) {\r\n    this._callback = callback;\r\n  }\r\n\r\n  unsubscribe() {\r\n    this.subscriptions.forEach((subscription: Subscription) => {\r\n      subscription.unsubscribe();\r\n    });\r\n\r\n    this.subscriptions = [];\r\n  }\r\n}\r\n\r\nexport class ServiceSubscriber extends EventSubscriber {\r\n  //private _suscriptions = new Array<Subscription>();\r\n  private readonly _methodHost?: IServiceMethods;\r\n\r\n  //private _callback: Function;\r\n\r\n  constructor(public service: Partial<IServiceManager<any>>, methodsHost?: IServiceMethods) {\r\n    super();\r\n    this.service = service;\r\n    this._methodHost = methodsHost;\r\n    // @ts-ignore\r\n    this.service.validateSubscriptions();\r\n  }\r\n\r\n  // callBack(callback: Function) {\r\n  //   this._callback = callback;\r\n  // }\r\n\r\n  // private callbackArgs(args: any, state: ModelState) {\r\n  //   if (!this._callback) {\r\n  //     return;\r\n  //   }\r\n\r\n  //   args[\"state\"] = state;\r\n  //   this._callback(args);\r\n  // }\r\n\r\n  subscribe() {\r\n    this.addSubscription(\r\n      this.service.emitters?.add.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onAdd(args);\r\n        else this.callbackArgs(args, ModelState.Add);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.emitters?.added.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onAdded(args);\r\n        else this.callbackArgs(args, ModelState.Added);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.emitters?.edit.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onEdit(args);\r\n        else this.callbackArgs(args, ModelState.Edit);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.emitters?.edited.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onEdited(args);\r\n        else this.callbackArgs(args, ModelState.Edited);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.emitters?.delete.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onDelete(args);\r\n        else this.callbackArgs(args, ModelState.Delete);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.emitters?.deleted.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onDeleted(args);\r\n        else this.callbackArgs(args, ModelState.Deleted);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.emitters?.cancel.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onCancel(args);\r\n        else this.callbackArgs(args, ModelState.Canceled);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.loadEmitter?.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onLoad(args);\r\n        else this.callbackArgs(args, ModelState.Loaded);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.emitters?.stateChange.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onStateChange(args);\r\n        else this.callbackArgs(args, ModelState.StateChange);\r\n      })\r\n    );\r\n\r\n    this.addSubscription(\r\n      this.service.emitters?.add.subscribe(args => {\r\n        if (this._methodHost) this._methodHost.onSettingRefreshed(args);\r\n        else this.callbackArgs(args, ModelState.SettingChange);\r\n      })\r\n    );\r\n  }\r\n\r\n  override unsubscribe() {\r\n    // this._suscriptions.forEach((subscription: Subscription) => {\r\n    //   subscription.unsubscribe();\r\n    // });\r\n\r\n    // this._suscriptions = [];\r\n    super.unsubscribe();\r\n\r\n    if (this.service.cacheData) this.service.cacheData.destroy();\r\n\r\n    // @ts-ignore\r\n    this.service.unsubscribe();\r\n  }\r\n}\r\n","import { FilterOperator, SortDirection } from './enums';\r\n\r\nexport interface IFilter {\r\n  PropertyName?: string;\r\n  Operator?: FilterOperator;\r\n  Value: any;\r\n}\r\n\r\nexport class IPOCOFilter {\r\n  constructor(public PropertyName?: string, public Operator?: FilterOperator, public Value?: any) {}\r\n}\r\n\r\nexport class Filter implements IFilter {\r\n  PropertyName?: string;\r\n  Operator?: FilterOperator;\r\n  Value: any;\r\n  Reference: any;\r\n\r\n  constructor(PropertyName?: string, Operator?: FilterOperator, Value?: any) {\r\n    this.PropertyName = PropertyName;\r\n    this.Operator = Operator;\r\n    this.Value = Value;\r\n  }\r\n}\r\n\r\nexport class SortItem {\r\n  PropertyName: string | undefined;\r\n  Direction: SortDirection | undefined;\r\n}\r\n","import { IFilter } from './filtrable';\r\nimport { FilterOperator } from './enums';\r\n\r\nexport class SearchColumn implements IFilter {\r\n  PropertyName: string | undefined;\r\n  Operator: FilterOperator;\r\n  Value: any;\r\n  DisplayName: string | undefined;\r\n  Style: any;\r\n  Class: string | undefined;\r\n  Hidden = false;\r\n  MapPropertyName: string | undefined;\r\n\r\n  constructor(propertyName?: string, displayName?: string, operator?: FilterOperator) {\r\n    this.PropertyName = propertyName;\r\n    this.DisplayName = displayName;\r\n\r\n    this.Operator = operator || FilterOperator.Equals;\r\n    this.SetMapPropertyName(this.PropertyName);\r\n  }\r\n\r\n  ToFilter(): IFilter {\r\n    return {\r\n      PropertyName: this.PropertyName,\r\n      Operator: this.Operator,\r\n      Value: this.Value\r\n    };\r\n  }\r\n\r\n  SetStyle(style: any): SearchColumn {\r\n    this.Style = style;\r\n\r\n    return this;\r\n  }\r\n\r\n  SetHidden(hidden: boolean): SearchColumn {\r\n    this.Hidden = hidden;\r\n\r\n    return this;\r\n  }\r\n\r\n  SetClass(_class: string): SearchColumn {\r\n    this.Class = _class;\r\n\r\n    return this;\r\n  }\r\n\r\n  SetMapPropertyName(mapPropertyName?: string): SearchColumn {\r\n    this.MapPropertyName = mapPropertyName;\r\n\r\n    return this;\r\n  }\r\n}\r\n","import { IServerMethod } from '../interfaces/servermethod.interface';\r\n\r\nexport class ServerMethodHelper implements IServerMethod {\r\n  ADD = '';\r\n  GET = '';\r\n  DELETE = '';\r\n  EDIT = '';\r\n  GET_SETTING = '';\r\n  REQUERY = '';\r\n\r\n  get(method?: string): ServerMethodHelper {\r\n    this.GET = method || '';\r\n    return this;\r\n  }\r\n\r\n  add(method?: string): ServerMethodHelper {\r\n    this.ADD = method || '';\r\n    return this;\r\n  }\r\n\r\n  edit(method?: string): ServerMethodHelper {\r\n    this.EDIT = method || '';\r\n    return this;\r\n  }\r\n\r\n  requery(method?: string): ServerMethodHelper {\r\n    this.REQUERY = method || '';\r\n    return this;\r\n  }\r\n\r\n  delete(del?: string): ServerMethodHelper {\r\n    this.DELETE = del || '';\r\n    return this;\r\n  }\r\n\r\n  getSetting(method?: string): ServerMethodHelper {\r\n    this.GET_SETTING = method || '';\r\n    return this;\r\n  }\r\n}\r\n","import { IServerMethod } from '../interfaces/servermethod.interface';\r\n\r\nexport class ServerMethod implements IServerMethod {\r\n  ADD = 'Add';\r\n  GET = 'Get';\r\n  DELETE = 'Delete';\r\n  EDIT = 'Edit';\r\n  GET_SETTING = 'GetSetting';\r\n  REQUERY = 'Requery';\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/internal/operators/filter';\r\nimport { HttpStatusCode } from '../helpers/httpCode';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PreviousRouteService {\r\n  previousUrl: string | undefined;\r\n  currentUrl: string;\r\n\r\n  private _history = new Array<string>();\r\n  private _routeKey = 'routes';\r\n\r\n  constructor(private _router: Router) {\r\n    const routes = JSON.parse(sessionStorage.getItem(this._routeKey) ?? '');\r\n\r\n    if (routes) this._history = routes;\r\n\r\n    this.currentUrl = this._router.url;\r\n\r\n    _router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event: any) => {\r\n      if (!event.url.includes(HttpStatusCode.NotFound.toString())) {\r\n        this.previousUrl = this.currentUrl;\r\n        this.currentUrl = event.url;\r\n        this._history = [...this._history, this.currentUrl];\r\n\r\n        sessionStorage.setItem(this._routeKey, JSON.stringify(this._history));\r\n      }\r\n    });\r\n  }\r\n\r\n  get getHistory(): string[] {\r\n    return this._history;\r\n  }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { ConfigService } from './config.service';\r\nimport { TokenService } from '../components/auth/token.service';\r\nimport { ClaimTypes } from '../helpers/claimtype';\r\nimport { ResponseData } from '../helpers/response';\r\nimport { IEvent } from '../interfaces/event.interface';\r\nimport {\r\n  JSONisUnauthorized,\r\n  getErrorMessage,\r\n  getToastConfiguration,\r\n  isUnauthorized,\r\n  showToast\r\n} from '../helpers/function';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Injector } from '@angular/core';\r\nimport { HttpStatusCode } from '../helpers/httpCode';\r\nimport { first } from 'rxjs';\r\n\r\nexport abstract class HttpBaseService implements IEvent {\r\n  appInjector: Injector;\r\n  http: HttpClient;\r\n  router: Router;\r\n  tokenService: TokenService;\r\n  toastr: ToastrService;\r\n  configService: ConfigService;\r\n\r\n  skipDisabledBlockUI = false;\r\n  skipEnableBlockUI = false;\r\n\r\n  protected constructor(_injector: Injector) {\r\n    this.appInjector = _injector;\r\n    this.http = this.appInjector.get(HttpClient);\r\n    this.router = this.appInjector.get(Router);\r\n    this.tokenService = this.appInjector.get(TokenService);\r\n    this.toastr = this.appInjector.get(ToastrService);\r\n    this.configService = this.appInjector.get(ConfigService);\r\n    this.validateChangePassword();\r\n  }\r\n\r\n  set skipDisabledBlockOnce(value: boolean) {\r\n    this.skipDisabledBlockUI = value;\r\n  }\r\n\r\n  set skipEnableBlockOnce(value: boolean) {\r\n    this.skipEnableBlockUI = value;\r\n  }\r\n\r\n  validateChangePassword() {\r\n    try {\r\n      const model = JSON.parse(this.tokenService.getValueFromClaim(ClaimTypes.UserData));\r\n\r\n      if (model.ChangePassword) this.router.navigate([this.configService.authRoute.ChangePasswordUrl]);\r\n      // eslint-disable-next-line no-empty\r\n    } catch {}\r\n  }\r\n\r\n  postMethod<TModel>(\r\n    action: string | undefined,\r\n    object: {},\r\n    callback: (response: Partial<ResponseData<TModel>>) => void,\r\n    callbackError?: Function\r\n  ) {\r\n    this.setBlock();\r\n    const observable = this.http.post<ResponseData<TModel>>(`${this.configService.getUrlApi()}${action}`, object);\r\n\r\n    this.subscribe(observable, callback, callbackError);\r\n  }\r\n\r\n  putMethod<TModel>(\r\n    action: string,\r\n    object: {},\r\n    callback: (response: Partial<ResponseData<TModel>>) => void,\r\n    callbackError?: Function\r\n  ) {\r\n    this.setBlock();\r\n    const observable = this.http.put<ResponseData<TModel>>(`${this.configService.getUrlApi()}${action}`, object);\r\n\r\n    this.subscribe(observable, callback, callbackError);\r\n  }\r\n\r\n  patchMethod<TModel>(\r\n    action: string,\r\n    object: {},\r\n    callback: (response: Partial<ResponseData<TModel>>) => void,\r\n    callbackError?: Function\r\n  ) {\r\n    this.setBlock();\r\n    const observable = this.http.patch<ResponseData<TModel>>(`${this.configService.getUrlApi()}${action}`, object);\r\n\r\n    this.subscribe(observable, callback, callbackError);\r\n  }\r\n\r\n  deleteMethod<TModel>(\r\n    action: string,\r\n    callback: (response: Partial<ResponseData<TModel>>) => void,\r\n    callbackError?: Function\r\n  ) {\r\n    this.setBlock();\r\n    const observable = this.http.delete<ResponseData<TModel>>(`${this.configService.getUrlApi()}${action}`);\r\n\r\n    this.subscribe(observable, callback, callbackError);\r\n  }\r\n\r\n  getMethod<TModel>(\r\n    action: string | undefined,\r\n    callback: (response: Partial<ResponseData<TModel>>) => void,\r\n    callbackError?: Function\r\n  ) {\r\n    this.setBlock();\r\n    const observable = this.http.get<ResponseData<TModel>>(`${this.configService.getUrlApi()}${action}`);\r\n\r\n    this.subscribe(observable, callback, callbackError);\r\n  }\r\n\r\n  subscribe<TModel>(\r\n    observable: Observable<ResponseData<TModel>>,\r\n    callback: (response: Partial<ResponseData<TModel>>) => void,\r\n    callbackError?: Function\r\n  ) {\r\n    observable.pipe(first()).subscribe({\r\n      next: response => {\r\n        this.setBlock(false);\r\n\r\n        if (!response.Commit) {\r\n          showToast(response);\r\n\r\n          if (callbackError) callbackError(response);\r\n\r\n          if (JSONisUnauthorized(response)) {\r\n            if (this.tokenService) this.tokenService.removeToken();\r\n\r\n            this.router.navigate([this.configService.authRoute.LoginUrl]);\r\n          }\r\n\r\n          return;\r\n        }\r\n\r\n        if (callback) callback(response);\r\n      },\r\n      error: (error: HttpErrorResponse) => {\r\n        if (error.status === HttpStatusCode.Unauthorized) {\r\n          this.toastr.clear();\r\n          this.toastr.warning(getErrorMessage(error), 'Usuario no autorizado', getToastConfiguration());\r\n        } else if (error.status === HttpStatusCode.Forbidden) {\r\n          this.toastr.clear();\r\n          this.toastr.warning(\r\n            getErrorMessage(error),\r\n            'No cuenta con suficientes privilegios para ejecutar esta acción',\r\n            getToastConfiguration()\r\n          );\r\n        } else {\r\n          this.toastr.error(getErrorMessage(error), '', getToastConfiguration());\r\n        }\r\n\r\n        if (callbackError) callbackError(error);\r\n\r\n        if (isUnauthorized(error)) this.router.navigate([this.configService.authRoute.LoginUrl]);\r\n\r\n        this.setBlock(false);\r\n      }\r\n    });\r\n  }\r\n\r\n  setBlock(value = true) {\r\n    if (value && this.skipEnableBlockUI) {\r\n      this.skipEnableBlockUI = false;\r\n      return;\r\n    }\r\n\r\n    if (!value && this.skipDisabledBlockUI) {\r\n      this.skipDisabledBlockUI = false;\r\n      return;\r\n    }\r\n\r\n    this.configService.blockerSubject.next(value);\r\n  }\r\n\r\n  onSuccess() {}\r\n\r\n  onError() {}\r\n}\r\n","import { EventEmitter, Injector } from '@angular/core';\r\nimport { ServiceLocator, appInjector } from '../helpers/appinjector';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { ResponseData } from '../helpers/response';\r\nimport { IDataService } from '../interfaces/data.interface';\r\nimport { ErrorHandler, IErrorResult } from './error-handler';\r\nimport { ConfigService } from './config.service';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { first } from 'rxjs';\r\n\r\nexport class DataService implements IDataService {\r\n  readonly GET = 'GET';\r\n  readonly POST = 'POST';\r\n  readonly PUT = 'PUT';\r\n  readonly DELETE = 'DELETE';\r\n  readonly PATCH = 'PATCH';\r\n  skipBlockerOnce = false;\r\n\r\n  onError = new EventEmitter<IErrorResult>();\r\n  onRequest = new EventEmitter<string>();\r\n  onResponse = new EventEmitter<string>();\r\n\r\n  injector: Injector;\r\n  http: HttpClient;\r\n  errorProvider: ErrorHandler;\r\n  configService: ConfigService;\r\n\r\n  constructor() {\r\n    this.injector = appInjector();\r\n    this.http = this.injector.get(HttpClient);\r\n    this.errorProvider = ServiceLocator.get(ErrorHandler);\r\n    this.configService = this.injector.get(ConfigService);\r\n  }\r\n\r\n  protected verifyBlocker() {\r\n    if (this.skipBlockerOnce) {\r\n      this.configService.turnOffOnceBlocker = true;\r\n      this.skipBlockerOnce = false;\r\n    }\r\n  }\r\n\r\n  httpGet<TModel>(url: string, params?: any, callback?: (response: Partial<ResponseData<TModel>>) => void) {\r\n    if (!url || url === '') throw Error('You must specify a server method');\r\n\r\n    let options: any;\r\n\r\n    this.verifyBlocker();\r\n\r\n    if (arguments.length > 1) {\r\n      if (typeof params === 'function') {\r\n        callback = params;\r\n      } else {\r\n        options = {\r\n          params: new HttpParams({ fromObject: params })\r\n        };\r\n      }\r\n    }\r\n\r\n    let result = this.http.get<ResponseData<TModel>>(\r\n      url,\r\n      options as Partial<{\r\n        headers?:\r\n          | HttpHeaders\r\n          | {\r\n              [header: string]: string | string[];\r\n            };\r\n        observe?: 'body';\r\n        params?:\r\n          | HttpParams\r\n          | {\r\n              [param: string]: string | string[];\r\n            };\r\n        reportProgress?: boolean;\r\n        responseType?: 'json';\r\n        withCredentials?: boolean;\r\n      }>\r\n    );\r\n\r\n    if (callback) {\r\n      this.onRequest.emit('get');\r\n\r\n      result.pipe(first()).subscribe({\r\n        next: response => {\r\n          this.onResponse.emit('get');\r\n          if (!response.Commit) {\r\n            this.onError.emit(this.errorProvider.toErrorResult(response.Message));\r\n            return;\r\n          }\r\n          // @ts-ignore\r\n          callback(response);\r\n        },\r\n        error: (error: HttpErrorResponse) => this.onError.emit(this.errorProvider.processError(error))\r\n      });\r\n    }\r\n  }\r\n\r\n  httpPost<TModel>(url: string, body?: any, callback?: ((response: Partial<ResponseData<TModel>>) => void) | any) {\r\n    this.httpVerb(this.POST, url, body, callback);\r\n  }\r\n\r\n  httpPut<TModel>(url: string, body?: any, callback?: ((response: Partial<ResponseData<TModel>>) => void) | any) {\r\n    this.httpVerb(this.PUT, url, body, callback);\r\n  }\r\n\r\n  httpPatch<TModel>(url: string, body?: any, callback?: ((response: Partial<ResponseData<TModel>>) => void) | any) {\r\n    this.httpVerb(this.PATCH, url, body, callback);\r\n  }\r\n\r\n  httpDelete<TModel>(url: string, body?: any, callback?: ((response: Partial<ResponseData<TModel>>) => void) | any) {\r\n    this.httpVerb(this.DELETE, url, body, callback);\r\n  }\r\n\r\n  httpVerb<TModel>(\r\n    verb: string,\r\n    url: string,\r\n    body?: any,\r\n    callback?: ((response: Partial<ResponseData<TModel>>) => void) | any\r\n  ) {\r\n    if (!url || url === '') {\r\n      throw Error('You must specify a serve method');\r\n    }\r\n\r\n    let _body: any;\r\n\r\n    if (arguments.length > 1) {\r\n      if (typeof body === 'function') {\r\n        callback = body;\r\n      } else {\r\n        _body = body;\r\n      }\r\n    }\r\n\r\n    let result: Observable<ResponseData<TModel>>;\r\n\r\n    this.verifyBlocker();\r\n\r\n    switch (verb) {\r\n      case this.POST:\r\n        result = this.http.post<ResponseData<TModel>>(url, _body);\r\n        break;\r\n\r\n      case this.DELETE:\r\n        result = this.http.delete<ResponseData<TModel>>(\r\n          url,\r\n          _body as Partial<{\r\n            headers?:\r\n              | HttpHeaders\r\n              | {\r\n                  [header: string]: string | string[];\r\n                };\r\n            observe?: 'body';\r\n            params?:\r\n              | HttpParams\r\n              | {\r\n                  [param: string]: string | string[];\r\n                };\r\n            reportProgress?: boolean;\r\n            responseType?: 'json';\r\n            withCredentials?: boolean;\r\n          }>\r\n        );\r\n        break;\r\n\r\n      case this.PUT:\r\n        result = this.http.put<ResponseData<TModel>>(url, _body);\r\n        break;\r\n\r\n      case this.PATCH:\r\n        result = this.http.patch<ResponseData<TModel>>(url, _body);\r\n        break;\r\n\r\n      case this.GET:\r\n        this.httpGet(url, body, callback);\r\n        return;\r\n\r\n      default:\r\n        throw Error(\"HTTP Verb doesn't supported\");\r\n    }\r\n\r\n    if (callback) {\r\n      this.onRequest.emit(verb);\r\n\r\n      result.pipe(first()).subscribe({\r\n        next: response => {\r\n          this.onResponse.emit(verb);\r\n          if (!response.Commit) {\r\n            this.onError.emit(this.errorProvider.toErrorResult(response.Message));\r\n            return;\r\n          }\r\n\r\n          if (typeof callback === 'function') callback(response);\r\n        },\r\n        error: (error: HttpErrorResponse) => this.onError.emit(this.errorProvider.processError(error))\r\n      });\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CrudAction } from '../../helpers/enums';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CrudService {\r\n  private _crudStateSource = new Subject<number>();\r\n  private _crud = 0;\r\n\r\n  crudStateTracker: Observable<number> = this._crudStateSource.asObservable();\r\n\r\n  get CRUD(): number {\r\n    return this._crud;\r\n  }\r\n\r\n  readonly message = 'No tiene privilegios para ejecutar esta acción';\r\n\r\n  notifyCRUD(state?: number) {\r\n    if (state) {\r\n      this._crud = state;\r\n      this._crudStateSource.next(this._crud);\r\n    }\r\n  }\r\n\r\n  canExecute(crudAction: CrudAction): boolean {\r\n    return (this.CRUD & crudAction) === crudAction;\r\n  }\r\n}\r\n","import { DataService } from './data.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CrudService } from '../components/crud/crud.service';\r\nimport { BlockerManager } from '../helpers/navigate';\r\nimport { IServiceBase } from '../interfaces/base.interface';\r\nimport { IErrorResult } from './error-handler';\r\nimport { getToastConfiguration } from '../helpers/function';\r\nimport { ResponseData } from '../helpers/response';\r\n\r\nexport class ServiceBase extends DataService implements IServiceBase {\r\n  private _waiting = false;\r\n  private _subscriptions = new Array<Subscription>();\r\n  protected canMakeRequestToServer: boolean;\r\n\r\n  busy = false;\r\n\r\n  toastr: ToastrService;\r\n  crudService: CrudService;\r\n  blocker: BlockerManager;\r\n\r\n  get waiting(): boolean {\r\n    return this._waiting;\r\n  }\r\n\r\n  set waiting(value: boolean) {\r\n    if (this._waiting === value) return;\r\n\r\n    this._waiting = value;\r\n\r\n    if (this._waiting) document.body.style.cursor = 'wait';\r\n    else document.body.style.cursor = 'initial';\r\n\r\n    this.configService.blocker = this._waiting;\r\n  }\r\n\r\n  get urlResource(): string {\r\n    return this.configService.getUrlApi(this.resourceUrl);\r\n  }\r\n\r\n  get url(): string {\r\n    return this.configService.getUrlApi();\r\n  }\r\n\r\n  constructor(public resourceUrl?: string | any) {\r\n    super();\r\n\r\n    this.canMakeRequestToServer = this.resourceUrl && typeof this.resourceUrl === 'string';\r\n    this.toastr = this.injector.get(ToastrService);\r\n    this.crudService = this.injector.get(CrudService);\r\n    this.blocker = new BlockerManager(this.configService);\r\n    this.subscribe();\r\n  }\r\n\r\n  // set skipBlockerOnce(value: boolean) {\r\n  //   this._skipBlockerOnce = value;\r\n  //   this.configService.turnOffOnceBlocker = value;\r\n  // }\r\n\r\n  // get skipBlockerOnce() {\r\n  //   return this._skipBlockerOnce;\r\n  // }\r\n\r\n  getMethod<TModel>(\r\n    controllerMethod: string,\r\n    params?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void\r\n  ) {\r\n    super.httpGet(`${this.urlResource}/${controllerMethod}`, params, callback);\r\n  }\r\n\r\n  postMethod<TModel>(\r\n    controllerMethod: string,\r\n    body?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void | any\r\n  ) {\r\n    super.httpPost(`${this.urlResource}/${controllerMethod}`, body, callback);\r\n  }\r\n\r\n  putMethod<TModel>(\r\n    controllerMethod: string,\r\n    body?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void | any\r\n  ) {\r\n    super.httpPut(`${this.urlResource}/${controllerMethod}`, body, callback);\r\n  }\r\n\r\n  patchMethod<TModel>(\r\n    controllerMethod: string,\r\n    body?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void | any\r\n  ) {\r\n    super.httpPatch(`${this.urlResource}/${controllerMethod}`, body, callback);\r\n  }\r\n\r\n  deleteMethod<TModel>(\r\n    controllerMethod: string,\r\n    body?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void | any\r\n  ) {\r\n    super.httpDelete(`${this.urlResource}/${controllerMethod}`, body, callback);\r\n  }\r\n\r\n  getRequest<TModel>(\r\n    controllerWithAction: string,\r\n    params?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void\r\n  ) {\r\n    super.httpGet(`${this.url}${controllerWithAction}`, params, callback);\r\n  }\r\n\r\n  postRequest<TModel>(\r\n    controllerWithAction: string,\r\n    body?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void | any\r\n  ) {\r\n    super.httpPost(`${this.url}${controllerWithAction}`, body, callback);\r\n  }\r\n\r\n  putRequest<TModel>(\r\n    controllerWithAction: string,\r\n    body?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void | any\r\n  ) {\r\n    super.httpPut(`${this.url}${controllerWithAction}`, body, callback);\r\n  }\r\n\r\n  patchRequest<TModel>(\r\n    controllerWithAction: string,\r\n    body?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void | any\r\n  ) {\r\n    super.httpPatch(`${this.url}${controllerWithAction}`, body, callback);\r\n  }\r\n\r\n  deleteRequest<TModel>(\r\n    controllerWithAction: string,\r\n    body?: any,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void | any\r\n  ) {\r\n    super.httpDelete(`${this.url}${controllerWithAction}`, body, callback);\r\n  }\r\n\r\n  error(error: IErrorResult) {\r\n    Promise.resolve(null).then(() => {\r\n      this.waiting = false;\r\n      this.busy = false;\r\n    });\r\n\r\n    this.toastr.error(error.message, error.title, getToastConfiguration());\r\n  }\r\n\r\n  request() {\r\n    Promise.resolve(null).then(() => (this.waiting = true));\r\n  }\r\n\r\n  response(method: string) {\r\n    Promise.resolve(null).then(() => {\r\n      this.waiting = false;\r\n\r\n      switch (method) {\r\n        case this.POST:\r\n        case this.PUT:\r\n        case this.DELETE:\r\n        case this.PATCH:\r\n          this.busy = false;\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  hasSubscriptions() {\r\n    return this._subscriptions.length > 0;\r\n  }\r\n\r\n  subscribe() {\r\n    this._subscriptions.push(\r\n      this.onRequest.subscribe(() => this.request()),\r\n      this.onResponse.subscribe((method: string) => this.response(method)),\r\n      this.onError.subscribe((error: IErrorResult) => this.error(error))\r\n    );\r\n  }\r\n\r\n  unsubscribe() {\r\n    this._subscriptions.forEach(subscr => subscr.unsubscribe());\r\n    this._subscriptions = [];\r\n  }\r\n\r\n  validateSubscriptions() {\r\n    if (this._subscriptions.length === 0) this.subscribe();\r\n  }\r\n}\r\n","import { MappingItem } from '../helpers/setting';\r\nimport { Filter } from '../helpers/filtrable';\r\nimport { FilterOperator } from '../helpers/enums';\r\nimport { IServiceManager } from '../interfaces/servicemanager.interface';\r\n\r\nexport class ServiceRelationship<T> {\r\n  private _value: string | undefined;\r\n  private _filters = new Array<Filter>();\r\n\r\n  master: IServiceManager<any> | undefined;\r\n\r\n  mapping = new Map<string, MappingItem>();\r\n\r\n  disabled: boolean | undefined;\r\n\r\n  constructor(public detail: Partial<IServiceManager<T>>) {}\r\n\r\n  set value(val: string) {\r\n    if (val !== this._value) this.createMap(val);\r\n\r\n    this._value = val;\r\n  }\r\n\r\n  get value(): string {\r\n    return this._value as string;\r\n  }\r\n\r\n  add(master: IServiceManager<any>, value: string[] | string) {\r\n    let inputValue: string = '';\r\n\r\n    if (typeof value === 'string') {\r\n      inputValue = value;\r\n    } else {\r\n      for (const item of value) {\r\n        if (inputValue !== '') inputValue += ';';\r\n\r\n        inputValue += `${item}`;\r\n      }\r\n    }\r\n    this.master = master;\r\n    this.value = inputValue;\r\n  }\r\n\r\n  addMapping(masterKey: string, detailKey: string) {\r\n    this.mapping.set(detailKey, new MappingItem(masterKey, detailKey));\r\n  }\r\n\r\n  private prepareMapping(s: string) {\r\n    this.mapping.clear();\r\n\r\n    if (!s) return;\r\n    //\r\n    s.split(';').forEach(p => {\r\n      const kv = p.split('=');\r\n      this.mapping.set(kv[1], new MappingItem(kv[0], kv[1]));\r\n    });\r\n  }\r\n\r\n  createMap(s: string): boolean {\r\n    this.prepareMapping(s);\r\n    this._filters = [];\r\n    const entries = this.mapping.entries();\r\n\r\n    for (let nextValue = entries.next(); nextValue.done !== true; nextValue = entries.next()) {\r\n      //\r\n      const item = nextValue.value[1];\r\n      //asignar a target el valor del master\r\n      // @ts-ignore\r\n      this.detail.model[item.rightMember] = item.value;\r\n      //crea los filtros de target con la clave del master\r\n      const filter = new Filter(item.rightMember, FilterOperator.Equals);\r\n      filter.Reference = 'master-detail';\r\n      this._filters.push(filter);\r\n    }\r\n\r\n    return true;\r\n  }\r\n\r\n  getMappedFilters() {\r\n    const entries = this.mapping.entries();\r\n    for (let nextValue = entries.next(); nextValue.done !== true; nextValue = entries.next()) {\r\n      //\r\n      const item = nextValue.value[1];\r\n      //asignar a target el valor del master\r\n      this._bindMappedProperty(item);\r\n      //crea los filtros de target con la clave del master\r\n      const filter = this._filters.find(i => i.PropertyName === item.rightMember);\r\n\r\n      if (filter) filter.Value = item.value;\r\n    }\r\n\r\n    return [...this._filters];\r\n  }\r\n\r\n  private _bindMappedProperty(item: MappingItem) {\r\n    //asignar a target el valor del master\r\n    if (this.master?.model) {\r\n      item.value = this.master.model[item.leftMember];\r\n      // @ts-ignore\r\n      this.detail.model[item.rightMember] = item.value;\r\n    }\r\n  }\r\n\r\n  bindMappedProperties() {\r\n    const entries = this.mapping.entries();\r\n\r\n    for (let nextValue = entries.next(); nextValue.done !== true; nextValue = entries.next()) {\r\n      const item = nextValue.value[1];\r\n      //asignar a target el valor del master\r\n      this._bindMappedProperty(item);\r\n    }\r\n  }\r\n\r\n  isMapped(): boolean {\r\n    return !!(!this.disabled && this.mapping.size > 0 && this.master);\r\n  }\r\n}\r\n","import { CrudService } from './crud.service';\r\nimport { CrudAction } from '../../helpers/enums';\r\nimport { Directive, ElementRef, EventEmitter, HostListener, OnDestroy, Output } from '@angular/core';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\n\r\n@Directive()\r\nexport class CrudBase implements OnDestroy {\r\n  private _track: Subscription;\r\n  protected state: number | undefined;\r\n\r\n  @Output() crudClick = new EventEmitter();\r\n\r\n  constructor(public element: ElementRef, public crudService: CrudService, protected action: CrudAction) {\r\n    this._track = crudService.crudStateTracker.subscribe(state => this.setState(state));\r\n    this.setState(crudService.CRUD);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this._track.unsubscribe();\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  onClick(e: any) {\r\n    if (!this.crudService.canExecute(this.action)) {\r\n      e.preventDefault();\r\n      e.stopPropagation();\r\n      return;\r\n    }\r\n\r\n    this.crudClick.next(e);\r\n  }\r\n\r\n  protected setState(value: number) {\r\n    this.state = value;\r\n    this.element.nativeElement.disabled = !this.crudService.canExecute(this.action);\r\n  }\r\n}\r\n\r\n@Directive({\r\n  selector: '[crud-create]'\r\n})\r\nexport class CrudCreateDirective extends CrudBase implements OnDestroy {\r\n  constructor(public override element: ElementRef, public override crudService: CrudService) {\r\n    super(element, crudService, CrudAction.Create);\r\n  }\r\n\r\n  override ngOnDestroy() {\r\n    super.ngOnDestroy();\r\n  }\r\n}\r\n\r\n@Directive({\r\n  selector: '[crud-read]'\r\n})\r\nexport class CrudReadDirective extends CrudBase implements OnDestroy {\r\n  constructor(public override element: ElementRef, public override crudService: CrudService) {\r\n    super(element, crudService, CrudAction.Read);\r\n  }\r\n\r\n  override ngOnDestroy() {\r\n    super.ngOnDestroy();\r\n  }\r\n}\r\n\r\n@Directive({\r\n  selector: '[crud-update]'\r\n})\r\nexport class CrudUpdateDirective extends CrudBase implements OnDestroy {\r\n  constructor(public override element: ElementRef, public override crudService: CrudService) {\r\n    super(element, crudService, CrudAction.Update);\r\n  }\r\n\r\n  override ngOnDestroy() {\r\n    super.ngOnDestroy();\r\n  }\r\n}\r\n\r\n@Directive({\r\n  selector: '[crud-delete]'\r\n})\r\nexport class CrudDeleteDirective extends CrudBase implements OnDestroy {\r\n  constructor(public override element: ElementRef, public override crudService: CrudService) {\r\n    super(element, crudService, CrudAction.Delete);\r\n  }\r\n\r\n  override ngOnDestroy() {\r\n    super.ngOnDestroy();\r\n  }\r\n}\r\n","export class TokenError extends Error {\r\n  override name = 'TokenError';\r\n\r\n  constructor(message: string) {\r\n    super(message);\r\n  }\r\n}\r\n","import { TokenError } from './tokenerror';\r\n\r\nexport class Token {\r\n  constructor(public token: string | null) {\r\n    if (this.token && this.isExpired()) {\r\n      this.token = null;\r\n    }\r\n  }\r\n\r\n  private _decodeBase64(str: string): string {\r\n    let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n\r\n    switch (output.length % 4) {\r\n      case 0: {\r\n        break;\r\n      }\r\n      case 2: {\r\n        output += '==';\r\n        break;\r\n      }\r\n      case 3: {\r\n        output += '=';\r\n        break;\r\n      }\r\n      default: {\r\n        throw new TokenError('Illegal base64url string!');\r\n      }\r\n    }\r\n\r\n    return decodeURIComponent(escape(typeof window === 'undefined' ? atob(output) : window.atob(output)));\r\n  }\r\n\r\n  get decodeToken(): any {\r\n    const parts = this.token?.split('.');\r\n\r\n    if (parts?.length !== 3) {\r\n      throw new TokenError('A JWT Token must have 3 parts!');\r\n    }\r\n\r\n    const decoded = this._decodeBase64(parts[1]);\r\n    if (!decoded) {\r\n      throw new TokenError('Cannot decode the token!');\r\n    }\r\n\r\n    return JSON.parse(decoded);\r\n  }\r\n\r\n  get getExpirationDate(): Date {\r\n    const decoded = this.decodeToken;\r\n\r\n    if (!Object.prototype.hasOwnProperty.call(decoded, 'exp')) return new Date();\r\n\r\n    const date = new Date(0);\r\n    date.setUTCSeconds(decoded.exp);\r\n\r\n    return date;\r\n  }\r\n\r\n  isExpired(offsetSeconds: number = 0): boolean {\r\n    const date = this.getExpirationDate;\r\n\r\n    if (date.getSeconds() === new Date().getSeconds()) {\r\n      return false;\r\n    }\r\n\r\n    return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\r\n  }\r\n}\r\n","import { ResponseData } from '../../helpers/response';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { IAuthUser } from './auth.interfaces';\r\nimport { HttpBaseService } from '../../services/httpbase.service';\r\nimport { AuthRoute } from './auth.route';\r\nimport { ClaimTypes } from '../../helpers/claimtype';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AuthService<TModel extends Partial<IAuthUser>> extends HttpBaseService {\r\n  private _authRoute: AuthRoute;\r\n\r\n  loading = false;\r\n  model: Partial<TModel> = {};\r\n\r\n  constructor(_injector: Injector) {\r\n    super(_injector);\r\n    this._authRoute = this.configService.authRoute;\r\n  }\r\n\r\n  login(callback: (response: Partial<ResponseData<TModel>>) => void, callbackError?: Function) {\r\n    this.postMethod(this._authRoute.LoginSegment, this.model, callback, callbackError);\r\n  }\r\n\r\n  register(callback: (response: Partial<ResponseData<TModel>>) => void, callbackError?: Function) {\r\n    this.postMethod(this._authRoute.RegisterSegment, this.model, callback, callbackError);\r\n  }\r\n\r\n  logout() {\r\n    this.getMethod(\r\n      this._authRoute.LogOutSegment,\r\n      () => {\r\n        this.tokenService.removeToken();\r\n        this.router.navigate([this._authRoute.LoginUrl]);\r\n      },\r\n      () => {\r\n        this.tokenService.removeToken();\r\n        this.router.navigate([this._authRoute.LoginUrl]);\r\n      }\r\n    );\r\n  }\r\n\r\n  refreshToken(callback: (response: Partial<ResponseData<TModel>>) => void, callbackError?: Function) {\r\n    this.getMethod(this._authRoute.RefreshSegment, callback, callbackError);\r\n  }\r\n\r\n  get getModelFromToken() {\r\n    return JSON.parse(this.tokenService.getValueFromClaim(ClaimTypes.UserData));\r\n  }\r\n\r\n  changePassword(callback: (response: Partial<ResponseData<TModel>>) => void, callbackError?: Function) {\r\n    this.postMethod(this._authRoute.ChangePasswordSegment, this.model, callback, callbackError);\r\n  }\r\n\r\n  resetPassword(callback: (response: Partial<ResponseData<TModel>>) => void, callbackError?: Function) {\r\n    this.postMethod(this._authRoute.ResetPasswordSegment, this.model, callback, callbackError);\r\n  }\r\n\r\n  toggleDisabled(callback: (response: Partial<ResponseData<TModel>>) => void, callbackError?: Function) {\r\n    this.postMethod(this._authRoute.ToogleDisabledSegment, this.model, callback, callbackError);\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Token } from './token';\r\nimport { TokenService } from './token.service';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport { catchError } from 'rxjs/internal/operators/catchError';\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\nimport { finalize } from 'rxjs/internal/operators/finalize';\r\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n  constructor(private _configService: ConfigService, private _tokenService: TokenService) {}\r\n\r\n  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    if (!this._configService.hasAuthConfig) {\r\n      return next.handle(request);\r\n    }\r\n\r\n    const token = new Token(this._tokenService.getToken),\r\n      authConfig = this._configService.authConfig;\r\n\r\n    if (\r\n      !request.headers.get(`Skip${authConfig.HeaderName}`) &&\r\n      authConfig.HeaderName &&\r\n      !request.headers.get(authConfig.HeaderName) &&\r\n      token &&\r\n      token.token &&\r\n      !token.isExpired()\r\n    ) {\r\n      request = request.clone({\r\n        headers: request.headers.set(authConfig.HeaderName, `${authConfig.HeaderPrefix} ${token.token}`)\r\n      });\r\n    }\r\n\r\n    if (location.protocol === 'https:') {\r\n      request = request.clone({\r\n        url: request.url.replace('http://', 'https://')\r\n      });\r\n    }\r\n\r\n    return next.handle(request).pipe(\r\n      catchError((error: HttpErrorResponse) => {\r\n        setTimeout(() => {\r\n          if (!this._configService.activeBlocker) {\r\n            this._configService.activeBlocker = false;\r\n            this._configService.blockerSubject.next(false);\r\n          }\r\n        });\r\n\r\n        return throwError(() => error);\r\n      }),\r\n      finalize(() => {\r\n        if (this._configService.skipFinalizeInterceptorOnce) {\r\n          this._configService.skipFinalizeInterceptorOnce = false;\r\n          return;\r\n        }\r\n\r\n        setTimeout(() => {\r\n          if (!this._configService.activeBlocker) {\r\n            this._configService.activeBlocker = false;\r\n            this._configService.blockerSubject.next(false);\r\n          }\r\n        });\r\n      })\r\n    );\r\n  }\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { AuthService } from './auth.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { AuthGuard } from './auth.guard';\r\nimport { TokenService } from './token.service';\r\nimport { AuthInterceptor } from './auth.interceptor';\r\n\r\n@NgModule({\r\n  imports: [FormsModule, RouterModule, HttpClientModule, CommonModule]\r\n})\r\nexport class AuthModule {\r\n  static forRoot(): ModuleWithProviders<AuthModule> {\r\n    return {\r\n      ngModule: AuthModule,\r\n      providers: [\r\n        AuthGuard,\r\n        AuthService,\r\n        TokenService,\r\n        {\r\n          provide: HTTP_INTERCEPTORS,\r\n          useClass: AuthInterceptor,\r\n          multi: true\r\n        }\r\n      ]\r\n    };\r\n  }\r\n}\r\n","import { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { IAuthUser } from './auth.interfaces';\r\nimport { TokenService } from './token.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Injector } from '@angular/core';\r\n\r\nexport class LoginManager<TModel extends IAuthUser> {\r\n  returnUrl: string;\r\n  service: AuthService<TModel>;\r\n  router: Router;\r\n  route: ActivatedRoute;\r\n  tokenService: TokenService;\r\n  toastr: ToastrService;\r\n\r\n  constructor(_injector: Injector) {\r\n    this.router = _injector.get(Router);\r\n    this.tokenService = _injector.get(TokenService);\r\n    this.toastr = _injector.get(ToastrService);\r\n    this.route = _injector.get(ActivatedRoute);\r\n    this.service = _injector.get<AuthService<TModel>>(AuthService);\r\n    this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n\r\n    if (!this.tokenService.isTokenExpired()) this.router.navigate([this.returnUrl]);\r\n  }\r\n\r\n  login() {\r\n    this.service.loading = true;\r\n\r\n    this.service.login(\r\n      ({ DataSource }) => {\r\n        this.service.loading = false;\r\n\r\n        const result = DataSource as any;\r\n\r\n        if (result?.Token) {\r\n          this.tokenService.setToken(result?.Token, result?.RefreshToken);\r\n\r\n          this.service.validateChangePassword();\r\n          this.onSuccess({ source: 'login', response: DataSource });\r\n        } else {\r\n          this.toastr.error('Inicio de sesión fallido, intente nuevamente');\r\n        }\r\n      },\r\n      () => (this.service.loading = false)\r\n    );\r\n  }\r\n\r\n  /* eslint-disable unused-imports/no-unused-vars */\r\n  onSuccess(event?: any) {\r\n    this.router.navigate([this.returnUrl]);\r\n  }\r\n}\r\n","import { AuthService } from './auth.service';\r\nimport { Router } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { IAuthUser } from './auth.interfaces';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport { TokenService } from './token.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { isUnauthorized } from '../../helpers/function';\r\nimport { Injector } from '@angular/core';\r\n\r\nexport class ChangePasswordManager<TModel extends Partial<IAuthUser>> {\r\n  service: AuthService<TModel>;\r\n  router: Router;\r\n  configService: ConfigService;\r\n  tokenService: TokenService;\r\n  toastr: ToastrService;\r\n\r\n  constructor(_injector: Injector) {\r\n    this.router = _injector.get(Router);\r\n    this.tokenService = _injector.get(TokenService);\r\n    this.toastr = _injector.get(ToastrService);\r\n    this.configService = _injector.get(ConfigService);\r\n    this.service = _injector.get<AuthService<TModel>>(AuthService);\r\n    this.service.model = this.service.getModelFromToken;\r\n\r\n    if (!this.service.model.ChangePassword) this.router.navigate(['/']);\r\n  }\r\n\r\n  changePassword() {\r\n    if (this.service.model.Password === this.service.model.OldPassword) {\r\n      this.toastr.error('La nueva contraseña no puede ser igual a la anterior');\r\n      return;\r\n    }\r\n\r\n    this.service.loading = true;\r\n\r\n    this.service.changePassword(\r\n      ({ DataSource }) => {\r\n        this.service.loading = false;\r\n\r\n        const result = DataSource as any;\r\n\r\n        if (result?.Token) {\r\n          this.tokenService.setToken(result?.Token, result?.RefreshToken);\r\n\r\n          this.onSuccess({\r\n            source: 'changePassword',\r\n            response: DataSource\r\n          });\r\n          this.router.navigate(['/']);\r\n        } else {\r\n          this.toastr.error('Inicio de sesión fallido, intente nuevamente');\r\n          this.tokenService.removeToken();\r\n        }\r\n      },\r\n      (error: HttpErrorResponse) => {\r\n        this.service.loading = false;\r\n\r\n        if (isUnauthorized(error)) this.router.navigate([this.configService.authRoute.LoginUrl]);\r\n      }\r\n    );\r\n  }\r\n\r\n  /* eslint-disable unused-imports/no-unused-vars */\r\n  onSuccess(event?: any) {\r\n    this.service.loading = false;\r\n    this.router.navigate(['/']);\r\n  }\r\n}\r\n","import { DismissReason } from '../../helpers/enums';\r\n\r\nexport class FormEventArgs {\r\n  constructor(public sender: DismissReason, public event: string) {}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Directive, ElementRef, Input, NgModule, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[dTemplate]'\r\n})\r\nexport class DesycoTemplateDirective {\r\n  @Input('dTemplate') type: string | undefined;\r\n\r\n  constructor(public template: TemplateRef<any>) {}\r\n\r\n  getType(): string | undefined {\r\n    return this.type;\r\n  }\r\n}\r\n\r\n@Directive({\r\n  selector: '[acFocus]'\r\n})\r\nexport class ActiveControlFocusDirective {\r\n  constructor(private _el?: ElementRef) {}\r\n\r\n  focus() {\r\n    if (!this._el) return;\r\n\r\n    this._el.nativeElement?.focus();\r\n  }\r\n}\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  exports: [DesycoTemplateDirective, ActiveControlFocusDirective],\r\n  declarations: [DesycoTemplateDirective, ActiveControlFocusDirective]\r\n})\r\nexport class UtilsModule {}\r\n","import {\r\n  AfterContentInit,\r\n  AfterViewInit,\r\n  ContentChild,\r\n  ContentChildren,\r\n  Directive,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  QueryList,\r\n  ViewChild,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport { getRandomNumber } from '../../helpers/function';\r\nimport { NgForm } from '@angular/forms';\r\nimport { DismissReason } from '../../helpers/enums';\r\nimport { FormEventArgs } from './form-utils';\r\nimport { ActiveControlFocusDirective } from '../../shared/utils.module';\r\n\r\n@Directive()\r\nexport abstract class FormTemplateBase implements AfterViewInit, AfterContentInit {\r\n  private _busy = false;\r\n  private _okAndNew = false;\r\n  private _adding = true;\r\n\r\n  hideForm = false;\r\n  switchLabel = `switch_${getRandomNumber(1, 1000)}`;\r\n\r\n  @Input() formTitle = 'Mantenimiento';\r\n  @Input() icon = 'fa fa-edit';\r\n  @Input() showIconTitle = true;\r\n  @Input() form: NgForm | undefined;\r\n  @Input() showOkButton = true;\r\n  @Input() okButtonLabel = 'Guardar';\r\n  @Input() okButtonIcon = 'fa fa-floppy-o';\r\n  @Input() okButtonColor = 'btn-primary';\r\n  @Input() closeButtonStyle = new Object();\r\n  @Input() scrollTopOnInit = true;\r\n\r\n  @Input()\r\n  get okAndNew(): boolean {\r\n    return this._okAndNew;\r\n  }\r\n\r\n  @Output() okAndNewChange = new EventEmitter<boolean>();\r\n\r\n  set okAndNew(value: boolean) {\r\n    this._okAndNew = value;\r\n    this.okAndNewChange.emit(this._okAndNew);\r\n  }\r\n\r\n  @Input() showOkAndNew = true;\r\n  @Input() okAndNewLabel = 'Crear otro registro';\r\n  @Input() showCancelButton = true;\r\n  @Input() cancelButtonLabel = 'Cancelar';\r\n  @Input() cancelButtonIcon = '';\r\n  @Input() cancelButtonColor = 'btn-secondary';\r\n  @Input() showHeader = true;\r\n  @Input() showCloseButton = true;\r\n\r\n  @Output() actionChanged = new EventEmitter();\r\n\r\n  @Input()\r\n  get busy(): boolean {\r\n    return this._busy;\r\n  }\r\n\r\n  @Output() busyChange = new EventEmitter();\r\n\r\n  set busy(value: boolean) {\r\n    this._busy = value;\r\n    this.busyChange.emit(this._busy);\r\n  }\r\n\r\n  @Input() adding: boolean | undefined;\r\n  @Input() keyboard = true;\r\n  @Input() okKeyCode = 115;\r\n  @Input() cancelKeyCode = 27;\r\n\r\n  @ContentChild(ActiveControlFocusDirective) private _activeControlFocus: ActiveControlFocusDirective | undefined;\r\n  @ContentChildren(NgForm) forms: QueryList<NgForm> | undefined;\r\n\r\n  @ViewChild('entryComponent', { read: ViewContainerRef })\r\n  entryComponent?: ViewContainerRef;\r\n\r\n  @Input() showFooter = true;\r\n  @Input() showCommandBtns = true;\r\n  @Input() busyIcon = 'fa fa-spinner fa-pulse fa-1x fa-fw';\r\n  @Input() animationClass = 'animated fadeIn';\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      if (this.scrollTopOnInit) window.scrollTo(0, 0);\r\n    });\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    if (this.forms?.length === 1) this.form = this.forms.first;\r\n  }\r\n\r\n  get focusControl(): ActiveControlFocusDirective {\r\n    if (!this._activeControlFocus) return new ActiveControlFocusDirective();\r\n\r\n    return this._activeControlFocus;\r\n  }\r\n\r\n  ok() {\r\n    this._emit(DismissReason.Ok, 'click');\r\n  }\r\n\r\n  cancel() {\r\n    this._emit(DismissReason.Cancel, 'click');\r\n  }\r\n\r\n  private _emit(sender: DismissReason, event: string) {\r\n    this.actionChanged.emit(new FormEventArgs(sender, event));\r\n  }\r\n\r\n  disableOkButton() {\r\n    if (this.adding || this.forms?.length === 0) return false;\r\n\r\n    if (!this.adding && this.forms && this.forms?.length > 0) {\r\n      const forms = (<any>this.forms)._results;\r\n\r\n      for (const form of forms) if (!form.valid) return true;\r\n    }\r\n\r\n    return false;\r\n  }\r\n\r\n  markFormTouched() {\r\n    if (this.forms && this.forms?.length > 0) {\r\n      if (!this.form) {\r\n        //AHORA\r\n        const forms = (<any>this.forms)._results;\r\n\r\n        for (const form of forms) {\r\n          form.form.markAllAsTouched();\r\n\r\n          if (!form.valid) return;\r\n        }\r\n\r\n        this.ok();\r\n      } else {\r\n        (this.form.form as any).markAllAsTouched();\r\n        setTimeout(() => {\r\n          if (this.form?.valid) this.ok();\r\n        });\r\n      }\r\n    } else {\r\n      this.ok();\r\n    }\r\n  }\r\n}\r\n","import { Directive, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[dSwitch]'\r\n})\r\nexport class SwitchDirective {\r\n  constructor(public renderer: Renderer2, public el: ElementRef) {}\r\n}\r\n","import { SwitchDirective } from './switch.directive';\r\nimport { AfterContentInit, Component, ContentChildren, Input, QueryList } from '@angular/core';\r\n\r\n@Component({\r\n  selector: '[switch]',\r\n  templateUrl: './switch.component.html',\r\n  styleUrls: ['./switch.component.scss']\r\n})\r\nexport class SwitchComponent implements AfterContentInit {\r\n  @Input() sizeClass = 'switch-sm';\r\n  @Input() colorClass = 'switch-secondary';\r\n  @Input() dataKey = '';\r\n  @Input() labelName: string | undefined;\r\n  @Input() labelClass: string | undefined;\r\n  @Input() labelLocation: 'left' | 'right' = 'right'; //labelRightLocation\r\n  @Input() switchStyle: Object = new Object();\r\n  @Input() inline = true;\r\n\r\n  @ContentChildren(SwitchDirective) inputs: QueryList<SwitchDirective> | undefined;\r\n\r\n  ngAfterContentInit() {\r\n    this.inputs?.forEach(input => input.renderer.addClass(input.el.nativeElement, 'switch-input'));\r\n  }\r\n}\r\n","<ng-container *ngIf=\"labelLocation === 'left'\">\r\n  <label\r\n    *ngIf=\"labelName\"\r\n    for=\"{{ dataKey }}\"\r\n    style=\"vertical-align: middle; margin: 0; margin-right: 3px\"\r\n    class=\"{{ labelClass }}\">\r\n    {{ labelName }}\r\n  </label>\r\n</ng-container>\r\n<br *ngIf=\"!inline\" />\r\n<label class=\"switch switch-icon {{ colorClass }} {{ sizeClass }}\" [ngStyle]=\"switchStyle\" style=\"margin-bottom: 0rem\">\r\n  <ng-content></ng-content>\r\n  <span class=\"switch-label\" data-on=\"&#xf00c;\" data-off=\"&#xf00d;\"></span>\r\n  <span class=\"switch-handle\"></span>\r\n</label>\r\n<ng-container *ngIf=\"labelLocation === 'right'\">\r\n  <label\r\n    *ngIf=\"labelName\"\r\n    for=\"{{ dataKey }}\"\r\n    style=\"vertical-align: middle; margin: 0; margin-left: 3px\"\r\n    class=\"{{ labelClass }}\">\r\n    {{ labelName }}\r\n  </label>\r\n</ng-container>\r\n","import { FormTemplateBase } from './form-template-base';\r\nimport { Component, forwardRef } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'form-template',\r\n  templateUrl: './form-template.component.html',\r\n  providers: [\r\n    {\r\n      provide: FormTemplateBase,\r\n      useExisting: forwardRef(() => FormTemplateComponent)\r\n    }\r\n  ]\r\n})\r\nexport class FormTemplateComponent extends FormTemplateBase {}\r\n","<div class=\"animated fadeIn\" [hidden]=\"hideForm\">\r\n  <div class=\"row\">\r\n    <div class=\"col-md-12\">\r\n      <div class=\"card\">\r\n        <div class=\"card-header\" *ngIf=\"showHeader\">\r\n          <i class=\"{{ icon }}\" *ngIf=\"showIconTitle\"></i>\r\n          <strong>{{ formTitle }}</strong>\r\n          <div class=\"card-actions\">\r\n            <button\r\n              *ngIf=\"showCloseButton\"\r\n              type=\"button\"\r\n              class=\"btn-close close-red\"\r\n              aria-label=\"Close\"\r\n              (click)=\"cancel()\"\r\n              style=\"outline: none; cursor: pointer\"\r\n              [ngStyle]=\"closeButtonStyle\">\r\n              <i class=\"icon-close\" style=\"font-weight: bold\"></i>\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div class=\"card-block\">\r\n          <ng-content></ng-content>\r\n          <ng-container *ngIf=\"showFooter\">\r\n            <div class=\"row\">\r\n              <div class=\"col-md-12\">\r\n                <ng-container *ngIf=\"showOkAndNew && adding\">\r\n                  <span\r\n                    [labelName]=\"okAndNewLabel\"\r\n                    [dataKey]=\"switchLabel\"\r\n                    [switchStyle]=\"{ 'margin-right': '10px' }\"\r\n                    switch>\r\n                    <input [id]=\"switchLabel\" [name]=\"switchLabel\" dSwitch type=\"checkbox\" [(ngModel)]=\"okAndNew\" />\r\n                  </span>\r\n                </ng-container>\r\n                <ng-content select=\"[content-type=custom-button]\"></ng-content>\r\n                <div class=\"pull-right\">\r\n                  <button\r\n                    *ngIf=\"showOkButton\"\r\n                    type=\"button\"\r\n                    (click)=\"markFormTouched()\"\r\n                    class=\"btn btn-ladda {{ okButtonColor }}\"\r\n                    [ladda]=\"busy\"\r\n                    data-style=\"zoom-in\"\r\n                    [disabled]=\"disableOkButton()\">\r\n                    <i class=\"{{ okButtonIcon }}\" aria-hidden=\"true\"></i>\r\n                    &nbsp;{{ okButtonLabel }}\r\n                  </button>\r\n                  <button\r\n                    [style.marginLeft.px]=\"'4'\"\r\n                    [disabled]=\"busy\"\r\n                    *ngIf=\"showCancelButton\"\r\n                    (click)=\"cancel()\"\r\n                    class=\"btn {{ cancelButtonColor }}\"\r\n                    type=\"button\">\r\n                    <i class=\"{{ cancelButtonIcon }}\" aria-hidden=\"true\"></i>\r\n                    &nbsp;{{ cancelButtonLabel }}\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </ng-container>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n<template #entryComponent></template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SwitchDirective } from './switch.directive';\r\nimport { SwitchComponent } from './switch.component';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [SwitchComponent, SwitchDirective],\r\n  exports: [SwitchComponent, SwitchDirective]\r\n})\r\nexport class SwitchModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { getRandomNumber } from '../../helpers/function';\r\n\r\n@Component({\r\n  selector: 'd-switch',\r\n  template: `\r\n    <ng-container *ngIf=\"!rtl\">\r\n      <label for=\"{{ randomId }}\" style=\"vertical-align: middle; margin: 0;cursor:pointer;\">\r\n        {{ label }}\r\n      </label>\r\n    </ng-container>\r\n    <label\r\n      class=\"switch switch-icon {{ color }} switch-{{ size }}\"\r\n      [ngStyle]=\"switchStyle\"\r\n      style=\"margin-bottom: 0rem;\">\r\n      <input [attr.id]=\"randomId\" name=\"{{ randomId }}_name\" class=\"switch-input\" type=\"checkbox\" [(ngModel)]=\"value\" />\r\n      <span class=\"switch-label\" data-on=\"&#xf00c;\" data-off=\"&#xf00d;\"></span>\r\n      <span class=\"switch-handle\"></span>\r\n    </label>\r\n    <ng-container *ngIf=\"rtl\">\r\n      <label for=\"{{ randomId }}\" style=\"vertical-align: middle; margin: 0;cursor:pointer;\">\r\n        {{ label }}\r\n      </label>\r\n    </ng-container>\r\n  `\r\n})\r\nexport class DSwitchComponent {\r\n  private _value = false;\r\n  randomId = `switch_${getRandomNumber(1, 1000)}`;\r\n\r\n  get value(): boolean {\r\n    return this._value;\r\n  }\r\n\r\n  @Output() valueChange = new EventEmitter<boolean>();\r\n\r\n  @Input() set value(val: boolean) {\r\n    this._value = val;\r\n    this.valueChange.emit(this._value);\r\n  }\r\n\r\n  @Input() size = 'sm';\r\n  @Input() color = 'switch-secondary';\r\n  @Input() id = '';\r\n  @Input() label = '';\r\n  @Input() rtl = true;\r\n  @Input() switchStyle = {};\r\n\r\n  @Input() onSymbol = '&#xf00c;';\r\n  @Input() offSymbol = '&#xf00d;';\r\n  @Input() fontFamily = 'FontAwesome';\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'd-command-btns',\r\n  template: ` <div [ngClass]=\"{ 'pull-right': rtl, 'pull-left': !rtl }\">\r\n    <button\r\n      *ngIf=\"showOk\"\r\n      type=\"button\"\r\n      (click)=\"okClick.emit($event)\"\r\n      class=\"btn {{ okColor }}\"\r\n      [disabled]=\"busy || disableOk\">\r\n      <i class=\"{{ busy ? busyIcon : okIcon }}\" aria-hidden=\"true\"></i>&nbsp;{{ okLabel }}\r\n    </button>\r\n    <button\r\n      [disabled]=\"busy || disableCancel\"\r\n      *ngIf=\"showCancel\"\r\n      (click)=\"cancelClick.emit($event)\"\r\n      class=\"btn {{ cancelColor }}\"\r\n      type=\"button\">\r\n      <i class=\"{{ cancelIcon }}\" aria-hidden=\"true\"></i>&nbsp;{{ cancelLabel }}\r\n    </button>\r\n  </div>`\r\n})\r\nexport class DCommandBtnsComponent {\r\n  @Output() okClick = new EventEmitter();\r\n  @Input() busyIcon = '';\r\n  @Input() rtl = true;\r\n  @Input() okIcon = '';\r\n  @Input() okColor = '';\r\n  @Input() okLabel = '';\r\n  @Input() disableOk = false;\r\n  @Input() showOk = true;\r\n  @Input() busy = false;\r\n\r\n  @Output() cancelClick = new EventEmitter();\r\n  @Input() cancelIcon = '';\r\n  @Input() cancelColor = '';\r\n  @Input() cancelLabel = '';\r\n  @Input() disableCancel = false;\r\n  @Input() showCancel = true;\r\n}\r\n","import {\r\n  AfterContentInit,\r\n  AfterViewInit,\r\n  Component,\r\n  ContentChildren,\r\n  QueryList,\r\n  TemplateRef,\r\n  forwardRef\r\n} from '@angular/core';\r\nimport { FormTemplateBase } from '../form-template/form-template-base';\r\nimport { DesycoTemplateDirective } from '../../shared/utils.module';\r\n\r\n@Component({\r\n  selector: 'form-templ',\r\n  templateUrl: './form-templ.component.html',\r\n  providers: [\r\n    {\r\n      provide: FormTemplateBase,\r\n      useExisting: forwardRef(() => FormTemplComponent)\r\n    }\r\n  ]\r\n})\r\nexport class FormTemplComponent extends FormTemplateBase implements AfterViewInit, AfterContentInit {\r\n  //@Input() skipChangeDetectorPause: boolean;\r\n  @ContentChildren(DesycoTemplateDirective)\r\n  templates: QueryList<DesycoTemplateDirective> | undefined;\r\n\r\n  addTemplate: TemplateRef<any> | null = null;\r\n  editTemplate: TemplateRef<any> | null = null;\r\n  buttonsTemplate: TemplateRef<any> | null = null;\r\n  headerTemplate: TemplateRef<any> | null = null;\r\n\r\n  constructor(/*private cd: ChangeDetectorRef*/) {\r\n    super();\r\n  }\r\n\r\n  // ngOnChanges(changes: SimpleChanges): void {\r\n  //   if (\r\n  //     (!changes.skipChangeDetectorPause ||\r\n  //       !changes.skipChangeDetectorPause.currentValue) &&\r\n  //     this.cd\r\n  //   ) {\r\n  //     this.cd.detach();\r\n  //   }\r\n  // }\r\n\r\n  // ngOnInit(): void {\r\n  //   //atacha nuevamente el cd si no lo esta aun\r\n  //   setTimeout(() => this.cd.reattach());\r\n  // }\r\n\r\n  override ngAfterContentInit() {\r\n    super.ngAfterContentInit();\r\n    this.templates?.forEach(temp => {\r\n      switch (temp.getType()) {\r\n        case 'add':\r\n          this.addTemplate = temp.template;\r\n          break;\r\n\r\n        case 'edit':\r\n          this.editTemplate = temp.template;\r\n          break;\r\n\r\n        case 'buttons':\r\n          this.buttonsTemplate = temp.template;\r\n          break;\r\n\r\n        case 'header':\r\n          this.headerTemplate = temp.template;\r\n          break;\r\n\r\n        default:\r\n          this.addTemplate = temp.template;\r\n          break;\r\n      }\r\n    });\r\n  }\r\n}\r\n","<div [ngClass]=\"animationClass\">\r\n  <div class=\"row\">\r\n    <div class=\"col-md-12\">\r\n      <div class=\"card\">\r\n        <ng-container *ngIf=\"showHeader\">\r\n          <ng-template #defaultHeader>\r\n            <i class=\"{{ icon }}\" aria-hidden=\"true\"></i>\r\n            <strong>{{ formTitle }}</strong>\r\n            <div class=\"card-actions\">\r\n              <button\r\n                *ngIf=\"showCloseButton\"\r\n                type=\"button\"\r\n                class=\"btn-close close-red\"\r\n                aria-label=\"Close\"\r\n                (click)=\"cancel()\"\r\n                style=\"outline: none; cursor: pointer\"\r\n                [ngStyle]=\"closeButtonStyle\">\r\n                <i class=\"icon-close\" style=\"font-weight: bold\" aria-hidden=\"true\"></i>\r\n              </button>\r\n            </div>\r\n          </ng-template>\r\n          <div class=\"card-header\">\r\n            <ng-container *ngTemplateOutlet=\"headerTemplate || defaultHeader\"> </ng-container>\r\n          </div>\r\n        </ng-container>\r\n        <div class=\"card-block\">\r\n          <ng-container *ngTemplateOutlet=\"adding ? addTemplate : editTemplate || addTemplate\"> </ng-container>\r\n          <ng-container *ngIf=\"showFooter\">\r\n            <ng-template #defaultButtons>\r\n              <div class=\"row\">\r\n                <div class=\"col-md-12\">\r\n                  <ng-container *ngIf=\"showOkAndNew\">\r\n                    <d-switch [label]=\"okAndNewLabel\" [(value)]=\"okAndNew\"></d-switch>\r\n                  </ng-container>\r\n                  <ng-container *ngIf=\"showCommandBtns\">\r\n                    <d-command-btns\r\n                      [busyIcon]=\"busyIcon\"\r\n                      [busy]=\"busy\"\r\n                      [showOk]=\"showOkButton\"\r\n                      (okClick)=\"markFormTouched()\"\r\n                      [okColor]=\"okButtonColor\"\r\n                      [okIcon]=\"okButtonIcon\"\r\n                      [okLabel]=\"okButtonLabel\"\r\n                      [disableOk]=\"disableOkButton()\"\r\n                      (cancelClick)=\"cancel()\"\r\n                      [cancelColor]=\"cancelButtonColor\"\r\n                      [cancelLabel]=\"cancelButtonLabel\"\r\n                      [cancelIcon]=\"cancelButtonIcon\"\r\n                      [showCancel]=\"showCancelButton\">\r\n                    </d-command-btns>\r\n                  </ng-container>\r\n                </div>\r\n              </div>\r\n            </ng-template>\r\n            <ng-container *ngTemplateOutlet=\"buttonsTemplate || defaultButtons\"> </ng-container>\r\n          </ng-container>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DSwitchComponent } from './d-switch.component';\r\nimport { SwitchModule } from '../switch/switch.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DCommandBtnsComponent } from './d-command-btns.component';\r\n\r\n@NgModule({\r\n  imports: [CommonModule, FormsModule, SwitchModule],\r\n  declarations: [DSwitchComponent, DCommandBtnsComponent],\r\n  exports: [DSwitchComponent, DCommandBtnsComponent]\r\n})\r\nexport class FormButtonsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LaddaModule } from 'angular2-ladda';\r\nimport { SwitchModule } from '../switch/switch.module';\r\nimport { FormTemplComponent } from '../form-templ/form-templ.component';\r\n\r\nimport { FormTemplateComponent } from './form-template.component';\r\nimport { FormButtonsModule } from '../form-buttons/form-buttons.module';\r\nimport { UtilsModule } from '../../shared/utils.module';\r\n\r\n@NgModule({\r\n  imports: [CommonModule, FormsModule, SwitchModule, LaddaModule, FormButtonsModule],\r\n  declarations: [FormTemplateComponent, FormTemplComponent],\r\n  exports: [UtilsModule, FormTemplateComponent, FormTemplComponent]\r\n})\r\nexport class FormTemplateModule {}\r\n","export class FormLevel {\r\n  getMaxLevel?: Function;\r\n  level: number;\r\n\r\n  constructor(level?: number) {\r\n    this.level = level || 0;\r\n  }\r\n\r\n  setMaxLevelCallback(func?: Function) {\r\n    this.getMaxLevel = func;\r\n\r\n    return this;\r\n  }\r\n\r\n  isTopLevel(): boolean {\r\n    const maxLevel = this.getMaxLevel ? this.getMaxLevel() : 0;\r\n\r\n    return this.level === maxLevel;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ResponseData } from '../../helpers/response';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UploadButtonService {\r\n  constructor(public http: HttpClient) {}\r\n\r\n  send(url: string, form: FormData): Observable<ResponseData<any>> {\r\n    return this.http.post<ResponseData<any>>(url, form);\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { UploadButtonService } from './upload-btn.service';\r\nimport { getErrorMessage, getToastConfiguration } from '../../helpers/function';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n  selector: 'upload-btn',\r\n  templateUrl: './upload-btn.component.html'\r\n})\r\nexport class UploadButtonComponent {\r\n  loading = false;\r\n  showInput = true;\r\n\r\n  @Input()\r\n  btnLabel = 'Cargar archivo';\r\n\r\n  @Input()\r\n  btnClass = 'btn-primary';\r\n\r\n  @Input()\r\n  showBtn = true;\r\n\r\n  @Input()\r\n  disabled = false;\r\n\r\n  @Input()\r\n  btnStyle = {};\r\n\r\n  @Input()\r\n  acceptFiles = '';\r\n\r\n  @Input()\r\n  url = '';\r\n\r\n  @Input()\r\n  maxSizeMB = 5;\r\n\r\n  @Input()\r\n  maxFiles = 1;\r\n\r\n  @Input()\r\n  icon = 'fa fa-cloud-upload';\r\n\r\n  @Input()\r\n  showIcon = true;\r\n\r\n  @Input()\r\n  offLineMode = false;\r\n\r\n  @Output()\r\n  successUpload = new EventEmitter<any>();\r\n\r\n  @Output()\r\n  data = new EventEmitter<any>();\r\n\r\n  @Output()\r\n  errorUploading = new EventEmitter<any>();\r\n\r\n  @Output()\r\n  saving = new EventEmitter<any>();\r\n\r\n  @ViewChild('inputFile')\r\n  inputFile: any;\r\n\r\n  constructor(public service: UploadButtonService, public toastr: ToastrService) {}\r\n\r\n  onChangeFile(event: any) {\r\n    const files = event.target.files;\r\n\r\n    if (this._isValidFiles(files)) {\r\n      if (this.offLineMode) {\r\n        this.data.emit(files);\r\n        return;\r\n      }\r\n\r\n      if (!this.url || this.url.trim().length === 0) {\r\n        this.throwError('Debe configurar una URL valida');\r\n        return;\r\n      }\r\n\r\n      this.saveFiles(files);\r\n    }\r\n  }\r\n\r\n  private _isValidFileSize(file: File) {\r\n    const fileSizeinMB = file.size / (1024 * 1000);\r\n    const size = Math.round(fileSizeinMB * 100) / 100; // convert upto 2 decimal place\r\n\r\n    if (size > this.maxSizeMB) {\r\n      this.throwError(`El archivo supera el limite de tamaño permitido. (${this.maxSizeMB} MB)`);\r\n\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  clickButton() {\r\n    this.inputFile.nativeElement.value = null;\r\n    this.inputFile.nativeElement.click();\r\n  }\r\n\r\n  private _isValidFileExtension(files: File[]) {\r\n    const extensions = this.acceptFiles.split(',').map(function (x) {\r\n      return x.toLocaleUpperCase().trim();\r\n    });\r\n\r\n    let flag = true;\r\n\r\n    for (const element of files) {\r\n      const ext = element.name.toUpperCase().split('.').pop() || element.name;\r\n      const exists = extensions.includes(`.${ext}`);\r\n\r\n      if (!exists) {\r\n        this.throwError(`Este tipo de archivo no esta soportado.`);\r\n\r\n        return false;\r\n      }\r\n\r\n      flag = this._isValidFileSize(element);\r\n    }\r\n\r\n    return flag;\r\n  }\r\n\r\n  private _isValidFiles(files: File[]) {\r\n    if (files.length === 0) return false;\r\n\r\n    if (files.length > this.maxFiles) {\r\n      this.throwError(`La cantidad de archivos permitidos para subir es de ${this.maxFiles}.`);\r\n\r\n      return false;\r\n    }\r\n\r\n    return this._isValidFileExtension(files);\r\n  }\r\n\r\n  saveFiles(files: File[]) {\r\n    this.loading = true;\r\n    this.saving.emit(this.loading);\r\n\r\n    if (files.length > 0 && this._isValidFiles(files)) {\r\n      const formData: FormData = new FormData();\r\n\r\n      for (const element of files) formData.append('file[]', element, element.name);\r\n\r\n      this.service.send(this.url, formData).subscribe({\r\n        next: response => {\r\n          this.loading = false;\r\n          this.saving.emit(this.loading);\r\n\r\n          if (!response.Commit) {\r\n            this.throwError(response.Message);\r\n            return;\r\n          }\r\n\r\n          this.successUpload.emit(response.DataSource);\r\n        },\r\n        error: error => {\r\n          this.saving.emit(false);\r\n          this.throwError(getErrorMessage(error));\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  throwError(error?: string) {\r\n    this.errorUploading.emit(error);\r\n    this.toastr.error(error, '', getToastConfiguration());\r\n    this.loading = false;\r\n  }\r\n}\r\n","<input #inputFile type=\"file\" (change)=\"onChangeFile($event)\" accept=\"{{ acceptFiles }}\" style=\"display: none\" />\r\n<button\r\n  type=\"button\"\r\n  class=\"btn btn-ladda {{ btnClass }}\"\r\n  [ngStyle]=\"btnStyle\"\r\n  data-style=\"zoom-in\"\r\n  (click)=\"clickButton()\"\r\n  [disabled]=\"disabled\"\r\n  [ladda]=\"loading\"\r\n  *ngIf=\"showBtn\">\r\n  <i class=\"{{ icon }}\" aria-hidden=\"true\" *ngIf=\"showIcon\"></i> {{ btnLabel }}\r\n</button>\r\n","import { CommonModule } from '@angular/common';\r\nimport { LaddaModule } from 'angular2-ladda';\r\nimport { NgModule } from '@angular/core';\r\nimport { UploadButtonComponent } from './upload-btn.component';\r\nimport { UploadButtonService } from './upload-btn.service';\r\n\r\n@NgModule({\r\n  imports: [CommonModule, LaddaModule],\r\n  declarations: [UploadButtonComponent],\r\n  exports: [UploadButtonComponent],\r\n  providers: [UploadButtonService]\r\n})\r\nexport class UploadButtonModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CrudCreateDirective, CrudDeleteDirective, CrudReadDirective, CrudUpdateDirective } from './crud.directive';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [CrudCreateDirective, CrudReadDirective, CrudUpdateDirective, CrudDeleteDirective],\r\n  exports: [CrudCreateDirective, CrudReadDirective, CrudUpdateDirective, CrudDeleteDirective]\r\n})\r\nexport class CrudModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: '[input-wrapper]',\r\n  templateUrl: './input-wrapper.component.html'\r\n})\r\nexport class InputWrapperComponent {\r\n  @Input() labelName = '';\r\n  @Input() labelFor = '';\r\n  @Input() wrapperClass = 'form-group';\r\n  @Input() labelClass = 'form-form-control-label';\r\n  @Input() inline = false;\r\n}\r\n","<div class=\"{{ wrapperClass }} {{ inline ? 'row' : '' }}\">\r\n  <label for=\"{{ labelFor }}\" class=\"{{ labelClass }} {{ inline ? 'col-form-label' : '' }}\">\r\n    {{ labelName }}\r\n    <ng-content select=\"[content-type=label-extension]\"></ng-content>\r\n  </label>\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputWrapperComponent } from './input-wrapper.component';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [InputWrapperComponent],\r\n  exports: [InputWrapperComponent]\r\n})\r\nexport class InputWrapperModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'button-go-to',\r\n  templateUrl: './button-go-to.component.html',\r\n  styleUrls: ['./button-go-to.component.scss']\r\n})\r\nexport class ButtonGoToComponent implements OnInit {\r\n  ngOnInit() {\r\n    this.showOrHide();\r\n    window.onscroll = () => this.showOrHide();\r\n  }\r\n\r\n  showOrHide() {\r\n    try {\r\n      const element = document.getElementById('button-go-to');\r\n\r\n      if (!element) return;\r\n\r\n      if (document.body.scrollTop > 400 || document.documentElement.scrollTop > 400) element.style.display = 'block';\r\n      else element.style.display = 'none';\r\n\r\n      // eslint-disable-next-line no-empty\r\n    } catch {}\r\n  }\r\n\r\n  scrollToTop(scrollDuration: number) {\r\n    const cosParameter = window.scrollY / 2;\r\n\r\n    let scrollCount = 0,\r\n      oldTimestamp = performance.now();\r\n\r\n    function step(newTimestamp: number) {\r\n      scrollCount += Math.PI / (scrollDuration / (newTimestamp - oldTimestamp));\r\n\r\n      if (scrollCount >= Math.PI) window.scrollTo(0, 0);\r\n\r\n      if (window.scrollY === 0) return;\r\n\r\n      window.scrollTo(0, Math.round(cosParameter + cosParameter * Math.cos(scrollCount)));\r\n      oldTimestamp = newTimestamp;\r\n      window.requestAnimationFrame(step);\r\n    }\r\n\r\n    window.requestAnimationFrame(step);\r\n  }\r\n}\r\n","<a href=\"javascript:void(0)\" (click)=\"scrollToTop(400)\" id=\"button-go-to\" class=\"anchor-button-go-to\">\r\n  <img\r\n    title=\"Ir hacia arriba\"\r\n    src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAABKCAMAAAACCc3EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhQTFRF/f39UVFRCFa6oKCg3d3dfKXa8PDw////6xSFiAAAAAh0Uk5T/////////wDeg71ZAAAAlklEQVR42uzUwQrEMAgEUFvH7P//8Qo91I4Se2mXhXgSeUwuYUQG5iNjSDOQJR4Wum06FQ4SQQJMkAERFOBKQECVCQiEhcV5P0gtNMRlgZDsBOsHPSnadugKxt8YzchHWtHNDbG68C+E7btNhYNEkAATZEAEBbgSEDBjAgJhYXHeD1ILC3FFF4ZkJ6sLf9yF44Uu/AowAAGWCad8kBQzAAAAAElFTkSuQmCC\"\r\n    alt=\"Ir hacia arriba\"\r\n    border=\"0\"\r\n    height=\"76\"\r\n    width=\"33\"\r\n    class=\"btn-button-go-to\" />\r\n</a>\r\n","import { ButtonGoToComponent } from './button-go-to.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [ButtonGoToComponent],\r\n  exports: [ButtonGoToComponent]\r\n})\r\nexport class ButtonGoToModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { ISearchHost } from '../interfaces/searchhost.interface';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SearchService {\r\n  private static get _defaultSearchTextMessage() {\r\n    return 'Ingrese su busqueda aquí';\r\n  }\r\n\r\n  private _subscriptions = new Array<Subscription>();\r\n  private _activeComponent: ISearchHost | undefined | null;\r\n\r\n  lastSearchText: string | undefined;\r\n\r\n  get placeHolder(): string | undefined {\r\n    return this.filtered ? this.lastSearchText : SearchService._defaultSearchTextMessage;\r\n  }\r\n\r\n  filtered = false;\r\n  showSearchBar = false;\r\n  searchText = '';\r\n\r\n  get activeComponent(): ISearchHost | undefined | null {\r\n    return this._activeComponent;\r\n  }\r\n\r\n  set activeComponent(value: ISearchHost | undefined | null) {\r\n    this._activeComponent = value;\r\n    this._setSubscriptions();\r\n  }\r\n\r\n  executeSearch() {\r\n    if (this.searchText === this.lastSearchText) return;\r\n\r\n    // @ts-ignore\r\n    this.activeComponent.service.requestSetting.FilterText = this.searchText;\r\n\r\n    // @ts-ignore\r\n    this.activeComponent.service.load();\r\n    this.lastSearchText = this.searchText;\r\n    this.filtered = this.searchText !== '';\r\n  }\r\n\r\n  private _setSubscriptions() {\r\n    if (this._activeComponent) {\r\n      this._subscriptions.push(\r\n        this._activeComponent.onInitialize.subscribe(args => {\r\n          this.showSearchBar = args.showSearchBar;\r\n          this.searchText = '';\r\n          this.lastSearchText = undefined;\r\n          this.filtered = false;\r\n        })\r\n      );\r\n\r\n      this._subscriptions.push(\r\n        this._activeComponent.onDestroy.subscribe(args => {\r\n          this.showSearchBar = args.showSearchBar;\r\n          this._subscriptions.forEach(sub => sub.unsubscribe());\r\n          this._subscriptions = [];\r\n          this._activeComponent = null;\r\n        })\r\n      );\r\n    }\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nconst uuids = {\r\n  '3': /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\r\n  '4': /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\r\n  '5': /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\r\n  all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\r\n};\r\n\r\nexport const uuid = (version?: any): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: string = control.value;\r\n    // @ts-ignore\r\n    const pattern = uuids[version] || uuids.all;\r\n\r\n    return new RegExp(pattern).test(v) ? null : { uuid: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { uuid } from './validator';\r\n\r\nconst UUID_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => UUIDValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[uuid][formControlName],[uuid][formControl],[uuid][ngModel]',\r\n  providers: [UUID_VALIDATOR]\r\n})\r\nexport class UUIDValidator implements Validator, OnInit, OnChanges {\r\n  @Input() uuid: any | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = uuid(this.uuid);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'uuid') {\r\n        this.validator = uuid(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const base64: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  const v: string = control.value;\r\n\r\n  return /^(?:[A-Z0-9+/]{4})*(?:[A-Z0-9+/]{2}==|[A-Z0-9+/]{3}=|[A-Z0-9+/]{4})$/i.test(v) ? null : { base64: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { base64 } from './validator';\r\n\r\nconst BASE64_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => Base64Validator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[base64][formControlName],[base64][formControl],[base64][ngModel]',\r\n  providers: [BASE64_VALIDATOR]\r\n})\r\nexport class Base64Validator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return base64(c);\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const creditCard: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  const v: string = control.value;\r\n  const sanitized = v.replace(/[^0-9]+/g, '');\r\n\r\n  // problem with chrome\r\n  if (\r\n    !/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/.test(\r\n      sanitized\r\n    )\r\n  )\r\n    return { creditCard: true };\r\n\r\n  let sum = 0;\r\n  let digit;\r\n  let tmpNum;\r\n  let shouldDouble;\r\n  for (let i = sanitized.length - 1; i >= 0; i--) {\r\n    digit = sanitized.substring(i, i + 1);\r\n    tmpNum = parseInt(digit, 10);\r\n\r\n    if (shouldDouble) {\r\n      tmpNum *= 2;\r\n      if (tmpNum >= 10) sum += (tmpNum % 10) + 1;\r\n      else sum += tmpNum;\r\n    } else {\r\n      sum += tmpNum;\r\n    }\r\n    shouldDouble = !shouldDouble;\r\n  }\r\n\r\n  if (sum % 10 === 0 ? sanitized : false) return null;\r\n\r\n  return { creditCard: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { creditCard } from './validator';\r\n\r\nconst CREDIT_CARD_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => CreditCardValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[creditCard][formControlName],[creditCard][formControl],[creditCard][ngModel]',\r\n  providers: [CREDIT_CARD_VALIDATOR]\r\n})\r\nexport class CreditCardValidator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return creditCard(c);\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isDate, isPresent } from '../../helpers/function';\r\n\r\nexport const date: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  const v: string = control.value;\r\n\r\n  return isDate(v) ? null : { date: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { date } from './validator';\r\n\r\nconst DATE_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => DateValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[date][formControlName],[date][formControl],[date][ngModel]',\r\n  providers: [DATE_VALIDATOR]\r\n})\r\nexport class DateValidator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return date(c);\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const dateISO: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  const v: string = control.value;\r\n\r\n  return /^\\d{4}[/-](0?[1-9]|1[012])[/-](0?[1-9]|[12][0-9]|3[01])$/.test(v) ? null : { dateISO: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { dateISO } from './validator';\r\n\r\nconst DATE_ISO_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => DateISOValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[dateISO][formControlName],[dateISO][formControl],[dateISO][ngModel]',\r\n  providers: [DATE_ISO_VALIDATOR]\r\n})\r\nexport class DateISOValidator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return dateISO(c);\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\n\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const digits: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  const v: string = control.value;\r\n\r\n  return /^\\d+$/.test(v) ? null : { digits: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { digits } from './validator';\r\n\r\nconst DIGITS_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => DigitsValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[digits][formControlName],[digits][formControl],[digits][ngModel]',\r\n  providers: [DIGITS_VALIDATOR]\r\n})\r\nexport class DigitsValidator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return digits(c);\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const equal = (val: any): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: any = control.value;\r\n\r\n    return val === v ? null : { equal: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { equal } from './validator';\r\n\r\nconst EQUAL_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => EqualValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[equal][formControlName],[equal][formControl],[equal][ngModel]',\r\n  providers: [EQUAL_VALIDATOR]\r\n})\r\nexport class EqualValidator implements Validator, OnInit, OnChanges {\r\n  @Input() equal: any;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = equal(this.equal);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'equal') {\r\n        this.validator = equal(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const url: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  const v: string = control.value;\r\n\r\n  return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(\r\n    v\r\n  )\r\n    ? null\r\n    : { url: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { url } from './validator';\r\n\r\nconst URL_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => UrlValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[url][formControlName],[url][formControl],[url][ngModel]',\r\n  providers: [URL_VALIDATOR]\r\n})\r\nexport class UrlValidator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return url(c);\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const rangeLength = (rangeLength: Array<number>): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!isPresent(rangeLength)) return null;\r\n\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: string = control.value;\r\n\r\n    return v.length >= rangeLength[0] && v.length <= rangeLength[1] ? null : { rangeLength: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { rangeLength } from './validator';\r\n\r\nconst RANGE_LENGTH_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => RangeLengthValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[rangeLength][formControlName],[rangeLength][formControl],[rangeLength][ngModel]',\r\n  providers: [RANGE_LENGTH_VALIDATOR]\r\n})\r\nexport class RangeLengthValidator implements Validator, OnInit, OnChanges {\r\n  @Input() rangeLength: number[] | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = rangeLength(this.rangeLength as number[]);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'rangeLength') {\r\n        this.validator = rangeLength(changes[key].currentValue);\r\n\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { CountryCode, isValidNumber } from 'libphonenumber-js';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const phone = (country: CountryCode): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: string = control.value;\r\n\r\n    return isValidNumber({ phone: v, country }) ? null : { phone: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { CountryCode } from 'libphonenumber-js';\r\nimport { phone } from './validator';\r\n\r\nconst PHONE_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => PhoneValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[phone][formControlName],[phone][formControl],[phone][ngModel]',\r\n  providers: [PHONE_VALIDATOR]\r\n})\r\nexport class PhoneValidator implements Validator, OnInit, OnChanges {\r\n  @Input() phone: CountryCode | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = phone(this.phone as CountryCode);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'phone') {\r\n        this.validator = phone(changes[key].currentValue);\r\n\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const notEqual = (val: any): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: any = control.value;\r\n\r\n    return val !== v ? null : { notEqual: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { notEqual } from './validator';\r\n\r\nconst NOT_EQUAL_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => NotEqualValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[notEqual][formControlName],[notEqual][formControl],[notEqual][ngModel]',\r\n  providers: [NOT_EQUAL_VALIDATOR]\r\n})\r\nexport class NotEqualValidator implements Validator, OnInit, OnChanges {\r\n  @Input() notEqual: any;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = notEqual(this.notEqual);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'notEqual') {\r\n        this.validator = notEqual(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isDate, isPresent } from '../../helpers/function';\r\n\r\nexport const minDate = (minDate: any): ValidatorFn => {\r\n  if (!isDate(minDate) && !(minDate instanceof Function))\r\n    throw Error('minDate value must be or return a formatted date');\r\n\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const d: Date = new Date(control.value);\r\n\r\n    if (!isDate(d)) return { minDate: true };\r\n\r\n    if (minDate instanceof Function) minDate = minDate();\r\n\r\n    return d >= new Date(minDate) ? null : { minDate: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { minDate } from './validator';\r\n\r\nconst MIN_DATE_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => MinDateValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[minDate][formControlName],[minDate][formControl],[minDate][ngModel]',\r\n  providers: [MIN_DATE_VALIDATOR]\r\n})\r\nexport class MinDateValidator implements Validator, OnInit, OnChanges {\r\n  @Input() minDate: any;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = minDate(this.minDate);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'minDate') {\r\n        this.validator = minDate(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const max = (max: number): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!isPresent(max)) return null;\r\n\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: number = +control.value;\r\n\r\n    return v <= +max ? null : { actualValue: v, requiredValue: +max, max: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { max } from './validator';\r\n\r\nconst MAX_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => MaxValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[max][formControlName],[max][formControl],[max][ngModel]',\r\n  providers: [MAX_VALIDATOR]\r\n})\r\nexport class MaxValidator implements Validator, OnInit, OnChanges {\r\n  @Input() max: number | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = max(this.max as number);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'max') {\r\n        this.validator = max(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const range = (range: Array<number>): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!isPresent(range)) return null;\r\n\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: number = +control.value;\r\n\r\n    return v >= range[0] && v <= range[1] ? null : { actualValue: v, requiredValue: range, range: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { range } from './validator';\r\n\r\nconst RANGE_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => RangeValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[range][formControlName],[range][formControl],[range][ngModel]',\r\n  providers: [RANGE_VALIDATOR]\r\n})\r\nexport class RangeValidator implements Validator, OnInit, OnChanges {\r\n  @Input() range: number[] | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = range(this.range as number[]);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'range') {\r\n        this.validator = range(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport const notEqualTo = (notEqualControl: AbstractControl): ValidatorFn => {\r\n  let subscribe = false;\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!subscribe) {\r\n      subscribe = true;\r\n      notEqualControl.valueChanges.subscribe(() => control.updateValueAndValidity());\r\n    }\r\n\r\n    const v: string = control.value;\r\n\r\n    return notEqualControl.value !== v ? null : { notEqualTo: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnInit, forwardRef } from '@angular/core';\r\nimport { AbstractControl, FormControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { notEqualTo } from './validator';\r\n\r\nconst NOT_EQUAL_TO_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => NotEqualToValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[notEqualTo][formControlName],[notEqualTo][formControl],[notEqualTo][ngModel]',\r\n  providers: [NOT_EQUAL_TO_VALIDATOR]\r\n})\r\nexport class NotEqualToValidator implements Validator, OnInit {\r\n  @Input() notEqualTo: FormControl | undefined;\r\n  private validator: ValidatorFn | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = notEqualTo(this.notEqualTo as FormControl);\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport const equalTo = (equalControl: AbstractControl): ValidatorFn => {\r\n  let subscribe = false;\r\n\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!subscribe) {\r\n      subscribe = true;\r\n      equalControl.valueChanges.subscribe(() => control.updateValueAndValidity());\r\n    }\r\n\r\n    const v: string = control.value;\r\n\r\n    return equalControl.value === v ? null : { equalTo: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnInit, forwardRef } from '@angular/core';\r\nimport { AbstractControl, FormControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { equalTo } from './validator';\r\n\r\nconst EQUAL_TO_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => EqualToValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[equalTo][formControlName],[equalTo][formControl],[equalTo][ngModel]',\r\n  providers: [EQUAL_TO_VALIDATOR]\r\n})\r\nexport class EqualToValidator implements Validator, OnInit {\r\n  @Input() equalTo: FormControl | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = equalTo(this.equalTo as FormControl);\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\n\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const gt = (gt: number): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!isPresent(gt)) return null;\r\n\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: number = +control.value;\r\n\r\n    return v > +gt ? null : { gt: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { gt } from './validator';\r\n\r\nconst GREATER_THAN_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => GreaterThanValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[gt][formControlName],[gt][formControl],[gt][ngModel]',\r\n  providers: [GREATER_THAN_VALIDATOR]\r\n})\r\nexport class GreaterThanValidator implements Validator, OnInit, OnChanges {\r\n  @Input() gt: number | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = gt(this.gt as number);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'gt') {\r\n        this.validator = gt(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const gte = (gte: number): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!isPresent(gte)) return null;\r\n\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: number = +control.value;\r\n\r\n    return v >= +gte ? null : { gte: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { gte } from './validator';\r\n\r\nconst GREATER_THAN_EQUAL_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => GreaterThanEqualValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[gte][formControlName],[gte][formControl],[gte][ngModel]',\r\n  providers: [GREATER_THAN_EQUAL_VALIDATOR]\r\n})\r\nexport class GreaterThanEqualValidator implements Validator, OnInit, OnChanges {\r\n  @Input() gte: number | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = gte(this.gte as number);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'gte') {\r\n        this.validator = gte(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const json: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  const v: string = control.value;\r\n\r\n  try {\r\n    const obj = JSON.parse(v);\r\n\r\n    if (Boolean(obj) && typeof obj === 'object') return null;\r\n    // eslint-disable-next-line no-empty\r\n  } catch {}\r\n\r\n  return { json: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { json } from './validator';\r\n\r\nconst JSON_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => JSONValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[json][formControlName],[json][formControl],[json][ngModel]',\r\n  providers: [JSON_VALIDATOR]\r\n})\r\nexport class JSONValidator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return json(c);\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const lt = (lt: number): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!isPresent(lt)) return null;\r\n\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: number = +control.value;\r\n\r\n    return v < +lt ? null : { lt: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { lt } from './validator';\r\n\r\nconst LESS_THAN_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => LessThanValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[lt][formControlName],[lt][formControl],[lt][ngModel]',\r\n  providers: [LESS_THAN_VALIDATOR]\r\n})\r\nexport class LessThanValidator implements Validator, OnInit, OnChanges {\r\n  @Input() lt: number | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = lt(this.lt as number);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'lt') {\r\n        this.validator = lt(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const lte = (lte: number): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!isPresent(lte)) return null;\r\n\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: number = +control.value;\r\n\r\n    return v <= +lte ? null : { lte: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { lte } from './validator';\r\n\r\nconst LESS_THAN_EQUAL_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => LessThanEqualValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[lte][formControlName],[lte][formControl],[lte][ngModel]',\r\n  providers: [LESS_THAN_EQUAL_VALIDATOR]\r\n})\r\nexport class LessThanEqualValidator implements Validator, OnInit, OnChanges {\r\n  @Input() lte: number | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = lte(this.lte as number);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'lte') {\r\n        this.validator = lte(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isDate, isPresent } from '../../helpers/function';\r\n\r\nexport const maxDate = (maxDate: any): ValidatorFn => {\r\n  if (!isDate(maxDate) && !(maxDate instanceof Function))\r\n    throw Error('maxDate value must be or return a formatted date');\r\n\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const d: Date = new Date(control.value);\r\n\r\n    if (!isDate(d)) return { maxDate: true };\r\n\r\n    if (maxDate instanceof Function) maxDate = maxDate();\r\n\r\n    return d <= new Date(maxDate) ? null : { maxDate: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { maxDate } from './validator';\r\n\r\nconst MAX_DATE_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => MaxDateValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[maxDate][formControlName],[maxDate][formControl],[maxDate][ngModel]',\r\n  providers: [MAX_DATE_VALIDATOR]\r\n})\r\nexport class MaxDateValidator implements Validator, OnInit, OnChanges {\r\n  @Input() maxDate: any;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = maxDate(this.maxDate);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'maxDate') {\r\n        this.validator = maxDate(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const min = (min: number): ValidatorFn => {\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (!isPresent(min)) return null;\r\n\r\n    if (isPresent(Validators.required(control))) return null;\r\n\r\n    const v: number = +control.value;\r\n\r\n    return v >= +min ? null : { actualValue: v, requiredValue: +min, min: true };\r\n  };\r\n};\r\n","import { Directive, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';\r\nimport { min } from './validator';\r\n\r\nconst MIN_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => MinValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[min][formControlName],[min][formControl],[min][ngModel]',\r\n  providers: [MIN_VALIDATOR]\r\n})\r\nexport class MinValidator implements Validator, OnInit, OnChanges {\r\n  @Input() min: number | undefined;\r\n\r\n  private validator: ValidatorFn | undefined;\r\n  private onChange: (() => void) | undefined;\r\n\r\n  ngOnInit() {\r\n    this.validator = min(this.min as number);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    for (const key in changes) {\r\n      if (key === 'min') {\r\n        this.validator = min(changes[key].currentValue);\r\n        if (this.onChange) this.onChange();\r\n      }\r\n    }\r\n  }\r\n\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return this.validator ? this.validator(c) : null;\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n    this.onChange = fn;\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const email: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  let v: string = control.value;\r\n\r\n  return /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\r\n    v\r\n  )\r\n    ? null\r\n    : { email: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { email } from './validator';\r\n\r\nconst EMAIL_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => EmailValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[email][formControlName],[email][formControl],[email][ngModel]',\r\n  providers: [EMAIL_VALIDATOR]\r\n})\r\nexport class EmailValidator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return email(c);\r\n  }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { isPresent } from '../../helpers/function';\r\n\r\nexport const number: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n  if (isPresent(Validators.required(control))) return null;\r\n\r\n  const v: string = control.value;\r\n\r\n  return /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(v) ? null : { number: true };\r\n};\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { number } from './validator';\r\n\r\nconst NUMBER_VALIDATOR: any = {\r\n  provide: NG_VALIDATORS,\r\n  useExisting: forwardRef(() => NumberValidator),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[number][formControlName],[number][formControl],[number][ngModel]',\r\n  providers: [NUMBER_VALIDATOR]\r\n})\r\nexport class NumberValidator implements Validator {\r\n  validate(c: AbstractControl): ValidationErrors | null {\r\n    return number(c);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { UUIDValidator } from './uuid/directive';\r\nimport { Base64Validator } from './base64/directive';\r\nimport { CreditCardValidator } from './credit-card/directive';\r\nimport { DateValidator } from './date/directive';\r\nimport { DateISOValidator } from './date-iso/directive';\r\nimport { DigitsValidator } from './digits/directive';\r\nimport { EqualValidator } from './equal/directive';\r\nimport { UrlValidator } from './url/directive';\r\nimport { RangeLengthValidator } from './range-length/directive';\r\nimport { PhoneValidator } from './phone/directive';\r\nimport { NotEqualValidator } from './not-equal/directive';\r\nimport { MinDateValidator } from './min-date/directive';\r\nimport { MaxValidator } from './max/directive';\r\nimport { RangeValidator } from './range/directive';\r\nimport { NotEqualToValidator } from './not-equal-to/directive';\r\nimport { EqualToValidator } from './equal-to/directive';\r\nimport { GreaterThanValidator } from './greater-than/directive';\r\nimport { GreaterThanEqualValidator } from './greater-than-equal/directive';\r\nimport { JSONValidator } from './json/directive';\r\nimport { LessThanValidator } from './less-than/directive';\r\nimport { LessThanEqualValidator } from './less-than-equal/directive';\r\nimport { MaxDateValidator } from './max-date/directive';\r\nimport { MinValidator } from './min/directive';\r\nimport { EmailValidator } from './email/directive';\r\nimport { NumberValidator } from './number/directive';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    Base64Validator,\r\n    CreditCardValidator,\r\n    DateValidator,\r\n    DateISOValidator,\r\n    DigitsValidator,\r\n    EmailValidator,\r\n    EqualValidator,\r\n    EqualToValidator,\r\n    GreaterThanValidator,\r\n    GreaterThanEqualValidator,\r\n    JSONValidator,\r\n    LessThanValidator,\r\n    LessThanEqualValidator,\r\n    MaxValidator,\r\n    MaxDateValidator,\r\n    MinValidator,\r\n    MinDateValidator,\r\n    NotEqualValidator,\r\n    NotEqualToValidator,\r\n    NumberValidator,\r\n    PhoneValidator,\r\n    RangeValidator,\r\n    RangeLengthValidator,\r\n    UrlValidator,\r\n    UUIDValidator\r\n  ],\r\n  exports: [\r\n    Base64Validator,\r\n    CreditCardValidator,\r\n    DateValidator,\r\n    DateISOValidator,\r\n    DigitsValidator,\r\n    EmailValidator,\r\n    EqualValidator,\r\n    EqualToValidator,\r\n    GreaterThanValidator,\r\n    GreaterThanEqualValidator,\r\n    JSONValidator,\r\n    LessThanValidator,\r\n    LessThanEqualValidator,\r\n    MaxValidator,\r\n    MaxDateValidator,\r\n    MinValidator,\r\n    MinDateValidator,\r\n    NotEqualValidator,\r\n    NotEqualToValidator,\r\n    NumberValidator,\r\n    PhoneValidator,\r\n    RangeValidator,\r\n    RangeLengthValidator,\r\n    UrlValidator,\r\n    UUIDValidator\r\n  ]\r\n})\r\nexport class ValidatorModule {}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: `[autoScroll]`\r\n})\r\nexport class AutoScrollDirective {\r\n  @Input('autoScroll') elementId: string | undefined;\r\n\r\n  constructor(public el: ElementRef) {}\r\n\r\n  // easing functions http://goo.gl/5HLl8\r\n  easeInOutQuad(t: number, b: number, c: number, d: number) {\r\n    t /= d / 2;\r\n\r\n    if (t < 1) return (c / 2) * t * t + b;\r\n\r\n    t--;\r\n    return (-c / 2) * (t * (t - 2) - 1) + b;\r\n  }\r\n\r\n  easeInCubic(t: number, b: number, c: number, d: number) {\r\n    const tc = (t /= d) * t * t;\r\n    return b + c * tc;\r\n  }\r\n\r\n  inOutQuintic(t: number, b: number, c: number, d: number) {\r\n    const ts = (t /= d) * t,\r\n      tc = ts * t;\r\n\r\n    return b + c * (6 * tc * ts + -15 * ts * ts + 10 * tc);\r\n  }\r\n\r\n  requestAnimFrame = (function () {\r\n    return (\r\n      window.requestAnimationFrame ||\r\n      // @ts-ignore\r\n      window.webkitRequestAnimationFrame ||\r\n      function (callback) {\r\n        setTimeout(callback, 1000 / 60);\r\n      }\r\n    );\r\n  })();\r\n\r\n  scrollTo(to: any, callback: any, duration: any) {\r\n    // because it's so fucking difficult to detect the scrolling element, just move them all\r\n    function move(amount: any) {\r\n      document.documentElement.scrollTop = amount;\r\n      // @ts-ignore\r\n      document.body.parentElement.scrollTop = amount;\r\n      document.body.scrollTop = amount;\r\n    }\r\n\r\n    function position() {\r\n      // @ts-ignore\r\n      return document.documentElement.scrollTop || document.body.parentElement.scrollTop || document.body.scrollTop;\r\n    }\r\n\r\n    const start = position(),\r\n      change = to - start,\r\n      increment = 20;\r\n    let currentTime = 0;\r\n\r\n    duration = typeof duration === 'undefined' ? 500 : duration;\r\n\r\n    const animateScroll = function () {\r\n      // increment the time\r\n      currentTime += increment;\r\n      // find the value with the quadratic in-out easing function\r\n      // @ts-ignore\r\n      const val = this.easeInOutQuad(currentTime, start, change, duration);\r\n      // move the document.body\r\n      move(val);\r\n      // do the animation unless its over\r\n      if (currentTime < duration) {\r\n        // @ts-ignore\r\n        this.requestAnimFrame(animateScroll);\r\n      } else {\r\n        if (callback && typeof callback === 'function') {\r\n          // the animation is done so lets callback\r\n          callback();\r\n        }\r\n      }\r\n    };\r\n    animateScroll();\r\n  }\r\n\r\n  @HostListener('mouseenter')\r\n  onMouseEnter() {\r\n    this.highlight('blue');\r\n  }\r\n\r\n  @HostListener('mouseleave')\r\n  onMouseLeave() {\r\n    this.highlight('');\r\n  }\r\n\r\n  public highlight(color: string) {\r\n    this.el.nativeElement.style.cursor = 'pointer';\r\n    this.el.nativeElement.style.color = color;\r\n  }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  ContentChild,\r\n  Directive,\r\n  EmbeddedViewRef,\r\n  EventEmitter,\r\n  OnDestroy,\r\n  Output,\r\n  TemplateRef,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[lazyLoader]',\r\n  exportAs: 'lloader'\r\n})\r\nexport class LazyLoaderDirective implements AfterViewInit, OnDestroy {\r\n  @Output() toggled = new EventEmitter();\r\n\r\n  @ContentChild(TemplateRef) template: TemplateRef<any> | undefined;\r\n\r\n  view: EmbeddedViewRef<any> | undefined | null;\r\n  visible: boolean | undefined;\r\n\r\n  constructor(public viewContainer: ViewContainerRef) {}\r\n\r\n  ngAfterViewInit() {\r\n    if (this.visible) this.load();\r\n  }\r\n\r\n  load() {\r\n    this.visible = true;\r\n\r\n    if (this.template) this.view = this.viewContainer.createEmbeddedView(this.template);\r\n\r\n    this.toggled.emit(true);\r\n  }\r\n\r\n  unload() {\r\n    this.visible = false;\r\n    this.viewContainer.clear();\r\n    this.toggled.emit(false);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.view = null;\r\n  }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: `[mailTo]`\r\n})\r\nexport class MailToDirective {\r\n  @Input('mailTo') mail: string | undefined;\r\n  @Input() subject = '';\r\n  @Input() body = '';\r\n\r\n  constructor(public el: ElementRef) {}\r\n\r\n  @HostListener('click', ['$event'])\r\n  confirmFirst() {\r\n    if (!this.mail || this.mail === '') {\r\n      return;\r\n    }\r\n\r\n    document.location.href = `mailto:${this.mail}?subject=${encodeURIComponent(this.subject)}&body=${encodeURIComponent(\r\n      this.body\r\n    )}`;\r\n  }\r\n\r\n  @HostListener('mouseenter')\r\n  onMouseEnter() {\r\n    this.highlight('blue');\r\n  }\r\n\r\n  @HostListener('mouseleave')\r\n  onMouseLeave() {\r\n    this.highlight('');\r\n  }\r\n\r\n  highlight(color: string) {\r\n    this.el.nativeElement.style.cursor = 'pointer';\r\n    this.el.nativeElement.style.color = color;\r\n  }\r\n}\r\n","import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DecimalPipe } from '@angular/common';\r\nimport { Directive, DoCheck, ElementRef, HostListener, Input, forwardRef } from '@angular/core';\r\n\r\nexport const NUMBER_DIRECTIVE_PROVIDER: any = {\r\n  provide: NG_VALUE_ACCESSOR,\r\n  useExisting: forwardRef(() => NumberInputDirective),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[cNumber]',\r\n  providers: [NUMBER_DIRECTIVE_PROVIDER, DecimalPipe]\r\n})\r\nexport class NumberInputDirective implements ControlValueAccessor, DoCheck {\r\n  private _onChange: Function | undefined;\r\n  private _onTouched: Function | undefined;\r\n  private _originalValue: number | undefined;\r\n\r\n  private _decimalSep = -1;\r\n\r\n  @Input() cFormat = '1.2-2';\r\n  @Input() cAlign = 'right';\r\n  @Input() cAllowNegative = true;\r\n  @Input() cNegativeColor = '';\r\n\r\n  constructor(private _elementRef: ElementRef, private _decimalPipe: DecimalPipe) {}\r\n\r\n  ngDoCheck() {\r\n    this._elementRef.nativeElement.style.textAlign = this.cAlign;\r\n  }\r\n\r\n  registerOnChange(fn: Function) {\r\n    this._onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: Function) {\r\n    this._onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(value: boolean) {\r\n    this._elementRef.nativeElement.disabled = value;\r\n  }\r\n\r\n  writeValue(value: number) {\r\n    this._originalValue = value;\r\n    this._elementRef.nativeElement.value = this.applyMask();\r\n  }\r\n\r\n  @HostListener('focus', ['$event'])\r\n  onFocus(event: any) {\r\n    event.target.value = this.clearMask();\r\n    this._elementRef.nativeElement.select();\r\n  }\r\n\r\n  @HostListener('blur', ['$event'])\r\n  onBlur(event: any) {\r\n    event.target.value = this.applyMask();\r\n\r\n    if (this._onTouched) this._onTouched();\r\n  }\r\n\r\n  @HostListener('input', ['$event'])\r\n  onInput(event: any) {\r\n    let value = event.target.value.replaceAll(',', '');\r\n\r\n    if (value.indexOf('-') > -1) value = '-' + value.replace(/-/g, '');\r\n\r\n    if (value.indexOf('+') > -1) value = value.replace('+', '').replace(/-/g, '');\r\n\r\n    this._originalValue = parseFloat(value);\r\n\r\n    if (isNaN(this._originalValue)) this._originalValue = 0;\r\n\r\n    if (this._originalValue < 0 && this.cNegativeColor !== '')\r\n      this._elementRef.nativeElement.style.color = this.cNegativeColor;\r\n    else this._elementRef.nativeElement.style.color = '';\r\n\r\n    this._decimalSep = value.indexOf('.');\r\n\r\n    if (this._onChange) this._onChange(this._originalValue);\r\n  }\r\n\r\n  @HostListener('keypress', ['$event'])\r\n  onKeypress(event: any): boolean {\r\n    const charCode = event.which ? event.which : event.keyCode;\r\n\r\n    return (\r\n      (charCode >= 48 && charCode <= 57) ||\r\n      (charCode === 46 && this._decimalSep === -1) ||\r\n      (this.cAllowNegative && charCode === 45) ||\r\n      charCode === 43\r\n    );\r\n  }\r\n\r\n  applyMask(): string {\r\n    try {\r\n      if (!this._originalValue || !this.cFormat) return '';\r\n\r\n      return this._decimalPipe.transform(this._originalValue, this.cFormat) ?? '';\r\n    } catch {\r\n      return '';\r\n    }\r\n  }\r\n\r\n  clearMask(): string {\r\n    return this._originalValue ? this._originalValue?.toString() : '';\r\n  }\r\n}\r\n","import { Directive, DoCheck, EventEmitter, Input, KeyValueDiffers, Output } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[objectWatcher]'\r\n})\r\nexport class ObjectWatcherDirective implements DoCheck {\r\n  private _watchObject: any;\r\n  private _differ: any;\r\n  private _changeCounter = 0;\r\n\r\n  @Input('objectWatcher')\r\n  set watchObject(value: any) {\r\n    this._watchObject = value;\r\n\r\n    if (!this._differ && value) this._differ = this._differs.find(value).create();\r\n  }\r\n\r\n  @Input() checkOnce = true;\r\n  @Input() stopWatching = false;\r\n\r\n  @Output() propertyChanged = new EventEmitter();\r\n\r\n  constructor(private _differs: KeyValueDiffers) {}\r\n\r\n  ngDoCheck() {\r\n    if (!this._differ || this.stopWatching || (this.checkOnce && this._changeCounter > 0)) return;\r\n\r\n    const change = this._differ.diff(this._watchObject);\r\n\r\n    if (change) {\r\n      change.forEachChangedItem((item: any) => {\r\n        //\r\n        this._changeCounter++;\r\n        this.propertyChanged.emit(item);\r\n      });\r\n    }\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AutoScrollDirective } from './auto-scroll.directive';\r\nimport { LazyLoaderDirective } from './lazy-loader.directive';\r\nimport { MailToDirective } from './mail-to.directive';\r\nimport { NumberInputDirective } from './number-input.directive';\r\nimport { ObjectWatcherDirective } from './object-watcher.directive';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [\r\n    AutoScrollDirective,\r\n    LazyLoaderDirective,\r\n    MailToDirective,\r\n    NumberInputDirective,\r\n    ObjectWatcherDirective\r\n  ],\r\n  exports: [AutoScrollDirective, LazyLoaderDirective, MailToDirective, NumberInputDirective, ObjectWatcherDirective]\r\n})\r\nexport class DirectiveModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'customFilter',\r\n  pure: false\r\n})\r\nexport class CustomFilterPipe implements PipeTransform {\r\n  transform(items: any[], filter?: { prop: string; value: string }): any {\r\n    if (!items || !filter) return items;\r\n\r\n    return items.filter(item => item[filter.prop].toString().indexOf(filter.value) !== -1);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'phone'\r\n})\r\nexport class PhonePipe implements PipeTransform {\r\n  transform(value: any): string | null {\r\n    const s2 = ('' + value).replace(/\\D/g, ''),\r\n      m = s2.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\r\n\r\n    return !m ? null : '(' + m[1] + ') ' + m[2] + '-' + m[3];\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n  name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n  constructor(protected sanitizer: DomSanitizer) {}\r\n\r\n  transform(style: any): SafeHtml {\r\n    return this.sanitizer.bypassSecurityTrustHtml(style);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'identification'\r\n})\r\nexport class IdentificationPipe implements PipeTransform {\r\n  transform(value: any): string | null {\r\n    const str = ('' + value).replace(/\\D/g, '');\r\n\r\n    if (str.length === 11) {\r\n      const match = str.match(/^(\\d{3})(\\d{7})(\\d{1})$/);\r\n\r\n      return !match ? null : `${match[1]}-${match[2]}-${match[3]}`;\r\n    } else if (str.length === 9) {\r\n      const match = str.match(/^(\\d{3})(\\d{5})(\\d{1})$/);\r\n\r\n      return !match ? null : `${match[1]}-${match[2]}-${match[3]}`;\r\n    }\r\n\r\n    return value;\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'splitFilter',\r\n  pure: false\r\n})\r\nexport class SplitFilterPipe implements PipeTransform {\r\n  transform(value: any, delimiter = ' ', indexOf = 0): any {\r\n    try {\r\n      if (!value || value === '') return '';\r\n\r\n      if (isNaN(indexOf)) indexOf = 0;\r\n\r\n      return value.split(delimiter)[indexOf];\r\n      // eslint-disable-next-line no-empty\r\n    } catch {}\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'time'\r\n})\r\nexport class TimePipe implements PipeTransform {\r\n  transform(value: any): string | null {\r\n    const str = ('' + value).replace(/\\D/g, '');\r\n\r\n    if (str.length === 6) {\r\n      const match = str.match(/^(\\d{2})(\\d{2})(\\d{2})$/);\r\n\r\n      if (!match) return null;\r\n\r\n      let suffix = 'AM',\r\n        hour = parseInt(match[1]);\r\n\r\n      if (hour >= 12) suffix = 'PM';\r\n\r\n      hour = hour % 12 || 12;\r\n\r\n      return !match ? null : `${hour}:${match[2]} ${suffix}`;\r\n    }\r\n\r\n    return value;\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'timeSecond'\r\n})\r\nexport class TimeSecondPipe implements PipeTransform {\r\n  transform(value: any): string | null {\r\n    const str = ('' + value).replace(/\\D/g, '');\r\n\r\n    if (str.length === 6) {\r\n      const match = str.match(/^(\\d{2})(\\d{2})(\\d{2})$/);\r\n\r\n      if (!match) return null;\r\n\r\n      let suffix = 'AM',\r\n        hour = parseInt(match[1]);\r\n\r\n      if (hour >= 12) suffix = 'PM';\r\n\r\n      hour = hour % 12 || 12;\r\n\r\n      return !match ? null : `${hour}:${match[2]}:${match[3]} ${suffix}`;\r\n    }\r\n\r\n    return value;\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'selectFilter',\r\n  pure: false\r\n})\r\nexport class SelectFilterPipe implements PipeTransform {\r\n  transform(\r\n    items: any[],\r\n    callback: (repositoryItems: any[], item: any, currentValue: any) => boolean,\r\n    repositoryItems?: any[],\r\n    currentValue?: any\r\n  ): any {\r\n    if (!items || !callback) return items;\r\n\r\n    return items.filter(item =>\r\n      // @ts-ignore\r\n      callback(repositoryItems, item, currentValue)\r\n    );\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomFilterPipe } from './custom-filter.pipe';\r\nimport { PhonePipe } from './phone.pipe';\r\nimport { SafePipe } from './safe.pipe';\r\nimport { IdentificationPipe } from './identification.pipe';\r\nimport { SplitFilterPipe } from './split-filter.pipe';\r\nimport { TimePipe } from './time.pipe';\r\nimport { TimeSecondPipe } from './timeSecond.pipe';\r\nimport { SelectFilterPipe } from './select-filter.pipe';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [\r\n    CustomFilterPipe,\r\n    PhonePipe,\r\n    SafePipe,\r\n    IdentificationPipe,\r\n    SplitFilterPipe,\r\n    TimePipe,\r\n    TimeSecondPipe,\r\n    SelectFilterPipe\r\n  ],\r\n  exports: [\r\n    CustomFilterPipe,\r\n    PhonePipe,\r\n    SafePipe,\r\n    IdentificationPipe,\r\n    SplitFilterPipe,\r\n    TimePipe,\r\n    TimeSecondPipe,\r\n    SelectFilterPipe\r\n  ]\r\n})\r\nexport class PipeModule {}\r\n","import { EventEmitter } from '@angular/core';\r\nimport { BaseObject } from '../helpers/baseobject';\r\nimport { ServiceBase } from '../services/base.service';\r\nimport { IServiceManagerBase } from '../interfaces/servicemanager.interface';\r\nimport { CallerComponent } from '../helpers/caller.component';\r\nimport { IPropertyMetadata, IdentityValue } from '../helpers/identityvalue';\r\nimport { getDefaultValue, isValidType } from '../helpers/function';\r\nimport { CacheDataContainer } from '../helpers/cachecontainer';\r\nimport { ServerMethod } from '../helpers/servermethod';\r\nimport { IServiceOptions } from '../interfaces/serviceoptions.interface';\r\nimport { Filter, IFilter } from '../helpers/filtrable';\r\nimport { ServiceLocator, appInjector } from '../helpers/appinjector';\r\nimport { Router } from '@angular/router';\r\nimport { CrudAction, DataType, DeletionMode, ModelState, NavigationMode, PushMode } from '../helpers/enums';\r\nimport { ServiceRelationship } from '../services/relationship.service';\r\nimport { Guid } from '../helpers/guid';\r\nimport { RequestWrapper, RequestWrapperStrategy } from '../services/modelwrapper-strategy';\r\nimport { RequestSetting, ResponseData, ResponseSetting, objectIsResponseModel } from '../helpers/response';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\n\r\n/*Servicio con funcionalidad cliente servidor*/\r\nexport class ServiceManagerBase<TModel extends BaseObject>\r\n  extends ServiceBase\r\n  implements Partial<IServiceManagerBase<TModel>>\r\n{\r\n  private _state: ModelState = ModelState.Browse;\r\n  private _defaultModelValue: Partial<TModel>;\r\n  private _settingCanBeLoaded = true;\r\n  readonly MODEL_STATE = ModelState;\r\n  readonly CRUD_ACTION = CrudAction;\r\n  private readonly _instanceId: string;\r\n  private _requestWrapperProvider: RequestWrapperStrategy;\r\n\r\n  cacheData: CacheDataContainer;\r\n  identityPropertyName: keyof TModel | undefined;\r\n  resourceName: string | undefined;\r\n  router: Router;\r\n  relationships: ServiceRelationship<Partial<TModel>>;\r\n\r\n  loadEmitter = new EventEmitter();\r\n\r\n  emitters = {\r\n    add: new EventEmitter(),\r\n    added: new EventEmitter(),\r\n    edit: new EventEmitter(),\r\n    edited: new EventEmitter(),\r\n    delete: new EventEmitter(),\r\n    deleted: new EventEmitter(),\r\n    stateChange: new EventEmitter(),\r\n    cancel: new EventEmitter(),\r\n    requeryCompleted: new EventEmitter<Partial<TModel> | null>()\r\n  };\r\n\r\n  data: Partial<TModel>[] = new Array<Partial<TModel>>();\r\n  rowsPerPage = [10, 20, 50, 100, 200];\r\n  saveAndNew = false;\r\n  hasComponentManager = false;\r\n  activeNavigation = NavigationMode.Default;\r\n  routingUrl = '';\r\n  crudMode: 'server' | 'local' = 'server';\r\n  dataKeyModel = '__row__';\r\n\r\n  /**\r\n   *Especifica el lugar desde donde es invocado el ServiceManager y se ejecuta en el siguiente orden:\r\n   manager -> list: al hacer un refresh en el explorador desde el ListManager\r\n   manager -> form: al hacer un refresh en el explorador desde el FormManager\r\n   *\r\n   * @type {('manager' | 'list' | 'form')}\r\n   * @memberof ServiceManager\r\n   */\r\n  callerComponent = new CallerComponent();\r\n\r\n  /*\r\n    @saveAndKeep: boolean; para mantener el registro despues de ser guarado desde el modo de inserción o edición.\r\n    tiene mayor jerarquía que saveAndKeep: boolean.\r\n  */\r\n  saveAndKeep = false;\r\n  requeryOnEdit = true;\r\n  loadingOnAdd = false;\r\n  loadingOnEdit = false;\r\n  loadingOnDelete = false;\r\n  loadingOnRequery = false;\r\n  loadingOnGet = true;\r\n  // skipLoadingOnGetOnce = false;\r\n  skipValidationModelOnce = false;\r\n  identityPropertyType: DataType = DataType.Number;\r\n  deletionMode: DeletionMode = DeletionMode.Hard;\r\n  pushMode: PushMode = PushMode.Last;\r\n  requestSetting = new RequestSetting();\r\n  responseSetting = new ResponseSetting();\r\n  serverMethods = new ServerMethod();\r\n  showSelection = false;\r\n  currentSubject = new BehaviorSubject<Partial<TModel> | null>(null);\r\n  modelSubject = new BehaviorSubject<Partial<TModel> | null>(null);\r\n  deleteRequestClass: 'Identity' | 'Model' = 'Identity';\r\n\r\n  //TODO: puesto temporalmente\r\n  filter: IFilter = new Filter();\r\n\r\n  constructor(\r\n    resourceUrl: string | typeof BaseObject,\r\n    public modelType?: typeof BaseObject,\r\n    public pageResultType?: typeof BaseObject\r\n  ) {\r\n    super(resourceUrl as string);\r\n    //agregar un identificador unico para cada servicios\r\n    this._instanceId = Guid.newGuid().toString;\r\n    this.callerComponent.state = 'initializing';\r\n    this.callerComponent.host = 'service';\r\n\r\n    if (typeof resourceUrl !== 'string') {\r\n      this.pageResultType = modelType;\r\n      this.modelType = <typeof BaseObject>resourceUrl;\r\n    }\r\n\r\n    this._defaultModelValue = this.newModelInstance;\r\n\r\n    const __meta: IPropertyMetadata = (<any>this._defaultModelValue).metadata;\r\n\r\n    if (__meta) {\r\n      this.identityPropertyName = __meta.name as any;\r\n      this.identityPropertyType = __meta.type;\r\n    }\r\n\r\n    //agrega funcionalidad maestro-detalle al servicio\r\n    this.relationships = new ServiceRelationship(this);\r\n\r\n    this.setCurrent(this.getDefaultModel());\r\n    this.requestSetting.Page.Size = this.rowsPerPage[0];\r\n    this.cacheData = new CacheDataContainer(this);\r\n    this.router = appInjector().get(Router);\r\n    this._requestWrapperProvider = ServiceLocator.get(RequestWrapperStrategy);\r\n  }\r\n\r\n  set identityValue(value: number | string) {\r\n    // @ts-ignore\r\n    this.model[this.identityPropertyName] = value as any;\r\n  }\r\n\r\n  get identityValue(): number | string {\r\n    if (!this.identityPropertyName) throw Error(`identityPropertyName ${this.identityPropertyName}, no definido`);\r\n\r\n    // @ts-ignore\r\n    if (!isValidType(this.identityPropertyType, this.model[this.identityPropertyName]))\r\n      throw Error('El tipo de identity no es valido');\r\n\r\n    // @ts-ignore\r\n    return this.model[this.identityPropertyName] as any;\r\n  }\r\n\r\n  set current(value: Partial<TModel> | null) {\r\n    this.currentSubject.next(value ?? null);\r\n  }\r\n\r\n  get current(): Partial<TModel> | null {\r\n    return this.currentSubject.value;\r\n  }\r\n\r\n  set model(value: Partial<TModel> | null) {\r\n    this.modelSubject.next(value);\r\n  }\r\n\r\n  get model(): Partial<TModel> | null {\r\n    return this.modelSubject.value;\r\n  }\r\n\r\n  set skipValidationModel(value: boolean) {\r\n    this.skipValidationModelOnce = value;\r\n  }\r\n\r\n  get state(): ModelState {\r\n    return this._state;\r\n  }\r\n\r\n  get instanceId(): string {\r\n    return this._instanceId;\r\n  }\r\n\r\n  get isAdding() {\r\n    return this.state === this.MODEL_STATE.Add;\r\n  }\r\n\r\n  get isEditing() {\r\n    return this.state === this.MODEL_STATE.Edit;\r\n  }\r\n\r\n  /**\r\n   *Crea el objeto que se enviara al servidor. Dependiendo del estado de servicio\r\n   *validara si la peticion incluye informacion adicional.\r\n   *Se ejecuta siempre cuando el estado del servicio es add, edit, delete.\r\n   *\r\n   * @type {RequestExtra<TModel>}\r\n   * @memberof ServiceManagerBase\r\n   */\r\n  /* eslint-disable unused-imports/no-unused-vars */\r\n  protected requestWrapperStrategy = (model: any, wrapper: any) => wrapper;\r\n\r\n  /**\r\n   *Esta funcion facilitara el trabajo con el serviceManager<T>\r\n   sin la necesidad de suscribir en una clase hija. se ejecuta despues de\r\n   recibir la respuesta del servidor.\r\n   *\r\n   * @protected\r\n   * @param {ModelState} state\r\n   * @param {ResponseData} response\r\n   * @memberof ServiceManagerBase\r\n   */\r\n\r\n  /* eslint-disable unused-imports/no-unused-vars */\r\n  protected afterResponse(state: ModelState, response?: Partial<ResponseData<TModel>>) {}\r\n\r\n  protected updateSettings(responseSetting: Partial<ResponseSetting>) {\r\n    //ASIGNACION DEL MODELO POR DEFECTO PARA QUE SIRVA COMO PLANTILLA\r\n    //CADA VEZ QUE SE AGREGE UNO NUEVO\r\n    //logica no requerida ya que mas abajo se asigna todo el objeto a la variable local\r\n    //this.responseSetting.DefaultModel = responseSetting.DefaultModel || {};\r\n\r\n    //response.Setting.SecurityParam: SOLO TENDRA VALOR CUANDO SE ENVIA RequestSetting.LoadCRUD = true\r\n    if (responseSetting.SecurityParam) this.crudService.notifyCRUD(responseSetting.SecurityParam.CRUD);\r\n\r\n    //response.Setting.FilterStorage: SOLO TENDRA VALOR CUANDO SE ENVIA RequestSetting.EnableFilter = true\r\n    if (responseSetting.FilterStorage) {\r\n      //TODO:PENDIENTE DE IMPLEMENTACION\r\n    }\r\n\r\n    //response.Setting.CacheData: SOLO TENDRA VALOR SI SE RECIBE UN OBJECTO ResponseSetting.Setting.CacheData\r\n    if (responseSetting.CacheData && this.cacheData) {\r\n      //carga las listas para los select y otros\r\n      this.cacheData.update(responseSetting.CacheData);\r\n      //Para no mantener dos copias de CacheData en el cliente. Otra opción sería encapsular Setting.CacheData en this.CacheData\r\n      //pero no lo voy a complicar por ahora.\r\n      delete responseSetting.CacheData;\r\n    }\r\n\r\n    Object.assign(this.responseSetting, responseSetting);\r\n    this.requestSetting.Page.Size = this.rowsPerPage[0];\r\n\r\n    if (this.responseSetting.FilterStorage.length > 0) {\r\n      // @ts-ignore\r\n      this.filter = responseSetting?.FilterStorage[0];\r\n    }\r\n  }\r\n\r\n  protected updateModel(responseModel?: Partial<ResponseData<TModel>> | Partial<TModel>) {\r\n    if (typeof responseModel === 'object') {\r\n      const dataKey = {};\r\n      // @ts-ignore\r\n      dataKey[this.dataKeyModel] = Guid.newGuid().toString;\r\n\r\n      Object.assign(this.model, responseModel, dataKey);\r\n    } else {\r\n      //solo actualiza el identityPropertyValue\r\n      if (!this.identityPropertyName) throw Error(`identityPropertyName no definido`);\r\n\r\n      this.identityValue = responseModel as any;\r\n    }\r\n  }\r\n\r\n  setOptions(options: Partial<IServiceOptions<TModel>>) {\r\n    if (options.cacheDataProvider) {\r\n      this.cacheData.providerOptions = options.cacheDataProvider;\r\n\r\n      if (!this.cacheData.providerOptions.disableInitialization) this.cacheData.init();\r\n\r\n      delete options.cacheDataProvider;\r\n    }\r\n\r\n    /*turn on/off filter in backend*/\r\n    if (options.enableFilter) {\r\n      this.requestSetting.EnableFilter = options.enableFilter;\r\n      delete options.enableFilter;\r\n    }\r\n\r\n    if (options.loadCRUD) {\r\n      this.requestSetting.LoadCRUD = options.loadCRUD;\r\n      delete options.loadCRUD;\r\n    }\r\n\r\n    Object.assign(this, options);\r\n  }\r\n\r\n  get newModelInstance(): Partial<TModel> {\r\n    return this.modelType ? new this.modelType() : {};\r\n  }\r\n\r\n  getDefaultModel(externalModel?: Partial<TModel>): Partial<TModel> {\r\n    //creamos una nueva version del valor por defecto. Esta operacion no copia la metadata\r\n    const model = Object.assign(\r\n      {},\r\n      this.newModelInstance,\r\n      this.responseSetting.DefaultModel,\r\n      (this._defaultModelValue as any).__proto__,\r\n      externalModel\r\n    );\r\n\r\n    //el decorador @Key asigna el valor por defecto del modelo pero\r\n    //en caso de que el decorador no se este siendo usado entoces\r\n    //usamos el tipo de datos asignado manualmente para generar el valor por defecto\r\n    if (!this.identityPropertyName || model[this.identityPropertyName]) return model;\r\n\r\n    /*\r\n         Modificado por: Alexis castro abreu 6/7/2019 5:11\r\n         -------------------------------------------------------------------------------\r\n         Un identity property solo puede soportar tipos de datos que se puedan\r\n         utilizar como campos unicos en una base de datos o cualquier otro medio\r\n         de almacenamiento un bool, date u otro cualquiera no deberia ser soportado.\r\n         en el caso del bool solo permitiria dos registros. en otros faros es preferible\r\n         convertir los formatos a string como en els caso de un date o guid.\r\n     */\r\n    getDefaultValue(this.identityPropertyType);\r\n\r\n    return model;\r\n  }\r\n\r\n  getSubscription(\r\n    requestSetting: Partial<RequestSetting>,\r\n    callback?: (response: Partial<ResponseData<Array<TModel>>>) => void\r\n  ) {\r\n    if (this.relationships.isMapped()) requestSetting.Filters?.concat(this.relationships.getMappedFilters());\r\n\r\n    this.postMethod(this.serverMethods.GET, requestSetting, callback);\r\n  }\r\n\r\n  deleteSubscription(callback?: (response: Partial<ResponseData<TModel>>) => void) {\r\n    if (this.deleteRequestClass === 'Model') {\r\n      this.postMethod(this.serverMethods.DELETE, this.current, callback);\r\n    } else {\r\n      const identity = new IdentityValue(`${this.identityPropertyName}`, this.identityValue);\r\n      const IdentityValueAndExtra = this._requestWrapperProvider.execute(\r\n        identity,\r\n        new RequestWrapper(identity),\r\n        'delete',\r\n        this.requestWrapperStrategy\r\n      );\r\n\r\n      this.postMethod(this.serverMethods.DELETE, IdentityValueAndExtra, callback);\r\n    }\r\n  }\r\n\r\n  addSubscription(callback?: (response: Partial<ResponseData<TModel>>) => void) {\r\n    const modelAndExtra = this._requestWrapperProvider.execute(\r\n      this.model,\r\n      new RequestWrapper(this.model),\r\n      'add',\r\n      this.requestWrapperStrategy\r\n    );\r\n\r\n    this.postMethod(this.serverMethods.ADD, modelAndExtra, callback);\r\n  }\r\n\r\n  editSubscription(callback?: (response: Partial<ResponseData<TModel>>) => void) {\r\n    const modelAndExtra = this._requestWrapperProvider.execute(\r\n      this.model,\r\n      new RequestWrapper(this.model),\r\n      'edit',\r\n      this.requestWrapperStrategy\r\n    );\r\n\r\n    this.postMethod(this.serverMethods.EDIT, modelAndExtra, callback);\r\n  }\r\n\r\n  getSettingSubscription(\r\n    requestSetting?: Partial<RequestSetting>,\r\n    callback?: (response: Partial<ResponseData<TModel>>) => void\r\n  ) {\r\n    this.postMethod(this.serverMethods.GET_SETTING, requestSetting, callback);\r\n  }\r\n\r\n  requerySubscription(identity: IdentityValue, callback?: (response: Partial<ResponseData<TModel>>) => void) {\r\n    const IdentityValueAndExtra = this._requestWrapperProvider.execute(\r\n      identity,\r\n      new RequestWrapper(identity),\r\n      'requery',\r\n      this.requestWrapperStrategy\r\n    );\r\n\r\n    this.postMethod(this.serverMethods.REQUERY, IdentityValueAndExtra, callback);\r\n  }\r\n\r\n  setModalFilter() {\r\n    this.requestSetting.Filters = [];\r\n    this.requestSetting.Filters.push(this.filter);\r\n  }\r\n\r\n  set setDataSource(data: Partial<TModel>[] | undefined) {\r\n    let curr: any,\r\n      currId: any,\r\n      currIndex = -1;\r\n\r\n    if (!this._settingCanBeLoaded && this.data.length > 0 && this.current) {\r\n      // @ts-ignore\r\n      currId = this.current[this.identityPropertyName];\r\n      currIndex = this.data.indexOf(this.current);\r\n    }\r\n\r\n    this.data = data ?? [];\r\n\r\n    if (currId) {\r\n      // @ts-ignore\r\n      curr = this.data.find(c => c[this.identityPropertyName] === currId);\r\n\r\n      if (!curr && currIndex !== -1 && this.data.length > currIndex) curr = this.data[currIndex];\r\n    } else {\r\n      if (this.showSelection) curr = this.data.length > 0 ? this.data[0] : undefined;\r\n    }\r\n\r\n    this.current = curr;\r\n  }\r\n\r\n  load(requestSetting?: Partial<RequestSetting>) {\r\n    if (this.callerComponent.host !== 'form') this.stateChange(ModelState.Loading);\r\n\r\n    requestSetting = { ...this.requestSetting, ...requestSetting };\r\n\r\n    if (this.cacheData && this.cacheData.providers.size > 0) {\r\n      this.cacheData.updateFilters();\r\n      requestSetting.CacheDataProviders = this.cacheData.getCacheDataRequest();\r\n    }\r\n\r\n    this.configService.turnOffOnceBlocker = !this.loadingOnGet;\r\n\r\n    // if (this.skipLoadingOnGetOnce) {\r\n    //   this.configService.turnOffOnceBlocker = true;\r\n    //   this.skipLoadingOnGet = false;\r\n    // }\r\n\r\n    this.verifyBlocker();\r\n    this.getSubscription(requestSetting, (response: Partial<ResponseData<Array<TModel>>>) => {\r\n      /**\r\n       YA QUE PUEDO ULTILIZAR EL SERVICIO SOLO PARA MANEJAR CRUD SIMPLE\r\n       ENTONCES VALIDO QUE SI NECESITO ALGUN OBJECT DE SETTING ESTE EXISTA\r\n       */\r\n\r\n      this.setDataSource = response.DataSource;\r\n\r\n      const { Setting } = response.Extensions;\r\n\r\n      if (!Setting && (this.requestSetting.EnableFilter || this.requestSetting.LoadCRUD)) {\r\n        throw Error(\r\n          'Setting object is null and the current configuration needs an instance of it. If you do not want to use the Object setting, disable the RequestSetting.EnableFilter and RequestSetting.Load options'\r\n        );\r\n      }\r\n\r\n      /*\r\n\t\t\tCARGA LA CONFIGURACION SOLO UNA VEZ.\r\n\t\t\t*/\r\n      if (this._settingCanBeLoaded && Setting) {\r\n        this._settingCanBeLoaded = false;\r\n\r\n        this.updateSettings(Setting);\r\n        // //ASIGNACION DEL MODELO POR DEFECTO PARA QUE SIRVA COMO PLANTILLA\r\n        // //CADA VEZ QUE SE AGREGE UNO NUEVO\r\n        // if (response.Setting.DefaultModel) {\r\n        //   response.Setting.DefaultModel = response.Setting.DefaultModel;\r\n        // }\r\n\r\n        // //response.Setting.SecurityParam: SOLO TENDRA VALOR CUANDO SE ENVIA RequestSetting.LoadCRUD = true\r\n        // if (response.Setting.SecurityParam) {\r\n        //   this.crudService.notifyCRUD(response.Setting.SecurityParam.CRUD);\r\n        // }\r\n\r\n        // //response.Setting.FilterStorage: SOLO TENDRA VALOR CUANDO SE ENVIA RequestSetting.EnableFilter = true\r\n        // if (response.Setting.FilterStorage) {\r\n        //   //TODO:PENDIENTE DE IMPLEMENTACION\r\n        // }\r\n\r\n        // //response.Setting.CacheData: SOLO TENDRA VALOR SI SE RECIBE UN OBJECTO ResponseSetting.Setting.CacheData\r\n        // if (response.Setting.CacheData && this.cacheData) {\r\n        //   //carga las listas para los select y otros\r\n        //   this.cacheData.update(response.Setting.CacheData);\r\n        //   //Para no mantener dos copias de CacheData en el cliente. Otra opción sería encapsular Setting.CacheData en this.CacheData\r\n        //   //pero no lo voy a complicar por ahora.\r\n        //   delete response.Setting.CacheData;\r\n        // }\r\n\r\n        // Object.assign(this.responseSetting, response.Setting);\r\n        // this.requestSetting.Page.Size = this.rowsPerPage[0];\r\n\r\n        // if (this.responseSetting.FilterStorage.length > 0) {\r\n        //   this.Filter = response.Setting.FilterStorage[0];\r\n        // }\r\n      }\r\n\r\n      this.requestSetting.Page.RowCount = response?.Extensions?.TotalItems;\r\n\r\n      this.loadEmitter.emit({\r\n        response: response,\r\n        totalItems: this.requestSetting.Page.RowCount,\r\n        instanceId: this._instanceId\r\n      });\r\n\r\n      if (this.callerComponent.host !== 'form') this.stateChange(ModelState.Loaded, ModelState.Browse);\r\n\r\n      // if (this.responseSetting.FilterStorage.length > 0) {\r\n      //   this.Filter = response.Setting.FilterStorage[0];\r\n      // }\r\n    });\r\n  }\r\n\r\n  isModelAttached(model: Partial<TModel>): boolean {\r\n    if (this.skipValidationModelOnce) {\r\n      this.skipValidationModel = false;\r\n      return true;\r\n    }\r\n    // @ts-ignore\r\n    const index = this.data.findIndex(a => a[this.identityPropertyName] === model[this.identityPropertyName]);\r\n\r\n    return model && index !== -1;\r\n  }\r\n\r\n  add(model?: Partial<TModel>) {\r\n    if (!model) model = this.getDefaultModel(model);\r\n\r\n    this.stateChange(ModelState.Add);\r\n    this.setCurrent(model, (args: any) => {\r\n      this.emitters.add.emit(args);\r\n    });\r\n\r\n    this.busy = false;\r\n  }\r\n\r\n  edit(model: Partial<TModel>, afterSetCurrent?: Function) {\r\n    // if (!this.isModelAttached(model))\r\n    //   throw Error(\"Model is not part of service data\");\r\n\r\n    this.stateChange(ModelState.Edit);\r\n    this.setCurrent(model, (args: any) => {\r\n      let stop = false;\r\n\r\n      if (afterSetCurrent) stop = afterSetCurrent(args);\r\n\r\n      if (stop) return;\r\n\r\n      if (!this.hasComponentManager || (this.hasComponentManager && this.callerComponent.host !== 'form'))\r\n        this.emitters.edit.emit(args);\r\n    });\r\n\r\n    this.busy = false;\r\n  }\r\n\r\n  delete(model: Partial<TModel>) {\r\n    if (!this.isModelAttached(model)) throw Error('Model is not part of service data');\r\n\r\n    let canEmit = false;\r\n\r\n    switch (this.deletionMode) {\r\n      case DeletionMode.Hard:\r\n        this.stateChange(ModelState.Delete);\r\n        canEmit = true;\r\n        break;\r\n\r\n      case DeletionMode.Soft:\r\n        canEmit = false;\r\n        break;\r\n    }\r\n\r\n    this.setCurrent(model, (args: any) => {\r\n      if (canEmit) this.emitters.delete.emit(args);\r\n      else this.erase(args.model);\r\n    });\r\n\r\n    this.busy = false;\r\n  }\r\n\r\n  erase(model: Partial<TModel> | null) {\r\n    if (!model) return;\r\n\r\n    const rowcount = this.data.length;\r\n    let index = this.data.indexOf(model);\r\n\r\n    this.data?.splice(index, 1);\r\n    // @ts-ignore\r\n    this.requestSetting.Page.RowCount -= 1;\r\n    index--;\r\n\r\n    if (rowcount === this.data.length) throw Error('An error occurred updating the data list');\r\n\r\n    //ahora se asigna el current\r\n    this.current = index !== -1 ? this.data[index] : null;\r\n    this.stateChange(ModelState.Deleted, ModelState.Browse);\r\n\r\n    this.emitters.deleted.emit({\r\n      model: model,\r\n      hardDeleted: true,\r\n      instanceId: this._instanceId\r\n    });\r\n  }\r\n\r\n  localPost(modelOrResponse?: Partial<ResponseData<TModel>> | Partial<TModel> | null) {\r\n    if (!modelOrResponse) throw Error('Unexpected result');\r\n\r\n    let response: Partial<ResponseData<TModel>> | undefined;\r\n\r\n    if (objectIsResponseModel(modelOrResponse)) {\r\n      response = modelOrResponse;\r\n      this.updateModel(modelOrResponse.DataSource);\r\n    } else {\r\n      this.updateModel(modelOrResponse);\r\n    }\r\n\r\n    switch (this.state) {\r\n      case ModelState.Add:\r\n        this.push(this.model);\r\n        this.updateCurrent(this.model);\r\n        this.stateChange(this.saveAndKeep ? ModelState.Edit : ModelState.Added, ModelState.Browse);\r\n        // @ts-ignore\r\n        this.requestSetting.Page.RowCount += 1;\r\n        //\r\n        this.afterResponse(this.state, response);\r\n        this.emitters.added.emit({\r\n          model: this.current,\r\n          response: undefined,\r\n          instanceId: this._instanceId\r\n        });\r\n\r\n        break;\r\n\r\n      case ModelState.Edit:\r\n        this.updateCurrent(this.model);\r\n        this.stateChange(this.saveAndKeep ? ModelState.Edit : ModelState.Edited, ModelState.Browse);\r\n        //\r\n        this.afterResponse(this.state, response);\r\n        this.emitters.edited.emit({\r\n          model: this.current,\r\n          response: undefined,\r\n          instanceId: this._instanceId\r\n        });\r\n        break;\r\n\r\n      case ModelState.Delete:\r\n        this.erase(this.current);\r\n        break;\r\n\r\n      case ModelState.Loading:\r\n        break;\r\n    }\r\n  }\r\n\r\n  post() {\r\n    this.busy = true;\r\n    if (this.relationships.isMapped()) this.relationships.bindMappedProperties();\r\n\r\n    if (this.relationships.isMapped()) this.relationships.bindMappedProperties();\r\n\r\n    if (this.crudMode === 'local') {\r\n      this.localPost(this.model);\r\n      return;\r\n    }\r\n\r\n    this.verifyBlocker();\r\n\r\n    switch (this.state) {\r\n      case ModelState.Add:\r\n        this.configService.turnOffOnceBlocker = !this.loadingOnAdd;\r\n        this.addSubscription(response => this.localPost(response));\r\n        break;\r\n\r\n      case ModelState.Edit:\r\n        this.configService.turnOffOnceBlocker = !this.loadingOnEdit;\r\n        this.editSubscription(response => this.localPost(response));\r\n        break;\r\n\r\n      case ModelState.Delete:\r\n        this.configService.turnOffOnceBlocker = !this.loadingOnDelete;\r\n        this.deleteSubscription(response => this.localPost(response));\r\n        break;\r\n\r\n      default:\r\n        throw Error('Invalid post state');\r\n    }\r\n  }\r\n\r\n  cancel() {\r\n    this.emitters.cancel.emit({\r\n      cancel: true,\r\n      instanceId: this._instanceId\r\n    });\r\n\r\n    this.stateChange(ModelState.Canceled, ModelState.Browse);\r\n    this.saveAndNew = false;\r\n  }\r\n\r\n  refresh() {\r\n    if (!this.canMakeRequestToServer) return;\r\n\r\n    this._settingCanBeLoaded = true;\r\n    this.load();\r\n  }\r\n\r\n  setCurrent(currentModel: Partial<TModel>, callback?: Function) {\r\n    this.current = currentModel;\r\n    this.model = Object.assign(this.newModelInstance, currentModel);\r\n\r\n    if (\r\n      this.requeryOnEdit &&\r\n      this._state === ModelState.Edit &&\r\n      typeof this.resourceUrl === 'string' &&\r\n      this.identityPropertyName &&\r\n      this.crudMode === 'server'\r\n    ) {\r\n      this.configService.turnOffOnceBlocker = !this.loadingOnRequery;\r\n\r\n      this.requerySubscription(new IdentityValue(this.identityPropertyName as any, this.identityValue), response => {\r\n        if (!response.DataSource) {\r\n          const msg = 'La consulta no arrojó ningun resultado';\r\n\r\n          this.onError.emit({\r\n            title: 'Error',\r\n            message: msg\r\n          });\r\n\r\n          if (this.hasComponentManager && this.routingUrl !== '') this.router.navigate([this.routingUrl]);\r\n\r\n          return;\r\n        }\r\n\r\n        this.updateModel(response.DataSource);\r\n        this.updateCurrent(this.model);\r\n\r\n        this.emitters.requeryCompleted.emit(this.model);\r\n\r\n        if (callback) {\r\n          callback({\r\n            model: this.model,\r\n            response: response,\r\n            instanceId: this._instanceId\r\n          });\r\n        }\r\n      });\r\n    } else {\r\n      if (callback) {\r\n        callback({\r\n          model: this.model,\r\n          response: undefined,\r\n          instanceId: this._instanceId\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  updateCurrent(currentModel: Partial<TModel> | null) {\r\n    if (!this.current) this.current = this.newModelInstance;\r\n\r\n    Object.assign(this.current, currentModel);\r\n  }\r\n\r\n  stateChange(state: ModelState, curState?: ModelState) {\r\n    if (state === this.state) return;\r\n\r\n    if (!curState) curState = state;\r\n\r\n    this._state = curState;\r\n\r\n    this.emitters.stateChange.emit({\r\n      state: state,\r\n      current: curState,\r\n      modified: state === ModelState.Added || state === ModelState.Edited,\r\n      instanceId: this._instanceId\r\n    });\r\n  }\r\n\r\n  afterPush() {}\r\n\r\n  push(current: Partial<TModel> | null): Partial<TModel> | null {\r\n    if (!current) return null;\r\n\r\n    let index = -1;\r\n\r\n    switch (this.pushMode) {\r\n      case PushMode.First:\r\n        this.data?.splice(0, 0, current);\r\n        index = 0;\r\n\r\n        if (this.data.length > this.requestSetting.Page.Size) this.data.pop();\r\n\r\n        break;\r\n\r\n      case PushMode.Current:\r\n        throw Error('PushMode.Current NO IMPLEMENTADO');\r\n\r\n      case PushMode.Last:\r\n        if (this.data.length < this.requestSetting.Page.Size) {\r\n          index = this.data.push(current) - 1;\r\n        } else {\r\n          index = this.data.length - 1;\r\n          this.data[index] = current;\r\n        }\r\n        break;\r\n    }\r\n    this.afterPush();\r\n    return this.data[index];\r\n  }\r\n\r\n  trackByFn(model: Partial<TModel>) {\r\n    // @ts-ignore\r\n    return model[this.identityPropertyName];\r\n  }\r\n\r\n  updatePageSize(size: number) {\r\n    const size_ = this.rowsPerPage.find((i: number) => i === size);\r\n\r\n    if (size_) throw Error('Error: size is not in row page list');\r\n\r\n    this.requestSetting.Page.Size = size;\r\n  }\r\n\r\n  loadSettings(requestSettings?: Partial<RequestSetting>) {\r\n    requestSettings = requestSettings || this.requestSetting;\r\n    this.getSettingSubscription(requestSettings, ({ DataSource }) => {\r\n      this.updateSettings(DataSource as any);\r\n    });\r\n  }\r\n}\r\n\r\n/**\r\n *\r\n *\r\n * @export\r\n * @class ServiceManager\r\n * @extends {ServiceManagerBase<TModel, TModel>}\r\n * @template TModel\r\n */\r\nexport class ServiceManager<TModel> extends ServiceManagerBase<TModel> {\r\n  constructor(resourceUrl: string | typeof BaseObject, public override modelType?: typeof BaseObject) {\r\n    super(resourceUrl, modelType, modelType);\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface CurrencyMaskConfig {\r\n  align: string;\r\n  allowNegative: boolean;\r\n  decimal: string;\r\n  precision: number;\r\n  prefix: string;\r\n  suffix: string;\r\n  thousands: string;\r\n}\r\n\r\nexport let CURRENCY_MASK_CONFIG = new InjectionToken<CurrencyMaskConfig>('currency.mask.config');\r\n","export class CurrencyMaskInputManager {\r\n  private _storedRawValue: string | undefined;\r\n\r\n  constructor(private htmlInputElement: any) {}\r\n\r\n  setCursorAt(position: number): void {\r\n    if (this.htmlInputElement.setSelectionRange) {\r\n      this.htmlInputElement.focus();\r\n      this.htmlInputElement.setSelectionRange(position, position);\r\n    } else if (this.htmlInputElement.createTextRange) {\r\n      const textRange = this.htmlInputElement.createTextRange();\r\n      textRange.collapse(true);\r\n      textRange.moveEnd('character', position);\r\n      textRange.moveStart('character', position);\r\n      textRange.select();\r\n    }\r\n  }\r\n\r\n  updateValueAndCursor(newRawValue: string, oldLength: number, selectionStart: number): void {\r\n    this.rawValue = newRawValue;\r\n    const newLength = newRawValue.length;\r\n    selectionStart = selectionStart - (oldLength - newLength);\r\n    this.setCursorAt(selectionStart);\r\n  }\r\n\r\n  get canInputMoreNumbers(): boolean {\r\n    const haventReachedMaxLength = !(\r\n      this.rawValue.length >= this.htmlInputElement.maxLength && this.htmlInputElement.maxLength >= 0\r\n    );\r\n    const selectionStart = this.inputSelection.selectionStart;\r\n    const selectionEnd = this.inputSelection.selectionEnd;\r\n    const haveNumberSelected = !!(\r\n      selectionStart !== selectionEnd && this.htmlInputElement.value.substring(selectionStart, selectionEnd).match(/\\d/)\r\n    );\r\n    const startWithZero = this.htmlInputElement.value.substring(0, 1) === '0';\r\n    return haventReachedMaxLength || haveNumberSelected || startWithZero;\r\n  }\r\n\r\n  get inputSelection(): any {\r\n    let selectionStart = 0;\r\n    let selectionEnd = 0;\r\n\r\n    if (\r\n      typeof this.htmlInputElement.selectionStart === 'number' &&\r\n      typeof this.htmlInputElement.selectionEnd === 'number'\r\n    ) {\r\n      selectionStart = this.htmlInputElement.selectionStart;\r\n      selectionEnd = this.htmlInputElement.selectionEnd;\r\n    } else {\r\n      const range = (document.getSelection() as any).baseNode;\r\n\r\n      if (range && range.firstChild === this.htmlInputElement) {\r\n        const lenght = this.htmlInputElement.value.length;\r\n        const normalizedValue = this.htmlInputElement.value.replace(/\\r\\n/g, '\\n');\r\n        const startRange = this.htmlInputElement.createTextRange();\r\n        const endRange = this.htmlInputElement.createTextRange();\r\n        endRange.collapse(false);\r\n\r\n        if (startRange.compareEndPoints('StartToEnd', endRange) > -1) {\r\n          selectionStart = selectionEnd = lenght;\r\n        } else {\r\n          selectionStart = -startRange.moveStart('character', -lenght);\r\n          selectionStart += normalizedValue.slice(0, selectionStart).split('\\n').length - 1;\r\n\r\n          if (startRange.compareEndPoints('EndToEnd', endRange) > -1) {\r\n            selectionEnd = lenght;\r\n          } else {\r\n            selectionEnd = -startRange.moveEnd('character', -lenght);\r\n            selectionEnd += normalizedValue.slice(0, selectionEnd).split('\\n').length - 1;\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return {\r\n      selectionStart: selectionStart,\r\n      selectionEnd: selectionEnd\r\n    };\r\n  }\r\n\r\n  get rawValue(): string {\r\n    return this.htmlInputElement && this.htmlInputElement.value;\r\n  }\r\n\r\n  set rawValue(value: string | undefined) {\r\n    this._storedRawValue = value;\r\n\r\n    if (this.htmlInputElement) {\r\n      this.htmlInputElement.value = value;\r\n    }\r\n  }\r\n\r\n  get storedRawValue(): string | undefined {\r\n    return this._storedRawValue;\r\n  }\r\n}\r\n","import { CurrencyMaskInputManager } from './currency-mask.input.manager';\r\n\r\nexport class CurrencyMaskInputService {\r\n  private inputManager: CurrencyMaskInputManager;\r\n\r\n  constructor(private htmlInputElement: any, private options: any) {\r\n    this.inputManager = new CurrencyMaskInputManager(htmlInputElement);\r\n  }\r\n\r\n  addNumber(keyCode: number): void {\r\n    if (!this.rawValue) {\r\n      this.rawValue = this.applyMask(false, '0');\r\n    }\r\n\r\n    const keyChar = String.fromCharCode(keyCode);\r\n    const selectionStart = this.inputSelection.selectionStart;\r\n    const selectionEnd = this.inputSelection.selectionEnd;\r\n    this.rawValue =\r\n      this.rawValue.substring(0, selectionStart) +\r\n      keyChar +\r\n      this.rawValue.substring(selectionEnd, this.rawValue.length);\r\n    this.updateFieldValue(selectionStart + 1);\r\n  }\r\n\r\n  applyMask(isNumber: boolean, rawValue: string): string {\r\n    const { allowNegative, decimal, precision, prefix, suffix, thousands } = this.options;\r\n    rawValue = isNumber ? new Number(rawValue).toFixed(precision) : rawValue;\r\n    const onlyNumbers = rawValue.replace(/[^0-9]/g, '');\r\n\r\n    if (!onlyNumbers) {\r\n      return '';\r\n    }\r\n\r\n    let integerPart = onlyNumbers\r\n      .slice(0, onlyNumbers.length - precision)\r\n      .replace(/^0*/g, '')\r\n      .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousands);\r\n\r\n    if (integerPart === '') {\r\n      integerPart = '0';\r\n    }\r\n\r\n    let newRawValue = integerPart;\r\n    let decimalPart = onlyNumbers.slice(onlyNumbers.length - precision);\r\n\r\n    if (precision > 0) {\r\n      decimalPart = '0'.repeat(precision - decimalPart.length) + decimalPart;\r\n      newRawValue += decimal + decimalPart;\r\n    }\r\n\r\n    const isZero = parseInt(integerPart) === 0 && (parseInt(decimalPart) === 0 || decimalPart === '');\r\n    const operator = rawValue.indexOf('-') > -1 && allowNegative && !isZero ? '-' : '';\r\n    return operator + prefix + newRawValue + suffix;\r\n  }\r\n\r\n  clearMask(rawValue: string): number | null {\r\n    if (!rawValue || rawValue === '') return null;\r\n\r\n    let value = rawValue.replace(this.options.prefix, '').replace(this.options.suffix, '');\r\n\r\n    if (this.options.thousands) {\r\n      value = value.replace(new RegExp('\\\\' + this.options.thousands, 'g'), '');\r\n    }\r\n\r\n    if (this.options.decimal) {\r\n      value = value.replace(this.options.decimal, '.');\r\n    }\r\n\r\n    return parseFloat(value);\r\n  }\r\n\r\n  changeToNegative(): void {\r\n    if (this.options.allowNegative && this.rawValue !== '' && this.rawValue.charAt(0) !== '-' && this.value !== 0) {\r\n      const selectionStart = this.inputSelection.selectionStart;\r\n      this.rawValue = '-' + this.rawValue;\r\n      this.updateFieldValue(selectionStart + 1);\r\n    }\r\n  }\r\n\r\n  changeToPositive(): void {\r\n    const selectionStart = this.inputSelection.selectionStart;\r\n    this.rawValue = this.rawValue.replace('-', '');\r\n    this.updateFieldValue(selectionStart - 1);\r\n  }\r\n\r\n  fixCursorPosition(forceToEndPosition?: boolean): void {\r\n    const currentCursorPosition = this.inputSelection.selectionStart;\r\n\r\n    //if the current cursor position is after the number end position, it is moved to the end of the number, ignoring the prefix or suffix. this behavior can be forced with forceToEndPosition flag\r\n    if (currentCursorPosition > this.getRawValueWithoutSuffixEndPosition() || forceToEndPosition) {\r\n      this.inputManager.setCursorAt(this.getRawValueWithoutSuffixEndPosition());\r\n      //if the current cursor position is before the number start position, it is moved to the start of the number, ignoring the prefix or suffix\r\n    } else if (currentCursorPosition < this.getRawValueWithoutPrefixStartPosition()) {\r\n      this.inputManager.setCursorAt(this.getRawValueWithoutPrefixStartPosition());\r\n    }\r\n  }\r\n\r\n  getRawValueWithoutSuffixEndPosition(): number {\r\n    return this.rawValue.length - this.options.suffix.length;\r\n  }\r\n\r\n  getRawValueWithoutPrefixStartPosition(): number {\r\n    return this.value && this.value < 0 ? this.options.prefix.length + 1 : this.options.prefix.length;\r\n  }\r\n\r\n  removeNumber(keyCode: number): void {\r\n    const { decimal, thousands } = this.options;\r\n    let selectionEnd = this.inputSelection.selectionEnd;\r\n    let selectionStart = this.inputSelection.selectionStart;\r\n\r\n    if (selectionStart > this.rawValue.length - this.options.suffix.length) {\r\n      selectionEnd = this.rawValue.length - this.options.suffix.length;\r\n      selectionStart = this.rawValue.length - this.options.suffix.length;\r\n    }\r\n\r\n    //there is no selection\r\n    if (selectionEnd === selectionStart) {\r\n      //delete key and the target digit is a number\r\n      if (\r\n        (keyCode === 46 || keyCode === 63272) &&\r\n        /^\\d+$/.test(this.rawValue.substring(selectionStart, selectionEnd + 1))\r\n      ) {\r\n        selectionEnd = selectionEnd + 1;\r\n      }\r\n\r\n      //delete key and the target digit is the decimal or thousands divider\r\n      if (\r\n        (keyCode === 46 || keyCode === 63272) &&\r\n        (this.rawValue.substring(selectionStart, selectionEnd + 1) === decimal ||\r\n          this.rawValue.substring(selectionStart, selectionEnd + 1) == thousands)\r\n      ) {\r\n        selectionEnd = selectionEnd + 2;\r\n        selectionStart = selectionStart + 1;\r\n      }\r\n\r\n      //backspace key and the target digit is a number\r\n      if (keyCode === 8 && /^\\d+$/.test(this.rawValue.substring(selectionStart - 1, selectionEnd))) {\r\n        selectionStart = selectionStart - 1;\r\n      }\r\n\r\n      //backspace key and the target digit is the decimal or thousands divider\r\n      if (\r\n        keyCode === 8 &&\r\n        (this.rawValue.substring(selectionStart - 1, selectionEnd) === decimal ||\r\n          this.rawValue.substring(selectionStart - 1, selectionEnd) == thousands)\r\n      ) {\r\n        selectionStart = selectionStart - 2;\r\n        selectionEnd = selectionEnd - 1;\r\n      }\r\n    }\r\n\r\n    this.rawValue =\r\n      this.rawValue.substring(0, selectionStart) + this.rawValue.substring(selectionEnd, this.rawValue.length);\r\n    this.updateFieldValue(selectionStart);\r\n  }\r\n\r\n  updateFieldValue(selectionStart?: number): void {\r\n    const newRawValue = this.applyMask(false, this.rawValue || '');\r\n    selectionStart = !selectionStart ? this.rawValue.length : selectionStart;\r\n    this.inputManager.updateValueAndCursor(newRawValue, this.rawValue.length, selectionStart);\r\n  }\r\n\r\n  updateOptions(options: any): void {\r\n    const value = this.value;\r\n    this.options = options;\r\n    this.value = value;\r\n  }\r\n\r\n  get canInputMoreNumbers(): boolean {\r\n    return this.inputManager.canInputMoreNumbers;\r\n  }\r\n\r\n  get inputSelection(): any {\r\n    return this.inputManager.inputSelection;\r\n  }\r\n\r\n  get rawValue(): string {\r\n    return this.inputManager.rawValue;\r\n  }\r\n\r\n  set rawValue(value: string | undefined) {\r\n    this.inputManager.rawValue = value;\r\n  }\r\n\r\n  get storedRawValue(): string | undefined {\r\n    return this.inputManager.storedRawValue;\r\n  }\r\n\r\n  get value(): number | null {\r\n    return this.clearMask(this.rawValue);\r\n  }\r\n\r\n  set value(value: number | null) {\r\n    this.rawValue = this.applyMask(true, '' + value);\r\n  }\r\n}\r\n","import { CurrencyMaskInputService } from './currency-mask.input.service';\r\n\r\nexport class CurrencyMaskInputHandler {\r\n  private inputService: CurrencyMaskInputService;\r\n  private onModelChange: Function | undefined;\r\n  private onModelTouched: Function | undefined;\r\n  private readonly htmlInputElement: HTMLInputElement;\r\n\r\n  constructor(htmlInputElement: HTMLInputElement, options: any) {\r\n    this.inputService = new CurrencyMaskInputService(htmlInputElement, options);\r\n    this.htmlInputElement = htmlInputElement;\r\n  }\r\n\r\n  handleClick(event: any, chromeAndroid: boolean): void {\r\n    const selectionRangeLength = Math.abs(\r\n      this.inputService.inputSelection.selectionEnd - this.inputService.inputSelection.selectionStart\r\n    );\r\n\r\n    //if there is no selection and the value is not null, the cursor position will be fixed. if the browser is chrome on android, the cursor will go to the end of the number.\r\n    if (selectionRangeLength === 0 && !isNaN(this.inputService.value as number)) {\r\n      this.inputService.fixCursorPosition(chromeAndroid);\r\n    }\r\n  }\r\n\r\n  handleCut(): void {\r\n    if (this.isReadOnly()) {\r\n      return;\r\n    }\r\n\r\n    setTimeout(() => {\r\n      this.inputService.updateFieldValue();\r\n      this.setValue = this.inputService.value;\r\n\r\n      if (this.onModelChange) this.onModelChange(this.inputService.value);\r\n    }, 0);\r\n  }\r\n\r\n  handleInput(event: any): void {\r\n    if (this.isReadOnly()) {\r\n      return;\r\n    }\r\n\r\n    const keyCode = CurrencyMaskInputHandler.getNewKeyCode(\r\n      this.inputService.storedRawValue,\r\n      this.inputService.rawValue\r\n    ) as number;\r\n    const rawValueLength = this.inputService.rawValue.length;\r\n    const rawValueSelectionEnd = this.inputService.inputSelection.selectionEnd;\r\n    const rawValueWithoutSuffixEndPosition = this.inputService.getRawValueWithoutSuffixEndPosition();\r\n    const storedRawValueLength = this.inputService.storedRawValue?.length;\r\n    this.inputService.rawValue = this.inputService.storedRawValue;\r\n\r\n    if (\r\n      (rawValueSelectionEnd !== rawValueWithoutSuffixEndPosition ||\r\n        (storedRawValueLength && Math.abs(rawValueLength - storedRawValueLength) !== 1)) &&\r\n      storedRawValueLength !== 0\r\n    ) {\r\n      this.setCursorPosition(event);\r\n      return;\r\n    }\r\n\r\n    if (storedRawValueLength && rawValueLength < storedRawValueLength) {\r\n      if (this.inputService.value !== 0) {\r\n        this.inputService.removeNumber(8);\r\n      } else {\r\n        this.setValue = null;\r\n      }\r\n    }\r\n\r\n    if (storedRawValueLength && rawValueLength > storedRawValueLength) {\r\n      switch (keyCode) {\r\n        case 43:\r\n          this.inputService.changeToPositive();\r\n          break;\r\n        case 45:\r\n          this.inputService.changeToNegative();\r\n          break;\r\n        default:\r\n          if (\r\n            !this.inputService.canInputMoreNumbers ||\r\n            (isNaN(this.inputService.value as number) && !String.fromCharCode(keyCode).match(/\\d/))\r\n          ) {\r\n            return;\r\n          }\r\n\r\n          this.inputService.addNumber(keyCode);\r\n      }\r\n    }\r\n\r\n    this.setCursorPosition(event);\r\n\r\n    if (this.onModelChange) this.onModelChange(this.inputService.value);\r\n  }\r\n\r\n  handleKeydown(event: any): void {\r\n    if (this.isReadOnly()) {\r\n      return;\r\n    }\r\n\r\n    const keyCode = event.which || event.charCode || event.keyCode;\r\n\r\n    if (keyCode === 8 || keyCode === 46 || keyCode === 63272) {\r\n      event.preventDefault();\r\n      const selectionRangeLength = Math.abs(\r\n        this.inputService.inputSelection.selectionEnd - this.inputService.inputSelection.selectionStart\r\n      );\r\n\r\n      if (selectionRangeLength === this.inputService.rawValue.length || this.inputService.value === 0) {\r\n        this.setValue = null;\r\n\r\n        if (this.onModelChange) this.onModelChange(this.inputService.value);\r\n      }\r\n\r\n      if (selectionRangeLength === 0 && !isNaN(this.inputService.value as number)) {\r\n        this.inputService.removeNumber(keyCode);\r\n\r\n        if (this.onModelChange) this.onModelChange(this.inputService.value);\r\n      }\r\n\r\n      if (\r\n        (keyCode === 8 || keyCode === 46) &&\r\n        selectionRangeLength !== 0 &&\r\n        !isNaN(this.inputService.value as number)\r\n      ) {\r\n        this.inputService.removeNumber(keyCode);\r\n\r\n        if (this.onModelChange) this.onModelChange(this.inputService.value);\r\n      }\r\n    }\r\n  }\r\n\r\n  handleKeypress(event: any): void {\r\n    if (this.isReadOnly()) {\r\n      return;\r\n    }\r\n\r\n    const keyCode = event.which || event.charCode || event.keyCode;\r\n\r\n    if (!keyCode || [9, 13].indexOf(keyCode) !== -1 || CurrencyMaskInputHandler.isArrowEndHomeKeyInFirefox(event)) {\r\n      return;\r\n    }\r\n\r\n    switch (keyCode) {\r\n      case 43:\r\n        this.inputService.changeToPositive();\r\n        break;\r\n      case 45:\r\n        this.inputService.changeToNegative();\r\n        break;\r\n      default:\r\n        if (\r\n          this.inputService.canInputMoreNumbers &&\r\n          (!isNaN(this.inputService.value as number) || String.fromCharCode(keyCode).match(/\\d/))\r\n        ) {\r\n          this.inputService.addNumber(keyCode);\r\n        }\r\n    }\r\n\r\n    event.preventDefault();\r\n\r\n    if (this.onModelChange) this.onModelChange(this.inputService.value);\r\n  }\r\n\r\n  handleKeyup(): void {\r\n    this.inputService.fixCursorPosition();\r\n  }\r\n\r\n  handlePaste(): void {\r\n    if (this.isReadOnly()) {\r\n      return;\r\n    }\r\n\r\n    setTimeout(() => {\r\n      this.inputService.updateFieldValue();\r\n      this.setValue = this.inputService.value;\r\n\r\n      if (this.onModelChange) this.onModelChange(this.inputService.value);\r\n    }, 1);\r\n  }\r\n\r\n  set updateOptions(options: any) {\r\n    this.inputService.updateOptions(options);\r\n  }\r\n\r\n  get getOnModelChange(): Function | undefined {\r\n    return this.onModelChange;\r\n  }\r\n\r\n  set setOnModelChange(callbackFunction: Function) {\r\n    this.onModelChange = callbackFunction;\r\n  }\r\n\r\n  get getOnModelTouched(): Function | undefined {\r\n    return this.onModelTouched;\r\n  }\r\n\r\n  set setOnModelTouched(callbackFunction: Function) {\r\n    this.onModelTouched = callbackFunction;\r\n  }\r\n\r\n  set setValue(value: number | null) {\r\n    this.inputService.value = value;\r\n  }\r\n\r\n  private static getNewKeyCode(oldString: string | undefined, newString: string | undefined): number | null {\r\n    if (!oldString || !newString) return null;\r\n\r\n    if (oldString?.length > newString?.length) return null;\r\n\r\n    for (let x = 0; x < newString.length; x++) {\r\n      if (oldString.length === x || oldString[x] !== newString[x]) return newString.charCodeAt(x);\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  private static isArrowEndHomeKeyInFirefox(event: any) {\r\n    return [35, 36, 37, 38, 39, 40].indexOf(event.keyCode) !== -1 && (!event.charCode || event.charCode === 0);\r\n  }\r\n\r\n  private isReadOnly() {\r\n    return this.htmlInputElement && this.htmlInputElement.readOnly;\r\n  }\r\n\r\n  private setCursorPosition(event: any): void {\r\n    const rawValueWithoutSuffixEndPosition = this.inputService.getRawValueWithoutSuffixEndPosition();\r\n\r\n    setTimeout(function () {\r\n      event.target.setSelectionRange(rawValueWithoutSuffixEndPosition, rawValueWithoutSuffixEndPosition);\r\n    }, 0);\r\n  }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  Directive,\r\n  DoCheck,\r\n  ElementRef,\r\n  HostListener,\r\n  Inject,\r\n  Input,\r\n  KeyValueDiffer,\r\n  KeyValueDiffers,\r\n  OnInit,\r\n  Optional,\r\n  forwardRef\r\n} from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { CURRENCY_MASK_CONFIG, CurrencyMaskConfig } from './currency-mask.config';\r\nimport { CurrencyMaskInputHandler } from './currency-mask.input.handler';\r\n\r\nexport const CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR: any = {\r\n  provide: NG_VALUE_ACCESSOR,\r\n  useExisting: forwardRef(() => CurrencyMaskDirective),\r\n  multi: true\r\n};\r\n\r\n@Directive({\r\n  selector: '[currencyMask]',\r\n  providers: [\r\n    CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR,\r\n    { provide: NG_VALIDATORS, useExisting: CurrencyMaskDirective, multi: true }\r\n  ]\r\n})\r\nexport class CurrencyMaskDirective implements AfterViewInit, ControlValueAccessor, DoCheck, OnInit, Validator {\r\n  @Input() max: number = 0;\r\n  @Input() min: number = 0;\r\n  @Input() options: any = {};\r\n\r\n  inputHandler: CurrencyMaskInputHandler = {} as CurrencyMaskInputHandler;\r\n  keyValueDiffer: KeyValueDiffer<any, any>;\r\n\r\n  optionsTemplate = {\r\n    align: 'right',\r\n    allowNegative: true,\r\n    decimal: '.',\r\n    precision: 2,\r\n    prefix: '$ ',\r\n    suffix: '',\r\n    thousands: ','\r\n  };\r\n\r\n  constructor(\r\n    @Optional()\r\n    @Inject(CURRENCY_MASK_CONFIG)\r\n    private currencyMaskConfig: CurrencyMaskConfig,\r\n    private elementRef: ElementRef,\r\n    private keyValueDiffers: KeyValueDiffers\r\n  ) {\r\n    if (currencyMaskConfig) {\r\n      this.optionsTemplate = currencyMaskConfig;\r\n    }\r\n\r\n    this.keyValueDiffer = keyValueDiffers.find({}).create();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.elementRef.nativeElement.style.textAlign = this.options.align\r\n      ? this.options.align\r\n      : this.optionsTemplate.align;\r\n  }\r\n\r\n  ngDoCheck() {\r\n    if (this.keyValueDiffer.diff(this.options)) {\r\n      this.elementRef.nativeElement.style.textAlign = this.options.align\r\n        ? this.options.align\r\n        : this.optionsTemplate.align;\r\n      this.inputHandler.updateOptions((<any>Object).assign({}, this.optionsTemplate, this.options));\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.inputHandler = new CurrencyMaskInputHandler(\r\n      this.elementRef.nativeElement,\r\n      (<any>Object).assign({}, this.optionsTemplate, this.options)\r\n    );\r\n  }\r\n\r\n  @HostListener('blur', ['$event'])\r\n  handleBlur(event: any) {\r\n    this.inputHandler.getOnModelTouched?.apply(event);\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  handleClick(event: any) {\r\n    this.inputHandler.handleClick(event, this.isChromeAndroid());\r\n  }\r\n\r\n  @HostListener('cut', ['$event'])\r\n  handleCut() {\r\n    if (!this.isChromeAndroid()) this.inputHandler.handleCut();\r\n  }\r\n\r\n  @HostListener('input', ['$event'])\r\n  handleInput(event: any) {\r\n    if (this.isChromeAndroid()) {\r\n      this.inputHandler.handleInput(event);\r\n    }\r\n  }\r\n\r\n  @HostListener('keydown', ['$event'])\r\n  handleKeydown(event: any) {\r\n    if (!this.isChromeAndroid()) {\r\n      this.inputHandler.handleKeydown(event);\r\n    }\r\n  }\r\n\r\n  @HostListener('keypress', ['$event'])\r\n  handleKeypress(event: any) {\r\n    if (!this.isChromeAndroid()) {\r\n      this.inputHandler.handleKeypress(event);\r\n    }\r\n  }\r\n\r\n  @HostListener('keyup', ['$event'])\r\n  handleKeyup() {\r\n    if (!this.isChromeAndroid()) this.inputHandler.handleKeyup();\r\n  }\r\n\r\n  @HostListener('paste', ['$event'])\r\n  handlePaste() {\r\n    if (!this.isChromeAndroid()) this.inputHandler.handlePaste();\r\n  }\r\n\r\n  isChromeAndroid(): boolean {\r\n    return /chrome/i.test(navigator.userAgent) && /android/i.test(navigator.userAgent);\r\n  }\r\n\r\n  registerOnChange(callbackFunction: Function): void {\r\n    this.inputHandler.setOnModelChange(callbackFunction);\r\n  }\r\n\r\n  registerOnTouched(callbackFunction: Function): void {\r\n    this.inputHandler.setOnModelTouched(callbackFunction);\r\n  }\r\n\r\n  setDisabledState(value: boolean): void {\r\n    this.elementRef.nativeElement.disabled = value;\r\n  }\r\n\r\n  validate(abstractControl: AbstractControl): { [key: string]: any } {\r\n    const result: any = {};\r\n\r\n    if (abstractControl.value > this.max) {\r\n      result.max = true;\r\n    }\r\n\r\n    if (abstractControl.value < this.min) {\r\n      result.min = true;\r\n    }\r\n\r\n    return result !== {} ? result : null;\r\n  }\r\n\r\n  writeValue(value: number): void {\r\n    this.inputHandler.setValue = value;\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { CurrencyMaskDirective } from './currency-mask.directive';\r\n\r\n@NgModule({\r\n  imports: [CommonModule, FormsModule],\r\n  declarations: [CurrencyMaskDirective],\r\n  exports: [CurrencyMaskDirective]\r\n})\r\nexport class CurrencyMaskModule {}\r\n","import { Directive, Injector, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IServiceManager } from '../interfaces/servicemanager.interface';\r\nimport { appInjector } from '../helpers/appinjector';\r\nimport { NavigationMode } from '../helpers/enums';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { BaseObject } from '../helpers/baseobject';\r\n\r\n@Directive()\r\nexport class RequeryManager<TModel extends BaseObject> implements OnDestroy {\r\n  activatedRoute: ActivatedRoute;\r\n  toastr: ToastrService;\r\n\r\n  injector: Injector = appInjector();\r\n\r\n  readonly _suscriptions = new Array<Subscription>();\r\n\r\n  constructor(public service: Partial<IServiceManager<TModel>>) {\r\n    this.activatedRoute = this.injector.get(ActivatedRoute);\r\n    this.toastr = this.injector.get(ToastrService);\r\n    // @ts-ignore\r\n    this.service.callerComponent.state = 'initializing';\r\n\r\n    const host = this.service.callerComponent?.host;\r\n\r\n    if (this.service.activeNavigation !== NavigationMode.Modal) {\r\n      // @ts-ignore\r\n      this.service.callerComponent.host = 'form';\r\n    }\r\n\r\n    if (host === 'list') {\r\n      this.requeryInit();\r\n      return;\r\n    }\r\n\r\n    const { id } = this.activatedRoute.snapshot.queryParams;\r\n\r\n    if (id && this.service.activeNavigation !== NavigationMode.Modal) {\r\n      const { requeryOnEdit } = this.service;\r\n      this.addSubscription(\r\n        this.service.emitters?.requeryCompleted.subscribe(() => {\r\n          this.service.requeryOnEdit = requeryOnEdit;\r\n          this.requeryInit();\r\n        })\r\n      );\r\n\r\n      this.service.identityValue = id;\r\n      this.service.requeryOnEdit = true;\r\n      this.service.skipValidationModel = true;\r\n      // @ts-ignore\r\n      this.service.edit(this.service.model);\r\n    } else {\r\n      this.requeryInit();\r\n    }\r\n\r\n    this.addSubscription(\r\n      this.service.loadEmitter?.subscribe(() => {\r\n        if (!this.service.model) return;\r\n\r\n        this.service.current = {\r\n          ...this.service.newModelInstance,\r\n          ...this.service.model\r\n        };\r\n      })\r\n    );\r\n  }\r\n\r\n  requeryInit() {}\r\n\r\n  ngOnDestroy() {\r\n    // @ts-ignore\r\n    this.service.callerComponent.state = 'destroying';\r\n    this._suscriptions.forEach(subscription => subscription.unsubscribe());\r\n  }\r\n\r\n  addSubscription(subscription?: Subscription) {\r\n    if (subscription) this._suscriptions.push(subscription);\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, Router, RouterState } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AppTitleService {\r\n  private _appName: string | undefined;\r\n\r\n  constructor(public router: Router, private titleService: Title) {}\r\n\r\n  updateTitle(appName = '') {\r\n    this._appName = appName;\r\n    this.router.events.subscribe(event => this._navigationInterceptor(event));\r\n  }\r\n\r\n  private _navigationInterceptor(event: any): void {\r\n    if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {\r\n      const title = this._getTitle(this.router.routerState, this.router.routerState.root).join(' | ');\r\n\r\n      if (title && title.length > 0) this.titleService.setTitle(`${this._appName} | ${title}`);\r\n      else this.titleService.setTitle(this._appName as string);\r\n    }\r\n  }\r\n\r\n  private _getTitle(state: RouterState, parent: ActivatedRoute): any {\r\n    const data = [];\r\n\r\n    if (parent && parent.snapshot?.data && parent.snapshot.data['title']) data.push(parent.snapshot.data['title']);\r\n\r\n    if (state && parent) data.push(...this._getTitle(state, (state as any).firstChild(parent)));\r\n\r\n    return data;\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of utilscore-ar\r\n */\r\n\r\nexport * from './lib/helpers/function';\r\nexport * from './lib/helpers/response';\r\nexport * from './lib/helpers/dictionary';\r\nexport * from './lib/helpers/navigate';\r\nexport * from './lib/helpers/setting';\r\nexport * from './lib/helpers/enums';\r\nexport * from './lib/helpers/msgbox';\r\nexport * from './lib/helpers/claimtype';\r\nexport * from './lib/helpers/list-utils';\r\nexport * from './lib/helpers/httpCode';\r\nexport * from './lib/helpers/guid';\r\nexport * from './lib/helpers/identityvalue';\r\nexport * from './lib/helpers/baseobject';\r\nexport * from './lib/helpers/cachedataobject';\r\nexport * from './lib/helpers/caller.component';\r\nexport * from './lib/helpers/cachecontainer';\r\nexport * from './lib/helpers/servicesubscriber';\r\nexport * from './lib/helpers/filtrable';\r\nexport * from './lib/helpers/searchcolumn';\r\nexport * from './lib/helpers/servermethod.helper';\r\nexport * from './lib/helpers/servermethod';\r\nexport * from './lib/helpers/appinjector';\r\nexport * from './lib/services/config.service';\r\nexport * from './lib/services/previous-route.service';\r\nexport * from './lib/services/httpbase.service';\r\nexport * from './lib/services/base.service';\r\nexport * from './lib/services/data.service';\r\nexport * from './lib/services/relationship.service';\r\nexport * from './lib/interfaces/msgbox.interfaces';\r\nexport * from './lib/interfaces/crudaction.interface';\r\nexport * from './lib/interfaces/event.interface';\r\nexport * from './lib/components/crud/crud.directive';\r\nexport * from './lib/components/crud/crud.service';\r\nexport * from './lib/components/auth/auth.guard';\r\nexport * from './lib/components/auth/auth.config';\r\nexport * from './lib/components/auth/auth.interfaces';\r\nexport * from './lib/components/auth/token.service';\r\nexport * from './lib/components/auth/helper';\r\nexport * from './lib/components/auth/token';\r\nexport * from './lib/components/auth/tokenerror';\r\nexport * from './lib/components/auth/auth.route';\r\nexport * from './lib/components/auth/auth.module';\r\nexport * from './lib/components/auth/auth.service';\r\nexport * from './lib/components/auth/login.manager';\r\nexport * from './lib/components/auth/changepassword.manager';\r\nexport * from './lib/components/form-template/form-template.component';\r\nexport * from './lib/components/form-template/form-template.module';\r\nexport * from './lib/components/form-template/form-level';\r\nexport * from './lib/components/form-template/form-utils';\r\nexport * from './lib/components/form-template/form-template-base';\r\nexport * from './lib/shared/utils.module';\r\nexport * from './lib/components/upload-btn/upload-btn.module';\r\nexport * from './lib/components/upload-btn/upload-btn.component';\r\nexport * from './lib/components/upload-btn/upload-btn.service';\r\nexport * from './lib/components/switch/switch.module';\r\nexport * from './lib/components/crud/crud.module';\r\nexport * from './lib/components/input-wrapper/input-wrapper.module';\r\nexport * from './lib/components/button-go-to/button-go-to.module';\r\nexport * from './lib/interfaces/servicedataloader.interface';\r\nexport * from './lib/interfaces/servicemanager.interface';\r\nexport * from './lib/interfaces/componentmanager.interface';\r\nexport * from './lib/interfaces/cachedataprovider.interface';\r\nexport * from './lib/interfaces/manageroptions.interface';\r\nexport * from './lib/interfaces/servermethod.interface';\r\nexport * from './lib/interfaces/serviceoptions.interface';\r\nexport * from './lib/interfaces/searchdirective.interface';\r\nexport * from './lib/interfaces/servicemethod.interface';\r\nexport * from './lib/interfaces/data.interface';\r\nexport * from './lib/interfaces/base.interface';\r\nexport * from './lib/interfaces/searchhost.interface';\r\nexport * from './lib/services/search.service';\r\nexport * from './lib/validator/validator.module';\r\nexport * from './lib/directives/directive.module';\r\nexport * from './lib/pipes/pipe.module';\r\nexport * from './lib/managers/service.manager';\r\nexport * from './lib/services/error-handler';\r\nexport * from './lib/components/currency-mask/currency-mask.module';\r\nexport * from './lib/components/currency-mask/currency-mask.config';\r\nexport * from './lib/managers/requery.manager';\r\nexport * from './lib/services/modelwrapper-strategy';\r\nexport * from './lib/helpers/toastType';\r\nexport * from './lib/services/appTitle.service';\r\n\r\n// After angular 12\r\nexport * from './lib/components/form-template/form-template-base';\r\nexport * from './lib/components/switch/switch.directive';\r\nexport * from './lib/components/switch/switch.component';\r\nexport * from './lib/components/form-templ/form-templ.component';\r\nexport * from './lib/components/input-wrapper/input-wrapper.component';\r\nexport * from './lib/components/button-go-to/button-go-to.component';\r\nexport * from './lib/validator/uuid/directive';\r\nexport * from './lib/validator/base64/directive';\r\nexport * from './lib/validator/credit-card/directive';\r\nexport * from './lib/validator/date/directive';\r\nexport * from './lib/validator/date-iso/directive';\r\nexport * from './lib/validator/digits/directive';\r\nexport * from './lib/validator/equal/directive';\r\nexport * from './lib/validator/url/directive';\r\nexport * from './lib/validator/range-length/directive';\r\nexport * from './lib/validator/phone/directive';\r\nexport * from './lib/validator/not-equal/directive';\r\nexport * from './lib/validator/min-date/directive';\r\nexport * from './lib/validator/max/directive';\r\nexport * from './lib/validator/range/directive';\r\nexport * from './lib/validator/not-equal-to/directive';\r\nexport * from './lib/validator/equal-to/directive';\r\nexport * from './lib/validator/greater-than/directive';\r\nexport * from './lib/validator/greater-than-equal/directive';\r\nexport * from './lib/validator/json/directive';\r\nexport * from './lib/validator/less-than/directive';\r\nexport * from './lib/validator/less-than-equal/directive';\r\nexport * from './lib/validator/max-date/directive';\r\nexport * from './lib/validator/min/directive';\r\nexport * from './lib/validator/email/directive';\r\nexport * from './lib/validator/number/directive';\r\nexport * from './lib/directives/auto-scroll.directive';\r\nexport * from './lib/directives/lazy-loader.directive';\r\nexport * from './lib/directives/mail-to.directive';\r\nexport * from './lib/directives/number-input.directive';\r\nexport * from './lib/directives/object-watcher.directive';\r\nexport * from './lib/pipes/custom-filter.pipe';\r\nexport * from './lib/pipes/phone.pipe';\r\nexport * from './lib/pipes/safe.pipe';\r\nexport * from './lib/pipes/identification.pipe';\r\nexport * from './lib/pipes/split-filter.pipe';\r\nexport * from './lib/pipes/time.pipe';\r\nexport * from './lib/pipes/timeSecond.pipe';\r\nexport * from './lib/pipes/select-filter.pipe';\r\nexport * from './lib/components/currency-mask/currency-mask.directive';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ConfigService","i1","i2.ConfigService","i3.TokenService","i1.CrudService","i2.CrudAction","i2.TokenService","i1.SwitchComponent","i2","i4.SwitchDirective","i1.DSwitchComponent","i2.DCommandBtnsComponent","i3","i1.UploadButtonService","i4"],"mappings":"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"}