solid-ui 2.6.1 → 3.0.0-63a1640
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +3 -1
- package/README.md +236 -30
- package/dist/acl/access-controller.js +238 -0
- package/dist/acl/access-controller.js.map +1 -0
- package/{lib → dist}/acl/access-groups.d.ts +2 -2
- package/{lib → dist}/acl/access-groups.d.ts.map +1 -1
- package/dist/acl/access-groups.js +323 -0
- package/dist/acl/access-groups.js.map +1 -0
- package/dist/acl/acl-control.js +173 -0
- package/dist/acl/acl-control.js.map +1 -0
- package/dist/acl/acl.js +495 -0
- package/dist/acl/acl.js.map +1 -0
- package/dist/acl/add-agent-buttons.js +217 -0
- package/dist/acl/add-agent-buttons.js.map +1 -0
- package/dist/acl/index.js +32 -0
- package/dist/acl/index.js.map +1 -0
- package/dist/acl/types.js +6 -0
- package/dist/acl/types.js.map +1 -0
- package/dist/chat/keys.js +106 -0
- package/dist/chat/keys.js.map +1 -0
- package/dist/chat/signature.js +63 -0
- package/dist/chat/signature.js.map +1 -0
- package/dist/create/create.js +249 -0
- package/dist/create/create.js.map +1 -0
- package/dist/create/index.js +5 -0
- package/dist/create/index.js.map +1 -0
- package/dist/create/types.js +2 -0
- package/dist/create/types.js.map +1 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +13 -0
- package/dist/debug.js.map +1 -0
- package/dist/footer/index.js +67 -0
- package/dist/footer/index.js.map +1 -0
- package/dist/header/empty-profile.js +11 -0
- package/dist/header/empty-profile.js.map +1 -0
- package/dist/header/index.js +260 -0
- package/dist/header/index.js.map +1 -0
- package/dist/iconBase.js +37 -0
- package/dist/iconBase.js.map +1 -0
- package/dist/icons/solid_logo.js.map +1 -0
- package/{lib → dist}/index.d.ts +7 -9
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +102 -0
- package/dist/index.js.map +1 -0
- package/{lib → dist}/log.d.ts.map +1 -1
- package/dist/log.js +182 -0
- package/dist/log.js.map +1 -0
- package/dist/login/login.js +858 -0
- package/dist/login/login.js.map +1 -0
- package/dist/matrix/index.js +5 -0
- package/dist/matrix/index.js.map +1 -0
- package/dist/matrix/matrix.js +217 -0
- package/dist/matrix/matrix.js.map +1 -0
- package/dist/matrix/types.js +2 -0
- package/dist/matrix/types.js.map +1 -0
- package/dist/media/index.js +6 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/media-capture.js +161 -0
- package/dist/media/media-capture.js.map +1 -0
- package/dist/pad.js +775 -0
- package/dist/pad.js.map +1 -0
- package/{lib → dist}/participation.d.ts.map +1 -1
- package/dist/participation.js +184 -0
- package/dist/participation.js.map +1 -0
- package/dist/solid-ui.esm.js +25531 -0
- package/dist/solid-ui.esm.js.map +1 -0
- package/dist/solid-ui.esm.min.js +43 -0
- package/dist/solid-ui.esm.min.js.map +1 -0
- package/dist/solid-ui.js +23479 -68931
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +40 -2
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/tabs.js +388 -0
- package/dist/tabs.js.map +1 -0
- package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +1 -1
- package/dist/utils/headerFooterHelpers.js +114 -0
- package/dist/utils/headerFooterHelpers.js.map +1 -0
- package/dist/utils/keyHelpers/accessData.js +64 -0
- package/dist/utils/keyHelpers/accessData.js.map +1 -0
- package/dist/utils/keyHelpers/acl.js +74 -0
- package/dist/utils/keyHelpers/acl.js.map +1 -0
- package/dist/utils/keyHelpers/otherHelpers.js +13 -0
- package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
- package/dist/utils/label.js +111 -0
- package/dist/utils/label.js.map +1 -0
- package/dist/versionInfo.js +30 -0
- package/dist/versionInfo.js.map +1 -0
- package/dist/widgets/buttons/iconLinks.js +44 -0
- package/dist/widgets/buttons/iconLinks.js.map +1 -0
- package/dist/widgets/buttons.js +1280 -0
- package/dist/widgets/buttons.js.map +1 -0
- package/dist/widgets/error.d.ts +14 -0
- package/dist/widgets/error.d.ts.map +1 -0
- package/dist/widgets/error.js +35 -0
- package/dist/widgets/error.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompleteBar.js +123 -0
- package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompleteField.js +199 -0
- package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompletePicker.js +256 -0
- package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
- package/dist/widgets/forms/autocomplete/language.js +104 -0
- package/dist/widgets/forms/autocomplete/language.js.map +1 -0
- package/dist/widgets/forms/autocomplete/publicData.js +460 -0
- package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
- package/dist/widgets/forms/basic.js +241 -0
- package/dist/widgets/forms/basic.js.map +1 -0
- package/dist/widgets/forms/comment.js +46 -0
- package/dist/widgets/forms/comment.js.map +1 -0
- package/dist/widgets/forms/fieldFunction.js +44 -0
- package/dist/widgets/forms/fieldFunction.js.map +1 -0
- package/dist/widgets/forms/fieldParams.js +89 -0
- package/dist/widgets/forms/fieldParams.js.map +1 -0
- package/{lib → dist}/widgets/forms/formStyle.d.ts.map +1 -1
- package/dist/widgets/forms/formStyle.js +36 -0
- package/dist/widgets/forms/formStyle.js.map +1 -0
- package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
- package/{lib → dist}/widgets/widgetHelpers.js +14 -25
- package/dist/widgets/widgetHelpers.js.map +1 -0
- package/package.json +48 -52
- package/dist/789.solid-ui.min.js +0 -1
- package/dist/841.solid-ui.min.js +0 -3
- package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
- package/dist/841.solid-ui.min.js.map +0 -1
- package/dist/_2b19.solid-ui.js +0 -14
- package/dist/_2b19.solid-ui.js.map +0 -1
- package/dist/index.html +0 -1
- package/dist/solid-ui.min.js.LICENSE.txt +0 -57
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
- package/lib/acl/access-controller.js +0 -391
- package/lib/acl/access-controller.js.map +0 -1
- package/lib/acl/access-groups.js +0 -507
- package/lib/acl/access-groups.js.map +0 -1
- package/lib/acl/acl-control.js +0 -237
- package/lib/acl/acl-control.js.map +0 -1
- package/lib/acl/acl.js +0 -517
- package/lib/acl/acl.js.map +0 -1
- package/lib/acl/add-agent-buttons.js +0 -434
- package/lib/acl/add-agent-buttons.js.map +0 -1
- package/lib/acl/index.js +0 -39
- package/lib/acl/index.js.map +0 -1
- package/lib/acl/types.js +0 -6
- package/lib/acl/types.js.map +0 -1
- package/lib/chat/bookmarks.js +0 -303
- package/lib/chat/bookmarks.js.map +0 -1
- package/lib/chat/chatLogic.js +0 -420
- package/lib/chat/chatLogic.js.map +0 -1
- package/lib/chat/dateFolder.js +0 -328
- package/lib/chat/dateFolder.js.map +0 -1
- package/lib/chat/infinite.js +0 -994
- package/lib/chat/infinite.js.map +0 -1
- package/lib/chat/keys.js +0 -232
- package/lib/chat/keys.js.map +0 -1
- package/lib/chat/message.js +0 -715
- package/lib/chat/message.js.map +0 -1
- package/lib/chat/messageTools.js +0 -538
- package/lib/chat/messageTools.js.map +0 -1
- package/lib/chat/signature.js +0 -109
- package/lib/chat/signature.js.map +0 -1
- package/lib/chat/thread.js +0 -535
- package/lib/chat/thread.js.map +0 -1
- package/lib/create/create.js +0 -242
- package/lib/create/create.js.map +0 -1
- package/lib/create/index.js +0 -11
- package/lib/create/index.js.map +0 -1
- package/lib/create/types.js +0 -6
- package/lib/create/types.js.map +0 -1
- package/lib/debug.d.ts.map +0 -1
- package/lib/debug.js +0 -30
- package/lib/debug.js.map +0 -1
- package/lib/folders.js +0 -132
- package/lib/folders.js.map +0 -1
- package/lib/footer/index.js +0 -123
- package/lib/footer/index.js.map +0 -1
- package/lib/header/empty-profile.js +0 -8
- package/lib/header/empty-profile.js.map +0 -1
- package/lib/header/index.js +0 -375
- package/lib/header/index.js.map +0 -1
- package/lib/iconBase.js +0 -44
- package/lib/iconBase.js.map +0 -1
- package/lib/icons/solid_logo.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -223
- package/lib/index.js.map +0 -1
- package/lib/log.js +0 -213
- package/lib/log.js.map +0 -1
- package/lib/login/login.js +0 -1241
- package/lib/login/login.js.map +0 -1
- package/lib/matrix/index.js +0 -11
- package/lib/matrix/index.js.map +0 -1
- package/lib/matrix/matrix.js +0 -216
- package/lib/matrix/matrix.js.map +0 -1
- package/lib/matrix/types.js +0 -6
- package/lib/matrix/types.js.map +0 -1
- package/lib/media/index.js +0 -12
- package/lib/media/index.js.map +0 -1
- package/lib/media/media-capture.js +0 -194
- package/lib/media/media-capture.js.map +0 -1
- package/lib/messageArea.js +0 -319
- package/lib/messageArea.js.map +0 -1
- package/lib/noun_Camera_1618446_000000.js +0 -8
- package/lib/noun_Camera_1618446_000000.js.map +0 -1
- package/lib/ns.js +0 -17
- package/lib/ns.js.map +0 -1
- package/lib/pad.js +0 -805
- package/lib/pad.js.map +0 -1
- package/lib/participation.js +0 -219
- package/lib/participation.js.map +0 -1
- package/lib/preferences.js +0 -215
- package/lib/preferences.js.map +0 -1
- package/lib/signup/config-default.js +0 -43
- package/lib/signup/config-default.js.map +0 -1
- package/lib/signup/signup.js +0 -74
- package/lib/signup/signup.js.map +0 -1
- package/lib/stories/decorators.js +0 -10
- package/lib/stories/decorators.js.map +0 -1
- package/lib/style.js +0 -158
- package/lib/style.js.map +0 -1
- package/lib/styleConstants.js +0 -35
- package/lib/styleConstants.js.map +0 -1
- package/lib/style_multiSelect.js +0 -62
- package/lib/style_multiSelect.js.map +0 -1
- package/lib/table.js +0 -1573
- package/lib/table.js.map +0 -1
- package/lib/tabs.js +0 -448
- package/lib/tabs.js.map +0 -1
- package/lib/typings.d.js +0 -2
- package/lib/typings.d.js.map +0 -1
- package/lib/utils/headerFooterHelpers.js +0 -165
- package/lib/utils/headerFooterHelpers.js.map +0 -1
- package/lib/utils/index.js +0 -527
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/keyHelpers/accessData.js +0 -131
- package/lib/utils/keyHelpers/accessData.js.map +0 -1
- package/lib/utils/keyHelpers/acl.js +0 -90
- package/lib/utils/keyHelpers/acl.js.map +0 -1
- package/lib/utils/keyHelpers/otherHelpers.js +0 -21
- package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
- package/lib/utils/label.js +0 -103
- package/lib/utils/label.js.map +0 -1
- package/lib/versionInfo.d.ts +0 -32
- package/lib/versionInfo.d.ts.map +0 -1
- package/lib/versionInfo.js +0 -37
- package/lib/versionInfo.js.map +0 -1
- package/lib/widgets/buttons/iconLinks.js +0 -53
- package/lib/widgets/buttons/iconLinks.js.map +0 -1
- package/lib/widgets/buttons.js +0 -1306
- package/lib/widgets/buttons.js.map +0 -1
- package/lib/widgets/dragAndDrop.js +0 -194
- package/lib/widgets/dragAndDrop.js.map +0 -1
- package/lib/widgets/error.d.ts +0 -2
- package/lib/widgets/error.d.ts.map +0 -1
- package/lib/widgets/error.js +0 -46
- package/lib/widgets/error.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
- package/lib/widgets/forms/autocomplete/language.js +0 -189
- package/lib/widgets/forms/autocomplete/language.js.map +0 -1
- package/lib/widgets/forms/autocomplete/publicData.js +0 -636
- package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
- package/lib/widgets/forms/basic.js +0 -254
- package/lib/widgets/forms/basic.js.map +0 -1
- package/lib/widgets/forms/comment.js +0 -54
- package/lib/widgets/forms/comment.js.map +0 -1
- package/lib/widgets/forms/fieldFunction.js +0 -52
- package/lib/widgets/forms/fieldFunction.js.map +0 -1
- package/lib/widgets/forms/fieldParams.js +0 -77
- package/lib/widgets/forms/fieldParams.js.map +0 -1
- package/lib/widgets/forms/formStyle.js +0 -44
- package/lib/widgets/forms/formStyle.js.map +0 -1
- package/lib/widgets/forms.js +0 -2045
- package/lib/widgets/forms.js.map +0 -1
- package/lib/widgets/index.js +0 -110
- package/lib/widgets/index.js.map +0 -1
- package/lib/widgets/multiSelect.js +0 -658
- package/lib/widgets/multiSelect.js.map +0 -1
- package/lib/widgets/peoplePicker.js +0 -467
- package/lib/widgets/peoplePicker.js.map +0 -1
- package/lib/widgets/widgetHelpers.js.map +0 -1
- /package/{lib → dist}/acl/access-controller.d.ts +0 -0
- /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
- /package/{lib → dist}/acl/acl-control.d.ts +0 -0
- /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
- /package/{lib → dist}/acl/acl.d.ts +0 -0
- /package/{lib → dist}/acl/acl.d.ts.map +0 -0
- /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
- /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
- /package/{lib → dist}/acl/index.d.ts +0 -0
- /package/{lib → dist}/acl/index.d.ts.map +0 -0
- /package/{lib → dist}/acl/types.d.ts +0 -0
- /package/{lib → dist}/acl/types.d.ts.map +0 -0
- /package/{lib → dist}/chat/keys.d.ts +0 -0
- /package/{lib → dist}/chat/keys.d.ts.map +0 -0
- /package/{lib → dist}/chat/signature.d.ts +0 -0
- /package/{lib → dist}/chat/signature.d.ts.map +0 -0
- /package/{lib → dist}/create/create.d.ts +0 -0
- /package/{lib → dist}/create/create.d.ts.map +0 -0
- /package/{lib → dist}/create/index.d.ts +0 -0
- /package/{lib → dist}/create/index.d.ts.map +0 -0
- /package/{lib → dist}/create/types.d.ts +0 -0
- /package/{lib → dist}/create/types.d.ts.map +0 -0
- /package/{lib → dist}/debug.d.ts +0 -0
- /package/{lib → dist}/footer/index.d.ts +0 -0
- /package/{lib → dist}/footer/index.d.ts.map +0 -0
- /package/{lib → dist}/header/empty-profile.d.ts +0 -0
- /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
- /package/{lib → dist}/header/index.d.ts +0 -0
- /package/{lib → dist}/header/index.d.ts.map +0 -0
- /package/{lib → dist}/iconBase.d.ts +0 -0
- /package/{lib → dist}/iconBase.d.ts.map +0 -0
- /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
- /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
- /package/{lib → dist}/icons/solid_logo.js +0 -0
- /package/{lib → dist}/log.d.ts +0 -0
- /package/{lib → dist}/login/login.d.ts +0 -0
- /package/{lib → dist}/login/login.d.ts.map +0 -0
- /package/{lib → dist}/matrix/index.d.ts +0 -0
- /package/{lib → dist}/matrix/index.d.ts.map +0 -0
- /package/{lib → dist}/matrix/matrix.d.ts +0 -0
- /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
- /package/{lib → dist}/matrix/types.d.ts +0 -0
- /package/{lib → dist}/matrix/types.d.ts.map +0 -0
- /package/{lib → dist}/media/index.d.ts +0 -0
- /package/{lib → dist}/media/index.d.ts.map +0 -0
- /package/{lib → dist}/media/media-capture.d.ts +0 -0
- /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
- /package/{lib → dist}/pad.d.ts +0 -0
- /package/{lib → dist}/pad.d.ts.map +0 -0
- /package/{lib → dist}/participation.d.ts +0 -0
- /package/{lib → dist}/tabs.d.ts +0 -0
- /package/{lib → dist}/tabs.d.ts.map +0 -0
- /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
- /package/{lib → dist}/utils/keyHelpers/accessData.d.ts +0 -0
- /package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +0 -0
- /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
- /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
- /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +0 -0
- /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +0 -0
- /package/{lib → dist}/utils/label.d.ts +0 -0
- /package/{lib → dist}/utils/label.d.ts.map +0 -0
- /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
- /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
- /package/{lib → dist}/widgets/buttons.d.ts +0 -0
- /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
- /package/{lib → dist}/widgets/widgetHelpers.d.ts +0 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { Literal, st } from 'rdflib';
|
|
2
|
+
import { solidLogicSingleton } from 'solid-logic';
|
|
3
|
+
import ns from '../../ns';
|
|
4
|
+
import { style } from '../../style';
|
|
5
|
+
import styleConstants from '../../styleConstants';
|
|
6
|
+
import { label } from '../../utils';
|
|
7
|
+
import { errorMessageBlock } from '../error';
|
|
8
|
+
import { mostSpecificClassURI } from './fieldFunction';
|
|
9
|
+
import { fieldParams } from './fieldParams';
|
|
10
|
+
const store = solidLogicSingleton.store;
|
|
11
|
+
/* Style and create a name, value pair
|
|
12
|
+
*/
|
|
13
|
+
export function renderNameValuePair(dom, kb, box, form, label) {
|
|
14
|
+
// const property = kb.any(form, ns.ui('property'))
|
|
15
|
+
box.style.display = 'flex';
|
|
16
|
+
box.style.flexDirection = 'row';
|
|
17
|
+
const lhs = box.appendChild(dom.createElement('div'));
|
|
18
|
+
lhs.style.width = styleConstants.formFieldNameBoxWidth;
|
|
19
|
+
const rhs = box.appendChild(dom.createElement('div'));
|
|
20
|
+
lhs.setAttribute('class', 'formFieldName');
|
|
21
|
+
lhs.setAttribute('style', style.formFieldNameBoxStyle);
|
|
22
|
+
rhs.setAttribute('class', 'formFieldValue');
|
|
23
|
+
if (label) {
|
|
24
|
+
lhs.appendChild(dom.createTextNode(label));
|
|
25
|
+
}
|
|
26
|
+
else if (kb.any(form, ns.ui('property'))) { // Assume more space for error on right
|
|
27
|
+
lhs.appendChild(fieldLabel(dom, kb.any(form, ns.ui('property')), form));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
rhs.appendChild(errorMessageBlock(dom, 'No property or label given for form field: ' + form));
|
|
31
|
+
lhs.appendChild(dom.createTextNode('???'));
|
|
32
|
+
}
|
|
33
|
+
return rhs;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create an anchor element with a label as the anchor text.
|
|
37
|
+
*
|
|
38
|
+
* @param dom The DOM
|
|
39
|
+
* @param property href for the anchor element
|
|
40
|
+
* @param fieldInQuestion field to produce a label for
|
|
41
|
+
*
|
|
42
|
+
* @internal exporting this only for unit tests
|
|
43
|
+
*/
|
|
44
|
+
export function fieldLabel(dom, property, fieldInQuestion) {
|
|
45
|
+
let lab = store.any(fieldInQuestion, ns.ui('label'));
|
|
46
|
+
if (!lab)
|
|
47
|
+
lab = label(property, true); // Init capital
|
|
48
|
+
if (property === undefined) {
|
|
49
|
+
return dom.createTextNode('@@Internal error: undefined property');
|
|
50
|
+
}
|
|
51
|
+
const anchor = dom.createElement('a');
|
|
52
|
+
/* istanbul ignore next */
|
|
53
|
+
if (property.uri)
|
|
54
|
+
anchor.setAttribute('href', property.uri);
|
|
55
|
+
anchor.setAttribute('style', 'color: #3B5998; text-decoration: none;'); // Not too blue and no underline
|
|
56
|
+
anchor.textContent = lab;
|
|
57
|
+
return anchor;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns the document for the first quad that matches
|
|
61
|
+
* the subject and predicate provided, or default if that
|
|
62
|
+
* store is not editable.
|
|
63
|
+
*
|
|
64
|
+
* @param subject Subject about which we want to find an editable RDF document
|
|
65
|
+
* @param predicate Predicate about which we want to find an editable RDF document
|
|
66
|
+
* @param def default RDF document to return if none found
|
|
67
|
+
*
|
|
68
|
+
* @internal exporting this only for unit tests
|
|
69
|
+
*/
|
|
70
|
+
export function fieldStore(subject, predicate, def) {
|
|
71
|
+
const sts = store.statementsMatching(subject, predicate);
|
|
72
|
+
if (sts.length === 0)
|
|
73
|
+
return def; // can used default as no data yet
|
|
74
|
+
if (!store.updater) {
|
|
75
|
+
throw new Error('Store has no updater');
|
|
76
|
+
}
|
|
77
|
+
if (sts.length > 0 &&
|
|
78
|
+
sts[0].why.value &&
|
|
79
|
+
store.updater.editable(sts[0].why.value, store)) {
|
|
80
|
+
return store.sym(sts[0].why.value);
|
|
81
|
+
}
|
|
82
|
+
return def;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Render a basic form field
|
|
86
|
+
*
|
|
87
|
+
* The same function is used for many similar one-value fields, with different
|
|
88
|
+
* regexps used to validate.
|
|
89
|
+
*
|
|
90
|
+
* @param dom The HTML Document object aka Document Object Model
|
|
91
|
+
* @param container If present, the created widget will be appended to this
|
|
92
|
+
* @param already A hash table of (form, subject) kept to prevent recursive forms looping
|
|
93
|
+
* @param subject The thing about which the form displays/edits data
|
|
94
|
+
* @param form The form or field to be rendered
|
|
95
|
+
* @param doc The web document in which the data is
|
|
96
|
+
* @param callbackFunction Called when data is changed?
|
|
97
|
+
*
|
|
98
|
+
* @returns The HTML widget created
|
|
99
|
+
*/
|
|
100
|
+
export function basicField(dom, container, already, subject, form, doc, callbackFunction) {
|
|
101
|
+
const kb = store;
|
|
102
|
+
const formDoc = form.doc ? form.doc() : null; // @@ if blank no way to know
|
|
103
|
+
const box = dom.createElement('div');
|
|
104
|
+
const property = kb.any(form, ns.ui('property'));
|
|
105
|
+
if (container)
|
|
106
|
+
container.appendChild(box);
|
|
107
|
+
if (!property) {
|
|
108
|
+
return box.appendChild(errorMessageBlock(dom, 'Error: No property given for text field: ' + form));
|
|
109
|
+
}
|
|
110
|
+
const rhs = renderNameValuePair(dom, kb, box, form);
|
|
111
|
+
// It can be cleaner to just remove empty fields if you can't edit them anyway
|
|
112
|
+
const suppressEmptyUneditable = kb.anyJS(form, ns.ui('suppressEmptyUneditable'), null, formDoc);
|
|
113
|
+
const uri = mostSpecificClassURI(form);
|
|
114
|
+
let params = fieldParams[uri];
|
|
115
|
+
if (params === undefined)
|
|
116
|
+
params = { style: '' }; // non-bottom field types can do this
|
|
117
|
+
const paramStyle = params.style || '';
|
|
118
|
+
const inputStyle = style.textInputStyle + paramStyle;
|
|
119
|
+
const field = dom.createElement('input');
|
|
120
|
+
field.style = inputStyle;
|
|
121
|
+
rhs.appendChild(field);
|
|
122
|
+
field.setAttribute('type', params.type ? params.type : 'text');
|
|
123
|
+
const size = kb.anyJS(form, ns.ui('size')) || styleConstants.textInputSize || 20;
|
|
124
|
+
field.setAttribute('size', size);
|
|
125
|
+
const maxLength = kb.any(form, ns.ui('maxLength'));
|
|
126
|
+
field.setAttribute('maxLength', maxLength ? '' + maxLength : styleConstants.basicMaxLength);
|
|
127
|
+
doc = doc || fieldStore(subject, property, doc);
|
|
128
|
+
let obj = kb.any(subject, property, undefined, doc);
|
|
129
|
+
if (!obj) {
|
|
130
|
+
obj = kb.any(form, ns.ui('default'));
|
|
131
|
+
}
|
|
132
|
+
if (obj && obj.value && params.uriPrefix) {
|
|
133
|
+
// eg tel: or mailto:
|
|
134
|
+
field.value = decodeURIComponent(obj.value.replace(params.uriPrefix, '')) // should have no spaces but in case
|
|
135
|
+
.replace(/ /g, '');
|
|
136
|
+
}
|
|
137
|
+
else if (obj) {
|
|
138
|
+
/* istanbul ignore next */
|
|
139
|
+
field.value = obj.value || obj.value || '';
|
|
140
|
+
}
|
|
141
|
+
field.setAttribute('style', inputStyle);
|
|
142
|
+
if (!kb.updater) {
|
|
143
|
+
throw new Error('kb has no updater');
|
|
144
|
+
}
|
|
145
|
+
if (!kb.updater.editable(doc.uri)) {
|
|
146
|
+
field.readOnly = true // was: disabled. readOnly is better
|
|
147
|
+
;
|
|
148
|
+
field.style = style.textInputStyleUneditable + paramStyle;
|
|
149
|
+
if (suppressEmptyUneditable && field.value === '') {
|
|
150
|
+
box.style.display = 'none'; // clutter
|
|
151
|
+
}
|
|
152
|
+
return box;
|
|
153
|
+
}
|
|
154
|
+
// read-write:
|
|
155
|
+
field.addEventListener('keyup', function (_e) {
|
|
156
|
+
if (params.pattern) {
|
|
157
|
+
field.setAttribute('style', inputStyle +
|
|
158
|
+
(field.value.match(params.pattern)
|
|
159
|
+
? 'color: green;'
|
|
160
|
+
: 'color: red;'));
|
|
161
|
+
}
|
|
162
|
+
}, true);
|
|
163
|
+
field.addEventListener('change', function (_e) {
|
|
164
|
+
// i.e. lose focus with changed data
|
|
165
|
+
if (params.pattern && !field.value.match(params.pattern))
|
|
166
|
+
return;
|
|
167
|
+
field.disabled = true; // See if this stops getting two dates from fumbling e.g the chrome datepicker.
|
|
168
|
+
field.setAttribute('style', inputStyle + 'color: gray;'); // pending
|
|
169
|
+
const ds = kb.statementsMatching(subject, property); // remove any multiple values
|
|
170
|
+
let result;
|
|
171
|
+
if (params.namedNode) {
|
|
172
|
+
result = kb.sym(field.value);
|
|
173
|
+
}
|
|
174
|
+
else if (params.uriPrefix) {
|
|
175
|
+
result = encodeURIComponent(field.value.replace(/ /g, ''));
|
|
176
|
+
result = kb.sym(params.uriPrefix + field.value);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
if (params.dt) {
|
|
180
|
+
result = new Literal(field.value.trim(), undefined, ns.xsd(params.dt));
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
result = new Literal(field.value);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
let is = ds.map(statement => st(statement.subject, statement.predicate, result, statement.why)); // can include >1 doc
|
|
187
|
+
if (is.length === 0) {
|
|
188
|
+
// or none
|
|
189
|
+
is = [st(subject, property, result, doc)];
|
|
190
|
+
}
|
|
191
|
+
function updateMany(ds, is, callback) {
|
|
192
|
+
const docs = [];
|
|
193
|
+
is.forEach(st => {
|
|
194
|
+
if (!docs.includes(st.why.uri))
|
|
195
|
+
docs.push(st.why.uri);
|
|
196
|
+
});
|
|
197
|
+
ds.forEach(st => {
|
|
198
|
+
/* istanbul ignore next */
|
|
199
|
+
if (!docs.includes(st.why.uri))
|
|
200
|
+
docs.push(st.why.uri);
|
|
201
|
+
});
|
|
202
|
+
/* istanbul ignore next */
|
|
203
|
+
if (docs.length === 0) {
|
|
204
|
+
throw new Error('updateMany has no docs to patch');
|
|
205
|
+
}
|
|
206
|
+
if (!kb.updater) {
|
|
207
|
+
throw new Error('kb has no updater');
|
|
208
|
+
}
|
|
209
|
+
if (docs.length === 1) {
|
|
210
|
+
return kb.updater.update(ds, is, callback);
|
|
211
|
+
}
|
|
212
|
+
// return kb.updater.update(ds, is, callback)
|
|
213
|
+
const doc = docs.pop();
|
|
214
|
+
const is1 = is.filter(st => st.why.uri === doc);
|
|
215
|
+
const is2 = is.filter(st => st.why.uri !== doc);
|
|
216
|
+
const ds1 = ds.filter(st => st.why.uri === doc);
|
|
217
|
+
const ds2 = ds.filter(st => st.why.uri !== doc);
|
|
218
|
+
kb.updater.update(ds1, is1, function (uri, ok, body) {
|
|
219
|
+
if (ok) {
|
|
220
|
+
updateMany(ds2, is2, callback);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
callback(uri, ok, body);
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
updateMany(ds, is, function (uri, ok, body) {
|
|
228
|
+
// kb.updater.update(ds, is, function (uri, ok, body) {
|
|
229
|
+
if (ok) {
|
|
230
|
+
field.disabled = false;
|
|
231
|
+
field.setAttribute('style', inputStyle);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
box.appendChild(errorMessageBlock(dom, body));
|
|
235
|
+
}
|
|
236
|
+
callbackFunction(ok, body);
|
|
237
|
+
});
|
|
238
|
+
}, true);
|
|
239
|
+
return box;
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=basic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/widgets/forms/basic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { solidLogicSingleton } from 'solid-logic';
|
|
2
|
+
import ns from '../../ns';
|
|
3
|
+
import { mostSpecificClassURI } from './fieldFunction';
|
|
4
|
+
import { fieldParams } from './fieldParams';
|
|
5
|
+
const store = solidLogicSingleton.store;
|
|
6
|
+
/**
|
|
7
|
+
* A [[FieldFunction]] for a simple comment box. It will look for
|
|
8
|
+
* the first (form, ns.ui('contents'), ?) triple it can find in
|
|
9
|
+
* store and use the value of the object of that triple as
|
|
10
|
+
* the comment text.
|
|
11
|
+
*
|
|
12
|
+
* @param dom The DOM
|
|
13
|
+
* @param container If set, the result will be appended to it as a child
|
|
14
|
+
* @param already Unused
|
|
15
|
+
* @param subject Unused
|
|
16
|
+
* @param form RDF node with `ns.ui('contents')` attribute
|
|
17
|
+
* @param _doc Unused
|
|
18
|
+
* @param _callbackFunction Unused
|
|
19
|
+
*
|
|
20
|
+
* @returns a DOM element containing the comment.
|
|
21
|
+
*/
|
|
22
|
+
export function commentField(dom, container, already, subject, form, _doc, _callbackFunction) {
|
|
23
|
+
const kb = store;
|
|
24
|
+
let contents = kb.any(form, ns.ui('contents'));
|
|
25
|
+
if (!contents) {
|
|
26
|
+
contents = 'Error: No contents in comment field.';
|
|
27
|
+
}
|
|
28
|
+
const uri = mostSpecificClassURI(form);
|
|
29
|
+
let params = fieldParams[uri];
|
|
30
|
+
if (params === undefined) {
|
|
31
|
+
params = {};
|
|
32
|
+
} // non-bottom field types can do this
|
|
33
|
+
const box = dom.createElement('div');
|
|
34
|
+
if (container)
|
|
35
|
+
container.appendChild(box);
|
|
36
|
+
const p = box.appendChild(dom.createElement(params.element || 'p'));
|
|
37
|
+
p.textContent = contents;
|
|
38
|
+
let style = kb.any(form, ns.ui('style'));
|
|
39
|
+
if (style === undefined) {
|
|
40
|
+
style = params.style ? params.style : '';
|
|
41
|
+
}
|
|
42
|
+
if (style)
|
|
43
|
+
p.setAttribute('style', style);
|
|
44
|
+
return box;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=comment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment.js","sourceRoot":"","sources":["../../../src/widgets/forms/comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAA;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAiB,EACjB,SAAkC,EAClC,OAAY,EACZ,OAAY,EACZ,IAAI,EACJ,IAAI,EACJ,iBAAiB;IAEjB,MAAM,EAAE,GAAG,KAAK,CAAA;IAChB,IAAI,QAAQ,GAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,sCAAsC,CAAA;IACnD,CAAC;IACD,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,EAAE,CAAA;IACb,CAAC,CAAC,qCAAqC;IAEvC,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,SAAS;QAAE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAA;IACnE,CAAC,CAAC,WAAW,GAAG,QAAQ,CAAA;IAExB,IAAI,KAAK,GAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1C,CAAC;IACD,IAAI,KAAK;QAAE,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAY,CAAC,CAAA;IAEhD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { solidLogicSingleton } from 'solid-logic';
|
|
2
|
+
import { debug } from '../../log';
|
|
3
|
+
import { errorMessageBlock } from '../error';
|
|
4
|
+
const store = solidLogicSingleton.store;
|
|
5
|
+
export const field = {}; // Form field functions by URI of field type.
|
|
6
|
+
/**
|
|
7
|
+
* Which class of field is this? Relies on http://www.w3.org/2000/01/rdf-schema#subClassOf and
|
|
8
|
+
* https://linkeddata.github.io/rdflib.js/doc/classes/formula.html#bottomtypeuris
|
|
9
|
+
* to find the most specific RDF type if there are multiple.
|
|
10
|
+
*
|
|
11
|
+
* @param x a form field, e.g. `namedNode('https://timbl.com/timbl/Public/Test/Forms/individualForm.ttl#fullNameField')`
|
|
12
|
+
* @returns the URI of the most specific known class, e.g. `http://www.w3.org/ns/ui#SingleLineTextField`
|
|
13
|
+
*/
|
|
14
|
+
export function mostSpecificClassURI(x) {
|
|
15
|
+
const kb = store;
|
|
16
|
+
const ft = kb.findTypeURIs(x);
|
|
17
|
+
const bot = kb.bottomTypeURIs(ft); // most specific
|
|
18
|
+
const bots = [];
|
|
19
|
+
for (const b in bot)
|
|
20
|
+
bots.push(b);
|
|
21
|
+
// if (bots.length > 1) throw "Didn't expect "+x+" to have multiple bottom types: "+bots
|
|
22
|
+
return bots[0];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Returns a function that creates a form widget
|
|
26
|
+
* @param dom unused
|
|
27
|
+
* @param fieldInQuestion the field for which to create a form, e.g. namedNode('https://timbl.com/timbl/Public/Test/Forms/individualForm.ttl#fullNameField')
|
|
28
|
+
*/
|
|
29
|
+
export function fieldFunction(dom /* unused */, fieldInQuestion) {
|
|
30
|
+
const uri = mostSpecificClassURI(fieldInQuestion); // What type
|
|
31
|
+
// const uri = field.uri
|
|
32
|
+
const fun = field[uri];
|
|
33
|
+
debug('paneUtils: Going to implement field ' + fieldInQuestion + ' of type ' + uri);
|
|
34
|
+
if (!fun) {
|
|
35
|
+
return function (dom2, container) {
|
|
36
|
+
const box = errorMessageBlock(dom2, 'No handler for field ' + fieldInQuestion + ' of type ' + uri);
|
|
37
|
+
if (container)
|
|
38
|
+
container.appendChild(box);
|
|
39
|
+
return box;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return fun;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=fieldFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldFunction.js","sourceRoot":"","sources":["../../../src/widgets/forms/fieldFunction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAE5C,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAA;AAYvC,MAAM,CAAC,MAAM,KAAK,GAA0C,EAAE,CAAA,CAAC,6CAA6C;AAE5G;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAE,CAAO;IAC3C,MAAM,EAAE,GAAG,KAAK,CAAA;IAChB,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAQ,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA,CAAC,gBAAgB;IAClD,MAAM,IAAI,GAAU,EAAE,CAAA;IACtB,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjC,wFAAwF;IACxF,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAE,GAAQ,CAAC,YAAY,EAAE,eAAqB;IACzE,MAAM,GAAG,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAA,CAAC,YAAY;IAC9D,wBAAwB;IACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACtB,KAAK,CACH,sCAAsC,GAAG,eAAe,GAAG,WAAW,GAAG,GAAG,CAC7E,CAAA;IACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,UAAU,IAAkB,EAAE,SAAuB;YAC1D,MAAM,GAAG,GAAG,iBAAiB,CAC3B,IAAI,EACJ,uBAAuB,GAAG,eAAe,GAAG,WAAW,GAAG,GAAG,CAC9D,CAAA;YACD,IAAI,SAAS;gBAAE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAEzC,OAAO,GAAG,CAAA;QACZ,CAAC,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import ns from '../../ns';
|
|
2
|
+
import { style } from '../../style';
|
|
3
|
+
/**
|
|
4
|
+
* The fieldParams object defines various constants
|
|
5
|
+
* for use in various form fields. Depending on the
|
|
6
|
+
* field in questions, different values may be read
|
|
7
|
+
* from here.
|
|
8
|
+
*/
|
|
9
|
+
export const fieldParams = {
|
|
10
|
+
/**
|
|
11
|
+
* Text field
|
|
12
|
+
*
|
|
13
|
+
* For possible date popups see e.g. http://www.dynamicdrive.com/dynamicindex7/jasoncalendar.htm
|
|
14
|
+
* or use HTML5: http://www.w3.org/TR/2011/WD-html-markup-20110113/input.date.html
|
|
15
|
+
*/
|
|
16
|
+
[ns.ui('ColorField').uri]: {
|
|
17
|
+
size: 9,
|
|
18
|
+
type: 'color',
|
|
19
|
+
style: 'height: 3em;', // around 1.5em is padding
|
|
20
|
+
dt: 'color',
|
|
21
|
+
pattern: /^\s*#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]([0-9a-f][0-9a-f])?\s*$/
|
|
22
|
+
}, // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color
|
|
23
|
+
[ns.ui('DateField').uri]: {
|
|
24
|
+
size: 20,
|
|
25
|
+
type: 'date',
|
|
26
|
+
dt: 'date',
|
|
27
|
+
pattern: /^\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?Z?\s*$/
|
|
28
|
+
},
|
|
29
|
+
[ns.ui('DateTimeField').uri]: {
|
|
30
|
+
size: 20,
|
|
31
|
+
type: 'datetime-local', // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime
|
|
32
|
+
dt: 'dateTime',
|
|
33
|
+
pattern: /^\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?(T[0-2][0-9]:[0-5][0-9](:[0-5][0-9])?)?Z?\s*$/
|
|
34
|
+
},
|
|
35
|
+
[ns.ui('TimeField').uri]: {
|
|
36
|
+
size: 10,
|
|
37
|
+
type: 'time',
|
|
38
|
+
dt: 'time',
|
|
39
|
+
pattern: /^\s*([0-2]?[0-9]:[0-5][0-9](:[0-5][0-9])?)\s*$/
|
|
40
|
+
},
|
|
41
|
+
[ns.ui('IntegerField').uri]: {
|
|
42
|
+
size: 12,
|
|
43
|
+
style: 'text-align: right;',
|
|
44
|
+
dt: 'integer',
|
|
45
|
+
pattern: /^\s*-?[0-9]+\s*$/
|
|
46
|
+
},
|
|
47
|
+
[ns.ui('DecimalField').uri]: {
|
|
48
|
+
size: 12,
|
|
49
|
+
style: 'text-align: right;',
|
|
50
|
+
dt: 'decimal',
|
|
51
|
+
pattern: /^\s*-?[0-9]*(\.[0-9]*)?\s*$/
|
|
52
|
+
},
|
|
53
|
+
[ns.ui('FloatField').uri]: {
|
|
54
|
+
size: 12,
|
|
55
|
+
style: 'text-align: right;',
|
|
56
|
+
dt: 'float',
|
|
57
|
+
pattern: /^\s*-?[0-9]*(\.[0-9]*)?((e|E)-?[0-9]*)?\s*$/
|
|
58
|
+
},
|
|
59
|
+
[ns.ui('SingleLineTextField').uri]: {},
|
|
60
|
+
[ns.ui('NamedNodeURIField').uri]: {
|
|
61
|
+
namedNode: true
|
|
62
|
+
},
|
|
63
|
+
[ns.ui('TextField').uri]: {},
|
|
64
|
+
[ns.ui('PhoneField').uri]: {
|
|
65
|
+
size: 20,
|
|
66
|
+
uriPrefix: 'tel:',
|
|
67
|
+
pattern: /^\+?[\d-]+[\d]*$/
|
|
68
|
+
},
|
|
69
|
+
[ns.ui('EmailField').uri]: {
|
|
70
|
+
size: 30,
|
|
71
|
+
uriPrefix: 'mailto:',
|
|
72
|
+
pattern: /^\s*.*@.*\..*\s*$/ // @@ Get the right regexp here
|
|
73
|
+
},
|
|
74
|
+
[ns.ui('Group').uri]: {
|
|
75
|
+
style: style.formGroupStyle
|
|
76
|
+
},
|
|
77
|
+
/**
|
|
78
|
+
* Non-interactive fields
|
|
79
|
+
*/
|
|
80
|
+
[ns.ui('Comment').uri]: {
|
|
81
|
+
element: 'p',
|
|
82
|
+
style: style.commentStyle
|
|
83
|
+
},
|
|
84
|
+
[ns.ui('Heading').uri]: {
|
|
85
|
+
element: 'h3',
|
|
86
|
+
style: style.formHeadingStyle
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=fieldParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldParams.js","sourceRoot":"","sources":["../../../src/widgets/forms/fieldParams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formStyle.d.ts","sourceRoot":"","sources":["../../../src/widgets/forms/formStyle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"formStyle.d.ts","sourceRoot":"","sources":["../../../src/widgets/forms/formStyle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAQ7B,wBAAgB,aAAa,CAAE,GAAG,EAAC,WAAW,EAAE,KAAK,EAAC,IAAI,QA2BzD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import ns from '../../ns';
|
|
2
|
+
import { store } from 'solid-logic';
|
|
3
|
+
import { fieldParams } from './fieldParams';
|
|
4
|
+
import { mostSpecificClassURI } from './fieldFunction';
|
|
5
|
+
const STYLE_URI_PREFIX = 'https://www.w3.org/ns/css#';
|
|
6
|
+
export function setFieldStyle(ele, field) {
|
|
7
|
+
const classUri = mostSpecificClassURI(field);
|
|
8
|
+
const params = fieldParams[classUri] || {};
|
|
9
|
+
const style = store.any(field, ns.ui('style'));
|
|
10
|
+
if (!style) {
|
|
11
|
+
if (params.style) {
|
|
12
|
+
ele.setAttribute('style', params.style);
|
|
13
|
+
}
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (style.termType === 'Literal') {
|
|
17
|
+
if (style)
|
|
18
|
+
ele.setAttribute('style', style.value);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const sts = store.statementsMatching(style, null, null, field.doc());
|
|
22
|
+
sts.forEach(st => {
|
|
23
|
+
if (st.predicate.uri && st.predicate.uri.startsWith(STYLE_URI_PREFIX)) {
|
|
24
|
+
const cssAttribute = st.predicate.uri.slice(STYLE_URI_PREFIX.length);
|
|
25
|
+
try {
|
|
26
|
+
ele.style[cssAttribute] = st.object.value;
|
|
27
|
+
}
|
|
28
|
+
catch (_err) {
|
|
29
|
+
console.warn(`setFieldStyle: Error setting element style ${cssAttribute} to "${st.object.value}"`);
|
|
30
|
+
console.warn(`setFieldStyle: ... Element tagName was "${ele.tagName || '???'}"`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=formStyle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formStyle.js","sourceRoot":"","sources":["../../../src/widgets/forms/formStyle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,gBAAgB,GAAG,4BAA4B,CAAA;AAErD,MAAM,UAAU,aAAa,CAAE,GAAe,EAAE,KAAU;IACxD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAE1C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACzC,CAAC;QACD,OAAM;IACR,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,KAAK;YAAE,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAY,EAAE,IAAI,EAAE,IAAI,EAAG,KAAa,CAAC,GAAG,EAAE,CAAC,CAAA;QACpF,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACf,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtE,MAAM,YAAY,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;gBACpE,IAAI,CAAC;oBACH,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAA;gBAC3C,CAAC;gBAAC,OAAO,IAAI,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,8CAA8C,YAAY,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;oBAClG,OAAO,CAAC,IAAI,CAAC,6CAA6C,GAAG,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,CAAA;gBACpF,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetHelpers.d.ts","sourceRoot":"","sources":["../../src/widgets/widgetHelpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"widgetHelpers.d.ts","sourceRoot":"","sources":["../../src/widgets/widgetHelpers.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;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"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.wrapDivInATR = exports.createImageDiv = exports.addClickListenerToElement = void 0;
|
|
7
|
-
var _style = require("../style");
|
|
1
|
+
import { style } from '../style';
|
|
8
2
|
/**
|
|
9
3
|
* Wraps a Div in a TR/RD
|
|
10
4
|
*
|
|
@@ -19,15 +13,13 @@ var _style = require("../style");
|
|
|
19
13
|
*
|
|
20
14
|
* @internal exporting this only for unit tests
|
|
21
15
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return tr;
|
|
16
|
+
export const wrapDivInATR = (dom, div, obj) => {
|
|
17
|
+
const tr = dom.createElement('tr');
|
|
18
|
+
const td = tr.appendChild(dom.createElement('td'));
|
|
19
|
+
td.appendChild(div);
|
|
20
|
+
tr.subject = obj;
|
|
21
|
+
return tr;
|
|
29
22
|
};
|
|
30
|
-
|
|
31
23
|
/**
|
|
32
24
|
* Adds a click listener to a div
|
|
33
25
|
*
|
|
@@ -40,11 +32,9 @@ var wrapDivInATR = exports.wrapDivInATR = function wrapDivInATR(dom, div, obj) {
|
|
|
40
32
|
*
|
|
41
33
|
* @internal exporting this only for unit tests
|
|
42
34
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
div.addEventListener('click', onClickFunction);
|
|
35
|
+
export const addClickListenerToElement = (div, onClickFunction) => {
|
|
36
|
+
div.addEventListener('click', onClickFunction);
|
|
46
37
|
};
|
|
47
|
-
|
|
48
38
|
/**
|
|
49
39
|
* Wraps a Div in a TR/RD
|
|
50
40
|
*
|
|
@@ -59,11 +49,10 @@ var addClickListenerToElement = exports.addClickListenerToElement = function add
|
|
|
59
49
|
*
|
|
60
50
|
* @internal exporting this only for unit tests
|
|
61
51
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
image.setAttribute('draggable', 'false'); // Stop the image being dragged instead - just the TR
|
|
52
|
+
export const createImageDiv = (dom, div, image) => {
|
|
53
|
+
const imageDiv = div.appendChild(dom.createElement('div'));
|
|
54
|
+
imageDiv.setAttribute('style', style.imageDivStyle);
|
|
55
|
+
imageDiv.appendChild(image);
|
|
56
|
+
image.setAttribute('draggable', 'false'); // Stop the image being dragged instead - just the TR
|
|
68
57
|
};
|
|
69
58
|
//# sourceMappingURL=widgetHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widgetHelpers.js","sourceRoot":"","sources":["../../src/widgets/widgetHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAiB,EAAE,GAAmB,EAAE,GAAQ,EAAE,EAAE;IAC/E,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAClB;IAAC,EAAU,CAAC,OAAO,GAAG,GAAG,CAAA;IAC1B,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAmB,EAAE,eAA2B,EAAE,EAAE;IAC5F,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;AAChD,CAAC,CAAA;AAED;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAiB,EAAE,GAAmB,EAAE,KAA2C,EAAE,EAAE;IACpH,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAE1D,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IACnD,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAC3B,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA,CAAC,qDAAqD;AAChG,CAAC,CAAA"}
|