@brandup/ui-app 1.0.44 → 2.0.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.
Files changed (39) hide show
  1. package/README.md +7 -4
  2. package/dist/cjs/app.js +397 -0
  3. package/dist/cjs/app.js.map +1 -0
  4. package/dist/cjs/builder.js +53 -0
  5. package/dist/cjs/builder.js.map +1 -0
  6. package/dist/cjs/constants.js +21 -0
  7. package/dist/cjs/constants.js.map +1 -0
  8. package/dist/cjs/ext.js +39 -0
  9. package/dist/cjs/ext.js.map +1 -0
  10. package/dist/cjs/helpers/url.js +206 -0
  11. package/dist/cjs/helpers/url.js.map +1 -0
  12. package/dist/cjs/index.js +11 -760
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/middlewares/hyperlink.js +75 -0
  15. package/dist/cjs/middlewares/hyperlink.js.map +1 -0
  16. package/dist/cjs/middlewares/invoker.js +55 -0
  17. package/dist/cjs/middlewares/invoker.js.map +1 -0
  18. package/dist/cjs/middlewares/state.js +86 -0
  19. package/dist/cjs/middlewares/state.js.map +1 -0
  20. package/dist/mjs/app.js +393 -0
  21. package/dist/mjs/app.js.map +1 -0
  22. package/dist/mjs/builder.js +51 -0
  23. package/dist/mjs/builder.js.map +1 -0
  24. package/dist/mjs/constants.js +17 -0
  25. package/dist/mjs/constants.js.map +1 -0
  26. package/dist/mjs/ext.js +37 -0
  27. package/dist/mjs/ext.js.map +1 -0
  28. package/dist/mjs/helpers/url.js +202 -0
  29. package/dist/mjs/helpers/url.js.map +1 -0
  30. package/dist/mjs/index.js +7 -759
  31. package/dist/mjs/index.js.map +1 -1
  32. package/dist/mjs/middlewares/hyperlink.js +70 -0
  33. package/dist/mjs/middlewares/hyperlink.js.map +1 -0
  34. package/dist/mjs/middlewares/invoker.js +53 -0
  35. package/dist/mjs/middlewares/invoker.js.map +1 -0
  36. package/dist/mjs/middlewares/state.js +81 -0
  37. package/dist/mjs/middlewares/state.js.map +1 -0
  38. package/dist/types.d.ts +155 -7
  39. package/package.json +11 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../source/middlewares/invoker.ts","../../source/constants.ts","../../source/middlewares/state.ts","../../source/middlewares/hyperlink.ts","../../source/helpers/url.ts","../../source/app.ts","../../source/builder.ts","../../source/ext.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CONSTANTS","StateMiddleware","HyperLinkMiddleware"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,70 @@
1
+ import result from '../constants.js';
2
+
3
+ /** Unique name of the built-in hyperlink middleware. */
4
+ const HYPERLINK_MIDDLEWARE_NAME = "app-hyperlink";
5
+ /**
6
+ * Create the built-in hyperlink middleware that intercepts clicks on application links
7
+ * (anchors with the `applink` class or elements with `data-nav-url`) and routes them through
8
+ * application navigation. Honors meta/ctrl-click and `target="_blank"` to open in a new tab.
9
+ * @returns The hyperlink middleware instance.
10
+ */
11
+ const HyperLinkMiddlewareFactory = () => {
12
+ let onClick;
13
+ return {
14
+ name: HYPERLINK_MIDDLEWARE_NAME,
15
+ start: async (context, next) => {
16
+ await next();
17
+ window.addEventListener("click", onClick = (e) => {
18
+ let elem = e.target;
19
+ let ignore = false;
20
+ while (elem) {
21
+ if (elem instanceof HTMLElement) {
22
+ if (elem.hasAttribute(result.NavIgnoreAttributeName)) {
23
+ ignore = true;
24
+ break;
25
+ }
26
+ if (elem.classList.contains(result.NavUrlClassName) || elem.hasAttribute(result.NavUrlAttributeName))
27
+ break;
28
+ }
29
+ elem = elem.parentElement;
30
+ }
31
+ if (!elem || e.ctrlKey || e.metaKey || elem.getAttribute("target") === "_blank")
32
+ return;
33
+ e.preventDefault();
34
+ e.stopPropagation();
35
+ if (ignore)
36
+ return;
37
+ let url;
38
+ if (elem.tagName === "A")
39
+ url = elem.getAttribute("href");
40
+ else if (elem.hasAttribute(result.NavUrlAttributeName))
41
+ url = elem.getAttribute(result.NavUrlAttributeName);
42
+ else {
43
+ // matched an applink element with no resolvable url (malformed markup);
44
+ // swallow the click rather than throwing inside a global event listener
45
+ console.warn("Application hyperlink: clicked element has no navigation url.");
46
+ return;
47
+ }
48
+ if (elem.classList.contains(result.LoadingElementClass))
49
+ return;
50
+ elem.classList.add(result.LoadingElementClass);
51
+ context.app
52
+ .nav({
53
+ url,
54
+ replace: elem.hasAttribute(result.NavUrlReplaceAttributeName),
55
+ scope: elem.getAttribute(result.NavUrlScopeAttributeName),
56
+ data: { clickElem: elem }
57
+ })
58
+ .catch(() => { })
59
+ .finally(() => elem.classList.remove(result.LoadingElementClass));
60
+ }, false);
61
+ },
62
+ stop: (_context, next) => {
63
+ window.removeEventListener("click", onClick, false);
64
+ return next();
65
+ }
66
+ };
67
+ };
68
+
69
+ export { HYPERLINK_MIDDLEWARE_NAME, HyperLinkMiddlewareFactory as default };
70
+ //# sourceMappingURL=hyperlink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperlink.js","sources":["../../../../source/middlewares/hyperlink.ts"],"sourcesContent":[null],"names":["CONSTANTS"],"mappings":";;AAGA;AACO,MAAM,yBAAyB,GAAG;AAEzC;;;;;AAKG;AACH,MAAM,0BAA0B,GAAG,MAAiB;AACnD,IAAA,IAAI,OAA4C;IAEhD,OAAO;AACN,QAAA,IAAI,EAAE,yBAAyB;AAC/B,QAAA,KAAK,EAAE,OAAO,OAAqB,EAAE,IAAoB,KAAI;YAC5D,MAAM,IAAI,EAAE;YAEZ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAa,KAAI;AAC5D,gBAAA,IAAI,IAAI,GAAgB,CAAC,CAAC,MAAc;gBACxC,IAAI,MAAM,GAAG,KAAK;gBAClB,OAAO,IAAI,EAAE;AACZ,oBAAA,IAAI,IAAI,YAAY,WAAW,EAAE;wBAChC,IAAI,IAAI,CAAC,YAAY,CAACA,MAAS,CAAC,sBAAsB,CAAC,EAAE;4BACxD,MAAM,GAAG,IAAI;4BACb;wBACD;AAEA,wBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAACA,MAAS,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,YAAY,CAACA,MAAS,CAAC,mBAAmB,CAAC;4BACzG;oBACF;AAEA,oBAAA,IAAI,GAAG,IAAI,CAAC,aAAa;gBAC1B;AAEA,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,QAAQ;oBAC9E;gBAED,CAAC,CAAC,cAAc,EAAE;gBAClB,CAAC,CAAC,eAAe,EAAE;AAEnB,gBAAA,IAAI,MAAM;oBACT;AAED,gBAAA,IAAI,GAAkB;AACtB,gBAAA,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG;AACvB,oBAAA,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAC3B,qBAAA,IAAI,IAAI,CAAC,YAAY,CAACA,MAAS,CAAC,mBAAmB,CAAC;oBACxD,GAAG,GAAG,IAAI,CAAC,YAAY,CAACA,MAAS,CAAC,mBAAmB,CAAC;qBAClD;;;AAGJ,oBAAA,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC;oBAC7E;gBACD;gBAEA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAACA,MAAS,CAAC,mBAAmB,CAAC;oBACzD;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAACA,MAAS,CAAC,mBAAmB,CAAC;AAEjD,gBAAA,OAAO,CAAC;AACN,qBAAA,GAAG,CAAC;oBACJ,GAAG;oBACH,OAAO,EAAE,IAAI,CAAC,YAAY,CAACA,MAAS,CAAC,0BAA0B,CAAC;oBAChE,KAAK,EAAE,IAAI,CAAC,YAAY,CAACA,MAAS,CAAC,wBAAwB,CAAC;AAC5D,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI;iBACvB;AACA,qBAAA,KAAK,CAAC,MAAK,EAAG,CAAC;AACf,qBAAA,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAACA,MAAS,CAAC,mBAAmB,CAAC,CAAC;YACtE,CAAC,EAAE,KAAK,CAAC;QACV,CAAC;AACD,QAAA,IAAI,EAAE,CAAC,QAAqB,EAAE,IAAoB,KAAI;YACrD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;YAEnD,OAAO,IAAI,EAAE;QACd;KACA;AACF;;;;"}
@@ -0,0 +1,53 @@
1
+ /** Runs a chain of middlewares, invoking the named method on each in registration order. */
2
+ class MiddlewareInvoker {
3
+ /** Middleware handled by this invoker node. */
4
+ middleware;
5
+ __next;
6
+ __tail = this;
7
+ /**
8
+ * @param middleware Middleware handled by this invoker node.
9
+ */
10
+ constructor(middleware) {
11
+ this.middleware = middleware;
12
+ }
13
+ /**
14
+ * Append a middleware to the end of the chain.
15
+ * @param middleware Middleware to add.
16
+ */
17
+ next(middleware) {
18
+ const invoker = new MiddlewareInvoker(middleware);
19
+ this.__tail.__next = invoker;
20
+ this.__tail = invoker;
21
+ }
22
+ /**
23
+ * Invoke the given method across the whole middleware chain.
24
+ * @param method Name of the middleware method to call (e.g. "start", "navigate").
25
+ * @param context Invocation context.
26
+ * @returns Promise resolved when the chain has completed.
27
+ */
28
+ invoke(method, context) {
29
+ return this.__exec(method, context);
30
+ }
31
+ async __exec(method, context) {
32
+ let nextCalled = false;
33
+ const nextFunc = () => {
34
+ if (nextCalled)
35
+ throw new Error(`Middleware "${this.middleware.name}" called next() more than once for method "${method}".`);
36
+ nextCalled = true;
37
+ return this.__next ? this.__next.__exec(method, context) : Promise.resolve();
38
+ };
39
+ context.abort.throwIfAborted();
40
+ const methodFunc = this.middleware[method];
41
+ if (typeof methodFunc === "function") {
42
+ const methodResult = methodFunc.call(this.middleware, context, nextFunc);
43
+ if (!methodResult || !(methodResult instanceof Promise))
44
+ throw new Error(`Middleware "${this.middleware.name}" method "${method}" is not async.`);
45
+ await methodResult;
46
+ }
47
+ else
48
+ await nextFunc();
49
+ }
50
+ }
51
+
52
+ export { MiddlewareInvoker };
53
+ //# sourceMappingURL=invoker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoker.js","sources":["../../../../source/middlewares/invoker.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;MACa,iBAAiB,CAAA;;AAEpB,IAAA,UAAU;AACX,IAAA,MAAM;IACN,MAAM,GAAsB,IAAI;AAExC;;AAEG;AACH,IAAA,WAAA,CAAY,UAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;IAC7B;AAEA;;;AAGG;AACH,IAAA,IAAI,CAAC,UAAsB,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC;AACjD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO;IACtB;AAEA;;;;;AAKG;IACH,MAAM,CAAiC,MAAc,EAAE,OAAiB,EAAA;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpC;AAEQ,IAAA,MAAM,MAAM,CAAC,MAAc,EAAE,OAAsB,EAAA;QAC1D,IAAI,UAAU,GAAG,KAAK;QACtB,MAAM,QAAQ,GAAmB,MAAK;AACrC,YAAA,IAAI,UAAU;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,UAAU,CAAC,IAAI,CAAA,2CAAA,EAA8C,MAAM,CAAA,EAAA,CAAI,CAAC;YAC7G,UAAU,GAAG,IAAI;YAEjB,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE;AAC7E,QAAA,CAAC;AAED,QAAA,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE;QAE9B,MAAM,UAAU,GAAqB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AAC5D,QAAA,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AACrC,YAAA,MAAM,YAAY,GAAkB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;YAEvF,IAAI,CAAC,YAAY,IAAI,EAAE,YAAY,YAAY,OAAO,CAAC;AACtD,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,UAAU,CAAC,IAAI,CAAA,UAAA,EAAa,MAAM,CAAA,eAAA,CAAiB,CAAC;AAEzF,YAAA,MAAM,YAAY;QACnB;;YAEC,MAAM,QAAQ,EAAE;IAClB;AACA;;;;"}
@@ -0,0 +1,81 @@
1
+ import result from '../constants.js';
2
+
3
+ /** Unique name of the built-in state middleware. */
4
+ const STATE_MIDDLEWARE_NAME = "app-state";
5
+ /**
6
+ * Create the built-in state middleware that toggles loading/loaded/ready CSS state
7
+ * classes on the application element during start, load, navigation and submit.
8
+ * @returns The state middleware instance.
9
+ */
10
+ const StateMiddlewareFactory = () => {
11
+ let counter = 0;
12
+ const begin = (context) => {
13
+ const prev = counter++;
14
+ if (prev === 0) {
15
+ context.app.element?.classList.remove(result.STATE_CLASS.LOADED);
16
+ context.app.element?.classList.add(result.STATE_CLASS.LOADING);
17
+ }
18
+ };
19
+ const end = (context) => {
20
+ counter--;
21
+ if (counter <= 0) {
22
+ counter = 0;
23
+ context.app.element?.classList.add(result.STATE_CLASS.LOADED);
24
+ context.app.element?.classList.remove(result.STATE_CLASS.LOADING);
25
+ }
26
+ };
27
+ return {
28
+ name: STATE_MIDDLEWARE_NAME,
29
+ start: async (context, next) => {
30
+ begin(context);
31
+ try {
32
+ await next();
33
+ // on success the begin() is left open on purpose: the loading state
34
+ // must persist through "loaded" and the first navigation, which closes
35
+ // it (see the "first" branch in navigate). On error we close it here.
36
+ }
37
+ catch (reason) {
38
+ end(context);
39
+ throw reason;
40
+ }
41
+ },
42
+ loaded: async (context, next) => {
43
+ try {
44
+ await next();
45
+ context.app.element?.classList.add(result.STATE_CLASS.READY);
46
+ }
47
+ catch (reason) {
48
+ end(context);
49
+ throw reason;
50
+ }
51
+ },
52
+ navigate: async (context, next) => {
53
+ begin(context);
54
+ try {
55
+ await next();
56
+ }
57
+ finally {
58
+ end(context); // close the begin() of this navigation
59
+ // the first navigation also closes the loading opened by start(),
60
+ // which intentionally leaves its begin() open until the page is rendered
61
+ if (context.source == "first")
62
+ end(context);
63
+ }
64
+ },
65
+ submit: async (context, next) => {
66
+ begin(context);
67
+ try {
68
+ await next();
69
+ }
70
+ finally {
71
+ end(context);
72
+ }
73
+ },
74
+ stop: async (_context, next) => {
75
+ await next();
76
+ }
77
+ };
78
+ };
79
+
80
+ export { STATE_MIDDLEWARE_NAME, StateMiddlewareFactory as default };
81
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sources":["../../../../source/middlewares/state.ts"],"sourcesContent":[null],"names":["CONSTANTS"],"mappings":";;AAGA;AACO,MAAM,qBAAqB,GAAG;AAErC;;;;AAIG;AACH,MAAM,sBAAsB,GAAG,MAAiB;IAC/C,IAAI,OAAO,GAAW,CAAC;AAEvB,IAAA,MAAM,KAAK,GAAG,CAAC,OAAsB,KAAI;AACxC,QAAA,MAAM,IAAI,GAAG,OAAO,EAAE;AAEtB,QAAA,IAAI,IAAI,KAAK,CAAC,EAAE;AACf,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAACA,MAAS,CAAC,WAAW,CAAC,MAAM,CAAC;AACnE,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAACA,MAAS,CAAC,WAAW,CAAC,OAAO,CAAC;QAClE;AACD,IAAA,CAAC;AAED,IAAA,MAAM,GAAG,GAAG,CAAC,OAAsB,KAAI;AACtC,QAAA,OAAO,EAAE;AAET,QAAA,IAAI,OAAO,IAAI,CAAC,EAAE;YACjB,OAAO,GAAG,CAAC;AAEX,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAACA,MAAS,CAAC,WAAW,CAAC,MAAM,CAAC;AAChE,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAACA,MAAS,CAAC,WAAW,CAAC,OAAO,CAAC;QACrE;AACD,IAAA,CAAC;IAED,OAAO;AACN,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,KAAK,EAAE,OAAO,OAAqB,EAAE,IAAoB,KAAI;YAC5D,KAAK,CAAC,OAAO,CAAC;AAEd,YAAA,IAAI;gBACH,MAAM,IAAI,EAAE;;;;YAKb;YACA,OAAO,MAAM,EAAE;gBACd,GAAG,CAAC,OAAO,CAAC;AACZ,gBAAA,MAAM,MAAM;YACb;QACD,CAAC;AACD,QAAA,MAAM,EAAE,OAAO,OAAqB,EAAE,IAAoB,KAAI;AAC7D,YAAA,IAAI;gBACH,MAAM,IAAI,EAAE;AAEZ,gBAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAACA,MAAS,CAAC,WAAW,CAAC,KAAK,CAAC;YAChE;YACA,OAAO,MAAM,EAAE;gBACd,GAAG,CAAC,OAAO,CAAC;AACZ,gBAAA,MAAM,MAAM;YACb;QACD,CAAC;AACD,QAAA,QAAQ,EAAE,OAAO,OAAwB,EAAE,IAAoB,KAAI;YAClE,KAAK,CAAC,OAAO,CAAC;AAEd,YAAA,IAAI;gBACH,MAAM,IAAI,EAAE;YACb;oBACQ;AACP,gBAAA,GAAG,CAAC,OAAO,CAAC,CAAC;;;AAIb,gBAAA,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO;oBAC5B,GAAG,CAAC,OAAO,CAAC;YACd;QACD,CAAC;AACD,QAAA,MAAM,EAAE,OAAO,OAAsB,EAAE,IAAoB,KAAI;YAC9D,KAAK,CAAC,OAAO,CAAC;AAEd,YAAA,IAAI;gBACH,MAAM,IAAI,EAAE;YACb;oBACQ;gBACP,GAAG,CAAC,OAAO,CAAC;YACb;QACD,CAAC;AACD,QAAA,IAAI,EAAE,OAAO,QAAqB,EAAE,IAAoB,KAAI;YAC3D,MAAM,IAAI,EAAE;QACb;KACA;AACF;;;;"}
package/dist/types.d.ts CHANGED
@@ -1,54 +1,94 @@
1
1
  import { UIElement } from '@brandup/ui';
2
2
 
3
+ /** Runtime environment of the application. */
3
4
  interface EnvironmentModel {
5
+ /** Base path prefix for all application urls. */
4
6
  basePath: string;
7
+ /** Additional environment values. */
5
8
  [key: string]: any;
6
9
  }
10
+ /** Application model carrying application-specific data. */
7
11
  interface ApplicationModel {
12
+ /** Arbitrary model values. */
8
13
  [key: string]: any;
9
14
  }
15
+ /** Query parameters as a plain object; values may be single or multiple. */
10
16
  interface QueryParams {
11
17
  [key: string]: string | string[];
12
18
  }
13
19
 
20
+ /** Application middleware injecting into lifecycle events. */
14
21
  interface Middleware {
22
+ /** Unique name of the middleware. */
15
23
  readonly name: string;
24
+ /** Called when the application starts. */
16
25
  start?: MiddlewareMethod;
26
+ /** Called after the application is loaded. */
17
27
  loaded?: MiddlewareMethod;
28
+ /** Called on each navigation. */
18
29
  navigate?: MiddlewareMethod;
30
+ /** Called on each form submit. */
19
31
  submit?: MiddlewareMethod;
32
+ /** Called when the application is destroyed. */
20
33
  stop?: MiddlewareMethod;
34
+ /** Custom middleware methods. */
21
35
  [key: string]: MiddlewareMethod | any;
22
36
  }
37
+ /**
38
+ * A middleware lifecycle method.
39
+ * @param context Invocation context.
40
+ * @param next Callback that runs the next middleware in the chain.
41
+ */
23
42
  type MiddlewareMethod<TContext extends InvokeContext = any> = (context: TContext, next: MiddlewareNext) => Promise<void>;
43
+ /** Runs the next middleware in the chain. */
24
44
  type MiddlewareNext = () => Promise<void>;
45
+ /** Base context passed to every middleware method. */
25
46
  interface InvokeContext {
47
+ /** Application instance. */
26
48
  readonly app: Application;
49
+ /** Context data shared across the middleware chain. */
27
50
  readonly data: ContextData;
51
+ /** Abort signal for the current operation. */
28
52
  readonly abort: AbortSignal;
29
53
  }
54
+ /** Arbitrary data carried through a middleware invocation. */
30
55
  interface ContextData {
31
56
  [key: string]: any;
32
57
  }
58
+ /** Context for the `start` and `loaded` middleware methods. */
33
59
  interface StartContext<TApplication extends Application = Application, TData extends ContextData = ContextData> extends InvokeContext {
60
+ /** Application instance. */
34
61
  readonly app: TApplication;
62
+ /** Start context data. */
35
63
  readonly data: TData;
36
64
  }
65
+ /** Context for the `stop` middleware method. */
37
66
  interface StopContext<TApplication extends Application = Application, TData extends ContextData = ContextData> extends InvokeContext {
67
+ /** Application instance. */
38
68
  readonly app: TApplication;
69
+ /** Stop context data. */
39
70
  readonly data: TData;
40
71
  }
72
+ /** Options for an application navigation. */
41
73
  interface NavigateOptions<TData extends ContextData = ContextData> {
74
+ /** Target url. Relative urls are resolved against the application base path. */
42
75
  url?: string | null;
76
+ /** Query parameters to add or replace on the target url. */
43
77
  query?: QueryParams | URLSearchParams | FormData;
78
+ /** Replace the current history entry instead of pushing a new one. */
44
79
  replace?: boolean;
80
+ /** Navigation scope. */
45
81
  scope?: string | null;
82
+ /** Navigation context data. */
46
83
  data?: TData;
84
+ /** External abort signal to cancel the navigation. */
47
85
  abort?: AbortSignal;
48
86
  }
87
+ /** Context for the `navigate` middleware method. */
49
88
  interface NavigateContext<TApplication extends Application = Application, TData extends ContextData = ContextData> extends InvokeContext {
50
89
  /** Index number of all application navigations. */
51
90
  readonly index: number;
91
+ /** Unique identifier of this navigation. */
52
92
  readonly id: string;
53
93
  /** Source navigation event. */
54
94
  readonly source: NavigateSource;
@@ -58,8 +98,11 @@ interface NavigateContext<TApplication extends Application = Application, TData
58
98
  readonly current?: NavigateContext<TApplication, TData>;
59
99
  /** Parent navigation context. Specified if the navigation is nested. */
60
100
  readonly parent?: NavigateContext<TApplication, TData>;
101
+ /** True if this navigation was overridden by a newer one (e.g. a redirect). */
61
102
  readonly overided: boolean;
103
+ /** Kind of navigation relative to the current url. */
62
104
  readonly action: NavigateAction;
105
+ /** Navigation context data. */
63
106
  readonly data: TData;
64
107
  /** Origin, path and query, but without hash. */
65
108
  readonly url: string;
@@ -79,8 +122,14 @@ interface NavigateContext<TApplication extends Application = Application, TData
79
122
  readonly external: boolean;
80
123
  /** Replace current navigation entry. */
81
124
  replace: boolean;
125
+ /** Navigation scope. */
82
126
  scope?: string | null;
83
- /** Redirect to new url and throw for end current context. */
127
+ /**
128
+ * Redirect to a new url and throw to end the current context.
129
+ * Always throws {@link NAV_OVERIDE_ERROR}.
130
+ * @param options Navigate options or target url.
131
+ * @returns Promise of the redirected navigation context.
132
+ */
84
133
  redirect(options?: NavigateOptions<TData> | string | null): Promise<NavigateContext<TApplication, TData>>;
85
134
  }
86
135
  /**
@@ -90,32 +139,70 @@ interface NavigateContext<TApplication extends Application = Application, TData
90
139
  * submit - from submit form.
91
140
  */
92
141
  type NavigateSource = "first" | "nav" | "submit";
142
+ /**
143
+ * Kind of navigation relative to the current url.
144
+ * first - first navigation by application.
145
+ * url-change - the url path or query changed.
146
+ * url-no-change - the url did not change.
147
+ * hash - only the hash changed.
148
+ * submit - navigation triggered by a form submit.
149
+ */
93
150
  type NavigateAction = "first" | "url-change" | "url-no-change" | "hash" | "submit";
151
+ /** Options for a form submit. */
94
152
  interface SubmitOptions<TData extends ContextData = ContextData> {
153
+ /** Form being submitted. */
95
154
  form: HTMLFormElement;
155
+ /** Submit button that triggered the submit, if any. */
96
156
  button?: HTMLButtonElement | null;
157
+ /** Query parameters to add or replace on the action url. */
97
158
  query?: QueryParams | URLSearchParams;
159
+ /** Submit context data. */
98
160
  data?: TData;
161
+ /** External abort signal to cancel the submit. */
99
162
  abort?: AbortSignal;
100
163
  }
164
+ /** Context for the `submit` middleware method. Extends the navigation context. */
101
165
  interface SubmitContext<TApplication extends Application = Application, TData extends ContextData = ContextData> extends NavigateContext<TApplication, TData> {
166
+ /** Submitted form element. */
102
167
  readonly form: HTMLFormElement;
168
+ /** Submit button that triggered the submit, if any. */
103
169
  readonly button: HTMLButtonElement | null;
170
+ /** HTTP method of the submit (upper-cased). */
104
171
  readonly method: SubmitMethod;
172
+ /** Form encoding type. */
105
173
  readonly enctype: string;
106
174
  }
175
+ /** HTTP method used for a form submit. */
107
176
  type SubmitMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | string;
108
177
 
178
+ /** Runs a chain of middlewares, invoking the named method on each in registration order. */
109
179
  declare class MiddlewareInvoker {
180
+ /** Middleware handled by this invoker node. */
110
181
  readonly middleware: Middleware;
111
182
  private __next?;
183
+ private __tail;
184
+ /**
185
+ * @param middleware Middleware handled by this invoker node.
186
+ */
112
187
  constructor(middleware: Middleware);
188
+ /**
189
+ * Append a middleware to the end of the chain.
190
+ * @param middleware Middleware to add.
191
+ */
113
192
  next(middleware: Middleware): void;
193
+ /**
194
+ * Invoke the given method across the whole middleware chain.
195
+ * @param method Name of the middleware method to call (e.g. "start", "navigate").
196
+ * @param context Invocation context.
197
+ * @returns Promise resolved when the chain has completed.
198
+ */
114
199
  invoke<TContext extends InvokeContext>(method: string, context: TContext): Promise<void>;
115
200
  private __exec;
116
201
  }
117
202
 
203
+ /** Type name of the base {@link Application} class. */
118
204
  declare const APP_TYPENAME = "brandup-ui-app";
205
+ /** Reason value thrown when a navigation is overridden (e.g. by a redirect). */
119
206
  declare const NAV_OVERIDE_ERROR = "NavigationOveride";
120
207
  /**
121
208
  * Base application class.
@@ -132,9 +219,15 @@ declare class Application<TModel extends ApplicationModel = ApplicationModel> ex
132
219
  private __isRuned?;
133
220
  private __middlewares;
134
221
  private __globalSubmit?;
222
+ private __onPopStateHandler?;
135
223
  private __execNav?;
136
224
  private __lastNav?;
225
+ /**
226
+ * @param env Application environment.
227
+ * @param model Application model.
228
+ */
137
229
  constructor(env: EnvironmentModel, model: TModel, ..._args: any[]);
230
+ /** Type name of the application. */
138
231
  get typeName(): string;
139
232
  /** Current navigation context. */
140
233
  get current(): NavigateContext<this> | undefined;
@@ -142,15 +235,26 @@ declare class Application<TModel extends ApplicationModel = ApplicationModel> ex
142
235
  get abort(): AbortSignal;
143
236
  /** @internal */
144
237
  initialize(middlewares: Middleware[]): void;
145
- /** Initialize application instance. */
238
+ /**
239
+ * Initialize application instance. Override to register additional middlewares.
240
+ * Registers the built-in state and hyperlink middlewares by default.
241
+ */
146
242
  protected onInitialize(): void;
147
- /** Begin run application. */
243
+ /**
244
+ * Called at the beginning of application run, before middlewares start.
245
+ * Override to perform async setup work.
246
+ * @returns Promise resolved when starting work is complete.
247
+ */
148
248
  protected onStarting(): Promise<void>;
149
- /** Complate run application. */
249
+ /**
250
+ * Called after the application has fully started.
251
+ * Override to perform async work after start.
252
+ * @returns Promise resolved when post-start work is complete.
253
+ */
150
254
  protected onStared(): Promise<void>;
151
255
  /**
152
- * Get middleware by type.
153
- * @param type Type of middleware.
256
+ * Get registered middleware by its unique name.
257
+ * @param name Unique name of middleware.
154
258
  * @returns Middleware instance.
155
259
  */
156
260
  middleware<T extends Middleware>(name: string): T;
@@ -175,6 +279,11 @@ declare class Application<TModel extends ApplicationModel = ApplicationModel> ex
175
279
  * Global reload page in browser.
176
280
  */
177
281
  restart(): void;
282
+ /**
283
+ * Destroy application: abort pending navigations, run the middleware "stop" chain and release listeners.
284
+ * @param contextData Stop context data.
285
+ * @returns Promise of the stop context.
286
+ */
178
287
  destroy<TData extends ContextData = ContextData>(contextData?: TData | null): Promise<StopContext<this, TData>>;
179
288
  /**
180
289
  * Generate url of application base url.
@@ -193,13 +302,34 @@ declare class Application<TModel extends ApplicationModel = ApplicationModel> ex
193
302
  private __execNavigate;
194
303
  }
195
304
 
305
+ /** Fluent builder that configures the application type, middlewares and model, then constructs an {@link Application}. */
196
306
  declare class ApplicationBuilder<TModel extends ApplicationModel> {
197
307
  private __model;
198
308
  private __appType;
199
309
  private __middlewares;
310
+ /**
311
+ * @param model Application model used when building the application.
312
+ */
200
313
  constructor(model: TModel);
314
+ /**
315
+ * Set a custom application type to instantiate instead of the base {@link Application}.
316
+ * @param appType Application class constructor.
317
+ * @returns The builder, for chaining.
318
+ */
201
319
  useApp(appType: typeof Application<TModel>): this;
320
+ /**
321
+ * Register a middleware via its factory function. Middlewares run in registration order.
322
+ * @param createFunc Factory that creates the middleware instance.
323
+ * @param params Optional arguments passed to the factory.
324
+ * @returns The builder, for chaining.
325
+ */
202
326
  useMiddleware(createFunc: ((...params: Array<any>) => Middleware), ...params: Array<any>): this;
327
+ /**
328
+ * Build and initialize the application instance.
329
+ * @param env Application environment (a base path of `/` is normalized to empty).
330
+ * @param args Extra arguments forwarded to the application constructor.
331
+ * @returns The initialized application instance.
332
+ */
203
333
  build(env: EnvironmentModel, ...args: any[]): Application<TModel>;
204
334
  }
205
335
 
@@ -215,18 +345,36 @@ declare global {
215
345
  navScope(scope: string): this;
216
346
  }
217
347
  }
348
+ /**
349
+ * Install the `HTMLElement.prototype` navigation helpers (`nav`, `navUrl`, `navReplace`,
350
+ * `navScope`). Opt-in (no longer a side effect on import) so bundlers can tree-shake them
351
+ * away when unused. {@link Application} calls this automatically on `run`; call it yourself
352
+ * only if you use the helpers before the application starts. Idempotent; no-op without a DOM.
353
+ */
354
+ declare function enableNavExtensions(): void;
218
355
 
356
+ /** Parsed url components. */
219
357
  interface ParsedUrl {
358
+ /** Origin, path, query and hash. */
220
359
  full: string;
360
+ /** Origin, path and query, but without hash. */
221
361
  url: string;
362
+ /** Path and query, but without hash. */
222
363
  relative: string;
364
+ /** Scheme, host and port. */
223
365
  origin: string;
366
+ /** Base path. */
224
367
  basePath: string;
368
+ /** Path of the url. */
225
369
  path: string;
370
+ /** Query parameters of the url. */
226
371
  query: URLSearchParams;
372
+ /** Hash of the url, without the leading `#`. */
227
373
  hash: string | null;
374
+ /** True if the origin differs from the current page origin. */
228
375
  external: boolean;
229
376
  }
377
+ /** Url helper functions. */
230
378
  declare const _default: {
231
379
  parseUrl: (basePath: string, url: string | null) => ParsedUrl;
232
380
  extendQuery: (url: ParsedUrl, query: QueryParams | URLSearchParams | FormData) => void;
@@ -261,5 +409,5 @@ declare namespace constants {
261
409
  };
262
410
  }
263
411
 
264
- export { APP_TYPENAME, Application, ApplicationBuilder, constants as CONSTANTS, NAV_OVERIDE_ERROR, url as UrlHelper };
412
+ export { APP_TYPENAME, Application, ApplicationBuilder, constants as CONSTANTS, NAV_OVERIDE_ERROR, url as UrlHelper, enableNavExtensions };
265
413
  export type { ApplicationModel, ContextData, EnvironmentModel, InvokeContext, Middleware, MiddlewareMethod, MiddlewareNext, NavigateAction, NavigateContext, NavigateOptions, NavigateSource, QueryParams, StartContext, StopContext, SubmitContext, SubmitMethod, SubmitOptions };
package/package.json CHANGED
@@ -23,12 +23,19 @@
23
23
  "main": "dist/cjs/index.js",
24
24
  "module": "dist/mjs/index.js",
25
25
  "types": "dist/types.d.ts",
26
+ "sideEffects": false,
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/types.d.ts",
30
+ "import": "./dist/mjs/index.js",
31
+ "require": "./dist/cjs/index.js"
32
+ }
33
+ },
26
34
  "license": "Apache-2.0",
27
- "version": "1.0.44",
35
+ "version": "2.0.2",
28
36
  "dependencies": {
29
- "@brandup/ui": "^1.0.44",
30
- "@brandup/ui-dom": "^1.0.44",
31
- "@brandup/ui-helpers": "^1.0.44"
37
+ "@brandup/ui": "^2.0.2",
38
+ "@brandup/ui-helpers": "^2.0.2"
32
39
  },
33
40
  "files": [
34
41
  "dist",