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.
Files changed (143) hide show
  1. package/README.md +4 -0
  2. package/dist/841.solid-ui.min.js +1 -1
  3. package/dist/841.solid-ui.min.js.map +1 -1
  4. package/dist/_2b19.solid-ui.js.map +1 -1
  5. package/dist/solid-ui.js +42754 -45728
  6. package/dist/solid-ui.js.map +1 -1
  7. package/dist/solid-ui.min.js +1 -1
  8. package/dist/solid-ui.min.js.LICENSE.txt +1 -5
  9. package/dist/solid-ui.min.js.map +1 -1
  10. package/lib/acl/access-controller.js +48 -49
  11. package/lib/acl/access-controller.js.map +1 -1
  12. package/lib/acl/access-groups.js +40 -40
  13. package/lib/acl/access-groups.js.map +1 -1
  14. package/lib/acl/acl-control.js +18 -19
  15. package/lib/acl/acl-control.js.map +1 -1
  16. package/lib/acl/acl.js +4 -5
  17. package/lib/acl/acl.js.map +1 -1
  18. package/lib/acl/add-agent-buttons.js +51 -52
  19. package/lib/acl/add-agent-buttons.js.map +1 -1
  20. package/lib/chat/bookmarks.js +76 -77
  21. package/lib/chat/bookmarks.js.map +1 -1
  22. package/lib/chat/chatLogic.js +74 -75
  23. package/lib/chat/chatLogic.js.map +1 -1
  24. package/lib/chat/dateFolder.js +66 -67
  25. package/lib/chat/dateFolder.js.map +1 -1
  26. package/lib/chat/infinite.js +218 -220
  27. package/lib/chat/infinite.js.map +1 -1
  28. package/lib/chat/keys.js +62 -63
  29. package/lib/chat/keys.js.map +1 -1
  30. package/lib/chat/message.js +98 -100
  31. package/lib/chat/message.js.map +1 -1
  32. package/lib/chat/messageTools.js +99 -100
  33. package/lib/chat/messageTools.js.map +1 -1
  34. package/lib/chat/signature.d.ts.map +1 -1
  35. package/lib/chat/signature.js +0 -1
  36. package/lib/chat/signature.js.map +1 -1
  37. package/lib/chat/thread.js +57 -61
  38. package/lib/chat/thread.js.map +1 -1
  39. package/lib/create/create.js +1 -2
  40. package/lib/create/create.js.map +1 -1
  41. package/lib/folders.js +1 -4
  42. package/lib/folders.js.map +1 -1
  43. package/lib/footer/index.d.ts.map +1 -1
  44. package/lib/footer/index.js +14 -16
  45. package/lib/footer/index.js.map +1 -1
  46. package/lib/header/index.js +34 -36
  47. package/lib/header/index.js.map +1 -1
  48. package/lib/iconBase.d.ts.map +1 -1
  49. package/lib/iconBase.js +0 -1
  50. package/lib/iconBase.js.map +1 -1
  51. package/lib/index.d.ts +1 -1
  52. package/lib/index.d.ts.map +1 -1
  53. package/lib/index.js +5 -5
  54. package/lib/index.js.map +1 -1
  55. package/lib/log.d.ts +7 -7
  56. package/lib/log.d.ts.map +1 -1
  57. package/lib/log.js +2 -2
  58. package/lib/log.js.map +1 -1
  59. package/lib/login/login.js +217 -222
  60. package/lib/login/login.js.map +1 -1
  61. package/lib/matrix/matrix.js +1 -2
  62. package/lib/matrix/matrix.js.map +1 -1
  63. package/lib/matrix/types.js.map +1 -1
  64. package/lib/media/media-capture.js +3 -4
  65. package/lib/media/media-capture.js.map +1 -1
  66. package/lib/messageArea.js +1 -4
  67. package/lib/messageArea.js.map +1 -1
  68. package/lib/ns.js +1 -2
  69. package/lib/ns.js.map +1 -1
  70. package/lib/pad.js +1 -2
  71. package/lib/pad.js.map +1 -1
  72. package/lib/participation.js +1 -2
  73. package/lib/participation.js.map +1 -1
  74. package/lib/preferences.js +1 -2
  75. package/lib/preferences.js.map +1 -1
  76. package/lib/table.js +1 -2
  77. package/lib/table.js.map +1 -1
  78. package/lib/tabs.d.ts.map +1 -1
  79. package/lib/tabs.js +1 -2
  80. package/lib/tabs.js.map +1 -1
  81. package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
  82. package/lib/utils/headerFooterHelpers.js +36 -36
  83. package/lib/utils/headerFooterHelpers.js.map +1 -1
  84. package/lib/utils/index.js +1 -2
  85. package/lib/utils/index.js.map +1 -1
  86. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  87. package/lib/utils/keyHelpers/accessData.js +33 -34
  88. package/lib/utils/keyHelpers/accessData.js.map +1 -1
  89. package/lib/utils/keyHelpers/acl.d.ts.map +1 -1
  90. package/lib/utils/keyHelpers/acl.js +21 -22
  91. package/lib/utils/keyHelpers/acl.js.map +1 -1
  92. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  93. package/lib/utils/keyHelpers/otherHelpers.js +1 -2
  94. package/lib/utils/keyHelpers/otherHelpers.js.map +1 -1
  95. package/lib/utils/label.js +1 -2
  96. package/lib/utils/label.js.map +1 -1
  97. package/lib/versionInfo.d.ts +4 -3
  98. package/lib/versionInfo.d.ts.map +1 -1
  99. package/lib/versionInfo.js +30 -30
  100. package/lib/versionInfo.js.map +1 -1
  101. package/lib/widgets/buttons/iconLinks.d.ts.map +1 -1
  102. package/lib/widgets/buttons/iconLinks.js +2 -2
  103. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  104. package/lib/widgets/buttons.d.ts +1 -1
  105. package/lib/widgets/buttons.d.ts.map +1 -1
  106. package/lib/widgets/buttons.js +1 -3
  107. package/lib/widgets/buttons.js.map +1 -1
  108. package/lib/widgets/dragAndDrop.js +1 -2
  109. package/lib/widgets/dragAndDrop.js.map +1 -1
  110. package/lib/widgets/error.js +1 -2
  111. package/lib/widgets/error.js.map +1 -1
  112. package/lib/widgets/forms/autocomplete/autocompleteBar.js +47 -48
  113. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  114. package/lib/widgets/forms/autocomplete/autocompleteField.js +38 -39
  115. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  116. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
  117. package/lib/widgets/forms/autocomplete/autocompletePicker.js +44 -45
  118. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  119. package/lib/widgets/forms/autocomplete/language.js +23 -24
  120. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  121. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  122. package/lib/widgets/forms/autocomplete/publicData.js +91 -93
  123. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  124. package/lib/widgets/forms/basic.js +2 -3
  125. package/lib/widgets/forms/basic.js.map +1 -1
  126. package/lib/widgets/forms/comment.js +1 -2
  127. package/lib/widgets/forms/comment.js.map +1 -1
  128. package/lib/widgets/forms/fieldParams.js +1 -2
  129. package/lib/widgets/forms/fieldParams.js.map +1 -1
  130. package/lib/widgets/forms/formStyle.js +1 -2
  131. package/lib/widgets/forms/formStyle.js.map +1 -1
  132. package/lib/widgets/forms.js +79 -80
  133. package/lib/widgets/forms.js.map +1 -1
  134. package/lib/widgets/index.js +1 -2
  135. package/lib/widgets/index.js.map +1 -1
  136. package/lib/widgets/multiSelect.js +1 -2
  137. package/lib/widgets/multiSelect.js.map +1 -1
  138. package/lib/widgets/peoplePicker.js +1 -2
  139. package/lib/widgets/peoplePicker.js.map +1 -1
  140. package/lib/widgets/widgetHelpers.d.ts.map +1 -1
  141. package/lib/widgets/widgetHelpers.js +3 -3
  142. package/lib/widgets/widgetHelpers.js.map +1 -1
  143. package/package.json +57 -57
@@ -1 +1 @@
1
- {"version":3,"file":"autocompleteField.js","names":["ns","_interopRequireWildcard","require","_solidLogic","widgets","style","_autocompleteBar","_rdflib","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","autocompleteField","dom","container","already","subject","form","doc","callbackFunction","_kb$updater","addOneIdAndRefresh","_x","_x2","_addOneIdAndRefresh","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","result","name","oldValue","oldName","deletables","insertables","_kb$updater2","wrap","_callee$","_context","prev","next","Error","kb","the","property","any","labelProperty","equals","sameTerm","abrupt","statementsMatching","concat","st","updater","updateMany","t0","box","appendChild","errorMessageBlock","stop","deleteOne","_x3","_x4","_deleteOne","_callee2","_result","_name","_kb$updater3","e2","_callee2$","_context2","termType","store","formDoc","createElement","lhs","setAttribute","formFieldNameBoxStyle","rhs","ui","schema","dataSource","queryParams","label","anyJS","logo","targetClass","objectURIBase","undefined","endpoint","searchByNameQuery","insitituteDetailsQuery","searchByNameURI","suppressEmptyUneditable","editable","uri","autocompleteOptions","permanent","size","obj","currentObject","currentName","display","fieldLabel","barOptions","dbLookup","renderAutocompleteControl","then","control","err"],"sources":["../../../../src/widgets/forms/autocomplete/autocompleteField.ts"],"sourcesContent":["/* Form field for doing autocompleete\n */\nimport * as ns from '../../../ns'\nimport { store } from 'solid-logic'\nimport * as widgets from '../../../widgets'\nimport * as style from '../../../style'\nimport { renderAutocompleteControl } from './autocompleteBar'\nimport { QueryParameters } from './publicData'\nimport { NamedNode, BlankNode, Literal, Variable, st } from 'rdflib'\nimport { AutocompleteOptions } from './autocompletePicker'\n/**\n * Render a autocomplete form field\n *\n * The autocomplete form searches for an object in a definitive public database,\n * and allows the user to search for it by name, displaying a list of objects whose names match\n * the input to date, and letting the user either click on one of the list,\n * or just go on untill there is only one. The process then returns two values,\n * the URiI of the object and its name.\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param container If present, the created widget will be appended to this\n * @param already A hash table of (form, subject) kept to prevent recursive forms looping\n * @param subject The thing about which the form displays/edits data\n * @param form The form or field to be rendered\n * @param doc The web document in which the data is\n * @param callbackFunction Called when data is changed so other parts can be refreshed.\n *\n * Form properties:\n * @param ui:property The property to store the object itself\n * @param ui:labelProperty The property used to store the name of the object\n * @param ui:category The class of objects to be searched, if fixed (else dep on class of subject)\n *\n * @returns The HTML widget created\n */\n// eslint-disable-next-line complexity\nexport function autocompleteField (\n dom: HTMLDocument,\n container: HTMLElement | undefined,\n already,\n subject: NamedNode | BlankNode | Variable,\n form: NamedNode,\n doc: NamedNode | undefined,\n callbackFunction: (_ok: boolean, _errorMessage: string) => void\n): HTMLElement {\n async function addOneIdAndRefresh (result:NamedNode | Literal, name: Literal) {\n if (!name) {\n throw new Error('autocompleteField: No name set.')\n }\n const oldValue = kb.the(subject, property as any, null, doc)\n if (oldValue) {\n const oldName = kb.any(oldValue as any, labelProperty as any, null, doc)\n if (oldValue.equals(result) && oldName && oldName.sameTerm(name)) {\n // console.log('No change: same values.')\n return\n }\n }\n const deletables = oldValue\n ? kb.statementsMatching(subject, property as any, oldValue, doc)\n .concat(kb.statementsMatching(oldValue as any, labelProperty as any, null, doc))\n : []\n // console.log('autocompleteField Deletables ' + deletables.map(st => st.toNT()))\n const insertables = [st(subject, property as any, result, doc),\n st(result as any, labelProperty as any, name, doc)] // @@ track the language of the name too!\n // console.log(`AC form: ${deletables.length} to delete and ${insertables.length} to insert`)\n try {\n // console.log('@@@ AC updating ', deletables, insertables)\n await kb.updater?.updateMany(deletables, insertables)\n } catch (err) {\n callbackFunction(false, err)\n box.appendChild(widgets.errorMessageBlock(dom, 'Autocomplete form data update error:' + err, null, err))\n return\n }\n callbackFunction(true, '')\n }\n\n async function deleteOne (_result:NamedNode | Literal, _name: Literal) {\n const oldValue = kb.the(subject, property as any, null, doc)\n if (!oldValue) {\n callbackFunction(false, 'NO data to elete')\n box.appendChild(widgets.errorMessageBlock(dom, 'Autocomplete delete: no old data!'))\n return\n }\n // const oldName = kb.any(oldValue as any, labelProperty as any, null, doc)\n const deletables = kb.statementsMatching(subject, property as any, oldValue, doc)\n .concat(kb.statementsMatching(oldValue as any, labelProperty as any, null, doc))\n // console.log('autocompleteField Deletables ' + deletables.map(st => st.toNT()))\n const insertables = []\n // console.log(`AC form delete: ${deletables.length} to delete and ${insertables.length} to insert`)\n try {\n // console.log('@@@ AC updating ', deletables, insertables)\n await kb.updater?.updateMany(deletables, insertables)\n } catch (err) {\n const e2 = new Error('Autocomplete form data delete error:' + err)\n callbackFunction(false, err)\n box.appendChild(widgets.errorMessageBlock(dom, e2, null, err))\n return\n }\n callbackFunction(true, '') // changed\n }\n\n if (subject.termType !== 'NamedNode') {\n throw new Error('Sorry this field only works on NamedNode subjects (for editable)')\n }\n const kb = store\n const formDoc = form.doc ? form.doc() : null // @@ if blank no way to know\n\n const box = dom.createElement('div')\n if (container) container.appendChild(box)\n const lhs = dom.createElement('div')\n lhs.setAttribute('class', 'formFieldName')\n lhs.setAttribute('style', style.formFieldNameBoxStyle)\n box.appendChild(lhs)\n const rhs = dom.createElement('div')\n rhs.setAttribute('class', 'formFieldValue')\n box.appendChild(rhs)\n\n const property = kb.any(form, ns.ui('property'))\n if (!property) {\n return box.appendChild(\n widgets.errorMessageBlock(dom, 'Error: No property given for autocomplete field: ' + form)\n )\n }\n const labelProperty = kb.any(form, ns.ui('labelProperty')) || ns.schema('name')\n\n // Parse the data source into query options\n\n const dataSource = kb.any(form, ns.ui('dataSource')) as NamedNode | undefined\n if (!dataSource) {\n // console.log('@@ connectedStatements ACF ', kb.connectedStatements(form).map(x => x.toNT()).join('\\n'))\n return box.appendChild(\n widgets.errorMessageBlock(dom, 'Error: No data source given for autocomplete field: ' + form)\n )\n }\n const queryParams:QueryParameters = {\n // targetClass: kb.any(dataSource, ns.ui('targetClass'), null, dataSource.doc()) as NamedNode | undefined,\n label: kb.anyJS(dataSource, ns.schema('name'), null, dataSource.doc()),\n logo: (kb.any(dataSource, ns.schema('logo'), null, dataSource.doc())) as NamedNode | undefined\n }\n\n // @@ Should we pass the target class in from the data source definition or use a current type of the subject\n const targetClass = (kb.any(form, ns.ui('targetClass'), null, form.doc()) || // class in form takes pecedence\n kb.any(dataSource, ns.ui('targetClass'), null, dataSource.doc())) as NamedNode | undefined\n if (targetClass) {\n queryParams.targetClass = targetClass\n }\n\n queryParams.objectURIBase = (kb.any(dataSource, ns.ui('objectURIBase'), null, dataSource.doc()) || undefined) as NamedNode | undefined\n\n /*\n if (!queryParams.targetClass) {\n const klass = kb.any(subject, ns.rdf('type')) as NamedNode | undefined\n // @@ be more selective of which class if many\n // @@ todo: Take ALL classes, and compare them with those the data source knows about\n // with translation where necessary. Find most specific of the classes for the search.\n if (!klass) throw new Error('Autocomplete: No class specified or is current type of' + subject)\n queryParams.targetClass = klass\n }\n */\n const endpoint = kb.anyJS(dataSource, ns.ui('endpoint'), null, dataSource.doc()) as string | undefined\n if (endpoint) { // SPARQL\n queryParams.endpoint = endpoint\n\n queryParams.searchByNameQuery = kb.anyJS(dataSource, ns.ui('searchByNameQuery'), null, dataSource.doc())\n if (!queryParams.searchByNameQuery) {\n return box.appendChild(\n widgets.errorMessageBlock(dom, 'Error: No searchByNameQuery given for endpoint data Source: ' + form))\n }\n queryParams.insitituteDetailsQuery = kb.anyJS(dataSource, ns.ui('insitituteDetailsQuery'), null, dataSource.doc())\n } else {\n // return box.appendChild(\n // widgets.errorMessageBlock(dom, 'Error: No SPARQL endpoint given for autocomplete field: ' + form))\n const searchByNameURI = kb.anyJS(dataSource, ns.ui('searchByNameURI'))\n if (!searchByNameURI) {\n return box.appendChild(\n widgets.errorMessageBlock(dom, 'Error: No searchByNameURI OR sparql endpoint given for dataSource: ' + dataSource)\n )\n }\n queryParams.searchByNameURI = searchByNameURI\n }\n // It can be cleaner to just remove empty fields if you can't edit them anyway\n const suppressEmptyUneditable = kb.anyJS(form, ns.ui('suppressEmptyUneditable'), null, formDoc)\n const editable = kb.updater?.editable((doc as NamedNode).uri)\n\n const autocompleteOptions:AutocompleteOptions = { // cancelButton?: HTMLElement,\n permanent: true,\n targetClass: queryParams.targetClass, // @@ simplify?\n queryParams\n }\n\n autocompleteOptions.size = kb.anyJS(form, ns.ui('size'), null, formDoc) || undefined\n\n let obj = kb.any(subject, property as any, undefined, doc)\n if (!obj) {\n obj = kb.any(form, ns.ui('default'))\n if (obj) {\n autocompleteOptions.currentObject = obj as NamedNode\n autocompleteOptions.currentName = kb.any(autocompleteOptions.currentObject, labelProperty, null, doc) as Literal\n } else { // No data or default. Should we suprress the whole field?\n if (suppressEmptyUneditable && !editable) {\n box.style.display = 'none' // clutter removal\n return box\n }\n }\n } else { // get object and name from target data:\n autocompleteOptions.currentObject = obj as NamedNode\n autocompleteOptions.currentName = kb.any(autocompleteOptions.currentObject, labelProperty, null, doc) as Literal\n }\n\n lhs.appendChild(widgets.fieldLabel(dom, property as any, form))\n\n const barOptions = {\n editable,\n dbLookup: true\n }\n\n renderAutocompleteControl(dom, subject as NamedNode, barOptions, autocompleteOptions, addOneIdAndRefresh, deleteOne).then((control) => {\n rhs.appendChild(control)\n }, (err) => {\n rhs.appendChild(widgets.errorMessageBlock(dom, `Error rendering autocomplete ${form}: ${err}`, '#fee', err)) //\n })\n return box\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"autocompleteField.js","names":["ns","_interopRequireWildcard","require","_solidLogic","widgets","style","_autocompleteBar","_rdflib","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t3","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","autocompleteField","dom","container","already","subject","form","doc","callbackFunction","_kb$updater","addOneIdAndRefresh","_x","_x2","_addOneIdAndRefresh","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","result","name","oldValue","oldName","deletables","insertables","_kb$updater2","_t","wrap","_context","prev","next","Error","kb","the","property","any","labelProperty","equals","sameTerm","abrupt","statementsMatching","concat","st","updater","updateMany","box","appendChild","errorMessageBlock","stop","deleteOne","_x3","_x4","_deleteOne","_callee2","_result","_name","_kb$updater3","e2","_t2","_context2","termType","store","formDoc","createElement","lhs","setAttribute","formFieldNameBoxStyle","rhs","ui","schema","dataSource","queryParams","label","anyJS","logo","targetClass","objectURIBase","undefined","endpoint","searchByNameQuery","insitituteDetailsQuery","searchByNameURI","suppressEmptyUneditable","editable","uri","autocompleteOptions","permanent","size","obj","currentObject","currentName","display","fieldLabel","barOptions","dbLookup","renderAutocompleteControl","then","control","err"],"sources":["../../../../src/widgets/forms/autocomplete/autocompleteField.ts"],"sourcesContent":["/* Form field for doing autocompleete\n */\nimport * as ns from '../../../ns'\nimport { store } from 'solid-logic'\nimport * as widgets from '../../../widgets'\nimport * as style from '../../../style'\nimport { renderAutocompleteControl } from './autocompleteBar'\nimport { QueryParameters } from './publicData'\nimport { NamedNode, BlankNode, Literal, Variable, st } from 'rdflib'\nimport { AutocompleteOptions } from './autocompletePicker'\n/**\n * Render a autocomplete form field\n *\n * The autocomplete form searches for an object in a definitive public database,\n * and allows the user to search for it by name, displaying a list of objects whose names match\n * the input to date, and letting the user either click on one of the list,\n * or just go on untill there is only one. The process then returns two values,\n * the URiI of the object and its name.\n *\n * @param dom The HTML Document object aka Document Object Model\n * @param container If present, the created widget will be appended to this\n * @param already A hash table of (form, subject) kept to prevent recursive forms looping\n * @param subject The thing about which the form displays/edits data\n * @param form The form or field to be rendered\n * @param doc The web document in which the data is\n * @param callbackFunction Called when data is changed so other parts can be refreshed.\n *\n * Form properties:\n * @param ui:property The property to store the object itself\n * @param ui:labelProperty The property used to store the name of the object\n * @param ui:category The class of objects to be searched, if fixed (else dep on class of subject)\n *\n * @returns The HTML widget created\n */\n\nexport function autocompleteField (\n dom: HTMLDocument,\n container: HTMLElement | undefined,\n already,\n subject: NamedNode | BlankNode | Variable,\n form: NamedNode,\n doc: NamedNode | undefined,\n callbackFunction: (_ok: boolean, _errorMessage: string) => void\n): HTMLElement {\n async function addOneIdAndRefresh (result:NamedNode | Literal, name: Literal) {\n if (!name) {\n throw new Error('autocompleteField: No name set.')\n }\n const oldValue = kb.the(subject, property as any, null, doc)\n if (oldValue) {\n const oldName = kb.any(oldValue as any, labelProperty as any, null, doc)\n if (oldValue.equals(result) && oldName && oldName.sameTerm(name)) {\n // console.log('No change: same values.')\n return\n }\n }\n const deletables = oldValue\n ? kb.statementsMatching(subject, property as any, oldValue, doc)\n .concat(kb.statementsMatching(oldValue as any, labelProperty as any, null, doc))\n : []\n // console.log('autocompleteField Deletables ' + deletables.map(st => st.toNT()))\n const insertables = [st(subject, property as any, result, doc),\n st(result as any, labelProperty as any, name, doc)] // @@ track the language of the name too!\n // console.log(`AC form: ${deletables.length} to delete and ${insertables.length} to insert`)\n try {\n // console.log('@@@ AC updating ', deletables, insertables)\n await kb.updater?.updateMany(deletables, insertables)\n } catch (err) {\n callbackFunction(false, err)\n box.appendChild(widgets.errorMessageBlock(dom, 'Autocomplete form data update error:' + err, null, err))\n return\n }\n callbackFunction(true, '')\n }\n\n async function deleteOne (_result:NamedNode | Literal, _name: Literal) {\n const oldValue = kb.the(subject, property as any, null, doc)\n if (!oldValue) {\n callbackFunction(false, 'NO data to elete')\n box.appendChild(widgets.errorMessageBlock(dom, 'Autocomplete delete: no old data!'))\n return\n }\n // const oldName = kb.any(oldValue as any, labelProperty as any, null, doc)\n const deletables = kb.statementsMatching(subject, property as any, oldValue, doc)\n .concat(kb.statementsMatching(oldValue as any, labelProperty as any, null, doc))\n // console.log('autocompleteField Deletables ' + deletables.map(st => st.toNT()))\n const insertables = []\n // console.log(`AC form delete: ${deletables.length} to delete and ${insertables.length} to insert`)\n try {\n // console.log('@@@ AC updating ', deletables, insertables)\n await kb.updater?.updateMany(deletables, insertables)\n } catch (err) {\n const e2 = new Error('Autocomplete form data delete error:' + err)\n callbackFunction(false, err)\n box.appendChild(widgets.errorMessageBlock(dom, e2, null, err))\n return\n }\n callbackFunction(true, '') // changed\n }\n\n if (subject.termType !== 'NamedNode') {\n throw new Error('Sorry this field only works on NamedNode subjects (for editable)')\n }\n const kb = store\n const formDoc = form.doc ? form.doc() : null // @@ if blank no way to know\n\n const box = dom.createElement('div')\n if (container) container.appendChild(box)\n const lhs = dom.createElement('div')\n lhs.setAttribute('class', 'formFieldName')\n lhs.setAttribute('style', style.formFieldNameBoxStyle)\n box.appendChild(lhs)\n const rhs = dom.createElement('div')\n rhs.setAttribute('class', 'formFieldValue')\n box.appendChild(rhs)\n\n const property = kb.any(form, ns.ui('property'))\n if (!property) {\n return box.appendChild(\n widgets.errorMessageBlock(dom, 'Error: No property given for autocomplete field: ' + form)\n )\n }\n const labelProperty = kb.any(form, ns.ui('labelProperty')) || ns.schema('name')\n\n // Parse the data source into query options\n\n const dataSource = kb.any(form, ns.ui('dataSource')) as NamedNode | undefined\n if (!dataSource) {\n // console.log('@@ connectedStatements ACF ', kb.connectedStatements(form).map(x => x.toNT()).join('\\n'))\n return box.appendChild(\n widgets.errorMessageBlock(dom, 'Error: No data source given for autocomplete field: ' + form)\n )\n }\n const queryParams:QueryParameters = {\n // targetClass: kb.any(dataSource, ns.ui('targetClass'), null, dataSource.doc()) as NamedNode | undefined,\n label: kb.anyJS(dataSource, ns.schema('name'), null, dataSource.doc()),\n logo: (kb.any(dataSource, ns.schema('logo'), null, dataSource.doc())) as NamedNode | undefined\n }\n\n // @@ Should we pass the target class in from the data source definition or use a current type of the subject\n const targetClass = (kb.any(form, ns.ui('targetClass'), null, form.doc()) || // class in form takes pecedence\n kb.any(dataSource, ns.ui('targetClass'), null, dataSource.doc())) as NamedNode | undefined\n if (targetClass) {\n queryParams.targetClass = targetClass\n }\n\n queryParams.objectURIBase = (kb.any(dataSource, ns.ui('objectURIBase'), null, dataSource.doc()) || undefined) as NamedNode | undefined\n\n /*\n if (!queryParams.targetClass) {\n const klass = kb.any(subject, ns.rdf('type')) as NamedNode | undefined\n // @@ be more selective of which class if many\n // @@ todo: Take ALL classes, and compare them with those the data source knows about\n // with translation where necessary. Find most specific of the classes for the search.\n if (!klass) throw new Error('Autocomplete: No class specified or is current type of' + subject)\n queryParams.targetClass = klass\n }\n */\n const endpoint = kb.anyJS(dataSource, ns.ui('endpoint'), null, dataSource.doc()) as string | undefined\n if (endpoint) { // SPARQL\n queryParams.endpoint = endpoint\n\n queryParams.searchByNameQuery = kb.anyJS(dataSource, ns.ui('searchByNameQuery'), null, dataSource.doc())\n if (!queryParams.searchByNameQuery) {\n return box.appendChild(\n widgets.errorMessageBlock(dom, 'Error: No searchByNameQuery given for endpoint data Source: ' + form))\n }\n queryParams.insitituteDetailsQuery = kb.anyJS(dataSource, ns.ui('insitituteDetailsQuery'), null, dataSource.doc())\n } else {\n // return box.appendChild(\n // widgets.errorMessageBlock(dom, 'Error: No SPARQL endpoint given for autocomplete field: ' + form))\n const searchByNameURI = kb.anyJS(dataSource, ns.ui('searchByNameURI'))\n if (!searchByNameURI) {\n return box.appendChild(\n widgets.errorMessageBlock(dom, 'Error: No searchByNameURI OR sparql endpoint given for dataSource: ' + dataSource)\n )\n }\n queryParams.searchByNameURI = searchByNameURI\n }\n // It can be cleaner to just remove empty fields if you can't edit them anyway\n const suppressEmptyUneditable = kb.anyJS(form, ns.ui('suppressEmptyUneditable'), null, formDoc)\n const editable = kb.updater?.editable((doc as NamedNode).uri)\n\n const autocompleteOptions:AutocompleteOptions = { // cancelButton?: HTMLElement,\n permanent: true,\n targetClass: queryParams.targetClass, // @@ simplify?\n queryParams\n }\n\n autocompleteOptions.size = kb.anyJS(form, ns.ui('size'), null, formDoc) || undefined\n\n let obj = kb.any(subject, property as any, undefined, doc)\n if (!obj) {\n obj = kb.any(form, ns.ui('default'))\n if (obj) {\n autocompleteOptions.currentObject = obj as NamedNode\n autocompleteOptions.currentName = kb.any(autocompleteOptions.currentObject, labelProperty, null, doc) as Literal\n } else { // No data or default. Should we suprress the whole field?\n if (suppressEmptyUneditable && !editable) {\n box.style.display = 'none' // clutter removal\n return box\n }\n }\n } else { // get object and name from target data:\n autocompleteOptions.currentObject = obj as NamedNode\n autocompleteOptions.currentName = kb.any(autocompleteOptions.currentObject, labelProperty, null, doc) as Literal\n }\n\n lhs.appendChild(widgets.fieldLabel(dom, property as any, form))\n\n const barOptions = {\n editable,\n dbLookup: true\n }\n\n renderAutocompleteControl(dom, subject as NamedNode, barOptions, autocompleteOptions, addOneIdAndRefresh, deleteOne).then((control) => {\n rhs.appendChild(control)\n }, (err) => {\n rhs.appendChild(widgets.errorMessageBlock(dom, `Error rendering autocomplete ${form}: ${err}`, '#fee', err)) //\n })\n return box\n}\n\n// ends\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"autocompletePicker.d.ts","sourceRoot":"","sources":["../../../../src/widgets/forms/autocomplete/autocompletePicker.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAA4D,eAAe,EAAE,MAAM,cAAc,CAAA;AAoBxG,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,eAAe,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,UAAU,SAAS;IACjB,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC;CAC5C;AAED,wBAAgB,UAAU,CAAE,OAAO,EAAC,WAAW,EAAE,OAAO,EAAC,OAAO,QAE/D;AAGD,wBAAsB,kBAAkB,CAAE,GAAG,EAAE,YAAY,EACzD,SAAS,EAAC,mBAAmB,EAC7B,UAAU,EAAE,sBAAsB,EAClC,QAAQ,EAAE,SAAS,2BAyPpB"}
1
+ {"version":3,"file":"autocompletePicker.d.ts","sourceRoot":"","sources":["../../../../src/widgets/forms/autocomplete/autocompletePicker.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAA4D,eAAe,EAAE,MAAM,cAAc,CAAA;AAoBxG,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,eAAe,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,UAAU,SAAS;IACjB,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC;CAC5C;AAED,wBAAgB,UAAU,CAAE,OAAO,EAAC,WAAW,EAAE,OAAO,EAAC,OAAO,QAE/D;AAGD,wBAAsB,kBAAkB,CAAE,GAAG,EAAE,YAAY,EACzD,SAAS,EAAC,mBAAmB,EAC7B,UAAU,EAAE,sBAAsB,EAClC,QAAQ,EAAE,SAAS,2BAyPpB"}
@@ -16,8 +16,7 @@ var widgets = _interopRequireWildcard(require("../../../widgets"));
16
16
  var _solidLogic = require("solid-logic");
17
17
  var _publicData = require("./publicData");
18
18
  var _language = require("./language");
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
- 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; }
19
+ 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 _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
21
20
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22
21
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
23
22
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } /* Autocomplete Picker: Create and edit data using public data
@@ -54,7 +53,7 @@ function renderAutoComplete(_x, _x2, _x3, _x4) {
54
53
  function _renderAutoComplete() {
55
54
  _renderAutoComplete = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(dom, acOptions, decoration, callback) {
56
55
  var complain, finish, gotIt, _gotIt, acceptButtonHandler, _acceptButtonHandler, cancelButtonHandler, _cancelButtonHandler, nameMatch, clearList, inputEventHHandler, _inputEventHHandler, loadBindingsAndFilterByLanguage, _loadBindingsAndFilterByLanguage, filterByName, refreshList, _refreshList, initialize, targetClass, lastBindings, loadedEnough, inputEventHandlerLock, allDisplayed, lastFilter, numberOfRows, div, foundName, foundObject, table, head, cell, searchInput, size, searchInputStyle;
57
- return _regenerator["default"].wrap(function _callee8$(_context8) {
56
+ return _regenerator["default"].wrap(function (_context8) {
58
57
  while (1) switch (_context8.prev = _context8.next) {
59
58
  case 0:
60
59
  initialize = function _initialize() {
@@ -87,7 +86,7 @@ function _renderAutoComplete() {
87
86
  _refreshList = function _refreshList3() {
88
87
  _refreshList = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
89
88
  var rowForBinding, compareBindingsByName, languagePrefs, filter, slimmed, displayable, _iterator, _step, binding;
90
- return _regenerator["default"].wrap(function _callee7$(_context7) {
89
+ return _regenerator["default"].wrap(function (_context7) {
91
90
  while (1) switch (_context7.prev = _context7.next) {
92
91
  case 0:
93
92
  compareBindingsByName = function _compareBindingsByNam(self, other) {
@@ -103,7 +102,7 @@ function _renderAutoComplete() {
103
102
  var nameTerm = (0, _publicData.bindingToTerm)(binding.name);
104
103
  row.addEventListener('click', /*#__PURE__*/function () {
105
104
  var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(_event) {
106
- return _regenerator["default"].wrap(function _callee6$(_context6) {
105
+ return _regenerator["default"].wrap(function (_context6) {
107
106
  while (1) switch (_context6.prev = _context6.next) {
108
107
  case 0:
109
108
  debug.log(' click row textContent: ' + row.textContent);
@@ -111,13 +110,13 @@ function _renderAutoComplete() {
111
110
  if (object && nameTerm) {
112
111
  gotIt(object, nameTerm);
113
112
  }
114
- case 3:
113
+ case 1:
115
114
  case "end":
116
115
  return _context6.stop();
117
116
  }
118
117
  }, _callee6);
119
118
  }));
120
- return function (_x12) {
119
+ return function (_x10) {
121
120
  return _ref.apply(this, arguments);
122
121
  };
123
122
  }());
@@ -125,40 +124,40 @@ function _renderAutoComplete() {
125
124
  }; // console.log('@@ refreshList called')
126
125
  // rowForBinding
127
126
  if (!inputEventHandlerLock) {
128
- _context7.next = 5;
127
+ _context7.next = 1;
129
128
  break;
130
129
  }
131
130
  debug.log("Ignoring \"".concat(searchInput.value, "\" because of lock "));
132
131
  return _context7.abrupt("return");
133
- case 5:
132
+ case 1:
134
133
  debug.log("Setting lock at \"".concat(searchInput.value, "\""));
135
134
  inputEventHandlerLock = true;
136
- _context7.next = 9;
135
+ _context7.next = 2;
137
136
  return (0, _language.getPreferredLanguages)();
138
- case 9:
137
+ case 2:
139
138
  languagePrefs = _context7.sent;
140
139
  filter = searchInput.value.trim().toLowerCase();
141
140
  if (!(filter.length < AUTOCOMPLETE_THRESHOLD)) {
142
- _context7.next = 16;
141
+ _context7.next = 3;
143
142
  break;
144
143
  }
145
144
  // too small
146
145
  clearList();
147
146
  // candidatesLoaded = false
148
147
  numberOfRows = AUTOCOMPLETE_ROWS;
149
- _context7.next = 31;
148
+ _context7.next = 6;
150
149
  break;
151
- case 16:
150
+ case 3:
152
151
  if (!(!allDisplayed || !lastFilter || !filter.startsWith(lastFilter))) {
153
- _context7.next = 21;
152
+ _context7.next = 5;
154
153
  break;
155
154
  }
156
155
  debug.log(" Querying database at \"".concat(filter, "\" cf last \"").concat(lastFilter, "\"."));
157
- _context7.next = 20;
156
+ _context7.next = 4;
158
157
  return loadBindingsAndFilterByLanguage(filter, languagePrefs);
159
- case 20:
158
+ case 4:
160
159
  lastBindings = _context7.sent;
161
- case 21:
160
+ case 5:
162
161
  // Trim table as search gets tighter:
163
162
  slimmed = filterByName(filter, lastBindings);
164
163
  if (loadedEnough && slimmed.length <= AUTOCOMPLETE_ROWS_STRETCH) {
@@ -183,10 +182,10 @@ function _renderAutoComplete() {
183
182
  if (slimmed.length === 1) {
184
183
  gotIt((0, _publicData.bindingToTerm)(slimmed[0].subject), (0, _publicData.bindingToTerm)(slimmed[0].name));
185
184
  }
186
- case 31:
185
+ case 6:
187
186
  // else
188
187
  inputEventHandlerLock = false;
189
- case 32:
188
+ case 7:
190
189
  case "end":
191
190
  return _context7.stop();
192
191
  }
@@ -204,24 +203,24 @@ function _renderAutoComplete() {
204
203
  };
205
204
  _loadBindingsAndFilterByLanguage = function _loadBindingsAndFilte2() {
206
205
  _loadBindingsAndFilterByLanguage = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(filter, languagePrefs) {
207
- var bindings, slimmed;
208
- return _regenerator["default"].wrap(function _callee5$(_context5) {
206
+ var bindings, slimmed, _t;
207
+ return _regenerator["default"].wrap(function (_context5) {
209
208
  while (1) switch (_context5.prev = _context5.next) {
210
209
  case 0:
211
210
  _context5.prev = 0;
212
- _context5.next = 3;
211
+ _context5.next = 1;
213
212
  return (0, _publicData.queryPublicDataByName)(filter, targetClass, languagePrefs || _language.defaultPreferredLanguages, acOptions.queryParams);
214
- case 3:
213
+ case 1:
215
214
  bindings = _context5.sent;
216
- _context5.next = 11;
215
+ _context5.next = 3;
217
216
  break;
218
- case 6:
219
- _context5.prev = 6;
220
- _context5.t0 = _context5["catch"](0);
221
- complain('Error querying db of organizations: ' + _context5.t0);
217
+ case 2:
218
+ _context5.prev = 2;
219
+ _t = _context5["catch"](0);
220
+ complain('Error querying db of organizations: ' + _t);
222
221
  inputEventHandlerLock = false;
223
222
  return _context5.abrupt("return");
224
- case 11:
223
+ case 3:
225
224
  loadedEnough = bindings.length < _publicData.AUTOCOMPLETE_LIMIT;
226
225
  if (loadedEnough) {
227
226
  lastFilter = filter;
@@ -231,20 +230,20 @@ function _renderAutoComplete() {
231
230
  clearList();
232
231
  slimmed = (0, _language.filterByLanguage)(bindings, languagePrefs);
233
232
  return _context5.abrupt("return", slimmed);
234
- case 16:
233
+ case 4:
235
234
  case "end":
236
235
  return _context5.stop();
237
236
  }
238
- }, _callee5, null, [[0, 6]]);
237
+ }, _callee5, null, [[0, 2]]);
239
238
  }));
240
239
  return _loadBindingsAndFilterByLanguage.apply(this, arguments);
241
240
  };
242
- loadBindingsAndFilterByLanguage = function _loadBindingsAndFilte(_x10, _x11) {
241
+ loadBindingsAndFilterByLanguage = function _loadBindingsAndFilte(_x0, _x1) {
243
242
  return _loadBindingsAndFilterByLanguage.apply(this, arguments);
244
243
  };
245
244
  _inputEventHHandler = function _inputEventHHandler3() {
246
245
  _inputEventHHandler = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(_event) {
247
- return _regenerator["default"].wrap(function _callee4$(_context4) {
246
+ return _regenerator["default"].wrap(function (_context4) {
248
247
  while (1) switch (_context4.prev = _context4.next) {
249
248
  case 0:
250
249
  // console.log('@@ AC inputEventHHandler called')
@@ -256,7 +255,7 @@ function _renderAutoComplete() {
256
255
  }
257
256
  runningTimeout = setTimeout(refreshList, AUTOCOMPLETE_DEBOUNCE_MS)
258
257
  */
259
- case 2:
258
+ case 1:
260
259
  case "end":
261
260
  return _context4.stop();
262
261
  }
@@ -282,7 +281,7 @@ function _renderAutoComplete() {
282
281
  };
283
282
  _cancelButtonHandler = function _cancelButtonHandler3() {
284
283
  _cancelButtonHandler = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(_event) {
285
- return _regenerator["default"].wrap(function _callee3$(_context3) {
284
+ return _regenerator["default"].wrap(function (_context3) {
286
285
  while (1) switch (_context3.prev = _context3.next) {
287
286
  case 0:
288
287
  debug.log('Auto complete: Canceled by user! ');
@@ -293,7 +292,7 @@ function _renderAutoComplete() {
293
292
  div.parentNode.removeChild(div);
294
293
  }
295
294
  }
296
- case 2:
295
+ case 1:
297
296
  case "end":
298
297
  return _context3.stop();
299
298
  }
@@ -306,7 +305,7 @@ function _renderAutoComplete() {
306
305
  };
307
306
  _acceptButtonHandler = function _acceptButtonHandler3() {
308
307
  _acceptButtonHandler = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(_event) {
309
- return _regenerator["default"].wrap(function _callee2$(_context2) {
308
+ return _regenerator["default"].wrap(function (_context2) {
310
309
  while (1) switch (_context2.prev = _context2.next) {
311
310
  case 0:
312
311
  if (foundName && searchInput.value === foundName.value) {
@@ -326,11 +325,11 @@ function _renderAutoComplete() {
326
325
  };
327
326
  _gotIt = function _gotIt3() {
328
327
  _gotIt = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(object, name) {
329
- return _regenerator["default"].wrap(function _callee$(_context) {
328
+ return _regenerator["default"].wrap(function (_context) {
330
329
  while (1) switch (_context.prev = _context.next) {
331
330
  case 0:
332
331
  if (!decoration.acceptButton) {
333
- _context.next = 10;
332
+ _context.next = 1;
334
333
  break;
335
334
  }
336
335
  decoration.acceptButton.disbaled = false;
@@ -342,10 +341,10 @@ function _renderAutoComplete() {
342
341
  debug.log('Auto complete: waiting for accept ' + object);
343
342
  clearList(); // This may be an option - nice and clean but does not allow change of mind
344
343
  return _context.abrupt("return");
345
- case 10:
344
+ case 1:
346
345
  setVisible(decoration.cancelButton, true);
347
346
  finish(object, name);
348
- case 12:
347
+ case 2:
349
348
  case "end":
350
349
  return _context.stop();
351
350
  }
@@ -380,11 +379,11 @@ function _renderAutoComplete() {
380
379
  // const queryParams: QueryParameters = acOptions.queryParams
381
380
  targetClass = acOptions.targetClass;
382
381
  if (targetClass) {
383
- _context8.next = 21;
382
+ _context8.next = 1;
384
383
  break;
385
384
  }
386
385
  throw new Error('renderAutoComplete: missing targetClass');
387
- case 21:
386
+ case 1:
388
387
  // console.log(`renderAutoComplete: targetClass=${targetClass}` )
389
388
  if (decoration.acceptButton) {
390
389
  decoration.acceptButton.addEventListener('click', acceptButtonHandler, false);
@@ -426,7 +425,7 @@ function _renderAutoComplete() {
426
425
  searchInput.addEventListener('input', inputEventHHandler);
427
426
  // console.log('@@ renderAutoComplete returns ' + div.innerHTML)
428
427
  return _context8.abrupt("return", div);
429
- case 48:
428
+ case 2:
430
429
  case "end":
431
430
  return _context8.stop();
432
431
  }
@@ -1 +1 @@
1
- {"version":3,"file":"autocompletePicker.js","names":["debug","_interopRequireWildcard","require","style","_styleConstants","_interopRequireDefault","widgets","_solidLogic","_publicData","_language","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","f","TypeError","o","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","AUTOCOMPLETE_THRESHOLD","AUTOCOMPLETE_ROWS","AUTOCOMPLETE_ROWS_STRETCH","setVisible","element","visible","display","renderAutoComplete","_x","_x2","_x3","_x4","_renderAutoComplete","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee8","dom","acOptions","decoration","callback","complain","finish","gotIt","_gotIt","acceptButtonHandler","_acceptButtonHandler","cancelButtonHandler","_cancelButtonHandler","nameMatch","clearList","inputEventHHandler","_inputEventHHandler","loadBindingsAndFilterByLanguage","_loadBindingsAndFilterByLanguage","filterByName","refreshList","_refreshList","initialize","targetClass","lastBindings","loadedEnough","inputEventHandlerLock","allDisplayed","lastFilter","numberOfRows","div","foundName","foundObject","table","head","cell","searchInput","size","searchInputStyle","wrap","_callee8$","_context8","prev","_initialize","currentObject","currentName","undefined","deleteButton","acceptButton","editButton","cancelButton","_refreshList3","_callee7","rowForBinding","compareBindingsByName","languagePrefs","filter","slimmed","displayable","_iterator","_step","binding","_callee7$","_context7","_compareBindingsByNam","self","other","_rowForBinding","row","createElement","setStyle","setAttribute","color","textContent","object","bindingToTerm","subject","nameTerm","addEventListener","_ref","_callee6","_event","_callee6$","_context6","log","stop","_x12","concat","abrupt","getPreferredLanguages","sent","trim","toLowerCase","startsWith","sort","appendChild","err","_refreshList2","_filterByName","bindings","_loadBindingsAndFilte2","_callee5","_callee5$","_context5","queryPublicDataByName","defaultPreferredLanguages","queryParams","t0","AUTOCOMPLETE_LIMIT","filterByLanguage","_loadBindingsAndFilte","_x10","_x11","_inputEventHHandler3","_callee4","_callee4$","_context4","_inputEventHHandler2","_x9","_clearList","children","removeChild","lastChild","_nameMatch","candidate","parts","split","j","word","indexOf","_cancelButtonHandler3","_callee3","_callee3$","_context3","permanent","parentNode","_cancelButtonHandler2","_x8","_acceptButtonHandler3","_callee2","_callee2$","_context2","_acceptButtonHandler2","_x7","_gotIt3","_callee","_callee$","_context","disbaled","_gotIt2","_x5","_x6","_finish","termType","objectURIBase","store","sym","_complain","message","errorRow","Error","errorMessageBlock","padding","styleConstants","textInputSize","textInputStyle","event","keyCode"],"sources":["../../../../src/widgets/forms/autocomplete/autocompletePicker.ts"],"sourcesContent":["/* Autocomplete Picker: Create and edit data using public data\n**\n** As the data source is passed as a parameter, all kinds of APIa and query services can be used\n**\n*/\nimport * as debug from '../../../debug'\nimport * as style from '../../../style'\nimport styleConstants from '../../../styleConstants'\nimport * as widgets from '../../../widgets'\nimport { store } from 'solid-logic'\nimport { NamedNode, Literal } from 'rdflib'\nimport { queryPublicDataByName, bindingToTerm, AUTOCOMPLETE_LIMIT, QueryParameters } from './publicData'\nimport { filterByLanguage, getPreferredLanguages, defaultPreferredLanguages } from './language'\n\nconst AUTOCOMPLETE_THRESHOLD = 4 // don't check until this many characters typed\nconst AUTOCOMPLETE_ROWS = 20 // 20?\nconst AUTOCOMPLETE_ROWS_STRETCH = 40\n\n/*\nAutocomplete happens in 6 phases:\n 1. The search string is too small to bother\n 2. The search string is big enough, and we have not loaded the array\n 3. The search string is big enough, and we have loaded array up to the limit\n Display them and wait for more user input\n 4. The search string is big enough, and we have loaded array NOT to the limit\n but including all matches. No more fetches.\n If user gets more precise, wait for them to select one - or reduce to a single\n 5. Single one selected. Optionally waiting for accept button to be pressed, OR can change string and go to 5 or 2\n 6. Locked with a value. Press 'edit' button to return to 5\n*/\n\nexport type AutocompleteDecoration = {\n acceptButton?: HTMLElement,\n cancelButton: HTMLElement, // Must have cancel button\n editButton?: HTMLElement,\n deleteButton?: HTMLElement\n}\nexport type AutocompleteOptions = {\n targetClass?: NamedNode,\n currentObject?: NamedNode,\n currentName?: Literal,\n queryParams: QueryParameters,\n size?: number,\n permanent?: boolean\n}\n\ninterface Callback1 {\n (_subject: NamedNode, _name: Literal): any;\n}\n\nexport function setVisible (element:HTMLElement, visible:boolean) {\n element.style.display = visible ? '' : 'none' // Do not use visibility, it holds the real estate\n}\n\n// The core of the autocomplete UI\nexport async function renderAutoComplete (dom: HTMLDocument,\n acOptions:AutocompleteOptions,\n decoration: AutocompleteDecoration,\n callback: Callback1) {\n function complain (message) {\n const errorRow = table.appendChild(dom.createElement('tr'))\n debug.log(message)\n const err = new Error(message)\n errorRow.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))\n // errorMessageBlock will log the stack to the console\n style.setStyle(errorRow, 'autocompleteRowStyle')\n errorRow.style.padding = '1em'\n }\n\n function finish (object, name) {\n debug.log('Auto complete: finish! ' + object)\n if (object.termType === 'Literal' && acOptions.queryParams.objectURIBase) {\n object = store.sym(acOptions.queryParams.objectURIBase.value + object.value)\n }\n // remove(decoration.cancelButton)\n // remove(decoration.acceptButton)\n // remove(div)\n clearList()\n callback(object, name)\n }\n async function gotIt (object:NamedNode | Literal, name: Literal) {\n if (decoration.acceptButton) {\n (decoration.acceptButton as any).disbaled = false\n setVisible(decoration.acceptButton, true) // now wait for confirmation\n searchInput.value = name.value // complete it\n foundName = name\n foundObject = object\n debug.log('Auto complete: name: ' + name)\n debug.log('Auto complete: waiting for accept ' + object)\n clearList() // This may be an option - nice and clean but does not allow change of mind\n return\n }\n setVisible(decoration.cancelButton, true)\n finish(object, name)\n }\n\n async function acceptButtonHandler (_event) {\n if (foundName && searchInput.value === foundName.value) { // still\n finish(foundObject, foundName)\n }\n }\n\n async function cancelButtonHandler (_event) {\n debug.log('Auto complete: Canceled by user! ')\n if (acOptions.permanent) {\n initialize()\n } else {\n if (div.parentNode) {\n div.parentNode.removeChild(div)\n }\n }\n }\n\n function nameMatch (filter:string, candidate: string):boolean {\n const parts = filter.split(' ') // Each name part must be somewhere\n for (let j = 0; j < parts.length; j++) {\n const word = parts[j]\n if (candidate.toLowerCase().indexOf(word) < 0) return false\n }\n return true\n }\n\n function clearList () {\n while (table.children.length > 1) {\n table.removeChild(table.lastChild as Node)\n }\n }\n\n async function inputEventHHandler (_event) {\n // console.log('@@ AC inputEventHHandler called')\n setVisible(decoration.cancelButton, true) // only allow cancel when there is something to cancel\n refreshList() /// @@ debounqce does not work with jest\n /*\n if (runningTimeout) {\n clearTimeout(runningTimeout)\n }\n runningTimeout = setTimeout(refreshList, AUTOCOMPLETE_DEBOUNCE_MS)\n */\n }\n\n async function loadBindingsAndFilterByLanguage (filter, languagePrefs) {\n // console.log('@@ loadBindingsAndFilterByLanguage ' + filter)\n let bindings\n try {\n bindings = await queryPublicDataByName(filter, targetClass as any,\n languagePrefs || defaultPreferredLanguages, acOptions.queryParams)\n } catch (err) {\n complain('Error querying db of organizations: ' + err)\n inputEventHandlerLock = false\n return\n }\n loadedEnough = bindings.length < AUTOCOMPLETE_LIMIT\n if (loadedEnough) {\n lastFilter = filter\n } else {\n lastFilter = undefined\n }\n clearList()\n const slimmed = filterByLanguage(bindings, languagePrefs)\n return slimmed\n }\n\n function filterByName (filter, bindings) {\n return bindings.filter(binding => nameMatch(filter, binding.name.value))\n }\n\n async function refreshList () {\n // console.log('@@ refreshList called')\n function rowForBinding (binding) {\n const row = dom.createElement('tr')\n style.setStyle(row, 'autocompleteRowStyle')\n row.setAttribute('style', 'padding: 0.3em;')\n row.style.color = allDisplayed ? '#080' : '#088' // green means 'you should find it here'\n row.textContent = binding.name.value\n const object = bindingToTerm(binding.subject)\n const nameTerm = bindingToTerm(binding.name)\n row.addEventListener('click', async _event => {\n debug.log(' click row textContent: ' + row.textContent)\n debug.log(' click name: ' + nameTerm.value)\n if (object && nameTerm) {\n gotIt(object, nameTerm as Literal)\n }\n })\n return row\n } // rowForBinding\n function compareBindingsByName (self, other) {\n return other.name.value > self.name.value\n ? 1\n : other.name.name < self.name.value ? -1 : 0\n }\n\n if (inputEventHandlerLock) {\n debug.log(`Ignoring \"${searchInput.value}\" because of lock `)\n return\n }\n debug.log(`Setting lock at \"${searchInput.value}\"`)\n\n inputEventHandlerLock = true\n const languagePrefs = await getPreferredLanguages()\n const filter = searchInput.value.trim().toLowerCase()\n if (filter.length < AUTOCOMPLETE_THRESHOLD) { // too small\n clearList()\n // candidatesLoaded = false\n numberOfRows = AUTOCOMPLETE_ROWS\n } else {\n if (!allDisplayed || !lastFilter || !filter.startsWith(lastFilter)) {\n debug.log(` Querying database at \"${filter}\" cf last \"${lastFilter}\".`)\n lastBindings = await loadBindingsAndFilterByLanguage(filter, languagePrefs) // freesh query\n }\n // Trim table as search gets tighter:\n const slimmed = filterByName(filter, lastBindings)\n if (loadedEnough && slimmed.length <= AUTOCOMPLETE_ROWS_STRETCH) {\n numberOfRows = slimmed.length // stretch if it means we get all items\n }\n allDisplayed = loadedEnough && slimmed.length <= numberOfRows\n debug.log(` Filter:\"${filter}\" lastBindings: ${lastBindings.length}, slimmed to ${slimmed.length}; rows: ${numberOfRows}, Enough? ${loadedEnough}, All displayed? ${allDisplayed}`)\n\n const displayable = slimmed.slice(0, numberOfRows)\n\n displayable.sort(compareBindingsByName)\n clearList()\n for (const binding of displayable) {\n table.appendChild(rowForBinding(binding))\n }\n if (slimmed.length === 1) {\n gotIt(bindingToTerm(slimmed[0].subject), bindingToTerm(slimmed[0].name) as Literal)\n }\n } // else\n inputEventHandlerLock = false\n } // refreshList\n\n function initialize () {\n if (acOptions.currentObject) { // If have existing value then jump into the endgame of the autocomplete\n searchInput.value = acOptions.currentName ? acOptions.currentName.value : '??? wot no name for ' + acOptions.currentObject\n foundName = acOptions.currentName\n lastFilter = acOptions.currentName ? acOptions.currentName.value : undefined\n foundObject = acOptions.currentObject\n } else {\n searchInput.value = ''\n lastFilter = undefined\n foundObject = undefined\n }\n if (decoration.deleteButton) {\n setVisible(decoration.deleteButton, !!acOptions.currentObject)\n }\n\n if (decoration.acceptButton) {\n setVisible(decoration.acceptButton, false) // hide until input complete\n }\n if (decoration.editButton) {\n setVisible(decoration.editButton, true)\n }\n if (decoration.cancelButton) {\n setVisible(decoration.cancelButton, false) // only allow cancel when there is something to cancel\n }\n inputEventHandlerLock = false\n clearList()\n } // initialiize\n\n // const queryParams: QueryParameters = acOptions.queryParams\n const targetClass = acOptions.targetClass\n if (!targetClass) throw new Error('renderAutoComplete: missing targetClass')\n // console.log(`renderAutoComplete: targetClass=${targetClass}` )\n if (decoration.acceptButton) {\n decoration.acceptButton.addEventListener('click', acceptButtonHandler, false)\n }\n if (decoration.cancelButton) {\n decoration.cancelButton.addEventListener('click', cancelButtonHandler, false)\n }\n\n // var candidatesLoaded = false\n let lastBindings\n let loadedEnough = false\n let inputEventHandlerLock = false\n let allDisplayed = false\n let lastFilter = undefined as (string | undefined)\n let numberOfRows = AUTOCOMPLETE_ROWS // this gets slimmed down\n const div = dom.createElement('div')\n let foundName = undefined as (Literal | undefined)// once found accepted string must match this\n let foundObject = undefined as (NamedNode | Literal | undefined)\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute('data-testid', 'autocomplete-table')\n table.setAttribute('style', 'max-width: 30em; margin: 0.5em;')\n const head = table.appendChild(dom.createElement('tr'))\n style.setStyle(head, 'autocompleteRowStyle') // textInputStyle or\n const cell = head.appendChild(dom.createElement('td'))\n const searchInput = cell.appendChild(dom.createElement('input'))\n searchInput.setAttribute('type', 'text')\n\n initialize()\n\n const size = acOptions.size || styleConstants.textInputSize || 20\n searchInput.setAttribute('size', size)\n searchInput.setAttribute('data-testid', 'autocomplete-input')\n\n const searchInputStyle = style.textInputStyle || // searchInputStyle ?\n 'border: 0.1em solid #444; border-radius: 0.5em; width: 100%; font-size: 100%; padding: 0.1em 0.6em' // @\n searchInput.setAttribute('style', searchInputStyle)\n searchInput.addEventListener('keyup', function (event) {\n if (event.keyCode === 13) {\n acceptButtonHandler(event)\n }\n }, false)\n\n searchInput.addEventListener('input', inputEventHHandler)\n // console.log('@@ renderAutoComplete returns ' + div.innerHTML)\n return div\n} // renderAutoComplete\n\n// ENDS\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"autocompletePicker.js","names":["debug","_interopRequireWildcard","require","style","_styleConstants","_interopRequireDefault","widgets","_solidLogic","_publicData","_language","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","AUTOCOMPLETE_THRESHOLD","AUTOCOMPLETE_ROWS","AUTOCOMPLETE_ROWS_STRETCH","setVisible","element","visible","display","renderAutoComplete","_x","_x2","_x3","_x4","_renderAutoComplete","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee8","dom","acOptions","decoration","callback","complain","finish","gotIt","_gotIt","acceptButtonHandler","_acceptButtonHandler","cancelButtonHandler","_cancelButtonHandler","nameMatch","clearList","inputEventHHandler","_inputEventHHandler","loadBindingsAndFilterByLanguage","_loadBindingsAndFilterByLanguage","filterByName","refreshList","_refreshList","initialize","targetClass","lastBindings","loadedEnough","inputEventHandlerLock","allDisplayed","lastFilter","numberOfRows","div","foundName","foundObject","table","head","cell","searchInput","size","searchInputStyle","wrap","_context8","prev","_initialize","currentObject","currentName","undefined","deleteButton","acceptButton","editButton","cancelButton","_refreshList3","_callee7","rowForBinding","compareBindingsByName","languagePrefs","filter","slimmed","displayable","_iterator","_step","binding","_context7","_compareBindingsByNam","self","other","_rowForBinding","row","createElement","setStyle","setAttribute","color","textContent","object","bindingToTerm","subject","nameTerm","addEventListener","_ref","_callee6","_event","_context6","log","stop","_x10","concat","abrupt","getPreferredLanguages","sent","trim","toLowerCase","startsWith","sort","appendChild","err","_refreshList2","_filterByName","bindings","_loadBindingsAndFilte2","_callee5","_t","_context5","queryPublicDataByName","defaultPreferredLanguages","queryParams","AUTOCOMPLETE_LIMIT","filterByLanguage","_loadBindingsAndFilte","_x0","_x1","_inputEventHHandler3","_callee4","_context4","_inputEventHHandler2","_x9","_clearList","children","removeChild","lastChild","_nameMatch","candidate","parts","split","j","word","indexOf","_cancelButtonHandler3","_callee3","_context3","permanent","parentNode","_cancelButtonHandler2","_x8","_acceptButtonHandler3","_callee2","_context2","_acceptButtonHandler2","_x7","_gotIt3","_callee","_context","disbaled","_gotIt2","_x5","_x6","_finish","termType","objectURIBase","store","sym","_complain","message","errorRow","Error","errorMessageBlock","padding","styleConstants","textInputSize","textInputStyle","event","keyCode"],"sources":["../../../../src/widgets/forms/autocomplete/autocompletePicker.ts"],"sourcesContent":["/* Autocomplete Picker: Create and edit data using public data\n**\n** As the data source is passed as a parameter, all kinds of APIa and query services can be used\n**\n*/\nimport * as debug from '../../../debug'\nimport * as style from '../../../style'\nimport styleConstants from '../../../styleConstants'\nimport * as widgets from '../../../widgets'\nimport { store } from 'solid-logic'\nimport { NamedNode, Literal } from 'rdflib'\nimport { queryPublicDataByName, bindingToTerm, AUTOCOMPLETE_LIMIT, QueryParameters } from './publicData'\nimport { filterByLanguage, getPreferredLanguages, defaultPreferredLanguages } from './language'\n\nconst AUTOCOMPLETE_THRESHOLD = 4 // don't check until this many characters typed\nconst AUTOCOMPLETE_ROWS = 20 // 20?\nconst AUTOCOMPLETE_ROWS_STRETCH = 40\n\n/*\nAutocomplete happens in 6 phases:\n 1. The search string is too small to bother\n 2. The search string is big enough, and we have not loaded the array\n 3. The search string is big enough, and we have loaded array up to the limit\n Display them and wait for more user input\n 4. The search string is big enough, and we have loaded array NOT to the limit\n but including all matches. No more fetches.\n If user gets more precise, wait for them to select one - or reduce to a single\n 5. Single one selected. Optionally waiting for accept button to be pressed, OR can change string and go to 5 or 2\n 6. Locked with a value. Press 'edit' button to return to 5\n*/\n\nexport type AutocompleteDecoration = {\n acceptButton?: HTMLElement,\n cancelButton: HTMLElement, // Must have cancel button\n editButton?: HTMLElement,\n deleteButton?: HTMLElement\n}\nexport type AutocompleteOptions = {\n targetClass?: NamedNode,\n currentObject?: NamedNode,\n currentName?: Literal,\n queryParams: QueryParameters,\n size?: number,\n permanent?: boolean\n}\n\ninterface Callback1 {\n (_subject: NamedNode, _name: Literal): any;\n}\n\nexport function setVisible (element:HTMLElement, visible:boolean) {\n element.style.display = visible ? '' : 'none' // Do not use visibility, it holds the real estate\n}\n\n// The core of the autocomplete UI\nexport async function renderAutoComplete (dom: HTMLDocument,\n acOptions:AutocompleteOptions,\n decoration: AutocompleteDecoration,\n callback: Callback1) {\n function complain (message) {\n const errorRow = table.appendChild(dom.createElement('tr'))\n debug.log(message)\n const err = new Error(message)\n errorRow.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))\n // errorMessageBlock will log the stack to the console\n style.setStyle(errorRow, 'autocompleteRowStyle')\n errorRow.style.padding = '1em'\n }\n\n function finish (object, name) {\n debug.log('Auto complete: finish! ' + object)\n if (object.termType === 'Literal' && acOptions.queryParams.objectURIBase) {\n object = store.sym(acOptions.queryParams.objectURIBase.value + object.value)\n }\n // remove(decoration.cancelButton)\n // remove(decoration.acceptButton)\n // remove(div)\n clearList()\n callback(object, name)\n }\n async function gotIt (object:NamedNode | Literal, name: Literal) {\n if (decoration.acceptButton) {\n (decoration.acceptButton as any).disbaled = false\n setVisible(decoration.acceptButton, true) // now wait for confirmation\n searchInput.value = name.value // complete it\n foundName = name\n foundObject = object\n debug.log('Auto complete: name: ' + name)\n debug.log('Auto complete: waiting for accept ' + object)\n clearList() // This may be an option - nice and clean but does not allow change of mind\n return\n }\n setVisible(decoration.cancelButton, true)\n finish(object, name)\n }\n\n async function acceptButtonHandler (_event) {\n if (foundName && searchInput.value === foundName.value) { // still\n finish(foundObject, foundName)\n }\n }\n\n async function cancelButtonHandler (_event) {\n debug.log('Auto complete: Canceled by user! ')\n if (acOptions.permanent) {\n initialize()\n } else {\n if (div.parentNode) {\n div.parentNode.removeChild(div)\n }\n }\n }\n\n function nameMatch (filter:string, candidate: string):boolean {\n const parts = filter.split(' ') // Each name part must be somewhere\n for (let j = 0; j < parts.length; j++) {\n const word = parts[j]\n if (candidate.toLowerCase().indexOf(word) < 0) return false\n }\n return true\n }\n\n function clearList () {\n while (table.children.length > 1) {\n table.removeChild(table.lastChild as Node)\n }\n }\n\n async function inputEventHHandler (_event) {\n // console.log('@@ AC inputEventHHandler called')\n setVisible(decoration.cancelButton, true) // only allow cancel when there is something to cancel\n refreshList() /// @@ debounqce does not work with jest\n /*\n if (runningTimeout) {\n clearTimeout(runningTimeout)\n }\n runningTimeout = setTimeout(refreshList, AUTOCOMPLETE_DEBOUNCE_MS)\n */\n }\n\n async function loadBindingsAndFilterByLanguage (filter, languagePrefs) {\n // console.log('@@ loadBindingsAndFilterByLanguage ' + filter)\n let bindings\n try {\n bindings = await queryPublicDataByName(filter, targetClass as any,\n languagePrefs || defaultPreferredLanguages, acOptions.queryParams)\n } catch (err) {\n complain('Error querying db of organizations: ' + err)\n inputEventHandlerLock = false\n return\n }\n loadedEnough = bindings.length < AUTOCOMPLETE_LIMIT\n if (loadedEnough) {\n lastFilter = filter\n } else {\n lastFilter = undefined\n }\n clearList()\n const slimmed = filterByLanguage(bindings, languagePrefs)\n return slimmed\n }\n\n function filterByName (filter, bindings) {\n return bindings.filter(binding => nameMatch(filter, binding.name.value))\n }\n\n async function refreshList () {\n // console.log('@@ refreshList called')\n function rowForBinding (binding) {\n const row = dom.createElement('tr')\n style.setStyle(row, 'autocompleteRowStyle')\n row.setAttribute('style', 'padding: 0.3em;')\n row.style.color = allDisplayed ? '#080' : '#088' // green means 'you should find it here'\n row.textContent = binding.name.value\n const object = bindingToTerm(binding.subject)\n const nameTerm = bindingToTerm(binding.name)\n row.addEventListener('click', async _event => {\n debug.log(' click row textContent: ' + row.textContent)\n debug.log(' click name: ' + nameTerm.value)\n if (object && nameTerm) {\n gotIt(object, nameTerm as Literal)\n }\n })\n return row\n } // rowForBinding\n function compareBindingsByName (self, other) {\n return other.name.value > self.name.value\n ? 1\n : other.name.name < self.name.value ? -1 : 0\n }\n\n if (inputEventHandlerLock) {\n debug.log(`Ignoring \"${searchInput.value}\" because of lock `)\n return\n }\n debug.log(`Setting lock at \"${searchInput.value}\"`)\n\n inputEventHandlerLock = true\n const languagePrefs = await getPreferredLanguages()\n const filter = searchInput.value.trim().toLowerCase()\n if (filter.length < AUTOCOMPLETE_THRESHOLD) { // too small\n clearList()\n // candidatesLoaded = false\n numberOfRows = AUTOCOMPLETE_ROWS\n } else {\n if (!allDisplayed || !lastFilter || !filter.startsWith(lastFilter)) {\n debug.log(` Querying database at \"${filter}\" cf last \"${lastFilter}\".`)\n lastBindings = await loadBindingsAndFilterByLanguage(filter, languagePrefs) // freesh query\n }\n // Trim table as search gets tighter:\n const slimmed = filterByName(filter, lastBindings)\n if (loadedEnough && slimmed.length <= AUTOCOMPLETE_ROWS_STRETCH) {\n numberOfRows = slimmed.length // stretch if it means we get all items\n }\n allDisplayed = loadedEnough && slimmed.length <= numberOfRows\n debug.log(` Filter:\"${filter}\" lastBindings: ${lastBindings.length}, slimmed to ${slimmed.length}; rows: ${numberOfRows}, Enough? ${loadedEnough}, All displayed? ${allDisplayed}`)\n\n const displayable = slimmed.slice(0, numberOfRows)\n\n displayable.sort(compareBindingsByName)\n clearList()\n for (const binding of displayable) {\n table.appendChild(rowForBinding(binding))\n }\n if (slimmed.length === 1) {\n gotIt(bindingToTerm(slimmed[0].subject), bindingToTerm(slimmed[0].name) as Literal)\n }\n } // else\n inputEventHandlerLock = false\n } // refreshList\n\n function initialize () {\n if (acOptions.currentObject) { // If have existing value then jump into the endgame of the autocomplete\n searchInput.value = acOptions.currentName ? acOptions.currentName.value : '??? wot no name for ' + acOptions.currentObject\n foundName = acOptions.currentName\n lastFilter = acOptions.currentName ? acOptions.currentName.value : undefined\n foundObject = acOptions.currentObject\n } else {\n searchInput.value = ''\n lastFilter = undefined\n foundObject = undefined\n }\n if (decoration.deleteButton) {\n setVisible(decoration.deleteButton, !!acOptions.currentObject)\n }\n\n if (decoration.acceptButton) {\n setVisible(decoration.acceptButton, false) // hide until input complete\n }\n if (decoration.editButton) {\n setVisible(decoration.editButton, true)\n }\n if (decoration.cancelButton) {\n setVisible(decoration.cancelButton, false) // only allow cancel when there is something to cancel\n }\n inputEventHandlerLock = false\n clearList()\n } // initialiize\n\n // const queryParams: QueryParameters = acOptions.queryParams\n const targetClass = acOptions.targetClass\n if (!targetClass) throw new Error('renderAutoComplete: missing targetClass')\n // console.log(`renderAutoComplete: targetClass=${targetClass}` )\n if (decoration.acceptButton) {\n decoration.acceptButton.addEventListener('click', acceptButtonHandler, false)\n }\n if (decoration.cancelButton) {\n decoration.cancelButton.addEventListener('click', cancelButtonHandler, false)\n }\n\n // var candidatesLoaded = false\n let lastBindings\n let loadedEnough = false\n let inputEventHandlerLock = false\n let allDisplayed = false\n let lastFilter = undefined as (string | undefined)\n let numberOfRows = AUTOCOMPLETE_ROWS // this gets slimmed down\n const div = dom.createElement('div')\n let foundName = undefined as (Literal | undefined)// once found accepted string must match this\n let foundObject = undefined as (NamedNode | Literal | undefined)\n const table = div.appendChild(dom.createElement('table'))\n table.setAttribute('data-testid', 'autocomplete-table')\n table.setAttribute('style', 'max-width: 30em; margin: 0.5em;')\n const head = table.appendChild(dom.createElement('tr'))\n style.setStyle(head, 'autocompleteRowStyle') // textInputStyle or\n const cell = head.appendChild(dom.createElement('td'))\n const searchInput = cell.appendChild(dom.createElement('input'))\n searchInput.setAttribute('type', 'text')\n\n initialize()\n\n const size = acOptions.size || styleConstants.textInputSize || 20\n searchInput.setAttribute('size', size)\n searchInput.setAttribute('data-testid', 'autocomplete-input')\n\n const searchInputStyle = style.textInputStyle || // searchInputStyle ?\n 'border: 0.1em solid #444; border-radius: 0.5em; width: 100%; font-size: 100%; padding: 0.1em 0.6em' // @\n searchInput.setAttribute('style', searchInputStyle)\n searchInput.addEventListener('keyup', function (event) {\n if (event.keyCode === 13) {\n acceptButtonHandler(event)\n }\n }, false)\n\n searchInput.addEventListener('input', inputEventHHandler)\n // console.log('@@ renderAutoComplete returns ' + div.innerHTML)\n return div\n} // renderAutoComplete\n\n// ENDS\n"],"mappings":"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","ignoreList":[]}