solid-ui 2.4.12 → 2.4.14-46ae8b5d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +0 -0
- package/README.md +0 -0
- package/lib/acl/access-controller.d.ts +0 -0
- package/lib/acl/access-controller.d.ts.map +0 -0
- package/lib/acl/access-controller.js +0 -0
- package/lib/acl/access-controller.js.map +0 -0
- package/lib/acl/access-groups.d.ts +0 -0
- package/lib/acl/access-groups.d.ts.map +0 -0
- package/lib/acl/access-groups.js +0 -0
- package/lib/acl/access-groups.js.map +0 -0
- package/lib/acl/acl-control.d.ts +0 -0
- package/lib/acl/acl-control.d.ts.map +0 -0
- package/lib/acl/acl-control.js +0 -0
- package/lib/acl/acl-control.js.map +0 -0
- package/lib/acl/acl.d.ts +0 -0
- package/lib/acl/acl.d.ts.map +0 -0
- package/lib/acl/acl.js +0 -0
- package/lib/acl/acl.js.map +0 -0
- package/lib/acl/add-agent-buttons.d.ts +0 -0
- package/lib/acl/add-agent-buttons.d.ts.map +0 -0
- package/lib/acl/add-agent-buttons.js +0 -0
- package/lib/acl/add-agent-buttons.js.map +0 -0
- package/lib/acl/index.d.ts +0 -0
- package/lib/acl/index.d.ts.map +0 -0
- package/lib/acl/index.js +0 -0
- package/lib/acl/index.js.map +0 -0
- package/lib/acl/styles.d.ts +0 -0
- package/lib/acl/styles.d.ts.map +0 -0
- package/lib/acl/styles.js +0 -0
- package/lib/acl/styles.js.map +0 -0
- package/lib/acl/types.d.ts +0 -0
- package/lib/acl/types.d.ts.map +0 -0
- package/lib/acl/types.js +0 -0
- package/lib/acl/types.js.map +0 -0
- package/lib/authn/authSession.d.ts +0 -0
- package/lib/authn/authSession.d.ts.map +0 -0
- package/lib/authn/authSession.js +0 -0
- package/lib/authn/authSession.js.map +0 -0
- package/lib/authn/authn.d.ts +0 -0
- package/lib/authn/authn.d.ts.map +0 -0
- package/lib/authn/authn.js +0 -0
- package/lib/authn/authn.js.map +0 -0
- package/lib/authn/config-default.js +0 -0
- package/lib/authn/config-default.js.map +0 -0
- package/lib/authn/index.d.ts +0 -0
- package/lib/authn/index.d.ts.map +0 -0
- package/lib/authn/index.js +0 -0
- package/lib/authn/index.js.map +0 -0
- package/lib/authn/signup.js +0 -0
- package/lib/authn/signup.js.map +0 -0
- package/lib/authn/types.d.ts +0 -0
- package/lib/authn/types.d.ts.map +0 -0
- package/lib/authn/types.js +0 -0
- package/lib/authn/types.js.map +0 -0
- package/lib/chat/bookmarks.js +0 -0
- package/lib/chat/bookmarks.js.map +0 -0
- package/lib/chat/dateFolder.js +0 -0
- package/lib/chat/dateFolder.js.map +0 -0
- package/lib/chat/infinite.js +0 -0
- package/lib/chat/infinite.js.map +0 -0
- package/lib/chat/message.js +0 -0
- package/lib/chat/message.js.map +0 -0
- package/lib/chat/messageTools.js +0 -0
- package/lib/chat/messageTools.js.map +0 -0
- package/lib/chat/thread.js +0 -0
- package/lib/chat/thread.js.map +0 -0
- package/lib/create/create.d.ts +0 -0
- package/lib/create/create.d.ts.map +0 -0
- package/lib/create/create.js +0 -0
- package/lib/create/create.js.map +0 -0
- package/lib/create/index.d.ts +0 -0
- package/lib/create/index.d.ts.map +0 -0
- package/lib/create/index.js +0 -0
- package/lib/create/index.js.map +0 -0
- package/lib/create/types.d.ts +0 -0
- package/lib/create/types.d.ts.map +0 -0
- package/lib/create/types.js +0 -0
- package/lib/create/types.js.map +0 -0
- package/lib/debug.d.ts +0 -0
- package/lib/debug.d.ts.map +0 -0
- package/lib/debug.js +0 -0
- package/lib/debug.js.map +0 -0
- package/lib/folders.js +0 -0
- package/lib/folders.js.map +0 -0
- package/lib/footer/index.d.ts +20 -0
- package/lib/footer/index.d.ts.map +1 -0
- package/lib/footer/index.js +147 -0
- package/lib/footer/index.js.map +1 -0
- package/lib/footer/styleMap.d.ts +8 -0
- package/lib/footer/styleMap.d.ts.map +1 -0
- package/lib/footer/styleMap.js +15 -0
- package/lib/footer/styleMap.js.map +1 -0
- package/lib/header/empty-profile.d.ts +0 -0
- package/lib/header/empty-profile.d.ts.map +0 -0
- package/lib/header/empty-profile.js +0 -0
- package/lib/header/empty-profile.js.map +0 -0
- package/lib/header/index.d.ts +11 -8
- package/lib/header/index.d.ts.map +1 -1
- package/lib/header/index.js +78 -66
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.d.ts +0 -2
- package/lib/header/styleMap.d.ts.map +1 -1
- package/lib/header/styleMap.js +1 -5
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.d.ts +0 -0
- package/lib/iconBase.d.ts.map +0 -0
- package/lib/iconBase.js +0 -0
- package/lib/iconBase.js.map +0 -0
- package/lib/icons/solid_logo.d.ts +0 -0
- package/lib/icons/solid_logo.d.ts.map +0 -0
- package/lib/icons/solid_logo.js +0 -0
- package/lib/icons/solid_logo.js.map +0 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -1
- package/lib/index.js.map +1 -1
- package/lib/jss/index.d.ts +0 -0
- package/lib/jss/index.d.ts.map +0 -0
- package/lib/jss/index.js +0 -0
- package/lib/jss/index.js.map +0 -0
- package/lib/log.d.ts +0 -0
- package/lib/log.d.ts.map +0 -0
- package/lib/log.js +0 -0
- package/lib/log.js.map +0 -0
- package/lib/logic.d.ts +0 -0
- package/lib/logic.d.ts.map +0 -0
- package/lib/logic.js +0 -0
- package/lib/logic.js.map +0 -0
- package/lib/matrix/index.d.ts +0 -0
- package/lib/matrix/index.d.ts.map +0 -0
- package/lib/matrix/index.js +0 -0
- package/lib/matrix/index.js.map +0 -0
- package/lib/matrix/matrix.d.ts +0 -0
- package/lib/matrix/matrix.d.ts.map +0 -0
- package/lib/matrix/matrix.js +0 -0
- package/lib/matrix/matrix.js.map +0 -0
- package/lib/matrix/types.d.ts +0 -0
- package/lib/matrix/types.d.ts.map +0 -0
- package/lib/matrix/types.js +0 -0
- package/lib/matrix/types.js.map +0 -0
- package/lib/media/index.d.ts +0 -0
- package/lib/media/index.d.ts.map +0 -0
- package/lib/media/index.js +0 -0
- package/lib/media/index.js.map +0 -0
- package/lib/media/media-capture.d.ts +0 -0
- package/lib/media/media-capture.d.ts.map +0 -0
- package/lib/media/media-capture.js +0 -0
- package/lib/media/media-capture.js.map +0 -0
- package/lib/messageArea.js +0 -0
- package/lib/messageArea.js.map +0 -0
- package/lib/noun_Camera_1618446_000000.js +0 -0
- package/lib/noun_Camera_1618446_000000.js.map +0 -0
- package/lib/ns.js +0 -0
- package/lib/ns.js.map +0 -0
- package/lib/pad.d.ts +0 -0
- package/lib/pad.d.ts.map +0 -0
- package/lib/pad.js +4 -2
- package/lib/pad.js.map +1 -1
- package/lib/participation.d.ts +0 -0
- package/lib/participation.d.ts.map +0 -0
- package/lib/participation.js +3 -1
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +0 -0
- package/lib/preferences.js.map +0 -0
- package/lib/stories/decorators.js +0 -0
- package/lib/stories/decorators.js.map +0 -0
- package/lib/style.js +3 -3
- package/lib/style.js.map +1 -1
- package/lib/table.js +0 -0
- package/lib/table.js.map +0 -0
- package/lib/tabs.d.ts +0 -0
- package/lib/tabs.d.ts.map +0 -0
- package/lib/tabs.js +5 -3
- package/lib/tabs.js.map +1 -1
- package/lib/typings.d.js +0 -0
- package/lib/typings.d.js.map +0 -0
- package/lib/{header/headerHelpers.d.ts → utils/headerFooterHelpers.d.ts} +11 -3
- package/lib/utils/headerFooterHelpers.d.ts.map +1 -0
- package/lib/utils/headerFooterHelpers.js +189 -0
- package/lib/utils/headerFooterHelpers.js.map +1 -0
- package/lib/utils/index.js +0 -0
- package/lib/utils/index.js.map +0 -0
- package/lib/utils/label.d.ts +0 -0
- package/lib/utils/label.d.ts.map +0 -0
- package/lib/utils/label.js +0 -0
- package/lib/utils/label.js.map +0 -0
- package/lib/versionInfo.d.ts +0 -0
- package/lib/versionInfo.d.ts.map +0 -0
- package/lib/versionInfo.js +10 -10
- package/lib/versionInfo.js.map +1 -1
- package/lib/webpack-bundle.js +47514 -58256
- package/lib/webpack-bundle.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts +0 -0
- package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
- package/lib/widgets/buttons/iconLinks.js +0 -0
- package/lib/widgets/buttons/iconLinks.js.map +0 -0
- package/lib/widgets/buttons.d.ts +0 -0
- package/lib/widgets/buttons.d.ts.map +0 -0
- package/lib/widgets/buttons.js +0 -0
- package/lib/widgets/buttons.js.map +0 -0
- package/lib/widgets/dragAndDrop.js +0 -0
- package/lib/widgets/dragAndDrop.js.map +0 -0
- package/lib/widgets/error.d.ts +0 -0
- package/lib/widgets/error.d.ts.map +0 -0
- package/lib/widgets/error.js +0 -0
- package/lib/widgets/error.js.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -0
- package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/language.js +0 -0
- package/lib/widgets/forms/autocomplete/language.js.map +0 -0
- package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/publicData.js +0 -0
- package/lib/widgets/forms/autocomplete/publicData.js.map +0 -0
- package/lib/widgets/forms/basic.d.ts +0 -0
- package/lib/widgets/forms/basic.d.ts.map +1 -1
- package/lib/widgets/forms/basic.js +9 -20
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.d.ts +0 -0
- package/lib/widgets/forms/comment.d.ts.map +0 -0
- package/lib/widgets/forms/comment.js +0 -0
- package/lib/widgets/forms/comment.js.map +0 -0
- package/lib/widgets/forms/fieldFunction.d.ts +0 -0
- package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
- package/lib/widgets/forms/fieldFunction.js +0 -0
- package/lib/widgets/forms/fieldFunction.js.map +0 -0
- package/lib/widgets/forms/fieldParams.d.ts +0 -0
- package/lib/widgets/forms/fieldParams.d.ts.map +1 -1
- package/lib/widgets/forms/fieldParams.js +5 -3
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.d.ts +0 -0
- package/lib/widgets/forms/formStyle.d.ts.map +0 -0
- package/lib/widgets/forms/formStyle.js +0 -0
- package/lib/widgets/forms/formStyle.js.map +0 -0
- package/lib/widgets/forms.js +6 -12
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -0
- package/lib/widgets/index.js.map +0 -0
- package/lib/widgets/peoplePicker.js +0 -0
- package/lib/widgets/peoplePicker.js.map +0 -0
- package/lib/widgets/widgetHelpers.d.ts +0 -0
- package/lib/widgets/widgetHelpers.d.ts.map +0 -0
- package/lib/widgets/widgetHelpers.js +0 -0
- package/lib/widgets/widgetHelpers.js.map +0 -0
- package/package.json +36 -36
- package/lib/header/headerHelpers.d.ts.map +0 -1
- package/lib/header/headerHelpers.js +0 -96
- package/lib/header/headerHelpers.js.map +0 -1
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/lib/widgets/buttons.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/lib/widgets/buttons.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/lib/widgets/error.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/lib/widgets/error.js
CHANGED
|
File without changes
|
package/lib/widgets/error.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../src/widgets/forms/basic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,SAAS,EAAW,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAajF,wBAAgB,mBAAmB,CAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAE,WAAW,CAkBhH;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,eAAe,EAAE,IAAI,GAAG,WAAW,GAAG,IAAI,CAYzH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAE,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAczJ;AAED;;;;;;;;;;;;;;;GAeG;AAEH,wBAAgB,UAAU,CACxB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,OAAO,KAAA,EACP,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,EACzC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,SAAS,GAAG,SAAS,EAC1B,gBAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,GAC9D,WAAW,
|
|
1
|
+
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../src/widgets/forms/basic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,SAAS,EAAW,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAajF,wBAAgB,mBAAmB,CAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAE,WAAW,CAkBhH;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,eAAe,EAAE,IAAI,GAAG,WAAW,GAAG,IAAI,CAYzH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAE,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAczJ;AAED;;;;;;;;;;;;;;;GAeG;AAEH,wBAAgB,UAAU,CACxB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,OAAO,KAAA,EACP,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,EACzC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,SAAS,GAAG,SAAS,EAC1B,gBAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,GAC9D,WAAW,CA8Jb"}
|
|
@@ -141,33 +141,22 @@ function basicField(dom, container, already, subject, form, doc, callbackFunctio
|
|
|
141
141
|
return box.appendChild((0, _error.errorMessageBlock)(dom, 'Error: No property given for text field: ' + form));
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
var rhs = renderNameValuePair(dom, kb, box, form);
|
|
145
|
-
/*
|
|
146
|
-
box.style.display = 'flex'
|
|
147
|
-
box.style.flexDirection = 'row'
|
|
148
|
-
const lhs = box.appendChild(dom.createElement('div'))
|
|
149
|
-
lhs.style.width = formFieldNameBoxWidth
|
|
150
|
-
const rhs = box.appendChild(dom.createElement('div'))
|
|
151
|
-
lhs.appendChild(fieldLabel(dom, property as NamedNode, form))
|
|
152
|
-
lhs.setAttribute('class', 'formFieldName')
|
|
153
|
-
lhs.setAttribute('style', formFieldNameBoxStyle)
|
|
154
|
-
rhs.setAttribute('class', 'formFieldValue')
|
|
155
|
-
*/
|
|
156
|
-
// It can be cleaner to just remove empty fields if you can't edit them anyway
|
|
144
|
+
var rhs = renderNameValuePair(dom, kb, box, form); // It can be cleaner to just remove empty fields if you can't edit them anyway
|
|
157
145
|
|
|
158
146
|
var suppressEmptyUneditable = kb.anyJS(form, ns.ui('suppressEmptyUneditable'), null, formDoc);
|
|
159
147
|
var uri = (0, _fieldFunction.mostSpecificClassURI)(form);
|
|
160
148
|
var params = _fieldParams.fieldParams[uri];
|
|
161
|
-
if (params === undefined) params = {
|
|
162
|
-
|
|
163
|
-
|
|
149
|
+
if (params === undefined) params = {
|
|
150
|
+
style: ''
|
|
151
|
+
}; // non-bottom field types can do this
|
|
164
152
|
|
|
153
|
+
var paramStyle = params.style || '';
|
|
154
|
+
var style = _style.textInputStyle + paramStyle;
|
|
165
155
|
var field = dom.createElement('input');
|
|
166
|
-
field.style =
|
|
167
|
-
|
|
156
|
+
field.style = style;
|
|
168
157
|
rhs.appendChild(field);
|
|
169
158
|
field.setAttribute('type', params.type ? params.type : 'text');
|
|
170
|
-
var size = kb.anyJS(form, ns.ui('size')) ||
|
|
159
|
+
var size = kb.anyJS(form, ns.ui('size')) || _style.textInputSize || 20;
|
|
171
160
|
field.setAttribute('size', size);
|
|
172
161
|
var maxLength = kb.any(form, ns.ui('maxLength'));
|
|
173
162
|
field.setAttribute('maxLength', maxLength ? '' + maxLength : '4096');
|
|
@@ -196,7 +185,7 @@ function basicField(dom, container, already, subject, form, doc, callbackFunctio
|
|
|
196
185
|
if (!kb.updater.editable(doc.uri)) {
|
|
197
186
|
field.readOnly = true // was: disabled. readOnly is better
|
|
198
187
|
;
|
|
199
|
-
field.style = _style.textInputStyleUneditable; // backgroundColor = textInputBackgroundColorUneditable
|
|
188
|
+
field.style = _style.textInputStyleUneditable + paramStyle; // backgroundColor = textInputBackgroundColorUneditable
|
|
200
189
|
|
|
201
190
|
if (suppressEmptyUneditable && field.value === '') {
|
|
202
191
|
box.style.display = 'none'; // clutter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/widgets/forms/basic.ts"],"names":["store","solidLogicSingleton","renderNameValuePair","dom","kb","box","form","property","any","ns","ui","style","display","flexDirection","lhs","appendChild","createElement","width","formFieldNameBoxWidth","rhs","setAttribute","formFieldNameBoxStyle","createTextNode","fieldLabel","fieldInQuestion","lab","undefined","anchor","uri","textContent","fieldStore","subject","predicate","def","sts","statementsMatching","length","updater","Error","why","value","editable","sym","basicField","container","already","doc","callbackFunction","formDoc","suppressEmptyUneditable","anyJS","params","fieldParams","textInputStyle","field","type","size","textInputSize","maxLength","obj","uriPrefix","decodeURIComponent","replace","readOnly","textInputStyleUneditable","addEventListener","_e","pattern","match","disabled","ds","result","namedNode","encodeURIComponent","dt","Literal","trim","xsd","is","map","statement","updateMany","callback","docs","forEach","st","includes","push","update","pop","is1","filter","is2","ds1","ds2","ok","body"],"mappings":"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","sourcesContent":["import { st, BlankNode, Literal, Node, NamedNode, Variable, Store } from 'rdflib'\nimport { solidLogicSingleton } from '../../logic'\nimport * as ns from '../../ns'\nimport { textInputStyle, textInputStyleUneditable, formFieldNameBoxWidth, formFieldNameBoxStyle } from '../../style'\nimport { label } from '../../utils'\nimport { errorMessageBlock } from '../error'\nimport { mostSpecificClassURI } from './fieldFunction'\nimport { fieldParams } from './fieldParams'\n\nconst store = solidLogicSingleton.store\n\n/* Style and create a name, value pair\n*/\nexport function renderNameValuePair (dom: HTMLDocument, kb: Store, box: HTMLElement, form: NamedNode):HTMLElement {\n const property = kb.any(form, ns.ui('property'))\n box.style.display = 'flex'\n box.style.flexDirection = 'row'\n const lhs = box.appendChild(dom.createElement('div'))\n lhs.style.width = formFieldNameBoxWidth\n const rhs = box.appendChild(dom.createElement('div'))\n\n lhs.setAttribute('class', 'formFieldName')\n lhs.setAttribute('style', formFieldNameBoxStyle)\n rhs.setAttribute('class', 'formFieldValue')\n if (!property) { // Assume more space for error on right\n rhs.appendChild(errorMessageBlock(dom, 'No property given for form field: ' + form))\n lhs.appendChild(dom.createTextNode('???'))\n } else {\n lhs.appendChild(fieldLabel(dom, property as NamedNode, form))\n }\n return rhs\n}\n\n/**\n * Create an anchor element with a label as the anchor text.\n *\n * @param dom The DOM\n * @param property href for the anchor element\n * @param fieldInQuestion field to produce a label for\n *\n * @internal exporting this only for unit tests\n */\nexport function fieldLabel (dom: HTMLDocument, property: NamedNode | undefined, fieldInQuestion: Node): HTMLElement | Text {\n let lab = store.any(fieldInQuestion as any, ns.ui('label'))\n if (!lab) lab = label(property, true) // Init capital\n if (property === undefined) {\n return dom.createTextNode('@@Internal error: undefined property')\n }\n const anchor = dom.createElement('a')\n /* istanbul ignore next */\n if (property.uri) anchor.setAttribute('href', property.uri)\n anchor.setAttribute('style', 'color: #3B5998; text-decoration: none;') // Not too blue and no underline\n anchor.textContent = lab as any\n return anchor\n}\n\n/**\n * Returns the document for the first quad that matches\n * the subject and predicate provided, or default if that\n * store is not editable.\n *\n * @param subject Subject about which we want to find an editable RDF document\n * @param predicate Predicate about which we want to find an editable RDF document\n * @param def default RDF document to return if none found\n *\n * @internal exporting this only for unit tests\n */\nexport function fieldStore (subject: NamedNode | BlankNode | Variable, predicate: NamedNode | Variable, def: NamedNode | undefined): NamedNode | undefined {\n const sts = store.statementsMatching(subject, predicate)\n if (sts.length === 0) return def // can used default as no data yet\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n if (\n sts.length > 0 &&\n sts[0].why.value &&\n store.updater.editable(sts[0].why.value, store)\n ) {\n return store.sym(sts[0].why.value)\n }\n return def\n}\n\n/**\n * Render a basic form field\n *\n * The same function is used for many similar one-value fields, with different\n * regexps used to validate.\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?\n *\n * @returns The HTML widget created\n */\n// eslint-disable-next-line complexity\nexport function basicField (\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 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\n const property = kb.any(form, ns.ui('property'))\n if (container) container.appendChild(box)\n if (!property) {\n return box.appendChild(\n errorMessageBlock(dom, 'Error: No property given for text field: ' + form)\n )\n }\n const rhs = renderNameValuePair(dom, kb, box, form)\n /*\n box.style.display = 'flex'\n box.style.flexDirection = 'row'\n const lhs = box.appendChild(dom.createElement('div'))\n lhs.style.width = formFieldNameBoxWidth\n const rhs = box.appendChild(dom.createElement('div'))\n lhs.appendChild(fieldLabel(dom, property as NamedNode, form))\n lhs.setAttribute('class', 'formFieldName')\n lhs.setAttribute('style', formFieldNameBoxStyle)\n rhs.setAttribute('class', 'formFieldValue')\n */\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\n const uri = mostSpecificClassURI(form)\n let params = fieldParams[uri]\n if (params === undefined) params = {} // non-bottom field types can do this\n const style = params.style || textInputStyle\n // box.appendChild(dom.createTextNode(' uri='+uri+', pattern='+ params.pattern))\n const field = dom.createElement('input')\n ;(field as any).style = textInputStyle // Do we have to override length etc?\n rhs.appendChild(field)\n field.setAttribute('type', params.type ? params.type : 'text')\n\n const size = kb.anyJS(form, ns.ui('size')) || style.textInputSize || 20\n field.setAttribute('size', size)\n\n const maxLength = kb.any(form, ns.ui('maxLength'))\n field.setAttribute('maxLength', maxLength ? '' + maxLength : '4096')\n\n doc = doc || fieldStore(subject, property as any, doc)\n\n let obj = kb.any(subject, property as any, undefined, doc)\n if (!obj) {\n obj = kb.any(form, ns.ui('default'))\n }\n if (obj && obj.value && params.uriPrefix) {\n // eg tel: or mailto:\n field.value = decodeURIComponent(obj.value.replace(params.uriPrefix, '')) // should have no spaces but in case\n .replace(/ /g, '')\n } else if (obj) {\n /* istanbul ignore next */\n field.value = obj.value || obj.value || ''\n }\n field.setAttribute('style', style)\n if (!kb.updater) {\n throw new Error('kb has no updater')\n }\n if (!kb.updater.editable((doc as NamedNode).uri)) {\n field.readOnly = true // was: disabled. readOnly is better\n ;(field as any).style = textInputStyleUneditable\n // backgroundColor = textInputBackgroundColorUneditable\n if (suppressEmptyUneditable && field.value === '') {\n box.style.display = 'none' // clutter\n }\n return box\n }\n\n // read-write:\n field.addEventListener(\n 'keyup',\n function (_e) {\n if (params.pattern) {\n field.setAttribute(\n 'style',\n style +\n (field.value.match(params.pattern)\n ? 'color: green;'\n : 'color: red;')\n )\n }\n },\n true\n )\n field.addEventListener(\n 'change',\n function (_e) {\n // i.e. lose focus with changed data\n if (params.pattern && !field.value.match(params.pattern)) return\n field.disabled = true // See if this stops getting two dates from fumbling e.g the chrome datepicker.\n field.setAttribute('style', style + 'color: gray;') // pending\n const ds = kb.statementsMatching(subject, property as any) // remove any multiple values\n let result\n if (params.namedNode) {\n result = kb.sym(field.value)\n } else if (params.uriPrefix) {\n result = encodeURIComponent(field.value.replace(/ /g, ''))\n result = kb.sym(params.uriPrefix + field.value)\n } else {\n if (params.dt) {\n result = new Literal(\n field.value.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n result = new Literal(field.value)\n }\n }\n let is = ds.map(statement => st(statement.subject, statement.predicate, result, statement.why)) // can include >1 doc\n if (is.length === 0) {\n // or none\n is = [st(subject, property as any, result, doc)]\n }\n\n function updateMany (ds, is: { why: { uri: string } }[], callback) {\n const docs: any[] = []\n is.forEach(st => {\n if (!docs.includes(st.why.uri)) docs.push(st.why.uri)\n })\n ds.forEach(st => {\n /* istanbul ignore next */\n if (!docs.includes(st.why.uri)) docs.push(st.why.uri)\n })\n /* istanbul ignore next */\n if (docs.length === 0) {\n throw new Error('updateMany has no docs to patch')\n }\n if (!kb.updater) {\n throw new Error('kb has no updater')\n }\n if (docs.length === 1) {\n return kb.updater.update(ds, is as any, callback)\n }\n // return kb.updater.update(ds, is, callback)\n\n const doc = docs.pop()\n const is1 = is.filter(st => st.why.uri === doc)\n const is2 = is.filter(st => st.why.uri !== doc)\n const ds1 = ds.filter(st => st.why.uri === doc)\n const ds2 = ds.filter(st => st.why.uri !== doc)\n kb.updater.update(ds1, is1 as any, function (uri, ok, body) {\n if (ok) {\n updateMany(ds2, is2, callback)\n } else {\n callback(uri, ok, body)\n }\n })\n }\n\n updateMany(ds, is as any, function (uri, ok, body) {\n // kb.updater.update(ds, is, function (uri, ok, body) {\n if (ok) {\n field.disabled = false\n field.setAttribute('style', style)\n } else {\n box.appendChild(errorMessageBlock(dom, body))\n }\n callbackFunction(ok, body)\n })\n },\n true\n )\n return box\n}\n"],"file":"basic.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/widgets/forms/basic.ts"],"names":["store","solidLogicSingleton","renderNameValuePair","dom","kb","box","form","property","any","ns","ui","style","display","flexDirection","lhs","appendChild","createElement","width","formFieldNameBoxWidth","rhs","setAttribute","formFieldNameBoxStyle","createTextNode","fieldLabel","fieldInQuestion","lab","undefined","anchor","uri","textContent","fieldStore","subject","predicate","def","sts","statementsMatching","length","updater","Error","why","value","editable","sym","basicField","container","already","doc","callbackFunction","formDoc","suppressEmptyUneditable","anyJS","params","fieldParams","paramStyle","textInputStyle","field","type","size","textInputSize","maxLength","obj","uriPrefix","decodeURIComponent","replace","readOnly","textInputStyleUneditable","addEventListener","_e","pattern","match","disabled","ds","result","namedNode","encodeURIComponent","dt","Literal","trim","xsd","is","map","statement","updateMany","callback","docs","forEach","st","includes","push","update","pop","is1","filter","is2","ds1","ds2","ok","body"],"mappings":"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","sourcesContent":["import { st, BlankNode, Literal, Node, NamedNode, Variable, Store } from 'rdflib'\nimport { solidLogicSingleton } from '../../logic'\nimport * as ns from '../../ns'\nimport { textInputSize, textInputStyle, textInputStyleUneditable, formFieldNameBoxWidth, formFieldNameBoxStyle } from '../../style'\nimport { label } from '../../utils'\nimport { errorMessageBlock } from '../error'\nimport { mostSpecificClassURI } from './fieldFunction'\nimport { fieldParams } from './fieldParams'\n\nconst store = solidLogicSingleton.store\n\n/* Style and create a name, value pair\n*/\nexport function renderNameValuePair (dom: HTMLDocument, kb: Store, box: HTMLElement, form: NamedNode):HTMLElement {\n const property = kb.any(form, ns.ui('property'))\n box.style.display = 'flex'\n box.style.flexDirection = 'row'\n const lhs = box.appendChild(dom.createElement('div'))\n lhs.style.width = formFieldNameBoxWidth\n const rhs = box.appendChild(dom.createElement('div'))\n\n lhs.setAttribute('class', 'formFieldName')\n lhs.setAttribute('style', formFieldNameBoxStyle)\n rhs.setAttribute('class', 'formFieldValue')\n if (!property) { // Assume more space for error on right\n rhs.appendChild(errorMessageBlock(dom, 'No property given for form field: ' + form))\n lhs.appendChild(dom.createTextNode('???'))\n } else {\n lhs.appendChild(fieldLabel(dom, property as NamedNode, form))\n }\n return rhs\n}\n\n/**\n * Create an anchor element with a label as the anchor text.\n *\n * @param dom The DOM\n * @param property href for the anchor element\n * @param fieldInQuestion field to produce a label for\n *\n * @internal exporting this only for unit tests\n */\nexport function fieldLabel (dom: HTMLDocument, property: NamedNode | undefined, fieldInQuestion: Node): HTMLElement | Text {\n let lab = store.any(fieldInQuestion as any, ns.ui('label'))\n if (!lab) lab = label(property, true) // Init capital\n if (property === undefined) {\n return dom.createTextNode('@@Internal error: undefined property')\n }\n const anchor = dom.createElement('a')\n /* istanbul ignore next */\n if (property.uri) anchor.setAttribute('href', property.uri)\n anchor.setAttribute('style', 'color: #3B5998; text-decoration: none;') // Not too blue and no underline\n anchor.textContent = lab as any\n return anchor\n}\n\n/**\n * Returns the document for the first quad that matches\n * the subject and predicate provided, or default if that\n * store is not editable.\n *\n * @param subject Subject about which we want to find an editable RDF document\n * @param predicate Predicate about which we want to find an editable RDF document\n * @param def default RDF document to return if none found\n *\n * @internal exporting this only for unit tests\n */\nexport function fieldStore (subject: NamedNode | BlankNode | Variable, predicate: NamedNode | Variable, def: NamedNode | undefined): NamedNode | undefined {\n const sts = store.statementsMatching(subject, predicate)\n if (sts.length === 0) return def // can used default as no data yet\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n if (\n sts.length > 0 &&\n sts[0].why.value &&\n store.updater.editable(sts[0].why.value, store)\n ) {\n return store.sym(sts[0].why.value)\n }\n return def\n}\n\n/**\n * Render a basic form field\n *\n * The same function is used for many similar one-value fields, with different\n * regexps used to validate.\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?\n *\n * @returns The HTML widget created\n */\n// eslint-disable-next-line complexity\nexport function basicField (\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 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\n const property = kb.any(form, ns.ui('property'))\n if (container) container.appendChild(box)\n if (!property) {\n return box.appendChild(\n errorMessageBlock(dom, 'Error: No property given for text field: ' + form)\n )\n }\n const rhs = renderNameValuePair(dom, kb, box, form)\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\n const uri = mostSpecificClassURI(form)\n let params = fieldParams[uri]\n if (params === undefined) params = { style: '' } // non-bottom field types can do this\n const paramStyle = params.style || ''\n const style = textInputStyle + paramStyle\n const field = dom.createElement('input')\n ;(field as any).style = style\n rhs.appendChild(field)\n field.setAttribute('type', params.type ? params.type : 'text')\n\n const size = kb.anyJS(form, ns.ui('size')) || textInputSize || 20\n field.setAttribute('size', size)\n\n const maxLength = kb.any(form, ns.ui('maxLength'))\n field.setAttribute('maxLength', maxLength ? '' + maxLength : '4096')\n\n doc = doc || fieldStore(subject, property as any, doc)\n\n let obj = kb.any(subject, property as any, undefined, doc)\n if (!obj) {\n obj = kb.any(form, ns.ui('default'))\n }\n if (obj && obj.value && params.uriPrefix) {\n // eg tel: or mailto:\n field.value = decodeURIComponent(obj.value.replace(params.uriPrefix, '')) // should have no spaces but in case\n .replace(/ /g, '')\n } else if (obj) {\n /* istanbul ignore next */\n field.value = obj.value || obj.value || ''\n }\n field.setAttribute('style', style)\n if (!kb.updater) {\n throw new Error('kb has no updater')\n }\n if (!kb.updater.editable((doc as NamedNode).uri)) {\n field.readOnly = true // was: disabled. readOnly is better\n ;(field as any).style = textInputStyleUneditable + paramStyle\n // backgroundColor = textInputBackgroundColorUneditable\n if (suppressEmptyUneditable && field.value === '') {\n box.style.display = 'none' // clutter\n }\n return box\n }\n\n // read-write:\n field.addEventListener(\n 'keyup',\n function (_e) {\n if (params.pattern) {\n field.setAttribute(\n 'style',\n style +\n (field.value.match(params.pattern)\n ? 'color: green;'\n : 'color: red;')\n )\n }\n },\n true\n )\n field.addEventListener(\n 'change',\n function (_e) {\n // i.e. lose focus with changed data\n if (params.pattern && !field.value.match(params.pattern)) return\n field.disabled = true // See if this stops getting two dates from fumbling e.g the chrome datepicker.\n field.setAttribute('style', style + 'color: gray;') // pending\n const ds = kb.statementsMatching(subject, property as any) // remove any multiple values\n let result\n if (params.namedNode) {\n result = kb.sym(field.value)\n } else if (params.uriPrefix) {\n result = encodeURIComponent(field.value.replace(/ /g, ''))\n result = kb.sym(params.uriPrefix + field.value)\n } else {\n if (params.dt) {\n result = new Literal(\n field.value.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n result = new Literal(field.value)\n }\n }\n let is = ds.map(statement => st(statement.subject, statement.predicate, result, statement.why)) // can include >1 doc\n if (is.length === 0) {\n // or none\n is = [st(subject, property as any, result, doc)]\n }\n\n function updateMany (ds, is: { why: { uri: string } }[], callback) {\n const docs: any[] = []\n is.forEach(st => {\n if (!docs.includes(st.why.uri)) docs.push(st.why.uri)\n })\n ds.forEach(st => {\n /* istanbul ignore next */\n if (!docs.includes(st.why.uri)) docs.push(st.why.uri)\n })\n /* istanbul ignore next */\n if (docs.length === 0) {\n throw new Error('updateMany has no docs to patch')\n }\n if (!kb.updater) {\n throw new Error('kb has no updater')\n }\n if (docs.length === 1) {\n return kb.updater.update(ds, is as any, callback)\n }\n // return kb.updater.update(ds, is, callback)\n\n const doc = docs.pop()\n const is1 = is.filter(st => st.why.uri === doc)\n const is2 = is.filter(st => st.why.uri !== doc)\n const ds1 = ds.filter(st => st.why.uri === doc)\n const ds2 = ds.filter(st => st.why.uri !== doc)\n kb.updater.update(ds1, is1 as any, function (uri, ok, body) {\n if (ok) {\n updateMany(ds2, is2, callback)\n } else {\n callback(uri, ok, body)\n }\n })\n }\n\n updateMany(ds, is as any, function (uri, ok, body) {\n // kb.updater.update(ds, is, function (uri, ok, body) {\n if (ok) {\n field.disabled = false\n field.setAttribute('style', style)\n } else {\n box.appendChild(errorMessageBlock(dom, body))\n }\n callbackFunction(ok, body)\n })\n },\n true\n )\n return box\n}\n"],"file":"basic.js"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldParams.d.ts","sourceRoot":"","sources":["../../../src/widgets/forms/fieldParams.ts"],"names":[],"mappings":"AAGA,oBAAY,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE;IAAE,CAAE,QAAQ,EAAE,MAAM,GAAI,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"fieldParams.d.ts","sourceRoot":"","sources":["../../../src/widgets/forms/fieldParams.ts"],"names":[],"mappings":"AAGA,oBAAY,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE;IAAE,CAAE,QAAQ,EAAE,MAAM,GAAI,iBAAiB,CAAA;CA8FlE,CAAA"}
|
|
@@ -30,6 +30,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
30
30
|
var fieldParams = (_fieldParams = {}, (0, _defineProperty2["default"])(_fieldParams, ns.ui('ColorField').uri, {
|
|
31
31
|
size: 9,
|
|
32
32
|
type: 'color',
|
|
33
|
+
style: 'height: 3em;',
|
|
34
|
+
// around 1.5em is padding
|
|
33
35
|
dt: 'color',
|
|
34
36
|
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*$/
|
|
35
37
|
}), (0, _defineProperty2["default"])(_fieldParams, ns.ui('DateField').uri, {
|
|
@@ -50,17 +52,17 @@ var fieldParams = (_fieldParams = {}, (0, _defineProperty2["default"])(_fieldPar
|
|
|
50
52
|
pattern: /^\s*([0-2]?[0-9]:[0-5][0-9](:[0-5][0-9])?)\s*$/
|
|
51
53
|
}), (0, _defineProperty2["default"])(_fieldParams, ns.ui('IntegerField').uri, {
|
|
52
54
|
size: 12,
|
|
53
|
-
style: 'text-align: right',
|
|
55
|
+
style: 'text-align: right;',
|
|
54
56
|
dt: 'integer',
|
|
55
57
|
pattern: /^\s*-?[0-9]+\s*$/
|
|
56
58
|
}), (0, _defineProperty2["default"])(_fieldParams, ns.ui('DecimalField').uri, {
|
|
57
59
|
size: 12,
|
|
58
|
-
style: 'text-align: right',
|
|
60
|
+
style: 'text-align: right;',
|
|
59
61
|
dt: 'decimal',
|
|
60
62
|
pattern: /^\s*-?[0-9]*(\.[0-9]*)?\s*$/
|
|
61
63
|
}), (0, _defineProperty2["default"])(_fieldParams, ns.ui('FloatField').uri, {
|
|
62
64
|
size: 12,
|
|
63
|
-
style: 'text-align: right',
|
|
65
|
+
style: 'text-align: right;',
|
|
64
66
|
dt: 'float',
|
|
65
67
|
pattern: /^\s*-?[0-9]*(\.[0-9]*)?((e|E)-?[0-9]*)?\s*$/
|
|
66
68
|
}), (0, _defineProperty2["default"])(_fieldParams, ns.ui('SingleLineTextField').uri, {}), (0, _defineProperty2["default"])(_fieldParams, ns.ui('NamedNodeURIField').uri, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/widgets/forms/fieldParams.ts"],"names":["fieldParams","ns","ui","uri","size","type","
|
|
1
|
+
{"version":3,"sources":["../../../src/widgets/forms/fieldParams.ts"],"names":["fieldParams","ns","ui","uri","size","type","style","dt","pattern","namedNode","uriPrefix","formGroupStyle","element","commentStyle","formHeadingStyle"],"mappings":"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","sourcesContent":["import * as ns from '../../ns'\nimport { commentStyle, formHeadingStyle, formGroupStyle } from '../../style'\n\nexport type FieldParamsObject = {\n size?: number, // input element size attribute\n type?: string, // input element type attribute. Default: 'text' (not for Comment and Heading)\n element?: string, // element type to use (Comment and Heading only)\n style?: string, // style to use\n dt?: string, // xsd data type for the RDF Literal corresponding to the field value. Default: xsd:string\n uriPrefix?: string, // e.g. 'mailto:', will be removed when displaying value to user. Overrides dt.\n namedNode?: boolean, // if true, field value corresponds to the URI of an RDF NamedNode. Overrides dt and uriPrefix.\n pattern?: RegExp // for client-side input validation; field will go red if violated, green if ok\n}\n\n/**\n * The fieldParams object defines various constants\n * for use in various form fields. Depending on the\n * field in questions, different values may be read\n * from here.\n */\nexport const fieldParams: { [ fieldUri: string ]: FieldParamsObject } = {\n /**\n * Text field\n *\n * For possible date popups see e.g. http://www.dynamicdrive.com/dynamicindex7/jasoncalendar.htm\n * or use HTML5: http://www.w3.org/TR/2011/WD-html-markup-20110113/input.date.html\n */\n [ns.ui('ColorField').uri]: {\n size: 9,\n type: 'color',\n style: 'height: 3em;', // around 1.5em is padding\n dt: 'color',\n 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*$/\n }, // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color\n\n [ns.ui('DateField').uri]: {\n size: 20,\n type: 'date',\n dt: 'date',\n pattern: /^\\s*[0-9][0-9][0-9][0-9](-[0-1]?[0-9]-[0-3]?[0-9])?Z?\\s*$/\n },\n\n [ns.ui('DateTimeField').uri]: {\n size: 20,\n type: 'datetime-local', // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime\n dt: 'dateTime',\n 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*$/\n },\n\n [ns.ui('TimeField').uri]: {\n size: 10,\n type: 'time',\n dt: 'time',\n pattern: /^\\s*([0-2]?[0-9]:[0-5][0-9](:[0-5][0-9])?)\\s*$/\n },\n\n [ns.ui('IntegerField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'integer',\n pattern: /^\\s*-?[0-9]+\\s*$/\n },\n\n [ns.ui('DecimalField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'decimal',\n pattern: /^\\s*-?[0-9]*(\\.[0-9]*)?\\s*$/\n },\n\n [ns.ui('FloatField').uri]: {\n size: 12,\n style: 'text-align: right;',\n dt: 'float',\n pattern: /^\\s*-?[0-9]*(\\.[0-9]*)?((e|E)-?[0-9]*)?\\s*$/\n },\n\n [ns.ui('SingleLineTextField').uri]: {\n\n },\n [ns.ui('NamedNodeURIField').uri]: {\n namedNode: true\n },\n [ns.ui('TextField').uri]: {\n\n },\n\n [ns.ui('PhoneField').uri]: {\n size: 20,\n uriPrefix: 'tel:',\n pattern: /^\\+?[\\d-]+[\\d]*$/\n },\n\n [ns.ui('EmailField').uri]: {\n size: 30,\n uriPrefix: 'mailto:',\n pattern: /^\\s*.*@.*\\..*\\s*$/ // @@ Get the right regexp here\n },\n\n [ns.ui('Group').uri]: {\n style: formGroupStyle\n },\n\n /**\n * Non-interactive fields\n */\n [ns.ui('Comment').uri]: {\n element: 'p',\n style: commentStyle // was `padding: 0.1em 1.5em; color: ${formHeadingColor}; white-space: pre-wrap;`\n },\n [ns.ui('Heading').uri]: {\n element: 'h3',\n style: formHeadingStyle // was: `font-size: 110%; font-weight: bold; color: ${formHeadingColor}; padding: 0.2em;`\n }\n}\n"],"file":"fieldParams.js"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/lib/widgets/forms.js
CHANGED
|
@@ -1474,10 +1474,6 @@ function makeSelectForOptions(dom, kb, subject, predicate, possible, options, da
|
|
|
1474
1474
|
return (0, _error.errorMessageBlock)(dom, "Can't do selector with no options, subject= " + subject + ' property = ' + predicate + '.');
|
|
1475
1475
|
}
|
|
1476
1476
|
|
|
1477
|
-
if (options.mint && !options.subForm) {
|
|
1478
|
-
return (0, _error.errorMessageBlock)(dom, "Selector: can't mint new with no subform.");
|
|
1479
|
-
}
|
|
1480
|
-
|
|
1481
1477
|
log.debug('makeSelectForOptions: dataDoc=' + dataDoc);
|
|
1482
1478
|
var actual;
|
|
1483
1479
|
|
|
@@ -1748,10 +1744,8 @@ function buildCheckboxForm(dom, kb, lab, del, ins, form, dataDoc, tristate) {
|
|
|
1748
1744
|
var rhs = (0, _basic.renderNameValuePair)(dom, kb, box, form);
|
|
1749
1745
|
var editable = kb.updater.editable(dataDoc.uri);
|
|
1750
1746
|
var input = dom.createElement('button');
|
|
1751
|
-
var colorCarrier = input;
|
|
1752
|
-
|
|
1753
|
-
input.style = style.checkboxInputStyle; // colorCarrier.style = style.checkboxStyle
|
|
1754
|
-
|
|
1747
|
+
var colorCarrier = input;
|
|
1748
|
+
input.style = style.checkboxInputStyle;
|
|
1755
1749
|
rhs.appendChild(input);
|
|
1756
1750
|
|
|
1757
1751
|
function fix(x) {
|
|
@@ -1811,7 +1805,7 @@ function buildCheckboxForm(dom, kb, lab, del, ins, form, dataDoc, tristate) {
|
|
|
1811
1805
|
if (!editable) return box;
|
|
1812
1806
|
|
|
1813
1807
|
var boxHandler = function boxHandler(_e) {
|
|
1814
|
-
colorCarrier.style.color = '#bbb
|
|
1808
|
+
colorCarrier.style.color = '#bbb'; // grey -- not saved yet
|
|
1815
1809
|
|
|
1816
1810
|
var toDelete = input.state === true ? ins : input.state === false ? del : [];
|
|
1817
1811
|
input.newState = input.state === null ? true : input.state === true ? false : tristate ? null : true;
|
|
@@ -1828,11 +1822,11 @@ function buildCheckboxForm(dom, kb, lab, del, ins, form, dataDoc, tristate) {
|
|
|
1828
1822
|
}
|
|
1829
1823
|
}
|
|
1830
1824
|
|
|
1831
|
-
colorCarrier.style.color = '
|
|
1832
|
-
colorCarrier.style.backgroundColor = '#fee
|
|
1825
|
+
colorCarrier.style.color = '#000';
|
|
1826
|
+
colorCarrier.style.backgroundColor = '#fee';
|
|
1833
1827
|
box.appendChild((0, _error.errorMessageBlock)(dom, "Checkbox: Error updating dataDoc from ".concat(input.state, " to ").concat(input.newState, ":\n\n").concat(errorBody)));
|
|
1834
1828
|
} else {
|
|
1835
|
-
colorCarrier.style = '
|
|
1829
|
+
colorCarrier.style.color = '#000';
|
|
1836
1830
|
input.state = input.newState;
|
|
1837
1831
|
input.textContent = {
|
|
1838
1832
|
"true": checkMarkCharacter,
|