@furystack/shades 7.2.6 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/components/index.js +4 -0
- package/esm/components/index.js.map +1 -0
- package/{dist → esm}/components/lazy-load.js +2 -5
- package/esm/components/lazy-load.js.map +1 -0
- package/{dist → esm}/components/route-link.js +7 -10
- package/esm/components/route-link.js.map +1 -0
- package/{dist → esm}/components/router.js +13 -19
- package/esm/components/router.js.map +1 -0
- package/esm/index.js +8 -0
- package/esm/index.js.map +1 -0
- package/esm/initialize.js +5 -0
- package/esm/initialize.js.map +1 -0
- package/esm/jsx.js +2 -0
- package/esm/models/children-list.js +2 -0
- package/esm/models/index.js +6 -0
- package/esm/models/index.js.map +1 -0
- package/esm/models/partial-element.js +2 -0
- package/esm/models/render-options.js +2 -0
- package/esm/models/selection-state.js +2 -0
- package/esm/models/shade-component.js +9 -0
- package/esm/models/shade-component.js.map +1 -0
- package/esm/services/index.js +3 -0
- package/esm/services/index.js.map +1 -0
- package/{dist → esm}/services/location-service.js +14 -17
- package/esm/services/location-service.js.map +1 -0
- package/{dist → esm}/services/resource-manager.js +3 -7
- package/esm/services/resource-manager.js.map +1 -0
- package/{dist → esm}/services/screen-service.js +12 -15
- package/esm/services/screen-service.js.map +1 -0
- package/{dist → esm}/shade-component.js +20 -33
- package/esm/shade-component.js.map +1 -0
- package/{dist → esm}/shade.js +10 -15
- package/esm/shade.js.map +1 -0
- package/package.json +26 -9
- package/src/component-factory.spec.tsx +2 -1
- package/src/components/lazy-load.spec.tsx +9 -4
- package/src/components/route-link.spec.tsx +8 -3
- package/src/components/router.spec.tsx +11 -6
- package/src/components/router.tsx +2 -2
- package/src/models/render-options.ts +0 -4
- package/src/models/shade-component.ts +0 -1
- package/src/services/location-service.spec.ts +8 -3
- package/src/services/resource-manager.spec.ts +1 -0
- package/src/services/screen-service.spec.ts +7 -2
- package/src/shade-component.ts +0 -2
- package/src/shade-resources.integration.spec.tsx +8 -3
- package/src/shade.ts +0 -1
- package/src/shades.integration.spec.tsx +11 -6
- package/types/models/render-options.d.ts +0 -4
- package/types/models/render-options.d.ts.map +1 -1
- package/types/models/shade-component.d.ts +0 -1
- package/types/models/shade-component.d.ts.map +1 -1
- package/types/shade-component.d.ts +0 -2
- package/types/shade-component.d.ts.map +1 -1
- package/types/shade.d.ts +0 -1
- package/types/shade.d.ts.map +1 -1
- package/dist/component-factory.spec.js +0 -81
- package/dist/component-factory.spec.js.map +0 -1
- package/dist/components/index.js +0 -20
- package/dist/components/index.js.map +0 -1
- package/dist/components/lazy-load.js.map +0 -1
- package/dist/components/lazy-load.spec.js +0 -72
- package/dist/components/lazy-load.spec.js.map +0 -1
- package/dist/components/route-link.js.map +0 -1
- package/dist/components/route-link.spec.js +0 -28
- package/dist/components/route-link.spec.js.map +0 -1
- package/dist/components/router.js.map +0 -1
- package/dist/components/router.spec.js +0 -84
- package/dist/components/router.spec.js.map +0 -1
- package/dist/index.js +0 -24
- package/dist/index.js.map +0 -1
- package/dist/initialize.js +0 -9
- package/dist/initialize.js.map +0 -1
- package/dist/jsx.js +0 -3
- package/dist/models/children-list.js +0 -3
- package/dist/models/index.js +0 -22
- package/dist/models/index.js.map +0 -1
- package/dist/models/partial-element.js +0 -3
- package/dist/models/render-options.js +0 -3
- package/dist/models/selection-state.js +0 -3
- package/dist/models/shade-component.js +0 -14
- package/dist/models/shade-component.js.map +0 -1
- package/dist/services/index.js +0 -19
- package/dist/services/index.js.map +0 -1
- package/dist/services/location-service.js.map +0 -1
- package/dist/services/location-service.spec.js +0 -86
- package/dist/services/location-service.spec.js.map +0 -1
- package/dist/services/resource-manager.js.map +0 -1
- package/dist/services/resource-manager.spec.js +0 -32
- package/dist/services/resource-manager.spec.js.map +0 -1
- package/dist/services/screen-service.js.map +0 -1
- package/dist/services/screen-service.spec.js +0 -25
- package/dist/services/screen-service.spec.js.map +0 -1
- package/dist/shade-component.js.map +0 -1
- package/dist/shade-resources.integration.spec.js +0 -55
- package/dist/shade-resources.integration.spec.js.map +0 -1
- package/dist/shade.js.map +0 -1
- package/dist/shades.integration.spec.js +0 -251
- package/dist/shades.integration.spec.js.map +0 -1
- package/types/component-factory.spec.d.ts +0 -2
- package/types/component-factory.spec.d.ts.map +0 -1
- package/types/components/lazy-load.spec.d.ts +0 -2
- package/types/components/lazy-load.spec.d.ts.map +0 -1
- package/types/components/route-link.spec.d.ts +0 -2
- package/types/components/route-link.spec.d.ts.map +0 -1
- package/types/components/router.spec.d.ts +0 -2
- package/types/components/router.spec.d.ts.map +0 -1
- package/types/services/location-service.spec.d.ts +0 -2
- package/types/services/location-service.spec.d.ts.map +0 -1
- package/types/services/resource-manager.spec.d.ts +0 -2
- package/types/services/resource-manager.spec.d.ts.map +0 -1
- package/types/services/screen-service.spec.d.ts +0 -2
- package/types/services/screen-service.spec.d.ts.map +0 -1
- package/types/shade-resources.integration.spec.d.ts +0 -2
- package/types/shade-resources.integration.spec.d.ts.map +0 -1
- package/types/shades.integration.spec.d.ts +0 -2
- package/types/shades.integration.spec.d.ts.map +0 -1
- /package/{dist → esm}/jsx.js.map +0 -0
- /package/{dist → esm}/models/children-list.js.map +0 -0
- /package/{dist → esm}/models/partial-element.js.map +0 -0
- /package/{dist → esm}/models/render-options.js.map +0 -0
- /package/{dist → esm}/models/selection-state.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.LazyLoad = void 0;
|
|
4
|
-
const shade_1 = require("../shade");
|
|
5
|
-
exports.LazyLoad = (0, shade_1.Shade)({
|
|
1
|
+
import { Shade } from '../shade';
|
|
2
|
+
export const LazyLoad = Shade({
|
|
6
3
|
shadowDomName: 'lazy-load',
|
|
7
4
|
constructed: async ({ props, useState, element }) => {
|
|
8
5
|
const [_component, setComponent] = useState('component', undefined);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-load.js","sourceRoot":"","sources":["../../src/components/lazy-load.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAahC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAgB;IAC3C,aAAa,EAAE,WAAW;IAC1B,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAClD,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA0B,WAAW,EAAE,SAAS,CAAC,CAAA;QAC5F,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAsB,OAAO,EAAE,SAAS,CAAC,CAAA;QACtF,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAA;YACtC,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;SAC5C;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,CAAC,KAAK,EAAE;gBACf,OAAO,CAAC,WAAW,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;aAC5C;iBAAM;gBACL,MAAM,KAAK,CAAA;aACZ;SACF;IACH,CAAC;IACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB,OAAO,EAAE,SAAS,CAAC,CAAA;QAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA0B,WAAW,EAAE,SAAS,CAAC,CAAA;QAE3F,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YACxB,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;gBACnC,IAAI;oBACF,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,YAAY,CAAC,SAAS,CAAC,CAAA;oBACvB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAA;oBACtC,YAAY,CAAC,MAAM,CAAC,CAAA;iBACrB;gBAAC,OAAO,CAAC,EAAE;oBACV,QAAQ,CAAC,CAAC,CAAC,CAAA;iBACZ;YACH,CAAC,CAAC,CAAA;SACH;QACD,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAA;SACjB;QACD,OAAO,KAAK,CAAC,MAAM,CAAA;IACrB,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const services_1 = require("../services");
|
|
6
|
-
const __1 = require("..");
|
|
7
|
-
exports.RouteLink = (0, shade_1.Shade)({
|
|
1
|
+
import { Shade } from '../shade';
|
|
2
|
+
import { LocationService } from '../services';
|
|
3
|
+
import { attachProps, createComponent } from '..';
|
|
4
|
+
export const RouteLink = Shade({
|
|
8
5
|
shadowDomName: 'route-link',
|
|
9
6
|
elementBase: HTMLAnchorElement,
|
|
10
7
|
elementBaseName: 'a',
|
|
11
8
|
render: ({ children, props, injector, element }) => {
|
|
12
|
-
|
|
9
|
+
attachProps(element, {
|
|
13
10
|
...props,
|
|
14
11
|
style: {
|
|
15
12
|
color: 'inherit',
|
|
@@ -19,10 +16,10 @@ exports.RouteLink = (0, shade_1.Shade)({
|
|
|
19
16
|
onclick: (ev) => {
|
|
20
17
|
ev.preventDefault();
|
|
21
18
|
history.pushState('', props.title || '', props.href);
|
|
22
|
-
injector.getInstance(
|
|
19
|
+
injector.getInstance(LocationService).updateState();
|
|
23
20
|
},
|
|
24
21
|
});
|
|
25
|
-
return
|
|
22
|
+
return createComponent(createComponent, null, children);
|
|
26
23
|
},
|
|
27
24
|
});
|
|
28
25
|
//# sourceMappingURL=route-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-link.js","sourceRoot":"","sources":["../../src/components/route-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAIjD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAiB;IAC7C,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,GAAG;IACpB,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACjD,WAAW,CAAC,OAAO,EAAE;YACnB,GAAG,KAAK;YACR,KAAK,EAAE;gBACL,KAAK,EAAE,SAAS;gBAChB,cAAc,EAAE,SAAS;gBACzB,GAAG,KAAK,CAAC,KAAK;aACf;YACD,OAAO,EAAE,CAAC,EAAc,EAAE,EAAE;gBAC1B,EAAE,CAAC,cAAc,EAAE,CAAA;gBACnB,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBACpD,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAA;YACrD,CAAC;SACF,CAAC,CAAA;QACF,OAAO,uCAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const shade_component_1 = require("../shade-component");
|
|
9
|
-
const services_1 = require("../services");
|
|
10
|
-
const path_to_regexp_1 = require("path-to-regexp");
|
|
11
|
-
const semaphore_async_await_1 = __importDefault(require("semaphore-async-await"));
|
|
12
|
-
const utils_1 = require("@furystack/utils");
|
|
13
|
-
exports.Router = (0, shade_1.Shade)({
|
|
1
|
+
import { Shade } from '../shade';
|
|
2
|
+
import { createComponent } from '../shade-component';
|
|
3
|
+
import { LocationService } from '../services';
|
|
4
|
+
import { match } from 'path-to-regexp';
|
|
5
|
+
import { Lock } from 'semaphore-async-await';
|
|
6
|
+
import { ObservableAlreadyDisposedError } from '@furystack/utils';
|
|
7
|
+
export const Router = Shade({
|
|
14
8
|
shadowDomName: 'shade-router',
|
|
15
9
|
render: (options) => {
|
|
16
10
|
const { useState, useObservable, injector } = options;
|
|
17
|
-
const [lock] = useState('lock', new
|
|
11
|
+
const [lock] = useState('lock', new Lock());
|
|
18
12
|
const [state, setState] = useState('routerState', {
|
|
19
|
-
jsx:
|
|
13
|
+
jsx: createComponent("div", null),
|
|
20
14
|
});
|
|
21
15
|
const updateUrl = async (currentUrl) => {
|
|
22
16
|
const [lastState] = useState('routerState', state);
|
|
@@ -24,7 +18,7 @@ exports.Router = (0, shade_1.Shade)({
|
|
|
24
18
|
try {
|
|
25
19
|
await lock.acquire();
|
|
26
20
|
for (const route of options.props.routes) {
|
|
27
|
-
const matchFn =
|
|
21
|
+
const matchFn = match(route.url, route.routingOptions);
|
|
28
22
|
const matchResult = matchFn(currentUrl);
|
|
29
23
|
if (matchResult) {
|
|
30
24
|
if (route !== lastRoute || JSON.stringify(lastRouteParams) !== JSON.stringify(matchResult.params)) {
|
|
@@ -40,14 +34,14 @@ exports.Router = (0, shade_1.Shade)({
|
|
|
40
34
|
await lastRoute.onLeave({ ...options, element: lastJsx });
|
|
41
35
|
}
|
|
42
36
|
setState({
|
|
43
|
-
jsx: options.props.notFound ||
|
|
37
|
+
jsx: options.props.notFound || createComponent("div", null),
|
|
44
38
|
activeRoute: null,
|
|
45
39
|
activeRouteParams: null,
|
|
46
40
|
});
|
|
47
41
|
}
|
|
48
42
|
catch (e) {
|
|
49
43
|
// path updates can be async, this can be ignored
|
|
50
|
-
if (!(e instanceof
|
|
44
|
+
if (!(e instanceof ObservableAlreadyDisposedError)) {
|
|
51
45
|
throw e;
|
|
52
46
|
}
|
|
53
47
|
}
|
|
@@ -55,7 +49,7 @@ exports.Router = (0, shade_1.Shade)({
|
|
|
55
49
|
lock?.release();
|
|
56
50
|
}
|
|
57
51
|
};
|
|
58
|
-
useObservable('locationPathChanged', injector.getInstance(
|
|
52
|
+
useObservable('locationPathChanged', injector.getInstance(LocationService).onLocationPathChanged, updateUrl, true);
|
|
59
53
|
return state.jsx;
|
|
60
54
|
},
|
|
61
55
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"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"}
|
package/esm/index.js
ADDED
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,OAAO,CAAA;AACd,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../src/initialize.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAE,EAAE;IAChE,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAC9C,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACrD,CAAC,CAAA"}
|
package/esm/jsx.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard that checks if an object is a stateless component
|
|
3
|
+
* @param obj The object to check
|
|
4
|
+
* @returns a value that indicates if the object is a Shade component
|
|
5
|
+
*/
|
|
6
|
+
export const isShadeComponent = (obj) => {
|
|
7
|
+
return typeof obj === 'function';
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=shade-component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shade-component.js","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAQ,EAA8B,EAAE;IACvE,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,11 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const inject_1 = require("@furystack/inject");
|
|
15
|
-
const rest_1 = require("@furystack/rest");
|
|
10
|
+
import { ObservableValue, Trace } from '@furystack/utils';
|
|
11
|
+
import { Injectable } from '@furystack/inject';
|
|
12
|
+
import { deserializeQueryString, serializeToQueryString } from '@furystack/rest';
|
|
16
13
|
let LocationService = class LocationService {
|
|
17
14
|
dispose() {
|
|
18
15
|
window.removeEventListener('popstate', this.updateState);
|
|
@@ -38,10 +35,10 @@ let LocationService = class LocationService {
|
|
|
38
35
|
useSearchParam(key, defaultValue) {
|
|
39
36
|
const actualValue = this.onDeserializedLocationSearchChanged.getValue()[key] ?? defaultValue;
|
|
40
37
|
if (!this.searchParamObservables.has(key)) {
|
|
41
|
-
const newObservable = new
|
|
38
|
+
const newObservable = new ObservableValue(actualValue);
|
|
42
39
|
this.searchParamObservables.set(key, newObservable);
|
|
43
40
|
newObservable.subscribe((value) => {
|
|
44
|
-
const params =
|
|
41
|
+
const params = serializeToQueryString({ ...deserializeQueryString(location.search), [key]: value });
|
|
45
42
|
history.pushState({}, '', `${location.pathname}?${params}`);
|
|
46
43
|
});
|
|
47
44
|
this.onDeserializedLocationSearchChanged.subscribe((search) => {
|
|
@@ -55,29 +52,29 @@ let LocationService = class LocationService {
|
|
|
55
52
|
/**
|
|
56
53
|
* Observable value that will be updated when the location pathname (e.g. /page/1) changes
|
|
57
54
|
*/
|
|
58
|
-
this.onLocationPathChanged = new
|
|
55
|
+
this.onLocationPathChanged = new ObservableValue(new URL(location.href).pathname);
|
|
59
56
|
/**
|
|
60
57
|
* Observable value that will be updated when the location hash (e.g. #hash) changes
|
|
61
58
|
*/
|
|
62
|
-
this.onLocationHashChanged = new
|
|
59
|
+
this.onLocationHashChanged = new ObservableValue(location.hash);
|
|
63
60
|
/**
|
|
64
61
|
* Observable value that will be updated when the location search (e.g. ?search=1) changes
|
|
65
62
|
*/
|
|
66
|
-
this.onLocationSearchChanged = new
|
|
67
|
-
this.onDeserializedLocationSearchChanged = new
|
|
63
|
+
this.onLocationSearchChanged = new ObservableValue(location.search);
|
|
64
|
+
this.onDeserializedLocationSearchChanged = new ObservableValue(deserializeQueryString(this.onLocationSearchChanged.getValue()));
|
|
68
65
|
this.locationDeserializerObserver = this.onLocationSearchChanged.subscribe((search) => {
|
|
69
|
-
this.onDeserializedLocationSearchChanged.setValue(
|
|
66
|
+
this.onDeserializedLocationSearchChanged.setValue(deserializeQueryString(search));
|
|
70
67
|
});
|
|
71
68
|
this.searchParamObservables = new Map();
|
|
72
69
|
window.addEventListener('popstate', () => this.updateState());
|
|
73
70
|
window.addEventListener('hashchange', () => this.updateState());
|
|
74
|
-
this.pushStateTracer =
|
|
71
|
+
this.pushStateTracer = Trace.method({
|
|
75
72
|
object: history,
|
|
76
73
|
method: history.pushState,
|
|
77
74
|
isAsync: false,
|
|
78
75
|
onFinished: () => this.updateState(),
|
|
79
76
|
});
|
|
80
|
-
this.replaceStateTracer =
|
|
77
|
+
this.replaceStateTracer = Trace.method({
|
|
81
78
|
object: history,
|
|
82
79
|
method: history.replaceState,
|
|
83
80
|
isAsync: false,
|
|
@@ -86,8 +83,8 @@ let LocationService = class LocationService {
|
|
|
86
83
|
}
|
|
87
84
|
};
|
|
88
85
|
LocationService = __decorate([
|
|
89
|
-
|
|
86
|
+
Injectable({ lifetime: 'singleton' }),
|
|
90
87
|
__metadata("design:paramtypes", [])
|
|
91
88
|
], LocationService);
|
|
92
|
-
|
|
89
|
+
export { LocationService };
|
|
93
90
|
//# sourceMappingURL=location-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location-service.js","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ResourceManager = void 0;
|
|
4
|
-
const utils_1 = require("@furystack/utils");
|
|
1
|
+
import { ObservableValue } from '@furystack/utils';
|
|
5
2
|
/**
|
|
6
3
|
* Class for managing observables and disposables for components, based on key-value maps
|
|
7
4
|
*/
|
|
8
|
-
class ResourceManager {
|
|
5
|
+
export class ResourceManager {
|
|
9
6
|
constructor() {
|
|
10
7
|
this.disposables = new Map();
|
|
11
8
|
this.observers = new Map();
|
|
@@ -21,7 +18,7 @@ class ResourceManager {
|
|
|
21
18
|
this.stateObservers = new Map();
|
|
22
19
|
this.useState = (key, initialValue, callback) => {
|
|
23
20
|
if (!this.stateObservers.has(key)) {
|
|
24
|
-
const newObservable = new
|
|
21
|
+
const newObservable = new ObservableValue(initialValue);
|
|
25
22
|
this.stateObservers.set(key, newObservable);
|
|
26
23
|
newObservable.subscribe(callback);
|
|
27
24
|
}
|
|
@@ -44,5 +41,4 @@ class ResourceManager {
|
|
|
44
41
|
this.stateObservers.clear();
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
|
-
exports.ResourceManager = ResourceManager;
|
|
48
44
|
//# sourceMappingURL=resource-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-manager.js","sourceRoot":"","sources":["../../src/services/resource-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIlD;;GAEG;AACH,MAAM,OAAO,eAAe;IAA5B;QACmB,gBAAW,GAAG,IAAI,GAAG,EAAsB,CAAA;QAS5C,cAAS,GAAG,IAAI,GAAG,EAA8B,CAAA;QAE1D,kBAAa,GAAG,CACrB,GAAW,EACX,UAA8B,EAC9B,QAAgC,EAChC,OAAiB,EAC4B,EAAE;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiC,CAAA;YAC3E,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAA;aACzG;YACD,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACjC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QACtE,CAAC,CAAA;QAEe,mBAAc,GAAG,IAAI,GAAG,EAAgC,CAAA;QAEjE,aAAQ,GAAG,CAChB,GAAW,EACX,YAAe,EACf,QAAgC,EACa,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACjC,MAAM,aAAa,GAAG,IAAI,eAAe,CAAI,YAAY,CAAC,CAAA;gBAC1D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;gBAC3C,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;aAClC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAuB,CAAA;YACrE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QACtE,CAAC,CAAA;IAWH,CAAC;IAjDQ,aAAa,CAAuB,GAAW,EAAE,OAAgB;QACtE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;SACrC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAM,CAAA;IACvC,CAAC;IAmCM,OAAO;QACZ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACxB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QAEtB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/C,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;CACF"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,11 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const utils_1 = require("@furystack/utils");
|
|
15
|
-
exports.ScreenSizes = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
10
|
+
import { Injectable } from '@furystack/inject';
|
|
11
|
+
import { ObservableValue } from '@furystack/utils';
|
|
12
|
+
export const ScreenSizes = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
16
13
|
/**
|
|
17
14
|
* Service for handling screen size changes
|
|
18
15
|
*/
|
|
@@ -25,7 +22,7 @@ let ScreenService = class ScreenService {
|
|
|
25
22
|
}
|
|
26
23
|
refreshValues() {
|
|
27
24
|
this.orientation.setValue(this.getOrientation());
|
|
28
|
-
|
|
25
|
+
ScreenSizes.forEach((size) => {
|
|
29
26
|
this.screenSize.atLeast[size].setValue(this.screenSizeAtLeast(size));
|
|
30
27
|
});
|
|
31
28
|
}
|
|
@@ -46,17 +43,17 @@ let ScreenService = class ScreenService {
|
|
|
46
43
|
*/
|
|
47
44
|
this.screenSize = {
|
|
48
45
|
atLeast: {
|
|
49
|
-
xs: new
|
|
50
|
-
sm: new
|
|
51
|
-
md: new
|
|
52
|
-
lg: new
|
|
53
|
-
xl: new
|
|
46
|
+
xs: new ObservableValue(this.screenSizeAtLeast('xs')),
|
|
47
|
+
sm: new ObservableValue(this.screenSizeAtLeast('sm')),
|
|
48
|
+
md: new ObservableValue(this.screenSizeAtLeast('md')),
|
|
49
|
+
lg: new ObservableValue(this.screenSizeAtLeast('lg')),
|
|
50
|
+
xl: new ObservableValue(this.screenSizeAtLeast('xl')),
|
|
54
51
|
},
|
|
55
52
|
};
|
|
56
53
|
/**
|
|
57
54
|
* Observable value for tracking the screen orientation
|
|
58
55
|
*/
|
|
59
|
-
this.orientation = new
|
|
56
|
+
this.orientation = new ObservableValue(this.getOrientation());
|
|
60
57
|
this.onResizeListener = () => {
|
|
61
58
|
this.refreshValues();
|
|
62
59
|
};
|
|
@@ -65,8 +62,8 @@ let ScreenService = class ScreenService {
|
|
|
65
62
|
}
|
|
66
63
|
};
|
|
67
64
|
ScreenService = __decorate([
|
|
68
|
-
|
|
65
|
+
Injectable({ lifetime: 'singleton' }),
|
|
69
66
|
__metadata("design:paramtypes", [])
|
|
70
67
|
], ScreenService);
|
|
71
|
-
|
|
68
|
+
export { ScreenService };
|
|
72
69
|
//# sourceMappingURL=screen-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-service.js","sourceRoot":"","sources":["../../src/services/screen-service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAMlE;;GAEG;AACH,IACa,aAAa,GAD1B,MACa,aAAa;IAcjB,OAAO;QACZ,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC7D,CAAC;IAiBO,iBAAiB,CAAC,IAAgB;QACxC,OAAO,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAA;IAC5D,CAAC;IAWO,aAAa;QACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;QAChD,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;QApDQ,mBAAc,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAEjH;;WAEG;QACa,gBAAW,GAA+C;YACxE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACrB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACrB,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;YACpB,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;YACpB,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACnB,CAAA;QAMD;;WAEG;QACa,eAAU,GAEtB;YACF,OAAO,EAAE;gBACP,EAAE,EAAE,IAAI,eAAe,CAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC9D,EAAE,EAAE,IAAI,eAAe,CAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC9D,EAAE,EAAE,IAAI,eAAe,CAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC9D,EAAE,EAAE,IAAI,eAAe,CAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC9D,EAAE,EAAE,IAAI,eAAe,CAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aAC/D;SACF,CAAA;QAMD;;WAEG;QACI,gBAAW,GAAG,IAAI,eAAe,CAA2B,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;QAEjF,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC,CAAA;QAUC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACxD,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;CACF,CAAA;AAzDY,aAAa;IADzB,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;;GACzB,aAAa,CAyDzB;SAzDY,aAAa"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createComponent = exports.createFragmentInner = exports.createComponentInner = exports.attachProps = exports.attachDataAttributes = exports.attachStyles = exports.hasStyle = exports.appendChild = void 0;
|
|
4
|
-
const models_1 = require("./models");
|
|
1
|
+
import { isShadeComponent } from './models';
|
|
5
2
|
/**
|
|
6
3
|
* Appends a list of items to a HTML element
|
|
7
|
-
*
|
|
8
4
|
* @param el the root element
|
|
9
5
|
* @param children array of items to append
|
|
10
6
|
*/
|
|
11
|
-
const appendChild = (el, children) => {
|
|
7
|
+
export const appendChild = (el, children) => {
|
|
12
8
|
for (const child of children) {
|
|
13
9
|
if (typeof child === 'string' || typeof child === 'number') {
|
|
14
10
|
el.appendChild(document.createTextNode(child));
|
|
@@ -18,22 +14,20 @@ const appendChild = (el, children) => {
|
|
|
18
14
|
el.appendChild(child);
|
|
19
15
|
}
|
|
20
16
|
else if (child instanceof Array) {
|
|
21
|
-
|
|
17
|
+
appendChild(el, child);
|
|
22
18
|
}
|
|
23
19
|
}
|
|
24
20
|
}
|
|
25
21
|
};
|
|
26
|
-
|
|
27
|
-
const hasStyle = (props) => {
|
|
22
|
+
export const hasStyle = (props) => {
|
|
28
23
|
return props?.style !== undefined;
|
|
29
24
|
};
|
|
30
|
-
exports.hasStyle = hasStyle;
|
|
31
25
|
/**
|
|
32
26
|
* @param el The Target HTML Element
|
|
33
27
|
* @param props The Properties to fetch The Styles Object
|
|
34
28
|
*/
|
|
35
|
-
const attachStyles = (el, props) => {
|
|
36
|
-
if (
|
|
29
|
+
export const attachStyles = (el, props) => {
|
|
30
|
+
if (hasStyle(props))
|
|
37
31
|
for (const key in props.style) {
|
|
38
32
|
if (Object.prototype.hasOwnProperty.call(props.style, key)) {
|
|
39
33
|
;
|
|
@@ -41,61 +35,54 @@ const attachStyles = (el, props) => {
|
|
|
41
35
|
}
|
|
42
36
|
}
|
|
43
37
|
};
|
|
44
|
-
|
|
45
|
-
const attachDataAttributes = (el, props) => {
|
|
38
|
+
export const attachDataAttributes = (el, props) => {
|
|
46
39
|
props &&
|
|
47
40
|
Object.entries(props)
|
|
48
41
|
.filter(([key]) => key.startsWith('data-'))
|
|
49
42
|
.forEach(([key, value]) => el.setAttribute(key, value || ''));
|
|
50
43
|
};
|
|
51
|
-
exports.attachDataAttributes = attachDataAttributes;
|
|
52
44
|
/**
|
|
53
45
|
*
|
|
54
46
|
* @param el The Target HTML Element
|
|
55
47
|
* @param props The Props to attach
|
|
56
48
|
*/
|
|
57
|
-
const attachProps = (el, props) => {
|
|
49
|
+
export const attachProps = (el, props) => {
|
|
58
50
|
Object.assign(el, props);
|
|
59
51
|
if (props && props.style) {
|
|
60
|
-
|
|
52
|
+
attachStyles(el, props);
|
|
61
53
|
}
|
|
62
|
-
|
|
54
|
+
attachDataAttributes(el, props);
|
|
63
55
|
};
|
|
64
|
-
exports.attachProps = attachProps;
|
|
65
56
|
// eslint-disable-next-line jsdoc/require-param
|
|
66
57
|
/**
|
|
67
58
|
* Factory method that creates a component. This should be configured as a default JSX Factory in tsconfig.
|
|
68
|
-
*
|
|
69
59
|
* @returns the created JSX element
|
|
70
60
|
*/
|
|
71
|
-
const createComponentInner = (...[elementType, props, ...children]) => {
|
|
61
|
+
export const createComponentInner = (...[elementType, props, ...children]) => {
|
|
72
62
|
if (typeof elementType === 'string') {
|
|
73
63
|
const el = document.createElement(elementType);
|
|
74
|
-
|
|
64
|
+
attachProps(el, props);
|
|
75
65
|
if (children) {
|
|
76
|
-
|
|
66
|
+
appendChild(el, children);
|
|
77
67
|
}
|
|
78
68
|
return el;
|
|
79
69
|
}
|
|
80
|
-
else if (
|
|
70
|
+
else if (isShadeComponent(elementType)) {
|
|
81
71
|
const el = elementType(props, children);
|
|
82
|
-
|
|
72
|
+
attachStyles(el, props);
|
|
83
73
|
return el;
|
|
84
74
|
}
|
|
85
75
|
return undefined;
|
|
86
76
|
};
|
|
87
|
-
|
|
88
|
-
const createFragmentInner = (...[_props, ...children]) => {
|
|
77
|
+
export const createFragmentInner = (...[_props, ...children]) => {
|
|
89
78
|
const fragment = document.createDocumentFragment();
|
|
90
|
-
|
|
79
|
+
appendChild(fragment, children);
|
|
91
80
|
return fragment;
|
|
92
81
|
};
|
|
93
|
-
|
|
94
|
-
const createComponent = (...args) => {
|
|
82
|
+
export const createComponent = (...args) => {
|
|
95
83
|
if (args[0] === null) {
|
|
96
|
-
return
|
|
84
|
+
return createFragmentInner(...args);
|
|
97
85
|
}
|
|
98
|
-
return
|
|
86
|
+
return createComponentInner(...args);
|
|
99
87
|
};
|
|
100
|
-
exports.createComponent = createComponent;
|
|
101
88
|
//# sourceMappingURL=shade-component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shade-component.js","sourceRoot":"","sources":["../src/shade-component.ts"],"names":[],"mappings":"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"}
|
package/{dist → esm}/shade.js
RENAMED
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const inject_1 = require("@furystack/inject");
|
|
6
|
-
const resource_manager_1 = require("./services/resource-manager");
|
|
7
|
-
const services_1 = require("./services");
|
|
1
|
+
import { ObservableValue } from '@furystack/utils';
|
|
2
|
+
import { Injector } from '@furystack/inject';
|
|
3
|
+
import { ResourceManager } from './services/resource-manager';
|
|
4
|
+
import { LocationService } from './services';
|
|
8
5
|
/**
|
|
9
6
|
* Factory method for creating Shade components
|
|
10
|
-
*
|
|
11
7
|
* @param o for component creation
|
|
12
8
|
* @returns the JSX element
|
|
13
9
|
*/
|
|
14
|
-
const Shade = (o) => {
|
|
10
|
+
export const Shade = (o) => {
|
|
15
11
|
// register shadow-dom element
|
|
16
12
|
const customElementName = o.shadowDomName;
|
|
17
13
|
const existing = customElements.get(customElementName);
|
|
@@ -21,7 +17,7 @@ const Shade = (o) => {
|
|
|
21
17
|
constructor() {
|
|
22
18
|
super(...arguments);
|
|
23
19
|
this._renderCount = 0;
|
|
24
|
-
this.resourceManager = new
|
|
20
|
+
this.resourceManager = new ResourceManager();
|
|
25
21
|
/**
|
|
26
22
|
* @param options Options for rendering the component
|
|
27
23
|
* @returns the JSX element
|
|
@@ -41,7 +37,7 @@ const Shade = (o) => {
|
|
|
41
37
|
element: this,
|
|
42
38
|
useObservable: (key, obesrvable, callback, getLast) => this.resourceManager.useObservable(key, obesrvable, callback || (() => this.updateComponent()), getLast),
|
|
43
39
|
useState: (key, initialValue) => this.resourceManager.useState(key, initialValue, this.updateComponent.bind(this)),
|
|
44
|
-
useSearchState: (key, initialValue) => this.resourceManager.useObservable(`useSearchState-${key}`, this.injector.getInstance(
|
|
40
|
+
useSearchState: (key, initialValue) => this.resourceManager.useObservable(`useSearchState-${key}`, this.injector.getInstance(LocationService).useSearchParam(key, initialValue), () => this.updateComponent()),
|
|
45
41
|
useStoredState: (key, initialValue, storageArea = localStorage) => {
|
|
46
42
|
const getFromStorage = () => {
|
|
47
43
|
const value = storageArea?.getItem(key);
|
|
@@ -56,7 +52,7 @@ const Shade = (o) => {
|
|
|
56
52
|
observable.setValue(value);
|
|
57
53
|
}
|
|
58
54
|
};
|
|
59
|
-
const observable = this.resourceManager.useDisposable(`useStoredState-${key}`, () => new
|
|
55
|
+
const observable = this.resourceManager.useDisposable(`useStoredState-${key}`, () => new ObservableValue(getFromStorage()));
|
|
60
56
|
const updateFromStorageEvent = (e) => {
|
|
61
57
|
e.key === key &&
|
|
62
58
|
e.storageArea === storageArea &&
|
|
@@ -152,7 +148,7 @@ const Shade = (o) => {
|
|
|
152
148
|
return this._injector;
|
|
153
149
|
}
|
|
154
150
|
const fromProps = this.props?.injector;
|
|
155
|
-
if (fromProps && fromProps instanceof
|
|
151
|
+
if (fromProps && fromProps instanceof Injector) {
|
|
156
152
|
return fromProps;
|
|
157
153
|
}
|
|
158
154
|
const fromParent = this.getInjectorFromParent();
|
|
@@ -161,7 +157,7 @@ const Shade = (o) => {
|
|
|
161
157
|
return fromParent;
|
|
162
158
|
}
|
|
163
159
|
// Injector not set explicitly and not found on parents!
|
|
164
|
-
return new
|
|
160
|
+
return new Injector();
|
|
165
161
|
}
|
|
166
162
|
set injector(i) {
|
|
167
163
|
this._injector = i;
|
|
@@ -181,5 +177,4 @@ const Shade = (o) => {
|
|
|
181
177
|
return el;
|
|
182
178
|
};
|
|
183
179
|
};
|
|
184
|
-
exports.Shade = Shade;
|
|
185
180
|
//# sourceMappingURL=shade.js.map
|