solid-panes 5.0.0-1 → 5.1.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -2
- package/dist/RDFXMLPane2.cjs.js.map +1 -1
- package/dist/RDFXMLPane2.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/arrow-left.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/arrow-left.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/cake.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/cake.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/cake.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/cake.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/camera.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/camera.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/camera.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/camera.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/circle-user-round.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/circle-user-round.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/circle-user-round.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/circle-user-round.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/folder-open.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/folder-open.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/folder.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/folder.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/globe.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/globe.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/help-circle.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/help-circle.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/lock-keyhole.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/lock-keyhole.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/mail.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/mail.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/mail.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/mail.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/map-pin.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/map-pin.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/map-pin.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/map-pin.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/pencil.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/pencil.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/phone.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/phone.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/phone.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/phone.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/settings-2.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/settings-2.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/share-2.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/share-2.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/user-round-cog.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/user-round-cog.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/user-round-plus.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/user-round-plus.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/user-round-plus.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/user-round-plus.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/user.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/user.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/users.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/users.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/x.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/x.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/x.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/x.esm.js.map +1 -0
- package/dist/audio/audioPane.cjs.js +1 -1
- package/dist/audio/audioPane.cjs.js.map +1 -1
- package/dist/audio/audioPane.esm.js +1 -5
- package/dist/audio/audioPane.esm.js.map +1 -1
- package/dist/classInstancePane.cjs.js.map +1 -1
- package/dist/classInstancePane.esm.js.map +1 -1
- package/dist/components/editor-card/EditorCard.cjs.js +1 -1
- package/dist/components/editor-card/EditorCard.cjs.js.map +1 -1
- package/dist/components/editor-card/EditorCard.esm.js +4 -7
- package/dist/components/editor-card/EditorCard.esm.js.map +1 -1
- package/dist/components/editor-card/EditorCard.styles.cjs.js.map +1 -1
- package/dist/components/editor-card/EditorCard.styles.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.esm.js +2 -2
- package/dist/components/file-explorer-header/FileExplorerHeader.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +3 -3
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +2 -2
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js +5 -5
- package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.d.ts.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.esm.js +97 -96
- package/dist/components/file-explorer-header/FileExplorerProvider.esm.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.cjs.js.map +1 -1
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.esm.js.map +1 -1
- package/dist/components/header/Header.cjs.js +1 -1
- package/dist/components/header/Header.cjs.js.map +1 -1
- package/dist/components/header/Header.esm.js +2 -2
- package/dist/components/header/Header.esm.js.map +1 -1
- package/dist/components/header/Header.styles.cjs.js +1 -1
- package/dist/components/header/Header.styles.cjs.js.map +1 -1
- package/dist/components/header/Header.styles.esm.js +1 -1
- package/dist/components/header/Header.styles.esm.js.map +1 -1
- package/dist/components/navbar/Navbar.cjs.js +1 -1
- package/dist/components/navbar/Navbar.cjs.js.map +1 -1
- package/dist/components/navbar/Navbar.d.ts +2 -0
- package/dist/components/navbar/Navbar.d.ts.map +1 -1
- package/dist/components/navbar/Navbar.esm.js +2 -2
- package/dist/components/navbar/Navbar.esm.js.map +1 -1
- package/dist/components/navbar/Navbar.styles.cjs.js +1 -1
- package/dist/components/navbar/Navbar.styles.cjs.js.map +1 -1
- package/dist/components/navbar/Navbar.styles.esm.js +1 -1
- package/dist/components/navbar/Navbar.styles.esm.js.map +1 -1
- package/dist/components/profile-heading/ProfileHeading.cjs.js +95 -0
- package/dist/components/profile-heading/ProfileHeading.cjs.js.map +1 -0
- package/dist/components/profile-heading/ProfileHeading.d.ts +45 -0
- package/dist/components/profile-heading/ProfileHeading.d.ts.map +1 -0
- package/dist/components/profile-heading/ProfileHeading.esm.js +480 -0
- package/dist/components/profile-heading/ProfileHeading.esm.js.map +1 -0
- package/dist/components/profile-heading/ProfileHeading.styles.cjs.js +2 -0
- package/dist/components/profile-heading/ProfileHeading.styles.cjs.js.map +1 -0
- package/dist/components/profile-heading/ProfileHeading.styles.esm.js +7 -0
- package/dist/components/profile-heading/ProfileHeading.styles.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/index.d.ts +3 -0
- package/dist/components/profile-heading/editor/index.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/contactInfo/types.d.ts +44 -0
- package/dist/components/profile-heading/editor/sections/contactInfo/types.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.cjs.js +297 -0
- package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.d.ts +5 -0
- package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.esm.js +642 -0
- package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/dateHelpers.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/heading/dateHelpers.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/dateHelpers.d.ts +4 -0
- package/dist/components/profile-heading/editor/sections/heading/dateHelpers.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/dateHelpers.esm.js +16 -0
- package/dist/components/profile-heading/editor/sections/heading/dateHelpers.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/imageHelpers.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/heading/imageHelpers.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/imageHelpers.d.ts +5 -0
- package/dist/components/profile-heading/editor/sections/heading/imageHelpers.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/imageHelpers.esm.js +76 -0
- package/dist/components/profile-heading/editor/sections/heading/imageHelpers.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/imagePreview.cjs.js +19 -0
- package/dist/components/profile-heading/editor/sections/heading/imagePreview.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/imagePreview.d.ts +2 -0
- package/dist/components/profile-heading/editor/sections/heading/imagePreview.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/imagePreview.esm.js +28 -0
- package/dist/components/profile-heading/editor/sections/heading/imagePreview.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/mutations.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/heading/mutations.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/mutations.d.ts +4 -0
- package/dist/components/profile-heading/editor/sections/heading/mutations.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/mutations.esm.js +151 -0
- package/dist/components/profile-heading/editor/sections/heading/mutations.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/heading/types.d.ts +34 -0
- package/dist/components/profile-heading/editor/sections/heading/types.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.d.ts +7 -0
- package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.esm.js +20 -0
- package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.d.ts +3 -0
- package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.esm.js +11 -0
- package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/phoneCountries.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/shared/phoneCountries.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/phoneCountries.d.ts +20 -0
- package/dist/components/profile-heading/editor/sections/shared/phoneCountries.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/phoneCountries.esm.js +1291 -0
- package/dist/components/profile-heading/editor/sections/shared/phoneCountries.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.d.ts +45 -0
- package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.esm.js +211 -0
- package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/rowState.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/shared/rowState.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/rowState.d.ts +21 -0
- package/dist/components/profile-heading/editor/sections/shared/rowState.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/rowState.esm.js +18 -0
- package/dist/components/profile-heading/editor/sections/shared/rowState.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.cjs.js +2 -0
- package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.d.ts +5 -0
- package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.esm.js +18 -0
- package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/sections/shared/types.d.ts +31 -0
- package/dist/components/profile-heading/editor/sections/shared/types.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/textUtils.cjs.js +2 -0
- package/dist/components/profile-heading/editor/textUtils.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/textUtils.d.ts +6 -0
- package/dist/components/profile-heading/editor/textUtils.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/textUtils.esm.js +26 -0
- package/dist/components/profile-heading/editor/textUtils.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/texts/buttonTexts.d.ts +9 -0
- package/dist/components/profile-heading/editor/texts/buttonTexts.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/texts/dialogTexts.cjs.js +2 -0
- package/dist/components/profile-heading/editor/texts/dialogTexts.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/texts/dialogTexts.d.ts +14 -0
- package/dist/components/profile-heading/editor/texts/dialogTexts.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/texts/dialogTexts.esm.js +6 -0
- package/dist/components/profile-heading/editor/texts/dialogTexts.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/texts/messageTexts.cjs.js +2 -0
- package/dist/components/profile-heading/editor/texts/messageTexts.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/texts/messageTexts.d.ts +42 -0
- package/dist/components/profile-heading/editor/texts/messageTexts.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/texts/messageTexts.esm.js +6 -0
- package/dist/components/profile-heading/editor/texts/messageTexts.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/texts/profileTexts.d.ts +14 -0
- package/dist/components/profile-heading/editor/texts/profileTexts.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/texts/qrCodeTexts.d.ts +2 -0
- package/dist/components/profile-heading/editor/texts/qrCodeTexts.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/texts.d.ts +6 -0
- package/dist/components/profile-heading/editor/texts.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/ui/dialog.d.ts +41 -0
- package/dist/components/profile-heading/editor/ui/dialog.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/ui/dialog2.cjs.js +17 -0
- package/dist/components/profile-heading/editor/ui/dialog2.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/ui/dialog2.esm.js +263 -0
- package/dist/components/profile-heading/editor/ui/dialog2.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/ui/spinner.cjs.js +5 -0
- package/dist/components/profile-heading/editor/ui/spinner.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/ui/spinner.d.ts +3 -0
- package/dist/components/profile-heading/editor/ui/spinner.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/ui/spinner.esm.js +12 -0
- package/dist/components/profile-heading/editor/ui/spinner.esm.js.map +1 -0
- package/dist/components/profile-heading/editor/utils/errorDisplay.cjs.js +2 -0
- package/dist/components/profile-heading/editor/utils/errorDisplay.cjs.js.map +1 -0
- package/dist/components/profile-heading/editor/utils/errorDisplay.d.ts +2 -0
- package/dist/components/profile-heading/editor/utils/errorDisplay.d.ts.map +1 -0
- package/dist/components/profile-heading/editor/utils/errorDisplay.esm.js +18 -0
- package/dist/components/profile-heading/editor/utils/errorDisplay.esm.js.map +1 -0
- package/dist/components/profile-heading/friendActions.cjs.js +2 -0
- package/dist/components/profile-heading/friendActions.cjs.js.map +1 -0
- package/dist/components/profile-heading/friendActions.d.ts +11 -0
- package/dist/components/profile-heading/friendActions.d.ts.map +1 -0
- package/dist/components/profile-heading/friendActions.esm.js +32 -0
- package/dist/components/profile-heading/friendActions.esm.js.map +1 -0
- package/dist/components/profile-heading/index.cjs.js +1 -0
- package/dist/components/profile-heading/index.d.ts +5 -0
- package/dist/components/profile-heading/index.d.ts.map +1 -0
- package/dist/components/profile-heading/index.esm.js +1 -0
- package/dist/components/profile-heading/profileHeadingData.cjs.js +2 -0
- package/dist/components/profile-heading/profileHeadingData.cjs.js.map +1 -0
- package/dist/components/profile-heading/profileHeadingData.d.ts +6 -0
- package/dist/components/profile-heading/profileHeadingData.d.ts.map +1 -0
- package/dist/components/profile-heading/profileHeadingData.esm.js +81 -0
- package/dist/components/profile-heading/profileHeadingData.esm.js.map +1 -0
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +2 -2
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.styles.cjs.js.map +1 -1
- package/dist/components/resource-actions-menu/ResourceActionsMenu.styles.esm.js.map +1 -1
- package/dist/dashboard/basicPreferences.cjs.js.map +1 -1
- package/dist/dashboard/basicPreferences.esm.js.map +1 -1
- package/dist/dashboard/dashboardPane.cjs.js.map +1 -1
- package/dist/dashboard/dashboardPane.esm.js.map +1 -1
- package/dist/dashboard/homepage.cjs.js.map +1 -1
- package/dist/dashboard/homepage.esm.js.map +1 -1
- package/dist/dashboard/ontologyData.cjs.js.map +1 -1
- package/dist/dashboard/ontologyData.esm.js.map +1 -1
- package/dist/dashboard/preferencesFormText.cjs.js.map +1 -1
- package/dist/dashboard/preferencesFormText.esm.js.map +1 -1
- package/dist/dataContentPane2.cjs.js.map +1 -1
- package/dist/dataContentPane2.esm.js.map +1 -1
- package/dist/defaultPane2.cjs.js.map +1 -1
- package/dist/defaultPane2.esm.js.map +1 -1
- package/dist/dokieli/dokieliPane.cjs.js.map +1 -1
- package/dist/dokieli/dokieliPane.esm.js.map +1 -1
- package/dist/dokieli/new.cjs.js.map +1 -1
- package/dist/dokieli/new.esm.js.map +1 -1
- package/dist/form/pane.cjs.js.map +1 -1
- package/dist/form/pane.esm.js.map +1 -1
- package/dist/home/homePane.cjs.js.map +1 -1
- package/dist/home/homePane.esm.js.map +1 -1
- package/dist/humanReadablePane2.cjs.js.map +1 -1
- package/dist/humanReadablePane2.esm.js.map +1 -1
- package/dist/icons/folder.cjs.js.map +1 -1
- package/dist/icons/folder.esm.js.map +1 -1
- package/dist/icons/friends.cjs.js.map +1 -1
- package/dist/icons/friends.esm.js.map +1 -1
- package/dist/icons/person.cjs.js.map +1 -1
- package/dist/icons/person.esm.js.map +1 -1
- package/dist/imagePane2.cjs.js.map +1 -1
- package/dist/imagePane2.esm.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +15 -14
- package/dist/index.esm.js.map +1 -1
- package/dist/internal/internalPane2.cjs.js +1 -1
- package/dist/internal/internalPane2.cjs.js.map +1 -1
- package/dist/internal/internalPane2.esm.js +2 -5
- package/dist/internal/internalPane2.esm.js.map +1 -1
- package/dist/mainPage/header.cjs.js +1 -1
- package/dist/mainPage/header.cjs.js.map +1 -1
- package/dist/mainPage/header.d.ts +2 -2
- package/dist/mainPage/header.d.ts.map +1 -1
- package/dist/mainPage/header.esm.js +48 -44
- package/dist/mainPage/header.esm.js.map +1 -1
- package/dist/mainPage/index.cjs.js +1 -1
- package/dist/mainPage/index.cjs.js.map +1 -1
- package/dist/mainPage/index.d.ts.map +1 -1
- package/dist/mainPage/index.esm.js +27 -21
- package/dist/mainPage/index.esm.js.map +1 -1
- package/dist/mainPage/navbar.cjs.js +1 -1
- package/dist/mainPage/navbar.cjs.js.map +1 -1
- package/dist/mainPage/navbar.d.ts +3 -2
- package/dist/mainPage/navbar.d.ts.map +1 -1
- package/dist/mainPage/navbar.esm.js +77 -42
- package/dist/mainPage/navbar.esm.js.map +1 -1
- package/dist/mainPage/navigation.cjs.js +2 -0
- package/dist/mainPage/navigation.cjs.js.map +1 -0
- package/dist/mainPage/navigation.d.ts +6 -0
- package/dist/mainPage/navigation.d.ts.map +1 -0
- package/dist/mainPage/navigation.esm.js +22 -0
- package/dist/mainPage/navigation.esm.js.map +1 -0
- package/dist/mainPage/profileHeading.d.ts +5 -0
- package/dist/mainPage/profileHeading.d.ts.map +1 -0
- package/dist/mainPage/profileHeading2.cjs.js +2 -0
- package/dist/mainPage/profileHeading2.cjs.js.map +1 -0
- package/dist/mainPage/profileHeading2.esm.js +158 -0
- package/dist/mainPage/profileHeading2.esm.js.map +1 -0
- package/dist/n3Pane2.cjs.js.map +1 -1
- package/dist/n3Pane2.esm.js.map +1 -1
- package/dist/navigation/browserEvents.cjs.js +2 -0
- package/dist/navigation/browserEvents.cjs.js.map +1 -0
- package/dist/navigation/browserEvents.d.ts +15 -0
- package/dist/navigation/browserEvents.d.ts.map +1 -0
- package/dist/navigation/browserEvents.esm.js +32 -0
- package/dist/navigation/browserEvents.esm.js.map +1 -0
- package/dist/navigation/chrome.cjs.js +2 -0
- package/dist/navigation/chrome.cjs.js.map +1 -0
- package/dist/navigation/chrome.d.ts +69 -0
- package/dist/navigation/chrome.d.ts.map +1 -0
- package/dist/navigation/chrome.esm.js +43 -0
- package/dist/navigation/chrome.esm.js.map +1 -0
- package/dist/navigation/controller.cjs.js +2 -0
- package/dist/navigation/controller.cjs.js.map +1 -0
- package/dist/navigation/controller.d.ts +51 -0
- package/dist/navigation/controller.d.ts.map +1 -0
- package/dist/navigation/controller.esm.js +45 -0
- package/dist/navigation/controller.esm.js.map +1 -0
- package/dist/navigation/events.cjs.js +2 -0
- package/dist/navigation/events.cjs.js.map +1 -0
- package/dist/navigation/events.d.ts +17 -0
- package/dist/navigation/events.d.ts.map +1 -0
- package/dist/navigation/events.esm.js +18 -0
- package/dist/navigation/events.esm.js.map +1 -0
- package/dist/navigation/navbarVisibility.cjs.js +2 -0
- package/dist/navigation/navbarVisibility.cjs.js.map +1 -0
- package/dist/navigation/navbarVisibility.d.ts +5 -0
- package/dist/navigation/navbarVisibility.d.ts.map +1 -0
- package/dist/navigation/navbarVisibility.esm.js +26 -0
- package/dist/navigation/navbarVisibility.esm.js.map +1 -0
- package/dist/navigation/options.cjs.js +2 -0
- package/dist/navigation/options.cjs.js.map +1 -0
- package/dist/navigation/options.d.ts +16 -0
- package/dist/navigation/options.d.ts.map +1 -0
- package/dist/navigation/options.esm.js +8 -0
- package/dist/navigation/options.esm.js.map +1 -0
- package/dist/navigation/podContext.cjs.js +2 -0
- package/dist/navigation/podContext.cjs.js.map +1 -0
- package/dist/navigation/podContext.d.ts +21 -0
- package/dist/navigation/podContext.d.ts.map +1 -0
- package/dist/navigation/podContext.esm.js +62 -0
- package/dist/navigation/podContext.esm.js.map +1 -0
- package/dist/navigation/state.cjs.js +2 -0
- package/dist/navigation/state.cjs.js.map +1 -0
- package/dist/navigation/state.d.ts +40 -0
- package/dist/navigation/state.d.ts.map +1 -0
- package/dist/navigation/state.esm.js +41 -0
- package/dist/navigation/state.esm.js.map +1 -0
- package/dist/outline/context.cjs.js.map +1 -1
- package/dist/outline/context.esm.js.map +1 -1
- package/dist/outline/manager2.cjs.js +1 -1
- package/dist/outline/manager2.cjs.js.map +1 -1
- package/dist/outline/manager2.esm.js +388 -354
- package/dist/outline/manager2.esm.js.map +1 -1
- package/dist/outline/outlineIcons.cjs.js.map +1 -1
- package/dist/outline/outlineIcons.esm.js.map +1 -1
- package/dist/outline/propertyViews.cjs.js.map +1 -1
- package/dist/outline/propertyViews.esm.js.map +1 -1
- package/dist/outline/queryByExample.cjs.js.map +1 -1
- package/dist/outline/queryByExample.esm.js.map +1 -1
- package/dist/outline/userInput.cjs.js +1 -1
- package/dist/outline/userInput.cjs.js.map +1 -1
- package/dist/outline/userInput.esm.js +12 -13
- package/dist/outline/userInput.esm.js.map +1 -1
- package/dist/outline/viewAsImage.cjs.js.map +1 -1
- package/dist/outline/viewAsImage.esm.js.map +1 -1
- package/dist/outline/viewAsMbox.cjs.js.map +1 -1
- package/dist/outline/viewAsMbox.esm.js.map +1 -1
- package/dist/pad/padPane2.cjs.js +1 -1
- package/dist/pad/padPane2.cjs.js.map +1 -1
- package/dist/pad/padPane2.esm.js +2 -6
- package/dist/pad/padPane2.esm.js.map +1 -1
- package/dist/playlist/playlistPane.cjs.js.map +1 -1
- package/dist/playlist/playlistPane.esm.js.map +1 -1
- package/dist/registerPanes.cjs.js.map +1 -1
- package/dist/registerPanes.esm.js.map +1 -1
- package/dist/schedule/formsForSchedule.cjs.js.map +1 -1
- package/dist/schedule/formsForSchedule.esm.js.map +1 -1
- package/dist/schedule/schedulePane2.cjs.js +1 -1
- package/dist/schedule/schedulePane2.cjs.js.map +1 -1
- package/dist/schedule/schedulePane2.esm.js +1 -5
- package/dist/schedule/schedulePane2.esm.js.map +1 -1
- package/dist/sharing/sharingPane.cjs.js.map +1 -1
- package/dist/sharing/sharingPane.esm.js.map +1 -1
- package/dist/slideshow/slideshowPane.cjs.js.map +1 -1
- package/dist/slideshow/slideshowPane.esm.js.map +1 -1
- package/dist/social/editProfileDetails.cjs.js +1 -1
- package/dist/social/editProfileDetails.cjs.js.map +1 -1
- package/dist/social/editProfileDetails.esm.js +0 -2
- package/dist/social/editProfileDetails.esm.js.map +1 -1
- package/dist/social/icons.cjs.js +4 -4
- package/dist/social/icons.cjs.js.map +1 -1
- package/dist/social/icons.esm.js +5 -5
- package/dist/social/icons.esm.js.map +1 -1
- package/dist/social/socialPane.d.ts +0 -1
- package/dist/social/socialPane.d.ts.map +1 -1
- package/dist/social/socialPane2.cjs.js +3 -3
- package/dist/social/socialPane2.cjs.js.map +1 -1
- package/dist/social/socialPane2.esm.js +97 -154
- package/dist/social/socialPane2.esm.js.map +1 -1
- package/dist/social/socialSections.cjs.js +1 -1
- package/dist/social/socialSections.cjs.js.map +1 -1
- package/dist/social/socialSections.d.ts +2 -1
- package/dist/social/socialSections.d.ts.map +1 -1
- package/dist/social/socialSections.esm.js +54 -129
- package/dist/social/socialSections.esm.js.map +1 -1
- package/dist/social/triage.cjs.js.map +1 -1
- package/dist/social/triage.esm.js.map +1 -1
- package/dist/tabbed/tabbedPane.cjs.js.map +1 -1
- package/dist/tabbed/tabbedPane.esm.js.map +1 -1
- package/dist/tableViewPane.cjs.js.map +1 -1
- package/dist/tableViewPane.esm.js.map +1 -1
- package/dist/transaction/pane.cjs.js.map +1 -1
- package/dist/transaction/pane.esm.js +1 -1
- package/dist/transaction/pane.esm.js.map +1 -1
- package/dist/transaction/period.cjs.js.map +1 -1
- package/dist/transaction/period.esm.js.map +1 -1
- package/dist/trip/tripPane.cjs.js.map +1 -1
- package/dist/trip/tripPane.esm.js.map +1 -1
- package/dist/trustedApplications/trustedApplications.dom.cjs.js.map +1 -1
- package/dist/trustedApplications/trustedApplications.dom.esm.js.map +1 -1
- package/dist/trustedApplications/trustedApplications.utils.cjs.js.map +1 -1
- package/dist/trustedApplications/trustedApplications.utils.esm.js.map +1 -1
- package/dist/trustedApplications/trustedApplications.view.cjs.js.map +1 -1
- package/dist/trustedApplications/trustedApplications.view.esm.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/ui/pane.cjs.js +1 -1
- package/dist/ui/pane.cjs.js.map +1 -1
- package/dist/ui/pane.esm.js +2 -5
- package/dist/ui/pane.esm.js.map +1 -1
- package/dist/utils/paneUtils.cjs.js +1 -1
- package/dist/utils/paneUtils.cjs.js.map +1 -1
- package/dist/utils/paneUtils.esm.js +4 -4
- package/dist/utils/paneUtils.esm.js.map +1 -1
- package/dist/utils/podUtils.cjs.js.map +1 -1
- package/dist/utils/podUtils.esm.js.map +1 -1
- package/dist/utils/viewerUtils.cjs.js +2 -0
- package/dist/utils/viewerUtils.cjs.js.map +1 -0
- package/dist/utils/viewerUtils.d.ts +5 -0
- package/dist/utils/viewerUtils.d.ts.map +1 -0
- package/dist/utils/viewerUtils.esm.js +13 -0
- package/dist/utils/viewerUtils.esm.js.map +1 -0
- package/dist/utils/webIdUtils.cjs.js +1 -1
- package/dist/utils/webIdUtils.cjs.js.map +1 -1
- package/dist/utils/webIdUtils.d.ts +1 -0
- package/dist/utils/webIdUtils.d.ts.map +1 -1
- package/dist/utils/webIdUtils.esm.js +23 -19
- package/dist/utils/webIdUtils.esm.js.map +1 -1
- package/dist/versionInfo.cjs.js +1 -1
- package/dist/versionInfo.cjs.js.map +1 -1
- package/dist/versionInfo.esm.js +11 -11
- package/dist/versionInfo.esm.js.map +1 -1
- package/dist/video/videoPane.cjs.js.map +1 -1
- package/dist/video/videoPane.esm.js.map +1 -1
- package/package.json +15 -14
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Node } from '../../../../../../node_modules/rdflib';
|
|
2
|
+
import { MutationOps } from '../shared/types';
|
|
3
|
+
export interface PointDetails {
|
|
4
|
+
entryNode: Node;
|
|
5
|
+
type: Node;
|
|
6
|
+
valueNode: Node;
|
|
7
|
+
}
|
|
8
|
+
export interface AddressDetails {
|
|
9
|
+
entryNode: Node;
|
|
10
|
+
type?: Node;
|
|
11
|
+
streetAddress?: string;
|
|
12
|
+
locality?: string;
|
|
13
|
+
region?: string;
|
|
14
|
+
postalCode?: string;
|
|
15
|
+
countryName?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ContactInfo {
|
|
18
|
+
emails: PointDetails[];
|
|
19
|
+
phones: PointDetails[];
|
|
20
|
+
addresses: AddressDetails[];
|
|
21
|
+
}
|
|
22
|
+
export type ContactRowStatus = 'existing' | 'new' | 'modified' | 'deleted';
|
|
23
|
+
export type ContactPointRow = {
|
|
24
|
+
value: string;
|
|
25
|
+
type: string;
|
|
26
|
+
entryNode: string;
|
|
27
|
+
status: ContactRowStatus;
|
|
28
|
+
};
|
|
29
|
+
export type ContactAddressRow = {
|
|
30
|
+
streetAddress?: string;
|
|
31
|
+
locality?: string;
|
|
32
|
+
region?: string;
|
|
33
|
+
postalCode?: string;
|
|
34
|
+
countryName?: string;
|
|
35
|
+
type: string;
|
|
36
|
+
entryNode: string;
|
|
37
|
+
status: ContactRowStatus;
|
|
38
|
+
};
|
|
39
|
+
export type ContactMutationPlan = {
|
|
40
|
+
phoneOps: MutationOps<ContactPointRow>;
|
|
41
|
+
emailOps: MutationOps<ContactPointRow>;
|
|
42
|
+
addressOps: MutationOps<ContactAddressRow>;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/profile-heading/editor/sections/contactInfo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAA;CAChB;AACD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,EAAE,cAAc,EAAE,CAAA;CAC5B;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAA;AAE1E,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,gBAAgB,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,gBAAgB,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IACtC,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IACtC,UAAU,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAA;CAC3C,CAAA"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
(function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`html[data-layout=mobile] .profile-edit-dialog__row{flex-direction:column;align-items:stretch;max-width:100%}html[data-layout=mobile] .profile-edit-dialog__row--equal>.profile-edit-dialog__field,html[data-layout=mobile] .profile-edit-dialog__row--equal>.profile-edit-dialog__field-type,html[data-layout=mobile] .profile-edit-dialog__field-type{flex:auto}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__field--dob{align-self:stretch;width:100%;min-width:0;max-width:100%;overflow:hidden}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__row--heading-dob{flex-direction:column;align-items:stretch}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__row--heading-dob>.profile-edit-dialog__field,html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__row--heading-dob>.profile-edit-dialog__field-type{flex:auto;width:100%;min-width:0;max-width:100%}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob{height:var(--solid-ui-clickable-area,42px);min-height:var(--solid-ui-clickable-area,42px);max-height:var(--solid-ui-clickable-area,42px);box-sizing:border-box;width:100%;min-width:0;max-width:100%;line-height:var(--line-height-base,1.5);display:block}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob::-webkit-date-and-time-value{text-align:center;width:100%;min-width:0;max-width:100%;overflow:hidden}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob::-webkit-datetime-edit{text-align:center;width:100%;min-width:0;max-width:100%;overflow:hidden}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob::-webkit-datetime-edit-fields-wrapper{text-align:center;width:100%;min-width:0;max-width:100%;overflow:hidden}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob::-webkit-date-and-time-value{text-align:center;white-space:nowrap}@media (hover:none) and (pointer:coarse){html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob{height:var(--solid-ui-clickable-area,42px);min-height:var(--solid-ui-clickable-area,42px);max-height:var(--solid-ui-clickable-area,42px);line-height:calc(var(--solid-ui-clickable-area,42px) - 2px);width:calc(100% - 24px);max-width:calc(100% - 24px);padding-block:0}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob::-webkit-date-and-time-value{line-height:calc(var(--solid-ui-clickable-area,42px) - 2px)}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob::-webkit-datetime-edit{line-height:calc(var(--solid-ui-clickable-area,42px) - 2px)}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob::-webkit-datetime-edit-fields-wrapper{line-height:calc(var(--solid-ui-clickable-area,42px) - 2px)}html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog--heading .profile-edit-dialog__input--dob::-webkit-calendar-picker-indicator{margin:0;padding:0}}html[data-layout=mobile] .profile__edit-form{--profile-edit-dialog-mobile-image-button-font-size:var(--solid-ui-font-size-md,1rem);--profile-edit-dialog-mobile-image-label-font-size:var(--solid-ui-font-size-sm,.875rem);--profile-edit-dialog-mobile-image-description-font-size:.625rem}html[data-layout=mobile] #profile-modal .modal label.profile-edit-dialog__field,html[data-layout=mobile] #profile-modal .modal label.profile-edit-dialog__field-type,html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog__field>.label,html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog__field-type>.label,html[data-layout=mobile] #profile-modal .modal .profile-edit-dialog__field-description{font-size:var(--solid-ui-font-size-sm,.875rem);line-height:1.5}html[data-layout=mobile] .profile-edit-dialog__field input,html[data-layout=mobile] .profile-edit-dialog__field-type input{font-size:var(--solid-ui-font-size-md,1rem)}html[data-layout=mobile] .profile-edit-dialog__field-type--contact-point{flex:auto;width:100%;max-width:100%}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--contact-point{flex-direction:row;align-items:stretch}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--contact-point.profile-edit-dialog__row--equal>.profile-edit-dialog__field-type.profile-edit-dialog__field-type--contact-point{flex:0 0 103px;width:103px;min-width:103px;max-width:103px}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo{flex-flow:row;align-items:center;gap:12px;width:100%;max-width:100%}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo>header{flex:none;margin-bottom:0}html[data-layout=mobile] .profile-edit-dialog--heading{--profile-edit-dialog-avatar-size:5rem}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero-alt{padding:0}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__image-frame--fallback .profile__hero-alt{justify-content:center;align-items:center;display:flex}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview{flex:auto;gap:5px;width:100%;min-width:0}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-label{font-size:var(--profile-edit-dialog-mobile-image-label-font-size);line-height:1.25}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-description{font-size:var(--profile-edit-dialog-mobile-image-description-font-size);line-height:1.4}html[data-layout=mobile] .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-actions{grid-template-columns:repeat(2,max-content);justify-content:start;align-items:stretch;gap:8px;width:100%;display:grid}@media (width<=576px){.profile-edit-dialog__row{flex-direction:column;align-items:stretch;max-width:100%}.profile__edit-form{--profile-edit-dialog-mobile-image-button-font-size:var(--solid-ui-font-size-md,1rem);--profile-edit-dialog-mobile-image-label-font-size:var(--solid-ui-font-size-sm,.875rem);--profile-edit-dialog-mobile-image-description-font-size:.625rem}.profile-edit-dialog__row--equal>.profile-edit-dialog__field,.profile-edit-dialog__row--equal>.profile-edit-dialog__field-type,.profile-edit-dialog__field-type{flex:auto}.profile-edit-dialog__field input,.profile-edit-dialog__field-type input{font-size:var(--solid-ui-font-size-sm,.875rem)}.profile-edit-dialog__field-type--contact-point{flex:auto;width:100%;max-width:100%}.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point{flex-direction:row;align-items:stretch}.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point.profile-edit-dialog__row--equal>.profile-edit-dialog__field-type.profile-edit-dialog__field-type--contact-point{flex:0 0 103px;width:103px;min-width:103px;max-width:103px}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo{flex-flow:row;align-items:center;gap:12px;width:100%;max-width:100%}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo>header{flex:none;margin-bottom:0}.profile__edit-form.profile-edit-dialog--heading{--profile-edit-dialog-avatar-size:5rem}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero-alt{padding:0}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__image-frame--fallback .profile__hero-alt{justify-content:center;align-items:center;display:flex}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview{flex:auto;gap:5px;width:100%;min-width:0}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-label{font-size:var(--profile-edit-dialog-mobile-image-label-font-size);line-height:var(--line-height-tight,1.25)}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-description{font-size:var(--profile-edit-dialog-mobile-image-description-font-size);line-height:var(--line-height-base,1.4)}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-actions{grid-template-columns:repeat(2,max-content);justify-content:start;align-items:stretch;gap:8px;width:100%;display:grid}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-button{width:auto;min-width:0}}.profile__edit-form{--profile-edit-dialog-row-max-width:544px;--profile-edit-dialog-muted-text:var(--solid-ui-color-gray-600,#4a5565);--profile-edit-dialog-quiet-text:var(--solid-ui-color-gray-700,#364153);--profile-edit-dialog-mobile-image-button-font-size:.75rem;--profile-edit-dialog-mobile-image-label-font-size:var(--solid-ui-font-size-sm,.875rem);--profile-edit-dialog-mobile-image-description-font-size:.625rem;--profile-edit-dialog-mobile-image-button-padding:6.6px 12px 7px 14px;width:100%}.profile-edit-dialog__section,.profile-edit-dialog__section--education{flex-direction:column;gap:12px;display:flex}.profile-edit{flex-direction:column;gap:25px;display:flex}.profile-edit-dialog__section h4{margin:0}.profile-edit-dialog__section fieldset{width:100%;border:0;gap:15px;min-inline-size:0;margin:0;padding:0;display:grid}.profile-edit-dialog__field-description{color:var(--profile-edit-dialog-muted-text);font-size:var(--solid-ui-font-size-sm,.875rem);font-weight:400;line-height:1.5}.profile-edit-dialog__row{max-width:var(--profile-edit-dialog-row-max-width);align-items:flex-start;gap:15px;display:flex}.profile-edit-dialog__row--heading-photo{gap:10px}.profile-edit-dialog__row--full{width:100%;max-width:100%}.profile-edit-dialog__field,.profile-edit-dialog__field-type{margin:0;display:block}.profile-edit-dialog__field-type{width:100%}.profile-edit-dialog__field{min-width:0}.profile-edit-dialog__field--stack{display:grid}.profile-edit-dialog__field--stack>small{text-align:right;justify-self:end;width:100%;display:block}.profile-edit-dialog__field--full{width:100%;max-width:100%!important}.profile-edit-dialog__field--row-width{width:100%;max-width:544px}.profile-edit-dialog__login-message{font-size:var(--solid-ui-font-size-xs,.75rem);color:var(--solid-ui-color-error,#b00020);margin:0}.profile-edit-dialog__section+.profile-edit-dialog__login-message,.profile__edit-form--projects .profile-edit-dialog__login-message{margin-top:15px}.profile-edit-dialog__actions{flex:none;justify-content:flex-end;align-items:center;display:flex}.profile-edit-dialog__actions--edge{margin-left:auto}.profile-edit-dialog__input-wrap{width:100%;position:relative}.profile-edit-dialog__input--with-action{box-sizing:border-box;width:100%;padding-right:120px}.profile-edit-dialog__image-preview{display:grid}.profile-edit-dialog__image-preview-header{margin-bottom:0}.profile-edit-dialog__image-preview-actions{align-items:center;gap:12px;display:flex}.profile-edit-dialog__image-preview-label{color:var(--gray-900,#101828);font-size:var(--solid-ui-font-size-sm,.875rem);font-weight:600}.profile-edit-dialog__image-preview-description{color:var(--solid-ui-color-gray-600,#4a5565);font-size:var(--solid-ui-font-size-sm,.875rem);font-weight:400}.profile-edit-dialog__image-preview-label,.profile-edit-dialog__image-preview-description{margin:0}.profile-edit-dialog--heading{--profile-edit-dialog-avatar-size:5.625rem}.profile-edit-dialog__image-frame{width:var(--profile-edit-dialog-avatar-size,5.625rem);height:var(--profile-edit-dialog-avatar-size,5.625rem);vertical-align:top;font-size:0;line-height:0;display:inline-block;position:relative;overflow:visible}.profile-edit-dialog__image-frame>solid-ui-photo-capture{pointer-events:none;display:block;position:absolute;inset:0}.profile-edit-dialog__image-frame>solid-ui-photo-capture>*{pointer-events:auto}.profile__image-frame{width:var(--profile-edit-dialog-avatar-size,5.625rem);height:var(--profile-edit-dialog-avatar-size,5.625rem);border:1px solid var(--solid-ui-color-primary,#7c4dff);background:var(--solid-ui-color-slate-50,#f8fafc);box-sizing:border-box;border-radius:10px;margin:0;padding:0;display:block;position:relative;overflow:hidden}.profile__image-frame--fallback{border:1px dashed var(--solid-ui-color-slate-200,#e2e8f0);background:var(--solid-ui-color-slate-50,#f8fafc)}.profile__hero,.profile__hero-alt{box-sizing:border-box;border-radius:10px;width:100%;height:100%;display:block}.profile__hero{object-fit:cover;object-position:center;background:var(--color-surface-placeholder,var(--gray-300,#d1d5dc)) 50% / cover no-repeat}.profile__hero-alt{background:var(--solid-ui-color-slate-50,#f8fafc);justify-content:center;align-items:center;display:none}.profile__image-frame--fallback .profile__hero-alt{display:flex}.profile__hero-icon{box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:100%;padding:1.125rem;display:flex}.profile__hero-icon icon-lucide-circle-user-round,.profile__hero-alt icon-lucide-circle-user-round{color:#d9e1f2;width:1.75rem;height:1.75rem;display:block}.profile-edit-dialog__image-camera-button{z-index:1;border:1px solid var(--solid-ui-color-slate-200,#e2e8f0);background:var(--solid-ui-color-white,#fff);width:1.75rem;min-width:1.75rem;height:1.75rem;min-height:1.75rem;color:var(--solid-ui-color-gray-700,#364153);cursor:pointer;box-sizing:border-box;border-radius:7px;justify-content:center;align-items:center;padding:0;line-height:0;transition:none;display:inline-flex;position:absolute;bottom:5px;right:5px;box-shadow:0 2px 6px #0f172a1f}.profile-edit-dialog__image-camera-button:hover,.profile-edit-dialog__image-camera-button:focus-visible,.profile-edit-dialog__image-camera-button:active{border-color:var(--solid-ui-color-slate-200,#e2e8f0);background:color-mix(in srgb, var(--solid-ui-color-primary,#7c4dff) 12%, #fff);width:1.75rem;min-width:1.75rem;height:1.75rem;min-height:1.75rem;color:var(--solid-ui-color-primary,#7c4dff);padding:0;transform:none;box-shadow:0 2px 6px #0f172a1f}.profile-edit-dialog__image-camera-button icon-lucide-camera{vertical-align:middle;flex-shrink:0;width:.875rem;height:.875rem;margin:.05rem;display:block}.profile-edit-dialog__image-camera-capture-row{justify-content:center;width:100%;display:flex}.profile-edit-dialog__image-camera-capture-frame{box-sizing:border-box;border:1px solid var(--solid-color-gray-200,#e5e7eb);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;width:fit-content;max-width:100%;margin:6px auto 12px;padding:10px;display:flex;position:relative}.profile-edit-dialog__image-camera-capture-frame[hidden]{display:none}.profile-edit-dialog__paste-button{white-space:nowrap;z-index:1;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.profile-edit-dialog__paste-icon{width:.875rem;height:.875rem;stroke:var(--solid-ui-color-primary,#7c4dff);fill:var(--solid-ui-color-primary,#7c4dff)}.profile-edit-dialog__paste-icon svg{display:block;transform:translate(1px,1px)}solid-ui-button.profile-edit-dialog__drag-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}solid-ui-button.profile-edit-dialog__drag-handle:active{cursor:grabbing}.profile-edit-dialog__row--drop-target{outline:1px dashed var(--solid-ui-color-gray-400,#99a1af);outline-offset:2px}.profile-edit-dialog__field input,.profile-edit-dialog__field select,.profile-edit-dialog__field-type input,.profile-edit-dialog__field-type select{box-sizing:border-box;width:100%;max-width:100%;min-height:var(--solid-ui-clickable-area,42px);height:var(--solid-ui-clickable-area,42px);border:1px solid var(--solid-ui-color-gray-400,#99a1af);background:var(--solid-ui-color-white,#fff);color:var(--color-text-subheading,var(--gray-900,#101828));font-size:var(--solid-ui-font-size-sm,.875rem);border-radius:5px;margin-block-start:0;padding:10px;font-weight:500}.profile-edit-dialog__field input[type=date],.profile-edit-dialog__field-type input[type=date]{min-width:0}.profile-edit-dialog__field textarea,.profile-edit-dialog__field-type textarea{box-sizing:border-box;width:100%;max-width:100%;min-height:var(--solid-ui-clickable-area,42px)}.profile-edit-dialog__textarea{color:var(--color-text-subheading,var(--gray-900,#101828));font-size:var(--solid-ui-font-size-sm,.875rem);border:1px solid var(--solid-ui-color-gray-400,#99a1af);background:var(--solid-ui-color-white,#fff);resize:vertical;border-radius:5px;height:auto;font-weight:500;line-height:1.6;min-height:160px!important}.profile__edit-form--heading{flex-direction:column;gap:12px;display:flex}.profile-edit-dialog__bio-field-container{width:100%;max-width:var(--profile-edit-dialog-row-max-width);box-sizing:border-box;flex-direction:column;align-items:flex-start;gap:12px;margin:0;padding:0;display:flex}.profile-edit-dialog__row--language{margin-left:0}.profile-edit-dialog__row--language>.profile-edit-dialog__field--language-name{flex:1 1 0;min-width:0}.profile-edit-dialog__field-type--language-proficiency,.profile-edit-dialog__field-type--language-proficiency[hidden]{display:none!important}.profile-edit-dialog__actions--language{margin-left:0}.profile-edit-dialog__row--social{width:100%;max-width:100%;margin-left:-10px}.profile-edit-dialog__field--social-type{flex:0 0 96px;width:96px;max-width:96px}.profile-edit-dialog__field--social-url{flex:auto;min-width:0}.profile-edit-dialog__row--project{width:100%;max-width:100%}.profile-edit-dialog__row--resume-entry-header{border-bottom:1px solid var(--solid-ui-color-gray-400,#99a1af);align-items:center}.profile-edit-dialog__row--resume-entry-header>.profile-edit-dialog__entry-heading{margin:0}.profile-edit-dialog__entry-heading{color:var(--solid-ui-color-gray-700,#364153);font-size:var(--solid-ui-font-size-sm,.875rem);margin:0;font-weight:500}.profile-edit-dialog__section--education .profile-edit-dialog__section-heading{color:var(--solid-ui-color-gray-700,#364153);font-size:var(--solid-ui-font-size-md,1rem);margin:0;font-weight:500}.profile-edit-dialog__row--equal>.profile-edit-dialog__field,.profile-edit-dialog__row--equal>.profile-edit-dialog__field-type{flex:1 1 0;min-width:0}.profile-edit-dialog--heading .profile-edit-dialog__image-camera-capture-row{margin-bottom:-12.5px}.profile-edit-dialog--heading .profile-edit-dialog__image-camera-capture-row:has(>[hidden]){display:none}.profile-edit-dialog--heading .profile-edit-dialog__image-camera-capture-frame{margin-top:3px;margin-bottom:6px}.profile__edit-form--resume .profile-edit-dialog__field,.profile__edit-form--resume .profile-edit-dialog__field-type:not(.hidden),.profile__edit-form--contact-info .profile-edit-dialog__field,.profile__edit-form--contact-info .profile-edit-dialog__field-type:not(.hidden){flex-direction:column;flex:1 0 0;align-items:flex-start;gap:5px;display:flex}.profile__edit-form--resume .profile-edit-dialog__row{width:100%;max-width:100%}.profile__edit-form--resume .profile-edit-dialog__section fieldset>.profile-edit-dialog__field{max-width:100%}.profile__edit-form--resume .profile-edit-dialog__field>input,.profile__edit-form--resume .profile-edit-dialog__field>solid-ui-select,.profile__edit-form--resume .profile-edit-dialog__field>solid-ui-combobox,.profile__edit-form--resume .profile-edit-dialog__field>textarea,.profile__edit-form--resume .profile-edit-dialog__field-type>input,.profile__edit-form--resume .profile-edit-dialog__field-type>solid-ui-select,.profile__edit-form--resume .profile-edit-dialog__field-type>textarea,.profile__edit-form--contact-info .profile-edit-dialog__field>input,.profile__edit-form--contact-info .profile-edit-dialog__field>solid-ui-select,.profile__edit-form--contact-info .profile-edit-dialog__field>textarea,.profile__edit-form--contact-info .profile-edit-dialog__field-type>input,.profile__edit-form--contact-info .profile-edit-dialog__field-type>solid-ui-select,.profile__edit-form--contact-info .profile-edit-dialog__field-type>textarea{align-self:stretch}.profile-edit-dialog__field>solid-ui-combobox,.profile-edit-dialog__field-type>solid-ui-combobox{box-sizing:border-box;align-self:stretch;width:100%;min-width:0;max-width:100%;display:block}.profile__edit-form solid-ui-combobox{background:var(--solid-ui-color-white,#fff);color:var(--color-text-subheading,var(--gray-900,#101828));font-size:var(--solid-ui-font-size-sm,.875rem);font-weight:500;line-height:calc(var(--solid-ui-clickable-area,42px) - 22px);border-radius:5px}.profile-edit-dialog__field--resume-location{flex:1 0 0;width:auto;max-width:none}.profile-edit-dialog__row--resume-dates{width:100%;max-width:100%}.profile-edit-dialog__field--date-group{flex:1 1 0;min-width:0}.profile-edit-dialog__date-pair{align-items:center;gap:15px;width:100%;display:flex}.profile-edit-dialog__date-pair>solid-ui-select{flex:1 1 0;min-width:0}.profile-edit-dialog__resume-date-select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;display:block}.profile-edit-dialog__resume-date-select--disabled{pointer-events:none;opacity:var(--opacity-input-disabled,.75)}.profile-edit-dialog__bio-field-container>small{text-align:right;align-self:flex-end}.profile-edit-dialog--heading .profile-edit-dialog__row,.profile-edit-dialog--heading .profile-edit-dialog__field--row-width{width:100%;max-width:100%}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo{border-bottom:1px solid var(--solid-ui-color-slate-200,#e2e8f0);padding-bottom:20px}.profile-edit-dialog--heading .profile-edit{gap:12.5px}.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero-alt{padding:0}.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point{gap:10px;width:100%;max-width:100%}.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point>.profile-edit-dialog__field{flex:1 1 0;min-width:0}.profile-edit-dialog--heading .profile-edit-dialog__field-type--contact-point{padding-top:calc(var(--solid-ui-font-size-sm,.875rem) * 1.5)}.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point>.profile-edit-dialog__field>.label{width:100%;display:block}.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point.profile-edit-dialog__row--equal>.profile-edit-dialog__field-type.profile-edit-dialog__field-type--contact-point{flex:0 0 103px;width:103px;min-width:103px;max-width:103px}.profile-edit-dialog__row--address-header{max-width:var(--profile-edit-dialog-row-max-width);align-items:flex-end}.profile-edit-dialog__row--inline-end{justify-content:flex-end;max-width:100%}.profile-edit-dialog__checkbox-label{cursor:var(--profile-interactive-cursor,pointer);align-items:center;gap:12px;margin-left:auto;display:inline-flex}.profile-edit-dialog__checkbox-input{width:var(--icon-xxs,1rem);height:var(--icon-xxs,1rem);accent-color:var(--solid-ui-color-primary,#7c4dff);cursor:var(--profile-interactive-cursor,pointer);flex:none;margin:0}.profile-edit-dialog__checkbox-input:focus-visible{outline:var(--focus-indicator-width,2px) solid var(--solid-ui-color-primary,#7c4dff);outline-offset:2px}.profile-edit-dialog__checkbox-input:disabled{opacity:var(--opacity-disabled,.5)}.profile-edit-dialog__section fieldset>.profile-edit-dialog__field{max-width:var(--profile-edit-dialog-row-max-width)}.profile-edit-dialog__field-type--wide{flex:auto;width:100%;min-width:0;max-width:100%}.profile-edit-dialog__field-type--contact-point{flex:none;align-self:flex-start;width:auto;max-width:none}.profile-edit-dialog__social-account-select{box-sizing:border-box;contain:inline-size;width:100%;min-width:0;max-width:100%;display:block}.profile-edit-dialog__resume-organization-type-select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;display:block}.profile-edit-dialog__bio-field-container textarea{box-sizing:border-box;width:100%;max-width:100%;min-height:var(--solid-ui-clickable-area,42px)}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();const e=require("../../ui/dialog2.cjs.js"),t=require("./imagePreview.cjs.js");require("../../texts/dialogTexts.cjs.js");const n=require("../../texts/messageTexts.cjs.js"),r=require("./mutations.cjs.js"),i=require("../shared/phoneCountries.cjs.js"),a=require("../../textUtils.cjs.js"),o=require("../shared/contactTypeUtils.cjs.js"),s=require("../shared/rowState.cjs.js");require("../../../../../_virtual/~icons/lucide/camera.cjs.js");const c=require("../shared/sanitizeUtils.cjs.js"),l=require("./dateHelpers.cjs.js"),u=require("./imageHelpers.cjs.js");require("solid-ui/components/button");let d=require("lit-html");require("solid-ui/components/combobox"),require("solid-ui/components/combobox-option"),require("solid-ui/components/photo-capture");var f=[{label:`Mobile`,value:`Mobile`},{label:`Home`,value:`Home`},{label:`Work`,value:`Work`}],p=[{label:`Personal`,value:`Personal`},{label:`Office`,value:`Office`}],m=[{label:`He/Him`,value:`He/Him`},{label:`She/Her`,value:`She/Her`},{label:`They/Them`,value:`They/Them`}];function h(e){return`value`in e}function g(e){return`streetAddress`in e}function _(e){return`name`in e}function v(e,t){return t.some(t=>t.value===e)?e:t[0]?.value||``}function y(e){return e===`phone`?f:p}function b(e,t){return{...e,type:v(e.type||``,y(t))}}function x(e){return h(e)?a.hasNonEmptyText(e.value):g(e)?[e.streetAddress,e.locality,e.region,e.postalCode,e.countryName].some(a.hasNonEmptyText):_(e)?[e.name,e.nickname,e.imageSrc,e.location,e.pronouns,e.dateOfBirth].some(a.hasNonEmptyText):!1}function S(e){let t=a.sanitizeTextValue(e||``).toLowerCase().replace(/\s+/g,``);return t?t===`he`||t===`he/him`?`He/Him`:t===`she`||t===`she/her`?`She/Her`:t===`they`||t===`they/them`?`They/Them`:e||``:``}function C(e){let t={name:a.sanitizeTextValue(a.toText(e.name)),nickname:a.sanitizeTextValue(a.toText(e.nickname||``)),imageSrc:a.sanitizeTextValue(a.toText(e.imageSrc||``)),location:a.sanitizeTextValue(a.toText(e.location||``)),pronouns:S(a.toText(e.pronouns||``)),dateOfBirth:a.sanitizeTextValue(a.toText(e.dateOfBirth||``)),entryNode:a.toText(e.entryNode),status:a.toText(e.entryNode)?`existing`:`new`},n=e.primaryEmail,r=e.primaryPhone,i=e.primaryAddress,s=!o.normalizeEmailTypeForEdit(n?.type),l=!o.normalizePhoneTypeForEdit(r?.type),u=o.normalizeEmailTypeForEdit(n?.type),d=o.normalizePhoneTypeForEdit(r?.type),f={value:c.sanitizeEmailValue(a.toText(n?.valueNode).replace(/^mailto:/i,``)),type:u,entryNode:a.toText(n?.entryNode),status:a.toText(n?.entryNode)?`existing`:`new`},p={value:a.sanitizeTextValue(a.toText(r?.valueNode||r?.entryNode||``).replace(/^tel:/i,``)),type:d,entryNode:a.toText(r?.entryNode||``),status:a.toText(r?.entryNode||``)?`existing`:`new`},m={streetAddress:c.sanitizeAddressFieldValue(a.toText(i?.streetAddress)),locality:c.sanitizeAddressFieldValue(a.toText(i?.locality)),region:c.sanitizeAddressFieldValue(a.toText(i?.region)),postalCode:c.sanitizeAddressFieldValue(a.toText(i?.postalCode)),countryName:c.sanitizeAddressFieldValue(a.toText(i?.countryName)),type:a.toTypeLabel(i?.type),entryNode:a.toText(i?.entryNode),status:a.toText(i?.entryNode)?`existing`:`new`};return{basicInfo:t||{name:``,nickname:``,imageSrc:``,location:``,pronouns:``,dateOfBirth:``,entryNode:``,status:`new`},email:f||{value:``,type:``,entryNode:``,status:`new`},phone:p||{value:``,type:``,entryNode:``,status:`new`},address:m||{streetAddress:``,locality:``,region:``,postalCode:``,countryName:``,type:``,entryNode:``,status:`new`},emailTypeWasMissing:s,phoneTypeWasMissing:l,imagePreviewSrc:``,clearImagePreview:()=>void 0}}function w(e,t){if(e.clearImagePreview(),typeof URL.createObjectURL!=`function`){e.imagePreviewSrc=``,e.clearImagePreview=()=>void 0;return}let n=URL.createObjectURL(t);e.imagePreviewSrc=n,e.clearImagePreview=()=>{URL.revokeObjectURL(n),e.imagePreviewSrc=``,e.clearImagePreview=()=>void 0}}function T(e,t){e.clearImagePreview(),t&&(e.imagePreviewSrc=t,e.clearImagePreview=()=>{e.imagePreviewSrc=``,e.clearImagePreview=()=>void 0})}function E(e){let t=e=>({...b(e,`email`),type:o.toSavedHeadingEmailType(b(e,`email`).type)});return{create:e.create.map(t),update:e.update.map(t),remove:e.remove.map(t)}}function D(e){let t=e=>({...b(e,`phone`),type:o.toSavedHeadingPhoneType(b(e,`phone`).type)});return{create:e.create.map(t),update:e.update.map(t),remove:e.remove.map(t)}}function O(e,t,n){let r=s.summarizeRowOps([e],x);return n&&e.entryNode&&e.status===`existing`&&x(e)&&r.create.length===0&&r.update.length===0&&r.remove.length===0?{create:r.create,update:[b({...e,status:`modified`},t)],remove:r.remove}:r}function k({phone:e}){let t=`Mobile Number`,n=`Phone Type 1`,r=`phone-value`,a=i.splitPhoneValue(e?.value||``),o=a.dialCode;return d.html`
|
|
2
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--contact-point">
|
|
3
|
+
<div class="profile-edit-dialog__field">
|
|
4
|
+
<label aria-label=${t} class="label">
|
|
5
|
+
${t}
|
|
6
|
+
<input
|
|
7
|
+
class="input"
|
|
8
|
+
type="tel"
|
|
9
|
+
name=${r}
|
|
10
|
+
.value=${a.localNumber}
|
|
11
|
+
required
|
|
12
|
+
data-contact-field="value"
|
|
13
|
+
data-entry-node=${e?.entryNode||``}
|
|
14
|
+
data-row-status=${e?.status||`n/a`}
|
|
15
|
+
placeholder=${t}
|
|
16
|
+
autocomplete="tel-national"
|
|
17
|
+
inputmode="tel"
|
|
18
|
+
@input=${t=>{let n=t.target,r=c.sanitizePhoneLocalValue(n.value);e&&s.applyRowFieldChange(e,`value`,i.combinePhoneValue(o,r),x)}}
|
|
19
|
+
/>
|
|
20
|
+
</label>
|
|
21
|
+
</div>
|
|
22
|
+
<label aria-label=${n} class="label profile-edit-dialog__field-type profile-edit-dialog__field-type--contact-point">
|
|
23
|
+
<solid-ui-combobox
|
|
24
|
+
select-only
|
|
25
|
+
class="profile-edit-dialog__type-select"
|
|
26
|
+
id=${`phone-type-select-${r}`}
|
|
27
|
+
aria-label=${n}
|
|
28
|
+
.value=${v(e?.type||``,f)}
|
|
29
|
+
@change=${t=>{let n=t;if(!n.detail.option)return;let r=String(n.detail.option.value);e&&s.applyRowSelectChange(e,`type`,r)}}
|
|
30
|
+
>
|
|
31
|
+
${f.map(e=>d.html`<solid-ui-combobox-option value=${e.value}>${e.label}</solid-ui-combobox-option>`)}
|
|
32
|
+
</solid-ui-combobox>
|
|
33
|
+
</label>
|
|
34
|
+
</div>
|
|
35
|
+
`}function A({email:e}){let t=`Email`,n=`Email Type`,r=`email-value`;return d.html`
|
|
36
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--contact-point">
|
|
37
|
+
<label aria-label=${t} class="label profile-edit-dialog__field">
|
|
38
|
+
${t}
|
|
39
|
+
<input
|
|
40
|
+
class="input"
|
|
41
|
+
type="email"
|
|
42
|
+
name=${r}
|
|
43
|
+
.value=${e?.value||``}
|
|
44
|
+
required
|
|
45
|
+
data-contact-field="value"
|
|
46
|
+
data-entry-node=${e?.entryNode||``}
|
|
47
|
+
data-row-status=${e?.status||`n/a`}
|
|
48
|
+
placeholder="Email Address"
|
|
49
|
+
autocomplete="email"
|
|
50
|
+
inputmode="email"
|
|
51
|
+
@input=${t=>{let n=t.target,r=c.sanitizeEmailValue(n.value);e&&s.applyRowFieldChange(e,`value`,r,x)}}
|
|
52
|
+
/>
|
|
53
|
+
</label>
|
|
54
|
+
<label aria-label=${n} class="label profile-edit-dialog__field-type profile-edit-dialog__field-type--contact-point">
|
|
55
|
+
<solid-ui-combobox
|
|
56
|
+
select-only
|
|
57
|
+
class="profile-edit-dialog__type-select"
|
|
58
|
+
id=${`email-type-select-${r}`}
|
|
59
|
+
aria-label=${n}
|
|
60
|
+
.value=${v(e?.type||``,p)}
|
|
61
|
+
@change=${t=>{let n=t;if(!n.detail.option)return;let r=String(n.detail.option.value);e&&s.applyRowSelectChange(e,`type`,r)}}
|
|
62
|
+
>
|
|
63
|
+
${p.map(e=>d.html`<solid-ui-combobox-option value=${e.value}>${e.label}</solid-ui-combobox-option>`)}
|
|
64
|
+
</solid-ui-combobox>
|
|
65
|
+
</label>
|
|
66
|
+
</div>
|
|
67
|
+
`}function j({address:e}){let t=`Address`,n=t=>n=>{let r=n.target,i=c.sanitizeAddressFieldValue(r.value);e&&s.applyRowFieldChange(e,t,i,x)};return d.html`
|
|
68
|
+
<label aria-label=${`${t} Street`} class="label profile-edit-dialog__field profile-edit-dialog__field--row-width">
|
|
69
|
+
Street Address
|
|
70
|
+
<input
|
|
71
|
+
class="input"
|
|
72
|
+
type="text"
|
|
73
|
+
name=${`address-street`}
|
|
74
|
+
.value=${e?.streetAddress||``}
|
|
75
|
+
required
|
|
76
|
+
data-contact-field="streetAddress"
|
|
77
|
+
data-entry-node=${e?.entryNode||``}
|
|
78
|
+
data-row-status=${e?.status||`n/a`}
|
|
79
|
+
placeholder="Street Address"
|
|
80
|
+
autocomplete="street-address"
|
|
81
|
+
inputmode="text"
|
|
82
|
+
@change=${n(`streetAddress`)}
|
|
83
|
+
/>
|
|
84
|
+
</label>
|
|
85
|
+
|
|
86
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--full">
|
|
87
|
+
<label aria-label=${`${t} Locality`} class="label profile-edit-dialog__field">
|
|
88
|
+
Locality
|
|
89
|
+
<input
|
|
90
|
+
class="input"
|
|
91
|
+
type="text"
|
|
92
|
+
name=${`address-locality`}
|
|
93
|
+
.value=${e?.locality||``}
|
|
94
|
+
data-contact-field="locality"
|
|
95
|
+
data-entry-node=${e?.entryNode||``}
|
|
96
|
+
data-row-status=${e?.status||`n/a`}
|
|
97
|
+
placeholder="City / Locality"
|
|
98
|
+
autocomplete="address-level2"
|
|
99
|
+
inputmode="text"
|
|
100
|
+
@change=${n(`locality`)}
|
|
101
|
+
/>
|
|
102
|
+
</label>
|
|
103
|
+
<label aria-label=${`${t} Postal Code`} class="label profile-edit-dialog__field">
|
|
104
|
+
Postal Code
|
|
105
|
+
<input
|
|
106
|
+
class="input"
|
|
107
|
+
type="text"
|
|
108
|
+
name=${`address-postal`}
|
|
109
|
+
.value=${e?.postalCode||``}
|
|
110
|
+
data-contact-field="postalCode"
|
|
111
|
+
data-entry-node=${e?.entryNode||``}
|
|
112
|
+
data-row-status=${e?.status||`n/a`}
|
|
113
|
+
placeholder="Postal Code"
|
|
114
|
+
autocomplete="postal-code"
|
|
115
|
+
inputmode="text"
|
|
116
|
+
@change=${n(`postalCode`)}
|
|
117
|
+
/>
|
|
118
|
+
</label>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--full">
|
|
122
|
+
<label aria-label=${`${t} Region`} class="label profile-edit-dialog__field">
|
|
123
|
+
Region
|
|
124
|
+
<input
|
|
125
|
+
class="input"
|
|
126
|
+
type="text"
|
|
127
|
+
name=${`address-region`}
|
|
128
|
+
.value=${e?.region||``}
|
|
129
|
+
data-contact-field="region"
|
|
130
|
+
data-entry-node=${e?.entryNode||``}
|
|
131
|
+
data-row-status=${e?.status||`n/a`}
|
|
132
|
+
placeholder="State / Region"
|
|
133
|
+
inputmode="text"
|
|
134
|
+
@change=${n(`region`)}
|
|
135
|
+
/>
|
|
136
|
+
</label>
|
|
137
|
+
<label aria-label=${`${t} Country`} class="label profile-edit-dialog__field">
|
|
138
|
+
Country
|
|
139
|
+
<input
|
|
140
|
+
class="input"
|
|
141
|
+
type="text"
|
|
142
|
+
name=${`address-country`}
|
|
143
|
+
.value=${e?.countryName||``}
|
|
144
|
+
data-contact-field="countryName"
|
|
145
|
+
data-entry-node=${e?.entryNode||``}
|
|
146
|
+
data-row-status=${e?.status||`n/a`}
|
|
147
|
+
placeholder="Country"
|
|
148
|
+
autocomplete="country-name"
|
|
149
|
+
inputmode="text"
|
|
150
|
+
@change=${n(`countryName`)}
|
|
151
|
+
/>
|
|
152
|
+
</label>
|
|
153
|
+
</div>
|
|
154
|
+
`}function M(e,n){let{basicInfo:r,phone:i,email:a,imagePreviewSrc:o}=e,u=`Full Name`,f=`Nickname`,p=`Pronouns`,h=e=>t=>{let n=t.target,i=c.sanitizeBasicInputFieldValue(n.value);r&&s.applyRowFieldChange(r,e,i,x)};return d.html`
|
|
155
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--heading-photo">
|
|
156
|
+
<header class="profile-edit-dialog__image-preview-header" aria-label="Profile Image">
|
|
157
|
+
<div class="profile-edit-dialog__image-frame">
|
|
158
|
+
${t.Image(o||r.imageSrc,r.name)}
|
|
159
|
+
<solid-ui-photo-capture
|
|
160
|
+
capture-label="Take Photo"
|
|
161
|
+
confirm-label="Use Photo"
|
|
162
|
+
retake-label="Retake"
|
|
163
|
+
cancel-label="Close camera"
|
|
164
|
+
file-name-prefix="camera"
|
|
165
|
+
facing-mode="user"
|
|
166
|
+
@input=${async t=>{let i=t.target.value;if(i&&r)try{e.pendingImageFile=i,w(e,i),r.status=r.entryNode?`modified`:`new`,n()}catch(e){console.error(`Profile camera upload failed`,e)}}}
|
|
167
|
+
>
|
|
168
|
+
<button
|
|
169
|
+
slot="trigger"
|
|
170
|
+
type="button"
|
|
171
|
+
class="profile-edit-dialog__image-camera-button"
|
|
172
|
+
aria-label="Take a photo"
|
|
173
|
+
title="Take a photo"
|
|
174
|
+
>
|
|
175
|
+
<icon-lucide-camera aria-hidden="true"></icon-lucide-camera>
|
|
176
|
+
</button>
|
|
177
|
+
</solid-ui-photo-capture>
|
|
178
|
+
</div>
|
|
179
|
+
</header>
|
|
180
|
+
|
|
181
|
+
<div class="profile-edit-dialog__image-preview" aria-label="Profile Photo Preview">
|
|
182
|
+
<p class="profile-edit-dialog__image-preview-label">${`Profile Photo`}</p>
|
|
183
|
+
<p class="profile-edit-dialog__image-preview-description">${`Recommended: Square JPG, PNG. Max 2MB.`}</p>
|
|
184
|
+
|
|
185
|
+
<div class="profile-edit-dialog__image-preview-actions">
|
|
186
|
+
<solid-ui-button
|
|
187
|
+
variant="secondary"
|
|
188
|
+
class="profile-edit-dialog__image-button profile-edit-dialog__image-upload-button"
|
|
189
|
+
aria-label="Upload new profile photo"
|
|
190
|
+
title="Upload"
|
|
191
|
+
@click=${async t=>{let i=t.currentTarget?.ownerDocument||document,a=i.createElement(`input`);a.type=`file`,a.accept=`image/*`,a.hidden=!0;let o=()=>{a.remove()};a.addEventListener(`change`,async()=>{let t=a.files?.[0];if(o(),t&&r)try{e.pendingImageFile=t,w(e,t),r.status=r.entryNode?`modified`:`new`,n()}catch(e){console.error(`Profile image upload failed`,e)}},{once:!0}),i.body.appendChild(a),a.click()}}
|
|
192
|
+
>
|
|
193
|
+
Upload
|
|
194
|
+
</solid-ui-button>
|
|
195
|
+
<solid-ui-button
|
|
196
|
+
variant="secondary"
|
|
197
|
+
class="profile-edit-dialog__image-button profile-edit-dialog__image-remove-button"
|
|
198
|
+
aria-label="Delete profile photo"
|
|
199
|
+
title="Remove"
|
|
200
|
+
@click=${async()=>{r&&(e.pendingImageFile=null,e.clearImagePreview(),s.applyRowFieldChange(r,`imageSrc`,``,x),n())}}
|
|
201
|
+
>
|
|
202
|
+
Remove
|
|
203
|
+
</solid-ui-button>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
<div class="profile-edit-dialog__image-camera-capture-row">
|
|
208
|
+
<div class="profile-edit-dialog__image-camera-capture-frame" hidden></div>
|
|
209
|
+
</div>
|
|
210
|
+
<div class="profile-edit">
|
|
211
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal">
|
|
212
|
+
<label aria-label=${u} class="label profile-edit-dialog__field">
|
|
213
|
+
${u}
|
|
214
|
+
<input
|
|
215
|
+
class="input"
|
|
216
|
+
type="text"
|
|
217
|
+
name="name"
|
|
218
|
+
.value=${r?.name||``}
|
|
219
|
+
required
|
|
220
|
+
data-contact-field="name"
|
|
221
|
+
data-entry-node=${r?.entryNode||``}
|
|
222
|
+
data-row-status=${r?.status||`n/a`}
|
|
223
|
+
placeholder="Full Name"
|
|
224
|
+
autocomplete="name"
|
|
225
|
+
inputmode="text"
|
|
226
|
+
@change=${h(`name`)}
|
|
227
|
+
/>
|
|
228
|
+
</label>
|
|
229
|
+
<label aria-label=${f} class="label profile-edit-dialog__field">
|
|
230
|
+
${f}
|
|
231
|
+
<input
|
|
232
|
+
class="input"
|
|
233
|
+
type="text"
|
|
234
|
+
name="nickname"
|
|
235
|
+
.value=${r?.nickname||``}
|
|
236
|
+
data-contact-field="nickname"
|
|
237
|
+
data-entry-node=${r?.entryNode||``}
|
|
238
|
+
data-row-status=${r?.status||`n/a`}
|
|
239
|
+
placeholder="Nickname"
|
|
240
|
+
autocomplete="nickname"
|
|
241
|
+
inputmode="text"
|
|
242
|
+
@change=${h(`nickname`)}
|
|
243
|
+
/>
|
|
244
|
+
</label>
|
|
245
|
+
</div>
|
|
246
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--heading-dob">
|
|
247
|
+
<div class="profile-edit-dialog__field-type profile-edit-dialog__field--stack">
|
|
248
|
+
<label aria-label=${p} class="label">
|
|
249
|
+
${p}
|
|
250
|
+
</label>
|
|
251
|
+
<solid-ui-combobox
|
|
252
|
+
select-only
|
|
253
|
+
class="profile-edit-dialog__type-select"
|
|
254
|
+
name="pronouns"
|
|
255
|
+
data-heading-basic-field="pronouns"
|
|
256
|
+
aria-label=${p}
|
|
257
|
+
.value=${S(r?.pronouns||``)}
|
|
258
|
+
@change=${e=>{let t=e;if(!t.detail.option)return;let n=S(String(t.detail.option.value));r&&s.applyRowFieldChange(r,`pronouns`,n,x)}}
|
|
259
|
+
>
|
|
260
|
+
${m.map(e=>d.html`<solid-ui-combobox-option value=${e.value}>${e.label}</solid-ui-combobox-option>`)}
|
|
261
|
+
</solid-ui-combobox>
|
|
262
|
+
</div>
|
|
263
|
+
<div class="profile-edit-dialog__field profile-edit-dialog__field--stack">
|
|
264
|
+
<label aria-label=${`DOB`} class="label">
|
|
265
|
+
${`DOB`}
|
|
266
|
+
</label>
|
|
267
|
+
<input
|
|
268
|
+
class="input profile-edit-dialog__input--dob"
|
|
269
|
+
type="date"
|
|
270
|
+
name="dateOfBirth"
|
|
271
|
+
.value=${l.toStorageDateISO(r?.dateOfBirth||``)}
|
|
272
|
+
data-contact-field="dateOfBirth"
|
|
273
|
+
data-entry-node=${r?.entryNode||``}
|
|
274
|
+
data-row-status=${r?.status||`n/a`}
|
|
275
|
+
autocomplete="off"
|
|
276
|
+
data-lpignore="true"
|
|
277
|
+
data-1p-ignore="true"
|
|
278
|
+
data-bwignore="true"
|
|
279
|
+
@change=${e=>{let t=e.target,n=c.sanitizeBasicInputFieldValue(t.value);r&&s.applyRowFieldChange(r,`dateOfBirth`,l.toStorageDateISO(n),x)}}
|
|
280
|
+
/>
|
|
281
|
+
</div>
|
|
282
|
+
</div>
|
|
283
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal">
|
|
284
|
+
<div class="profile-edit-dialog__field profile-edit-dialog__field--full">
|
|
285
|
+
${k({phone:i})}
|
|
286
|
+
</div>
|
|
287
|
+
<div class="profile-edit-dialog__field profile-edit-dialog__field--full">
|
|
288
|
+
${A({email:a})}
|
|
289
|
+
</div>
|
|
290
|
+
</div>
|
|
291
|
+
</div>
|
|
292
|
+
`}function N(e,t,r){(0,d.render)(d.html`
|
|
293
|
+
${M(t,()=>N(e,t,r))}
|
|
294
|
+
${j({address:t.address})}
|
|
295
|
+
${r===`owner`?null:d.html`<p class="profile-edit-dialog__login-message">${n.ownerLoginRequiredDialogMessageText}</p>`}
|
|
296
|
+
`,e)}function P(e,t){let n=document.createElement(`form`);n.classList.add(`profile__edit-form`,`profile__edit-form--heading`,`profile-edit-dialog--heading`),n.autocomplete=`off`,n.setAttribute(`data-lpignore`,`true`),n.setAttribute(`data-1p-ignore`,`true`),n.setAttribute(`data-bwignore`,`true`);let r=C(e);return N(n,r,t),{form:n,formState:r}}function F(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function I(e){return/^\d+$/.test(e)}function L(e){if(!a.hasNonEmptyText(e.basicInfo.name))return`Full Name is required.`;let{localNumber:t}=i.splitPhoneValue(e.phone?.value||``);return x(e.phone)&&!I(t)?`Phone Number 1 should contain only numbers.`:x(e.email)&&!F(e.email?.value||``)?`Email address must be a valid email address.`:null}async function R(t,n,i,o,c,l){let d=document,f=a.sanitizeTextValue(a.toText(o.imageSrc||``)),{form:p,formState:m}=P(o,c);if(m.basicInfo.imageSrc){let e=await u.resolvePhotoDisplaySrc(n,m.basicInfo.imageSrc);e&&e!==m.basicInfo.imageSrc&&(T(m,e),N(p,m,c))}await e.openInputDialog({title:`Edit Heading`,dom:d,form:p,headerAction:{type:`none`},submitLabel:`Save Changes`,cancelLabel:`Cancel`,shouldCloseWithoutSave:()=>{let e=s.summarizeRowOps([m.basicInfo],x),t=O(m.phone,`phone`,m.phoneTypeWasMissing),n=O(m.email,`email`,m.emailTypeWasMissing),r=s.summarizeRowOps([m.address],x);return e.create.length===0&&e.update.length===0&&e.remove.length===0&&t.create.length===0&&t.update.length===0&&t.remove.length===0&&n.create.length===0&&n.update.length===0&&n.remove.length===0&&r.create.length===0&&r.update.length===0&&r.remove.length===0},validate:()=>c===`owner`?L(m):`You need to log in as the profile owner to save contact updates.`,onSave:async()=>{if(m.pendingImageFile){let e=await u.uploadPhotoFile(n,i,m.pendingImageFile);s.applyRowFieldChange(m.basicInfo,`imageSrc`,e,x)}let e=O(m.phone,`phone`,m.phoneTypeWasMissing),t=O(m.email,`email`,m.emailTypeWasMissing),o={basicOps:s.summarizeRowOps([m.basicInfo],x),phoneOps:D(e),emailOps:E(t),addressOps:s.summarizeRowOps([m.address],x)};await r.processHeadingMutations(n,i,o);let c=a.sanitizeTextValue(m.basicInfo.imageSrc||``);if(f&&f!==c)try{u.invalidateResolvedPhotoDisplaySrc(f)}catch(e){console.warn(`Failed to invalidate resolved photo cache`,e)}},formatSaveError:e=>e instanceof Error?e.message:`Unable to save your heading information.`})&&l&&await l()}exports.createHeadingEditDialog=R;
|
|
297
|
+
//# sourceMappingURL=HeadingEditDialog.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingEditDialog.cjs.js","names":["openInputDialog","html","render","Image","processHeadingMutations","combinePhoneValue","splitPhoneValue","normalizeEmailTypeForEdit","normalizePhoneTypeForEdit","toSavedHeadingEmailType","toSavedHeadingPhoneType","applyRowFieldChange","applyRowSelectChange","summarizeRowOps","hasNonEmptyText","sanitizeTextValue","toText","toTypeLabel","dialogCancelLabelText","dialogSubmitLabelText","editHeadingDialogTitleText","ownerLoginRequiredDialogMessageText","saveHeadingUpdatesFailedMessageText","sanitizeAddressFieldValue","sanitizeBasicInputFieldValue","sanitizeEmailValue","sanitizePhoneLocalValue","toStorageDateISO","invalidateResolvedPhotoDisplaySrc","resolvePhotoDisplaySrc","uploadPhotoFile","HEADING_PHONE_TYPE_OPTIONS","label","value","HEADING_EMAIL_TYPE_OPTIONS","HEADING_PRONOUN_OPTIONS","isContactPointRow","row","isAddressRow","isProfileBasicRow","normalizeHeadingContactTypeValue","options","some","option","getHeadingContactTypeOptions","kind","withDefaultHeadingContactType","type","rowHasContent","streetAddress","locality","region","postalCode","countryName","name","nickname","imageSrc","location","pronouns","dateOfBirth","normalizePronounsValue","normalized","toLowerCase","replace","toFormState","profileData","basicInfo","entryNode","status","primaryEmail","primaryPhone","primaryAddress","emailTypeWasMissing","phoneTypeWasMissing","normalizedEmailType","normalizedPhoneType","email","valueNode","phone","address","imagePreviewSrc","clearImagePreview","undefined","setHeadingImagePreview","formState","file","URL","createObjectURL","previewUrl","revokeObjectURL","setResolvedHeadingPreview","resolvedImageSrc","mapEmailOpsForSave","ops","mapRow","create","map","update","remove","mapPhoneOpsForSave","summarizeHeadingContactOps","typeWasMissing","length","renderContactPhoneInput","typeLabel","inputName","splitValue","selectedDialCode","dialCode","handleValueInput","e","target","nextValue","handleTypeInput","event","detail","nextType","String","localNumber","renderContactEmailInputRow","renderContactAddressInput","streetAddressName","localityName","regionName","postalCodeName","handleAddressInput","field","renderHeadingInfoInput","rerender","imageSrcLabel","recommendedImageToLoad","nameLabel","nicknameLabel","pronounsLabel","dateOfBirthLabel","handleBasicInfoInput","handleDateOfBirthInput","handlePronounsInput","handleUpload","button","currentTarget","dom","ownerDocument","document","fileInput","createElement","accept","hidden","cleanupFileInput","addEventListener","files","pendingImageFile","error","console","once","body","appendChild","click","handleCameraInput","handleDelete","renderHeadingEditTemplate","form","viewerMode","createHeadingEditForm","classList","add","autocomplete","setAttribute","isValidHeadingEmailAddress","test","isValidHeadingPhoneNumber","validateHeadingDataBeforeSave","createHeadingEditDialog","_event","store","subject","onSaved","originalPhotoUri","result","title","headerAction","submitLabel","cancelLabel","shouldCloseWithoutSave","basicInfoOps","phoneOps","emailOps","addressOps","validate","onSave","uploadedUri","plan","basicOps","nextPhotoUri","warn","formatSaveError","Error","message","hasNonEmptyText","sanitizeTextValue","toText","normalizeEmailTypeForEdit","normalizePhoneTypeForEdit","sanitizeEmailValue","sanitizeAddressFieldValue","toTypeLabel","toSavedHeadingEmailType","toSavedHeadingPhoneType","summarizeRowOps","splitPhoneValue","sanitizePhoneLocalValue","combinePhoneValue","sanitizeBasicInputFieldValue","toStorageDateISO","Image","ownerLoginRequiredDialogMessageText","resolvePhotoDisplaySrc","openInputDialog","uploadPhotoFile","processHeadingMutations","require_dialog","require_imagePreview","require_messageTexts","require_mutations","require_phoneCountries","require_textUtils","require_contactTypeUtils","require_rowState","require_sanitizeUtils","require_dateHelpers","require_imageHelpers","lit_html","HEADING_PHONE_TYPE_OPTIONS","HEADING_EMAIL_TYPE_OPTIONS","HEADING_PRONOUN_OPTIONS","isContactPointRow","row","isAddressRow","isProfileBasicRow","normalizeHeadingContactTypeValue","options","option","value","getHeadingContactTypeOptions","kind","withDefaultHeadingContactType","rowHasContent","normalizePronounsValue","normalized","toFormState","basicInfo","profileData","primaryEmail","primaryPhone","primaryAddress","emailTypeWasMissing","phoneTypeWasMissing","normalizedEmailType","normalizedPhoneType","email","phone","address","setHeadingImagePreview","formState","previewUrl","file","setResolvedHeadingPreview","resolvedImageSrc","mapEmailOpsForSave","mapRow","ops","mapPhoneOpsForSave","summarizeHeadingContactOps","typeWasMissing","renderContactPhoneInput","label","typeLabel","inputName","splitValue","selectedDialCode","target","e","nextValue","event","nextType","renderContactEmailInputRow","renderContactAddressInput","handleAddressInput","field","renderHeadingInfoInput","nameLabel","nicknameLabel","pronounsLabel","handleBasicInfoInput","imagePreviewSrc","rerender","error","dom","fileInput","cleanupFileInput","renderHeadingEditTemplate","form","viewerMode","createHeadingEditForm","isValidHeadingEmailAddress","isValidHeadingPhoneNumber","validateHeadingDataBeforeSave","localNumber","createHeadingEditDialog","originalPhotoUri","store","basicInfoOps","phoneOps","emailOps","addressOps","uploadedUri","subject","plan","nextPhotoUri","onSaved"],"sources":["../../../../../../src/components/profile-heading/editor/sections/heading/HeadingEditDialog.ts"],"sourcesContent":["import { openInputDialog } from '../../ui/dialog'\nimport { html, render, TemplateResult } from 'lit-html'\nimport 'solid-ui/components/button'\nimport 'solid-ui/components/combobox'\nimport 'solid-ui/components/combobox-option'\nimport { type ComboboxChangeEvent } from 'solid-ui/components/combobox'\nimport 'solid-ui/components/photo-capture'\nimport type { PhotoCapture } from 'solid-ui/components/photo-capture'\nimport { ProfileDetails, HeadingMutationPlan, ProfileBasicRow } from './types'\nimport { Image } from './imagePreview'\nimport '../../styles/EditDialogs.css'\nimport { LiveStore, NamedNode } from 'rdflib'\nimport { processHeadingMutations } from './mutations'\nimport { ViewerMode } from '../../../../../types'\nimport {\n combinePhoneValue,\n splitPhoneValue\n} from '../shared/phoneCountries'\nimport {\n normalizeEmailTypeForEdit,\n normalizePhoneTypeForEdit,\n toSavedHeadingEmailType,\n toSavedHeadingPhoneType\n} from '../shared/contactTypeUtils'\nimport { applyRowFieldChange, applyRowSelectChange, summarizeRowOps } from '../shared/rowState'\nimport { hasNonEmptyText, sanitizeTextValue, toText, toTypeLabel } from '../../textUtils'\nimport {\n dialogCancelLabelText,\n dialogSubmitLabelText,\n editHeadingDialogTitleText,\n ownerLoginRequiredDialogMessageText,\n saveHeadingUpdatesFailedMessageText\n} from '../../texts'\nimport '~icons/lucide/camera'\nimport { ContactAddressRow, ContactPointRow } from '../contactInfo/types'\nimport { sanitizeAddressFieldValue, sanitizeBasicInputFieldValue, sanitizeEmailValue, sanitizePhoneLocalValue } from '../shared/sanitizeUtils'\nimport { toStorageDateISO } from './dateHelpers'\nimport { invalidateResolvedPhotoDisplaySrc, resolvePhotoDisplaySrc, uploadPhotoFile } from './imageHelpers'\n/* Note: new design - has address type in More Edit Contacts for now we will leave\n out Address Type, but a ticket will be created to add type later\n so I will keep the code and just comment it out for now.\n new design - has country code, will comment out code for now and create a ticket to add later. */\n\ntype HeadingFormState = {\n basicInfo: ProfileBasicRow\n email: ContactPointRow\n phone: ContactPointRow\n address: ContactAddressRow\n emailTypeWasMissing: boolean\n phoneTypeWasMissing: boolean\n pendingImageFile?: File | null\n imagePreviewSrc: string\n clearImagePreview: () => void\n}\n\ntype HeadingContactTypeOption = {\n label: string\n value: string\n}\n\ntype HeadingPronounsOption = {\n label: string\n value: string\n}\n\ntype HeadingContactTypeKind = 'phone' | 'email'\n\nconst HEADING_PHONE_TYPE_OPTIONS: HeadingContactTypeOption[] = [\n { label: 'Mobile', value: 'Mobile' },\n { label: 'Home', value: 'Home' },\n { label: 'Work', value: 'Work' }\n]\n\nconst HEADING_EMAIL_TYPE_OPTIONS: HeadingContactTypeOption[] = [\n { label: 'Personal', value: 'Personal' },\n { label: 'Office', value: 'Office' }\n]\n\nconst HEADING_PRONOUN_OPTIONS: HeadingPronounsOption[] = [\n { label: 'He/Him', value: 'He/Him' },\n { label: 'She/Her', value: 'She/Her' },\n { label: 'They/Them', value: 'They/Them' }\n]\n\ntype Row = ProfileBasicRow | ContactPointRow | ContactAddressRow\n\nfunction isContactPointRow (row: Row): row is ContactPointRow {\n return 'value' in row\n}\n\nfunction isAddressRow (row: Row): row is ContactAddressRow {\n return 'streetAddress' in row\n}\n\nfunction isProfileBasicRow (row: Row): row is ProfileBasicRow {\n return 'name' in row\n}\n\nfunction normalizeHeadingContactTypeValue (value: string, options: HeadingContactTypeOption[]): string {\n return options.some((option) => option.value === value) ? value : options[0]?.value || ''\n}\n\nfunction getHeadingContactTypeOptions (kind: HeadingContactTypeKind): HeadingContactTypeOption[] {\n return kind === 'phone' ? HEADING_PHONE_TYPE_OPTIONS : HEADING_EMAIL_TYPE_OPTIONS\n}\n\nfunction withDefaultHeadingContactType (\n row: ContactPointRow,\n kind: HeadingContactTypeKind\n): ContactPointRow {\n return {\n ...row,\n type: normalizeHeadingContactTypeValue(row.type || '', getHeadingContactTypeOptions(kind))\n }\n}\n\nfunction rowHasContent (row: Row): boolean {\n if (isContactPointRow(row)) {\n return hasNonEmptyText(row.value)\n }\n if (isAddressRow(row)) {\n return [\n row.streetAddress,\n row.locality,\n row.region,\n row.postalCode,\n row.countryName\n ].some(hasNonEmptyText)\n }\n if (isProfileBasicRow(row)) {\n return [\n row.name,\n row.nickname,\n row.imageSrc,\n row.location,\n row.pronouns,\n row.dateOfBirth\n ].some(hasNonEmptyText)\n }\n return false\n}\n\nfunction normalizePronounsValue (value: string | undefined): string {\n const normalized = sanitizeTextValue(value || '').toLowerCase().replace(/\\s+/g, '')\n if (!normalized) return ''\n if (normalized === 'he' || normalized === 'he/him') return 'He/Him'\n if (normalized === 'she' || normalized === 'she/her') return 'She/Her'\n if (normalized === 'they' || normalized === 'they/them') return 'They/Them'\n return value || ''\n}\n\nfunction toFormState (profileData: ProfileDetails): HeadingFormState {\n const basicInfo: ProfileBasicRow = {\n name: sanitizeTextValue(toText(profileData.name)),\n nickname: sanitizeTextValue(toText(profileData.nickname || '')),\n imageSrc: sanitizeTextValue(toText(profileData.imageSrc || '')),\n location: sanitizeTextValue(toText(profileData.location || '')),\n pronouns: normalizePronounsValue(toText(profileData.pronouns || '')),\n dateOfBirth: sanitizeTextValue(toText(profileData.dateOfBirth || '')),\n entryNode: toText(profileData.entryNode),\n status: toText(profileData.entryNode) ? 'existing' as const : 'new' as const\n }\n const primaryEmail = profileData.primaryEmail\n const primaryPhone = profileData.primaryPhone\n const primaryAddress = profileData.primaryAddress\n const emailTypeWasMissing = !normalizeEmailTypeForEdit(primaryEmail?.type)\n const phoneTypeWasMissing = !normalizePhoneTypeForEdit(primaryPhone?.type)\n\n const normalizedEmailType = normalizeEmailTypeForEdit(primaryEmail?.type)\n const normalizedPhoneType = normalizePhoneTypeForEdit(primaryPhone?.type)\n\n const email: ContactPointRow = {\n value: sanitizeEmailValue(toText(primaryEmail?.valueNode).replace(/^mailto:/i, '')),\n type: normalizedEmailType,\n entryNode: toText(primaryEmail?.entryNode),\n status: toText(primaryEmail?.entryNode) ? 'existing' as const : 'new' as const\n }\n const phone: ContactPointRow = {\n value: sanitizeTextValue(\n toText(primaryPhone?.valueNode || primaryPhone?.entryNode || '').replace(/^tel:/i, '')\n ),\n type: normalizedPhoneType,\n entryNode: toText(primaryPhone?.entryNode || ''),\n status: toText(primaryPhone?.entryNode || '') ? 'existing' as const : 'new' as const\n }\n const address: ContactAddressRow = {\n streetAddress: sanitizeAddressFieldValue(toText(primaryAddress?.streetAddress)),\n locality: sanitizeAddressFieldValue(toText(primaryAddress?.locality)),\n region: sanitizeAddressFieldValue(toText(primaryAddress?.region)),\n postalCode: sanitizeAddressFieldValue(toText(primaryAddress?.postalCode)),\n countryName: sanitizeAddressFieldValue(toText(primaryAddress?.countryName)),\n type: toTypeLabel(primaryAddress?.type),\n entryNode: toText(primaryAddress?.entryNode),\n status: toText(primaryAddress?.entryNode) ? 'existing' as const : 'new' as const\n }\n\n return {\n basicInfo: (basicInfo) || { name: '', nickname: '', imageSrc: '', location: '', pronouns: '', dateOfBirth: '', entryNode: '', status: 'new' },\n email: (email) || { value: '', type: '', entryNode: '', status: 'new' },\n phone: (phone) || { value: '', type: '', entryNode: '', status: 'new' },\n address: (address) || { streetAddress: '', locality: '', region: '', postalCode: '', countryName: '', type: '', entryNode: '', status: 'new' },\n emailTypeWasMissing,\n phoneTypeWasMissing,\n imagePreviewSrc: '',\n clearImagePreview: () => undefined\n }\n}\n\nfunction setHeadingImagePreview (formState: HeadingFormState, file: File) {\n formState.clearImagePreview()\n\n if (typeof URL.createObjectURL !== 'function') {\n formState.imagePreviewSrc = ''\n formState.clearImagePreview = () => undefined\n return\n }\n\n const previewUrl = URL.createObjectURL(file)\n formState.imagePreviewSrc = previewUrl\n formState.clearImagePreview = () => {\n URL.revokeObjectURL(previewUrl)\n formState.imagePreviewSrc = ''\n formState.clearImagePreview = () => undefined\n }\n}\n\nfunction setResolvedHeadingPreview (formState: HeadingFormState, resolvedImageSrc?: string) {\n formState.clearImagePreview()\n\n if (!resolvedImageSrc) {\n return\n }\n\n formState.imagePreviewSrc = resolvedImageSrc\n\n formState.clearImagePreview = () => {\n formState.imagePreviewSrc = ''\n formState.clearImagePreview = () => undefined\n }\n}\n\ntype ProfileBasicEditableField =\n | 'name'\n | 'nickname'\n | 'imageSrc'\n | 'pronouns'\n | 'dateOfBirth'\n\ntype ContactAddressEditableField =\n | 'streetAddress'\n | 'locality'\n | 'region'\n | 'postalCode'\n | 'countryName'\n\ntype ContactPhoneInputRowProps = {\n phone: ContactPointRow\n}\n\ntype ContactEmailInputRowProps = {\n email: ContactPointRow\n}\n\ntype ContactAddressInputRowProps = {\n address: ContactAddressRow\n}\n\nfunction mapEmailOpsForSave (ops: { create: ContactPointRow[], update: ContactPointRow[], remove: ContactPointRow[] }) {\n const mapRow = (row: ContactPointRow): ContactPointRow => ({\n ...withDefaultHeadingContactType(row, 'email'),\n type: toSavedHeadingEmailType(withDefaultHeadingContactType(row, 'email').type)\n })\n\n return {\n create: ops.create.map(mapRow),\n update: ops.update.map(mapRow),\n remove: ops.remove.map(mapRow)\n }\n}\n\nfunction mapPhoneOpsForSave (ops: { create: ContactPointRow[], update: ContactPointRow[], remove: ContactPointRow[] }) {\n const mapRow = (row: ContactPointRow): ContactPointRow => ({\n ...withDefaultHeadingContactType(row, 'phone'),\n type: toSavedHeadingPhoneType(withDefaultHeadingContactType(row, 'phone').type)\n })\n\n return {\n create: ops.create.map(mapRow),\n update: ops.update.map(mapRow),\n remove: ops.remove.map(mapRow)\n }\n}\n\nfunction summarizeHeadingContactOps (\n row: ContactPointRow,\n kind: HeadingContactTypeKind,\n typeWasMissing: boolean\n) {\n const ops = summarizeRowOps([row], rowHasContent)\n\n if (\n typeWasMissing &&\n row.entryNode &&\n row.status === 'existing' &&\n rowHasContent(row) &&\n ops.create.length === 0 &&\n ops.update.length === 0 &&\n ops.remove.length === 0\n ) {\n return {\n create: ops.create,\n update: [withDefaultHeadingContactType({ ...row, status: 'modified' }, kind)],\n remove: ops.remove\n }\n }\n\n return ops\n}\n\nfunction renderContactPhoneInput ({\n phone\n}: ContactPhoneInputRowProps) {\n const label = 'Mobile Number'\n const typeLabel = 'Phone Type 1'\n const inputName = 'phone-value'\n const splitValue = splitPhoneValue(phone?.value || '')\n const selectedDialCode = splitValue.dialCode\n\n const handleValueInput = (e: Event) => {\n const target = e.target as HTMLInputElement\n const nextValue = sanitizePhoneLocalValue(target.value)\n if (phone) {\n applyRowFieldChange(phone, 'value', combinePhoneValue(selectedDialCode, nextValue), rowHasContent)\n }\n }\n\n const handleTypeInput = (e: Event) => {\n const event = e as ComboboxChangeEvent\n if (!event.detail.option) return\n const nextType = String(event.detail.option.value)\n if (phone) {\n applyRowSelectChange(phone, 'type', nextType)\n }\n }\n\n return html`\n <div class=\"profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--contact-point\">\n <div class=\"profile-edit-dialog__field\">\n <label aria-label=${label} class=\"label\">\n ${label}\n <input\n class=\"input\"\n type=\"tel\"\n name=${inputName}\n .value=${splitValue.localNumber}\n required\n data-contact-field=\"value\"\n data-entry-node=${phone?.entryNode || ''}\n data-row-status=${phone?.status || 'n/a'}\n placeholder=${label}\n autocomplete=\"tel-national\"\n inputmode=\"tel\"\n @input=${handleValueInput}\n />\n </label>\n </div>\n <label aria-label=${typeLabel} class=\"label profile-edit-dialog__field-type profile-edit-dialog__field-type--contact-point\">\n <solid-ui-combobox\n select-only\n class=\"profile-edit-dialog__type-select\"\n id=${`phone-type-select-${inputName}`}\n aria-label=${typeLabel}\n .value=${normalizeHeadingContactTypeValue(phone?.type || '', HEADING_PHONE_TYPE_OPTIONS)}\n @change=${handleTypeInput}\n >\n ${HEADING_PHONE_TYPE_OPTIONS.map((option) => html`<solid-ui-combobox-option value=${option.value}>${option.label}</solid-ui-combobox-option>`)}\n </solid-ui-combobox>\n </label>\n </div>\n `\n}\n\nfunction renderContactEmailInputRow ({\n email\n}: ContactEmailInputRowProps) {\n const label = 'Email'\n const typeLabel = 'Email Type'\n const inputName = 'email-value'\n\n const handleValueInput = (e: Event) => {\n const target = e.target as HTMLInputElement\n const nextValue = sanitizeEmailValue(target.value)\n if (email) {\n applyRowFieldChange(email, 'value', nextValue, rowHasContent)\n }\n }\n\n const handleTypeInput = (e: Event) => {\n const event = e as ComboboxChangeEvent\n if (!event.detail.option) return\n const nextType = String(event.detail.option.value)\n if (email) {\n applyRowSelectChange(email, 'type', nextType)\n }\n }\n\n return html`\n <div class=\"profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--contact-point\">\n <label aria-label=${label} class=\"label profile-edit-dialog__field\">\n ${label}\n <input\n class=\"input\"\n type=\"email\"\n name=${inputName}\n .value=${email?.value || ''}\n required\n data-contact-field=\"value\"\n data-entry-node=${email?.entryNode || ''}\n data-row-status=${email?.status || 'n/a'}\n placeholder=\"Email Address\"\n autocomplete=\"email\"\n inputmode=\"email\"\n @input=${handleValueInput}\n />\n </label>\n <label aria-label=${typeLabel} class=\"label profile-edit-dialog__field-type profile-edit-dialog__field-type--contact-point\">\n <solid-ui-combobox\n select-only\n class=\"profile-edit-dialog__type-select\"\n id=${`email-type-select-${inputName}`}\n aria-label=${typeLabel}\n .value=${normalizeHeadingContactTypeValue(email?.type || '', HEADING_EMAIL_TYPE_OPTIONS)}\n @change=${handleTypeInput}\n >\n ${HEADING_EMAIL_TYPE_OPTIONS.map((option) => html`<solid-ui-combobox-option value=${option.value}>${option.label}</solid-ui-combobox-option>`)}\n </solid-ui-combobox>\n </label>\n </div>\n `\n}\n\nfunction renderContactAddressInput ({\n address\n}: ContactAddressInputRowProps) {\n const label = 'Address'\n /* const typeLabel = 'Address Type' */\n /* const typeInputName = 'address-type' */\n /* const addressTypeSelectId = 'address-type-select' */\n const streetAddressName = 'address-street'\n const localityName = 'address-locality'\n const regionName = 'address-region'\n const postalCodeName = 'address-postal'\n const countryName = 'address-country'\n\n const handleAddressInput = (field: ContactAddressEditableField) => (e: Event) => {\n const target = e.target as HTMLInputElement\n const nextValue = sanitizeAddressFieldValue(target.value)\n if (address) {\n applyRowFieldChange(address, field, nextValue, rowHasContent)\n }\n }\n\n /* const handleTypeInput = (e: Event) => {\n const target = e.target as HTMLInputElement\n const nextType = target.value\n if (address) {\n applyRowSelectChange(address, 'type', nextType)\n }\n } */\n\n return html`\n <label aria-label=${`${label} Street`} class=\"label profile-edit-dialog__field profile-edit-dialog__field--row-width\">\n Street Address\n <input\n class=\"input\"\n type=\"text\"\n name=${streetAddressName}\n .value=${address?.streetAddress || ''}\n required\n data-contact-field=\"streetAddress\"\n data-entry-node=${address?.entryNode || ''}\n data-row-status=${address?.status || 'n/a'}\n placeholder=\"Street Address\"\n autocomplete=\"street-address\"\n inputmode=\"text\"\n @change=${handleAddressInput('streetAddress')}\n />\n </label>\n\n <div class=\"profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--full\">\n <label aria-label=${`${label} Locality`} class=\"label profile-edit-dialog__field\">\n Locality\n <input\n class=\"input\"\n type=\"text\"\n name=${localityName}\n .value=${address?.locality || ''}\n data-contact-field=\"locality\"\n data-entry-node=${address?.entryNode || ''}\n data-row-status=${address?.status || 'n/a'}\n placeholder=\"City / Locality\"\n autocomplete=\"address-level2\"\n inputmode=\"text\"\n @change=${handleAddressInput('locality')}\n />\n </label>\n <label aria-label=${`${label} Postal Code`} class=\"label profile-edit-dialog__field\">\n Postal Code\n <input\n class=\"input\"\n type=\"text\"\n name=${postalCodeName}\n .value=${address?.postalCode || ''}\n data-contact-field=\"postalCode\"\n data-entry-node=${address?.entryNode || ''}\n data-row-status=${address?.status || 'n/a'}\n placeholder=\"Postal Code\"\n autocomplete=\"postal-code\"\n inputmode=\"text\"\n @change=${handleAddressInput('postalCode')}\n />\n </label>\n </div>\n\n <div class=\"profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--full\">\n <label aria-label=${`${label} Region`} class=\"label profile-edit-dialog__field\">\n Region\n <input\n class=\"input\"\n type=\"text\"\n name=${regionName}\n .value=${address?.region || ''}\n data-contact-field=\"region\"\n data-entry-node=${address?.entryNode || ''}\n data-row-status=${address?.status || 'n/a'}\n placeholder=\"State / Region\"\n inputmode=\"text\"\n @change=${handleAddressInput('region')}\n />\n </label>\n <label aria-label=${`${label} Country`} class=\"label profile-edit-dialog__field\">\n Country\n <input\n class=\"input\"\n type=\"text\"\n name=${countryName}\n .value=${address?.countryName || ''}\n data-contact-field=\"countryName\"\n data-entry-node=${address?.entryNode || ''}\n data-row-status=${address?.status || 'n/a'}\n placeholder=\"Country\"\n autocomplete=\"country-name\"\n inputmode=\"text\"\n @change=${handleAddressInput('countryName')}\n />\n </label>\n </div>\n `\n}\n\nfunction renderHeadingInfoInput (\n formState: HeadingFormState,\n rerender: () => void\n): TemplateResult {\n const { basicInfo, phone, email, imagePreviewSrc } = formState\n const imageSrcLabel = 'Profile Photo'\n const recommendedImageToLoad = 'Recommended: Square JPG, PNG. Max 2MB.'\n const nameLabel = 'Full Name'\n const nicknameLabel = 'Nickname'\n const pronounsLabel = 'Pronouns'\n const dateOfBirthLabel = 'DOB'\n\n const handleBasicInfoInput = (field: ProfileBasicEditableField) => (e: Event) => {\n const target = e.target as HTMLInputElement\n const nextValue = sanitizeBasicInputFieldValue(target.value)\n if (basicInfo) {\n applyRowFieldChange(basicInfo, field, nextValue, rowHasContent)\n }\n }\n\n const handleDateOfBirthInput = (e: Event) => {\n const target = e.target as HTMLInputElement\n const nextValue = sanitizeBasicInputFieldValue(target.value)\n if (basicInfo) {\n applyRowFieldChange(basicInfo, 'dateOfBirth', toStorageDateISO(nextValue), rowHasContent)\n }\n }\n const handlePronounsInput = (e: Event) => {\n const event = e as ComboboxChangeEvent\n if (!event.detail.option) return\n const nextValue = normalizePronounsValue(String(event.detail.option.value))\n if (basicInfo) {\n applyRowFieldChange(basicInfo, 'pronouns', nextValue, rowHasContent)\n }\n }\n\n const handleUpload = async (e: Event) => {\n const button = e.currentTarget as HTMLButtonElement | null\n const dom = button?.ownerDocument || document\n const fileInput = dom.createElement('input')\n fileInput.type = 'file'\n fileInput.accept = 'image/*'\n fileInput.hidden = true\n\n const cleanupFileInput = () => {\n fileInput.remove()\n }\n\n fileInput.addEventListener('change', async () => {\n const file = fileInput.files?.[0]\n cleanupFileInput()\n if (!file || !basicInfo) return\n\n try {\n formState.pendingImageFile = file\n setHeadingImagePreview(formState, file)\n basicInfo.status = basicInfo.entryNode ? 'modified' : 'new'\n rerender()\n } catch (error) {\n console.error('Profile image upload failed', error)\n }\n }, { once: true })\n\n dom.body.appendChild(fileInput)\n fileInput.click()\n }\n\n const handleCameraInput = async (event: InputEvent) => {\n const file = (event.target as PhotoCapture).value\n\n if (!file || !basicInfo) return\n\n try {\n formState.pendingImageFile = file\n setHeadingImagePreview(formState, file)\n basicInfo.status = basicInfo.entryNode ? 'modified' : 'new'\n rerender()\n } catch (error) {\n console.error('Profile camera upload failed', error)\n }\n }\n\n const handleDelete = async () => {\n if (!basicInfo) return\n formState.pendingImageFile = null\n formState.clearImagePreview()\n applyRowFieldChange(basicInfo, 'imageSrc', '', rowHasContent)\n rerender()\n }\n\n return html`\n <div class=\"profile-edit-dialog__row profile-edit-dialog__row--heading-photo\">\n <header class=\"profile-edit-dialog__image-preview-header\" aria-label=\"Profile Image\">\n <div class=\"profile-edit-dialog__image-frame\">\n ${Image(imagePreviewSrc || basicInfo.imageSrc, basicInfo.name)}\n <solid-ui-photo-capture\n capture-label=\"Take Photo\"\n confirm-label=\"Use Photo\"\n retake-label=\"Retake\"\n cancel-label=\"Close camera\"\n file-name-prefix=\"camera\"\n facing-mode=\"user\"\n @input=${handleCameraInput}\n >\n <button\n slot=\"trigger\"\n type=\"button\"\n class=\"profile-edit-dialog__image-camera-button\"\n aria-label=\"Take a photo\"\n title=\"Take a photo\"\n >\n <icon-lucide-camera aria-hidden=\"true\"></icon-lucide-camera>\n </button>\n </solid-ui-photo-capture>\n </div>\n </header>\n\n <div class=\"profile-edit-dialog__image-preview\" aria-label=\"Profile Photo Preview\">\n <p class=\"profile-edit-dialog__image-preview-label\">${imageSrcLabel}</p>\n <p class=\"profile-edit-dialog__image-preview-description\">${recommendedImageToLoad}</p>\n\n <div class=\"profile-edit-dialog__image-preview-actions\">\n <solid-ui-button\n variant=\"secondary\"\n class=\"profile-edit-dialog__image-button profile-edit-dialog__image-upload-button\"\n aria-label=\"Upload new profile photo\"\n title=\"Upload\"\n @click=${handleUpload}\n >\n Upload\n </solid-ui-button>\n <solid-ui-button\n variant=\"secondary\"\n class=\"profile-edit-dialog__image-button profile-edit-dialog__image-remove-button\"\n aria-label=\"Delete profile photo\"\n title=\"Remove\"\n @click=${handleDelete}\n >\n Remove\n </solid-ui-button>\n </div>\n </div>\n </div>\n <div class=\"profile-edit-dialog__image-camera-capture-row\">\n <div class=\"profile-edit-dialog__image-camera-capture-frame\" hidden></div>\n </div>\n <div class=\"profile-edit\">\n <div class=\"profile-edit-dialog__row profile-edit-dialog__row--equal\">\n <label aria-label=${nameLabel} class=\"label profile-edit-dialog__field\">\n ${nameLabel}\n <input\n class=\"input\"\n type=\"text\"\n name=\"name\"\n .value=${basicInfo?.name || ''}\n required\n data-contact-field=\"name\"\n data-entry-node=${basicInfo?.entryNode || ''}\n data-row-status=${basicInfo?.status || 'n/a'}\n placeholder=\"Full Name\"\n autocomplete=\"name\"\n inputmode=\"text\"\n @change=${handleBasicInfoInput('name')}\n />\n </label>\n <label aria-label=${nicknameLabel} class=\"label profile-edit-dialog__field\">\n ${nicknameLabel}\n <input\n class=\"input\"\n type=\"text\"\n name=\"nickname\"\n .value=${basicInfo?.nickname || ''}\n data-contact-field=\"nickname\"\n data-entry-node=${basicInfo?.entryNode || ''}\n data-row-status=${basicInfo?.status || 'n/a'}\n placeholder=\"Nickname\"\n autocomplete=\"nickname\"\n inputmode=\"text\"\n @change=${handleBasicInfoInput('nickname')}\n />\n </label>\n </div>\n <div class=\"profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--heading-dob\">\n <div class=\"profile-edit-dialog__field-type profile-edit-dialog__field--stack\">\n <label aria-label=${pronounsLabel} class=\"label\">\n ${pronounsLabel}\n </label>\n <solid-ui-combobox\n select-only\n class=\"profile-edit-dialog__type-select\"\n name=\"pronouns\"\n data-heading-basic-field=\"pronouns\"\n aria-label=${pronounsLabel}\n .value=${normalizePronounsValue(basicInfo?.pronouns || '')}\n @change=${handlePronounsInput}\n >\n ${HEADING_PRONOUN_OPTIONS.map((option) => html`<solid-ui-combobox-option value=${option.value}>${option.label}</solid-ui-combobox-option>`)}\n </solid-ui-combobox>\n </div>\n <div class=\"profile-edit-dialog__field profile-edit-dialog__field--stack\">\n <label aria-label=${dateOfBirthLabel} class=\"label\">\n ${dateOfBirthLabel}\n </label>\n <input\n class=\"input profile-edit-dialog__input--dob\"\n type=\"date\"\n name=\"dateOfBirth\"\n .value=${toStorageDateISO(basicInfo?.dateOfBirth || '')}\n data-contact-field=\"dateOfBirth\"\n data-entry-node=${basicInfo?.entryNode || ''}\n data-row-status=${basicInfo?.status || 'n/a'}\n autocomplete=\"off\"\n data-lpignore=\"true\"\n data-1p-ignore=\"true\"\n data-bwignore=\"true\"\n @change=${handleDateOfBirthInput}\n />\n </div>\n </div>\n <div class=\"profile-edit-dialog__row profile-edit-dialog__row--equal\">\n <div class=\"profile-edit-dialog__field profile-edit-dialog__field--full\">\n ${renderContactPhoneInput({ phone })}\n </div>\n <div class=\"profile-edit-dialog__field profile-edit-dialog__field--full\">\n ${renderContactEmailInputRow({ email })}\n </div>\n </div>\n </div>\n `\n}\n\nfunction renderHeadingEditTemplate (\n form: HTMLFormElement,\n formState: HeadingFormState,\n viewerMode: ViewerMode\n) {\n const rerender = () => renderHeadingEditTemplate(form, formState, viewerMode)\n\n render(html`\n ${renderHeadingInfoInput(formState, rerender)}\n ${renderContactAddressInput({ address: formState.address })}\n ${viewerMode !== 'owner'\n ? html`<p class=\"profile-edit-dialog__login-message\">${ownerLoginRequiredDialogMessageText}</p>`\n : null}\n `, form)\n}\n\nfunction createHeadingEditForm (\n profileData: ProfileDetails,\n viewerMode: ViewerMode\n) {\n const form = document.createElement('form')\n form.classList.add('profile__edit-form', 'profile__edit-form--heading', 'profile-edit-dialog--heading')\n form.autocomplete = 'off'\n form.setAttribute('data-lpignore', 'true')\n form.setAttribute('data-1p-ignore', 'true')\n form.setAttribute('data-bwignore', 'true')\n\n const formState = toFormState(profileData)\n renderHeadingEditTemplate(form, formState, viewerMode)\n\n return { form, formState }\n}\n\nfunction isValidHeadingEmailAddress (value: string): boolean {\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)\n}\n\nfunction isValidHeadingPhoneNumber (value: string): boolean {\n return /^\\d+$/.test(value)\n}\n\nfunction validateHeadingDataBeforeSave (formState: HeadingFormState): string | null {\n if (!hasNonEmptyText(formState.basicInfo.name)) {\n return 'Full Name is required.'\n }\n\n const { localNumber } = splitPhoneValue(formState.phone?.value || '')\n if (rowHasContent(formState.phone) && !isValidHeadingPhoneNumber(localNumber)) {\n return 'Phone Number 1 should contain only numbers.'\n }\n\n if (rowHasContent(formState.email) && !isValidHeadingEmailAddress(formState.email?.value || '')) {\n return 'Email address must be a valid email address.'\n }\n\n return null\n}\n\nexport async function createHeadingEditDialog (\n _event: Event,\n store: LiveStore,\n subject: NamedNode,\n profileData: ProfileDetails,\n viewerMode: ViewerMode,\n onSaved?: () => Promise<void> | void\n) {\n const dom = document\n const originalPhotoUri = sanitizeTextValue(toText(profileData.imageSrc || ''))\n const { form, formState } = createHeadingEditForm(profileData, viewerMode)\n\n if (formState.basicInfo.imageSrc) {\n const resolvedImageSrc = await resolvePhotoDisplaySrc(store, formState.basicInfo.imageSrc)\n if (resolvedImageSrc && resolvedImageSrc !== formState.basicInfo.imageSrc) {\n setResolvedHeadingPreview(formState, resolvedImageSrc)\n renderHeadingEditTemplate(form, formState, viewerMode)\n }\n }\n\n const result = await openInputDialog({\n title: editHeadingDialogTitleText,\n dom,\n form,\n headerAction: { type: 'none' },\n submitLabel: dialogSubmitLabelText,\n cancelLabel: dialogCancelLabelText,\n shouldCloseWithoutSave: () => {\n const basicInfoOps = summarizeRowOps([formState.basicInfo], rowHasContent)\n const phoneOps = summarizeHeadingContactOps(formState.phone, 'phone', formState.phoneTypeWasMissing)\n const emailOps = summarizeHeadingContactOps(formState.email, 'email', formState.emailTypeWasMissing)\n const addressOps = summarizeRowOps([formState.address], rowHasContent)\n\n return (\n basicInfoOps.create.length === 0 && basicInfoOps.update.length === 0 && basicInfoOps.remove.length === 0 &&\n phoneOps.create.length === 0 && phoneOps.update.length === 0 && phoneOps.remove.length === 0 &&\n emailOps.create.length === 0 && emailOps.update.length === 0 && emailOps.remove.length === 0 &&\n addressOps.create.length === 0 && addressOps.update.length === 0 && addressOps.remove.length === 0\n )\n },\n validate: () => {\n if (viewerMode !== 'owner') {\n return ownerLoginRequiredDialogMessageText\n }\n return validateHeadingDataBeforeSave(formState)\n },\n onSave: async () => {\n if (formState.pendingImageFile) {\n const uploadedUri = await uploadPhotoFile(store, subject, formState.pendingImageFile)\n applyRowFieldChange(formState.basicInfo, 'imageSrc', uploadedUri, rowHasContent)\n }\n\n const phoneOps = summarizeHeadingContactOps(formState.phone, 'phone', formState.phoneTypeWasMissing)\n const emailOps = summarizeHeadingContactOps(formState.email, 'email', formState.emailTypeWasMissing)\n const plan: HeadingMutationPlan = {\n basicOps: summarizeRowOps([formState.basicInfo], rowHasContent),\n phoneOps: mapPhoneOpsForSave(phoneOps),\n emailOps: mapEmailOpsForSave(emailOps),\n addressOps: summarizeRowOps([formState.address], rowHasContent)\n }\n await processHeadingMutations(store, subject, plan)\n\n const nextPhotoUri = sanitizeTextValue(formState.basicInfo.imageSrc || '')\n if (originalPhotoUri && originalPhotoUri !== nextPhotoUri) {\n try {\n invalidateResolvedPhotoDisplaySrc(originalPhotoUri)\n } catch (error) {\n console.warn('Failed to invalidate resolved photo cache', error)\n }\n }\n },\n formatSaveError: (error: unknown) => {\n return error instanceof Error ? error.message : saveHeadingUpdatesFailedMessageText\n }\n })\n\n if (!result) {\n return\n }\n\n if (onSaved) {\n await onSaved()\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ProfileDetails } from './types';
|
|
2
|
+
import { LiveStore, NamedNode } from '../../../../../../node_modules/rdflib';
|
|
3
|
+
import { ViewerMode } from '../../../../../types';
|
|
4
|
+
export declare function createHeadingEditDialog(_event: Event, store: LiveStore, subject: NamedNode, profileData: ProfileDetails, viewerMode: ViewerMode, onSaved?: () => Promise<void> | void): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=HeadingEditDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingEditDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/profile-heading/editor/sections/heading/HeadingEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAA;AACnC,OAAO,8BAA8B,CAAA;AACrC,OAAO,qCAAqC,CAAA;AAE5C,OAAO,mCAAmC,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAwC,MAAM,SAAS,CAAA;AAE9E,OAAO,8BAA8B,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAoBjD,OAAO,sBAAsB,CAAA;AAgzB7B,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBA6ErC"}
|