mirror of
https://github.com/Kornstalx/5etools-mirror-2.github.io.git
synced 2025-10-28 20:45:35 -05:00
v1.199.0
This commit is contained in:
64
js/filter.js
64
js/filter.js
@@ -1469,6 +1469,7 @@ class Filter extends FilterBase {
|
||||
* Defaults to ascending alphabetical sort.
|
||||
* @param [opts.itemSortFnMini] Function which should be used to sort the `items` array when rendering mini-pills.
|
||||
* @param [opts.groupFn] Function which takes an item and assigns it to a group.
|
||||
* @param [opts.groupNameFn] Function which takes a group and returns a group name;
|
||||
* @param [opts.minimalUi] True if the filter should render with a reduced UI, false otherwise.
|
||||
* @param [opts.umbrellaItems] Items which should, when set active, show everything in the filter. E.g. "All".
|
||||
* @param [opts.umbrellaExcludes] Items which should ignore the state of any `umbrellaItems`
|
||||
@@ -1489,6 +1490,7 @@ class Filter extends FilterBase {
|
||||
this._itemSortFn = opts.itemSortFn === undefined ? SortUtil.ascSort : opts.itemSortFn;
|
||||
this._itemSortFnMini = opts.itemSortFnMini;
|
||||
this._groupFn = opts.groupFn;
|
||||
this._groupNameFn = opts.groupNameFn;
|
||||
this._minimalUi = opts.minimalUi;
|
||||
this._umbrellaItems = Filter._getAsFilterItems(opts.umbrellaItems);
|
||||
this._umbrellaExcludes = Filter._getAsFilterItems(opts.umbrellaExcludes);
|
||||
@@ -2137,14 +2139,14 @@ class Filter extends FilterBase {
|
||||
_doRenderPills_doRenderWrpGroup (group) {
|
||||
const existingMeta = this._pillGroupsMeta[group];
|
||||
if (existingMeta && !existingMeta.isAttached) {
|
||||
existingMeta.hrDivider.appendTo(this.__wrpPills);
|
||||
existingMeta.wrpDivider.appendTo(this.__wrpPills);
|
||||
existingMeta.wrpPills.appendTo(this.__wrpPills);
|
||||
existingMeta.isAttached = true;
|
||||
}
|
||||
if (existingMeta) return;
|
||||
|
||||
this._pillGroupsMeta[group] = {
|
||||
hrDivider: this._doRenderPills_doRenderWrpGroup_getHrDivider(group).appendTo(this.__wrpPills),
|
||||
wrpDivider: this._doRenderPills_doRenderWrpGroup_getDivider(group).appendTo(this.__wrpPills),
|
||||
wrpPills: this._doRenderPills_doRenderWrpGroup_getWrpPillsSub(group).appendTo(this.__wrpPills),
|
||||
isAttached: true,
|
||||
};
|
||||
@@ -2152,14 +2154,14 @@ class Filter extends FilterBase {
|
||||
Object.entries(this._pillGroupsMeta)
|
||||
.sort((a, b) => SortUtil.ascSortLower(a[0], b[0]))
|
||||
.forEach(([groupKey, groupMeta], i) => {
|
||||
groupMeta.hrDivider.appendTo(this.__wrpPills);
|
||||
groupMeta.hrDivider.toggleVe(!this._isGroupDividerHidden(groupKey, i));
|
||||
groupMeta.wrpDivider.appendTo(this.__wrpPills);
|
||||
groupMeta.wrpDivider.toggleVe(!this._isGroupDividerHidden(groupKey, i));
|
||||
groupMeta.wrpPills.appendTo(this.__wrpPills);
|
||||
});
|
||||
|
||||
if (this._nests) {
|
||||
this._pillGroupsMeta[group].toggleDividerFromNestVisibility = () => {
|
||||
this._pillGroupsMeta[group].hrDivider.toggleVe(!this._isGroupDividerHidden(group));
|
||||
this._pillGroupsMeta[group].wrpDivider.toggleVe(!this._isGroupDividerHidden(group));
|
||||
};
|
||||
|
||||
// bind group dividers to show/hide depending on nest visibility state
|
||||
@@ -2184,7 +2186,34 @@ class Filter extends FilterBase {
|
||||
return groupItems.length === hiddenGroupItems.length;
|
||||
}
|
||||
|
||||
_doRenderPills_doRenderWrpGroup_getHrDivider () { return e_({tag: "hr", clazz: `fltr__dropdown-divider--sub hr-2 mx-3`}); }
|
||||
_doRenderPills_doRenderWrpGroup_getDivider (group) {
|
||||
const eleHeader = this._doRenderPills_doRenderWrpGroup_getDividerHeader(group);
|
||||
const eleHr = this._doRenderPills_doRenderWrpGroup_getDividerHr(group);
|
||||
|
||||
return e_({
|
||||
tag: "div",
|
||||
clazz: "ve-flex-col w-100",
|
||||
children: [
|
||||
eleHr,
|
||||
eleHeader,
|
||||
]
|
||||
.filter(Boolean),
|
||||
});
|
||||
}
|
||||
|
||||
_doRenderPills_doRenderWrpGroup_getDividerHr (group) { return e_({tag: "hr", clazz: `fltr__dropdown-divider--sub hr-2 mx-3`}); }
|
||||
|
||||
_doRenderPills_doRenderWrpGroup_getDividerHeader (group) {
|
||||
const groupName = this._groupNameFn?.(group);
|
||||
if (!groupName) return null;
|
||||
|
||||
return e_({
|
||||
tag: "div",
|
||||
clazz: `fltr__divider-header ve-muted italic ve-small`,
|
||||
text: groupName,
|
||||
});
|
||||
}
|
||||
|
||||
_doRenderPills_doRenderWrpGroup_getWrpPillsSub () { return e_({tag: "div", clazz: `fltr__wrp-pills--sub fltr__container-pills`}); }
|
||||
|
||||
_doRenderMiniPills () {
|
||||
@@ -2461,7 +2490,7 @@ class Filter extends FilterBase {
|
||||
|
||||
Object.values(this._pillGroupsMeta || {})
|
||||
.forEach(it => {
|
||||
it.hrDivider.detach();
|
||||
it.wrpDivider.detach();
|
||||
it.wrpPills.detach();
|
||||
it.isAttached = false;
|
||||
});
|
||||
@@ -2816,6 +2845,7 @@ class SourceFilter extends Filter {
|
||||
opts.itemSortFnMini = opts.itemSortFnMini === undefined ? SourceFilter._SORT_ITEMS_MINI.bind(SourceFilter) : opts.itemSortFnMini;
|
||||
opts.itemSortFn = opts.itemSortFn === undefined ? (a, b) => SortUtil.ascSortLower(Parser.sourceJsonToFull(a.item), Parser.sourceJsonToFull(b.item)) : opts.itemSortFn;
|
||||
opts.groupFn = opts.groupFn === undefined ? SourceUtil.getFilterGroup : opts.groupFn;
|
||||
opts.groupNameFn = opts.groupNameFn === undefined ? SourceUtil.getFilterGroupName : opts.groupNameFn;
|
||||
opts.selFn = opts.selFn === undefined ? PageFilter.defaultSourceSelFn : opts.selFn;
|
||||
|
||||
super(opts);
|
||||
@@ -3071,15 +3101,15 @@ class SourceFilter extends Filter {
|
||||
return [ent.source].concat(otherSourcesFilt.map(src => new SourceFilterItem({item: src.source, isIgnoreRed: true, isOtherSource: true})));
|
||||
}
|
||||
|
||||
_doRenderPills_doRenderWrpGroup_getHrDivider (group) {
|
||||
_doRenderPills_doRenderWrpGroup_getDividerHeader (group) {
|
||||
switch (group) {
|
||||
case SourceUtil.FILTER_GROUP_NON_STANDARD: return this._doRenderPills_doRenderWrpGroup_getHrDivider_groupNonStandard(group);
|
||||
case SourceUtil.FILTER_GROUP_HOMEBREW: return this._doRenderPills_doRenderWrpGroup_getHrDivider_groupBrew(group);
|
||||
default: return super._doRenderPills_doRenderWrpGroup_getHrDivider(group);
|
||||
case SourceUtil.FILTER_GROUP_NON_STANDARD: return this._doRenderPills_doRenderWrpGroup_getDividerHeader_groupNonStandard(group);
|
||||
case SourceUtil.FILTER_GROUP_HOMEBREW: return this._doRenderPills_doRenderWrpGroup_getDividerHeader_groupBrew(group);
|
||||
default: return super._doRenderPills_doRenderWrpGroup_getDividerHeader(group);
|
||||
}
|
||||
}
|
||||
|
||||
_doRenderPills_doRenderWrpGroup_getHrDivider_groupNonStandard (group) {
|
||||
_doRenderPills_doRenderWrpGroup_getDividerHeader_groupNonStandard (group) {
|
||||
let dates = [];
|
||||
const comp = BaseComponent.fromObject({
|
||||
min: 0,
|
||||
@@ -3203,9 +3233,9 @@ class SourceFilter extends Filter {
|
||||
|
||||
return e_({
|
||||
tag: "div",
|
||||
clazz: `ve-flex-col w-100`,
|
||||
clazz: `split-v-center w-100`,
|
||||
children: [
|
||||
super._doRenderPills_doRenderWrpGroup_getHrDivider(),
|
||||
super._doRenderPills_doRenderWrpGroup_getDividerHeader(group) || e_({clazz: "div"}),
|
||||
e_({
|
||||
tag: "div",
|
||||
clazz: `mb-1 ve-flex-h-right`,
|
||||
@@ -3219,7 +3249,7 @@ class SourceFilter extends Filter {
|
||||
});
|
||||
}
|
||||
|
||||
_doRenderPills_doRenderWrpGroup_getHrDivider_groupBrew (group) {
|
||||
_doRenderPills_doRenderWrpGroup_getDividerHeader_groupBrew (group) {
|
||||
const btnClear = e_({
|
||||
tag: "button",
|
||||
clazz: `btn btn-xxs btn-default px-1`,
|
||||
@@ -3235,9 +3265,9 @@ class SourceFilter extends Filter {
|
||||
|
||||
return e_({
|
||||
tag: "div",
|
||||
clazz: `ve-flex-col w-100`,
|
||||
clazz: `split-v-center w-100`,
|
||||
children: [
|
||||
super._doRenderPills_doRenderWrpGroup_getHrDivider(),
|
||||
super._doRenderPills_doRenderWrpGroup_getDividerHeader(group) || e_({clazz: "div"}),
|
||||
e_({
|
||||
tag: "div",
|
||||
clazz: `mb-1 ve-flex-h-right`,
|
||||
|
||||
Reference in New Issue
Block a user