web-mojo 2.1.936 → 2.1.955
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin.cjs.js +1 -1
- package/dist/admin.cjs.js.map +1 -1
- package/dist/admin.es.js +122 -229
- package/dist/admin.es.js.map +1 -1
- package/dist/auth.cjs.js +1 -1
- package/dist/auth.cjs.js.map +1 -1
- package/dist/auth.es.js +7 -7
- package/dist/auth.es.js.map +1 -1
- package/dist/charts.cjs.js +1 -1
- package/dist/charts.es.js +7 -7
- package/dist/chunks/ChatView-CTtQHvRP.js +2 -0
- package/dist/chunks/ChatView-CTtQHvRP.js.map +1 -0
- package/dist/chunks/{ChatView-DlSxjxah.js → ChatView-DLEStri1.js} +89 -574
- package/dist/chunks/ChatView-DLEStri1.js.map +1 -0
- package/dist/chunks/Collection-DD1_31eh.js +2 -0
- package/dist/chunks/Collection-DD1_31eh.js.map +1 -0
- package/dist/chunks/Collection-YRfGoT73.js +990 -0
- package/dist/chunks/Collection-YRfGoT73.js.map +1 -0
- package/dist/chunks/ContextMenu-By2g3KYY.js +1171 -0
- package/dist/chunks/ContextMenu-By2g3KYY.js.map +1 -0
- package/dist/chunks/ContextMenu-Cl0TRsIa.js +3 -0
- package/dist/chunks/ContextMenu-Cl0TRsIa.js.map +1 -0
- package/dist/chunks/DataView-CdDY9ijM.js +2 -0
- package/dist/chunks/{DataView-XJbTQ5q0.js.map → DataView-CdDY9ijM.js.map} +1 -1
- package/dist/chunks/{DataView-Vmjx4eCr.js → DataView-OUqaLmGB.js} +2 -2
- package/dist/chunks/{DataView-Vmjx4eCr.js.map → DataView-OUqaLmGB.js.map} +1 -1
- package/dist/chunks/{Dialog-D_rAf4gQ.js → Dialog-C2mRUxga.js} +8 -6
- package/dist/chunks/{Dialog-D_rAf4gQ.js.map → Dialog-C2mRUxga.js.map} +1 -1
- package/dist/chunks/Dialog-Cl6MN8if.js +2 -0
- package/dist/chunks/{Dialog-BinTQTfO.js.map → Dialog-Cl6MN8if.js.map} +1 -1
- package/dist/chunks/FormView-BSWaXDav.js +3 -0
- package/dist/chunks/{FormView-TPFsq8ZX.js.map → FormView-BSWaXDav.js.map} +1 -1
- package/dist/chunks/{FormView-CIriLDZY.js → FormView-HWvIdFkB.js} +10 -6
- package/dist/chunks/FormView-HWvIdFkB.js.map +1 -0
- package/dist/chunks/ListView-BMNhd5-B.js +492 -0
- package/dist/chunks/ListView-BMNhd5-B.js.map +1 -0
- package/dist/chunks/ListView-BRGiITfD.js +2 -0
- package/dist/chunks/ListView-BRGiITfD.js.map +1 -0
- package/dist/chunks/MetricsMiniChartWidget-BkTEO87S.js +2 -0
- package/dist/chunks/{MetricsMiniChartWidget-sONcM0pG.js.map → MetricsMiniChartWidget-BkTEO87S.js.map} +1 -1
- package/dist/chunks/{MetricsMiniChartWidget-BolRZ-Ja.js → MetricsMiniChartWidget-Y70IHFIe.js} +3 -3
- package/dist/chunks/{MetricsMiniChartWidget-BolRZ-Ja.js.map → MetricsMiniChartWidget-Y70IHFIe.js.map} +1 -1
- package/dist/chunks/PDFViewer-C0aMqGJL.js +2 -0
- package/dist/chunks/{PDFViewer-UBhinN8A.js.map → PDFViewer-C0aMqGJL.js.map} +1 -1
- package/dist/chunks/{PDFViewer-D6SKOl85.js → PDFViewer-DkbYnnoV.js} +3 -3
- package/dist/chunks/{PDFViewer-D6SKOl85.js.map → PDFViewer-DkbYnnoV.js.map} +1 -1
- package/dist/chunks/Page-CvbwEoLv.js +2 -0
- package/dist/chunks/{Page-CnvHhwLZ.js.map → Page-CvbwEoLv.js.map} +1 -1
- package/dist/chunks/{Page-B7L25Omb.js → Page-Deq4y2Kq.js} +2 -2
- package/dist/chunks/{Page-B7L25Omb.js.map → Page-Deq4y2Kq.js.map} +1 -1
- package/dist/chunks/Rest-BNYqGlnP.js +2 -0
- package/dist/chunks/Rest-BNYqGlnP.js.map +1 -0
- package/dist/chunks/{WebApp-El07OMHH.js → Rest-CS4jRCAs.js} +5 -1389
- package/dist/chunks/Rest-CS4jRCAs.js.map +1 -0
- package/dist/chunks/TopNav-A7NQ4viq.js +2 -0
- package/dist/chunks/{TopNav-Dcmcic-i.js.map → TopNav-A7NQ4viq.js.map} +1 -1
- package/dist/chunks/{TopNav-CPA884W7.js → TopNav-Dch6cZFa.js} +5 -5
- package/dist/chunks/{TopNav-CPA884W7.js.map → TopNav-Dch6cZFa.js.map} +1 -1
- package/dist/chunks/WebApp-CaOPY_k7.js +2 -0
- package/dist/chunks/WebApp-CaOPY_k7.js.map +1 -0
- package/dist/chunks/WebApp-RHtJ4hFZ.js +1388 -0
- package/dist/chunks/WebApp-RHtJ4hFZ.js.map +1 -0
- package/dist/css/web-mojo.css +2 -2
- package/dist/docit.cjs.js +1 -1
- package/dist/docit.cjs.js.map +1 -1
- package/dist/docit.es.js +12 -10
- package/dist/docit.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +120 -116
- package/dist/index.es.js.map +1 -1
- package/dist/lightbox.cjs.js +1 -1
- package/dist/lightbox.cjs.js.map +1 -1
- package/dist/lightbox.es.js +121 -121
- package/dist/lightbox.es.js.map +1 -1
- package/dist/map.cjs.js +2 -0
- package/dist/map.cjs.js.map +1 -0
- package/dist/map.es.js +188 -0
- package/dist/map.es.js.map +1 -0
- package/dist/timeline.cjs.js +2 -0
- package/dist/timeline.cjs.js.map +1 -0
- package/dist/timeline.es.js +225 -0
- package/dist/timeline.es.js.map +1 -0
- package/package.json +9 -1
- package/dist/chunks/ChatView-DlSxjxah.js.map +0 -1
- package/dist/chunks/ChatView-DnqrGXMC.js +0 -2
- package/dist/chunks/ChatView-DnqrGXMC.js.map +0 -1
- package/dist/chunks/ContextMenu-CE77rUmn.js +0 -2155
- package/dist/chunks/ContextMenu-CE77rUmn.js.map +0 -1
- package/dist/chunks/ContextMenu-KVxd0Kgd.js +0 -3
- package/dist/chunks/ContextMenu-KVxd0Kgd.js.map +0 -1
- package/dist/chunks/DataView-XJbTQ5q0.js +0 -2
- package/dist/chunks/Dialog-BinTQTfO.js +0 -2
- package/dist/chunks/FormView-CIriLDZY.js.map +0 -1
- package/dist/chunks/FormView-TPFsq8ZX.js +0 -3
- package/dist/chunks/MetricsMiniChartWidget-sONcM0pG.js +0 -2
- package/dist/chunks/PDFViewer-UBhinN8A.js +0 -2
- package/dist/chunks/Page-CnvHhwLZ.js +0 -2
- package/dist/chunks/TopNav-Dcmcic-i.js +0 -2
- package/dist/chunks/WebApp-El07OMHH.js.map +0 -1
- package/dist/chunks/WebApp-b9DQWz1d.js +0 -2
- package/dist/chunks/WebApp-b9DQWz1d.js.map +0 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { M as Model, C as Collection
|
|
2
|
-
import { r as rest, V as View, d as dataFormatter,
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import { M as Model, C as Collection } from "./Collection-YRfGoT73.js";
|
|
2
|
+
import { r as rest, V as View, d as dataFormatter, a as Mustache } from "./Rest-CS4jRCAs.js";
|
|
3
|
+
import { T as ToastService, G as GroupList, c as UserList } from "./ContextMenu-By2g3KYY.js";
|
|
4
|
+
import { P as Page } from "./Page-Deq4y2Kq.js";
|
|
5
|
+
import Dialog from "./Dialog-C2mRUxga.js";
|
|
6
|
+
import { L as ListViewItem, a as ListView } from "./ListView-BMNhd5-B.js";
|
|
7
|
+
import { F as FormView, a as applyFileDropMixin } from "./FormView-HWvIdFkB.js";
|
|
6
8
|
class S3Bucket extends Model {
|
|
7
9
|
constructor(data = {}) {
|
|
8
10
|
super(data, {
|
|
@@ -2928,491 +2930,6 @@ class TicketNoteList extends Collection {
|
|
|
2928
2930
|
});
|
|
2929
2931
|
}
|
|
2930
2932
|
}
|
|
2931
|
-
class ListViewItem extends View {
|
|
2932
|
-
constructor(options = {}) {
|
|
2933
|
-
super({
|
|
2934
|
-
className: "list-view-item",
|
|
2935
|
-
...options
|
|
2936
|
-
});
|
|
2937
|
-
this.selected = false;
|
|
2938
|
-
this.index = options.index ?? 0;
|
|
2939
|
-
this.listView = options.listView ?? null;
|
|
2940
|
-
if (!this.template) {
|
|
2941
|
-
this.template = `
|
|
2942
|
-
<div class="list-item-content" data-action="select">
|
|
2943
|
-
{{#model}}
|
|
2944
|
-
{{#id}}<span class="item-id">{{id}}</span>{{/id}}
|
|
2945
|
-
{{#name}}<span class="item-name">{{name}}</span>{{/name}}
|
|
2946
|
-
{{#title}}<span class="item-title">{{title}}</span>{{/title}}
|
|
2947
|
-
{{#label}}<span class="item-label">{{label}}</span>{{/label}}
|
|
2948
|
-
{{#description}}<p class="item-description">{{description}}</p>{{/description}}
|
|
2949
|
-
{{/model}}
|
|
2950
|
-
{{^model}}
|
|
2951
|
-
<span class="item-empty">No data</span>
|
|
2952
|
-
{{/model}}
|
|
2953
|
-
</div>
|
|
2954
|
-
`;
|
|
2955
|
-
}
|
|
2956
|
-
}
|
|
2957
|
-
/**
|
|
2958
|
-
* Handle item selection action
|
|
2959
|
-
*/
|
|
2960
|
-
async onActionSelect(event, _element) {
|
|
2961
|
-
event.stopPropagation();
|
|
2962
|
-
if (this.selected) {
|
|
2963
|
-
this.deselect();
|
|
2964
|
-
} else {
|
|
2965
|
-
this.select();
|
|
2966
|
-
}
|
|
2967
|
-
}
|
|
2968
|
-
/**
|
|
2969
|
-
* Select this item
|
|
2970
|
-
*/
|
|
2971
|
-
select() {
|
|
2972
|
-
if (this.selected) return;
|
|
2973
|
-
this.selected = true;
|
|
2974
|
-
this.addClass("selected");
|
|
2975
|
-
this.emit("item:select", {
|
|
2976
|
-
item: this,
|
|
2977
|
-
model: this.model,
|
|
2978
|
-
index: this.index,
|
|
2979
|
-
data: this.model?.toJSON ? this.model.toJSON() : this.model
|
|
2980
|
-
});
|
|
2981
|
-
if (this.listView) {
|
|
2982
|
-
this.listView.emit("item:select", {
|
|
2983
|
-
item: this,
|
|
2984
|
-
model: this.model,
|
|
2985
|
-
index: this.index,
|
|
2986
|
-
data: this.model?.toJSON ? this.model.toJSON() : this.model
|
|
2987
|
-
});
|
|
2988
|
-
}
|
|
2989
|
-
}
|
|
2990
|
-
/**
|
|
2991
|
-
* Deselect this item
|
|
2992
|
-
*/
|
|
2993
|
-
deselect() {
|
|
2994
|
-
if (!this.selected) return;
|
|
2995
|
-
this.selected = false;
|
|
2996
|
-
this.removeClass("selected");
|
|
2997
|
-
this.emit("item:deselect", {
|
|
2998
|
-
item: this,
|
|
2999
|
-
model: this.model,
|
|
3000
|
-
index: this.index,
|
|
3001
|
-
data: this.model?.toJSON ? this.model.toJSON() : this.model
|
|
3002
|
-
});
|
|
3003
|
-
if (this.listView) {
|
|
3004
|
-
this.listView.emit("item:deselect", {
|
|
3005
|
-
item: this,
|
|
3006
|
-
model: this.model,
|
|
3007
|
-
index: this.index,
|
|
3008
|
-
data: this.model?.toJSON ? this.model.toJSON() : this.model
|
|
3009
|
-
});
|
|
3010
|
-
}
|
|
3011
|
-
}
|
|
3012
|
-
/**
|
|
3013
|
-
* Handle click events on the item
|
|
3014
|
-
*/
|
|
3015
|
-
async onActionDefault(action, _event, _element) {
|
|
3016
|
-
this.emit("item:click", {
|
|
3017
|
-
item: this,
|
|
3018
|
-
model: this.model,
|
|
3019
|
-
index: this.index,
|
|
3020
|
-
action,
|
|
3021
|
-
data: this.model?.toJSON ? this.model.toJSON() : this.model
|
|
3022
|
-
});
|
|
3023
|
-
if (this.listView) {
|
|
3024
|
-
this.listView.emit("item:click", {
|
|
3025
|
-
item: this,
|
|
3026
|
-
model: this.model,
|
|
3027
|
-
index: this.index,
|
|
3028
|
-
action,
|
|
3029
|
-
data: this.model?.toJSON ? this.model.toJSON() : this.model
|
|
3030
|
-
});
|
|
3031
|
-
}
|
|
3032
|
-
}
|
|
3033
|
-
/**
|
|
3034
|
-
* Set the item's index in the list
|
|
3035
|
-
*/
|
|
3036
|
-
setIndex(index) {
|
|
3037
|
-
this.index = index;
|
|
3038
|
-
this.element.setAttribute("data-index", index);
|
|
3039
|
-
return this;
|
|
3040
|
-
}
|
|
3041
|
-
/**
|
|
3042
|
-
* Update the item's selection state
|
|
3043
|
-
*/
|
|
3044
|
-
setSelected(selected) {
|
|
3045
|
-
if (selected) {
|
|
3046
|
-
this.select();
|
|
3047
|
-
} else {
|
|
3048
|
-
this.deselect();
|
|
3049
|
-
}
|
|
3050
|
-
return this;
|
|
3051
|
-
}
|
|
3052
|
-
/**
|
|
3053
|
-
* Override destroy to clean up references
|
|
3054
|
-
*/
|
|
3055
|
-
async destroy() {
|
|
3056
|
-
this.listView = null;
|
|
3057
|
-
await super.destroy();
|
|
3058
|
-
}
|
|
3059
|
-
}
|
|
3060
|
-
class ListView extends View {
|
|
3061
|
-
constructor(options = {}) {
|
|
3062
|
-
super({
|
|
3063
|
-
className: "list-view",
|
|
3064
|
-
template: `
|
|
3065
|
-
<div class="list-view-container">
|
|
3066
|
-
{{#loading}}
|
|
3067
|
-
<div class="list-loading">
|
|
3068
|
-
<div class="spinner-border spinner-border-sm" role="status">
|
|
3069
|
-
<span class="visually-hidden">Loading...</span>
|
|
3070
|
-
</div>
|
|
3071
|
-
Loading...
|
|
3072
|
-
</div>
|
|
3073
|
-
{{/loading}}
|
|
3074
|
-
{{^loading}}
|
|
3075
|
-
{{#isEmpty}}
|
|
3076
|
-
<div class="list-empty">
|
|
3077
|
-
{{emptyMessage}}
|
|
3078
|
-
</div>
|
|
3079
|
-
{{/isEmpty}}
|
|
3080
|
-
{{^isEmpty}}
|
|
3081
|
-
<div class="list-items" data-container="items"></div>
|
|
3082
|
-
{{/isEmpty}}
|
|
3083
|
-
{{/loading}}
|
|
3084
|
-
</div>
|
|
3085
|
-
`,
|
|
3086
|
-
...options
|
|
3087
|
-
});
|
|
3088
|
-
this.collection = null;
|
|
3089
|
-
this.itemViews = /* @__PURE__ */ new Map();
|
|
3090
|
-
this.selectedItems = /* @__PURE__ */ new Set();
|
|
3091
|
-
this.itemTemplate = options.itemTemplate || null;
|
|
3092
|
-
this.itemClass = options.itemClass || ListViewItem;
|
|
3093
|
-
this.selectionMode = options.selectionMode || "none";
|
|
3094
|
-
this.emptyMessage = options.emptyMessage || "No items to display";
|
|
3095
|
-
this.loading = false;
|
|
3096
|
-
this.isEmpty = true;
|
|
3097
|
-
}
|
|
3098
|
-
/**
|
|
3099
|
-
* Override onInit to set up initial state
|
|
3100
|
-
*/
|
|
3101
|
-
async onInit() {
|
|
3102
|
-
this._initCollection(this.options.collection || this.options.Collection);
|
|
3103
|
-
}
|
|
3104
|
-
/**
|
|
3105
|
-
* Initialize the collection
|
|
3106
|
-
*/
|
|
3107
|
-
_initCollection(collectionOrClass) {
|
|
3108
|
-
if (!collectionOrClass) {
|
|
3109
|
-
console.log("Collection not provided");
|
|
3110
|
-
return;
|
|
3111
|
-
}
|
|
3112
|
-
if (collectionOrClass instanceof Collection) {
|
|
3113
|
-
this.setCollection(collectionOrClass);
|
|
3114
|
-
} else if (typeof collectionOrClass === "function") {
|
|
3115
|
-
const collection = new collectionOrClass();
|
|
3116
|
-
this.setCollection(collection);
|
|
3117
|
-
} else if (Array.isArray(collectionOrClass)) {
|
|
3118
|
-
const collection = new Collection(null, {}, collectionOrClass);
|
|
3119
|
-
this.setCollection(collection);
|
|
3120
|
-
}
|
|
3121
|
-
}
|
|
3122
|
-
/**
|
|
3123
|
-
* Set the collection for this list view
|
|
3124
|
-
*/
|
|
3125
|
-
setCollection(collection) {
|
|
3126
|
-
if (this.collection === collection) return this;
|
|
3127
|
-
if (this.collection) {
|
|
3128
|
-
this.collection.off("add", this._onModelsAdded, this);
|
|
3129
|
-
this.collection.off("remove", this._onModelsRemoved, this);
|
|
3130
|
-
this.collection.off("reset", this._onCollectionReset, this);
|
|
3131
|
-
this.collection.off("fetch:start", this._onFetchStart, this);
|
|
3132
|
-
this.collection.off("fetch:end", this._onFetchEnd, this);
|
|
3133
|
-
}
|
|
3134
|
-
this.collection = collection;
|
|
3135
|
-
if (this.options.collectionParams) {
|
|
3136
|
-
this.collection.params = { ...this.options.collectionParams, ...this.collection.params };
|
|
3137
|
-
}
|
|
3138
|
-
if (this.collection) {
|
|
3139
|
-
this.collection.on("add", this._onModelsAdded, this);
|
|
3140
|
-
this.collection.on("remove", this._onModelsRemoved, this);
|
|
3141
|
-
this.collection.on("reset", this._onCollectionReset, this);
|
|
3142
|
-
this.collection.on("fetch:start", this._onFetchStart, this);
|
|
3143
|
-
this.collection.on("fetch:end", this._onFetchEnd, this);
|
|
3144
|
-
this._buildItems();
|
|
3145
|
-
}
|
|
3146
|
-
return this;
|
|
3147
|
-
}
|
|
3148
|
-
async _renderChildren() {
|
|
3149
|
-
await super._renderChildren();
|
|
3150
|
-
const itemsContainer = this.getChildElement("items");
|
|
3151
|
-
if (!itemsContainer) {
|
|
3152
|
-
return;
|
|
3153
|
-
}
|
|
3154
|
-
this.forEachItem((item, index) => {
|
|
3155
|
-
itemsContainer.appendChild(item.element);
|
|
3156
|
-
item.render(false);
|
|
3157
|
-
});
|
|
3158
|
-
}
|
|
3159
|
-
/**
|
|
3160
|
-
* Build item views for all models in collection
|
|
3161
|
-
*/
|
|
3162
|
-
_buildItems() {
|
|
3163
|
-
this._clearItems();
|
|
3164
|
-
if (!this.collection || this.collection.isEmpty()) {
|
|
3165
|
-
this.isEmpty = true;
|
|
3166
|
-
this.emit("list:empty");
|
|
3167
|
-
return;
|
|
3168
|
-
}
|
|
3169
|
-
this.isEmpty = false;
|
|
3170
|
-
this.collection.forEach((model, index) => {
|
|
3171
|
-
this._createItemView(model, index);
|
|
3172
|
-
});
|
|
3173
|
-
this.emit("list:loaded", { count: this.collection.length() });
|
|
3174
|
-
if (this.isMounted()) {
|
|
3175
|
-
this.render();
|
|
3176
|
-
}
|
|
3177
|
-
}
|
|
3178
|
-
/**
|
|
3179
|
-
* Create an item view for a model
|
|
3180
|
-
* The itemTemplate is passed as the template option to the itemClass constructor
|
|
3181
|
-
*/
|
|
3182
|
-
_createItemView(model, index) {
|
|
3183
|
-
if (this.itemViews.has(model.id)) return;
|
|
3184
|
-
const itemView = new this.itemClass({
|
|
3185
|
-
model,
|
|
3186
|
-
index,
|
|
3187
|
-
listView: this,
|
|
3188
|
-
template: this.itemTemplate
|
|
3189
|
-
// Pass the itemTemplate to the item view
|
|
3190
|
-
});
|
|
3191
|
-
this.itemViews.set(model.id, itemView);
|
|
3192
|
-
itemView.on("item:select", this._onItemSelect.bind(this));
|
|
3193
|
-
itemView.on("item:deselect", this._onItemDeselect.bind(this));
|
|
3194
|
-
return itemView;
|
|
3195
|
-
}
|
|
3196
|
-
/**
|
|
3197
|
-
* Clear all item views
|
|
3198
|
-
*/
|
|
3199
|
-
_clearItems() {
|
|
3200
|
-
this.forEachItem((itemView) => {
|
|
3201
|
-
this.removeChild(itemView.id);
|
|
3202
|
-
});
|
|
3203
|
-
this.itemViews.clear();
|
|
3204
|
-
this.selectedItems.clear();
|
|
3205
|
-
}
|
|
3206
|
-
/**
|
|
3207
|
-
* Handle models added to collection
|
|
3208
|
-
*/
|
|
3209
|
-
_onModelsAdded(event) {
|
|
3210
|
-
const { models } = event;
|
|
3211
|
-
models.forEach((model) => {
|
|
3212
|
-
const index = this.collection.models.indexOf(model);
|
|
3213
|
-
this._createItemView(model, index);
|
|
3214
|
-
});
|
|
3215
|
-
this.isEmpty = this.collection.isEmpty();
|
|
3216
|
-
if (!this.loading && this.isMounted()) {
|
|
3217
|
-
this.render();
|
|
3218
|
-
}
|
|
3219
|
-
}
|
|
3220
|
-
/**
|
|
3221
|
-
* Handle models removed from collection
|
|
3222
|
-
*/
|
|
3223
|
-
_onModelsRemoved(event) {
|
|
3224
|
-
const { models } = event;
|
|
3225
|
-
models.forEach((model) => {
|
|
3226
|
-
const itemView = this.itemViews.get(model.id);
|
|
3227
|
-
if (itemView) {
|
|
3228
|
-
this.removeChild(itemView.id);
|
|
3229
|
-
this.itemViews.delete(model.id);
|
|
3230
|
-
this.selectedItems.delete(model.id);
|
|
3231
|
-
}
|
|
3232
|
-
});
|
|
3233
|
-
this.isEmpty = this.collection.isEmpty();
|
|
3234
|
-
if (!this.loading && this.isMounted()) {
|
|
3235
|
-
this.render();
|
|
3236
|
-
}
|
|
3237
|
-
if (this.isEmpty) {
|
|
3238
|
-
this.emit("list:empty");
|
|
3239
|
-
}
|
|
3240
|
-
}
|
|
3241
|
-
/**
|
|
3242
|
-
* Handle collection reset
|
|
3243
|
-
*/
|
|
3244
|
-
_onCollectionReset(_event) {
|
|
3245
|
-
this._buildItems();
|
|
3246
|
-
}
|
|
3247
|
-
/**
|
|
3248
|
-
* Handle fetch start
|
|
3249
|
-
*/
|
|
3250
|
-
_onFetchStart() {
|
|
3251
|
-
this.loading = true;
|
|
3252
|
-
if (this.isMounted()) {
|
|
3253
|
-
this.render();
|
|
3254
|
-
}
|
|
3255
|
-
}
|
|
3256
|
-
/**
|
|
3257
|
-
* Handle fetch end
|
|
3258
|
-
*/
|
|
3259
|
-
_onFetchEnd() {
|
|
3260
|
-
this.loading = false;
|
|
3261
|
-
if (this.isMounted()) {
|
|
3262
|
-
this.render();
|
|
3263
|
-
}
|
|
3264
|
-
}
|
|
3265
|
-
/**
|
|
3266
|
-
* Handle item selection
|
|
3267
|
-
*/
|
|
3268
|
-
_onItemSelect(event) {
|
|
3269
|
-
const { model, item } = event;
|
|
3270
|
-
if (this.selectionMode === "none") {
|
|
3271
|
-
item.deselect();
|
|
3272
|
-
return;
|
|
3273
|
-
}
|
|
3274
|
-
if (this.selectionMode === "single") {
|
|
3275
|
-
this.itemViews.forEach((view, id) => {
|
|
3276
|
-
if (id !== model.id && view.selected) {
|
|
3277
|
-
view.deselect();
|
|
3278
|
-
}
|
|
3279
|
-
});
|
|
3280
|
-
this.selectedItems.clear();
|
|
3281
|
-
}
|
|
3282
|
-
this.selectedItems.add(model.id);
|
|
3283
|
-
this.emit("selection:change", {
|
|
3284
|
-
selected: Array.from(this.selectedItems),
|
|
3285
|
-
item,
|
|
3286
|
-
model
|
|
3287
|
-
});
|
|
3288
|
-
}
|
|
3289
|
-
/**
|
|
3290
|
-
* Handle item deselection
|
|
3291
|
-
*/
|
|
3292
|
-
_onItemDeselect(event) {
|
|
3293
|
-
const { model } = event;
|
|
3294
|
-
this.selectedItems.delete(model.id);
|
|
3295
|
-
this.emit("selection:change", {
|
|
3296
|
-
selected: Array.from(this.selectedItems),
|
|
3297
|
-
item: event.item,
|
|
3298
|
-
model
|
|
3299
|
-
});
|
|
3300
|
-
}
|
|
3301
|
-
/**
|
|
3302
|
-
* Get selected items
|
|
3303
|
-
*/
|
|
3304
|
-
getSelectedItems() {
|
|
3305
|
-
const selected = [];
|
|
3306
|
-
this.selectedItems.forEach((id) => {
|
|
3307
|
-
const itemView = this.itemViews.get(id);
|
|
3308
|
-
if (itemView) {
|
|
3309
|
-
selected.push({
|
|
3310
|
-
view: itemView,
|
|
3311
|
-
model: itemView.model,
|
|
3312
|
-
data: itemView.model?.toJSON ? itemView.model.toJSON() : itemView.model
|
|
3313
|
-
});
|
|
3314
|
-
}
|
|
3315
|
-
});
|
|
3316
|
-
return selected;
|
|
3317
|
-
}
|
|
3318
|
-
/**
|
|
3319
|
-
* Iterate over each item view in the list
|
|
3320
|
-
* @param {function} callback - Function to execute for each item (itemView, model, index)
|
|
3321
|
-
* @param {object} thisArg - Optional value to use as this when executing callback
|
|
3322
|
-
* @returns {ListView} Returns the ListView for chaining
|
|
3323
|
-
*/
|
|
3324
|
-
forEachItem(callback, thisArg) {
|
|
3325
|
-
if (typeof callback !== "function") {
|
|
3326
|
-
throw new TypeError("Callback must be a function");
|
|
3327
|
-
}
|
|
3328
|
-
let index = 0;
|
|
3329
|
-
this.itemViews.forEach((itemView, modelId) => {
|
|
3330
|
-
callback.call(thisArg, itemView, itemView.model, index++);
|
|
3331
|
-
});
|
|
3332
|
-
return this;
|
|
3333
|
-
}
|
|
3334
|
-
/**
|
|
3335
|
-
* Clear selection
|
|
3336
|
-
*/
|
|
3337
|
-
clearSelection() {
|
|
3338
|
-
this.forEachItem((itemView) => {
|
|
3339
|
-
if (itemView.selected) {
|
|
3340
|
-
itemView.deselect();
|
|
3341
|
-
}
|
|
3342
|
-
});
|
|
3343
|
-
this.selectedItems.clear();
|
|
3344
|
-
this.emit("selection:change", {
|
|
3345
|
-
selected: []
|
|
3346
|
-
});
|
|
3347
|
-
}
|
|
3348
|
-
/**
|
|
3349
|
-
* Select item by model ID
|
|
3350
|
-
*/
|
|
3351
|
-
selectItem(modelId) {
|
|
3352
|
-
const itemView = this.itemViews.get(modelId);
|
|
3353
|
-
if (itemView) {
|
|
3354
|
-
itemView.select();
|
|
3355
|
-
}
|
|
3356
|
-
return this;
|
|
3357
|
-
}
|
|
3358
|
-
/**
|
|
3359
|
-
* Deselect item by model ID
|
|
3360
|
-
*/
|
|
3361
|
-
deselectItem(modelId) {
|
|
3362
|
-
const itemView = this.itemViews.get(modelId);
|
|
3363
|
-
if (itemView) {
|
|
3364
|
-
itemView.deselect();
|
|
3365
|
-
}
|
|
3366
|
-
return this;
|
|
3367
|
-
}
|
|
3368
|
-
/**
|
|
3369
|
-
* Set or update the item template
|
|
3370
|
-
* @param {string} template - New template string for items
|
|
3371
|
-
* @param {boolean} rerender - Whether to re-render existing items with new template
|
|
3372
|
-
* @returns {ListView} Returns the ListView for chaining
|
|
3373
|
-
*/
|
|
3374
|
-
setItemTemplate(template, rerender = false) {
|
|
3375
|
-
this.itemTemplate = template;
|
|
3376
|
-
if (rerender && this.itemViews.size > 0) {
|
|
3377
|
-
this.forEachItem((itemView) => {
|
|
3378
|
-
itemView.setTemplate(template);
|
|
3379
|
-
if (itemView.isMounted()) {
|
|
3380
|
-
itemView.render();
|
|
3381
|
-
}
|
|
3382
|
-
});
|
|
3383
|
-
}
|
|
3384
|
-
return this;
|
|
3385
|
-
}
|
|
3386
|
-
async onAfterMount() {
|
|
3387
|
-
await super.onAfterMount();
|
|
3388
|
-
if (this.collection && (this.options.fetchOnMount || !this.collection.lastFetchTime)) {
|
|
3389
|
-
this.collection.fetch();
|
|
3390
|
-
}
|
|
3391
|
-
}
|
|
3392
|
-
/**
|
|
3393
|
-
* Refresh the list (re-fetch if collection supports it)
|
|
3394
|
-
*/
|
|
3395
|
-
async refresh() {
|
|
3396
|
-
if (this.collection && this.collection.restEnabled) {
|
|
3397
|
-
return await this.collection.fetch();
|
|
3398
|
-
}
|
|
3399
|
-
this._buildItems();
|
|
3400
|
-
}
|
|
3401
|
-
/**
|
|
3402
|
-
* Override destroy to clean up
|
|
3403
|
-
*/
|
|
3404
|
-
async destroy() {
|
|
3405
|
-
if (this.collection) {
|
|
3406
|
-
this.collection.off("add", this._onModelsAdded, this);
|
|
3407
|
-
this.collection.off("remove", this._onModelsRemoved, this);
|
|
3408
|
-
this.collection.off("reset", this._onCollectionReset, this);
|
|
3409
|
-
this.collection.off("fetch:start", this._onFetchStart, this);
|
|
3410
|
-
this.collection.off("fetch:end", this._onFetchEnd, this);
|
|
3411
|
-
}
|
|
3412
|
-
this._clearItems();
|
|
3413
|
-
await super.destroy();
|
|
3414
|
-
}
|
|
3415
|
-
}
|
|
3416
2933
|
class TableRow extends ListViewItem {
|
|
3417
2934
|
constructor(options = {}) {
|
|
3418
2935
|
super({
|
|
@@ -7478,98 +6995,96 @@ class ChatView extends View {
|
|
|
7478
6995
|
}
|
|
7479
6996
|
}
|
|
7480
6997
|
export {
|
|
7481
|
-
|
|
7482
|
-
|
|
7483
|
-
|
|
6998
|
+
ComparatorOptions as $,
|
|
6999
|
+
IncidentEventForms as A,
|
|
7000
|
+
Incident as B,
|
|
7484
7001
|
ChatView as C,
|
|
7485
|
-
|
|
7002
|
+
IncidentList as D,
|
|
7486
7003
|
EmailDomain as E,
|
|
7487
7004
|
FilePreviewView as F,
|
|
7488
|
-
|
|
7489
|
-
|
|
7005
|
+
IncidentForms as G,
|
|
7006
|
+
IncidentRuleSet as H,
|
|
7490
7007
|
IncidentEvent as I,
|
|
7491
|
-
|
|
7492
|
-
|
|
7493
|
-
|
|
7008
|
+
IncidentRuleSetList as J,
|
|
7009
|
+
IncidentRule as K,
|
|
7010
|
+
IncidentRuleList as L,
|
|
7494
7011
|
Member as M,
|
|
7495
|
-
|
|
7496
|
-
|
|
7012
|
+
IncidentHistory as N,
|
|
7013
|
+
IncidentHistoryList as O,
|
|
7497
7014
|
ProgressView as P,
|
|
7498
|
-
|
|
7499
|
-
|
|
7015
|
+
RuleSetList as Q,
|
|
7016
|
+
RuleSet as R,
|
|
7500
7017
|
S3Bucket as S,
|
|
7501
7018
|
TableView as T,
|
|
7502
|
-
|
|
7503
|
-
|
|
7504
|
-
|
|
7505
|
-
|
|
7506
|
-
|
|
7507
|
-
|
|
7508
|
-
|
|
7019
|
+
RuleSetForms as U,
|
|
7020
|
+
Rule as V,
|
|
7021
|
+
RuleList as W,
|
|
7022
|
+
RuleForms as X,
|
|
7023
|
+
IncidentStats as Y,
|
|
7024
|
+
BundleByOptions as Z,
|
|
7025
|
+
MatchByOptions as _,
|
|
7509
7026
|
TableRow as a,
|
|
7510
|
-
|
|
7511
|
-
|
|
7512
|
-
|
|
7513
|
-
|
|
7514
|
-
|
|
7515
|
-
|
|
7516
|
-
|
|
7517
|
-
|
|
7518
|
-
|
|
7519
|
-
|
|
7520
|
-
|
|
7521
|
-
|
|
7522
|
-
|
|
7523
|
-
|
|
7524
|
-
|
|
7525
|
-
|
|
7526
|
-
|
|
7527
|
-
|
|
7528
|
-
|
|
7529
|
-
|
|
7530
|
-
|
|
7531
|
-
|
|
7532
|
-
|
|
7533
|
-
|
|
7534
|
-
|
|
7535
|
-
|
|
7536
|
-
|
|
7537
|
-
|
|
7538
|
-
|
|
7539
|
-
|
|
7540
|
-
|
|
7541
|
-
|
|
7542
|
-
|
|
7543
|
-
|
|
7544
|
-
|
|
7545
|
-
|
|
7546
|
-
|
|
7547
|
-
TicketList as ay,
|
|
7548
|
-
TicketNote as az,
|
|
7027
|
+
ValueTypeOptions as a0,
|
|
7028
|
+
Job as a1,
|
|
7029
|
+
JobList as a2,
|
|
7030
|
+
JobForms as a3,
|
|
7031
|
+
JobLog as a4,
|
|
7032
|
+
JobLogList as a5,
|
|
7033
|
+
JobEvent as a6,
|
|
7034
|
+
JobEventList as a7,
|
|
7035
|
+
JobsEngineStats as a8,
|
|
7036
|
+
JobRunner as a9,
|
|
7037
|
+
TicketCategories as aA,
|
|
7038
|
+
JobRunnerList as aa,
|
|
7039
|
+
JobRunnerForms as ab,
|
|
7040
|
+
Log as ac,
|
|
7041
|
+
LogList as ad,
|
|
7042
|
+
MemberList as ae,
|
|
7043
|
+
MemberForms as af,
|
|
7044
|
+
MetricsPermission as ag,
|
|
7045
|
+
MetricsPermissionList as ah,
|
|
7046
|
+
MetricsForms as ai,
|
|
7047
|
+
PushDevice as aj,
|
|
7048
|
+
PushDeviceList as ak,
|
|
7049
|
+
PushTemplate as al,
|
|
7050
|
+
PushTemplateList as am,
|
|
7051
|
+
PushConfig as an,
|
|
7052
|
+
PushConfigList as ao,
|
|
7053
|
+
PushDelivery as ap,
|
|
7054
|
+
PushDeliveryList as aq,
|
|
7055
|
+
PushConfigForms as ar,
|
|
7056
|
+
PushTemplateForms as as,
|
|
7057
|
+
GeoLocatedIP as at,
|
|
7058
|
+
GeoLocatedIPList as au,
|
|
7059
|
+
Ticket as av,
|
|
7060
|
+
TicketList as aw,
|
|
7061
|
+
TicketNote as ax,
|
|
7062
|
+
TicketNoteList as ay,
|
|
7063
|
+
TicketForms as az,
|
|
7549
7064
|
TablePage as b,
|
|
7550
|
-
|
|
7551
|
-
|
|
7552
|
-
|
|
7553
|
-
|
|
7554
|
-
|
|
7555
|
-
|
|
7556
|
-
|
|
7557
|
-
|
|
7558
|
-
|
|
7559
|
-
|
|
7560
|
-
|
|
7561
|
-
|
|
7562
|
-
|
|
7563
|
-
|
|
7564
|
-
|
|
7565
|
-
|
|
7566
|
-
|
|
7567
|
-
|
|
7568
|
-
|
|
7569
|
-
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
|
|
7573
|
-
|
|
7065
|
+
TabView as c,
|
|
7066
|
+
ChatMessageView as d,
|
|
7067
|
+
ChatInputView as e,
|
|
7068
|
+
FileUpload as f,
|
|
7069
|
+
S3BucketList as g,
|
|
7070
|
+
S3BucketForms as h,
|
|
7071
|
+
EmailDomainList as i,
|
|
7072
|
+
EmailDomainForms as j,
|
|
7073
|
+
Mailbox as k,
|
|
7074
|
+
MailboxList as l,
|
|
7075
|
+
MailboxForms as m,
|
|
7076
|
+
SentMessage as n,
|
|
7077
|
+
SentMessageList as o,
|
|
7078
|
+
SentMessageForms as p,
|
|
7079
|
+
EmailTemplate as q,
|
|
7080
|
+
EmailTemplateList as r,
|
|
7081
|
+
EmailTemplateForms as s,
|
|
7082
|
+
FileManager as t,
|
|
7083
|
+
FileManagerList as u,
|
|
7084
|
+
FileManagerForms as v,
|
|
7085
|
+
File$1 as w,
|
|
7086
|
+
FileList as x,
|
|
7087
|
+
FileForms as y,
|
|
7088
|
+
IncidentEventList as z
|
|
7574
7089
|
};
|
|
7575
|
-
//# sourceMappingURL=ChatView-
|
|
7090
|
+
//# sourceMappingURL=ChatView-DLEStri1.js.map
|