profile-pane 3.1.2-6e3fc707 → 3.1.2-78ae4e6b
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/lib/ContactsCard.js +4 -4
- package/lib/addMeToYourContacts.js +3 -3
- package/lib/contactsHelpers.d.ts.map +1 -1
- package/lib/contactsHelpers.js +14 -9
- package/lib/profile-pane.js +28 -29
- package/lib/profile-pane.js.map +1 -1
- package/lib/profile-pane.min.js +1 -1
- package/lib/profile-pane.min.js.map +1 -1
- package/lib/styles/ContactsCard.css +5 -11
- package/package.json +1 -1
package/lib/ContactsCard.js
CHANGED
|
@@ -98,7 +98,7 @@ const createAddressBookUriEntryDiv = (context, contactsModule, addressBooksData,
|
|
|
98
98
|
addressBookUriEntryDiv.setAttribute('aria-label', 'Address book URI entry div');
|
|
99
99
|
addressBookUriEntryDiv.setAttribute('aria-describedby', 'addressbook-uri-entry-div');
|
|
100
100
|
addressBookUriEntryDiv.setAttribute('id', 'contacts-addressbook-uri-entry');
|
|
101
|
-
addressBookUriEntryDiv.classList.add('
|
|
101
|
+
addressBookUriEntryDiv.classList.add('contactsPopupDialog', 'contactsAddressBookUriEntry');
|
|
102
102
|
const closeButton = createCloseButton(context, addressBookUriEntryDiv, 'contactsAddressBookUriEntryCloseButton');
|
|
103
103
|
addressBookUriEntryDiv.appendChild(closeButton);
|
|
104
104
|
addressBookUriEntryDiv.appendChild(createAddressBookUriEntryForm(context, contactsModule, addressBooksData, contactData));
|
|
@@ -434,7 +434,7 @@ const createNewAddressBookForm = (context, addressBooksData, contactsModule, con
|
|
|
434
434
|
newAddressBookForm.method = 'post';
|
|
435
435
|
newAddressBookForm.innerHTML = 'Create a new address book';
|
|
436
436
|
newAddressBookForm.setAttribute('id', 'new-addressbook-form');
|
|
437
|
-
newAddressBookForm.classList.add('
|
|
437
|
+
newAddressBookForm.classList.add('contactsPopupDialog', 'contactsNewAddressForm');
|
|
438
438
|
const addressBookNameLabel = context.dom.createElement('label');
|
|
439
439
|
addressBookNameLabel.classList.add('label');
|
|
440
440
|
addressBookNameLabel.setAttribute('for', 'addressBookNameInput');
|
|
@@ -559,7 +559,7 @@ const createGroupNameForm = (context, contactsModule, addressBooksData, contactD
|
|
|
559
559
|
newGroupForm.addEventListener('submit', addGroupEventListener);
|
|
560
560
|
newGroupForm.innerHTML = 'Create a new group';
|
|
561
561
|
newGroupForm.setAttribute('id', 'new-group-form');
|
|
562
|
-
newGroupForm.classList.add('
|
|
562
|
+
newGroupForm.classList.add('contactsPopupDialog', 'contactsNewGroupForm');
|
|
563
563
|
const groupNameLabel = context.dom.createElement('label');
|
|
564
564
|
groupNameLabel.classList.add('label');
|
|
565
565
|
groupNameLabel.setAttribute('for', 'groupNameInput');
|
|
@@ -713,7 +713,7 @@ const showPopupOverlay = context => {
|
|
|
713
713
|
const removePopupOverlayIfNoPopup = context => {
|
|
714
714
|
const selectorDialog = context.dom.getElementById('contacts-selector-dialog');
|
|
715
715
|
if (!selectorDialog) return;
|
|
716
|
-
const activePopup = selectorDialog.querySelector('.
|
|
716
|
+
const activePopup = selectorDialog.querySelector('.contactsPopupDialog, .contactsContactExistsAlert');
|
|
717
717
|
if (activePopup) return;
|
|
718
718
|
const overlay = selectorDialog.querySelector(`#${CONTACTS_POPUP_OVERLAY_ID}`);
|
|
719
719
|
if (overlay) overlay.remove();
|
|
@@ -67,16 +67,16 @@ const createAddMeToYourContactsButton = async (subject, context) => {
|
|
|
67
67
|
needsBorder: true
|
|
68
68
|
});
|
|
69
69
|
button.setAttribute('id', 'add-to-contacts-button');
|
|
70
|
-
//button.refresh = refreshButton(context, subject, addressBooksData)
|
|
71
70
|
button.refresh = refreshButton();
|
|
72
71
|
function refreshButton() {
|
|
73
72
|
if ((0, _buttonsHelper.checkIfAnyUserLoggedIn)(me)) {
|
|
74
|
-
const contactExistsByWebID = (0, _contactsHelpers.checkIfContactExistsByWebID)(addressBooksData, contactData.webID);
|
|
75
|
-
const contactExistsByName = (0, _contactsHelpers.checkIfContactExistsByName)(addressBooksData, contactData.name);
|
|
73
|
+
const contactExistsByWebID = contactData ? (0, _contactsHelpers.checkIfContactExistsByWebID)(addressBooksData, contactData.webID) : false;
|
|
74
|
+
const contactExistsByName = contactData ? (0, _contactsHelpers.checkIfContactExistsByName)(addressBooksData, contactData.name) : false;
|
|
76
75
|
if (contactExistsByWebID) {
|
|
77
76
|
//logged in and friend exists or friend was just added
|
|
78
77
|
button.innerHTML = _texts.contactExistsAlreadyButtonText.toUpperCase();
|
|
79
78
|
button.onclick = null;
|
|
79
|
+
button.setAttribute('disabled', 'true');
|
|
80
80
|
} else if (contactExistsByName) {
|
|
81
81
|
button.innerHTML = _texts.contactExistsAlreadyByNameButtonText.toUpperCase();
|
|
82
82
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactsHelpers.d.ts","sourceRoot":"","sources":["../src/contactsHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAoB,MAAM,QAAQ,CAAA;AAE/D,OAAO,oBAAoB,MAAM,qCAAqC,CAAA;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,2BAA2B,CAAA;AAElC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAgB,SAAS,EAAgB,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAMnJ,iBAAe,uBAAuB,CACpC,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,cAAc,iBAM1B;
|
|
1
|
+
{"version":3,"file":"contactsHelpers.d.ts","sourceRoot":"","sources":["../src/contactsHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAoB,MAAM,QAAQ,CAAA;AAE/D,OAAO,oBAAoB,MAAM,qCAAqC,CAAA;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,2BAA2B,CAAA;AAElC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAgB,SAAS,EAAgB,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAMnJ,iBAAe,uBAAuB,CACpC,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,cAAc,iBAM1B;AAgHD,iBAAe,mBAAmB,CAChC,OAAO,EAAE,kBAAkB,EAC3B,aAAa,EAAE,oBAAoB,GAClC,OAAO,CAAC,gBAAgB,CAAC,CAY3B;AAkBD,iBAAe,cAAc,CAC3B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CA8BtB;AAED,iBAAe,mCAAmC,CAChD,OAAO,EAAC,kBAAkB,EAC1B,cAAc,EAAE,oBAAoB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC;IAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAAC,WAAW,EAAE,kBAAkB,CAAA;CAAE,CAAC,CA2BlF;AAED,iBAAe,0BAA0B,CACvC,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,oBAAoB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,uBAAuB,EAAE,uBAAuB,GAC/C,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAqFD,iBAAe,qBAAqB,CAClC,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED,iBAAe,qBAAqB,CAClC,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,iBA0BhB;AAED,iBAAS,aAAa,CACpB,OAAO,EAAE,kBAAkB,EAC3B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,QAuBvB;AAEH,iBAAS,2BAA2B,CAClC,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAGT;AAED,iBAAS,0BAA0B,CACjC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAYf;AAED,iBAAe,yBAAyB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,oBAAoB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,iBASnB;AA6CD,iBAAS,yBAAyB,CAChC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,SAAS,GACf,OAAO,CA0BT;AAED,iBAAe,yBAAyB,CACtC,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAED,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,EACb,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,mCAAmC,EACnC,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EAC1B,CAAA"}
|
package/lib/contactsHelpers.js
CHANGED
|
@@ -88,9 +88,10 @@ async function getAddressBooks(context, contactsModule) {
|
|
|
88
88
|
};
|
|
89
89
|
// let addressBookUris = await contactsModule.listAddressBooks(me.value)
|
|
90
90
|
|
|
91
|
-
const publicAddressBookPromises =
|
|
91
|
+
const publicAddressBookPromises = addressBookUris.publicUris.map(addressBook => getAddressData(context, contactsModule, addressBook));
|
|
92
92
|
const publicAddressBooksData = await Promise.all(publicAddressBookPromises);
|
|
93
93
|
publicAddressBooksData.map(addressBook => {
|
|
94
|
+
if (!addressBook) return;
|
|
94
95
|
addressBooksData.public.set(addressBook.uri, {
|
|
95
96
|
name: addressBook.title,
|
|
96
97
|
groups: addressBook.groups,
|
|
@@ -104,6 +105,7 @@ async function getAddressBooks(context, contactsModule) {
|
|
|
104
105
|
const privateAddressBookPromises = addressBookUris.privateUris.map(addressBook => getAddressData(context, contactsModule, addressBook));
|
|
105
106
|
const privateAddressBooksData = await Promise.all(privateAddressBookPromises);
|
|
106
107
|
privateAddressBooksData.map(addressBook => {
|
|
108
|
+
if (!addressBook) return;
|
|
107
109
|
addressBooksData.private.set(addressBook.uri, {
|
|
108
110
|
name: addressBook.title,
|
|
109
111
|
groups: addressBook.groups,
|
|
@@ -135,7 +137,7 @@ async function processContactWebIDs(context, addressBooksData, allContacts) {
|
|
|
135
137
|
const contactPromises = allContacts.map(getWebID.bind(null, context));
|
|
136
138
|
const results = await Promise.all(contactPromises);
|
|
137
139
|
results.map(contact => {
|
|
138
|
-
if (contact) addressBooksData.contactWebIDs.set(contact.webID, contact.uri);
|
|
140
|
+
if (contact?.webID) addressBooksData.contactWebIDs.set(contact.webID.trim(), contact.uri);
|
|
139
141
|
});
|
|
140
142
|
return addressBooksData;
|
|
141
143
|
}
|
|
@@ -164,11 +166,7 @@ async function getContactData(store, subject) {
|
|
|
164
166
|
phoneNumber
|
|
165
167
|
});
|
|
166
168
|
});
|
|
167
|
-
|
|
168
|
-
// Need to fix below right now don't want to add
|
|
169
|
-
// while testing
|
|
170
|
-
// const webID = subject.value
|
|
171
|
-
const webID = 'https://testingsolidos.solidcommunity.net/profile/card#me';
|
|
169
|
+
const webID = subject.value;
|
|
172
170
|
return {
|
|
173
171
|
name,
|
|
174
172
|
emails,
|
|
@@ -181,6 +179,12 @@ async function addANewAddressBookUriToAddressBooks(context, contactsModule, addr
|
|
|
181
179
|
let contactsAddressBook = null;
|
|
182
180
|
try {
|
|
183
181
|
const addressBook = await getAddressData(context, contactsModule, enteredAddressBookUri);
|
|
182
|
+
if (!addressBook) {
|
|
183
|
+
return {
|
|
184
|
+
addressBooksData,
|
|
185
|
+
addressBook: null
|
|
186
|
+
};
|
|
187
|
+
}
|
|
184
188
|
contactsAddressBook = {
|
|
185
189
|
name: addressBook.title,
|
|
186
190
|
groups: addressBook.groups,
|
|
@@ -215,6 +219,7 @@ async function createContactInAddressBook(context, contactsModule, addressBooksD
|
|
|
215
219
|
});
|
|
216
220
|
} else {
|
|
217
221
|
(0, _contactsErrors.addErrorToErrorDisplay)(context, _texts.groupIsRequired);
|
|
222
|
+
return;
|
|
218
223
|
}
|
|
219
224
|
await context.session.store.fetcher.load(contactUri);
|
|
220
225
|
await addWebIDToContact(context, groupUris, contactUri, contactData.webID);
|
|
@@ -340,8 +345,8 @@ function refreshButton(context, addressBooksData, contactData) {
|
|
|
340
345
|
}
|
|
341
346
|
}
|
|
342
347
|
function checkIfContactExistsByWebID(addressBooksData, subjectUri) {
|
|
343
|
-
if (
|
|
344
|
-
return
|
|
348
|
+
if (!subjectUri?.trim()) return false;
|
|
349
|
+
return addressBooksData.contactWebIDs.has(subjectUri.trim());
|
|
345
350
|
}
|
|
346
351
|
function checkIfContactExistsByName(addressBooksData, name) {
|
|
347
352
|
let normalizedContactName = null;
|
package/lib/profile-pane.js
CHANGED
|
@@ -4897,11 +4897,6 @@ ___CSS_LOADER_EXPORT___.push([module.id, `#add-to-contacts-button-container {
|
|
|
4897
4897
|
justify-content: center;
|
|
4898
4898
|
align-items: center;
|
|
4899
4899
|
line-height: 1;
|
|
4900
|
-
|
|
4901
|
-
/* width: 100% !important;
|
|
4902
|
-
max-width: 100% !important;
|
|
4903
|
-
margin-left: 0;
|
|
4904
|
-
align-self: stretch !important; */
|
|
4905
4900
|
}
|
|
4906
4901
|
|
|
4907
4902
|
.contactsNewGroupForm {
|
|
@@ -5083,20 +5078,19 @@ ___CSS_LOADER_EXPORT___.push([module.id, `#add-to-contacts-button-container {
|
|
|
5083
5078
|
z-index: 8;
|
|
5084
5079
|
}
|
|
5085
5080
|
|
|
5086
|
-
.contactsAddressBookSelector.contactsOverlayActive > *:not(.contactsPopupOverlay):not(.
|
|
5081
|
+
.contactsAddressBookSelector.contactsOverlayActive > *:not(.contactsPopupOverlay):not(.contactsPopupDialog):not(.contactsContactExistsAlert) {
|
|
5087
5082
|
pointer-events: none;
|
|
5088
5083
|
user-select: none;
|
|
5089
5084
|
}
|
|
5090
5085
|
|
|
5091
|
-
.contactsAddressBookSelector.contactsOverlayActive .
|
|
5086
|
+
.contactsAddressBookSelector.contactsOverlayActive .contactsPopupDialog,
|
|
5092
5087
|
.contactsAddressBookSelector.contactsOverlayActive .contactsContactExistsAlert,
|
|
5093
|
-
.contactsAddressBookSelector.contactsOverlayActive .
|
|
5088
|
+
.contactsAddressBookSelector.contactsOverlayActive .contactsPopupDialog *,
|
|
5094
5089
|
.contactsAddressBookSelector.contactsOverlayActive .contactsContactExistsAlert * {
|
|
5095
5090
|
pointer-events: auto;
|
|
5096
5091
|
}
|
|
5097
5092
|
|
|
5098
|
-
|
|
5099
|
-
.contactsPopupMessage {
|
|
5093
|
+
.contactsPopupDialog {
|
|
5100
5094
|
background: #F5F5F5 !important;
|
|
5101
5095
|
color: var(--color-primary);
|
|
5102
5096
|
padding: 2em;
|
|
@@ -5119,7 +5113,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `#add-to-contacts-button-container {
|
|
|
5119
5113
|
padding-top: 3rem !important;
|
|
5120
5114
|
}
|
|
5121
5115
|
|
|
5122
|
-
.
|
|
5116
|
+
.contactsPopupDialog {
|
|
5123
5117
|
max-width: 92vw;
|
|
5124
5118
|
max-height: 78vh;
|
|
5125
5119
|
padding: 1.25rem;
|
|
@@ -5188,7 +5182,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `#add-to-contacts-button-container {
|
|
|
5188
5182
|
line-height: 1;
|
|
5189
5183
|
}
|
|
5190
5184
|
|
|
5191
|
-
`, "",{"version":3,"sources":["webpack://./src/styles/ContactsCard.css"],"names":[],"mappings":"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","sourcesContent":["#add-to-contacts-button-container {\n position: relative;\n overflow: visible;\n}\n\n.contactsAddressBookSelector {\n width: fit-content;\n max-width: min(94vw, 48rem);\n min-width: 0;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n border-radius: var(--border-radius-base);\n box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;\n background: #F0F0F0;\n color: var(--color-primary);\n padding-top: 4em;\n align-items: stretch;\n box-sizing: border-box;\n gap: 7px;\n display: flex;\n flex-direction: column;\n font-weight: 600;\n position: absolute;\n top: 54%;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n margin-top: 0;\n margin: 0;\n z-index: 200;\n opacity: 1;\n}\n\n@media (max-width: 900px) {\n .contactsAddressBookSelector {\n top: 54%;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .contactsAddressBookDetails {\n flex-direction: column !important; /* Stacks items vertically on small screens */\n align-items: center !important;\n width: 100% !important;\n max-height: 60vh;\n overflow-y: auto;\n overflow-x: hidden; \n }\n\n .contactsAddressBookCreationDiv .contactsNewContactCreationButton {\n width: fit-content !important;\n min-width: 10em;\n margin-left: auto !important;\n margin-right: auto !important;\n align-self: center !important;\n display: inline-flex !important;\n justify-content: center !important;\n align-items: center !important;\n text-align: center;\n }\n}\n\n@media (max-width: 333px) {\n .contactsAddressBookSelector {\n width: 96vw;\n max-width: 96vw;\n min-width: 0;\n top: 50%;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n padding-top: 3rem;\n position: fixed;\n overflow-x: hidden;\n }\n\n .contactsAddressBookDetails {\n width: 100% !important;\n min-width: 0;\n padding: 0.5rem;\n }\n .contactsAddressBookList,\n .contactsGroupList {\n min-width: 0;\n max-width: 100% !important;\n width: 100%;\n }\n}\n\n.contactsAddressBookCreationDiv {\n width: 100%;\n border-radius: var(--border-radius-base);\n background: #F0F0F0;\n box-sizing: border-box;\n padding: 5px;\n gap: 5px;\n display: flex;\n flex-direction: column;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;\n}\n\n.contactsHelpersButtonDiv {\n display: flex;\n flex-direction: row;\n gap: var(--spacing-md);\n justify-content: center;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;\n padding: var(--spacing-md);\n border-radius: var(--border-radius-base);\n}\n\n.contactsAddressBookCreationButton {\n flex-shrink: 0;\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n color: var(--color-primary) !important;\n border-radius: 8px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.contactsAddressBookUriEntryButton {\n flex-shrink: 0;\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n color: var(--color-primary) !important;\n border-radius: 8px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.contactsActionButton {\n background: var(--color-primary);\n color: white;\n border-radius: var(--border-radius-base);\n transition: all 0.3s ease-in-out;\n cursor: pointer;\n}\n\n.contactsActionButton:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n}\n\n.contactsActionButton:active {\n box-shadow: 0 1px 2px white;\n}\n\n.contactsActionButton:focus,\n.contactsActionButton:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px white, 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1; \n}\n\n.contactsAddressBookDetails {\n width: 100%;\n min-width: 0;\n min-height: 0;\n border-radius: var(--border-radius-base);\n justify-content: flex-start;\n box-sizing: border-box;\n gap: 15px;\n display: flex;\n flex-direction: row;\n padding: var(--spacing-md);\n overflow-x: auto;\n overflow-y: auto;\n}\n\n.contactsAddressBookUriEntry {\n width: calc(100% - 1rem) !important;\n max-width: calc(100% - 1rem) !important;\n min-width: 0;\n box-sizing: border-box;\n padding-top: 3em !important;\n gap: 5px;\n display: flex;\n align-self: stretch;\n flex-direction: column;\n\n}\n\n.contactsAddressBookUriEntryForm {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n background: #F0F0F0;\n box-sizing: border-box;\n gap: 5px;\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n align-items: stretch;\n}\n\n.contactsAddressBookUriInput {\n width: clamp(14rem, 60vw, 22rem);\n max-width: 100%;\n min-width: 0;\n flex: 0 0 auto;\n align-self: flex-start;\n padding: 5px;\n gap: 15px;\n border-radius: var(--border-radius-base);\n border: 1px solid #ccc;\n}\n\n.contactsAddressBookUriEntryAddButton {\n width: 10%;\n min-width: 0;\n max-width: 4em;\n align-self: flex-end !important;\n margin-left: auto;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n line-height: 1;\n\n /* width: 100% !important;\n max-width: 100% !important;\n margin-left: 0;\n align-self: stretch !important; */\n}\n\n.contactsNewGroupForm {\n box-sizing: border-box;\n padding-top: 2.5rem !important;\n gap: 5px;\n display: flex;\n flex-direction: column;\n}\n\n.contactsCreateNewAddressBook {\n border-radius: var(--border-radius);\n color: white;\n padding: var(--spacing-md);\n justify-content: center;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;\n}\n\n.contactsAddressBookList {\n width: 100%;\n max-width: fit-content !important;\n box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);\n min-width: 200px;\n box-sizing: border-box;\n gap: 4px;\n display: flex;\n flex-direction: column;\n}\n\n.contactsGroupList {\n width: auto;\n max-width: fit-content !important;\n min-width: 200px;\n box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);\n box-sizing: border-box;\n gap: 4px;\n display: flex;\n flex-direction: column;\n}\n\n.contactsErrorDisplay {\n width: 90%;\n align-self: flex-end;\n padding: 5px;\n position: absolute;\n background: pink;\n display: none;\n color: #787878;\n border-radius: var(--border-radius-base);\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; \n z-index: 3;\n}\n\n.contactsShowErrors {\n display: flex !important;\n flex-direction: row;\n justify-content: center;\n}\n.contactsCloseErrorDisplayButton {\n position: absolute;\n top: 0.2rem;\n right: 0.2rem;\n background: transparent;\n color: #787878;\n font-size: var(--font-size-xs);\n border: none;\n font-size: var(--font-size-sm);\n cursor: pointer;\n z-index: 4;\n}\n\n.contactsCloseButton {\n box-shadow: var(--box-shadow);\n border-radius: var(--border-radius-base);\n color: #787878 !important;\n padding: 1em;\n font-size: var(--font-size-sm);\n position: absolute;\n top: 0; \n right: 0;\n display: inline-block;\n width: auto !important;\n height: auto !important;\n cursor: pointer;\n font-size: var(--font-size-xs);\n line-height: 1;\n}\n\n.contactsCloseButton:hover {\n box-shadow: 0 2px 4px var(--color-primary) !important;\n}\n\n.contactsCloseButton:focus,\n.contactsCloseButton:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px white, 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}\n\n.contactsNewAddressForm {\n padding-top: 3em !important;\n gap: 5px;\n display: flex;\n flex-direction: column;\n}\n\n.contactsButton {\n flex-shrink: 0;\n background: #F0F0F0;\n color: #787878;\n border-radius: 8px;\n text-align: left;\n padding: var(--spacing-md);\n cursor: pointer;\n white-space: nowrap;\n}\n\n.contactsButton:hover {\n color: var(--color-primary);\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n} \n\n.contactsSelectedButton {\n background: color-mix(in srgb, var(--color-primary), white 60%) !important; \n color: var(--color-primary);\n}\n\n.contactsContactExistsAlert {\n background: #F0F0F0 !important;\n color: #787878;\n padding: 10px;\n border-radius: var(--border-radius-base);\n box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;\n z-index: 10;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 300px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 15px; \n text-wrap: pretty;\n}\n\n.contactsContactExistsActions {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-items: center;\n gap: 10px;\n width: auto;\n}\n\n.contactsContactExistsActions .contactsConfirmButton,\n.contactsContactExistsActions .contactsCancelButton {\n display: inline-flex !important;\n width: auto !important;\n min-width: fit-content;\n flex: 0 0 auto;\n margin: 0;\n white-space: nowrap;\n}\n\n[role=\"alert\"] {\n border: none !important; /* Hides the element from all users and AT */\n}\n\n.contactsPopupOverlay {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.2);\n z-index: 8;\n}\n\n.contactsAddressBookSelector.contactsOverlayActive > *:not(.contactsPopupOverlay):not(.contactsPopupMessage):not(.contactsContactExistsAlert) {\n pointer-events: none;\n user-select: none;\n}\n\n.contactsAddressBookSelector.contactsOverlayActive .contactsPopupMessage,\n.contactsAddressBookSelector.contactsOverlayActive .contactsContactExistsAlert,\n.contactsAddressBookSelector.contactsOverlayActive .contactsPopupMessage *,\n.contactsAddressBookSelector.contactsOverlayActive .contactsContactExistsAlert * {\n pointer-events: auto;\n}\n\n/* SAM Look at finding a better name than popupMessage */\n.contactsPopupMessage {\n background: #F5F5F5 !important;\n color: var(--color-primary);\n padding: 2em;\n border-radius: var(--border-radius-base);\n box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;\n z-index: 50;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: auto;\n max-width: min(92vw, 34rem);\n max-height: calc(100vh - 6rem);\n overflow: auto;\n box-sizing: border-box;\n}\n\n@media (max-width: 600px) {\n .contactsAddressBookUriEntry {\n padding-top: 3rem !important;\n }\n\n .contactsPopupMessage {\n max-width: 92vw;\n max-height: 78vh;\n padding: 1.25rem;\n }\n}\n\n.contactsConfirmButton {\n background: var(--color-primary);\n color: white;\n border-radius: var(--border-radius-base);\n padding: var(--spacing-md);\n transition: all 0.3s ease-in-out;\n cursor: pointer;\n}\n\n.contactsConfirmButton:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n}\n\n.contactsCancelButton {\n background: transparent;\n color: #787878;\n border-radius: var(--border-radius-base);\n padding: var(--spacing-md);\n border: 1px solid #ccc;\n transition: all 0.3s ease-in-out;\n cursor: pointer;\n}\n.contactsCancelButton:hover {\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n color: var(--color-primary);\n} \n\n.contactsNewContactCreationButton {\n width: 10em !important;\n align-self: flex-end;\n line-height: 1;\n}\n\n.contactsCreateGroupCreationButton {\n flex-shrink: 0;\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n color: var(--color-primary) !important;\n border-radius: 8px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.contactsCloseButton {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n left: auto;\n margin: 0;\n align-self: auto !important;\n background: transparent;\n color: #787878;\n font-size: var(--font-size-xs);\n border: none;\n font-size: var(--font-size-sm);\n cursor: pointer;\n z-index: 100 !important;\n padding: 0.35rem 0.5rem;\n line-height: 1;\n}\n\n"],"sourceRoot":""}]);
|
|
5185
|
+
`, "",{"version":3,"sources":["webpack://./src/styles/ContactsCard.css"],"names":[],"mappings":"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","sourcesContent":["#add-to-contacts-button-container {\n position: relative;\n overflow: visible;\n}\n\n.contactsAddressBookSelector {\n width: fit-content;\n max-width: min(94vw, 48rem);\n min-width: 0;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n border-radius: var(--border-radius-base);\n box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;\n background: #F0F0F0;\n color: var(--color-primary);\n padding-top: 4em;\n align-items: stretch;\n box-sizing: border-box;\n gap: 7px;\n display: flex;\n flex-direction: column;\n font-weight: 600;\n position: absolute;\n top: 54%;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n margin-top: 0;\n margin: 0;\n z-index: 200;\n opacity: 1;\n}\n\n@media (max-width: 900px) {\n .contactsAddressBookSelector {\n top: 54%;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .contactsAddressBookDetails {\n flex-direction: column !important; /* Stacks items vertically on small screens */\n align-items: center !important;\n width: 100% !important;\n max-height: 60vh;\n overflow-y: auto;\n overflow-x: hidden; \n }\n\n .contactsAddressBookCreationDiv .contactsNewContactCreationButton {\n width: fit-content !important;\n min-width: 10em;\n margin-left: auto !important;\n margin-right: auto !important;\n align-self: center !important;\n display: inline-flex !important;\n justify-content: center !important;\n align-items: center !important;\n text-align: center;\n }\n}\n\n@media (max-width: 333px) {\n .contactsAddressBookSelector {\n width: 96vw;\n max-width: 96vw;\n min-width: 0;\n top: 50%;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n padding-top: 3rem;\n position: fixed;\n overflow-x: hidden;\n }\n\n .contactsAddressBookDetails {\n width: 100% !important;\n min-width: 0;\n padding: 0.5rem;\n }\n .contactsAddressBookList,\n .contactsGroupList {\n min-width: 0;\n max-width: 100% !important;\n width: 100%;\n }\n}\n\n.contactsAddressBookCreationDiv {\n width: 100%;\n border-radius: var(--border-radius-base);\n background: #F0F0F0;\n box-sizing: border-box;\n padding: 5px;\n gap: 5px;\n display: flex;\n flex-direction: column;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;\n}\n\n.contactsHelpersButtonDiv {\n display: flex;\n flex-direction: row;\n gap: var(--spacing-md);\n justify-content: center;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;\n padding: var(--spacing-md);\n border-radius: var(--border-radius-base);\n}\n\n.contactsAddressBookCreationButton {\n flex-shrink: 0;\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n color: var(--color-primary) !important;\n border-radius: 8px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.contactsAddressBookUriEntryButton {\n flex-shrink: 0;\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n color: var(--color-primary) !important;\n border-radius: 8px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.contactsActionButton {\n background: var(--color-primary);\n color: white;\n border-radius: var(--border-radius-base);\n transition: all 0.3s ease-in-out;\n cursor: pointer;\n}\n\n.contactsActionButton:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n}\n\n.contactsActionButton:active {\n box-shadow: 0 1px 2px white;\n}\n\n.contactsActionButton:focus,\n.contactsActionButton:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px white, 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1; \n}\n\n.contactsAddressBookDetails {\n width: 100%;\n min-width: 0;\n min-height: 0;\n border-radius: var(--border-radius-base);\n justify-content: flex-start;\n box-sizing: border-box;\n gap: 15px;\n display: flex;\n flex-direction: row;\n padding: var(--spacing-md);\n overflow-x: auto;\n overflow-y: auto;\n}\n\n.contactsAddressBookUriEntry {\n width: calc(100% - 1rem) !important;\n max-width: calc(100% - 1rem) !important;\n min-width: 0;\n box-sizing: border-box;\n padding-top: 3em !important;\n gap: 5px;\n display: flex;\n align-self: stretch;\n flex-direction: column;\n\n}\n\n.contactsAddressBookUriEntryForm {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n background: #F0F0F0;\n box-sizing: border-box;\n gap: 5px;\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n align-items: stretch;\n}\n\n.contactsAddressBookUriInput {\n width: clamp(14rem, 60vw, 22rem);\n max-width: 100%;\n min-width: 0;\n flex: 0 0 auto;\n align-self: flex-start;\n padding: 5px;\n gap: 15px;\n border-radius: var(--border-radius-base);\n border: 1px solid #ccc;\n}\n\n.contactsAddressBookUriEntryAddButton {\n width: 10%;\n min-width: 0;\n max-width: 4em;\n align-self: flex-end !important;\n margin-left: auto;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n line-height: 1;\n}\n\n.contactsNewGroupForm {\n box-sizing: border-box;\n padding-top: 2.5rem !important;\n gap: 5px;\n display: flex;\n flex-direction: column;\n}\n\n.contactsCreateNewAddressBook {\n border-radius: var(--border-radius);\n color: white;\n padding: var(--spacing-md);\n justify-content: center;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;\n}\n\n.contactsAddressBookList {\n width: 100%;\n max-width: fit-content !important;\n box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);\n min-width: 200px;\n box-sizing: border-box;\n gap: 4px;\n display: flex;\n flex-direction: column;\n}\n\n.contactsGroupList {\n width: auto;\n max-width: fit-content !important;\n min-width: 200px;\n box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);\n box-sizing: border-box;\n gap: 4px;\n display: flex;\n flex-direction: column;\n}\n\n.contactsErrorDisplay {\n width: 90%;\n align-self: flex-end;\n padding: 5px;\n position: absolute;\n background: pink;\n display: none;\n color: #787878;\n border-radius: var(--border-radius-base);\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; \n z-index: 3;\n}\n\n.contactsShowErrors {\n display: flex !important;\n flex-direction: row;\n justify-content: center;\n}\n.contactsCloseErrorDisplayButton {\n position: absolute;\n top: 0.2rem;\n right: 0.2rem;\n background: transparent;\n color: #787878;\n font-size: var(--font-size-xs);\n border: none;\n font-size: var(--font-size-sm);\n cursor: pointer;\n z-index: 4;\n}\n\n.contactsCloseButton {\n box-shadow: var(--box-shadow);\n border-radius: var(--border-radius-base);\n color: #787878 !important;\n padding: 1em;\n font-size: var(--font-size-sm);\n position: absolute;\n top: 0; \n right: 0;\n display: inline-block;\n width: auto !important;\n height: auto !important;\n cursor: pointer;\n font-size: var(--font-size-xs);\n line-height: 1;\n}\n\n.contactsCloseButton:hover {\n box-shadow: 0 2px 4px var(--color-primary) !important;\n}\n\n.contactsCloseButton:focus,\n.contactsCloseButton:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px white, 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}\n\n.contactsNewAddressForm {\n padding-top: 3em !important;\n gap: 5px;\n display: flex;\n flex-direction: column;\n}\n\n.contactsButton {\n flex-shrink: 0;\n background: #F0F0F0;\n color: #787878;\n border-radius: 8px;\n text-align: left;\n padding: var(--spacing-md);\n cursor: pointer;\n white-space: nowrap;\n}\n\n.contactsButton:hover {\n color: var(--color-primary);\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n} \n\n.contactsSelectedButton {\n background: color-mix(in srgb, var(--color-primary), white 60%) !important; \n color: var(--color-primary);\n}\n\n.contactsContactExistsAlert {\n background: #F0F0F0 !important;\n color: #787878;\n padding: 10px;\n border-radius: var(--border-radius-base);\n box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;\n z-index: 10;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 300px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 15px; \n text-wrap: pretty;\n}\n\n.contactsContactExistsActions {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-items: center;\n gap: 10px;\n width: auto;\n}\n\n.contactsContactExistsActions .contactsConfirmButton,\n.contactsContactExistsActions .contactsCancelButton {\n display: inline-flex !important;\n width: auto !important;\n min-width: fit-content;\n flex: 0 0 auto;\n margin: 0;\n white-space: nowrap;\n}\n\n[role=\"alert\"] {\n border: none !important; /* Hides the element from all users and AT */\n}\n\n.contactsPopupOverlay {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.2);\n z-index: 8;\n}\n\n.contactsAddressBookSelector.contactsOverlayActive > *:not(.contactsPopupOverlay):not(.contactsPopupDialog):not(.contactsContactExistsAlert) {\n pointer-events: none;\n user-select: none;\n}\n\n.contactsAddressBookSelector.contactsOverlayActive .contactsPopupDialog,\n.contactsAddressBookSelector.contactsOverlayActive .contactsContactExistsAlert,\n.contactsAddressBookSelector.contactsOverlayActive .contactsPopupDialog *,\n.contactsAddressBookSelector.contactsOverlayActive .contactsContactExistsAlert * {\n pointer-events: auto;\n}\n\n.contactsPopupDialog {\n background: #F5F5F5 !important;\n color: var(--color-primary);\n padding: 2em;\n border-radius: var(--border-radius-base);\n box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;\n z-index: 50;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: auto;\n max-width: min(92vw, 34rem);\n max-height: calc(100vh - 6rem);\n overflow: auto;\n box-sizing: border-box;\n}\n\n@media (max-width: 600px) {\n .contactsAddressBookUriEntry {\n padding-top: 3rem !important;\n }\n\n .contactsPopupDialog {\n max-width: 92vw;\n max-height: 78vh;\n padding: 1.25rem;\n }\n}\n\n.contactsConfirmButton {\n background: var(--color-primary);\n color: white;\n border-radius: var(--border-radius-base);\n padding: var(--spacing-md);\n transition: all 0.3s ease-in-out;\n cursor: pointer;\n}\n\n.contactsConfirmButton:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n}\n\n.contactsCancelButton {\n background: transparent;\n color: #787878;\n border-radius: var(--border-radius-base);\n padding: var(--spacing-md);\n border: 1px solid #ccc;\n transition: all 0.3s ease-in-out;\n cursor: pointer;\n}\n.contactsCancelButton:hover {\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n color: var(--color-primary);\n} \n\n.contactsNewContactCreationButton {\n width: 10em !important;\n align-self: flex-end;\n line-height: 1;\n}\n\n.contactsCreateGroupCreationButton {\n flex-shrink: 0;\n background: color-mix(in srgb, var(--color-primary), white 85%) !important; \n color: var(--color-primary) !important;\n border-radius: 8px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.contactsCloseButton {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n left: auto;\n margin: 0;\n align-self: auto !important;\n background: transparent;\n color: #787878;\n font-size: var(--font-size-xs);\n border: none;\n font-size: var(--font-size-sm);\n cursor: pointer;\n z-index: 100 !important;\n padding: 0.35rem 0.5rem;\n line-height: 1;\n}\n\n"],"sourceRoot":""}]);
|
|
5192
5186
|
// Exports
|
|
5193
5187
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
5194
5188
|
|
|
@@ -11235,7 +11229,7 @@ const createAddressBookUriEntryDiv = (context, contactsModule, addressBooksData,
|
|
|
11235
11229
|
addressBookUriEntryDiv.setAttribute('aria-label', 'Address book URI entry div');
|
|
11236
11230
|
addressBookUriEntryDiv.setAttribute('aria-describedby', 'addressbook-uri-entry-div');
|
|
11237
11231
|
addressBookUriEntryDiv.setAttribute('id', 'contacts-addressbook-uri-entry');
|
|
11238
|
-
addressBookUriEntryDiv.classList.add('
|
|
11232
|
+
addressBookUriEntryDiv.classList.add('contactsPopupDialog', 'contactsAddressBookUriEntry');
|
|
11239
11233
|
const closeButton = createCloseButton(context, addressBookUriEntryDiv, 'contactsAddressBookUriEntryCloseButton');
|
|
11240
11234
|
addressBookUriEntryDiv.appendChild(closeButton);
|
|
11241
11235
|
addressBookUriEntryDiv.appendChild(createAddressBookUriEntryForm(context, contactsModule, addressBooksData, contactData));
|
|
@@ -11567,7 +11561,7 @@ const createNewAddressBookForm = (context, addressBooksData, contactsModule, con
|
|
|
11567
11561
|
newAddressBookForm.method = 'post';
|
|
11568
11562
|
newAddressBookForm.innerHTML = 'Create a new address book';
|
|
11569
11563
|
newAddressBookForm.setAttribute('id', 'new-addressbook-form');
|
|
11570
|
-
newAddressBookForm.classList.add('
|
|
11564
|
+
newAddressBookForm.classList.add('contactsPopupDialog', 'contactsNewAddressForm');
|
|
11571
11565
|
const addressBookNameLabel = context.dom.createElement('label');
|
|
11572
11566
|
addressBookNameLabel.classList.add('label');
|
|
11573
11567
|
addressBookNameLabel.setAttribute('for', 'addressBookNameInput');
|
|
@@ -11691,7 +11685,7 @@ const createGroupNameForm = (context, contactsModule, addressBooksData, contactD
|
|
|
11691
11685
|
newGroupForm.addEventListener('submit', addGroupEventListener);
|
|
11692
11686
|
newGroupForm.innerHTML = 'Create a new group';
|
|
11693
11687
|
newGroupForm.setAttribute('id', 'new-group-form');
|
|
11694
|
-
newGroupForm.classList.add('
|
|
11688
|
+
newGroupForm.classList.add('contactsPopupDialog', 'contactsNewGroupForm');
|
|
11695
11689
|
const groupNameLabel = context.dom.createElement('label');
|
|
11696
11690
|
groupNameLabel.classList.add('label');
|
|
11697
11691
|
groupNameLabel.setAttribute('for', 'groupNameInput');
|
|
@@ -11850,7 +11844,7 @@ const removePopupOverlayIfNoPopup = (context) => {
|
|
|
11850
11844
|
const selectorDialog = context.dom.getElementById('contacts-selector-dialog');
|
|
11851
11845
|
if (!selectorDialog)
|
|
11852
11846
|
return;
|
|
11853
|
-
const activePopup = selectorDialog.querySelector('.
|
|
11847
|
+
const activePopup = selectorDialog.querySelector('.contactsPopupDialog, .contactsContactExistsAlert');
|
|
11854
11848
|
if (activePopup)
|
|
11855
11849
|
return;
|
|
11856
11850
|
const overlay = selectorDialog.querySelector(`#${CONTACTS_POPUP_OVERLAY_ID}`);
|
|
@@ -11966,9 +11960,11 @@ async function getAddressBooks(context, contactsModule) {
|
|
|
11966
11960
|
privateUris: []
|
|
11967
11961
|
};
|
|
11968
11962
|
// let addressBookUris = await contactsModule.listAddressBooks(me.value)
|
|
11969
|
-
const publicAddressBookPromises =
|
|
11963
|
+
const publicAddressBookPromises = addressBookUris.publicUris.map(addressBook => getAddressData(context, contactsModule, addressBook));
|
|
11970
11964
|
const publicAddressBooksData = await Promise.all(publicAddressBookPromises);
|
|
11971
11965
|
publicAddressBooksData.map((addressBook) => {
|
|
11966
|
+
if (!addressBook)
|
|
11967
|
+
return;
|
|
11972
11968
|
addressBooksData.public.set(addressBook.uri, {
|
|
11973
11969
|
name: addressBook.title,
|
|
11974
11970
|
groups: addressBook.groups,
|
|
@@ -11982,6 +11978,8 @@ async function getAddressBooks(context, contactsModule) {
|
|
|
11982
11978
|
const privateAddressBookPromises = addressBookUris.privateUris.map(addressBook => getAddressData(context, contactsModule, addressBook));
|
|
11983
11979
|
const privateAddressBooksData = await Promise.all(privateAddressBookPromises);
|
|
11984
11980
|
privateAddressBooksData.map((addressBook) => {
|
|
11981
|
+
if (!addressBook)
|
|
11982
|
+
return;
|
|
11985
11983
|
addressBooksData.private.set(addressBook.uri, {
|
|
11986
11984
|
name: addressBook.title,
|
|
11987
11985
|
groups: addressBook.groups,
|
|
@@ -12016,8 +12014,8 @@ async function processContactWebIDs(context, addressBooksData, allContacts) {
|
|
|
12016
12014
|
const contactPromises = allContacts.map(getWebID.bind(null, context));
|
|
12017
12015
|
const results = await Promise.all(contactPromises);
|
|
12018
12016
|
results.map((contact) => {
|
|
12019
|
-
if (contact)
|
|
12020
|
-
addressBooksData.contactWebIDs.set(contact.webID, contact.uri);
|
|
12017
|
+
if (contact === null || contact === void 0 ? void 0 : contact.webID)
|
|
12018
|
+
addressBooksData.contactWebIDs.set(contact.webID.trim(), contact.uri);
|
|
12021
12019
|
});
|
|
12022
12020
|
return addressBooksData;
|
|
12023
12021
|
}
|
|
@@ -12040,10 +12038,7 @@ async function getContactData(store, subject) {
|
|
|
12040
12038
|
type = store.any(node, external_UI_.ns.rdf('type'), null, subject.doc());
|
|
12041
12039
|
phoneNumbers.push({ type, phoneNumber });
|
|
12042
12040
|
});
|
|
12043
|
-
|
|
12044
|
-
// while testing
|
|
12045
|
-
// const webID = subject.value
|
|
12046
|
-
const webID = 'https://testingsolidos.solidcommunity.net/profile/card#me';
|
|
12041
|
+
const webID = subject.value;
|
|
12047
12042
|
return {
|
|
12048
12043
|
name,
|
|
12049
12044
|
emails,
|
|
@@ -12056,6 +12051,9 @@ async function addANewAddressBookUriToAddressBooks(context, contactsModule, addr
|
|
|
12056
12051
|
let contactsAddressBook = null;
|
|
12057
12052
|
try {
|
|
12058
12053
|
const addressBook = await getAddressData(context, contactsModule, enteredAddressBookUri);
|
|
12054
|
+
if (!addressBook) {
|
|
12055
|
+
return { addressBooksData, addressBook: null };
|
|
12056
|
+
}
|
|
12059
12057
|
contactsAddressBook = {
|
|
12060
12058
|
name: addressBook.title,
|
|
12061
12059
|
groups: addressBook.groups,
|
|
@@ -12085,6 +12083,7 @@ async function createContactInAddressBook(context, contactsModule, addressBooksD
|
|
|
12085
12083
|
}
|
|
12086
12084
|
else {
|
|
12087
12085
|
addErrorToErrorDisplay(context, groupIsRequired);
|
|
12086
|
+
return;
|
|
12088
12087
|
}
|
|
12089
12088
|
await context.session.store.fetcher.load(contactUri);
|
|
12090
12089
|
await addWebIDToContact(context, groupUris, contactUri, contactData.webID);
|
|
@@ -12235,9 +12234,9 @@ function refreshButton(context, addressBooksData, contactData) {
|
|
|
12235
12234
|
}
|
|
12236
12235
|
}
|
|
12237
12236
|
function checkIfContactExistsByWebID(addressBooksData, subjectUri) {
|
|
12238
|
-
if (
|
|
12239
|
-
return
|
|
12240
|
-
return
|
|
12237
|
+
if (!(subjectUri === null || subjectUri === void 0 ? void 0 : subjectUri.trim()))
|
|
12238
|
+
return false;
|
|
12239
|
+
return addressBooksData.contactWebIDs.has(subjectUri.trim());
|
|
12241
12240
|
}
|
|
12242
12241
|
function checkIfContactExistsByName(addressBooksData, name) {
|
|
12243
12242
|
let normalizedContactName = null;
|
|
@@ -13269,16 +13268,16 @@ const createAddMeToYourContactsButton = async (subject, context) => {
|
|
|
13269
13268
|
needsBorder: true,
|
|
13270
13269
|
});
|
|
13271
13270
|
button.setAttribute('id', 'add-to-contacts-button');
|
|
13272
|
-
//button.refresh = refreshButton(context, subject, addressBooksData)
|
|
13273
13271
|
button.refresh = refreshButton();
|
|
13274
13272
|
function refreshButton() {
|
|
13275
13273
|
if (checkIfAnyUserLoggedIn(me)) {
|
|
13276
|
-
const contactExistsByWebID = checkIfContactExistsByWebID(addressBooksData, contactData.webID);
|
|
13277
|
-
const contactExistsByName = checkIfContactExistsByName(addressBooksData, contactData.name);
|
|
13274
|
+
const contactExistsByWebID = (contactData) ? checkIfContactExistsByWebID(addressBooksData, contactData.webID) : false;
|
|
13275
|
+
const contactExistsByName = (contactData) ? checkIfContactExistsByName(addressBooksData, contactData.name) : false;
|
|
13278
13276
|
if (contactExistsByWebID) {
|
|
13279
13277
|
//logged in and friend exists or friend was just added
|
|
13280
13278
|
button.innerHTML = contactExistsAlreadyButtonText.toUpperCase();
|
|
13281
13279
|
button.onclick = null;
|
|
13280
|
+
button.setAttribute('disabled', 'true');
|
|
13282
13281
|
}
|
|
13283
13282
|
else if (contactExistsByName) {
|
|
13284
13283
|
button.innerHTML = contactExistsAlreadyByNameButtonText.toUpperCase();
|