glass-easel 0.2.0 → 0.3.0

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 (197) hide show
  1. package/.eslintignore +4 -0
  2. package/dist/glass_easel.all.js +2 -2
  3. package/dist/glass_easel.all.js.map +1 -1
  4. package/dist/glass_easel.d.ts +2546 -0
  5. package/dist/glass_easel.domlike.global.js +2 -2
  6. package/dist/glass_easel.domlike.global.js.map +1 -1
  7. package/guide/zh_CN/appendix/backend_protocol.md +164 -74
  8. package/jest.unit.config.js +7 -4
  9. package/package.json +7 -5
  10. package/rollup.config.ts +101 -0
  11. package/src/backend/backend_protocol.ts +26 -345
  12. package/src/backend/composed_backend_protocol.ts +10 -264
  13. package/src/backend/current_window_backend_context.ts +478 -0
  14. package/src/backend/domlike_backend_protocol.ts +9 -498
  15. package/src/backend/empty_backend.ts +265 -0
  16. package/src/backend/empty_composed_backend.ts +245 -0
  17. package/src/backend/index.ts +18 -0
  18. package/src/backend/suggested_backend_protocol.ts +62 -11
  19. package/src/behavior.ts +131 -442
  20. package/src/class_list.ts +328 -222
  21. package/src/component.ts +349 -184
  22. package/src/component_params.ts +54 -25
  23. package/src/component_space.ts +36 -15
  24. package/src/data_path.ts +22 -34
  25. package/src/data_proxy.ts +334 -27
  26. package/src/devtool.ts +89 -0
  27. package/src/element.ts +667 -285
  28. package/src/element_iterator.ts +9 -4
  29. package/src/event.ts +39 -20
  30. package/src/external_shadow_tree.ts +2 -2
  31. package/src/func_arr.ts +55 -101
  32. package/src/global_options.ts +18 -42
  33. package/src/index.ts +72 -73
  34. package/src/mutation_observer.ts +10 -7
  35. package/src/native_node.ts +79 -35
  36. package/src/node.ts +23 -30
  37. package/src/relation.ts +101 -12
  38. package/src/render.ts +5 -3
  39. package/src/selector.ts +9 -7
  40. package/src/shadow_root.ts +96 -240
  41. package/src/template_engine.ts +10 -7
  42. package/src/text_node.ts +43 -19
  43. package/src/tmpl/index.ts +38 -30
  44. package/src/tmpl/native_rendering.ts +14 -21
  45. package/src/tmpl/proc_gen_wrapper.ts +189 -151
  46. package/src/tmpl/proc_gen_wrapper_dom.ts +10 -8
  47. package/src/tmpl/range_list_diff.ts +30 -9
  48. package/src/trait_behaviors.ts +1 -1
  49. package/src/type_symbol.ts +36 -0
  50. package/src/virtual_node.ts +26 -13
  51. package/src/warning.ts +119 -0
  52. package/tests/base/composed_backend.ts +143 -142
  53. package/tests/base/env.ts +76 -3
  54. package/tests/base/match.ts +24 -22
  55. package/tests/base/shadow_backend.ts +917 -0
  56. package/tests/core/backend.test.ts +53 -1
  57. package/tests/core/behavior.test.ts +1 -1
  58. package/tests/core/data_update.test.ts +135 -0
  59. package/tests/core/misc.test.ts +91 -21
  60. package/tests/core/placeholder.test.ts +66 -25
  61. package/tests/core/slot.test.ts +161 -23
  62. package/tests/legacy/component.test.js +152 -78
  63. package/tests/legacy/data_path.test.js +19 -19
  64. package/tests/legacy/data_proxy.test.js +14 -7
  65. package/tests/legacy/external.test.js +8 -8
  66. package/tests/legacy/mutation_observer.test.js +7 -5
  67. package/tests/legacy/slot.test.js +2 -3
  68. package/tests/legacy/virtual.test.js +258 -25
  69. package/tests/tmpl/binding_map.test.ts +201 -195
  70. package/tests/tmpl/event.test.ts +138 -23
  71. package/tests/tmpl/expression.test.ts +15 -15
  72. package/tests/tmpl/lvalue.test.ts +101 -0
  73. package/tests/tmpl/structure.test.ts +486 -43
  74. package/tests/types/chaining.test.ts +27 -30
  75. package/tests/types/createElement.test.ts +5 -4
  76. package/tests/types/definition.test.ts +11 -14
  77. package/tsconfig.json +1 -3
  78. package/dist/glass_easel.all.d.ts +0 -1
  79. package/dist/glass_easel.domlike.global.d.ts +0 -1
  80. package/dist/index.d.ts +0 -1
  81. package/dist/index.js +0 -1
  82. package/dist/types/src/backend/backend_protocol.d.ts +0 -141
  83. package/dist/types/src/backend/backend_protocol.d.ts.map +0 -1
  84. package/dist/types/src/backend/composed_backend_protocol.d.ts +0 -102
  85. package/dist/types/src/backend/composed_backend_protocol.d.ts.map +0 -1
  86. package/dist/types/src/backend/domlike_backend_protocol.d.ts +0 -100
  87. package/dist/types/src/backend/domlike_backend_protocol.d.ts.map +0 -1
  88. package/dist/types/src/backend/mode.d.ts +0 -65
  89. package/dist/types/src/backend/mode.d.ts.map +0 -1
  90. package/dist/types/src/backend/suggested_backend_protocol.d.ts +0 -30
  91. package/dist/types/src/backend/suggested_backend_protocol.d.ts.map +0 -1
  92. package/dist/types/src/behavior.d.ts +0 -434
  93. package/dist/types/src/behavior.d.ts.map +0 -1
  94. package/dist/types/src/class_list.d.ts +0 -83
  95. package/dist/types/src/class_list.d.ts.map +0 -1
  96. package/dist/types/src/component.d.ts +0 -325
  97. package/dist/types/src/component.d.ts.map +0 -1
  98. package/dist/types/src/component_params.d.ts +0 -236
  99. package/dist/types/src/component_params.d.ts.map +0 -1
  100. package/dist/types/src/component_space.d.ts +0 -211
  101. package/dist/types/src/component_space.d.ts.map +0 -1
  102. package/dist/types/src/data_path.d.ts +0 -5
  103. package/dist/types/src/data_path.d.ts.map +0 -1
  104. package/dist/types/src/data_proxy.d.ts +0 -107
  105. package/dist/types/src/data_proxy.d.ts.map +0 -1
  106. package/dist/types/src/data_utils.d.ts +0 -3
  107. package/dist/types/src/data_utils.d.ts.map +0 -1
  108. package/dist/types/src/element.d.ts +0 -365
  109. package/dist/types/src/element.d.ts.map +0 -1
  110. package/dist/types/src/element_iterator.d.ts +0 -43
  111. package/dist/types/src/element_iterator.d.ts.map +0 -1
  112. package/dist/types/src/event.d.ts +0 -105
  113. package/dist/types/src/event.d.ts.map +0 -1
  114. package/dist/types/src/external_shadow_tree.d.ts +0 -20
  115. package/dist/types/src/external_shadow_tree.d.ts.map +0 -1
  116. package/dist/types/src/func_arr.d.ts +0 -39
  117. package/dist/types/src/func_arr.d.ts.map +0 -1
  118. package/dist/types/src/global_options.d.ts +0 -120
  119. package/dist/types/src/global_options.d.ts.map +0 -1
  120. package/dist/types/src/index.d.ts +0 -43
  121. package/dist/types/src/index.d.ts.map +0 -1
  122. package/dist/types/src/mutation_observer.d.ts +0 -79
  123. package/dist/types/src/mutation_observer.d.ts.map +0 -1
  124. package/dist/types/src/native_node.d.ts +0 -11
  125. package/dist/types/src/native_node.d.ts.map +0 -1
  126. package/dist/types/src/node.d.ts +0 -48
  127. package/dist/types/src/node.d.ts.map +0 -1
  128. package/dist/types/src/relation.d.ts +0 -46
  129. package/dist/types/src/relation.d.ts.map +0 -1
  130. package/dist/types/src/render.d.ts +0 -3
  131. package/dist/types/src/render.d.ts.map +0 -1
  132. package/dist/types/src/selector.d.ts +0 -32
  133. package/dist/types/src/selector.d.ts.map +0 -1
  134. package/dist/types/src/shadow_root.d.ts +0 -174
  135. package/dist/types/src/shadow_root.d.ts.map +0 -1
  136. package/dist/types/src/template_engine.d.ts +0 -56
  137. package/dist/types/src/template_engine.d.ts.map +0 -1
  138. package/dist/types/src/text_node.d.ts +0 -44
  139. package/dist/types/src/text_node.d.ts.map +0 -1
  140. package/dist/types/src/tmpl/index.d.ts +0 -19
  141. package/dist/types/src/tmpl/index.d.ts.map +0 -1
  142. package/dist/types/src/tmpl/native_rendering.d.ts +0 -45
  143. package/dist/types/src/tmpl/native_rendering.d.ts.map +0 -1
  144. package/dist/types/src/tmpl/proc_gen_wrapper.d.ts +0 -89
  145. package/dist/types/src/tmpl/proc_gen_wrapper.d.ts.map +0 -1
  146. package/dist/types/src/tmpl/proc_gen_wrapper_dom.d.ts +0 -50
  147. package/dist/types/src/tmpl/proc_gen_wrapper_dom.d.ts.map +0 -1
  148. package/dist/types/src/tmpl/range_list_diff.d.ts +0 -19
  149. package/dist/types/src/tmpl/range_list_diff.d.ts.map +0 -1
  150. package/dist/types/src/trait_behaviors.d.ts +0 -38
  151. package/dist/types/src/trait_behaviors.d.ts.map +0 -1
  152. package/dist/types/src/virtual_node.d.ts +0 -10
  153. package/dist/types/src/virtual_node.d.ts.map +0 -1
  154. package/dist/types/tests/backend/domlike.test.d.ts +0 -2
  155. package/dist/types/tests/backend/domlike.test.d.ts.map +0 -1
  156. package/dist/types/tests/base/composed_backend.d.ts +0 -123
  157. package/dist/types/tests/base/composed_backend.d.ts.map +0 -1
  158. package/dist/types/tests/base/env.d.ts +0 -30
  159. package/dist/types/tests/base/env.d.ts.map +0 -1
  160. package/dist/types/tests/base/match.d.ts +0 -9
  161. package/dist/types/tests/base/match.d.ts.map +0 -1
  162. package/dist/types/tests/core/backend.test.d.ts +0 -2
  163. package/dist/types/tests/core/backend.test.d.ts.map +0 -1
  164. package/dist/types/tests/core/behavior.test.d.ts +0 -2
  165. package/dist/types/tests/core/behavior.test.d.ts.map +0 -1
  166. package/dist/types/tests/core/component_space.test.d.ts +0 -2
  167. package/dist/types/tests/core/component_space.test.d.ts.map +0 -1
  168. package/dist/types/tests/core/data_update.test.d.ts +0 -2
  169. package/dist/types/tests/core/data_update.test.d.ts.map +0 -1
  170. package/dist/types/tests/core/misc.test.d.ts +0 -2
  171. package/dist/types/tests/core/misc.test.d.ts.map +0 -1
  172. package/dist/types/tests/core/placeholder.test.d.ts +0 -2
  173. package/dist/types/tests/core/placeholder.test.d.ts.map +0 -1
  174. package/dist/types/tests/core/slot.test.d.ts +0 -2
  175. package/dist/types/tests/core/slot.test.d.ts.map +0 -1
  176. package/dist/types/tests/core/trait_behaviors.test.d.ts +0 -2
  177. package/dist/types/tests/core/trait_behaviors.test.d.ts.map +0 -1
  178. package/dist/types/tests/tmpl/binding_map.test.d.ts +0 -2
  179. package/dist/types/tests/tmpl/binding_map.test.d.ts.map +0 -1
  180. package/dist/types/tests/tmpl/event.test.d.ts +0 -2
  181. package/dist/types/tests/tmpl/event.test.d.ts.map +0 -1
  182. package/dist/types/tests/tmpl/expression.test.d.ts +0 -2
  183. package/dist/types/tests/tmpl/expression.test.d.ts.map +0 -1
  184. package/dist/types/tests/tmpl/lvalue.test.d.ts +0 -2
  185. package/dist/types/tests/tmpl/lvalue.test.d.ts.map +0 -1
  186. package/dist/types/tests/tmpl/native_rendering.test.d.ts +0 -2
  187. package/dist/types/tests/tmpl/native_rendering.test.d.ts.map +0 -1
  188. package/dist/types/tests/tmpl/structure.test.d.ts +0 -2
  189. package/dist/types/tests/tmpl/structure.test.d.ts.map +0 -1
  190. package/dist/types/tests/types/chaining.test.d.ts +0 -2
  191. package/dist/types/tests/types/chaining.test.d.ts.map +0 -1
  192. package/dist/types/tests/types/createElement.test.d.ts +0 -2
  193. package/dist/types/tests/types/createElement.test.d.ts.map +0 -1
  194. package/dist/types/tests/types/definition.test.d.ts +0 -2
  195. package/dist/types/tests/types/definition.test.d.ts.map +0 -1
  196. package/webpack.config.js +0 -275
  197. /package/src/backend/{mode.ts → shared.ts} +0 -0
@@ -1,236 +0,0 @@
1
- import { GeneralBehavior, Component, ComponentDefinition, ComponentOptions, GeneralComponent, GeneralBehaviorBuilder } from '.';
2
- import { NormalizedPropertyType } from './behavior';
3
- import { TraitBehavior } from './trait_behaviors';
4
- export type Empty = Record<never, never>;
5
- export type NewField<TObject, TField extends string, TValueType> = Extract<keyof TObject, TField> extends never ? TValueType : never;
6
- export type NewFieldList<TObject, TNewObject> = Extract<keyof TObject, keyof TNewObject> extends never ? TNewObject : never;
7
- export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
8
- /**
9
- * UnionToIntersection<'foo' | 42 | true> = 'foo' & 42 & true
10
- * UnionToIntersection<(() => 'foo') | ((i: 42) => true)> = (() => 'foo') & ((i: 42) => true)
11
- */
12
- export type UnionToIntersection<T> = (T extends unknown ? (arg: T) => void : never) extends (args: infer Arg) => void ? Arg : never;
13
- /**
14
- * Merge<{ foo: string }, { bar: number }> = { foo: string, bar: number }
15
- */
16
- export type Merge<U> = U extends infer T ? {
17
- [K in keyof T]: T[K];
18
- } : never;
19
- /**
20
- * IsAny<any> = true
21
- * IsAny<{}> = false
22
- */
23
- export type IsAny<T> = (<S>(S: S) => S extends T ? 1 : 2) extends <R>(R: R) => R extends any ? 1 : 2 ? true : false;
24
- /**
25
- * IsNever<never> = true
26
- * IsNever<unknown> = false
27
- * IsNever<any> = false
28
- */
29
- export type IsNever<T> = [T] extends [never] ? true : false;
30
- type SetDataStringPath<K extends string | number, Prefix extends string> = [Prefix] extends [never] ? `${K}` : K extends number ? `${Prefix}[${K}]` : `${Prefix}.${K}`;
31
- /**
32
- * SetDataSetter<{ name: string; foo: { bar: number } }> = {
33
- * name: string,
34
- * foo: { bar: number },
35
- * 'foo.bar': number,
36
- * }
37
- * setDataSetter<{ list: number[], foo: { bar: number }[]}> = {
38
- * list: number[],
39
- * `list[${number}]`: number,
40
- * foo: { bar: number }[],
41
- * `foo[${number}]`: { bar: number }[],
42
- * `foo[${number}].bar`: number,
43
- * }
44
- */
45
- export type SetDataSetter<T, Prefix extends string = never> = IsAny<T> extends true ? Record<SetDataStringPath<any, Prefix>, T> : UnionToIntersection<T extends any[] ? {
46
- [P in keyof T & number]: SetDataSetter<T[P], SetDataStringPath<P, Prefix>> & Record<SetDataStringPath<P, Prefix>, T[P]>;
47
- }[keyof T & number] : T extends Record<string | number, any> ? {
48
- [P in keyof T & (string | number)]: SetDataSetter<T[P], SetDataStringPath<P, Prefix>> & Record<SetDataStringPath<P, Prefix>, T[P]>;
49
- }[keyof T & (string | number)] : never>;
50
- /**
51
- * DeepReadonly<{ foo: { bar: number } }> = {
52
- * readonly foo: {
53
- * readonly bar: number
54
- * }
55
- * }
56
- */
57
- export type DeepReadonly<T> = T extends Record<any, any> ? T extends (...args: any[]) => any ? T : {
58
- readonly [P in keyof T]: DeepReadonly<T[P]>;
59
- } : T;
60
- export type PublicFields<T> = {
61
- [K in keyof T as K extends `_$${any}` ? never : K]: T[K];
62
- };
63
- /**
64
- * ObjectKeyPaths<{ name: string; age: number }> = 'name' | 'age'
65
- * ObjectKeyPaths<{
66
- * refCount: number;
67
- * person: { name: string; age: number };
68
- * }> = 'refCount' | 'person' | 'person.name' | 'person.age'
69
- * ObjectKeyPaths<{ books: [{ name: string; price: number }] }> =
70
- * 'books' | `books[${number}]` | `books[${number}].name` | `books[${number}].price`
71
- */
72
- export type ObjectDataPathStrings<T, Prefix extends string = never> = IsAny<T> extends true ? SetDataStringPath<any, Prefix> : T extends any[] ? {
73
- [P in keyof T & number]: SetDataStringPath<P, Prefix> | ObjectDataPathStrings<T[P], SetDataStringPath<P, Prefix>>;
74
- }[keyof T & number] : T extends Record<string | number, any> ? {
75
- [P in keyof T & (string | number)]: SetDataStringPath<P, Prefix> | ObjectDataPathStrings<T[P], SetDataStringPath<P, Prefix>>;
76
- }[keyof T & (string | number)] : Prefix;
77
- export type ObserverDataPathStrings<T, S extends string = ObjectDataPathStrings<T>> = '**' | S | `${S}.**`;
78
- /**
79
- * GetFromDataPathString<{ name: string; age: number }, 'name'> = string
80
- * GetFromDataPathString<{ person: { name: string; age: number } }, 'person.name'> = string
81
- * GetFromDataPathString<{ books: [{ name: string; price: number }] }, 'books[0].name'> = string
82
- */
83
- export type GetFromDataPathString<T, P extends string> = P extends keyof T ? T[P] : P extends '' ? T : P extends `[${infer K extends keyof T & number}].${infer R}` ? GetFromDataPathString<T[K], R> : P extends `[${infer K extends keyof T & number}]${infer R}` ? GetFromDataPathString<T[K], R> : P extends `${infer K extends keyof T & string}[${infer R}` ? GetFromDataPathString<T[K], `[${R}`> : P extends `${infer K extends keyof T & string}.${infer R}` ? GetFromDataPathString<T[K], R> : never;
84
- export type GetFromObserverPathString<T, P extends string> = P extends '**' ? GetFromDataPathString<T, ''> : P extends `${infer K}.**` ? GetFromDataPathString<T, K> : GetFromDataPathString<T, P>;
85
- /**
86
- * GetFromDataPath<{ foo: { bar: number } }, ['foo', 'bar']> = number
87
- * GetFromDataPath<{ list: { bar: number }[] }, ['list', 0, 'bar']> = number
88
- * GetFromDataPath<{ list: number }, ['nonExists']> = never
89
- */
90
- export type GetFromDataPath<T, K extends readonly (string | number)[]> = K extends [
91
- infer F,
92
- ...infer R extends (string | number)[]
93
- ] ? F extends keyof T ? GetFromDataPath<T[F], R> : never : T;
94
- declare const TaggedSymbol: unique symbol;
95
- type Tagged = typeof TaggedSymbol;
96
- type IfNeverOrAny<T, Replacement> = [T] extends [never] ? Replacement : 1 extends T & 0 ? Replacement : T;
97
- type GetTags<B> = B extends {
98
- readonly [Tag in Tagged]: infer Tags extends symbol[];
99
- } ? Tags : [];
100
- type GetTagsWithout<B, T extends symbol, Tags = GetTags<B>> = Tags extends [infer F, ...infer R] ? Equal<T, F> extends true ? GetTagsWithout<B, T, R> : [F, ...GetTagsWithout<B, T, R>] : [];
101
- type UnTagAll<B> = Tagged extends keyof IfNeverOrAny<B, unknown> ? B extends infer Origin & {
102
- readonly [Tag in Tagged]: GetTags<B>;
103
- } ? Origin : B : B;
104
- export type Tag<B, T extends symbol> = [IfNeverOrAny<B, unknown>] extends [null | undefined] ? B : UnTagAll<B> & {
105
- readonly [Tag in Tagged]: [...GetTags<B>, T];
106
- };
107
- export type UnTag<B, T extends symbol, Tags = GetTagsWithout<B, T>> = Tagged extends keyof IfNeverOrAny<B, unknown> ? Tags extends [] ? UnTagAll<B> : UnTagAll<B> & {
108
- readonly [Tag in Tagged]: Tags;
109
- } : B;
110
- export type HasTag<B, T extends symbol> = T extends GetTags<B>[number] ? true : false;
111
- export type DataList = Record<string, unknown>;
112
- export type PropertyList = Record<string, PropertyListItem<PropertyType, any>>;
113
- export type PropertyType = null | StringConstructor | NumberConstructor | BooleanConstructor | ArrayConstructor | ObjectConstructor | FunctionConstructor | NormalizedPropertyType;
114
- /**
115
- * PropertyTypeToValueType<null> = any
116
- * PropertyTypeToValueType<typeof String> = string
117
- * PropertyTypeToValueType<typeof Number> = number
118
- */
119
- export type PropertyTypeToValueType<T extends PropertyType> = T extends null | NormalizedPropertyType.Any ? any : T extends StringConstructor | NormalizedPropertyType.String ? string : T extends NumberConstructor | NormalizedPropertyType.Number ? number : T extends BooleanConstructor | NormalizedPropertyType.Boolean ? boolean : T extends ArrayConstructor | NormalizedPropertyType.Array ? any[] : T extends ObjectConstructor | NormalizedPropertyType.Object ? Record<string, any> | null : T extends FunctionConstructor | NormalizedPropertyType.Function ? (...args: any[]) => any : never;
120
- type Satisfy<T, V> = V extends T ? V : T;
121
- /**
122
- * PropertyTypeToSimpleValueType<typeof String, 'foo'> = 'foo'
123
- * PropertyTypeToSimpleValueType<typeof String, 123> = string
124
- */
125
- type PropertyTypeToSimpleValueType<T extends PropertyType, V> = T extends StringConstructor | NormalizedPropertyType.String ? Satisfy<string, V> : T extends NumberConstructor | NormalizedPropertyType.Number ? Satisfy<number, V> : T extends BooleanConstructor | NormalizedPropertyType.Boolean ? Satisfy<boolean, V> : T extends ArrayConstructor | NormalizedPropertyType.Array ? Satisfy<any[], V> : T extends ObjectConstructor | NormalizedPropertyType.Object ? Satisfy<Record<string, any> | null, V> : T extends FunctionConstructor | NormalizedPropertyType.Function ? Satisfy<(...args: any[]) => any, V> : never;
126
- /**
127
- * PropertyValueType<null> = any
128
- * PropertyValueType<typeof String> = string
129
- * PropertyValueType<typeof String | typeof Number> = string | number
130
- * PropertyValueType<{ type: typeof String }> = string
131
- * PropertyValueType<{ type: typeof String, optionalTypes: [typeof Number] }> = string | number
132
- * PropertyValueType<{ type: typeof String, value: 'foo' }> = 'foo'
133
- * PropertyValueType<{ type: typeof String, value: 123 }> = never
134
- * PropertyValueType<{ type: typeof String, optionalTypes: [typeof Number], value: 123 }> =
135
- * string | 123
136
- */
137
- type PropertyValueType<P extends PropertyListItem<PropertyType, any>> = P extends PropertyListItem<infer T, infer V> ? unknown extends V ? PropertyTypeToValueType<T> : ((a: T) => void) extends (a: PropertyType) => void ? V : V extends PropertyTypeToValueType<T> ? PropertyTypeToSimpleValueType<T, V> : never : never;
138
- export type PropertyOption<T extends PropertyType, V> = {
139
- type?: T;
140
- optionalTypes?: T[];
141
- value?: V;
142
- default?: () => V;
143
- observer?: ((newValue: DeepReadonly<V>, oldValue: DeepReadonly<V>) => void) | string;
144
- comparer?: (newValue: DeepReadonly<V>, oldValue: DeepReadonly<V>) => boolean;
145
- reflectIdPrefix?: boolean;
146
- };
147
- export type PropertyListItem<T extends PropertyType, V> = T | PropertyOption<T, V>;
148
- export type PropertyValues<P extends PropertyList> = {
149
- [key in keyof P]: PropertyValueType<P[key]>;
150
- };
151
- export type DataWithPropertyValues<TData extends DataList, TProperty extends PropertyList> = TData & PropertyValues<TProperty>;
152
- export type ComponentMethod = (...args: any[]) => any;
153
- export type MethodList = Record<string, ComponentMethod>;
154
- export declare const METHOD_TAG: unique symbol;
155
- export type TaggedMethod<Fn extends ComponentMethod> = Tag<Fn, typeof METHOD_TAG>;
156
- export type UnTaggedMethod<M extends TaggedMethod<any>> = UnTag<M, typeof METHOD_TAG>;
157
- export type RelationParams = {
158
- target?: string | ComponentDefinition<any, any, any> | GeneralBehavior | TraitBehavior<any>;
159
- type: 'ancestor' | 'descendant' | 'parent' | 'child' | 'parent-common-node' | 'child-common-node';
160
- linked?: (target: GeneralComponent) => void;
161
- linkChanged?: (target: GeneralComponent) => void;
162
- unlinked?: (target: GeneralComponent) => void;
163
- linkFailed?: (target: GeneralComponent) => void;
164
- };
165
- export type RelationParamsWithKey = {
166
- [name: string]: RelationParams;
167
- };
168
- export type TraitRelationParams<TOut extends {
169
- [key: string]: any;
170
- }> = {
171
- target: TraitBehavior<any, TOut>;
172
- type: 'ancestor' | 'descendant' | 'parent' | 'child' | 'parent-common-node' | 'child-common-node';
173
- linked?: (target: GeneralComponent) => void;
174
- linkChanged?: (target: GeneralComponent) => void;
175
- unlinked?: (target: GeneralComponent) => void;
176
- linkFailed?: (target: GeneralComponent) => void;
177
- };
178
- export type ChainingFilterFunc<TAddedFields extends {
179
- [key: string]: any;
180
- }, TRemovedFields extends string = never> = (chain: GeneralBehaviorBuilder) => Omit<GeneralBehaviorBuilder, TRemovedFields> & TAddedFields;
181
- export type ChainingFilterType = {
182
- add: {
183
- [key: string]: any;
184
- };
185
- remove: string;
186
- };
187
- export type ComponentInstance<TData extends DataList, TProperty extends PropertyList, TMethod extends MethodList> = Component<TData, TProperty, TMethod> & {
188
- data: DeepReadonly<DataWithPropertyValues<TData, TProperty>>;
189
- properties: DeepReadonly<DataWithPropertyValues<TData, TProperty>>;
190
- } & TMethod;
191
- export type ComponentParams<TData extends DataList, TProperty extends PropertyList, TMethod extends MethodList> = {
192
- is?: string;
193
- behaviors?: (string | GeneralBehavior)[];
194
- using?: {
195
- [name: string]: string | ComponentDefinition<any, any, any>;
196
- };
197
- generics?: {
198
- [name: string]: {
199
- default: string | ComponentDefinition<any, any, any>;
200
- } | true;
201
- };
202
- placeholders?: {
203
- [name: string]: string;
204
- };
205
- template?: {
206
- [key: string]: any;
207
- } | null;
208
- externalClasses?: string[];
209
- data?: TData | (() => TData);
210
- properties?: TProperty;
211
- methods?: TMethod;
212
- listeners?: {
213
- [name: string]: ComponentMethod | string;
214
- };
215
- relations?: RelationParamsWithKey;
216
- lifetimes?: {
217
- [name: string]: ComponentMethod;
218
- };
219
- created?: () => any;
220
- attached?: ComponentMethod;
221
- moved?: ComponentMethod;
222
- detached?: ComponentMethod;
223
- ready?: ComponentMethod;
224
- pageLifetimes?: {
225
- [name: string]: ComponentMethod;
226
- };
227
- observers?: {
228
- fields?: string;
229
- observer: ComponentMethod | string;
230
- }[] | {
231
- [fields: string]: ComponentMethod | string;
232
- };
233
- options?: ComponentOptions;
234
- };
235
- export {};
236
- //# sourceMappingURL=component_params.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component_params.d.ts","sourceRoot":"","sources":["../../../src/component_params.ts"],"names":[],"mappings":"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"}
@@ -1,211 +0,0 @@
1
- import { ComponentParams, DataList, PropertyList, MethodList, ComponentInstance, Empty } from './component_params';
2
- import { Behavior, BehaviorBuilder, GeneralBehavior, NativeNodeDefinition } from './behavior';
3
- import { ComponentDefinition, GeneralComponentDefinition, GeneralComponent } from './component';
4
- import { ComponentOptions, NormalizedComponentOptions } from './global_options';
5
- import { StyleScopeManager } from './class_list';
6
- import { GeneralBackendContext } from '.';
7
- import { TraitBehavior } from './trait_behaviors';
8
- export declare const normalizeUrl: (path: string, relPath: string) => {
9
- domain: string | null;
10
- absPath: string;
11
- };
12
- export declare class ComponentWaitingList {
13
- /** @internal */
14
- private _$callbacks;
15
- /** @internal */
16
- private _$ownerSpace;
17
- /** @internal */
18
- private _$isPub;
19
- /** @internal */
20
- private _$alias;
21
- constructor(ownerSpace: ComponentSpace, isPub: boolean, alias: string);
22
- add(callback: (c: GeneralComponentDefinition) => void): void;
23
- hintUsed(owner: GeneralComponent): void;
24
- remove(callback: (c: GeneralComponentDefinition) => void): void;
25
- call(c: GeneralComponentDefinition): void;
26
- }
27
- /** A group of components for cross-component using */
28
- export declare class ComponentSpace {
29
- /** @internal */
30
- private _$behaviorList;
31
- /** @internal */
32
- private _$pubBehaviorList;
33
- /** @internal */
34
- private _$list;
35
- /** @internal */
36
- private _$pubList;
37
- /** @internal */
38
- private _$using;
39
- /** @internal */
40
- private _$importedSpaces;
41
- /** @internal */
42
- private _$defaultComponent;
43
- /** @internal */
44
- private _$componentOptions;
45
- styleScopeManager: StyleScopeManager;
46
- /** @internal */
47
- private _$listWaiting;
48
- /** @internal */
49
- private _$pubListWaiting;
50
- /** @internal */
51
- private _$groupingListWaiting;
52
- /** @internal */
53
- _$componentWaitingListener: ((isPub: boolean, alias: string, owner: GeneralComponent) => void) | null;
54
- /**
55
- * Create a new component space
56
- *
57
- * The `defaultComponent` is the default component path.
58
- * It should be defined soon after creation.
59
- * A `baseSpace` can be provided as a "base" component space -
60
- * every component alias (and behavior alias) in the space will be imported when creation.
61
- * However, if any new component is added to the base space after the creation,
62
- * it will not be added to the created space.
63
- */
64
- constructor(defaultComponent?: string, baseSpace?: ComponentSpace, styleScopeManager?: StyleScopeManager);
65
- /**
66
- * Update the default component options for this space
67
- *
68
- * The new options will be merged with existing options.
69
- */
70
- updateComponentOptions(componentOptions: ComponentOptions): void;
71
- getComponentOptions(): NormalizedComponentOptions;
72
- /**
73
- * Set (or update) a global using component item
74
- *
75
- * This will allow all the components in this component space using this component automatically,
76
- * without declaring it with `using` or `usingComponents` again.
77
- * The target can also be a tag name of a native node.
78
- */
79
- setGlobalUsingComponent(key: string, target: GeneralComponentDefinition | string): void;
80
- /**
81
- * Import another component space
82
- *
83
- * The components in the imported space can be used by components in this space.
84
- * The `protoDomain` should be URL-like, i.e. `space://another-space` .
85
- * When using, the components in the imported space should be specified with `protoDomain` .
86
- * For example, if `protoDomain` is `space://another-space` and one imported component has alias `my-comp` ,
87
- * then it should be specified with `space://another-space/my-comp` .
88
- * If `privateUse` set to false, only component alias in the imported space can be used;
89
- * the original name of components is imported otherwise.
90
- */
91
- importSpace(protoDomain: string, space: ComponentSpace, privateUse: boolean): void;
92
- /**
93
- * Get a component by the `path`
94
- *
95
- * The component `is` is actually treated as the "path" of the component.
96
- * In other words, the component `is` field can be a string like `path/to/the/component` .
97
- * Other components can be used by the component with "relative path" specified.
98
- * In this method, if the `path` is given as a relative path (not started with `/` ),
99
- * it will be converted according to the `basePath` .
100
- * If the `path` is given as a URL-like format,
101
- * the component will be searched in imported component spaces ( `importSpace()` for details).
102
- */
103
- getComponentByUrl(path: string, basePath: string): GeneralComponentDefinition;
104
- /**
105
- * Get a component by the `path`
106
- *
107
- * Similar to `getComponentByUrl()` ,
108
- * but returns `null` instead of the default component if no component was found.
109
- */
110
- getComponentByUrlWithoutDefault(path: string, relPath: string): GeneralComponentDefinition | null;
111
- private getComponent;
112
- getDefaultComponent(): GeneralComponentDefinition | null;
113
- isDefaultComponent(def: GeneralComponentDefinition): boolean;
114
- getGlobalUsingComponent(key: string): GeneralComponentDefinition | NativeNodeDefinition | null;
115
- /**
116
- * Get a behavior by the `path`
117
- *
118
- * Similar to `getComponentByUrlWithoutDefault()` but for behaviors.
119
- */
120
- getBehaviorByUrl(path: string, relPath: string): GeneralBehavior | null;
121
- /** @internal */
122
- _$getBehavior(absPath: string, domain?: string | null): GeneralBehavior | undefined;
123
- /** Register a component in this space */
124
- defineComponent<TData extends DataList, TProperty extends PropertyList, TMethod extends MethodList>(def: ComponentParams<TData, TProperty, TMethod> & ThisType<ComponentInstance<TData, TProperty, TMethod>>): ComponentDefinition<TData, TProperty, TMethod>;
125
- /** Register a behavior in this space */
126
- defineBehavior<TData extends DataList, TProperty extends PropertyList, TMethod extends MethodList>(def: ComponentParams<TData, TProperty, TMethod> & ThisType<ComponentInstance<TData, TProperty, TMethod>>): Behavior<TData, TProperty, TMethod, never>;
127
- /** Register a component or a behavior with chaining API */
128
- define(is?: string): BehaviorBuilder;
129
- /**
130
- * Register a component or a behavior with chaining API (with method caller type specified)
131
- *
132
- * This API is generally designed for adapters which require special method callers.
133
- */
134
- defineWithMethodCaller(is?: string): BehaviorBuilder<Empty, Empty, Empty, Empty, never, never>;
135
- /** @internal */
136
- _$registerComponent(is: string, comp: GeneralComponentDefinition): void;
137
- /** @internal */
138
- _$registerBehavior(is: string, beh: GeneralBehavior): void;
139
- /**
140
- * Start a series of components and behaviors registration
141
- *
142
- * In most cases, `groupRegister` is prefered.
143
- */
144
- startGroupRegister(): void;
145
- /**
146
- * End a series of components and behaviors registration
147
- *
148
- * In most cases, `groupRegister` is prefered.
149
- */
150
- endGroupRegister(): void;
151
- /**
152
- * Group a series of components and behaviors registration
153
- *
154
- * If any placeholder should be replaced,
155
- * the replacement will happen after the whole series of registration.
156
- */
157
- groupRegister<R>(cb: () => R): R | undefined;
158
- /**
159
- * Assign a public alias to a component
160
- *
161
- * The alias can be used in other component spaces which imported this component space.
162
- * One component may have multiple aliases.
163
- */
164
- exportComponent(alias: string, is: string): void;
165
- /** Get a component by its exported alias */
166
- getExportedComponent(alias: string): GeneralComponentDefinition | undefined;
167
- /** Get a behavior by its exported alias */
168
- getExportedBehavior(alias: string): GeneralBehavior | undefined;
169
- /**
170
- * Assign a public alias to a behavior
171
- *
172
- * The alias can be used in other component spaces which imported this component space.
173
- * One behavior may have multiple aliases.
174
- */
175
- exportBehavior(alias: string, is: string): void;
176
- /** @internal */
177
- _$componentWaitingList(path: string, relPath: string): ComponentWaitingList | null;
178
- /**
179
- * Set a listener which will be called when a placeholded component is used.
180
- *
181
- * This can be used as a hint for a component that should be registered later.
182
- * If `isPub` is false, the `alias` is the path of the component, a.k.a. `is` .
183
- * Otherwise, it is the exported `alias` instead.
184
- */
185
- setComponentWaitingListener(listener: ((isPub: boolean, alias: string, owner: GeneralComponent) => void) | null): void;
186
- /**
187
- * Create a component by URL
188
- *
189
- * This `url` can contain params (started with "?" character).
190
- * The params will try to be set to component properties (if matches the property name).
191
- */
192
- createComponentByUrl(tagName: string, url: string, genericTargets: {
193
- [name: string]: string;
194
- } | null, backendContext: GeneralBackendContext | null): GeneralComponent;
195
- /**
196
- * Define a trait behavior
197
- *
198
- * A trait behavior
199
- * Optionally, the trait behavior can add a conversion function.
200
- * This function can convert the implementation to another interface.
201
- */
202
- defineTraitBehavior<TIn extends {
203
- [key: string]: any;
204
- }>(): TraitBehavior<TIn, TIn>;
205
- defineTraitBehavior<TIn extends {
206
- [key: string]: any;
207
- }, TOut extends {
208
- [key: string]: any;
209
- }>(trans: (impl: TIn) => TOut): TraitBehavior<TIn, TOut>;
210
- }
211
- //# sourceMappingURL=component_space.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component_space.d.ts","sourceRoot":"","sources":["../../../src/component_space.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export type DataPath = Array<string | number>;
2
- export type MultiPaths = DataPath[];
3
- export declare const parseSinglePath: (str: string) => DataPath | null;
4
- export declare const parseMultiPaths: (str: string | string[]) => MultiPaths;
5
- //# sourceMappingURL=data_path.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data_path.d.ts","sourceRoot":"","sources":["../../../src/data_path.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAA;AAgMnC,eAAO,MAAM,eAAe,QAAS,MAAM,KAAG,QAAQ,GAAG,IAgBxD,CAAA;AAED,eAAO,MAAM,eAAe,QAAS,MAAM,GAAG,MAAM,EAAE,eAkBrD,CAAA"}
@@ -1,107 +0,0 @@
1
- import { PropertyDefinition } from './behavior';
2
- import { DataPath, MultiPaths } from './data_path';
3
- import { DeepCopyKind } from './global_options';
4
- import { DataList, PropertyList, MethodList, ComponentInstance, DataWithPropertyValues } from './component_params';
5
- export declare const enum DeepCopyStrategy {
6
- None = 0,
7
- Simple = 1,
8
- SimpleWithRecursion = 2
9
- }
10
- export type DataValue = unknown;
11
- export type DataObserver = (...values: unknown[]) => void;
12
- export type DataChange = DataReplace | DataSplice;
13
- export type DataReplace = [DataPath, DataValue, undefined, undefined];
14
- export type DataSplice = [DataPath, DataValue[], number, number];
15
- export type PropertyChange = {
16
- propName: string;
17
- prop: PropertyDefinition;
18
- oldValue: unknown;
19
- newValue: unknown;
20
- skipModelListener: boolean;
21
- };
22
- export type DataUpdateCallback = (data: {
23
- [name: string]: DataValue;
24
- }, combinedChanges: DataChange[]) => void;
25
- export type ModelBindingListener = (value: DataValue) => void;
26
- type ObserverNode = {
27
- listener?: number[];
28
- wildcard?: number[];
29
- sub: {
30
- [name: string]: ObserverNode;
31
- };
32
- };
33
- export declare class DataGroupObserverTree {
34
- propFields: {
35
- [name: string]: PropertyDefinition;
36
- };
37
- observerTree: ObserverNode;
38
- observers: DataObserverWithPath[];
39
- constructor(propFields: {
40
- [name: string]: PropertyDefinition;
41
- });
42
- cloneSub(): DataGroupObserverTree;
43
- addObserver(func: DataObserver, dataPath: MultiPaths): void;
44
- }
45
- type DataObserverWithPath = {
46
- path: MultiPaths;
47
- f: DataObserver;
48
- };
49
- export declare const getDeepCopyStrategy: (level: DeepCopyKind) => DeepCopyStrategy;
50
- /** A data wrapper for data operations such as `setData` */
51
- export declare class DataGroup<TData extends DataList, TProperty extends PropertyList, TMethod extends MethodList> {
52
- data: DataWithPropertyValues<TData, TProperty>;
53
- innerData: {
54
- [key: string]: DataValue;
55
- } | null;
56
- private _$comp;
57
- private _$pureDataPattern;
58
- private _$dataDeepCopy;
59
- private _$propertyPassingDeepCopy;
60
- private _$reflectToAttributes;
61
- private _$propFields;
62
- private _$observerTree;
63
- private _$observers;
64
- private _$observerStatus;
65
- private _$modelBindingListener;
66
- private _$updateListener?;
67
- private _$pendingChanges;
68
- private _$doingUpdates;
69
- private _$generateInnerData;
70
- constructor(associatedComponent: ComponentInstance<TData, TProperty, TMethod> | null, data: DataWithPropertyValues<TData, TProperty>, pureDataPattern: RegExp | null, dataDeepCopy: DeepCopyStrategy, propertyPassingDeepCopy: DeepCopyStrategy, reflectToAttributes: boolean, observerTree: DataGroupObserverTree);
71
- /** Create a simple data group */
72
- static create(data: {
73
- [key: string]: DataValue;
74
- }): DataGroup<any, PropertyList, MethodList>;
75
- /** Set a callback for every grouped update */
76
- setUpdateListener(updateListener: DataUpdateCallback): void;
77
- /** Replace the underlying data */
78
- replaceWholeData(data: DataWithPropertyValues<TData, TProperty>): void;
79
- /** Add a new common data change to queue */
80
- replaceDataOnPath(path: DataPath, newData: DataValue): void;
81
- /** Add a new array splice operation to queue */
82
- spliceArrayDataOnPath(path: DataPath, index: number | undefined, del: number | undefined, inserts: DataValue[]): void;
83
- /**
84
- * Add a new property change to queue
85
- *
86
- * (Generally designed for template engines.)
87
- * If the `propName` is a property,
88
- * the `newData` will be deep-copied according to the `propertyPassingDeepCopy` configuration.
89
- * Otherwise, it returns false.
90
- */
91
- replaceProperty(propName: string, newData: DataValue): boolean;
92
- /** Discard changes in queue and generate a new queue with specified changes */
93
- setChanges(changes: DataChange[]): void;
94
- /** Get the data change queue */
95
- getChanges(): DataChange[];
96
- /**
97
- * Set a callback when a specified property changes
98
- *
99
- * (Generally designed for template engines.)
100
- */
101
- setModelBindingListener(propName: string, listener: ModelBindingListener): void;
102
- /** Apply all changes in queue */
103
- applyDataUpdates(skipModelListener?: boolean): void;
104
- }
105
- export type GeneralDataGroup = DataGroup<DataList, PropertyList, MethodList>;
106
- export {};
107
- //# sourceMappingURL=data_proxy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data_proxy.d.ts","sourceRoot":"","sources":["../../../src/data_proxy.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare const simpleDeepCopy: <T>(src: T) => T;
2
- export declare const deepCopy: <T>(src: T, withRecursion: boolean) => T;
3
- //# sourceMappingURL=data_utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data_utils.d.ts","sourceRoot":"","sources":["../../../src/data_utils.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,cAAc,kBAmB1B,CAAA;AAED,eAAO,MAAM,QAAQ,6BAA8B,OAAO,MAGzD,CAAA"}