solid-ui 2.5.1 → 2.6.0
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/README.md +4 -0
- package/dist/841.solid-ui.min.js +1 -1
- package/dist/841.solid-ui.min.js.map +1 -1
- package/dist/_2b19.solid-ui.js.map +1 -1
- package/dist/solid-ui.js +42754 -45728
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.LICENSE.txt +1 -5
- package/dist/solid-ui.min.js.map +1 -1
- package/lib/acl/access-controller.js +48 -49
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +40 -40
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +18 -19
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +4 -5
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +51 -52
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/chat/bookmarks.js +76 -77
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +74 -75
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +66 -67
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +218 -220
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/keys.js +62 -63
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +98 -100
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +99 -100
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/signature.d.ts.map +1 -1
- package/lib/chat/signature.js +0 -1
- package/lib/chat/signature.js.map +1 -1
- package/lib/chat/thread.js +57 -61
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +1 -2
- package/lib/create/create.js.map +1 -1
- package/lib/folders.js +1 -4
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.d.ts.map +1 -1
- package/lib/footer/index.js +14 -16
- package/lib/footer/index.js.map +1 -1
- package/lib/header/index.js +34 -36
- package/lib/header/index.js.map +1 -1
- package/lib/iconBase.d.ts.map +1 -1
- package/lib/iconBase.js +0 -1
- package/lib/iconBase.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/log.d.ts +7 -7
- package/lib/log.d.ts.map +1 -1
- package/lib/log.js +2 -2
- package/lib/log.js.map +1 -1
- package/lib/login/login.js +217 -222
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/matrix.js +1 -2
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/matrix/types.js.map +1 -1
- package/lib/media/media-capture.js +3 -4
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +1 -4
- package/lib/messageArea.js.map +1 -1
- package/lib/ns.js +1 -2
- package/lib/ns.js.map +1 -1
- package/lib/pad.js +1 -2
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +1 -2
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +1 -2
- package/lib/preferences.js.map +1 -1
- package/lib/table.js +1 -2
- package/lib/table.js.map +1 -1
- package/lib/tabs.d.ts.map +1 -1
- package/lib/tabs.js +1 -2
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
- package/lib/utils/headerFooterHelpers.js +36 -36
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +1 -2
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
- package/lib/utils/keyHelpers/accessData.js +33 -34
- package/lib/utils/keyHelpers/accessData.js.map +1 -1
- package/lib/utils/keyHelpers/acl.d.ts.map +1 -1
- package/lib/utils/keyHelpers/acl.js +21 -22
- package/lib/utils/keyHelpers/acl.js.map +1 -1
- package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
- package/lib/utils/keyHelpers/otherHelpers.js +1 -2
- package/lib/utils/keyHelpers/otherHelpers.js.map +1 -1
- package/lib/utils/label.js +1 -2
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +4 -3
- package/lib/versionInfo.d.ts.map +1 -1
- package/lib/versionInfo.js +30 -30
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts.map +1 -1
- package/lib/widgets/buttons/iconLinks.js +2 -2
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.d.ts +1 -1
- package/lib/widgets/buttons.d.ts.map +1 -1
- package/lib/widgets/buttons.js +1 -3
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +1 -2
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js +1 -2
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +47 -48
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +38 -39
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +44 -45
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +23 -24
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +91 -93
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +2 -3
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js +1 -2
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +1 -2
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +1 -2
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +79 -80
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +1 -2
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +1 -2
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +1 -2
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.d.ts.map +1 -1
- package/lib/widgets/widgetHelpers.js +3 -3
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +57 -57
package/lib/widgets/index.js
CHANGED
|
@@ -106,6 +106,5 @@ Object.keys(_autocompletePicker).forEach(function (key) {
|
|
|
106
106
|
});
|
|
107
107
|
var _publicData = _interopRequireWildcard(require("./forms/autocomplete/publicData"));
|
|
108
108
|
exports.publicData = _publicData;
|
|
109
|
-
function
|
|
110
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
109
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
111
110
|
//# sourceMappingURL=index.js.map
|
package/lib/widgets/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_peoplePicker","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_dragAndDrop","_buttons","_iconLinks","_error","_forms","_autocompleteBar","_autocompletePicker","_publicData","_interopRequireWildcard","publicData","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_peoplePicker","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_dragAndDrop","_buttons","_iconLinks","_error","_forms","_autocompleteBar","_autocompletePicker","_publicData","_interopRequireWildcard","publicData","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","set","_t","getOwnPropertyDescriptor"],"sources":["../../src/widgets/index.js"],"sourcesContent":["/**\n * General purpose utility functions used in the panes\n * oshani@csail.mit.edu\n *\n * Includes form-oriented widgets timbl@w3.org\n *\n * sign-in sign-up widgets are in signin.js\n *\n * Note... For pointers to posssible text-editing code, see\n * http://stackoverflow.com/questions/6756407/what-contenteditable-editors\n */\n\n// Each widget should ideally live in its own file. In order to break up this\n// monolithic widget index over time, we should add new widgets to the\n// 'lib/widgets/' directory, and re-export them by merging the module namespaces:\n//\n// (In order to avoid name collisions, it is safely assumed that modules don't\n// export widgets with the same name)\n\nexport * from './peoplePicker'\nexport * from './dragAndDrop'\nexport * from './buttons'\nexport * from './buttons/iconLinks'\nexport * from './error'\nexport * from './forms'\n\nexport * from './forms/autocomplete/autocompleteBar'\nexport * from './forms/autocomplete/autocompletePicker'\n\nexport * as publicData from './forms/autocomplete/publicData'\n\n/*\nimport * as peoplePicker from './peoplePicker'\nimport * as dragAndDrop from './dragAndDrop'\nimport * as buttons from './buttons'\nimport * as error from './error'\nimport { forms } from './forms'\n\nconst widgets = Object.assign(\n {},\n buttons,\n peoplePicker,\n dragAndDrop,\n error,\n forms\n)\n\n// export default widgets .. Policy is not to use exports default\nmodule.export = widgets // @@ Apparently no way to do this (yet?) in esm\nconsole.log('widgets exported:', widgets)\n*/\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,8 +11,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
var style = _interopRequireWildcard(require("../style_multiSelect"));
|
|
14
|
-
function
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
15
|
/*
|
|
17
16
|
* IconicMultiSelect v0.7.0
|
|
18
17
|
* Licence: MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiSelect.js","names":["style","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","IconicMultiSelect","exports","_ref","data","itemTemplate","noData","noResults","placeholder","select","container","tagTemplate","textField","valueField","_classCallCheck2","_defineProperty2","_data","_itemTemplate","_noData","_noResults","_placeholder","_select","_selectContainer","_tagTemplate","_textField","_valueField","_createClass2","key","value","init","nodeName","length","Error","_options","_getDataFromSettings","_getDataFromSelectTag","_renderMultiselect","_renderOptionsList","_domElements","clear","_multiselect","querySelector","input","optionsContainer","optionsContainerList","options","list","querySelectorAll","find","callbackFn","node","undefined","some","_enableEventListenners","_initSelectedList","concat","subscribe","callback","_event","_addOptionToList","option","index","_this","html","multiselect__selected","_processTemplate","text","multiselect__remove_btn","_cross","insertAdjacentHTML","_this$_multiselect$qu","removeBtn","lastElementChild","addEventListener","target","el","dataset","_handleOption","_clearSelection","_this2","_loop","_selectedOptions","classList","remove","setAttribute","multiselect__options","_removeOptionFromList","_handleClearSelectionBtn","_handlePlaceholder","_dispatchEvent","action","selection","_closeList","_filterOptions","_removeAllArrowSelected","event","_this3","document","_ref2","contains","_ref3","add","multiselect__options_visible","_ref4","_handleArrows","_handleBackspace","_handleEnter","_this4","isOpen","valueLowerCase","toLowerCase","textContent","substring","appendChild","parentNode","removeChild","hasResults","_showNoResults","_generateId","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","children","_scrollIntoView","lastSelectedOption","targetLastSelectedOption","display","dispatchEvent","arguments","splice","multiselect__options_selected","_toConsumableArray2","_this5","hasItemsSelected","_loop2","template","processedTemplate","objAttr","match","map","replace","_this$_data$index$att","attr","className","optionDom","_this6","multiselect__options_ul","join","_showNoData","id","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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"multiSelect.js","names":["style","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","IconicMultiSelect","exports","_ref","data","itemTemplate","noData","noResults","placeholder","select","container","tagTemplate","textField","valueField","_classCallCheck2","_defineProperty2","_data","_itemTemplate","_noData","_noResults","_placeholder","_select","_selectContainer","_tagTemplate","_textField","_valueField","_createClass2","key","value","init","nodeName","length","Error","_options","_getDataFromSettings","_getDataFromSelectTag","_renderMultiselect","_renderOptionsList","_domElements","clear","_multiselect","querySelector","input","optionsContainer","optionsContainerList","options","list","querySelectorAll","find","callbackFn","node","undefined","some","_enableEventListenners","_initSelectedList","concat","subscribe","callback","_event","_addOptionToList","option","index","_this","html","multiselect__selected","_processTemplate","text","multiselect__remove_btn","_cross","insertAdjacentHTML","_this$_multiselect$qu","removeBtn","lastElementChild","addEventListener","target","el","dataset","_handleOption","_clearSelection","_this2","_loop","_selectedOptions","classList","remove","setAttribute","multiselect__options","_removeOptionFromList","_handleClearSelectionBtn","_handlePlaceholder","_dispatchEvent","action","selection","_closeList","_filterOptions","_removeAllArrowSelected","event","_this3","document","_ref2","contains","_ref3","add","multiselect__options_visible","_ref4","_handleArrows","_handleBackspace","_handleEnter","_this4","isOpen","valueLowerCase","toLowerCase","textContent","substring","appendChild","parentNode","removeChild","hasResults","_showNoResults","_generateId","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","children","_scrollIntoView","lastSelectedOption","targetLastSelectedOption","display","dispatchEvent","arguments","splice","multiselect__options_selected","_toConsumableArray2","_this5","hasItemsSelected","_loop2","template","processedTemplate","objAttr","match","map","replace","_this$_data$index$att","attr","className","optionDom","_this6","multiselect__options_ul","join","_showNoData","id","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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","ignoreList":[]}
|
|
@@ -30,8 +30,7 @@ var _templateObject;
|
|
|
30
30
|
* - Assumes that the user has a type index entry for vcard:AddressBook. @@ bad assuption
|
|
31
31
|
*
|
|
32
32
|
*/
|
|
33
|
-
function
|
|
34
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
33
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
35
34
|
var kb = _solidLogic.solidLogicSingleton.store;
|
|
36
35
|
var PeoplePicker = exports.PeoplePicker = /*#__PURE__*/function () {
|
|
37
36
|
function PeoplePicker(element, typeIndex, groupPickedCb, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peoplePicker.js","names":["_escapeHtml","_interopRequireDefault","require","_uuid","rdf","_interopRequireWildcard","debug","_dragAndDrop","_error","_iconBase","ns","_solidLogic","_templateObject","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","kb","solidLogicSingleton","store","PeoplePicker","exports","element","typeIndex","groupPickedCb","options","_classCallCheck2","selectedgroup","onSelectGroup","bind","_createClass2","key","value","render","_this","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","changeGroupButton","textContent","escape","addEventListener","_event","appendChild","findAddressBook","then","_ref","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","_ref2","group","GroupBuilder","errorBody","errorMessageBlock","concat","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","solid","vcard","Error","load","_xhr","_indexes","indexes","groupIndex","groupContainer","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","log","xhr","responseURL","_this2","loadGroups","groups","groupButton","handleClickGroup","_this3","_indexes2","each","_this4","getWithDefault","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","refresh","_this5","dropContainer","makeDropTarget","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","_taggedTemplateLiteral2","doneBuildingButton","webId","_this6","namedNode","rdfClass","foaf","holdsStatement","why","_this7","toDel","remove","errorMessage","_this8","_indexes3","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","_this9","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","_ref3","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":";;;;;;;;;;;AAWA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,GAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAD,uBAAA,CAAAH,OAAA;AAEA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,EAAA,GAAAL,uBAAA,CAAAH,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAAiD,IAAAU,eAAA;AApBjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAsBA,IAAMW,EAAE,GAAGC,+BAAmB,CAACC,KAAK;AAAA,IAEvBC,YAAY,GAAAC,OAAA,CAAAD,YAAA;EACvB,SAAAA,aAAaE,OAAO,EAAEC,SAAS,EAAEC,aAAa,EAAEC,OAAO,EAAE;IAAA,IAAAC,gBAAA,mBAAAN,YAAA;IAAE;IACzD,IAAI,CAACK,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;IAC5B,IAAI,CAACH,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACG,aAAa,GAAG,IAAI,CAACF,OAAO,CAACE,aAAa,EAAC;IAChD,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC;EACpD;EAAC,WAAAC,aAAA,aAAAV,YAAA;IAAAW,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MAAA,IAAAC,KAAA;MACR,IAAMC,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAC/CF,SAAS,CAACG,KAAK,CAACC,QAAQ,GAAG,OAAO;MAClCJ,SAAS,CAACG,KAAK,CAACE,SAAS,GAAG,OAAO;MACnCL,SAAS,CAACG,KAAK,CAACG,OAAO,GAAG,iBAAiB;MAC3CN,SAAS,CAACG,KAAK,CAACI,OAAO,GAAG,MAAM;MAEhC,IAAI,IAAI,CAACf,aAAa,EAAE;QACtBQ,SAAS,CAACG,KAAK,CAACK,aAAa,GAAG,QAAQ;QACxC,IAAMC,aAAa,GAAGR,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;QACnD,IAAIQ,KAAK,CAACD,aAAa,EAAE,IAAI,CAACjB,aAAa,CAAC,CAACM,MAAM,CAAC,CAAC;QACrD,IAAMa,iBAAiB,GAAGV,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;QAC1DS,iBAAiB,CAACC,WAAW,GAAG,IAAAC,sBAAM,EAAC,cAAc,CAAC;QACtDF,iBAAiB,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;UACpDhB,KAAI,CAACP,aAAa,GAAG,IAAI;UACzBO,KAAI,CAACD,MAAM,CAAC,CAAC;QACf,CAAC,CAAC;QACFE,SAAS,CAACgB,WAAW,CAACP,aAAa,CAAC;QACpCT,SAAS,CAACgB,WAAW,CAACL,iBAAiB,CAAC;MAC1C,CAAC,MAAM;QACL,IAAI,CAACM,eAAe,CAAC,IAAI,CAAC7B,SAAS,CAAC,CACjC8B,IAAI,CAAC,UAAAC,IAAA,EAAc;UAAA,IAAXC,IAAI,GAAAD,IAAA,CAAJC,IAAI;UACX,IAAMC,yBAAyB,GAAGpB,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;UAClEmB,yBAAyB,CAACT,WAAW,GAAG,IAAAC,sBAAM,EAC5C,wBACF,CAAC;UACDQ,yBAAyB,CAAClB,KAAK,CAACmB,MAAM,GAAG,MAAM;UAC/CD,yBAAyB,CAACP,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;YAC5D,IAAIQ,WAAW,CAACvB,SAAS,EAAEoB,IAAI,EAAErB,KAAI,CAACN,aAAa,CAAC,CAACK,MAAM,CAAC,CAAC;UAC/D,CAAC,CAAC;UAEF,IAAM0B,oBAAoB,GAAGvB,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;UAC7DsB,oBAAoB,CAACZ,WAAW,GAAG,IAAAC,sBAAM,EAAC,oBAAoB,CAAC;UAC/DW,oBAAoB,CAACrB,KAAK,CAACmB,MAAM,GAAG,MAAM;UAC1CE,oBAAoB,CAACV,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;YACvDhB,KAAI,CAAC0B,cAAc,CAACL,IAAI,EAAErB,KAAI,CAACT,OAAO,CAACoC,mBAAmB,CAAC,CACxDR,IAAI,CAAC,UAAAS,KAAA,EAAe;cAAA,IAAZC,KAAK,GAAAD,KAAA,CAALC,KAAK;cACZ,IAAIC,YAAY,CACd9B,KAAI,CAACZ,OAAO,EACZiC,IAAI,EACJQ,KAAK,EACL7B,KAAI,CAACN,aACP,CAAC,CAACK,MAAM,CAAC,CAAC;YACZ,CAAC,CAAC,SACI,CAAC,UAAAgC,SAAS,EAAI;cAClB/B,KAAI,CAACZ,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EACf9B,QAAQ,EACR,IAAAY,sBAAM,kCAAAmB,MAAA,CAAiCF,SAAS,MAAG,CACrD,CACF,CAAC;YACH,CAAC,CAAC;UACN,CAAC,CAAC;UAEF9B,SAAS,CAACgB,WAAW,CAACK,yBAAyB,CAAC;UAChDrB,SAAS,CAACgB,WAAW,CAACQ,oBAAoB,CAAC;UAE3CzB,KAAI,CAACZ,OAAO,CAAC8C,SAAS,GAAG,EAAE;UAC3BlC,KAAI,CAACZ,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;QACrC,CAAC,CAAC,SACI,CAAC,UAAAkC,GAAG,EAAI;UACZnC,KAAI,CAACZ,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EACf9B,QAAQ,EACR,IAAAY,sBAAM,8BAAAmB,MAAA,CAA6BE,GAAG,MAAG,CAC3C,CACF,CAAC;QACH,CAAC,CAAC;MACN;MAEA,IAAI,CAAC/C,OAAO,CAAC8C,SAAS,GAAG,EAAE;MAC3B,IAAI,CAAC9C,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;MACnC,OAAO,IAAI;IACb;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAoB,eAAeA,CAAE7B,SAAS,EAAE;MAC1B,OAAO,IAAI+C,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;QACtCvD,EAAE,CAACwD,OAAO,CAACC,gBAAgB,CAACnD,SAAS,EAAE,UAACoD,EAAE,EAAEN,GAAG,EAAK;UAClD,IAAI,CAACM,EAAE,EAAE;YACP,OAAOH,MAAM,CAACH,GAAG,CAAC;UACpB;UACA,IAAMO,gBAAgB,GAAG3D,EAAE,CAAC4D,GAAG,CAC7B,IAAI,EACJnF,EAAE,CAACoF,KAAK,CAAC,UAAU,CAAC,EACpBpF,EAAE,CAACqF,KAAK,CAAC,aAAa,CACxB,CAAC;UACD,IAAI,CAACH,gBAAgB,EAAE;YACrB,OAAOJ,MAAM,CACX,IAAIQ,KAAK,CACP,qDAAqD,GAAGzD,SAC1D,CACF,CAAC;UACH;UACA,IAAMgC,IAAI,GAAGtC,EAAE,CAAC4D,GAAG,CAACD,gBAAgB,EAAElF,EAAE,CAACoF,KAAK,CAAC,UAAU,CAAC,CAAC;UAC3D,IAAI,CAACvB,IAAI,EAAE;YACT,OAAOiB,MAAM,CAAC,IAAIQ,KAAK,CAAC,sCAAsC,CAAC,CAAC;UAClE;UACA/D,EAAE,CAACwD,OAAO,CACPQ,IAAI,CAAC1B,IAAI,CAAC,CACVF,IAAI,CAAC,UAAU6B,IAAI,EAAE;YACpB,OAAOX,OAAO,CAAC;cAAEhB,IAAI,EAAJA;YAAK,CAAC,CAAC;UAC1B,CAAC,CAAC,SACI,CAAC,UAAUc,GAAG,EAAE;YACpB,OAAOG,MAAM,CAAC,IAAIQ,KAAK,CAAC,8BAA8B,GAAGX,GAAG,CAAC,CAAC;UAChE,CAAC,CAAC;QACN,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAAtC,GAAA;IAAAC,KAAA,EAED,SAAA4B,cAAcA,CAAEL,IAAI,EAAEM,mBAAmB,EAAE;MACzC,IAAAsB,QAAA,GAAuCC,OAAO,CAAC7B,IAAI,CAAC;QAA5C8B,UAAU,GAAAF,QAAA,CAAVE,UAAU;QAAEC,cAAc,GAAAH,QAAA,CAAdG,cAAc;MAClC,IAAMvB,KAAK,GAAG3E,GAAG,CAACmG,GAAG,IAAApB,MAAA,CAChBmB,cAAc,CAACE,GAAG,EAAArB,MAAA,CAAGsB,gBAAI,CAACC,EAAE,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAC/C,CAAC;MACD,IAAMC,IAAI,GAAG/B,mBAAmB,IAAI,gBAAgB;;MAEpD;MACA;MACA;MACA,IAAMgC,aAAa,GAAG,CAAC9B,KAAK,CAAC+B,GAAG,CAAC,CAAC,EAAET,UAAU,CAAC,CAACU,GAAG,CAAC,UAAAD,GAAG,EAAI;QACzD,IAAME,aAAa,GAAG5G,GAAG,CAAC6G,EAAE,CAAClC,KAAK,EAAErE,EAAE,CAACN,GAAG,CAAC,MAAM,CAAC,EAAEM,EAAE,CAACqF,KAAK,CAAC,OAAO,CAAC,EAAEe,GAAG,CAAC;QAC3E,IAAMI,aAAa,GAAG9G,GAAG,CAAC6G,EAAE,CAAClC,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,EAAEa,IAAI,EAAE7B,KAAK,CAAC+B,GAAG,CAAC,CAAC,EAAEA,GAAG,CAAC;QAC3E,IAAMK,sBAAsB,GAAG/G,GAAG,CAAC6G,EAAE,CACnC1C,IAAI,EACJ7D,EAAE,CAACqF,KAAK,CAAC,eAAe,CAAC,EACzBhB,KAAK,EACL+B,GACF,CAAC;QACD,IAAMM,KAAK,GAAGN,GAAG,CAACO,MAAM,CAAChB,UAAU,CAAC,GAChC,CAACW,aAAa,EAAEE,aAAa,EAAEC,sBAAsB,CAAC,GACtD,CAACH,aAAa,EAAEE,aAAa,CAAC;QAClC,OAAOI,KAAK,CAACR,GAAG,CAACN,GAAG,EAAE;UAAEY,KAAK,EAALA;QAAM,CAAC,CAAC,CAAC/C,IAAI,CAAC,YAAM;UAC1C+C,KAAK,CAACG,OAAO,CAAC,UAAAN,EAAE,EAAI;YAClBhF,EAAE,CAACuF,GAAG,CAACP,EAAE,CAAC;UACZ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO3B,OAAO,CAACmC,GAAG,CAACZ,aAAa,CAAC,CAC9BxC,IAAI,CAAC;QAAA,OAAO;UAAEU,KAAK,EAALA;QAAM,CAAC;MAAA,CAAC,CAAC,SAClB,CAAC,UAAAM,GAAG,EAAI;QACZ/E,KAAK,CAACoH,GAAG,CAAC,4CAA4C,GAAGrC,GAAG,CAAC;QAC7D,MAAM,IAAIW,KAAK,kDAAAb,MAAA,CAEbE,GAAG,CAACsC,GAAG,GAAGtC,GAAG,CAACsC,GAAG,CAACC,WAAW,GAAG,EAAE,OAEpC,CAAC;MACH,CAAC,CAAC;IACN;EAAC;IAAA7E,GAAA;IAAAC,KAAA,EAED,SAAAJ,aAAaA,CAAEmC,KAAK,EAAE;MACpB,IAAI,CAACpC,aAAa,GAAGoC,KAAK;MAC1B,IAAI,CAACvC,aAAa,CAACuC,KAAK,CAAC;MACzB,IAAI,CAAC9B,MAAM,CAAC,CAAC;IACf;EAAC;AAAA;AAAA,IAGUyB,WAAW,GAAArC,OAAA,CAAAqC,WAAA;EACtB,SAAAA,YAAapC,OAAO,EAAEiC,IAAI,EAAE3B,aAAa,EAAE;IAAA,IAAAF,gBAAA,mBAAAgC,WAAA;IACzC,IAAI,CAACpC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACiC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAAC3B,aAAa,GAAGA,aAAa;EACpC;EAAC,WAAAE,aAAA,aAAA4B,WAAA;IAAA3B,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MAAA,IAAA4E,MAAA;MACR,IAAI,CAACC,UAAU,CAAC,CAAC,CACdzD,IAAI,CAAC,UAAA0D,MAAM,EAAI;QACd;QACA,IAAM5E,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;QAC/CF,SAAS,CAACG,KAAK,CAACI,OAAO,GAAG,MAAM;QAChCP,SAAS,CAACG,KAAK,CAACK,aAAa,GAAG,QAAQ;QACxCoE,MAAM,CAACR,OAAO,CAAC,UAAAxC,KAAK,EAAI;UACtB,IAAMiD,WAAW,GAAG5E,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;UACpD2E,WAAW,CAAC/D,gBAAgB,CAAC,OAAO,EAAE4D,MAAI,CAACI,gBAAgB,CAAClD,KAAK,CAAC,CAAC;UACnE,IAAIlB,KAAK,CAACmE,WAAW,EAAEjD,KAAK,CAAC,CAAC9B,MAAM,CAAC,CAAC;UACtCE,SAAS,CAACgB,WAAW,CAAC6D,WAAW,CAAC;QACpC,CAAC,CAAC;QACFH,MAAI,CAACvF,OAAO,CAAC8C,SAAS,GAAG,EAAE;QAC3ByC,MAAI,CAACvF,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;MACrC,CAAC,CAAC,SACI,CAAC,UAAAkC,GAAG,EAAI;QACZwC,MAAI,CAACvF,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EACf9B,QAAQ,EACR,IAAAY,sBAAM,8CAAAmB,MAAA,CAA6CE,GAAG,MAAG,CAC3D,CACF,CAAC;MACH,CAAC,CAAC;MACJ,OAAO,IAAI;IACb;EAAC;IAAAtC,GAAA;IAAAC,KAAA,EAED,SAAA8E,UAAUA,CAAA,EAAI;MAAA,IAAAI,MAAA;MACZ,OAAO,IAAI5C,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;QACtC,IAAA2C,SAAA,GAAuB/B,OAAO,CAAC8B,MAAI,CAAC3D,IAAI,CAAC;UAAjC8B,UAAU,GAAA8B,SAAA,CAAV9B,UAAU;QAClBpE,EAAE,CAACwD,OAAO,CAACC,gBAAgB,CAACW,UAAU,EAAE,UAACV,EAAE,EAAEN,GAAG,EAAK;UACnD,IAAI,CAACM,EAAE,EAAE;YACP,OAAOH,MAAM,CAACH,GAAG,CAAC;UACpB;UACA,IAAM0C,MAAM,GAAG9F,EAAE,CAACmG,IAAI,CAACF,MAAI,CAAC3D,IAAI,EAAE7D,EAAE,CAACqF,KAAK,CAAC,eAAe,CAAC,CAAC;UAC5D,OAAOR,OAAO,CAACwC,MAAM,CAAC;QACxB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAAhF,GAAA;IAAAC,KAAA,EAED,SAAAiF,gBAAgBA,CAAElD,KAAK,EAAE;MAAA,IAAAsD,MAAA;MACvB,OAAO,UAAAnE,MAAM,EAAI;QACfmE,MAAI,CAACzF,aAAa,CAACmC,KAAK,CAAC;MAC3B,CAAC;IACH;EAAC;AAAA;AAAA,IAGUlB,KAAK,GAAAxB,OAAA,CAAAwB,KAAA;EAChB,SAAAA,MAAavB,OAAO,EAAEyC,KAAK,EAAE;IAAA,IAAArC,gBAAA,mBAAAmB,KAAA;IAC3B,IAAI,CAACvB,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACyC,KAAK,GAAGA,KAAK;EACpB;EAAC,WAAAjC,aAAA,aAAAe,KAAA;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MACR,IAAME,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAC/CF,SAAS,CAACY,WAAW,GAAG,IAAAC,sBAAM;MAC5B;MACAsE,cAAc,CAAC,IAAI,CAACvD,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,MAAAZ,MAAA,CAAM,IAAI,CAACJ,KAAK,CAAC/B,KAAK,MAAG,CACpE,CAAC;MACD,IAAI,CAACV,OAAO,CAAC8C,SAAS,GAAG,EAAE;MAC3B,IAAI,CAAC9C,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;MACnC,OAAO,IAAI;IACb;EAAC;AAAA;AAAA,IAGU6B,YAAY,GAAA3C,OAAA,CAAA2C,YAAA;EACvB,SAAAA,aAAa1C,OAAO,EAAEiC,IAAI,EAAEQ,KAAK,EAAEwD,cAAc,EAAEC,cAAc,EAAE;IAAA,IAAA9F,gBAAA,mBAAAsC,YAAA;IACjE,IAAI,CAAC1C,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACiC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACQ,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC0D,cAAc,GAAG,UAACpD,GAAG,EAAEqD,UAAU,EAAEC,KAAK,EAAK;MAChD,IAAIH,cAAc,EAAE;QAClBA,cAAc,CAACnD,GAAG,EAAEqD,UAAU,EAAEC,KAAK,CAAC;MACxC;IACF,CAAC;IACD,IAAI,CAACH,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACD,cAAc,GAAGA,cAAc;EACtC;EAAC,WAAAzF,aAAA,aAAAkC,YAAA;IAAAjC,GAAA;IAAAC,KAAA,EAED,SAAA4F,OAAOA,CAAA,EAAI;MACT;IAAA;EACD;IAAA7F,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MAAA,IAAA4F,MAAA;MACR,IAAMC,aAAa,GAAG1F,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MACnDyF,aAAa,CAACxF,KAAK,CAACC,QAAQ,GAAG,OAAO;MACtCuF,aAAa,CAACxF,KAAK,CAACE,SAAS,GAAG,OAAO;MACvCsF,aAAa,CAACxF,KAAK,CAACG,OAAO,GAAG,iBAAiB;MAC/CqF,aAAa,CAACxF,KAAK,CAACI,OAAO,GAAG,MAAM;MACpCoF,aAAa,CAACxF,KAAK,CAACK,aAAa,GAAG,QAAQ;MAE5C,IAAAoF,2BAAc,EAACD,aAAa,EAAE,UAAAE,IAAI,EAAI;QACpCA,IAAI,CAACzB,OAAO,CAAC,UAAAf,GAAG,EAAI;UAClBqC,MAAI,CAACrB,GAAG,CAAChB,GAAG,CAAC,SAAM,CAAC,UAAAnB,GAAG,EAAI;YACzBwD,MAAI,CAACvG,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EACf9B,QAAQ,EACR,IAAAY,sBAAM,qCAAAmB,MAAA,CAAoCE,GAAG,MAAG,CAClD,CACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,IAAM4D,cAAc,GAAG7F,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;MACtD4F,cAAc,CAACC,IAAI,GAAG,MAAM;MAC5BD,cAAc,CAACjG,KAAK,GAAGsF,cAAc,CACnC,IAAI,CAACvD,KAAK,EACVrE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,EACd,gBACF,CAAC;MACDkD,cAAc,CAAChF,gBAAgB,CAAC,QAAQ,EAAE,UAAAkF,KAAK,EAAI;QACjDN,MAAI,CAACO,YAAY,CAACD,KAAK,CAACE,MAAM,CAACrG,KAAK,CAAC,SAAM,CAAC,UAAAqC,GAAG,EAAI;UACjDwD,MAAI,CAACvG,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EAAC9B,QAAQ,iCAAA+B,MAAA,CAAiCE,GAAG,MAAG,CACnE,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,IAAMiE,cAAc,GAAGlG,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;MACtDiG,cAAc,CAACvF,WAAW,GAAG,IAAAC,sBAAM,EAAC,aAAa,CAAC;MAClDsF,cAAc,CAACnF,WAAW,CAAC8E,cAAc,CAAC;MAC1CH,aAAa,CAAC3E,WAAW,CAACmF,cAAc,CAAC;MAEzC,IAAIrH,EAAE,CAAC4D,GAAG,CAAC,IAAI,CAACd,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE;QAC7C9D,EAAE,CAACsH,KAAK,CAAC,IAAI,CAACxE,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,WAAW,CAAC,CAAC,CAACwB,OAAO,CAAC,UAAAiC,SAAS,EAAI;UAC/D,IAAMC,SAAS,GAAGD,SAAS,CAACE,MAAM;UAClC,IAAMC,SAAS,GAAGvG,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;UAC/C,IAAIuG,MAAM,CAACD,SAAS,EAAEF,SAAS,EAAEZ,MAAI,CAACgB,YAAY,CAACJ,SAAS,CAAC,CAAC,CAACxG,MAAM,CAAC,CAAC;UACvE6F,aAAa,CAAC3E,WAAW,CAACwF,SAAS,CAAC;QACtC,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAMG,IAAI,GAAG1G,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;QACxCyG,IAAI,CAAC/F,WAAW,OAAGC,sBAAM,EAAApD,eAAA,KAAAA,eAAA,OAAAmJ,uBAAA,+GAExB;QACDjB,aAAa,CAAC3E,WAAW,CAAC2F,IAAI,CAAC;MACjC;MAEA,IAAME,kBAAkB,GAAG5G,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;MAC3D2G,kBAAkB,CAACjG,WAAW,GAAG,IAAAC,sBAAM,EAAC,MAAM,CAAC;MAC/CgG,kBAAkB,CAAC/F,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;QACrD2E,MAAI,CAACN,cAAc,CAACM,MAAI,CAAC9D,KAAK,CAAC;MACjC,CAAC,CAAC;MACF+D,aAAa,CAAC3E,WAAW,CAAC6F,kBAAkB,CAAC;MAE7C,IAAI,CAAC1H,OAAO,CAAC8C,SAAS,GAAG,EAAE;MAC3B,IAAI,CAAC9C,OAAO,CAAC6B,WAAW,CAAC2E,aAAa,CAAC;MACvC,OAAO,IAAI;IACb;EAAC;IAAA/F,GAAA;IAAAC,KAAA,EAED,SAAAwE,GAAGA,CAAEyC,KAAK,EAAE;MAAA,IAAAC,MAAA;MACV,OAAO,IAAI5E,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;QACtCvD,EAAE,CAACwD,OAAO,CAACC,gBAAgB,CAACuE,KAAK,EAAE,UAACtE,EAAE,EAAEN,GAAG,EAAK;UAC9C,IAAI,CAACM,EAAE,EAAE;YACPuE,MAAI,CAACzB,cAAc,CAACpD,GAAG,CAAC;YACxB,OAAOG,MAAM,CAACH,GAAG,CAAC;UACpB;UACA;UACA;UACA,IAAMoE,SAAS,GAAGrJ,GAAG,CAAC+J,SAAS,CAACF,KAAK,CAAC;UACtC,IAAMG,QAAQ,GAAGnI,EAAE,CAAC4D,GAAG,CAAC4D,SAAS,EAAE/I,EAAE,CAACN,GAAG,CAAC,MAAM,CAAC,CAAC;UAClD,IAAI,CAACgK,QAAQ,IAAI,CAACA,QAAQ,CAAC/C,MAAM,CAAC3G,EAAE,CAAC2J,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YACpD,OAAO7E,MAAM,CACX,IAAIQ,KAAK,qEAAAb,MAAA,CAC6DiF,QAAQ,CAACpH,KAAK,MACpF,CACF,CAAC;UACH;UACA,OAAOuC,OAAO,CAACkE,SAAS,CAAC;QAC3B,CAAC,CAAC;MACJ,CAAC,CAAC,CAACpF,IAAI,CAAC,UAAAoF,SAAS,EAAI;QACnB,IAAMD,SAAS,GAAGpJ,GAAG,CAAC6G,EAAE,CAACiD,MAAI,CAACnF,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,WAAW,CAAC,EAAE0D,SAAS,CAAC;QACtE,IAAIxH,EAAE,CAACqI,cAAc,CAACd,SAAS,CAAC,EAAE;UAChC,OAAOC,SAAS;QAClB;QACA,OAAOnC,KAAK,CAAC4C,MAAI,CAACnF,KAAK,CAAC+B,GAAG,CAAC,CAAC,CAACN,GAAG,EAAE;UAAEY,KAAK,EAAE,CAACoC,SAAS;QAAE,CAAC,CAAC,CAACnF,IAAI,CAAC,YAAM;UACpEmF,SAAS,CAACe,GAAG,GAAGL,MAAI,CAACnF,KAAK,CAAC+B,GAAG,CAAC,CAAC;UAChC7E,EAAE,CAACuF,GAAG,CAACgC,SAAS,CAAC;UACjBU,MAAI,CAACzB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAEgB,SAAS,CAAC;UAC7CS,MAAI,CAACjH,MAAM,CAAC,CAAC;QACf,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAAF,GAAA;IAAAC,KAAA,EAED,SAAA6G,YAAYA,CAAEJ,SAAS,EAAE;MAAA,IAAAe,MAAA;MACvB,OAAO,UAAAtG,MAAM,EAAI;QACf,IAAMsF,SAAS,GAAGpJ,GAAG,CAAC6G,EAAE,CAACuD,MAAI,CAACzF,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,WAAW,CAAC,EAAE0D,SAAS,CAAC;QACtE,OAAOnC,KAAK,CAACkD,MAAI,CAACzF,KAAK,CAAC+B,GAAG,CAAC,CAAC,CAACN,GAAG,EAAE;UAAEiE,KAAK,EAAE,CAACjB,SAAS;QAAE,CAAC,CAAC,CACvDnF,IAAI,CAAC,YAAM;UACVpC,EAAE,CAACyI,MAAM,CAAClB,SAAS,CAAC;UACpBgB,MAAI,CAAC/B,cAAc,CAAC,IAAI,EAAE,SAAS,EAAEgB,SAAS,CAAC;UAC/Ce,MAAI,CAACvH,MAAM,CAAC,CAAC;UACb,OAAO,IAAI;QACb,CAAC,CAAC,SACI,CAAC,UAAAoC,GAAG,EAAI;UACZ,IAAMuB,IAAI,GAAG3E,EAAE,CAAC4D,GAAG,CAAC4D,SAAS,EAAE/I,EAAE,CAAC2J,IAAI,CAAC,MAAM,CAAC,CAAC;UAC/C,IAAMM,YAAY,GAChB/D,IAAI,IAAIA,IAAI,CAAC5D,KAAK,uBAAAmC,MAAA,CACMyB,IAAI,CAAC5D,KAAK,SAAAmC,MAAA,CAAME,GAAG,6BAAAF,MAAA,CACnBsE,SAAS,CAACzG,KAAK,SAAAmC,MAAA,CAAME,GAAG,MAAG;UACrD,MAAM,IAAIW,KAAK,CAAC2E,YAAY,CAAC;QAC/B,CAAC,CAAC;MACN,CAAC;IACH;EAAC;IAAA5H,GAAA;IAAAC,KAAA,EAED,SAAAoG,YAAYA,CAAExC,IAAI,EAAE;MAAA,IAAAgE,MAAA;MAClB,IAAAC,SAAA,GAAuBzE,OAAO,CAAC,IAAI,CAAC7B,IAAI,CAAC;QAAjC8B,UAAU,GAAAwE,SAAA,CAAVxE,UAAU;MAClB,IAAMyE,cAAc,GAAG,CAAC,IAAI,CAAC/F,KAAK,CAAC+B,GAAG,CAAC,CAAC,EAAET,UAAU,CAAC,CAACU,GAAG,CAAC,UAAAgE,UAAU,EAAI;QACtE,IAAMC,iBAAiB,GAAG/I,EAAE,CAACsH,KAAK,CAChCqB,MAAI,CAAC7F,KAAK,EACVrE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,EACd,IAAI,EACJgF,UACF,CAAC;QACD,IAAME,gBAAgB,GAAG7K,GAAG,CAAC6G,EAAE,CAC7B2D,MAAI,CAAC7F,KAAK,EACVrE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,EACd3F,GAAG,CAAC8K,OAAO,CAACtE,IAAI,CAClB,CAAC;QACD,OAAOU,KAAK,CAACyD,UAAU,CAAC/H,KAAK,EAAE;UAC7ByH,KAAK,EAAEO,iBAAiB;UACxB5D,KAAK,EAAE,CAAC6D,gBAAgB;QAC1B,CAAC,CAAC,CAAC5G,IAAI,CAAC,UAAA8G,cAAc,EAAI;UACxBlJ,EAAE,CAACmJ,gBAAgB,CAACJ,iBAAiB,CAAC;UACtCC,gBAAgB,CAACV,GAAG,GAAGQ,UAAU;UACjC9I,EAAE,CAACuF,GAAG,CAACyD,gBAAgB,CAAC;QAC1B,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO3F,OAAO,CAACmC,GAAG,CAACqD,cAAc,CAAC;IACpC;EAAC;AAAA,KAEH;AACA;AACA;AAAA,IACalB,MAAM,GAAAvH,OAAA,CAAAuH,MAAA;EACjB,SAAAA,OAAatH,OAAO,EAAEmH,SAAS,EAAEI,YAAY,EAAE;IAAA,IAAAnH,gBAAA,mBAAAkH,MAAA;IAC7C,IAAI,CAACH,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACnH,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACuH,YAAY,GAAGA,YAAY;EAClC;EAAC,WAAA/G,aAAA,aAAA8G,MAAA;IAAA7G,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MAAA,IAAAoI,MAAA;MACR,IAAMlI,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAC/CF,SAAS,CAACG,KAAK,CAACI,OAAO,GAAG,MAAM;;MAEhC;MACA,IAAM4H,MAAM,GAAGhD,cAAc,CAC3B,IAAI,CAACmB,SAAS,EACd/I,EAAE,CAAC2J,IAAI,CAAC,KAAK,CAAC,EACdkB,kBAAQ,GAAG,gBACb,CAAC;MACD,IAAMC,UAAU,GAAGpI,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAChDmI,UAAU,CAACC,GAAG,GAAG,IAAAzH,sBAAM,EAACsH,MAAM,CAAC;MAC/BE,UAAU,CAACE,KAAK,GAAG,IAAI;MACvBF,UAAU,CAACG,MAAM,GAAG,IAAI;MACxBH,UAAU,CAAClI,KAAK,CAACmB,MAAM,GAAG,KAAK;;MAE/B;MACA,IAAMmC,IAAI,GAAG0B,cAAc,CACzB,IAAI,CAACmB,SAAS,EACd/I,EAAE,CAAC2J,IAAI,CAAC,MAAM,CAAC,MAAAlF,MAAA,CACX,IAAI,CAACsE,SAAS,MACpB,CAAC;MACD,IAAMmC,QAAQ,GAAGxI,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;MAC/CuI,QAAQ,CAACxG,SAAS,GAAG,IAAApB,sBAAM,EAAC4C,IAAI,CAAC;MACjCgF,QAAQ,CAACtI,KAAK,CAACuI,QAAQ,GAAG,GAAG;MAC7BD,QAAQ,CAACtI,KAAK,CAACmB,MAAM,GAAG,QAAQ;MAEhC,IAAMqH,YAAY,GAAG1I,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;MACrDyI,YAAY,CAAC/H,WAAW,GAAG,QAAQ;MACnC+H,YAAY,CAAC7H,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM;QAAA,OAC3CmH,MAAI,CAACxB,YAAY,CAAC,CAAC,SAAM,CAAC,UAAAxE,GAAG,EAAI;UAC/BgG,MAAI,CAAC/I,OAAO,CAAC6B,WAAW,CAAC,IAAAe,wBAAiB,EAAC9B,QAAQ,EAAE,IAAAY,sBAAM,KAAAmB,MAAA,CAAIE,GAAG,CAAE,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC;MAAA,CACJ,CAAC;MACDyG,YAAY,CAACxI,KAAK,CAACmB,MAAM,GAAG,KAAK;MAEjCtB,SAAS,CAACgB,WAAW,CAACqH,UAAU,CAAC;MACjCrI,SAAS,CAACgB,WAAW,CAACyH,QAAQ,CAAC;MAC/BzI,SAAS,CAACgB,WAAW,CAAC2H,YAAY,CAAC;MAEnC,IAAI,CAACxJ,OAAO,CAAC8C,SAAS,GAAG,EAAE;MAC3B,IAAI,CAAC9C,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;MACnC,OAAO,IAAI;IACb;EAAC;AAAA;AAGH,SAASmF,cAAcA,CAAEyD,OAAO,EAAEC,SAAS,EAAEC,YAAY,EAAE;EACzD,IAAMvC,MAAM,GAAGzH,EAAE,CAAC4D,GAAG,CAACkG,OAAO,EAAEC,SAAS,CAAC;EACzC,OAAOtC,MAAM,GAAGA,MAAM,CAAC1G,KAAK,GAAGiJ,YAAY;AAC7C;AAEA,SAAS3E,KAAKA,CAAE4E,GAAG,EAAAC,KAAA,EAAoB;EAAA,IAAhB1B,KAAK,GAAA0B,KAAA,CAAL1B,KAAK;IAAErD,KAAK,GAAA+E,KAAA,CAAL/E,KAAK;EACjC,OAAO,IAAI9B,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACtCvD,EAAE,CAACmK,OAAO,CAACC,MAAM,CAAC5B,KAAK,EAAErD,KAAK,EAAE,UAACZ,GAAG,EAAE8F,OAAO,EAAE3B,YAAY,EAAK;MAC9D,IAAI,CAAC2B,OAAO,EAAE;QACZ,OAAO9G,MAAM,CACX,IAAIQ,KAAK,+BAAAb,MAAA,CAA+BqB,GAAG,SAAArB,MAAA,CAAMwF,YAAY,CAAE,CACjE,CAAC;MACH;MACApF,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;EACJ,CAAC,CAAC;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF;AAEA,SAASa,OAAOA,CAAE7B,IAAI,EAAE;EACtB,OAAO;IACL;IACA8B,UAAU,EAAEpE,EAAE,CAAC4D,GAAG,CAACtB,IAAI,EAAE7D,EAAE,CAACqF,KAAK,CAAC,YAAY,CAAC,CAAC;IAChDO,cAAc,EAAErE,EAAE,CAACsE,GAAG,CAAChC,IAAI,CAACgI,GAAG,CAAC,CAAC,CAAC/F,GAAG,GAAG,QAAQ;EAClD,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"peoplePicker.js","names":["_escapeHtml","_interopRequireDefault","require","_uuid","rdf","_interopRequireWildcard","debug","_dragAndDrop","_error","_iconBase","ns","_solidLogic","_templateObject","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","kb","solidLogicSingleton","store","PeoplePicker","exports","element","typeIndex","groupPickedCb","options","_classCallCheck2","selectedgroup","onSelectGroup","bind","_createClass2","key","value","render","_this","container","document","createElement","style","maxWidth","minHeight","outline","display","flexDirection","selectedGroup","Group","changeGroupButton","textContent","escape","addEventListener","_event","appendChild","findAddressBook","then","_ref","book","chooseExistingGroupButton","margin","GroupPicker","createNewGroupButton","createNewGroup","defaultNewGroupName","_ref2","group","GroupBuilder","errorBody","errorMessageBlock","concat","innerHTML","err","Promise","resolve","reject","fetcher","nowOrWhenFetched","ok","bookRegistration","any","solid","vcard","Error","load","_xhr","_indexes","indexes","groupIndex","groupContainer","sym","uri","uuid","v4","slice","name","patchPromises","doc","map","typeStatement","st","nameStatement","includesGroupStatement","toIns","equals","patch","forEach","add","all","log","xhr","responseURL","_this2","loadGroups","groups","groupButton","handleClickGroup","_this3","_indexes2","each","_this4","getWithDefault","doneBuildingCb","groupChangedCb","onGroupChanged","changeType","agent","refresh","_this5","dropContainer","makeDropTarget","uris","groupNameInput","type","event","setGroupName","target","groupNameLabel","match","statement","webIdNode","object","personDiv","Person","handleRemove","copy","_taggedTemplateLiteral2","doneBuildingButton","webId","_this6","namedNode","rdfClass","foaf","holdsStatement","why","_this7","toDel","remove","errorMessage","_this8","_indexes3","updatePromises","namedGraph","oldNameStatements","newNameStatement","literal","_solidResponse","removeStatements","_this9","imgSrc","iconBase","profileImg","src","width","height","nameSpan","flexGrow","removeButton","subject","predicate","defaultValue","url","_ref3","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":";;;;;;;;;;;AAWA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,GAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAD,uBAAA,CAAAH,OAAA;AAEA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,EAAA,GAAAL,uBAAA,CAAAH,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAAiD,IAAAU,eAAA;AApBjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,SAAAP,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,wBAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAsBA,IAAMmB,EAAE,GAAGC,+BAAmB,CAACC,KAAK;AAAA,IAEvBC,YAAY,GAAAC,OAAA,CAAAD,YAAA;EACvB,SAAAA,aAAaE,OAAO,EAAEC,SAAS,EAAEC,aAAa,EAAEC,OAAO,EAAE;IAAA,IAAAC,gBAAA,mBAAAN,YAAA;IAAE;IACzD,IAAI,CAACK,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;IAC5B,IAAI,CAACH,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACG,aAAa,GAAG,IAAI,CAACF,OAAO,CAACE,aAAa,EAAC;IAChD,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC;EACpD;EAAC,WAAAC,aAAA,aAAAV,YAAA;IAAAW,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MAAA,IAAAC,KAAA;MACR,IAAMC,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAC/CF,SAAS,CAACG,KAAK,CAACC,QAAQ,GAAG,OAAO;MAClCJ,SAAS,CAACG,KAAK,CAACE,SAAS,GAAG,OAAO;MACnCL,SAAS,CAACG,KAAK,CAACG,OAAO,GAAG,iBAAiB;MAC3CN,SAAS,CAACG,KAAK,CAACI,OAAO,GAAG,MAAM;MAEhC,IAAI,IAAI,CAACf,aAAa,EAAE;QACtBQ,SAAS,CAACG,KAAK,CAACK,aAAa,GAAG,QAAQ;QACxC,IAAMC,aAAa,GAAGR,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;QACnD,IAAIQ,KAAK,CAACD,aAAa,EAAE,IAAI,CAACjB,aAAa,CAAC,CAACM,MAAM,CAAC,CAAC;QACrD,IAAMa,iBAAiB,GAAGV,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;QAC1DS,iBAAiB,CAACC,WAAW,GAAG,IAAAC,sBAAM,EAAC,cAAc,CAAC;QACtDF,iBAAiB,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;UACpDhB,KAAI,CAACP,aAAa,GAAG,IAAI;UACzBO,KAAI,CAACD,MAAM,CAAC,CAAC;QACf,CAAC,CAAC;QACFE,SAAS,CAACgB,WAAW,CAACP,aAAa,CAAC;QACpCT,SAAS,CAACgB,WAAW,CAACL,iBAAiB,CAAC;MAC1C,CAAC,MAAM;QACL,IAAI,CAACM,eAAe,CAAC,IAAI,CAAC7B,SAAS,CAAC,CACjC8B,IAAI,CAAC,UAAAC,IAAA,EAAc;UAAA,IAAXC,IAAI,GAAAD,IAAA,CAAJC,IAAI;UACX,IAAMC,yBAAyB,GAAGpB,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;UAClEmB,yBAAyB,CAACT,WAAW,GAAG,IAAAC,sBAAM,EAC5C,wBACF,CAAC;UACDQ,yBAAyB,CAAClB,KAAK,CAACmB,MAAM,GAAG,MAAM;UAC/CD,yBAAyB,CAACP,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;YAC5D,IAAIQ,WAAW,CAACvB,SAAS,EAAEoB,IAAI,EAAErB,KAAI,CAACN,aAAa,CAAC,CAACK,MAAM,CAAC,CAAC;UAC/D,CAAC,CAAC;UAEF,IAAM0B,oBAAoB,GAAGvB,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;UAC7DsB,oBAAoB,CAACZ,WAAW,GAAG,IAAAC,sBAAM,EAAC,oBAAoB,CAAC;UAC/DW,oBAAoB,CAACrB,KAAK,CAACmB,MAAM,GAAG,MAAM;UAC1CE,oBAAoB,CAACV,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;YACvDhB,KAAI,CAAC0B,cAAc,CAACL,IAAI,EAAErB,KAAI,CAACT,OAAO,CAACoC,mBAAmB,CAAC,CACxDR,IAAI,CAAC,UAAAS,KAAA,EAAe;cAAA,IAAZC,KAAK,GAAAD,KAAA,CAALC,KAAK;cACZ,IAAIC,YAAY,CACd9B,KAAI,CAACZ,OAAO,EACZiC,IAAI,EACJQ,KAAK,EACL7B,KAAI,CAACN,aACP,CAAC,CAACK,MAAM,CAAC,CAAC;YACZ,CAAC,CAAC,SACI,CAAC,UAAAgC,SAAS,EAAI;cAClB/B,KAAI,CAACZ,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EACf9B,QAAQ,EACR,IAAAY,sBAAM,kCAAAmB,MAAA,CAAiCF,SAAS,MAAG,CACrD,CACF,CAAC;YACH,CAAC,CAAC;UACN,CAAC,CAAC;UAEF9B,SAAS,CAACgB,WAAW,CAACK,yBAAyB,CAAC;UAChDrB,SAAS,CAACgB,WAAW,CAACQ,oBAAoB,CAAC;UAE3CzB,KAAI,CAACZ,OAAO,CAAC8C,SAAS,GAAG,EAAE;UAC3BlC,KAAI,CAACZ,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;QACrC,CAAC,CAAC,SACI,CAAC,UAAAkC,GAAG,EAAI;UACZnC,KAAI,CAACZ,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EACf9B,QAAQ,EACR,IAAAY,sBAAM,8BAAAmB,MAAA,CAA6BE,GAAG,MAAG,CAC3C,CACF,CAAC;QACH,CAAC,CAAC;MACN;MAEA,IAAI,CAAC/C,OAAO,CAAC8C,SAAS,GAAG,EAAE;MAC3B,IAAI,CAAC9C,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;MACnC,OAAO,IAAI;IACb;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAoB,eAAeA,CAAE7B,SAAS,EAAE;MAC1B,OAAO,IAAI+C,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;QACtCvD,EAAE,CAACwD,OAAO,CAACC,gBAAgB,CAACnD,SAAS,EAAE,UAACoD,EAAE,EAAEN,GAAG,EAAK;UAClD,IAAI,CAACM,EAAE,EAAE;YACP,OAAOH,MAAM,CAACH,GAAG,CAAC;UACpB;UACA,IAAMO,gBAAgB,GAAG3D,EAAE,CAAC4D,GAAG,CAC7B,IAAI,EACJnF,EAAE,CAACoF,KAAK,CAAC,UAAU,CAAC,EACpBpF,EAAE,CAACqF,KAAK,CAAC,aAAa,CACxB,CAAC;UACD,IAAI,CAACH,gBAAgB,EAAE;YACrB,OAAOJ,MAAM,CACX,IAAIQ,KAAK,CACP,qDAAqD,GAAGzD,SAC1D,CACF,CAAC;UACH;UACA,IAAMgC,IAAI,GAAGtC,EAAE,CAAC4D,GAAG,CAACD,gBAAgB,EAAElF,EAAE,CAACoF,KAAK,CAAC,UAAU,CAAC,CAAC;UAC3D,IAAI,CAACvB,IAAI,EAAE;YACT,OAAOiB,MAAM,CAAC,IAAIQ,KAAK,CAAC,sCAAsC,CAAC,CAAC;UAClE;UACA/D,EAAE,CAACwD,OAAO,CACPQ,IAAI,CAAC1B,IAAI,CAAC,CACVF,IAAI,CAAC,UAAU6B,IAAI,EAAE;YACpB,OAAOX,OAAO,CAAC;cAAEhB,IAAI,EAAJA;YAAK,CAAC,CAAC;UAC1B,CAAC,CAAC,SACI,CAAC,UAAUc,GAAG,EAAE;YACpB,OAAOG,MAAM,CAAC,IAAIQ,KAAK,CAAC,8BAA8B,GAAGX,GAAG,CAAC,CAAC;UAChE,CAAC,CAAC;QACN,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAAtC,GAAA;IAAAC,KAAA,EAED,SAAA4B,cAAcA,CAAEL,IAAI,EAAEM,mBAAmB,EAAE;MACzC,IAAAsB,QAAA,GAAuCC,OAAO,CAAC7B,IAAI,CAAC;QAA5C8B,UAAU,GAAAF,QAAA,CAAVE,UAAU;QAAEC,cAAc,GAAAH,QAAA,CAAdG,cAAc;MAClC,IAAMvB,KAAK,GAAG3E,GAAG,CAACmG,GAAG,IAAApB,MAAA,CAChBmB,cAAc,CAACE,GAAG,EAAArB,MAAA,CAAGsB,gBAAI,CAACC,EAAE,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAC/C,CAAC;MACD,IAAMC,IAAI,GAAG/B,mBAAmB,IAAI,gBAAgB;;MAEpD;MACA;MACA;MACA,IAAMgC,aAAa,GAAG,CAAC9B,KAAK,CAAC+B,GAAG,CAAC,CAAC,EAAET,UAAU,CAAC,CAACU,GAAG,CAAC,UAAAD,GAAG,EAAI;QACzD,IAAME,aAAa,GAAG5G,GAAG,CAAC6G,EAAE,CAAClC,KAAK,EAAErE,EAAE,CAACN,GAAG,CAAC,MAAM,CAAC,EAAEM,EAAE,CAACqF,KAAK,CAAC,OAAO,CAAC,EAAEe,GAAG,CAAC;QAC3E,IAAMI,aAAa,GAAG9G,GAAG,CAAC6G,EAAE,CAAClC,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,EAAEa,IAAI,EAAE7B,KAAK,CAAC+B,GAAG,CAAC,CAAC,EAAEA,GAAG,CAAC;QAC3E,IAAMK,sBAAsB,GAAG/G,GAAG,CAAC6G,EAAE,CACnC1C,IAAI,EACJ7D,EAAE,CAACqF,KAAK,CAAC,eAAe,CAAC,EACzBhB,KAAK,EACL+B,GACF,CAAC;QACD,IAAMM,KAAK,GAAGN,GAAG,CAACO,MAAM,CAAChB,UAAU,CAAC,GAChC,CAACW,aAAa,EAAEE,aAAa,EAAEC,sBAAsB,CAAC,GACtD,CAACH,aAAa,EAAEE,aAAa,CAAC;QAClC,OAAOI,KAAK,CAACR,GAAG,CAACN,GAAG,EAAE;UAAEY,KAAK,EAALA;QAAM,CAAC,CAAC,CAAC/C,IAAI,CAAC,YAAM;UAC1C+C,KAAK,CAACG,OAAO,CAAC,UAAAN,EAAE,EAAI;YAClBhF,EAAE,CAACuF,GAAG,CAACP,EAAE,CAAC;UACZ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO3B,OAAO,CAACmC,GAAG,CAACZ,aAAa,CAAC,CAC9BxC,IAAI,CAAC;QAAA,OAAO;UAAEU,KAAK,EAALA;QAAM,CAAC;MAAA,CAAC,CAAC,SAClB,CAAC,UAAAM,GAAG,EAAI;QACZ/E,KAAK,CAACoH,GAAG,CAAC,4CAA4C,GAAGrC,GAAG,CAAC;QAC7D,MAAM,IAAIW,KAAK,kDAAAb,MAAA,CAEbE,GAAG,CAACsC,GAAG,GAAGtC,GAAG,CAACsC,GAAG,CAACC,WAAW,GAAG,EAAE,OAEpC,CAAC;MACH,CAAC,CAAC;IACN;EAAC;IAAA7E,GAAA;IAAAC,KAAA,EAED,SAAAJ,aAAaA,CAAEmC,KAAK,EAAE;MACpB,IAAI,CAACpC,aAAa,GAAGoC,KAAK;MAC1B,IAAI,CAACvC,aAAa,CAACuC,KAAK,CAAC;MACzB,IAAI,CAAC9B,MAAM,CAAC,CAAC;IACf;EAAC;AAAA;AAAA,IAGUyB,WAAW,GAAArC,OAAA,CAAAqC,WAAA;EACtB,SAAAA,YAAapC,OAAO,EAAEiC,IAAI,EAAE3B,aAAa,EAAE;IAAA,IAAAF,gBAAA,mBAAAgC,WAAA;IACzC,IAAI,CAACpC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACiC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAAC3B,aAAa,GAAGA,aAAa;EACpC;EAAC,WAAAE,aAAA,aAAA4B,WAAA;IAAA3B,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MAAA,IAAA4E,MAAA;MACR,IAAI,CAACC,UAAU,CAAC,CAAC,CACdzD,IAAI,CAAC,UAAA0D,MAAM,EAAI;QACd;QACA,IAAM5E,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;QAC/CF,SAAS,CAACG,KAAK,CAACI,OAAO,GAAG,MAAM;QAChCP,SAAS,CAACG,KAAK,CAACK,aAAa,GAAG,QAAQ;QACxCoE,MAAM,CAACR,OAAO,CAAC,UAAAxC,KAAK,EAAI;UACtB,IAAMiD,WAAW,GAAG5E,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;UACpD2E,WAAW,CAAC/D,gBAAgB,CAAC,OAAO,EAAE4D,MAAI,CAACI,gBAAgB,CAAClD,KAAK,CAAC,CAAC;UACnE,IAAIlB,KAAK,CAACmE,WAAW,EAAEjD,KAAK,CAAC,CAAC9B,MAAM,CAAC,CAAC;UACtCE,SAAS,CAACgB,WAAW,CAAC6D,WAAW,CAAC;QACpC,CAAC,CAAC;QACFH,MAAI,CAACvF,OAAO,CAAC8C,SAAS,GAAG,EAAE;QAC3ByC,MAAI,CAACvF,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;MACrC,CAAC,CAAC,SACI,CAAC,UAAAkC,GAAG,EAAI;QACZwC,MAAI,CAACvF,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EACf9B,QAAQ,EACR,IAAAY,sBAAM,8CAAAmB,MAAA,CAA6CE,GAAG,MAAG,CAC3D,CACF,CAAC;MACH,CAAC,CAAC;MACJ,OAAO,IAAI;IACb;EAAC;IAAAtC,GAAA;IAAAC,KAAA,EAED,SAAA8E,UAAUA,CAAA,EAAI;MAAA,IAAAI,MAAA;MACZ,OAAO,IAAI5C,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;QACtC,IAAA2C,SAAA,GAAuB/B,OAAO,CAAC8B,MAAI,CAAC3D,IAAI,CAAC;UAAjC8B,UAAU,GAAA8B,SAAA,CAAV9B,UAAU;QAClBpE,EAAE,CAACwD,OAAO,CAACC,gBAAgB,CAACW,UAAU,EAAE,UAACV,EAAE,EAAEN,GAAG,EAAK;UACnD,IAAI,CAACM,EAAE,EAAE;YACP,OAAOH,MAAM,CAACH,GAAG,CAAC;UACpB;UACA,IAAM0C,MAAM,GAAG9F,EAAE,CAACmG,IAAI,CAACF,MAAI,CAAC3D,IAAI,EAAE7D,EAAE,CAACqF,KAAK,CAAC,eAAe,CAAC,CAAC;UAC5D,OAAOR,OAAO,CAACwC,MAAM,CAAC;QACxB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAAhF,GAAA;IAAAC,KAAA,EAED,SAAAiF,gBAAgBA,CAAElD,KAAK,EAAE;MAAA,IAAAsD,MAAA;MACvB,OAAO,UAAAnE,MAAM,EAAI;QACfmE,MAAI,CAACzF,aAAa,CAACmC,KAAK,CAAC;MAC3B,CAAC;IACH;EAAC;AAAA;AAAA,IAGUlB,KAAK,GAAAxB,OAAA,CAAAwB,KAAA;EAChB,SAAAA,MAAavB,OAAO,EAAEyC,KAAK,EAAE;IAAA,IAAArC,gBAAA,mBAAAmB,KAAA;IAC3B,IAAI,CAACvB,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACyC,KAAK,GAAGA,KAAK;EACpB;EAAC,WAAAjC,aAAA,aAAAe,KAAA;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MACR,IAAME,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAC/CF,SAAS,CAACY,WAAW,GAAG,IAAAC,sBAAM;MAC5B;MACAsE,cAAc,CAAC,IAAI,CAACvD,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,MAAAZ,MAAA,CAAM,IAAI,CAACJ,KAAK,CAAC/B,KAAK,MAAG,CACpE,CAAC;MACD,IAAI,CAACV,OAAO,CAAC8C,SAAS,GAAG,EAAE;MAC3B,IAAI,CAAC9C,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;MACnC,OAAO,IAAI;IACb;EAAC;AAAA;AAAA,IAGU6B,YAAY,GAAA3C,OAAA,CAAA2C,YAAA;EACvB,SAAAA,aAAa1C,OAAO,EAAEiC,IAAI,EAAEQ,KAAK,EAAEwD,cAAc,EAAEC,cAAc,EAAE;IAAA,IAAA9F,gBAAA,mBAAAsC,YAAA;IACjE,IAAI,CAAC1C,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACiC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACQ,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC0D,cAAc,GAAG,UAACpD,GAAG,EAAEqD,UAAU,EAAEC,KAAK,EAAK;MAChD,IAAIH,cAAc,EAAE;QAClBA,cAAc,CAACnD,GAAG,EAAEqD,UAAU,EAAEC,KAAK,CAAC;MACxC;IACF,CAAC;IACD,IAAI,CAACH,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACD,cAAc,GAAGA,cAAc;EACtC;EAAC,WAAAzF,aAAA,aAAAkC,YAAA;IAAAjC,GAAA;IAAAC,KAAA,EAED,SAAA4F,OAAOA,CAAA,EAAI;MACT;IAAA;EACD;IAAA7F,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MAAA,IAAA4F,MAAA;MACR,IAAMC,aAAa,GAAG1F,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MACnDyF,aAAa,CAACxF,KAAK,CAACC,QAAQ,GAAG,OAAO;MACtCuF,aAAa,CAACxF,KAAK,CAACE,SAAS,GAAG,OAAO;MACvCsF,aAAa,CAACxF,KAAK,CAACG,OAAO,GAAG,iBAAiB;MAC/CqF,aAAa,CAACxF,KAAK,CAACI,OAAO,GAAG,MAAM;MACpCoF,aAAa,CAACxF,KAAK,CAACK,aAAa,GAAG,QAAQ;MAE5C,IAAAoF,2BAAc,EAACD,aAAa,EAAE,UAAAE,IAAI,EAAI;QACpCA,IAAI,CAACzB,OAAO,CAAC,UAAAf,GAAG,EAAI;UAClBqC,MAAI,CAACrB,GAAG,CAAChB,GAAG,CAAC,SAAM,CAAC,UAAAnB,GAAG,EAAI;YACzBwD,MAAI,CAACvG,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EACf9B,QAAQ,EACR,IAAAY,sBAAM,qCAAAmB,MAAA,CAAoCE,GAAG,MAAG,CAClD,CACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,IAAM4D,cAAc,GAAG7F,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;MACtD4F,cAAc,CAACC,IAAI,GAAG,MAAM;MAC5BD,cAAc,CAACjG,KAAK,GAAGsF,cAAc,CACnC,IAAI,CAACvD,KAAK,EACVrE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,EACd,gBACF,CAAC;MACDkD,cAAc,CAAChF,gBAAgB,CAAC,QAAQ,EAAE,UAAAkF,KAAK,EAAI;QACjDN,MAAI,CAACO,YAAY,CAACD,KAAK,CAACE,MAAM,CAACrG,KAAK,CAAC,SAAM,CAAC,UAAAqC,GAAG,EAAI;UACjDwD,MAAI,CAACvG,OAAO,CAAC6B,WAAW,CACtB,IAAAe,wBAAiB,EAAC9B,QAAQ,iCAAA+B,MAAA,CAAiCE,GAAG,MAAG,CACnE,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,IAAMiE,cAAc,GAAGlG,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;MACtDiG,cAAc,CAACvF,WAAW,GAAG,IAAAC,sBAAM,EAAC,aAAa,CAAC;MAClDsF,cAAc,CAACnF,WAAW,CAAC8E,cAAc,CAAC;MAC1CH,aAAa,CAAC3E,WAAW,CAACmF,cAAc,CAAC;MAEzC,IAAIrH,EAAE,CAAC4D,GAAG,CAAC,IAAI,CAACd,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE;QAC7C9D,EAAE,CAACsH,KAAK,CAAC,IAAI,CAACxE,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,WAAW,CAAC,CAAC,CAACwB,OAAO,CAAC,UAAAiC,SAAS,EAAI;UAC/D,IAAMC,SAAS,GAAGD,SAAS,CAACE,MAAM;UAClC,IAAMC,SAAS,GAAGvG,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;UAC/C,IAAIuG,MAAM,CAACD,SAAS,EAAEF,SAAS,EAAEZ,MAAI,CAACgB,YAAY,CAACJ,SAAS,CAAC,CAAC,CAACxG,MAAM,CAAC,CAAC;UACvE6F,aAAa,CAAC3E,WAAW,CAACwF,SAAS,CAAC;QACtC,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAMG,IAAI,GAAG1G,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;QACxCyG,IAAI,CAAC/F,WAAW,OAAGC,sBAAM,EAAApD,eAAA,KAAAA,eAAA,OAAAmJ,uBAAA,+GAExB;QACDjB,aAAa,CAAC3E,WAAW,CAAC2F,IAAI,CAAC;MACjC;MAEA,IAAME,kBAAkB,GAAG5G,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;MAC3D2G,kBAAkB,CAACjG,WAAW,GAAG,IAAAC,sBAAM,EAAC,MAAM,CAAC;MAC/CgG,kBAAkB,CAAC/F,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM,EAAI;QACrD2E,MAAI,CAACN,cAAc,CAACM,MAAI,CAAC9D,KAAK,CAAC;MACjC,CAAC,CAAC;MACF+D,aAAa,CAAC3E,WAAW,CAAC6F,kBAAkB,CAAC;MAE7C,IAAI,CAAC1H,OAAO,CAAC8C,SAAS,GAAG,EAAE;MAC3B,IAAI,CAAC9C,OAAO,CAAC6B,WAAW,CAAC2E,aAAa,CAAC;MACvC,OAAO,IAAI;IACb;EAAC;IAAA/F,GAAA;IAAAC,KAAA,EAED,SAAAwE,GAAGA,CAAEyC,KAAK,EAAE;MAAA,IAAAC,MAAA;MACV,OAAO,IAAI5E,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;QACtCvD,EAAE,CAACwD,OAAO,CAACC,gBAAgB,CAACuE,KAAK,EAAE,UAACtE,EAAE,EAAEN,GAAG,EAAK;UAC9C,IAAI,CAACM,EAAE,EAAE;YACPuE,MAAI,CAACzB,cAAc,CAACpD,GAAG,CAAC;YACxB,OAAOG,MAAM,CAACH,GAAG,CAAC;UACpB;UACA;UACA;UACA,IAAMoE,SAAS,GAAGrJ,GAAG,CAAC+J,SAAS,CAACF,KAAK,CAAC;UACtC,IAAMG,QAAQ,GAAGnI,EAAE,CAAC4D,GAAG,CAAC4D,SAAS,EAAE/I,EAAE,CAACN,GAAG,CAAC,MAAM,CAAC,CAAC;UAClD,IAAI,CAACgK,QAAQ,IAAI,CAACA,QAAQ,CAAC/C,MAAM,CAAC3G,EAAE,CAAC2J,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YACpD,OAAO7E,MAAM,CACX,IAAIQ,KAAK,qEAAAb,MAAA,CAC6DiF,QAAQ,CAACpH,KAAK,MACpF,CACF,CAAC;UACH;UACA,OAAOuC,OAAO,CAACkE,SAAS,CAAC;QAC3B,CAAC,CAAC;MACJ,CAAC,CAAC,CAACpF,IAAI,CAAC,UAAAoF,SAAS,EAAI;QACnB,IAAMD,SAAS,GAAGpJ,GAAG,CAAC6G,EAAE,CAACiD,MAAI,CAACnF,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,WAAW,CAAC,EAAE0D,SAAS,CAAC;QACtE,IAAIxH,EAAE,CAACqI,cAAc,CAACd,SAAS,CAAC,EAAE;UAChC,OAAOC,SAAS;QAClB;QACA,OAAOnC,KAAK,CAAC4C,MAAI,CAACnF,KAAK,CAAC+B,GAAG,CAAC,CAAC,CAACN,GAAG,EAAE;UAAEY,KAAK,EAAE,CAACoC,SAAS;QAAE,CAAC,CAAC,CAACnF,IAAI,CAAC,YAAM;UACpEmF,SAAS,CAACe,GAAG,GAAGL,MAAI,CAACnF,KAAK,CAAC+B,GAAG,CAAC,CAAC;UAChC7E,EAAE,CAACuF,GAAG,CAACgC,SAAS,CAAC;UACjBU,MAAI,CAACzB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAEgB,SAAS,CAAC;UAC7CS,MAAI,CAACjH,MAAM,CAAC,CAAC;QACf,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAAF,GAAA;IAAAC,KAAA,EAED,SAAA6G,YAAYA,CAAEJ,SAAS,EAAE;MAAA,IAAAe,MAAA;MACvB,OAAO,UAAAtG,MAAM,EAAI;QACf,IAAMsF,SAAS,GAAGpJ,GAAG,CAAC6G,EAAE,CAACuD,MAAI,CAACzF,KAAK,EAAErE,EAAE,CAACqF,KAAK,CAAC,WAAW,CAAC,EAAE0D,SAAS,CAAC;QACtE,OAAOnC,KAAK,CAACkD,MAAI,CAACzF,KAAK,CAAC+B,GAAG,CAAC,CAAC,CAACN,GAAG,EAAE;UAAEiE,KAAK,EAAE,CAACjB,SAAS;QAAE,CAAC,CAAC,CACvDnF,IAAI,CAAC,YAAM;UACVpC,EAAE,CAACyI,MAAM,CAAClB,SAAS,CAAC;UACpBgB,MAAI,CAAC/B,cAAc,CAAC,IAAI,EAAE,SAAS,EAAEgB,SAAS,CAAC;UAC/Ce,MAAI,CAACvH,MAAM,CAAC,CAAC;UACb,OAAO,IAAI;QACb,CAAC,CAAC,SACI,CAAC,UAAAoC,GAAG,EAAI;UACZ,IAAMuB,IAAI,GAAG3E,EAAE,CAAC4D,GAAG,CAAC4D,SAAS,EAAE/I,EAAE,CAAC2J,IAAI,CAAC,MAAM,CAAC,CAAC;UAC/C,IAAMM,YAAY,GAChB/D,IAAI,IAAIA,IAAI,CAAC5D,KAAK,uBAAAmC,MAAA,CACMyB,IAAI,CAAC5D,KAAK,SAAAmC,MAAA,CAAME,GAAG,6BAAAF,MAAA,CACnBsE,SAAS,CAACzG,KAAK,SAAAmC,MAAA,CAAME,GAAG,MAAG;UACrD,MAAM,IAAIW,KAAK,CAAC2E,YAAY,CAAC;QAC/B,CAAC,CAAC;MACN,CAAC;IACH;EAAC;IAAA5H,GAAA;IAAAC,KAAA,EAED,SAAAoG,YAAYA,CAAExC,IAAI,EAAE;MAAA,IAAAgE,MAAA;MAClB,IAAAC,SAAA,GAAuBzE,OAAO,CAAC,IAAI,CAAC7B,IAAI,CAAC;QAAjC8B,UAAU,GAAAwE,SAAA,CAAVxE,UAAU;MAClB,IAAMyE,cAAc,GAAG,CAAC,IAAI,CAAC/F,KAAK,CAAC+B,GAAG,CAAC,CAAC,EAAET,UAAU,CAAC,CAACU,GAAG,CAAC,UAAAgE,UAAU,EAAI;QACtE,IAAMC,iBAAiB,GAAG/I,EAAE,CAACsH,KAAK,CAChCqB,MAAI,CAAC7F,KAAK,EACVrE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,EACd,IAAI,EACJgF,UACF,CAAC;QACD,IAAME,gBAAgB,GAAG7K,GAAG,CAAC6G,EAAE,CAC7B2D,MAAI,CAAC7F,KAAK,EACVrE,EAAE,CAACqF,KAAK,CAAC,IAAI,CAAC,EACd3F,GAAG,CAAC8K,OAAO,CAACtE,IAAI,CAClB,CAAC;QACD,OAAOU,KAAK,CAACyD,UAAU,CAAC/H,KAAK,EAAE;UAC7ByH,KAAK,EAAEO,iBAAiB;UACxB5D,KAAK,EAAE,CAAC6D,gBAAgB;QAC1B,CAAC,CAAC,CAAC5G,IAAI,CAAC,UAAA8G,cAAc,EAAI;UACxBlJ,EAAE,CAACmJ,gBAAgB,CAACJ,iBAAiB,CAAC;UACtCC,gBAAgB,CAACV,GAAG,GAAGQ,UAAU;UACjC9I,EAAE,CAACuF,GAAG,CAACyD,gBAAgB,CAAC;QAC1B,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO3F,OAAO,CAACmC,GAAG,CAACqD,cAAc,CAAC;IACpC;EAAC;AAAA,KAEH;AACA;AACA;AAAA,IACalB,MAAM,GAAAvH,OAAA,CAAAuH,MAAA;EACjB,SAAAA,OAAatH,OAAO,EAAEmH,SAAS,EAAEI,YAAY,EAAE;IAAA,IAAAnH,gBAAA,mBAAAkH,MAAA;IAC7C,IAAI,CAACH,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACnH,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACuH,YAAY,GAAGA,YAAY;EAClC;EAAC,WAAA/G,aAAA,aAAA8G,MAAA;IAAA7G,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAI;MAAA,IAAAoI,MAAA;MACR,IAAMlI,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAC/CF,SAAS,CAACG,KAAK,CAACI,OAAO,GAAG,MAAM;;MAEhC;MACA,IAAM4H,MAAM,GAAGhD,cAAc,CAC3B,IAAI,CAACmB,SAAS,EACd/I,EAAE,CAAC2J,IAAI,CAAC,KAAK,CAAC,EACdkB,kBAAQ,GAAG,gBACb,CAAC;MACD,IAAMC,UAAU,GAAGpI,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAChDmI,UAAU,CAACC,GAAG,GAAG,IAAAzH,sBAAM,EAACsH,MAAM,CAAC;MAC/BE,UAAU,CAACE,KAAK,GAAG,IAAI;MACvBF,UAAU,CAACG,MAAM,GAAG,IAAI;MACxBH,UAAU,CAAClI,KAAK,CAACmB,MAAM,GAAG,KAAK;;MAE/B;MACA,IAAMmC,IAAI,GAAG0B,cAAc,CACzB,IAAI,CAACmB,SAAS,EACd/I,EAAE,CAAC2J,IAAI,CAAC,MAAM,CAAC,MAAAlF,MAAA,CACX,IAAI,CAACsE,SAAS,MACpB,CAAC;MACD,IAAMmC,QAAQ,GAAGxI,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;MAC/CuI,QAAQ,CAACxG,SAAS,GAAG,IAAApB,sBAAM,EAAC4C,IAAI,CAAC;MACjCgF,QAAQ,CAACtI,KAAK,CAACuI,QAAQ,GAAG,GAAG;MAC7BD,QAAQ,CAACtI,KAAK,CAACmB,MAAM,GAAG,QAAQ;MAEhC,IAAMqH,YAAY,GAAG1I,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;MACrDyI,YAAY,CAAC/H,WAAW,GAAG,QAAQ;MACnC+H,YAAY,CAAC7H,gBAAgB,CAAC,OAAO,EAAE,UAAAC,MAAM;QAAA,OAC3CmH,MAAI,CAACxB,YAAY,CAAC,CAAC,SAAM,CAAC,UAAAxE,GAAG,EAAI;UAC/BgG,MAAI,CAAC/I,OAAO,CAAC6B,WAAW,CAAC,IAAAe,wBAAiB,EAAC9B,QAAQ,EAAE,IAAAY,sBAAM,KAAAmB,MAAA,CAAIE,GAAG,CAAE,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC;MAAA,CACJ,CAAC;MACDyG,YAAY,CAACxI,KAAK,CAACmB,MAAM,GAAG,KAAK;MAEjCtB,SAAS,CAACgB,WAAW,CAACqH,UAAU,CAAC;MACjCrI,SAAS,CAACgB,WAAW,CAACyH,QAAQ,CAAC;MAC/BzI,SAAS,CAACgB,WAAW,CAAC2H,YAAY,CAAC;MAEnC,IAAI,CAACxJ,OAAO,CAAC8C,SAAS,GAAG,EAAE;MAC3B,IAAI,CAAC9C,OAAO,CAAC6B,WAAW,CAAChB,SAAS,CAAC;MACnC,OAAO,IAAI;IACb;EAAC;AAAA;AAGH,SAASmF,cAAcA,CAAEyD,OAAO,EAAEC,SAAS,EAAEC,YAAY,EAAE;EACzD,IAAMvC,MAAM,GAAGzH,EAAE,CAAC4D,GAAG,CAACkG,OAAO,EAAEC,SAAS,CAAC;EACzC,OAAOtC,MAAM,GAAGA,MAAM,CAAC1G,KAAK,GAAGiJ,YAAY;AAC7C;AAEA,SAAS3E,KAAKA,CAAE4E,GAAG,EAAAC,KAAA,EAAoB;EAAA,IAAhB1B,KAAK,GAAA0B,KAAA,CAAL1B,KAAK;IAAErD,KAAK,GAAA+E,KAAA,CAAL/E,KAAK;EACjC,OAAO,IAAI9B,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACtCvD,EAAE,CAACmK,OAAO,CAACC,MAAM,CAAC5B,KAAK,EAAErD,KAAK,EAAE,UAACZ,GAAG,EAAE8F,OAAO,EAAE3B,YAAY,EAAK;MAC9D,IAAI,CAAC2B,OAAO,EAAE;QACZ,OAAO9G,MAAM,CACX,IAAIQ,KAAK,+BAAAb,MAAA,CAA+BqB,GAAG,SAAArB,MAAA,CAAMwF,YAAY,CAAE,CACjE,CAAC;MACH;MACApF,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;EACJ,CAAC,CAAC;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF;AAEA,SAASa,OAAOA,CAAE7B,IAAI,EAAE;EACtB,OAAO;IACL;IACA8B,UAAU,EAAEpE,EAAE,CAAC4D,GAAG,CAACtB,IAAI,EAAE7D,EAAE,CAACqF,KAAK,CAAC,YAAY,CAAC,CAAC;IAChDO,cAAc,EAAErE,EAAE,CAACsE,GAAG,CAAChC,IAAI,CAACgI,GAAG,CAAC,CAAC,CAAC/F,GAAG,GAAG,QAAQ;EAClD,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetHelpers.d.ts","sourceRoot":"","sources":["../../src/widgets/widgetHelpers.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"widgetHelpers.d.ts","sourceRoot":"","sources":["../../src/widgets/widgetHelpers.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,YAAY,GAAI,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,GAAG,wBAM5E,CAAA;AAED;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,yBAAyB,GAAI,KAAK,cAAc,EAAE,iBAAiB,MAAM,IAAI,SAEzF,CAAA;AAED;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,cAAc,GAAI,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,OAAO,gBAAgB,GAAG,iBAAiB,SAMjH,CAAA"}
|
|
@@ -19,7 +19,7 @@ var _style = require("../style");
|
|
|
19
19
|
*
|
|
20
20
|
* @internal exporting this only for unit tests
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
var wrapDivInATR = exports.wrapDivInATR = function wrapDivInATR(dom, div, obj) {
|
|
24
24
|
var tr = dom.createElement('tr');
|
|
25
25
|
var td = tr.appendChild(dom.createElement('td'));
|
|
@@ -40,7 +40,7 @@ var wrapDivInATR = exports.wrapDivInATR = function wrapDivInATR(dom, div, obj) {
|
|
|
40
40
|
*
|
|
41
41
|
* @internal exporting this only for unit tests
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
|
|
44
44
|
var addClickListenerToElement = exports.addClickListenerToElement = function addClickListenerToElement(div, onClickFunction) {
|
|
45
45
|
div.addEventListener('click', onClickFunction);
|
|
46
46
|
};
|
|
@@ -59,7 +59,7 @@ var addClickListenerToElement = exports.addClickListenerToElement = function add
|
|
|
59
59
|
*
|
|
60
60
|
* @internal exporting this only for unit tests
|
|
61
61
|
*/
|
|
62
|
-
|
|
62
|
+
|
|
63
63
|
var createImageDiv = exports.createImageDiv = function createImageDiv(dom, div, image) {
|
|
64
64
|
var imageDiv = div.appendChild(dom.createElement('div'));
|
|
65
65
|
imageDiv.setAttribute('style', _style.imageDivStyle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetHelpers.js","names":["_style","require","wrapDivInATR","exports","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
|
|
1
|
+
{"version":3,"file":"widgetHelpers.js","names":["_style","require","wrapDivInATR","exports","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\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\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\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,IAAAA,MAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,SAAfA,YAAYA,CAAIE,GAAiB,EAAEC,GAAmB,EAAEC,GAAQ,EAAK;EAChF,IAAMC,EAAE,GAAGH,GAAG,CAACI,aAAa,CAAC,IAAI,CAAC;EAClC,IAAMC,EAAE,GAAGF,EAAE,CAACG,WAAW,CAACN,GAAG,CAACI,aAAa,CAAC,IAAI,CAAC,CAAC;EAClDC,EAAE,CAACC,WAAW,CAACL,GAAG,CAAC;EACjBE,EAAE,CAASI,OAAO,GAAGL,GAAG;EAC1B,OAAOC,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,IAAMK,yBAAyB,GAAAT,OAAA,CAAAS,yBAAA,GAAG,SAA5BA,yBAAyBA,CAAIP,GAAmB,EAAEQ,eAA2B,EAAK;EAC7FR,GAAG,CAACS,gBAAgB,CAAC,OAAO,EAAED,eAAe,CAAC;AAChD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,IAAME,cAAc,GAAAZ,OAAA,CAAAY,cAAA,GAAG,SAAjBA,cAAcA,CAAIX,GAAiB,EAAEC,GAAmB,EAAEW,KAA2C,EAAK;EACrH,IAAMC,QAAQ,GAAGZ,GAAG,CAACK,WAAW,CAACN,GAAG,CAACI,aAAa,CAAC,KAAK,CAAC,CAAC;EAE1DS,QAAQ,CAACC,YAAY,CAAC,OAAO,EAAEC,oBAAa,CAAC;EAC7CF,QAAQ,CAACP,WAAW,CAACM,KAAK,CAAC;EAC3BA,KAAK,CAACE,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,EAAC;AAC3C,CAAC","ignoreList":[]}
|