react-rx 2.0.4 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +13 -0
- package/dist/cjs/__tests__/strictmode.test.d.ts +1 -0
- package/dist/cjs/__tests__/strictmode.test.js +111 -0
- package/dist/cjs/__tests__/useAsObservable.test.d.ts +1 -0
- package/dist/cjs/__tests__/useAsObservable.test.js +77 -0
- package/dist/cjs/__tests__/useObservable.test.d.ts +1 -0
- package/dist/cjs/__tests__/useObservable.test.js +116 -0
- package/dist/cjs/displayName.js +1 -0
- package/dist/cjs/reactiveComponent.js +2 -0
- package/dist/cjs/useAsObservable.js +12 -3
- package/dist/cjs/useIsomorphicEffect.d.ts +2 -2
- package/dist/cjs/useObservable.js +22 -6
- package/dist/cjs/utils.js +5 -0
- package/dist/es2015/__tests__/strictmode.test.d.ts +1 -0
- package/dist/es2015/__tests__/strictmode.test.js +69 -0
- package/dist/es2015/__tests__/useAsObservable.test.d.ts +1 -0
- package/dist/es2015/__tests__/useAsObservable.test.js +72 -0
- package/dist/es2015/__tests__/useObservable.test.d.ts +1 -0
- package/dist/es2015/__tests__/useObservable.test.js +110 -0
- package/dist/es2015/displayName.js +1 -0
- package/dist/es2015/reactiveComponent.js +2 -0
- package/dist/es2015/useAsObservable.js +13 -4
- package/dist/es2015/useIsomorphicEffect.d.ts +2 -2
- package/dist/es2015/useObservable.js +23 -7
- package/dist/es2015/utils.js +5 -0
- package/dist/esm/__tests__/strictmode.test.d.ts +1 -0
- package/dist/esm/__tests__/strictmode.test.js +109 -0
- package/dist/esm/__tests__/useAsObservable.test.d.ts +1 -0
- package/dist/esm/__tests__/useAsObservable.test.js +72 -0
- package/dist/esm/__tests__/useObservable.test.d.ts +1 -0
- package/dist/esm/__tests__/useObservable.test.js +114 -0
- package/dist/esm/displayName.js +1 -0
- package/dist/esm/reactiveComponent.js +2 -0
- package/dist/esm/useAsObservable.js +13 -4
- package/dist/esm/useIsomorphicEffect.d.ts +2 -2
- package/dist/esm/useObservable.js +23 -7
- package/dist/esm/utils.js +5 -0
- package/package.json +106 -24
- package/src/__tests__/strictmode.test.ts +79 -0
- package/src/__tests__/useAsObservable.test.tsx +94 -0
- package/src/__tests__/useObservable.test.tsx +145 -0
- package/src/displayName.ts +1 -0
- package/src/reactiveComponent.ts +3 -0
- package/src/useAsObservable.ts +14 -4
- package/src/useObservable.ts +30 -10
- package/src/useWithObservable.ts +1 -0
- package/src/utils.ts +5 -0
- package/.eslintrc.json +0 -13
- package/.idea/codeStyles/Project.xml +0 -113
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/compiler.xml +0 -6
- package/.idea/encodings.xml +0 -4
- package/.idea/inspectionProfiles/Project_Default.xml +0 -7
- package/.idea/jsonSchemas.xml +0 -25
- package/.idea/markdown-navigator-enh.xml +0 -29
- package/.idea/markdown-navigator.xml +0 -55
- package/.idea/markdown.xml +0 -9
- package/.idea/misc.xml +0 -0
- package/.idea/modules.xml +0 -8
- package/.idea/react-rx.iml +0 -17
- package/.idea/vcs.xml +0 -6
- package/.prettierrc +0 -8
- package/jest.config.ts +0 -14
- package/tsconfig.json +0 -12
package/src/useAsObservable.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {BehaviorSubject, Observable} from 'rxjs'
|
|
2
|
-
import {useCallback, useRef} from 'react'
|
|
3
|
-
import {useIsomorphicEffect} from './useIsomorphicEffect'
|
|
2
|
+
import {useCallback, useEffect, useRef} from 'react'
|
|
4
3
|
import {distinctUntilChanged} from 'rxjs/operators'
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -33,7 +32,7 @@ export function useAsObservable<T, K = T>(
|
|
|
33
32
|
|
|
34
33
|
const [observable] = ref.current
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
useEffect(() => {
|
|
37
36
|
if (!ref.current) {
|
|
38
37
|
return
|
|
39
38
|
}
|
|
@@ -41,11 +40,22 @@ export function useAsObservable<T, K = T>(
|
|
|
41
40
|
subject.next(value)
|
|
42
41
|
}, [value, ref])
|
|
43
42
|
|
|
44
|
-
|
|
43
|
+
const shouldRestoreSubscriptionRef = useRef(false)
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (shouldRestoreSubscriptionRef.current) {
|
|
46
|
+
if (!ref.current) {
|
|
47
|
+
ref.current = setup()
|
|
48
|
+
}
|
|
49
|
+
shouldRestoreSubscriptionRef.current = false
|
|
50
|
+
}
|
|
51
|
+
|
|
45
52
|
return () => {
|
|
46
53
|
if (!ref.current) {
|
|
47
54
|
return
|
|
48
55
|
}
|
|
56
|
+
// React StrictMode will call effects as `setup + teardown + setup` thus we can't trust this callback as "react is about to unmount"
|
|
57
|
+
// Tracking this ref lets us set the subscription back up on the next `setup` call if needed, and if it really did unmounted then all is well
|
|
58
|
+
shouldRestoreSubscriptionRef.current = true
|
|
49
59
|
const [, subject] = ref.current
|
|
50
60
|
subject.complete()
|
|
51
61
|
ref.current = undefined
|
package/src/useObservable.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import {Observable, Subscription} from 'rxjs'
|
|
2
|
-
import {DependencyList, useMemo} from 'react'
|
|
2
|
+
import {DependencyList, useEffect, useMemo, useRef} from 'react'
|
|
3
3
|
import {useSyncExternalStore} from 'use-sync-external-store/shim'
|
|
4
4
|
import {shareReplay, tap} from 'rxjs/operators'
|
|
5
|
-
import {useIsomorphicEffect} from './useIsomorphicEffect'
|
|
6
5
|
|
|
7
6
|
function getValue<T>(value: T): T extends () => infer U ? U : T {
|
|
8
7
|
return typeof value === 'function' ? value() : value
|
|
@@ -22,25 +21,34 @@ function getOrCreateStore<T>(inputObservable: Observable<T>, initialValue: T) {
|
|
|
22
21
|
shareReplay({refCount: true, bufferSize: 1}),
|
|
23
22
|
tap(value => (entry.currentValue = value)),
|
|
24
23
|
)
|
|
24
|
+
|
|
25
|
+
// Eagerly subscribe to sync set `entry.currentValue` to what the observable returns
|
|
25
26
|
entry.subscription = entry.observable.subscribe()
|
|
26
27
|
|
|
27
28
|
cache.set(inputObservable, entry as CacheRecord<T>)
|
|
28
29
|
}
|
|
29
|
-
return cache.get(inputObservable)
|
|
30
|
+
return cache.get(inputObservable)!
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
export function useObservable<T>(observable: Observable<T>): T | undefined
|
|
33
34
|
export function useObservable<T>(observable: Observable<T>, initialValue: T): T
|
|
34
35
|
export function useObservable<T>(observable: Observable<T>, initialValue: () => T): T
|
|
35
36
|
export function useObservable<T>(observable: Observable<T>, initialValue?: T | (() => T)) {
|
|
36
|
-
const [getSnapshot, subscribe] = useMemo
|
|
37
|
-
|
|
37
|
+
const [getSnapshot, subscribe] = useMemo<
|
|
38
|
+
[() => T, Parameters<typeof useSyncExternalStore>[0]]
|
|
39
|
+
>(() => {
|
|
40
|
+
const store = getOrCreateStore(observable, getValue(initialValue))
|
|
41
|
+
if (store.subscription.closed) {
|
|
42
|
+
store.subscription = store.observable.subscribe()
|
|
43
|
+
}
|
|
38
44
|
return [
|
|
39
45
|
function getSnapshot() {
|
|
40
|
-
|
|
46
|
+
// @TODO: perf opt opportunity: we could do `store.subscription.unsubscribe()` here to clear up some memory, as this subscription is only needed to provide a sync initialValue.
|
|
47
|
+
return store.currentValue
|
|
41
48
|
},
|
|
42
|
-
function subscribe(callback: (
|
|
43
|
-
|
|
49
|
+
function subscribe(callback: () => void) {
|
|
50
|
+
// @TODO: perf opt opportunity: we could do `store.subscription.unsubscribe()` here as we only need 1 subscription active to keep the observer alive
|
|
51
|
+
const sub = store.observable.subscribe(callback)
|
|
44
52
|
return () => {
|
|
45
53
|
sub.unsubscribe()
|
|
46
54
|
}
|
|
@@ -48,9 +56,21 @@ export function useObservable<T>(observable: Observable<T>, initialValue?: T | (
|
|
|
48
56
|
]
|
|
49
57
|
}, [observable])
|
|
50
58
|
|
|
51
|
-
|
|
59
|
+
const shouldRestoreSubscriptionRef = useRef(false)
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
const store = getOrCreateStore(observable, getValue(initialValue))
|
|
62
|
+
if (shouldRestoreSubscriptionRef.current) {
|
|
63
|
+
if (store.subscription.closed) {
|
|
64
|
+
store.subscription = store.observable.subscribe()
|
|
65
|
+
}
|
|
66
|
+
shouldRestoreSubscriptionRef.current = false
|
|
67
|
+
}
|
|
68
|
+
|
|
52
69
|
return () => {
|
|
53
|
-
|
|
70
|
+
// React StrictMode will call effects as `setup + teardown + setup` thus we can't trust this callback as "react is about to unmount"
|
|
71
|
+
// Tracking this ref lets us set the subscription back up on the next `setup` call if needed, and if it really did unmounted then all is well
|
|
72
|
+
shouldRestoreSubscriptionRef.current = !store.subscription.closed
|
|
73
|
+
store.subscription.unsubscribe()
|
|
54
74
|
}
|
|
55
75
|
}, [observable])
|
|
56
76
|
|
package/src/useWithObservable.ts
CHANGED
package/src/utils.ts
CHANGED
|
@@ -12,7 +12,9 @@ export function observeState<T>(
|
|
|
12
12
|
export function observeState<T>(
|
|
13
13
|
initial?: T | (() => T),
|
|
14
14
|
): [Observable<T | undefined>, Dispatch<SetStateAction<T | undefined>>] {
|
|
15
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
15
16
|
const [value, update] = useState<T | undefined>(initial)
|
|
17
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
16
18
|
return [useAsObservable(value), update]
|
|
17
19
|
}
|
|
18
20
|
|
|
@@ -23,6 +25,7 @@ export function observeCallback<T, K>(
|
|
|
23
25
|
export function observeCallback<T, K>(
|
|
24
26
|
operator?: OperatorFunction<T, K>,
|
|
25
27
|
): [Observable<T | K>, (arg: T) => void] {
|
|
28
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
26
29
|
const ref = useRef<[Observable<T | K>, (arg: T) => void]>()
|
|
27
30
|
if (!ref.current) {
|
|
28
31
|
ref.current = operator ? observableCallback<T, K>(operator) : observableCallback<T>()
|
|
@@ -31,10 +34,12 @@ export function observeCallback<T, K>(
|
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
export function observeContext<T>(context: Context<T>): Observable<T> {
|
|
37
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
34
38
|
return useAsObservable(useContext<T>(context))
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
export function observeElement<T>(): [Observable<T | null>, (el: T | null) => void] {
|
|
42
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
38
43
|
const ref = useRef<[Observable<T | null>, (value: T | null) => void]>()
|
|
39
44
|
if (!ref.current) {
|
|
40
45
|
ref.current = createState<T | null>(null)
|
package/.eslintrc.json
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"env": {
|
|
3
|
-
"node": true,
|
|
4
|
-
"browser": true
|
|
5
|
-
},
|
|
6
|
-
"parser": "@typescript-eslint/parser",
|
|
7
|
-
"extends": ["plugin:@typescript-eslint/recommended", "prettier"],
|
|
8
|
-
"rules": {
|
|
9
|
-
"prettier/prettier": "error",
|
|
10
|
-
"@typescript-eslint/explicit-function-return-type": "off"
|
|
11
|
-
},
|
|
12
|
-
"plugins": ["@typescript-eslint", "prettier", "react"]
|
|
13
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
<component name="ProjectCodeStyleConfiguration">
|
|
2
|
-
<code_scheme name="Project" version="173">
|
|
3
|
-
<option name="OTHER_INDENT_OPTIONS">
|
|
4
|
-
<value>
|
|
5
|
-
<option name="INDENT_SIZE" value="2" />
|
|
6
|
-
<option name="TAB_SIZE" value="2" />
|
|
7
|
-
</value>
|
|
8
|
-
</option>
|
|
9
|
-
<HTMLCodeStyleSettings>
|
|
10
|
-
<option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
|
|
11
|
-
<option name="HTML_ENFORCE_QUOTES" value="true" />
|
|
12
|
-
</HTMLCodeStyleSettings>
|
|
13
|
-
<JSCodeStyleSettings version="0">
|
|
14
|
-
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
15
|
-
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
|
|
16
|
-
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
17
|
-
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
|
|
18
|
-
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
|
|
19
|
-
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
20
|
-
</JSCodeStyleSettings>
|
|
21
|
-
<MarkdownNavigatorCodeStyleSettings>
|
|
22
|
-
<option name="RIGHT_MARGIN" value="72" />
|
|
23
|
-
</MarkdownNavigatorCodeStyleSettings>
|
|
24
|
-
<TypeScriptCodeStyleSettings version="0">
|
|
25
|
-
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
26
|
-
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
|
|
27
|
-
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
28
|
-
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
|
|
29
|
-
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
|
|
30
|
-
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
31
|
-
</TypeScriptCodeStyleSettings>
|
|
32
|
-
<VueCodeStyleSettings>
|
|
33
|
-
<option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
|
|
34
|
-
<option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
|
|
35
|
-
</VueCodeStyleSettings>
|
|
36
|
-
<XML>
|
|
37
|
-
<option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
|
|
38
|
-
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
|
|
39
|
-
</XML>
|
|
40
|
-
<codeStyleSettings language="CSS">
|
|
41
|
-
<indentOptions>
|
|
42
|
-
<option name="INDENT_SIZE" value="2" />
|
|
43
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
44
|
-
<option name="TAB_SIZE" value="2" />
|
|
45
|
-
</indentOptions>
|
|
46
|
-
</codeStyleSettings>
|
|
47
|
-
<codeStyleSettings language="HTML">
|
|
48
|
-
<option name="SOFT_MARGINS" value="80" />
|
|
49
|
-
<indentOptions>
|
|
50
|
-
<option name="INDENT_SIZE" value="2" />
|
|
51
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
52
|
-
<option name="TAB_SIZE" value="2" />
|
|
53
|
-
</indentOptions>
|
|
54
|
-
</codeStyleSettings>
|
|
55
|
-
<codeStyleSettings language="JSON">
|
|
56
|
-
<indentOptions>
|
|
57
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
58
|
-
<option name="TAB_SIZE" value="2" />
|
|
59
|
-
</indentOptions>
|
|
60
|
-
</codeStyleSettings>
|
|
61
|
-
<codeStyleSettings language="Jade">
|
|
62
|
-
<indentOptions>
|
|
63
|
-
<option name="INDENT_SIZE" value="2" />
|
|
64
|
-
<option name="TAB_SIZE" value="2" />
|
|
65
|
-
</indentOptions>
|
|
66
|
-
</codeStyleSettings>
|
|
67
|
-
<codeStyleSettings language="JavaScript">
|
|
68
|
-
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
|
69
|
-
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
|
70
|
-
<option name="KEEP_SIMPLE_BLOCKS_IN_ONE_LINE" value="true" />
|
|
71
|
-
<option name="KEEP_SIMPLE_METHODS_IN_ONE_LINE" value="true" />
|
|
72
|
-
<option name="SOFT_MARGINS" value="80" />
|
|
73
|
-
<indentOptions>
|
|
74
|
-
<option name="INDENT_SIZE" value="2" />
|
|
75
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
76
|
-
<option name="TAB_SIZE" value="2" />
|
|
77
|
-
</indentOptions>
|
|
78
|
-
</codeStyleSettings>
|
|
79
|
-
<codeStyleSettings language="LESS">
|
|
80
|
-
<indentOptions>
|
|
81
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
82
|
-
<option name="TAB_SIZE" value="2" />
|
|
83
|
-
</indentOptions>
|
|
84
|
-
</codeStyleSettings>
|
|
85
|
-
<codeStyleSettings language="SASS">
|
|
86
|
-
<indentOptions>
|
|
87
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
88
|
-
<option name="TAB_SIZE" value="2" />
|
|
89
|
-
</indentOptions>
|
|
90
|
-
</codeStyleSettings>
|
|
91
|
-
<codeStyleSettings language="SCSS">
|
|
92
|
-
<indentOptions>
|
|
93
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
94
|
-
<option name="TAB_SIZE" value="2" />
|
|
95
|
-
</indentOptions>
|
|
96
|
-
</codeStyleSettings>
|
|
97
|
-
<codeStyleSettings language="TypeScript">
|
|
98
|
-
<option name="SOFT_MARGINS" value="80" />
|
|
99
|
-
<indentOptions>
|
|
100
|
-
<option name="INDENT_SIZE" value="2" />
|
|
101
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
102
|
-
<option name="TAB_SIZE" value="2" />
|
|
103
|
-
</indentOptions>
|
|
104
|
-
</codeStyleSettings>
|
|
105
|
-
<codeStyleSettings language="XML">
|
|
106
|
-
<indentOptions>
|
|
107
|
-
<option name="INDENT_SIZE" value="2" />
|
|
108
|
-
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
|
109
|
-
<option name="TAB_SIZE" value="2" />
|
|
110
|
-
</indentOptions>
|
|
111
|
-
</codeStyleSettings>
|
|
112
|
-
</code_scheme>
|
|
113
|
-
</component>
|
package/.idea/compiler.xml
DELETED
package/.idea/encodings.xml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<component name="InspectionProjectProfileManager">
|
|
2
|
-
<profile version="1.0">
|
|
3
|
-
<option name="myName" value="Project Default" />
|
|
4
|
-
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
5
|
-
<inspection_tool class="TypescriptExplicitMemberType" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
|
6
|
-
</profile>
|
|
7
|
-
</component>
|
package/.idea/jsonSchemas.xml
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="JsonSchemaMappingsProjectConfiguration">
|
|
4
|
-
<state>
|
|
5
|
-
<map>
|
|
6
|
-
<entry key="package">
|
|
7
|
-
<value>
|
|
8
|
-
<SchemaInfo>
|
|
9
|
-
<option name="name" value="package" />
|
|
10
|
-
<option name="relativePathToSchema" value="http://json.schemastore.org/package" />
|
|
11
|
-
<option name="applicationDefined" value="true" />
|
|
12
|
-
<option name="patterns">
|
|
13
|
-
<list>
|
|
14
|
-
<Item>
|
|
15
|
-
<option name="path" value="package.json" />
|
|
16
|
-
</Item>
|
|
17
|
-
</list>
|
|
18
|
-
</option>
|
|
19
|
-
</SchemaInfo>
|
|
20
|
-
</value>
|
|
21
|
-
</entry>
|
|
22
|
-
</map>
|
|
23
|
-
</state>
|
|
24
|
-
</component>
|
|
25
|
-
</project>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="MarkdownEnhProjectSettings">
|
|
4
|
-
<AnnotatorSettings targetHasSpaces="true" linkCaseMismatch="true" wikiCaseMismatch="true" wikiLinkHasDashes="true" notUnderWikiHome="true" targetNotWikiPageExt="true" notUnderSourceWikiHome="true" targetNameHasAnchor="true" targetPathHasAnchor="true" wikiLinkHasSlash="true" wikiLinkHasSubdir="true" wikiLinkHasOnlyAnchor="true" linkTargetsWikiHasExt="true" linkTargetsWikiHasBadExt="true" notUnderSameRepo="true" targetNotUnderVcs="false" linkNeedsExt="true" linkHasBadExt="true" linkTargetNeedsExt="true" linkTargetHasBadExt="true" wikiLinkNotInWiki="true" imageTargetNotInRaw="true" repoRelativeAcrossVcsRoots="true" multipleWikiTargetsMatch="true" unresolvedLinkReference="true" linkIsIgnored="true" anchorIsIgnored="true" anchorIsUnresolved="true" anchorLineReferenceIsUnresolved="true" anchorLineReferenceFormat="true" anchorHasDuplicates="true" abbreviationDuplicates="true" abbreviationNotUsed="true" attributeIdDuplicateDefinition="true" attributeIdNotUsed="true" footnoteDuplicateDefinition="true" footnoteUnresolved="true" footnoteDuplicates="true" footnoteNotUsed="true" macroDuplicateDefinition="true" macroUnresolved="true" macroDuplicates="true" macroNotUsed="true" referenceDuplicateDefinition="true" referenceUnresolved="true" referenceDuplicates="true" referenceNotUsed="true" referenceUnresolvedNumericId="true" enumRefDuplicateDefinition="true" enumRefUnresolved="true" enumRefDuplicates="true" enumRefNotUsed="true" enumRefLinkUnresolved="true" enumRefLinkDuplicates="true" simTocUpdateNeeded="true" simTocTitleSpaceNeeded="true" />
|
|
5
|
-
<HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="css" scriptDir="js" plainHtml="false" imageDir="" copyLinkedImages="false" imagePathType="0" targetPathType="2" targetExt="" useTargetExt="false" noCssNoScripts="false" useElementStyleAttribute="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
|
|
6
|
-
<LinkMapSettings>
|
|
7
|
-
<textMaps />
|
|
8
|
-
</LinkMapSettings>
|
|
9
|
-
</component>
|
|
10
|
-
<component name="MarkdownNavigatorHistory">
|
|
11
|
-
<PasteImageHistory checkeredTransparentBackground="false" filename="image" directory="" onPasteImageTargetRef="3" onPasteLinkText="0" onPasteImageElement="1" onPasteLinkElement="1" onPasteReferenceElement="2" cornerRadius="20" borderColor="0" transparentColor="16777215" borderWidth="1" trimTop="0" trimBottom="0" trimLeft="0" trimRight="0" transparent="false" roundCorners="false" showPreview="true" bordered="false" scaled="false" cropped="false" hideInapplicableOperations="false" preserveLinkFormat="false" scale="50" scalingInterpolation="1" transparentTolerance="0" saveAsDefaultOnOK="false" linkFormat="0" addHighlights="false" showHighlightCoordinates="true" showHighlights="false" mouseSelectionAddsHighlight="false" outerFilled="false" outerFillColor="0" outerFillTransparent="true" outerFillAlpha="30">
|
|
12
|
-
<highlightList />
|
|
13
|
-
<directories />
|
|
14
|
-
<filenames />
|
|
15
|
-
</PasteImageHistory>
|
|
16
|
-
<CopyImageHistory checkeredTransparentBackground="false" filename="image" directory="" onPasteImageTargetRef="3" onPasteLinkText="0" onPasteImageElement="1" onPasteLinkElement="1" onPasteReferenceElement="2" cornerRadius="20" borderColor="0" transparentColor="16777215" borderWidth="1" trimTop="0" trimBottom="0" trimLeft="0" trimRight="0" transparent="false" roundCorners="false" showPreview="true" bordered="false" scaled="false" cropped="false" hideInapplicableOperations="false" preserveLinkFormat="false" scale="50" scalingInterpolation="1" transparentTolerance="0" saveAsDefaultOnOK="false" linkFormat="0" addHighlights="false" showHighlightCoordinates="true" showHighlights="false" mouseSelectionAddsHighlight="false" outerFilled="false" outerFillColor="0" outerFillTransparent="true" outerFillAlpha="30">
|
|
17
|
-
<highlightList />
|
|
18
|
-
<directories />
|
|
19
|
-
<filenames />
|
|
20
|
-
</CopyImageHistory>
|
|
21
|
-
<PasteLinkHistory onPasteImageTargetRef="3" onPasteTargetRef="1" onPasteLinkText="0" onPasteImageElement="1" onPasteLinkElement="1" onPasteWikiElement="2" onPasteReferenceElement="2" hideInapplicableOperations="false" preserveLinkFormat="false" useHeadingForLinkText="false" linkFormat="0" saveAsDefaultOnOK="false" />
|
|
22
|
-
<TableToJsonHistory>
|
|
23
|
-
<entries />
|
|
24
|
-
</TableToJsonHistory>
|
|
25
|
-
<TableSortHistory>
|
|
26
|
-
<entries />
|
|
27
|
-
</TableSortHistory>
|
|
28
|
-
</component>
|
|
29
|
-
</project>
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="FlexmarkProjectSettings">
|
|
4
|
-
<FlexmarkHtmlSettings flexmarkSpecExampleRendering="0" flexmarkSpecExampleRenderHtml="false">
|
|
5
|
-
<flexmarkSectionLanguages>
|
|
6
|
-
<option name="1" value="Markdown" />
|
|
7
|
-
<option name="2" value="HTML" />
|
|
8
|
-
<option name="3" value="flexmark-ast:1" />
|
|
9
|
-
</flexmarkSectionLanguages>
|
|
10
|
-
</FlexmarkHtmlSettings>
|
|
11
|
-
</component>
|
|
12
|
-
<component name="MarkdownProjectSettings">
|
|
13
|
-
<PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" synchronizePreviewPosition="true" highlightPreviewType="LINE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="true" showSelectionInPreview="true" lastLayoutSetsDefault="false">
|
|
14
|
-
<PanelProvider>
|
|
15
|
-
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
|
|
16
|
-
</PanelProvider>
|
|
17
|
-
</PreviewSettings>
|
|
18
|
-
<ParserSettings gitHubSyntaxChange="false" correctedInvalidSettings="false" emojiShortcuts="1" emojiImages="0">
|
|
19
|
-
<PegdownExtensions>
|
|
20
|
-
<option name="ANCHORLINKS" value="true" />
|
|
21
|
-
<option name="ATXHEADERSPACE" value="true" />
|
|
22
|
-
<option name="FENCED_CODE_BLOCKS" value="true" />
|
|
23
|
-
<option name="INTELLIJ_DUMMY_IDENTIFIER" value="true" />
|
|
24
|
-
<option name="RELAXEDHRULES" value="true" />
|
|
25
|
-
<option name="STRIKETHROUGH" value="true" />
|
|
26
|
-
<option name="TABLES" value="true" />
|
|
27
|
-
<option name="TASKLISTITEMS" value="true" />
|
|
28
|
-
</PegdownExtensions>
|
|
29
|
-
<ParserOptions>
|
|
30
|
-
<option name="COMMONMARK_LISTS" value="true" />
|
|
31
|
-
<option name="EMOJI_SHORTCUTS" value="true" />
|
|
32
|
-
<option name="GFM_TABLE_RENDERING" value="true" />
|
|
33
|
-
<option name="PRODUCTION_SPEC_PARSER" value="true" />
|
|
34
|
-
<option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
|
|
35
|
-
</ParserOptions>
|
|
36
|
-
</ParserSettings>
|
|
37
|
-
<HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" addPageHeader="false" imageUriSerials="false" addDocTypeHtml="true" noParaTags="false" plantUmlConversion="0">
|
|
38
|
-
<GeneratorProvider>
|
|
39
|
-
<provider providerId="com.vladsch.idea.multimarkdown.editor.text.html.generator" providerName="Unmodified HTML Generator" />
|
|
40
|
-
</GeneratorProvider>
|
|
41
|
-
<headerTop />
|
|
42
|
-
<headerBottom />
|
|
43
|
-
<bodyTop />
|
|
44
|
-
<bodyBottom />
|
|
45
|
-
</HtmlSettings>
|
|
46
|
-
<CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true">
|
|
47
|
-
<StylesheetProvider>
|
|
48
|
-
<provider providerId="com.vladsch.idea.multimarkdown.editor.text.html.css" providerName="No Stylesheet" />
|
|
49
|
-
</StylesheetProvider>
|
|
50
|
-
<ScriptProviders />
|
|
51
|
-
<cssText />
|
|
52
|
-
<cssUriHistory />
|
|
53
|
-
</CssSettings>
|
|
54
|
-
</component>
|
|
55
|
-
</project>
|
package/.idea/markdown.xml
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="MarkdownSettings">
|
|
4
|
-
<enabledExtensions>
|
|
5
|
-
<entry key="MermaidLanguageExtension" value="false" />
|
|
6
|
-
<entry key="PlantUMLLanguageExtension" value="false" />
|
|
7
|
-
</enabledExtensions>
|
|
8
|
-
</component>
|
|
9
|
-
</project>
|
package/.idea/misc.xml
DELETED
|
File without changes
|
package/.idea/modules.xml
DELETED
package/.idea/react-rx.iml
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="WEB_MODULE" version="4">
|
|
3
|
-
<component name="NewModuleRootManager">
|
|
4
|
-
<content url="file://$MODULE_DIR$">
|
|
5
|
-
<excludeFolder url="file://$MODULE_DIR$/.build-examples" />
|
|
6
|
-
<excludeFolder url="file://$MODULE_DIR$/.cache" />
|
|
7
|
-
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
|
8
|
-
<excludeFolder url="file://$MODULE_DIR$/build" />
|
|
9
|
-
<excludeFolder url="file://$MODULE_DIR$/build-web" />
|
|
10
|
-
<excludeFolder url="file://$MODULE_DIR$/dist" />
|
|
11
|
-
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
|
12
|
-
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
|
13
|
-
</content>
|
|
14
|
-
<orderEntry type="inheritedJdk" />
|
|
15
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
16
|
-
</component>
|
|
17
|
-
</module>
|
package/.idea/vcs.xml
DELETED
package/.prettierrc
DELETED
package/jest.config.ts
DELETED