solid-ui 2.4.22-fd0ccabe → 2.4.23
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/LICENSE.md +0 -0
- package/README.md +0 -0
- package/dist/index.html +0 -0
- package/dist/main.js +8141 -7208
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.d.ts +0 -0
- package/lib/acl/access-controller.d.ts.map +0 -0
- package/lib/acl/access-controller.js +0 -0
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.d.ts +0 -0
- package/lib/acl/access-groups.d.ts.map +0 -0
- package/lib/acl/access-groups.js +0 -0
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.d.ts +0 -0
- package/lib/acl/acl-control.d.ts.map +0 -0
- package/lib/acl/acl-control.js +0 -0
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.d.ts +0 -0
- package/lib/acl/acl.d.ts.map +0 -0
- package/lib/acl/acl.js +0 -0
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.d.ts +0 -0
- package/lib/acl/add-agent-buttons.d.ts.map +0 -0
- package/lib/acl/add-agent-buttons.js +0 -1
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.d.ts +0 -0
- package/lib/acl/index.d.ts.map +0 -0
- package/lib/acl/index.js +0 -0
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.d.ts +0 -0
- package/lib/acl/styles.d.ts.map +0 -0
- package/lib/acl/styles.js +0 -0
- package/lib/acl/styles.js.map +1 -1
- package/lib/acl/types.d.ts +0 -0
- package/lib/acl/types.d.ts.map +0 -0
- package/lib/acl/types.js +0 -0
- package/lib/acl/types.js.map +1 -1
- package/lib/chat/bookmarks.js +2 -4
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +0 -0
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +0 -0
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +0 -0
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +0 -0
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +0 -0
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +0 -0
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.d.ts +0 -0
- package/lib/create/create.d.ts.map +0 -0
- package/lib/create/create.js +0 -0
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.d.ts +0 -0
- package/lib/create/index.d.ts.map +0 -0
- package/lib/create/index.js +0 -0
- package/lib/create/index.js.map +1 -1
- package/lib/create/types.d.ts +0 -0
- package/lib/create/types.d.ts.map +0 -0
- package/lib/create/types.js +0 -0
- package/lib/create/types.js.map +1 -1
- package/lib/debug.d.ts +0 -0
- package/lib/debug.d.ts.map +0 -0
- package/lib/debug.js +0 -0
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +0 -0
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.d.ts +0 -0
- package/lib/footer/index.d.ts.map +0 -0
- package/lib/footer/index.js +0 -0
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.d.ts +0 -0
- package/lib/footer/styleMap.d.ts.map +0 -0
- package/lib/footer/styleMap.js +0 -0
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.d.ts +0 -0
- package/lib/header/empty-profile.d.ts.map +0 -0
- package/lib/header/empty-profile.js +0 -0
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.d.ts +0 -0
- package/lib/header/index.d.ts.map +0 -0
- package/lib/header/index.js +0 -0
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.d.ts +0 -0
- package/lib/header/styleMap.d.ts.map +0 -0
- package/lib/header/styleMap.js +0 -0
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.d.ts +0 -0
- package/lib/iconBase.d.ts.map +0 -0
- package/lib/iconBase.js +3 -2
- package/lib/iconBase.js.map +1 -1
- package/lib/icons/solid_logo.d.ts +0 -0
- package/lib/icons/solid_logo.d.ts.map +0 -0
- package/lib/icons/solid_logo.js +0 -0
- package/lib/icons/solid_logo.js.map +1 -1
- package/lib/index.d.ts +0 -0
- package/lib/index.d.ts.map +0 -0
- package/lib/index.js +0 -0
- package/lib/index.js.map +1 -1
- package/lib/jss/index.d.ts +0 -0
- package/lib/jss/index.d.ts.map +0 -0
- package/lib/jss/index.js +0 -0
- package/lib/jss/index.js.map +1 -1
- package/lib/log.d.ts +0 -0
- package/lib/log.d.ts.map +0 -0
- package/lib/log.js +0 -0
- package/lib/log.js.map +1 -1
- package/lib/login/login.d.ts +9 -8
- package/lib/login/login.d.ts.map +1 -1
- package/lib/login/login.js +298 -344
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.d.ts +0 -0
- package/lib/matrix/index.d.ts.map +0 -0
- package/lib/matrix/index.js +0 -0
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.d.ts +0 -0
- package/lib/matrix/matrix.d.ts.map +0 -0
- package/lib/matrix/matrix.js +0 -0
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/matrix/types.d.ts +0 -0
- package/lib/matrix/types.d.ts.map +0 -0
- package/lib/matrix/types.js +0 -0
- package/lib/matrix/types.js.map +1 -1
- package/lib/media/index.d.ts +0 -0
- package/lib/media/index.d.ts.map +0 -0
- package/lib/media/index.js +0 -0
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.d.ts +0 -0
- package/lib/media/media-capture.d.ts.map +0 -0
- package/lib/media/media-capture.js +0 -0
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +0 -0
- package/lib/messageArea.js.map +1 -1
- package/lib/noun_Camera_1618446_000000.js +0 -0
- package/lib/noun_Camera_1618446_000000.js.map +1 -1
- package/lib/ns.js +0 -0
- package/lib/ns.js.map +1 -1
- package/lib/pad.d.ts +0 -0
- package/lib/pad.d.ts.map +0 -0
- package/lib/pad.js +0 -0
- package/lib/pad.js.map +1 -1
- package/lib/participation.d.ts +0 -0
- package/lib/participation.d.ts.map +0 -0
- package/lib/participation.js +0 -0
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +0 -0
- package/lib/preferences.js.map +1 -1
- package/lib/signup/config-default.js +0 -0
- package/lib/signup/config-default.js.map +1 -1
- package/lib/signup/signup.js +0 -0
- package/lib/signup/signup.js.map +1 -1
- package/lib/stories/decorators.js +0 -0
- package/lib/stories/decorators.js.map +1 -1
- package/lib/style.js +0 -0
- package/lib/style.js.map +1 -1
- package/lib/style_multiSelect.js +67 -0
- package/lib/style_multiSelect.js.map +1 -0
- package/lib/table.js +0 -0
- package/lib/table.js.map +1 -1
- package/lib/tabs.d.ts +1 -1
- package/lib/tabs.d.ts.map +1 -1
- package/lib/tabs.js +38 -22
- package/lib/tabs.js.map +1 -1
- package/lib/typings.d.js +0 -0
- package/lib/typings.d.js.map +1 -1
- package/lib/utils/headerFooterHelpers.d.ts +0 -0
- package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
- package/lib/utils/headerFooterHelpers.js +0 -0
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +0 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.d.ts +0 -0
- package/lib/utils/label.d.ts.map +0 -0
- package/lib/utils/label.js +1 -1
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +9 -9
- package/lib/versionInfo.d.ts.map +0 -0
- package/lib/versionInfo.js +15 -15
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts +0 -0
- package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
- package/lib/widgets/buttons/iconLinks.js +0 -0
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.d.ts +0 -0
- package/lib/widgets/buttons.d.ts.map +0 -0
- package/lib/widgets/buttons.js +0 -0
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +0 -0
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.d.ts +0 -12
- package/lib/widgets/error.d.ts.map +1 -1
- package/lib/widgets/error.js +5 -0
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/language.js +0 -0
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/publicData.js +0 -0
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts +0 -0
- package/lib/widgets/forms/basic.d.ts.map +0 -0
- package/lib/widgets/forms/basic.js +0 -0
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.d.ts +0 -0
- package/lib/widgets/forms/comment.d.ts.map +0 -0
- package/lib/widgets/forms/comment.js +0 -0
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.d.ts +0 -0
- package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
- package/lib/widgets/forms/fieldFunction.js +0 -0
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.d.ts +0 -0
- package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
- package/lib/widgets/forms/fieldParams.js +0 -0
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.d.ts +0 -0
- package/lib/widgets/forms/formStyle.d.ts.map +0 -0
- package/lib/widgets/forms/formStyle.js +0 -0
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +694 -150
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -0
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +784 -0
- package/lib/widgets/multiSelect.js.map +1 -0
- package/lib/widgets/peoplePicker.js +0 -0
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.d.ts +0 -0
- package/lib/widgets/widgetHelpers.d.ts.map +0 -0
- package/lib/widgets/widgetHelpers.js +0 -0
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +51 -47
|
@@ -0,0 +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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"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/widgets/peoplePicker.js"],"names":["kb","solidLogicSingleton","store","PeoplePicker","element","typeIndex","groupPickedCb","options","selectedgroup","onSelectGroup","bind","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","render","changeGroupButton","textContent","addEventListener","_event","appendChild","findAddressBook","then","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","group","GroupBuilder","errorBody","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","ns","solid","vcard","Error","load","_xhr","indexes","groupIndex","groupContainer","rdf","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","debug","log","xhr","responseURL","loadGroups","groups","groupButton","handleClickGroup","each","getWithDefault","value","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","dropContainer","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","escape","doneBuildingButton","webId","namedNode","rdfClass","foaf","holdsStatement","why","toDel","remove","errorMessage","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","updater","update","success","dir"],"mappings":"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","sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport uuid from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../iconBase'\nimport * as ns from '../ns'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (err) {\n return reject(new Error('Could not load address book ' + err))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuid.v4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"file":"peoplePicker.js"}
|
|
1
|
+
{"version":3,"file":"peoplePicker.js","names":["kb","solidLogicSingleton","store","PeoplePicker","element","typeIndex","groupPickedCb","options","selectedgroup","onSelectGroup","bind","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","render","changeGroupButton","textContent","escape","addEventListener","_event","appendChild","findAddressBook","then","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","group","GroupBuilder","errorBody","errorMessageBlock","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","ns","solid","vcard","Error","load","_xhr","indexes","groupIndex","groupContainer","rdf","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","debug","log","xhr","responseURL","loadGroups","groups","groupButton","handleClickGroup","each","getWithDefault","value","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","dropContainer","makeDropTarget","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","doneBuildingButton","webId","namedNode","rdfClass","foaf","holdsStatement","why","toDel","remove","errorMessage","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","updater","update","success","dir"],"sources":["../../src/widgets/peoplePicker.js"],"sourcesContent":["/**\n *\n * People Picker Pane\n *\n * This pane offers a mechanism for selecting a set of individuals, groups, or\n * organizations to take some action on.\n *\n * Assumptions\n * - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption\n *\n */\nimport escape from 'escape-html'\nimport uuid from 'uuid'\nimport * as rdf from 'rdflib'\nimport * as debug from '../debug'\n\nimport { makeDropTarget } from './dragAndDrop'\nimport { errorMessageBlock } from './error'\nimport { iconBase } from '../iconBase'\nimport * as ns from '../ns'\nimport { solidLogicSingleton } from 'solid-logic'\n\nconst kb = solidLogicSingleton.store\n\nexport class PeoplePicker {\n constructor (element, typeIndex, groupPickedCb, options) { // @@ can't expect typeindex to be passed\n this.options = options || {}\n this.element = element\n this.typeIndex = typeIndex\n this.groupPickedCb = groupPickedCb\n this.selectedgroup = this.options.selectedgroup // current selected group if any\n this.onSelectGroup = this.onSelectGroup.bind(this)\n }\n\n render () {\n const container = document.createElement('div')\n container.style.maxWidth = '350px'\n container.style.minHeight = '200px'\n container.style.outline = '1px solid black'\n container.style.display = 'flex'\n\n if (this.selectedgroup) {\n container.style.flexDirection = 'column'\n const selectedGroup = document.createElement('div')\n new Group(selectedGroup, this.selectedgroup).render()\n const changeGroupButton = document.createElement('button')\n changeGroupButton.textContent = escape('Change group')\n changeGroupButton.addEventListener('click', _event => {\n this.selectedgroup = null\n this.render()\n })\n container.appendChild(selectedGroup)\n container.appendChild(changeGroupButton)\n } else {\n this.findAddressBook(this.typeIndex)\n .then(({ book }) => {\n const chooseExistingGroupButton = document.createElement('button')\n chooseExistingGroupButton.textContent = escape(\n 'Pick an existing group'\n )\n chooseExistingGroupButton.style.margin = 'auto'\n chooseExistingGroupButton.addEventListener('click', _event => {\n new GroupPicker(container, book, this.onSelectGroup).render()\n })\n\n const createNewGroupButton = document.createElement('button')\n createNewGroupButton.textContent = escape('Create a new group')\n createNewGroupButton.style.margin = 'auto'\n createNewGroupButton.addEventListener('click', _event => {\n this.createNewGroup(book, this.options.defaultNewGroupName)\n .then(({ group }) => {\n new GroupBuilder(\n this.element,\n book,\n group,\n this.onSelectGroup\n ).render()\n })\n .catch(errorBody => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Error creating a new group. (${errorBody})`)\n )\n )\n })\n })\n\n container.appendChild(chooseExistingGroupButton)\n container.appendChild(createNewGroupButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could find your groups. (${err})`)\n )\n )\n })\n }\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n\n findAddressBook (typeIndex) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(typeIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const bookRegistration = kb.any(\n null,\n ns.solid('forClass'),\n ns.vcard('AddressBook')\n )\n if (!bookRegistration) {\n return reject(\n new Error(\n 'no address book registered in the solid type index ' + typeIndex\n )\n )\n }\n const book = kb.any(bookRegistration, ns.solid('instance'))\n if (!book) {\n return reject(new Error('incomplete address book registration'))\n }\n kb.fetcher\n .load(book)\n .then(function (_xhr) {\n return resolve({ book })\n })\n .catch(function (err) {\n return reject(new Error('Could not load address book ' + err))\n })\n })\n })\n }\n\n createNewGroup (book, defaultNewGroupName) {\n const { groupIndex, groupContainer } = indexes(book)\n const group = rdf.sym(\n `${groupContainer.uri}${uuid.v4().slice(0, 8)}.ttl#this`\n )\n const name = defaultNewGroupName || 'Untitled Group'\n\n // NOTE that order matters here. Unfortunately this type of update is\n // non-atomic in that solid requires us to send two PATCHes, either of which\n // might fail.\n const patchPromises = [group.doc(), groupIndex].map(doc => {\n const typeStatement = rdf.st(group, ns.rdf('type'), ns.vcard('Group'), doc)\n const nameStatement = rdf.st(group, ns.vcard('fn'), name, group.doc(), doc)\n const includesGroupStatement = rdf.st(\n book,\n ns.vcard('includesGroup'),\n group,\n doc\n )\n const toIns = doc.equals(groupIndex)\n ? [typeStatement, nameStatement, includesGroupStatement]\n : [typeStatement, nameStatement]\n return patch(doc.uri, { toIns }).then(() => {\n toIns.forEach(st => {\n kb.add(st)\n })\n })\n })\n return Promise.all(patchPromises)\n .then(() => ({ group }))\n .catch(err => {\n debug.log('Could not create new group. PATCH failed ' + err)\n throw new Error(\n `Couldn't create new group. PATCH failed for (${\n err.xhr ? err.xhr.responseURL : ''\n } )`\n )\n })\n }\n\n onSelectGroup (group) {\n this.selectedgroup = group\n this.groupPickedCb(group)\n this.render()\n }\n}\n\nexport class GroupPicker {\n constructor (element, book, onSelectGroup) {\n this.element = element\n this.book = book\n this.onSelectGroup = onSelectGroup\n }\n\n render () {\n this.loadGroups()\n .then(groups => {\n // render the groups\n const container = document.createElement('div')\n container.style.display = 'flex'\n container.style.flexDirection = 'column'\n groups.forEach(group => {\n const groupButton = document.createElement('button')\n groupButton.addEventListener('click', this.handleClickGroup(group))\n new Group(groupButton, group).render()\n container.appendChild(groupButton)\n })\n this.element.innerHTML = ''\n this.element.appendChild(container)\n })\n .catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`There was an error loading your groups. (${err})`)\n )\n )\n })\n return this\n }\n\n loadGroups () {\n return new Promise((resolve, reject) => {\n const { groupIndex } = indexes(this.book)\n kb.fetcher.nowOrWhenFetched(groupIndex, (ok, err) => {\n if (!ok) {\n return reject(err)\n }\n const groups = kb.each(this.book, ns.vcard('includesGroup'))\n return resolve(groups)\n })\n })\n }\n\n handleClickGroup (group) {\n return _event => {\n this.onSelectGroup(group)\n }\n }\n}\n\nexport class Group {\n constructor (element, group) {\n this.element = element\n this.group = group\n }\n\n render () {\n const container = document.createElement('div')\n container.textContent = escape(\n // @@@@@ need to escape??\n getWithDefault(this.group, ns.vcard('fn'), `[${this.group.value}]`)\n )\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nexport class GroupBuilder {\n constructor (element, book, group, doneBuildingCb, groupChangedCb) {\n this.element = element\n this.book = book\n this.group = group\n this.onGroupChanged = (err, changeType, agent) => {\n if (groupChangedCb) {\n groupChangedCb(err, changeType, agent)\n }\n }\n this.groupChangedCb = groupChangedCb\n this.doneBuildingCb = doneBuildingCb\n }\n\n refresh () {\n // TODO: implement\n }\n\n render () {\n const dropContainer = document.createElement('div')\n dropContainer.style.maxWidth = '350px'\n dropContainer.style.minHeight = '200px'\n dropContainer.style.outline = '1px solid black'\n dropContainer.style.display = 'flex'\n dropContainer.style.flexDirection = 'column'\n\n makeDropTarget(dropContainer, uris => {\n uris.forEach(uri => {\n this.add(uri).catch(err => {\n this.element.appendChild(\n errorMessageBlock(\n document,\n escape(`Could not add the given WebId. (${err})`)\n )\n )\n })\n })\n })\n\n const groupNameInput = document.createElement('input')\n groupNameInput.type = 'text'\n groupNameInput.value = getWithDefault(\n this.group,\n ns.vcard('fn'),\n 'Untitled Group'\n )\n groupNameInput.addEventListener('change', event => {\n this.setGroupName(event.target.value).catch(err => {\n this.element.appendChild(\n errorMessageBlock(document, `Error changing group name. (${err})`)\n )\n })\n })\n const groupNameLabel = document.createElement('label')\n groupNameLabel.textContent = escape('Group Name:')\n groupNameLabel.appendChild(groupNameInput)\n dropContainer.appendChild(groupNameLabel)\n\n if (kb.any(this.group, ns.vcard('hasMember'))) {\n kb.match(this.group, ns.vcard('hasMember')).forEach(statement => {\n const webIdNode = statement.object\n const personDiv = document.createElement('div')\n new Person(personDiv, webIdNode, this.handleRemove(webIdNode)).render()\n dropContainer.appendChild(personDiv)\n })\n } else {\n const copy = document.createElement('p')\n copy.textContent = escape`\n To add someone to this group, drag and drop their WebID URL onto the box.\n `\n dropContainer.appendChild(copy)\n }\n\n const doneBuildingButton = document.createElement('button')\n doneBuildingButton.textContent = escape('Done')\n doneBuildingButton.addEventListener('click', _event => {\n this.doneBuildingCb(this.group)\n })\n dropContainer.appendChild(doneBuildingButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(dropContainer)\n return this\n }\n\n add (webId) {\n return new Promise((resolve, reject) => {\n kb.fetcher.nowOrWhenFetched(webId, (ok, err) => {\n if (!ok) {\n this.onGroupChanged(err)\n return reject(err)\n }\n // make sure it's a valid person, group, or entity (for now just handle\n // webId)\n const webIdNode = rdf.namedNode(webId)\n const rdfClass = kb.any(webIdNode, ns.rdf('type'))\n if (!rdfClass || !rdfClass.equals(ns.foaf('Person'))) {\n return reject(\n new Error(\n `Only people supported right now. (tried to add something of type ${rdfClass.value})`\n )\n )\n }\n return resolve(webIdNode)\n })\n }).then(webIdNode => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n if (kb.holdsStatement(statement)) {\n return webIdNode\n }\n return patch(this.group.doc().uri, { toIns: [statement] }).then(() => {\n statement.why = this.group.doc()\n kb.add(statement)\n this.onGroupChanged(null, 'added', webIdNode)\n this.render()\n })\n })\n }\n\n handleRemove (webIdNode) {\n return _event => {\n const statement = rdf.st(this.group, ns.vcard('hasMember'), webIdNode)\n return patch(this.group.doc().uri, { toDel: [statement] })\n .then(() => {\n kb.remove(statement)\n this.onGroupChanged(null, 'removed', webIdNode)\n this.render()\n return true\n })\n .catch(err => {\n const name = kb.any(webIdNode, ns.foaf('name'))\n const errorMessage =\n name && name.value\n ? `Could not remove ${name.value}. (${err})`\n : `Could not remove ${webIdNode.value}. (${err})`\n throw new Error(errorMessage)\n })\n }\n }\n\n setGroupName (name) {\n const { groupIndex } = indexes(this.book)\n const updatePromises = [this.group.doc(), groupIndex].map(namedGraph => {\n const oldNameStatements = kb.match(\n this.group,\n ns.vcard('fn'),\n null,\n namedGraph\n )\n const newNameStatement = rdf.st(\n this.group,\n ns.vcard('fn'),\n rdf.literal(name)\n )\n return patch(namedGraph.value, {\n toDel: oldNameStatements,\n toIns: [newNameStatement]\n }).then(_solidResponse => {\n kb.removeStatements(oldNameStatements)\n newNameStatement.why = namedGraph\n kb.add(newNameStatement)\n })\n })\n return Promise.all(updatePromises)\n }\n}\n// @ignore exporting this only for the unit test\n// @@ TODO maybe I should move this down at end, but for\n// now I will leave it where it was\nexport class Person {\n constructor (element, webIdNode, handleRemove) {\n this.webIdNode = webIdNode\n this.element = element\n this.handleRemove = handleRemove\n }\n\n render () {\n const container = document.createElement('div')\n container.style.display = 'flex'\n\n // TODO: take a look at UI.widgets.setName\n const imgSrc = getWithDefault(\n this.webIdNode,\n ns.foaf('img'),\n iconBase + 'noun_15059.svg'\n )\n const profileImg = document.createElement('img')\n profileImg.src = escape(imgSrc)\n profileImg.width = '50'\n profileImg.height = '50'\n profileImg.style.margin = '5px'\n\n // TODO: take a look at UI.widgets.setImage\n const name = getWithDefault(\n this.webIdNode,\n ns.foaf('name'),\n `[${this.webIdNode}]`\n )\n const nameSpan = document.createElement('span')\n nameSpan.innerHTML = escape(name)\n nameSpan.style.flexGrow = '1'\n nameSpan.style.margin = 'auto 0'\n\n const removeButton = document.createElement('button')\n removeButton.textContent = 'Remove'\n removeButton.addEventListener('click', _event =>\n this.handleRemove().catch(err => {\n this.element.appendChild(errorMessageBlock(document, escape(`${err}`)))\n })\n )\n removeButton.style.margin = '5px'\n\n container.appendChild(profileImg)\n container.appendChild(nameSpan)\n container.appendChild(removeButton)\n\n this.element.innerHTML = ''\n this.element.appendChild(container)\n return this\n }\n}\n\nfunction getWithDefault (subject, predicate, defaultValue) {\n const object = kb.any(subject, predicate)\n return object ? object.value : defaultValue\n}\n\nfunction patch (url, { toDel, toIns }) {\n return new Promise((resolve, reject) => {\n kb.updater.update(toDel, toIns, (uri, success, errorMessage) => {\n if (!success) {\n return reject(\n new Error(`PATCH failed for resource <${uri}>: ${errorMessage}`)\n )\n }\n resolve()\n })\n })\n // return webClient.patch(url, toDel, toIns)\n // .then(solidResponse => {\n // const status = solidResponse.xhr.status\n // if (status < 200 || status >= 400) {\n // const err = new Error(`PATCH failed for resource <${solidResponse.url}>`)\n // err.solidResponse = solidResponse\n // throw err\n // }\n // })\n}\n\nfunction indexes (book) {\n return {\n // bookIndex: book,\n groupIndex: kb.any(book, ns.vcard('groupIndex')),\n groupContainer: kb.sym(book.dir().uri + 'Group/')\n }\n}\n"],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"widgetHelpers.js","names":["wrapDivInATR","dom","div","obj","tr","createElement","td","appendChild","subject","addClickListenerToElement","onClickFunction","addEventListener","createImageDiv","image","imageDiv","setAttribute","imageDivStyle"],"sources":["../../src/widgets/widgetHelpers.ts"],"sourcesContent":["import {\n imageDivStyle\n} from '../style'\n\n/**\n * Wraps a Div in a TR/RD\n *\n * Takes a div and wraps it in a TR/TD to be backwards compatible to the\n * table structure of mashlib\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param div the created widget will be appended to this\n * @param obj not sure what this is used for exactly\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const wrapDivInATR = (dom: HTMLDocument, div: HTMLDivElement, obj: any) => {\n const tr = dom.createElement('tr')\n const td = tr.appendChild(dom.createElement('td'))\n td.appendChild(div)\n ;(tr as any).subject = obj\n return tr\n}\n\n/**\n * Adds a click listener to a div\n *\n * Adds a given function as a click listener on the given div\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param onClickFunction the click function to add to the click listener\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const addClickListenerToElement = (div: HTMLDivElement, onClickFunction: () => void) => {\n div.addEventListener('click', onClickFunction)\n}\n\n/**\n * Wraps a Div in a TR/RD\n *\n * Takes a div and wraps it in a TR/TD to be backwards compatible to the\n * table structure of mashlib\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param div the created widget will be appended to this\n * @param obj not sure what this is used for exactly\n *\n * @returns The HTML widget created\n *\n * @internal exporting this only for unit tests\n */\n// eslint-disable-next-line complexity\nexport const createImageDiv = (dom: HTMLDocument, div: HTMLDivElement, image: HTMLImageElement | HTMLObjectElement) => {\n const imageDiv = div.appendChild(dom.createElement('div'))\n\n imageDiv.setAttribute('style', imageDivStyle)\n imageDiv.appendChild(image)\n image.setAttribute('draggable', 'false') // Stop the image being dragged instead - just the TR\n}\n"],"mappings":";;;;;;;AAAA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,GAAD,EAAoBC,GAApB,EAAyCC,GAAzC,EAAsD;EAChF,IAAMC,EAAE,GAAGH,GAAG,CAACI,aAAJ,CAAkB,IAAlB,CAAX;EACA,IAAMC,EAAE,GAAGF,EAAE,CAACG,WAAH,CAAeN,GAAG,CAACI,aAAJ,CAAkB,IAAlB,CAAf,CAAX;EACAC,EAAE,CAACC,WAAH,CAAeL,GAAf;EACEE,EAAD,CAAYI,OAAZ,GAAsBL,GAAtB;EACD,OAAOC,EAAP;AACD,CANM;AAQP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAMK,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACP,GAAD,EAAsBQ,eAAtB,EAAsD;EAC7FR,GAAG,CAACS,gBAAJ,CAAqB,OAArB,EAA8BD,eAA9B;AACD,CAFM;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACX,GAAD,EAAoBC,GAApB,EAAyCW,KAAzC,EAAyF;EACrH,IAAMC,QAAQ,GAAGZ,GAAG,CAACK,WAAJ,CAAgBN,GAAG,CAACI,aAAJ,CAAkB,KAAlB,CAAhB,CAAjB;EAEAS,QAAQ,CAACC,YAAT,CAAsB,OAAtB,EAA+BC,oBAA/B;EACAF,QAAQ,CAACP,WAAT,CAAqBM,KAArB;EACAA,KAAK,CAACE,YAAN,CAAmB,WAAnB,EAAgC,OAAhC,EALqH,CAK5E;AAC1C,CANM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solid-ui",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.23",
|
|
4
4
|
"description": "UI library for writing Solid read-write-web applications",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"clean": "rm -rf lib dist ./Documentation/form-examples/main.js",
|
|
20
20
|
"coverage": "jest --coverage --collectCoverageFrom=src/**/*.[jt]s",
|
|
21
21
|
"lint": "eslint \"src/**/*.js\" \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
22
|
-
"lint-fix": "eslint \"src/**/*.js\" \"src/**/*.ts\" --fix",
|
|
22
|
+
"lint-fix": "eslint \"src/**/*.js\" \"src/**/*.ts\" \"test/**/*.ts\" --fix",
|
|
23
23
|
"jest": "jest",
|
|
24
24
|
"test:debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --runInBand --watch",
|
|
25
25
|
"test": "npm run build-version && npm run lint && npm run jest",
|
|
26
26
|
"doc": "typedoc --out ./Documentation/api/ ./src/ --excludeInternal",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
27
|
+
"prepublishOnly": "npm test && npm run build",
|
|
28
|
+
"postpublish": "git push origin main --follow-tags",
|
|
29
29
|
"storybook": "start-storybook -p 6006",
|
|
30
30
|
"build-storybook": "build-storybook --output-dir ./examples/storybook"
|
|
31
31
|
},
|
|
@@ -55,63 +55,67 @@
|
|
|
55
55
|
"homepage": "https://github.com/solidos/solid-ui",
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"escape-html": "^1.0.3",
|
|
58
|
-
"
|
|
59
|
-
"
|
|
58
|
+
"eslint-plugin-n": "^15.2.5",
|
|
59
|
+
"i": "^0.3.7",
|
|
60
|
+
"jss": "^10.9.2",
|
|
61
|
+
"jss-preset-default": "^10.9.2",
|
|
60
62
|
"mime-types": "^2.1.35",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
63
|
+
"npm": "^8.18.0",
|
|
64
|
+
"pane-registry": "^2.4.12",
|
|
65
|
+
"rdflib": "^2.2.20",
|
|
66
|
+
"solid-logic": "^2.0.0",
|
|
64
67
|
"solid-namespace": "^0.5.2",
|
|
65
68
|
"uuid": "^8.3.2"
|
|
66
69
|
},
|
|
67
70
|
"devDependencies": {
|
|
68
|
-
"@babel/cli": "^7.
|
|
69
|
-
"@babel/core": "^7.
|
|
70
|
-
"@babel/plugin-proposal-class-properties": "^7.
|
|
71
|
-
"@babel/plugin-proposal-optional-chaining": "^7.
|
|
72
|
-
"@babel/plugin-transform-async-to-generator": "^7.
|
|
73
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
74
|
-
"@babel/preset-env": "^7.
|
|
75
|
-
"@babel/preset-typescript": "^7.
|
|
76
|
-
"@babel/runtime": "^7.
|
|
77
|
-
"@mdx-js/react": "^2.1.
|
|
78
|
-
"@storybook/addon-
|
|
79
|
-
"@storybook/addon-
|
|
80
|
-
"@storybook/addon-
|
|
81
|
-
"@storybook/
|
|
82
|
-
"@storybook/
|
|
83
|
-
"@storybook/
|
|
84
|
-
"@
|
|
71
|
+
"@babel/cli": "^7.18.10",
|
|
72
|
+
"@babel/core": "^7.18.13",
|
|
73
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
74
|
+
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
|
75
|
+
"@babel/plugin-transform-async-to-generator": "^7.18.6",
|
|
76
|
+
"@babel/plugin-transform-runtime": "^7.18.10",
|
|
77
|
+
"@babel/preset-env": "^7.18.10",
|
|
78
|
+
"@babel/preset-typescript": "^7.18.6",
|
|
79
|
+
"@babel/runtime": "^7.18.9",
|
|
80
|
+
"@mdx-js/react": "^2.1.3",
|
|
81
|
+
"@storybook/addon-actions": "6.5.10",
|
|
82
|
+
"@storybook/addon-docs": "6.5.10",
|
|
83
|
+
"@storybook/addon-essentials": "6.5.10",
|
|
84
|
+
"@storybook/addon-links": "^6.5.10",
|
|
85
|
+
"@storybook/builder-webpack5": "^6.5.10",
|
|
86
|
+
"@storybook/html": "^6.5.10",
|
|
87
|
+
"@storybook/manager-webpack5": "^6.5.10",
|
|
88
|
+
"@testing-library/dom": "^8.17.1",
|
|
85
89
|
"@testing-library/user-event": "^13.5.0",
|
|
86
|
-
"@types/jest": "^27.
|
|
87
|
-
"@types/jsdom": "^16.2.
|
|
88
|
-
"@types/node": "^17.0.
|
|
89
|
-
"@types/react": "^17.0.
|
|
90
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
91
|
-
"@typescript-eslint/parser": "^5.
|
|
92
|
-
"babel-loader": "^8.2.
|
|
93
|
-
"eslint": "^8.
|
|
94
|
-
"eslint-config-standard": "^17.0.0
|
|
95
|
-
"eslint-import-resolver-typescript": "^2.7.
|
|
96
|
-
"eslint-plugin-import": "^2.
|
|
97
|
-
"eslint-plugin-jest": "^26.
|
|
98
|
-
"eslint-plugin-n": "^15.1.0",
|
|
90
|
+
"@types/jest": "^27.5.2",
|
|
91
|
+
"@types/jsdom": "^16.2.15",
|
|
92
|
+
"@types/node": "^17.0.45",
|
|
93
|
+
"@types/react": "^17.0.48",
|
|
94
|
+
"@typescript-eslint/eslint-plugin": "^5.35.1",
|
|
95
|
+
"@typescript-eslint/parser": "^5.35.1",
|
|
96
|
+
"babel-loader": "^8.2.5",
|
|
97
|
+
"eslint": "^8.23.0",
|
|
98
|
+
"eslint-config-standard": "^17.0.0",
|
|
99
|
+
"eslint-import-resolver-typescript": "^2.7.1",
|
|
100
|
+
"eslint-plugin-import": "^2.26.0",
|
|
101
|
+
"eslint-plugin-jest": "^26.9.0",
|
|
99
102
|
"eslint-plugin-node": "^11.1.0",
|
|
100
|
-
"eslint-plugin-promise": "^6.0.
|
|
103
|
+
"eslint-plugin-promise": "^6.0.1",
|
|
101
104
|
"html-webpack-plugin": "^5.5.0",
|
|
102
105
|
"husky": "^7.0.4",
|
|
103
106
|
"jest": "^27.5.1",
|
|
104
107
|
"jsdom": "^19.0.0",
|
|
105
|
-
"lint-staged": "^12.
|
|
106
|
-
"nock": "^13.2.
|
|
108
|
+
"lint-staged": "^12.5.0",
|
|
109
|
+
"nock": "^13.2.9",
|
|
107
110
|
"react": "^17.0.2",
|
|
108
111
|
"react-dom": "^17.0.2",
|
|
109
112
|
"react-is": "^17.0.2",
|
|
110
|
-
"ts
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"webpack
|
|
113
|
+
"test-usehooks-ts": "^3.0.0-beta",
|
|
114
|
+
"ts-jest": "^27.1.5",
|
|
115
|
+
"typedoc": "^0.23.11",
|
|
116
|
+
"typescript": "^4.8.2",
|
|
117
|
+
"webpack": "^5.74.0",
|
|
118
|
+
"webpack-cli": "^4.10.0"
|
|
115
119
|
},
|
|
116
120
|
"husky": {
|
|
117
121
|
"hooks": {
|