@axi-engine/fields 0.3.5 → 0.3.7

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 (159) hide show
  1. package/dist/index.d.mts +50 -3
  2. package/dist/index.d.ts +1044 -18
  3. package/dist/index.js +1271 -18
  4. package/dist/index.mjs +42 -2
  5. package/package.json +3 -3
  6. package/dist/core-field-tree-factory.d.ts +0 -13
  7. package/dist/core-field-tree-factory.d.ts.map +0 -1
  8. package/dist/core-field-tree-factory.js +0 -14
  9. package/dist/core-field-tree-factory.js.map +0 -1
  10. package/dist/core-field-tree.d.ts +0 -5
  11. package/dist/core-field-tree.d.ts.map +0 -1
  12. package/dist/core-field-tree.js +0 -4
  13. package/dist/core-field-tree.js.map +0 -1
  14. package/dist/core-fields-factory.d.ts +0 -10
  15. package/dist/core-fields-factory.d.ts.map +0 -1
  16. package/dist/core-fields-factory.js +0 -14
  17. package/dist/core-fields-factory.js.map +0 -1
  18. package/dist/core-fields.d.ts +0 -47
  19. package/dist/core-fields.d.ts.map +0 -1
  20. package/dist/core-fields.js +0 -8
  21. package/dist/core-fields.js.map +0 -1
  22. package/dist/data-store-field-resolver.d.ts +0 -26
  23. package/dist/data-store-field-resolver.d.ts.map +0 -1
  24. package/dist/data-store-field-resolver.js +0 -21
  25. package/dist/data-store-field-resolver.js.map +0 -1
  26. package/dist/data-store.d.ts +0 -38
  27. package/dist/data-store.d.ts.map +0 -1
  28. package/dist/data-store.js +0 -141
  29. package/dist/data-store.js.map +0 -1
  30. package/dist/field-definitions/core-boolean-field.d.ts +0 -11
  31. package/dist/field-definitions/core-boolean-field.d.ts.map +0 -1
  32. package/dist/field-definitions/core-boolean-field.js +0 -13
  33. package/dist/field-definitions/core-boolean-field.js.map +0 -1
  34. package/dist/field-definitions/core-field.d.ts +0 -51
  35. package/dist/field-definitions/core-field.d.ts.map +0 -1
  36. package/dist/field-definitions/core-field.js +0 -74
  37. package/dist/field-definitions/core-field.js.map +0 -1
  38. package/dist/field-definitions/core-numeric-field.d.ts +0 -18
  39. package/dist/field-definitions/core-numeric-field.d.ts.map +0 -1
  40. package/dist/field-definitions/core-numeric-field.js +0 -45
  41. package/dist/field-definitions/core-numeric-field.js.map +0 -1
  42. package/dist/field-definitions/core-string-field.d.ts +0 -15
  43. package/dist/field-definitions/core-string-field.d.ts.map +0 -1
  44. package/dist/field-definitions/core-string-field.js +0 -27
  45. package/dist/field-definitions/core-string-field.js.map +0 -1
  46. package/dist/field-definitions/index.d.ts +0 -5
  47. package/dist/field-definitions/index.d.ts.map +0 -1
  48. package/dist/field-definitions/index.js +0 -5
  49. package/dist/field-definitions/index.js.map +0 -1
  50. package/dist/field-registry.d.ts +0 -5
  51. package/dist/field-registry.d.ts.map +0 -1
  52. package/dist/field-registry.js +0 -4
  53. package/dist/field-registry.js.map +0 -1
  54. package/dist/field-tree-factory.d.ts +0 -12
  55. package/dist/field-tree-factory.d.ts.map +0 -1
  56. package/dist/field-tree-factory.js +0 -2
  57. package/dist/field-tree-factory.js.map +0 -1
  58. package/dist/field-tree.d.ts +0 -171
  59. package/dist/field-tree.d.ts.map +0 -1
  60. package/dist/field-tree.js +0 -248
  61. package/dist/field-tree.js.map +0 -1
  62. package/dist/field.d.ts +0 -34
  63. package/dist/field.d.ts.map +0 -1
  64. package/dist/field.js +0 -2
  65. package/dist/field.js.map +0 -1
  66. package/dist/fields-factory.d.ts +0 -5
  67. package/dist/fields-factory.d.ts.map +0 -1
  68. package/dist/fields-factory.js +0 -2
  69. package/dist/fields-factory.js.map +0 -1
  70. package/dist/fields.d.ts +0 -101
  71. package/dist/fields.d.ts.map +0 -1
  72. package/dist/fields.js +0 -143
  73. package/dist/fields.js.map +0 -1
  74. package/dist/index.d.ts.map +0 -1
  75. package/dist/index.js.map +0 -1
  76. package/dist/mixins/mixin-factory.d.ts +0 -29
  77. package/dist/mixins/mixin-factory.d.ts.map +0 -1
  78. package/dist/mixins/mixin-factory.js +0 -32
  79. package/dist/mixins/mixin-factory.js.map +0 -1
  80. package/dist/mixins/with-boolean-fields.mixin.d.ts +0 -9
  81. package/dist/mixins/with-boolean-fields.mixin.d.ts.map +0 -1
  82. package/dist/mixins/with-boolean-fields.mixin.js +0 -4
  83. package/dist/mixins/with-boolean-fields.mixin.js.map +0 -1
  84. package/dist/mixins/with-default-generic-fields.mixin.d.ts +0 -31
  85. package/dist/mixins/with-default-generic-fields.mixin.d.ts.map +0 -1
  86. package/dist/mixins/with-default-generic-fields.mixin.js +0 -15
  87. package/dist/mixins/with-default-generic-fields.mixin.js.map +0 -1
  88. package/dist/mixins/with-numeric-fields.mixin.d.ts +0 -9
  89. package/dist/mixins/with-numeric-fields.mixin.d.ts.map +0 -1
  90. package/dist/mixins/with-numeric-fields.mixin.js +0 -4
  91. package/dist/mixins/with-numeric-fields.mixin.js.map +0 -1
  92. package/dist/mixins/with-string-fields.mixin.d.ts +0 -9
  93. package/dist/mixins/with-string-fields.mixin.d.ts.map +0 -1
  94. package/dist/mixins/with-string-fields.mixin.js +0 -4
  95. package/dist/mixins/with-string-fields.mixin.js.map +0 -1
  96. package/dist/policies/clamp-max-policy.d.ts +0 -11
  97. package/dist/policies/clamp-max-policy.d.ts.map +0 -1
  98. package/dist/policies/clamp-max-policy.js +0 -18
  99. package/dist/policies/clamp-max-policy.js.map +0 -1
  100. package/dist/policies/clamp-min-policy.d.ts +0 -11
  101. package/dist/policies/clamp-min-policy.d.ts.map +0 -1
  102. package/dist/policies/clamp-min-policy.js +0 -18
  103. package/dist/policies/clamp-min-policy.js.map +0 -1
  104. package/dist/policies/clamp-policy.d.ts +0 -12
  105. package/dist/policies/clamp-policy.d.ts.map +0 -1
  106. package/dist/policies/clamp-policy.js +0 -21
  107. package/dist/policies/clamp-policy.js.map +0 -1
  108. package/dist/policies/index.d.ts +0 -6
  109. package/dist/policies/index.d.ts.map +0 -1
  110. package/dist/policies/index.js +0 -6
  111. package/dist/policies/index.js.map +0 -1
  112. package/dist/policies/policies.d.ts +0 -38
  113. package/dist/policies/policies.d.ts.map +0 -1
  114. package/dist/policies/policies.js +0 -62
  115. package/dist/policies/policies.js.map +0 -1
  116. package/dist/policies/policy.d.ts +0 -6
  117. package/dist/policies/policy.d.ts.map +0 -1
  118. package/dist/policies/policy.js +0 -2
  119. package/dist/policies/policy.js.map +0 -1
  120. package/dist/serializer/field-serializer.d.ts +0 -52
  121. package/dist/serializer/field-serializer.d.ts.map +0 -1
  122. package/dist/serializer/field-serializer.js +0 -66
  123. package/dist/serializer/field-serializer.js.map +0 -1
  124. package/dist/serializer/field-tree-serializer.d.ts +0 -50
  125. package/dist/serializer/field-tree-serializer.d.ts.map +0 -1
  126. package/dist/serializer/field-tree-serializer.js +0 -68
  127. package/dist/serializer/field-tree-serializer.js.map +0 -1
  128. package/dist/serializer/fields-serializer.d.ts +0 -49
  129. package/dist/serializer/fields-serializer.d.ts.map +0 -1
  130. package/dist/serializer/fields-serializer.js +0 -57
  131. package/dist/serializer/fields-serializer.js.map +0 -1
  132. package/dist/serializer/index.d.ts +0 -8
  133. package/dist/serializer/index.d.ts.map +0 -1
  134. package/dist/serializer/index.js +0 -8
  135. package/dist/serializer/index.js.map +0 -1
  136. package/dist/serializer/policies/clamp-max-policy-serializer-handler.d.ts +0 -13
  137. package/dist/serializer/policies/clamp-max-policy-serializer-handler.d.ts.map +0 -1
  138. package/dist/serializer/policies/clamp-max-policy-serializer-handler.js +0 -10
  139. package/dist/serializer/policies/clamp-max-policy-serializer-handler.js.map +0 -1
  140. package/dist/serializer/policies/clamp-min-policy-serializer-handler.d.ts +0 -13
  141. package/dist/serializer/policies/clamp-min-policy-serializer-handler.d.ts.map +0 -1
  142. package/dist/serializer/policies/clamp-min-policy-serializer-handler.js +0 -10
  143. package/dist/serializer/policies/clamp-min-policy-serializer-handler.js.map +0 -1
  144. package/dist/serializer/policies/clamp-policy-serializer-handler.d.ts +0 -16
  145. package/dist/serializer/policies/clamp-policy-serializer-handler.d.ts.map +0 -1
  146. package/dist/serializer/policies/clamp-policy-serializer-handler.js +0 -10
  147. package/dist/serializer/policies/clamp-policy-serializer-handler.js.map +0 -1
  148. package/dist/serializer/policy-serializer.d.ts +0 -41
  149. package/dist/serializer/policy-serializer.d.ts.map +0 -1
  150. package/dist/serializer/policy-serializer.js +0 -43
  151. package/dist/serializer/policy-serializer.js.map +0 -1
  152. package/dist/setup.d.ts +0 -41
  153. package/dist/setup.d.ts.map +0 -1
  154. package/dist/setup.js +0 -57
  155. package/dist/setup.js.map +0 -1
  156. package/dist/store.d.ts +0 -137
  157. package/dist/store.d.ts.map +0 -1
  158. package/dist/store.js +0 -2
  159. package/dist/store.js.map +0 -1
package/dist/index.mjs CHANGED
@@ -945,6 +945,9 @@ var FieldTreeSerializer = class {
945
945
  }
946
946
  };
947
947
 
948
+ // src/data-store.ts
949
+ import { ensurePathArray as ensurePathArray2, ensurePathString as ensurePathString2, throwIfEmpty as throwIfEmpty4 } from "@axi-engine/utils";
950
+
948
951
  // src/data-store-field-resolver.ts
949
952
  import { isBoolean, isNumber, isString as isString2 } from "@axi-engine/utils";
950
953
  var NumericFieldResolver = class {
@@ -967,7 +970,6 @@ var StringFieldResolver = class {
967
970
  };
968
971
 
969
972
  // src/data-store.ts
970
- import { ensurePathArray as ensurePathArray2, ensurePathString as ensurePathString2, throwIfEmpty as throwIfEmpty4 } from "@axi-engine/utils";
971
973
  var DataStore = class {
972
974
  constructor(tree) {
973
975
  this.tree = tree;
@@ -1098,8 +1100,43 @@ var DataStore = class {
1098
1100
  const leafName = pathArr.pop();
1099
1101
  return { fields: this.tree.getOrCreateFields(path), leafName };
1100
1102
  }
1103
+ has(path) {
1104
+ const pathArr = ensurePathArray2(path);
1105
+ if (this.isPathToRootFields(pathArr)) {
1106
+ return this.rootFields.has(pathArr[0]);
1107
+ }
1108
+ return this.tree.hasPath(pathArr);
1109
+ }
1110
+ /** implementation of the DataStore from utils */
1111
+ get(path) {
1112
+ return this.getField(path).value;
1113
+ }
1114
+ set(path, value) {
1115
+ this.setValue(path, value);
1116
+ }
1117
+ create(path, value) {
1118
+ this.createValue(path, value);
1119
+ }
1120
+ upset(path, value) {
1121
+ this.upsetValue(path, value);
1122
+ }
1123
+ delete(path) {
1124
+ this.remove(path);
1125
+ }
1101
1126
  };
1102
1127
 
1128
+ // src/guards.ts
1129
+ import { isNullOrUndefined as isNullOrUndefined3 } from "@axi-engine/utils";
1130
+ function isFields(value) {
1131
+ return value != null && value.typeName === Fields.typeName;
1132
+ }
1133
+ function isFieldTree(value) {
1134
+ return value != null && value.typeName === FieldTree.typeName;
1135
+ }
1136
+ function isStore(value) {
1137
+ return !isNullOrUndefined3(value) && typeof value.createFields === "function" && typeof value.createTree === "function";
1138
+ }
1139
+
1103
1140
  // src/setup.ts
1104
1141
  function createCoreFieldRegistry() {
1105
1142
  const fieldRegistry = new FieldRegistry();
@@ -1166,5 +1203,8 @@ export {
1166
1203
  createCorePolicySerializer,
1167
1204
  createCoreTreeNodeFactory,
1168
1205
  createCoreTreeSerializer,
1169
- createTypedMethodsMixin
1206
+ createTypedMethodsMixin,
1207
+ isFieldTree,
1208
+ isFields,
1209
+ isStore
1170
1210
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axi-engine/fields",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "description": "A compact, reactive state management library based on a tree of observable fields.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,9 +36,9 @@
36
36
  "dequal": "^2.0.3"
37
37
  },
38
38
  "devDependencies": {
39
- "@axi-engine/utils": "^0.2.0"
39
+ "@axi-engine/utils": "^0.2.4"
40
40
  },
41
41
  "peerDependencies": {
42
- "@axi-engine/utils": "^0.2.0"
42
+ "@axi-engine/utils": "^0.2.4"
43
43
  }
44
44
  }
@@ -1,13 +0,0 @@
1
- import { CoreFieldsFactory } from './core-fields-factory';
2
- import { FieldTreeFactory } from './field-tree-factory';
3
- import { CoreFields } from './core-fields';
4
- import { FieldRegistry } from './field-registry';
5
- import { CoreFieldTree } from './core-field-tree';
6
- /**
7
- * The default factory implementation that creates standard DefaultFields and FieldTree instances.
8
- */
9
- export declare class CoreTreeNodeFactory extends CoreFieldsFactory implements FieldTreeFactory<CoreFields> {
10
- constructor(fieldRegistry: FieldRegistry);
11
- tree(): CoreFieldTree;
12
- }
13
- //# sourceMappingURL=core-field-tree-factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-field-tree-factory.d.ts","sourceRoot":"","sources":["../src/core-field-tree-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,iBAAkB,YAAW,gBAAgB,CAAC,UAAU,CAAC;gBACpF,aAAa,EAAE,aAAa;IAIxC,IAAI;CAGL"}
@@ -1,14 +0,0 @@
1
- import { CoreFieldsFactory } from './core-fields-factory';
2
- import { CoreFieldTree } from './core-field-tree';
3
- /**
4
- * The default factory implementation that creates standard DefaultFields and FieldTree instances.
5
- */
6
- export class CoreTreeNodeFactory extends CoreFieldsFactory {
7
- constructor(fieldRegistry) {
8
- super(fieldRegistry);
9
- }
10
- tree() {
11
- return new CoreFieldTree(this);
12
- }
13
- }
14
- //# sourceMappingURL=core-field-tree-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-field-tree-factory.js","sourceRoot":"","sources":["../src/core-field-tree-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAIxD,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,iBAAiB;IACxD,YAAY,aAA4B;QACtC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -1,5 +0,0 @@
1
- import { FieldTree } from './field-tree';
2
- import { CoreFields } from './core-fields';
3
- export declare class CoreFieldTree extends FieldTree<CoreFields> {
4
- }
5
- //# sourceMappingURL=core-field-tree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-field-tree.d.ts","sourceRoot":"","sources":["../src/core-field-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,qBAAa,aAAc,SAAQ,SAAS,CAAC,UAAU,CAAC;CAAG"}
@@ -1,4 +0,0 @@
1
- import { FieldTree } from './field-tree';
2
- export class CoreFieldTree extends FieldTree {
3
- }
4
- //# sourceMappingURL=core-field-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-field-tree.js","sourceRoot":"","sources":["../src/core-field-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAGvC,MAAM,OAAO,aAAc,SAAQ,SAAqB;CAAG"}
@@ -1,10 +0,0 @@
1
- import { CoreFields } from './core-fields';
2
- import { FieldRegistry } from './field-registry';
3
- import { FieldsFactory } from './fields-factory';
4
- export declare class CoreFieldsFactory implements FieldsFactory<CoreFields> {
5
- protected readonly _fieldRegistry: FieldRegistry;
6
- get fieldRegistry(): FieldRegistry;
7
- constructor(fieldRegistry: FieldRegistry);
8
- fields(): CoreFields;
9
- }
10
- //# sourceMappingURL=core-fields-factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-fields-factory.d.ts","sourceRoot":"","sources":["../src/core-fields-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAG/C,qBAAa,iBAAkB,YAAW,aAAa,CAAC,UAAU,CAAC;IACjE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC;IAEjD,IAAI,aAAa,kBAEhB;gBAEW,aAAa,EAAE,aAAa;IAIxC,MAAM;CAGP"}
@@ -1,14 +0,0 @@
1
- import { CoreFields } from './core-fields';
2
- export class CoreFieldsFactory {
3
- _fieldRegistry;
4
- get fieldRegistry() {
5
- return this._fieldRegistry;
6
- }
7
- constructor(fieldRegistry) {
8
- this._fieldRegistry = fieldRegistry;
9
- }
10
- fields() {
11
- return new CoreFields(this._fieldRegistry);
12
- }
13
- }
14
- //# sourceMappingURL=core-fields-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-fields-factory.js","sourceRoot":"","sources":["../src/core-fields-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAKzC,MAAM,OAAO,iBAAiB;IACT,cAAc,CAAgB;IAEjD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,YAAY,aAA4B;QACtC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC5C,CAAC;CACF"}
@@ -1,47 +0,0 @@
1
- import { Fields } from './fields';
2
- declare const CoreFields_base: import("@axi-engine/utils").Constructor<{
3
- createGeneric<T>(name: string, initialValue: T, options?: import("./field").FieldOptions<T> | undefined): import("./field-definitions").CoreField<T>;
4
- upsetGeneric<T>(name: string, value: T, options?: import("./field").FieldOptions<T> | undefined): import("./field-definitions").CoreField<T>;
5
- getGeneric<T>(name: string): import("./field-definitions").CoreField<T>;
6
- readonly typeName: "fields";
7
- readonly _fields: Map<string, import("./field").Field<any>>;
8
- readonly _fieldRegistry: import("./field-registry").FieldRegistry;
9
- onAdd: import("@axi-engine/utils").Emitter<[event: {
10
- name: string;
11
- field: import("./field").Field<any>;
12
- }]>;
13
- onRemove: import("@axi-engine/utils").Emitter<[event: {
14
- names: string[];
15
- }]>;
16
- get fields(): Map<string, import("./field").Field<any>>;
17
- has(name: string): boolean;
18
- add<T extends import("./field").Field<any>>(field: import("./field").Field<any>): T;
19
- create<T extends import("./field").Field<any>>(typeName: string, name: string, initialValue: any, options?: any): T;
20
- upset<T extends import("./field").Field<any>>(typeName: string, name: string, value: any, options?: any): T;
21
- get<TField extends import("./field").Field<any>>(name: string): TField;
22
- remove(names: string | string[]): void;
23
- clear(): void;
24
- destroy(): void;
25
- } & Fields & {
26
- createNumeric: (name: string, initialValue: number, options?: import("./field-definitions").CoreNumericFieldOptions | undefined) => import("./field-definitions").CoreNumericField;
27
- } & {
28
- upsetNumeric: (name: string, value: number, options?: import("./field-definitions").CoreNumericFieldOptions | undefined) => import("./field-definitions").CoreNumericField;
29
- } & {
30
- getNumeric: (name: string) => import("./field-definitions").CoreNumericField;
31
- } & {
32
- createString: (name: string, initialValue: string, options?: import("./field-definitions").CoreStringFieldOptions | undefined) => import("./field-definitions").CoreStringField;
33
- } & {
34
- upsetString: (name: string, value: string, options?: import("./field-definitions").CoreStringFieldOptions | undefined) => import("./field-definitions").CoreStringField;
35
- } & {
36
- getString: (name: string) => import("./field-definitions").CoreStringField;
37
- } & {
38
- createBoolean: (name: string, initialValue: boolean, options?: import("./field-definitions").CoreBooleanFieldOptions | undefined) => import("./field-definitions").CoreBooleanField;
39
- } & {
40
- upsetBoolean: (name: string, value: boolean, options?: import("./field-definitions").CoreBooleanFieldOptions | undefined) => import("./field-definitions").CoreBooleanField;
41
- } & {
42
- getBoolean: (name: string) => import("./field-definitions").CoreBooleanField;
43
- }>;
44
- export declare class CoreFields extends CoreFields_base {
45
- }
46
- export {};
47
- //# sourceMappingURL=core-fields.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-fields.d.ts","sourceRoot":"","sources":["../src/core-fields.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhC,qBAAa,UAAW,SAAQ,eAAwF;CAAG"}
@@ -1,8 +0,0 @@
1
- import { WithBooleanFields } from './mixins/with-boolean-fields.mixin';
2
- import { WithStringFields } from './mixins/with-string-fields.mixin';
3
- import { WithNumericFields } from './mixins/with-numeric-fields.mixin';
4
- import { WithDefaultGenericFields } from './mixins/with-default-generic-fields.mixin';
5
- import { Fields } from './fields';
6
- export class CoreFields extends WithBooleanFields(WithStringFields(WithNumericFields(WithDefaultGenericFields(Fields)))) {
7
- }
8
- //# sourceMappingURL=core-fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-fields.js","sourceRoot":"","sources":["../src/core-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,UAAW,SAAQ,iBAAiB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAAG"}
@@ -1,26 +0,0 @@
1
- export interface DataStoreFieldResolver {
2
- /**
3
- * The typeName this resolver corresponds to in the FieldRegistry.
4
- * e.g., 'numeric', 'boolean', 'vector'
5
- */
6
- typeName: string;
7
- /**
8
- * Checks if this resolver can handle the given value.
9
- * @param value The value to check.
10
- * @returns {boolean} True if the value is supported, otherwise false.
11
- */
12
- supports(value: unknown): boolean;
13
- }
14
- export declare class NumericFieldResolver implements DataStoreFieldResolver {
15
- readonly typeName: string;
16
- supports(value: unknown): boolean;
17
- }
18
- export declare class BooleanFieldResolver implements DataStoreFieldResolver {
19
- readonly typeName: string;
20
- supports(value: unknown): boolean;
21
- }
22
- export declare class StringFieldResolver implements DataStoreFieldResolver {
23
- readonly typeName: string;
24
- supports(value: unknown): boolean;
25
- }
26
- //# sourceMappingURL=data-store-field-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-store-field-resolver.d.ts","sourceRoot":"","sources":["../src/data-store-field-resolver.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;CAClC;AAED,qBAAa,oBAAqB,YAAW,sBAAsB;IACjE,QAAQ,CAAC,QAAQ,SAA6B;IAC9C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAGlC;AAED,qBAAa,oBAAqB,YAAW,sBAAsB;IACjE,QAAQ,CAAC,QAAQ,SAA6B;IAC9C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAGlC;AACD,qBAAa,mBAAoB,YAAW,sBAAsB;IAChE,QAAQ,CAAC,QAAQ,SAA4B;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAGlC"}
@@ -1,21 +0,0 @@
1
- import { CoreBooleanField, CoreNumericField, CoreStringField } from './field-definitions';
2
- import { isBoolean, isNumber, isString } from '@axi-engine/utils';
3
- export class NumericFieldResolver {
4
- typeName = CoreNumericField.typeName;
5
- supports(value) {
6
- return isNumber(value);
7
- }
8
- }
9
- export class BooleanFieldResolver {
10
- typeName = CoreBooleanField.typeName;
11
- supports(value) {
12
- return isBoolean(value);
13
- }
14
- }
15
- export class StringFieldResolver {
16
- typeName = CoreStringField.typeName;
17
- supports(value) {
18
- return isString(value);
19
- }
20
- }
21
- //# sourceMappingURL=data-store-field-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-store-field-resolver.js","sourceRoot":"","sources":["../src/data-store-field-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAiBhE,MAAM,OAAO,oBAAoB;IACtB,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAC9C,QAAQ,CAAC,KAAc;QACrB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,oBAAoB;IACtB,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAC9C,QAAQ,CAAC,KAAc;QACrB,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AACD,MAAM,OAAO,mBAAmB;IACrB,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;IAC7C,QAAQ,CAAC,KAAc;QACrB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -1,38 +0,0 @@
1
- import { Store, StoreCreateFieldOptions } from './store';
2
- import { DataStoreFieldResolver } from './data-store-field-resolver';
3
- import { PathType } from '@axi-engine/utils';
4
- import { Field, FieldOptions } from './field';
5
- import { CoreFieldTree } from './core-field-tree';
6
- import { CoreBooleanField, CoreBooleanFieldOptions, CoreField, CoreNumericField, CoreNumericFieldOptions, CoreStringField, CoreStringFieldOptions } from './field-definitions';
7
- import { CoreFields } from './core-fields';
8
- export declare class DataStore implements Store {
9
- private readonly tree;
10
- private readonly resolvers;
11
- private readonly rootFieldsName;
12
- private _rootFields;
13
- private get rootFields();
14
- constructor(tree: CoreFieldTree);
15
- registerResolver(resolver: DataStoreFieldResolver): void;
16
- clearResolvers(): void;
17
- getValue<T>(path: PathType): T;
18
- setValue<T>(path: PathType, val: T): T;
19
- createValue<T>(path: PathType, val: T, options?: FieldOptions<T> & StoreCreateFieldOptions): T;
20
- upsetValue<T>(path: PathType, val: T, options?: FieldOptions<T> & StoreCreateFieldOptions): T;
21
- createBoolean(path: PathType, initialValue: boolean, options?: CoreBooleanFieldOptions): CoreBooleanField;
22
- createNumeric(path: PathType, initialValue: number, options?: CoreNumericFieldOptions): CoreNumericField;
23
- createString(path: PathType, initialValue: string, options?: CoreStringFieldOptions): CoreStringField;
24
- createGeneric<T>(path: PathType, initialValue: T, options?: FieldOptions<T>): CoreField<T>;
25
- getBoolean(path: PathType): CoreBooleanField;
26
- getNumeric(path: PathType): CoreNumericField;
27
- getString(path: PathType): CoreStringField;
28
- getGeneric<T>(path: PathType): CoreField<T>;
29
- getField<TField extends Field<any>>(path: PathType): TField;
30
- createFields(path: PathType): CoreFields;
31
- createTree(path: PathType): CoreFieldTree;
32
- getFields(path: PathType): CoreFields;
33
- getTree(path: PathType): CoreFieldTree;
34
- remove(path: PathType): void;
35
- private isPathToRootFields;
36
- private getDestinationFields;
37
- }
38
- //# sourceMappingURL=data-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-store.d.ts","sourceRoot":"","sources":["../src/data-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAC;AACvD,OAAO,EAEL,sBAAsB,EAGvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAoC,QAAQ,EAAe,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EAAE,SAAS,EAClC,gBAAgB,EAChB,uBAAuB,EAAE,eAAe,EAAE,sBAAsB,EACjE,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAGzC,qBAAa,SAAU,YAAW,KAAK;IAYzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,KAAK,UAAU,GAKrB;gBAE4B,IAAI,EAAE,aAAa;IAMhD,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB;IAIjD,cAAc;IAKd,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,CAAC;IAI9B,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAOtC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,uBAAuB,GAAG,CAAC;IAa9F,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,uBAAuB,GAAG,CAAC;IAa7F,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,gBAAgB;IAKzG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,gBAAgB;IAKxG,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,eAAe;IAKrG,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAK1F,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB;IAI5C,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB;IAI5C,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,eAAe;IAI1C,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;IAI3C,QAAQ,CAAC,MAAM,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM;IAY3D,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU;IAIxC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa;IAIzC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU;IAIrC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa;IAItC,MAAM,CAAC,IAAI,EAAE,QAAQ;IAoBrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;CAQ7B"}
@@ -1,141 +0,0 @@
1
- import { BooleanFieldResolver, NumericFieldResolver, StringFieldResolver } from './data-store-field-resolver';
2
- import { ensurePathArray, ensurePathString, throwIfEmpty } from '@axi-engine/utils';
3
- import { CoreFieldTree } from './core-field-tree';
4
- import { CoreFields } from './core-fields';
5
- export class DataStore {
6
- tree;
7
- resolvers = [];
8
- rootFieldsName = '__root_fields';
9
- _rootFields;
10
- get rootFields() {
11
- if (!this._rootFields) {
12
- this._rootFields = this.tree.getOrCreateFields(this.rootFieldsName);
13
- }
14
- return this._rootFields;
15
- }
16
- constructor(tree) {
17
- this.tree = tree;
18
- this.registerResolver(new NumericFieldResolver());
19
- this.registerResolver(new BooleanFieldResolver());
20
- this.registerResolver(new StringFieldResolver());
21
- }
22
- registerResolver(resolver) {
23
- this.resolvers.unshift(resolver);
24
- }
25
- clearResolvers() {
26
- /* set length to 0 because array is readonly, so we can't just reassign them to empty array */
27
- this.resolvers.length = 0;
28
- }
29
- getValue(path) {
30
- return this.getField(path).value;
31
- }
32
- setValue(path, val) {
33
- /** for case when field has policies */
34
- const field = this.getField(path);
35
- field.value = val;
36
- return field.value;
37
- }
38
- createValue(path, val, options) {
39
- const dest = this.getDestinationFields(path);
40
- if (options?.fieldType) {
41
- return dest.fields.create(options.fieldType, dest.leafName, val, options).value;
42
- }
43
- for (let resolver of this.resolvers) {
44
- if (resolver.supports(val)) {
45
- return dest.fields.create(resolver.typeName, dest.leafName, val, options).value;
46
- }
47
- }
48
- return dest.fields.createGeneric(dest.leafName, val, options).value;
49
- }
50
- upsetValue(path, val, options) {
51
- const dest = this.getDestinationFields(path);
52
- if (options?.fieldType) {
53
- return dest.fields.upset(options.fieldType, dest.leafName, val, options).value;
54
- }
55
- for (let resolver of this.resolvers) {
56
- if (resolver.supports(val)) {
57
- return dest.fields.upset(resolver.typeName, dest.leafName, val, options).value;
58
- }
59
- }
60
- return dest.fields.upsetGeneric(dest.leafName, val, options).value;
61
- }
62
- createBoolean(path, initialValue, options) {
63
- const dest = this.getDestinationFields(path);
64
- return dest.fields.createBoolean(dest.leafName, initialValue, options);
65
- }
66
- createNumeric(path, initialValue, options) {
67
- const dest = this.getDestinationFields(path);
68
- return dest.fields.createNumeric(dest.leafName, initialValue, options);
69
- }
70
- createString(path, initialValue, options) {
71
- const dest = this.getDestinationFields(path);
72
- return dest.fields.createString(dest.leafName, initialValue, options);
73
- }
74
- createGeneric(path, initialValue, options) {
75
- const dest = this.getDestinationFields(path);
76
- return dest.fields.createGeneric(dest.leafName, initialValue, options);
77
- }
78
- getBoolean(path) {
79
- return this.getField(path);
80
- }
81
- getNumeric(path) {
82
- return this.getField(path);
83
- }
84
- getString(path) {
85
- return this.getField(path);
86
- }
87
- getGeneric(path) {
88
- return this.getField(path);
89
- }
90
- getField(path) {
91
- const pathArr = ensurePathArray(path);
92
- throwIfEmpty(pathArr, `Wrong path or path is empty: ${ensurePathString(path)}, should contain at least one path segment`);
93
- if (this.isPathToRootFields(pathArr)) {
94
- return this.rootFields.get(pathArr[0]);
95
- }
96
- const fieldName = pathArr.pop();
97
- const fields = this.tree.getFields(pathArr);
98
- return fields.get(fieldName);
99
- }
100
- createFields(path) {
101
- return this.tree.createFields(path, true);
102
- }
103
- createTree(path) {
104
- return this.tree.createFieldTree(path, true);
105
- }
106
- getFields(path) {
107
- return this.tree.getFields(path);
108
- }
109
- getTree(path) {
110
- return this.tree.getFieldTree(path);
111
- }
112
- remove(path) {
113
- const pathArr = ensurePathArray(path);
114
- throwIfEmpty(pathArr, `Wrong path or path is empty: ${ensurePathString(path)}, should contain at least one path segment`);
115
- /** remove field from root fields */
116
- if (this.isPathToRootFields(pathArr)) {
117
- this.rootFields.remove(pathArr);
118
- return;
119
- }
120
- const node = this.tree.findParentNode(pathArr);
121
- const leafName = pathArr[pathArr.length - 1];
122
- if (node instanceof CoreFields) {
123
- node.remove(leafName);
124
- }
125
- else if (node instanceof CoreFieldTree) {
126
- node.removeNode(leafName);
127
- }
128
- }
129
- isPathToRootFields(path) {
130
- return ensurePathArray(path).length === 1;
131
- }
132
- getDestinationFields(path) {
133
- const pathArr = ensurePathArray(path);
134
- if (this.isPathToRootFields(pathArr)) {
135
- return { fields: this.rootFields, leafName: pathArr[0] };
136
- }
137
- const leafName = pathArr.pop();
138
- return { fields: this.tree.getOrCreateFields(path), leafName };
139
- }
140
- }
141
- //# sourceMappingURL=data-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-store.js","sourceRoot":"","sources":["../src/data-store.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { CoreField } from './core-field';
2
- import { BooleanField, FieldOptions } from '../field';
3
- export interface CoreBooleanFieldOptions extends FieldOptions<boolean> {
4
- }
5
- export declare class CoreBooleanField extends CoreField<boolean> implements BooleanField {
6
- static readonly typeName: string;
7
- readonly typeName: string;
8
- constructor(name: string, initialVal: boolean, options?: CoreBooleanFieldOptions);
9
- toggle(): boolean;
10
- }
11
- //# sourceMappingURL=core-boolean-field.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-boolean-field.d.ts","sourceRoot":"","sources":["../../src/field-definitions/core-boolean-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,uBAAwB,SAAQ,YAAY,CAAC,OAAO,CAAC;CAAI;AAE1E,qBAAa,gBAAiB,SAAQ,SAAS,CAAC,OAAO,CAAE,YAAW,YAAY;IAC9E,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAa;IAC7C,QAAQ,CAAC,QAAQ,SAA6B;gBAElC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAIhF,MAAM,IAAI,OAAO;CAIlB"}
@@ -1,13 +0,0 @@
1
- import { CoreField } from './core-field';
2
- export class CoreBooleanField extends CoreField {
3
- static typeName = 'boolean';
4
- typeName = CoreBooleanField.typeName;
5
- constructor(name, initialVal, options) {
6
- super(name, initialVal, options);
7
- }
8
- toggle() {
9
- this.value = !this.value;
10
- return this.value;
11
- }
12
- }
13
- //# sourceMappingURL=core-boolean-field.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-boolean-field.js","sourceRoot":"","sources":["../../src/field-definitions/core-boolean-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAKvC,MAAM,OAAO,gBAAiB,SAAQ,SAAkB;IACtD,MAAM,CAAU,QAAQ,GAAW,SAAS,CAAC;IACpC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAE9C,YAAY,IAAY,EAAE,UAAmB,EAAE,OAAiC;QAC9E,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC"}
@@ -1,51 +0,0 @@
1
- import { Subscribable } from '@axi-engine/utils';
2
- import { Policies } from '../policies';
3
- import { Field, FieldOptions } from '../field';
4
- /**
5
- * A state container that wraps a value.
6
- * It allows applying a pipeline of transformation or validation "policies" before any new value is set.
7
- *
8
- * @template T The type of the value this field holds.
9
- *
10
- */
11
- export declare class CoreField<T> implements Field<T> {
12
- /** A type keyword of the field */
13
- static readonly typeName: string;
14
- readonly typeName: string;
15
- /** A unique identifier for the field. */
16
- private readonly _name;
17
- private _value;
18
- private readonly _onChange;
19
- readonly onChange: Subscribable<[newValue: T, oldvalue: T]>;
20
- readonly policies: Policies<T>;
21
- get name(): string;
22
- /**
23
- * Gets the current raw value of the field.
24
- * For reactive updates, it's recommended to use the `.signal` property instead.
25
- */
26
- get value(): T;
27
- /**
28
- * Sets a new value for the field.
29
- * The provided value will be processed by all registered policies before the underlying signal is updated.
30
- * @param val The new value to set.
31
- */
32
- set value(val: T);
33
- /**
34
- * Creates an instance of a Field.
35
- * @param name A unique identifier for the field.
36
- * @param initialVal The initial value of the field.
37
- * @param options Optional configuration for the field.
38
- * @param options.policies An array of policies to apply to the field's value on every `set` operation.
39
- * @param options.isEqual An function for compare old and new value, by default uses the strictEquals from `utils`
40
- *
41
- */
42
- constructor(name: string, initialVal: T, options?: FieldOptions<T>);
43
- setValueSilently(val: T): void;
44
- batchUpdate(updateFn: (currentValue: T) => T): void;
45
- /**
46
- * Cleans up resources used by the field and its policies.
47
- * This should be called when the field is no longer needed to prevent memory leaks from reactive policies.
48
- */
49
- destroy(): void;
50
- }
51
- //# sourceMappingURL=core-field.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-field.d.ts","sourceRoot":"","sources":["../../src/field-definitions/core-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAErC,OAAO,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAG7C;;;;;;GAMG;AACH,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;IAC3C,kCAAkC;IAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAa;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAsB;IAE/C,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsD;IAChF,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAkB;IAGhD,IAAI,IAAI,WAEP;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,CAAC,CAEb;IAED;;;;OAIG;IACH,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,EAOf;IAED;;;;;;;;OAQG;gBAED,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,EACb,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAQ3B,gBAAgB,CAAC,GAAG,EAAE,CAAC;IAIvB,WAAW,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAInD;;;OAGG;IACH,OAAO;CAIR"}