@payloadcms/plugin-multi-tenant 3.57.0-internal.d758c66 → 3.57.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 (168) hide show
  1. package/dist/components/AssignTenantFieldModal/index.client.d.ts +12 -0
  2. package/dist/components/AssignTenantFieldModal/index.client.d.ts.map +1 -0
  3. package/dist/components/AssignTenantFieldModal/index.client.js +133 -0
  4. package/dist/components/AssignTenantFieldModal/index.client.js.map +1 -0
  5. package/dist/components/AssignTenantFieldModal/index.scss +78 -0
  6. package/dist/components/TenantField/index.client.d.ts +1 -1
  7. package/dist/components/TenantField/index.client.d.ts.map +1 -1
  8. package/dist/components/TenantField/index.client.js +135 -110
  9. package/dist/components/TenantField/index.client.js.map +1 -1
  10. package/dist/components/TenantField/index.scss +4 -0
  11. package/dist/exports/client.d.ts +1 -0
  12. package/dist/exports/client.d.ts.map +1 -1
  13. package/dist/exports/client.js +1 -0
  14. package/dist/exports/client.js.map +1 -1
  15. package/dist/filters/filterDocumentsByTenants.d.ts +6 -1
  16. package/dist/filters/filterDocumentsByTenants.d.ts.map +1 -1
  17. package/dist/filters/filterDocumentsByTenants.js +2 -2
  18. package/dist/filters/filterDocumentsByTenants.js.map +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +9 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/translations/index.d.ts.map +1 -1
  23. package/dist/translations/index.js +2 -0
  24. package/dist/translations/index.js.map +1 -1
  25. package/dist/translations/languages/ar.d.ts.map +1 -1
  26. package/dist/translations/languages/ar.js +2 -2
  27. package/dist/translations/languages/ar.js.map +1 -1
  28. package/dist/translations/languages/az.d.ts.map +1 -1
  29. package/dist/translations/languages/az.js +2 -2
  30. package/dist/translations/languages/az.js.map +1 -1
  31. package/dist/translations/languages/bg.d.ts.map +1 -1
  32. package/dist/translations/languages/bg.js +2 -2
  33. package/dist/translations/languages/bg.js.map +1 -1
  34. package/dist/translations/languages/bnBd.d.ts.map +1 -1
  35. package/dist/translations/languages/bnBd.js +4 -4
  36. package/dist/translations/languages/bnBd.js.map +1 -1
  37. package/dist/translations/languages/bnIn.d.ts.map +1 -1
  38. package/dist/translations/languages/bnIn.js +3 -3
  39. package/dist/translations/languages/bnIn.js.map +1 -1
  40. package/dist/translations/languages/ca.d.ts.map +1 -1
  41. package/dist/translations/languages/ca.js +2 -2
  42. package/dist/translations/languages/ca.js.map +1 -1
  43. package/dist/translations/languages/cs.d.ts.map +1 -1
  44. package/dist/translations/languages/cs.js +2 -2
  45. package/dist/translations/languages/cs.js.map +1 -1
  46. package/dist/translations/languages/da.d.ts.map +1 -1
  47. package/dist/translations/languages/da.js +2 -2
  48. package/dist/translations/languages/da.js.map +1 -1
  49. package/dist/translations/languages/de.d.ts.map +1 -1
  50. package/dist/translations/languages/de.js +2 -2
  51. package/dist/translations/languages/de.js.map +1 -1
  52. package/dist/translations/languages/en.d.ts +2 -2
  53. package/dist/translations/languages/en.d.ts.map +1 -1
  54. package/dist/translations/languages/en.js +3 -3
  55. package/dist/translations/languages/en.js.map +1 -1
  56. package/dist/translations/languages/es.d.ts.map +1 -1
  57. package/dist/translations/languages/es.js +2 -2
  58. package/dist/translations/languages/es.js.map +1 -1
  59. package/dist/translations/languages/et.d.ts.map +1 -1
  60. package/dist/translations/languages/et.js +2 -2
  61. package/dist/translations/languages/et.js.map +1 -1
  62. package/dist/translations/languages/fa.d.ts.map +1 -1
  63. package/dist/translations/languages/fa.js +2 -2
  64. package/dist/translations/languages/fa.js.map +1 -1
  65. package/dist/translations/languages/fr.d.ts.map +1 -1
  66. package/dist/translations/languages/fr.js +2 -2
  67. package/dist/translations/languages/fr.js.map +1 -1
  68. package/dist/translations/languages/he.d.ts.map +1 -1
  69. package/dist/translations/languages/he.js +2 -2
  70. package/dist/translations/languages/he.js.map +1 -1
  71. package/dist/translations/languages/hr.d.ts.map +1 -1
  72. package/dist/translations/languages/hr.js +2 -2
  73. package/dist/translations/languages/hr.js.map +1 -1
  74. package/dist/translations/languages/hu.d.ts.map +1 -1
  75. package/dist/translations/languages/hu.js +2 -2
  76. package/dist/translations/languages/hu.js.map +1 -1
  77. package/dist/translations/languages/hy.d.ts.map +1 -1
  78. package/dist/translations/languages/hy.js +2 -2
  79. package/dist/translations/languages/hy.js.map +1 -1
  80. package/dist/translations/languages/id.d.ts.map +1 -1
  81. package/dist/translations/languages/id.js +3 -3
  82. package/dist/translations/languages/id.js.map +1 -1
  83. package/dist/translations/languages/is.d.ts +4 -0
  84. package/dist/translations/languages/is.d.ts.map +1 -0
  85. package/dist/translations/languages/is.js +14 -0
  86. package/dist/translations/languages/is.js.map +1 -0
  87. package/dist/translations/languages/it.d.ts.map +1 -1
  88. package/dist/translations/languages/it.js +2 -2
  89. package/dist/translations/languages/it.js.map +1 -1
  90. package/dist/translations/languages/ja.d.ts.map +1 -1
  91. package/dist/translations/languages/ja.js +2 -2
  92. package/dist/translations/languages/ja.js.map +1 -1
  93. package/dist/translations/languages/ko.d.ts.map +1 -1
  94. package/dist/translations/languages/ko.js +2 -2
  95. package/dist/translations/languages/ko.js.map +1 -1
  96. package/dist/translations/languages/lt.d.ts.map +1 -1
  97. package/dist/translations/languages/lt.js +2 -2
  98. package/dist/translations/languages/lt.js.map +1 -1
  99. package/dist/translations/languages/lv.d.ts.map +1 -1
  100. package/dist/translations/languages/lv.js +4 -4
  101. package/dist/translations/languages/lv.js.map +1 -1
  102. package/dist/translations/languages/my.d.ts.map +1 -1
  103. package/dist/translations/languages/my.js +2 -2
  104. package/dist/translations/languages/my.js.map +1 -1
  105. package/dist/translations/languages/nb.d.ts.map +1 -1
  106. package/dist/translations/languages/nb.js +4 -4
  107. package/dist/translations/languages/nb.js.map +1 -1
  108. package/dist/translations/languages/nl.d.ts.map +1 -1
  109. package/dist/translations/languages/nl.js +2 -2
  110. package/dist/translations/languages/nl.js.map +1 -1
  111. package/dist/translations/languages/pl.d.ts.map +1 -1
  112. package/dist/translations/languages/pl.js +2 -2
  113. package/dist/translations/languages/pl.js.map +1 -1
  114. package/dist/translations/languages/pt.d.ts.map +1 -1
  115. package/dist/translations/languages/pt.js +2 -2
  116. package/dist/translations/languages/pt.js.map +1 -1
  117. package/dist/translations/languages/ro.d.ts.map +1 -1
  118. package/dist/translations/languages/ro.js +2 -2
  119. package/dist/translations/languages/ro.js.map +1 -1
  120. package/dist/translations/languages/rs.d.ts.map +1 -1
  121. package/dist/translations/languages/rs.js +2 -2
  122. package/dist/translations/languages/rs.js.map +1 -1
  123. package/dist/translations/languages/rsLatin.d.ts.map +1 -1
  124. package/dist/translations/languages/rsLatin.js +2 -2
  125. package/dist/translations/languages/rsLatin.js.map +1 -1
  126. package/dist/translations/languages/ru.d.ts.map +1 -1
  127. package/dist/translations/languages/ru.js +2 -2
  128. package/dist/translations/languages/ru.js.map +1 -1
  129. package/dist/translations/languages/sk.d.ts.map +1 -1
  130. package/dist/translations/languages/sk.js +2 -2
  131. package/dist/translations/languages/sk.js.map +1 -1
  132. package/dist/translations/languages/sl.d.ts.map +1 -1
  133. package/dist/translations/languages/sl.js +2 -2
  134. package/dist/translations/languages/sl.js.map +1 -1
  135. package/dist/translations/languages/sv.d.ts.map +1 -1
  136. package/dist/translations/languages/sv.js +2 -2
  137. package/dist/translations/languages/sv.js.map +1 -1
  138. package/dist/translations/languages/ta.d.ts +4 -0
  139. package/dist/translations/languages/ta.d.ts.map +1 -0
  140. package/dist/translations/languages/ta.js +14 -0
  141. package/dist/translations/languages/ta.js.map +1 -0
  142. package/dist/translations/languages/th.d.ts.map +1 -1
  143. package/dist/translations/languages/th.js +2 -2
  144. package/dist/translations/languages/th.js.map +1 -1
  145. package/dist/translations/languages/tr.d.ts.map +1 -1
  146. package/dist/translations/languages/tr.js +2 -2
  147. package/dist/translations/languages/tr.js.map +1 -1
  148. package/dist/translations/languages/uk.d.ts.map +1 -1
  149. package/dist/translations/languages/uk.js +2 -2
  150. package/dist/translations/languages/uk.js.map +1 -1
  151. package/dist/translations/languages/vi.d.ts.map +1 -1
  152. package/dist/translations/languages/vi.js +2 -2
  153. package/dist/translations/languages/vi.js.map +1 -1
  154. package/dist/translations/languages/zh.d.ts.map +1 -1
  155. package/dist/translations/languages/zh.js +2 -2
  156. package/dist/translations/languages/zh.js.map +1 -1
  157. package/dist/translations/languages/zhTw.d.ts.map +1 -1
  158. package/dist/translations/languages/zhTw.js +2 -2
  159. package/dist/translations/languages/zhTw.js.map +1 -1
  160. package/dist/translations/types.d.ts +2 -2
  161. package/dist/translations/types.d.ts.map +1 -1
  162. package/dist/translations/types.js.map +1 -1
  163. package/dist/types.d.ts +12 -6
  164. package/dist/types.d.ts.map +1 -1
  165. package/dist/types.js.map +1 -1
  166. package/dist/utilities/addFilterOptionsToFields.js +1 -0
  167. package/dist/utilities/addFilterOptionsToFields.js.map +1 -1
  168. package/package.json +6 -6
@@ -1,3 +1,4 @@
1
+ export { AssignTenantFieldTrigger } from '../components/AssignTenantFieldModal/index.client.js';
1
2
  export { TenantField } from '../components/TenantField/index.client.js';
2
3
  export { WatchTenantCollection } from '../components/WatchTenantCollection/index.js';
3
4
  export { useTenantSelection } from '../providers/TenantSelectionProvider/index.client.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["export { TenantField } from '../components/TenantField/index.client.js'\nexport { WatchTenantCollection } from '../components/WatchTenantCollection/index.js'\nexport { useTenantSelection } from '../providers/TenantSelectionProvider/index.client.js'\n"],"names":["TenantField","WatchTenantCollection","useTenantSelection"],"mappings":"AAAA,SAASA,WAAW,QAAQ,4CAA2C;AACvE,SAASC,qBAAqB,QAAQ,+CAA8C;AACpF,SAASC,kBAAkB,QAAQ,uDAAsD"}
1
+ {"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["export { AssignTenantFieldTrigger } from '../components/AssignTenantFieldModal/index.client.js'\nexport { TenantField } from '../components/TenantField/index.client.js'\nexport { WatchTenantCollection } from '../components/WatchTenantCollection/index.js'\nexport { useTenantSelection } from '../providers/TenantSelectionProvider/index.client.js'\n"],"names":["AssignTenantFieldTrigger","TenantField","WatchTenantCollection","useTenantSelection"],"mappings":"AAAA,SAASA,wBAAwB,QAAQ,uDAAsD;AAC/F,SAASC,WAAW,QAAQ,4CAA2C;AACvE,SAASC,qBAAqB,QAAQ,+CAA8C;AACpF,SAASC,kBAAkB,QAAQ,uDAAsD"}
@@ -1,6 +1,11 @@
1
1
  import type { PayloadRequest, Where } from 'payload';
2
2
  import type { MultiTenantPluginConfig } from '../types.js';
3
3
  type Args<ConfigType = unknown> = {
4
+ /**
5
+ * If the document this filter is run belongs to a tenant, the tenant ID should be passed here.
6
+ * If set, this will be used instead of the tenant cookie
7
+ */
8
+ docTenantID?: number | string;
4
9
  filterFieldName: string;
5
10
  req: PayloadRequest;
6
11
  tenantsArrayFieldName?: string;
@@ -8,6 +13,6 @@ type Args<ConfigType = unknown> = {
8
13
  tenantsCollectionSlug: string;
9
14
  userHasAccessToAllTenants: Required<MultiTenantPluginConfig<ConfigType>>['userHasAccessToAllTenants'];
10
15
  };
11
- export declare const filterDocumentsByTenants: <ConfigType = unknown>({ filterFieldName, req, tenantsArrayFieldName, tenantsArrayTenantFieldName, tenantsCollectionSlug, userHasAccessToAllTenants, }: Args<ConfigType>) => null | Where;
16
+ export declare const filterDocumentsByTenants: <ConfigType = unknown>({ docTenantID, filterFieldName, req, tenantsArrayFieldName, tenantsArrayTenantFieldName, tenantsCollectionSlug, userHasAccessToAllTenants, }: Args<ConfigType>) => null | Where;
12
17
  export {};
13
18
  //# sourceMappingURL=filterDocumentsByTenants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterDocumentsByTenants.d.ts","sourceRoot":"","sources":["../../src/filters/filterDocumentsByTenants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAO1D,KAAK,IAAI,CAAC,UAAU,GAAG,OAAO,IAAI;IAChC,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,yBAAyB,EAAE,QAAQ,CACjC,uBAAuB,CAAC,UAAU,CAAC,CACpC,CAAC,2BAA2B,CAAC,CAAA;CAC/B,CAAA;AACD,eAAO,MAAM,wBAAwB,GAAI,UAAU,6IAOhD,IAAI,CAAC,UAAU,CAAC,KAAG,IAAI,GAAG,KAwC5B,CAAA"}
1
+ {"version":3,"file":"filterDocumentsByTenants.d.ts","sourceRoot":"","sources":["../../src/filters/filterDocumentsByTenants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAO1D,KAAK,IAAI,CAAC,UAAU,GAAG,OAAO,IAAI;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,yBAAyB,EAAE,QAAQ,CACjC,uBAAuB,CAAC,UAAU,CAAC,CACpC,CAAC,2BAA2B,CAAC,CAAA;CAC/B,CAAA;AACD,eAAO,MAAM,wBAAwB,GAAI,UAAU,0JAQhD,IAAI,CAAC,UAAU,CAAC,KAAG,IAAI,GAAG,KAwC5B,CAAA"}
@@ -2,13 +2,13 @@ import { defaults } from '../defaults.js';
2
2
  import { getCollectionIDType } from '../utilities/getCollectionIDType.js';
3
3
  import { getTenantFromCookie } from '../utilities/getTenantFromCookie.js';
4
4
  import { getUserTenantIDs } from '../utilities/getUserTenantIDs.js';
5
- export const filterDocumentsByTenants = ({ filterFieldName, req, tenantsArrayFieldName = defaults.tenantsArrayFieldName, tenantsArrayTenantFieldName = defaults.tenantsArrayTenantFieldName, tenantsCollectionSlug, userHasAccessToAllTenants })=>{
5
+ export const filterDocumentsByTenants = ({ docTenantID, filterFieldName, req, tenantsArrayFieldName = defaults.tenantsArrayFieldName, tenantsArrayTenantFieldName = defaults.tenantsArrayTenantFieldName, tenantsCollectionSlug, userHasAccessToAllTenants })=>{
6
6
  const idType = getCollectionIDType({
7
7
  collectionSlug: tenantsCollectionSlug,
8
8
  payload: req.payload
9
9
  });
10
10
  // scope results to selected tenant
11
- const selectedTenant = getTenantFromCookie(req.headers, idType);
11
+ const selectedTenant = docTenantID ?? getTenantFromCookie(req.headers, idType);
12
12
  if (selectedTenant) {
13
13
  return {
14
14
  [filterFieldName]: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/filters/filterDocumentsByTenants.ts"],"sourcesContent":["import type { PayloadRequest, TypedUser, Where } from 'payload'\n\nimport type { MultiTenantPluginConfig } from '../types.js'\n\nimport { defaults } from '../defaults.js'\nimport { getCollectionIDType } from '../utilities/getCollectionIDType.js'\nimport { getTenantFromCookie } from '../utilities/getTenantFromCookie.js'\nimport { getUserTenantIDs } from '../utilities/getUserTenantIDs.js'\n\ntype Args<ConfigType = unknown> = {\n filterFieldName: string\n req: PayloadRequest\n tenantsArrayFieldName?: string\n tenantsArrayTenantFieldName?: string\n tenantsCollectionSlug: string\n userHasAccessToAllTenants: Required<\n MultiTenantPluginConfig<ConfigType>\n >['userHasAccessToAllTenants']\n}\nexport const filterDocumentsByTenants = <ConfigType = unknown>({\n filterFieldName,\n req,\n tenantsArrayFieldName = defaults.tenantsArrayFieldName,\n tenantsArrayTenantFieldName = defaults.tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n}: Args<ConfigType>): null | Where => {\n const idType = getCollectionIDType({\n collectionSlug: tenantsCollectionSlug,\n payload: req.payload,\n })\n\n // scope results to selected tenant\n const selectedTenant = getTenantFromCookie(req.headers, idType)\n if (selectedTenant) {\n return {\n [filterFieldName]: {\n in: [selectedTenant],\n },\n }\n }\n\n if (\n req.user &&\n userHasAccessToAllTenants(\n req?.user as ConfigType extends { user: unknown } ? ConfigType['user'] : TypedUser,\n )\n ) {\n return null\n }\n\n // scope to user assigned tenants\n const userAssignedTenants = getUserTenantIDs(req.user, {\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n })\n if (userAssignedTenants.length > 0) {\n return {\n [filterFieldName]: {\n in: userAssignedTenants,\n },\n }\n }\n\n // no tenant selected and no user tenants, return null to allow access control to handle it\n return null\n}\n"],"names":["defaults","getCollectionIDType","getTenantFromCookie","getUserTenantIDs","filterDocumentsByTenants","filterFieldName","req","tenantsArrayFieldName","tenantsArrayTenantFieldName","tenantsCollectionSlug","userHasAccessToAllTenants","idType","collectionSlug","payload","selectedTenant","headers","in","user","userAssignedTenants","length"],"mappings":"AAIA,SAASA,QAAQ,QAAQ,iBAAgB;AACzC,SAASC,mBAAmB,QAAQ,sCAAqC;AACzE,SAASC,mBAAmB,QAAQ,sCAAqC;AACzE,SAASC,gBAAgB,QAAQ,mCAAkC;AAYnE,OAAO,MAAMC,2BAA2B,CAAuB,EAC7DC,eAAe,EACfC,GAAG,EACHC,wBAAwBP,SAASO,qBAAqB,EACtDC,8BAA8BR,SAASQ,2BAA2B,EAClEC,qBAAqB,EACrBC,yBAAyB,EACR;IACjB,MAAMC,SAASV,oBAAoB;QACjCW,gBAAgBH;QAChBI,SAASP,IAAIO,OAAO;IACtB;IAEA,mCAAmC;IACnC,MAAMC,iBAAiBZ,oBAAoBI,IAAIS,OAAO,EAAEJ;IACxD,IAAIG,gBAAgB;QAClB,OAAO;YACL,CAACT,gBAAgB,EAAE;gBACjBW,IAAI;oBAACF;iBAAe;YACtB;QACF;IACF;IAEA,IACER,IAAIW,IAAI,IACRP,0BACEJ,KAAKW,OAEP;QACA,OAAO;IACT;IAEA,iCAAiC;IACjC,MAAMC,sBAAsBf,iBAAiBG,IAAIW,IAAI,EAAE;QACrDV;QACAC;IACF;IACA,IAAIU,oBAAoBC,MAAM,GAAG,GAAG;QAClC,OAAO;YACL,CAACd,gBAAgB,EAAE;gBACjBW,IAAIE;YACN;QACF;IACF;IAEA,2FAA2F;IAC3F,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/filters/filterDocumentsByTenants.ts"],"sourcesContent":["import type { PayloadRequest, TypedUser, Where } from 'payload'\n\nimport type { MultiTenantPluginConfig } from '../types.js'\n\nimport { defaults } from '../defaults.js'\nimport { getCollectionIDType } from '../utilities/getCollectionIDType.js'\nimport { getTenantFromCookie } from '../utilities/getTenantFromCookie.js'\nimport { getUserTenantIDs } from '../utilities/getUserTenantIDs.js'\n\ntype Args<ConfigType = unknown> = {\n /**\n * If the document this filter is run belongs to a tenant, the tenant ID should be passed here.\n * If set, this will be used instead of the tenant cookie\n */\n docTenantID?: number | string\n filterFieldName: string\n req: PayloadRequest\n tenantsArrayFieldName?: string\n tenantsArrayTenantFieldName?: string\n tenantsCollectionSlug: string\n userHasAccessToAllTenants: Required<\n MultiTenantPluginConfig<ConfigType>\n >['userHasAccessToAllTenants']\n}\nexport const filterDocumentsByTenants = <ConfigType = unknown>({\n docTenantID,\n filterFieldName,\n req,\n tenantsArrayFieldName = defaults.tenantsArrayFieldName,\n tenantsArrayTenantFieldName = defaults.tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n}: Args<ConfigType>): null | Where => {\n const idType = getCollectionIDType({\n collectionSlug: tenantsCollectionSlug,\n payload: req.payload,\n })\n\n // scope results to selected tenant\n const selectedTenant = docTenantID ?? getTenantFromCookie(req.headers, idType)\n if (selectedTenant) {\n return {\n [filterFieldName]: {\n in: [selectedTenant],\n },\n }\n }\n\n if (\n req.user &&\n userHasAccessToAllTenants(\n req?.user as ConfigType extends { user: unknown } ? ConfigType['user'] : TypedUser,\n )\n ) {\n return null\n }\n\n // scope to user assigned tenants\n const userAssignedTenants = getUserTenantIDs(req.user, {\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n })\n if (userAssignedTenants.length > 0) {\n return {\n [filterFieldName]: {\n in: userAssignedTenants,\n },\n }\n }\n\n // no tenant selected and no user tenants, return null to allow access control to handle it\n return null\n}\n"],"names":["defaults","getCollectionIDType","getTenantFromCookie","getUserTenantIDs","filterDocumentsByTenants","docTenantID","filterFieldName","req","tenantsArrayFieldName","tenantsArrayTenantFieldName","tenantsCollectionSlug","userHasAccessToAllTenants","idType","collectionSlug","payload","selectedTenant","headers","in","user","userAssignedTenants","length"],"mappings":"AAIA,SAASA,QAAQ,QAAQ,iBAAgB;AACzC,SAASC,mBAAmB,QAAQ,sCAAqC;AACzE,SAASC,mBAAmB,QAAQ,sCAAqC;AACzE,SAASC,gBAAgB,QAAQ,mCAAkC;AAiBnE,OAAO,MAAMC,2BAA2B,CAAuB,EAC7DC,WAAW,EACXC,eAAe,EACfC,GAAG,EACHC,wBAAwBR,SAASQ,qBAAqB,EACtDC,8BAA8BT,SAASS,2BAA2B,EAClEC,qBAAqB,EACrBC,yBAAyB,EACR;IACjB,MAAMC,SAASX,oBAAoB;QACjCY,gBAAgBH;QAChBI,SAASP,IAAIO,OAAO;IACtB;IAEA,mCAAmC;IACnC,MAAMC,iBAAiBV,eAAeH,oBAAoBK,IAAIS,OAAO,EAAEJ;IACvE,IAAIG,gBAAgB;QAClB,OAAO;YACL,CAACT,gBAAgB,EAAE;gBACjBW,IAAI;oBAACF;iBAAe;YACtB;QACF;IACF;IAEA,IACER,IAAIW,IAAI,IACRP,0BACEJ,KAAKW,OAEP;QACA,OAAO;IACT;IAEA,iCAAiC;IACjC,MAAMC,sBAAsBhB,iBAAiBI,IAAIW,IAAI,EAAE;QACrDV;QACAC;IACF;IACA,IAAIU,oBAAoBC,MAAM,GAAG,GAAG;QAClC,OAAO;YACL,CAACd,gBAAgB,EAAE;gBACjBW,IAAIE;YACN;QACF;IACF;IAEA,2FAA2F;IAC3F,OAAO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,MAAM,EAAE,MAAM,SAAS,CAAA;AAKvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAazD,eAAO,MAAM,iBAAiB,GAC3B,UAAU,gBAAgB,uBAAuB,CAAC,UAAU,CAAC,sBAC7C,MAAM,KAAG,MA0ezB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,MAAM,EAAE,MAAM,SAAS,CAAA;AAKvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAazD,eAAO,MAAM,iBAAiB,GAC3B,UAAU,gBAAgB,uBAAuB,CAAC,UAAU,CAAC,sBAC7C,MAAM,KAAG,MAofzB,CAAA"}
package/dist/index.js CHANGED
@@ -267,6 +267,15 @@ export const multiTenantPlugin = (pluginConfig)=>(incomingConfig)=>{
267
267
  if (isGlobal) {
268
268
  collection.disableDuplicate = true;
269
269
  }
270
+ if (!pluginConfig.debug && !isGlobal) {
271
+ collection.admin ??= {};
272
+ collection.admin.components ??= {};
273
+ collection.admin.components.edit ??= {};
274
+ collection.admin.components.edit.editMenuItems ??= [];
275
+ collection.admin.components.edit.editMenuItems.push({
276
+ path: '@payloadcms/plugin-multi-tenant/client#AssignTenantFieldTrigger'
277
+ });
278
+ }
270
279
  /**
271
280
  * Add filter options to all relationship fields
272
281
  */ addFilterOptionsToFields({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\nimport type { CollectionConfig, Config } from 'payload'\n\nimport chalk from 'chalk'\n\nimport type { PluginDefaultTranslationsObject } from './translations/types.js'\nimport type { MultiTenantPluginConfig } from './types.js'\n\nimport { defaults } from './defaults.js'\nimport { getTenantOptionsEndpoint } from './endpoints/getTenantOptionsEndpoint.js'\nimport { tenantField } from './fields/tenantField/index.js'\nimport { tenantsArrayField } from './fields/tenantsArrayField/index.js'\nimport { filterDocumentsByTenants } from './filters/filterDocumentsByTenants.js'\nimport { addTenantCleanup } from './hooks/afterTenantDelete.js'\nimport { translations } from './translations/index.js'\nimport { addCollectionAccess } from './utilities/addCollectionAccess.js'\nimport { addFilterOptionsToFields } from './utilities/addFilterOptionsToFields.js'\nimport { combineFilters } from './utilities/combineFilters.js'\n\nexport const multiTenantPlugin =\n <ConfigType>(pluginConfig: MultiTenantPluginConfig<ConfigType>) =>\n (incomingConfig: Config): Config => {\n if (pluginConfig.enabled === false) {\n return incomingConfig\n }\n\n /**\n * Set defaults\n */\n const userHasAccessToAllTenants: Required<\n MultiTenantPluginConfig<ConfigType>\n >['userHasAccessToAllTenants'] =\n typeof pluginConfig.userHasAccessToAllTenants === 'function'\n ? pluginConfig.userHasAccessToAllTenants\n : () => false\n const tenantsCollectionSlug = (pluginConfig.tenantsSlug =\n pluginConfig.tenantsSlug || defaults.tenantCollectionSlug)\n const tenantFieldName = pluginConfig?.tenantField?.name || defaults.tenantFieldName\n const tenantsArrayFieldName =\n pluginConfig?.tenantsArrayField?.arrayFieldName || defaults.tenantsArrayFieldName\n const tenantsArrayTenantFieldName =\n pluginConfig?.tenantsArrayField?.arrayTenantFieldName || defaults.tenantsArrayTenantFieldName\n const basePath = pluginConfig.basePath || defaults.basePath\n\n /**\n * Add defaults for admin properties\n */\n if (!incomingConfig.admin) {\n incomingConfig.admin = {}\n }\n if (!incomingConfig.admin?.components) {\n incomingConfig.admin.components = {\n actions: [],\n beforeNavLinks: [],\n providers: [],\n }\n }\n if (!incomingConfig.admin.components?.providers) {\n incomingConfig.admin.components.providers = []\n }\n if (!incomingConfig.admin.components?.actions) {\n incomingConfig.admin.components.actions = []\n }\n if (!incomingConfig.admin.components?.beforeNavLinks) {\n incomingConfig.admin.components.beforeNavLinks = []\n }\n if (!incomingConfig.collections) {\n incomingConfig.collections = []\n }\n\n /**\n * Add tenants array field to users collection\n */\n const adminUsersCollection = incomingConfig.collections.find(({ slug, auth }) => {\n if (incomingConfig.admin?.user) {\n return slug === incomingConfig.admin.user\n } else if (auth) {\n return true\n }\n })\n\n if (!adminUsersCollection) {\n throw Error('An auth enabled collection was not found')\n }\n\n /**\n * Add tenants array field to users collection\n */\n if (pluginConfig?.tenantsArrayField?.includeDefaultField !== false) {\n adminUsersCollection.fields.push(\n tenantsArrayField({\n ...(pluginConfig?.tenantsArrayField || {}),\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n }),\n )\n }\n\n addCollectionAccess({\n adminUsersSlug: adminUsersCollection.slug,\n collection: adminUsersCollection,\n fieldName: `${tenantsArrayFieldName}.${tenantsArrayTenantFieldName}`,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n userHasAccessToAllTenants,\n })\n\n if (pluginConfig.useUsersTenantFilter !== false) {\n if (!adminUsersCollection.admin) {\n adminUsersCollection.admin = {}\n }\n\n const baseFilter =\n adminUsersCollection.admin?.baseFilter ?? adminUsersCollection.admin?.baseListFilter\n adminUsersCollection.admin.baseFilter = combineFilters({\n baseFilter,\n customFilter: (args) =>\n filterDocumentsByTenants<ConfigType>({\n filterFieldName: `${tenantsArrayFieldName}.${tenantsArrayTenantFieldName}`,\n req: args.req,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n }),\n })\n }\n\n let tenantCollection: CollectionConfig | undefined\n\n const [collectionSlugs, globalCollectionSlugs] = Object.keys(pluginConfig.collections).reduce<\n [string[], string[]]\n >(\n (acc, slug) => {\n if (pluginConfig?.collections?.[slug]?.isGlobal) {\n acc[1].push(slug)\n } else {\n acc[0].push(slug)\n }\n\n return acc\n },\n [[], []],\n )\n\n // used to track and not duplicate filterOptions on referenced blocks\n const blockReferencesWithFilters: string[] = []\n\n // used to validate enabled collection slugs\n const multiTenantCollectionsFound: string[] = []\n\n /**\n * The folders collection is added AFTER the plugin is initialized\n * so if they added the folder slug to the plugin collections,\n * we can assume that they have folders enabled\n */\n const foldersSlug = incomingConfig.folders\n ? incomingConfig.folders.slug || 'payload-folders'\n : 'payload-folders'\n\n if (collectionSlugs.includes(foldersSlug)) {\n multiTenantCollectionsFound.push(foldersSlug)\n incomingConfig.folders = incomingConfig.folders || {}\n incomingConfig.folders.collectionOverrides = incomingConfig.folders.collectionOverrides || []\n incomingConfig.folders.collectionOverrides.push(({ collection }) => {\n /**\n * Add filter options to all relationship fields\n */\n addFilterOptionsToFields({\n blockReferencesWithFilters,\n config: incomingConfig,\n fields: collection.fields,\n tenantEnabledCollectionSlugs: collectionSlugs,\n tenantEnabledGlobalSlugs: globalCollectionSlugs,\n tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n })\n\n if (pluginConfig.collections[foldersSlug]?.customTenantField !== true) {\n /**\n * Add tenant field to enabled collections\n */\n collection.fields.unshift(\n tenantField({\n name: tenantFieldName,\n debug: pluginConfig.debug,\n overrides: pluginConfig.collections[collection.slug]?.tenantFieldOverrides\n ? pluginConfig.collections[collection.slug]?.tenantFieldOverrides\n : pluginConfig.tenantField || {},\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n unique: false,\n }),\n )\n }\n\n const { useBaseFilter, useBaseListFilter } = pluginConfig.collections[collection.slug] || {}\n if (useBaseFilter ?? useBaseListFilter ?? true) {\n /**\n * Add list filter to enabled collections\n * - filters results by selected tenant\n */\n collection.admin = collection.admin || {}\n collection.admin.baseFilter = combineFilters({\n baseFilter: collection.admin?.baseFilter ?? collection.admin?.baseListFilter,\n customFilter: (args) =>\n filterDocumentsByTenants<ConfigType>({\n filterFieldName: tenantFieldName,\n req: args.req,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n }),\n })\n }\n\n if (pluginConfig.collections[foldersSlug]?.useTenantAccess !== false) {\n /**\n * Add access control constraint to tenant enabled folders collection\n */\n addCollectionAccess({\n adminUsersSlug: adminUsersCollection.slug,\n collection,\n fieldName: tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n userHasAccessToAllTenants,\n })\n }\n\n return collection\n })\n }\n\n /**\n * Modify collections\n */\n incomingConfig.collections.forEach((collection) => {\n /**\n * Modify tenants collection\n */\n if (collection.slug === tenantsCollectionSlug) {\n tenantCollection = collection\n\n if (pluginConfig.useTenantsCollectionAccess !== false) {\n /**\n * Add access control constraint to tenants collection\n * - constrains access a users assigned tenants\n */\n addCollectionAccess({\n adminUsersSlug: adminUsersCollection.slug,\n collection,\n fieldName: 'id',\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n userHasAccessToAllTenants,\n })\n }\n\n if (pluginConfig.useTenantsListFilter !== false) {\n /**\n * Add list filter to tenants collection\n * - filter by selected tenant\n */\n if (!collection.admin) {\n collection.admin = {}\n }\n\n const baseFilter = collection.admin?.baseFilter ?? collection.admin?.baseListFilter\n collection.admin.baseFilter = combineFilters({\n baseFilter,\n customFilter: (args) =>\n filterDocumentsByTenants({\n filterFieldName: 'id',\n req: args.req,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n }),\n })\n }\n\n if (pluginConfig.cleanupAfterTenantDelete !== false) {\n /**\n * Add cleanup logic when tenant is deleted\n * - delete documents related to tenant\n * - remove tenant from users\n */\n addTenantCleanup({\n collection,\n enabledSlugs: [...collectionSlugs, ...globalCollectionSlugs],\n tenantFieldName,\n tenantsCollectionSlug,\n usersSlug: adminUsersCollection.slug,\n usersTenantsArrayFieldName: tenantsArrayFieldName,\n usersTenantsArrayTenantFieldName: tenantsArrayTenantFieldName,\n })\n }\n\n /**\n * Add custom tenant field that watches and dispatches updates to the selector\n */\n collection.fields.push({\n name: '_watchTenant',\n type: 'ui',\n admin: {\n components: {\n Field: {\n path: '@payloadcms/plugin-multi-tenant/client#WatchTenantCollection',\n },\n },\n disableBulkEdit: true,\n disableListColumn: true,\n },\n })\n\n collection.endpoints = [\n ...(collection.endpoints || []),\n getTenantOptionsEndpoint({\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n useAsTitle: tenantCollection.admin?.useAsTitle || 'id',\n userHasAccessToAllTenants,\n }),\n ]\n } else if (pluginConfig.collections?.[collection.slug]) {\n multiTenantCollectionsFound.push(collection.slug)\n const isGlobal = Boolean(pluginConfig.collections[collection.slug]?.isGlobal)\n\n if (isGlobal) {\n collection.disableDuplicate = true\n }\n\n /**\n * Add filter options to all relationship fields\n */\n addFilterOptionsToFields({\n blockReferencesWithFilters,\n config: incomingConfig,\n fields: collection.fields,\n tenantEnabledCollectionSlugs: collectionSlugs,\n tenantEnabledGlobalSlugs: globalCollectionSlugs,\n tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n })\n\n if (pluginConfig.collections[collection.slug]?.customTenantField !== true) {\n /**\n * Add tenant field to enabled collections\n */\n collection.fields.unshift(\n tenantField({\n name: tenantFieldName,\n debug: pluginConfig.debug,\n overrides: pluginConfig.collections[collection.slug]?.tenantFieldOverrides\n ? pluginConfig.collections[collection.slug]?.tenantFieldOverrides\n : pluginConfig.tenantField || {},\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n unique: isGlobal,\n }),\n )\n }\n\n const { useBaseFilter, useBaseListFilter } = pluginConfig.collections[collection.slug] || {}\n if (useBaseFilter ?? useBaseListFilter ?? true) {\n /**\n * Add list filter to enabled collections\n * - filters results by selected tenant\n */\n collection.admin = collection.admin || {}\n collection.admin.baseFilter = combineFilters({\n baseFilter: collection.admin?.baseFilter ?? collection.admin?.baseListFilter,\n customFilter: (args) =>\n filterDocumentsByTenants({\n filterFieldName: tenantFieldName,\n req: args.req,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n }),\n })\n }\n\n if (pluginConfig.collections[collection.slug]?.useTenantAccess !== false) {\n /**\n * Add access control constraint to tenant enabled collection\n */\n addCollectionAccess({\n adminUsersSlug: adminUsersCollection.slug,\n collection,\n fieldName: tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n userHasAccessToAllTenants,\n })\n }\n }\n })\n\n if (!tenantCollection) {\n throw new Error(`Tenants collection not found with slug: ${tenantsCollectionSlug}`)\n }\n\n if (\n multiTenantCollectionsFound.length !==\n collectionSlugs.length + globalCollectionSlugs.length\n ) {\n const missingSlugs = [...collectionSlugs, ...globalCollectionSlugs].filter(\n (slug) => !multiTenantCollectionsFound.includes(slug),\n )\n // eslint-disable-next-line no-console\n console.error(\n chalk.yellow.bold('WARNING (plugin-multi-tenant)'),\n 'missing collections',\n missingSlugs,\n 'try placing the multi-tenant plugin after other plugins.',\n )\n }\n\n /**\n * Add TenantSelectionProvider to admin providers\n */\n incomingConfig.admin.components.providers.push({\n clientProps: {\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug: tenantCollection.slug,\n useAsTitle: tenantCollection.admin?.useAsTitle || 'id',\n userHasAccessToAllTenants,\n },\n path: '@payloadcms/plugin-multi-tenant/rsc#TenantSelectionProvider',\n })\n\n /**\n * Add global redirect action\n */\n if (globalCollectionSlugs.length) {\n incomingConfig.admin.components.actions.push({\n path: '@payloadcms/plugin-multi-tenant/rsc#GlobalViewRedirect',\n serverProps: {\n basePath,\n globalSlugs: globalCollectionSlugs,\n tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n useAsTitle: tenantCollection.admin?.useAsTitle || 'id',\n userHasAccessToAllTenants,\n },\n })\n }\n\n /**\n * Add tenant selector to admin UI\n */\n incomingConfig.admin.components.beforeNavLinks.push({\n clientProps: {\n enabledSlugs: [\n ...collectionSlugs,\n ...globalCollectionSlugs,\n adminUsersCollection.slug,\n tenantCollection.slug,\n ],\n label: pluginConfig.tenantSelectorLabel || undefined,\n },\n path: '@payloadcms/plugin-multi-tenant/rsc#TenantSelector',\n })\n\n /**\n * Merge plugin translations\n */\n if (!incomingConfig.i18n) {\n incomingConfig.i18n = {}\n }\n Object.entries(translations).forEach(([locale, pluginI18nObject]) => {\n const typedLocale = locale as AcceptedLanguages\n if (!incomingConfig.i18n!.translations) {\n incomingConfig.i18n!.translations = {}\n }\n if (!(typedLocale in incomingConfig.i18n!.translations)) {\n incomingConfig.i18n!.translations[typedLocale] = {}\n }\n if (!('plugin-multi-tenant' in incomingConfig.i18n!.translations[typedLocale]!)) {\n ;(incomingConfig.i18n!.translations[typedLocale] as PluginDefaultTranslationsObject)[\n 'plugin-multi-tenant'\n ] = {} as PluginDefaultTranslationsObject['plugin-multi-tenant']\n }\n\n ;(incomingConfig.i18n!.translations[typedLocale] as PluginDefaultTranslationsObject)[\n 'plugin-multi-tenant'\n ] = {\n ...pluginI18nObject.translations['plugin-multi-tenant'],\n ...(pluginConfig.i18n?.translations?.[typedLocale] || {}),\n }\n })\n\n return incomingConfig\n }\n"],"names":["chalk","defaults","getTenantOptionsEndpoint","tenantField","tenantsArrayField","filterDocumentsByTenants","addTenantCleanup","translations","addCollectionAccess","addFilterOptionsToFields","combineFilters","multiTenantPlugin","pluginConfig","incomingConfig","enabled","userHasAccessToAllTenants","tenantsCollectionSlug","tenantsSlug","tenantCollectionSlug","tenantFieldName","name","tenantsArrayFieldName","arrayFieldName","tenantsArrayTenantFieldName","arrayTenantFieldName","basePath","admin","components","actions","beforeNavLinks","providers","collections","adminUsersCollection","find","slug","auth","user","Error","includeDefaultField","fields","push","adminUsersSlug","collection","fieldName","useUsersTenantFilter","baseFilter","baseListFilter","customFilter","args","filterFieldName","req","tenantCollection","collectionSlugs","globalCollectionSlugs","Object","keys","reduce","acc","isGlobal","blockReferencesWithFilters","multiTenantCollectionsFound","foldersSlug","folders","includes","collectionOverrides","config","tenantEnabledCollectionSlugs","tenantEnabledGlobalSlugs","customTenantField","unshift","debug","overrides","tenantFieldOverrides","unique","useBaseFilter","useBaseListFilter","useTenantAccess","forEach","useTenantsCollectionAccess","useTenantsListFilter","cleanupAfterTenantDelete","enabledSlugs","usersSlug","usersTenantsArrayFieldName","usersTenantsArrayTenantFieldName","type","Field","path","disableBulkEdit","disableListColumn","endpoints","useAsTitle","Boolean","disableDuplicate","length","missingSlugs","filter","console","error","yellow","bold","clientProps","serverProps","globalSlugs","label","tenantSelectorLabel","undefined","i18n","entries","locale","pluginI18nObject","typedLocale"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\nimport type { CollectionConfig, Config } from 'payload'\n\nimport chalk from 'chalk'\n\nimport type { PluginDefaultTranslationsObject } from './translations/types.js'\nimport type { MultiTenantPluginConfig } from './types.js'\n\nimport { defaults } from './defaults.js'\nimport { getTenantOptionsEndpoint } from './endpoints/getTenantOptionsEndpoint.js'\nimport { tenantField } from './fields/tenantField/index.js'\nimport { tenantsArrayField } from './fields/tenantsArrayField/index.js'\nimport { filterDocumentsByTenants } from './filters/filterDocumentsByTenants.js'\nimport { addTenantCleanup } from './hooks/afterTenantDelete.js'\nimport { translations } from './translations/index.js'\nimport { addCollectionAccess } from './utilities/addCollectionAccess.js'\nimport { addFilterOptionsToFields } from './utilities/addFilterOptionsToFields.js'\nimport { combineFilters } from './utilities/combineFilters.js'\n\nexport const multiTenantPlugin =\n <ConfigType>(pluginConfig: MultiTenantPluginConfig<ConfigType>) =>\n (incomingConfig: Config): Config => {\n if (pluginConfig.enabled === false) {\n return incomingConfig\n }\n\n /**\n * Set defaults\n */\n const userHasAccessToAllTenants: Required<\n MultiTenantPluginConfig<ConfigType>\n >['userHasAccessToAllTenants'] =\n typeof pluginConfig.userHasAccessToAllTenants === 'function'\n ? pluginConfig.userHasAccessToAllTenants\n : () => false\n const tenantsCollectionSlug = (pluginConfig.tenantsSlug =\n pluginConfig.tenantsSlug || defaults.tenantCollectionSlug)\n const tenantFieldName = pluginConfig?.tenantField?.name || defaults.tenantFieldName\n const tenantsArrayFieldName =\n pluginConfig?.tenantsArrayField?.arrayFieldName || defaults.tenantsArrayFieldName\n const tenantsArrayTenantFieldName =\n pluginConfig?.tenantsArrayField?.arrayTenantFieldName || defaults.tenantsArrayTenantFieldName\n const basePath = pluginConfig.basePath || defaults.basePath\n\n /**\n * Add defaults for admin properties\n */\n if (!incomingConfig.admin) {\n incomingConfig.admin = {}\n }\n if (!incomingConfig.admin?.components) {\n incomingConfig.admin.components = {\n actions: [],\n beforeNavLinks: [],\n providers: [],\n }\n }\n if (!incomingConfig.admin.components?.providers) {\n incomingConfig.admin.components.providers = []\n }\n if (!incomingConfig.admin.components?.actions) {\n incomingConfig.admin.components.actions = []\n }\n if (!incomingConfig.admin.components?.beforeNavLinks) {\n incomingConfig.admin.components.beforeNavLinks = []\n }\n if (!incomingConfig.collections) {\n incomingConfig.collections = []\n }\n\n /**\n * Add tenants array field to users collection\n */\n const adminUsersCollection = incomingConfig.collections.find(({ slug, auth }) => {\n if (incomingConfig.admin?.user) {\n return slug === incomingConfig.admin.user\n } else if (auth) {\n return true\n }\n })\n\n if (!adminUsersCollection) {\n throw Error('An auth enabled collection was not found')\n }\n\n /**\n * Add tenants array field to users collection\n */\n if (pluginConfig?.tenantsArrayField?.includeDefaultField !== false) {\n adminUsersCollection.fields.push(\n tenantsArrayField({\n ...(pluginConfig?.tenantsArrayField || {}),\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n }),\n )\n }\n\n addCollectionAccess({\n adminUsersSlug: adminUsersCollection.slug,\n collection: adminUsersCollection,\n fieldName: `${tenantsArrayFieldName}.${tenantsArrayTenantFieldName}`,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n userHasAccessToAllTenants,\n })\n\n if (pluginConfig.useUsersTenantFilter !== false) {\n if (!adminUsersCollection.admin) {\n adminUsersCollection.admin = {}\n }\n\n const baseFilter =\n adminUsersCollection.admin?.baseFilter ?? adminUsersCollection.admin?.baseListFilter\n adminUsersCollection.admin.baseFilter = combineFilters({\n baseFilter,\n customFilter: (args) =>\n filterDocumentsByTenants<ConfigType>({\n filterFieldName: `${tenantsArrayFieldName}.${tenantsArrayTenantFieldName}`,\n req: args.req,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n }),\n })\n }\n\n let tenantCollection: CollectionConfig | undefined\n\n const [collectionSlugs, globalCollectionSlugs] = Object.keys(pluginConfig.collections).reduce<\n [string[], string[]]\n >(\n (acc, slug) => {\n if (pluginConfig?.collections?.[slug]?.isGlobal) {\n acc[1].push(slug)\n } else {\n acc[0].push(slug)\n }\n\n return acc\n },\n [[], []],\n )\n\n // used to track and not duplicate filterOptions on referenced blocks\n const blockReferencesWithFilters: string[] = []\n\n // used to validate enabled collection slugs\n const multiTenantCollectionsFound: string[] = []\n\n /**\n * The folders collection is added AFTER the plugin is initialized\n * so if they added the folder slug to the plugin collections,\n * we can assume that they have folders enabled\n */\n const foldersSlug = incomingConfig.folders\n ? incomingConfig.folders.slug || 'payload-folders'\n : 'payload-folders'\n\n if (collectionSlugs.includes(foldersSlug)) {\n multiTenantCollectionsFound.push(foldersSlug)\n incomingConfig.folders = incomingConfig.folders || {}\n incomingConfig.folders.collectionOverrides = incomingConfig.folders.collectionOverrides || []\n incomingConfig.folders.collectionOverrides.push(({ collection }) => {\n /**\n * Add filter options to all relationship fields\n */\n addFilterOptionsToFields({\n blockReferencesWithFilters,\n config: incomingConfig,\n fields: collection.fields,\n tenantEnabledCollectionSlugs: collectionSlugs,\n tenantEnabledGlobalSlugs: globalCollectionSlugs,\n tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n })\n\n if (pluginConfig.collections[foldersSlug]?.customTenantField !== true) {\n /**\n * Add tenant field to enabled collections\n */\n collection.fields.unshift(\n tenantField({\n name: tenantFieldName,\n debug: pluginConfig.debug,\n overrides: pluginConfig.collections[collection.slug]?.tenantFieldOverrides\n ? pluginConfig.collections[collection.slug]?.tenantFieldOverrides\n : pluginConfig.tenantField || {},\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n unique: false,\n }),\n )\n }\n\n const { useBaseFilter, useBaseListFilter } = pluginConfig.collections[collection.slug] || {}\n if (useBaseFilter ?? useBaseListFilter ?? true) {\n /**\n * Add list filter to enabled collections\n * - filters results by selected tenant\n */\n collection.admin = collection.admin || {}\n collection.admin.baseFilter = combineFilters({\n baseFilter: collection.admin?.baseFilter ?? collection.admin?.baseListFilter,\n customFilter: (args) =>\n filterDocumentsByTenants<ConfigType>({\n filterFieldName: tenantFieldName,\n req: args.req,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n }),\n })\n }\n\n if (pluginConfig.collections[foldersSlug]?.useTenantAccess !== false) {\n /**\n * Add access control constraint to tenant enabled folders collection\n */\n addCollectionAccess({\n adminUsersSlug: adminUsersCollection.slug,\n collection,\n fieldName: tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n userHasAccessToAllTenants,\n })\n }\n\n return collection\n })\n }\n\n /**\n * Modify collections\n */\n incomingConfig.collections.forEach((collection) => {\n /**\n * Modify tenants collection\n */\n if (collection.slug === tenantsCollectionSlug) {\n tenantCollection = collection\n\n if (pluginConfig.useTenantsCollectionAccess !== false) {\n /**\n * Add access control constraint to tenants collection\n * - constrains access a users assigned tenants\n */\n addCollectionAccess({\n adminUsersSlug: adminUsersCollection.slug,\n collection,\n fieldName: 'id',\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n userHasAccessToAllTenants,\n })\n }\n\n if (pluginConfig.useTenantsListFilter !== false) {\n /**\n * Add list filter to tenants collection\n * - filter by selected tenant\n */\n if (!collection.admin) {\n collection.admin = {}\n }\n\n const baseFilter = collection.admin?.baseFilter ?? collection.admin?.baseListFilter\n collection.admin.baseFilter = combineFilters({\n baseFilter,\n customFilter: (args) =>\n filterDocumentsByTenants({\n filterFieldName: 'id',\n req: args.req,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n }),\n })\n }\n\n if (pluginConfig.cleanupAfterTenantDelete !== false) {\n /**\n * Add cleanup logic when tenant is deleted\n * - delete documents related to tenant\n * - remove tenant from users\n */\n addTenantCleanup({\n collection,\n enabledSlugs: [...collectionSlugs, ...globalCollectionSlugs],\n tenantFieldName,\n tenantsCollectionSlug,\n usersSlug: adminUsersCollection.slug,\n usersTenantsArrayFieldName: tenantsArrayFieldName,\n usersTenantsArrayTenantFieldName: tenantsArrayTenantFieldName,\n })\n }\n\n /**\n * Add custom tenant field that watches and dispatches updates to the selector\n */\n collection.fields.push({\n name: '_watchTenant',\n type: 'ui',\n admin: {\n components: {\n Field: {\n path: '@payloadcms/plugin-multi-tenant/client#WatchTenantCollection',\n },\n },\n disableBulkEdit: true,\n disableListColumn: true,\n },\n })\n\n collection.endpoints = [\n ...(collection.endpoints || []),\n getTenantOptionsEndpoint({\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n useAsTitle: tenantCollection.admin?.useAsTitle || 'id',\n userHasAccessToAllTenants,\n }),\n ]\n } else if (pluginConfig.collections?.[collection.slug]) {\n multiTenantCollectionsFound.push(collection.slug)\n const isGlobal = Boolean(pluginConfig.collections[collection.slug]?.isGlobal)\n\n if (isGlobal) {\n collection.disableDuplicate = true\n }\n\n if (!pluginConfig.debug && !isGlobal) {\n collection.admin ??= {}\n collection.admin.components ??= {}\n collection.admin.components.edit ??= {}\n collection.admin.components.edit.editMenuItems ??= []\n collection.admin.components.edit.editMenuItems.push({\n path: '@payloadcms/plugin-multi-tenant/client#AssignTenantFieldTrigger',\n })\n }\n\n /**\n * Add filter options to all relationship fields\n */\n addFilterOptionsToFields({\n blockReferencesWithFilters,\n config: incomingConfig,\n fields: collection.fields,\n tenantEnabledCollectionSlugs: collectionSlugs,\n tenantEnabledGlobalSlugs: globalCollectionSlugs,\n tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n })\n\n if (pluginConfig.collections[collection.slug]?.customTenantField !== true) {\n /**\n * Add tenant field to enabled collections\n */\n collection.fields.unshift(\n tenantField({\n name: tenantFieldName,\n debug: pluginConfig.debug,\n overrides: pluginConfig.collections[collection.slug]?.tenantFieldOverrides\n ? pluginConfig.collections[collection.slug]?.tenantFieldOverrides\n : pluginConfig.tenantField || {},\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n unique: isGlobal,\n }),\n )\n }\n\n const { useBaseFilter, useBaseListFilter } = pluginConfig.collections[collection.slug] || {}\n if (useBaseFilter ?? useBaseListFilter ?? true) {\n /**\n * Add list filter to enabled collections\n * - filters results by selected tenant\n */\n collection.admin = collection.admin || {}\n collection.admin.baseFilter = combineFilters({\n baseFilter: collection.admin?.baseFilter ?? collection.admin?.baseListFilter,\n customFilter: (args) =>\n filterDocumentsByTenants({\n filterFieldName: tenantFieldName,\n req: args.req,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n userHasAccessToAllTenants,\n }),\n })\n }\n\n if (pluginConfig.collections[collection.slug]?.useTenantAccess !== false) {\n /**\n * Add access control constraint to tenant enabled collection\n */\n addCollectionAccess({\n adminUsersSlug: adminUsersCollection.slug,\n collection,\n fieldName: tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n userHasAccessToAllTenants,\n })\n }\n }\n })\n\n if (!tenantCollection) {\n throw new Error(`Tenants collection not found with slug: ${tenantsCollectionSlug}`)\n }\n\n if (\n multiTenantCollectionsFound.length !==\n collectionSlugs.length + globalCollectionSlugs.length\n ) {\n const missingSlugs = [...collectionSlugs, ...globalCollectionSlugs].filter(\n (slug) => !multiTenantCollectionsFound.includes(slug),\n )\n // eslint-disable-next-line no-console\n console.error(\n chalk.yellow.bold('WARNING (plugin-multi-tenant)'),\n 'missing collections',\n missingSlugs,\n 'try placing the multi-tenant plugin after other plugins.',\n )\n }\n\n /**\n * Add TenantSelectionProvider to admin providers\n */\n incomingConfig.admin.components.providers.push({\n clientProps: {\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug: tenantCollection.slug,\n useAsTitle: tenantCollection.admin?.useAsTitle || 'id',\n userHasAccessToAllTenants,\n },\n path: '@payloadcms/plugin-multi-tenant/rsc#TenantSelectionProvider',\n })\n\n /**\n * Add global redirect action\n */\n if (globalCollectionSlugs.length) {\n incomingConfig.admin.components.actions.push({\n path: '@payloadcms/plugin-multi-tenant/rsc#GlobalViewRedirect',\n serverProps: {\n basePath,\n globalSlugs: globalCollectionSlugs,\n tenantFieldName,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n useAsTitle: tenantCollection.admin?.useAsTitle || 'id',\n userHasAccessToAllTenants,\n },\n })\n }\n\n /**\n * Add tenant selector to admin UI\n */\n incomingConfig.admin.components.beforeNavLinks.push({\n clientProps: {\n enabledSlugs: [\n ...collectionSlugs,\n ...globalCollectionSlugs,\n adminUsersCollection.slug,\n tenantCollection.slug,\n ],\n label: pluginConfig.tenantSelectorLabel || undefined,\n },\n path: '@payloadcms/plugin-multi-tenant/rsc#TenantSelector',\n })\n\n /**\n * Merge plugin translations\n */\n if (!incomingConfig.i18n) {\n incomingConfig.i18n = {}\n }\n Object.entries(translations).forEach(([locale, pluginI18nObject]) => {\n const typedLocale = locale as AcceptedLanguages\n if (!incomingConfig.i18n!.translations) {\n incomingConfig.i18n!.translations = {}\n }\n if (!(typedLocale in incomingConfig.i18n!.translations)) {\n incomingConfig.i18n!.translations[typedLocale] = {}\n }\n if (!('plugin-multi-tenant' in incomingConfig.i18n!.translations[typedLocale]!)) {\n ;(incomingConfig.i18n!.translations[typedLocale] as PluginDefaultTranslationsObject)[\n 'plugin-multi-tenant'\n ] = {} as PluginDefaultTranslationsObject['plugin-multi-tenant']\n }\n\n ;(incomingConfig.i18n!.translations[typedLocale] as PluginDefaultTranslationsObject)[\n 'plugin-multi-tenant'\n ] = {\n ...pluginI18nObject.translations['plugin-multi-tenant'],\n ...(pluginConfig.i18n?.translations?.[typedLocale] || {}),\n }\n })\n\n return incomingConfig\n }\n"],"names":["chalk","defaults","getTenantOptionsEndpoint","tenantField","tenantsArrayField","filterDocumentsByTenants","addTenantCleanup","translations","addCollectionAccess","addFilterOptionsToFields","combineFilters","multiTenantPlugin","pluginConfig","incomingConfig","enabled","userHasAccessToAllTenants","tenantsCollectionSlug","tenantsSlug","tenantCollectionSlug","tenantFieldName","name","tenantsArrayFieldName","arrayFieldName","tenantsArrayTenantFieldName","arrayTenantFieldName","basePath","admin","components","actions","beforeNavLinks","providers","collections","adminUsersCollection","find","slug","auth","user","Error","includeDefaultField","fields","push","adminUsersSlug","collection","fieldName","useUsersTenantFilter","baseFilter","baseListFilter","customFilter","args","filterFieldName","req","tenantCollection","collectionSlugs","globalCollectionSlugs","Object","keys","reduce","acc","isGlobal","blockReferencesWithFilters","multiTenantCollectionsFound","foldersSlug","folders","includes","collectionOverrides","config","tenantEnabledCollectionSlugs","tenantEnabledGlobalSlugs","customTenantField","unshift","debug","overrides","tenantFieldOverrides","unique","useBaseFilter","useBaseListFilter","useTenantAccess","forEach","useTenantsCollectionAccess","useTenantsListFilter","cleanupAfterTenantDelete","enabledSlugs","usersSlug","usersTenantsArrayFieldName","usersTenantsArrayTenantFieldName","type","Field","path","disableBulkEdit","disableListColumn","endpoints","useAsTitle","Boolean","disableDuplicate","edit","editMenuItems","length","missingSlugs","filter","console","error","yellow","bold","clientProps","serverProps","globalSlugs","label","tenantSelectorLabel","undefined","i18n","entries","locale","pluginI18nObject","typedLocale"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AAyCjE,eAAO,MAAM,YAAY,EAuCpB,kBAAkB,CAAC,+BAA+B,CAAC,CAAA;AAExD,MAAM,MAAM,6BAA6B,GAAG,yBAAyB,CAAA;AAErE,MAAM,MAAM,gCAAgC,GAAG,kBAAkB,CAAC,6BAA6B,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AA0CjE,eAAO,MAAM,YAAY,EAwCpB,kBAAkB,CAAC,+BAA+B,CAAC,CAAA;AAExD,MAAM,MAAM,6BAA6B,GAAG,yBAAyB,CAAA;AAErE,MAAM,MAAM,gCAAgC,GAAG,kBAAkB,CAAC,6BAA6B,CAAC,CAAA"}
@@ -30,6 +30,7 @@ import { ru } from './languages/ru.js';
30
30
  import { sk } from './languages/sk.js';
31
31
  import { sl } from './languages/sl.js';
32
32
  import { sv } from './languages/sv.js';
33
+ import { ta } from './languages/ta.js';
33
34
  import { th } from './languages/th.js';
34
35
  import { tr } from './languages/tr.js';
35
36
  import { uk } from './languages/uk.js';
@@ -69,6 +70,7 @@ export const translations = {
69
70
  sk,
70
71
  sl,
71
72
  sv,
73
+ ta,
72
74
  th,
73
75
  tr,
74
76
  uk,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/translations/index.ts"],"sourcesContent":["import type {\n GenericTranslationsObject,\n NestedKeysStripped,\n SupportedLanguages,\n} from '@payloadcms/translations'\n\nimport type { PluginDefaultTranslationsObject } from './types.js'\n\nimport { ar } from './languages/ar.js'\nimport { az } from './languages/az.js'\nimport { bg } from './languages/bg.js'\nimport { ca } from './languages/ca.js'\nimport { cs } from './languages/cs.js'\nimport { da } from './languages/da.js'\nimport { de } from './languages/de.js'\nimport { en } from './languages/en.js'\nimport { es } from './languages/es.js'\nimport { et } from './languages/et.js'\nimport { fa } from './languages/fa.js'\nimport { fr } from './languages/fr.js'\nimport { he } from './languages/he.js'\nimport { hr } from './languages/hr.js'\nimport { hu } from './languages/hu.js'\nimport { hy } from './languages/hy.js'\nimport { it } from './languages/it.js'\nimport { ja } from './languages/ja.js'\nimport { ko } from './languages/ko.js'\nimport { lt } from './languages/lt.js'\nimport { my } from './languages/my.js'\nimport { nb } from './languages/nb.js'\nimport { nl } from './languages/nl.js'\nimport { pl } from './languages/pl.js'\nimport { pt } from './languages/pt.js'\nimport { ro } from './languages/ro.js'\nimport { rs } from './languages/rs.js'\nimport { rsLatin } from './languages/rsLatin.js'\nimport { ru } from './languages/ru.js'\nimport { sk } from './languages/sk.js'\nimport { sl } from './languages/sl.js'\nimport { sv } from './languages/sv.js'\nimport { th } from './languages/th.js'\nimport { tr } from './languages/tr.js'\nimport { uk } from './languages/uk.js'\nimport { vi } from './languages/vi.js'\nimport { zh } from './languages/zh.js'\nimport { zhTw } from './languages/zhTw.js'\n\nexport const translations = {\n ar,\n az,\n bg,\n ca,\n cs,\n da,\n de,\n en,\n es,\n et,\n fa,\n fr,\n he,\n hr,\n hu,\n hy,\n it,\n ja,\n ko,\n lt,\n my,\n nb,\n nl,\n pl,\n pt,\n ro,\n rs,\n 'rs-latin': rsLatin,\n ru,\n sk,\n sl,\n sv,\n th,\n tr,\n uk,\n vi,\n zh,\n 'zh-TW': zhTw,\n} as SupportedLanguages<PluginDefaultTranslationsObject>\n\nexport type PluginMultiTenantTranslations = GenericTranslationsObject\n\nexport type PluginMultiTenantTranslationKeys = NestedKeysStripped<PluginMultiTenantTranslations>\n"],"names":["ar","az","bg","ca","cs","da","de","en","es","et","fa","fr","he","hr","hu","hy","it","ja","ko","lt","my","nb","nl","pl","pt","ro","rs","rsLatin","ru","sk","sl","sv","th","tr","uk","vi","zh","zhTw","translations"],"mappings":"AAQA,SAASA,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,OAAO,QAAQ,yBAAwB;AAChD,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,IAAI,QAAQ,sBAAqB;AAE1C,OAAO,MAAMC,eAAe;IAC1BtC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACA,YAAYC;IACZC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACA,SAASC;AACX,EAAwD"}
1
+ {"version":3,"sources":["../../src/translations/index.ts"],"sourcesContent":["import type {\n GenericTranslationsObject,\n NestedKeysStripped,\n SupportedLanguages,\n} from '@payloadcms/translations'\n\nimport type { PluginDefaultTranslationsObject } from './types.js'\n\nimport { ar } from './languages/ar.js'\nimport { az } from './languages/az.js'\nimport { bg } from './languages/bg.js'\nimport { ca } from './languages/ca.js'\nimport { cs } from './languages/cs.js'\nimport { da } from './languages/da.js'\nimport { de } from './languages/de.js'\nimport { en } from './languages/en.js'\nimport { es } from './languages/es.js'\nimport { et } from './languages/et.js'\nimport { fa } from './languages/fa.js'\nimport { fr } from './languages/fr.js'\nimport { he } from './languages/he.js'\nimport { hr } from './languages/hr.js'\nimport { hu } from './languages/hu.js'\nimport { hy } from './languages/hy.js'\nimport { it } from './languages/it.js'\nimport { ja } from './languages/ja.js'\nimport { ko } from './languages/ko.js'\nimport { lt } from './languages/lt.js'\nimport { my } from './languages/my.js'\nimport { nb } from './languages/nb.js'\nimport { nl } from './languages/nl.js'\nimport { pl } from './languages/pl.js'\nimport { pt } from './languages/pt.js'\nimport { ro } from './languages/ro.js'\nimport { rs } from './languages/rs.js'\nimport { rsLatin } from './languages/rsLatin.js'\nimport { ru } from './languages/ru.js'\nimport { sk } from './languages/sk.js'\nimport { sl } from './languages/sl.js'\nimport { sv } from './languages/sv.js'\nimport { ta } from './languages/ta.js'\nimport { th } from './languages/th.js'\nimport { tr } from './languages/tr.js'\nimport { uk } from './languages/uk.js'\nimport { vi } from './languages/vi.js'\nimport { zh } from './languages/zh.js'\nimport { zhTw } from './languages/zhTw.js'\n\nexport const translations = {\n ar,\n az,\n bg,\n ca,\n cs,\n da,\n de,\n en,\n es,\n et,\n fa,\n fr,\n he,\n hr,\n hu,\n hy,\n it,\n ja,\n ko,\n lt,\n my,\n nb,\n nl,\n pl,\n pt,\n ro,\n rs,\n 'rs-latin': rsLatin,\n ru,\n sk,\n sl,\n sv,\n ta,\n th,\n tr,\n uk,\n vi,\n zh,\n 'zh-TW': zhTw,\n} as SupportedLanguages<PluginDefaultTranslationsObject>\n\nexport type PluginMultiTenantTranslations = GenericTranslationsObject\n\nexport type PluginMultiTenantTranslationKeys = NestedKeysStripped<PluginMultiTenantTranslations>\n"],"names":["ar","az","bg","ca","cs","da","de","en","es","et","fa","fr","he","hr","hu","hy","it","ja","ko","lt","my","nb","nl","pl","pt","ro","rs","rsLatin","ru","sk","sl","sv","ta","th","tr","uk","vi","zh","zhTw","translations"],"mappings":"AAQA,SAASA,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,OAAO,QAAQ,yBAAwB;AAChD,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,IAAI,QAAQ,sBAAqB;AAE1C,OAAO,MAAMC,eAAe;IAC1BvC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACA,YAAYC;IACZC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACA,SAASC;AACX,EAAwD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAQ5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
1
+ {"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAO5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export const arTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'أنت على وشك تغيير الملكية من <0>{{fromTenant}}</0> إلى <0>{{toTenant}}</0>',
4
- 'confirm-modal-tenant-switch--heading': 'تأكيد تغيير {{tenantLabel}}',
3
+ 'assign-tenant-button-label': 'تعيين المستأجر',
4
+ 'assign-tenant-modal-title': 'قم بتعيين "{{title}}"',
5
5
  'field-assignedTenant-label': 'المستأجر المعين',
6
6
  'nav-tenantSelector-label': 'المستأجر'
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/ar.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const arTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'أنت على وشك تغيير الملكية من <0>{{fromTenant}}</0> إلى <0>{{toTenant}}</0>',\n 'confirm-modal-tenant-switch--heading': 'تأكيد تغيير {{tenantLabel}}',\n 'field-assignedTenant-label': 'المستأجر المعين',\n 'nav-tenantSelector-label': 'المستأجر',\n },\n}\n\nexport const ar: PluginLanguage = {\n dateFNSKey: 'ar',\n translations: arTranslations,\n}\n"],"names":["arTranslations","ar","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/ar.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const arTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'تعيين المستأجر',\n 'assign-tenant-modal-title': 'قم بتعيين \"{{title}}\"',\n 'field-assignedTenant-label': 'المستأجر المعين',\n 'nav-tenantSelector-label': 'المستأجر',\n },\n}\n\nexport const ar: PluginLanguage = {\n dateFNSKey: 'ar',\n translations: arTranslations,\n}\n"],"names":["arTranslations","ar","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"az.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/az.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAQ5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
1
+ {"version":3,"file":"az.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/az.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAO5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export const azTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'Siz <0>{{fromTenant}}</0>-dən <0>{{toTenant}}</0>-a mülkiyyəti dəyişməyə hazırlaşırsınız',
4
- 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} dəyişikliyini təsdiqləyin',
3
+ 'assign-tenant-button-label': 'Kirayəçiyə təyin et',
4
+ 'assign-tenant-modal-title': '"{{title}}" təyin edin',
5
5
  'field-assignedTenant-label': 'Təyin edilmiş İcarəçi',
6
6
  'nav-tenantSelector-label': 'Kirayəçi'
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/az.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const azTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'Siz <0>{{fromTenant}}</0>-dən <0>{{toTenant}}</0>-a mülkiyyəti dəyişməyə hazırlaşırsınız',\n 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} dəyişikliyini təsdiqləyin',\n 'field-assignedTenant-label': 'Təyin edilmiş İcarəçi',\n 'nav-tenantSelector-label': 'Kirayəçi',\n },\n}\n\nexport const az: PluginLanguage = {\n dateFNSKey: 'az',\n translations: azTranslations,\n}\n"],"names":["azTranslations","az","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/az.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const azTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'Kirayəçiyə təyin et',\n 'assign-tenant-modal-title': '\"{{title}}\" təyin edin',\n 'field-assignedTenant-label': 'Təyin edilmiş İcarəçi',\n 'nav-tenantSelector-label': 'Kirayəçi',\n },\n}\n\nexport const az: PluginLanguage = {\n dateFNSKey: 'az',\n translations: azTranslations,\n}\n"],"names":["azTranslations","az","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bg.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/bg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAQ5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
1
+ {"version":3,"file":"bg.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/bg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAO5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export const bgTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'Предстои да промените собствеността от <0>{{fromTenant}}</0> на <0>{{toTenant}}</0>',
4
- 'confirm-modal-tenant-switch--heading': 'Потвърждаване на промяна в {{tenantLabel}}',
3
+ 'assign-tenant-button-label': 'Назначаване на Tenant',
4
+ 'assign-tenant-modal-title': 'Назначете "{{title}}"',
5
5
  'field-assignedTenant-label': 'Назначен наемател',
6
6
  'nav-tenantSelector-label': 'Потребител'
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/bg.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const bgTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'Предстои да промените собствеността от <0>{{fromTenant}}</0> на <0>{{toTenant}}</0>',\n 'confirm-modal-tenant-switch--heading': 'Потвърждаване на промяна в {{tenantLabel}}',\n 'field-assignedTenant-label': 'Назначен наемател',\n 'nav-tenantSelector-label': 'Потребител',\n },\n}\n\nexport const bg: PluginLanguage = {\n dateFNSKey: 'bg',\n translations: bgTranslations,\n}\n"],"names":["bgTranslations","bg","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/bg.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const bgTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'Назначаване на Tenant',\n 'assign-tenant-modal-title': 'Назначете \"{{title}}\"',\n 'field-assignedTenant-label': 'Назначен наемател',\n 'nav-tenantSelector-label': 'Потребител',\n },\n}\n\nexport const bg: PluginLanguage = {\n dateFNSKey: 'bg',\n translations: bgTranslations,\n}\n"],"names":["bgTranslations","bg","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bnBd.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/bnBd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,gBAAgB,EAAE,+BAQ9B,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,cAGlB,CAAA"}
1
+ {"version":3,"file":"bnBd.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/bnBd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,gBAAgB,EAAE,+BAO9B,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,cAGlB,CAAA"}
@@ -1,9 +1,9 @@
1
1
  export const bnBdTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'আপনি <0>{{fromTenant}}</0> থেকে <0>{{toTenant}}</0> তে মালিকানা পরিবর্তন করতে চলেছেন।',
4
- 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} পরিবর্তন নিশ্চিত করুন',
5
- 'field-assignedTenant-label': 'নির্ধারিত টেনেন্ট',
6
- 'nav-tenantSelector-label': 'ভাড়াটিয়া'
3
+ 'assign-tenant-button-label': 'টেনেন্ট নির্ধারণ করুন',
4
+ 'assign-tenant-modal-title': '"{{title}}" নিয়োগ করুন',
5
+ 'field-assignedTenant-label': 'নিযুক্ত টেনেন্ট',
6
+ 'nav-tenantSelector-label': 'টেনেন্ট অনুসারে ফিল্টার করুন'
7
7
  }
8
8
  };
9
9
  export const bnBd = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/bnBd.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const bnBdTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'আপনি <0>{{fromTenant}}</0> থেকে <0>{{toTenant}}</0> তে মালিকানা পরিবর্তন করতে চলেছেন।',\n 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} পরিবর্তন নিশ্চিত করুন',\n 'field-assignedTenant-label': 'নির্ধারিত টেনেন্ট',\n 'nav-tenantSelector-label': 'ভাড়াটিয়া',\n },\n}\n\nexport const bnBd: PluginLanguage = {\n dateFNSKey: 'bn-BD',\n translations: bnBdTranslations,\n}\n"],"names":["bnBdTranslations","bnBd","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,mBAAoD;IAC/D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,OAAuB;IAClCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/bnBd.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const bnBdTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'টেনেন্ট নির্ধারণ করুন',\n 'assign-tenant-modal-title': '\"{{title}}\" নিয়োগ করুন',\n 'field-assignedTenant-label': 'নিযুক্ত টেনেন্ট',\n 'nav-tenantSelector-label': 'টেনেন্ট অনুসারে ফিল্টার করুন',\n },\n}\n\nexport const bnBd: PluginLanguage = {\n dateFNSKey: 'bn-BD',\n translations: bnBdTranslations,\n}\n"],"names":["bnBdTranslations","bnBd","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,mBAAoD;IAC/D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,OAAuB;IAClCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bnIn.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/bnIn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,gBAAgB,EAAE,+BAQ9B,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,cAGlB,CAAA"}
1
+ {"version":3,"file":"bnIn.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/bnIn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,gBAAgB,EAAE,+BAO9B,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,cAGlB,CAAA"}
@@ -1,9 +1,9 @@
1
1
  export const bnInTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'আপনি স্বত্বাধিকার পরিবর্তন করতে চলেছেন <0>{{fromTenant}}</0> থেকে <0>{{toTenant}}</0> এ।',
4
- 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} পরিবর্তন নিশ্চিত করুন',
3
+ 'assign-tenant-button-label': 'টেনেন্ট নিয়োগ করুন',
4
+ 'assign-tenant-modal-title': '"{{title}}" এর দায়িত্ব দিন',
5
5
  'field-assignedTenant-label': 'নির্ধারিত টেনেন্ট',
6
- 'nav-tenantSelector-label': 'ভাড়াটিয়া'
6
+ 'nav-tenantSelector-label': 'টেনেন্ট অনুসারে ফিল্টার করুন'
7
7
  }
8
8
  };
9
9
  export const bnIn = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/bnIn.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const bnInTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'আপনি স্বত্বাধিকার পরিবর্তন করতে চলেছেন <0>{{fromTenant}}</0> থেকে <0>{{toTenant}}</0> এ।',\n 'confirm-modal-tenant-switch--heading': '{{tenantLabel}} পরিবর্তন নিশ্চিত করুন',\n 'field-assignedTenant-label': 'নির্ধারিত টেনেন্ট',\n 'nav-tenantSelector-label': 'ভাড়াটিয়া',\n },\n}\n\nexport const bnIn: PluginLanguage = {\n dateFNSKey: 'bn-IN',\n translations: bnInTranslations,\n}\n"],"names":["bnInTranslations","bnIn","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,mBAAoD;IAC/D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,OAAuB;IAClCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/bnIn.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const bnInTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'টেনেন্ট নিয়োগ করুন',\n 'assign-tenant-modal-title': '\"{{title}}\" এর দায়িত্ব দিন',\n 'field-assignedTenant-label': 'নির্ধারিত টেনেন্ট',\n 'nav-tenantSelector-label': 'টেনেন্ট অনুসারে ফিল্টার করুন',\n },\n}\n\nexport const bnIn: PluginLanguage = {\n dateFNSKey: 'bn-IN',\n translations: bnInTranslations,\n}\n"],"names":["bnInTranslations","bnIn","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,mBAAoD;IAC/D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,OAAuB;IAClCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ca.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/ca.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAQ5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
1
+ {"version":3,"file":"ca.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/ca.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAO5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export const caTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'Està a punt de canviar la propietat de <0>{{fromTenant}}</0> a <0>{{toTenant}}</0>',
4
- 'confirm-modal-tenant-switch--heading': 'Confirmeu el canvi de {{tenantLabel}}',
3
+ 'assign-tenant-button-label': 'Assignar Tenant',
4
+ 'assign-tenant-modal-title': 'Assigna "{{title}}"',
5
5
  'field-assignedTenant-label': 'Llogater Assignat',
6
6
  'nav-tenantSelector-label': 'Inquilí'
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/ca.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const caTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'Està a punt de canviar la propietat de <0>{{fromTenant}}</0> a <0>{{toTenant}}</0>',\n 'confirm-modal-tenant-switch--heading': 'Confirmeu el canvi de {{tenantLabel}}',\n 'field-assignedTenant-label': 'Llogater Assignat',\n 'nav-tenantSelector-label': 'Inquilí',\n },\n}\n\nexport const ca: PluginLanguage = {\n dateFNSKey: 'ca',\n translations: caTranslations,\n}\n"],"names":["caTranslations","ca","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/ca.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const caTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'Assignar Tenant',\n 'assign-tenant-modal-title': 'Assigna \"{{title}}\"',\n 'field-assignedTenant-label': 'Llogater Assignat',\n 'nav-tenantSelector-label': 'Inquilí',\n },\n}\n\nexport const ca: PluginLanguage = {\n dateFNSKey: 'ca',\n translations: caTranslations,\n}\n"],"names":["caTranslations","ca","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cs.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/cs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAQ5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
1
+ {"version":3,"file":"cs.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/cs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAO5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export const csTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'Chystáte se změnit vlastnictví z <0>{{fromTenant}}</0> na <0>{{toTenant}}</0>',
4
- 'confirm-modal-tenant-switch--heading': 'Potvrďte změnu {{tenantLabel}}',
3
+ 'assign-tenant-button-label': 'Přiřadit nájemce',
4
+ 'assign-tenant-modal-title': 'Přiřadit "{{title}}"',
5
5
  'field-assignedTenant-label': 'Přiřazený nájemce',
6
6
  'nav-tenantSelector-label': 'Nájemce'
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/cs.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const csTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'Chystáte se změnit vlastnictví z <0>{{fromTenant}}</0> na <0>{{toTenant}}</0>',\n 'confirm-modal-tenant-switch--heading': 'Potvrďte změnu {{tenantLabel}}',\n 'field-assignedTenant-label': 'Přiřazený nájemce',\n 'nav-tenantSelector-label': 'Nájemce',\n },\n}\n\nexport const cs: PluginLanguage = {\n dateFNSKey: 'cs',\n translations: csTranslations,\n}\n"],"names":["csTranslations","cs","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/cs.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const csTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'Přiřadit nájemce',\n 'assign-tenant-modal-title': 'Přiřadit \"{{title}}\"',\n 'field-assignedTenant-label': 'Přiřazený nájemce',\n 'nav-tenantSelector-label': 'Nájemce',\n },\n}\n\nexport const cs: PluginLanguage = {\n dateFNSKey: 'cs',\n translations: csTranslations,\n}\n"],"names":["csTranslations","cs","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"da.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/da.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAQ5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
1
+ {"version":3,"file":"da.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/da.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAO5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export const daTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'Du er ved at skifte ejerskab fra <0>{{fromTenant}}</0> til <0>{{toTenant}}</0>',
4
- 'confirm-modal-tenant-switch--heading': 'Bekræft ændring af {{tenantLabel}}',
3
+ 'assign-tenant-button-label': 'Tildel Tenant',
4
+ 'assign-tenant-modal-title': 'Tildel "{{title}}"',
5
5
  'field-assignedTenant-label': 'Tildelt Lejer',
6
6
  'nav-tenantSelector-label': 'Lejer'
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/da.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const daTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'Du er ved at skifte ejerskab fra <0>{{fromTenant}}</0> til <0>{{toTenant}}</0>',\n 'confirm-modal-tenant-switch--heading': 'Bekræft ændring af {{tenantLabel}}',\n 'field-assignedTenant-label': 'Tildelt Lejer',\n 'nav-tenantSelector-label': 'Lejer',\n },\n}\n\nexport const da: PluginLanguage = {\n dateFNSKey: 'da',\n translations: daTranslations,\n}\n"],"names":["daTranslations","da","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/da.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const daTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'Tildel Tenant',\n 'assign-tenant-modal-title': 'Tildel \"{{title}}\"',\n 'field-assignedTenant-label': 'Tildelt Lejer',\n 'nav-tenantSelector-label': 'Lejer',\n },\n}\n\nexport const da: PluginLanguage = {\n dateFNSKey: 'da',\n translations: daTranslations,\n}\n"],"names":["daTranslations","da","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAQ5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
1
+ {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAElF,eAAO,MAAM,cAAc,EAAE,+BAO5B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export const deTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'Sie sind dabei, den Besitz von <0>{{fromTenant}}</0> zu <0>{{toTenant}}</0> zu ändern.',
4
- 'confirm-modal-tenant-switch--heading': 'Bestätigung der Änderung von {{tenantLabel}}',
3
+ 'assign-tenant-button-label': 'Mieter zuweisen',
4
+ 'assign-tenant-modal-title': 'Weisen Sie "{{title}}" zu',
5
5
  'field-assignedTenant-label': 'Zugewiesener Mandant',
6
6
  'nav-tenantSelector-label': 'Mieter'
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/translations/languages/de.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const deTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'confirm-modal-tenant-switch--body':\n 'Sie sind dabei, den Besitz von <0>{{fromTenant}}</0> zu <0>{{toTenant}}</0> zu ändern.',\n 'confirm-modal-tenant-switch--heading': 'Bestätigung der Änderung von {{tenantLabel}}',\n 'field-assignedTenant-label': 'Zugewiesener Mandant',\n 'nav-tenantSelector-label': 'Mieter',\n },\n}\n\nexport const de: PluginLanguage = {\n dateFNSKey: 'de',\n translations: deTranslations,\n}\n"],"names":["deTranslations","de","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,qCACE;QACF,wCAAwC;QACxC,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
1
+ {"version":3,"sources":["../../../src/translations/languages/de.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'\n\nexport const deTranslations: PluginDefaultTranslationsObject = {\n 'plugin-multi-tenant': {\n 'assign-tenant-button-label': 'Mieter zuweisen',\n 'assign-tenant-modal-title': 'Weisen Sie \"{{title}}\" zu',\n 'field-assignedTenant-label': 'Zugewiesener Mandant',\n 'nav-tenantSelector-label': 'Mieter',\n },\n}\n\nexport const de: PluginLanguage = {\n dateFNSKey: 'de',\n translations: deTranslations,\n}\n"],"names":["deTranslations","de","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAkD;IAC7D,uBAAuB;QACrB,8BAA8B;QAC9B,6BAA6B;QAC7B,8BAA8B;QAC9B,4BAA4B;IAC9B;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAcH;AAChB,EAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { PluginLanguage } from '../types.js';
2
2
  export declare const enTranslations: {
3
3
  'plugin-multi-tenant': {
4
- 'confirm-modal-tenant-switch--body': string;
5
- 'confirm-modal-tenant-switch--heading': string;
4
+ 'assign-tenant-button-label': string;
5
+ 'assign-tenant-modal-title': string;
6
6
  'field-assignedTenant-label': string;
7
7
  'nav-tenantSelector-label': string;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,cAAc;;;;;;;CAQ1B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,cAAc;;;;;;;CAO1B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
@@ -1,9 +1,9 @@
1
1
  export const enTranslations = {
2
2
  'plugin-multi-tenant': {
3
- 'confirm-modal-tenant-switch--body': 'You are about to change ownership from <0>{{fromTenant}}</0> to <0>{{toTenant}}</0>',
4
- 'confirm-modal-tenant-switch--heading': 'Confirm {{tenantLabel}} change',
3
+ 'assign-tenant-button-label': 'Assign Tenant',
4
+ 'assign-tenant-modal-title': 'Assign "{{title}}"',
5
5
  'field-assignedTenant-label': 'Assigned Tenant',
6
- 'nav-tenantSelector-label': 'Tenant'
6
+ 'nav-tenantSelector-label': 'Filter by Tenant'
7
7
  }
8
8
  };
9
9
  export const en = {