@box/unified-share-modal 1.30.1 → 1.31.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.
Files changed (50) hide show
  1. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/collaboration-section.js +151 -109
  2. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/messages.js +38 -2
  3. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/shield-restriction-notice.js +128 -0
  4. package/dist/esm/lib/contexts/unified-share-form-context.js +36 -29
  5. package/dist/esm/lib/hooks/use-collaboration-form.js +51 -50
  6. package/dist/esm/lib/hooks/use-form-validation.js +38 -27
  7. package/dist/esm/lib/messages.js +8 -0
  8. package/dist/esm/lib/unified-share-modal.js +57 -55
  9. package/dist/esm/lib/utils/collaborator.js +7 -6
  10. package/dist/esm/lib/utils/index.js +24 -23
  11. package/dist/i18n/bn-IN.js +11 -0
  12. package/dist/i18n/da-DK.js +11 -0
  13. package/dist/i18n/de-DE.js +11 -0
  14. package/dist/i18n/en-AU.js +11 -0
  15. package/dist/i18n/en-CA.js +11 -0
  16. package/dist/i18n/en-GB.js +11 -0
  17. package/dist/i18n/en-US.js +11 -0
  18. package/dist/i18n/en-US.properties +22 -0
  19. package/dist/i18n/en-x-pseudo.js +11 -0
  20. package/dist/i18n/es-419.js +11 -0
  21. package/dist/i18n/es-ES.js +11 -0
  22. package/dist/i18n/fi-FI.js +11 -0
  23. package/dist/i18n/fr-CA.js +11 -0
  24. package/dist/i18n/fr-FR.js +11 -0
  25. package/dist/i18n/hi-IN.js +11 -0
  26. package/dist/i18n/it-IT.js +11 -0
  27. package/dist/i18n/ja-JP.js +11 -0
  28. package/dist/i18n/json/src/lib/components/unified-share-form-modal/collaboration-section/messages.json +1 -1
  29. package/dist/i18n/json/src/lib/messages.json +1 -1
  30. package/dist/i18n/ko-KR.js +11 -0
  31. package/dist/i18n/nb-NO.js +11 -0
  32. package/dist/i18n/nl-NL.js +11 -0
  33. package/dist/i18n/pl-PL.js +11 -0
  34. package/dist/i18n/pt-BR.js +11 -0
  35. package/dist/i18n/ru-RU.js +11 -0
  36. package/dist/i18n/sv-SE.js +11 -0
  37. package/dist/i18n/tr-TR.js +11 -0
  38. package/dist/i18n/zh-CN.js +11 -0
  39. package/dist/i18n/zh-TW.js +11 -0
  40. package/dist/styles/shield-restriction-notice.css +1 -0
  41. package/dist/types/lib/components/unified-share-form-modal/collaboration-section/messages.d.ts +45 -0
  42. package/dist/types/lib/components/unified-share-form-modal/collaboration-section/shield-restriction-notice.d.ts +8 -0
  43. package/dist/types/lib/contexts/unified-share-form-context.d.ts +3 -1
  44. package/dist/types/lib/contexts/unified-share-modal-context.d.ts +2 -1
  45. package/dist/types/lib/hooks/use-form-validation.d.ts +1 -0
  46. package/dist/types/lib/messages.d.ts +10 -0
  47. package/dist/types/lib/types.d.ts +83 -7
  48. package/dist/types/lib/unified-share-modal.d.ts +2 -1
  49. package/dist/types/lib/utils/collaborator.d.ts +3 -1
  50. package/package.json +2 -2
@@ -1,83 +1,84 @@
1
- import { useCallback as i } from "react";
2
- import { useFormValidation as M } from "./use-form-validation.js";
3
- import { useSharingAction as O } from "./use-sharing-action.js";
4
- import { useUnifiedShareFormContext as P } from "../contexts/unified-share-form-context.js";
5
- import { useUnifiedShareModalContext as R } from "../contexts/unified-share-modal-context.js";
6
- const j = (h, p) => {
1
+ import { useCallback as s } from "react";
2
+ import { useFormValidation as L } from "./use-form-validation.js";
3
+ import { useSharingAction as j } from "./use-sharing-action.js";
4
+ import { useUnifiedShareModalContext as M } from "../contexts/unified-share-modal-context.js";
5
+ import { useUnifiedShareFormContext as O } from "../contexts/unified-share-form-context.js";
6
+ const N = (p, v) => {
7
7
  const {
8
- errors: d,
8
+ errors: g,
9
9
  setFieldError: a,
10
- validateCollaborationLimit: r,
11
- validateUserContact: f,
10
+ validateCollaborationLimit: i,
11
+ validateUserContact: C,
12
12
  validateUserSelector: l
13
+ } = L(), {
14
+ config: F,
15
+ contactService: U
13
16
  } = M(), {
14
- config: v,
15
- contactService: F
16
- } = R(), {
17
17
  collaborationLimit: n
18
- } = v, {
19
- collaborationRole: U,
20
- messageValue: x,
21
- setContactValue: s,
22
- setMessageValue: y,
23
- setUserContacts: c,
24
- shareView: V,
18
+ } = F, {
19
+ collaborationRole: x,
20
+ messageValue: y,
21
+ setContactValue: u,
22
+ setMessageValue: V,
23
+ setUserContacts: r,
24
+ shareView: w,
25
+ shieldRestriction: m,
25
26
  userContacts: e
26
- } = P(), {
27
- isLoading: w,
28
- onAction: B
29
- } = O(h, p), {
30
- getContactByEmail: u
31
- } = F, C = () => {
32
- c([]), s(""), y(""), a("user-contact", "");
33
- }, E = i((t) => {
34
- r(e, n) || a("user-contact", ""), s(t);
35
- }, [n, s, a, e, r]), g = i(async (t) => {
27
+ } = O(), {
28
+ isLoading: R,
29
+ onAction: A
30
+ } = j(p, v), {
31
+ getContactByEmail: d
32
+ } = U, h = () => {
33
+ r([]), u(""), V(""), a("user-contact", "");
34
+ }, B = s((t) => {
35
+ i(e, n) || a("user-contact", ""), u(t);
36
+ }, [n, u, a, e, i]), S = s(async (t) => {
36
37
  if (t.id)
37
38
  return t;
38
- if (u) {
39
- const o = await u(t.value);
39
+ if (d) {
40
+ const o = await d(t.value);
40
41
  if (o && o.id)
41
42
  return o;
42
43
  }
43
- return f(t.value) ? null : {
44
+ return C(t.value) ? null : {
44
45
  email: t.value,
45
46
  id: 0,
46
47
  isExternalUser: !0,
47
48
  name: t.value,
48
49
  value: t.value
49
50
  };
50
- }, [u, f]), m = i(async (t) => {
51
- if (a("user-contact", ""), l(t), n && r(t, n), e.length >= t.length) {
52
- c(t);
51
+ }, [d, C]), f = s(async (t) => {
52
+ if (a("user-contact", ""), l(t), n && i(t, n), e.length >= t.length) {
53
+ r(t);
53
54
  return;
54
55
  }
55
- const [o, S] = [t.slice(0, -1), t[t.length - 1]], b = await g(S), A = b ? [...o, b] : o;
56
- c(A.filter(Boolean));
57
- }, [n, g, a, c, r, l, e]), L = i((t) => {
56
+ const [o, b] = [t.slice(0, -1), t[t.length - 1]], c = await S(b), I = c ? [...o, c] : o;
57
+ r(I.filter(Boolean));
58
+ }, [n, S, a, r, i, l, e]), E = s((t) => {
58
59
  const o = t.relatedTarget?.closest(".collaboration-user-selector");
59
- document.querySelector('div[role="listbox"][aria-labelledby^="user-contacts"]')?.contains(t.relatedTarget) || o || m([...e, {
60
+ document.querySelector('div[role="listbox"][aria-labelledby^="user-contacts"]')?.contains(t.relatedTarget) || o || e.some((c) => c.email === t.target.value) || f([...e, {
60
61
  value: t.target.value
61
62
  }]);
62
- }, [m, e]);
63
+ }, [f, e]);
63
64
  return {
64
- errors: d,
65
- handleFormReset: C,
65
+ errors: g,
66
+ handleFormReset: h,
66
67
  handleFormSubmit: async () => {
67
- if (d["user-contact"] || l(e))
68
+ if (g["user-contact"] || l(e))
68
69
  return !0;
69
70
  const t = {
70
71
  contacts: e,
71
- message: x
72
+ message: y
72
73
  };
73
- return V === "invite" && (t.role = U.id), await B(t), C(), !1;
74
+ return w === "invite" && (t.role = x.id), m.isJustificationAllowed && (t.justificationReason = m.justificationReason, t.classificationId = m.classificationId), await A(t), h(), !1;
74
75
  },
75
- handleSelectedUsersChange: m,
76
- handleUserSelectorBlur: L,
77
- isFormSubmitting: w,
78
- updateContactValue: E
76
+ handleSelectedUsersChange: f,
77
+ handleUserSelectorBlur: E,
78
+ isFormSubmitting: R,
79
+ updateContactValue: B
79
80
  };
80
81
  };
81
82
  export {
82
- j as useCollaborationForm
83
+ N as useCollaborationForm
83
84
  };
@@ -1,36 +1,47 @@
1
- import { useState as p, useCallback as o } from "react";
2
- import { useIntl as w } from "react-intl";
3
- import a from "../messages.js";
4
- import { formatTomorrowDateToCalendarDate as y } from "../utils/date.js";
5
- import { isVanityNameValid as N, isEmailValid as P, doesPasswordContainMinCharacters as b, doesPasswordContainInvalidCharacter as h, doesPasswordContainMixedCase as x, doesPasswordContainLetter as u, doesPasswordContainNumber as l, doesPasswordContainSymbol as d } from "../utils/validation.js";
6
- const q = () => {
1
+ import { useState as w, useCallback as i } from "react";
2
+ import { useIntl as x } from "react-intl";
3
+ import o from "../messages.js";
4
+ import { useUnifiedShareFormContext as y } from "../contexts/unified-share-form-context.js";
5
+ import { formatTomorrowDateToCalendarDate as N } from "../utils/date.js";
6
+ import { isVanityNameValid as P, isEmailValid as R, doesPasswordContainMinCharacters as b, doesPasswordContainInvalidCharacter as S, doesPasswordContainMixedCase as V, doesPasswordContainLetter as l, doesPasswordContainNumber as c, doesPasswordContainSymbol as d } from "../utils/validation.js";
7
+ const j = () => {
7
8
  const {
8
- formatMessage: t
9
- } = w(), [m, i] = p({}), e = o((r, s) => {
10
- i((n) => ({
9
+ formatMessage: e
10
+ } = x(), [f, u] = w({}), {
11
+ shieldRestriction: s
12
+ } = y(), t = i((r, a) => {
13
+ u((n) => ({
11
14
  ...n,
12
- [r]: s
15
+ [r]: a
13
16
  }));
14
- }, []), c = o((r) => {
17
+ }, []), m = i((r) => {
15
18
  if (!r)
16
- return e("expiration", t(a.expirationRequiredErrorMessage)), !0;
17
- const s = y();
18
- return r.compare(s) < 0 ? (e("expiration", t(a.expirationFutureDateErrorMessage)), !0) : !1;
19
- }, [t, e]), f = o((r) => r ? N(r) ? !1 : (e("vanityName", t(a.vanityNameInvalidErrorMessage)), !0) : (e("vanityName", t(a.vanityNameRequiredErrorMessage)), !0), [t, e]), C = o((r) => r.length ? !1 : (e("user-contact", t(a.emailRequiredErrorMessage)), !0), [t, e]), v = o((r, s) => r.filter((M) => M.value !== "").length <= s ? !1 : (e("user-contact", t(a.contactsExceedLimitError, {
20
- maxContacts: s
21
- })), !0), [t, e]), E = o((r) => r === "" ? !0 : P(r) ? !1 : (e("user-contact", t(a.invalidEmailErrorMessage)), !0), [t, e]), g = o((r) => b(r) ? h(r) ? (e("password", t(a.passwordContainInvalidCharacterErrorMessage)), !0) : !x(r) && !(u(r) && l(r)) && !(u(r) && d(r)) && !(l(r) && d(r)) ? (e("password", t(a.passwordContainLetterNumberOrSymbolErrorMessage)), !0) : !1 : (e("password", t(a.passwordContainMinCharactersErrorMessage)), !0), [t, e]);
19
+ return t("expiration", e(o.expirationRequiredErrorMessage)), !0;
20
+ const a = N();
21
+ return r.compare(a) < 0 ? (t("expiration", e(o.expirationFutureDateErrorMessage)), !0) : !1;
22
+ }, [e, t]), C = i((r) => r ? P(r) ? !1 : (t("vanityName", e(o.vanityNameInvalidErrorMessage)), !0) : (t("vanityName", e(o.vanityNameRequiredErrorMessage)), !0), [e, t]), E = i((r) => {
23
+ const a = r.filter((n) => n.chipVariant === "error");
24
+ return s.isJustificationAllowed && !s.justificationReason ? e(o.justificationRequiredError, {
25
+ count: a.length
26
+ }) : a.length && !s.isJustificationAllowed ? e(o.restrictedContactsError, {
27
+ count: a.length
28
+ }) : "";
29
+ }, [e, s]), v = i((r) => r.length ? !1 : (t("user-contact", e(o.emailRequiredErrorMessage)), !0), [e, t]), g = i((r, a) => r.filter((p) => p.value !== "").length <= a ? !1 : (t("user-contact", e(o.contactsExceedLimitError, {
30
+ maxContacts: a
31
+ })), !0), [e, t]), h = i((r) => r === "" ? !0 : R(r) ? !1 : (t("user-contact", e(o.invalidEmailErrorMessage)), !0), [e, t]), M = i((r) => b(r) ? S(r) ? (t("password", e(o.passwordContainInvalidCharacterErrorMessage)), !0) : !V(r) && !(l(r) && c(r)) && !(l(r) && d(r)) && !(c(r) && d(r)) ? (t("password", e(o.passwordContainLetterNumberOrSymbolErrorMessage)), !0) : !1 : (t("password", e(o.passwordContainMinCharactersErrorMessage)), !0), [e, t]);
22
32
  return {
23
- errors: m,
24
- validateCollaborationLimit: v,
25
- validateExpiration: c,
26
- validatePassword: g,
27
- validateVanityName: f,
28
- validateUserContact: E,
29
- validateUserSelector: C,
30
- setErrors: i,
31
- setFieldError: e
33
+ errors: f,
34
+ validateCollaborationLimit: g,
35
+ validateExpiration: m,
36
+ validatePassword: M,
37
+ validateShieldRestriction: E,
38
+ validateVanityName: C,
39
+ validateUserContact: h,
40
+ validateUserSelector: v,
41
+ setErrors: u,
42
+ setFieldError: t
32
43
  };
33
44
  };
34
45
  export {
35
- q as useFormValidation
46
+ j as useFormValidation
36
47
  };
@@ -95,6 +95,14 @@ const a = e({
95
95
  passwordContainLetterNumberOrSymbolErrorMessage: {
96
96
  id: "groupSharedFeatures.usm.passwordContainLetterNumberOrSymbolErrorMessage",
97
97
  defaultMessage: "Password must contain at least one upper case letter, number, or special character"
98
+ },
99
+ justificationRequiredError: {
100
+ id: "groupSharedFeatures.usm.justificationRequiredError",
101
+ defaultMessage: "Please select a justification or remove the {count, plural, one {{count} restricted user} other {{count} restricted users}} to continue."
102
+ },
103
+ restrictedContactsError: {
104
+ id: "groupSharedFeatures.usm.restrictedContactsError",
105
+ defaultMessage: "Please remove the {count, plural, one {{count} restricted user} other {{count} restricted users}} to continue."
98
106
  }
99
107
  });
100
108
  export {
@@ -1,73 +1,75 @@
1
- import { useState as i, useEffect as k, useMemo as R } from "react";
2
- import { DEFAULT_CONFIGURATION as T } from "./constants.js";
3
- import { jsxs as j, jsx as s } from "react/jsx-runtime";
4
- import { UnifiedShareModalContext as A } from "./contexts/unified-share-modal-context.js";
5
- import { UnifiedShareFormModal as E } from "./components/unified-share-form-modal/unified-share-form-modal.js";
6
- import { SharedLinkSettingsModal as N } from "./components/shared-link-settings-modal/shared-link-settings-modal.js";
7
- import { RemoveSharedLinkModal as y } from "./components/remove-shared-link-modal/remove-shared-link-modal.js";
8
- import { RemoveCollaboratorModal as D } from "./components/remove-collaborator-modal/remove-collaborator-modal.js";
9
- function K({
1
+ import { useState as i, useEffect as I, useMemo as T } from "react";
2
+ import { DEFAULT_CONFIGURATION as j } from "./constants.js";
3
+ import { jsxs as A, jsx as s } from "react/jsx-runtime";
4
+ import { UnifiedShareModalContext as E } from "./contexts/unified-share-modal-context.js";
5
+ import { UnifiedShareFormModal as y } from "./components/unified-share-form-modal/unified-share-form-modal.js";
6
+ import { SharedLinkSettingsModal as D } from "./components/shared-link-settings-modal/shared-link-settings-modal.js";
7
+ import { RemoveSharedLinkModal as G } from "./components/remove-shared-link-modal/remove-shared-link-modal.js";
8
+ import { RemoveCollaboratorModal as N } from "./components/remove-collaborator-modal/remove-collaborator-modal.js";
9
+ function Q({
10
10
  children: m,
11
- collaborationRoles: f,
11
+ collaborationNotices: f,
12
+ collaborationRoles: d,
12
13
  collaborators: l,
13
- config: d,
14
- contactService: h,
15
- currentUser: p,
16
- eventService: c,
17
- initialContacts: u,
18
- isFetching: g,
19
- isOpen: o,
20
- isSubmitting: C,
21
- item: M,
14
+ config: h,
15
+ contactService: p,
16
+ currentUser: c,
17
+ eventService: u,
18
+ initialContacts: g,
19
+ isFetching: C,
20
+ isOpen: e,
21
+ isSubmitting: M,
22
+ item: O,
22
23
  onLoad: t,
23
- onOpenChange: O,
24
- sharedLink: U,
25
- sharingService: v
24
+ onOpenChange: U,
25
+ sharedLink: v,
26
+ sharingService: S
26
27
  }) {
27
- const w = !!m, [e, S] = i(o ?? !w), [x, I] = i(!!t), [r, a] = i("unified-share-form"), [b, V] = i();
28
- k(() => S((n) => o ?? n), [o]), k(() => {
29
- (async () => (t && await t(), I(!1)))();
28
+ const V = !!m, [o, x] = i(e ?? !V), [k, b] = i(!!t), [r, a] = i("unified-share-form"), [w, F] = i();
29
+ I(() => x((n) => e ?? n), [e]), I(() => {
30
+ (async () => (t && await t(), b(!1)))();
30
31
  }, []);
31
- const F = (n) => {
32
- S(o ?? n), O && O(n);
33
- }, L = R(() => ({
34
- collaborationRoles: f ?? [],
35
- collaborator: b ?? {},
32
+ const L = (n) => {
33
+ x(e ?? n), U && U(n);
34
+ }, R = T(() => ({
35
+ collaborationNotices: f,
36
+ collaborationRoles: d ?? [],
37
+ collaborator: w ?? {},
36
38
  collaborators: l ?? [],
37
39
  config: {
38
- ...T,
39
- ...d
40
+ ...j,
41
+ ...h
40
42
  },
41
- contactService: h ?? {},
42
- currentUser: p ?? {},
43
- eventService: c ?? {},
44
- initialContacts: u ?? [],
45
- isFetching: g ?? x,
46
- isSubmitting: C,
47
- item: M,
48
- setCollaborator: V,
49
- sharedLink: U ?? {},
50
- sharingService: v ?? {}
51
- }), [f, b, l, d, h, p, c, u, g, x, C, M, U, v]);
52
- return /* @__PURE__ */ j(A.Provider, {
53
- value: L,
54
- children: [/* @__PURE__ */ s(E, {
55
- isOpen: e && r === "unified-share-form",
43
+ contactService: p ?? {},
44
+ currentUser: c ?? {},
45
+ eventService: u ?? {},
46
+ initialContacts: g ?? [],
47
+ isFetching: C ?? k,
48
+ isSubmitting: M,
49
+ item: O,
50
+ setCollaborator: F,
51
+ sharedLink: v ?? {},
52
+ sharingService: S ?? {}
53
+ }), [f, d, w, l, h, p, c, u, g, C, k, M, O, v, S]);
54
+ return /* @__PURE__ */ A(E.Provider, {
55
+ value: R,
56
+ children: [/* @__PURE__ */ s(y, {
57
+ isOpen: o && r === "unified-share-form",
56
58
  onModalViewChange: a,
57
- onOpenChange: F,
59
+ onOpenChange: L,
58
60
  children: m
59
- }), /* @__PURE__ */ s(N, {
60
- isOpen: e && r === "shared-link-settings",
61
+ }), /* @__PURE__ */ s(D, {
62
+ isOpen: o && r === "shared-link-settings",
61
63
  onOpenChange: () => a("unified-share-form")
62
- }), /* @__PURE__ */ s(y, {
63
- isOpen: e && r === "remove-shared-link",
64
+ }), /* @__PURE__ */ s(G, {
65
+ isOpen: o && r === "remove-shared-link",
64
66
  onOpenChange: () => a("unified-share-form")
65
- }), /* @__PURE__ */ s(D, {
66
- isOpen: e && r === "remove-collaborator",
67
+ }), /* @__PURE__ */ s(N, {
68
+ isOpen: o && r === "remove-collaborator",
67
69
  onOpenChange: () => a("unified-share-form")
68
70
  })]
69
71
  });
70
72
  }
71
73
  export {
72
- K as UnifiedShareModal
74
+ Q as UnifiedShareModal
73
75
  };
@@ -1,5 +1,5 @@
1
- import { SUPPORTED_COLLABORATOR_ROLES as t, SUPPORTED_INVITATION_ROLES as a } from "../constants.js";
2
- const l = (e) => {
1
+ import { SUPPORTED_COLLABORATOR_ROLES as a, SUPPORTED_INVITATION_ROLES as l } from "../constants.js";
2
+ const i = (e) => {
3
3
  switch (e) {
4
4
  case "small":
5
5
  return "small";
@@ -16,11 +16,12 @@ const l = (e) => {
16
16
  }
17
17
  }, s = (e = []) => e.find(({
18
18
  isDefault: r
19
- }) => r) || e[0], u = (e) => e.replace(/[[({<]+.*[\])}>]+/g, "").trim().slice(0, 1).toUpperCase(), i = (e) => t.includes(e), o = (e) => a.includes(e);
19
+ }) => r) || e[0], u = (e) => e.replace(/[[({<]+.*[\])}>]+/g, "").trim().slice(0, 1).toUpperCase(), o = (e) => a.includes(e), c = (e) => l.includes(e), m = (e, r = [], t = []) => e.type === "group" ? t.includes(`${e.id}`) : r.includes(e.email);
20
20
  export {
21
- l as getAvatarBadgeSize,
21
+ i as getAvatarBadgeSize,
22
22
  s as getDefaultCollaborationRole,
23
23
  u as getFirstInitial,
24
- i as isCollaboratorRoleSupported,
25
- o as isInvitationRoleSupported
24
+ m as isCollaboratorRestricted,
25
+ o as isCollaboratorRoleSupported,
26
+ c as isInvitationRoleSupported
26
27
  };
@@ -1,28 +1,29 @@
1
- import { getAvatarBadgeSize as a, getDefaultCollaborationRole as t, getFirstInitial as r, isCollaboratorRoleSupported as s, isInvitationRoleSupported as i } from "./collaborator.js";
2
- import { formatDateFromTimestampToCalendarDate as d, formatDateFromTimestampToDateString as l, formatTomorrowDateToCalendarDate as m } from "./date.js";
3
- import { callOnKeyboardEvent as C } from "./event.js";
4
- import { getUpdatedLinkSettingsFormData as g } from "./form.js";
5
- import { getAllowedAccessLevels as D, getAllowedPermissionLevels as x } from "./permission.js";
6
- import { doesPasswordContainInvalidCharacter as v, doesPasswordContainLetter as S, doesPasswordContainMinCharacters as T, doesPasswordContainMixedCase as b, doesPasswordContainNumber as c, doesPasswordContainSymbol as u, isEmailValid as A, isVanityNameValid as F } from "./validation.js";
1
+ import { getAvatarBadgeSize as a, getDefaultCollaborationRole as t, getFirstInitial as r, isCollaboratorRestricted as s, isCollaboratorRoleSupported as i, isInvitationRoleSupported as d } from "./collaborator.js";
2
+ import { formatDateFromTimestampToCalendarDate as l, formatDateFromTimestampToDateString as m, formatTomorrowDateToCalendarDate as C } from "./date.js";
3
+ import { callOnKeyboardEvent as f } from "./event.js";
4
+ import { getUpdatedLinkSettingsFormData as w } from "./form.js";
5
+ import { getAllowedAccessLevels as x, getAllowedPermissionLevels as P } from "./permission.js";
6
+ import { doesPasswordContainInvalidCharacter as c, doesPasswordContainLetter as v, doesPasswordContainMinCharacters as S, doesPasswordContainMixedCase as T, doesPasswordContainNumber as u, doesPasswordContainSymbol as A, isEmailValid as F, isVanityNameValid as L } from "./validation.js";
7
7
  export {
8
- C as callOnKeyboardEvent,
9
- v as doesPasswordContainInvalidCharacter,
10
- S as doesPasswordContainLetter,
11
- T as doesPasswordContainMinCharacters,
12
- b as doesPasswordContainMixedCase,
13
- c as doesPasswordContainNumber,
14
- u as doesPasswordContainSymbol,
15
- d as formatDateFromTimestampToCalendarDate,
16
- l as formatDateFromTimestampToDateString,
17
- m as formatTomorrowDateToCalendarDate,
18
- D as getAllowedAccessLevels,
19
- x as getAllowedPermissionLevels,
8
+ f as callOnKeyboardEvent,
9
+ c as doesPasswordContainInvalidCharacter,
10
+ v as doesPasswordContainLetter,
11
+ S as doesPasswordContainMinCharacters,
12
+ T as doesPasswordContainMixedCase,
13
+ u as doesPasswordContainNumber,
14
+ A as doesPasswordContainSymbol,
15
+ l as formatDateFromTimestampToCalendarDate,
16
+ m as formatDateFromTimestampToDateString,
17
+ C as formatTomorrowDateToCalendarDate,
18
+ x as getAllowedAccessLevels,
19
+ P as getAllowedPermissionLevels,
20
20
  a as getAvatarBadgeSize,
21
21
  t as getDefaultCollaborationRole,
22
22
  r as getFirstInitial,
23
- g as getUpdatedLinkSettingsFormData,
24
- s as isCollaboratorRoleSupported,
25
- A as isEmailValid,
26
- i as isInvitationRoleSupported,
27
- F as isVanityNameValid
23
+ w as getUpdatedLinkSettingsFormData,
24
+ s as isCollaboratorRestricted,
25
+ i as isCollaboratorRoleSupported,
26
+ F as isEmailValid,
27
+ d as isInvitationRoleSupported,
28
+ L as isVanityNameValid
28
29
  };
@@ -12,6 +12,7 @@ export default {
12
12
  "groupSharedFeatures.usm.expirationFutureDateErrorMessage": "মেয়াদউত্তীর্ণের তারিখ অবশ্যই ভবিষ্যতে হতে হবে",
13
13
  "groupSharedFeatures.usm.expirationRequiredErrorMessage": "অনুগ্রহ করে একটি মেয়াদউত্তীর্ণের তারিখ নির্বাচন করুন",
14
14
  "groupSharedFeatures.usm.invalidEmailErrorMessage": "ভুল ইমেইল অ্যাড্রেস",
15
+ "groupSharedFeatures.usm.justificationRequiredError": "Please select a justification or remove the {count, plural, one {{count} restricted user} other {{count} restricted users}} to continue.",
15
16
  "groupSharedFeatures.usm.noticeCloseLabel": "বন্ধ করুন",
16
17
  "groupSharedFeatures.usm.passwordContainInvalidCharacterErrorMessage": "পাসওয়ার্ডে স্পেস, \"<\" বা \">\" থাকা যাবে না",
17
18
  "groupSharedFeatures.usm.passwordContainLetterNumberOrSymbolErrorMessage": "পাসওয়ার্ডে কমপক্ষে একটি বড় হাতের অক্ষর, সংখ্যা বা বিশেষ অক্ষর থাকতে হবে",
@@ -31,6 +32,7 @@ export default {
31
32
  "groupSharedFeatures.usm.removeSharedLinkModal.loadingLabel": "লোড হচ্ছে",
32
33
  "groupSharedFeatures.usm.removeSharedLinkModal.okayButton": "ঠিক আছে",
33
34
  "groupSharedFeatures.usm.removeSharedLinkModal.title": "শেয়ারকৃত লিঙ্ক অপসারণ করুন",
35
+ "groupSharedFeatures.usm.restrictedContactsError": "Please remove the {count, plural, one {{count} restricted user} other {{count} restricted users}} to continue.",
34
36
  "groupSharedFeatures.usm.sharedLinkSettingsModal.cancelButton": "বাতিল করুন",
35
37
  "groupSharedFeatures.usm.sharedLinkSettingsModal.closeButton": "বন্ধ করুন",
36
38
  "groupSharedFeatures.usm.sharedLinkSettingsModal.directLinkBlockedByAccessPolicyWithClassification": "শ্রেণিবদ্ধকরণের কারণে বিষয়বস্তুর জন্য ডাউনলোড অক্ষম করা হয়েছে।",
@@ -63,18 +65,27 @@ export default {
63
65
  "groupSharedFeatures.usm.successNoticeIcon": "সফল!",
64
66
  "groupSharedFeatures.usm.unifiedShareFormModal.closeButton": "বন্ধ করুন",
65
67
  "groupSharedFeatures.usm.unifiedShareFormModal.coOwnerRole": "Co-owner",
68
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.businessJustification": "Business Justification",
66
69
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.cancelButton": "বাতিল করুন",
67
70
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.clearButton": "পরিষ্কার করুন",
68
71
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.closeButton": "বন্ধ করুন",
69
72
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.coOwnerDescription": "নিরাপত্তা পরিচালনা, আপলোড, ডাউনলোড করুন, প্রিভিউ দেখুন, শেয়ার, সম্পাদনা করুন এবং মুছুন",
73
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionInformationBarrierNotice": "{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent due to a security policy. {removeLink}",
74
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionNotice": "{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent because external collaboration is restricted due to the applied security policy. {removeLink}",
75
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionRemoveButtonLabel": "Remove to continue",
70
76
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.editorDescription": "আপলোড, ডাউনলোড করুন, প্রিভিউ দেখুন, শেয়ার ও সম্পাদনা করুন",
71
77
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.editorFolderDescription": "আপলোড, ডাউনলোড করুন, প্রিভিউ দেখুন, শেয়ার, সম্পাদনা করুন এবং মুছুন",
72
78
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.emailSharedLinkLabel": "শেয়ারকৃত লিঙ্ক ইমেইল করুন",
79
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.errorNoticeIconAriaLabel": "Error",
73
80
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteAsRoleLabel": "{role} হিসাবে আমন্ত্রণ করুন",
74
81
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteDisabledTooltip": "সহযোগীদের আমন্ত্রণ জানানোর অনুমতি নেই",
75
82
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.invitePeopleLabel": "ব্যক্তিদের আমন্ত্রণ করুন",
76
83
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.invitePeoplePlaceholder": "নাম ও ইমেইল অ্যাড্রেসগুলি যোগ করুন",
77
84
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteWebLinkDisabledTooltip": "বুকমার্কগুলিতে সহযোগীদের যোগ করা যাবে না",
85
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justifiableContactRestrictionNotice": "This content requires a business justification for {count, plural, one {{count} invitation} other {{count} invitations}}. Please select a business justification below. {justificationSelect} {removeLink}",
86
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justifiableContactRestrictionRemoveButtonLabel": "Alternatively, remove to continue",
87
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justificationSelectPlaceholder": "Select Justification",
88
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.loadingJustificationReasonsLabel": "Loading justification reasons",
78
89
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.loadingLabel": "লোড হচ্ছে",
79
90
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.previewerDescription": "Preview-only",
80
91
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.previewerUploaderDescription": "আপলোড করুন ও প্রিভিউ দেখুন",
@@ -12,6 +12,7 @@ export default {
12
12
  "groupSharedFeatures.usm.expirationFutureDateErrorMessage": "Udløbsdatoen skal være i fremtiden",
13
13
  "groupSharedFeatures.usm.expirationRequiredErrorMessage": "Vælg venligst en udløbsdato",
14
14
  "groupSharedFeatures.usm.invalidEmailErrorMessage": "Ugyldig e-mailadresse",
15
+ "groupSharedFeatures.usm.justificationRequiredError": "Please select a justification or remove the {count, plural, one {{count} restricted user} other {{count} restricted users}} to continue.",
15
16
  "groupSharedFeatures.usm.noticeCloseLabel": "Luk",
16
17
  "groupSharedFeatures.usm.passwordContainInvalidCharacterErrorMessage": "Adgangskoden må ikke indeholde et mellemrum, \"<\" eller \">\"",
17
18
  "groupSharedFeatures.usm.passwordContainLetterNumberOrSymbolErrorMessage": "Adgangskoden skal indeholde mindst ét stort bogstav, tal eller specialtegn",
@@ -31,6 +32,7 @@ export default {
31
32
  "groupSharedFeatures.usm.removeSharedLinkModal.loadingLabel": "Indlæser",
32
33
  "groupSharedFeatures.usm.removeSharedLinkModal.okayButton": "Okay",
33
34
  "groupSharedFeatures.usm.removeSharedLinkModal.title": "Fjern delt link",
35
+ "groupSharedFeatures.usm.restrictedContactsError": "Please remove the {count, plural, one {{count} restricted user} other {{count} restricted users}} to continue.",
34
36
  "groupSharedFeatures.usm.sharedLinkSettingsModal.cancelButton": "Annuller",
35
37
  "groupSharedFeatures.usm.sharedLinkSettingsModal.closeButton": "Luk",
36
38
  "groupSharedFeatures.usm.sharedLinkSettingsModal.directLinkBlockedByAccessPolicyWithClassification": "Download er blevet deaktiveret for indhold på grund af klassificeringen.",
@@ -63,18 +65,27 @@ export default {
63
65
  "groupSharedFeatures.usm.successNoticeIcon": "Gennemført",
64
66
  "groupSharedFeatures.usm.unifiedShareFormModal.closeButton": "Luk",
65
67
  "groupSharedFeatures.usm.unifiedShareFormModal.coOwnerRole": "Co-owner",
68
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.businessJustification": "Business Justification",
66
69
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.cancelButton": "Annuller",
67
70
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.clearButton": "Ryd",
68
71
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.closeButton": "Luk",
69
72
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.coOwnerDescription": "Administrer sikkerhed, upload, download, vis eksempel, del, rediger og slet",
73
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionInformationBarrierNotice": "{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent due to a security policy. {removeLink}",
74
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionNotice": "{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent because external collaboration is restricted due to the applied security policy. {removeLink}",
75
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionRemoveButtonLabel": "Remove to continue",
70
76
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.editorDescription": "Upload, download, vis eksempel, del og rediger",
71
77
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.editorFolderDescription": "Upload, download, vis eksempel, del, rediger og slet",
72
78
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.emailSharedLinkLabel": "Send delt link via e-mail",
79
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.errorNoticeIconAriaLabel": "Error",
73
80
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteAsRoleLabel": "Inviter som {role}",
74
81
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteDisabledTooltip": "Du har ikke tilladelse til at invitere samarbejdspartnere",
75
82
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.invitePeopleLabel": "Invitér personer",
76
83
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.invitePeoplePlaceholder": "Tilføj navne eller e-mailadresser",
77
84
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteWebLinkDisabledTooltip": "Samarbejdspartnere kan ikke tilføjes til bogmærker",
85
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justifiableContactRestrictionNotice": "This content requires a business justification for {count, plural, one {{count} invitation} other {{count} invitations}}. Please select a business justification below. {justificationSelect} {removeLink}",
86
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justifiableContactRestrictionRemoveButtonLabel": "Alternatively, remove to continue",
87
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justificationSelectPlaceholder": "Select Justification",
88
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.loadingJustificationReasonsLabel": "Loading justification reasons",
78
89
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.loadingLabel": "Indlæser",
79
90
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.previewerDescription": "Preview-only",
80
91
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.previewerUploaderDescription": "Upload og forhåndsvisning",
@@ -12,6 +12,7 @@ export default {
12
12
  "groupSharedFeatures.usm.expirationFutureDateErrorMessage": "Das Ablaufdatum muss in der Zukunft liegen",
13
13
  "groupSharedFeatures.usm.expirationRequiredErrorMessage": "Wählen Sie bitte ein Ablaufdatum aus",
14
14
  "groupSharedFeatures.usm.invalidEmailErrorMessage": "Ungültige E-Mail-Adresse",
15
+ "groupSharedFeatures.usm.justificationRequiredError": "Please select a justification or remove the {count, plural, one {{count} restricted user} other {{count} restricted users}} to continue.",
15
16
  "groupSharedFeatures.usm.noticeCloseLabel": "Schließen",
16
17
  "groupSharedFeatures.usm.passwordContainInvalidCharacterErrorMessage": "Das Kennwort darf kein Leerzeichen, „<“ oder „>“ enthalten",
17
18
  "groupSharedFeatures.usm.passwordContainLetterNumberOrSymbolErrorMessage": "Das Kennwort muss mindestens einen Großbuchstaben, eine Zahl oder ein Sonderzeichen enthalten",
@@ -31,6 +32,7 @@ export default {
31
32
  "groupSharedFeatures.usm.removeSharedLinkModal.loadingLabel": "Laden",
32
33
  "groupSharedFeatures.usm.removeSharedLinkModal.okayButton": "OK",
33
34
  "groupSharedFeatures.usm.removeSharedLinkModal.title": "Freigabe-Link entfernen",
35
+ "groupSharedFeatures.usm.restrictedContactsError": "Please remove the {count, plural, one {{count} restricted user} other {{count} restricted users}} to continue.",
34
36
  "groupSharedFeatures.usm.sharedLinkSettingsModal.cancelButton": "Abbrechen",
35
37
  "groupSharedFeatures.usm.sharedLinkSettingsModal.closeButton": "Schließen",
36
38
  "groupSharedFeatures.usm.sharedLinkSettingsModal.directLinkBlockedByAccessPolicyWithClassification": "Der Download der Inhalte wurde aufgrund der Klassifizierung deaktiviert.",
@@ -63,18 +65,27 @@ export default {
63
65
  "groupSharedFeatures.usm.successNoticeIcon": "Erfolgreich",
64
66
  "groupSharedFeatures.usm.unifiedShareFormModal.closeButton": "Schließen",
65
67
  "groupSharedFeatures.usm.unifiedShareFormModal.coOwnerRole": "Miteigentümer",
68
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.businessJustification": "Business Justification",
66
69
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.cancelButton": "Abbrechen",
67
70
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.clearButton": "Löschen",
68
71
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.closeButton": "Schließen",
69
72
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.coOwnerDescription": "Sicherheit verwalten, hochladen, herunterladen, in der Vorschau anzeigen, freigeben, bearbeiten und löschen",
73
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionInformationBarrierNotice": "{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent due to a security policy. {removeLink}",
74
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionNotice": "{count, plural, one {{count} invitation} other {{count} invitations}} cannot be sent because external collaboration is restricted due to the applied security policy. {removeLink}",
75
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.contactRestrictionRemoveButtonLabel": "Remove to continue",
70
76
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.editorDescription": "Hochladen, herunterladen, in Vorschau anzeigen, freigeben und bearbeiten",
71
77
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.editorFolderDescription": "Hochladen, herunterladen, in der Vorschau anzeigen, freigeben, bearbeiten und löschen",
72
78
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.emailSharedLinkLabel": "Freigabe-Link versenden",
79
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.errorNoticeIconAriaLabel": "Error",
73
80
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteAsRoleLabel": "Als {role} einladen",
74
81
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteDisabledTooltip": "Sie sind nicht berechtigt, Mitarbeiter einzuladen",
75
82
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.invitePeopleLabel": "Personen einladen",
76
83
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.invitePeoplePlaceholder": "Namen oder E-Mail-Adressen hinzufügen",
77
84
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.inviteWebLinkDisabledTooltip": "Mitwirkende können nicht zu Lesezeichen hinzugefügt werden",
85
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justifiableContactRestrictionNotice": "This content requires a business justification for {count, plural, one {{count} invitation} other {{count} invitations}}. Please select a business justification below. {justificationSelect} {removeLink}",
86
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justifiableContactRestrictionRemoveButtonLabel": "Alternatively, remove to continue",
87
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.justificationSelectPlaceholder": "Select Justification",
88
+ "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.loadingJustificationReasonsLabel": "Loading justification reasons",
78
89
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.loadingLabel": "Laden",
79
90
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.previewerDescription": "Preview-only",
80
91
  "groupSharedFeatures.usm.unifiedShareFormModal.collaborationSection.previewerUploaderDescription": "Hochladen und Vorschau",