@algolia/autocomplete-plugin-tags 1.17.7 → 1.17.9
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/createTagsPlugin.js +1 -0
- package/dist/theme.css +1 -1
- package/dist/theme.min.css +1 -1
- package/dist/umd/index.development.js +2 -1
- 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
|
@@ -84,6 +84,7 @@ export function createTagsPlugin() {
|
|
|
84
84
|
}, createElement("span", {
|
|
85
85
|
className: "aa-TagsPlugin-TagLabel"
|
|
86
86
|
}, item.label), createElement("button", {
|
|
87
|
+
type: "button",
|
|
87
88
|
className: "aa-TagsPlugin-RemoveButton",
|
|
88
89
|
title: "Remove this tag"
|
|
89
90
|
}, createElement("svg", {
|
package/dist/theme.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @algolia/autocomplete-plugin-tags 1.17.
|
|
1
|
+
/*! @algolia/autocomplete-plugin-tags 1.17.9 | 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.17.
|
|
1
|
+
/*! @algolia/autocomplete-plugin-tags 1.17.9 | 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.17.
|
|
1
|
+
/*! @algolia/autocomplete-plugin-tags 1.17.9 | 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) :
|
|
@@ -219,6 +219,7 @@
|
|
|
219
219
|
}, createElement("span", {
|
|
220
220
|
className: "aa-TagsPlugin-TagLabel"
|
|
221
221
|
}, item.label), createElement("button", {
|
|
222
|
+
type: "button",
|
|
222
223
|
className: "aa-TagsPlugin-RemoveButton",
|
|
223
224
|
title: "Remove this tag"
|
|
224
225
|
}, createElement("svg", {
|
|
@@ -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<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
|
+
{"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 type=\"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","type","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.17.
|
|
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
|
|
1
|
+
/*! @algolia/autocomplete-plugin-tags 1.17.9 | 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 u=function(){};function a(t){var e=t.initialTags,n={current:u(void 0===e?[]:e)},i=[];function u(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=u(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(u(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:u},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,u=e.onChange,s=a({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,a=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),u(r(r({},t),{},{prevTags:o,tags:s.get()})),a()}))},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",{type:"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<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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"}
|
|
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 type=\"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","type","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.17.
|
|
4
|
+
"version": "1.17.9",
|
|
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.17.
|
|
40
|
-
"@algolia/autocomplete-js": "1.17.
|
|
41
|
-
"@algolia/autocomplete-shared": "1.17.
|
|
39
|
+
"@algolia/autocomplete-core": "1.17.9",
|
|
40
|
+
"@algolia/autocomplete-js": "1.17.9",
|
|
41
|
+
"@algolia/autocomplete-shared": "1.17.9"
|
|
42
42
|
}
|
|
43
43
|
}
|