piral-search 0.14.3 → 0.14.5-beta.3331
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/esm/create.js +13 -8
- package/esm/create.js.map +1 -1
- package/lib/create.js +12 -7
- package/lib/create.js.map +1 -1
- package/package.json +4 -3
- package/src/create.test.ts +5 -1
- package/src/create.ts +43 -21
package/esm/create.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { __rest } from "tslib";
|
|
2
2
|
import { isfunc } from 'piral-base';
|
|
3
3
|
import { isValidElement, createElement } from 'react';
|
|
4
|
-
import { buildName, withApi } from 'piral-core';
|
|
4
|
+
import { buildName, withApi, withAll, withRootExtension, } from 'piral-core';
|
|
5
5
|
import { createActions } from './actions';
|
|
6
6
|
import { DefaultContainer, DefaultInput, DefaultResult } from './default';
|
|
7
|
+
import { Search } from './Search';
|
|
8
|
+
import { SearchInput } from './SearchInput';
|
|
7
9
|
function noop() { }
|
|
8
10
|
function createSearchRegistration(pilet, search, settings = {}) {
|
|
9
11
|
const { onlyImmediate = false, onCancel = noop, onClear = noop } = settings, rest = __rest(settings, ["onlyImmediate", "onCancel", "onClear"]);
|
|
@@ -31,6 +33,15 @@ function wrapResults(result, api, context) {
|
|
|
31
33
|
const results = Array.isArray(result) ? result : [result];
|
|
32
34
|
return results.map((item) => toChild(item, api, context));
|
|
33
35
|
}
|
|
36
|
+
function withSearch(searchProviders, query, items) {
|
|
37
|
+
return (state) => (Object.assign(Object.assign({}, state), { components: Object.assign({ SearchContainer: DefaultContainer, SearchInput: DefaultInput, SearchResult: DefaultResult }, state.components), registry: Object.assign(Object.assign({}, state.registry), { searchProviders }), search: {
|
|
38
|
+
input: query,
|
|
39
|
+
results: {
|
|
40
|
+
loading: false,
|
|
41
|
+
items,
|
|
42
|
+
},
|
|
43
|
+
} }));
|
|
44
|
+
}
|
|
34
45
|
/**
|
|
35
46
|
* Creates new Pilet API extensions for search and filtering.
|
|
36
47
|
*/
|
|
@@ -38,13 +49,7 @@ export function createSearchApi(config = {}) {
|
|
|
38
49
|
const { providers = [], results = [], query = '' } = config, actionConfig = __rest(config, ["providers", "results", "query"]);
|
|
39
50
|
return (context) => {
|
|
40
51
|
context.defineActions(createActions(actionConfig));
|
|
41
|
-
context.dispatch((
|
|
42
|
-
input: query,
|
|
43
|
-
results: {
|
|
44
|
-
loading: false,
|
|
45
|
-
items: results,
|
|
46
|
-
},
|
|
47
|
-
} })));
|
|
52
|
+
context.dispatch(withAll(withSearch(getSearchProviders(providers), query, results), withRootExtension('piral-search', Search), withRootExtension('piral-search-input', SearchInput)));
|
|
48
53
|
return (api, target) => {
|
|
49
54
|
const pilet = target.name;
|
|
50
55
|
let next = 0;
|
package/esm/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAc,cAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/lib/create.js
CHANGED
|
@@ -7,6 +7,8 @@ const react_1 = require("react");
|
|
|
7
7
|
const piral_core_1 = require("piral-core");
|
|
8
8
|
const actions_1 = require("./actions");
|
|
9
9
|
const default_1 = require("./default");
|
|
10
|
+
const Search_1 = require("./Search");
|
|
11
|
+
const SearchInput_1 = require("./SearchInput");
|
|
10
12
|
function noop() { }
|
|
11
13
|
function createSearchRegistration(pilet, search, settings = {}) {
|
|
12
14
|
const { onlyImmediate = false, onCancel = noop, onClear = noop } = settings, rest = (0, tslib_1.__rest)(settings, ["onlyImmediate", "onCancel", "onClear"]);
|
|
@@ -34,6 +36,15 @@ function wrapResults(result, api, context) {
|
|
|
34
36
|
const results = Array.isArray(result) ? result : [result];
|
|
35
37
|
return results.map((item) => toChild(item, api, context));
|
|
36
38
|
}
|
|
39
|
+
function withSearch(searchProviders, query, items) {
|
|
40
|
+
return (state) => (Object.assign(Object.assign({}, state), { components: Object.assign({ SearchContainer: default_1.DefaultContainer, SearchInput: default_1.DefaultInput, SearchResult: default_1.DefaultResult }, state.components), registry: Object.assign(Object.assign({}, state.registry), { searchProviders }), search: {
|
|
41
|
+
input: query,
|
|
42
|
+
results: {
|
|
43
|
+
loading: false,
|
|
44
|
+
items,
|
|
45
|
+
},
|
|
46
|
+
} }));
|
|
47
|
+
}
|
|
37
48
|
/**
|
|
38
49
|
* Creates new Pilet API extensions for search and filtering.
|
|
39
50
|
*/
|
|
@@ -41,13 +52,7 @@ function createSearchApi(config = {}) {
|
|
|
41
52
|
const { providers = [], results = [], query = '' } = config, actionConfig = (0, tslib_1.__rest)(config, ["providers", "results", "query"]);
|
|
42
53
|
return (context) => {
|
|
43
54
|
context.defineActions((0, actions_1.createActions)(actionConfig));
|
|
44
|
-
context.dispatch((
|
|
45
|
-
input: query,
|
|
46
|
-
results: {
|
|
47
|
-
loading: false,
|
|
48
|
-
items: results,
|
|
49
|
-
},
|
|
50
|
-
} })));
|
|
55
|
+
context.dispatch((0, piral_core_1.withAll)(withSearch(getSearchProviders(providers), query, results), (0, piral_core_1.withRootExtension)('piral-search', Search_1.Search), (0, piral_core_1.withRootExtension)('piral-search-input', SearchInput_1.SearchInput)));
|
|
51
56
|
return (api, target) => {
|
|
52
57
|
const pilet = target.name;
|
|
53
58
|
let next = 0;
|
package/lib/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;;AAAA,2CAAoC;AACpC,iCAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-search",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.5-beta.3331",
|
|
4
4
|
"description": "Plugin for centralizing search in Piral.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"piral",
|
|
@@ -41,9 +41,10 @@
|
|
|
41
41
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"piral-core": "
|
|
44
|
+
"piral-core": "0.14.5-beta.3331"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"piral-core": "0.14.x"
|
|
48
|
-
}
|
|
48
|
+
},
|
|
49
|
+
"gitHead": "3db5015a2dbe8d68b87244b4d5ea6c9f84633189"
|
|
49
50
|
}
|
package/src/create.test.ts
CHANGED
|
@@ -2,7 +2,11 @@ import { Atom, swap } from '@dbeining/react-atom';
|
|
|
2
2
|
import { createSearchApi } from './create';
|
|
3
3
|
|
|
4
4
|
function createMockContainer() {
|
|
5
|
-
const state = Atom.of({
|
|
5
|
+
const state = Atom.of({
|
|
6
|
+
registry: {
|
|
7
|
+
extensions: {},
|
|
8
|
+
},
|
|
9
|
+
});
|
|
6
10
|
return {
|
|
7
11
|
context: {
|
|
8
12
|
on: jest.fn(),
|
package/src/create.ts
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { isfunc } from 'piral-base';
|
|
2
2
|
import { ReactChild, isValidElement, createElement } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
buildName,
|
|
5
|
+
PiralPlugin,
|
|
6
|
+
Dict,
|
|
7
|
+
withApi,
|
|
8
|
+
PiletApi,
|
|
9
|
+
GlobalStateContext,
|
|
10
|
+
withAll,
|
|
11
|
+
GlobalState,
|
|
12
|
+
withRootExtension,
|
|
13
|
+
} from 'piral-core';
|
|
4
14
|
import { createActions } from './actions';
|
|
5
15
|
import { DefaultContainer, DefaultInput, DefaultResult } from './default';
|
|
16
|
+
import { Search } from './Search';
|
|
17
|
+
import { SearchInput } from './SearchInput';
|
|
6
18
|
import {
|
|
7
19
|
PiletSearchApi,
|
|
8
20
|
SearchSettings,
|
|
@@ -103,6 +115,29 @@ function wrapResults(
|
|
|
103
115
|
return results.map((item) => toChild(item, api, context));
|
|
104
116
|
}
|
|
105
117
|
|
|
118
|
+
function withSearch(searchProviders: Dict<SearchProviderRegistration>, query: string, items: Array<ReactChild>) {
|
|
119
|
+
return (state: GlobalState): GlobalState => ({
|
|
120
|
+
...state,
|
|
121
|
+
components: {
|
|
122
|
+
SearchContainer: DefaultContainer,
|
|
123
|
+
SearchInput: DefaultInput,
|
|
124
|
+
SearchResult: DefaultResult,
|
|
125
|
+
...state.components,
|
|
126
|
+
},
|
|
127
|
+
registry: {
|
|
128
|
+
...state.registry,
|
|
129
|
+
searchProviders,
|
|
130
|
+
},
|
|
131
|
+
search: {
|
|
132
|
+
input: query,
|
|
133
|
+
results: {
|
|
134
|
+
loading: false,
|
|
135
|
+
items,
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
106
141
|
/**
|
|
107
142
|
* Creates new Pilet API extensions for search and filtering.
|
|
108
143
|
*/
|
|
@@ -112,26 +147,13 @@ export function createSearchApi(config: SearchConfig = {}): PiralPlugin<PiletSea
|
|
|
112
147
|
return (context) => {
|
|
113
148
|
context.defineActions(createActions(actionConfig));
|
|
114
149
|
|
|
115
|
-
context.dispatch(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
SearchInput
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
},
|
|
123
|
-
registry: {
|
|
124
|
-
...state.registry,
|
|
125
|
-
searchProviders: getSearchProviders(providers),
|
|
126
|
-
},
|
|
127
|
-
search: {
|
|
128
|
-
input: query,
|
|
129
|
-
results: {
|
|
130
|
-
loading: false,
|
|
131
|
-
items: results,
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
|
-
}));
|
|
150
|
+
context.dispatch(
|
|
151
|
+
withAll(
|
|
152
|
+
withSearch(getSearchProviders(providers), query, results),
|
|
153
|
+
withRootExtension('piral-search', Search),
|
|
154
|
+
withRootExtension('piral-search-input', SearchInput),
|
|
155
|
+
),
|
|
156
|
+
);
|
|
135
157
|
|
|
136
158
|
return (api, target) => {
|
|
137
159
|
const pilet = target.name;
|