@ng-util/lazy 18.1.0 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Injectable, Inject } from '@angular/core';
3
+ import { inject, Injectable } from '@angular/core';
4
4
  import { BehaviorSubject, pipe } from 'rxjs';
5
5
  import { share, filter } from 'rxjs/operators';
6
6
 
7
7
  class NuLazyService {
8
- constructor(doc) {
9
- this.doc = doc;
8
+ constructor() {
9
+ this.doc = inject(DOCUMENT);
10
10
  this.list = {};
11
11
  this.cached = {};
12
12
  this._notify = new BehaviorSubject([]);
@@ -92,7 +92,7 @@ class NuLazyService {
92
92
  node.onreadystatechange = null;
93
93
  onSuccess({
94
94
  path,
95
- status: 'ok',
95
+ status: 'ok'
96
96
  });
97
97
  }
98
98
  };
@@ -100,13 +100,13 @@ class NuLazyService {
100
100
  else {
101
101
  node.onload = () => onSuccess({
102
102
  path,
103
- status: 'ok',
103
+ status: 'ok'
104
104
  });
105
105
  }
106
106
  node.onerror = (error) => onSuccess({
107
107
  path,
108
108
  status: 'error',
109
- error,
109
+ error
110
110
  });
111
111
  this.doc.getElementsByTagName('head')[0].appendChild(node);
112
112
  });
@@ -130,22 +130,19 @@ class NuLazyService {
130
130
  const item = {
131
131
  path,
132
132
  status: 'ok',
133
- type: 'style',
133
+ type: 'style'
134
134
  };
135
135
  this.cached[path] = item;
136
136
  resolve(item);
137
137
  });
138
138
  }
139
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NuLazyService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
140
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NuLazyService, providedIn: 'root' }); }
139
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: NuLazyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
140
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: NuLazyService, providedIn: 'root' }); }
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NuLazyService, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: NuLazyService, decorators: [{
143
143
  type: Injectable,
144
144
  args: [{ providedIn: 'root' }]
145
- }], ctorParameters: () => [{ type: undefined, decorators: [{
146
- type: Inject,
147
- args: [DOCUMENT]
148
- }] }] });
145
+ }] });
149
146
 
150
147
  /**
151
148
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-util-lazy.mjs","sources":["../../../../packages/lazy/lazy.service.ts","../../../../packages/lazy/ng-util-lazy.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, pipe } from 'rxjs';\nimport { filter, share } from 'rxjs/operators';\n\nexport type NuLazyResourcesType = 'script' | 'style';\n\nexport interface NuLazyResources {\n path: string;\n type: NuLazyResourcesType;\n /**\n * 回调名称\n */\n callback?: string;\n}\n\nexport interface NuLazyResult {\n path: string;\n status: 'ok' | 'error' | 'loading';\n type?: NuLazyResourcesType;\n error?: {};\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NuLazyService {\n private list: { [key: string]: boolean } = {};\n private cached: { [key: string]: NuLazyResult } = {};\n private _notify: BehaviorSubject<NuLazyResult[]> = new BehaviorSubject<NuLazyResult[]>([]);\n\n constructor(@Inject(DOCUMENT) private doc: any) {}\n\n private fixPaths(paths?: string | Array<string | NuLazyResources>): NuLazyResources[] {\n paths = paths || [];\n if (!Array.isArray(paths)) {\n paths = [paths];\n }\n return paths.map((p: string | NuLazyResources) => {\n const res = (typeof p === 'string' ? { path: p } : p) as NuLazyResources;\n if (!res.type) {\n res.type = res.path.endsWith('.js') || res.callback ? 'script' : 'style';\n }\n return res;\n });\n }\n\n /**\n * Monitor for the finished of `paths`\n *\n * - It's recommended to pass the value in accordance with the `load()` method\n */\n monitor(paths?: string | Array<string | NuLazyResources>): Observable<NuLazyResult[]> {\n const libs = this.fixPaths(paths);\n\n const pipes = [share(), filter((ls: NuLazyResult[]) => ls.length !== 0)];\n\n if (libs.length > 0) {\n pipes.push(\n filter(\n (ls: NuLazyResult[]) => ls.length === libs.length && ls.every(v => v.status === 'ok' && libs.find(lw => lw.path === v.path)),\n ),\n );\n }\n\n return this._notify.asObservable().pipe(pipe.apply(this, pipes as any) as any);\n }\n\n clear(): void {\n this.list = {};\n this.cached = {};\n }\n\n /**\n * Load the specified resources, includes `.js`, `.css`\n *\n * - The returned Promise does not mean that it was successfully loaded\n * - You can monitor load is success via `monitor()`\n */\n async load(paths: string | Array<string | NuLazyResources>): Promise<NuLazyResult[]> {\n paths = this.fixPaths(paths);\n\n return Promise.all(\n (paths as NuLazyResources[]).map(p =>\n p.type === 'script' ? this.loadScript(p.path, { callback: p.callback }) : this.loadStyle(p.path),\n ),\n ).then(res => {\n this._notify.next(res);\n return Promise.resolve(res);\n });\n }\n\n loadScript(path: string, options?: { innerContent?: string; callback?: string }): Promise<NuLazyResult> {\n const { innerContent } = { ...options };\n return new Promise(resolve => {\n if (this.list[path] === true) {\n resolve({ ...this.cached[path], status: 'loading' });\n return;\n }\n\n this.list[path] = true;\n const onSuccess = (item: NuLazyResult) => {\n if (item.status === 'ok' && options?.callback) {\n (window as any)[options?.callback] = () => {\n onSuccessTruth(item);\n };\n } else {\n onSuccessTruth(item);\n }\n };\n const onSuccessTruth = (item: NuLazyResult) => {\n item.type = 'script';\n this.cached[path] = item;\n resolve(item);\n this._notify.next([item]);\n };\n\n const node = this.doc.createElement('script') as any;\n node.type = 'text/javascript';\n node.src = path;\n node.charset = 'utf-8';\n if (innerContent) {\n node.innerHTML = innerContent;\n }\n if (node.readyState) {\n // IE\n node.onreadystatechange = () => {\n if (node.readyState === 'loaded' || node.readyState === 'complete') {\n node.onreadystatechange = null;\n onSuccess({\n path,\n status: 'ok',\n });\n }\n };\n } else {\n node.onload = () =>\n onSuccess({\n path,\n status: 'ok',\n });\n }\n node.onerror = (error: {}) =>\n onSuccess({\n path,\n status: 'error',\n error,\n });\n this.doc.getElementsByTagName('head')[0].appendChild(node);\n });\n }\n\n loadStyle(path: string, options?: { rel?: string; innerContent?: string }): Promise<NuLazyResult> {\n const { rel, innerContent } = { rel: 'stylesheet', ...options };\n return new Promise(resolve => {\n if (this.list[path] === true) {\n resolve(this.cached[path]);\n return;\n }\n\n this.list[path] = true;\n\n const node = this.doc.createElement('link') as HTMLLinkElement;\n node.rel = rel;\n node.type = 'text/css';\n node.href = path;\n if (innerContent) {\n node.innerHTML = innerContent;\n }\n this.doc.getElementsByTagName('head')[0].appendChild(node);\n const item: NuLazyResult = {\n path,\n status: 'ok',\n type: 'style',\n };\n this.cached[path] = item;\n resolve(item);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-util-lazy.mjs","sources":["../../../../packages/lazy/lazy.service.ts","../../../../packages/lazy/ng-util-lazy.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, pipe } from 'rxjs';\nimport { filter, share } from 'rxjs/operators';\n\nexport type NuLazyResourcesType = 'script' | 'style';\n\nexport interface NuLazyResources {\n path: string;\n type: NuLazyResourcesType;\n /**\n * 回调名称\n */\n callback?: string;\n}\n\nexport interface NuLazyResult {\n path: string;\n status: 'ok' | 'error' | 'loading';\n type?: NuLazyResourcesType;\n error?: {};\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NuLazyService {\n private readonly doc = inject(DOCUMENT);\n private list: { [key: string]: boolean } = {};\n private cached: { [key: string]: NuLazyResult } = {};\n private _notify: BehaviorSubject<NuLazyResult[]> = new BehaviorSubject<NuLazyResult[]>([]);\n\n private fixPaths(paths?: string | Array<string | NuLazyResources>): NuLazyResources[] {\n paths = paths || [];\n if (!Array.isArray(paths)) {\n paths = [paths];\n }\n return paths.map((p: string | NuLazyResources) => {\n const res = (typeof p === 'string' ? { path: p } : p) as NuLazyResources;\n if (!res.type) {\n res.type = res.path.endsWith('.js') || res.callback ? 'script' : 'style';\n }\n return res;\n });\n }\n\n /**\n * Monitor for the finished of `paths`\n *\n * - It's recommended to pass the value in accordance with the `load()` method\n */\n monitor(paths?: string | Array<string | NuLazyResources>): Observable<NuLazyResult[]> {\n const libs = this.fixPaths(paths);\n\n const pipes = [share(), filter((ls: NuLazyResult[]) => ls.length !== 0)];\n\n if (libs.length > 0) {\n pipes.push(\n filter(\n (ls: NuLazyResult[]) =>\n ls.length === libs.length && ls.every(v => v.status === 'ok' && libs.find(lw => lw.path === v.path))\n )\n );\n }\n\n return this._notify.asObservable().pipe(pipe.apply(this, pipes as any) as any);\n }\n\n clear(): void {\n this.list = {};\n this.cached = {};\n }\n\n /**\n * Load the specified resources, includes `.js`, `.css`\n *\n * - The returned Promise does not mean that it was successfully loaded\n * - You can monitor load is success via `monitor()`\n */\n async load(paths: string | Array<string | NuLazyResources>): Promise<NuLazyResult[]> {\n paths = this.fixPaths(paths);\n\n return Promise.all(\n (paths as NuLazyResources[]).map(p =>\n p.type === 'script' ? this.loadScript(p.path, { callback: p.callback }) : this.loadStyle(p.path)\n )\n ).then(res => {\n this._notify.next(res);\n return Promise.resolve(res);\n });\n }\n\n loadScript(path: string, options?: { innerContent?: string; callback?: string }): Promise<NuLazyResult> {\n const { innerContent } = { ...options };\n return new Promise(resolve => {\n if (this.list[path] === true) {\n resolve({ ...this.cached[path], status: 'loading' });\n return;\n }\n\n this.list[path] = true;\n const onSuccess = (item: NuLazyResult): void => {\n if (item.status === 'ok' && options?.callback) {\n (window as any)[options?.callback] = () => {\n onSuccessTruth(item);\n };\n } else {\n onSuccessTruth(item);\n }\n };\n const onSuccessTruth = (item: NuLazyResult): void => {\n item.type = 'script';\n this.cached[path] = item;\n resolve(item);\n this._notify.next([item]);\n };\n\n const node = this.doc.createElement('script') as any;\n node.type = 'text/javascript';\n node.src = path;\n node.charset = 'utf-8';\n if (innerContent) {\n node.innerHTML = innerContent;\n }\n if (node.readyState) {\n // IE\n node.onreadystatechange = () => {\n if (node.readyState === 'loaded' || node.readyState === 'complete') {\n node.onreadystatechange = null;\n onSuccess({\n path,\n status: 'ok'\n });\n }\n };\n } else {\n node.onload = () =>\n onSuccess({\n path,\n status: 'ok'\n });\n }\n node.onerror = (error: {}) =>\n onSuccess({\n path,\n status: 'error',\n error\n });\n this.doc.getElementsByTagName('head')[0].appendChild(node);\n });\n }\n\n loadStyle(path: string, options?: { rel?: string; innerContent?: string }): Promise<NuLazyResult> {\n const { rel, innerContent } = { rel: 'stylesheet', ...options };\n return new Promise(resolve => {\n if (this.list[path] === true) {\n resolve(this.cached[path]);\n return;\n }\n\n this.list[path] = true;\n\n const node = this.doc.createElement('link') as HTMLLinkElement;\n node.rel = rel;\n node.type = 'text/css';\n node.href = path;\n if (innerContent) {\n node.innerHTML = innerContent;\n }\n this.doc.getElementsByTagName('head')[0].appendChild(node);\n const item: NuLazyResult = {\n path,\n status: 'ok',\n type: 'style'\n };\n this.cached[path] = item;\n resolve(item);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/lazy.service.d.ts CHANGED
@@ -16,11 +16,10 @@ export interface NuLazyResult {
16
16
  error?: {};
17
17
  }
18
18
  export declare class NuLazyService {
19
- private doc;
19
+ private readonly doc;
20
20
  private list;
21
21
  private cached;
22
22
  private _notify;
23
- constructor(doc: any);
24
23
  private fixPaths;
25
24
  /**
26
25
  * Monitor for the finished of `paths`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-util/lazy",
3
- "version": "18.1.0",
3
+ "version": "19.0.1",
4
4
  "author": "cipchk<cipchk@qq.com>",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,8 +28,6 @@
28
28
  },
29
29
  ".": {
30
30
  "types": "./index.d.ts",
31
- "esm2022": "./esm2022/ng-util-lazy.mjs",
32
- "esm": "./esm2022/ng-util-lazy.mjs",
33
31
  "default": "./fesm2022/ng-util-lazy.mjs"
34
32
  }
35
33
  },
@@ -1,148 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { BehaviorSubject, pipe } from 'rxjs';
4
- import { filter, share } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- export class NuLazyService {
7
- constructor(doc) {
8
- this.doc = doc;
9
- this.list = {};
10
- this.cached = {};
11
- this._notify = new BehaviorSubject([]);
12
- }
13
- fixPaths(paths) {
14
- paths = paths || [];
15
- if (!Array.isArray(paths)) {
16
- paths = [paths];
17
- }
18
- return paths.map((p) => {
19
- const res = (typeof p === 'string' ? { path: p } : p);
20
- if (!res.type) {
21
- res.type = res.path.endsWith('.js') || res.callback ? 'script' : 'style';
22
- }
23
- return res;
24
- });
25
- }
26
- /**
27
- * Monitor for the finished of `paths`
28
- *
29
- * - It's recommended to pass the value in accordance with the `load()` method
30
- */
31
- monitor(paths) {
32
- const libs = this.fixPaths(paths);
33
- const pipes = [share(), filter((ls) => ls.length !== 0)];
34
- if (libs.length > 0) {
35
- pipes.push(filter((ls) => ls.length === libs.length && ls.every(v => v.status === 'ok' && libs.find(lw => lw.path === v.path))));
36
- }
37
- return this._notify.asObservable().pipe(pipe.apply(this, pipes));
38
- }
39
- clear() {
40
- this.list = {};
41
- this.cached = {};
42
- }
43
- /**
44
- * Load the specified resources, includes `.js`, `.css`
45
- *
46
- * - The returned Promise does not mean that it was successfully loaded
47
- * - You can monitor load is success via `monitor()`
48
- */
49
- async load(paths) {
50
- paths = this.fixPaths(paths);
51
- return Promise.all(paths.map(p => p.type === 'script' ? this.loadScript(p.path, { callback: p.callback }) : this.loadStyle(p.path))).then(res => {
52
- this._notify.next(res);
53
- return Promise.resolve(res);
54
- });
55
- }
56
- loadScript(path, options) {
57
- const { innerContent } = { ...options };
58
- return new Promise(resolve => {
59
- if (this.list[path] === true) {
60
- resolve({ ...this.cached[path], status: 'loading' });
61
- return;
62
- }
63
- this.list[path] = true;
64
- const onSuccess = (item) => {
65
- if (item.status === 'ok' && options?.callback) {
66
- window[options?.callback] = () => {
67
- onSuccessTruth(item);
68
- };
69
- }
70
- else {
71
- onSuccessTruth(item);
72
- }
73
- };
74
- const onSuccessTruth = (item) => {
75
- item.type = 'script';
76
- this.cached[path] = item;
77
- resolve(item);
78
- this._notify.next([item]);
79
- };
80
- const node = this.doc.createElement('script');
81
- node.type = 'text/javascript';
82
- node.src = path;
83
- node.charset = 'utf-8';
84
- if (innerContent) {
85
- node.innerHTML = innerContent;
86
- }
87
- if (node.readyState) {
88
- // IE
89
- node.onreadystatechange = () => {
90
- if (node.readyState === 'loaded' || node.readyState === 'complete') {
91
- node.onreadystatechange = null;
92
- onSuccess({
93
- path,
94
- status: 'ok',
95
- });
96
- }
97
- };
98
- }
99
- else {
100
- node.onload = () => onSuccess({
101
- path,
102
- status: 'ok',
103
- });
104
- }
105
- node.onerror = (error) => onSuccess({
106
- path,
107
- status: 'error',
108
- error,
109
- });
110
- this.doc.getElementsByTagName('head')[0].appendChild(node);
111
- });
112
- }
113
- loadStyle(path, options) {
114
- const { rel, innerContent } = { rel: 'stylesheet', ...options };
115
- return new Promise(resolve => {
116
- if (this.list[path] === true) {
117
- resolve(this.cached[path]);
118
- return;
119
- }
120
- this.list[path] = true;
121
- const node = this.doc.createElement('link');
122
- node.rel = rel;
123
- node.type = 'text/css';
124
- node.href = path;
125
- if (innerContent) {
126
- node.innerHTML = innerContent;
127
- }
128
- this.doc.getElementsByTagName('head')[0].appendChild(node);
129
- const item = {
130
- path,
131
- status: 'ok',
132
- type: 'style',
133
- };
134
- this.cached[path] = item;
135
- resolve(item);
136
- });
137
- }
138
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NuLazyService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
139
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NuLazyService, providedIn: 'root' }); }
140
- }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NuLazyService, decorators: [{
142
- type: Injectable,
143
- args: [{ providedIn: 'root' }]
144
- }], ctorParameters: () => [{ type: undefined, decorators: [{
145
- type: Inject,
146
- args: [DOCUMENT]
147
- }] }] });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbGF6eS9sYXp5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBcUIvQyxNQUFNLE9BQU8sYUFBYTtJQUt4QixZQUFzQyxHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUp0QyxTQUFJLEdBQStCLEVBQUUsQ0FBQztRQUN0QyxXQUFNLEdBQW9DLEVBQUUsQ0FBQztRQUM3QyxZQUFPLEdBQW9DLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztJQUUxQyxDQUFDO0lBRTFDLFFBQVEsQ0FBQyxLQUFnRDtRQUMvRCxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUEyQixFQUFFLEVBQUU7WUFDL0MsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQW9CLENBQUM7WUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCxHQUFHLENBQUMsSUFBSSxH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LEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFvQixDQUFDO1lBQy9ELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNELE1BQU0sSUFBSSxHQUFpQjtnQkFDekIsSUFBSTtnQkFDSixNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO2tJQXhKVSxhQUFhLGtCQUtKLFFBQVE7c0lBTGpCLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQU1uQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgTnVMYXp5UmVzb3VyY2VzVHlwZSA9ICdzY3JpcHQnIHwgJ3N0eWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBOdUxhenlSZXNvdXJjZXMge1xuICBwYXRoOiBzdHJpbmc7XG4gIHR5cGU6IE51TGF6eVJlc291cmNlc1R5cGU7XG4gIC8qKlxuICAgKiDlm57osIPlkI3np7BcbiAgICovXG4gIGNhbGxiYWNrPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51TGF6eVJlc3VsdCB7XG4gIHBhdGg6IHN0cmluZztcbiAgc3RhdHVzOiAnb2snIHwgJ2Vycm9yJyB8ICdsb2FkaW5nJztcbiAgdHlwZT86IE51TGF6eVJlc291cmNlc1R5cGU7XG4gIGVycm9yPzoge307XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTnVMYXp5U2VydmljZSB7XG4gIHByaXZhdGUgbGlzdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgcHJpdmF0ZSBjYWNoZWQ6IHsgW2tleTogc3RyaW5nXTogTnVMYXp5UmVzdWx0IH0gPSB7fTtcbiAgcHJpdmF0ZSBfbm90aWZ5OiBCZWhhdmlvclN1YmplY3Q8TnVMYXp5UmVzdWx0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOdUxhenlSZXN1bHRbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnkpIHt9XG5cbiAgcHJpdmF0ZSBmaXhQYXRocyhwYXRocz86IHN0cmluZyB8IEFycmF5PHN0cmluZyB8IE51TGF6eVJlc291cmNlcz4pOiBOdUxhenlSZXNvdXJjZXNbXSB7XG4gICAgcGF0aHMgPSBwYXRocyB8fCBbXTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGF0aHMpKSB7XG4gICAgICBwYXRocyA9IFtwYXRoc107XG4gICAgfVxuICAgIHJldHVybiBwYXRocy5tYXAoKHA6IHN0cmluZyB8IE51TGF6eVJlc291cmNlcykgPT4ge1xuICAgICAgY29uc3QgcmVzID0gKHR5cGVvZiBwID09PSAnc3RyaW5nJyA/IHsgcGF0aDogcCB9IDogcCkgYXMgTnVMYXp5UmVzb3VyY2VzO1xuICAgICAgaWYgKCFyZXMudHlwZSkge1xuICAgICAgICByZXMudHlwZSA9IHJlcy5wYXRoLmVuZHNXaXRoKCcuanMnKSB8fCByZXMuY2FsbGJhY2sgPyAnc2NyaXB0JyA6ICdzdHlsZSc7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3IgZm9yIHRoZSBmaW5pc2hlZCBvZiBgcGF0aHNgXG4gICAqXG4gICAqIC0gSXQncyByZWNvbW1lbmRlZCB0byBwYXNzIHRoZSB2YWx1ZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGBsb2FkKClgIG1ldGhvZFxuICAgKi9cbiAgbW9uaXRvcihwYXRocz86IHN0cmluZyB8IEFycmF5PHN0cmluZyB8IE51TGF6eVJlc291cmNlcz4pOiBPYnNlcnZhYmxlPE51TGF6eVJlc3VsdFtdPiB7XG4gICAgY29uc3QgbGlicyA9IHRoaXMuZml4UGF0aHMocGF0aHMpO1xuXG4gICAgY29uc3QgcGlwZXMgPSBbc2hhcmUoKSwgZmlsdGVyKChsczogTnVMYXp5UmVzdWx0W10pID0+IGxzLmxlbmd0aCAhPT0gMCldO1xuXG4gICAgaWYgKGxpYnMubGVuZ3RoID4gMCkge1xuICAgICAgcGlwZXMucHVzaChcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChsczogTnVMYXp5UmVzdWx0W10pID0+IGxzLmxlbmd0aCA9PT0gbGlicy5sZW5ndGggJiYgbHMuZXZlcnkodiA9PiB2LnN0YXR1cyA9PT0gJ29rJyAmJiBsaWJzLmZpbmQobHcgPT4gbHcucGF0aCA9PT0gdi5wYXRoKSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9ub3RpZnkuYXNPYnNlcnZhYmxlKCkucGlwZShwaXBlLmFwcGx5KHRoaXMsIHBpcGVzIGFzIGFueSkgYXMgYW55KTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdCA9IHt9O1xuICAgIHRoaXMuY2FjaGVkID0ge307XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgc3BlY2lmaWVkIHJlc291cmNlcywgaW5jbHVkZXMgYC5qc2AsIGAuY3NzYFxuICAgKlxuICAgKiAtIFRoZSByZXR1cm5lZCBQcm9taXNlIGRvZXMgbm90IG1lYW4gdGhhdCBpdCB3YXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZFxuICAgKiAtIFlvdSBjYW4gbW9uaXRvciBsb2FkIGlzIHN1Y2Nlc3MgdmlhIGBtb25pdG9yKClgXG4gICAqL1xuICBhc3luYyBsb2FkKHBhdGhzOiBzdHJpbmcgfCBBcnJheTxzdHJpbmcgfCBOdUxhenlSZXNvdXJjZXM+KTogUHJvbWlzZTxOdUxhenlSZXN1bHRbXT4ge1xuICAgIHBhdGhzID0gdGhpcy5maXhQYXRocyhwYXRocyk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICAocGF0aHMgYXMgTnVMYXp5UmVzb3VyY2VzW10pLm1hcChwID0+XG4gICAgICAgIHAudHlwZSA9PT0gJ3NjcmlwdCcgPyB0aGlzLmxvYWRTY3JpcHQocC5wYXRoLCB7IGNhbGxiYWNrOiBwLmNhbGxiYWNrIH0pIDogdGhpcy5sb2FkU3R5bGUocC5wYXRoKSxcbiAgICAgICksXG4gICAgKS50aGVuKHJlcyA9PiB7XG4gICAgICB0aGlzLl9ub3RpZnkubmV4dChyZXMpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZFNjcmlwdChwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGlubmVyQ29udGVudD86IHN0cmluZzsgY2FsbGJhY2s/OiBzdHJpbmcgfSk6IFByb21pc2U8TnVMYXp5UmVzdWx0PiB7XG4gICAgY29uc3QgeyBpbm5lckNvbnRlbnQgfSA9IHsgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGlmICh0aGlzLmxpc3RbcGF0aF0gPT09IHRydWUpIHtcbiAgICAgICAgcmVzb2x2ZSh7IC4uLnRoaXMuY2FjaGVkW3BhdGhdLCBzdGF0dXM6ICdsb2FkaW5nJyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RbcGF0aF0gPSB0cnVlO1xuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGl0ZW06IE51TGF6eVJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5zdGF0dXMgPT09ICdvaycgJiYgb3B0aW9ucz8uY2FsbGJhY2spIHtcbiAgICAgICAgICAod2luZG93IGFzIGFueSlbb3B0aW9ucz8uY2FsbGJhY2tdID0gKCkgPT4ge1xuICAgICAgICAgICAgb25TdWNjZXNzVHJ1dGgoaXRlbSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvblN1Y2Nlc3NUcnV0aChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG9uU3VjY2Vzc1RydXRoID0gKGl0ZW06IE51TGF6eVJlc3VsdCkgPT4ge1xuICAgICAgICBpdGVtLnR5cGUgPSAnc2NyaXB0JztcbiAgICAgICAgdGhpcy5jYWNoZWRbcGF0aF0gPSBpdGVtO1xuICAgICAgICByZXNvbHZlKGl0ZW0pO1xuICAgICAgICB0aGlzLl9ub3RpZnkubmV4dChbaXRlbV0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpIGFzIGFueTtcbiAgICAgIG5vZGUudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgbm9kZS5zcmMgPSBwYXRoO1xuICAgICAgbm9kZS5jaGFyc2V0ID0gJ3V0Zi04JztcbiAgICAgIGlmIChpbm5lckNvbnRlbnQpIHtcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBpbm5lckNvbnRlbnQ7XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5yZWFkeVN0YXRlKSB7XG4gICAgICAgIC8vIElFXG4gICAgICAgIG5vZGUub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChub2RlLnJlYWR5U3RhdGUgPT09ICdsb2FkZWQnIHx8IG5vZGUucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgICAgICAgbm9kZS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgb25TdWNjZXNzKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5vbmxvYWQgPSAoKSA9PlxuICAgICAgICAgIG9uU3VjY2Vzcyh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgbm9kZS5vbmVycm9yID0gKGVycm9yOiB7fSkgPT5cbiAgICAgICAgb25TdWNjZXNzKHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKG5vZGUpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZFN0eWxlKHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHsgcmVsPzogc3RyaW5nOyBpbm5lckNvbnRlbnQ/OiBzdHJpbmcgfSk6IFByb21pc2U8TnVMYXp5UmVzdWx0PiB7XG4gICAgY29uc3QgeyByZWwsIGlubmVyQ29udGVudCB9ID0geyByZWw6ICdzdHlsZXNoZWV0JywgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGlmICh0aGlzLmxpc3RbcGF0aF0gPT09IHRydWUpIHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmNhY2hlZFtwYXRoXSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5saXN0W3BhdGhdID0gdHJ1ZTtcblxuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XG4gICAgICBub2RlLnJlbCA9IHJlbDtcbiAgICAgIG5vZGUudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICBub2RlLmhyZWYgPSBwYXRoO1xuICAgICAgaWYgKGlubmVyQ29udGVudCkge1xuICAgICAgICBub2RlLmlubmVySFRNTCA9IGlubmVyQ29udGVudDtcbiAgICAgIH1cbiAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQobm9kZSk7XG4gICAgICBjb25zdCBpdGVtOiBOdUxhenlSZXN1bHQgPSB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHN0YXR1czogJ29rJyxcbiAgICAgICAgdHlwZTogJ3N0eWxlJyxcbiAgICAgIH07XG4gICAgICB0aGlzLmNhY2hlZFtwYXRoXSA9IGl0ZW07XG4gICAgICByZXNvbHZlKGl0ZW0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdXRpbC1sYXp5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbGF6eS9uZy11dGlsLWxhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './lazy.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xhenkvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXp5LnNlcnZpY2UnO1xuIl19