solid-ui 2.4.23 → 2.4.24

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 (136) hide show
  1. package/dist/main.js +2159 -5039
  2. package/dist/main.js.map +1 -1
  3. package/lib/acl/access-controller.js +4 -67
  4. package/lib/acl/access-controller.js.map +1 -1
  5. package/lib/acl/access-groups.js +59 -137
  6. package/lib/acl/access-groups.js.map +1 -1
  7. package/lib/acl/acl-control.js +14 -54
  8. package/lib/acl/acl-control.js.map +1 -1
  9. package/lib/acl/acl.js +32 -107
  10. package/lib/acl/acl.js.map +1 -1
  11. package/lib/acl/add-agent-buttons.js +0 -92
  12. package/lib/acl/add-agent-buttons.js.map +1 -1
  13. package/lib/acl/index.js +1 -3
  14. package/lib/acl/index.js.map +1 -1
  15. package/lib/acl/styles.js +1 -2
  16. package/lib/acl/styles.js.map +1 -1
  17. package/lib/chat/bookmarks.js +8 -80
  18. package/lib/chat/bookmarks.js.map +1 -1
  19. package/lib/chat/chatLogic.js +109 -180
  20. package/lib/chat/chatLogic.js.map +1 -1
  21. package/lib/chat/dateFolder.js +6 -91
  22. package/lib/chat/dateFolder.js.map +1 -1
  23. package/lib/chat/infinite.js +33 -185
  24. package/lib/chat/infinite.js.map +1 -1
  25. package/lib/chat/message.js +37 -150
  26. package/lib/chat/message.js.map +1 -1
  27. package/lib/chat/messageTools.js +23 -96
  28. package/lib/chat/messageTools.js.map +1 -1
  29. package/lib/chat/thread.js +33 -91
  30. package/lib/chat/thread.js.map +1 -1
  31. package/lib/create/create.js +19 -51
  32. package/lib/create/create.js.map +1 -1
  33. package/lib/create/index.js +0 -2
  34. package/lib/create/index.js.map +1 -1
  35. package/lib/debug.js +0 -8
  36. package/lib/debug.js.map +1 -1
  37. package/lib/folders.js +4 -27
  38. package/lib/folders.js.map +1 -1
  39. package/lib/footer/index.js +2 -24
  40. package/lib/footer/index.js.map +1 -1
  41. package/lib/footer/styleMap.js.map +1 -1
  42. package/lib/header/empty-profile.js.map +1 -1
  43. package/lib/header/index.js +3 -72
  44. package/lib/header/index.js.map +1 -1
  45. package/lib/header/styleMap.js +4 -3
  46. package/lib/header/styleMap.js.map +1 -1
  47. package/lib/iconBase.js +3 -4
  48. package/lib/iconBase.js.map +1 -1
  49. package/lib/index.js +5 -46
  50. package/lib/index.js.map +1 -1
  51. package/lib/jss/index.js +3 -9
  52. package/lib/jss/index.js.map +1 -1
  53. package/lib/log.js +15 -51
  54. package/lib/log.js.map +1 -1
  55. package/lib/login/login.js +74 -303
  56. package/lib/login/login.js.map +1 -1
  57. package/lib/matrix/index.js +0 -2
  58. package/lib/matrix/index.js.map +1 -1
  59. package/lib/matrix/matrix.js +7 -55
  60. package/lib/matrix/matrix.js.map +1 -1
  61. package/lib/media/index.js +0 -2
  62. package/lib/media/index.js.map +1 -1
  63. package/lib/media/media-capture.js +13 -33
  64. package/lib/media/media-capture.js.map +1 -1
  65. package/lib/messageArea.js +23 -64
  66. package/lib/messageArea.js.map +1 -1
  67. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  68. package/lib/ns.js +5 -7
  69. package/lib/ns.js.map +1 -1
  70. package/lib/pad.js +48 -234
  71. package/lib/pad.js.map +1 -1
  72. package/lib/participation.js +10 -65
  73. package/lib/participation.js.map +1 -1
  74. package/lib/preferences.js +21 -42
  75. package/lib/preferences.js.map +1 -1
  76. package/lib/signup/config-default.js +1 -8
  77. package/lib/signup/config-default.js.map +1 -1
  78. package/lib/signup/signup.js +6 -13
  79. package/lib/signup/signup.js.map +1 -1
  80. package/lib/stories/decorators.js +0 -2
  81. package/lib/stories/decorators.js.map +1 -1
  82. package/lib/style.js +8 -5
  83. package/lib/style.js.map +1 -1
  84. package/lib/style_multiSelect.js +1 -5
  85. package/lib/style_multiSelect.js.map +1 -1
  86. package/lib/table.js +309 -322
  87. package/lib/table.js.map +1 -1
  88. package/lib/tabs.js +20 -100
  89. package/lib/tabs.js.map +1 -1
  90. package/lib/utils/headerFooterHelpers.js +4 -52
  91. package/lib/utils/headerFooterHelpers.js.map +1 -1
  92. package/lib/utils/index.js +41 -135
  93. package/lib/utils/index.js.map +1 -1
  94. package/lib/utils/label.js +13 -34
  95. package/lib/utils/label.js.map +1 -1
  96. package/lib/versionInfo.js +4 -4
  97. package/lib/versionInfo.js.map +1 -1
  98. package/lib/widgets/buttons/iconLinks.js +0 -8
  99. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  100. package/lib/widgets/buttons.js +115 -291
  101. package/lib/widgets/buttons.js.map +1 -1
  102. package/lib/widgets/dragAndDrop.js +12 -41
  103. package/lib/widgets/dragAndDrop.js.map +1 -1
  104. package/lib/widgets/error.js +3 -9
  105. package/lib/widgets/error.js.map +1 -1
  106. package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
  107. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  108. package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
  109. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  110. package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
  111. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  112. package/lib/widgets/forms/autocomplete/language.js +6 -55
  113. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  114. package/lib/widgets/forms/autocomplete/publicData.js +12 -131
  115. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  116. package/lib/widgets/forms/basic.js +12 -55
  117. package/lib/widgets/forms/basic.js.map +1 -1
  118. package/lib/widgets/forms/comment.js +1 -15
  119. package/lib/widgets/forms/comment.js.map +1 -1
  120. package/lib/widgets/forms/fieldFunction.js +3 -16
  121. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  122. package/lib/widgets/forms/fieldParams.js +0 -12
  123. package/lib/widgets/forms/fieldParams.js.map +1 -1
  124. package/lib/widgets/forms/formStyle.js +1 -14
  125. package/lib/widgets/forms/formStyle.js.map +1 -1
  126. package/lib/widgets/forms.js +70 -474
  127. package/lib/widgets/forms.js.map +1 -1
  128. package/lib/widgets/index.js +0 -21
  129. package/lib/widgets/index.js.map +1 -1
  130. package/lib/widgets/multiSelect.js +48 -171
  131. package/lib/widgets/multiSelect.js.map +1 -1
  132. package/lib/widgets/peoplePicker.js +20 -90
  133. package/lib/widgets/peoplePicker.js.map +1 -1
  134. package/lib/widgets/widgetHelpers.js +2 -9
  135. package/lib/widgets/widgetHelpers.js.map +1 -1
  136. package/package.json +28 -28
@@ -1 +1 @@
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
+ {"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,46 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.Person = exports.PeoplePicker = exports.GroupPicker = exports.GroupBuilder = exports.Group = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
12
  var _escapeHtml = _interopRequireDefault(require("escape-html"));
19
-
20
13
  var _uuid = _interopRequireDefault(require("uuid"));
21
-
22
14
  var rdf = _interopRequireWildcard(require("rdflib"));
23
-
24
15
  var debug = _interopRequireWildcard(require("../debug"));
25
-
26
16
  var _dragAndDrop = require("./dragAndDrop");
27
-
28
17
  var _error = require("./error");
29
-
30
18
  var _iconBase = require("../iconBase");
31
-
32
19
  var ns = _interopRequireWildcard(require("../ns"));
33
-
34
20
  var _solidLogic = require("solid-logic");
35
-
36
21
  var _templateObject;
37
-
38
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
-
40
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
-
42
24
  var kb = _solidLogic.solidLogicSingleton.store;
43
-
44
25
  var PeoplePicker = /*#__PURE__*/function () {
45
26
  function PeoplePicker(element, typeIndex, groupPickedCb, options) {
46
27
  (0, _classCallCheck2["default"])(this, PeoplePicker);
@@ -50,21 +31,17 @@ var PeoplePicker = /*#__PURE__*/function () {
50
31
  this.typeIndex = typeIndex;
51
32
  this.groupPickedCb = groupPickedCb;
52
33
  this.selectedgroup = this.options.selectedgroup; // current selected group if any
53
-
54
34
  this.onSelectGroup = this.onSelectGroup.bind(this);
55
35
  }
56
-
57
36
  (0, _createClass2["default"])(PeoplePicker, [{
58
37
  key: "render",
59
38
  value: function render() {
60
39
  var _this = this;
61
-
62
40
  var container = document.createElement('div');
63
41
  container.style.maxWidth = '350px';
64
42
  container.style.minHeight = '200px';
65
43
  container.style.outline = '1px solid black';
66
44
  container.style.display = 'flex';
67
-
68
45
  if (this.selectedgroup) {
69
46
  container.style.flexDirection = 'column';
70
47
  var selectedGroup = document.createElement('div');
@@ -73,7 +50,6 @@ var PeoplePicker = /*#__PURE__*/function () {
73
50
  changeGroupButton.textContent = (0, _escapeHtml["default"])('Change group');
74
51
  changeGroupButton.addEventListener('click', function (_event) {
75
52
  _this.selectedgroup = null;
76
-
77
53
  _this.render();
78
54
  });
79
55
  container.appendChild(selectedGroup);
@@ -101,13 +77,11 @@ var PeoplePicker = /*#__PURE__*/function () {
101
77
  container.appendChild(chooseExistingGroupButton);
102
78
  container.appendChild(createNewGroupButton);
103
79
  _this.element.innerHTML = '';
104
-
105
80
  _this.element.appendChild(container);
106
81
  })["catch"](function (err) {
107
82
  _this.element.appendChild((0, _error.errorMessageBlock)(document, (0, _escapeHtml["default"])("Could find your groups. (".concat(err, ")"))));
108
83
  });
109
84
  }
110
-
111
85
  this.element.innerHTML = '';
112
86
  this.element.appendChild(container);
113
87
  return this;
@@ -120,19 +94,14 @@ var PeoplePicker = /*#__PURE__*/function () {
120
94
  if (!ok) {
121
95
  return reject(err);
122
96
  }
123
-
124
97
  var bookRegistration = kb.any(null, ns.solid('forClass'), ns.vcard('AddressBook'));
125
-
126
98
  if (!bookRegistration) {
127
99
  return reject(new Error('no address book registered in the solid type index ' + typeIndex));
128
100
  }
129
-
130
101
  var book = kb.any(bookRegistration, ns.solid('instance'));
131
-
132
102
  if (!book) {
133
103
  return reject(new Error('incomplete address book registration'));
134
104
  }
135
-
136
105
  kb.fetcher.load(book).then(function (_xhr) {
137
106
  return resolve({
138
107
  book: book
@@ -147,14 +116,14 @@ var PeoplePicker = /*#__PURE__*/function () {
147
116
  key: "createNewGroup",
148
117
  value: function createNewGroup(book, defaultNewGroupName) {
149
118
  var _indexes = indexes(book),
150
- groupIndex = _indexes.groupIndex,
151
- groupContainer = _indexes.groupContainer;
152
-
119
+ groupIndex = _indexes.groupIndex,
120
+ groupContainer = _indexes.groupContainer;
153
121
  var group = rdf.sym("".concat(groupContainer.uri).concat(_uuid["default"].v4().slice(0, 8), ".ttl#this"));
154
- var name = defaultNewGroupName || 'Untitled Group'; // NOTE that order matters here. Unfortunately this type of update is
122
+ var name = defaultNewGroupName || 'Untitled Group';
123
+
124
+ // NOTE that order matters here. Unfortunately this type of update is
155
125
  // non-atomic in that solid requires us to send two PATCHes, either of which
156
126
  // might fail.
157
-
158
127
  var patchPromises = [group.doc(), groupIndex].map(function (doc) {
159
128
  var typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc);
160
129
  var nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc);
@@ -187,9 +156,7 @@ var PeoplePicker = /*#__PURE__*/function () {
187
156
  }]);
188
157
  return PeoplePicker;
189
158
  }();
190
-
191
159
  exports.PeoplePicker = PeoplePicker;
192
-
193
160
  var GroupPicker = /*#__PURE__*/function () {
194
161
  function GroupPicker(element, book, onSelectGroup) {
195
162
  (0, _classCallCheck2["default"])(this, GroupPicker);
@@ -197,12 +164,10 @@ var GroupPicker = /*#__PURE__*/function () {
197
164
  this.book = book;
198
165
  this.onSelectGroup = onSelectGroup;
199
166
  }
200
-
201
167
  (0, _createClass2["default"])(GroupPicker, [{
202
168
  key: "render",
203
169
  value: function render() {
204
170
  var _this2 = this;
205
-
206
171
  this.loadGroups().then(function (groups) {
207
172
  // render the groups
208
173
  var container = document.createElement('div');
@@ -215,7 +180,6 @@ var GroupPicker = /*#__PURE__*/function () {
215
180
  container.appendChild(groupButton);
216
181
  });
217
182
  _this2.element.innerHTML = '';
218
-
219
183
  _this2.element.appendChild(container);
220
184
  })["catch"](function (err) {
221
185
  _this2.element.appendChild((0, _error.errorMessageBlock)(document, (0, _escapeHtml["default"])("There was an error loading your groups. (".concat(err, ")"))));
@@ -226,16 +190,13 @@ var GroupPicker = /*#__PURE__*/function () {
226
190
  key: "loadGroups",
227
191
  value: function loadGroups() {
228
192
  var _this3 = this;
229
-
230
193
  return new Promise(function (resolve, reject) {
231
194
  var _indexes2 = indexes(_this3.book),
232
- groupIndex = _indexes2.groupIndex;
233
-
195
+ groupIndex = _indexes2.groupIndex;
234
196
  kb.fetcher.nowOrWhenFetched(groupIndex, function (ok, err) {
235
197
  if (!ok) {
236
198
  return reject(err);
237
199
  }
238
-
239
200
  var groups = kb.each(_this3.book, ns.vcard('includesGroup'));
240
201
  return resolve(groups);
241
202
  });
@@ -245,7 +206,6 @@ var GroupPicker = /*#__PURE__*/function () {
245
206
  key: "handleClickGroup",
246
207
  value: function handleClickGroup(group) {
247
208
  var _this4 = this;
248
-
249
209
  return function (_event) {
250
210
  _this4.onSelectGroup(group);
251
211
  };
@@ -253,21 +213,19 @@ var GroupPicker = /*#__PURE__*/function () {
253
213
  }]);
254
214
  return GroupPicker;
255
215
  }();
256
-
257
216
  exports.GroupPicker = GroupPicker;
258
-
259
217
  var Group = /*#__PURE__*/function () {
260
218
  function Group(element, group) {
261
219
  (0, _classCallCheck2["default"])(this, Group);
262
220
  this.element = element;
263
221
  this.group = group;
264
222
  }
265
-
266
223
  (0, _createClass2["default"])(Group, [{
267
224
  key: "render",
268
225
  value: function render() {
269
226
  var container = document.createElement('div');
270
- container.textContent = (0, _escapeHtml["default"])( // @@@@@ need to escape??
227
+ container.textContent = (0, _escapeHtml["default"])(
228
+ // @@@@@ need to escape??
271
229
  getWithDefault(this.group, ns.vcard('fn'), "[".concat(this.group.value, "]")));
272
230
  this.element.innerHTML = '';
273
231
  this.element.appendChild(container);
@@ -276,35 +234,30 @@ var Group = /*#__PURE__*/function () {
276
234
  }]);
277
235
  return Group;
278
236
  }();
279
-
280
237
  exports.Group = Group;
281
-
282
238
  var GroupBuilder = /*#__PURE__*/function () {
283
239
  function GroupBuilder(element, book, group, doneBuildingCb, groupChangedCb) {
284
240
  (0, _classCallCheck2["default"])(this, GroupBuilder);
285
241
  this.element = element;
286
242
  this.book = book;
287
243
  this.group = group;
288
-
289
244
  this.onGroupChanged = function (err, changeType, agent) {
290
245
  if (groupChangedCb) {
291
246
  groupChangedCb(err, changeType, agent);
292
247
  }
293
248
  };
294
-
295
249
  this.groupChangedCb = groupChangedCb;
296
250
  this.doneBuildingCb = doneBuildingCb;
297
251
  }
298
-
299
252
  (0, _createClass2["default"])(GroupBuilder, [{
300
253
  key: "refresh",
301
- value: function refresh() {// TODO: implement
254
+ value: function refresh() {
255
+ // TODO: implement
302
256
  }
303
257
  }, {
304
258
  key: "render",
305
259
  value: function render() {
306
260
  var _this5 = this;
307
-
308
261
  var dropContainer = document.createElement('div');
309
262
  dropContainer.style.maxWidth = '350px';
310
263
  dropContainer.style.minHeight = '200px';
@@ -330,7 +283,6 @@ var GroupBuilder = /*#__PURE__*/function () {
330
283
  groupNameLabel.textContent = (0, _escapeHtml["default"])('Group Name:');
331
284
  groupNameLabel.appendChild(groupNameInput);
332
285
  dropContainer.appendChild(groupNameLabel);
333
-
334
286
  if (kb.any(this.group, ns.vcard('hasMember'))) {
335
287
  kb.match(this.group, ns.vcard('hasMember')).forEach(function (statement) {
336
288
  var webIdNode = statement.object;
@@ -343,7 +295,6 @@ var GroupBuilder = /*#__PURE__*/function () {
343
295
  copy.textContent = (0, _escapeHtml["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n To add someone to this group, drag and drop their WebID URL onto the box.\n "])));
344
296
  dropContainer.appendChild(copy);
345
297
  }
346
-
347
298
  var doneBuildingButton = document.createElement('button');
348
299
  doneBuildingButton.textContent = (0, _escapeHtml["default"])('Done');
349
300
  doneBuildingButton.addEventListener('click', function (_event) {
@@ -358,41 +309,32 @@ var GroupBuilder = /*#__PURE__*/function () {
358
309
  key: "add",
359
310
  value: function add(webId) {
360
311
  var _this6 = this;
361
-
362
312
  return new Promise(function (resolve, reject) {
363
313
  kb.fetcher.nowOrWhenFetched(webId, function (ok, err) {
364
314
  if (!ok) {
365
315
  _this6.onGroupChanged(err);
366
-
367
316
  return reject(err);
368
- } // make sure it's a valid person, group, or entity (for now just handle
317
+ }
318
+ // make sure it's a valid person, group, or entity (for now just handle
369
319
  // webId)
370
-
371
-
372
320
  var webIdNode = rdf.namedNode(webId);
373
321
  var rdfClass = kb.any(webIdNode, ns.rdf('type'));
374
-
375
322
  if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {
376
323
  return reject(new Error("Only people supported right now. (tried to add something of type ".concat(rdfClass.value, ")")));
377
324
  }
378
-
379
325
  return resolve(webIdNode);
380
326
  });
381
327
  }).then(function (webIdNode) {
382
328
  var statement = rdf.st(_this6.group, ns.vcard('hasMember'), webIdNode);
383
-
384
329
  if (kb.holdsStatement(statement)) {
385
330
  return webIdNode;
386
331
  }
387
-
388
332
  return patch(_this6.group.doc().uri, {
389
333
  toIns: [statement]
390
334
  }).then(function () {
391
335
  statement.why = _this6.group.doc();
392
336
  kb.add(statement);
393
-
394
337
  _this6.onGroupChanged(null, 'added', webIdNode);
395
-
396
338
  _this6.render();
397
339
  });
398
340
  });
@@ -401,18 +343,14 @@ var GroupBuilder = /*#__PURE__*/function () {
401
343
  key: "handleRemove",
402
344
  value: function handleRemove(webIdNode) {
403
345
  var _this7 = this;
404
-
405
346
  return function (_event) {
406
347
  var statement = rdf.st(_this7.group, ns.vcard('hasMember'), webIdNode);
407
348
  return patch(_this7.group.doc().uri, {
408
349
  toDel: [statement]
409
350
  }).then(function () {
410
351
  kb.remove(statement);
411
-
412
352
  _this7.onGroupChanged(null, 'removed', webIdNode);
413
-
414
353
  _this7.render();
415
-
416
354
  return true;
417
355
  })["catch"](function (err) {
418
356
  var name = kb.any(webIdNode, ns.foaf('name'));
@@ -425,10 +363,8 @@ var GroupBuilder = /*#__PURE__*/function () {
425
363
  key: "setGroupName",
426
364
  value: function setGroupName(name) {
427
365
  var _this8 = this;
428
-
429
366
  var _indexes3 = indexes(this.book),
430
- groupIndex = _indexes3.groupIndex;
431
-
367
+ groupIndex = _indexes3.groupIndex;
432
368
  var updatePromises = [this.group.doc(), groupIndex].map(function (namedGraph) {
433
369
  var oldNameStatements = kb.match(_this8.group, ns.vcard('fn'), null, namedGraph);
434
370
  var newNameStatement = rdf.st(_this8.group, ns.vcard('fn'), rdf.literal(name));
@@ -448,10 +384,7 @@ var GroupBuilder = /*#__PURE__*/function () {
448
384
  }(); // @ignore exporting this only for the unit test
449
385
  // @@ TODO maybe I should move this down at end, but for
450
386
  // now I will leave it where it was
451
-
452
-
453
387
  exports.GroupBuilder = GroupBuilder;
454
-
455
388
  var Person = /*#__PURE__*/function () {
456
389
  function Person(element, webIdNode, handleRemove) {
457
390
  (0, _classCallCheck2["default"])(this, Person);
@@ -459,22 +392,22 @@ var Person = /*#__PURE__*/function () {
459
392
  this.element = element;
460
393
  this.handleRemove = handleRemove;
461
394
  }
462
-
463
395
  (0, _createClass2["default"])(Person, [{
464
396
  key: "render",
465
397
  value: function render() {
466
398
  var _this9 = this;
467
-
468
399
  var container = document.createElement('div');
469
- container.style.display = 'flex'; // TODO: take a look at UI.widgets.setName
400
+ container.style.display = 'flex';
470
401
 
402
+ // TODO: take a look at UI.widgets.setName
471
403
  var imgSrc = getWithDefault(this.webIdNode, ns.foaf('img'), _iconBase.iconBase + 'noun_15059.svg');
472
404
  var profileImg = document.createElement('img');
473
405
  profileImg.src = (0, _escapeHtml["default"])(imgSrc);
474
406
  profileImg.width = '50';
475
407
  profileImg.height = '50';
476
- profileImg.style.margin = '5px'; // TODO: take a look at UI.widgets.setImage
408
+ profileImg.style.margin = '5px';
477
409
 
410
+ // TODO: take a look at UI.widgets.setImage
478
411
  var name = getWithDefault(this.webIdNode, ns.foaf('name'), "[".concat(this.webIdNode, "]"));
479
412
  var nameSpan = document.createElement('span');
480
413
  nameSpan.innerHTML = (0, _escapeHtml["default"])(name);
@@ -498,26 +431,23 @@ var Person = /*#__PURE__*/function () {
498
431
  }]);
499
432
  return Person;
500
433
  }();
501
-
502
434
  exports.Person = Person;
503
-
504
435
  function getWithDefault(subject, predicate, defaultValue) {
505
436
  var object = kb.any(subject, predicate);
506
437
  return object ? object.value : defaultValue;
507
438
  }
508
-
509
439
  function patch(url, _ref3) {
510
440
  var toDel = _ref3.toDel,
511
- toIns = _ref3.toIns;
441
+ toIns = _ref3.toIns;
512
442
  return new Promise(function (resolve, reject) {
513
443
  kb.updater.update(toDel, toIns, function (uri, success, errorMessage) {
514
444
  if (!success) {
515
445
  return reject(new Error("PATCH failed for resource <".concat(uri, ">: ").concat(errorMessage)));
516
446
  }
517
-
518
447
  resolve();
519
448
  });
520
- }); // return webClient.patch(url, toDel, toIns)
449
+ });
450
+ // return webClient.patch(url, toDel, toIns)
521
451
  // .then(solidResponse => {
522
452
  // const status = solidResponse.xhr.status
523
453
  // if (status < 200 || status >= 400) {