mount-observer 0.0.111 → 0.1.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 (179) hide show
  1. package/Events.js +28 -26
  2. package/Events.ts +34 -30
  3. package/MountObserver.js +235 -520
  4. package/MountObserver.ts +281 -542
  5. package/README.md +149 -56
  6. package/attrCoordinates.js +93 -0
  7. package/attrCoordinates.ts +122 -0
  8. package/constants.js +6 -0
  9. package/constants.ts +7 -0
  10. package/index.js +3 -0
  11. package/index.ts +19 -0
  12. package/loadImports.js +47 -0
  13. package/loadImports.ts +56 -0
  14. package/package.json +8 -115
  15. package/playwright.config.ts +0 -1
  16. package/types.d.ts +86 -0
  17. package/whereAttr.js +174 -0
  18. package/whereAttr.ts +221 -0
  19. package/LICENSE +0 -21
  20. package/Newish.js +0 -145
  21. package/Newish.ts +0 -169
  22. package/ObsAttr.js +0 -18
  23. package/ObsAttr.ts +0 -18
  24. package/RootMutObs.js +0 -49
  25. package/RootMutObs.ts +0 -58
  26. package/Synthesizer.js +0 -125
  27. package/Synthesizer.ts +0 -130
  28. package/bindish.js +0 -15
  29. package/bindish.ts +0 -22
  30. package/compose.js +0 -148
  31. package/compose.ts +0 -164
  32. package/doCleanup.js +0 -31
  33. package/doCleanup.ts +0 -34
  34. package/getWhereAttrSelector.js +0 -83
  35. package/getWhereAttrSelector.ts +0 -92
  36. package/preloadContent.js +0 -44
  37. package/preloadContent.ts +0 -47
  38. package/readAttrs.ts +0 -60
  39. package/refid/README.md +0 -259
  40. package/refid/arr.js +0 -4
  41. package/refid/arr.ts +0 -4
  42. package/refid/camelToKebab.js +0 -4
  43. package/refid/camelToKebab.ts +0 -4
  44. package/refid/genIds.js +0 -190
  45. package/refid/genIds.ts +0 -177
  46. package/refid/getAdjRefs.js +0 -38
  47. package/refid/getAdjRefs.ts +0 -38
  48. package/refid/getContext.js +0 -13
  49. package/refid/getContext.ts +0 -14
  50. package/refid/getCount.js +0 -8
  51. package/refid/getCount.ts +0 -8
  52. package/refid/getIsh.js +0 -35
  53. package/refid/getIsh.ts +0 -37
  54. package/refid/hostish.js +0 -18
  55. package/refid/hostish.ts +0 -20
  56. package/refid/ism.js +0 -78
  57. package/refid/ism.ts +0 -81
  58. package/refid/itemprops.js +0 -60
  59. package/refid/itemprops.ts +0 -67
  60. package/refid/joinMatching.js +0 -56
  61. package/refid/joinMatching.ts +0 -54
  62. package/refid/nudge.js +0 -23
  63. package/refid/nudge.ts +0 -23
  64. package/refid/regIsh.js +0 -27
  65. package/refid/regIsh.ts +0 -31
  66. package/refid/secretKeys.js +0 -5
  67. package/refid/secretKeys.ts +0 -5
  68. package/refid/splitRefs.js +0 -6
  69. package/refid/splitRefs.ts +0 -6
  70. package/refid/stdVal.js +0 -15
  71. package/refid/stdVal.ts +0 -15
  72. package/refid/via.js +0 -114
  73. package/refid/via.ts +0 -113
  74. package/slotkin/affine.js +0 -39
  75. package/slotkin/affine.ts +0 -46
  76. package/slotkin/beKindred.js +0 -45
  77. package/slotkin/beKindred.ts +0 -55
  78. package/slotkin/getBreadth.js +0 -19
  79. package/slotkin/getBreadth.ts +0 -21
  80. package/slotkin/getFrag.js +0 -22
  81. package/slotkin/getFrag.ts +0 -21
  82. package/slotkin/toQuery.js +0 -12
  83. package/slotkin/toQuery.ts +0 -13
  84. package/slotkin/wrap.js +0 -13
  85. package/slotkin/wrap.ts +0 -18
  86. package/ts-refs/LICENSE +0 -21
  87. package/ts-refs/README.md +0 -18
  88. package/ts-refs/be-a-beacon/types.d.ts +0 -22
  89. package/ts-refs/be-alit/types.d.ts +0 -1
  90. package/ts-refs/be-based/types.d.ts +0 -32
  91. package/ts-refs/be-bound/types.d.ts +0 -65
  92. package/ts-refs/be-buttoned-up/types.d.ts +0 -21
  93. package/ts-refs/be-calculating/types.d.ts +0 -57
  94. package/ts-refs/be-clonable/types.d.ts +0 -28
  95. package/ts-refs/be-committed/types.d.ts +0 -26
  96. package/ts-refs/be-consoling/types.d.ts +0 -25
  97. package/ts-refs/be-counted/types.d.ts +0 -88
  98. package/ts-refs/be-delible/types.d.ts +0 -26
  99. package/ts-refs/be-directive/types.d.ts +0 -43
  100. package/ts-refs/be-dispatching/types.d.ts +0 -41
  101. package/ts-refs/be-elevating/types.d.ts +0 -55
  102. package/ts-refs/be-enhanced/types.d.ts +0 -32
  103. package/ts-refs/be-enhancing/types.d.ts +0 -31
  104. package/ts-refs/be-evanescent/types.d.ts +0 -20
  105. package/ts-refs/be-eventing/types.d.ts +0 -27
  106. package/ts-refs/be-exportable/types.d.ts +0 -26
  107. package/ts-refs/be-fetching/types.d.ts +0 -73
  108. package/ts-refs/be-flashy/types.d.ts +0 -27
  109. package/ts-refs/be-formalizing/types.d.ts +0 -29
  110. package/ts-refs/be-formidable/types.d.ts +0 -64
  111. package/ts-refs/be-giddy/types.d.ts +0 -26
  112. package/ts-refs/be-gingerly/types.d.ts +0 -19
  113. package/ts-refs/be-gone/types.d.ts +0 -24
  114. package/ts-refs/be-hashing-out/types.d.ts +0 -22
  115. package/ts-refs/be-hive/types.d.ts +0 -18
  116. package/ts-refs/be-imbued/types.d.ts +0 -30
  117. package/ts-refs/be-included/types.d.ts +0 -20
  118. package/ts-refs/be-inclusive/types.d.ts +0 -30
  119. package/ts-refs/be-intersectional/types.d.ts +0 -37
  120. package/ts-refs/be-intl/types.d.ts +0 -28
  121. package/ts-refs/be-invoking/types.d.ts +0 -28
  122. package/ts-refs/be-joining/types.d.ts +0 -26
  123. package/ts-refs/be-kvetching/types.d.ts +0 -24
  124. package/ts-refs/be-lazy/types.d.ts +0 -29
  125. package/ts-refs/be-literate/types.d.ts +0 -29
  126. package/ts-refs/be-mediating/types.d.ts +0 -34
  127. package/ts-refs/be-methodical/types.d.ts +0 -20
  128. package/ts-refs/be-modding/types.d.ts +0 -18
  129. package/ts-refs/be-observant/types.d.ts +0 -27
  130. package/ts-refs/be-observing/types.d.ts +0 -84
  131. package/ts-refs/be-parsed/types.d.ts +0 -19
  132. package/ts-refs/be-parsing/types.d.ts +0 -37
  133. package/ts-refs/be-persistent/types.d.ts +0 -66
  134. package/ts-refs/be-propagating/types.d.ts +0 -26
  135. package/ts-refs/be-reformable/types.d.ts +0 -48
  136. package/ts-refs/be-render-neutral/types.d.ts +0 -31
  137. package/ts-refs/be-scoped/types.d.ts +0 -24
  138. package/ts-refs/be-sharing/types.d.ts +0 -17
  139. package/ts-refs/be-switched/types.d.ts +0 -155
  140. package/ts-refs/be-typed/types.d.ts +0 -36
  141. package/ts-refs/be-value-added/types.d.ts +0 -34
  142. package/ts-refs/be-valued/types.d.ts +0 -22
  143. package/ts-refs/be-written/types.d.ts +0 -59
  144. package/ts-refs/css-charts/types.d.ts +0 -38
  145. package/ts-refs/css-echarts/types.d.ts +0 -13
  146. package/ts-refs/data-props/types.d.ts +0 -27
  147. package/ts-refs/do-inc/types.d.ts +0 -28
  148. package/ts-refs/do-invoke/types.d.ts +0 -28
  149. package/ts-refs/do-toggle/types.d.ts +0 -27
  150. package/ts-refs/em-bower/types.d.ts +0 -18
  151. package/ts-refs/fetch-for/types.d.ts +0 -37
  152. package/ts-refs/folder-picker/types.d.ts +0 -43
  153. package/ts-refs/for-fetch/doc.d.ts +0 -98
  154. package/ts-refs/for-fetch/types.d.ts +0 -83
  155. package/ts-refs/mount-observer/types.d.ts +0 -248
  156. package/ts-refs/mt-si/types.d.ts +0 -21
  157. package/ts-refs/per-each/types.d.ts +0 -51
  158. package/ts-refs/soak-up/types.d.ts +0 -36
  159. package/ts-refs/trans-render/XV/types.d.ts +0 -69
  160. package/ts-refs/trans-render/asmr/types.d.ts +0 -138
  161. package/ts-refs/trans-render/be/types.d.ts +0 -190
  162. package/ts-refs/trans-render/dss/types.d.ts +0 -57
  163. package/ts-refs/trans-render/froop/types.d.ts +0 -416
  164. package/ts-refs/trans-render/funions/types.d.ts +0 -12
  165. package/ts-refs/trans-render/lib/mixins/types.d.ts +0 -42
  166. package/ts-refs/trans-render/lib/prs/types.d.ts +0 -40
  167. package/ts-refs/trans-render/lib/types.d.ts +0 -489
  168. package/ts-refs/trans-render/types.d.ts +0 -583
  169. package/ts-refs/wc-info/SimpleWCInfo.d.ts +0 -15
  170. package/ts-refs/when-resolved/types.d.ts +0 -30
  171. package/ts-refs/xp-as/types.d.ts +0 -20
  172. package/ts-refs/xtal-element/types.d.ts +0 -43
  173. package/ts-refs/xtal-frappe-chart/types.d.ts +0 -193
  174. package/upShadowSearch.js +0 -25
  175. package/upShadowSearch.ts +0 -23
  176. package/waitForEvent.js +0 -12
  177. package/waitForEvent.ts +0 -13
  178. package/waitForIsh.js +0 -21
  179. package/waitForIsh.ts +0 -20
@@ -1,28 +0,0 @@
1
- import {IEnhancement, BEAllProps} from '../trans-render/be/types';
2
- import { Specifier } from '../trans-render/dss/types';
3
-
4
- export interface EndUserProps extends IEnhancement{
5
- invokeParamSets: Array<InvokingParameters>,
6
- }
7
-
8
- export interface AP extends EndUserProps{
9
-
10
- rawStatements: Array<string>,
11
- }
12
-
13
- export type AllProps = AP;
14
-
15
- export type PAP = Partial<AP>;
16
-
17
- export type ProPAP = Promise<PAP>
18
-
19
- export type BAP = AP & BEAllProps;
20
-
21
- export interface Actions{
22
- hydrate(self: BAP): ProPAP;
23
- }
24
-
25
- export interface InvokingParameters {
26
- remoteSpecifier: Specifier,
27
- localEventType?: string,
28
- }
@@ -1,27 +0,0 @@
1
- import {IEnhancement, BEAllProps} from '../trans-render/be/types';
2
- import { Specifier } from '../trans-render/dss/types';
3
-
4
- export interface EndUserProps extends IEnhancement{}
5
-
6
- export interface AP extends EndUserProps{
7
- parsedStatements: Array<TogglingParameters>,
8
- rawStatements: Array<string>,
9
- }
10
-
11
- export type AllProps = AP;
12
-
13
- export type PAP = Partial<AP>;
14
-
15
- export type ProPAP = Promise<PAP>
16
-
17
- export type BAP = AP & BEAllProps;
18
-
19
- export interface Actions{
20
- hydrate(self: BAP & BEAllProps): ProPAP;
21
-
22
- }
23
-
24
- export interface TogglingParameters {
25
- remoteSpecifier: Specifier,
26
- localEventType?: string,
27
- }
@@ -1,18 +0,0 @@
1
- import {IEnhancement, BEAllProps, EMC} from '../trans-render/be/types';
2
-
3
- export interface EndUserProps extends IEnhancement{
4
- }
5
-
6
- export interface AllProps extends EndUserProps{
7
- }
8
-
9
- export type AP = AllProps;
10
-
11
- export type PAP = Partial<AP>;
12
-
13
- export type ProPAP = Promise<PAP>;
14
-
15
- export type BAP = AP & BEAllProps;
16
-
17
- export interface Actions{
18
- }
@@ -1,37 +0,0 @@
1
- import {IEnhancement, BEAllProps, EMC} from '../trans-render/be/types';
2
- import { Specifier } from '../trans-render/dss/types';
3
-
4
- interface FetchReadyEvent {
5
- url: string
6
- options: RequestInit
7
- }
8
-
9
- export interface EndUserProps extends IEnhancement{
10
-
11
-
12
- }
13
-
14
- export interface AllProps extends EndUserProps{
15
- //evtCount: number,
16
- fetchReadyEvent: FetchReadyEvent
17
- rawStatements: Array<string>
18
- fetchForParams: Array<FetchForParameters>
19
-
20
- }
21
-
22
- export type AP = AllProps;
23
-
24
- export type PAP = Partial<AP>;
25
-
26
- export type ProPAP = Promise<PAP>;
27
-
28
- export type BAP = AP & BEAllProps;
29
-
30
- export interface Actions{
31
- hydrate(self: BAP): PAP;
32
- doFetch(self: BAP): void;
33
- }
34
-
35
- export interface FetchForParameters {
36
- remoteSpecifier: Specifier
37
- }
@@ -1,43 +0,0 @@
1
- import {IEnhancement, BEAllProps} from '../trans-render/be/types';
2
-
3
- /**
4
- *
5
- */
6
- export interface DirectoryPickerOptions {
7
- /**
8
- * By specifying an ID, the browser can remember different directories for different IDs. If the same ID is used for another picker, the picker opens in the same directory.
9
- */
10
- id?: string;
11
-
12
- /**
13
- * A string that defaults to "read" for read-only access or "readwrite" for read and write access to the directory.
14
- */
15
- mode?: 'read' | 'readwrite';
16
-
17
- /**
18
- * A FileSystemHandle or a well known directory ("desktop", "documents", "downloads", "music", "pictures", or "videos") to open the dialog in.
19
- *
20
- */
21
- startIn?: 'documents' | 'downloads' | 'music' | 'pictures' | 'videos' | 'home' | 'desktop' | File;
22
- }
23
- export interface EndUserProps extends IEnhancement{
24
- options: DirectoryPickerOptions;
25
- noNudge: boolean;
26
- }
27
-
28
- export interface AllProps extends EndUserProps{
29
- directoryHandle?: FileSystemDirectoryHandle;
30
- }
31
-
32
- export type AP = AllProps;
33
-
34
- export type PAP = Partial<AP>;
35
-
36
- export type ProPAP = Promise<PAP>;
37
-
38
- export type BAP = AP & BEAllProps;
39
-
40
- export interface Actions{
41
- hydrate(self: BAP): ProPAP;
42
- }
43
-
@@ -1,98 +0,0 @@
1
-
2
- import {SimpleWCInfo} from '../wc-info/SimpleWCInfo';
3
-
4
- export interface EndUserProps {
5
-
6
- accept?: string,
7
- /**
8
- * Url to invoke
9
- * @readonly true
10
- */
11
- src?: string,
12
-
13
- ':src': string,
14
-
15
- /**
16
- * Specifier for list of form associated or contentEditable peer elements that
17
- * should partake in forming the URL.
18
- */
19
- for?: string,
20
-
21
- /**
22
- * Indicates whether to treat the response as HTML or JSON or Text
23
- */
24
- as?: 'html' | 'json' | 'text',
25
-
26
- /**
27
- * The http verb to be used for the request
28
- */
29
- method?:
30
- | 'GET'
31
- | 'HEAD'
32
- | 'POST'
33
- | 'PUT'
34
- | 'DELETE'
35
- | 'OPTIONS'
36
- | 'TRACE'
37
- | 'PATCH',
38
- /**
39
- * Either the JSON stringified or the parsed JSON object
40
- * If parsed, the web component will stringify it.
41
- */
42
- body?: any,
43
-
44
- /**
45
- * Request credentials
46
- */
47
- credentials?: RequestCredentials,
48
-
49
- /**
50
- * Directed Scoped Specifier to the
51
- * DOM element where the retrieved content should be applied.
52
- */
53
- target?: string,
54
- /**
55
- * If as=html, specify whether to (stream) the contents into an attached shadow DOM or not.
56
- */
57
- shadow?: ShadowRootMode,
58
-
59
- /**
60
- * Do not cache results even if the url has been invoked before.
61
- */
62
- noCache?: boolean,
63
-
64
- /**
65
- * Stream the contents into the target element
66
- */
67
- stream?: boolean,
68
-
69
- /**
70
- * Directed Scoped Specifier to a
71
- * (button) element, to delay submitting the fetch request until that button is clicked.
72
- */
73
- when?: string,
74
-
75
- /**
76
- * Directed Scoped Specifier to a form element
77
- * that we should use to form the url and body from.
78
- */
79
- form?: string,
80
- }
81
-
82
- /**
83
- * fetch-for web component
84
- */
85
- export abstract class ForFetchInfo implements SimpleWCInfo {
86
- src: './for-fetch.js';
87
- tagName: 'for-fetch';
88
- props: EndUserProps;
89
- name: 'for-fetch';
90
- homepage: 'https://github.com/bahrus/for-fetch';
91
- license: 'MIT';
92
- description: 'Base web component for fetch'
93
- cssParts: {
94
-
95
- }
96
- }
97
-
98
- export type Package = [ForFetchInfo];
@@ -1,83 +0,0 @@
1
- import { JSONObject } from '../trans-render/lib/types';
2
- import { Specifier } from '../trans-render/dss/types';
3
- import { URLBuilder } from '../../URLBuilder';
4
- import {SimpleWCInfo} from '../wc-info/SimpleWCInfo';
5
- import {EndUserProps} from './doc';
6
- export {EndUserProps} from './doc';
7
-
8
- declare class WeakRef<TProps = any>{}
9
-
10
-
11
- export interface OverridableGetters{
12
- //request$: RequestInit,
13
- //accept$?: string,
14
- value?: any,
15
- //isAttrParsed?: boolean,
16
- targetSelf?: boolean
17
- targetSpecifier?: Specifier
18
- whenCount?: number,
19
- nextWhenCount?: number,
20
-
21
-
22
- }
23
-
24
- export type EventName = string;
25
-
26
- export interface AllProps extends EndUserProps, OverridableGetters{
27
-
28
- readonly resolvedTarget?: Element | null,
29
-
30
- /**
31
- * @readonly
32
- * Weak references to input elements
33
- */
34
- readonly forRefs: Map<string, [WeakRef<HTMLInputElement>, EventName]>,
35
- readonly formData?: FormData,
36
- readonly formRef?: WeakRef<HTMLFormElement>,
37
- readonly formSpecifier?: Specifier,
38
- readonly urlBuilder?: URLBuilder,
39
- }
40
-
41
- export type PAP = Partial<AllProps>;
42
-
43
- export type ProPP = Promise<PAP>;
44
-
45
-
46
- /**
47
- * methods for fetch-for
48
- */
49
- export interface Methods extends Actions{
50
- validateResp(resp: Response): boolean,
51
- validateOn(): boolean,
52
- setTargetProp(target: Element | null, data: any, shadow?: ShadowRootMode): void,
53
- }
54
-
55
- export interface Actions{
56
- do(self: this): Promise<void>;
57
- bindSrc(self)
58
- parseFor(self: this): ProPP;
59
- parseTarget(self: this): ProPP;
60
- // listenForInput(self: this): ProPP;
61
- // doInitialLoad(self: this): ProPP;
62
- initializeWhen(self: this): Promise<PAP | undefined>;
63
- // onForm(self: this): ProPP;
64
- // onFormSpecifier(self: this): ProPP;
65
- // onFormRef(self: this): Promise<void>,
66
- }
67
-
68
- // https://github.com/webcomponents-cg/community-protocols/issues/12#issuecomment-872415080
69
- export type loadEventName = 'load';
70
- export type inputEventName = 'input';
71
- export type selectionChangeEventName = 'select';
72
-
73
- export interface EventForFetch {
74
- href?: string;
75
- trigger?: Element,
76
- forData: ForData,
77
- formData: FormData,
78
- body?: string | JSONObject
79
- }
80
-
81
- export type ForData = {[key: string]: HTMLInputElement}
82
-
83
-
@@ -1,248 +0,0 @@
1
-
2
- export interface JSONSerializableMountInit{
3
- readonly on?: CSSMatch,
4
- readonly outside?: CSSMatch,
5
- readonly observedAttrsWhenMounted?: (string | ObservedSourceOfTruthAttribute)[],
6
- readonly whereAttr?: WhereAttr,
7
- readonly whereElementIntersectsWith?: IntersectionObserverInit,
8
- readonly whereMediaMatches?: MediaQuery,
9
- readonly import?: ImportString | [ImportString, ImportAssertions] | PipelineProcessor,
10
-
11
- }
12
-
13
- export interface ObservedSourceOfTruthAttribute<TProps = any> {
14
- name: string,
15
- mapsTo?: keyof TProps & string,
16
- valIfNull?: any,
17
- valIfFalsy?: any,
18
- instanceOf?: any,
19
- customParser?: (newValue: string | null, oldValue: string | null, instance: Element) => any
20
- }
21
-
22
- export type Assigner = (target: any, source: any) => Promise<void> | void;
23
-
24
- export interface MountInit extends JSONSerializableMountInit{
25
-
26
- readonly withTargetShadowRoot?: ShadowRoot,
27
- readonly whereInstanceOf?: Array<{new(): Element}>,
28
- readonly whereSatisfies?: PipelineProcessor<boolean>,
29
- readonly do?: MountObserverCallbacks,
30
- readonly assigner?: Assigner,
31
- readonly idleTimeout?: number
32
- // /**
33
- // * Purpose -- there are scenarios where we may only want to affect changes that occur after the initial
34
- // * server rendering, so we only want to mount elements that appear
35
- // */
36
- // readonly ignoreInitialMatches?: boolean,
37
- }
38
-
39
- export interface MountObserverOptions{
40
- leaveBreadcrumb?: boolean,
41
- }
42
-
43
- export interface MountObserverCallbacks{
44
- readonly mount?: PipelineProcessor,
45
- readonly dismount?: PipelineProcessor,
46
- readonly disconnect?: PipelineProcessor,
47
- readonly reconfirm?: PipelineProcessor,
48
- readonly exit?: PipelineProcessor,
49
- }
50
-
51
- export interface RootCnfg{
52
- start: string,
53
- context: 'BuiltIn' | 'CustomElement' | 'Both'
54
- }
55
-
56
- //export type RootAttrOptions = Array<string | RootCnfg>;
57
- export type delimiter = string;
58
- export interface WhereAttr{
59
-
60
- hasBase?: string | [delimiter, string],
61
- hasBranchIn?: Array<string> | [delimiter, Array<string>],
62
- hasRootIn?: Array<RootCnfg>,
63
- /**
64
- * Used by consumers to track the universal meaning of this combination
65
- * regardless of how the actual name values may be changed.
66
- */
67
- metadata?: any,
68
- }
69
- type CSSMatch = string;
70
- type ImportString = string;
71
- type MediaQuery = string;
72
-
73
- export interface AttribMatch{
74
- names: string[],
75
- //for boolean, support true/false/mixed
76
- // type?: 'number' | 'string' | 'date' | 'json-object' | 'boolean',
77
- // valConverter?: (s: string) => any,
78
- // validator?: (v: any) => boolean;
79
- }
80
-
81
- export interface WeakDual<T extends Object>{
82
- weakSet: WeakSet<T>,
83
- setWeak: Set<WeakRef<T>>
84
- }
85
-
86
- export interface IMountObserver extends EventTarget {
87
- // readonly mountInit: MountInit,
88
- // readonly mountedRefs: WeakRef<Element>[],
89
- // readonly dismountedRefs: WeakRef<Element>[],
90
- observe(within: Node): void;
91
- disconnect(within: Node): void;
92
- module?: any;
93
- mountedElements: WeakDual<Element>;
94
- readAttrs(match: Element, branchIndexes?: Set<number>) : AttrChangeInfo[];
95
- observedAttrs(): Promise<Array<string> | undefined>;
96
- }
97
-
98
- export interface MountContext{
99
- stage?: PipelineStage,
100
- initializing?: boolean,
101
- }
102
-
103
- type PipelineStage = 'Inspecting' | 'PreImport' | 'PostImport' | 'Import'
104
- export type PipelineProcessor<ReturnType = void> = (matchingElement: Element, observer: IMountObserver, ctx: MountContext) => Promise<ReturnType> | ReturnType;
105
-
106
- //#region mutation event
107
- export type mutationEventName = 'mutation-event';
108
- export interface MutationEvent{
109
- mutationRecords: Array<MutationRecord>
110
- }
111
- export type mutationEventHandler = (e: MutationEvent) => void;
112
-
113
- export interface AddMutationEventListener {
114
- addEventListener(eventName: mutationEventName, handler: mutationEventHandler, options?: AddEventListenerOptions): void;
115
- }
116
- //#endregion
117
-
118
- interface AttrParts{
119
- name: string,
120
- root?: string,
121
- base?: string,
122
- branch?: string,
123
- branchIdx: number,
124
- leaf?: string, //TODO
125
- leafIdx?: number, //TODO
126
- rootCnfg?: RootCnfg,
127
- metadata?: any,
128
- }
129
-
130
- interface AttrChangeInfo{
131
- oldValue: string | null,
132
- newValue: string | null,
133
- isSOfTAttr: boolean,
134
- idx?: number,
135
- name: string,
136
- parts?: AttrParts,
137
- mapsTo?: string,
138
- }
139
-
140
- //#region mount event
141
- export type mountEventName = 'mount';
142
- export interface IMountEvent extends Event{
143
- mountedElement: Element,
144
- }
145
- export type mountEventHandler = (e: IMountEvent) => void;
146
-
147
- export interface AddMountEventListener {
148
- addEventListener(eventName: mountEventName, handler: mountEventHandler, options?: AddEventListenerOptions): void;
149
- }
150
- //#endregion
151
-
152
- //#region dismount event
153
- export type dismountEventName = 'dismount';
154
- export interface IDismountEvent {
155
- dismountedElement: Element
156
- }
157
-
158
- export type dismountEventHandler = (e: IDismountEvent) => void;
159
-
160
- export interface AddDismountEventListener {
161
- addEventListener(eventName: dismountEventName, handler: dismountEventHandler, options?: AddEventListenerOptions): void;
162
- }
163
- //#endregion
164
-
165
- //#region disconnected event
166
- export type disconnectedEventName = 'disconnect';
167
- export interface IDisconnectEvent {
168
- disconnectedElement: Element
169
- }
170
-
171
- export type disconnectedEventHandler = (e: IDisconnectEvent) => void;
172
-
173
- export interface AddDisconnectEventListener {
174
- addEventListener(eventName: disconnectedEventName, handler: disconnectedEventHandler, options?: AddEventListenerOptions): void;
175
- }
176
- //endregion
177
-
178
- //#region attribute change event
179
- export type attrChangeEventName = 'attrChange';
180
- export interface IAttrChangeEvent extends IMountEvent {
181
- attrChangeInfos: Array<AttrChangeInfo>,
182
- }
183
- export type attrChangeEventHandler = (e: IAttrChangeEvent) => void;
184
- export interface AddAttrChangeEventListener{
185
- addEventListener(eventName: attrChangeEventName, handler: attrChangeEventHandler, options?: AddEventListenerOptions): void;
186
- }
187
- //#endregion
188
-
189
- //#region load event
190
- export type loadEventName = 'load';
191
- export interface ILoadEvent {
192
- clone: DocumentFragment
193
- }
194
- export type loadEventHandler = (e: ILoadEvent) => void;
195
- export interface AddLoadEventListener{
196
- addEventListener(eventName: loadEventName, handler: loadEventHandler, options?: AddEventListenerOptions): void
197
- }
198
- //#endregion
199
-
200
- //#region MountObserver Script Element
201
- export interface MOSEAddedProps<TSynConfig=any>{
202
- init: JSONSerializableMountInit;
203
- observer: IMountObserver;
204
- do: MountObserverCallbacks;
205
- synConfig: TSynConfig;
206
- }
207
- export interface MOSE<TSynConfig=any>
208
- extends HTMLScriptElement, MOSEAddedProps<TSynConfig>{
209
-
210
- }
211
-
212
- export interface BindishOptions{
213
- assigner?: Assigner,
214
- //waitFor?: string,
215
- /**
216
- * If derived from a template, set to true
217
- * to indicate that the initial
218
- */
219
- csr?: boolean,
220
- ctr?: IshCtr,
221
- initPropVals?: any,
222
- }
223
-
224
- //TODO: move to mount observer
225
- export interface HasIsh {
226
- ish: any;
227
- }
228
-
229
- export interface Ishcycle{
230
- '<mount>'?(self: Ishcycle, el: Element & HasIsh, options: BindishOptions): Promise<void>;
231
- //'</dismount>'?(self: IshFace, el: Element): Promise<void>;
232
- '<inScope>'?(self: Ishcycle, el: Element & HasIsh, options: BindishOptions): Promise<void>;
233
- 'arr=>'?(self: Ishcycle, arr: any[] | undefined, el: Element & HasIsh, options: BindishOptions): Promise<void | any[]>;
234
- //'</outOfScope>'?(self: IshFace, el: Element): Promise<void>;
235
- }
236
-
237
- export type IshCtr = ({new() : Ishcycle}) | (() => Promise<{new() : Ishcycle}>);
238
-
239
- //#endregion
240
-
241
- export type RefType = '#' | '!';
242
-
243
- export interface TemplateWithRemoteContent extends HTMLTemplateElement {
244
- remoteContent?: DocumentFragment,
245
- }
246
-
247
-
248
-
@@ -1,21 +0,0 @@
1
- import {IEnhancement, BEAllProps} from '../trans-render/be/types';
2
-
3
- export interface EndUserProps extends IEnhancement{
4
- doEval: boolean;
5
- }
6
-
7
- export interface AllProps extends EndUserProps{
8
- //enhKey: string;
9
- }
10
-
11
- export type AP = AllProps;
12
-
13
- export type PAP = Partial<AP>;
14
-
15
- export type ProPAP = Promise<PAP>;
16
-
17
- export type BAP = AP & BEAllProps;
18
-
19
- export interface Actions{
20
- hydrate(self: BAP): ProPAP;
21
- }
@@ -1,51 +0,0 @@
1
- import {IEnhancement, BEAllProps} from '../trans-render/be/types';
2
- import { HasIshList } from '../trans-render/dss/types';
3
-
4
- export interface EndUserProps extends IEnhancement{
5
- each: string;
6
-
7
-
8
- mapIdxTo: string;
9
- idxStart: number;
10
- idleTimeout: number;
11
- options: Partial<EndUserProps>;
12
- // parsedStatements: Array<LoopingStatement>,
13
- // rawStatements?: Array<string>,
14
- }
15
-
16
- export interface AllProps extends EndUserProps{
17
- listScope: string;
18
- //itemProp: string;
19
- itemScopes: Array<string>;
20
- itemTemplates: Array<HTMLTemplateElement>;
21
- emc: any;
22
- //loopingParameters: Array<LoopingParameters>,
23
- ish: any;
24
- ishContainer: Element;
25
- }
26
-
27
- export type AP = AllProps;
28
-
29
- export type PAP = Partial<AP>;
30
-
31
- export type ProPAP = Promise<PAP>;
32
-
33
- export type BAP = AP & BEAllProps;
34
-
35
- export interface Actions{
36
- parse(self: BAP): PAP;
37
- init(self: BAP): ProPAP;
38
- hydrate(self: BAP)
39
- }
40
-
41
- // export interface LoopingStatement {
42
- // listProp?: string;
43
- // itemProp: string;
44
- // }
45
-
46
- // export interface LoopingParameters extends LoopingStatement {
47
- // listProp: string;
48
- // ish: any;
49
- // ishContainer: Element;
50
- // }
51
-
@@ -1,36 +0,0 @@
1
- import {IEnhancement, BEAllProps, EMC} from '../trans-render/be/types';
2
- import { Specifier } from "../trans-render/dss/types";
3
-
4
- export interface EndUserProps extends IEnhancement{
5
- soakUpRules: SoakUpRule[]
6
- }
7
-
8
- export interface AllProps extends EndUserProps{
9
-
10
- fullyParsed?: boolean
11
- }
12
-
13
- export type AP = AllProps;
14
-
15
- export type PAP = Partial<AP>;
16
-
17
- export type ProPAP = Promise<PAP>;
18
-
19
- export type BAP = AP & BEAllProps;
20
-
21
- export interface Actions{
22
- fullyParse(self: BAP): PAP;
23
- hydrate(self: BAP): ProPAP;
24
- }
25
-
26
- export interface PropMap {
27
- srcProp: string,
28
- destProp?: string
29
- }
30
-
31
- export interface SoakUpRule {
32
- propMap: string
33
- sourceSpecifier: Specifier
34
- sourceSpecifierString: string
35
- parsedPropMap: PropMap[]
36
- }