web-mojo 2.2.7 → 2.2.9

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 (56) hide show
  1. package/dist/admin.cjs.js +1 -1
  2. package/dist/admin.cjs.js.map +1 -1
  3. package/dist/admin.es.js +7509 -7428
  4. package/dist/admin.es.js.map +1 -1
  5. package/dist/auth.cjs.js +1 -1
  6. package/dist/auth.es.js +1 -1
  7. package/dist/charts.cjs.js +1 -1
  8. package/dist/charts.es.js +3 -3
  9. package/dist/chunks/ChatView-BxIeRwBQ.js +2 -0
  10. package/dist/chunks/ChatView-BxIeRwBQ.js.map +1 -0
  11. package/dist/chunks/{ChatView-pFVev6ZD.js → ChatView-DfhhZKoN.js} +282 -96
  12. package/dist/chunks/ChatView-DfhhZKoN.js.map +1 -0
  13. package/dist/chunks/{Dialog-LFifi2fg.js → Dialog-Cu_Dx46k.js} +3 -3
  14. package/dist/chunks/{Dialog-LFifi2fg.js.map → Dialog-Cu_Dx46k.js.map} +1 -1
  15. package/dist/chunks/{Dialog-DPGOKfct.js → Dialog-DX5h2QA9.js} +2 -2
  16. package/dist/chunks/{Dialog-DPGOKfct.js.map → Dialog-DX5h2QA9.js.map} +1 -1
  17. package/dist/chunks/{FormView-Xb_l8AD5.js → FormView-B_90L1RY.js} +683 -27
  18. package/dist/chunks/FormView-B_90L1RY.js.map +1 -0
  19. package/dist/chunks/FormView-Bwofbd8S.js +3 -0
  20. package/dist/chunks/FormView-Bwofbd8S.js.map +1 -0
  21. package/dist/chunks/{MetricsMiniChartWidget-CzqYq7d2.js → MetricsMiniChartWidget-Cg5Hyx28.js} +113 -54
  22. package/dist/chunks/MetricsMiniChartWidget-Cg5Hyx28.js.map +1 -0
  23. package/dist/chunks/MetricsMiniChartWidget-DNIU3bL-.js +2 -0
  24. package/dist/chunks/MetricsMiniChartWidget-DNIU3bL-.js.map +1 -0
  25. package/dist/chunks/{PDFViewer-BCn-y_36.js → PDFViewer--jlqnuVw.js} +2 -2
  26. package/dist/chunks/{PDFViewer-BCn-y_36.js.map → PDFViewer--jlqnuVw.js.map} +1 -1
  27. package/dist/chunks/{PDFViewer-BeWHRAeX.js → PDFViewer-DSmi78S6.js} +2 -2
  28. package/dist/chunks/{PDFViewer-BeWHRAeX.js.map → PDFViewer-DSmi78S6.js.map} +1 -1
  29. package/dist/chunks/{TokenManager-D2pm6lM8.js → TokenManager-CEOPgnsw.js} +2 -2
  30. package/dist/chunks/{TokenManager-D2pm6lM8.js.map → TokenManager-CEOPgnsw.js.map} +1 -1
  31. package/dist/chunks/{TokenManager-DZwzcAzD.js → TokenManager-DiQfilqw.js} +2 -2
  32. package/dist/chunks/{TokenManager-DZwzcAzD.js.map → TokenManager-DiQfilqw.js.map} +1 -1
  33. package/dist/chunks/{version-CmZ8J2xW.js → version-BlWcQoar.js} +2 -2
  34. package/dist/chunks/{version-CmZ8J2xW.js.map → version-BlWcQoar.js.map} +1 -1
  35. package/dist/chunks/{version-aJXsYzYB.js → version-CHVtoVR0.js} +4 -4
  36. package/dist/chunks/{version-aJXsYzYB.js.map → version-CHVtoVR0.js.map} +1 -1
  37. package/dist/core.css +183 -0
  38. package/dist/css/web-mojo.css +1 -1
  39. package/dist/docit.cjs.js +1 -1
  40. package/dist/docit.es.js +3 -3
  41. package/dist/index.cjs.js +1 -1
  42. package/dist/index.cjs.js.map +1 -1
  43. package/dist/index.es.js +96 -92
  44. package/dist/index.es.js.map +1 -1
  45. package/dist/lightbox.cjs.js +1 -1
  46. package/dist/lightbox.es.js +4 -4
  47. package/package.json +1 -1
  48. package/dist/chunks/ChatView-B2iog5Hu.js +0 -2
  49. package/dist/chunks/ChatView-B2iog5Hu.js.map +0 -1
  50. package/dist/chunks/ChatView-pFVev6ZD.js.map +0 -1
  51. package/dist/chunks/FormView-Clc_mN0d.js +0 -3
  52. package/dist/chunks/FormView-Clc_mN0d.js.map +0 -1
  53. package/dist/chunks/FormView-Xb_l8AD5.js.map +0 -1
  54. package/dist/chunks/MetricsMiniChartWidget-C8RQnqrd.js +0 -2
  55. package/dist/chunks/MetricsMiniChartWidget-C8RQnqrd.js.map +0 -1
  56. package/dist/chunks/MetricsMiniChartWidget-CzqYq7d2.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { M as Model, C as Collection } from "./Collection-G5_fJcpB.js";
2
2
  import { r as rest, V as View, d as dataFormatter, a as Mustache } from "./Rest-ChN4Ntac.js";
3
3
  import { T as ToastService, G as GroupList, c as UserList, P as Page } from "./ContextMenu-CMoik8q6.js";
4
- import { D as Dialog } from "./Dialog-LFifi2fg.js";
4
+ import { D as Dialog } from "./Dialog-Cu_Dx46k.js";
5
5
  import { L as ListViewItem, a as ListView } from "./ListView-DoF-Sr56.js";
6
- import { F as FormView, a as applyFileDropMixin } from "./FormView-Xb_l8AD5.js";
6
+ import { F as FormView, a as applyFileDropMixin } from "./FormView-B_90L1RY.js";
7
7
  class S3Bucket extends Model {
8
8
  constructor(data = {}) {
9
9
  super(data, {
@@ -3733,6 +3733,151 @@ class TableRow extends ListViewItem {
3733
3733
  }
3734
3734
  }
3735
3735
  }
3736
+ const LOOKUPS = {
3737
+ // Comparison
3738
+ "exact": {
3739
+ display: "is",
3740
+ description: "Exact match"
3741
+ },
3742
+ "in": {
3743
+ display: "in",
3744
+ description: "Match any of the values (comma-separated)"
3745
+ },
3746
+ "not": {
3747
+ display: "is not",
3748
+ description: "Does not match"
3749
+ },
3750
+ "not_in": {
3751
+ display: "not in",
3752
+ description: "Does not match any of the values"
3753
+ },
3754
+ "gt": {
3755
+ display: ">",
3756
+ description: "Greater than"
3757
+ },
3758
+ "gte": {
3759
+ display: ">=",
3760
+ description: "Greater than or equal to"
3761
+ },
3762
+ "lt": {
3763
+ display: "<",
3764
+ description: "Less than"
3765
+ },
3766
+ "lte": {
3767
+ display: "<=",
3768
+ description: "Less than or equal to"
3769
+ },
3770
+ // String operations
3771
+ "contains": {
3772
+ display: "contains",
3773
+ description: "Contains substring (case-sensitive)"
3774
+ },
3775
+ "icontains": {
3776
+ display: "contains",
3777
+ description: "Contains substring (case-insensitive)"
3778
+ },
3779
+ "startswith": {
3780
+ display: "starts with",
3781
+ description: "Starts with substring (case-sensitive)"
3782
+ },
3783
+ "istartswith": {
3784
+ display: "starts with",
3785
+ description: "Starts with substring (case-insensitive)"
3786
+ },
3787
+ "endswith": {
3788
+ display: "ends with",
3789
+ description: "Ends with substring (case-sensitive)"
3790
+ },
3791
+ "iendswith": {
3792
+ display: "ends with",
3793
+ description: "Ends with substring (case-insensitive)"
3794
+ },
3795
+ // Null checks
3796
+ "isnull": {
3797
+ display: (val) => val === "true" || val === true ? "is null" : "is not null",
3798
+ description: "Check if value is null or not"
3799
+ },
3800
+ // Range operations
3801
+ "range": {
3802
+ display: "between",
3803
+ description: "Between two values (comma-separated)"
3804
+ }
3805
+ };
3806
+ function parseFilterKey(paramKey) {
3807
+ if (!paramKey || typeof paramKey !== "string") {
3808
+ return { field: paramKey, lookup: null };
3809
+ }
3810
+ const parts = paramKey.split("__");
3811
+ if (parts.length === 1) {
3812
+ return { field: paramKey, lookup: null };
3813
+ }
3814
+ const possibleLookup = parts[parts.length - 1];
3815
+ if (LOOKUPS[possibleLookup]) {
3816
+ return {
3817
+ field: parts.slice(0, -1).join("__"),
3818
+ lookup: possibleLookup
3819
+ };
3820
+ }
3821
+ return { field: paramKey, lookup: null };
3822
+ }
3823
+ function formatFilterDisplay(paramKey, value, label) {
3824
+ if (!paramKey || value === null || value === void 0) {
3825
+ return "";
3826
+ }
3827
+ const { field, lookup } = parseFilterKey(paramKey);
3828
+ const lookupDef = LOOKUPS[lookup];
3829
+ const valueStr = Array.isArray(value) ? value.join(",") : String(value);
3830
+ if (!lookup || lookup === "exact") {
3831
+ return `${label} is '${valueStr}'`;
3832
+ }
3833
+ if (lookup === "in" || lookup === "not_in") {
3834
+ const values = valueStr.split(",").map((v) => v.trim()).filter((v) => v);
3835
+ if (values.length === 0) {
3836
+ return `${label} ${lookupDef.display}`;
3837
+ }
3838
+ const formattedValues = values.map((v) => `'${v}'`).join(", ");
3839
+ return `${label} ${lookupDef.display} ${formattedValues}`;
3840
+ }
3841
+ if (lookup === "range") {
3842
+ const values = valueStr.split(",").map((v) => v.trim()).filter((v) => v);
3843
+ if (values.length === 2) {
3844
+ return `${label} between '${values[0]}' and '${values[1]}'`;
3845
+ }
3846
+ return `${label} ${lookupDef.display} '${valueStr}'`;
3847
+ }
3848
+ if (lookup === "isnull") {
3849
+ const displayText = typeof lookupDef.display === "function" ? lookupDef.display(valueStr) : lookupDef.display;
3850
+ return `${label} ${displayText}`;
3851
+ }
3852
+ if (lookupDef) {
3853
+ return `${label} ${lookupDef.display} '${valueStr}'`;
3854
+ }
3855
+ return `${label} is '${valueStr}'`;
3856
+ }
3857
+ function getLookupDescription(lookup) {
3858
+ const lookupDef = LOOKUPS[lookup];
3859
+ return lookupDef ? lookupDef.description : "Exact match";
3860
+ }
3861
+ function isValidLookup(lookup) {
3862
+ return lookup && LOOKUPS.hasOwnProperty(lookup);
3863
+ }
3864
+ function getAvailableLookups() {
3865
+ return Object.keys(LOOKUPS);
3866
+ }
3867
+ function buildFilterKey(field, lookup = null) {
3868
+ if (!field) return "";
3869
+ if (!lookup) return field;
3870
+ return `${field}__${lookup}`;
3871
+ }
3872
+ const DjangoLookups = {
3873
+ LOOKUPS,
3874
+ parseFilterKey,
3875
+ formatFilterDisplay,
3876
+ getLookupDescription,
3877
+ isValidLookup,
3878
+ getAvailableLookups,
3879
+ buildFilterKey
3880
+ };
3736
3881
  class TableView extends ListView {
3737
3882
  constructor(options = {}) {
3738
3883
  const tableOptions = {
@@ -4249,9 +4394,10 @@ class TableView extends ListView {
4249
4394
  if (filterEntries.length === 0 && !hasSearch) {
4250
4395
  return "";
4251
4396
  }
4252
- const pills = filterEntries.map(([key, value]) => {
4253
- const label = this.getFilterLabel(key);
4254
- const displayValue = this.getFilterDisplayValue(key, value);
4397
+ const pills = filterEntries.map(([paramKey, value]) => {
4398
+ const { field } = parseFilterKey(paramKey);
4399
+ const label = this.getFilterLabel(field);
4400
+ const displayText = formatFilterDisplay(paramKey, value, label);
4255
4401
  const icon = "filter";
4256
4402
  return `
4257
4403
  <span class="badge bg-primary me-1 mb-1 py-1 px-2 position-relative" style="font-size: 0.75rem;">
@@ -4260,15 +4406,15 @@ class TableView extends ListView {
4260
4406
  <button type="button" class="btn btn-link text-white p-0 ms-1"
4261
4407
  style="font-size: 0.65rem; line-height: 1;"
4262
4408
  data-action="edit-filter"
4263
- data-filter="${key}"
4409
+ data-filter="${paramKey}"
4264
4410
  title="Edit filter">
4265
- ${label}: ${displayValue}
4411
+ ${displayText}
4266
4412
  </button>
4267
4413
 
4268
4414
  <button type="button" class="btn-close btn-close-white ms-1"
4269
4415
  style="font-size: 0.6rem; width: 0.5rem; height: 0.5rem;"
4270
4416
  data-action="remove-filter"
4271
- data-filter="${key}"
4417
+ data-filter="${paramKey}"
4272
4418
  title="Remove filter">
4273
4419
  </button>
4274
4420
  </span>
@@ -5310,8 +5456,19 @@ class TableView extends ListView {
5310
5456
  this.collection.params[fieldName] = key;
5311
5457
  }
5312
5458
  } else {
5313
- if (value === null || value === void 0 || value === "") {
5314
- delete this.collection.params[key];
5459
+ const { field, lookup } = parseFilterKey(key);
5460
+ delete this.collection.params[key];
5461
+ delete this.collection.params[field];
5462
+ delete this.collection.params[`${field}__in`];
5463
+ if (!value || Array.isArray(value) && value.length === 0) {
5464
+ return;
5465
+ }
5466
+ if (Array.isArray(value)) {
5467
+ if (value.length === 1) {
5468
+ this.collection.params[field] = value[0];
5469
+ } else {
5470
+ this.collection.params[`${field}__in`] = value.join(",");
5471
+ }
5315
5472
  } else {
5316
5473
  this.collection.params[key] = value;
5317
5474
  }
@@ -5441,7 +5598,9 @@ class TableView extends ListView {
5441
5598
  name: "filter_value",
5442
5599
  label: filterConfig.label,
5443
5600
  value: currentValue,
5444
- ...filterConfig
5601
+ ...filterConfig,
5602
+ // Ensure placeholder is passed through (support both casings)
5603
+ placeholder: filterConfig.placeholder || filterConfig.placeHolder
5445
5604
  };
5446
5605
  if (filterConfig.type === "daterange") {
5447
5606
  field.startName = field.startName || "dr_start";
@@ -5455,6 +5614,23 @@ class TableView extends ListView {
5455
5614
  field.startDate = currentValue.start || "";
5456
5615
  field.endDate = currentValue.end || "";
5457
5616
  }
5617
+ } else if (filterConfig.type === "multiselect") {
5618
+ let valueArray = [];
5619
+ if (currentValue) {
5620
+ if (Array.isArray(currentValue)) {
5621
+ valueArray = currentValue;
5622
+ } else if (typeof currentValue === "string") {
5623
+ valueArray = currentValue.split(",").map((v) => v.trim()).filter((v) => v);
5624
+ }
5625
+ }
5626
+ field.value = valueArray;
5627
+ if (!field.placeholder && !field.placeHolder) {
5628
+ if (filterConfig.placeholder || filterConfig.placeHolder) {
5629
+ field.placeholder = filterConfig.placeholder || filterConfig.placeHolder;
5630
+ } else if (filterConfig.label) {
5631
+ field.placeholder = `Select ${filterConfig.label}...`;
5632
+ }
5633
+ }
5458
5634
  }
5459
5635
  return field;
5460
5636
  }
@@ -5471,6 +5647,9 @@ class TableView extends ListView {
5471
5647
  };
5472
5648
  return result;
5473
5649
  }
5650
+ if (filterConfig.type === "multiselect") {
5651
+ return formResult.filter_value;
5652
+ }
5474
5653
  return formResult.filter_value;
5475
5654
  }
5476
5655
  /**
@@ -5499,17 +5678,19 @@ class TableView extends ListView {
5499
5678
  */
5500
5679
  async onActionEditFilter(event, element) {
5501
5680
  const filterKey = element.getAttribute("data-filter");
5502
- const filterConfig = this.getFilterConfig(filterKey);
5503
- const currentValue = this.getActiveFilters()[filterKey];
5681
+ const { field } = parseFilterKey(filterKey);
5682
+ let filterConfig = this.getFilterConfig(field) || this.getFilterConfig(filterKey);
5683
+ const activeFilters = this.getActiveFilters();
5684
+ const currentValue = activeFilters[filterKey] || activeFilters[field];
5504
5685
  if (!filterConfig) {
5505
- console.warn("No filter config found for key:", filterKey);
5686
+ console.warn("No filter config found for key:", filterKey, "or field:", field);
5506
5687
  return;
5507
5688
  }
5508
5689
  const result = await Dialog.showForm({
5509
- title: `Edit ${this.getFilterLabel(filterKey)} Filter`,
5690
+ title: `Edit ${this.getFilterLabel(field)} Filter`,
5510
5691
  size: "md",
5511
5692
  data: { filter_value: currentValue },
5512
- fields: [this.buildFilterDialogField(filterConfig, currentValue, filterKey)]
5693
+ fields: [this.buildFilterDialogField(filterConfig, currentValue, field)]
5513
5694
  });
5514
5695
  if (result) {
5515
5696
  const newFilterValue = this.extractFilterValue(filterConfig, result);
@@ -5522,6 +5703,7 @@ class TableView extends ListView {
5522
5703
  */
5523
5704
  async onActionRemoveFilter(event, element) {
5524
5705
  const filterKey = element.getAttribute("data-filter");
5706
+ const { field } = parseFilterKey(filterKey);
5525
5707
  this.setFilter(filterKey, null);
5526
5708
  if (filterKey === "search") {
5527
5709
  this.updateSearchInputs("");
@@ -5531,7 +5713,7 @@ class TableView extends ListView {
5531
5713
  }
5532
5714
  this.render();
5533
5715
  this.updateFilterPills();
5534
- this.emit("filter:remove", { key: filterKey });
5716
+ this.emit("filter:remove", { key: filterKey, field });
5535
5717
  this.emit("params-changed");
5536
5718
  }
5537
5719
  /**
@@ -7204,97 +7386,101 @@ class ChatView extends View {
7204
7386
  }
7205
7387
  }
7206
7388
  export {
7207
- ComparatorOptions as $,
7208
- IncidentEventForms as A,
7209
- Incident as B,
7389
+ RuleForms as $,
7390
+ FileForms as A,
7391
+ IncidentEventList as B,
7210
7392
  ChatView as C,
7211
- IncidentList as D,
7393
+ DjangoLookups as D,
7212
7394
  EmailDomain as E,
7213
7395
  FilePreviewView as F,
7214
- IncidentForms as G,
7215
- IncidentRuleSet as H,
7396
+ IncidentEventForms as G,
7397
+ Incident as H,
7216
7398
  IncidentEvent as I,
7217
- IncidentRuleSetList as J,
7218
- IncidentRule as K,
7219
- IncidentRuleList as L,
7399
+ IncidentList as J,
7400
+ IncidentForms as K,
7401
+ LOOKUPS as L,
7220
7402
  Member as M,
7221
- IncidentHistory as N,
7222
- IncidentHistoryList as O,
7403
+ IncidentRuleSet as N,
7404
+ IncidentRuleSetList as O,
7223
7405
  ProgressView as P,
7224
- RuleSetList as Q,
7225
- RuleSet as R,
7406
+ IncidentRule as Q,
7407
+ IncidentRuleList as R,
7226
7408
  S3Bucket as S,
7227
7409
  TableView as T,
7228
- RuleSetForms as U,
7229
- Rule as V,
7230
- RuleList as W,
7231
- RuleForms as X,
7232
- IncidentStats as Y,
7233
- BundleByOptions as Z,
7234
- MatchByOptions as _,
7410
+ IncidentHistory as U,
7411
+ IncidentHistoryList as V,
7412
+ RuleSet as W,
7413
+ RuleSetList as X,
7414
+ RuleSetForms as Y,
7415
+ Rule as Z,
7416
+ RuleList as _,
7235
7417
  TableRow as a,
7236
- ValueTypeOptions as a0,
7237
- CommonEventFields as a1,
7238
- Job as a2,
7239
- JobList as a3,
7240
- JobForms as a4,
7241
- JobLog as a5,
7242
- JobLogList as a6,
7243
- JobEvent as a7,
7244
- JobEventList as a8,
7245
- JobsEngineStats as a9,
7246
- TicketForms as aA,
7247
- TicketCategories as aB,
7248
- JobRunner as aa,
7249
- JobRunnerList as ab,
7250
- JobRunnerForms as ac,
7251
- Log as ad,
7252
- LogList as ae,
7253
- MemberList as af,
7254
- MemberForms as ag,
7255
- MetricsPermission as ah,
7256
- MetricsPermissionList as ai,
7257
- MetricsForms as aj,
7258
- PushDevice as ak,
7259
- PushDeviceList as al,
7260
- PushTemplate as am,
7261
- PushTemplateList as an,
7262
- PushConfig as ao,
7263
- PushConfigList as ap,
7264
- PushDelivery as aq,
7265
- PushDeliveryList as ar,
7266
- PushConfigForms as as,
7267
- PushTemplateForms as at,
7268
- GeoLocatedIP as au,
7269
- GeoLocatedIPList as av,
7270
- Ticket as aw,
7271
- TicketList as ax,
7272
- TicketNote as ay,
7273
- TicketNoteList as az,
7418
+ IncidentStats as a0,
7419
+ BundleByOptions as a1,
7420
+ MatchByOptions as a2,
7421
+ ComparatorOptions as a3,
7422
+ ValueTypeOptions as a4,
7423
+ CommonEventFields as a5,
7424
+ Job as a6,
7425
+ JobList as a7,
7426
+ JobForms as a8,
7427
+ JobLog as a9,
7428
+ Ticket as aA,
7429
+ TicketList as aB,
7430
+ TicketNote as aC,
7431
+ TicketNoteList as aD,
7432
+ TicketForms as aE,
7433
+ TicketCategories as aF,
7434
+ JobLogList as aa,
7435
+ JobEvent as ab,
7436
+ JobEventList as ac,
7437
+ JobsEngineStats as ad,
7438
+ JobRunner as ae,
7439
+ JobRunnerList as af,
7440
+ JobRunnerForms as ag,
7441
+ Log as ah,
7442
+ LogList as ai,
7443
+ MemberList as aj,
7444
+ MemberForms as ak,
7445
+ MetricsPermission as al,
7446
+ MetricsPermissionList as am,
7447
+ MetricsForms as an,
7448
+ PushDevice as ao,
7449
+ PushDeviceList as ap,
7450
+ PushTemplate as aq,
7451
+ PushTemplateList as ar,
7452
+ PushConfig as as,
7453
+ PushConfigList as at,
7454
+ PushDelivery as au,
7455
+ PushDeliveryList as av,
7456
+ PushConfigForms as aw,
7457
+ PushTemplateForms as ax,
7458
+ GeoLocatedIP as ay,
7459
+ GeoLocatedIPList as az,
7274
7460
  TablePage as b,
7275
7461
  TabView as c,
7276
7462
  ChatMessageView as d,
7277
7463
  ChatInputView as e,
7278
7464
  FileUpload as f,
7279
- S3BucketList as g,
7280
- S3BucketForms as h,
7281
- EmailDomainList as i,
7282
- EmailDomainForms as j,
7283
- Mailbox as k,
7284
- MailboxList as l,
7285
- MailboxForms as m,
7286
- SentMessage as n,
7287
- SentMessageList as o,
7288
- SentMessageForms as p,
7289
- EmailTemplate as q,
7290
- EmailTemplateList as r,
7291
- EmailTemplateForms as s,
7292
- FileManager as t,
7293
- FileManagerList as u,
7294
- FileManagerForms as v,
7295
- File$1 as w,
7296
- FileList as x,
7297
- FileForms as y,
7298
- IncidentEventList as z
7465
+ formatFilterDisplay as g,
7466
+ S3BucketList as h,
7467
+ S3BucketForms as i,
7468
+ EmailDomainList as j,
7469
+ EmailDomainForms as k,
7470
+ Mailbox as l,
7471
+ MailboxList as m,
7472
+ MailboxForms as n,
7473
+ SentMessage as o,
7474
+ parseFilterKey as p,
7475
+ SentMessageList as q,
7476
+ SentMessageForms as r,
7477
+ EmailTemplate as s,
7478
+ EmailTemplateList as t,
7479
+ EmailTemplateForms as u,
7480
+ FileManager as v,
7481
+ FileManagerList as w,
7482
+ FileManagerForms as x,
7483
+ File$1 as y,
7484
+ FileList as z
7299
7485
  };
7300
- //# sourceMappingURL=ChatView-pFVev6ZD.js.map
7486
+ //# sourceMappingURL=ChatView-DfhhZKoN.js.map