solid-ui 5.0.2-4 → 5.0.2-6
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/dist/acl/access-controller.cjs.js +1 -1
- package/dist/acl/access-controller.cjs.js.map +1 -1
- package/dist/acl/access-controller.esm.js +37 -37
- package/dist/acl/access-groups.cjs.js +2 -2
- package/dist/acl/access-groups.cjs.js.map +1 -1
- package/dist/acl/access-groups.esm.js +78 -78
- package/dist/acl/acl-control.cjs.js +1 -1
- package/dist/acl/acl-control.cjs.js.map +1 -1
- package/dist/acl/acl-control.esm.js +19 -19
- package/dist/acl/add-agent-buttons.cjs.js +1 -1
- package/dist/acl/add-agent-buttons.cjs.js.map +1 -1
- package/dist/acl/add-agent-buttons.esm.js +51 -51
- package/dist/chat/bookmarks.cjs.js +1 -1
- package/dist/chat/bookmarks.cjs.js.map +1 -1
- package/dist/chat/bookmarks.esm.js +44 -44
- package/dist/chat/bookmarks.esm.js.map +1 -1
- package/dist/chat/chatLogic.cjs.js +2 -2
- package/dist/chat/chatLogic.cjs.js.map +1 -1
- package/dist/chat/chatLogic.esm.js +54 -54
- package/dist/chat/dateFolder.cjs.js +1 -1
- package/dist/chat/dateFolder.cjs.js.map +1 -1
- package/dist/chat/dateFolder.esm.js +30 -30
- package/dist/chat/infinite.cjs.js +1 -1
- package/dist/chat/infinite.cjs.js.map +1 -1
- package/dist/chat/infinite.esm.js +49 -49
- package/dist/chat/keys.cjs.js +2 -2
- package/dist/chat/keys.cjs.js.map +1 -1
- package/dist/chat/keys.esm.js +17 -17
- package/dist/chat/message.cjs.js +4 -4
- package/dist/chat/message.cjs.js.map +1 -1
- package/dist/chat/message.esm.js +114 -114
- package/dist/chat/message.esm.js.map +1 -1
- package/dist/chat/messageTools.cjs.js +1 -1
- package/dist/chat/messageTools.cjs.js.map +1 -1
- package/dist/chat/messageTools.esm.js +51 -51
- package/dist/chunks/{ResourceActionsMenu-Bllpr4M5.js → ResourceActionsMenu-KFMLta44.js} +78 -69
- package/dist/chunks/ResourceActionsMenu-KFMLta44.js.map +1 -0
- package/dist/chunks/{access-control-modal-CwmY_Dod.js → access-control-modal-BZdBv6VD.js} +165 -165
- package/dist/chunks/{access-control-modal-CwmY_Dod.js.map → access-control-modal-BZdBv6VD.js.map} +1 -1
- package/dist/chunks/{account-CoHPKKDu.js → account-DWmMJre6.js} +22 -22
- package/dist/chunks/{account-CoHPKKDu.js.map → account-DWmMJre6.js.map} +1 -1
- package/dist/chunks/{auth-CocCqS1p.js → auth-EK-iYNYZ.js} +37 -37
- package/dist/chunks/{auth-CocCqS1p.js.map → auth-EK-iYNYZ.js.map} +1 -1
- package/dist/chunks/{avatar-sNdKdWVO.js → avatar-BBgvMlqv.js} +13 -13
- package/dist/chunks/{avatar-sNdKdWVO.js.map → avatar-BBgvMlqv.js.map} +1 -1
- package/dist/chunks/{combobox-fSTp9qoT.js → combobox-DS6byaf1.js} +3 -3
- package/dist/chunks/{combobox-fSTp9qoT.js.map → combobox-DS6byaf1.js.map} +1 -1
- package/dist/chunks/{error-state-BD4_Wrkz.js → error-state-jV9dlFX2.js} +2 -2
- package/dist/chunks/{error-state-BD4_Wrkz.js.map → error-state-jV9dlFX2.js.map} +1 -1
- package/dist/chunks/{file-explorer-header-D0TebSYR.js → file-explorer-header-BJzo6xDU.js} +50 -50
- package/dist/chunks/{file-explorer-header-D0TebSYR.js.map → file-explorer-header-BJzo6xDU.js.map} +1 -1
- package/dist/chunks/{guard-BOicu9dt.js → guard-SxVT1xr4.js} +13 -13
- package/dist/chunks/{guard-BOicu9dt.js.map → guard-SxVT1xr4.js.map} +1 -1
- package/dist/chunks/{index.esm-C9oV3H3X.js → index.esm-BQrkxchZ.js} +2 -2
- package/dist/chunks/{index.esm-C9oV3H3X.js.map → index.esm-BQrkxchZ.js.map} +1 -1
- package/dist/chunks/{jsonld-D-TE94B0.js → jsonld-C6IOQ1Tg.js} +2 -2
- package/dist/chunks/{jsonld-D-TE94B0.js.map → jsonld-C6IOQ1Tg.js.map} +1 -1
- package/dist/chunks/{login-button-clTw_9tX.js → login-button-Dd0rwZJk.js} +11 -11
- package/dist/chunks/{login-button-clTw_9tX.js.map → login-button-Dd0rwZJk.js.map} +1 -1
- package/dist/chunks/{logout-button-CP-Pz70O.js → logout-button-Da34Lrnq.js} +11 -11
- package/dist/chunks/{logout-button-CP-Pz70O.js.map → logout-button-Da34Lrnq.js.map} +1 -1
- package/dist/chunks/{menu-D0k2fkiE.js → menu-BNJU654v.js} +2 -2
- package/dist/chunks/{menu-D0k2fkiE.js.map → menu-BNJU654v.js.map} +1 -1
- package/dist/chunks/{provider-Cuv3Kp6G.js → provider-B3FoP2qW.js} +11 -11
- package/dist/chunks/{provider-Cuv3Kp6G.js.map → provider-B3FoP2qW.js.map} +1 -1
- package/dist/chunks/{rdf-form-DVmTw3RG.js → rdf-form-BkKDmFPD.js} +36 -36
- package/dist/chunks/{rdf-form-DVmTw3RG.js.map → rdf-form-BkKDmFPD.js.map} +1 -1
- package/dist/chunks/{rdf-input-CRYLK-27.js → rdf-input-BPePtqfS.js} +61 -61
- package/dist/chunks/{rdf-input-CRYLK-27.js.map → rdf-input-BPePtqfS.js.map} +1 -1
- package/dist/chunks/{signup-button-CexdMWj6.js → signup-button-DOInssOu.js} +11 -11
- package/dist/chunks/{signup-button-CexdMWj6.js.map → signup-button-DOInssOu.js.map} +1 -1
- package/dist/chunks/{solidLogicSingleton.esm-BXyHD7mn.js → solidLogicSingleton.esm-Bvt7E7Vl.js} +50 -29
- package/dist/chunks/solidLogicSingleton.esm-Bvt7E7Vl.js.map +1 -0
- package/dist/chunks/square-arrow-out-up-right-DaALlpHo.js +9 -0
- package/dist/chunks/square-arrow-out-up-right-DaALlpHo.js.map +1 -0
- package/dist/chunks/{src-DQgHAH3d.js → src-Cv9Lm1V-.js} +3009 -2980
- package/dist/chunks/src-Cv9Lm1V-.js.map +1 -0
- package/dist/chunks/{style-CXaw5EYi.js → style-Dlw9-wPn.js} +3 -3
- package/dist/chunks/{style-CXaw5EYi.js.map → style-Dlw9-wPn.js.map} +1 -1
- package/dist/chunks/{widgets-BBEQu0CS.js → widgets-C92ihtlF.js} +733 -737
- package/dist/chunks/widgets-C92ihtlF.js.map +1 -0
- package/dist/components/access-control-modal/AccessControlAddAccess.cjs.js +1 -1
- package/dist/components/access-control-modal/AccessControlAddAccess.esm.js +5 -5
- package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js +2 -2
- package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js +12 -12
- package/dist/components/access-control-modal/AccessControlModal.cjs.js +2 -2
- package/dist/components/access-control-modal/AccessControlModal.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlModal.esm.js +35 -35
- package/dist/components/access-control-modal/AccessControlModal.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlSharedAccess.cjs.js +1 -1
- package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js +2 -2
- package/dist/components/access-control-modal/accessTargetResolver.cjs.js +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.cjs.js.map +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.esm.js +21 -21
- package/dist/components/access-control-modal.js +1 -1
- package/dist/components/account/Account.cjs.js +1 -1
- package/dist/components/account/Account.esm.js +3 -3
- package/dist/components/account.js +1 -1
- package/dist/components/all.cjs.js +1 -1
- package/dist/components/all.esm.js +16 -16
- package/dist/components/avatar.js +1 -1
- package/dist/components/combobox/Combobox.cjs.js +1 -1
- package/dist/components/combobox/Combobox.esm.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/dialog/Dialog.cjs.js +2 -2
- package/dist/components/dialog/Dialog.cjs.js.map +1 -1
- package/dist/components/dialog/Dialog.esm.js +9 -9
- package/dist/components/dialog/Dialog.esm.js.map +1 -1
- package/dist/components/dialog-provider/DialogProvider.cjs.js +1 -1
- package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
- package/dist/components/dialog-provider/DialogProvider.esm.js +6 -6
- package/dist/components/dialogs-root/DialogsRoot.cjs.js +2 -2
- package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
- package/dist/components/dialogs-root/DialogsRoot.esm.js +7 -7
- package/dist/components/error-state/ErrorState.cjs.js +1 -1
- package/dist/components/error-state/ErrorState.esm.js +1 -1
- package/dist/components/error-state.js +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +2 -2
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +10 -10
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +5 -5
- package/dist/components/file-explorer-header.js +1 -1
- package/dist/components/guard.js +1 -1
- package/dist/components/login-button/LoginButton.cjs.js +1 -1
- package/dist/components/login-button/LoginButton.esm.js +1 -1
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal/LoginModal.cjs.js +1 -1
- package/dist/components/login-modal/LoginModal.esm.js +2 -2
- package/dist/components/login-modal.js +1 -1
- package/dist/components/logout-button/LogoutButton.cjs.js +1 -1
- package/dist/components/logout-button/LogoutButton.esm.js +1 -1
- package/dist/components/logout-button.js +1 -1
- package/dist/components/menu/Menu.cjs.js +1 -1
- package/dist/components/menu/Menu.cjs.js.map +1 -1
- package/dist/components/menu/Menu.esm.js +1 -1
- package/dist/components/menu/Menu.esm.js.map +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/provider.js +1 -1
- package/dist/components/rdf-form/RDFForm.cjs.js +3 -3
- package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
- package/dist/components/rdf-form/RDFForm.esm.js +13 -13
- package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
- package/dist/components/rdf-form.js +1 -1
- package/dist/components/rdf-input/RDFInput.cjs.js +2 -2
- package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -1
- package/dist/components/rdf-input/RDFInput.esm.js +4 -4
- package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
- package/dist/components/rdf-input.js +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +9 -3
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts +1 -0
- package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts.map +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +18 -9
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +1 -1
- package/dist/components/resource-actions-menu.js +1 -1
- package/dist/components/select/Select.cjs.js +1 -1
- package/dist/components/select/Select.cjs.js.map +1 -1
- package/dist/components/select/Select.esm.js +1 -1
- package/dist/components/signup-button/SignupButton.cjs.js +1 -1
- package/dist/components/signup-button/SignupButton.esm.js +1 -1
- package/dist/components/signup-button.js +1 -1
- package/dist/components.js +21 -21
- package/dist/create/create.cjs.js +1 -1
- package/dist/create/create.cjs.js.map +1 -1
- package/dist/create/create.esm.js +23 -23
- package/dist/header/index.cjs.js +1 -1
- package/dist/header/index.cjs.js.map +1 -1
- package/dist/header/index.esm.js +53 -53
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +23 -22
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +11 -11
- package/dist/lib/auth/SolidAuth.cjs.js +1 -1
- package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
- package/dist/lib/auth/SolidAuth.esm.js +8 -8
- package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
- package/dist/lib/code-editor/CodeEditor.cjs.js +1 -1
- package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -1
- package/dist/lib/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/lib/code-editor/CodeEditor.esm.js +34 -30
- package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.cjs.js +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.esm.js +4 -4
- package/dist/lib/components/index.cjs.js +1 -1
- package/dist/lib/components/index.esm.js +3 -3
- package/dist/lib/dialogs/helpers.cjs.js +1 -1
- package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
- package/dist/lib/dialogs/helpers.esm.js +4 -4
- package/dist/lib/file-explorer/index.cjs.js +1 -1
- package/dist/lib/file-explorer/index.d.ts +1 -0
- package/dist/lib/file-explorer/index.d.ts.map +1 -1
- package/dist/lib/file-explorer/index.esm.js +2 -1
- package/dist/lib/file-explorer/pane-menu-items.cjs.js +2 -0
- package/dist/lib/file-explorer/pane-menu-items.cjs.js.map +1 -0
- package/dist/lib/file-explorer/pane-menu-items.d.ts +22 -0
- package/dist/lib/file-explorer/pane-menu-items.d.ts.map +1 -0
- package/dist/lib/file-explorer/pane-menu-items.esm.js +20 -0
- package/dist/lib/file-explorer/pane-menu-items.esm.js.map +1 -0
- package/dist/lib/file-explorer/relevant-panes.cjs.js +1 -1
- package/dist/lib/file-explorer/relevant-panes.cjs.js.map +1 -1
- package/dist/lib/file-explorer/relevant-panes.esm.js +8 -8
- package/dist/lib/messageArea.cjs.js +1 -1
- package/dist/lib/messageArea.cjs.js.map +1 -1
- package/dist/lib/messageArea.esm.js +27 -27
- package/dist/lib/pad.cjs.js +1 -1
- package/dist/lib/pad.cjs.js.map +1 -1
- package/dist/lib/pad.esm.js +15 -15
- package/dist/lib/participation.cjs.js +1 -1
- package/dist/lib/participation.cjs.js.map +1 -1
- package/dist/lib/participation.esm.js +59 -59
- package/dist/lib/preferences.cjs.js +1 -1
- package/dist/lib/preferences.cjs.js.map +1 -1
- package/dist/lib/preferences.esm.js +28 -28
- package/dist/lib/table.cjs.js +3 -3
- package/dist/lib/table.cjs.js.map +1 -1
- package/dist/lib/table.esm.js +123 -123
- package/dist/lib/table.esm.js.map +1 -1
- package/dist/lib/tabs.cjs.js +1 -1
- package/dist/lib/tabs.cjs.js.map +1 -1
- package/dist/lib/tabs.esm.js +16 -16
- package/dist/loader.js +11 -11
- package/dist/login/login.cjs.js +6 -6
- package/dist/login/login.cjs.js.map +1 -1
- package/dist/login/login.esm.js +142 -142
- package/dist/media/media-capture.cjs.js +1 -1
- package/dist/media/media-capture.cjs.js.map +1 -1
- package/dist/media/media-capture.esm.js +6 -6
- package/dist/solid-ui.js +34 -28
- package/dist/solid-ui.min.js +34 -28
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/utils/index.cjs.js +1 -1
- package/dist/utils/index.cjs.js.map +1 -1
- package/dist/utils/index.esm.js +4 -4
- package/dist/utils/keyHelpers/accessData.cjs.js +1 -1
- package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
- package/dist/utils/keyHelpers/accessData.esm.js +15 -15
- package/dist/utils/label.cjs.js +1 -1
- package/dist/utils/label.cjs.js.map +1 -1
- package/dist/utils/label.esm.js +4 -4
- package/dist/widgets/buttons.cjs.js +12 -12
- package/dist/widgets/buttons.cjs.js.map +1 -1
- package/dist/widgets/buttons.esm.js +179 -179
- package/dist/widgets/error.cjs.js +1 -1
- package/dist/widgets/error.cjs.js.map +1 -1
- package/dist/widgets/error.esm.js +5 -5
- package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +17 -17
- package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteField.esm.js +23 -23
- package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js +26 -26
- package/dist/widgets/forms/autocomplete/language.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/language.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/language.esm.js +9 -9
- package/dist/widgets/forms/autocomplete/publicData.cjs.js +5 -5
- package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/publicData.esm.js +67 -67
- package/dist/widgets/forms/basic.cjs.js +1 -1
- package/dist/widgets/forms/basic.cjs.js.map +1 -1
- package/dist/widgets/forms/basic.esm.js +11 -11
- package/dist/widgets/forms.cjs.js +4 -4
- package/dist/widgets/forms.cjs.js.map +1 -1
- package/dist/widgets/forms.esm.js +561 -561
- package/dist/widgets/forms.esm.js.map +1 -1
- package/dist/widgets/index.cjs.js +1 -1
- package/dist/widgets/index.cjs.js.map +1 -1
- package/dist/widgets/index.esm.js +82 -82
- package/dist/widgets/peoplePicker.cjs.js +2 -2
- package/dist/widgets/peoplePicker.cjs.js.map +1 -1
- package/dist/widgets/peoplePicker.esm.js +82 -82
- package/package.json +3 -3
- package/dist/chunks/ResourceActionsMenu-Bllpr4M5.js.map +0 -1
- package/dist/chunks/solidLogicSingleton.esm-BXyHD7mn.js.map +0 -1
- package/dist/chunks/src-DQgHAH3d.js.map +0 -1
- package/dist/chunks/widgets-BBEQu0CS.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RDFForm.cjs.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","findForm","sym","ns","sortBySequence","fetchData","require_ns","require_decorators","require_WebComponent","require_rdfFormsHelper","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","_RDFForm","_A","_B","_C","_D","_E","_F","_G","args","store","subjectUrl","formRoot","formDocument","parts","uiFields","item","typeNode","hashIndex","part","changedProperties","formUrl","error"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RDFForm.cjs.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","findForm","sym","ns","sortBySequence","fetchData","require_decorators","require_WebComponent","require_ns","require_rdfFormsHelper","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","_RDFForm","_A","_B","_C","_D","_E","_F","_G","args","store","subjectUrl","formRoot","formDocument","parts","uiFields","item","typeNode","hashIndex","part","changedProperties","formUrl","error"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"A,06IAWA,IAAMa,EAAe,CACnBC,cAAeC,EAAkC,CAC/C,GAAI,CAACA,EAAO,OAAO,KAEnB,GAAI,CACF,OAAO,IAAIC,IAAID,CAAK,CACtB,MAAQ,CACN,OAAO,IACT,CACF,EACAE,YAAaF,EAAmB,CAE9B,OADKA,GAAc,IAErB,CACF,EAEMG,EAAoBH,GACxBA,GAAOI,MAAQ,GAAEC,EAAA,CAElBhB,EAAAA,cAAc,mBAAmB,CAAC,EAAA,IAAAiB,EAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QAAAK,EAAA,IAAAL,QAAAM,EAAA,IAAAN,QAAAO,GAAAC,GAAAA,EAE9B5B,EAAAA,QAAAA,CAAQ,CAAE6B,QAASpB,EAAAA,aAAcqB,UAAW,EAAK,CAAC,EAACC,GAAAA,EAGnDlC,EAAAA,SAAAA,CAAS,CAAEmC,UAAW,EAAM,CAAC,EAACC,GAAAA,EAO9BnC,EAAAA,MAAAA,CAAM,EAACoC,GAAAA,EAGPpC,EAAAA,MAAAA,CAAM,EAACqC,GAAAA,EAGPrC,EAAAA,MAAAA,CAAM,EAACsC,GAAAA,EAGPvC,EAAAA,SAAAA,CAAS,CAAEwC,UAAW3B,CAAa,CAAC,EAAC4B,GAAAA,EAGrCzC,EAAAA,SAAAA,CAAS,CAAEwC,UAAW3B,CAAa,CAAC,EAAC,gBAoHzCsF,EAAAzD,cA3IoCrC,EAAAA,OAAa,CAAAsC,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAvB,GAAAwB,EAAA,IAAA,EAAAC,EAAA,KAEApC,EAAAA,aAAa,EAAA,EAAAkC,EAAA,KAAArB,EAAAwB,EAAA,KAGhB,IAAI,CAAA,EAAAH,EAAA,KAAApB,EAAAwB,EAAA,KAOE,EAAI,CAAA,EAACJ,EAAA,KAAAnB,EAAAwB,EAAA,KAGtB,CAAC,CAAA,EAAAL,EAAA,KAAAlB,EAAAwB,EAAA,KAGG,EAAK,CAAA,EAAAN,EAAA,KAAAjB,EAAAwB,EAAA,KAGV,IAAI,CAAA,EAAAP,EAAA,KAAAhB,EAAAwB,EAAA,KAGD,IAAI,CAAA,CAAA,CAAA,IAAAvB,IAAA,CAAA,OAAAwB,EAAAhC,EAAA,IAAA,CAAA,CAAA,IAtBrBV,aAAY2C,EAAA,CAAAC,EAAAlC,EAAA,KAAAiC,CAAA,CAAA,CAAA,IAGpBE,eAAa,CAAA,OAAAH,EAAA9B,EAAA,IAAA,CAAA,CAAA,IAAbiC,cAAaF,EAAA,CAAAC,EAAAhC,EAAA,KAAA+B,CAAA,CAAA,CAEtB,IAAYG,cAA2B,CACrC,OAAO,KAAKD,eAAiB,KAAK7C,aAAa+C,KACjD,CAAC,IAGgBC,sBAAoB,CAAA,OAAAN,EAAA7B,EAAA,IAAA,CAAA,CAAA,IAApBmC,qBAAoBL,EAAA,CAAAC,EAAA/B,EAAA,KAAA8B,CAAA,CAAA,CAAA,IAGpBM,cAAY,CAAA,OAAAP,EAAA5B,EAAA,IAAA,CAAA,CAAA,IAAZmC,aAAYN,EAAA,CAAAC,EAAA9B,EAAA,KAAA6B,CAAA,CAAA,CAAA,IAGZO,kBAAgB,CAAA,OAAAR,EAAA3B,EAAA,IAAA,CAAA,CAAA,IAAhBmC,iBAAgBP,EAAA,CAAAC,EAAA7B,EAAA,KAAA4B,CAAA,CAAA,CAAA,IAGxBQ,SAAO,CAAA,OAAAT,EAAA1B,EAAA,IAAA,CAAA,CAAA,IAAPmC,QAAOR,EAAA,CAAAC,EAAA5B,EAAA,KAAA2B,CAAA,CAAA,CAAA,IAGPS,YAAU,CAAA,OAAAV,EAAAzB,EAAA,IAAA,CAAA,CAAA,IAAVmC,WAAUT,EAAA,CAAAC,EAAA3B,EAAA,KAAA0B,CAAA,CAAA,CAEnBU,QAAU,CACR,GAAI,CAAC,KAAKH,iBACR,MAAO5D,GAAAA,IAAI,GAGb,IAAMyD,EAAQ,KAAKD,aAEbM,EAAa9C,EAAiB,KAAK8C,UAAU,EAC/CA,GAAcL,EAAMO,SAASC,SAASH,CAAU,IAAMI,IAAAA,IAAaT,EAAMO,SAASC,SAASH,CAAU,IAAM,KAC7G,KAAKJ,qBAAuB,IAG9B,IAAMS,EAAW7D,EAAAA,SAAS,KAAKkD,aAAcxC,EAAiB,KAAK6C,OAAO,CAAC,EAC3E,GAAI,CAACM,EAAU,MAAUC,MAAM,uBAAyBpD,EAAiB,KAAK6C,OAAO,CAAC,EAEtF,IAAMQ,GAAAA,EAAe7D,EAAAA,IAAAA,CAAIQ,EAAiB,KAAK6C,OAAO,CAAC,EACjDS,EAAQb,EAAMc,KAAKJ,EAAU/D,EAAAA,QAAGoE,GAAG,OAAO,EAAG,KAAMH,CAAY,EAQ/DW,GAPkBzE,EAAAA,eAAekD,EAAOa,CAC3BG,GAAmB,CAAA,EAAA,CAAIE,QAAQC,GAC5CA,GAAQ,OAAOA,GAAS,UAAY,aAAcA,GAAQC,MAAMC,QAASF,EAAaG,QAAQ,EACxFH,EAAaG,SAEhB,CAACH,CAAI,CAEGF,CAAAA,CAAUO,IAAIL,GAAQ,CAErC,IAAMQ,EADQ3B,EAAMc,KAAKK,EAAaxE,EAAAA,QAAG+E,IAAI,MAAM,EAAG,KAAMd,CAC3Ca,CAAAA,CAAM,GACjBrE,EAAQuE,EAAaA,EAAiBvE,OAASwE,OAAOD,CAAQ,EAAOR,EAAa/D,OAASwE,OAAOT,CAAI,EACtGU,EAAYzE,EAAM0E,YAAY,GAAG,EACvC,MAAO,CACL1E,MAAO+D,EACPY,WAAYF,GAAa,EAAIzE,EAAM4E,MAAMH,EAAY,CAAC,EAAIzE,CAC5D,CACF,CAAC,EAED,MAAOb,GAAAA,IAAI;;UAEPgF,EAASC,IAAIS,GAAQ,CACrB,OAAQA,EAAKF,WAAb,CACI,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,gBACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,YACL,IAAK,sBACL,IAAK,oBACH,MAAOxF,GAAAA,IAAI;kCACMQ,EAAAA,EAAAA,IAAAA,CAAIkF,EAAK7E,KAAK,EAAC;kCACfL,EAAAA,EAAAA,IAAAA,CAAIsD,CAAU,EAAC;kCACd,KAAKH,aAAY;8BACrB,KAAKD,qBAAoB;;sBAIzC,IAAK,qBACD,MAAO1D,GAAAA,IAAI,eAAe0F,EAAI,WAClC,IAAK,eACD,MAAO1F,GAAAA,IAAI,eAAe0F,EAAI,WAClC,IAAK,gBACD,MAAO1F,GAAAA,IAAI,eAAe0F,EAAI,WAClC,IAAK,aACD,MAAO1F,GAAAA,IAAI,eAAe0F,EAAI,WAClC,IAAK,SACD,MAAO1F,GAAAA,IAAI,eAAe0F,EAAI,WAClC,IAAK,WACD,MAAO1F,GAAAA,IAAI,eAAe0F,EAAI,WAClC,IAAK,UACD,MAAO1F,GAAAA,IAAI,eAAe0F,EAAI,WAClC,IAAK,oBACD,MAAO1F,GAAAA,IAAI,eAAe0F,EAAI,WAClC,IAAK,UACL,IAAK,UACD,MAAO1F,GAAAA,IAAI,eAAe0F,EAAI,WAClC,QACI,MAAO1F,GAAAA,IAAI,2BAA2B0F,EAAI,OAClD,CACF,CAAC,EAAC;;KAGN,CAEmBC,WAAYC,EAAyC,CACtE,MAAMD,WAAWC,CAAiB,GAC9BA,EAAkBC,IAAI,SAAS,GACjCD,EAAkBC,IAAI,YAAY,GAClCD,EAAkBC,IAAI,eAAe,IAErC,KAAKC,sBAAsB,CAE/B,CAEA,MAAcA,uBAAyB,CACrC,IAAMrC,EAAQ,KAAKD,aACbK,EAAU7C,EAAiB,KAAK6C,OAAO,EACvCC,EAAa9C,EAAiB,KAAK8C,UAAU,EAEnD,GAAKD,GAAYC,EAEjB,GAAI,CACF,MAAMzD,EAAAA,UAAUoD,EAAOI,CAAO,EAC9B,MAAMxD,EAAAA,UAAUoD,EAAOK,CAAU,EACjC,KAAKH,cAAgB,EACrB,KAAKC,iBAAmB,EAC1B,OAASmC,EAAO,CACdC,QAAQD,MAAM,+BAAgCA,CAAK,CACrD,CACF,CACJ,EAAC,CAAAG,EAAA,CAAArD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAP,GAAAuD,EAAA,CAAAhF,EAAAiF,IAAAC,EAAAJ,EAAA,CAAA,CAAApE,EAAA,EAAA,cAAA,EAAA,CAAAG,EAAA,EAAA,eAAA,EAAA,CAAAE,EAAA,EAAA,sBAAA,EAAA,CAAAC,EAAA,EAAA,cAAA,EAAA,CAAAC,EAAA,EAAA,kBAAA,EAAA,CAAAC,EAAA,EAAA,SAAA,EAAA,CAAAE,EAAA,EAAA,YAAA,CAAA,EAAArB,EAAA,EAAA,IAAA,GA3IoCf,EAAAA,OAAY,EAAAiG,EAAA,E"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import e from "../../lib/ns.esm.js";
|
|
2
|
-
import { customElement as t } from "../../lib/components/decorators.esm.js";
|
|
3
|
-
import n from "../../lib/components/web-component/WebComponent.esm.js";
|
|
4
1
|
import "../../lib/components/index.esm.js";
|
|
2
|
+
import { customElement as e } from "../../lib/components/decorators.esm.js";
|
|
3
|
+
import t from "../../lib/components/web-component/WebComponent.esm.js";
|
|
4
|
+
import n from "../../lib/ns.esm.js";
|
|
5
5
|
import { fetchData as r, findForm as i, sortBySequence as a } from "../../lib/forms/rdfFormsHelper.esm.js";
|
|
6
|
-
import { DEFAULT_STORE as o, storeContext as s } from "../../lib/forms/store/StoreContext.esm.js";
|
|
7
6
|
import "../rdf-input/index.esm.js";
|
|
7
|
+
import { DEFAULT_STORE as o, storeContext as s } from "../../lib/forms/store/StoreContext.esm.js";
|
|
8
8
|
import { sym as c } from "rdflib";
|
|
9
9
|
import { consume as l } from "@lit/context";
|
|
10
10
|
import { property as u, state as d } from "lit/decorators.js";
|
|
@@ -184,12 +184,12 @@ var H = {
|
|
|
184
184
|
return e || null;
|
|
185
185
|
}
|
|
186
186
|
}, U = (e) => e?.href ?? "";
|
|
187
|
-
g = [
|
|
187
|
+
g = [e("solid-ui-rdf-form")];
|
|
188
188
|
var W, G = /*#__PURE__*/ new WeakMap(), K = /*#__PURE__*/ new WeakMap(), q = /*#__PURE__*/ new WeakMap(), J = /*#__PURE__*/ new WeakMap(), Y = /*#__PURE__*/ new WeakMap(), X = /*#__PURE__*/ new WeakMap(), Z = /*#__PURE__*/ new WeakMap();
|
|
189
189
|
j = (_ = l({
|
|
190
190
|
context: s,
|
|
191
191
|
subscribe: !0
|
|
192
|
-
}), y = u({ attribute: !1 }), x = d(), C = d(), T = d(), D = u({ converter: H }), k = u({ converter: H }), "storeContext"), p = class extends
|
|
192
|
+
}), y = u({ attribute: !1 }), x = d(), C = d(), T = d(), D = u({ converter: H }), k = u({ converter: H }), "storeContext"), p = class extends t {
|
|
193
193
|
constructor(...e) {
|
|
194
194
|
super(...e), M(this, G, (m(this), v(this, o))), M(this, K, b(this, null)), M(this, q, S(this, !0)), M(this, J, w(this, 0)), M(this, Y, E(this, !1)), M(this, X, O(this, null)), M(this, Z, A(this, null));
|
|
195
195
|
}
|
|
@@ -240,14 +240,14 @@ j = (_ = l({
|
|
|
240
240
|
}
|
|
241
241
|
render() {
|
|
242
242
|
if (!this._documentsLoaded) return f``;
|
|
243
|
-
let
|
|
244
|
-
|
|
243
|
+
let e = this.currentStore, t = U(this.subjectUrl);
|
|
244
|
+
t && e.updater?.editable(t) !== void 0 && e.updater?.editable(t) !== !1 && (this.entireDataIsReadonly = !1);
|
|
245
245
|
let r = i(this.currentStore, U(this.formUrl));
|
|
246
246
|
if (!r) throw Error("No ui:Form found in " + U(this.formUrl));
|
|
247
|
-
let o = c(U(this.formUrl)), s =
|
|
248
|
-
let r =
|
|
247
|
+
let o = c(U(this.formUrl)), s = e.each(r, n.ui("parts"), null, o), l = (a(e, s) || []).flatMap((e) => e && typeof e == "object" && "elements" in e && Array.isArray(e.elements) ? e.elements : [e]).map((t) => {
|
|
248
|
+
let r = e.each(t, n.rdf("type"), null, o)[0], i = r ? r.value || String(r) : t.value || String(t), a = i.lastIndexOf("#");
|
|
249
249
|
return {
|
|
250
|
-
value:
|
|
250
|
+
value: t,
|
|
251
251
|
fieldValue: a >= 0 ? i.slice(a + 1) : i
|
|
252
252
|
};
|
|
253
253
|
});
|
|
@@ -269,7 +269,7 @@ j = (_ = l({
|
|
|
269
269
|
case "SingleLineTextField":
|
|
270
270
|
case "NamedNodeURIField": return f` <solid-ui-rdf-input
|
|
271
271
|
.formSubject=${c(e.value)}
|
|
272
|
-
.dataSubject=${c(
|
|
272
|
+
.dataSubject=${c(t)}
|
|
273
273
|
.storeVersion=${this._loadVersion}
|
|
274
274
|
.readonly=${this.entireDataIsReadonly}
|
|
275
275
|
></solid-ui-rdf-input>
|
|
@@ -337,7 +337,7 @@ j = (_ = l({
|
|
|
337
337
|
1,
|
|
338
338
|
"subjectUrl"
|
|
339
339
|
]
|
|
340
|
-
], g, 0, void 0,
|
|
340
|
+
], g, 0, void 0, t), h();
|
|
341
341
|
export { W as default };
|
|
342
342
|
|
|
343
343
|
//# sourceMappingURL=RDFForm.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RDFForm.esm.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default","ns","ns_default","WebComponent","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","customElement","_RDFForm","_A","_B","_C","_D","_E","_F","_G","consume","storeContext","property","state","args","DEFAULT_STORE","store","subjectUrl","formRoot","findForm","formDocument","sym","parts","uiFields","sortBySequence","item","typeNode","hashIndex","part","changedProperties","formUrl","fetchData","error"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RDFForm.esm.js","names":["property","state","html","consume","customElement","WebComponent","ns","fetchData","findForm","sortBySequence","sym","DEFAULT_STORE","storeContext","urlConverter","fromAttribute","value","URL","toAttribute","hrefFromUrlValue","href","_classDecs","_RDFForm","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_storeContextDecs","context","subscribe","_passedInStoreDecs","attribute","_entireDataIsReadonlyDecs","_loadVersionDecs","_documentsLoadedDecs","_formUrlDecs","converter","_subjectUrlDecs","RDFForm","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_passedInStore","_init_entireDataIsReadonly","_init__loadVersion","_init__documentsLoaded","_init_formUrl","_init_subjectUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","passedInStore","currentStore","store","entireDataIsReadonly","_loadVersion","_documentsLoaded","formUrl","subjectUrl","render","updater","editable","undefined","formRoot","Error","formDocument","parts","each","ui","partsBySequence","partItems","flatMap","item","Array","isArray","elements","uiFields","map","types","rdf","typeNode","String","hashIndex","lastIndexOf","fieldValue","slice","part","willUpdate","changedProperties","has","loadDocumentsIfNeeded","error","console","_RDFForm2","e","c","_initClass","_applyDecs","default","ns","WebComponent","ns_default","_RDFForm2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_passedInStoreDecs","_init_passedInStore","_entireDataIsReadonlyDecs","_init_entireDataIsReadonly","_loadVersionDecs","_init__loadVersion","_documentsLoadedDecs","_init__documentsLoaded","_formUrlDecs","_init_formUrl","_subjectUrlDecs","_init_subjectUrl","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","urlConverter","value","hrefFromUrlValue","customElement","_RDFForm","_A","_B","_C","_D","_E","_F","_G","consume","storeContext","property","state","args","DEFAULT_STORE","store","subjectUrl","formRoot","findForm","formDocument","sym","parts","uiFields","sortBySequence","item","typeNode","hashIndex","part","changedProperties","formUrl","fetchData","error"],"sources":["../../../src/components/rdf-form/RDFForm.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport type { PropertyValues } from 'lit'\nimport { consume } from '@lit/context'\nimport { customElement, WebComponent } from '@/lib/components'\nimport ns from '../../lib/ns'\nimport { fetchData, findForm, sortBySequence } from '../../lib/forms/rdfFormsHelper'\nimport { sym, LiveStore } from 'rdflib'\nimport '@/components/rdf-input'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\n\nconst urlConverter = {\n fromAttribute (value: string | null): URL | null {\n if (!value) return null\n\n try {\n return new URL(value)\n } catch {\n return null\n }\n },\n toAttribute (value: URL | null) {\n if (!value) return null\n return value\n }\n}\n\nconst hrefFromUrlValue = (value: URL | null): string =>\n value?.href ?? ''\n\n@customElement('solid-ui-rdf-form')\nexport default class RDFForm extends WebComponent {\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false })\n accessor passedInStore: LiveStore | null = null\n\n private get currentStore (): LiveStore {\n return this.passedInStore ?? this.storeContext.store\n }\n\n @state()\n private accessor entireDataIsReadonly: boolean = true // to protect data, we default to not editable\n\n @state()\n private accessor _loadVersion = 0\n\n @state()\n private accessor _documentsLoaded = false\n\n @property({ converter: urlConverter })\n accessor formUrl: URL | null = null\n\n @property({ converter: urlConverter })\n accessor subjectUrl: URL | null = null\n\n render () {\n if (!this._documentsLoaded) {\n return html``\n }\n\n const store = this.currentStore\n\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n if (subjectUrl && store.updater?.editable(subjectUrl) !== undefined && store.updater?.editable(subjectUrl) !== false) {\n this.entireDataIsReadonly = false\n }\n\n const formRoot = findForm(this.currentStore, hrefFromUrlValue(this.formUrl)) // If there are more 'a ui:Form' elements in a form file\n if (!formRoot) throw new Error('No ui:Form found in ' + hrefFromUrlValue(this.formUrl))\n\n const formDocument = sym(hrefFromUrlValue(this.formUrl)) // rdflib NamedNode for the document\n const parts = store.each(formRoot, ns.ui('parts'), null, formDocument)\n const partsBySequence = sortBySequence(store, parts)\n const partItems = (partsBySequence || []).flatMap(item => {\n if (item && typeof item === 'object' && 'elements' in item && Array.isArray((item as any).elements)) {\n return (item as any).elements\n }\n return [item]\n })\n const uiFields = partItems.map(item => {\n const types = store.each(item as any, ns.rdf('type'), null, formDocument)\n const typeNode = types[0]\n const value = typeNode ? ((typeNode as any).value || String(typeNode)) : ((item as any).value || String(item))\n const hashIndex = value.lastIndexOf('#')\n return {\n value: item,\n fieldValue: hashIndex >= 0 ? value.slice(hashIndex + 1) : value\n }\n })\n\n return html`\n <form>\n ${uiFields.map(part => {\n switch (part.fieldValue) {\n case 'PhoneField':\n case 'EmailField':\n case 'ColorField':\n case 'DateField':\n case 'DateTimeField':\n case 'TimeField':\n case 'NumericField':\n case 'IntegerField':\n case 'DecimalField':\n case 'FloatField':\n case 'TextField':\n case 'SingleLineTextField':\n case 'NamedNodeURIField': {\n return html` <solid-ui-rdf-input \n .formSubject=${sym(part.value)} \n .dataSubject=${sym(subjectUrl)}\n .storeVersion=${this._loadVersion}\n .readonly=${this.entireDataIsReadonly}\n ></solid-ui-rdf-input>\n <br>`\n }\n case 'MultiLineTextField':\n return html`<input .rdf=${part}></input>`\n case 'BooleanField':\n return html`<input .rdf=${part}></input>`\n case 'TristateField':\n return html`<input .rdf=${part}></input>`\n case 'Classifier':\n return html`<input .rdf=${part}></input>`\n case 'Choice':\n return html`<input .rdf=${part}></input>`\n case 'Multiple':\n return html`<input .rdf=${part}></input>`\n case 'Options':\n return html`<input .rdf=${part}></input>`\n case 'AutocompleteField':\n return html`<input .rdf=${part}></input>`\n case 'Comment':\n case 'Heading':\n return html`<input .rdf=${part}></input>`\n default:\n return html`<div>Unknown part type: ${part}</div>`\n }\n })}\n </form>\n `\n }\n\n protected override willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n if (changedProperties.has('formUrl') ||\n changedProperties.has('subjectUrl') ||\n changedProperties.has('passedInStore')\n ) {\n this.loadDocumentsIfNeeded()\n }\n }\n\n private async loadDocumentsIfNeeded () {\n const store = this.currentStore\n const formUrl = hrefFromUrlValue(this.formUrl)\n const subjectUrl = hrefFromUrlValue(this.subjectUrl)\n\n if (!formUrl || !subjectUrl) return\n\n try {\n await fetchData(store, formUrl)\n await fetchData(store, subjectUrl)\n this._loadVersion += 1\n this._documentsLoaded = true\n } catch (error) {\n console.error('Failed to load RDF documents', error)\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { n as RDFForm, t as default } from "../chunks/rdf-form-
|
|
1
|
+
export { n as RDFForm, t as default } from "../chunks/rdf-form-BkKDmFPD.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");require("../../
|
|
1
|
+
const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");require("../../lib/components/index.cjs.js");const n=require("../../lib/components/ids.cjs.js"),r=require("../../lib/components/decorators.cjs.js"),i=require("../../lib/components/web-component/WebComponent.cjs.js");require("../../utils/index.cjs.js");const a=require("../../lib/forms/rdfFormsHelper.cjs.js"),o=require("../../lib/forms/fieldParams.cjs.js"),s=require("../../lib/forms/store/StoreContext.cjs.js");require("../input/index.cjs.js");let c=require("rdflib"),l=require("@lit/context"),u=require("lit/decorators.js"),d=require("lit/html.js");var f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e,t,n){j(e,t),t.set(e,n)}function j(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function M(e,t,n){return e.set(P(e,t),n),n}function N(e,t){return e.get(P(e,t))}function P(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function F(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:R(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||R(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return z(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:I(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function I(e){var t=L(e,`string`);return typeof t==`symbol`?t:t+``}function L(e,t){if(typeof e!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function R(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function z(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}h=[r.customElement(`solid-ui-rdf-input`)];var B,V=new WeakMap,H=new WeakMap,U=new WeakMap,W=new WeakMap,G=new WeakMap,K=new WeakMap;O=(g=(0,l.consume)({context:s.storeContext,subscribe:!0}),v=(0,u.property)({attribute:!1,type:Object}),b=(0,u.property)({attribute:!1,type:Object}),S=(0,u.property)({type:Number}),w=(0,u.state)(),E=(0,u.property)({type:Boolean,reflect:!0}),`storeContext`),f=class extends i.default{get[O](){return N(V,this)}set storeContext(e){M(V,this,e)}get formSubject(){return N(H,this)}set formSubject(e){M(H,this,e)}get dataSubject(){return N(U,this)}set dataSubject(e){M(U,this,e)}get storeVersion(){return N(W,this)}set storeVersion(e){M(W,this,e)}get localInputValue(){return N(G,this)}set localInputValue(e){M(G,this,e)}get readonly(){return N(K,this)}set readonly(e){M(K,this,e)}constructor(){super(),A(this,V,(p(this),_(this,s.DEFAULT_STORE))),A(this,H,y(this,null)),A(this,U,x(this,null)),A(this,W,C(this,0)),A(this,G,T(this,null)),k(this,`_updateInFlight`,!1),k(this,`_pendingUpdateValue`,null),A(this,K,D(this,!0)),this.id=n.generateId()}render(){let t=this.getDocument(this.formSubject),n=this.getFormProperty(this.formSubject,e.default.ui(`property`),t),r=this.getInputLabel(this.formSubject,n,t),i=this.getReadOnly(this.readonly,this.formSubject,t),s=this.formSubject?a.mostSpecificClassURI(this.storeContext.store,this.formSubject):void 0,c=s?o.fieldParams[s]??{}:{},l=c.type??`text`,u=this.getSelectedTerm(this.dataSubject,n,this.formSubject,c),f=i?``:this.defaultInputValue(c),p=this._updateInFlight||this._pendingUpdateValue!==null?this.localInputValue??``:this.termToInputValue(u);return d.html`
|
|
2
2
|
<solid-ui-input
|
|
3
3
|
label="${r}"
|
|
4
4
|
name="name-${this.id}"
|
|
@@ -7,5 +7,5 @@ const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js");req
|
|
|
7
7
|
type="${l}"
|
|
8
8
|
?readonly=${i}
|
|
9
9
|
@input=${this.updateData}
|
|
10
|
-
></solid-ui-input>`}getDocument(e){return e?.doc?e.doc():void 0}getFormProperty(e,t,n){if(e)return this.storeContext.store.any(e,t,null,n)}getInputLabel(n,r,i){if(!n)return``;let a=this.storeContext.store.any(n,e.default.ui(`label`),null,i),o=r?t.label(r,!0):``;return a?a.value:o}getReadOnly(t,n,r){return n&&t===!1?!!this.storeContext.store.anyJS(n,e.default.ui(`suppressEmptyUneditable`),null,r):t}getSelectedTerm(t,n,r,i){let a=r?this.storeContext.store.any(r,e.default.ui(`default`)):void 0;return!n||!t?a:this.storeContext.store.any(t,n)||a}termToInputValue(e){if(!e||!(`value`in e)||!e.value)return``;try{return decodeURIComponent(e.value)}catch{return String(e.value)}}defaultInputValue(e={}){return(e.defaultInputValue??``).replace(/ /g,``)}async updateData(e){let t=e.target.value;this.localInputValue=t,this._pendingUpdateValue=t
|
|
10
|
+
></solid-ui-input>`}getDocument(e){return e?.doc?e.doc():void 0}getFormProperty(e,t,n){if(e)return this.storeContext.store.any(e,t,null,n)}getInputLabel(n,r,i){if(!n)return``;let a=this.storeContext.store.any(n,e.default.ui(`label`),null,i),o=r?t.label(r,!0):``;return a?a.value:o}getReadOnly(t,n,r){return n&&t===!1?!!this.storeContext.store.anyJS(n,e.default.ui(`suppressEmptyUneditable`),null,r):t}getSelectedTerm(t,n,r,i){let a=r?this.storeContext.store.any(r,e.default.ui(`default`)):void 0;return!n||!t?a:this.storeContext.store.any(t,n)||a}termToInputValue(e){if(!e||!(`value`in e)||!e.value)return``;try{return decodeURIComponent(e.value)}catch{return String(e.value)}}defaultInputValue(e={}){return(e.defaultInputValue??``).replace(/ /g,``)}async updateData(e){let t=e.target.value;this.localInputValue=t,this._pendingUpdateValue=t,this._updateInFlight||await this.runPendingUpdate()}async runPendingUpdate(){if(this._pendingUpdateValue===null)return;let t=this._pendingUpdateValue;this._pendingUpdateValue=null,this._updateInFlight=!0;let n=this.getFormProperty(this.formSubject,e.default.ui(`property`),this.getDocument(this.formSubject));if(!n||!this.dataSubject){this._updateInFlight=!1,this.localInputValue=``;return}let r=this.getDocument(this.dataSubject);if(r&&this.storeContext.store.updater?.editable(r)===!1){this._updateInFlight=!1;return}let i=this.storeContext.store.statementsMatching(this.dataSubject,n),s=[];if(t){let r,l=this.formSubject?a.mostSpecificClassURI(this.storeContext.store,this.formSubject):void 0,u=l?o.fieldParams[l]??{}:{};u.namedNode?r=this.storeContext.store.sym(t):u.defaultInputValue?(r=encodeURIComponent(t.replace(/ /g,``)),r=this.storeContext.store.sym(u.defaultInputValue+r)):r=u.dt?new c.Literal(t.trim(),void 0,e.default.xsd(u.dt)):new c.Literal(t),s=i.map(e=>(0,c.st)(e.subject,e.predicate,r,e.why)),s.length===0&&(s=[(0,c.st)(this.dataSubject,n,r,this.getDocument(this.dataSubject))])}try{await this.storeContext.store.updater.updateMany(i,s),this.storeVersion+=1}catch(e){console.error(`RDFInput update failed`,e)}finally{this._updateInFlight=!1}this._pendingUpdateValue!==null&&await this.runPendingUpdate()}},{e:[_,y,x,C,T,D,p],c:[B,m]}=F(f,[[g,1,`storeContext`],[v,1,`formSubject`],[b,1,`dataSubject`],[S,1,`storeVersion`],[w,1,`localInputValue`],[E,1,`readonly`]],h,0,void 0,i.default),m(),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return B}});
|
|
11
11
|
//# sourceMappingURL=RDFInput.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RDFInput.cjs.js","names":["property","state","html","ns","customElement","generateId","WebComponent","Literal","st","label","mostSpecificClassURI","fieldParams","fieldTypeParams","DEFAULT_STORE","storeContext","consume","_classDecs","_RDFInput","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_storeContextDecs","context","subscribe","_formSubjectDecs","attribute","type","Object","_dataSubjectDecs","_storeVersionDecs","Number","_localInputValueDecs","_readonlyDecs","Boolean","reflect","RDFInput","_classPrivateFieldGet","v","_classPrivateFieldSet","formSubject","dataSubject","storeVersion","localInputValue","readonly","constructor","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_formSubject","_init_dataSubject","_init_storeVersion","_init_localInputValue","_defineProperty","_init_readonly","id","render","formDocument","getDocument","uiPropertyTerm","getFormProperty","ui","inputLabel","getInputLabel","getReadOnly","fieldType","store","undefined","params","inputType","selectedTerm","getSelectedTerm","placeholder","defaultInputValue","inputValue","_updateInFlight","_pendingUpdateValue","termToInputValue","updateData","subject","doc","graph","any","formFieldSubject","uiLabel","propertyLabel","value","anyJS","defaultTerm","inputTerm","term","decodeURIComponent","String","stripped","replace","e","newValue","target","runPendingUpdate","dataDocument","updater","editable","toDeleteSt","statementsMatching","toInsertSt","objectFromNewValue","namedNode","sym","encodeURIComponent","dt","trim","xsd","map","statement","predicate","why","length","updateMany","err","console","error","_RDFInput2","c","_initClass","_applyDecs","default","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","generateId","ns","mostSpecificClassURI","fieldTypeParams","label","Literal","st","require_ns","require_label","require_ids","require_decorators","require_WebComponent","require_rdfFormsHelper","require_fieldParams","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFInput2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_formSubjectDecs","_init_formSubject","_dataSubjectDecs","_init_dataSubject","_storeVersionDecs","_init_storeVersion","_localInputValueDecs","_init_localInputValue","_readonlyDecs","_init_readonly","_ref","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_RDFInput","_A","_B","_C","_D","_E","_F","formDocument","uiPropertyTerm","inputLabel","readonly","fieldType","params","inputType","selectedTerm","placeholder","inputValue","subject","property","graph","formFieldSubject","uiLabel","propertyLabel","defaultTerm","dataSubject","term","newValue","dataDocument","toDeleteSt","toInsertSt","objectFromNewValue","statement","err"],"sources":["../../../src/components/rdf-input/RDFInput.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport ns from '../../lib/ns'\nimport { customElement, generateId, WebComponent } from '@/lib/components'\nimport { Literal, NamedNode, st } from 'rdflib'\nimport { label } from '../../utils'\nimport { mostSpecificClassURI } from '../../lib/forms/rdfFormsHelper'\nimport { FieldParamsObject, fieldParams as fieldTypeParams, InputType } from '../../lib/forms/fieldParams'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\nimport { consume } from '@lit/context'\nimport '@/components/input'\n\n@customElement('solid-ui-rdf-input')\nexport default class RDFInput extends WebComponent {\n // example RDF Turtle format source:\n // :nameField a ui:SingleLineTextField ;\n // ui:property vcard:fn;\n // ui:label \"name\" .\n\n // formSubject describes the field metadata\n // dataSubject points to the data resource containing the value\n\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false, type: Object })\n accessor formSubject: NamedNode | null = null\n\n @property({ attribute: false, type: Object })\n accessor dataSubject: NamedNode | null = null\n\n @property({ type: Number })\n accessor storeVersion = 0\n\n @state()\n private accessor localInputValue: string | null = null\n\n private _updateInFlight = false\n private _pendingUpdateValue: string | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly: boolean = true // to protect data, we default to not editable\n\n constructor () {\n super()\n\n this.id = generateId()\n }\n\n render () {\n const formDocument = this.getDocument(this.formSubject)\n\n // for building the HTML input element\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), formDocument)\n const inputLabel = this.getInputLabel(this.formSubject, uiPropertyTerm, formDocument)\n const readonly = this.getReadOnly(this.readonly, this.formSubject, formDocument)\n\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n const inputType: InputType = params.type ?? 'text'\n\n // for populating the HTML input element\n const selectedTerm = this.getSelectedTerm(this.dataSubject, uiPropertyTerm, this.formSubject, params)\n const placeholder = readonly ? '' : this.defaultInputValue(params)\n const inputValue = this._updateInFlight || this._pendingUpdateValue !== null\n ? this.localInputValue ?? ''\n : this.termToInputValue(selectedTerm)\n\n return html`\n <solid-ui-input\n label=\"${inputLabel}\"\n name=\"name-${this.id}\"\n .value=${inputValue}\n .placeholder=${placeholder}\n type=\"${inputType}\"\n ?readonly=${readonly}\n @input=${this.updateData}\n ></solid-ui-input>`\n }\n\n private getDocument (subject: NamedNode | null | undefined) {\n return subject?.doc ? subject.doc() : undefined\n }\n\n private getFormProperty (subject: NamedNode | null | undefined, property: NamedNode, graph?: any): NamedNode | undefined {\n if (!subject) return undefined\n return this.storeContext.store.any(subject, property, null, graph) as NamedNode | undefined\n }\n\n private getInputLabel (formFieldSubject: NamedNode | null | undefined, uiPropertyTerm?: NamedNode, graph?: any): string {\n if (!formFieldSubject) return ''\n const uiLabel = this.storeContext.store.any(formFieldSubject, ns.ui('label'), null, graph)\n const propertyLabel = uiPropertyTerm ? label(uiPropertyTerm, true) : ''\n return uiLabel ? uiLabel.value : propertyLabel\n }\n\n private getReadOnly (readonly: boolean, formFieldSubject?: NamedNode | null, graph?: any): boolean {\n if (formFieldSubject && readonly === false) { // if readonly is false, we can ovverride it if the field is marked as uneditable in the form\n return !!this.storeContext.store.anyJS(formFieldSubject, ns.ui('suppressEmptyUneditable'), null, graph)\n }\n return readonly\n }\n\n private getSelectedTerm (\n dataSubject?: NamedNode | null,\n uiPropertyTerm?: NamedNode,\n formFieldSubject?: NamedNode | null,\n params?: { defaultInputValue?: string }\n ) {\n const defaultTerm = formFieldSubject\n ? this.storeContext.store.any(formFieldSubject, ns.ui('default'))\n : undefined\n\n if (!uiPropertyTerm || !dataSubject) {\n return defaultTerm\n }\n\n const inputTerm = this.storeContext.store.any(dataSubject, uiPropertyTerm)\n return inputTerm || defaultTerm\n }\n\n private termToInputValue (term: any) {\n if (!term || !('value' in term) || !term.value) return ''\n\n try {\n return decodeURIComponent(term.value)\n } catch {\n return String(term.value)\n }\n }\n\n private defaultInputValue (params: { defaultInputValue?: string } = {}) {\n const stripped = params.defaultInputValue ?? ''\n return stripped.replace(/ /g, '')\n }\n\n private async updateData (e: CustomEvent) {\n const newValue = (e.target as HTMLInputElement).value\n this.localInputValue = newValue\n this._pendingUpdateValue = newValue\n\n if (this._updateInFlight) {\n return\n }\n\n await this.runPendingUpdate()\n }\n\n private async runPendingUpdate () {\n if (this._pendingUpdateValue === null) {\n return\n }\n\n const newValue = this._pendingUpdateValue\n this._pendingUpdateValue = null\n this._updateInFlight = true\n\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), this.getDocument(this.formSubject))\n if (!uiPropertyTerm || !this.dataSubject) {\n this._updateInFlight = false\n this.localInputValue = ''\n return\n }\n\n const dataDocument = this.getDocument(this.dataSubject)\n if (dataDocument && this.storeContext.store.updater?.editable(dataDocument) === false) {\n this._updateInFlight = false\n return\n }\n\n const toDeleteSt = this.storeContext.store.statementsMatching(this.dataSubject, uiPropertyTerm)\n let toInsertSt: Array<ReturnType<typeof st>> = []\n\n if (newValue) {\n let objectFromNewValue\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params: FieldParamsObject = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n if (params.namedNode) {\n objectFromNewValue = this.storeContext.store.sym(newValue)\n } else if (params.defaultInputValue) {\n objectFromNewValue = encodeURIComponent(newValue.replace(/ /g, ''))\n objectFromNewValue = this.storeContext.store.sym(params.defaultInputValue + objectFromNewValue)\n } else {\n if (params.dt) {\n objectFromNewValue = new Literal(\n newValue.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n objectFromNewValue = new Literal(newValue)\n }\n }\n toInsertSt = toDeleteSt.map((statement) => st(statement.subject, statement.predicate, objectFromNewValue, statement.why))\n if (toInsertSt.length === 0) {\n toInsertSt = [st(this.dataSubject, uiPropertyTerm, objectFromNewValue, this.getDocument(this.dataSubject))]\n }\n }\n\n try {\n await this.storeContext.store.updater.updateMany(toDeleteSt, toInsertSt as any)\n this.storeVersion += 1\n } catch (err) {\n console.error('RDFInput update failed', err)\n } finally {\n this._updateInFlight = false\n }\n\n if (this._pendingUpdateValue !== null) {\n await this.runPendingUpdate()\n }\n }\n}\n"],"mappings":"A,4sJAU2BgB,EAAA,CAE1BZ,EAAAA,cAAc,oBAAoB,CAAC,EAAA,IAAAa,EAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QAAAK,EAAA,IAAAL,QAAAM,GAAAC,GAAAA,EAUjCX,EAAAA,QAAAA,CAAQ,CAAEY,QAASb,EAAAA,aAAcc,UAAW,EAAK,CAAC,EAACC,GAAAA,EAGnD7B,EAAAA,SAAAA,CAAS,CAAE8B,UAAW,GAAOC,KAAMC,MAAO,CAAC,EAACC,GAAAA,EAG5CjC,EAAAA,SAAAA,CAAS,CAAE8B,UAAW,GAAOC,KAAMC,MAAO,CAAC,EAACE,GAAAA,EAG5ClC,EAAAA,SAAAA,CAAS,CAAE+B,KAAMI,MAAO,CAAC,EAACC,GAAAA,EAG1BnC,EAAAA,MAAAA,CAAM,EAACoC,GAAAA,EAMPrC,EAAAA,SAAAA,CAAS,CAAE+B,KAAMO,QAASC,QAAS,EAAK,CAAC,EAAC,gBA4K5CsF,EAAArF,cAvMqClC,EAAAA,OAAa,CAAA,IAAAmB,IAAA,CAAA,OAAAgB,EAAAvB,EAAA,IAAA,CAAA,CAAA,IAUhCJ,aAAY4B,EAAA,CAAAC,EAAAzB,EAAA,KAAAwB,CAAA,CAAA,CAAA,IAGpBE,aAAW,CAAA,OAAAH,EAAArB,EAAA,IAAA,CAAA,CAAA,IAAXwB,YAAWF,EAAA,CAAAC,EAAAvB,EAAA,KAAAsB,CAAA,CAAA,CAAA,IAGXG,aAAW,CAAA,OAAAJ,EAAApB,EAAA,IAAA,CAAA,CAAA,IAAXwB,YAAWH,EAAA,CAAAC,EAAAtB,EAAA,KAAAqB,CAAA,CAAA,CAAA,IAGXI,cAAY,CAAA,OAAAL,EAAAnB,EAAA,IAAA,CAAA,CAAA,IAAZwB,aAAYJ,EAAA,CAAAC,EAAArB,EAAA,KAAAoB,CAAA,CAAA,CAAA,IAGJK,iBAAe,CAAA,OAAAN,EAAAlB,EAAA,IAAA,CAAA,CAAA,IAAfwB,gBAAeL,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAME,IAAzBM,UAAQ,CAAA,OAAAP,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAARwB,SAAQN,EAAA,CAAAC,EAAAnB,EAAA,KAAAkB,CAAA,CAAA,CAEjBO,aAAe,CACb,MAAM,EAxBRC,EAAA,KAAAhC,GAAAiC,EAAA,IAAA,EAAAC,EAAA,KAG8CvC,EAAAA,aAAa,EAAA,EAAAqC,EAAA,KAAA9B,EAAAiC,EAAA,KAGlB,IAAI,CAAA,EAAAH,EAAA,KAAA7B,EAAAiC,EAAA,KAGJ,IAAI,CAAA,EAAAJ,EAAA,KAAA5B,EAAAiC,EAAA,KAGrB,CAAC,CAAA,EAAAL,EAAA,KAAA3B,EAAAiC,EAAA,KAGyB,IAAI,CAAA,EAAAC,EAAA,KAAA,kBAE5B,EAAK,EAAAA,EAAA,KAAA,sBACc,IAAI,EAAAP,EAAA,KAAA1B,EAAAkC,EAAA,KAGpB,EAAI,CAAA,EAK/B,KAAKC,GAAKtD,EAAAA,WAAW,CACvB,CAEAuD,QAAU,CACR,IAAMC,EAAe,KAAKC,YAAY,KAAKlB,WAAW,EAGhDmB,EAAiB,KAAKC,gBAAgB,KAAKpB,YAAazC,EAAAA,QAAG8D,GAAG,UAAU,EAAGJ,CAAY,EACvFK,EAAa,KAAKC,cAAc,KAAKvB,YAAamB,EAAgBF,CAAY,EAC9Eb,EAAW,KAAKoB,YAAY,KAAKpB,SAAU,KAAKJ,YAAaiB,CAAY,EAEzEQ,EAAY,KAAKzB,YAAclC,EAAAA,qBAAqB,KAAKI,aAAawD,MAAO,KAAK1B,WAAW,EAAI2B,IAAAA,GACjGC,EAASH,EAAYzD,EAAAA,YAAgByD,IAAc,CAAC,EAAI,CAAC,EACzDI,EAAuBD,EAAOzC,MAAQ,OAGtC2C,EAAe,KAAKC,gBAAgB,KAAK9B,YAAakB,EAAgB,KAAKnB,YAAa4B,CAAM,EAC9FI,EAAc5B,EAAW,GAAK,KAAK6B,kBAAkBL,CAAM,EAC3DM,EAAa,KAAKC,iBAAmB,KAAKC,sBAAwB,KACpE,KAAKjC,iBAAmB,GACxB,KAAKkC,iBAAiBP,CAAY,EAEtC,MAAOxE,GAAAA,IAAI;;iBAEEgE,EAAU;qBACN,KAAKP,GAAE;iBACXmB,EAAU;uBACJF,EAAW;gBAClBH,EAAS;oBACLzB,EAAQ;iBACX,KAAKkC,WAAU;yBAE9B,CAEQpB,YAAaqB,EAAuC,CAC1D,OAAOA,GAASC,IAAMD,EAAQC,IAAI,EAAIb,IAAAA,EACxC,CAEQP,gBAAiBmB,EAAuCnF,EAAqBqF,EAAoC,CACvH,GAAKF,EACL,OAAO,KAAKrE,aAAawD,MAAMgB,IAAIH,EAASnF,EAAU,KAAMqF,CAAK,CACnE,CAEQlB,cAAeoB,EAAgDxB,EAA4BsB,EAAqB,CACtH,GAAI,CAACE,EAAkB,MAAO,GAC9B,IAAMC,EAAU,KAAK1E,aAAawD,MAAMgB,IAAIC,EAAkBpF,EAAAA,QAAG8D,GAAG,OAAO,EAAG,KAAMoB,CAAK,EACnFI,EAAgB1B,EAAiBtD,EAAAA,MAAMsD,EAAgB,EAAI,EAAI,GACrE,OAAOyB,EAAUA,EAAQE,MAAQD,CACnC,CAEQrB,YAAapB,EAAmBuC,EAAqCF,EAAsB,CAIjG,OAHIE,GAAoBvC,IAAa,GAC5B,CAAC,CAAC,KAAKlC,aAAawD,MAAMqB,MAAMJ,EAAkBpF,EAAAA,QAAG8D,GAAG,yBAAyB,EAAG,KAAMoB,CAAK,EAEjGrC,CACT,CAEQ2B,gBACN9B,EACAkB,EACAwB,EACAf,EACA,CACA,IAAMoB,EAAcL,EAChB,KAAKzE,aAAawD,MAAMgB,IAAIC,EAAkBpF,EAAAA,QAAG8D,GAAG,SAAS,CAAC,EAC9DM,IAAAA,GAOJ,MALI,CAACR,GAAkB,CAAClB,EACf+C,EAGS,KAAK9E,aAAawD,MAAMgB,IAAIzC,EAAakB,CACpD8B,GAAaD,CACtB,CAEQX,iBAAkBa,EAAW,CACnC,GAAI,CAACA,GAAQ,EAAE,UAAWA,IAAS,CAACA,EAAKJ,MAAO,MAAO,GAEvD,GAAI,CACF,OAAOK,mBAAmBD,EAAKJ,KAAK,CACtC,MAAQ,CACN,OAAOM,OAAOF,EAAKJ,KAAK,CAC1B,CACF,CAEQb,kBAAmBL,EAAyC,CAAC,EAAG,CAEtE,OADiBA,EAAOK,mBAAqB,GAAA,CAC7BqB,QAAQ,KAAM,EAAE,CAClC,CAEA,MAAchB,WAAYiB,EAAgB,CACxC,IAAMC,EAAYD,EAAEE,OAA4BX,MAChD,KAAK3C,gBAAkBqD,EACvB,KAAKpB,oBAAsBoB,EAEvB,MAAKrB,iBAIT,MAAM,KAAKuB,iBAAiB,CAC9B,CAEA,MAAcA,kBAAoB,CAChC,GAAI,KAAKtB,sBAAwB,KAC/B,OAGF,IAAMoB,EAAW,KAAKpB,oBACtB,KAAKA,oBAAsB,KAC3B,KAAKD,gBAAkB,GAEvB,IAAMhB,EAAiB,KAAKC,gBAAgB,KAAKpB,YAAazC,EAAAA,QAAG8D,GAAG,UAAU,EAAG,KAAKH,YAAY,KAAKlB,WAAW,CAAC,EACnH,GAAI,CAACmB,GAAkB,CAAC,KAAKlB,YAAa,CACxC,KAAKkC,gBAAkB,GACvB,KAAKhC,gBAAkB,GACvB,MACF,CAEA,IAAMwD,EAAe,KAAKzC,YAAY,KAAKjB,WAAW,EACtD,GAAI0D,GAAgB,KAAKzF,aAAawD,MAAMkC,SAASC,SAASF,CAAY,IAAM,GAAO,CACrF,KAAKxB,gBAAkB,GACvB,MACF,CAEA,IAAM2B,EAAa,KAAK5F,aAAawD,MAAMqC,mBAAmB,KAAK9D,YAAakB,CAAc,EAC1F6C,EAA2C,CAAA,EAE/C,GAAIR,EAAU,CACZ,IAAIS,EACExC,EAAY,KAAKzB,YAAclC,EAAAA,qBAAqB,KAAKI,aAAawD,MAAO,KAAK1B,WAAW,EAAI2B,IAAAA,GACjGC,EAA4BH,EAAYzD,EAAAA,YAAgByD,IAAc,CAAC,EAAI,CAAC,EAC9EG,EAAOsC,UACTD,EAAqB,KAAK/F,aAAawD,MAAMyC,IAAIX,CAAQ,EAChD5B,EAAOK,mBAChBgC,EAAqBG,mBAAmBZ,EAASF,QAAQ,KAAM,EAAE,CAAC,EAClEW,EAAqB,KAAK/F,aAAawD,MAAMyC,IAAIvC,EAAOK,kBAAoBgC,CAAkB,GAE9F,AAOEA,EAPErC,EAAOyC,GACY,IAAI1G,EAAAA,QACvB6F,EAASc,KAAK,EACd3C,IAAAA,GACApE,EAAAA,QAAGgH,IAAI3C,EAAOyC,EAAE,CAClB,EAEqB,IAAI1G,EAAAA,QAAQ6F,CAAQ,EAG7CQ,EAAaF,EAAWU,IAAKC,IAAAA,EAAc7G,EAAAA,GAAAA,CAAG6G,EAAUlC,QAASkC,EAAUC,UAAWT,EAAoBQ,EAAUE,GAAG,CAAC,EACpHX,EAAWY,SAAW,IACxBZ,EAAa,EAAA,EAACpG,EAAAA,GAAAA,CAAG,KAAKqC,YAAakB,EAAgB8C,EAAoB,KAAK/C,YAAY,KAAKjB,WAAW,CAAC,CAAC,EAE9G,CAEA,GAAI,CACF,MAAM,KAAK/B,aAAawD,MAAMkC,QAAQiB,WAAWf,EAAYE,CAAiB,EAC9E,KAAK9D,cAAgB,CACvB,OAAS4E,EAAK,CACZC,QAAQC,MAAM,yBAA0BF,CAAG,CAC7C,QAAU,CACR,KAAK3C,gBAAkB,EACzB,CAEI,KAAKC,sBAAwB,MAC/B,MAAM,KAAKsB,iBAAiB,CAEhC,CACF,EAAC,CAAAH,EAAA,CAAA/C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAE,EAAAP,GAAA2E,EAAA,CAAA7G,EAAA8G,IAAAC,EAAAH,EAAA,CAAA,CAAAnG,EAAA,EAAA,cAAA,EAAA,CAAAG,EAAA,EAAA,aAAA,EAAA,CAAAI,EAAA,EAAA,aAAA,EAAA,CAAAC,EAAA,EAAA,cAAA,EAAA,CAAAE,EAAA,EAAA,iBAAA,EAAA,CAAAC,EAAA,EAAA,UAAA,CAAA,EAAArB,EAAA,EAAA,IAAA,GAvMqCV,EAAAA,OAAY,EAAAyH,EAAA,E"}
|
|
1
|
+
{"version":3,"file":"RDFInput.cjs.js","names":["property","state","html","ns","customElement","generateId","WebComponent","Literal","st","label","mostSpecificClassURI","fieldParams","fieldTypeParams","DEFAULT_STORE","storeContext","consume","_classDecs","_RDFInput","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_storeContextDecs","context","subscribe","_formSubjectDecs","attribute","type","Object","_dataSubjectDecs","_storeVersionDecs","Number","_localInputValueDecs","_readonlyDecs","Boolean","reflect","RDFInput","_classPrivateFieldGet","v","_classPrivateFieldSet","formSubject","dataSubject","storeVersion","localInputValue","readonly","constructor","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_formSubject","_init_dataSubject","_init_storeVersion","_init_localInputValue","_defineProperty","_init_readonly","id","render","formDocument","getDocument","uiPropertyTerm","getFormProperty","ui","inputLabel","getInputLabel","getReadOnly","fieldType","store","undefined","params","inputType","selectedTerm","getSelectedTerm","placeholder","defaultInputValue","inputValue","_updateInFlight","_pendingUpdateValue","termToInputValue","updateData","subject","doc","graph","any","formFieldSubject","uiLabel","propertyLabel","value","anyJS","defaultTerm","inputTerm","term","decodeURIComponent","String","stripped","replace","e","newValue","target","runPendingUpdate","dataDocument","updater","editable","toDeleteSt","statementsMatching","toInsertSt","objectFromNewValue","namedNode","sym","encodeURIComponent","dt","trim","xsd","map","statement","predicate","why","length","updateMany","err","console","error","_RDFInput2","c","_initClass","_applyDecs","default","customElement","consume","storeContext","property","state","WebComponent","DEFAULT_STORE","generateId","ns","mostSpecificClassURI","fieldTypeParams","label","Literal","st","require_ns","require_label","require_ids","require_decorators","require_WebComponent","require_rdfFormsHelper","require_fieldParams","require_StoreContext","rdflib","_lit_context","lit_decorators_js","lit_html_js","_RDFInput2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_formSubjectDecs","_init_formSubject","_dataSubjectDecs","_init_dataSubject","_storeVersionDecs","_init_storeVersion","_localInputValueDecs","_init_localInputValue","_readonlyDecs","_init_readonly","_ref","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_RDFInput","_A","_B","_C","_D","_E","_F","formDocument","uiPropertyTerm","inputLabel","readonly","fieldType","params","inputType","selectedTerm","placeholder","inputValue","subject","property","graph","formFieldSubject","uiLabel","propertyLabel","defaultTerm","dataSubject","term","newValue","dataDocument","toDeleteSt","toInsertSt","objectFromNewValue","statement","err"],"sources":["../../../src/components/rdf-input/RDFInput.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport ns from '../../lib/ns'\nimport { customElement, generateId, WebComponent } from '@/lib/components'\nimport { Literal, NamedNode, st } from 'rdflib'\nimport { label } from '../../utils'\nimport { mostSpecificClassURI } from '../../lib/forms/rdfFormsHelper'\nimport { FieldParamsObject, fieldParams as fieldTypeParams, InputType } from '../../lib/forms/fieldParams'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\nimport { consume } from '@lit/context'\nimport '@/components/input'\n\n@customElement('solid-ui-rdf-input')\nexport default class RDFInput extends WebComponent {\n // example RDF Turtle format source:\n // :nameField a ui:SingleLineTextField ;\n // ui:property vcard:fn;\n // ui:label \"name\" .\n\n // formSubject describes the field metadata\n // dataSubject points to the data resource containing the value\n\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false, type: Object })\n accessor formSubject: NamedNode | null = null\n\n @property({ attribute: false, type: Object })\n accessor dataSubject: NamedNode | null = null\n\n @property({ type: Number })\n accessor storeVersion = 0\n\n @state()\n private accessor localInputValue: string | null = null\n\n private _updateInFlight = false\n private _pendingUpdateValue: string | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly: boolean = true // to protect data, we default to not editable\n\n constructor () {\n super()\n\n this.id = generateId()\n }\n\n render () {\n const formDocument = this.getDocument(this.formSubject)\n\n // for building the HTML input element\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), formDocument)\n const inputLabel = this.getInputLabel(this.formSubject, uiPropertyTerm, formDocument)\n const readonly = this.getReadOnly(this.readonly, this.formSubject, formDocument)\n\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n const inputType: InputType = params.type ?? 'text'\n\n // for populating the HTML input element\n const selectedTerm = this.getSelectedTerm(this.dataSubject, uiPropertyTerm, this.formSubject, params)\n const placeholder = readonly ? '' : this.defaultInputValue(params)\n const inputValue = this._updateInFlight || this._pendingUpdateValue !== null\n ? this.localInputValue ?? ''\n : this.termToInputValue(selectedTerm)\n\n return html`\n <solid-ui-input\n label=\"${inputLabel}\"\n name=\"name-${this.id}\"\n .value=${inputValue}\n .placeholder=${placeholder}\n type=\"${inputType}\"\n ?readonly=${readonly}\n @input=${this.updateData}\n ></solid-ui-input>`\n }\n\n private getDocument (subject: NamedNode | null | undefined) {\n return subject?.doc ? subject.doc() : undefined\n }\n\n private getFormProperty (subject: NamedNode | null | undefined, property: NamedNode, graph?: any): NamedNode | undefined {\n if (!subject) return undefined\n return this.storeContext.store.any(subject, property, null, graph) as NamedNode | undefined\n }\n\n private getInputLabel (formFieldSubject: NamedNode | null | undefined, uiPropertyTerm?: NamedNode, graph?: any): string {\n if (!formFieldSubject) return ''\n const uiLabel = this.storeContext.store.any(formFieldSubject, ns.ui('label'), null, graph)\n const propertyLabel = uiPropertyTerm ? label(uiPropertyTerm, true) : ''\n return uiLabel ? uiLabel.value : propertyLabel\n }\n\n private getReadOnly (readonly: boolean, formFieldSubject?: NamedNode | null, graph?: any): boolean {\n if (formFieldSubject && readonly === false) { // if readonly is false, we can ovverride it if the field is marked as uneditable in the form\n return !!this.storeContext.store.anyJS(formFieldSubject, ns.ui('suppressEmptyUneditable'), null, graph)\n }\n return readonly\n }\n\n private getSelectedTerm (\n dataSubject?: NamedNode | null,\n uiPropertyTerm?: NamedNode,\n formFieldSubject?: NamedNode | null,\n params?: { defaultInputValue?: string }\n ) {\n const defaultTerm = formFieldSubject\n ? this.storeContext.store.any(formFieldSubject, ns.ui('default'))\n : undefined\n\n if (!uiPropertyTerm || !dataSubject) {\n return defaultTerm\n }\n\n const inputTerm = this.storeContext.store.any(dataSubject, uiPropertyTerm)\n return inputTerm || defaultTerm\n }\n\n private termToInputValue (term: any) {\n if (!term || !('value' in term) || !term.value) return ''\n\n try {\n return decodeURIComponent(term.value)\n } catch {\n return String(term.value)\n }\n }\n\n private defaultInputValue (params: { defaultInputValue?: string } = {}) {\n const stripped = params.defaultInputValue ?? ''\n return stripped.replace(/ /g, '')\n }\n\n private async updateData (e: CustomEvent) {\n const newValue = (e.target as HTMLInputElement).value\n this.localInputValue = newValue\n this._pendingUpdateValue = newValue\n\n if (this._updateInFlight) {\n return\n }\n\n await this.runPendingUpdate()\n }\n\n private async runPendingUpdate () {\n if (this._pendingUpdateValue === null) {\n return\n }\n\n const newValue = this._pendingUpdateValue\n this._pendingUpdateValue = null\n this._updateInFlight = true\n\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), this.getDocument(this.formSubject))\n if (!uiPropertyTerm || !this.dataSubject) {\n this._updateInFlight = false\n this.localInputValue = ''\n return\n }\n\n const dataDocument = this.getDocument(this.dataSubject)\n if (dataDocument && this.storeContext.store.updater?.editable(dataDocument) === false) {\n this._updateInFlight = false\n return\n }\n\n const toDeleteSt = this.storeContext.store.statementsMatching(this.dataSubject, uiPropertyTerm)\n let toInsertSt: Array<ReturnType<typeof st>> = []\n\n if (newValue) {\n let objectFromNewValue\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params: FieldParamsObject = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n if (params.namedNode) {\n objectFromNewValue = this.storeContext.store.sym(newValue)\n } else if (params.defaultInputValue) {\n objectFromNewValue = encodeURIComponent(newValue.replace(/ /g, ''))\n objectFromNewValue = this.storeContext.store.sym(params.defaultInputValue + objectFromNewValue)\n } else {\n if (params.dt) {\n objectFromNewValue = new Literal(\n newValue.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n objectFromNewValue = new Literal(newValue)\n }\n }\n toInsertSt = toDeleteSt.map((statement) => st(statement.subject, statement.predicate, objectFromNewValue, statement.why))\n if (toInsertSt.length === 0) {\n toInsertSt = [st(this.dataSubject, uiPropertyTerm, objectFromNewValue, this.getDocument(this.dataSubject))]\n }\n }\n\n try {\n await this.storeContext.store.updater.updateMany(toDeleteSt, toInsertSt as any)\n this.storeVersion += 1\n } catch (err) {\n console.error('RDFInput update failed', err)\n } finally {\n this._updateInFlight = false\n }\n\n if (this._pendingUpdateValue !== null) {\n await this.runPendingUpdate()\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import e from "../../lib/ns.esm.js";
|
|
2
2
|
import { label as t } from "../../utils/label.esm.js";
|
|
3
|
-
import "../../
|
|
3
|
+
import "../../lib/components/index.esm.js";
|
|
4
4
|
import { generateId as n } from "../../lib/components/ids.esm.js";
|
|
5
5
|
import { customElement as r } from "../../lib/components/decorators.esm.js";
|
|
6
6
|
import i from "../../lib/components/web-component/WebComponent.esm.js";
|
|
7
|
-
import "../../
|
|
8
|
-
import "../input/index.esm.js";
|
|
7
|
+
import "../../utils/index.esm.js";
|
|
9
8
|
import { mostSpecificClassURI as a } from "../../lib/forms/rdfFormsHelper.esm.js";
|
|
10
9
|
import { fieldParams as o } from "../../lib/forms/fieldParams.esm.js";
|
|
11
10
|
import { DEFAULT_STORE as s, storeContext as c } from "../../lib/forms/store/StoreContext.esm.js";
|
|
11
|
+
import "../input/index.esm.js";
|
|
12
12
|
import { Literal as l, st as u } from "rdflib";
|
|
13
13
|
import { consume as d } from "@lit/context";
|
|
14
14
|
import { property as f, state as p } from "lit/decorators.js";
|
|
@@ -281,7 +281,7 @@ j = (y = d({
|
|
|
281
281
|
}
|
|
282
282
|
async updateData(e) {
|
|
283
283
|
let t = e.target.value;
|
|
284
|
-
this.localInputValue = t, this._pendingUpdateValue = t,
|
|
284
|
+
this.localInputValue = t, this._pendingUpdateValue = t, this._updateInFlight || await this.runPendingUpdate();
|
|
285
285
|
}
|
|
286
286
|
async runPendingUpdate() {
|
|
287
287
|
if (this._pendingUpdateValue === null) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RDFInput.esm.js","names":["property","state","html","ns","customElement","generateId","WebComponent","Literal","st","label","mostSpecificClassURI","fieldParams","fieldTypeParams","DEFAULT_STORE","storeContext","consume","_classDecs","_RDFInput","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_storeContextDecs","context","subscribe","_formSubjectDecs","attribute","type","Object","_dataSubjectDecs","_storeVersionDecs","Number","_localInputValueDecs","_readonlyDecs","Boolean","reflect","RDFInput","_classPrivateFieldGet","v","_classPrivateFieldSet","formSubject","dataSubject","storeVersion","localInputValue","readonly","constructor","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_formSubject","_init_dataSubject","_init_storeVersion","_init_localInputValue","_defineProperty","_init_readonly","id","render","formDocument","getDocument","uiPropertyTerm","getFormProperty","ui","inputLabel","getInputLabel","getReadOnly","fieldType","store","undefined","params","inputType","selectedTerm","getSelectedTerm","placeholder","defaultInputValue","inputValue","_updateInFlight","_pendingUpdateValue","termToInputValue","updateData","subject","doc","graph","any","formFieldSubject","uiLabel","propertyLabel","value","anyJS","defaultTerm","inputTerm","term","decodeURIComponent","String","stripped","replace","e","newValue","target","runPendingUpdate","dataDocument","updater","editable","toDeleteSt","statementsMatching","toInsertSt","objectFromNewValue","namedNode","sym","encodeURIComponent","dt","trim","xsd","map","statement","predicate","why","length","updateMany","err","console","error","_RDFInput2","c","_initClass","_applyDecs","default","ns","fieldTypeParams","ns_default","WebComponent","_RDFInput2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_formSubjectDecs","_init_formSubject","_dataSubjectDecs","_init_dataSubject","_storeVersionDecs","_init_storeVersion","_localInputValueDecs","_init_localInputValue","_readonlyDecs","_init_readonly","_ref","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","customElement","_RDFInput","_A","_B","_C","_D","_E","_F","consume","storeContext","property","state","DEFAULT_STORE","generateId","formDocument","uiPropertyTerm","inputLabel","readonly","fieldType","mostSpecificClassURI","params","fieldParams","inputType","selectedTerm","placeholder","inputValue","subject","graph","formFieldSubject","uiLabel","propertyLabel","label","defaultTerm","dataSubject","term","newValue","dataDocument","toDeleteSt","toInsertSt","objectFromNewValue","Literal","st","statement","err"],"sources":["../../../src/components/rdf-input/RDFInput.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport ns from '../../lib/ns'\nimport { customElement, generateId, WebComponent } from '@/lib/components'\nimport { Literal, NamedNode, st } from 'rdflib'\nimport { label } from '../../utils'\nimport { mostSpecificClassURI } from '../../lib/forms/rdfFormsHelper'\nimport { FieldParamsObject, fieldParams as fieldTypeParams, InputType } from '../../lib/forms/fieldParams'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\nimport { consume } from '@lit/context'\nimport '@/components/input'\n\n@customElement('solid-ui-rdf-input')\nexport default class RDFInput extends WebComponent {\n // example RDF Turtle format source:\n // :nameField a ui:SingleLineTextField ;\n // ui:property vcard:fn;\n // ui:label \"name\" .\n\n // formSubject describes the field metadata\n // dataSubject points to the data resource containing the value\n\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false, type: Object })\n accessor formSubject: NamedNode | null = null\n\n @property({ attribute: false, type: Object })\n accessor dataSubject: NamedNode | null = null\n\n @property({ type: Number })\n accessor storeVersion = 0\n\n @state()\n private accessor localInputValue: string | null = null\n\n private _updateInFlight = false\n private _pendingUpdateValue: string | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly: boolean = true // to protect data, we default to not editable\n\n constructor () {\n super()\n\n this.id = generateId()\n }\n\n render () {\n const formDocument = this.getDocument(this.formSubject)\n\n // for building the HTML input element\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), formDocument)\n const inputLabel = this.getInputLabel(this.formSubject, uiPropertyTerm, formDocument)\n const readonly = this.getReadOnly(this.readonly, this.formSubject, formDocument)\n\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n const inputType: InputType = params.type ?? 'text'\n\n // for populating the HTML input element\n const selectedTerm = this.getSelectedTerm(this.dataSubject, uiPropertyTerm, this.formSubject, params)\n const placeholder = readonly ? '' : this.defaultInputValue(params)\n const inputValue = this._updateInFlight || this._pendingUpdateValue !== null\n ? this.localInputValue ?? ''\n : this.termToInputValue(selectedTerm)\n\n return html`\n <solid-ui-input\n label=\"${inputLabel}\"\n name=\"name-${this.id}\"\n .value=${inputValue}\n .placeholder=${placeholder}\n type=\"${inputType}\"\n ?readonly=${readonly}\n @input=${this.updateData}\n ></solid-ui-input>`\n }\n\n private getDocument (subject: NamedNode | null | undefined) {\n return subject?.doc ? subject.doc() : undefined\n }\n\n private getFormProperty (subject: NamedNode | null | undefined, property: NamedNode, graph?: any): NamedNode | undefined {\n if (!subject) return undefined\n return this.storeContext.store.any(subject, property, null, graph) as NamedNode | undefined\n }\n\n private getInputLabel (formFieldSubject: NamedNode | null | undefined, uiPropertyTerm?: NamedNode, graph?: any): string {\n if (!formFieldSubject) return ''\n const uiLabel = this.storeContext.store.any(formFieldSubject, ns.ui('label'), null, graph)\n const propertyLabel = uiPropertyTerm ? label(uiPropertyTerm, true) : ''\n return uiLabel ? uiLabel.value : propertyLabel\n }\n\n private getReadOnly (readonly: boolean, formFieldSubject?: NamedNode | null, graph?: any): boolean {\n if (formFieldSubject && readonly === false) { // if readonly is false, we can ovverride it if the field is marked as uneditable in the form\n return !!this.storeContext.store.anyJS(formFieldSubject, ns.ui('suppressEmptyUneditable'), null, graph)\n }\n return readonly\n }\n\n private getSelectedTerm (\n dataSubject?: NamedNode | null,\n uiPropertyTerm?: NamedNode,\n formFieldSubject?: NamedNode | null,\n params?: { defaultInputValue?: string }\n ) {\n const defaultTerm = formFieldSubject\n ? this.storeContext.store.any(formFieldSubject, ns.ui('default'))\n : undefined\n\n if (!uiPropertyTerm || !dataSubject) {\n return defaultTerm\n }\n\n const inputTerm = this.storeContext.store.any(dataSubject, uiPropertyTerm)\n return inputTerm || defaultTerm\n }\n\n private termToInputValue (term: any) {\n if (!term || !('value' in term) || !term.value) return ''\n\n try {\n return decodeURIComponent(term.value)\n } catch {\n return String(term.value)\n }\n }\n\n private defaultInputValue (params: { defaultInputValue?: string } = {}) {\n const stripped = params.defaultInputValue ?? ''\n return stripped.replace(/ /g, '')\n }\n\n private async updateData (e: CustomEvent) {\n const newValue = (e.target as HTMLInputElement).value\n this.localInputValue = newValue\n this._pendingUpdateValue = newValue\n\n if (this._updateInFlight) {\n return\n }\n\n await this.runPendingUpdate()\n }\n\n private async runPendingUpdate () {\n if (this._pendingUpdateValue === null) {\n return\n }\n\n const newValue = this._pendingUpdateValue\n this._pendingUpdateValue = null\n this._updateInFlight = true\n\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), this.getDocument(this.formSubject))\n if (!uiPropertyTerm || !this.dataSubject) {\n this._updateInFlight = false\n this.localInputValue = ''\n return\n }\n\n const dataDocument = this.getDocument(this.dataSubject)\n if (dataDocument && this.storeContext.store.updater?.editable(dataDocument) === false) {\n this._updateInFlight = false\n return\n }\n\n const toDeleteSt = this.storeContext.store.statementsMatching(this.dataSubject, uiPropertyTerm)\n let toInsertSt: Array<ReturnType<typeof st>> = []\n\n if (newValue) {\n let objectFromNewValue\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params: FieldParamsObject = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n if (params.namedNode) {\n objectFromNewValue = this.storeContext.store.sym(newValue)\n } else if (params.defaultInputValue) {\n objectFromNewValue = encodeURIComponent(newValue.replace(/ /g, ''))\n objectFromNewValue = this.storeContext.store.sym(params.defaultInputValue + objectFromNewValue)\n } else {\n if (params.dt) {\n objectFromNewValue = new Literal(\n newValue.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n objectFromNewValue = new Literal(newValue)\n }\n }\n toInsertSt = toDeleteSt.map((statement) => st(statement.subject, statement.predicate, objectFromNewValue, statement.why))\n if (toInsertSt.length === 0) {\n toInsertSt = [st(this.dataSubject, uiPropertyTerm, objectFromNewValue, this.getDocument(this.dataSubject))]\n }\n }\n\n try {\n await this.storeContext.store.updater.updateMany(toDeleteSt, toInsertSt as any)\n this.storeVersion += 1\n } catch (err) {\n console.error('RDFInput update failed', err)\n } finally {\n this._updateInFlight = false\n }\n\n if (this._pendingUpdateValue !== null) {\n await this.runPendingUpdate()\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RDFInput.esm.js","names":["property","state","html","ns","customElement","generateId","WebComponent","Literal","st","label","mostSpecificClassURI","fieldParams","fieldTypeParams","DEFAULT_STORE","storeContext","consume","_classDecs","_RDFInput","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_storeContextDecs","context","subscribe","_formSubjectDecs","attribute","type","Object","_dataSubjectDecs","_storeVersionDecs","Number","_localInputValueDecs","_readonlyDecs","Boolean","reflect","RDFInput","_classPrivateFieldGet","v","_classPrivateFieldSet","formSubject","dataSubject","storeVersion","localInputValue","readonly","constructor","_classPrivateFieldInitSpec","_initProto","_init_storeContext","_init_formSubject","_init_dataSubject","_init_storeVersion","_init_localInputValue","_defineProperty","_init_readonly","id","render","formDocument","getDocument","uiPropertyTerm","getFormProperty","ui","inputLabel","getInputLabel","getReadOnly","fieldType","store","undefined","params","inputType","selectedTerm","getSelectedTerm","placeholder","defaultInputValue","inputValue","_updateInFlight","_pendingUpdateValue","termToInputValue","updateData","subject","doc","graph","any","formFieldSubject","uiLabel","propertyLabel","value","anyJS","defaultTerm","inputTerm","term","decodeURIComponent","String","stripped","replace","e","newValue","target","runPendingUpdate","dataDocument","updater","editable","toDeleteSt","statementsMatching","toInsertSt","objectFromNewValue","namedNode","sym","encodeURIComponent","dt","trim","xsd","map","statement","predicate","why","length","updateMany","err","console","error","_RDFInput2","c","_initClass","_applyDecs","default","ns","fieldTypeParams","ns_default","WebComponent","_RDFInput2","_initProto","_initClass","_classDecs","_storeContextDecs","_init_storeContext","_formSubjectDecs","_init_formSubject","_dataSubjectDecs","_init_dataSubject","_storeVersionDecs","_init_storeVersion","_localInputValueDecs","_init_localInputValue","_readonlyDecs","_init_readonly","_ref","_defineProperty","_toPropertyKey","r","t","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","customElement","_RDFInput","_A","_B","_C","_D","_E","_F","consume","storeContext","property","state","DEFAULT_STORE","generateId","formDocument","uiPropertyTerm","inputLabel","readonly","fieldType","mostSpecificClassURI","params","fieldParams","inputType","selectedTerm","placeholder","inputValue","subject","graph","formFieldSubject","uiLabel","propertyLabel","label","defaultTerm","dataSubject","term","newValue","dataDocument","toDeleteSt","toInsertSt","objectFromNewValue","Literal","st","statement","err"],"sources":["../../../src/components/rdf-input/RDFInput.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/html.js'\nimport ns from '../../lib/ns'\nimport { customElement, generateId, WebComponent } from '@/lib/components'\nimport { Literal, NamedNode, st } from 'rdflib'\nimport { label } from '../../utils'\nimport { mostSpecificClassURI } from '../../lib/forms/rdfFormsHelper'\nimport { FieldParamsObject, fieldParams as fieldTypeParams, InputType } from '../../lib/forms/fieldParams'\nimport { DEFAULT_STORE, storeContext, StoreContext } from '@/lib/forms/store/StoreContext'\nimport { consume } from '@lit/context'\nimport '@/components/input'\n\n@customElement('solid-ui-rdf-input')\nexport default class RDFInput extends WebComponent {\n // example RDF Turtle format source:\n // :nameField a ui:SingleLineTextField ;\n // ui:property vcard:fn;\n // ui:label \"name\" .\n\n // formSubject describes the field metadata\n // dataSubject points to the data resource containing the value\n\n @consume({ context: storeContext, subscribe: true })\n private accessor storeContext: StoreContext = DEFAULT_STORE\n\n @property({ attribute: false, type: Object })\n accessor formSubject: NamedNode | null = null\n\n @property({ attribute: false, type: Object })\n accessor dataSubject: NamedNode | null = null\n\n @property({ type: Number })\n accessor storeVersion = 0\n\n @state()\n private accessor localInputValue: string | null = null\n\n private _updateInFlight = false\n private _pendingUpdateValue: string | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly: boolean = true // to protect data, we default to not editable\n\n constructor () {\n super()\n\n this.id = generateId()\n }\n\n render () {\n const formDocument = this.getDocument(this.formSubject)\n\n // for building the HTML input element\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), formDocument)\n const inputLabel = this.getInputLabel(this.formSubject, uiPropertyTerm, formDocument)\n const readonly = this.getReadOnly(this.readonly, this.formSubject, formDocument)\n\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n const inputType: InputType = params.type ?? 'text'\n\n // for populating the HTML input element\n const selectedTerm = this.getSelectedTerm(this.dataSubject, uiPropertyTerm, this.formSubject, params)\n const placeholder = readonly ? '' : this.defaultInputValue(params)\n const inputValue = this._updateInFlight || this._pendingUpdateValue !== null\n ? this.localInputValue ?? ''\n : this.termToInputValue(selectedTerm)\n\n return html`\n <solid-ui-input\n label=\"${inputLabel}\"\n name=\"name-${this.id}\"\n .value=${inputValue}\n .placeholder=${placeholder}\n type=\"${inputType}\"\n ?readonly=${readonly}\n @input=${this.updateData}\n ></solid-ui-input>`\n }\n\n private getDocument (subject: NamedNode | null | undefined) {\n return subject?.doc ? subject.doc() : undefined\n }\n\n private getFormProperty (subject: NamedNode | null | undefined, property: NamedNode, graph?: any): NamedNode | undefined {\n if (!subject) return undefined\n return this.storeContext.store.any(subject, property, null, graph) as NamedNode | undefined\n }\n\n private getInputLabel (formFieldSubject: NamedNode | null | undefined, uiPropertyTerm?: NamedNode, graph?: any): string {\n if (!formFieldSubject) return ''\n const uiLabel = this.storeContext.store.any(formFieldSubject, ns.ui('label'), null, graph)\n const propertyLabel = uiPropertyTerm ? label(uiPropertyTerm, true) : ''\n return uiLabel ? uiLabel.value : propertyLabel\n }\n\n private getReadOnly (readonly: boolean, formFieldSubject?: NamedNode | null, graph?: any): boolean {\n if (formFieldSubject && readonly === false) { // if readonly is false, we can ovverride it if the field is marked as uneditable in the form\n return !!this.storeContext.store.anyJS(formFieldSubject, ns.ui('suppressEmptyUneditable'), null, graph)\n }\n return readonly\n }\n\n private getSelectedTerm (\n dataSubject?: NamedNode | null,\n uiPropertyTerm?: NamedNode,\n formFieldSubject?: NamedNode | null,\n params?: { defaultInputValue?: string }\n ) {\n const defaultTerm = formFieldSubject\n ? this.storeContext.store.any(formFieldSubject, ns.ui('default'))\n : undefined\n\n if (!uiPropertyTerm || !dataSubject) {\n return defaultTerm\n }\n\n const inputTerm = this.storeContext.store.any(dataSubject, uiPropertyTerm)\n return inputTerm || defaultTerm\n }\n\n private termToInputValue (term: any) {\n if (!term || !('value' in term) || !term.value) return ''\n\n try {\n return decodeURIComponent(term.value)\n } catch {\n return String(term.value)\n }\n }\n\n private defaultInputValue (params: { defaultInputValue?: string } = {}) {\n const stripped = params.defaultInputValue ?? ''\n return stripped.replace(/ /g, '')\n }\n\n private async updateData (e: CustomEvent) {\n const newValue = (e.target as HTMLInputElement).value\n this.localInputValue = newValue\n this._pendingUpdateValue = newValue\n\n if (this._updateInFlight) {\n return\n }\n\n await this.runPendingUpdate()\n }\n\n private async runPendingUpdate () {\n if (this._pendingUpdateValue === null) {\n return\n }\n\n const newValue = this._pendingUpdateValue\n this._pendingUpdateValue = null\n this._updateInFlight = true\n\n const uiPropertyTerm = this.getFormProperty(this.formSubject, ns.ui('property'), this.getDocument(this.formSubject))\n if (!uiPropertyTerm || !this.dataSubject) {\n this._updateInFlight = false\n this.localInputValue = ''\n return\n }\n\n const dataDocument = this.getDocument(this.dataSubject)\n if (dataDocument && this.storeContext.store.updater?.editable(dataDocument) === false) {\n this._updateInFlight = false\n return\n }\n\n const toDeleteSt = this.storeContext.store.statementsMatching(this.dataSubject, uiPropertyTerm)\n let toInsertSt: Array<ReturnType<typeof st>> = []\n\n if (newValue) {\n let objectFromNewValue\n const fieldType = this.formSubject ? mostSpecificClassURI(this.storeContext.store, this.formSubject) : undefined\n const params: FieldParamsObject = fieldType ? fieldTypeParams[fieldType] ?? {} : {}\n if (params.namedNode) {\n objectFromNewValue = this.storeContext.store.sym(newValue)\n } else if (params.defaultInputValue) {\n objectFromNewValue = encodeURIComponent(newValue.replace(/ /g, ''))\n objectFromNewValue = this.storeContext.store.sym(params.defaultInputValue + objectFromNewValue)\n } else {\n if (params.dt) {\n objectFromNewValue = new Literal(\n newValue.trim(),\n undefined,\n ns.xsd(params.dt)\n )\n } else {\n objectFromNewValue = new Literal(newValue)\n }\n }\n toInsertSt = toDeleteSt.map((statement) => st(statement.subject, statement.predicate, objectFromNewValue, statement.why))\n if (toInsertSt.length === 0) {\n toInsertSt = [st(this.dataSubject, uiPropertyTerm, objectFromNewValue, this.getDocument(this.dataSubject))]\n }\n }\n\n try {\n await this.storeContext.store.updater.updateMany(toDeleteSt, toInsertSt as any)\n this.storeVersion += 1\n } catch (err) {\n console.error('RDFInput update failed', err)\n } finally {\n this._updateInFlight = false\n }\n\n if (this._pendingUpdateValue !== null) {\n await this.runPendingUpdate()\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { n as RDFInput, t as default } from "../chunks/rdf-input-
|
|
1
|
+
export { n as RDFInput, t as default } from "../chunks/rdf-input-BPePtqfS.js";
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
require("../../lib/components/index.cjs.js");const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/components/web-component/WebComponent.cjs.js");require("../button/index.cjs.js"),require("../menu/index.cjs.js"),require("../menu-item/index.cjs.js"),require("../../_virtual/~icons/lucide/ellipsis-vertical.cjs.js"),require("../../_virtual/~icons/lucide/user-round-cog.cjs.js"),require("../../_virtual/~icons/lucide/pencil.cjs.js"),require("../../_virtual/~icons/lucide/file.cjs.js"),require("../../_virtual/~icons/lucide/square-arrow-out-up-right.cjs.js");const n=require("./ResourceActionsMenu.styles.cjs.js"),r=require("../../utils/podUtils.cjs.js");let i=require("lit"),a=require("lit/decorators.js");var o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H;function U(e,t,n){W(e,t),t.set(e,n)}function W(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function G(e,t,n){return e.set(q(e,t),n),n}function K(e,t){return e.get(q(e,t))}function q(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function J(e,t,n){return(t=X(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:Q(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||Q(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return ee(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);if(!0===x||x===3&&m!==4||x===4&&m!==3)throw Error(`Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: `+h);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:X(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function X(e){var t=Z(e,`string`);return typeof t==`symbol`?t:t+``}function Z(e,t){if(typeof e!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Q(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function ee(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function te(e){return e}b=[e.customElement(`solid-ui-resource-actions-menu`)];var $;new(V=(c=new WeakMap,l=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,m=new WeakMap,h=new WeakMap,g=new WeakMap,_=new WeakMap,H=(x=(0,a.property)({attribute:!1}),C=(0,a.property)({type:String}),T=(0,a.property)({attribute:!1}),D=(0,a.property)({attribute:!1}),k=(0,a.property)({type:Boolean}),j=(0,a.property)({type:Boolean}),N=(0,a.property)({type:Boolean}),F=(0,a.property)({type:Boolean}),L=(0,a.property)({type:Boolean,attribute:`show-access-in-menu`}),z=(0,a.property)({attribute:!1}),`store`),s=class extends t.default{constructor(...e){super(...e),U(this,c,(v(this),S(this))),U(this,l,w(this)),U(this,u,E(this,void 0)),U(this,d,O(this,void 0)),U(this,f,A(this,!1)),U(this,p,M(this,!1)),U(this,m,P(this,!1)),U(this,h,I(this,!1)),U(this,g,R(this,!1)),U(this,_,B(this,[])),J(this,`handleOpenInNewTab`,()=>{this.subjectUri&&window.open(this.subjectUri,`_blank`,`noopener,noreferrer`)})}get[H](){return K(c,this)}set store(e){G(c,this,e)}get subjectUri(){return K(l,this)}set subjectUri(e){G(l,this,e)}get handleAccessClick(){return K(u,this)}set handleAccessClick(e){G(u,this,e)}get handleEditingClick(){return K(d,this)}set handleEditingClick(e){G(d,this,e)}get paneSupportsEditing(){return K(f,this)}set paneSupportsEditing(e){G(f,this,e)}get canEdit(){return K(p,this)}set canEdit(e){G(p,this,e)}get canManageAccess(){return K(m,this)}set canManageAccess(e){G(m,this,e)}get isMobile(){return K(h,this)}set isMobile(e){G(h,this,e)}get showAccessInMenu(){return K(g,this)}set showAccessInMenu(e){G(g,this,e)}get menuItems(){return K(_,this)}set menuItems(e){G(_,this,e)}render(){let e=!r.isContainerSubject(this.store,this.subjectUri)&&this.isMobile&&this.paneSupportsEditing&&this.canEdit&&!!this.handleEditingClick,t=this.canManageAccess&&!!this.handleAccessClick&&(this.showAccessInMenu||this.isMobile),n=this.menuItems.filter(e=>typeof e.action==`function`);return i.html`
|
|
2
2
|
<solid-ui-menu>
|
|
3
3
|
<solid-ui-button slot="trigger" class="file-explorer-header-more-button" variant="ghost" title="More options">
|
|
4
4
|
<icon-lucide-ellipsis-vertical slot="icon" class="ellipsisIcon"></icon-lucide-ellipsis-vertical>
|
|
5
5
|
<span class="sr-only">More options</span>
|
|
6
6
|
</solid-ui-button>
|
|
7
|
-
${
|
|
7
|
+
${n.map(e=>i.html`
|
|
8
8
|
<solid-ui-menu-item @solid-ui-select=${t=>e.action(t)}>
|
|
9
9
|
${typeof e.icon==`string`?i.html`<img slot="left-icon" src=${e.icon} alt="">`:e.icon??i.html`<icon-lucide-file slot="left-icon" aria-hidden="true"></icon-lucide-file>`}
|
|
10
10
|
${e.label}
|
|
11
11
|
</solid-ui-menu-item>
|
|
12
12
|
`)}
|
|
13
|
+
${this.subjectUri?i.html`
|
|
14
|
+
<solid-ui-menu-item @solid-ui-select=${this.handleOpenInNewTab}>
|
|
15
|
+
<icon-lucide-square-arrow-out-up-right slot="left-icon"></icon-lucide-square-arrow-out-up-right>
|
|
16
|
+
Open in New Tab
|
|
17
|
+
</solid-ui-menu-item>
|
|
18
|
+
`:i.nothing}
|
|
13
19
|
${e?i.html`
|
|
14
20
|
<solid-ui-menu-item @solid-ui-select=${this.handleEditingClick}>
|
|
15
21
|
<icon-lucide-pencil slot="left-icon"></icon-lucide-pencil>
|
|
@@ -23,5 +29,5 @@ const e=require("../../lib/components/decorators.cjs.js"),t=require("../../lib/c
|
|
|
23
29
|
</solid-ui-menu-item>
|
|
24
30
|
`:i.nothing}
|
|
25
31
|
</solid-ui-menu>
|
|
26
|
-
`}},{e:[S,w,E,O,A,M,P,I,R,B,v],c:[$,y]}=Y(s,[[x,1,`store`],[C,1,`subjectUri`],[T,1,`handleAccessClick`],[D,1,`handleEditingClick`],[k,1,`paneSupportsEditing`],[j,1,`canEdit`],[N,1,`canManageAccess`],[F,1,`isMobile`],[L,1,`showAccessInMenu`],[z,1,`menuItems`]],b,0,void 0,t.default),s),o=class extends te{constructor(){super($),J(this,`styles`,
|
|
32
|
+
`}},{e:[S,w,E,O,A,M,P,I,R,B,v],c:[$,y]}=Y(s,[[x,1,`store`],[C,1,`subjectUri`],[T,1,`handleAccessClick`],[D,1,`handleEditingClick`],[k,1,`paneSupportsEditing`],[j,1,`canEdit`],[N,1,`canManageAccess`],[F,1,`isMobile`],[L,1,`showAccessInMenu`],[z,1,`menuItems`]],b,0,void 0,t.default),s),o=class extends te{constructor(){super($),J(this,`styles`,n.default),y()}},J(o,V,void 0),o),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return $}});
|
|
27
33
|
//# sourceMappingURL=ResourceActionsMenu.cjs.js.map
|