@algolia/autocomplete-plugin-tags 1.8.2 → 1.9.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.
- package/dist/esm/createTags.js +6 -18
- package/dist/esm/createTagsPlugin.js +14 -18
- package/dist/theme.css +1 -1
- package/dist/theme.min.css +1 -1
- package/dist/umd/index.development.js +26 -36
- package/dist/umd/index.development.js.map +1 -1
- package/dist/umd/index.production.js +2 -2
- package/dist/umd/index.production.js.map +1 -1
- package/package.json +4 -4
package/dist/esm/createTags.js
CHANGED
|
@@ -1,28 +1,21 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
1
2
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
-
|
|
3
3
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
|
|
5
4
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
-
|
|
7
5
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
8
|
-
|
|
9
6
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
-
|
|
11
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
12
|
-
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
13
8
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
-
|
|
15
9
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
-
|
|
17
|
-
function
|
|
18
|
-
|
|
10
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
12
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
19
13
|
import { createRef } from '@algolia/autocomplete-shared';
|
|
20
14
|
export function createTags(_ref) {
|
|
21
15
|
var _ref$initialTags = _ref.initialTags,
|
|
22
|
-
|
|
16
|
+
initialTags = _ref$initialTags === void 0 ? [] : _ref$initialTags;
|
|
23
17
|
var tagsRef = createRef(mapToTags(initialTags));
|
|
24
18
|
var onChangeListeners = [];
|
|
25
|
-
|
|
26
19
|
function mapToTags(baseTags) {
|
|
27
20
|
return baseTags.map(function (baseTag) {
|
|
28
21
|
var tag = _objectSpread(_objectSpread({}, baseTag), {}, {
|
|
@@ -39,11 +32,9 @@ export function createTags(_ref) {
|
|
|
39
32
|
});
|
|
40
33
|
}
|
|
41
34
|
});
|
|
42
|
-
|
|
43
35
|
return tag;
|
|
44
36
|
});
|
|
45
37
|
}
|
|
46
|
-
|
|
47
38
|
return {
|
|
48
39
|
get: function get() {
|
|
49
40
|
return tagsRef.current;
|
|
@@ -60,11 +51,8 @@ export function createTags(_ref) {
|
|
|
60
51
|
},
|
|
61
52
|
add: function add(baseTags) {
|
|
62
53
|
var _tagsRef$current;
|
|
63
|
-
|
|
64
54
|
var prevTags = tagsRef.current.slice();
|
|
65
|
-
|
|
66
55
|
(_tagsRef$current = tagsRef.current).push.apply(_tagsRef$current, _toConsumableArray(mapToTags(baseTags)));
|
|
67
|
-
|
|
68
56
|
onChangeListeners.forEach(function (listener) {
|
|
69
57
|
return listener({
|
|
70
58
|
prevTags: prevTags,
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
1
2
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
-
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
/** @jsx createElement */
|
|
8
|
+
|
|
8
9
|
import { noop } from '@algolia/autocomplete-shared';
|
|
9
10
|
import { createTags } from './createTags';
|
|
10
11
|
export function createTagsPlugin() {
|
|
11
12
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
12
|
-
|
|
13
13
|
var _getOptions = getOptions(options),
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
initialTags = _getOptions.initialTags,
|
|
15
|
+
getTagsSubscribers = _getOptions.getTagsSubscribers,
|
|
16
|
+
transformSource = _getOptions.transformSource,
|
|
17
|
+
onChange = _getOptions.onChange;
|
|
19
18
|
var tags = createTags({
|
|
20
19
|
initialTags: initialTags
|
|
21
20
|
});
|
|
@@ -27,9 +26,9 @@ export function createTagsPlugin() {
|
|
|
27
26
|
name: 'aa.tagsPlugin',
|
|
28
27
|
subscribe: function subscribe(params) {
|
|
29
28
|
var setContext = params.setContext,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
onSelect = params.onSelect,
|
|
30
|
+
setIsOpen = params.setIsOpen,
|
|
31
|
+
refresh = params.refresh;
|
|
33
32
|
var subscribers = getTagsSubscribers();
|
|
34
33
|
setContext({
|
|
35
34
|
tagsPlugin: _objectSpread(_objectSpread({}, tagsApi), {}, {
|
|
@@ -38,12 +37,11 @@ export function createTagsPlugin() {
|
|
|
38
37
|
});
|
|
39
38
|
onSelect(function (_ref) {
|
|
40
39
|
var source = _ref.source,
|
|
41
|
-
|
|
40
|
+
item = _ref.item;
|
|
42
41
|
var subscriber = subscribers.find(function (_ref2) {
|
|
43
42
|
var sourceId = _ref2.sourceId;
|
|
44
43
|
return sourceId === source.sourceId;
|
|
45
44
|
});
|
|
46
|
-
|
|
47
45
|
if (subscriber) {
|
|
48
46
|
tags.add([subscriber.getTag({
|
|
49
47
|
item: item
|
|
@@ -80,7 +78,7 @@ export function createTagsPlugin() {
|
|
|
80
78
|
templates: {
|
|
81
79
|
item: function item(_ref6) {
|
|
82
80
|
var item = _ref6.item,
|
|
83
|
-
|
|
81
|
+
createElement = _ref6.createElement;
|
|
84
82
|
return createElement("div", {
|
|
85
83
|
className: "aa-TagsPlugin-Tag"
|
|
86
84
|
}, createElement("span", {
|
|
@@ -110,12 +108,10 @@ export function createTagsPlugin() {
|
|
|
110
108
|
get tags() {
|
|
111
109
|
return tags.get();
|
|
112
110
|
}
|
|
113
|
-
|
|
114
111
|
}),
|
|
115
112
|
__autocomplete_pluginOptions: options
|
|
116
113
|
};
|
|
117
114
|
}
|
|
118
|
-
|
|
119
115
|
function getOptions(options) {
|
|
120
116
|
return _objectSpread({
|
|
121
117
|
initialTags: [],
|
package/dist/theme.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-plugin-tags 1.
|
|
1
|
+
/*! @algolia/autocomplete-plugin-tags 1.9.0 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
|
|
2
2
|
[data-autocomplete-source-id=tagsPlugin] {
|
|
3
3
|
margin-bottom: var(--aa-spacing-half);
|
|
4
4
|
}
|
package/dist/theme.min.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-plugin-tags 1.
|
|
1
|
+
/*! @algolia/autocomplete-plugin-tags 1.9.0 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
|
|
2
2
|
[data-autocomplete-source-id=tagsPlugin]{margin-bottom:var(--aa-spacing-half)}[data-autocomplete-source-id=tagsPlugin] .aa-List{display:flex;flex-wrap:wrap;margin:calc(var(--aa-spacing-half)/2*-1)}[data-autocomplete-source-id=tagsPlugin] .aa-Item{background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha));margin:calc(var(--aa-spacing-half)/2);min-height:auto}[data-autocomplete-source-id=tagsPlugin] .aa-Item[aria-selected=true]{background-color:rgba(var(--aa-selected-color-rgb),.55)}.aa-TagsPlugin-Tag{align-items:center;display:flex;padding-left:var(--aa-spacing-half)}.aa-TagsPlugin-TagLabel{font-size:.8em}.aa-TagsPlugin-RemoveButton{cursor:pointer}.aa-TagsPlugin-RemoveButton svg{color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:calc(var(--aa-spacing)/3);stroke-width:var(--aa-icon-stroke-width);width:calc(var(--aa-action-icon-size)/1.5)}.aa-TagsPlugin-RemoveButton:focus svg,.aa-TagsPlugin-RemoveButton:hover svg{color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}@media (hover:none) and (pointer:coarse){.aa-TagsPlugin-RemoveButton:focus,.aa-TagsPlugin-RemoveButton:hover{color:inherit}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-plugin-tags 1.
|
|
1
|
+
/*! @algolia/autocomplete-plugin-tags 1.9.0 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
|
|
2
2
|
(function (global, factory) {
|
|
3
3
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
4
4
|
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
@@ -7,17 +7,14 @@
|
|
|
7
7
|
|
|
8
8
|
function ownKeys(object, enumerableOnly) {
|
|
9
9
|
var keys = Object.keys(object);
|
|
10
|
-
|
|
11
10
|
if (Object.getOwnPropertySymbols) {
|
|
12
11
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
13
12
|
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
14
13
|
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
15
14
|
})), keys.push.apply(keys, symbols);
|
|
16
15
|
}
|
|
17
|
-
|
|
18
16
|
return keys;
|
|
19
17
|
}
|
|
20
|
-
|
|
21
18
|
function _objectSpread2(target) {
|
|
22
19
|
for (var i = 1; i < arguments.length; i++) {
|
|
23
20
|
var source = null != arguments[i] ? arguments[i] : {};
|
|
@@ -27,11 +24,10 @@
|
|
|
27
24
|
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
28
25
|
});
|
|
29
26
|
}
|
|
30
|
-
|
|
31
27
|
return target;
|
|
32
28
|
}
|
|
33
|
-
|
|
34
29
|
function _defineProperty(obj, key, value) {
|
|
30
|
+
key = _toPropertyKey(key);
|
|
35
31
|
if (key in obj) {
|
|
36
32
|
Object.defineProperty(obj, key, {
|
|
37
33
|
value: value,
|
|
@@ -42,22 +38,17 @@
|
|
|
42
38
|
} else {
|
|
43
39
|
obj[key] = value;
|
|
44
40
|
}
|
|
45
|
-
|
|
46
41
|
return obj;
|
|
47
42
|
}
|
|
48
|
-
|
|
49
43
|
function _toConsumableArray(arr) {
|
|
50
44
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
51
45
|
}
|
|
52
|
-
|
|
53
46
|
function _arrayWithoutHoles(arr) {
|
|
54
47
|
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
55
48
|
}
|
|
56
|
-
|
|
57
49
|
function _iterableToArray(iter) {
|
|
58
50
|
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
59
51
|
}
|
|
60
|
-
|
|
61
52
|
function _unsupportedIterableToArray(o, minLen) {
|
|
62
53
|
if (!o) return;
|
|
63
54
|
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
@@ -66,18 +57,28 @@
|
|
|
66
57
|
if (n === "Map" || n === "Set") return Array.from(o);
|
|
67
58
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
68
59
|
}
|
|
69
|
-
|
|
70
60
|
function _arrayLikeToArray(arr, len) {
|
|
71
61
|
if (len == null || len > arr.length) len = arr.length;
|
|
72
|
-
|
|
73
62
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
74
|
-
|
|
75
63
|
return arr2;
|
|
76
64
|
}
|
|
77
|
-
|
|
78
65
|
function _nonIterableSpread() {
|
|
79
66
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
80
67
|
}
|
|
68
|
+
function _toPrimitive(input, hint) {
|
|
69
|
+
if (typeof input !== "object" || input === null) return input;
|
|
70
|
+
var prim = input[Symbol.toPrimitive];
|
|
71
|
+
if (prim !== undefined) {
|
|
72
|
+
var res = prim.call(input, hint || "default");
|
|
73
|
+
if (typeof res !== "object") return res;
|
|
74
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
75
|
+
}
|
|
76
|
+
return (hint === "string" ? String : Number)(input);
|
|
77
|
+
}
|
|
78
|
+
function _toPropertyKey(arg) {
|
|
79
|
+
var key = _toPrimitive(arg, "string");
|
|
80
|
+
return typeof key === "symbol" ? key : String(key);
|
|
81
|
+
}
|
|
81
82
|
|
|
82
83
|
function createRef(initialValue) {
|
|
83
84
|
return {
|
|
@@ -89,10 +90,9 @@
|
|
|
89
90
|
|
|
90
91
|
function createTags(_ref) {
|
|
91
92
|
var _ref$initialTags = _ref.initialTags,
|
|
92
|
-
|
|
93
|
+
initialTags = _ref$initialTags === void 0 ? [] : _ref$initialTags;
|
|
93
94
|
var tagsRef = createRef(mapToTags(initialTags));
|
|
94
95
|
var onChangeListeners = [];
|
|
95
|
-
|
|
96
96
|
function mapToTags(baseTags) {
|
|
97
97
|
return baseTags.map(function (baseTag) {
|
|
98
98
|
var tag = _objectSpread2(_objectSpread2({}, baseTag), {}, {
|
|
@@ -109,11 +109,9 @@
|
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
});
|
|
112
|
-
|
|
113
112
|
return tag;
|
|
114
113
|
});
|
|
115
114
|
}
|
|
116
|
-
|
|
117
115
|
return {
|
|
118
116
|
get: function get() {
|
|
119
117
|
return tagsRef.current;
|
|
@@ -130,11 +128,8 @@
|
|
|
130
128
|
},
|
|
131
129
|
add: function add(baseTags) {
|
|
132
130
|
var _tagsRef$current;
|
|
133
|
-
|
|
134
131
|
var prevTags = tagsRef.current.slice();
|
|
135
|
-
|
|
136
132
|
(_tagsRef$current = tagsRef.current).push.apply(_tagsRef$current, _toConsumableArray(mapToTags(baseTags)));
|
|
137
|
-
|
|
138
133
|
onChangeListeners.forEach(function (listener) {
|
|
139
134
|
return listener({
|
|
140
135
|
prevTags: prevTags,
|
|
@@ -150,13 +145,11 @@
|
|
|
150
145
|
|
|
151
146
|
function createTagsPlugin() {
|
|
152
147
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
153
|
-
|
|
154
148
|
var _getOptions = getOptions(options),
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
149
|
+
initialTags = _getOptions.initialTags,
|
|
150
|
+
getTagsSubscribers = _getOptions.getTagsSubscribers,
|
|
151
|
+
transformSource = _getOptions.transformSource,
|
|
152
|
+
onChange = _getOptions.onChange;
|
|
160
153
|
var tags = createTags({
|
|
161
154
|
initialTags: initialTags
|
|
162
155
|
});
|
|
@@ -168,9 +161,9 @@
|
|
|
168
161
|
name: 'aa.tagsPlugin',
|
|
169
162
|
subscribe: function subscribe(params) {
|
|
170
163
|
var setContext = params.setContext,
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
164
|
+
onSelect = params.onSelect,
|
|
165
|
+
setIsOpen = params.setIsOpen,
|
|
166
|
+
refresh = params.refresh;
|
|
174
167
|
var subscribers = getTagsSubscribers();
|
|
175
168
|
setContext({
|
|
176
169
|
tagsPlugin: _objectSpread2(_objectSpread2({}, tagsApi), {}, {
|
|
@@ -179,12 +172,11 @@
|
|
|
179
172
|
});
|
|
180
173
|
onSelect(function (_ref) {
|
|
181
174
|
var source = _ref.source,
|
|
182
|
-
|
|
175
|
+
item = _ref.item;
|
|
183
176
|
var subscriber = subscribers.find(function (_ref2) {
|
|
184
177
|
var sourceId = _ref2.sourceId;
|
|
185
178
|
return sourceId === source.sourceId;
|
|
186
179
|
});
|
|
187
|
-
|
|
188
180
|
if (subscriber) {
|
|
189
181
|
tags.add([subscriber.getTag({
|
|
190
182
|
item: item
|
|
@@ -221,7 +213,7 @@
|
|
|
221
213
|
templates: {
|
|
222
214
|
item: function item(_ref6) {
|
|
223
215
|
var item = _ref6.item,
|
|
224
|
-
|
|
216
|
+
createElement = _ref6.createElement;
|
|
225
217
|
return createElement("div", {
|
|
226
218
|
className: "aa-TagsPlugin-Tag"
|
|
227
219
|
}, createElement("span", {
|
|
@@ -251,12 +243,10 @@
|
|
|
251
243
|
get tags() {
|
|
252
244
|
return tags.get();
|
|
253
245
|
}
|
|
254
|
-
|
|
255
246
|
}),
|
|
256
247
|
__autocomplete_pluginOptions: options
|
|
257
248
|
};
|
|
258
249
|
}
|
|
259
|
-
|
|
260
250
|
function getOptions(options) {
|
|
261
251
|
return _objectSpread2({
|
|
262
252
|
initialTags: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/noop.js","../../src/createTags.ts","../../src/createTagsPlugin.tsx"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export var noop = function noop() {};","import { BaseItem } from '@algolia/autocomplete-core';\nimport { createRef } from '@algolia/autocomplete-shared';\n\nimport { CreateTagsPluginParams } from './createTagsPlugin';\nimport { DefaultTagType, BaseTag, Tag } from './types';\n\nexport type OnTagsChangeParams<TTag extends DefaultTagType = DefaultTagType> = {\n prevTags: Array<Tag<TTag>>;\n tags: Array<Tag<TTag>>;\n};\n\ntype OnTagsChangeListener<TTag extends DefaultTagType = DefaultTagType> = (\n params: OnTagsChangeParams<TTag>\n) => void;\n\ntype CreateTagsParams<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n> = Pick<CreateTagsPluginParams<TItem, TTag>, 'initialTags'>;\n\nexport function createTags<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>({ initialTags = [] }: CreateTagsParams<TItem, TTag>) {\n const tagsRef = createRef(mapToTags(initialTags));\n const onChangeListeners: Array<OnTagsChangeListener<TTag>> = [];\n\n function mapToTags<TTag extends DefaultTagType = DefaultTagType>(\n baseTags: Array<BaseTag<TTag>>\n ): Array<Tag<TTag>> {\n return baseTags.map((baseTag) => {\n const tag = {\n ...baseTag,\n remove() {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current = tagsRef.current.filter(\n (tagRef) => tag !== ((tagRef as unknown) as Tag<TTag>)\n );\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n };\n\n return tag;\n });\n }\n\n return {\n get() {\n return tagsRef.current;\n },\n set(baseTags: Array<BaseTag<TTag>>) {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current = mapToTags(baseTags);\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n add(baseTags: Array<BaseTag<TTag>>) {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current.push(...mapToTags(baseTags));\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n onChange(listener: OnTagsChangeListener<TTag>) {\n onChangeListeners.push(listener);\n },\n };\n}\n","/** @jsx createElement */\nimport { BaseItem, PluginSubscribeParams } from '@algolia/autocomplete-core';\nimport {\n AutocompletePlugin,\n AutocompleteSource,\n AutocompleteState,\n} from '@algolia/autocomplete-js';\nimport { noop } from '@algolia/autocomplete-shared';\n\nimport { createTags, OnTagsChangeParams } from './createTags';\nimport type { DefaultTagType, BaseTag, Tag } from './types';\n\ntype OnChangeParams<\n TTag extends DefaultTagType = DefaultTagType\n> = PluginSubscribeParams<any> & OnTagsChangeParams<TTag>;\n\ntype GetTagParams<TItem extends BaseItem> = { item: TItem };\n\ntype TagsPluginData<TTag extends DefaultTagType = DefaultTagType> = {\n /**\n * Returns the current list of tags.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-tags\n */\n tags: Array<Tag<TTag>>;\n /**\n * Adds tags to the list.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-addtags\n */\n addTags: (tags: Array<BaseTag<TTag>>) => void;\n /**\n * Sets the list of tags.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-settags\n */\n setTags: (tags: Array<BaseTag<TTag>>) => void;\n};\n\nexport type TagsApi<\n TTag extends DefaultTagType = DefaultTagType\n> = TagsPluginData<TTag>;\n\nexport type CreateTagsPluginParams<\n TItem extends BaseItem,\n TTag extends DefaultTagType\n> = {\n /**\n * A set of initial tags to pass to the plugin.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-initialtags\n */\n initialTags?: Array<BaseTag<TTag>>;\n /**\n * A function to specify what sources the plugin should subscribe to. The plugin adds a tag when selecting an item from these sources.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-gettagssubscribers\n */\n getTagsSubscribers?(): Array<{\n sourceId: string;\n getTag(params: GetTagParams<TItem>): BaseTag<TTag>;\n }>;\n /**\n * A function to transform the returned tags source.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-transformsource\n */\n transformSource?(params: {\n source: AutocompleteSource<Tag<TTag>>;\n state: AutocompleteState<Tag<TTag>>;\n }): AutocompleteSource<Tag<TTag>> | undefined;\n /**\n * A function called when the list of tags changes.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-onchange\n */\n onChange?(params: OnChangeParams<TTag>): void;\n};\n\nexport function createTagsPlugin<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>(\n options: CreateTagsPluginParams<TItem, TTag> = {}\n): AutocompletePlugin<Tag<TTag>, TagsPluginData<TTag>> {\n const {\n initialTags,\n getTagsSubscribers,\n transformSource,\n onChange,\n } = getOptions(options);\n const tags = createTags({ initialTags });\n const tagsApi = { setTags: tags.set, addTags: tags.add };\n\n return {\n name: 'aa.tagsPlugin',\n subscribe(params) {\n const { setContext, onSelect, setIsOpen, refresh } = params;\n const subscribers = getTagsSubscribers();\n\n setContext({ tagsPlugin: { ...tagsApi, tags: tags.get() } });\n\n onSelect(({ source, item }) => {\n const subscriber = subscribers.find(\n ({ sourceId }) => sourceId === source.sourceId\n );\n\n if (subscriber) {\n tags.add([subscriber.getTag({ item })]);\n }\n });\n\n tags.onChange(({ prevTags }) => {\n setContext({\n tagsPlugin: { ...tagsApi, tags: tags.get() },\n });\n\n setIsOpen(true);\n onChange({ ...params, prevTags, tags: tags.get() });\n refresh();\n });\n },\n getSources({ state }) {\n return [\n transformSource({\n source: {\n sourceId: 'tagsPlugin',\n getItems() {\n return tags.get();\n },\n onSelect({ item }) {\n item.remove();\n },\n templates: {\n item({ item, createElement }) {\n return (\n <div className=\"aa-TagsPlugin-Tag\">\n <span className=\"aa-TagsPlugin-TagLabel\">{item.label}</span>\n <button\n className=\"aa-TagsPlugin-RemoveButton\"\n title=\"Remove this tag\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M18 6L6 18\"></path>\n <path d=\"M6 6L18 18\"></path>\n </svg>\n </button>\n </div>\n );\n },\n },\n },\n state: state as AutocompleteState<Tag<TTag>>,\n }),\n ];\n },\n data: {\n ...tagsApi,\n get tags() {\n return tags.get();\n },\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>(options: CreateTagsPluginParams<TItem, TTag>) {\n return {\n initialTags: [],\n getTagsSubscribers: () => [],\n transformSource: ({ source }) => source,\n onChange: noop,\n ...options,\n };\n}\n"],"names":["createRef","initialValue","current","noop","createTags","initialTags","tagsRef","mapToTags","onChangeListeners","baseTags","map","baseTag","tag","remove","prevTags","slice","filter","tagRef","forEach","listener","tags","get","set","add","push","onChange","createTagsPlugin","options","getOptions","getTagsSubscribers","transformSource","tagsApi","setTags","addTags","name","subscribe","params","setContext","onSelect","setIsOpen","refresh","subscribers","tagsPlugin","source","item","subscriber","find","sourceId","getTag","getSources","state","getItems","templates","createElement","label","data","__autocomplete_pluginOptions","_objectSpread"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/noop.js","../../src/createTags.ts","../../src/createTagsPlugin.tsx"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export var noop = function noop() {};","import { BaseItem } from '@algolia/autocomplete-core';\nimport { createRef } from '@algolia/autocomplete-shared';\n\nimport { CreateTagsPluginParams } from './createTagsPlugin';\nimport { DefaultTagType, BaseTag, Tag } from './types';\n\nexport type OnTagsChangeParams<TTag extends DefaultTagType = DefaultTagType> = {\n prevTags: Array<Tag<TTag>>;\n tags: Array<Tag<TTag>>;\n};\n\ntype OnTagsChangeListener<TTag extends DefaultTagType = DefaultTagType> = (\n params: OnTagsChangeParams<TTag>\n) => void;\n\ntype CreateTagsParams<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n> = Pick<CreateTagsPluginParams<TItem, TTag>, 'initialTags'>;\n\nexport function createTags<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>({ initialTags = [] }: CreateTagsParams<TItem, TTag>) {\n const tagsRef = createRef(mapToTags(initialTags));\n const onChangeListeners: Array<OnTagsChangeListener<TTag>> = [];\n\n function mapToTags<TTag extends DefaultTagType = DefaultTagType>(\n baseTags: Array<BaseTag<TTag>>\n ): Array<Tag<TTag>> {\n return baseTags.map((baseTag) => {\n const tag = {\n ...baseTag,\n remove() {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current = tagsRef.current.filter(\n (tagRef) => tag !== (tagRef as unknown as Tag<TTag>)\n );\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n };\n\n return tag;\n });\n }\n\n return {\n get() {\n return tagsRef.current;\n },\n set(baseTags: Array<BaseTag<TTag>>) {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current = mapToTags(baseTags);\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n add(baseTags: Array<BaseTag<TTag>>) {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current.push(...mapToTags(baseTags));\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n onChange(listener: OnTagsChangeListener<TTag>) {\n onChangeListeners.push(listener);\n },\n };\n}\n","/** @jsx createElement */\nimport { BaseItem, PluginSubscribeParams } from '@algolia/autocomplete-core';\nimport {\n AutocompletePlugin,\n AutocompleteSource,\n AutocompleteState,\n} from '@algolia/autocomplete-js';\nimport { noop } from '@algolia/autocomplete-shared';\n\nimport { createTags, OnTagsChangeParams } from './createTags';\nimport type { DefaultTagType, BaseTag, Tag } from './types';\n\ntype OnChangeParams<TTag extends DefaultTagType = DefaultTagType> =\n PluginSubscribeParams<any> & OnTagsChangeParams<TTag>;\n\ntype GetTagParams<TItem extends BaseItem> = { item: TItem };\n\ntype TagsPluginData<TTag extends DefaultTagType = DefaultTagType> = {\n /**\n * Returns the current list of tags.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-tags\n */\n tags: Array<Tag<TTag>>;\n /**\n * Adds tags to the list.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-addtags\n */\n addTags: (tags: Array<BaseTag<TTag>>) => void;\n /**\n * Sets the list of tags.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-settags\n */\n setTags: (tags: Array<BaseTag<TTag>>) => void;\n};\n\nexport type TagsApi<TTag extends DefaultTagType = DefaultTagType> =\n TagsPluginData<TTag>;\n\nexport type CreateTagsPluginParams<\n TItem extends BaseItem,\n TTag extends DefaultTagType\n> = {\n /**\n * A set of initial tags to pass to the plugin.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-initialtags\n */\n initialTags?: Array<BaseTag<TTag>>;\n /**\n * A function to specify what sources the plugin should subscribe to. The plugin adds a tag when selecting an item from these sources.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-gettagssubscribers\n */\n getTagsSubscribers?(): Array<{\n sourceId: string;\n getTag(params: GetTagParams<TItem>): BaseTag<TTag>;\n }>;\n /**\n * A function to transform the returned tags source.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-transformsource\n */\n transformSource?(params: {\n source: AutocompleteSource<Tag<TTag>>;\n state: AutocompleteState<Tag<TTag>>;\n }): AutocompleteSource<Tag<TTag>> | undefined;\n /**\n * A function called when the list of tags changes.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-onchange\n */\n onChange?(params: OnChangeParams<TTag>): void;\n};\n\nexport function createTagsPlugin<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>(\n options: CreateTagsPluginParams<TItem, TTag> = {}\n): AutocompletePlugin<Tag<TTag>, TagsPluginData<TTag>> {\n const { initialTags, getTagsSubscribers, transformSource, onChange } =\n getOptions(options);\n const tags = createTags({ initialTags });\n const tagsApi = { setTags: tags.set, addTags: tags.add };\n\n return {\n name: 'aa.tagsPlugin',\n subscribe(params) {\n const { setContext, onSelect, setIsOpen, refresh } = params;\n const subscribers = getTagsSubscribers();\n\n setContext({ tagsPlugin: { ...tagsApi, tags: tags.get() } });\n\n onSelect(({ source, item }) => {\n const subscriber = subscribers.find(\n ({ sourceId }) => sourceId === source.sourceId\n );\n\n if (subscriber) {\n tags.add([subscriber.getTag({ item })]);\n }\n });\n\n tags.onChange(({ prevTags }) => {\n setContext({\n tagsPlugin: { ...tagsApi, tags: tags.get() },\n });\n\n setIsOpen(true);\n onChange({ ...params, prevTags, tags: tags.get() });\n refresh();\n });\n },\n getSources({ state }) {\n return [\n transformSource({\n source: {\n sourceId: 'tagsPlugin',\n getItems() {\n return tags.get();\n },\n onSelect({ item }) {\n item.remove();\n },\n templates: {\n item({ item, createElement }) {\n return (\n <div className=\"aa-TagsPlugin-Tag\">\n <span className=\"aa-TagsPlugin-TagLabel\">{item.label}</span>\n <button\n className=\"aa-TagsPlugin-RemoveButton\"\n title=\"Remove this tag\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M18 6L6 18\"></path>\n <path d=\"M6 6L18 18\"></path>\n </svg>\n </button>\n </div>\n );\n },\n },\n },\n state: state as AutocompleteState<Tag<TTag>>,\n }),\n ];\n },\n data: {\n ...tagsApi,\n get tags() {\n return tags.get();\n },\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>(options: CreateTagsPluginParams<TItem, TTag>) {\n return {\n initialTags: [],\n getTagsSubscribers: () => [],\n transformSource: ({ source }) => source,\n onChange: noop,\n ...options,\n };\n}\n"],"names":["createRef","initialValue","current","noop","createTags","_ref","_ref$initialTags","initialTags","tagsRef","mapToTags","onChangeListeners","baseTags","map","baseTag","tag","_objectSpread","remove","prevTags","slice","filter","tagRef","forEach","listener","tags","get","set","add","_tagsRef$current","push","apply","_toConsumableArray","onChange","createTagsPlugin","options","arguments","length","undefined","_getOptions","getOptions","getTagsSubscribers","transformSource","tagsApi","setTags","addTags","name","subscribe","params","setContext","onSelect","setIsOpen","refresh","subscribers","tagsPlugin","source","item","subscriber","find","_ref2","sourceId","getTag","_ref3","getSources","_ref4","state","getItems","_ref5","templates","_ref6","createElement","className","label","title","fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","viewBox","d","data","__autocomplete_pluginOptions","_ref7"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-plugin-tags 1.
|
|
2
|
-
!function(e
|
|
1
|
+
/*! @algolia/autocomplete-plugin-tags 1.9.0 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
|
|
2
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@algolia/autocomplete-plugin-tags"]={})}(this,(function(t){"use strict";function e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function r(t){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?e(Object(o),!0).forEach((function(e){n(t,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):e(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}))}return t}function n(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var a=function(){};function u(t){var e=t.initialTags,n={current:a(void 0===e?[]:e)},i=[];function a(t){return t.map((function(t){var e=r(r({},t),{},{remove:function(){var t=n.current.slice();n.current=n.current.filter((function(t){return e!==t})),i.forEach((function(e){return e({prevTags:t,tags:n.current})}))}});return e}))}return{get:function(){return n.current},set:function(t){var e=n.current.slice();n.current=a(t),i.forEach((function(t){return t({prevTags:e,tags:n.current})}))},add:function(t){var e,r=n.current.slice();(e=n.current).push.apply(e,o(a(t))),i.forEach((function(t){return t({prevTags:r,tags:n.current})}))},onChange:function(t){i.push(t)}}}function c(t){return r({initialTags:[],getTagsSubscribers:function(){return[]},transformSource:function(t){return t.source},onChange:a},t)}t.createTagsPlugin=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=c(t),n=e.initialTags,o=e.getTagsSubscribers,i=e.transformSource,a=e.onChange,s=u({initialTags:n}),f={setTags:s.set,addTags:s.add};return{name:"aa.tagsPlugin",subscribe:function(t){var e=t.setContext,n=t.onSelect,i=t.setIsOpen,u=t.refresh,c=o();e({tagsPlugin:r(r({},f),{},{tags:s.get()})}),n((function(t){var e=t.source,r=t.item,n=c.find((function(t){return t.sourceId===e.sourceId}));n&&s.add([n.getTag({item:r})])})),s.onChange((function(n){var o=n.prevTags;e({tagsPlugin:r(r({},f),{},{tags:s.get()})}),i(!0),a(r(r({},t),{},{prevTags:o,tags:s.get()})),u()}))},getSources:function(t){var e=t.state;return[i({source:{sourceId:"tagsPlugin",getItems:function(){return s.get()},onSelect:function(t){t.item.remove()},templates:{item:function(t){var e=t.item,r=t.createElement;return r("div",{className:"aa-TagsPlugin-Tag"},r("span",{className:"aa-TagsPlugin-TagLabel"},e.label),r("button",{className:"aa-TagsPlugin-RemoveButton",title:"Remove this tag"},r("svg",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24"},r("path",{d:"M18 6L6 18"}),r("path",{d:"M6 6L18 18"}))))}}},state:e})]},data:r(r({},f),{},{get tags(){return s.get()}}),__autocomplete_pluginOptions:t}},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
3
3
|
//# sourceMappingURL=index.production.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/noop.js","../../src/createTags.ts","../../../autocomplete-shared/dist/esm/createRef.js","../../src/createTagsPlugin.tsx"],"sourcesContent":["export var noop = function noop() {};","import { BaseItem } from '@algolia/autocomplete-core';\nimport { createRef } from '@algolia/autocomplete-shared';\n\nimport { CreateTagsPluginParams } from './createTagsPlugin';\nimport { DefaultTagType, BaseTag, Tag } from './types';\n\nexport type OnTagsChangeParams<TTag extends DefaultTagType = DefaultTagType> = {\n prevTags: Array<Tag<TTag>>;\n tags: Array<Tag<TTag>>;\n};\n\ntype OnTagsChangeListener<TTag extends DefaultTagType = DefaultTagType> = (\n params: OnTagsChangeParams<TTag>\n) => void;\n\ntype CreateTagsParams<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n> = Pick<CreateTagsPluginParams<TItem, TTag>, 'initialTags'>;\n\nexport function createTags<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>({ initialTags = [] }: CreateTagsParams<TItem, TTag>) {\n const tagsRef = createRef(mapToTags(initialTags));\n const onChangeListeners: Array<OnTagsChangeListener<TTag>> = [];\n\n function mapToTags<TTag extends DefaultTagType = DefaultTagType>(\n baseTags: Array<BaseTag<TTag>>\n ): Array<Tag<TTag>> {\n return baseTags.map((baseTag) => {\n const tag = {\n ...baseTag,\n remove() {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current = tagsRef.current.filter(\n (tagRef) => tag !== ((tagRef as unknown) as Tag<TTag>)\n );\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n };\n\n return tag;\n });\n }\n\n return {\n get() {\n return tagsRef.current;\n },\n set(baseTags: Array<BaseTag<TTag>>) {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current = mapToTags(baseTags);\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n add(baseTags: Array<BaseTag<TTag>>) {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current.push(...mapToTags(baseTags));\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n onChange(listener: OnTagsChangeListener<TTag>) {\n onChangeListeners.push(listener);\n },\n };\n}\n","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","/** @jsx createElement */\nimport { BaseItem, PluginSubscribeParams } from '@algolia/autocomplete-core';\nimport {\n AutocompletePlugin,\n AutocompleteSource,\n AutocompleteState,\n} from '@algolia/autocomplete-js';\nimport { noop } from '@algolia/autocomplete-shared';\n\nimport { createTags, OnTagsChangeParams } from './createTags';\nimport type { DefaultTagType, BaseTag, Tag } from './types';\n\ntype OnChangeParams<\n TTag extends DefaultTagType = DefaultTagType\n> = PluginSubscribeParams<any> & OnTagsChangeParams<TTag>;\n\ntype GetTagParams<TItem extends BaseItem> = { item: TItem };\n\ntype TagsPluginData<TTag extends DefaultTagType = DefaultTagType> = {\n /**\n * Returns the current list of tags.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-tags\n */\n tags: Array<Tag<TTag>>;\n /**\n * Adds tags to the list.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-addtags\n */\n addTags: (tags: Array<BaseTag<TTag>>) => void;\n /**\n * Sets the list of tags.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-settags\n */\n setTags: (tags: Array<BaseTag<TTag>>) => void;\n};\n\nexport type TagsApi<\n TTag extends DefaultTagType = DefaultTagType\n> = TagsPluginData<TTag>;\n\nexport type CreateTagsPluginParams<\n TItem extends BaseItem,\n TTag extends DefaultTagType\n> = {\n /**\n * A set of initial tags to pass to the plugin.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-initialtags\n */\n initialTags?: Array<BaseTag<TTag>>;\n /**\n * A function to specify what sources the plugin should subscribe to. The plugin adds a tag when selecting an item from these sources.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-gettagssubscribers\n */\n getTagsSubscribers?(): Array<{\n sourceId: string;\n getTag(params: GetTagParams<TItem>): BaseTag<TTag>;\n }>;\n /**\n * A function to transform the returned tags source.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-transformsource\n */\n transformSource?(params: {\n source: AutocompleteSource<Tag<TTag>>;\n state: AutocompleteState<Tag<TTag>>;\n }): AutocompleteSource<Tag<TTag>> | undefined;\n /**\n * A function called when the list of tags changes.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-onchange\n */\n onChange?(params: OnChangeParams<TTag>): void;\n};\n\nexport function createTagsPlugin<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>(\n options: CreateTagsPluginParams<TItem, TTag> = {}\n): AutocompletePlugin<Tag<TTag>, TagsPluginData<TTag>> {\n const {\n initialTags,\n getTagsSubscribers,\n transformSource,\n onChange,\n } = getOptions(options);\n const tags = createTags({ initialTags });\n const tagsApi = { setTags: tags.set, addTags: tags.add };\n\n return {\n name: 'aa.tagsPlugin',\n subscribe(params) {\n const { setContext, onSelect, setIsOpen, refresh } = params;\n const subscribers = getTagsSubscribers();\n\n setContext({ tagsPlugin: { ...tagsApi, tags: tags.get() } });\n\n onSelect(({ source, item }) => {\n const subscriber = subscribers.find(\n ({ sourceId }) => sourceId === source.sourceId\n );\n\n if (subscriber) {\n tags.add([subscriber.getTag({ item })]);\n }\n });\n\n tags.onChange(({ prevTags }) => {\n setContext({\n tagsPlugin: { ...tagsApi, tags: tags.get() },\n });\n\n setIsOpen(true);\n onChange({ ...params, prevTags, tags: tags.get() });\n refresh();\n });\n },\n getSources({ state }) {\n return [\n transformSource({\n source: {\n sourceId: 'tagsPlugin',\n getItems() {\n return tags.get();\n },\n onSelect({ item }) {\n item.remove();\n },\n templates: {\n item({ item, createElement }) {\n return (\n <div className=\"aa-TagsPlugin-Tag\">\n <span className=\"aa-TagsPlugin-TagLabel\">{item.label}</span>\n <button\n className=\"aa-TagsPlugin-RemoveButton\"\n title=\"Remove this tag\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M18 6L6 18\"></path>\n <path d=\"M6 6L18 18\"></path>\n </svg>\n </button>\n </div>\n );\n },\n },\n },\n state: state as AutocompleteState<Tag<TTag>>,\n }),\n ];\n },\n data: {\n ...tagsApi,\n get tags() {\n return tags.get();\n },\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>(options: CreateTagsPluginParams<TItem, TTag>) {\n return {\n initialTags: [],\n getTagsSubscribers: () => [],\n transformSource: ({ source }) => source,\n onChange: noop,\n ...options,\n };\n}\n"],"names":["noop","createTags","_ref","_ref$initialTags","initialTags","tagsRef","current","mapToTags","onChangeListeners","baseTags","map","baseTag","tag","remove","prevTags","slice","filter","tagRef","forEach","listener","tags","get","set","add","_tagsRef$current","push","onChange","getOptions","options","_objectSpread","getTagsSubscribers","transformSource","_ref7","source","tagsApi","setTags","addTags","name","subscribe","params","setContext","onSelect","setIsOpen","refresh","subscribers","tagsPlugin","item","subscriber","find","_ref2","sourceId","getTag","_ref3","getSources","_ref4","state","getItems","_ref5","templates","_ref6","createElement","className","label","title","fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","viewBox","d","data","__autocomplete_pluginOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/noop.js","../../src/createTags.ts","../../../autocomplete-shared/dist/esm/createRef.js","../../src/createTagsPlugin.tsx"],"sourcesContent":["export var noop = function noop() {};","import { BaseItem } from '@algolia/autocomplete-core';\nimport { createRef } from '@algolia/autocomplete-shared';\n\nimport { CreateTagsPluginParams } from './createTagsPlugin';\nimport { DefaultTagType, BaseTag, Tag } from './types';\n\nexport type OnTagsChangeParams<TTag extends DefaultTagType = DefaultTagType> = {\n prevTags: Array<Tag<TTag>>;\n tags: Array<Tag<TTag>>;\n};\n\ntype OnTagsChangeListener<TTag extends DefaultTagType = DefaultTagType> = (\n params: OnTagsChangeParams<TTag>\n) => void;\n\ntype CreateTagsParams<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n> = Pick<CreateTagsPluginParams<TItem, TTag>, 'initialTags'>;\n\nexport function createTags<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>({ initialTags = [] }: CreateTagsParams<TItem, TTag>) {\n const tagsRef = createRef(mapToTags(initialTags));\n const onChangeListeners: Array<OnTagsChangeListener<TTag>> = [];\n\n function mapToTags<TTag extends DefaultTagType = DefaultTagType>(\n baseTags: Array<BaseTag<TTag>>\n ): Array<Tag<TTag>> {\n return baseTags.map((baseTag) => {\n const tag = {\n ...baseTag,\n remove() {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current = tagsRef.current.filter(\n (tagRef) => tag !== (tagRef as unknown as Tag<TTag>)\n );\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n };\n\n return tag;\n });\n }\n\n return {\n get() {\n return tagsRef.current;\n },\n set(baseTags: Array<BaseTag<TTag>>) {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current = mapToTags(baseTags);\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n add(baseTags: Array<BaseTag<TTag>>) {\n const prevTags = tagsRef.current.slice();\n\n tagsRef.current.push(...mapToTags(baseTags));\n onChangeListeners.forEach((listener) =>\n listener({ prevTags, tags: tagsRef.current })\n );\n },\n onChange(listener: OnTagsChangeListener<TTag>) {\n onChangeListeners.push(listener);\n },\n };\n}\n","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","/** @jsx createElement */\nimport { BaseItem, PluginSubscribeParams } from '@algolia/autocomplete-core';\nimport {\n AutocompletePlugin,\n AutocompleteSource,\n AutocompleteState,\n} from '@algolia/autocomplete-js';\nimport { noop } from '@algolia/autocomplete-shared';\n\nimport { createTags, OnTagsChangeParams } from './createTags';\nimport type { DefaultTagType, BaseTag, Tag } from './types';\n\ntype OnChangeParams<TTag extends DefaultTagType = DefaultTagType> =\n PluginSubscribeParams<any> & OnTagsChangeParams<TTag>;\n\ntype GetTagParams<TItem extends BaseItem> = { item: TItem };\n\ntype TagsPluginData<TTag extends DefaultTagType = DefaultTagType> = {\n /**\n * Returns the current list of tags.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-tags\n */\n tags: Array<Tag<TTag>>;\n /**\n * Adds tags to the list.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-addtags\n */\n addTags: (tags: Array<BaseTag<TTag>>) => void;\n /**\n * Sets the list of tags.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-settags\n */\n setTags: (tags: Array<BaseTag<TTag>>) => void;\n};\n\nexport type TagsApi<TTag extends DefaultTagType = DefaultTagType> =\n TagsPluginData<TTag>;\n\nexport type CreateTagsPluginParams<\n TItem extends BaseItem,\n TTag extends DefaultTagType\n> = {\n /**\n * A set of initial tags to pass to the plugin.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-initialtags\n */\n initialTags?: Array<BaseTag<TTag>>;\n /**\n * A function to specify what sources the plugin should subscribe to. The plugin adds a tag when selecting an item from these sources.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-gettagssubscribers\n */\n getTagsSubscribers?(): Array<{\n sourceId: string;\n getTag(params: GetTagParams<TItem>): BaseTag<TTag>;\n }>;\n /**\n * A function to transform the returned tags source.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-transformsource\n */\n transformSource?(params: {\n source: AutocompleteSource<Tag<TTag>>;\n state: AutocompleteState<Tag<TTag>>;\n }): AutocompleteSource<Tag<TTag>> | undefined;\n /**\n * A function called when the list of tags changes.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-tags/createtagsplugin/#param-onchange\n */\n onChange?(params: OnChangeParams<TTag>): void;\n};\n\nexport function createTagsPlugin<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>(\n options: CreateTagsPluginParams<TItem, TTag> = {}\n): AutocompletePlugin<Tag<TTag>, TagsPluginData<TTag>> {\n const { initialTags, getTagsSubscribers, transformSource, onChange } =\n getOptions(options);\n const tags = createTags({ initialTags });\n const tagsApi = { setTags: tags.set, addTags: tags.add };\n\n return {\n name: 'aa.tagsPlugin',\n subscribe(params) {\n const { setContext, onSelect, setIsOpen, refresh } = params;\n const subscribers = getTagsSubscribers();\n\n setContext({ tagsPlugin: { ...tagsApi, tags: tags.get() } });\n\n onSelect(({ source, item }) => {\n const subscriber = subscribers.find(\n ({ sourceId }) => sourceId === source.sourceId\n );\n\n if (subscriber) {\n tags.add([subscriber.getTag({ item })]);\n }\n });\n\n tags.onChange(({ prevTags }) => {\n setContext({\n tagsPlugin: { ...tagsApi, tags: tags.get() },\n });\n\n setIsOpen(true);\n onChange({ ...params, prevTags, tags: tags.get() });\n refresh();\n });\n },\n getSources({ state }) {\n return [\n transformSource({\n source: {\n sourceId: 'tagsPlugin',\n getItems() {\n return tags.get();\n },\n onSelect({ item }) {\n item.remove();\n },\n templates: {\n item({ item, createElement }) {\n return (\n <div className=\"aa-TagsPlugin-Tag\">\n <span className=\"aa-TagsPlugin-TagLabel\">{item.label}</span>\n <button\n className=\"aa-TagsPlugin-RemoveButton\"\n title=\"Remove this tag\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M18 6L6 18\"></path>\n <path d=\"M6 6L18 18\"></path>\n </svg>\n </button>\n </div>\n );\n },\n },\n },\n state: state as AutocompleteState<Tag<TTag>>,\n }),\n ];\n },\n data: {\n ...tagsApi,\n get tags() {\n return tags.get();\n },\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions<\n TItem extends BaseItem,\n TTag extends DefaultTagType = DefaultTagType\n>(options: CreateTagsPluginParams<TItem, TTag>) {\n return {\n initialTags: [],\n getTagsSubscribers: () => [],\n transformSource: ({ source }) => source,\n onChange: noop,\n ...options,\n };\n}\n"],"names":["noop","createTags","_ref","_ref$initialTags","initialTags","tagsRef","current","mapToTags","onChangeListeners","baseTags","map","baseTag","tag","_objectSpread","remove","prevTags","slice","filter","tagRef","forEach","listener","tags","get","set","add","_tagsRef$current","push","apply","_toConsumableArray","onChange","getOptions","options","getTagsSubscribers","transformSource","_ref7","source","arguments","length","undefined","_getOptions","tagsApi","setTags","addTags","name","subscribe","params","setContext","onSelect","setIsOpen","refresh","subscribers","tagsPlugin","item","subscriber","find","_ref2","sourceId","getTag","_ref3","getSources","_ref4","state","getItems","_ref5","templates","_ref6","createElement","className","label","title","fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","viewBox","d","data","__autocomplete_pluginOptions"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@algolia/autocomplete-plugin-tags",
|
|
3
3
|
"description": "A plugin to manage and display a list of tags in Algolia Autocomplete.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.9.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/algolia/autocomplete",
|
|
7
7
|
"repository": "algolia/autocomplete",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\""
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@algolia/autocomplete-core": "1.
|
|
40
|
-
"@algolia/autocomplete-js": "1.
|
|
41
|
-
"@algolia/autocomplete-shared": "1.
|
|
39
|
+
"@algolia/autocomplete-core": "1.9.0",
|
|
40
|
+
"@algolia/autocomplete-js": "1.9.0",
|
|
41
|
+
"@algolia/autocomplete-shared": "1.9.0"
|
|
42
42
|
}
|
|
43
43
|
}
|