solid-ui 2.4.22-e594bdfb → 2.4.22-e64d9de1

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.
Files changed (86) hide show
  1. package/dist/main.js +8815 -9544
  2. package/dist/main.js.map +1 -1
  3. package/lib/acl/access-controller.js.map +1 -1
  4. package/lib/acl/access-groups.js.map +1 -1
  5. package/lib/acl/acl-control.js.map +1 -1
  6. package/lib/acl/acl.js.map +1 -1
  7. package/lib/acl/add-agent-buttons.js +0 -1
  8. package/lib/acl/add-agent-buttons.js.map +1 -1
  9. package/lib/acl/index.js.map +1 -1
  10. package/lib/acl/styles.js.map +1 -1
  11. package/lib/acl/types.js.map +1 -1
  12. package/lib/chat/bookmarks.js +1 -2
  13. package/lib/chat/bookmarks.js.map +1 -1
  14. package/lib/chat/chatLogic.js.map +1 -1
  15. package/lib/chat/dateFolder.js.map +1 -1
  16. package/lib/chat/infinite.js.map +1 -1
  17. package/lib/chat/message.js.map +1 -1
  18. package/lib/chat/messageTools.js.map +1 -1
  19. package/lib/chat/thread.js.map +1 -1
  20. package/lib/create/create.js.map +1 -1
  21. package/lib/create/index.js.map +1 -1
  22. package/lib/create/types.js.map +1 -1
  23. package/lib/debug.js.map +1 -1
  24. package/lib/folders.js.map +1 -1
  25. package/lib/footer/index.js.map +1 -1
  26. package/lib/footer/styleMap.js.map +1 -1
  27. package/lib/header/empty-profile.js.map +1 -1
  28. package/lib/header/index.js.map +1 -1
  29. package/lib/header/styleMap.js.map +1 -1
  30. package/lib/iconBase.js.map +1 -1
  31. package/lib/icons/solid_logo.js.map +1 -1
  32. package/lib/index.js.map +1 -1
  33. package/lib/jss/index.js.map +1 -1
  34. package/lib/log.js.map +1 -1
  35. package/lib/login/login.d.ts +0 -3
  36. package/lib/login/login.d.ts.map +1 -1
  37. package/lib/login/login.js +55 -51
  38. package/lib/login/login.js.map +1 -1
  39. package/lib/matrix/index.js.map +1 -1
  40. package/lib/matrix/matrix.js.map +1 -1
  41. package/lib/matrix/types.js.map +1 -1
  42. package/lib/media/index.js.map +1 -1
  43. package/lib/media/media-capture.js.map +1 -1
  44. package/lib/messageArea.js.map +1 -1
  45. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  46. package/lib/ns.js.map +1 -1
  47. package/lib/pad.js.map +1 -1
  48. package/lib/participation.js.map +1 -1
  49. package/lib/preferences.js.map +1 -1
  50. package/lib/signup/config-default.js.map +1 -1
  51. package/lib/signup/signup.js.map +1 -1
  52. package/lib/stories/decorators.js.map +1 -1
  53. package/lib/style.js.map +1 -1
  54. package/lib/style_multiSelect.js.map +1 -1
  55. package/lib/table.js.map +1 -1
  56. package/lib/tabs.d.ts.map +1 -1
  57. package/lib/tabs.js +21 -18
  58. package/lib/tabs.js.map +1 -1
  59. package/lib/typings.d.js.map +1 -1
  60. package/lib/utils/headerFooterHelpers.js.map +1 -1
  61. package/lib/utils/index.js.map +1 -1
  62. package/lib/utils/label.js.map +1 -1
  63. package/lib/versionInfo.d.ts +9 -9
  64. package/lib/versionInfo.js +14 -14
  65. package/lib/versionInfo.js.map +1 -1
  66. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  67. package/lib/widgets/buttons.js.map +1 -1
  68. package/lib/widgets/dragAndDrop.js.map +1 -1
  69. package/lib/widgets/error.js.map +1 -1
  70. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  71. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  72. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  73. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  74. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  75. package/lib/widgets/forms/basic.js.map +1 -1
  76. package/lib/widgets/forms/comment.js.map +1 -1
  77. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  78. package/lib/widgets/forms/fieldParams.js.map +1 -1
  79. package/lib/widgets/forms/formStyle.js.map +1 -1
  80. package/lib/widgets/forms.js +93 -4
  81. package/lib/widgets/forms.js.map +1 -1
  82. package/lib/widgets/index.js.map +1 -1
  83. package/lib/widgets/multiSelect.js.map +1 -1
  84. package/lib/widgets/peoplePicker.js.map +1 -1
  85. package/lib/widgets/widgetHelpers.js.map +1 -1
  86. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/widgets/index.js"],"names":[],"mappings":";;;;;;;;;;;;AAoBA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["/**\n * General purpose utility functions used in the panes\n * oshani@csail.mit.edu\n *\n * Includes form-oriented widgets timbl@w3.org\n *\n * sign-in sign-up widgets are in signin.js\n *\n * Note... For pointers to posssible text-editing code, see\n * http://stackoverflow.com/questions/6756407/what-contenteditable-editors\n */\n/* eslint-disable no-console */\n\n// Each widget should ideally live in its own file. In order to break up this\n// monolithic widget index over time, we should add new widgets to the\n// 'lib/widgets/' directory, and re-export them by merging the module namespaces:\n//\n// (In order to avoid name collisions, it is safely assumed that modules don't\n// export widgets with the same name)\n\nexport * from './peoplePicker'\nexport * from './dragAndDrop'\nexport * from './buttons'\nexport * from './buttons/iconLinks'\nexport * from './error'\nexport * from './forms'\n\nexport * from './forms/autocomplete/autocompleteBar'\nexport * from './forms/autocomplete/autocompletePicker'\n\nexport * as publicData from './forms/autocomplete/publicData'\n\n/*\nimport * as peoplePicker from './peoplePicker'\nimport * as dragAndDrop from './dragAndDrop'\nimport * as buttons from './buttons'\nimport * as error from './error'\nimport { forms } from './forms'\n\nconst widgets = Object.assign(\n {},\n buttons,\n peoplePicker,\n dragAndDrop,\n error,\n forms\n)\n\n// export default widgets .. Policy is not to use exports default\nmodule.export = widgets // @@ Apparently no way to do this (yet?) in esm\nconsole.log('widgets exported:', widgets)\n*/\n// ends\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/widgets/index.js"],"sourcesContent":["/**\n * General purpose utility functions used in the panes\n * oshani@csail.mit.edu\n *\n * Includes form-oriented widgets timbl@w3.org\n *\n * sign-in sign-up widgets are in signin.js\n *\n * Note... For pointers to posssible text-editing code, see\n * http://stackoverflow.com/questions/6756407/what-contenteditable-editors\n */\n/* eslint-disable no-console */\n\n// Each widget should ideally live in its own file. In order to break up this\n// monolithic widget index over time, we should add new widgets to the\n// 'lib/widgets/' directory, and re-export them by merging the module namespaces:\n//\n// (In order to avoid name collisions, it is safely assumed that modules don't\n// export widgets with the same name)\n\nexport * from './peoplePicker'\nexport * from './dragAndDrop'\nexport * from './buttons'\nexport * from './buttons/iconLinks'\nexport * from './error'\nexport * from './forms'\n\nexport * from './forms/autocomplete/autocompleteBar'\nexport * from './forms/autocomplete/autocompletePicker'\n\nexport * as publicData from './forms/autocomplete/publicData'\n\n/*\nimport * as peoplePicker from './peoplePicker'\nimport * as dragAndDrop from './dragAndDrop'\nimport * as buttons from './buttons'\nimport * as error from './error'\nimport { forms } from './forms'\n\nconst widgets = Object.assign(\n {},\n buttons,\n peoplePicker,\n dragAndDrop,\n error,\n forms\n)\n\n// export default widgets .. Policy is not to use exports default\nmodule.export = widgets // @@ Apparently no way to do this (yet?) in esm\nconsole.log('widgets exported:', widgets)\n*/\n// ends\n"],"mappings":";;;;;;;;;;;;AAoBA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAEA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/widgets/multiSelect.js"],"names":["IconicMultiSelect","data","itemTemplate","noData","noResults","placeholder","select","container","tagTemplate","textField","valueField","_data","_itemTemplate","_noData","_noResults","_placeholder","_select","_selectContainer","_tagTemplate","_textField","_valueField","nodeName","length","Error","_options","_getDataFromSettings","_getDataFromSelectTag","_renderMultiselect","_renderOptionsList","_domElements","clear","_multiselect","querySelector","input","optionsContainer","optionsContainerList","options","list","querySelectorAll","find","callbackFn","i","node","undefined","some","_enableEventListenners","_initSelectedList","callback","_event","option","index","html","style","multiselect__selected","value","_processTemplate","text","multiselect__remove_btn","_cross","insertAdjacentHTML","removeBtn","lastElementChild","addEventListener","target","el","dataset","_handleOption","_selectedOptions","classList","remove","setAttribute","multiselect__options","_removeOptionFromList","_handleClearSelectionBtn","_handlePlaceholder","_dispatchEvent","action","selection","_filterOptions","_removeAllArrowSelected","event","document","contains","_closeList","_clearSelection","add","multiselect__options_visible","e","_handleArrows","_handleBackspace","_handleEnter","isOpen","valueLowerCase","toLowerCase","textContent","substring","appendChild","parentNode","removeChild","hasResults","_showNoResults","result","characters","charactersLength","charAt","Math","floor","random","arr","item","push","selected","hasAttribute","isValueFieldValid","isTextFieldValid","keyCode","preventDefault","firstElementChild","multiselect__options_ul_li_arrow_selected","scrollIntoView","ArrowUp","Up","ArrowDown","Down","multiselect__options_ul_li","key","children","_scrollIntoView","lastSelectedOption","targetLastSelectedOption","display","dispatchEvent","splice","multiselect__options_selected","_addOptionToList","hasItemsSelected","template","processedTemplate","objAttr","match","map","replace","attr","className","optionDom","multiselect__options_ul","join","_showNoData","id","_generateId","createElement","multiselect__container","multiselect__wrapper","multiselect__input","multiselect__clear_btn","innerHTML","parent","child","rectParent","getBoundingClientRect","rectChild","top","bottom","offsetHeight","scrollTop","clientHeight","offsetTop","condition","multiselect__options_ul_p_multiselect__options_no_data","dom","multiselect__options_ul_p_multiselect__options_no_results"],"mappings":"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","sourcesContent":["/*\n * IconicMultiSelect v0.7.0\n * Licence: MIT\n * (c) 2021 Sidney Wimart.\n * repo & configuration: https://github.com/sidneywm/iconic-multiselect\n */\n\n/**\n * @version IconicMultiSelect v0.7.0\n * @licence MIT\n */\nimport * as style from '../style_multiSelect'\n\nexport class IconicMultiSelect {\n _data\n _domElements\n _event = () => {}\n _itemTemplate\n _multiselect\n _noData\n _noResults\n _options = []\n _placeholder\n _select\n _selectContainer\n _selectedOptions = []\n _tagTemplate\n _textField\n _valueField\n _cross = `\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.2253 4.81108C5.83477 4.42056 5.20161 4.42056 4.81108 4.81108C4.42056 5.20161 4.42056 5.83477 4.81108 6.2253L10.5858 12L4.81114 17.7747C4.42062 18.1652 4.42062 18.7984 4.81114 19.1889C5.20167 19.5794 5.83483 19.5794 6.22535 19.1889L12 13.4142L17.7747 19.1889C18.1652 19.5794 18.7984 19.5794 19.1889 19.1889C19.5794 18.7984 19.5794 18.1652 19.1889 17.7747L13.4142 12L19.189 6.2253C19.5795 5.83477 19.5795 5.20161 19.189 4.81108C18.7985 4.42056 18.1653 4.42056 17.7748 4.81108L12 10.5858L6.2253 4.81108Z\"\n fill=\"currentColor\"\n />\n </svg>\n `\n\n /**\n * Iconic Multiselect constructor.\n * @param { Object[] } data - Array of objects.\n * @param { string } noData - Defines the message when there is no data input.\n * @param { string } noResults - Defines the message when there is no result if options are filtered.\n * @param { string } placeholder - Defines the placeholder's text.\n * @param { string } select - DOM element to be selected. It must be a HTML Select tag - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select\n * @param { string } textField - Field to select in the object for the text.\n * @param { string } valueField - Field to select in the object for the value.\n */\n constructor ({ data, itemTemplate, noData, noResults, placeholder, select, container, tagTemplate, textField, valueField }) {\n this._data = data ?? []\n this._itemTemplate = itemTemplate ?? null\n this._noData = noData ?? 'No data found.'\n this._noResults = noResults ?? 'No results found.'\n this._placeholder = placeholder ?? 'Select...'\n this._select = select\n // Timea added a container here\n this._selectContainer = container\n this._tagTemplate = tagTemplate ?? null\n this._textField = textField ?? null\n this._valueField = valueField ?? null\n }\n\n /**\n * Initialize the Iconic Multiselect component.\n * @public\n */\n init () {\n // Timea change to use this._select instead of this._selectContainer\n if (this._select && this._select.nodeName === 'SELECT') {\n if (this._itemTemplate && this._data.length === 0) { throw new Error('itemTemplate must be initialized with data from the component settings') }\n if (this._tagTemplate && this._data.length === 0) { throw new Error('tagTemplate must be initialized with data from the component settings') }\n\n this._options = this._data.length > 0 ? this._getDataFromSettings() : this._getDataFromSelectTag()\n\n this._renderMultiselect()\n this._renderOptionsList()\n\n this._domElements = {\n clear: this._multiselect.querySelector('.multiselect__clear-btn'),\n input: this._multiselect.querySelector('.multiselect__input'),\n optionsContainer: this._multiselect.querySelector('.multiselect__options'),\n optionsContainerList: this._multiselect.querySelector('.multiselect__options > ul'),\n options: {\n list: this._multiselect.querySelectorAll('.multiselect__options > ul > li'),\n find: function (callbackFn) {\n for (let i = 0; i < this.list.length; i++) {\n const node = this.list[i]\n if (callbackFn(node)) return node\n }\n return undefined\n },\n some: function (callbackFn) {\n for (let i = 0; i < this.list.length; i++) {\n const node = this.list[i]\n if (callbackFn(node, i)) return true\n }\n return false\n }\n }\n }\n\n this._enableEventListenners()\n this._initSelectedList()\n } else {\n throw new Error(`The selector '${this._select}' did not select any valid select tag.`)\n }\n }\n\n /**\n * Subscribes to the emitted events.\n * @param { Function } callback - Callback function which emits a custom event object.\n * @public\n */\n subscribe (callback) {\n if (typeof callback === 'function') {\n this._event = callback\n } else {\n throw new Error('parameter in the subscribe method is not a function')\n }\n }\n\n /**\n * Add an option to the selection list.\n * @param { Object: { text: string; value: string; }} option\n * @private\n */\n _addOptionToList (option, index) {\n const html = `<span class=\"multiselect__selected\" style=\"${style.multiselect__selected}\" data-value=\"${option.value}\">${\n this._tagTemplate ? this._processTemplate(this._tagTemplate, index) : option.text\n }<span class=\"multiselect__remove-btn\" style=\"${style.multiselect__remove_btn}\">${this._cross}</span></span>`\n\n this._domElements.input.insertAdjacentHTML('beforebegin', html)\n\n const { lastElementChild: removeBtn } = this._multiselect.querySelector(`span[data-value=\"${option.value}\"]`)\n removeBtn.addEventListener('click', () => {\n const target = this._domElements.options.find((el) => el.dataset.value === option.value)\n this._handleOption(target)\n })\n }\n\n /**\n * Clears all selected options.\n * @private\n */\n _clearSelection () {\n for (let i = 0; i < this._selectedOptions.length; i++) {\n const option = this._selectedOptions[i]\n const target = this._domElements.options.find((el) => el.dataset.value === option.value)\n target.classList.remove('multiselect__options--selected')\n target.setAttribute('style', style.multiselect__options)\n this._removeOptionFromList(target.dataset.value)\n }\n this._selectedOptions = []\n this._handleClearSelectionBtn()\n this._handlePlaceholder()\n this._dispatchEvent({\n action: 'CLEAR_ALL_OPTIONS',\n selection: this._selectedOptions\n })\n }\n\n /**\n * Close the options container.\n * @private\n */\n _closeList () {\n this._domElements.input.value = ''\n this._domElements.optionsContainer.classList.remove('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options)\n this._filterOptions('')\n this._removeAllArrowSelected()\n }\n\n /**\n * Dispatches new events.\n * @param { object : { action: string; selection: { option: string; text: string; }[]; value?: string; } } event\n * @private\n */\n _dispatchEvent (event) {\n this._event(event)\n }\n\n /**\n * Enables all main event listenners.\n * @private\n */\n _enableEventListenners () {\n document.addEventListener('mouseup', ({ target }) => {\n if (!this._multiselect.contains(target)) {\n this._filterOptions('')\n this._closeList()\n this._handlePlaceholder()\n }\n })\n\n this._domElements.clear.addEventListener('click', () => {\n this._clearSelection()\n })\n\n for (let i = 0; i < this._domElements.options.list.length; i++) {\n const option = this._domElements.options.list[i]\n option.addEventListener('click', ({ target }) => {\n this._handleOption(target)\n this._closeList()\n })\n }\n\n this._domElements.input.addEventListener('focus', () => {\n this._domElements.optionsContainer.classList.add('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible)\n })\n\n this._domElements.input.addEventListener('input', ({ target: { value } }) => {\n if (this._domElements.options.list.length > 0) {\n this._filterOptions(value)\n }\n })\n\n this._domElements.input.addEventListener('keydown', (e) => {\n this._handleArrows(e)\n this._handleBackspace(e)\n this._handleEnter(e)\n })\n }\n\n /**\n * Filters user input.\n * @param { string } value\n * @private\n */\n _filterOptions (value) {\n const isOpen = this._domElements.optionsContainer.classList.contains('visible')\n const valueLowerCase = value.toLowerCase()\n\n if (!isOpen && value.length > 0) {\n this._domElements.optionsContainer.classList.add('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible)\n }\n\n if (this._domElements.options.list.length > 0) {\n for (let i = 0; i < this._domElements.options.list.length; i++) {\n const el = this._domElements.options.list[i]\n const text = this._itemTemplate ? this._data[i][this._textField] : el.textContent\n\n if (text.toLowerCase().substring(0, valueLowerCase.length) === valueLowerCase) {\n this._domElements.optionsContainerList.appendChild(el)\n } else {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n\n const hasResults = this._domElements.options.some(\n (el, index) =>\n (this._itemTemplate ? this._data[index][this._textField] : el.textContent)\n .toLowerCase()\n .substring(0, valueLowerCase.length) === valueLowerCase\n )\n this._showNoResults(!hasResults)\n }\n }\n\n _generateId (length) {\n let result = ''\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n const charactersLength = characters.length\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength))\n }\n return result\n }\n\n /**\n * Gets data from select tag.\n * @private\n */\n _getDataFromSelectTag () {\n const arr = []\n const { options } = this._select\n for (let i = 0; i < options.length; i++) {\n const item = options[i]\n arr.push({\n text: item.text,\n value: item.value,\n selected: item.hasAttribute('selected')\n })\n }\n return arr\n }\n\n /**\n * Gets data from settings.\n * @private\n */\n _getDataFromSettings () {\n if (this._data.length > 0 && this._valueField && this._textField) {\n const isValueFieldValid = typeof this._valueField === 'string'\n const isTextFieldValid = typeof this._textField === 'string'\n const arr = []\n\n if (!isValueFieldValid || !isTextFieldValid) {\n throw new Error('textField and valueField must be of type string')\n }\n\n for (let i = 0; i < this._data.length; i++) {\n const item = this._data[i]\n arr.push({\n value: item[this._valueField],\n text: item[this._textField],\n selected: typeof item.selected === 'boolean' ? item.selected : false\n })\n }\n return arr\n } else {\n return null\n }\n }\n\n /**\n * Handles Arrow up & Down. Selection of an option is also possible with these keys.\n * @param { Event } event\n * @private\n */\n _handleArrows (event) {\n if (event.keyCode === 40 || event.keyCode === 38) {\n event.preventDefault()\n const isOpen = this._domElements.optionsContainer.classList.contains('visible')\n // An updated view of the container is needed because of the filtering option\n const optionsContainerList = this._multiselect.querySelector('.multiselect__options > ul')\n\n if (!isOpen) {\n this._domElements.optionsContainer.classList.add('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible)\n optionsContainerList.firstElementChild.classList.add('arrow-selected')\n optionsContainerList.firstElementChild.setAttribute('style', style.multiselect__options_ul_li_arrow_selected)\n optionsContainerList.firstElementChild.scrollIntoView(false)\n } else {\n let selected = this._multiselect.querySelector('.multiselect__options ul li.arrow-selected')\n const action = {\n ArrowUp: 'previous',\n Up: 'previous',\n ArrowDown: 'next',\n Down: 'next'\n }\n\n if (!selected) {\n optionsContainerList.firstElementChild.classList.add('arrow-selected')\n optionsContainerList.firstElementChild.setAttribute('style', style.multiselect__options_ul_li_arrow_selected)\n optionsContainerList.firstElementChild.scrollIntoView(false)\n return\n }\n\n selected.classList.remove('arrow-selected')\n selected.setAttribute('style', style.multiselect__options_ul_li)\n\n selected = selected[action[event.key] + 'ElementSibling']\n\n // Go to start or end of the popup list\n if (!selected) {\n selected =\n optionsContainerList.children[action[event.key] === 'next' ? 0 : optionsContainerList.children.length - 1]\n selected.classList.add('arrow-selected')\n selected.setAttribute('style', style.multiselect__options_ul_li_arrow_selected)\n this._scrollIntoView(optionsContainerList, selected)\n return\n }\n\n selected.classList.add('arrow-selected')\n selected.setAttribute('style', style.multiselect__options_ul_li_arrow_selected)\n this._scrollIntoView(optionsContainerList, selected)\n }\n }\n }\n\n /**\n * Handles the backspace key event - Deletes the preceding option in the selection list.\n * @param { Event } e\n * @private\n */\n _handleBackspace (e) {\n if (e.keyCode === 8 && e.target.value === '') {\n const lastSelectedOption =\n this._selectedOptions.length > 0 ? this._selectedOptions[this._selectedOptions.length - 1] : null\n\n if (lastSelectedOption) {\n const targetLastSelectedOption = this._multiselect.querySelector(\n `li[data-value=\"${lastSelectedOption.value}\"]`\n )\n this._handleOption(targetLastSelectedOption)\n\n if (this._selectedOptions.length === 0) {\n this._domElements.optionsContainer.classList.remove('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options)\n }\n }\n }\n }\n\n /**\n * Shows clear selection button if some options are selected.\n * @private\n */\n _handleClearSelectionBtn () {\n if (this._selectedOptions.length > 0) {\n this._domElements.clear.style.display = 'flex'\n } else {\n this._domElements.clear.style.display = 'none'\n }\n }\n\n /**\n * Handles the enter key event.\n * @param { Event } event\n * @private\n */\n _handleEnter (event) {\n if (event.keyCode === 13) {\n const selected = this._multiselect.querySelector('.multiselect__options ul li.arrow-selected')\n if (selected) {\n this._handleOption(selected)\n this._closeList()\n }\n }\n }\n\n _handleOption (target, dispatchEvent = true) {\n // Remove\n for (let i = 0; i < this._selectedOptions.length; i++) {\n const el = this._selectedOptions[i]\n if (el.value === target.dataset.value) {\n target.classList.remove('multiselect__options--selected')\n target.setAttribute('style', style.multiselect__options)\n this._selectedOptions.splice(i, 1)\n this._removeOptionFromList(target.dataset.value)\n this._handleClearSelectionBtn()\n this._handlePlaceholder()\n\n return (\n dispatchEvent &&\n this._dispatchEvent({\n action: 'REMOVE_OPTION',\n value: target.dataset.value,\n selection: this._selectedOptions\n })\n )\n }\n }\n\n // Add\n for (let i = 0; i < this._options.length; i++) {\n const option = this._options[i]\n if (option.value === target.dataset.value) {\n target.classList.add('multiselect__options--selected')\n target.setAttribute('style', style.multiselect__options_selected)\n this._selectedOptions = [...this._selectedOptions, option]\n this._addOptionToList(option, i)\n this._handleClearSelectionBtn()\n this._handlePlaceholder()\n\n return (\n dispatchEvent &&\n this._dispatchEvent({\n action: 'ADD_OPTION',\n value: target.dataset.value,\n selection: this._selectedOptions\n })\n )\n }\n }\n }\n\n /**\n * Shows the placeholder if no options are selected.\n * @private\n */\n _handlePlaceholder () {\n this._domElements.input.placeholder = this._placeholder\n }\n\n _initSelectedList () {\n let hasItemsSelected = false\n\n for (let i = 0; i < this._options.length; i++) {\n const option = this._options[i]\n if (option.selected) {\n hasItemsSelected = true\n const target = this._domElements.options.find((el) => el.dataset.value === option.value)\n target.classList.add('multiselect__options--selected')\n target.setAttribute('style', style.multiselect__options_selected)\n this._selectedOptions = [...this._selectedOptions, option]\n this._addOptionToList(option, i)\n }\n }\n\n if (hasItemsSelected) { this._handleClearSelectionBtn() }\n this._handlePlaceholder()\n }\n\n /**\n * Process the custom template.\n * @param { string } template\n * @private\n */\n _processTemplate (template, index) {\n let processedTemplate = template\n const objAttr = template.match(/\\$\\{(\\w+)\\}/g).map((e) => e.replace(/\\$\\{|\\}/g, ''))\n\n for (let i = 0; i < objAttr.length; i++) {\n const attr = objAttr[i]\n // eslint-disable-next-line no-useless-escape\n processedTemplate = processedTemplate.replace(`\\$\\{${attr}\\}`, this._data[index][attr] ?? '')\n }\n\n return processedTemplate\n }\n\n _removeAllArrowSelected () {\n const className = 'arrow-selected'\n const target = this._domElements.options.find((el) => el.classList.contains(className))\n target && target.classList.remove(className) && target.setAttribute('style', style.multiselect__options_ul_li)\n }\n\n /**\n * Removes an option from the list.\n * @param { string } value\n * @private\n */\n _removeOptionFromList (value) {\n const optionDom = this._multiselect.querySelector(`span[data-value=\"${value}\"]`)\n optionDom && optionDom.parentNode && optionDom.parentNode.removeChild(optionDom)\n }\n\n /**\n * Renders the multiselect options list view.\n * @private\n */\n _renderOptionsList () {\n const html = `\n <div class=\"multiselect__options\" style=\"${style.multiselect__options}\">\n <ul style=\"${style.multiselect__options_ul}\">\n ${\n this._options.length > 0 && !this._itemTemplate\n ? this._options\n .map((option) => {\n return `\n <li data-value=\"${option.value}\" style=\"${style.multiselect__options_ul_li}\">${option.text}</li>\n `\n })\n .join('')\n : ''\n }\n\n ${\n this._options.length > 0 && this._itemTemplate\n ? this._options\n .map((option, index) => {\n return `\n <li data-value=\"${option.value}\" style=\"${style.multiselect__options_ul_li}\">${this._processTemplate(this._itemTemplate, index)}</li>\n `\n })\n .join('')\n : ''\n }\n ${this._showNoData(this._options.length === 0)}\n </ul>\n </div>\n `\n\n this._multiselect.insertAdjacentHTML('beforeend', html)\n }\n\n /**\n * Renders the multiselect view.\n * @private\n */\n _renderMultiselect () {\n this._select.style.display = 'none'\n const id = 'iconic-' + this._generateId(20)\n // Timea created dedicated div element because previous code was not rendering\n this._multiselect = document.createElement('div')\n this._multiselect.setAttribute('id', id)\n this._multiselect.setAttribute('class', 'multiselect__container')\n this._multiselect.setAttribute('style', style.multiselect__container)\n const html = `\n <div class=\"multiselect__wrapper\" style=\"${style.multiselect__wrapper}\">\n <input class=\"multiselect__input\" style=\"${style.multiselect__input}\" placeholder=\"${this._placeholder}\" />\n </div>\n <span style=\"display: none;\" class=\"multiselect__clear-btn\" style=\"${style.multiselect__clear_btn}\">${this._cross}</span>\n `\n this._multiselect.innerHTML = html\n this._selectContainer.appendChild(this._multiselect)\n }\n\n /**\n * ScrollIntoView - This small utility reproduces the behavior of .scrollIntoView({ block: \"nearest\", inline: \"nearest\" })\n * This is for IE compatibility without a need of a polyfill\n * @private\n */\n _scrollIntoView (parent, child) {\n const rectParent = parent.getBoundingClientRect()\n const rectChild = child.getBoundingClientRect()\n\n // Detect if not visible at top and then scroll to the top\n if (!(rectParent.top < rectChild.bottom - child.offsetHeight)) {\n parent.scrollTop = child.clientHeight + (child.offsetTop - child.offsetHeight)\n }\n\n // Detect if not visible at bottom and then scroll to the bottom\n if (!(rectParent.bottom > rectChild.top + child.offsetHeight)) {\n parent.scrollTop =\n child.clientHeight +\n (child.offsetTop - child.offsetHeight) -\n (parent.offsetHeight - (child.offsetHeight + (child.offsetHeight - child.clientHeight)))\n }\n }\n\n /**\n * Shows a no data message.\n * @param { boolean } condition\n * @private\n */\n _showNoData (condition) {\n return condition ? `<p class=\"multiselect__options--no-data\" style=\"${style.multiselect__options_ul_p_multiselect__options_no_data}\">${this._noData}</p>` : ''\n }\n\n /**\n * Shows a no results message.\n * @param { boolean } condition\n * @private\n */\n _showNoResults (condition) {\n const dom = this._multiselect.querySelector('.multiselect__options--no-results')\n if (condition) {\n const html = `<p class=\"multiselect__options--no-results\" style=\"${style.multiselect__options_ul_p_multiselect__options_no_results}\">${this._noResults}</p>`\n !dom && this._domElements.optionsContainerList.insertAdjacentHTML('beforeend', html)\n } else {\n dom && dom.parentNode && dom.parentNode.removeChild(dom)\n }\n }\n}\n"],"file":"multiSelect.js"}
1
+ {"version":3,"file":"multiSelect.js","names":["IconicMultiSelect","data","itemTemplate","noData","noResults","placeholder","select","container","tagTemplate","textField","valueField","_data","_itemTemplate","_noData","_noResults","_placeholder","_select","_selectContainer","_tagTemplate","_textField","_valueField","nodeName","length","Error","_options","_getDataFromSettings","_getDataFromSelectTag","_renderMultiselect","_renderOptionsList","_domElements","clear","_multiselect","querySelector","input","optionsContainer","optionsContainerList","options","list","querySelectorAll","find","callbackFn","i","node","undefined","some","_enableEventListenners","_initSelectedList","callback","_event","option","index","html","style","multiselect__selected","value","_processTemplate","text","multiselect__remove_btn","_cross","insertAdjacentHTML","removeBtn","lastElementChild","addEventListener","target","el","dataset","_handleOption","_selectedOptions","classList","remove","setAttribute","multiselect__options","_removeOptionFromList","_handleClearSelectionBtn","_handlePlaceholder","_dispatchEvent","action","selection","_filterOptions","_removeAllArrowSelected","event","document","contains","_closeList","_clearSelection","add","multiselect__options_visible","e","_handleArrows","_handleBackspace","_handleEnter","isOpen","valueLowerCase","toLowerCase","textContent","substring","appendChild","parentNode","removeChild","hasResults","_showNoResults","result","characters","charactersLength","charAt","Math","floor","random","arr","item","push","selected","hasAttribute","isValueFieldValid","isTextFieldValid","keyCode","preventDefault","firstElementChild","multiselect__options_ul_li_arrow_selected","scrollIntoView","ArrowUp","Up","ArrowDown","Down","multiselect__options_ul_li","key","children","_scrollIntoView","lastSelectedOption","targetLastSelectedOption","display","dispatchEvent","splice","multiselect__options_selected","_addOptionToList","hasItemsSelected","template","processedTemplate","objAttr","match","map","replace","attr","className","optionDom","multiselect__options_ul","join","_showNoData","id","_generateId","createElement","multiselect__container","multiselect__wrapper","multiselect__input","multiselect__clear_btn","innerHTML","parent","child","rectParent","getBoundingClientRect","rectChild","top","bottom","offsetHeight","scrollTop","clientHeight","offsetTop","condition","multiselect__options_ul_p_multiselect__options_no_data","dom","multiselect__options_ul_p_multiselect__options_no_results"],"sources":["../../src/widgets/multiSelect.js"],"sourcesContent":["/*\n * IconicMultiSelect v0.7.0\n * Licence: MIT\n * (c) 2021 Sidney Wimart.\n * repo & configuration: https://github.com/sidneywm/iconic-multiselect\n */\n\n/**\n * @version IconicMultiSelect v0.7.0\n * @licence MIT\n */\nimport * as style from '../style_multiSelect'\n\nexport class IconicMultiSelect {\n _data\n _domElements\n _event = () => {}\n _itemTemplate\n _multiselect\n _noData\n _noResults\n _options = []\n _placeholder\n _select\n _selectContainer\n _selectedOptions = []\n _tagTemplate\n _textField\n _valueField\n _cross = `\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.2253 4.81108C5.83477 4.42056 5.20161 4.42056 4.81108 4.81108C4.42056 5.20161 4.42056 5.83477 4.81108 6.2253L10.5858 12L4.81114 17.7747C4.42062 18.1652 4.42062 18.7984 4.81114 19.1889C5.20167 19.5794 5.83483 19.5794 6.22535 19.1889L12 13.4142L17.7747 19.1889C18.1652 19.5794 18.7984 19.5794 19.1889 19.1889C19.5794 18.7984 19.5794 18.1652 19.1889 17.7747L13.4142 12L19.189 6.2253C19.5795 5.83477 19.5795 5.20161 19.189 4.81108C18.7985 4.42056 18.1653 4.42056 17.7748 4.81108L12 10.5858L6.2253 4.81108Z\"\n fill=\"currentColor\"\n />\n </svg>\n `\n\n /**\n * Iconic Multiselect constructor.\n * @param { Object[] } data - Array of objects.\n * @param { string } noData - Defines the message when there is no data input.\n * @param { string } noResults - Defines the message when there is no result if options are filtered.\n * @param { string } placeholder - Defines the placeholder's text.\n * @param { string } select - DOM element to be selected. It must be a HTML Select tag - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select\n * @param { string } textField - Field to select in the object for the text.\n * @param { string } valueField - Field to select in the object for the value.\n */\n constructor ({ data, itemTemplate, noData, noResults, placeholder, select, container, tagTemplate, textField, valueField }) {\n this._data = data ?? []\n this._itemTemplate = itemTemplate ?? null\n this._noData = noData ?? 'No data found.'\n this._noResults = noResults ?? 'No results found.'\n this._placeholder = placeholder ?? 'Select...'\n this._select = select\n // Timea added a container here\n this._selectContainer = container\n this._tagTemplate = tagTemplate ?? null\n this._textField = textField ?? null\n this._valueField = valueField ?? null\n }\n\n /**\n * Initialize the Iconic Multiselect component.\n * @public\n */\n init () {\n // Timea change to use this._select instead of this._selectContainer\n if (this._select && this._select.nodeName === 'SELECT') {\n if (this._itemTemplate && this._data.length === 0) { throw new Error('itemTemplate must be initialized with data from the component settings') }\n if (this._tagTemplate && this._data.length === 0) { throw new Error('tagTemplate must be initialized with data from the component settings') }\n\n this._options = this._data.length > 0 ? this._getDataFromSettings() : this._getDataFromSelectTag()\n\n this._renderMultiselect()\n this._renderOptionsList()\n\n this._domElements = {\n clear: this._multiselect.querySelector('.multiselect__clear-btn'),\n input: this._multiselect.querySelector('.multiselect__input'),\n optionsContainer: this._multiselect.querySelector('.multiselect__options'),\n optionsContainerList: this._multiselect.querySelector('.multiselect__options > ul'),\n options: {\n list: this._multiselect.querySelectorAll('.multiselect__options > ul > li'),\n find: function (callbackFn) {\n for (let i = 0; i < this.list.length; i++) {\n const node = this.list[i]\n if (callbackFn(node)) return node\n }\n return undefined\n },\n some: function (callbackFn) {\n for (let i = 0; i < this.list.length; i++) {\n const node = this.list[i]\n if (callbackFn(node, i)) return true\n }\n return false\n }\n }\n }\n\n this._enableEventListenners()\n this._initSelectedList()\n } else {\n throw new Error(`The selector '${this._select}' did not select any valid select tag.`)\n }\n }\n\n /**\n * Subscribes to the emitted events.\n * @param { Function } callback - Callback function which emits a custom event object.\n * @public\n */\n subscribe (callback) {\n if (typeof callback === 'function') {\n this._event = callback\n } else {\n throw new Error('parameter in the subscribe method is not a function')\n }\n }\n\n /**\n * Add an option to the selection list.\n * @param { Object: { text: string; value: string; }} option\n * @private\n */\n _addOptionToList (option, index) {\n const html = `<span class=\"multiselect__selected\" style=\"${style.multiselect__selected}\" data-value=\"${option.value}\">${\n this._tagTemplate ? this._processTemplate(this._tagTemplate, index) : option.text\n }<span class=\"multiselect__remove-btn\" style=\"${style.multiselect__remove_btn}\">${this._cross}</span></span>`\n\n this._domElements.input.insertAdjacentHTML('beforebegin', html)\n\n const { lastElementChild: removeBtn } = this._multiselect.querySelector(`span[data-value=\"${option.value}\"]`)\n removeBtn.addEventListener('click', () => {\n const target = this._domElements.options.find((el) => el.dataset.value === option.value)\n this._handleOption(target)\n })\n }\n\n /**\n * Clears all selected options.\n * @private\n */\n _clearSelection () {\n for (let i = 0; i < this._selectedOptions.length; i++) {\n const option = this._selectedOptions[i]\n const target = this._domElements.options.find((el) => el.dataset.value === option.value)\n target.classList.remove('multiselect__options--selected')\n target.setAttribute('style', style.multiselect__options)\n this._removeOptionFromList(target.dataset.value)\n }\n this._selectedOptions = []\n this._handleClearSelectionBtn()\n this._handlePlaceholder()\n this._dispatchEvent({\n action: 'CLEAR_ALL_OPTIONS',\n selection: this._selectedOptions\n })\n }\n\n /**\n * Close the options container.\n * @private\n */\n _closeList () {\n this._domElements.input.value = ''\n this._domElements.optionsContainer.classList.remove('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options)\n this._filterOptions('')\n this._removeAllArrowSelected()\n }\n\n /**\n * Dispatches new events.\n * @param { object : { action: string; selection: { option: string; text: string; }[]; value?: string; } } event\n * @private\n */\n _dispatchEvent (event) {\n this._event(event)\n }\n\n /**\n * Enables all main event listenners.\n * @private\n */\n _enableEventListenners () {\n document.addEventListener('mouseup', ({ target }) => {\n if (!this._multiselect.contains(target)) {\n this._filterOptions('')\n this._closeList()\n this._handlePlaceholder()\n }\n })\n\n this._domElements.clear.addEventListener('click', () => {\n this._clearSelection()\n })\n\n for (let i = 0; i < this._domElements.options.list.length; i++) {\n const option = this._domElements.options.list[i]\n option.addEventListener('click', ({ target }) => {\n this._handleOption(target)\n this._closeList()\n })\n }\n\n this._domElements.input.addEventListener('focus', () => {\n this._domElements.optionsContainer.classList.add('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible)\n })\n\n this._domElements.input.addEventListener('input', ({ target: { value } }) => {\n if (this._domElements.options.list.length > 0) {\n this._filterOptions(value)\n }\n })\n\n this._domElements.input.addEventListener('keydown', (e) => {\n this._handleArrows(e)\n this._handleBackspace(e)\n this._handleEnter(e)\n })\n }\n\n /**\n * Filters user input.\n * @param { string } value\n * @private\n */\n _filterOptions (value) {\n const isOpen = this._domElements.optionsContainer.classList.contains('visible')\n const valueLowerCase = value.toLowerCase()\n\n if (!isOpen && value.length > 0) {\n this._domElements.optionsContainer.classList.add('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible)\n }\n\n if (this._domElements.options.list.length > 0) {\n for (let i = 0; i < this._domElements.options.list.length; i++) {\n const el = this._domElements.options.list[i]\n const text = this._itemTemplate ? this._data[i][this._textField] : el.textContent\n\n if (text.toLowerCase().substring(0, valueLowerCase.length) === valueLowerCase) {\n this._domElements.optionsContainerList.appendChild(el)\n } else {\n el.parentNode && el.parentNode.removeChild(el)\n }\n }\n\n const hasResults = this._domElements.options.some(\n (el, index) =>\n (this._itemTemplate ? this._data[index][this._textField] : el.textContent)\n .toLowerCase()\n .substring(0, valueLowerCase.length) === valueLowerCase\n )\n this._showNoResults(!hasResults)\n }\n }\n\n _generateId (length) {\n let result = ''\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n const charactersLength = characters.length\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength))\n }\n return result\n }\n\n /**\n * Gets data from select tag.\n * @private\n */\n _getDataFromSelectTag () {\n const arr = []\n const { options } = this._select\n for (let i = 0; i < options.length; i++) {\n const item = options[i]\n arr.push({\n text: item.text,\n value: item.value,\n selected: item.hasAttribute('selected')\n })\n }\n return arr\n }\n\n /**\n * Gets data from settings.\n * @private\n */\n _getDataFromSettings () {\n if (this._data.length > 0 && this._valueField && this._textField) {\n const isValueFieldValid = typeof this._valueField === 'string'\n const isTextFieldValid = typeof this._textField === 'string'\n const arr = []\n\n if (!isValueFieldValid || !isTextFieldValid) {\n throw new Error('textField and valueField must be of type string')\n }\n\n for (let i = 0; i < this._data.length; i++) {\n const item = this._data[i]\n arr.push({\n value: item[this._valueField],\n text: item[this._textField],\n selected: typeof item.selected === 'boolean' ? item.selected : false\n })\n }\n return arr\n } else {\n return null\n }\n }\n\n /**\n * Handles Arrow up & Down. Selection of an option is also possible with these keys.\n * @param { Event } event\n * @private\n */\n _handleArrows (event) {\n if (event.keyCode === 40 || event.keyCode === 38) {\n event.preventDefault()\n const isOpen = this._domElements.optionsContainer.classList.contains('visible')\n // An updated view of the container is needed because of the filtering option\n const optionsContainerList = this._multiselect.querySelector('.multiselect__options > ul')\n\n if (!isOpen) {\n this._domElements.optionsContainer.classList.add('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible)\n optionsContainerList.firstElementChild.classList.add('arrow-selected')\n optionsContainerList.firstElementChild.setAttribute('style', style.multiselect__options_ul_li_arrow_selected)\n optionsContainerList.firstElementChild.scrollIntoView(false)\n } else {\n let selected = this._multiselect.querySelector('.multiselect__options ul li.arrow-selected')\n const action = {\n ArrowUp: 'previous',\n Up: 'previous',\n ArrowDown: 'next',\n Down: 'next'\n }\n\n if (!selected) {\n optionsContainerList.firstElementChild.classList.add('arrow-selected')\n optionsContainerList.firstElementChild.setAttribute('style', style.multiselect__options_ul_li_arrow_selected)\n optionsContainerList.firstElementChild.scrollIntoView(false)\n return\n }\n\n selected.classList.remove('arrow-selected')\n selected.setAttribute('style', style.multiselect__options_ul_li)\n\n selected = selected[action[event.key] + 'ElementSibling']\n\n // Go to start or end of the popup list\n if (!selected) {\n selected =\n optionsContainerList.children[action[event.key] === 'next' ? 0 : optionsContainerList.children.length - 1]\n selected.classList.add('arrow-selected')\n selected.setAttribute('style', style.multiselect__options_ul_li_arrow_selected)\n this._scrollIntoView(optionsContainerList, selected)\n return\n }\n\n selected.classList.add('arrow-selected')\n selected.setAttribute('style', style.multiselect__options_ul_li_arrow_selected)\n this._scrollIntoView(optionsContainerList, selected)\n }\n }\n }\n\n /**\n * Handles the backspace key event - Deletes the preceding option in the selection list.\n * @param { Event } e\n * @private\n */\n _handleBackspace (e) {\n if (e.keyCode === 8 && e.target.value === '') {\n const lastSelectedOption =\n this._selectedOptions.length > 0 ? this._selectedOptions[this._selectedOptions.length - 1] : null\n\n if (lastSelectedOption) {\n const targetLastSelectedOption = this._multiselect.querySelector(\n `li[data-value=\"${lastSelectedOption.value}\"]`\n )\n this._handleOption(targetLastSelectedOption)\n\n if (this._selectedOptions.length === 0) {\n this._domElements.optionsContainer.classList.remove('visible')\n this._domElements.optionsContainer.setAttribute('style', style.multiselect__options)\n }\n }\n }\n }\n\n /**\n * Shows clear selection button if some options are selected.\n * @private\n */\n _handleClearSelectionBtn () {\n if (this._selectedOptions.length > 0) {\n this._domElements.clear.style.display = 'flex'\n } else {\n this._domElements.clear.style.display = 'none'\n }\n }\n\n /**\n * Handles the enter key event.\n * @param { Event } event\n * @private\n */\n _handleEnter (event) {\n if (event.keyCode === 13) {\n const selected = this._multiselect.querySelector('.multiselect__options ul li.arrow-selected')\n if (selected) {\n this._handleOption(selected)\n this._closeList()\n }\n }\n }\n\n _handleOption (target, dispatchEvent = true) {\n // Remove\n for (let i = 0; i < this._selectedOptions.length; i++) {\n const el = this._selectedOptions[i]\n if (el.value === target.dataset.value) {\n target.classList.remove('multiselect__options--selected')\n target.setAttribute('style', style.multiselect__options)\n this._selectedOptions.splice(i, 1)\n this._removeOptionFromList(target.dataset.value)\n this._handleClearSelectionBtn()\n this._handlePlaceholder()\n\n return (\n dispatchEvent &&\n this._dispatchEvent({\n action: 'REMOVE_OPTION',\n value: target.dataset.value,\n selection: this._selectedOptions\n })\n )\n }\n }\n\n // Add\n for (let i = 0; i < this._options.length; i++) {\n const option = this._options[i]\n if (option.value === target.dataset.value) {\n target.classList.add('multiselect__options--selected')\n target.setAttribute('style', style.multiselect__options_selected)\n this._selectedOptions = [...this._selectedOptions, option]\n this._addOptionToList(option, i)\n this._handleClearSelectionBtn()\n this._handlePlaceholder()\n\n return (\n dispatchEvent &&\n this._dispatchEvent({\n action: 'ADD_OPTION',\n value: target.dataset.value,\n selection: this._selectedOptions\n })\n )\n }\n }\n }\n\n /**\n * Shows the placeholder if no options are selected.\n * @private\n */\n _handlePlaceholder () {\n this._domElements.input.placeholder = this._placeholder\n }\n\n _initSelectedList () {\n let hasItemsSelected = false\n\n for (let i = 0; i < this._options.length; i++) {\n const option = this._options[i]\n if (option.selected) {\n hasItemsSelected = true\n const target = this._domElements.options.find((el) => el.dataset.value === option.value)\n target.classList.add('multiselect__options--selected')\n target.setAttribute('style', style.multiselect__options_selected)\n this._selectedOptions = [...this._selectedOptions, option]\n this._addOptionToList(option, i)\n }\n }\n\n if (hasItemsSelected) { this._handleClearSelectionBtn() }\n this._handlePlaceholder()\n }\n\n /**\n * Process the custom template.\n * @param { string } template\n * @private\n */\n _processTemplate (template, index) {\n let processedTemplate = template\n const objAttr = template.match(/\\$\\{(\\w+)\\}/g).map((e) => e.replace(/\\$\\{|\\}/g, ''))\n\n for (let i = 0; i < objAttr.length; i++) {\n const attr = objAttr[i]\n // eslint-disable-next-line no-useless-escape\n processedTemplate = processedTemplate.replace(`\\$\\{${attr}\\}`, this._data[index][attr] ?? '')\n }\n\n return processedTemplate\n }\n\n _removeAllArrowSelected () {\n const className = 'arrow-selected'\n const target = this._domElements.options.find((el) => el.classList.contains(className))\n target && target.classList.remove(className) && target.setAttribute('style', style.multiselect__options_ul_li)\n }\n\n /**\n * Removes an option from the list.\n * @param { string } value\n * @private\n */\n _removeOptionFromList (value) {\n const optionDom = this._multiselect.querySelector(`span[data-value=\"${value}\"]`)\n optionDom && optionDom.parentNode && optionDom.parentNode.removeChild(optionDom)\n }\n\n /**\n * Renders the multiselect options list view.\n * @private\n */\n _renderOptionsList () {\n const html = `\n <div class=\"multiselect__options\" style=\"${style.multiselect__options}\">\n <ul style=\"${style.multiselect__options_ul}\">\n ${\n this._options.length > 0 && !this._itemTemplate\n ? this._options\n .map((option) => {\n return `\n <li data-value=\"${option.value}\" style=\"${style.multiselect__options_ul_li}\">${option.text}</li>\n `\n })\n .join('')\n : ''\n }\n\n ${\n this._options.length > 0 && this._itemTemplate\n ? this._options\n .map((option, index) => {\n return `\n <li data-value=\"${option.value}\" style=\"${style.multiselect__options_ul_li}\">${this._processTemplate(this._itemTemplate, index)}</li>\n `\n })\n .join('')\n : ''\n }\n ${this._showNoData(this._options.length === 0)}\n </ul>\n </div>\n `\n\n this._multiselect.insertAdjacentHTML('beforeend', html)\n }\n\n /**\n * Renders the multiselect view.\n * @private\n */\n _renderMultiselect () {\n this._select.style.display = 'none'\n const id = 'iconic-' + this._generateId(20)\n // Timea created dedicated div element because previous code was not rendering\n this._multiselect = document.createElement('div')\n this._multiselect.setAttribute('id', id)\n this._multiselect.setAttribute('class', 'multiselect__container')\n this._multiselect.setAttribute('style', style.multiselect__container)\n const html = `\n <div class=\"multiselect__wrapper\" style=\"${style.multiselect__wrapper}\">\n <input class=\"multiselect__input\" style=\"${style.multiselect__input}\" placeholder=\"${this._placeholder}\" />\n </div>\n <span style=\"display: none;\" class=\"multiselect__clear-btn\" style=\"${style.multiselect__clear_btn}\">${this._cross}</span>\n `\n this._multiselect.innerHTML = html\n this._selectContainer.appendChild(this._multiselect)\n }\n\n /**\n * ScrollIntoView - This small utility reproduces the behavior of .scrollIntoView({ block: \"nearest\", inline: \"nearest\" })\n * This is for IE compatibility without a need of a polyfill\n * @private\n */\n _scrollIntoView (parent, child) {\n const rectParent = parent.getBoundingClientRect()\n const rectChild = child.getBoundingClientRect()\n\n // Detect if not visible at top and then scroll to the top\n if (!(rectParent.top < rectChild.bottom - child.offsetHeight)) {\n parent.scrollTop = child.clientHeight + (child.offsetTop - child.offsetHeight)\n }\n\n // Detect if not visible at bottom and then scroll to the bottom\n if (!(rectParent.bottom > rectChild.top + child.offsetHeight)) {\n parent.scrollTop =\n child.clientHeight +\n (child.offsetTop - child.offsetHeight) -\n (parent.offsetHeight - (child.offsetHeight + (child.offsetHeight - child.clientHeight)))\n }\n }\n\n /**\n * Shows a no data message.\n * @param { boolean } condition\n * @private\n */\n _showNoData (condition) {\n return condition ? `<p class=\"multiselect__options--no-data\" style=\"${style.multiselect__options_ul_p_multiselect__options_no_data}\">${this._noData}</p>` : ''\n }\n\n /**\n * Shows a no results message.\n * @param { boolean } condition\n * @private\n */\n _showNoResults (condition) {\n const dom = this._multiselect.querySelector('.multiselect__options--no-results')\n if (condition) {\n const html = `<p class=\"multiselect__options--no-results\" style=\"${style.multiselect__options_ul_p_multiselect__options_no_results}\">${this._noResults}</p>`\n !dom && this._domElements.optionsContainerList.insertAdjacentHTML('beforeend', html)\n } else {\n dom && dom.parentNode && dom.parentNode.removeChild(dom)\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/widgets/peoplePicker.js"],"names":["kb","solidLogicSingleton","store","PeoplePicker","element","typeIndex","groupPickedCb","options","selectedgroup","onSelectGroup","bind","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","render","changeGroupButton","textContent","addEventListener","_event","appendChild","findAddressBook","then","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","group","GroupBuilder","errorBody","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","ns","solid","vcard","Error","load","_xhr","indexes","groupIndex","groupContainer","rdf","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","debug","log","xhr","responseURL","loadGroups","groups","groupButton","handleClickGroup","each","getWithDefault","value","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","dropContainer","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","escape","doneBuildingButton","webId","namedNode","rdfClass","foaf","holdsStatement","why","toDel","remove","errorMessage","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","updater","update","success","dir"],"mappings":"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","sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport uuid from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../iconBase'\nimport * as ns from '../ns'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (err) {\n return reject(new Error('Could not load address book ' + err))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuid.v4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"file":"peoplePicker.js"}
1
+ {"version":3,"file":"peoplePicker.js","names":["kb","solidLogicSingleton","store","PeoplePicker","element","typeIndex","groupPickedCb","options","selectedgroup","onSelectGroup","bind","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","render","changeGroupButton","textContent","escape","addEventListener","_event","appendChild","findAddressBook","then","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","group","GroupBuilder","errorBody","errorMessageBlock","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","ns","solid","vcard","Error","load","_xhr","indexes","groupIndex","groupContainer","rdf","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","debug","log","xhr","responseURL","loadGroups","groups","groupButton","handleClickGroup","each","getWithDefault","value","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","dropContainer","makeDropTarget","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","doneBuildingButton","webId","namedNode","rdfClass","foaf","holdsStatement","why","toDel","remove","errorMessage","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","updater","update","success","dir"],"sources":["../../src/widgets/peoplePicker.js"],"sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport uuid from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../iconBase'\nimport * as ns from '../ns'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (err) {\n return reject(new Error('Could not load address book ' + err))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuid.v4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/widgets/widgetHelpers.ts"],"names":["wrapDivInATR","dom","div","obj","tr","createElement","td","appendChild","subject","addClickListenerToElement","onClickFunction","addEventListener","createImageDiv","image","imageDiv","setAttribute","imageDivStyle"],"mappings":";;;;;;;AAAA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,GAAD,EAAoBC,GAApB,EAAyCC,GAAzC,EAAsD;AAChF,MAAMC,EAAE,GAAGH,GAAG,CAACI,aAAJ,CAAkB,IAAlB,CAAX;AACA,MAAMC,EAAE,GAAGF,EAAE,CAACG,WAAH,CAAeN,GAAG,CAACI,aAAJ,CAAkB,IAAlB,CAAf,CAAX;AACAC,EAAAA,EAAE,CAACC,WAAH,CAAeL,GAAf;AACEE,EAAAA,EAAD,CAAYI,OAAZ,GAAsBL,GAAtB;AACD,SAAOC,EAAP;AACD,CANM;AAQP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAMK,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACP,GAAD,EAAsBQ,eAAtB,EAAsD;AAC7FR,EAAAA,GAAG,CAACS,gBAAJ,CAAqB,OAArB,EAA8BD,eAA9B;AACD,CAFM;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACX,GAAD,EAAoBC,GAApB,EAAyCW,KAAzC,EAAyF;AACrH,MAAMC,QAAQ,GAAGZ,GAAG,CAACK,WAAJ,CAAgBN,GAAG,CAACI,aAAJ,CAAkB,KAAlB,CAAhB,CAAjB;AAEAS,EAAAA,QAAQ,CAACC,YAAT,CAAsB,OAAtB,EAA+BC,oBAA/B;AACAF,EAAAA,QAAQ,CAACP,WAAT,CAAqBM,KAArB;AACAA,EAAAA,KAAK,CAACE,YAAN,CAAmB,WAAnB,EAAgC,OAAhC,EALqH,CAK5E;AAC1C,CANM","sourcesContent":["import {\n imageDivStyle\n} from '../style'\n\n/**\n * Wraps a Div in a TR/RD\n *\n * Takes a div and wraps it in a TR/TD to be backwards compatible to the\n * table structure of mashlib\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param div the created widget will be appended to this\n * @param obj not sure what this is used for exactly\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const wrapDivInATR = (dom: HTMLDocument, div: HTMLDivElement, obj: any) => {\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.appendChild(div)\n ;(tr as any).subject = obj\n return tr\n}\n\n/**\n * Adds a click listener to a div\n *\n * Adds a given function as a click listener on the given div\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param onClickFunction the click function to add to the click listener\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const addClickListenerToElement = (div: HTMLDivElement, onClickFunction: () => void) => {\n div.addEventListener('click', onClickFunction)\n}\n\n/**\n * Wraps a Div in a TR/RD\n *\n * Takes a div and wraps it in a TR/TD to be backwards compatible to the\n * table structure of mashlib\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param div the created widget will be appended to this\n * @param obj not sure what this is used for exactly\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const createImageDiv = (dom: HTMLDocument, div: HTMLDivElement, image: HTMLImageElement | HTMLObjectElement) => {\n const imageDiv = div.appendChild(dom.createElement('div'))\n\n imageDiv.setAttribute('style', imageDivStyle)\n imageDiv.appendChild(image)\n image.setAttribute('draggable', 'false') // Stop the image being dragged instead - just the TR\n}\n"],"file":"widgetHelpers.js"}
1
+ {"version":3,"file":"widgetHelpers.js","names":["wrapDivInATR","dom","div","obj","tr","createElement","td","appendChild","subject","addClickListenerToElement","onClickFunction","addEventListener","createImageDiv","image","imageDiv","setAttribute","imageDivStyle"],"sources":["../../src/widgets/widgetHelpers.ts"],"sourcesContent":["import {\n imageDivStyle\n} from '../style'\n\n/**\n * Wraps a Div in a TR/RD\n *\n * Takes a div and wraps it in a TR/TD to be backwards compatible to the\n * table structure of mashlib\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param div the created widget will be appended to this\n * @param obj not sure what this is used for exactly\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const wrapDivInATR = (dom: HTMLDocument, div: HTMLDivElement, obj: any) => {\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.appendChild(div)\n ;(tr as any).subject = obj\n return tr\n}\n\n/**\n * Adds a click listener to a div\n *\n * Adds a given function as a click listener on the given div\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param onClickFunction the click function to add to the click listener\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const addClickListenerToElement = (div: HTMLDivElement, onClickFunction: () => void) => {\n div.addEventListener('click', onClickFunction)\n}\n\n/**\n * Wraps a Div in a TR/RD\n *\n * Takes a div and wraps it in a TR/TD to be backwards compatible to the\n * table structure of mashlib\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param div the created widget will be appended to this\n * @param obj not sure what this is used for exactly\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const createImageDiv = (dom: HTMLDocument, div: HTMLDivElement, image: HTMLImageElement | HTMLObjectElement) => {\n const imageDiv = div.appendChild(dom.createElement('div'))\n\n imageDiv.setAttribute('style', imageDivStyle)\n imageDiv.appendChild(image)\n image.setAttribute('draggable', 'false') // Stop the image being dragged instead - just the TR\n}\n"],"mappings":";;;;;;;AAAA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,GAAD,EAAoBC,GAApB,EAAyCC,GAAzC,EAAsD;EAChF,IAAMC,EAAE,GAAGH,GAAG,CAACI,aAAJ,CAAkB,IAAlB,CAAX;EACA,IAAMC,EAAE,GAAGF,EAAE,CAACG,WAAH,CAAeN,GAAG,CAACI,aAAJ,CAAkB,IAAlB,CAAf,CAAX;EACAC,EAAE,CAACC,WAAH,CAAeL,GAAf;EACEE,EAAD,CAAYI,OAAZ,GAAsBL,GAAtB;EACD,OAAOC,EAAP;AACD,CANM;AAQP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAMK,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACP,GAAD,EAAsBQ,eAAtB,EAAsD;EAC7FR,GAAG,CAACS,gBAAJ,CAAqB,OAArB,EAA8BD,eAA9B;AACD,CAFM;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACX,GAAD,EAAoBC,GAApB,EAAyCW,KAAzC,EAAyF;EACrH,IAAMC,QAAQ,GAAGZ,GAAG,CAACK,WAAJ,CAAgBN,GAAG,CAACI,aAAJ,CAAkB,KAAlB,CAAhB,CAAjB;EAEAS,QAAQ,CAACC,YAAT,CAAsB,OAAtB,EAA+BC,oBAA/B;EACAF,QAAQ,CAACP,WAAT,CAAqBM,KAArB;EACAA,KAAK,CAACE,YAAN,CAAmB,WAAnB,EAAgC,OAAhC,EALqH,CAK5E;AAC1C,CANM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-ui",
3
- "version": "2.4.22-e594bdfb",
3
+ "version": "2.4.22-e64d9de1",
4
4
  "description": "UI library for writing Solid read-write-web applications",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -56,12 +56,14 @@
56
56
  "dependencies": {
57
57
  "escape-html": "^1.0.3",
58
58
  "eslint-plugin-n": "^15.2.2",
59
+ "i": "^0.3.7",
59
60
  "jss": "^10.9.0",
60
61
  "jss-preset-default": "^10.9.0",
61
62
  "mime-types": "^2.1.35",
62
- "pane-registry": "^2.4.10",
63
+ "npm": "^8.13.2",
64
+ "pane-registry": "2.4.10-e0d1abde",
63
65
  "rdflib": "^2.2.19",
64
- "solid-logic": "1.3.17-d95df8aa",
66
+ "solid-logic": "1.3.17-af110ecf",
65
67
  "solid-namespace": "^0.5.2",
66
68
  "uuid": "^8.3.2"
67
69
  },