@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.
@@ -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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
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
- initialTags = _ref$initialTags === void 0 ? [] : _ref$initialTags;
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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
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
- initialTags = _getOptions.initialTags,
15
- getTagsSubscribers = _getOptions.getTagsSubscribers,
16
- transformSource = _getOptions.transformSource,
17
- onChange = _getOptions.onChange;
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
- onSelect = params.onSelect,
31
- setIsOpen = params.setIsOpen,
32
- refresh = params.refresh;
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
- item = _ref.item;
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
- createElement = _ref6.createElement;
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.8.2 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
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
  }
@@ -1,2 +1,2 @@
1
- /*! @algolia/autocomplete-plugin-tags 1.8.2 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
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.8.2 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
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
- initialTags = _ref$initialTags === void 0 ? [] : _ref$initialTags;
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
- initialTags = _getOptions.initialTags,
156
- getTagsSubscribers = _getOptions.getTagsSubscribers,
157
- transformSource = _getOptions.transformSource,
158
- onChange = _getOptions.onChange;
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
- onSelect = params.onSelect,
172
- setIsOpen = params.setIsOpen,
173
- refresh = params.refresh;
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
- item = _ref.item;
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
- createElement = _ref6.createElement;
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAO,SAASA,SAASA,CAACC,YAAY,EAAE;IACtC,OAAO;EACLC,IAAAA,OAAO,EAAED,YAAAA;KACV,CAAA;EACH;;ECJO,IAAIE,IAAI,GAAG,SAASA,IAAIA,GAAG,EAAE;;ECoB7B,SAASC,UAAUA,CAAAC,IAAA,EAG6B;EAAA,EAAA,IAAAC,gBAAA,GAAAD,IAAA,CAAnDE,WAAW;EAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA,CAAA;IAClB,IAAME,OAAO,GAAGR,SAAS,CAACS,SAAS,CAACF,WAAW,CAAC,CAAC,CAAA;IACjD,IAAMG,iBAAoD,GAAG,EAAE,CAAA;IAE/D,SAASD,SAASA,CAChBE,QAA8B,EACZ;EAClB,IAAA,OAAOA,QAAQ,CAACC,GAAG,CAAC,UAACC,OAAO,EAAK;EAC/B,MAAA,IAAMC,GAAG,GAAAC,cAAA,CAAAA,cAAA,KACJF,OAAO,CAAA,EAAA,EAAA,EAAA;UACVG,MAAM,EAAA,SAAAA,SAAG;EACP,UAAA,IAAMC,QAAQ,GAAGT,OAAO,CAACN,OAAO,CAACgB,KAAK,EAAE,CAAA;YAExCV,OAAO,CAACN,OAAO,GAAGM,OAAO,CAACN,OAAO,CAACiB,MAAM,CACtC,UAACC,MAAM,EAAA;cAAA,OAAKN,GAAG,KAAMM,MAA+B,CAAA;aACrD,CAAA,CAAA;EACDV,UAAAA,iBAAiB,CAACW,OAAO,CAAC,UAACC,QAAQ,EAAA;EAAA,YAAA,OACjCA,QAAQ,CAAC;EAAEL,cAAAA,QAAQ,EAARA,QAAQ;gBAAEM,IAAI,EAAEf,OAAO,CAACN,OAAAA;EAAQ,aAAC,CAAC,CAAA;aAC9C,CAAA,CAAA;EACH,SAAA;SACD,CAAA,CAAA;EAED,MAAA,OAAOY,GAAG,CAAA;EACZ,KAAC,CAAC,CAAA;EACJ,GAAA;IAEA,OAAO;MACLU,GAAG,EAAA,SAAAA,MAAG;QACJ,OAAOhB,OAAO,CAACN,OAAO,CAAA;OACvB;MACDuB,GAAG,EAAA,SAAAA,GAACd,CAAAA,QAA8B,EAAE;EAClC,MAAA,IAAMM,QAAQ,GAAGT,OAAO,CAACN,OAAO,CAACgB,KAAK,EAAE,CAAA;EAExCV,MAAAA,OAAO,CAACN,OAAO,GAAGO,SAAS,CAACE,QAAQ,CAAC,CAAA;EACrCD,MAAAA,iBAAiB,CAACW,OAAO,CAAC,UAACC,QAAQ,EAAA;EAAA,QAAA,OACjCA,QAAQ,CAAC;EAAEL,UAAAA,QAAQ,EAARA,QAAQ;YAAEM,IAAI,EAAEf,OAAO,CAACN,OAAAA;EAAQ,SAAC,CAAC,CAAA;SAC9C,CAAA,CAAA;OACF;MACDwB,GAAG,EAAA,SAAAA,GAACf,CAAAA,QAA8B,EAAE;EAAA,MAAA,IAAAgB,gBAAA,CAAA;EAClC,MAAA,IAAMV,QAAQ,GAAGT,OAAO,CAACN,OAAO,CAACgB,KAAK,EAAE,CAAA;EAExC,MAAA,CAAAS,gBAAA,GAAAnB,OAAO,CAACN,OAAO,EAAC0B,IAAI,CAAAC,KAAA,CAAAF,gBAAA,EAAAG,kBAAA,CAAIrB,SAAS,CAACE,QAAQ,CAAC,CAAC,CAAA,CAAA;EAC5CD,MAAAA,iBAAiB,CAACW,OAAO,CAAC,UAACC,QAAQ,EAAA;EAAA,QAAA,OACjCA,QAAQ,CAAC;EAAEL,UAAAA,QAAQ,EAARA,QAAQ;YAAEM,IAAI,EAAEf,OAAO,CAACN,OAAAA;EAAQ,SAAC,CAAC,CAAA;SAC9C,CAAA,CAAA;OACF;MACD6B,QAAQ,EAAA,SAAAA,QAACT,CAAAA,QAAoC,EAAE;EAC7CZ,MAAAA,iBAAiB,CAACkB,IAAI,CAACN,QAAQ,CAAC,CAAA;EAClC,KAAA;KACD,CAAA;EACH;;ECIO,SAASU,gBAAgBA,GAKuB;EAAA,EAAA,IADrDC,OAA4C,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAEjD,EAAA,IAAAG,WAAA,GACEC,UAAU,CAACL,OAAO,CAAC;MADb1B,WAAW,GAAA8B,WAAA,CAAX9B,WAAW;MAAEgC,kBAAkB,GAAAF,WAAA,CAAlBE,kBAAkB;MAAEC,eAAe,GAAAH,WAAA,CAAfG,eAAe;MAAET,QAAQ,GAAAM,WAAA,CAARN,QAAQ,CAAA;IAElE,IAAMR,IAAI,GAAGnB,UAAU,CAAC;EAAEG,IAAAA,WAAW,EAAXA,WAAAA;EAAY,GAAC,CAAC,CAAA;EACxC,EAAA,IAAMkC,OAAO,GAAG;MAAEC,OAAO,EAAEnB,IAAI,CAACE,GAAG;MAAEkB,OAAO,EAAEpB,IAAI,CAACG,GAAAA;KAAK,CAAA;IAExD,OAAO;EACLkB,IAAAA,IAAI,EAAE,eAAe;MACrBC,SAAS,EAAA,SAAAA,SAACC,CAAAA,MAAM,EAAE;EAChB,MAAA,IAAQC,UAAU,GAAmCD,MAAM,CAAnDC,UAAU;UAAEC,QAAQ,GAAyBF,MAAM,CAAvCE,QAAQ;UAAEC,SAAS,GAAcH,MAAM,CAA7BG,SAAS;UAAEC,OAAO,GAAKJ,MAAM,CAAlBI,OAAO,CAAA;QAChD,IAAMC,WAAW,GAAGZ,kBAAkB,EAAE,CAAA;EAExCQ,MAAAA,UAAU,CAAC;EAAEK,QAAAA,UAAU,EAAArC,cAAA,CAAAA,cAAA,KAAO0B,OAAO,CAAA,EAAA,EAAA,EAAA;YAAElB,IAAI,EAAEA,IAAI,CAACC,GAAG,EAAA;EAAE,SAAA,CAAA;EAAG,OAAC,CAAC,CAAA;QAE5DwB,QAAQ,CAAC,UAAA3C,IAAA,EAAsB;EAAA,QAAA,IAAnBgD,MAAM,GAAAhD,IAAA,CAANgD,MAAM;YAAEC,IAAI,GAAAjD,IAAA,CAAJiD,IAAI,CAAA;EACtB,QAAA,IAAMC,UAAU,GAAGJ,WAAW,CAACK,IAAI,CACjC,UAAAC,KAAA,EAAA;EAAA,UAAA,IAAGC,QAAQ,GAAAD,KAAA,CAARC,QAAQ,CAAA;EAAA,UAAA,OAAOA,QAAQ,KAAKL,MAAM,CAACK,QAAQ,CAAA;WAC/C,CAAA,CAAA;EAED,QAAA,IAAIH,UAAU,EAAE;EACdhC,UAAAA,IAAI,CAACG,GAAG,CAAC,CAAC6B,UAAU,CAACI,MAAM,CAAC;EAAEL,YAAAA,IAAI,EAAJA,IAAAA;aAAM,CAAC,CAAC,CAAC,CAAA;EACzC,SAAA;EACF,OAAC,CAAC,CAAA;EAEF/B,MAAAA,IAAI,CAACQ,QAAQ,CAAC,UAAA6B,KAAA,EAAkB;EAAA,QAAA,IAAf3C,QAAQ,GAAA2C,KAAA,CAAR3C,QAAQ,CAAA;EACvB8B,QAAAA,UAAU,CAAC;EACTK,UAAAA,UAAU,EAAArC,cAAA,CAAAA,cAAA,KAAO0B,OAAO,CAAA,EAAA,EAAA,EAAA;cAAElB,IAAI,EAAEA,IAAI,CAACC,GAAG,EAAA;EAAE,WAAA,CAAA;EAC5C,SAAC,CAAC,CAAA;UAEFyB,SAAS,CAAC,IAAI,CAAC,CAAA;EACflB,QAAAA,QAAQ,CAAAhB,cAAA,CAAAA,cAAA,KAAM+B,MAAM,CAAA,EAAA,EAAA,EAAA;EAAE7B,UAAAA,QAAQ,EAARA,QAAQ;YAAEM,IAAI,EAAEA,IAAI,CAACC,GAAG,EAAA;WAAK,CAAA,CAAA,CAAA;EACnD0B,QAAAA,OAAO,EAAE,CAAA;EACX,OAAC,CAAC,CAAA;OACH;MACDW,UAAU,EAAA,SAAAA,UAAAC,CAAAA,KAAA,EAAY;EAAA,MAAA,IAATC,KAAK,GAAAD,KAAA,CAALC,KAAK,CAAA;QAChB,OAAO,CACLvB,eAAe,CAAC;EACda,QAAAA,MAAM,EAAE;EACNK,UAAAA,QAAQ,EAAE,YAAY;YACtBM,QAAQ,EAAA,SAAAA,WAAG;cACT,OAAOzC,IAAI,CAACC,GAAG,EAAE,CAAA;aAClB;YACDwB,QAAQ,EAAA,SAAAA,QAAAiB,CAAAA,KAAA,EAAW;EAAA,YAAA,IAARX,IAAI,GAAAW,KAAA,CAAJX,IAAI,CAAA;cACbA,IAAI,CAACtC,MAAM,EAAE,CAAA;aACd;EACDkD,UAAAA,SAAS,EAAE;cACTZ,IAAI,EAAA,SAAAA,IAAAa,CAAAA,KAAA,EAA0B;EAAA,cAAA,IAAvBb,IAAI,GAAAa,KAAA,CAAJb,IAAI;kBAAEc,aAAa,GAAAD,KAAA,CAAbC,aAAa,CAAA;EACxB,cAAA,OACEA,aAAA,CAAA,KAAA,EAAA;EAAKC,gBAAAA,SAAS,EAAC,mBAAA;EAAmB,eAAA,EAChCD,aAAA,CAAA,MAAA,EAAA;EAAMC,gBAAAA,SAAS,EAAC,wBAAA;EAAwB,eAAA,EAAEf,IAAI,CAACgB,KAAK,CAAQ,EAC5DF,aAAA,CAAA,QAAA,EAAA;EACEC,gBAAAA,SAAS,EAAC,4BAA4B;EACtCE,gBAAAA,KAAK,EAAC,iBAAA;EAAiB,eAAA,EAEvBH,aAAA,CAAA,KAAA,EAAA;EACEI,gBAAAA,IAAI,EAAC,MAAM;EACXC,gBAAAA,MAAM,EAAC,cAAc;EACrBC,gBAAAA,aAAa,EAAC,OAAO;EACrBC,gBAAAA,cAAc,EAAC,OAAO;EACtBC,gBAAAA,WAAW,EAAE,CAAE;EACfC,gBAAAA,OAAO,EAAC,WAAA;EAAW,eAAA,EAEnBT,aAAA,CAAA,MAAA,EAAA;EAAMU,gBAAAA,CAAC,EAAC,YAAA;EAAY,eAAA,CAAQ,EAC5BV,aAAA,CAAA,MAAA,EAAA;EAAMU,gBAAAA,CAAC,EAAC,YAAA;iBAAoB,CAAA,CACxB,CACC,CACL,CAAA;EAEV,aAAA;EACF,WAAA;WACD;EACDf,QAAAA,KAAK,EAAEA,KAAAA;EACT,OAAC,CAAC,CACH,CAAA;OACF;EACDgB,IAAAA,IAAI,EAAAhE,cAAA,CAAAA,cAAA,KACC0B,OAAO,CAAA,EAAA,EAAA,EAAA;QACV,IAAIlB,IAAIA,GAAG;UACT,OAAOA,IAAI,CAACC,GAAG,EAAE,CAAA;EACnB,OAAA;OACD,CAAA;EACDwD,IAAAA,4BAA4B,EAAE/C,OAAAA;KAC/B,CAAA;EACH,CAAA;EAEA,SAASK,UAAUA,CAGjBL,OAA4C,EAAE;EAC9C,EAAA,OAAAlB,cAAA,CAAA;EACER,IAAAA,WAAW,EAAE,EAAE;MACfgC,kBAAkB,EAAE,SAAAA,kBAAA,GAAA;EAAA,MAAA,OAAM,EAAE,CAAA;EAAA,KAAA;MAC5BC,eAAe,EAAE,SAAAA,eAAAA,CAAAyC,KAAA,EAAA;EAAA,MAAA,IAAG5B,MAAM,GAAA4B,KAAA,CAAN5B,MAAM,CAAA;EAAA,MAAA,OAAOA,MAAM,CAAA;EAAA,KAAA;EACvCtB,IAAAA,QAAQ,EAAE5B,IAAAA;EAAI,GAAA,EACX8B,OAAO,CAAA,CAAA;EAEd;;;;;;;;;;"}
@@ -1,3 +1,3 @@
1
- /*! @algolia/autocomplete-plugin-tags 1.8.2 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-plugin-tags"]={})}(this,(function(e){"use strict";function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(e){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?t(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e)||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 a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var u=function(){};function i(e){var t=e.initialTags,n={current:u(void 0===t?[]:t)},a=[];function u(e){return e.map((function(e){var t=r(r({},e),{},{remove:function(){var e=n.current.slice();n.current=n.current.filter((function(e){return t!==e})),a.forEach((function(t){return t({prevTags:e,tags:n.current})}))}});return t}))}return{get:function(){return n.current},set:function(e){var t=n.current.slice();n.current=u(e),a.forEach((function(e){return e({prevTags:t,tags:n.current})}))},add:function(e){var t,r=n.current.slice();(t=n.current).push.apply(t,o(u(e))),a.forEach((function(e){return e({prevTags:r,tags:n.current})}))},onChange:function(e){a.push(e)}}}function c(e){return r({initialTags:[],getTagsSubscribers:function(){return[]},transformSource:function(e){return e.source},onChange:u},e)}e.createTagsPlugin=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=c(e),n=t.initialTags,o=t.getTagsSubscribers,a=t.transformSource,u=t.onChange,s=i({initialTags:n}),f={setTags:s.set,addTags:s.add};return{name:"aa.tagsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,a=e.setIsOpen,i=e.refresh,c=o();t({tagsPlugin:r(r({},f),{},{tags:s.get()})}),n((function(e){var t=e.source,r=e.item,n=c.find((function(e){return e.sourceId===t.sourceId}));n&&s.add([n.getTag({item:r})])})),s.onChange((function(n){var o=n.prevTags;t({tagsPlugin:r(r({},f),{},{tags:s.get()})}),a(!0),u(r(r({},e),{},{prevTags:o,tags:s.get()})),i()}))},getSources:function(e){var t=e.state;return[a({source:{sourceId:"tagsPlugin",getItems:function(){return s.get()},onSelect:function(e){e.item.remove()},templates:{item:function(e){var t=e.item,r=e.createElement;return r("div",{className:"aa-TagsPlugin-Tag"},r("span",{className:"aa-TagsPlugin-TagLabel"},t.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:t})]},data:r(r({},f),{},{get tags(){return s.get()}}),__autocomplete_pluginOptions:e}},Object.defineProperty(e,"__esModule",{value:!0})}));
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.8.2",
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.8.2",
40
- "@algolia/autocomplete-js": "1.8.2",
41
- "@algolia/autocomplete-shared": "1.8.2"
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
  }