@acorex-platform/framework-client 2.0.0-next.3 → 2.0.0-next.31

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 (81) hide show
  1. package/fesm2022/acorex-platform-framework-client-auth.mjs +8 -9
  2. package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs → acorex-platform-framework-client-common-common-settings.provider-Biu0_ryw.mjs} +35 -2
  4. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-Biu0_ryw.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-framework-client-common.mjs +1387 -538
  6. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-framework-client-core.mjs +7 -2
  8. package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +20 -0
  10. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +520 -142
  12. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DaOvPoNI.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DmkFxSuJ.mjs} +1084 -223
  14. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DmkFxSuJ.mjs.map +1 -0
  15. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-BU7KEfyF.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-BV5WLQVo.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-BU7KEfyF.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-BV5WLQVo.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-Boq0MUFK.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-O8zdiHRH.mjs} +2 -2
  18. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-Boq0MUFK.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-O8zdiHRH.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-CMoFkzhf.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3-0gJTQ.mjs} +4 -4
  20. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-CMoFkzhf.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3-0gJTQ.mjs.map} +1 -1
  21. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-Bre8friL.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-CjfLUBPZ.mjs} +2 -2
  22. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-Bre8friL.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-CjfLUBPZ.mjs.map} +1 -1
  23. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  24. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +94 -17
  25. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  26. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +285 -184
  27. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  28. package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-1UJh0Qj4.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.mjs} +1167 -265
  29. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.mjs.map +1 -0
  30. package/fesm2022/acorex-platform-framework-client-layout-widgets-filter-default-operators-widget-edit.component-DOEn58--.mjs +103 -0
  31. package/fesm2022/acorex-platform-framework-client-layout-widgets-filter-default-operators-widget-edit.component-DOEn58--.mjs.map +1 -0
  32. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-SHCgo4UC.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-XgjDH9Oc.mjs} +3 -3
  33. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-SHCgo4UC.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-XgjDH9Oc.mjs.map} +1 -1
  34. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-BYsrp8LT.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DDczHmAA.mjs} +2 -2
  35. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-BYsrp8LT.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DDczHmAA.mjs.map} +1 -1
  36. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
  37. package/fesm2022/acorex-platform-framework-client-realtime.mjs +49 -7
  38. package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
  39. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-DwCoz2Du.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-DPU6jTDk.mjs} +8 -2
  40. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DPU6jTDk.mjs.map +1 -0
  41. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BCyFK60f.mjs → acorex-platform-framework-client-themes-default-entity-master-modify-view.component-CLdQJ8e8.mjs} +8 -2
  42. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-CLdQJ8e8.mjs.map +1 -0
  43. package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs → acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs} +5 -11
  44. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs → acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs} +5 -11
  46. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs.map +1 -0
  47. package/fesm2022/{acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs → acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs} +15 -4
  48. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs +19 -0
  50. package/fesm2022/acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +306 -129
  52. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  53. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +11 -5
  54. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  55. package/i18n/en-AU/general.json +32 -4
  56. package/i18n/en-AU/layout.json +2 -1
  57. package/i18n/en-AU/platform-layout-widgets.json +7 -1
  58. package/i18n/en-US/general.json +32 -4
  59. package/i18n/en-US/layout.json +2 -1
  60. package/i18n/en-US/platform-layout-widgets.json +7 -1
  61. package/i18n/fa-IR/general.json +32 -4
  62. package/i18n/fa-IR/layout.json +2 -1
  63. package/i18n/fa-IR/platform-layout-widgets.json +7 -1
  64. package/package.json +6 -6
  65. package/types/acorex-platform-framework-client-auth.d.ts +21 -11
  66. package/types/acorex-platform-framework-client-common.d.ts +230 -14
  67. package/types/acorex-platform-framework-client-layout-components.d.ts +47 -6
  68. package/types/acorex-platform-framework-client-layout-entity.d.ts +187 -35
  69. package/types/acorex-platform-framework-client-layout-views.d.ts +15 -0
  70. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +64 -14
  71. package/types/acorex-platform-framework-client-layout-widgets.d.ts +145 -9
  72. package/types/acorex-platform-framework-client-realtime.d.ts +5 -0
  73. package/types/acorex-platform-framework-client-themes-default.d.ts +16 -5
  74. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DaOvPoNI.mjs.map +0 -1
  76. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-1UJh0Qj4.mjs.map +0 -1
  77. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DwCoz2Du.mjs.map +0 -1
  78. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BCyFK60f.mjs.map +0 -1
  79. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs.map +0 -1
  80. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs.map +0 -1
  81. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs.map +0 -1
@@ -20,12 +20,12 @@
20
20
  },
21
21
  "validation": {
22
22
  "file-type-not-allowed": "\"{{fileName}}\" is not an allowed file type.",
23
- "file-type-not-allowed-summary": "{{count}} file(s) were rejected because their type is not allowed.",
24
- "file-size-exceeds-limit": "\"{{fileName}}\" exceeds the {{maxSizeMb}} MB size limit.",
25
- "files-rejected-summary": "{{count}} file(s) were rejected because they do not meet the upload rules."
23
+ "file-type-not-allowed-summary": "{{count}} files were rejected because their type is not allowed.",
24
+ "file-size-exceeds-limit": "\"{{fileName}}\" exceeds the {{maxSize}} size limit.",
25
+ "files-rejected-summary": "{{count}} files were rejected because they do not meet the upload rules."
26
26
  },
27
27
  "messages": {
28
- "upload-failed": "File upload failed. Please try again with a smaller file."
28
+ "upload-failed": "File upload failed. Please try again."
29
29
  }
30
30
  },
31
31
  "lookup": {
@@ -230,6 +230,14 @@
230
230
  "description": "When enabled and the API or network is unavailable, ask to continue using the last cached platform settings. When disabled, a cold start shows the unavailable page. A session that is already open can still queue inbox changes locally and sync them when the network returns."
231
231
  }
232
232
  },
233
+ "presence": {
234
+ "title": "User Status",
235
+ "description": "Control whether user availability is shown across the app.",
236
+ "user-status-enabled": {
237
+ "title": "Show User Status",
238
+ "description": "When enabled, avatars, user cards, and the account menu show Available, Away, and Busy. Turn this off when the product does not display user status."
239
+ }
240
+ },
233
241
  "file-chooser": {
234
242
  "title": "File Chooser",
235
243
  "description": "Platform-wide processing applied after files are chosen or dropped.",
@@ -309,6 +317,22 @@
309
317
  "quick-search-enabled": {
310
318
  "title": "Enable Quick Search",
311
319
  "description": "When enabled, entity lists show a quick search box for fast full-text filtering. When disabled, quick search is hidden."
320
+ },
321
+ "filter-default-operators": {
322
+ "title": "Default Filter Operations",
323
+ "description": "Operator used when a filter of this type opens, until that field locks a single operation or someone picks another one.",
324
+ "column-filter": "Filter",
325
+ "column-operation": "Operation",
326
+ "widgets": {
327
+ "string-filter": "Text",
328
+ "number-filter": "Number",
329
+ "datetime-filter": "Date and Time",
330
+ "boolean-filter": "Yes or No",
331
+ "select-filter": "Selection",
332
+ "lookup-filter": "Lookup",
333
+ "status-filter": "Status",
334
+ "time-duration-filter": "Duration"
335
+ }
312
336
  }
313
337
  }
314
338
  }
@@ -336,6 +360,10 @@
336
360
  "description": "Here is some helpful information."
337
361
  }
338
362
  },
363
+ "error": {
364
+ "title": "Error",
365
+ "description": "Something went wrong. Please try again."
366
+ },
339
367
  "unsaved-changes": {
340
368
  "title": "Discard Changes?",
341
369
  "message": "You have unsaved changes. Are you sure you want to close without saving?"
@@ -151,7 +151,8 @@
151
151
  "custom-demo": "Choose From Custom Provider"
152
152
  },
153
153
  "messages": {
154
- "empty-list": "No Files Selected"
154
+ "empty-list": "No Files Selected",
155
+ "choose-failed": "Could not choose the files. Please try again."
155
156
  },
156
157
  "zip-dialog": {
157
158
  "title": "Bundle Files Into ZIP?",
@@ -203,7 +203,13 @@
203
203
  "qrcode": {
204
204
  "title": "QR Code",
205
205
  "description": "Display and edit QR Codes",
206
- "content": "Content"
206
+ "content": "Content",
207
+ "attachment": {
208
+ "upload": "Upload Image",
209
+ "replace": "Replace Image",
210
+ "remove": "Remove Image",
211
+ "alt": "QR Image"
212
+ }
207
213
  },
208
214
  "image-marker": { "title": "Image Marker", "description": "Image Marker Widget to add markers to an image" },
209
215
  "json-viewer": { "title": "JSON Viewer", "description": "Displays JSON data in a formatted, collapsible tree view" },
@@ -20,12 +20,12 @@
20
20
  },
21
21
  "validation": {
22
22
  "file-type-not-allowed": "\"{{fileName}}\" is not an allowed file type.",
23
- "file-type-not-allowed-summary": "{{count}} file(s) were rejected because their type is not allowed.",
24
- "file-size-exceeds-limit": "\"{{fileName}}\" exceeds the {{maxSizeMb}} MB size limit.",
25
- "files-rejected-summary": "{{count}} file(s) were rejected because they do not meet the upload rules."
23
+ "file-type-not-allowed-summary": "{{count}} files were rejected because their type is not allowed.",
24
+ "file-size-exceeds-limit": "\"{{fileName}}\" exceeds the {{maxSize}} size limit.",
25
+ "files-rejected-summary": "{{count}} files were rejected because they do not meet the upload rules."
26
26
  },
27
27
  "messages": {
28
- "upload-failed": "File upload failed. Please try again with a smaller file."
28
+ "upload-failed": "File upload failed. Please try again."
29
29
  }
30
30
  },
31
31
  "lookup": {
@@ -230,6 +230,14 @@
230
230
  "description": "When enabled and the API or network is unavailable, ask to continue using the last cached platform settings. When disabled, a cold start shows the unavailable page. A session that is already open can still queue inbox changes locally and sync them when the network returns."
231
231
  }
232
232
  },
233
+ "presence": {
234
+ "title": "User Status",
235
+ "description": "Control whether user availability is shown across the app.",
236
+ "user-status-enabled": {
237
+ "title": "Show User Status",
238
+ "description": "When enabled, avatars, user cards, and the account menu show Available, Away, and Busy. Turn this off when the product does not display user status."
239
+ }
240
+ },
233
241
  "file-chooser": {
234
242
  "title": "File Chooser",
235
243
  "description": "Platform-wide processing applied after files are chosen or dropped.",
@@ -309,6 +317,22 @@
309
317
  "quick-search-enabled": {
310
318
  "title": "Enable Quick Search",
311
319
  "description": "When enabled, entity lists show a quick search box for fast full-text filtering. When disabled, quick search is hidden."
320
+ },
321
+ "filter-default-operators": {
322
+ "title": "Default Filter Operations",
323
+ "description": "Operator used when a filter of this type opens, until that field locks a single operation or someone picks another one.",
324
+ "column-filter": "Filter",
325
+ "column-operation": "Operation",
326
+ "widgets": {
327
+ "string-filter": "Text",
328
+ "number-filter": "Number",
329
+ "datetime-filter": "Date and Time",
330
+ "boolean-filter": "Yes or No",
331
+ "select-filter": "Selection",
332
+ "lookup-filter": "Lookup",
333
+ "status-filter": "Status",
334
+ "time-duration-filter": "Duration"
335
+ }
312
336
  }
313
337
  }
314
338
  }
@@ -336,6 +360,10 @@
336
360
  "description": "Here is some helpful information."
337
361
  }
338
362
  },
363
+ "error": {
364
+ "title": "Error",
365
+ "description": "Something went wrong. Please try again."
366
+ },
339
367
  "unsaved-changes": {
340
368
  "title": "Discard Changes?",
341
369
  "message": "You have unsaved changes. Are you sure you want to close without saving?"
@@ -151,7 +151,8 @@
151
151
  "custom-demo": "Choose From Custom Provider"
152
152
  },
153
153
  "messages": {
154
- "empty-list": "No Files Selected"
154
+ "empty-list": "No Files Selected",
155
+ "choose-failed": "Could not choose the files. Please try again."
155
156
  },
156
157
  "zip-dialog": {
157
158
  "title": "Bundle Files Into ZIP?",
@@ -203,7 +203,13 @@
203
203
  "qrcode": {
204
204
  "title": "QR Code",
205
205
  "description": "Display and edit QR Codes",
206
- "content": "Content"
206
+ "content": "Content",
207
+ "attachment": {
208
+ "upload": "Upload Image",
209
+ "replace": "Replace Image",
210
+ "remove": "Remove Image",
211
+ "alt": "QR Image"
212
+ }
207
213
  },
208
214
  "image-marker": { "title": "Image Marker", "description": "Image Marker Widget to add markers to an image" },
209
215
  "json-viewer": { "title": "JSON Viewer", "description": "Displays JSON data in a formatted, collapsible tree view" },
@@ -20,12 +20,12 @@
20
20
  },
21
21
  "validation": {
22
22
  "file-type-not-allowed": "نوع فایل «{{fileName}}» مجاز نیست.",
23
- "file-type-not-allowed-summary": "{{count}} فایل به‌دلیل نوع غیرمجاز رد شد.",
24
- "file-size-exceeds-limit": "«{{fileName}}» از محدودیت {{maxSizeMb}} مگابایت بیشتر است.",
25
- "files-rejected-summary": "{{count}} فایل به‌دلیل عدم رعایت قوانین بارگذاری رد شد."
23
+ "file-type-not-allowed-summary": "{{count}} فایل به‌دلیل نوع غیرمجاز رد شدند.",
24
+ "file-size-exceeds-limit": "«{{fileName}}» از محدودیت حجم {{maxSize}} بیشتر است.",
25
+ "files-rejected-summary": "{{count}} فایل به‌دلیل رعایت نشدن قوانین بارگذاری رد شدند."
26
26
  },
27
27
  "messages": {
28
- "upload-failed": "بارگذاری فایل انجام نشد. لطفاً با فایل کوچک‌تری دوباره تلاش کنید."
28
+ "upload-failed": "بارگذاری فایل انجام نشد. لطفاً دوباره تلاش کنید."
29
29
  }
30
30
  },
31
31
  "lookup": {
@@ -230,6 +230,14 @@
230
230
  "description": "در صورت فعال بودن و در دسترس نبودن API یا شبکه، برای ادامه با آخرین تنظیمات کش‌شدهٔ پلتفرم سؤال می‌شود. در صورت غیرفعال بودن، شروع سرد صفحهٔ در دسترس نبودن را نشان می‌دهد. نشستی که از قبل باز است همچنان می‌تواند تغییرات صندوق را محلی صف کند و با برگشت شبکه همگام کند."
231
231
  }
232
232
  },
233
+ "presence": {
234
+ "title": "وضعیت کاربر",
235
+ "description": "نمایش وضعیت حضور کاربر در سراسر برنامه را کنترل می‌کند.",
236
+ "user-status-enabled": {
237
+ "title": "نمایش وضعیت کاربر",
238
+ "description": "در صورت فعال بودن، آواتار، کارت کاربر و منوی حساب وضعیت‌های در دسترس، غایب و مشغول را نشان می‌دهند. اگر محصول این قابلیت را نمایش نمی‌دهد، آن را خاموش کنید."
239
+ }
240
+ },
233
241
  "file-chooser": {
234
242
  "title": "انتخاب فایل",
235
243
  "description": "پردازش سراسری پلتفرم پس از انتخاب یا رها کردن فایل‌ها.",
@@ -309,6 +317,22 @@
309
317
  "quick-search-enabled": {
310
318
  "title": "فعال‌سازی جستجوی سریع",
311
319
  "description": "در صورت فعال بودن، در لیست قابلیت‌ها جعبه جستجوی سریع برای فیلتر متنی نمایش داده می‌شود. در صورت غیرفعال بودن، جستجوی سریع مخفی می‌ماند."
320
+ },
321
+ "filter-default-operators": {
322
+ "title": "عملیات پیش‌فرض فیلتر",
323
+ "description": "عملگری که هنگام باز شدن فیلتر از این نوع انتخاب می‌شود، تا وقتی همان فیلد فقط یک عملگر داشته باشد یا کاربر عملگر دیگری را انتخاب کند.",
324
+ "column-filter": "فیلتر",
325
+ "column-operation": "عملگر",
326
+ "widgets": {
327
+ "string-filter": "متن",
328
+ "number-filter": "عدد",
329
+ "datetime-filter": "تاریخ و زمان",
330
+ "boolean-filter": "بله یا خیر",
331
+ "select-filter": "انتخاب",
332
+ "lookup-filter": "جستجوی فهرست",
333
+ "status-filter": "وضعیت",
334
+ "time-duration-filter": "مدت"
335
+ }
312
336
  }
313
337
  }
314
338
  }
@@ -336,6 +360,10 @@
336
360
  "description": "در اینجا اطلاعات مفیدی وجود دارد."
337
361
  }
338
362
  },
363
+ "error": {
364
+ "title": "خطا",
365
+ "description": "مشکلی پیش آمده است. لطفاً دوباره تلاش کنید."
366
+ },
339
367
  "unsaved-changes": {
340
368
  "title": "تغییرات ذخیره نشود؟",
341
369
  "message": "تغییرات ذخیره نشده دارید. می‌خواهید بدون ذخیره خارج شوید؟"
@@ -151,7 +151,8 @@
151
151
  "custom-demo": "انتخاب از ارائه‌دهنده سفارشی"
152
152
  },
153
153
  "messages": {
154
- "empty-list": "فایلی انتخاب نشده است"
154
+ "empty-list": "فایلی انتخاب نشده است",
155
+ "choose-failed": "انتخاب فایل انجام نشد. لطفاً دوباره تلاش کنید."
155
156
  },
156
157
  "zip-dialog": {
157
158
  "title": "فایل‌ها در ZIP قرار گیرند؟",
@@ -203,7 +203,13 @@
203
203
  "qrcode": {
204
204
  "title": "کد QR",
205
205
  "description": "نمایش و ویرایش کدهای QR",
206
- "content": "محتوا"
206
+ "content": "محتوا",
207
+ "attachment": {
208
+ "upload": "بارگذاری تصویر",
209
+ "replace": "جایگزینی تصویر",
210
+ "remove": "حذف تصویر",
211
+ "alt": "تصویر QR"
212
+ }
207
213
  },
208
214
  "image-marker": { "title": "نشانگر تصویر", "description": "افزودن نشانگر به تصویر" },
209
215
  "json-viewer": { "title": "نمایشگر JSON", "description": "نمایش داده JSON به صورت درخت تاشو" },
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@acorex-platform/framework-client",
3
- "version": "2.0.0-next.3",
3
+ "version": "2.0.0-next.31",
4
4
  "peerDependencies": {
5
+ "@acorex-platform/framework-shared": "2.0.0-next.31",
5
6
  "@acorex/cdk": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
6
- "@acorex/core": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
7
7
  "@acorex/charts": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
8
- "@acorex/styles": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
9
8
  "@acorex/components": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
10
- "@acorex-platform/framework-shared": "2.0.0-next.3",
9
+ "@acorex/core": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
10
+ "@acorex/styles": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
11
11
  "@ngrx/signals": ">=22.0.0",
12
- "socket.io-client": "^4.0.0",
12
+ "dexie": "^3.2.7",
13
13
  "dom-to-image": "^2.6.0",
14
14
  "micromark": "^4.0.2",
15
15
  "micromark-extension-gfm": "^3.0.0",
16
- "dexie": "^3.2.7"
16
+ "socket.io-client": "^4.0.0"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0"
@@ -1061,25 +1061,35 @@ declare abstract class AXPLoginChallengeProvider {
1061
1061
  }
1062
1062
 
1063
1063
  /**
1064
- * Injection token for the login challenge provider
1065
- *
1066
- * This token is optional - if not provided, no challenge mechanism will be used.
1064
+ * Login challenge providers (multi). Auth resolves the active one from
1065
+ * platform Default Captcha Provider setting + captcha provider definitions.
1067
1066
  *
1068
1067
  * @example
1069
1068
  * ```typescript
1070
- * // In your app module or provider configuration:
1071
1069
  * providers: [
1072
1070
  * {
1073
1071
  * provide: AXP_LOGIN_CHALLENGE_PROVIDER,
1074
- * useClass: MyImageCaptchaProvider
1072
+ * useClass: MyImageCaptchaProvider,
1073
+ * multi: true,
1075
1074
  * }
1076
1075
  * ]
1077
- *
1078
- * // In a component:
1079
- * private challengeProvider = inject(AXP_LOGIN_CHALLENGE_PROVIDER, { optional: true });
1080
1076
  * ```
1081
1077
  */
1082
- declare const AXP_LOGIN_CHALLENGE_PROVIDER: InjectionToken<AXPLoginChallengeProvider>;
1078
+ declare const AXP_LOGIN_CHALLENGE_PROVIDER: InjectionToken<AXPLoginChallengeProvider[]>;
1079
+
1080
+ /**
1081
+ * Leaf catalog entry for a login captcha Integration provider.
1082
+ * Extensions register via {@link AXP_CAPTCHA_PROVIDER_DEFINITION} (multi).
1083
+ */
1084
+ interface AXPCaptchaProviderDefinition {
1085
+ /** Integration provider id (e.g. `google-recaptcha`). */
1086
+ id: string;
1087
+ /** i18n key for settings select title. */
1088
+ titleKey: string;
1089
+ /** Matches {@link AXPLoginChallengeProvider.name}. */
1090
+ challengeName: string;
1091
+ }
1092
+ declare const AXP_CAPTCHA_PROVIDER_DEFINITION: InjectionToken<AXPCaptchaProviderDefinition[]>;
1083
1093
 
1084
1094
  /** Protocol family for a sign-in method. */
1085
1095
  type AXPSignInMethodProtocol = 'password' | 'otp' | 'oidc' | 'saml' | 'ldap' | 'custom';
@@ -1132,5 +1142,5 @@ declare class AXPSignInMethodRegistry {
1132
1142
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSignInMethodRegistry>;
1133
1143
  }
1134
1144
 
1135
- export { AUTH_SESSION_TRACE_NS, AUTH_SESSION_TRACE_TITLE, AXPAuthGuard, AXPAuthModule, AXPAuthStrategy, AXPAuthStrategyRegistryService, AXPFeatureDirective, AXPFeatureEvaluatorScopeProvider, AXPFeatureGuard, AXPLoginChallengeComponentBase, AXPLoginChallengeProvider, AXPPermissionDefinitionBuilder, AXPPermissionDefinitionGroupBuilder, AXPPermissionDefinitionProviderContext, AXPPermissionDefinitionService, AXPPermissionDirective, AXPPermissionEvaluatorScopeProvider, AXPPermissionGuard, AXPPlatformAuthRuntimeService, AXPSessionContext, AXPSessionService, AXPSessionStatus, AXPSignInMethod, AXPSignInMethodRegistry, AXPUnauthenticatedError, AXPUnauthorizedError, AXPUserProfileIdentityService, AXP_ACCESS_POLICY_CACHE_PORT, AXP_APPLICATION_LOADER, AXP_DEFAULT_PLATFORM_OAUTH_CLIENT_ID, AXP_DEFAULT_PLATFORM_OAUTH_SCOPE, AXP_FEATURE_CHECKER, AXP_FEATURE_LOADER, AXP_LOGIN_CHALLENGE_PROVIDER, AXP_OAUTH_PKCE_VERIFIER_KEY, AXP_PERMISSION_CHECKER, AXP_PERMISSION_DEFINITION_PROVIDER, AXP_PERMISSION_LOADER, AXP_PERMISSION_MODULES_RESOLVER, AXP_PLATFORM_OAUTH_CSRF_COOKIE, AXP_TENANT_LOADER, AXP_USER_AVATAR_CACHE_PORT, DEFINITIVE_AUTH_REFRESH_CODES, JwtUtil, MAX_ACTIVE_DEVICE_SESSIONS_CODE, PkceUtil, TimeUtil, asAuthListProvidersResponse, clearOAuthPendingStrategy, clearSessionLimitPendingTenant, commandMessageTextForError, exchangePlatformOAuthAuthorizationCode, fetchPlatformOAuthDiscoveryDocument, findIdentityProvider, getOAuthPendingStrategy, hasLegacyOAuthPkceVerifier, hasOAuthPendingFlow, initPlatformOAuthAuthorization, isDefinitiveAuthRefreshFailure, isMaxActiveDeviceSessionsError, isMissingAccessTokenError, isOAuthRedirectInFlight, platformOAuthSessionUpdateParams, readPlatformOAuthCsrfToken, readSessionLimitPendingTenant, resolvePlatformOAuthAuthorizeEndpoint, resolvePlatformOAuthClientConfig, resolvePlatformOAuthIssuer, resolvePlatformOAuthRedirectUri, resolvePlatformOAuthTokenEndpoint, resolveStatusAfterSoftRestore, setOAuthPendingStrategy, shouldPlatformOAuthBindSession, shouldRetryAccessPolicyAuthorization, storeSessionLimitPendingTenant, toPlatformOAuthSignInResult, traceAuthAccessPolicy, traceAuthCatalog, traceAuthGuard, traceAuthLifecycle, traceAuthLifecycleError, traceAuthRestore, traceAuthWorkspace, warnAuthAccessPolicy, warnAuthLifecycle, warnAuthWorkspace };
1136
- export type { AXPAccessPolicyCachePort, AXPApplication, AXPApplicationLoader, AXPAuthIdentityProvider, AXPAuthListProvidersResponse, AXPAuthLocalSignInMethod, AXPAuthModuleConfigs, AXPBaseCredentials, AXPChallengeCheckResult, AXPChallengeContentType, AXPEdition, AXPFeature, AXPFeatureChecker, AXPFeatureLoader, AXPLoginChallengeData, AXPPermission, AXPPermissionAddOptions, AXPPermissionChecker, AXPPermissionDefinition, AXPPermissionDefinitionProvider, AXPPermissionGroupAddOptions, AXPPermissionGroupDefinition, AXPPermissionLoader, AXPPermissionModulesResolver, AXPPlatformOAuthClientConfig, AXPPlatformOAuthDiscoveryDocument, AXPSessionData, AXPSessionLimitPendingTenant, AXPSignInMethodDescriptor, AXPSignInMethodProtocol, AXPSignInMethodStartResult, AXPSignInMethodStep, AXPSignInMethodStepKind, AXPSignInResult, AXPTenant, AXPTenantLoader, AXPTokenResult, AXPUser, AXPUserAvatarCachePort, PlatformAuthOwnDeviceSessionDto, PlatformAuthTokenResponseDto, PlatformAuthUpdateSessionInput };
1145
+ export { AUTH_SESSION_TRACE_NS, AUTH_SESSION_TRACE_TITLE, AXPAuthGuard, AXPAuthModule, AXPAuthStrategy, AXPAuthStrategyRegistryService, AXPFeatureDirective, AXPFeatureEvaluatorScopeProvider, AXPFeatureGuard, AXPLoginChallengeComponentBase, AXPLoginChallengeProvider, AXPPermissionDefinitionBuilder, AXPPermissionDefinitionGroupBuilder, AXPPermissionDefinitionProviderContext, AXPPermissionDefinitionService, AXPPermissionDirective, AXPPermissionEvaluatorScopeProvider, AXPPermissionGuard, AXPPlatformAuthRuntimeService, AXPSessionContext, AXPSessionService, AXPSessionStatus, AXPSignInMethod, AXPSignInMethodRegistry, AXPUnauthenticatedError, AXPUnauthorizedError, AXPUserProfileIdentityService, AXP_ACCESS_POLICY_CACHE_PORT, AXP_APPLICATION_LOADER, AXP_CAPTCHA_PROVIDER_DEFINITION, AXP_DEFAULT_PLATFORM_OAUTH_CLIENT_ID, AXP_DEFAULT_PLATFORM_OAUTH_SCOPE, AXP_FEATURE_CHECKER, AXP_FEATURE_LOADER, AXP_LOGIN_CHALLENGE_PROVIDER, AXP_OAUTH_PKCE_VERIFIER_KEY, AXP_PERMISSION_CHECKER, AXP_PERMISSION_DEFINITION_PROVIDER, AXP_PERMISSION_LOADER, AXP_PERMISSION_MODULES_RESOLVER, AXP_PLATFORM_OAUTH_CSRF_COOKIE, AXP_TENANT_LOADER, AXP_USER_AVATAR_CACHE_PORT, DEFINITIVE_AUTH_REFRESH_CODES, JwtUtil, MAX_ACTIVE_DEVICE_SESSIONS_CODE, PkceUtil, TimeUtil, asAuthListProvidersResponse, clearOAuthPendingStrategy, clearSessionLimitPendingTenant, commandMessageTextForError, exchangePlatformOAuthAuthorizationCode, fetchPlatformOAuthDiscoveryDocument, findIdentityProvider, getOAuthPendingStrategy, hasLegacyOAuthPkceVerifier, hasOAuthPendingFlow, initPlatformOAuthAuthorization, isDefinitiveAuthRefreshFailure, isMaxActiveDeviceSessionsError, isMissingAccessTokenError, isOAuthRedirectInFlight, platformOAuthSessionUpdateParams, readPlatformOAuthCsrfToken, readSessionLimitPendingTenant, resolvePlatformOAuthAuthorizeEndpoint, resolvePlatformOAuthClientConfig, resolvePlatformOAuthIssuer, resolvePlatformOAuthRedirectUri, resolvePlatformOAuthTokenEndpoint, resolveStatusAfterSoftRestore, setOAuthPendingStrategy, shouldPlatformOAuthBindSession, shouldRetryAccessPolicyAuthorization, storeSessionLimitPendingTenant, toPlatformOAuthSignInResult, traceAuthAccessPolicy, traceAuthCatalog, traceAuthGuard, traceAuthLifecycle, traceAuthLifecycleError, traceAuthRestore, traceAuthWorkspace, warnAuthAccessPolicy, warnAuthLifecycle, warnAuthWorkspace };
1146
+ export type { AXPAccessPolicyCachePort, AXPApplication, AXPApplicationLoader, AXPAuthIdentityProvider, AXPAuthListProvidersResponse, AXPAuthLocalSignInMethod, AXPAuthModuleConfigs, AXPBaseCredentials, AXPCaptchaProviderDefinition, AXPChallengeCheckResult, AXPChallengeContentType, AXPEdition, AXPFeature, AXPFeatureChecker, AXPFeatureLoader, AXPLoginChallengeData, AXPPermission, AXPPermissionAddOptions, AXPPermissionChecker, AXPPermissionDefinition, AXPPermissionDefinitionProvider, AXPPermissionGroupAddOptions, AXPPermissionGroupDefinition, AXPPermissionLoader, AXPPermissionModulesResolver, AXPPlatformOAuthClientConfig, AXPPlatformOAuthDiscoveryDocument, AXPSessionData, AXPSessionLimitPendingTenant, AXPSignInMethodDescriptor, AXPSignInMethodProtocol, AXPSignInMethodStartResult, AXPSignInMethodStep, AXPSignInMethodStepKind, AXPSignInResult, AXPTenant, AXPTenantLoader, AXPTokenResult, AXPUser, AXPUserAvatarCachePort, PlatformAuthOwnDeviceSessionDto, PlatformAuthTokenResponseDto, PlatformAuthUpdateSessionInput };