@os-design/form 1.0.8 → 1.0.10
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/README.md +70 -36
- package/dist/cjs/BroadcastObserverManager.js +44 -0
- package/dist/cjs/BroadcastObserverManager.js.map +1 -0
- package/dist/cjs/{SubscribableData.js → ErrorData.js} +20 -18
- package/dist/cjs/ErrorData.js.map +1 -0
- package/dist/cjs/ErrorObserverManager.js +64 -0
- package/dist/cjs/ErrorObserverManager.js.map +1 -0
- package/dist/cjs/Form.js +46 -0
- package/dist/cjs/Form.js.map +1 -0
- package/dist/cjs/Node.js +60 -0
- package/dist/cjs/Node.js.map +1 -0
- package/dist/cjs/ValueData.js +55 -0
- package/dist/cjs/ValueData.js.map +1 -0
- package/dist/cjs/ValueObserverManager.js +124 -0
- package/dist/cjs/ValueObserverManager.js.map +1 -0
- package/dist/cjs/index.js +115 -106
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.js +6 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/useFormContext.js +27 -0
- package/dist/cjs/useFormContext.js.map +1 -0
- package/dist/cjs/utils/clone.js +1 -1
- package/dist/cjs/utils/deleteFromArray.js +17 -0
- package/dist/cjs/utils/deleteFromArray.js.map +1 -0
- package/dist/cjs/utils/isEqual.js +1 -1
- package/dist/cjs/utils/path.js +53 -0
- package/dist/cjs/utils/path.js.map +1 -0
- package/dist/esm/BroadcastObserverManager.js +18 -0
- package/dist/esm/BroadcastObserverManager.js.map +1 -0
- package/dist/esm/ErrorData.js +20 -0
- package/dist/esm/ErrorData.js.map +1 -0
- package/dist/esm/ErrorObserverManager.js +26 -0
- package/dist/esm/ErrorObserverManager.js.map +1 -0
- package/dist/esm/Form.js +26 -0
- package/dist/esm/Form.js.map +1 -0
- package/dist/esm/Node.js +31 -0
- package/dist/esm/Node.js.map +1 -0
- package/dist/esm/ValueData.js +21 -0
- package/dist/esm/ValueData.js.map +1 -0
- package/dist/esm/ValueObserverManager.js +67 -0
- package/dist/esm/ValueObserverManager.js.map +1 -0
- package/dist/esm/index.js +44 -66
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/useFormContext.js +17 -0
- package/dist/esm/useFormContext.js.map +1 -0
- package/dist/esm/utils/deleteFromArray.js +8 -0
- package/dist/esm/utils/deleteFromArray.js.map +1 -0
- package/dist/esm/utils/path.js +31 -0
- package/dist/esm/utils/path.js.map +1 -0
- package/dist/types/BroadcastObserverManager.d.ts +10 -0
- package/dist/types/BroadcastObserverManager.d.ts.map +1 -0
- package/dist/types/ErrorData.d.ts +11 -0
- package/dist/types/ErrorData.d.ts.map +1 -0
- package/dist/types/ErrorObserverManager.d.ts +12 -0
- package/dist/types/ErrorObserverManager.d.ts.map +1 -0
- package/dist/types/Form.d.ts +12 -0
- package/dist/types/Form.d.ts.map +1 -0
- package/dist/types/Node.d.ts +15 -0
- package/dist/types/Node.d.ts.map +1 -0
- package/dist/types/ValueData.d.ts +11 -0
- package/dist/types/ValueData.d.ts.map +1 -0
- package/dist/types/ValueObserverManager.d.ts +13 -0
- package/dist/types/ValueObserverManager.d.ts.map +1 -0
- package/dist/types/index.d.ts +32 -46
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +15 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/useFormContext.d.ts +11 -0
- package/dist/types/useFormContext.d.ts.map +1 -0
- package/dist/types/utils/deleteFromArray.d.ts +3 -0
- package/dist/types/utils/deleteFromArray.d.ts.map +1 -0
- package/dist/types/utils/path.d.ts +5 -0
- package/dist/types/utils/path.d.ts.map +1 -0
- package/package.json +3 -3
- package/dist/cjs/SubscribableData.js.map +0 -1
- package/dist/cjs/SubscriptionManager.js +0 -83
- package/dist/cjs/SubscriptionManager.js.map +0 -1
- package/dist/esm/SubscribableData.js +0 -23
- package/dist/esm/SubscribableData.js.map +0 -1
- package/dist/esm/SubscriptionManager.js +0 -46
- package/dist/esm/SubscriptionManager.js.map +0 -1
- package/dist/types/SubscribableData.d.ts +0 -11
- package/dist/types/SubscribableData.d.ts.map +0 -1
- package/dist/types/SubscriptionManager.d.ts +0 -19
- package/dist/types/SubscriptionManager.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAMb,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAMtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AAoCjC,MAAM,MAAM,WAAW,CACrB,OAAO,SAAS,SAAS,EACzB,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IACzB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK;KACxC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;CAC9C,CAAC;AA6BF,UAAU,UAAU,CAAC,MAAM;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AACD,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AACD,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM;IAChC,IAAI,EAAE,KAAK,CAAC;IACZ,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,UAAU,EAAE,UAAU,KACnB,YAAY,GAAG,IAAI,CAAC;CAC1B;AAoHD,eAAO,MAAM,OAAO;;;;;;;;CAenB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;CAI3B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type StringMap<T = any> = Record<string, T>;
|
|
2
|
+
type Separator = '.';
|
|
3
|
+
type KeysWithSeparator<K1, K2> = `${K1 & string}${Separator}${K2 & string}`;
|
|
4
|
+
type KeyOf<T> = Exclude<keyof T, symbol | keyof any[]>;
|
|
5
|
+
type Depth = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
6
|
+
type MaxDepth = 9;
|
|
7
|
+
export type Path<T, N extends Depth[number] = MaxDepth, K = KeyOf<T>> = N extends never ? never : T extends StringMap ? K | (K extends keyof T ? T[K] extends StringMap ? KeysWithSeparator<K, Path<T[K], Depth[N]>> : never : never) : never;
|
|
8
|
+
export type PathReturn<T, K> = K extends keyof T ? T[K] : K extends `${infer U}${Separator}${infer R}` ? U extends keyof T ? PathReturn<T[U], R> : never : never;
|
|
9
|
+
export type Errors<T> = Record<Path<T>, string | undefined>;
|
|
10
|
+
export type Observer<V = any> = (value: V) => void;
|
|
11
|
+
export interface Subscription {
|
|
12
|
+
unsubscribe: () => void;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEnD,KAAK,SAAS,GAAG,GAAG,CAAC;AACrB,KAAK,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,MAAM,GAAG,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;AAC5E,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;AACvD,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,KAAK,QAAQ,GAAG,CAAC,CAAC;AAElB,MAAM,MAAM,IAAI,CACd,CAAC,EACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,GAAG,QAAQ,EAClC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IACV,CAAC,SAAS,KAAK,GACf,KAAK,GACL,CAAC,SAAS,SAAS,GAEf,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,CAAC,GACd,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GACpB,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAC1C,KAAK,GACP,KAAK,CAAC,GACd,KAAK,CAAC;AAEV,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAC5C,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,GAC5C,CAAC,SAAS,MAAM,CAAC,GACf,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,KAAK,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE5D,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AACnD,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import Form from './Form';
|
|
3
|
+
import { StringMap } from './types';
|
|
4
|
+
export interface FormProviderProps<TValues extends StringMap> {
|
|
5
|
+
form: Form<TValues>;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export declare function FormProvider<TValues extends StringMap>({ form, children, }: FormProviderProps<TValues>): JSX.Element;
|
|
9
|
+
declare function useFormContext<T>(): T;
|
|
10
|
+
export default useFormContext;
|
|
11
|
+
//# sourceMappingURL=useFormContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormContext.d.ts","sourceRoot":"","sources":["../../src/useFormContext.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AACpE,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKpC,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,SAAS;IAC1D,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAGD,wBAAgB,YAAY,CAAC,OAAO,SAAS,SAAS,EAAE,EACtD,IAAI,EACJ,QAAQ,GACT,EAAE,iBAAiB,CAAC,OAAO,CAAC,eAE5B;AAED,iBAAS,cAAc,CAAC,CAAC,OAExB;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteFromArray.d.ts","sourceRoot":"","sources":["../../../src/utils/deleteFromArray.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,eAAe,QAAS,GAAG,EAAE,QAAQ,GAAG,SAI7C,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { StringMap } from '../types';
|
|
2
|
+
export declare const isObjectOrArray: (value: any) => value is object;
|
|
3
|
+
export declare const get: (data: StringMap, path: string) => any;
|
|
4
|
+
export declare const set: (data: StringMap, path: string, value: any) => boolean;
|
|
5
|
+
//# sourceMappingURL=path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/utils/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrC,eAAO,MAAM,eAAe,UAAW,GAAG,oBACG,CAAC;AAO9C,eAAO,MAAM,GAAG,SAAU,SAAS,QAAQ,MAAM,KAAG,GAanD,CAAC;AAEF,eAAO,MAAM,GAAG,SAAU,SAAS,QAAQ,MAAM,SAAS,GAAG,KAAG,OAc/D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@os-design/form",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": "git@gitlab.com:os-team/libs/os-design.git",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@os-design/core": "^1.0.
|
|
31
|
+
"@os-design/core": "^1.0.188",
|
|
32
32
|
"@os-design/icons": "^1.0.44"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"react": ">=18"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "1d3d7f7f1f23061b5840a1e89fb8e8ec6d813061"
|
|
38
38
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubscribableData.js","names":["SubscribableData","data","name","value","call","SubscriptionManager"],"sources":["../../src/SubscribableData.ts"],"sourcesContent":["import SubscriptionManager from './SubscriptionManager';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Data = Record<string, any>;\n\nclass SubscribableData<\n TData extends Data,\n TDataName extends keyof TData = keyof TData\n> extends SubscriptionManager<TData> {\n private data: TData;\n\n public constructor(data: TData) {\n super();\n this.data = data;\n }\n\n public get<TName extends TDataName>(name: TName): TData[TName] {\n return this.data[name];\n }\n\n public getAll(): TData {\n return this.data;\n }\n\n public set<TName extends TDataName>(name: TName, value: TData[TName]): void {\n this.data[name] = value;\n this.call(name, value);\n }\n}\n\nexport default SubscribableData;\n"],"mappings":";;;;;;;AAAA;AAAwD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKlDA,gBAAgB;EAAA;EAAA;EAMpB,0BAAmBC,IAAW,EAAE;IAAA;IAAA;IAC9B;IAAQ,MAHFA,IAAI;IAIV,MAAKA,IAAI,GAAGA,IAAI;IAAC;EACnB;EAAC;IAAA;IAAA,OAED,aAAoCC,IAAW,EAAgB;MAC7D,OAAO,IAAI,CAACD,IAAI,CAACC,IAAI,CAAC;IACxB;EAAC;IAAA;IAAA,OAED,kBAAuB;MACrB,OAAO,IAAI,CAACD,IAAI;IAClB;EAAC;IAAA;IAAA,OAED,aAAoCC,IAAW,EAAEC,KAAmB,EAAQ;MAC1E,IAAI,CAACF,IAAI,CAACC,IAAI,CAAC,GAAGC,KAAK;MACvB,IAAI,CAACC,IAAI,CAACF,IAAI,EAAEC,KAAK,CAAC;IACxB;EAAC;EAAA;AAAA,EAnBOE,gCAAmB;AAAA,eAsBdL,gBAAgB;AAAA"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
8
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
9
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
-
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
-
var deleteFromArray = function deleteFromArray(arr, item) {
|
|
14
|
-
var index = arr.findIndex(function (i) {
|
|
15
|
-
return i === item;
|
|
16
|
-
});
|
|
17
|
-
if (index === -1) return;
|
|
18
|
-
arr.splice(index, 1);
|
|
19
|
-
};
|
|
20
|
-
var SubscriptionManager = /*#__PURE__*/function () {
|
|
21
|
-
function SubscriptionManager() {
|
|
22
|
-
_classCallCheck(this, SubscriptionManager);
|
|
23
|
-
this.observers = void 0;
|
|
24
|
-
this.fieldObservers = void 0;
|
|
25
|
-
this.observers = [];
|
|
26
|
-
this.fieldObservers = {};
|
|
27
|
-
}
|
|
28
|
-
_createClass(SubscriptionManager, [{
|
|
29
|
-
key: "getFieldObservers",
|
|
30
|
-
value: function getFieldObservers(name) {
|
|
31
|
-
if (!this.fieldObservers[name]) {
|
|
32
|
-
this.fieldObservers[name] = [];
|
|
33
|
-
}
|
|
34
|
-
return this.fieldObservers[name];
|
|
35
|
-
}
|
|
36
|
-
}, {
|
|
37
|
-
key: "subscribeToAllFields",
|
|
38
|
-
value: function subscribeToAllFields(observer) {
|
|
39
|
-
var _this = this;
|
|
40
|
-
this.observers.push(observer);
|
|
41
|
-
return {
|
|
42
|
-
unsubscribe: function unsubscribe() {
|
|
43
|
-
return _this.unsubscribeFromAllFields(observer);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
}, {
|
|
48
|
-
key: "unsubscribeFromAllFields",
|
|
49
|
-
value: function unsubscribeFromAllFields(observer) {
|
|
50
|
-
deleteFromArray(this.observers, observer);
|
|
51
|
-
}
|
|
52
|
-
}, {
|
|
53
|
-
key: "subscribeToField",
|
|
54
|
-
value: function subscribeToField(name, observer) {
|
|
55
|
-
var _this2 = this;
|
|
56
|
-
this.getFieldObservers(name).push(observer);
|
|
57
|
-
return {
|
|
58
|
-
unsubscribe: function unsubscribe() {
|
|
59
|
-
return _this2.unsubscribeFromField(name, observer);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
}, {
|
|
64
|
-
key: "unsubscribeFromField",
|
|
65
|
-
value: function unsubscribeFromField(name, observer) {
|
|
66
|
-
deleteFromArray(this.getFieldObservers(name), observer);
|
|
67
|
-
}
|
|
68
|
-
}, {
|
|
69
|
-
key: "call",
|
|
70
|
-
value: function call(name, value) {
|
|
71
|
-
this.observers.forEach(function (observer) {
|
|
72
|
-
return observer(name, value);
|
|
73
|
-
});
|
|
74
|
-
this.getFieldObservers(name).forEach(function (observer) {
|
|
75
|
-
return observer(value);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}]);
|
|
79
|
-
return SubscriptionManager;
|
|
80
|
-
}();
|
|
81
|
-
var _default = SubscriptionManager;
|
|
82
|
-
exports["default"] = _default;
|
|
83
|
-
//# sourceMappingURL=SubscriptionManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionManager.js","names":["deleteFromArray","arr","item","index","findIndex","i","splice","SubscriptionManager","observers","fieldObservers","name","observer","push","unsubscribe","unsubscribeFromAllFields","getFieldObservers","unsubscribeFromField","value","forEach"],"sources":["../../src/SubscriptionManager.ts"],"sourcesContent":["export type Observer<K, V> = (name: K, value: V) => void;\nexport type FieldObserver<V> = (value: V) => void;\n\nexport interface Subscription {\n unsubscribe: () => void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Data = Record<string, any>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst deleteFromArray = (arr: any[], item: any) => {\n const index = arr.findIndex((i) => i === item);\n if (index === -1) return;\n arr.splice(index, 1);\n};\n\nclass SubscriptionManager<\n TData extends Data,\n TDataName extends keyof TData = keyof TData\n> {\n private observers: Array<Observer<TDataName, TData[TDataName]>>;\n\n private fieldObservers: {\n [TName in TDataName]?: Array<FieldObserver<TData[TName]>>;\n };\n\n public constructor() {\n this.observers = [];\n this.fieldObservers = {};\n }\n\n private getFieldObservers<TName extends TDataName>(\n name: TName\n ): Array<FieldObserver<TData[TName]>> {\n if (!this.fieldObservers[name]) {\n this.fieldObservers[name] = [];\n }\n return this.fieldObservers[name] as Array<FieldObserver<TData[TName]>>;\n }\n\n public subscribeToAllFields(\n observer: Observer<TDataName, TData[TDataName]>\n ): Subscription {\n this.observers.push(observer);\n return { unsubscribe: () => this.unsubscribeFromAllFields(observer) };\n }\n\n private unsubscribeFromAllFields(\n observer: Observer<TDataName, TData[TDataName]>\n ): void {\n deleteFromArray(this.observers, observer);\n }\n\n public subscribeToField<TName extends TDataName>(\n name: TName,\n observer: FieldObserver<TData[TName]>\n ): Subscription {\n this.getFieldObservers(name).push(observer);\n return { unsubscribe: () => this.unsubscribeFromField(name, observer) };\n }\n\n private unsubscribeFromField<TName extends TDataName>(\n name: TName,\n observer: FieldObserver<TData[TName]>\n ): void {\n deleteFromArray(this.getFieldObservers(name), observer);\n }\n\n protected call<TName extends TDataName>(\n name: TName,\n value: TData[TName]\n ): void {\n this.observers.forEach((observer) => observer(name, value));\n this.getFieldObservers(name).forEach((observer) => observer(value));\n }\n}\n\nexport default SubscriptionManager;\n"],"mappings":";;;;;;;;;AAOA;;AAGA;AACA,IAAMA,eAAe,GAAG,SAAlBA,eAAe,CAAIC,GAAU,EAAEC,IAAS,EAAK;EACjD,IAAMC,KAAK,GAAGF,GAAG,CAACG,SAAS,CAAC,UAACC,CAAC;IAAA,OAAKA,CAAC,KAAKH,IAAI;EAAA,EAAC;EAC9C,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;EAClBF,GAAG,CAACK,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;AACtB,CAAC;AAAC,IAEII,mBAAmB;EAUvB,+BAAqB;IAAA;IAAA,KANbC,SAAS;IAAA,KAETC,cAAc;IAKpB,IAAI,CAACD,SAAS,GAAG,EAAE;IACnB,IAAI,CAACC,cAAc,GAAG,CAAC,CAAC;EAC1B;EAAC;IAAA;IAAA,OAED,2BACEC,IAAW,EACyB;MACpC,IAAI,CAAC,IAAI,CAACD,cAAc,CAACC,IAAI,CAAC,EAAE;QAC9B,IAAI,CAACD,cAAc,CAACC,IAAI,CAAC,GAAG,EAAE;MAChC;MACA,OAAO,IAAI,CAACD,cAAc,CAACC,IAAI,CAAC;IAClC;EAAC;IAAA;IAAA,OAED,8BACEC,QAA+C,EACjC;MAAA;MACd,IAAI,CAACH,SAAS,CAACI,IAAI,CAACD,QAAQ,CAAC;MAC7B,OAAO;QAAEE,WAAW,EAAE;UAAA,OAAM,KAAI,CAACC,wBAAwB,CAACH,QAAQ,CAAC;QAAA;MAAC,CAAC;IACvE;EAAC;IAAA;IAAA,OAED,kCACEA,QAA+C,EACzC;MACNX,eAAe,CAAC,IAAI,CAACQ,SAAS,EAAEG,QAAQ,CAAC;IAC3C;EAAC;IAAA;IAAA,OAED,0BACED,IAAW,EACXC,QAAqC,EACvB;MAAA;MACd,IAAI,CAACI,iBAAiB,CAACL,IAAI,CAAC,CAACE,IAAI,CAACD,QAAQ,CAAC;MAC3C,OAAO;QAAEE,WAAW,EAAE;UAAA,OAAM,MAAI,CAACG,oBAAoB,CAACN,IAAI,EAAEC,QAAQ,CAAC;QAAA;MAAC,CAAC;IACzE;EAAC;IAAA;IAAA,OAED,8BACED,IAAW,EACXC,QAAqC,EAC/B;MACNX,eAAe,CAAC,IAAI,CAACe,iBAAiB,CAACL,IAAI,CAAC,EAAEC,QAAQ,CAAC;IACzD;EAAC;IAAA;IAAA,OAED,cACED,IAAW,EACXO,KAAmB,EACb;MACN,IAAI,CAACT,SAAS,CAACU,OAAO,CAAC,UAACP,QAAQ;QAAA,OAAKA,QAAQ,CAACD,IAAI,EAAEO,KAAK,CAAC;MAAA,EAAC;MAC3D,IAAI,CAACF,iBAAiB,CAACL,IAAI,CAAC,CAACQ,OAAO,CAAC,UAACP,QAAQ;QAAA,OAAKA,QAAQ,CAACM,KAAK,CAAC;MAAA,EAAC;IACrE;EAAC;EAAA;AAAA;AAAA,eAGYV,mBAAmB;AAAA"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import SubscriptionManager from './SubscriptionManager';
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
-
|
|
5
|
-
class SubscribableData extends SubscriptionManager {
|
|
6
|
-
constructor(data) {
|
|
7
|
-
super();
|
|
8
|
-
this.data = void 0;
|
|
9
|
-
this.data = data;
|
|
10
|
-
}
|
|
11
|
-
get(name) {
|
|
12
|
-
return this.data[name];
|
|
13
|
-
}
|
|
14
|
-
getAll() {
|
|
15
|
-
return this.data;
|
|
16
|
-
}
|
|
17
|
-
set(name, value) {
|
|
18
|
-
this.data[name] = value;
|
|
19
|
-
this.call(name, value);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export default SubscribableData;
|
|
23
|
-
//# sourceMappingURL=SubscribableData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubscribableData.js","names":["SubscriptionManager","SubscribableData","constructor","data","get","name","getAll","set","value","call"],"sources":["../../src/SubscribableData.ts"],"sourcesContent":["import SubscriptionManager from './SubscriptionManager';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Data = Record<string, any>;\n\nclass SubscribableData<\n TData extends Data,\n TDataName extends keyof TData = keyof TData\n> extends SubscriptionManager<TData> {\n private data: TData;\n\n public constructor(data: TData) {\n super();\n this.data = data;\n }\n\n public get<TName extends TDataName>(name: TName): TData[TName] {\n return this.data[name];\n }\n\n public getAll(): TData {\n return this.data;\n }\n\n public set<TName extends TDataName>(name: TName, value: TData[TName]): void {\n this.data[name] = value;\n this.call(name, value);\n }\n}\n\nexport default SubscribableData;\n"],"mappings":"AAAA,OAAOA,mBAAmB,MAAM,uBAAuB;;AAEvD;;AAGA,MAAMC,gBAAgB,SAGZD,mBAAmB,CAAQ;EAG5BE,WAAW,CAACC,IAAW,EAAE;IAC9B,KAAK,EAAE;IAAC,KAHFA,IAAI;IAIV,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;EAEOC,GAAG,CAA0BC,IAAW,EAAgB;IAC7D,OAAO,IAAI,CAACF,IAAI,CAACE,IAAI,CAAC;EACxB;EAEOC,MAAM,GAAU;IACrB,OAAO,IAAI,CAACH,IAAI;EAClB;EAEOI,GAAG,CAA0BF,IAAW,EAAEG,KAAmB,EAAQ;IAC1E,IAAI,CAACL,IAAI,CAACE,IAAI,CAAC,GAAGG,KAAK;IACvB,IAAI,CAACC,IAAI,CAACJ,IAAI,EAAEG,KAAK,CAAC;EACxB;AACF;AAEA,eAAeP,gBAAgB"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
-
const deleteFromArray = (arr, item) => {
|
|
5
|
-
const index = arr.findIndex(i => i === item);
|
|
6
|
-
if (index === -1) return;
|
|
7
|
-
arr.splice(index, 1);
|
|
8
|
-
};
|
|
9
|
-
class SubscriptionManager {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.observers = void 0;
|
|
12
|
-
this.fieldObservers = void 0;
|
|
13
|
-
this.observers = [];
|
|
14
|
-
this.fieldObservers = {};
|
|
15
|
-
}
|
|
16
|
-
getFieldObservers(name) {
|
|
17
|
-
if (!this.fieldObservers[name]) {
|
|
18
|
-
this.fieldObservers[name] = [];
|
|
19
|
-
}
|
|
20
|
-
return this.fieldObservers[name];
|
|
21
|
-
}
|
|
22
|
-
subscribeToAllFields(observer) {
|
|
23
|
-
this.observers.push(observer);
|
|
24
|
-
return {
|
|
25
|
-
unsubscribe: () => this.unsubscribeFromAllFields(observer)
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
unsubscribeFromAllFields(observer) {
|
|
29
|
-
deleteFromArray(this.observers, observer);
|
|
30
|
-
}
|
|
31
|
-
subscribeToField(name, observer) {
|
|
32
|
-
this.getFieldObservers(name).push(observer);
|
|
33
|
-
return {
|
|
34
|
-
unsubscribe: () => this.unsubscribeFromField(name, observer)
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
unsubscribeFromField(name, observer) {
|
|
38
|
-
deleteFromArray(this.getFieldObservers(name), observer);
|
|
39
|
-
}
|
|
40
|
-
call(name, value) {
|
|
41
|
-
this.observers.forEach(observer => observer(name, value));
|
|
42
|
-
this.getFieldObservers(name).forEach(observer => observer(value));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
export default SubscriptionManager;
|
|
46
|
-
//# sourceMappingURL=SubscriptionManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionManager.js","names":["deleteFromArray","arr","item","index","findIndex","i","splice","SubscriptionManager","constructor","observers","fieldObservers","getFieldObservers","name","subscribeToAllFields","observer","push","unsubscribe","unsubscribeFromAllFields","subscribeToField","unsubscribeFromField","call","value","forEach"],"sources":["../../src/SubscriptionManager.ts"],"sourcesContent":["export type Observer<K, V> = (name: K, value: V) => void;\nexport type FieldObserver<V> = (value: V) => void;\n\nexport interface Subscription {\n unsubscribe: () => void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Data = Record<string, any>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst deleteFromArray = (arr: any[], item: any) => {\n const index = arr.findIndex((i) => i === item);\n if (index === -1) return;\n arr.splice(index, 1);\n};\n\nclass SubscriptionManager<\n TData extends Data,\n TDataName extends keyof TData = keyof TData\n> {\n private observers: Array<Observer<TDataName, TData[TDataName]>>;\n\n private fieldObservers: {\n [TName in TDataName]?: Array<FieldObserver<TData[TName]>>;\n };\n\n public constructor() {\n this.observers = [];\n this.fieldObservers = {};\n }\n\n private getFieldObservers<TName extends TDataName>(\n name: TName\n ): Array<FieldObserver<TData[TName]>> {\n if (!this.fieldObservers[name]) {\n this.fieldObservers[name] = [];\n }\n return this.fieldObservers[name] as Array<FieldObserver<TData[TName]>>;\n }\n\n public subscribeToAllFields(\n observer: Observer<TDataName, TData[TDataName]>\n ): Subscription {\n this.observers.push(observer);\n return { unsubscribe: () => this.unsubscribeFromAllFields(observer) };\n }\n\n private unsubscribeFromAllFields(\n observer: Observer<TDataName, TData[TDataName]>\n ): void {\n deleteFromArray(this.observers, observer);\n }\n\n public subscribeToField<TName extends TDataName>(\n name: TName,\n observer: FieldObserver<TData[TName]>\n ): Subscription {\n this.getFieldObservers(name).push(observer);\n return { unsubscribe: () => this.unsubscribeFromField(name, observer) };\n }\n\n private unsubscribeFromField<TName extends TDataName>(\n name: TName,\n observer: FieldObserver<TData[TName]>\n ): void {\n deleteFromArray(this.getFieldObservers(name), observer);\n }\n\n protected call<TName extends TDataName>(\n name: TName,\n value: TData[TName]\n ): void {\n this.observers.forEach((observer) => observer(name, value));\n this.getFieldObservers(name).forEach((observer) => observer(value));\n }\n}\n\nexport default SubscriptionManager;\n"],"mappings":"AAOA;;AAGA;AACA,MAAMA,eAAe,GAAG,CAACC,GAAU,EAAEC,IAAS,KAAK;EACjD,MAAMC,KAAK,GAAGF,GAAG,CAACG,SAAS,CAAEC,CAAC,IAAKA,CAAC,KAAKH,IAAI,CAAC;EAC9C,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;EAClBF,GAAG,CAACK,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,MAAMI,mBAAmB,CAGvB;EAOOC,WAAW,GAAG;IAAA,KANbC,SAAS;IAAA,KAETC,cAAc;IAKpB,IAAI,CAACD,SAAS,GAAG,EAAE;IACnB,IAAI,CAACC,cAAc,GAAG,CAAC,CAAC;EAC1B;EAEQC,iBAAiB,CACvBC,IAAW,EACyB;IACpC,IAAI,CAAC,IAAI,CAACF,cAAc,CAACE,IAAI,CAAC,EAAE;MAC9B,IAAI,CAACF,cAAc,CAACE,IAAI,CAAC,GAAG,EAAE;IAChC;IACA,OAAO,IAAI,CAACF,cAAc,CAACE,IAAI,CAAC;EAClC;EAEOC,oBAAoB,CACzBC,QAA+C,EACjC;IACd,IAAI,CAACL,SAAS,CAACM,IAAI,CAACD,QAAQ,CAAC;IAC7B,OAAO;MAAEE,WAAW,EAAE,MAAM,IAAI,CAACC,wBAAwB,CAACH,QAAQ;IAAE,CAAC;EACvE;EAEQG,wBAAwB,CAC9BH,QAA+C,EACzC;IACNd,eAAe,CAAC,IAAI,CAACS,SAAS,EAAEK,QAAQ,CAAC;EAC3C;EAEOI,gBAAgB,CACrBN,IAAW,EACXE,QAAqC,EACvB;IACd,IAAI,CAACH,iBAAiB,CAACC,IAAI,CAAC,CAACG,IAAI,CAACD,QAAQ,CAAC;IAC3C,OAAO;MAAEE,WAAW,EAAE,MAAM,IAAI,CAACG,oBAAoB,CAACP,IAAI,EAAEE,QAAQ;IAAE,CAAC;EACzE;EAEQK,oBAAoB,CAC1BP,IAAW,EACXE,QAAqC,EAC/B;IACNd,eAAe,CAAC,IAAI,CAACW,iBAAiB,CAACC,IAAI,CAAC,EAAEE,QAAQ,CAAC;EACzD;EAEUM,IAAI,CACZR,IAAW,EACXS,KAAmB,EACb;IACN,IAAI,CAACZ,SAAS,CAACa,OAAO,CAAER,QAAQ,IAAKA,QAAQ,CAACF,IAAI,EAAES,KAAK,CAAC,CAAC;IAC3D,IAAI,CAACV,iBAAiB,CAACC,IAAI,CAAC,CAACU,OAAO,CAAER,QAAQ,IAAKA,QAAQ,CAACO,KAAK,CAAC,CAAC;EACrE;AACF;AAEA,eAAed,mBAAmB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import SubscriptionManager from './SubscriptionManager';
|
|
2
|
-
type Data = Record<string, any>;
|
|
3
|
-
declare class SubscribableData<TData extends Data, TDataName extends keyof TData = keyof TData> extends SubscriptionManager<TData> {
|
|
4
|
-
private data;
|
|
5
|
-
constructor(data: TData);
|
|
6
|
-
get<TName extends TDataName>(name: TName): TData[TName];
|
|
7
|
-
getAll(): TData;
|
|
8
|
-
set<TName extends TDataName>(name: TName, value: TData[TName]): void;
|
|
9
|
-
}
|
|
10
|
-
export default SubscribableData;
|
|
11
|
-
//# sourceMappingURL=SubscribableData.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubscribableData.d.ts","sourceRoot":"","sources":["../../src/SubscribableData.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAGxD,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhC,cAAM,gBAAgB,CACpB,KAAK,SAAS,IAAI,EAClB,SAAS,SAAS,MAAM,KAAK,GAAG,MAAM,KAAK,CAC3C,SAAQ,mBAAmB,CAAC,KAAK,CAAC;IAClC,OAAO,CAAC,IAAI,CAAQ;gBAED,IAAI,EAAE,KAAK;IAKvB,GAAG,CAAC,KAAK,SAAS,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAIvD,MAAM,IAAI,KAAK;IAIf,GAAG,CAAC,KAAK,SAAS,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI;CAI5E;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export type Observer<K, V> = (name: K, value: V) => void;
|
|
2
|
-
export type FieldObserver<V> = (value: V) => void;
|
|
3
|
-
export interface Subscription {
|
|
4
|
-
unsubscribe: () => void;
|
|
5
|
-
}
|
|
6
|
-
type Data = Record<string, any>;
|
|
7
|
-
declare class SubscriptionManager<TData extends Data, TDataName extends keyof TData = keyof TData> {
|
|
8
|
-
private observers;
|
|
9
|
-
private fieldObservers;
|
|
10
|
-
constructor();
|
|
11
|
-
private getFieldObservers;
|
|
12
|
-
subscribeToAllFields(observer: Observer<TDataName, TData[TDataName]>): Subscription;
|
|
13
|
-
private unsubscribeFromAllFields;
|
|
14
|
-
subscribeToField<TName extends TDataName>(name: TName, observer: FieldObserver<TData[TName]>): Subscription;
|
|
15
|
-
private unsubscribeFromField;
|
|
16
|
-
protected call<TName extends TDataName>(name: TName, value: TData[TName]): void;
|
|
17
|
-
}
|
|
18
|
-
export default SubscriptionManager;
|
|
19
|
-
//# sourceMappingURL=SubscriptionManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/SubscriptionManager.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AACzD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAGD,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAShC,cAAM,mBAAmB,CACvB,KAAK,SAAS,IAAI,EAClB,SAAS,SAAS,MAAM,KAAK,GAAG,MAAM,KAAK;IAE3C,OAAO,CAAC,SAAS,CAA+C;IAEhE,OAAO,CAAC,cAAc,CAEpB;;IAOF,OAAO,CAAC,iBAAiB;IASlB,oBAAoB,CACzB,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAC9C,YAAY;IAKf,OAAO,CAAC,wBAAwB;IAMzB,gBAAgB,CAAC,KAAK,SAAS,SAAS,EAC7C,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GACpC,YAAY;IAKf,OAAO,CAAC,oBAAoB;IAO5B,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,SAAS,EACpC,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAClB,IAAI;CAIR;AAED,eAAe,mBAAmB,CAAC"}
|