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.
- package/dist/main.js +2159 -5039
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.js +4 -67
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +59 -137
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +14 -54
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +32 -107
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +0 -92
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.js +1 -3
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.js +1 -2
- package/lib/acl/styles.js.map +1 -1
- package/lib/chat/bookmarks.js +8 -80
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +109 -180
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +6 -91
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +33 -185
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +37 -150
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +23 -96
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +33 -91
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +19 -51
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.js +0 -2
- package/lib/create/index.js.map +1 -1
- package/lib/debug.js +0 -8
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +4 -27
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.js +2 -24
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.js +3 -72
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.js +4 -3
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.js +3 -4
- package/lib/iconBase.js.map +1 -1
- package/lib/index.js +5 -46
- package/lib/index.js.map +1 -1
- package/lib/jss/index.js +3 -9
- package/lib/jss/index.js.map +1 -1
- package/lib/log.js +15 -51
- package/lib/log.js.map +1 -1
- package/lib/login/login.js +74 -303
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.js +0 -2
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.js +7 -55
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/media/index.js +0 -2
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.js +13 -33
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +23 -64
- package/lib/messageArea.js.map +1 -1
- package/lib/noun_Camera_1618446_000000.js.map +1 -1
- package/lib/ns.js +5 -7
- package/lib/ns.js.map +1 -1
- package/lib/pad.js +48 -234
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +10 -65
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +21 -42
- package/lib/preferences.js.map +1 -1
- package/lib/signup/config-default.js +1 -8
- package/lib/signup/config-default.js.map +1 -1
- package/lib/signup/signup.js +6 -13
- package/lib/signup/signup.js.map +1 -1
- package/lib/stories/decorators.js +0 -2
- package/lib/stories/decorators.js.map +1 -1
- package/lib/style.js +8 -5
- package/lib/style.js.map +1 -1
- package/lib/style_multiSelect.js +1 -5
- package/lib/style_multiSelect.js.map +1 -1
- package/lib/table.js +309 -322
- package/lib/table.js.map +1 -1
- package/lib/tabs.js +20 -100
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.js +4 -52
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +41 -135
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.js +13 -34
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.js +4 -4
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.js +0 -8
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.js +115 -291
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +12 -41
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js +3 -9
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +6 -55
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +12 -131
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +12 -55
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js +1 -15
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.js +3 -16
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +0 -12
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +1 -14
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +70 -474
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -21
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +48 -171
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +20 -90
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.js +2 -9
- package/lib/widgets/widgetHelpers.js.map +1 -1
- 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
|
-
|
|
151
|
-
|
|
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';
|
|
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
|
-
|
|
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"])(
|
|
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() {
|
|
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
|
-
}
|
|
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
|
-
|
|
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';
|
|
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';
|
|
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
|
-
|
|
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
|
-
});
|
|
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) {
|