@quenk/frontend 0.21.0 → 0.21.2
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.
- package/lib/app/model/http/callback.d.ts +8 -6
- package/lib/app/model/http/callback.js +27 -6
- package/lib/app/model/http/callback.js.map +1 -1
- package/lib/app/model/http/index.d.ts +4 -4
- package/lib/app/model/http/index.js +4 -4
- package/lib/app/model/http/index.js.map +1 -1
- package/lib/app/model/http/remote.d.ts +2 -2
- package/lib/app/model/http/remote.js +3 -3
- package/lib/app/model/http/remote.js.map +1 -1
- package/lib/app/model/index.d.ts +1 -1
- package/lib/app/remote.js.map +1 -1
- package/lib/app/router/hash.d.ts +29 -84
- package/lib/app/router/hash.js +72 -101
- package/lib/app/router/hash.js.map +1 -1
- package/lib/app/router/index.d.ts +4 -4
- package/lib/app/scene/form/index.d.ts +2 -2
- package/lib/app/scene/form/index.js +2 -2
- package/lib/app/scene/form/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,10 +14,12 @@ export interface HttpCallback {
|
|
|
14
14
|
onError(err: Error): void;
|
|
15
15
|
}
|
|
16
16
|
export declare class DefaultHttpCallback {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
cbs: Partial<HttpCallback>;
|
|
18
|
+
constructor(cbs?: Partial<HttpCallback>);
|
|
19
|
+
onNotFound(r: Response<Object>): void;
|
|
20
|
+
onConflict(r: Response<Object>): void;
|
|
21
|
+
onBadRequest(r: Response<Object>): void;
|
|
22
|
+
onUnauthorized(r: Response<Object>): void;
|
|
23
|
+
onForbidden(r: Response<Object>): void;
|
|
24
|
+
onError(r: Error): void;
|
|
23
25
|
}
|
|
@@ -3,12 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DefaultHttpCallback = exports.ERR_REQUEST_FAILED = void 0;
|
|
4
4
|
exports.ERR_REQUEST_FAILED = 'ERR_REQUEST_FAILED';
|
|
5
5
|
class DefaultHttpCallback {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
constructor(cbs = {}) {
|
|
7
|
+
this.cbs = cbs;
|
|
8
|
+
}
|
|
9
|
+
onNotFound(r) {
|
|
10
|
+
if (this.cbs.onNotFound)
|
|
11
|
+
this.cbs.onNotFound(r);
|
|
12
|
+
}
|
|
13
|
+
onConflict(r) {
|
|
14
|
+
if (this.cbs.onConflict)
|
|
15
|
+
this.cbs.onConflict(r);
|
|
16
|
+
}
|
|
17
|
+
onBadRequest(r) {
|
|
18
|
+
if (this.cbs.onBadRequest)
|
|
19
|
+
this.cbs.onBadRequest(r);
|
|
20
|
+
}
|
|
21
|
+
onUnauthorized(r) {
|
|
22
|
+
if (this.cbs.onUnauthorized)
|
|
23
|
+
this.cbs.onUnauthorized(r);
|
|
24
|
+
}
|
|
25
|
+
onForbidden(r) {
|
|
26
|
+
if (this.cbs.onForbidden)
|
|
27
|
+
this.cbs.onForbidden(r);
|
|
28
|
+
}
|
|
29
|
+
onError(r) {
|
|
30
|
+
if (this.cbs.onError)
|
|
31
|
+
this.cbs.onError(r);
|
|
32
|
+
}
|
|
12
33
|
}
|
|
13
34
|
exports.DefaultHttpCallback = DefaultHttpCallback;
|
|
14
35
|
//# sourceMappingURL=callback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/app/model/http/callback.ts"],"names":[],"mappings":";;;AAIa,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAoBvD,MAAa,mBAAmB;IAC5B,UAAU,CAAC,CAAmB,
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/app/model/http/callback.ts"],"names":[],"mappings":";;;AAIa,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAoBvD,MAAa,mBAAmB;IAC5B,YAAmB,MAA6B,EAAE;QAA/B,QAAG,GAAH,GAAG,CAA4B;IAAG,CAAC;IAEtD,UAAU,CAAC,CAAmB;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,CAAmB;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,YAAY,CAAC,CAAmB;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,CAAmB;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc;YAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,CAAmB;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,CAAQ;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;CACJ;AA1BD,kDA0BC"}
|
|
@@ -95,7 +95,7 @@ export declare class RequestFactory {
|
|
|
95
95
|
/**
|
|
96
96
|
* search generates a request for the model "search" method.
|
|
97
97
|
*/
|
|
98
|
-
search(qry
|
|
98
|
+
search(qry?: Object): Request<Object>;
|
|
99
99
|
/**
|
|
100
100
|
* update generates a request for the model "update" method.
|
|
101
101
|
*/
|
|
@@ -119,7 +119,7 @@ export declare class RequestFactory {
|
|
|
119
119
|
export declare abstract class HttpModel<T extends Object> implements Model<T> {
|
|
120
120
|
path: Path;
|
|
121
121
|
callback: HttpCallback;
|
|
122
|
-
constructor(path: Path, callback
|
|
122
|
+
constructor(path: Path, callback: HttpCallback);
|
|
123
123
|
/**
|
|
124
124
|
* requests factory used to create Request objects.
|
|
125
125
|
*/
|
|
@@ -146,7 +146,7 @@ export declare abstract class HttpModel<T extends Object> implements Model<T> {
|
|
|
146
146
|
export declare class SimpleHttpModel<T extends Object> extends HttpModel<T> {
|
|
147
147
|
path: Path;
|
|
148
148
|
agent: Agent<Object, Object>;
|
|
149
|
-
callbacks
|
|
150
|
-
constructor(path: Path, agent: Agent<Object, Object>, callbacks?: HttpCallback
|
|
149
|
+
callbacks: Partial<HttpCallback>;
|
|
150
|
+
constructor(path: Path, agent: Agent<Object, Object>, callbacks?: Partial<HttpCallback>);
|
|
151
151
|
send(req: Request<Object>): Promise<Response<Object>>;
|
|
152
152
|
}
|
|
@@ -37,7 +37,7 @@ class RequestFactory {
|
|
|
37
37
|
/**
|
|
38
38
|
* search generates a request for the model "search" method.
|
|
39
39
|
*/
|
|
40
|
-
search(qry) {
|
|
40
|
+
search(qry = {}) {
|
|
41
41
|
return new request_1.Get(this.path, qry, {
|
|
42
42
|
tags: (0, record_1.merge)((0, type_1.isObject)(qry.$tags) ? qry.$tags : {}, {
|
|
43
43
|
path: this.path,
|
|
@@ -92,7 +92,7 @@ exports.RequestFactory = RequestFactory;
|
|
|
92
92
|
* to utilize a Remote actor, see the RemoteModel implementation elsewhere.
|
|
93
93
|
*/
|
|
94
94
|
class HttpModel {
|
|
95
|
-
constructor(path, callback
|
|
95
|
+
constructor(path, callback) {
|
|
96
96
|
this.path = path;
|
|
97
97
|
this.callback = callback;
|
|
98
98
|
/**
|
|
@@ -169,8 +169,8 @@ exports.HttpModel = HttpModel;
|
|
|
169
169
|
* need something more complicated.
|
|
170
170
|
*/
|
|
171
171
|
class SimpleHttpModel extends HttpModel {
|
|
172
|
-
constructor(path, agent, callbacks) {
|
|
173
|
-
super(path, callbacks);
|
|
172
|
+
constructor(path, agent, callbacks = {}) {
|
|
173
|
+
super(path, new callback_1.DefaultHttpCallback(callbacks));
|
|
174
174
|
this.path = path;
|
|
175
175
|
this.agent = agent;
|
|
176
176
|
this.callbacks = callbacks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/model/http/index.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAEhD,sDAA0E;AAE1E,wDAA4D;AAC5D,oDAA2D;AAM3D,oDAAkE;AAElE,yCAA+D;AAKlD,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAC5C,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAmF1C,QAAA,OAAO,GAAG,WAAW,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAa,cAAc;IACvB,YAAmB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAmB,IAAO;QAC5B,OAAO,IAAI,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;YAC7B,IAAI,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,QAAQ;aACnB;SACJ,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/model/http/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,8 @@ export declare class RemoteModel<T extends Object> extends HttpModel<T> {
|
|
|
18
18
|
parent: Parent;
|
|
19
19
|
server: Address;
|
|
20
20
|
path: Path;
|
|
21
|
-
|
|
22
|
-
constructor(parent: Parent, server: Address, path: Path,
|
|
21
|
+
partialCallback: Partial<HttpCallback>;
|
|
22
|
+
constructor(parent: Parent, server: Address, path: Path, partialCallback?: Partial<HttpCallback>);
|
|
23
23
|
/**
|
|
24
24
|
* send a request to the remote back-end.
|
|
25
25
|
*
|
|
@@ -15,12 +15,12 @@ exports.ERR_REQUEST_ABORTED = 'ERR_REQUEST_ABORTED';
|
|
|
15
15
|
* updated, authentication errors to be intercepted etc. at scale.
|
|
16
16
|
*/
|
|
17
17
|
class RemoteModel extends _1.HttpModel {
|
|
18
|
-
constructor(parent, server, path,
|
|
19
|
-
super(path);
|
|
18
|
+
constructor(parent, server, path, partialCallback = {}) {
|
|
19
|
+
super(path, new callback_1.DefaultHttpCallback(partialCallback));
|
|
20
20
|
this.parent = parent;
|
|
21
21
|
this.server = server;
|
|
22
22
|
this.path = path;
|
|
23
|
-
this.
|
|
23
|
+
this.partialCallback = partialCallback;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* send a request to the remote back-end.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../src/app/model/http/remote.ts"],"names":[],"mappings":";;;AAGA,iEAA8D;AAK9D,gEAA4D;AAG5D,yCAA+D;AAC/D,yCAAwD;AACxD,wBAA8B;AAEjB,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAa,WAA8B,SAAQ,YAAY;IAC3D,YACW,MAAc,EACd,MAAe,EACf,IAAU,EACV,
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../src/app/model/http/remote.ts"],"names":[],"mappings":";;;AAGA,iEAA8D;AAK9D,gEAA4D;AAG5D,yCAA+D;AAC/D,yCAAwD;AACxD,wBAA8B;AAEjB,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAa,WAA8B,SAAQ,YAAY;IAC3D,YACW,MAAc,EACd,MAAe,EACf,IAAU,EACV,kBAAyC,EAAE;QAElD,KAAK,CAAC,IAAI,EAAE,IAAI,8BAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;QAL/C,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAS;QACf,SAAI,GAAJ,IAAI,CAAM;QACV,oBAAe,GAAf,eAAe,CAA4B;IAGtD,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,GAAoB;QACrB,OAAO,eAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;gBAC1B,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,aAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAErD,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnB,MAAM,GAAG,CAAC,OAAO,CAAC;wBACd,IAAI,oBAAQ,CAAC,eAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAClC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CACrB;wBACD,IAAI,oBAAQ,CAAC,mBAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;qBACrD,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,2BAAmB,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAlCD,kCAkCC"}
|
package/lib/app/model/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export interface Model<T extends Object> {
|
|
|
19
19
|
/**
|
|
20
20
|
* search for entries that match the specified query criteria.
|
|
21
21
|
*/
|
|
22
|
-
search(qry
|
|
22
|
+
search(qry?: Object): Promise<T[]>;
|
|
23
23
|
/**
|
|
24
24
|
* update a single entry with the data provided.
|
|
25
25
|
*/
|
package/lib/app/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/app/remote.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAEhD,6DAA8D;AAQ9D,wEAAsE;AAGtE,oDAA0E;AAE1E;;;GAGG;AACH,MAAa,IAAI;IACb,YACW,MAAe,EACf,OAA4B;QAD5B,WAAM,GAAN,MAAM,CAAS;QACf,YAAO,GAAP,OAAO,CAAqB;IACpC,CAAC;CACP;AALD,oBAKC;AAID;;GAEG;AACH,MAAa,MAAM;IACf,YAAmB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;CACpD;AAFD,wBAEC;AAED;;;GAGG;AACH,MAAa,UAAU;IACnB,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;CACtC;AAFD,gCAEC;AAED;;;;;;;GAOG;AACH,MAAa,MAAO,SAAQ,oBAAS;IACjC,YACW,OAAgB,EAChB,KAAgC,EAChC,WAAyB,IAAI,8BAAmB,EAAE;QAEzD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAA2B;QAChC,aAAQ,GAAR,QAAQ,CAA0C;QAK7D,WAAM,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAQ,EAAE,EAAE;YACzC,IAAI,GAAG,CAAC;YACR,IAAI,CAAC;gBACD,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/app/remote.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAEhD,6DAA8D;AAQ9D,wEAAsE;AAGtE,oDAA0E;AAE1E;;;GAGG;AACH,MAAa,IAAI;IACb,YACW,MAAe,EACf,OAA4B;QAD5B,WAAM,GAAN,MAAM,CAAS;QACf,YAAO,GAAP,OAAO,CAAqB;IACpC,CAAC;CACP;AALD,oBAKC;AAID;;GAEG;AACH,MAAa,MAAM;IACf,YAAmB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;CACpD;AAFD,wBAEC;AAED;;;GAGG;AACH,MAAa,UAAU;IACnB,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;CACtC;AAFD,gCAEC;AAED;;;;;;;GAOG;AACH,MAAa,MAAO,SAAQ,oBAAS;IACjC,YACW,OAAgB,EAChB,KAAgC,EAChC,WAAyB,IAAI,8BAAmB,EAAE;QAEzD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAA2B;QAChC,aAAQ,GAAR,QAAQ,CAA0C;QAK7D,WAAM,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAQ,EAAE,EAAE;YACzC,IAAI,GAAG,CAAC;YACR,IAAI,CAAC;gBACD,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAQ,CAAC,CAAC,CAAC;gBACtC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,UAAU,CAAQ,CAAC,CAAC,CAAC,CAAC;gBAClD,OAAO;YACX,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAEzB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC;IAfF,CAAC;IAiBD;;;;OAIG;IAEH,KAAK,CAAC,cAAc,CAAC,GAAqB;QACtC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,WAAW;gBACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM;YACV,KAAK,MAAM,CAAC,YAAY;gBACpB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,MAAM,CAAC,SAAS;gBACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM;YACV,KAAK,MAAM,CAAC,QAAQ;gBAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,MAAM,CAAC,SAAS;gBACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YACV;gBACI,MAAM;QACd,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,CAAC,IAAI,eAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;CACJ;AAvDD,wBAuDC"}
|
package/lib/app/router/hash.d.ts
CHANGED
|
@@ -16,108 +16,54 @@ export type Params = JObject;
|
|
|
16
16
|
/**
|
|
17
17
|
* Filter type.
|
|
18
18
|
*/
|
|
19
|
-
export type Filter
|
|
19
|
+
export type Filter = router.Filter<HashRequest>;
|
|
20
20
|
/**
|
|
21
21
|
* Handler type.
|
|
22
22
|
*/
|
|
23
|
-
export type Handler
|
|
23
|
+
export type Handler = router.Handler<HashRequest>;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
export type OnError = (e: Error) => Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* OnNotFound type.
|
|
30
|
-
*/
|
|
31
|
-
export type OnNotFound = (path: Path) => Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Routes table.
|
|
25
|
+
* CompiledRoute used internally by the Router.
|
|
26
|
+
* @private
|
|
34
27
|
*/
|
|
35
|
-
export
|
|
36
|
-
|
|
28
|
+
export declare class CompiledRoute {
|
|
29
|
+
regex: RegExp;
|
|
30
|
+
keys: Key[];
|
|
31
|
+
handler: Handler;
|
|
32
|
+
constructor(regex: RegExp, keys: Key[], handler: Handler);
|
|
37
33
|
}
|
|
38
34
|
/**
|
|
39
|
-
*
|
|
35
|
+
* HashRequest represents a change in the browser's hash triggered
|
|
36
|
+
* by the user.
|
|
40
37
|
*/
|
|
41
|
-
export
|
|
42
|
-
|
|
43
|
-
* path requested
|
|
44
|
-
*/
|
|
45
|
-
path: Path;
|
|
46
|
-
/**
|
|
47
|
-
* query data.
|
|
48
|
-
*/
|
|
38
|
+
export declare class HashRequest {
|
|
39
|
+
path: string;
|
|
49
40
|
query: Query;
|
|
50
|
-
/**
|
|
51
|
-
* params data.
|
|
52
|
-
*/
|
|
53
41
|
params: Params;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Cache used internally by the Router.
|
|
57
|
-
* @private
|
|
58
|
-
*/
|
|
59
|
-
export declare class Cache<R extends Request> {
|
|
60
|
-
regex: RegExp;
|
|
61
|
-
keys: Key[];
|
|
62
|
-
filters: Filter<R>[];
|
|
63
|
-
handler: Handler<R>;
|
|
64
|
-
constructor(regex: RegExp, keys: Key[], filters: Filter<R>[], handler: Handler<R>);
|
|
42
|
+
constructor(path: string, query: Query, params: Params);
|
|
65
43
|
}
|
|
66
44
|
/**
|
|
67
45
|
* AbstractHashRouter implementation based on the value of window.location.hash.
|
|
68
46
|
*/
|
|
69
|
-
export declare
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* onError is invoked when an non-thrown error is invoked.
|
|
81
|
-
*/
|
|
82
|
-
abstract onError(e: Error): Promise<void>;
|
|
83
|
-
/**
|
|
84
|
-
* onNotFound is invoked each time the user navigates to an unknown route.
|
|
85
|
-
*/
|
|
86
|
-
abstract onNotFound(path: Path): Promise<void>;
|
|
87
|
-
handleEvent(_: Event): void;
|
|
47
|
+
export declare class HashRouter implements router.Router<HashRequest> {
|
|
48
|
+
routes: Map<string, Handler>;
|
|
49
|
+
onError: (e: Error) => Promise<void>;
|
|
50
|
+
onNotFound: (path: Path) => Promise<void>;
|
|
51
|
+
filters: Filter[];
|
|
52
|
+
cache: CompiledRoute[];
|
|
53
|
+
constructor(routes?: Map<string, Handler>, onError?: (e: Error) => Promise<void>, onNotFound?: (path: Path) => Promise<void>, filters?: Filter[], cache?: CompiledRoute[]);
|
|
54
|
+
handleEvent(): void;
|
|
55
|
+
dispatch(): Promise<void>;
|
|
56
|
+
use(filter: Filter): this;
|
|
88
57
|
/**
|
|
89
|
-
*
|
|
58
|
+
* set a Handler to the route table for a specific path.
|
|
90
59
|
*/
|
|
91
|
-
|
|
92
|
-
use(path: string, mware: Filter<R>): AbstractHashRouter<R>;
|
|
60
|
+
set(path: string, handler: Handler): this;
|
|
93
61
|
clear(): void;
|
|
94
62
|
/**
|
|
95
63
|
* start activates routing by installing a hook into the supplied
|
|
96
64
|
* window.
|
|
97
65
|
*/
|
|
98
|
-
start():
|
|
99
|
-
stop(): AbstractHashRouter<R>;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* DefaultRequest represents a change in the browser's hash triggered
|
|
103
|
-
* by the user.
|
|
104
|
-
*/
|
|
105
|
-
export declare class DefaultRequest {
|
|
106
|
-
path: string;
|
|
107
|
-
query: Query;
|
|
108
|
-
params: Params;
|
|
109
|
-
constructor(path: string, query: Query, params: Params);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* HashRouter implementation.
|
|
113
|
-
*/
|
|
114
|
-
export declare class HashRouter extends AbstractHashRouter<DefaultRequest> {
|
|
115
|
-
window: Window;
|
|
116
|
-
routes: Routes<DefaultRequest>;
|
|
117
|
-
error: OnError;
|
|
118
|
-
notFound: OnNotFound;
|
|
119
|
-
constructor(window: Window, routes?: Routes<DefaultRequest>, error?: OnError, notFound?: OnNotFound);
|
|
120
|
-
createRequest(path: Path, query: Query, params: Params): Promise<DefaultRequest>;
|
|
66
|
+
start(): this;
|
|
121
67
|
/**
|
|
122
68
|
* navigate to a new path without user interaction.
|
|
123
69
|
*
|
|
@@ -127,8 +73,7 @@ export declare class HashRouter extends AbstractHashRouter<DefaultRequest> {
|
|
|
127
73
|
* @param path - The path to navigate to; should not include '#'.
|
|
128
74
|
*/
|
|
129
75
|
navigate(path: Path): void;
|
|
130
|
-
|
|
131
|
-
onNotFound(path: Path): Promise<void>;
|
|
76
|
+
stop(): this;
|
|
132
77
|
}
|
|
133
78
|
/**
|
|
134
79
|
* takeHash from a Window object.
|
|
@@ -139,4 +84,4 @@ export declare const takeHash: (w: Window) => string[];
|
|
|
139
84
|
/**
|
|
140
85
|
* compile a Routes map into a Cache for faster route matching.
|
|
141
86
|
*/
|
|
142
|
-
export declare const compile:
|
|
87
|
+
export declare const compile: (routes: Map<Path, Handler>) => CompiledRoute[];
|
package/lib/app/router/hash.js
CHANGED
|
@@ -1,128 +1,97 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compile = exports.takeHash = exports.HashRouter = exports.
|
|
3
|
+
exports.compile = exports.takeHash = exports.HashRouter = exports.HashRequest = exports.CompiledRoute = void 0;
|
|
4
4
|
const qs = require("qs");
|
|
5
5
|
const toRegex = require("path-to-regexp");
|
|
6
|
-
const
|
|
6
|
+
const array_1 = require("@quenk/noni/lib/data/array");
|
|
7
7
|
const EVENT_HASH_CHANGED = 'hashchange';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* CompiledRoute used internally by the Router.
|
|
10
10
|
* @private
|
|
11
11
|
*/
|
|
12
|
-
class
|
|
13
|
-
constructor(regex, keys,
|
|
12
|
+
class CompiledRoute {
|
|
13
|
+
constructor(regex, keys, handler) {
|
|
14
14
|
this.regex = regex;
|
|
15
15
|
this.keys = keys;
|
|
16
|
-
this.filters = filters;
|
|
17
16
|
this.handler = handler;
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
|
-
exports.
|
|
19
|
+
exports.CompiledRoute = CompiledRoute;
|
|
20
|
+
/**
|
|
21
|
+
* HashRequest represents a change in the browser's hash triggered
|
|
22
|
+
* by the user.
|
|
23
|
+
*/
|
|
24
|
+
class HashRequest {
|
|
25
|
+
constructor(path, query, params) {
|
|
26
|
+
this.path = path;
|
|
27
|
+
this.query = query;
|
|
28
|
+
this.params = params;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.HashRequest = HashRequest;
|
|
21
32
|
/**
|
|
22
33
|
* AbstractHashRouter implementation based on the value of window.location.hash.
|
|
23
34
|
*/
|
|
24
|
-
class
|
|
25
|
-
constructor(
|
|
26
|
-
|
|
35
|
+
class HashRouter {
|
|
36
|
+
constructor(routes = new Map(), onError = (e) => Promise.reject(e), onNotFound = async (path) => {
|
|
37
|
+
console.error(`Path "${path}" is not configured!`);
|
|
38
|
+
}, filters = [], cache = []) {
|
|
27
39
|
this.routes = routes;
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
40
|
+
this.onError = onError;
|
|
41
|
+
this.onNotFound = onNotFound;
|
|
42
|
+
this.filters = filters;
|
|
43
|
+
this.cache = cache;
|
|
30
44
|
}
|
|
31
|
-
handleEvent(
|
|
32
|
-
|
|
33
|
-
let cache = this.cache;
|
|
34
|
-
let mware = [];
|
|
35
|
-
let handler = async () => { };
|
|
36
|
-
let keys = [];
|
|
37
|
-
let r = null;
|
|
38
|
-
let count = 0;
|
|
39
|
-
while (r == null && count < cache.length) {
|
|
40
|
-
r = cache[count].regex.exec(path);
|
|
41
|
-
keys = cache[count].keys;
|
|
42
|
-
mware = cache[count].filters;
|
|
43
|
-
handler = cache[count].handler;
|
|
44
|
-
count = count + 1;
|
|
45
|
-
}
|
|
46
|
-
if (r != null) {
|
|
47
|
-
let ft = this.createRequest(path, qs.parse(query), parseParams(keys, r));
|
|
48
|
-
mware
|
|
49
|
-
.reduce((p, c) => p.then(c), ft)
|
|
50
|
-
.then(handler)
|
|
51
|
-
.catch(e => this.onError(e));
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
this.onNotFound(path).catch(console.error);
|
|
55
|
-
}
|
|
45
|
+
handleEvent() {
|
|
46
|
+
this.dispatch();
|
|
56
47
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
48
|
+
async dispatch() {
|
|
49
|
+
let [path, query] = (0, exports.takeHash)(window);
|
|
50
|
+
for (let route of this.cache) {
|
|
51
|
+
let hit = route.regex.exec(path);
|
|
52
|
+
if (hit == null)
|
|
53
|
+
continue;
|
|
54
|
+
let req = new HashRequest(path, qs.parse(query), parseParams(route.keys, hit));
|
|
55
|
+
try {
|
|
56
|
+
for (let f of this.filters) {
|
|
57
|
+
let res = await f(req);
|
|
58
|
+
if (!res)
|
|
59
|
+
return; // halts further execution
|
|
60
|
+
req = res;
|
|
61
|
+
}
|
|
62
|
+
await route.handler(req);
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
await this.onError(e);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
63
68
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
this.cache = (0, exports.compile)(this.routes);
|
|
69
|
+
}
|
|
70
|
+
use(filter) {
|
|
71
|
+
this.filters.push(filter);
|
|
68
72
|
return this;
|
|
69
73
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
this.routes[path] = [[mware], async () => { }];
|
|
76
|
-
}
|
|
77
|
-
this.cache = (0, exports.compile)(this.routes);
|
|
74
|
+
/**
|
|
75
|
+
* set a Handler to the route table for a specific path.
|
|
76
|
+
*/
|
|
77
|
+
set(path, handler) {
|
|
78
|
+
this.routes.set(path, handler);
|
|
78
79
|
return this;
|
|
79
80
|
}
|
|
80
81
|
clear() {
|
|
81
82
|
this.cache = [];
|
|
82
|
-
this.
|
|
83
|
+
this.filters = [];
|
|
84
|
+
this.routes = new Map();
|
|
83
85
|
}
|
|
84
86
|
/**
|
|
85
87
|
* start activates routing by installing a hook into the supplied
|
|
86
88
|
* window.
|
|
87
89
|
*/
|
|
88
90
|
start() {
|
|
89
|
-
this.
|
|
91
|
+
this.cache = (0, array_1.empty)(this.cache) ? (0, exports.compile)(this.routes) : this.cache;
|
|
92
|
+
window.addEventListener(EVENT_HASH_CHANGED, this);
|
|
90
93
|
return this;
|
|
91
94
|
}
|
|
92
|
-
stop() {
|
|
93
|
-
this.window.removeEventListener(EVENT_HASH_CHANGED, this);
|
|
94
|
-
return this;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
exports.AbstractHashRouter = AbstractHashRouter;
|
|
98
|
-
/**
|
|
99
|
-
* DefaultRequest represents a change in the browser's hash triggered
|
|
100
|
-
* by the user.
|
|
101
|
-
*/
|
|
102
|
-
class DefaultRequest {
|
|
103
|
-
constructor(path, query, params) {
|
|
104
|
-
this.path = path;
|
|
105
|
-
this.query = query;
|
|
106
|
-
this.params = params;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
exports.DefaultRequest = DefaultRequest;
|
|
110
|
-
/**
|
|
111
|
-
* HashRouter implementation.
|
|
112
|
-
*/
|
|
113
|
-
class HashRouter extends AbstractHashRouter {
|
|
114
|
-
constructor(window, routes = {}, error = async (e) => {
|
|
115
|
-
console.error(e);
|
|
116
|
-
}, notFound = async () => { }) {
|
|
117
|
-
super(window, routes);
|
|
118
|
-
this.window = window;
|
|
119
|
-
this.routes = routes;
|
|
120
|
-
this.error = error;
|
|
121
|
-
this.notFound = notFound;
|
|
122
|
-
}
|
|
123
|
-
async createRequest(path, query, params) {
|
|
124
|
-
return new DefaultRequest(path, query, params);
|
|
125
|
-
}
|
|
126
95
|
/**
|
|
127
96
|
* navigate to a new path without user interaction.
|
|
128
97
|
*
|
|
@@ -135,14 +104,12 @@ class HashRouter extends AbstractHashRouter {
|
|
|
135
104
|
path = path.split('#').join('');
|
|
136
105
|
path = `#${path}`;
|
|
137
106
|
if (window.location.hash === path)
|
|
138
|
-
this.
|
|
107
|
+
this.dispatch();
|
|
139
108
|
window.location.hash = path;
|
|
140
109
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
async onNotFound(path) {
|
|
145
|
-
return this.notFound(path);
|
|
110
|
+
stop() {
|
|
111
|
+
window.removeEventListener(EVENT_HASH_CHANGED, this);
|
|
112
|
+
return this;
|
|
146
113
|
}
|
|
147
114
|
}
|
|
148
115
|
exports.HashRouter = HashRouter;
|
|
@@ -163,9 +130,13 @@ exports.takeHash = takeHash;
|
|
|
163
130
|
/**
|
|
164
131
|
* compile a Routes map into a Cache for faster route matching.
|
|
165
132
|
*/
|
|
166
|
-
const compile = (
|
|
167
|
-
let
|
|
168
|
-
|
|
169
|
-
|
|
133
|
+
const compile = (routes) => {
|
|
134
|
+
let cache = [];
|
|
135
|
+
for (let [path, handler] of routes.entries()) {
|
|
136
|
+
let keys = [];
|
|
137
|
+
cache.push(new CompiledRoute(toRegex.pathToRegexp(path, keys), keys, handler));
|
|
138
|
+
}
|
|
139
|
+
return cache;
|
|
140
|
+
};
|
|
170
141
|
exports.compile = compile;
|
|
171
142
|
//# sourceMappingURL=hash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/app/router/hash.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,0CAA0C;AAM1C,
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/app/router/hash.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export type Route = string;
|
|
|
5
5
|
/**
|
|
6
6
|
* Filter types transform <R> values before they are passed to handlers.
|
|
7
7
|
*/
|
|
8
|
-
export type Filter<R> = (req: R) => Promise<R>;
|
|
8
|
+
export type Filter<R> = (req: R) => Promise<R | void>;
|
|
9
9
|
/**
|
|
10
10
|
* Handler is the action taken to terminate a request.
|
|
11
11
|
*/
|
|
@@ -26,13 +26,13 @@ export interface Router<R> {
|
|
|
26
26
|
*/
|
|
27
27
|
onNotFound(url: string): Promise<void>;
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* set a Handler to the internal route table.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
set(path: Route, handler: Handler<R>): Router<R>;
|
|
32
32
|
/**
|
|
33
33
|
* use a Filter for a specific path.
|
|
34
34
|
*/
|
|
35
|
-
use(
|
|
35
|
+
use(mware: Filter<R>): Router<R>;
|
|
36
36
|
/**
|
|
37
37
|
* clear all routes from the Router.
|
|
38
38
|
*/
|
|
@@ -118,7 +118,7 @@ export interface FormScene<T extends Object> extends AppScene {
|
|
|
118
118
|
*
|
|
119
119
|
* Success should result in the form exiting.
|
|
120
120
|
*/
|
|
121
|
-
save(): void;
|
|
121
|
+
save(value?: T): void;
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
124
|
* AppFormScene provides an abstract implementation of the FormScene interface.
|
|
@@ -178,5 +178,5 @@ export declare abstract class AppFormScene<T extends Object> extends AppScene im
|
|
|
178
178
|
* the removal of the view. Note: instead of overriding this method,
|
|
179
179
|
* override execute instead unless you want to change its behaviour.
|
|
180
180
|
*/
|
|
181
|
-
save(): Promise<void>;
|
|
181
|
+
save(value?: T): Promise<void>;
|
|
182
182
|
}
|
|
@@ -126,10 +126,10 @@ class AppFormScene extends __1.AppScene {
|
|
|
126
126
|
* the removal of the view. Note: instead of overriding this method,
|
|
127
127
|
* override execute instead unless you want to change its behaviour.
|
|
128
128
|
*/
|
|
129
|
-
async save() {
|
|
129
|
+
async save(value) {
|
|
130
130
|
this.errors = {};
|
|
131
131
|
let result = await this.doSave();
|
|
132
|
-
await this.tell(this.owner, new FormState(this.self, true, this.getValues(), result));
|
|
132
|
+
await this.tell(this.owner, new FormState(this.self, true, value !== null && value !== void 0 ? value : this.getValues(), result));
|
|
133
133
|
await this.exit();
|
|
134
134
|
}
|
|
135
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/scene/form/index.ts"],"names":[],"mappings":";;;AAAA,wDAAmE;AACnE,sDAAsD;AAEtD,oDAAgD;AAChD,6DAA8D;AAM9D,2BAA+B;AAuD/B;;;GAGG;AACH,MAAa,KAAK;CAAG;AAArB,sBAAqB;AAErB;;GAEG;AACH,MAAa,IAAI;CAAG;AAApB,oBAAoB;AAEpB;;;;;GAKG;AACH,MAAa,SAAS;IAClB;;;;;;OAMG;IACH,YACW,IAAa,EACb,EAAW,EACX,OAAe,EAAE,EACjB,MAAoB;QAHpB,SAAI,GAAJ,IAAI,CAAS;QACb,OAAE,GAAF,EAAE,CAAS;QACX,SAAI,GAAJ,IAAI,CAAa;QACjB,WAAM,GAAN,MAAM,CAAc;IAC5B,CAAC;CACP;AAdD,8BAcC;AAgDD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAsB,YAClB,SAAQ,YAAQ;IAGhB,YACW,OAAgB,EAChB,KAAc,EACd,OAAgB,EAChB,QAAoB,EAAE;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QALR,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAAS;QACd,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAAiB;QAKjC;;;WAGG;QACH,kBAAa,GAAgB,EAAE,CAAC;QAEhC,WAAM,GAAe,EAAE,CAAC;IARxB,CAAC;IAUD,SAAS;QACL,OAAO;YACH,IAAI,eAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC,CAAC;YAEF,IAAI,eAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;gBACpB,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC;YAEF,IAAI,eAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAG,EAAE,EAAE,CAAC,CAAC,EAAE;gBAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAa,CAAC,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC;SACL,CAAC;IACN,CAAC;IAED,GAAG,CAAC,IAAe,EAAE,KAAiB;QAClC,IAAI,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9D,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAEnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS;QACL,OAAU,IAAA,cAAK,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB;QACb,OAAmB,CACf,IAAA,eAAM,EAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAChC,IAAA,gBAAQ,EAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAClC,CACJ,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,IAAI,CACX,IAAI,CAAC,KAAK,EACV,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CACpD,CAAC;QAEF,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/scene/form/index.ts"],"names":[],"mappings":"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"}
|