@ng-util/lazy 12.1.2 → 14.0.0

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.
@@ -0,0 +1,148 @@
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
+ }
139
+ /** @nocollapse */ NuLazyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
140
+ /** @nocollapse */ NuLazyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, providedIn: 'root' });
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, decorators: [{
142
+ type: Injectable,
143
+ args: [{ providedIn: 'root' }]
144
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
145
+ type: Inject,
146
+ args: [DOCUMENT]
147
+ }] }]; } });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbGF6eS9sYXp5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBcUIvQyxNQUFNLE9BQU8sYUFBYTtJQUt4QixZQUFzQyxHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUp0QyxTQUFJLEdBQStCLEVBQUUsQ0FBQztRQUN0QyxXQUFNLEdBQW9DLEVBQUUsQ0FBQztRQUM3QyxZQUFPLEdBQW9DLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztJQUUxQyxDQUFDO0lBRTFDLFFBQVEsQ0FBQyxLQUFnRDtRQUMvRCxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQjtRQUNELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQTJCLEVBQUUsRUFBRTtZQUMvQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBb0IsQ0FBQztZQUN6RSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDYixHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJ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Q3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksWUFBWSxFQUFFO2dCQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQzthQUMvQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNELE1BQU0sSUFBSSxHQUFpQjtnQkFDekIsSUFBSTtnQkFDSixNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs2SEF4SlUsYUFBYSxrQkFLSixRQUFRO2lJQUxqQixhQUFhLGNBREEsTUFBTTsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQU1uQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgTnVMYXp5UmVzb3VyY2VzVHlwZSA9ICdzY3JpcHQnIHwgJ3N0eWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBOdUxhenlSZXNvdXJjZXMge1xuICBwYXRoOiBzdHJpbmc7XG4gIHR5cGU6IE51TGF6eVJlc291cmNlc1R5cGU7XG4gIC8qKlxuICAgKiDlm57osIPlkI3np7BcbiAgICovXG4gIGNhbGxiYWNrPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51TGF6eVJlc3VsdCB7XG4gIHBhdGg6IHN0cmluZztcbiAgc3RhdHVzOiAnb2snIHwgJ2Vycm9yJyB8ICdsb2FkaW5nJztcbiAgdHlwZT86IE51TGF6eVJlc291cmNlc1R5cGU7XG4gIGVycm9yPzoge307XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTnVMYXp5U2VydmljZSB7XG4gIHByaXZhdGUgbGlzdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgcHJpdmF0ZSBjYWNoZWQ6IHsgW2tleTogc3RyaW5nXTogTnVMYXp5UmVzdWx0IH0gPSB7fTtcbiAgcHJpdmF0ZSBfbm90aWZ5OiBCZWhhdmlvclN1YmplY3Q8TnVMYXp5UmVzdWx0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOdUxhenlSZXN1bHRbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnkpIHt9XG5cbiAgcHJpdmF0ZSBmaXhQYXRocyhwYXRocz86IHN0cmluZyB8IEFycmF5PHN0cmluZyB8IE51TGF6eVJlc291cmNlcz4pOiBOdUxhenlSZXNvdXJjZXNbXSB7XG4gICAgcGF0aHMgPSBwYXRocyB8fCBbXTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGF0aHMpKSB7XG4gICAgICBwYXRocyA9IFtwYXRoc107XG4gICAgfVxuICAgIHJldHVybiBwYXRocy5tYXAoKHA6IHN0cmluZyB8IE51TGF6eVJlc291cmNlcykgPT4ge1xuICAgICAgY29uc3QgcmVzID0gKHR5cGVvZiBwID09PSAnc3RyaW5nJyA/IHsgcGF0aDogcCB9IDogcCkgYXMgTnVMYXp5UmVzb3VyY2VzO1xuICAgICAgaWYgKCFyZXMudHlwZSkge1xuICAgICAgICByZXMudHlwZSA9IHJlcy5wYXRoLmVuZHNXaXRoKCcuanMnKSB8fCByZXMuY2FsbGJhY2sgPyAnc2NyaXB0JyA6ICdzdHlsZSc7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3IgZm9yIHRoZSBmaW5pc2hlZCBvZiBgcGF0aHNgXG4gICAqXG4gICAqIC0gSXQncyByZWNvbW1lbmRlZCB0byBwYXNzIHRoZSB2YWx1ZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGBsb2FkKClgIG1ldGhvZFxuICAgKi9cbiAgbW9uaXRvcihwYXRocz86IHN0cmluZyB8IEFycmF5PHN0cmluZyB8IE51TGF6eVJlc291cmNlcz4pOiBPYnNlcnZhYmxlPE51TGF6eVJlc3VsdFtdPiB7XG4gICAgY29uc3QgbGlicyA9IHRoaXMuZml4UGF0aHMocGF0aHMpO1xuXG4gICAgY29uc3QgcGlwZXMgPSBbc2hhcmUoKSwgZmlsdGVyKChsczogTnVMYXp5UmVzdWx0W10pID0+IGxzLmxlbmd0aCAhPT0gMCldO1xuXG4gICAgaWYgKGxpYnMubGVuZ3RoID4gMCkge1xuICAgICAgcGlwZXMucHVzaChcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChsczogTnVMYXp5UmVzdWx0W10pID0+IGxzLmxlbmd0aCA9PT0gbGlicy5sZW5ndGggJiYgbHMuZXZlcnkodiA9PiB2LnN0YXR1cyA9PT0gJ29rJyAmJiBsaWJzLmZpbmQobHcgPT4gbHcucGF0aCA9PT0gdi5wYXRoKSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9ub3RpZnkuYXNPYnNlcnZhYmxlKCkucGlwZShwaXBlLmFwcGx5KHRoaXMsIHBpcGVzIGFzIGFueSkgYXMgYW55KTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdCA9IHt9O1xuICAgIHRoaXMuY2FjaGVkID0ge307XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgc3BlY2lmaWVkIHJlc291cmNlcywgaW5jbHVkZXMgYC5qc2AsIGAuY3NzYFxuICAgKlxuICAgKiAtIFRoZSByZXR1cm5lZCBQcm9taXNlIGRvZXMgbm90IG1lYW4gdGhhdCBpdCB3YXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZFxuICAgKiAtIFlvdSBjYW4gbW9uaXRvciBsb2FkIGlzIHN1Y2Nlc3MgdmlhIGBtb25pdG9yKClgXG4gICAqL1xuICBhc3luYyBsb2FkKHBhdGhzOiBzdHJpbmcgfCBBcnJheTxzdHJpbmcgfCBOdUxhenlSZXNvdXJjZXM+KTogUHJvbWlzZTxOdUxhenlSZXN1bHRbXT4ge1xuICAgIHBhdGhzID0gdGhpcy5maXhQYXRocyhwYXRocyk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICAocGF0aHMgYXMgTnVMYXp5UmVzb3VyY2VzW10pLm1hcChwID0+XG4gICAgICAgIHAudHlwZSA9PT0gJ3NjcmlwdCcgPyB0aGlzLmxvYWRTY3JpcHQocC5wYXRoLCB7IGNhbGxiYWNrOiBwLmNhbGxiYWNrIH0pIDogdGhpcy5sb2FkU3R5bGUocC5wYXRoKSxcbiAgICAgICksXG4gICAgKS50aGVuKHJlcyA9PiB7XG4gICAgICB0aGlzLl9ub3RpZnkubmV4dChyZXMpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZFNjcmlwdChwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGlubmVyQ29udGVudD86IHN0cmluZzsgY2FsbGJhY2s/OiBzdHJpbmcgfSk6IFByb21pc2U8TnVMYXp5UmVzdWx0PiB7XG4gICAgY29uc3QgeyBpbm5lckNvbnRlbnQgfSA9IHsgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGlmICh0aGlzLmxpc3RbcGF0aF0gPT09IHRydWUpIHtcbiAgICAgICAgcmVzb2x2ZSh7IC4uLnRoaXMuY2FjaGVkW3BhdGhdLCBzdGF0dXM6ICdsb2FkaW5nJyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RbcGF0aF0gPSB0cnVlO1xuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGl0ZW06IE51TGF6eVJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5zdGF0dXMgPT09ICdvaycgJiYgb3B0aW9ucz8uY2FsbGJhY2spIHtcbiAgICAgICAgICAod2luZG93IGFzIGFueSlbb3B0aW9ucz8uY2FsbGJhY2tdID0gKCkgPT4ge1xuICAgICAgICAgICAgb25TdWNjZXNzVHJ1dGgoaXRlbSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvblN1Y2Nlc3NUcnV0aChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG9uU3VjY2Vzc1RydXRoID0gKGl0ZW06IE51TGF6eVJlc3VsdCkgPT4ge1xuICAgICAgICBpdGVtLnR5cGUgPSAnc2NyaXB0JztcbiAgICAgICAgdGhpcy5jYWNoZWRbcGF0aF0gPSBpdGVtO1xuICAgICAgICByZXNvbHZlKGl0ZW0pO1xuICAgICAgICB0aGlzLl9ub3RpZnkubmV4dChbaXRlbV0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpIGFzIGFueTtcbiAgICAgIG5vZGUudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgbm9kZS5zcmMgPSBwYXRoO1xuICAgICAgbm9kZS5jaGFyc2V0ID0gJ3V0Zi04JztcbiAgICAgIGlmIChpbm5lckNvbnRlbnQpIHtcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBpbm5lckNvbnRlbnQ7XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5yZWFkeVN0YXRlKSB7XG4gICAgICAgIC8vIElFXG4gICAgICAgIG5vZGUub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChub2RlLnJlYWR5U3RhdGUgPT09ICdsb2FkZWQnIHx8IG5vZGUucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgICAgICAgbm9kZS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgb25TdWNjZXNzKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5vbmxvYWQgPSAoKSA9PlxuICAgICAgICAgIG9uU3VjY2Vzcyh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgbm9kZS5vbmVycm9yID0gKGVycm9yOiB7fSkgPT5cbiAgICAgICAgb25TdWNjZXNzKHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKG5vZGUpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZFN0eWxlKHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHsgcmVsPzogc3RyaW5nOyBpbm5lckNvbnRlbnQ/OiBzdHJpbmcgfSk6IFByb21pc2U8TnVMYXp5UmVzdWx0PiB7XG4gICAgY29uc3QgeyByZWwsIGlubmVyQ29udGVudCB9ID0geyByZWw6ICdzdHlsZXNoZWV0JywgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGlmICh0aGlzLmxpc3RbcGF0aF0gPT09IHRydWUpIHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmNhY2hlZFtwYXRoXSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5saXN0W3BhdGhdID0gdHJ1ZTtcblxuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XG4gICAgICBub2RlLnJlbCA9IHJlbDtcbiAgICAgIG5vZGUudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICBub2RlLmhyZWYgPSBwYXRoO1xuICAgICAgaWYgKGlubmVyQ29udGVudCkge1xuICAgICAgICBub2RlLmlubmVySFRNTCA9IGlubmVyQ29udGVudDtcbiAgICAgIH1cbiAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQobm9kZSk7XG4gICAgICBjb25zdCBpdGVtOiBOdUxhenlSZXN1bHQgPSB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHN0YXR1czogJ29rJyxcbiAgICAgICAgdHlwZTogJ3N0eWxlJyxcbiAgICAgIH07XG4gICAgICB0aGlzLmNhY2hlZFtwYXRoXSA9IGl0ZW07XG4gICAgICByZXNvbHZlKGl0ZW0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,4 @@
1
1
  import { __awaiter } from 'tslib';
2
- import * as i1 from '@angular/common';
3
2
  import { DOCUMENT } from '@angular/common';
4
3
  import * as i0 from '@angular/core';
5
4
  import { Injectable, Inject } from '@angular/core';
@@ -141,25 +140,21 @@ class NuLazyService {
141
140
  });
142
141
  }
143
142
  }
144
- /** @nocollapse */ NuLazyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NuLazyService_Factory() { return new NuLazyService(i0.ɵɵinject(i1.DOCUMENT)); }, token: NuLazyService, providedIn: "root" });
145
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
146
- NuLazyService.decorators = [
147
- { type: Injectable, args: [{ providedIn: 'root' },] }
148
- ];
149
- /**
150
- * @type {function(): !Array<(null|{
151
- * type: ?,
152
- * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
153
- * })>}
154
- * @nocollapse
155
- */
156
- NuLazyService.ctorParameters = () => [
157
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
158
- ];
143
+ /** @nocollapse */ NuLazyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
144
+ /** @nocollapse */ NuLazyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, providedIn: 'root' });
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, decorators: [{
146
+ type: Injectable,
147
+ args: [{ providedIn: 'root' }]
148
+ }], ctorParameters: function () {
149
+ return [{ type: undefined, decorators: [{
150
+ type: Inject,
151
+ args: [DOCUMENT]
152
+ }] }];
153
+ } });
159
154
 
160
155
  /**
161
156
  * Generated bundle index. Do not edit.
162
157
  */
163
158
 
164
159
  export { NuLazyService };
165
- //# sourceMappingURL=ng-util-lazy.js.map
160
+ //# sourceMappingURL=ng-util-lazy.mjs.map
@@ -0,0 +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":";;;;;;;MAwBa,aAAa,CAAA;AAKxB,IAAA,WAAA,CAAsC,GAAQ,EAAA;AAAR,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAK;AAJtC,QAAA,IAAI,CAAA,IAAA,GAA+B,EAAE,CAAC;AACtC,QAAA,IAAM,CAAA,MAAA,GAAoC,EAAE,CAAC;QAC7C,IAAA,CAAA,OAAO,GAAoC,IAAI,eAAe,CAAiB,EAAE,CAAC,CAAC;KAEzC;AAE1C,IAAA,QAAQ,CAAC,KAAgD,EAAA;AAC/D,QAAA,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACjB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAA2B,KAAI;YAC/C,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAoB,CAAC;AACzE,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;gBACb,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC1E,aAAA;AACD,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CAAC;KACJ;AAED;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAgD,EAAA;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,EAAkB,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;AAEzE,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,KAAK,CAAC,IAAI,CACR,MAAM,CACJ,CAAC,EAAkB,KAAK,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAC7H,CACF,CAAC;AACH,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAY,CAAQ,CAAC,CAAC;KAChF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;KAClB;AAED;;;;;AAKG;AACG,IAAA,IAAI,CAAC,KAA+C,EAAA;;AACxD,YAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE7B,OAAO,OAAO,CAAC,GAAG,CACf,KAA2B,CAAC,GAAG,CAAC,CAAC,IAChC,CAAC,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CACjG,CACF,CAAC,IAAI,CAAC,GAAG,IAAG;AACX,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,gBAAA,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,aAAC,CAAC,CAAC;SACJ,CAAA,CAAA;AAAA,KAAA;IAED,UAAU,CAAC,IAAY,EAAE,OAAsD,EAAA;AAC7E,QAAA,MAAM,EAAE,YAAY,EAAE,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAE,CAAC;AACxC,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;YAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;AAC5B,gBAAA,OAAO,CAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAA,EAAE,MAAM,EAAE,SAAS,EAAA,CAAA,CAAG,CAAC;gBACrD,OAAO;AACR,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACvB,YAAA,MAAM,SAAS,GAAG,CAAC,IAAkB,KAAI;AACvC,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,KAAI,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,QAAQ,CAAA,EAAE;oBAC5C,MAAc,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,QAAQ,CAAC,GAAG,MAAK;wBACxC,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,qBAAC,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,cAAc,CAAC,IAAI,CAAC,CAAC;AACtB,iBAAA;AACH,aAAC,CAAC;AACF,YAAA,MAAM,cAAc,GAAG,CAAC,IAAkB,KAAI;AAC5C,gBAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,aAAC,CAAC;YAEF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAQ,CAAC;AACrD,YAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAC9B,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AAChB,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;AAC/B,aAAA;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;;AAEnB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,MAAK;oBAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;AAClE,wBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,wBAAA,SAAS,CAAC;4BACR,IAAI;AACJ,4BAAA,MAAM,EAAE,IAAI;AACb,yBAAA,CAAC,CAAC;AACJ,qBAAA;AACH,iBAAC,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,MACZ,SAAS,CAAC;oBACR,IAAI;AACJ,oBAAA,MAAM,EAAE,IAAI;AACb,iBAAA,CAAC,CAAC;AACN,aAAA;YACD,IAAI,CAAC,OAAO,GAAG,CAAC,KAAS,KACvB,SAAS,CAAC;gBACR,IAAI;AACJ,gBAAA,MAAM,EAAE,OAAO;gBACf,KAAK;AACN,aAAA,CAAC,CAAC;AACL,YAAA,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;KACJ;IAED,SAAS,CAAC,IAAY,EAAE,OAAiD,EAAA;AACvE,QAAA,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAA,MAAA,CAAA,MAAA,CAAA,EAAK,GAAG,EAAE,YAAY,EAAA,EAAK,OAAO,CAAE,CAAC;AAChE,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;YAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3B,OAAO;AACR,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAoB,CAAC;AAC/D,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,YAAA,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAA,MAAM,IAAI,GAAiB;gBACzB,IAAI;AACJ,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,IAAI,EAAE,OAAO;aACd,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,SAAC,CAAC,CAAC;KACJ;;AAxJU,mBAAA,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAKJ,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AALjB,mBAAA,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA,CAAA;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAMnB,MAAM;+BAAC,QAAQ,CAAA;;;;AC7B9B;;AAEG;;;;"}
@@ -0,0 +1,155 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { Injectable, Inject } from '@angular/core';
4
+ import { BehaviorSubject, pipe } from 'rxjs';
5
+ import { share, filter } from 'rxjs/operators';
6
+
7
+ class NuLazyService {
8
+ constructor(doc) {
9
+ this.doc = doc;
10
+ this.list = {};
11
+ this.cached = {};
12
+ this._notify = new BehaviorSubject([]);
13
+ }
14
+ fixPaths(paths) {
15
+ paths = paths || [];
16
+ if (!Array.isArray(paths)) {
17
+ paths = [paths];
18
+ }
19
+ return paths.map((p) => {
20
+ const res = (typeof p === 'string' ? { path: p } : p);
21
+ if (!res.type) {
22
+ res.type = res.path.endsWith('.js') || res.callback ? 'script' : 'style';
23
+ }
24
+ return res;
25
+ });
26
+ }
27
+ /**
28
+ * Monitor for the finished of `paths`
29
+ *
30
+ * - It's recommended to pass the value in accordance with the `load()` method
31
+ */
32
+ monitor(paths) {
33
+ const libs = this.fixPaths(paths);
34
+ const pipes = [share(), filter((ls) => ls.length !== 0)];
35
+ if (libs.length > 0) {
36
+ pipes.push(filter((ls) => ls.length === libs.length && ls.every(v => v.status === 'ok' && libs.find(lw => lw.path === v.path))));
37
+ }
38
+ return this._notify.asObservable().pipe(pipe.apply(this, pipes));
39
+ }
40
+ clear() {
41
+ this.list = {};
42
+ this.cached = {};
43
+ }
44
+ /**
45
+ * Load the specified resources, includes `.js`, `.css`
46
+ *
47
+ * - The returned Promise does not mean that it was successfully loaded
48
+ * - You can monitor load is success via `monitor()`
49
+ */
50
+ async load(paths) {
51
+ paths = this.fixPaths(paths);
52
+ return Promise.all(paths.map(p => p.type === 'script' ? this.loadScript(p.path, { callback: p.callback }) : this.loadStyle(p.path))).then(res => {
53
+ this._notify.next(res);
54
+ return Promise.resolve(res);
55
+ });
56
+ }
57
+ loadScript(path, options) {
58
+ const { innerContent } = { ...options };
59
+ return new Promise(resolve => {
60
+ if (this.list[path] === true) {
61
+ resolve({ ...this.cached[path], status: 'loading' });
62
+ return;
63
+ }
64
+ this.list[path] = true;
65
+ const onSuccess = (item) => {
66
+ if (item.status === 'ok' && options?.callback) {
67
+ window[options?.callback] = () => {
68
+ onSuccessTruth(item);
69
+ };
70
+ }
71
+ else {
72
+ onSuccessTruth(item);
73
+ }
74
+ };
75
+ const onSuccessTruth = (item) => {
76
+ item.type = 'script';
77
+ this.cached[path] = item;
78
+ resolve(item);
79
+ this._notify.next([item]);
80
+ };
81
+ const node = this.doc.createElement('script');
82
+ node.type = 'text/javascript';
83
+ node.src = path;
84
+ node.charset = 'utf-8';
85
+ if (innerContent) {
86
+ node.innerHTML = innerContent;
87
+ }
88
+ if (node.readyState) {
89
+ // IE
90
+ node.onreadystatechange = () => {
91
+ if (node.readyState === 'loaded' || node.readyState === 'complete') {
92
+ node.onreadystatechange = null;
93
+ onSuccess({
94
+ path,
95
+ status: 'ok',
96
+ });
97
+ }
98
+ };
99
+ }
100
+ else {
101
+ node.onload = () => onSuccess({
102
+ path,
103
+ status: 'ok',
104
+ });
105
+ }
106
+ node.onerror = (error) => onSuccess({
107
+ path,
108
+ status: 'error',
109
+ error,
110
+ });
111
+ this.doc.getElementsByTagName('head')[0].appendChild(node);
112
+ });
113
+ }
114
+ loadStyle(path, options) {
115
+ const { rel, innerContent } = { rel: 'stylesheet', ...options };
116
+ return new Promise(resolve => {
117
+ if (this.list[path] === true) {
118
+ resolve(this.cached[path]);
119
+ return;
120
+ }
121
+ this.list[path] = true;
122
+ const node = this.doc.createElement('link');
123
+ node.rel = rel;
124
+ node.type = 'text/css';
125
+ node.href = path;
126
+ if (innerContent) {
127
+ node.innerHTML = innerContent;
128
+ }
129
+ this.doc.getElementsByTagName('head')[0].appendChild(node);
130
+ const item = {
131
+ path,
132
+ status: 'ok',
133
+ type: 'style',
134
+ };
135
+ this.cached[path] = item;
136
+ resolve(item);
137
+ });
138
+ }
139
+ }
140
+ /** @nocollapse */ NuLazyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
141
+ /** @nocollapse */ NuLazyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, providedIn: 'root' });
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NuLazyService, decorators: [{
143
+ type: Injectable,
144
+ args: [{ providedIn: 'root' }]
145
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
146
+ type: Inject,
147
+ args: [DOCUMENT]
148
+ }] }]; } });
149
+
150
+ /**
151
+ * Generated bundle index. Do not edit.
152
+ */
153
+
154
+ export { NuLazyService };
155
+ //# sourceMappingURL=ng-util-lazy.mjs.map
@@ -0,0 +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,4 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@ng-util/lazy" />
4
5
  export * from './public-api';
package/lazy.service.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
2
3
  export declare type NuLazyResourcesType = 'script' | 'style';
3
4
  export interface NuLazyResources {
4
5
  path: string;
@@ -43,4 +44,6 @@ export declare class NuLazyService {
43
44
  rel?: string;
44
45
  innerContent?: string;
45
46
  }): Promise<NuLazyResult>;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<NuLazyService, never>;
48
+ static ɵprov: i0.ɵɵInjectableDeclaration<NuLazyService>;
46
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-util/lazy",
3
- "version": "12.1.2",
3
+ "version": "14.0.0",
4
4
  "author": "cipchk<cipchk@qq.com>",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -16,17 +16,30 @@
16
16
  "util",
17
17
  "Angular utilities",
18
18
  "lazy",
19
- "load"
19
+ "load",
20
+ "angular standalone library"
20
21
  ],
21
22
  "sideEffects": false,
22
- "main": "bundles/ng-util-lazy.umd.js",
23
- "module": "fesm2015/ng-util-lazy.js",
24
- "es2015": "fesm2015/ng-util-lazy.js",
25
- "esm2015": "esm2015/ng-util-lazy.js",
26
- "fesm2015": "fesm2015/ng-util-lazy.js",
27
- "typings": "ng-util-lazy.d.ts",
28
- "metadata": "ng-util-lazy.metadata.json",
23
+ "module": "fesm2015/ng-util-lazy.mjs",
24
+ "es2020": "fesm2020/ng-util-lazy.mjs",
25
+ "esm2020": "esm2020/ng-util-lazy.mjs",
26
+ "fesm2020": "fesm2020/ng-util-lazy.mjs",
27
+ "fesm2015": "fesm2015/ng-util-lazy.mjs",
28
+ "typings": "index.d.ts",
29
+ "exports": {
30
+ "./package.json": {
31
+ "default": "./package.json"
32
+ },
33
+ ".": {
34
+ "types": "./index.d.ts",
35
+ "esm2020": "./esm2020/ng-util-lazy.mjs",
36
+ "es2020": "./fesm2020/ng-util-lazy.mjs",
37
+ "es2015": "./fesm2015/ng-util-lazy.mjs",
38
+ "node": "./fesm2015/ng-util-lazy.mjs",
39
+ "default": "./fesm2020/ng-util-lazy.mjs"
40
+ }
41
+ },
29
42
  "dependencies": {
30
- "tslib": "^2.2.0"
43
+ "tslib": "^2.3.0"
31
44
  }
32
45
  }