@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
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Parse a url into its components relative to the application base path.
3
+ * @param basePath Application base path.
4
+ * @param url Url to parse. If null, the current `window.location` is used.
5
+ * @returns Parsed url parts.
6
+ */
7
+ const parseUrl = (basePath, url) => {
8
+ const loc = window.location;
9
+ let origin = loc.origin;
10
+ let path;
11
+ let query = null;
12
+ let hash = null;
13
+ let isExternal = false;
14
+ if (basePath === '/')
15
+ basePath = '';
16
+ if (!url) {
17
+ path = loc.pathname;
18
+ if (loc.search)
19
+ query = new URLSearchParams(loc.search);
20
+ if (loc.hash)
21
+ hash = loc.hash;
22
+ }
23
+ else {
24
+ if (url.startsWith("#")) {
25
+ path = loc.pathname;
26
+ query = new URLSearchParams(loc.search);
27
+ hash = url;
28
+ }
29
+ else if (url.startsWith("?")) {
30
+ const hastIndex = url.lastIndexOf("#");
31
+ if (hastIndex !== -1) {
32
+ hash = url.substring(hastIndex);
33
+ url = url.substring(0, hastIndex);
34
+ }
35
+ path = loc.pathname;
36
+ query = new URLSearchParams(url);
37
+ }
38
+ else if (/^https?:\/\//i.test(url)) {
39
+ const u = new URL(url);
40
+ if (u.origin != origin) {
41
+ origin = u.origin;
42
+ isExternal = true;
43
+ }
44
+ path = u.pathname;
45
+ query = u.searchParams;
46
+ hash = u.hash || null;
47
+ }
48
+ else {
49
+ const hastIndex = url.lastIndexOf("#");
50
+ if (hastIndex !== -1) {
51
+ hash = url.substring(hastIndex);
52
+ url = url.substring(0, hastIndex);
53
+ }
54
+ const queryIndex = url.lastIndexOf("?");
55
+ if (queryIndex !== -1) {
56
+ query = new URLSearchParams(url.substring(queryIndex));
57
+ url = url.substring(0, queryIndex);
58
+ }
59
+ path = url;
60
+ if (!path.startsWith("/")) {
61
+ let curPath = loc.pathname;
62
+ if (curPath.endsWith("/"))
63
+ curPath = curPath.substring(0, curPath.length - 1);
64
+ path = curPath + "/" + path;
65
+ }
66
+ }
67
+ }
68
+ if (!path)
69
+ path = '/';
70
+ else if (path.length > 1 && path.endsWith('/'))
71
+ path = path.substring(0, path.length - 1);
72
+ path = path.toLowerCase();
73
+ if (basePath) {
74
+ if (path.startsWith(basePath.toLowerCase())) {
75
+ path = path.substring(basePath.length);
76
+ if (!path)
77
+ path = '/';
78
+ }
79
+ else
80
+ basePath = '';
81
+ }
82
+ if (!query)
83
+ query = new URLSearchParams();
84
+ if (hash === '#')
85
+ hash = null;
86
+ else if (hash)
87
+ hash = hash.substring(1);
88
+ var result = {
89
+ full: '',
90
+ url: '',
91
+ relative: '',
92
+ origin,
93
+ basePath,
94
+ path,
95
+ query,
96
+ hash,
97
+ external: isExternal
98
+ };
99
+ rebuildUrl(result);
100
+ return result;
101
+ };
102
+ /**
103
+ * Add or replace query parameters.
104
+ * @param url Source url for extending query.
105
+ * @param query New or update parameters.
106
+ */
107
+ const extendQuery = (url, query) => {
108
+ if (query instanceof URLSearchParams) {
109
+ query.forEach((_v, k) => url.query.delete(k));
110
+ query.forEach((v, k) => url.query.append(k, v));
111
+ }
112
+ else if (query instanceof FormData) {
113
+ query.forEach((_v, k) => url.query.delete(k));
114
+ query.forEach((v, k) => url.query.append(k, v.toString()));
115
+ }
116
+ else {
117
+ for (const key in query) {
118
+ const value = query[key];
119
+ if (value === null || typeof value === "undefined")
120
+ continue;
121
+ if (!Array.isArray(value)) {
122
+ url.query.set(key, value);
123
+ }
124
+ else {
125
+ url.query.delete(key);
126
+ value.forEach(val => url.query.append(key, val));
127
+ }
128
+ }
129
+ }
130
+ rebuildUrl(url);
131
+ };
132
+ const rebuildUrl = (parsedUrl) => {
133
+ let relativeUrl = parsedUrl.basePath + parsedUrl.path;
134
+ if (relativeUrl.length > 1 && relativeUrl.endsWith('/'))
135
+ relativeUrl = relativeUrl.substring(0, relativeUrl.length - 1);
136
+ if (parsedUrl.query.size)
137
+ relativeUrl += "?" + parsedUrl.query.toString();
138
+ parsedUrl.url = parsedUrl.origin + relativeUrl;
139
+ parsedUrl.relative = relativeUrl;
140
+ parsedUrl.full = parsedUrl.hash ? `${parsedUrl.url}#${parsedUrl.hash}` : parsedUrl.url;
141
+ };
142
+ /**
143
+ * Build a relative url from a base path with optional path, query and hash.
144
+ * @param basePath Application base path.
145
+ * @param path Optional path appended to the base path.
146
+ * @param query Optional query parameters.
147
+ * @param hash Optional hash.
148
+ * @returns Relative url with base path.
149
+ */
150
+ const buildUrl = (basePath, path, query, hash) => {
151
+ let url = basePath;
152
+ if (url == '/')
153
+ url = '';
154
+ if (path) {
155
+ if (!path.startsWith("/"))
156
+ path = '/' + path;
157
+ url += path;
158
+ }
159
+ if (!url)
160
+ url = '/';
161
+ else if (url.endsWith('/'))
162
+ url = url.substring(0, url.length - 1);
163
+ if (query) {
164
+ let params;
165
+ if (query instanceof URLSearchParams)
166
+ params = query;
167
+ else if (query instanceof FormData) {
168
+ params = new URLSearchParams();
169
+ query.forEach((value, key) => params.append(key, value.toString()));
170
+ }
171
+ else {
172
+ params = new URLSearchParams();
173
+ for (const key in query) {
174
+ const value = query[key];
175
+ if (value === null || typeof value === "undefined")
176
+ continue;
177
+ if (Array.isArray(value))
178
+ value.forEach(v => params.append(key, v));
179
+ else
180
+ params.append(key, value);
181
+ }
182
+ }
183
+ if (params.size)
184
+ url += "?" + params.toString();
185
+ }
186
+ if (hash) {
187
+ if (!hash.startsWith("#"))
188
+ hash = "#" + hash;
189
+ if (hash != "#")
190
+ url += hash;
191
+ }
192
+ return url;
193
+ };
194
+ /** Url helper functions. */
195
+ var urlHelper = {
196
+ parseUrl,
197
+ extendQuery,
198
+ buildUrl
199
+ };
200
+
201
+ export { urlHelper as default };
202
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sources":["../../../../source/helpers/url.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}