diff --git a/extensions/mentions/js/src/forum/addComposerAutocomplete.js b/extensions/mentions/js/src/forum/addComposerAutocomplete.js
index 261c5f03db..edacccc012 100644
--- a/extensions/mentions/js/src/forum/addComposerAutocomplete.js
+++ b/extensions/mentions/js/src/forum/addComposerAutocomplete.js
@@ -14,7 +14,9 @@ import Badge from 'flarum/common/components/Badge';
import Group from 'flarum/common/models/Group';
import AutocompleteDropdown from './fragments/AutocompleteDropdown';
-import getMentionText from './utils/getMentionText';
+import MentionTextGenerator from './utils/MentionTextGenerator';
+
+const tagsEnabled = !!app.initializers.has('flarum-tags');
const throttledSearch = throttle(
250, // 250ms timeout
@@ -63,6 +65,8 @@ export default function addComposerAutocomplete() {
let typed;
let matchTyped;
+ const mentionTextGenerator = new MentionTextGenerator();
+
// We store users returned from an API here to preserve order in which they are returned
// This prevents the user list jumping around while users are returned.
// We also use a hashset for user IDs to provide O(1) lookup for the users already in the list.
@@ -76,6 +80,12 @@ export default function addComposerAutocomplete() {
})
);
+ let returnedTags;
+ if (tagsEnabled) {
+ // Store tags..
+ returnedTags = Array.from(app.store.all('tags'));
+ }
+
const applySuggestion = (replacement) => {
this.attrs.composer.editor.replaceBeforeCursor(absMentionStart - 1, replacement + ' ');
@@ -157,6 +167,29 @@ export default function addComposerAutocomplete() {
);
};
+ const makeTagSuggestion = function (tag, replacement, content, className = '') {
+ let tagName = tag.name().toLowerCase();
+
+ if (typed) {
+ tagName = highlight(tagName, typed);
+ }
+
+ return (
+
+ );
+ };
+
const userMatches = function (user) {
const names = [user.username(), user.displayName()];
@@ -169,6 +202,12 @@ export default function addComposerAutocomplete() {
return names.some((name) => name.toLowerCase().substr(0, typed.length) === typed);
};
+ const tagMatches = function (tag) {
+ const names = [tag.name()];
+
+ return names.some((name) => name.toLowerCase().substr(0, typed.length) === typed);
+ };
+
const buildSuggestions = () => {
const suggestions = [];
@@ -178,7 +217,7 @@ export default function addComposerAutocomplete() {
returnedUsers.forEach((user) => {
if (!userMatches(user)) return;
- suggestions.push(makeSuggestion(user, getMentionText(user), '', 'MentionsDropdown-user'));
+ suggestions.push(makeSuggestion(user, mentionTextGenerator.forUser(user), '', 'MentionsDropdown-user'));
});
// ... or groups.
@@ -186,7 +225,16 @@ export default function addComposerAutocomplete() {
returnedGroups.forEach((group) => {
if (!groupMatches(group)) return;
- suggestions.push(makeGroupSuggestion(group, getMentionText(undefined, undefined, group), '', 'MentionsDropdown-group'));
+ suggestions.push(makeGroupSuggestion(group, mentionTextGenerator.forGroup(group), '', 'MentionsDropdown-group'));
+ });
+ }
+
+ // ... or tags.
+ if (tagsEnabled && app.session?.user?.canMentionTags?.()) {
+ returnedTags.forEach((tag) => {
+ if (!tagMatches(tag)) return;
+
+ suggestions.push(makeTagSuggestion(tag, mentionTextGenerator.forTag(tag), '', 'MentionsDropdown-tag'));
});
}
}
@@ -220,7 +268,7 @@ export default function addComposerAutocomplete() {
suggestions.push(
makeSuggestion(
user,
- getMentionText(user, post.id()),
+ mentionTextGenerator.forPostMention(user, post.id()),
[
app.translator.trans('flarum-mentions.forum.composer.reply_to_post_text', { number: post.number() }),
' — ',
@@ -271,7 +319,7 @@ export default function addComposerAutocomplete() {
dropdown.setIndex(0);
dropdown.$().scrollTop(0);
- // Don't send API calls searching for users until at least 2 characters have been typed.
+ // Don't send API calls searching for users or tags until at least 2 characters have been typed.
// This focuses the mention results on users and posts in the discussion.
if (typed.length > 1 && app.forum.attribute('canSearchUsers')) {
throttledSearch(typed, searched, returnedUsers, returnedUserIds, dropdown, buildSuggestions);
diff --git a/extensions/mentions/js/src/forum/compat.js b/extensions/mentions/js/src/forum/compat.js
index ee22c67732..c659091ebe 100644
--- a/extensions/mentions/js/src/forum/compat.js
+++ b/extensions/mentions/js/src/forum/compat.js
@@ -6,6 +6,7 @@ import AutocompleteDropdown from './fragments/AutocompleteDropdown';
import PostQuoteButton from './fragments/PostQuoteButton';
import getCleanDisplayName from './utils/getCleanDisplayName';
import getMentionText from './utils/getMentionText';
+import MentionTextGenerator from './utils/MentionTextGenerator';
import * as reply from './utils/reply';
import selectedText from './utils/selectedText';
import * as textFormatter from './utils/textFormatter';
@@ -19,6 +20,7 @@ export default {
'mentions/fragments/PostQuoteButton': PostQuoteButton,
'mentions/utils/getCleanDisplayName': getCleanDisplayName,
'mentions/utils/getMentionText': getMentionText,
+ 'mentions/utils/MentionTextGenerator': MentionTextGenerator,
'mentions/utils/reply': reply,
'mentions/utils/selectedText': selectedText,
'mentions/utils/textFormatter': textFormatter,
diff --git a/extensions/mentions/js/src/forum/utils/MentionTextGenerator.ts b/extensions/mentions/js/src/forum/utils/MentionTextGenerator.ts
new file mode 100644
index 0000000000..10a7118877
--- /dev/null
+++ b/extensions/mentions/js/src/forum/utils/MentionTextGenerator.ts
@@ -0,0 +1,67 @@
+import getCleanDisplayName, { shouldUseOldFormat } from './getCleanDisplayName';
+import type User from 'flarum/common/models/User';
+import type Group from 'flarum/common/models/Group';
+
+/**
+ * Fetches the mention text for a specified model.
+ */
+export default class MentionTextGenerator {
+ /**
+ * Automatically determines which mention syntax to be used based on the option in the
+ * admin dashboard. Also performs display name clean-up automatically.
+ *
+ * @"Display name"#UserID or `@username`
+ *
+ * @example
New display name syntax
+ * // '@"user"#1'
+ * forUser(User) // User is ID 1, display name is 'User'
+ *
+ * @example
Using old syntax
+ * // '@username'
+ * forUser(user) // User's username is 'username'
+ *
+ * @param user
+ * @returns string
+ */
+ forUser(user: User): string {
+ if (shouldUseOldFormat()) {
+ const cleanText = getCleanDisplayName(user, false);
+ return `@${cleanText}`;
+ }
+ const cleanText = getCleanDisplayName(user);
+ return `@"${cleanText}"#${user.id()}`;
+ }
+
+ /**
+ * Generates the syntax for mentioning of a post. Also cleans up the display name.
+ *
+ * @example
Post mention
+ * // '@"User"#p13'
+ * // @"Display name"#pPostID
+ * forPostMention(user, 13) // User display name is 'User', post ID is 13
+ *
+ * @param user
+ * @param postId
+ * @returns
+ */
+ forPostMention(user: User, postId: number): string {
+ const cleanText = getCleanDisplayName(user);
+ return `@"${cleanText}"#p${postId}`;
+ }
+
+ /**
+ * Generates the mention syntax for a group mention.
+ *
+ * @"Name Plural"#gGroupID
+ *
+ * @example
Group mention
+ * // '@"Mods"#g4'
+ * forGroup(group) // Group display name is 'Mods', group ID is 4
+ *
+ * @param group
+ * @returns string
+ */
+ forGroup(group: Group): string {
+ return `@"${group.namePlural()}"#g${group.id()}`;
+ }
+}
diff --git a/extensions/mentions/js/src/forum/utils/getMentionText.js b/extensions/mentions/js/src/forum/utils/getMentionText.js
index 6a99ee38ed..fdd79764c0 100644
--- a/extensions/mentions/js/src/forum/utils/getMentionText.js
+++ b/extensions/mentions/js/src/forum/utils/getMentionText.js
@@ -1,44 +1,21 @@
-import getCleanDisplayName, { shouldUseOldFormat } from './getCleanDisplayName';
+import MentionTextGenerator from './MentionTextGenerator';
/**
- * Fetches the mention text for a specified user (and optionally a post ID for replies, or group).
+ * Fetches the mention text for a specified user (and optionally a post ID for replies or group).
*
* Automatically determines which mention syntax to be used based on the option in the
* admin dashboard. Also performs display name clean-up automatically.
*
- * @example
New display name syntax
- * // '@"User"#1'
- * getMentionText(User) // User is ID 1, display name is 'User'
- *
- * @example
Replying
- * // '@"User"#p13'
- * getMentionText(User, 13) // User display name is 'User', post ID is 13
- *
- * @example
\n );\n}\n\nexport default class TagsPage extends ExtensionPage {\n oninit(vnode) {\n super.oninit(vnode);\n\n // A regular redraw won't work here, because sortable has mucked around\n // with the DOM which will confuse Mithril's diffing algorithm. Instead\n // we force a full reconstruction of the DOM by changing the key, which\n // makes mithril completely re-render the component on redraw.\n this.forcedRefreshKey = 0;\n\n this.loading = true;\n\n app.tagList.load(['parent']).then(() => {\n this.loading = false;\n\n m.redraw();\n });\n }\n\n content() {\n if (this.loading) {\n return ;\n }\n\n const minPrimaryTags = this.setting('flarum-tags.min_primary_tags', 0);\n const maxPrimaryTags = this.setting('flarum-tags.max_primary_tags', 0);\n\n const minSecondaryTags = this.setting('flarum-tags.min_secondary_tags', 0);\n const maxSecondaryTags = this.setting('flarum-tags.max_secondary_tags', 0);\n\n const tags = sortTags(app.store.all('tags').filter((tag) => !tag.parent()));\n\n return (\n
,\n ];\n }\n\n /**\n * Filters the available tags on every state change.\n */\n private getFilteredTags(): Tag[] {\n const filter = this.filter().toLowerCase();\n const primaryCount = this.primaryCount();\n const secondaryCount = this.secondaryCount();\n let tags = this.tags;\n\n if (this.attrs.requireParentTag) {\n // Filter out all child tags whose parents have not been selected. This\n // makes it impossible to select a child if its parent hasn't been selected.\n tags = tags.filter((tag) => {\n const parent = tag.parent();\n return parent !== null && (parent === false || this.selected.includes(parent));\n });\n }\n\n if (!this.bypassReqs) {\n // If we reached the total maximum number of tags, we can't select anymore.\n if (this.selected.length >= this.attrs.limits!.max!.total!) {\n tags = tags.filter((tag) => this.selected.includes(tag));\n }\n // If the number of selected primary/secondary tags is at the maximum, then\n // we'll filter out all other tags of that type.\n else {\n if (primaryCount >= this.attrs.limits!.max!.primary!) {\n tags = tags.filter((tag) => !tag.isPrimary() || this.selected.includes(tag));\n }\n if (secondaryCount >= this.attrs.limits!.max!.secondary!) {\n tags = tags.filter((tag) => tag.isPrimary() || this.selected.includes(tag));\n }\n }\n }\n\n // If the user has entered text in the filter input, then filter by tags\n // whose name matches what they've entered.\n if (filter) {\n tags = tags.filter((tag) => tag.name().substring(0, filter.length).toLowerCase() === filter);\n }\n\n if (!this.indexTag || !tags.includes(this.indexTag)) this.indexTag = tags[0];\n\n return tags;\n }\n\n /**\n * Counts the number of selected primary tags.\n */\n protected primaryCount(): number {\n return this.selected.filter((tag) => tag.isPrimary()).length;\n }\n\n /**\n * Counts the number of selected secondary tags.\n */\n protected secondaryCount(): number {\n return this.selected.filter((tag) => !tag.isPrimary()).length;\n }\n\n /**\n * Validates the number of selected primary/secondary tags against the set min max limits.\n */\n protected meetsRequirements(primaryCount: number, secondaryCount: number) {\n if (this.bypassReqs || (this.attrs.allowResetting && this.selected.length === 0)) {\n return true;\n }\n\n if (this.selected.length < this.attrs.limits!.min!.total!) {\n return false;\n }\n\n return primaryCount >= this.attrs.limits!.min!.primary! && secondaryCount >= this.attrs.limits!.min!.secondary!;\n }\n\n /**\n * Add the given tag to the list of selected tags.\n */\n protected addTag(tag: Tag | undefined) {\n if (!tag || !this.attrs.canSelect(tag)) return;\n\n if (this.attrs.onSelect) {\n this.attrs.onSelect(tag, this.selected);\n }\n\n // If this tag has a parent, we'll also need to add the parent tag to the\n // selected list if it's not already in there.\n if (this.attrs.requireParentTag) {\n const parent = tag.parent();\n if (parent && !this.selected.includes(parent)) {\n this.selected.push(parent);\n }\n }\n\n if (!this.selected.includes(tag)) {\n this.selected.push(tag);\n }\n }\n\n /**\n * Remove the given tag from the list of selected tags.\n */\n protected removeTag(tag: Tag) {\n const index = this.selected.indexOf(tag);\n\n if (index !== -1) {\n this.selected.splice(index, 1);\n\n // Look through the list of selected tags for any tags which have the tag\n // we just removed as their parent. We'll need to remove them too.\n if (this.attrs.requireParentTag) {\n this.selected.filter((t) => t.parent() === tag).forEach(this.removeTag.bind(this));\n }\n\n if (this.attrs.onDeselect) {\n this.attrs.onDeselect(tag, this.selected);\n }\n }\n }\n\n protected toggleTag(tag: Tag) {\n // Won't happen, needed for type safety.\n if (!this.tags) return;\n\n if (this.selected.includes(tag)) {\n this.removeTag(tag);\n } else {\n this.addTag(tag);\n }\n\n if (this.filter()) {\n this.filter('');\n this.indexTag = this.tags[0];\n }\n\n this.onready();\n }\n\n /**\n * Gives human text instructions based on the current number of selected tags and set limits.\n */\n protected getInstruction(primaryCount: number, secondaryCount: number) {\n if (this.bypassReqs) {\n return '';\n }\n\n if (primaryCount < this.attrs.limits!.min!.primary!) {\n const remaining = this.attrs.limits!.min!.primary! - primaryCount;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_primary_placeholder', { count: remaining }));\n } else if (secondaryCount < this.attrs.limits!.min!.secondary!) {\n const remaining = this.attrs.limits!.min!.secondary! - secondaryCount;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_secondary_placeholder', { count: remaining }));\n } else if (this.selected.length < this.attrs.limits!.min!.total!) {\n const remaining = this.attrs.limits!.min!.total! - this.selected.length;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_tags_placeholder', { count: remaining }));\n }\n\n return '';\n }\n\n /**\n * Submit tag selection.\n */\n onsubmit(e: SubmitEvent) {\n e.preventDefault();\n\n if (this.attrs.onsubmit) this.attrs.onsubmit(this.selected);\n\n this.hide();\n }\n\n protected select(e: KeyboardEvent) {\n // Ctrl + Enter submits the selection, just Enter completes the current entry\n if (e.metaKey || e.ctrlKey || (this.indexTag && this.selected.includes(this.indexTag))) {\n if (this.selected.length) {\n // The DOM submit method doesn't emit a `submit event, so we\n // simulate a manual submission so our `onsubmit` logic is run.\n this.$('button[type=\"submit\"]').click();\n }\n } else if (this.indexTag) {\n this.getItem(this.indexTag)[0].dispatchEvent(new Event('click'));\n }\n }\n\n protected selectableItems() {\n return this.$('.TagSelectionModal-list > li');\n }\n\n protected getCurrentNumericIndex() {\n if (!this.indexTag) return -1;\n\n return this.selectableItems().index(this.getItem(this.indexTag));\n }\n\n protected getItem(selectedTag: Tag) {\n return this.selectableItems().filter(`[data-index=\"${selectedTag.id()}\"]`);\n }\n\n protected setIndex(index: number, scrollToItem: boolean) {\n const $items = this.selectableItems();\n const $dropdown = $items.parent();\n\n if (index < 0) {\n index = $items.length - 1;\n } else if (index >= $items.length) {\n index = 0;\n }\n\n const $item = $items.eq(index);\n\n this.indexTag = app.store.getById('tags', $item.attr('data-index')!);\n\n m.redraw();\n\n if (scrollToItem && this.indexTag) {\n const dropdownScroll = $dropdown.scrollTop()!;\n const dropdownTop = $dropdown.offset()!.top;\n const dropdownBottom = dropdownTop + $dropdown.outerHeight()!;\n const itemTop = $item.offset()!.top;\n const itemBottom = itemTop + $item.outerHeight()!;\n\n let scrollTop;\n if (itemTop < dropdownTop) {\n scrollTop = dropdownScroll - dropdownTop + itemTop - parseInt($dropdown.css('padding-top'), 10);\n } else if (itemBottom > dropdownBottom) {\n scrollTop = dropdownScroll - dropdownBottom + itemBottom + parseInt($dropdown.css('padding-bottom'), 10);\n }\n\n if (typeof scrollTop !== 'undefined') {\n $dropdown.stop(true).animate({ scrollTop }, 100);\n }\n }\n }\n}\n\n/**\n * Catch invalid limits provided to the tag selection modal.\n */\nfunction catchInvalidLimits(limits: ITagSelectionModalLimits) {\n if (limits.min!.primary! > limits.max!.primary!) {\n throw new Error('The minimum number of primary tags allowed cannot be more than the maximum number of primary tags allowed.');\n }\n\n if (limits.min!.secondary! > limits.max!.secondary!) {\n throw new Error('The minimum number of secondary tags allowed cannot be more than the maximum number of secondary tags allowed.');\n }\n\n if (limits.min!.total! > limits.max!.primary! + limits.max!.secondary!) {\n throw new Error('The minimum number of tags allowed cannot be more than the maximum number of primary and secondary tags allowed together.');\n }\n\n if (limits.max!.total! < limits.min!.primary! + limits.min!.secondary!) {\n throw new Error('The maximum number of tags allowed cannot be less than the minimum number of primary and secondary tags allowed together.');\n }\n\n if (limits.min!.total! > limits.max!.total!) {\n throw new Error('The minimum number of tags allowed cannot be more than the maximum number of tags allowed.');\n }\n}\n","import sortTags from './utils/sortTags';\nimport Tag from './models/Tag';\nimport tagsLabel from './helpers/tagsLabel';\nimport tagIcon from './helpers/tagIcon';\nimport tagLabel from './helpers/tagLabel';\nimport TagSelectionModal from './components/TagSelectionModal';\nimport TagListState from './states/TagListState';\n\nexport default {\n 'tags/utils/sortTags': sortTags,\n 'tags/models/Tag': Tag,\n 'tags/helpers/tagsLabel': tagsLabel,\n 'tags/helpers/tagIcon': tagIcon,\n 'tags/helpers/tagLabel': tagLabel,\n 'tags/components/TagSelectionModal': TagSelectionModal,\n 'tags/states/TagListState': TagListState,\n};\n","import compat from '../common/compat';\n\nimport addTagsHomePageOption from './addTagsHomePageOption';\nimport addTagChangePermission from './addTagChangePermission';\nimport TagsPage from './components/TagsPage';\nimport EditTagModal from './components/EditTagModal';\nimport addTagPermission from './addTagPermission';\nimport addTagsPermissionScope from './addTagsPermissionScope';\n\nexport default Object.assign(compat, {\n 'tags/addTagsHomePageOption': addTagsHomePageOption,\n 'tags/addTagChangePermission': addTagChangePermission,\n 'tags/components/TagsPage': TagsPage,\n 'tags/components/EditTagModal': EditTagModal,\n 'tags/addTagPermission': addTagPermission,\n 'tags/addTagsPermissionScope': addTagsPermissionScope,\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core;","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/AdminPage'];","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport TagSelectionModal from '../../common/components/TagSelectionModal';\nimport tagsLabel from '../../common/helpers/tagsLabel';\n\nimport type { CommonSettingsItemOptions } from 'flarum/admin/components/AdminPage';\nimport type Stream from 'flarum/common/utils/Stream';\nimport type { ITagSelectionModalAttrs } from '../../common/components/TagSelectionModal';\nimport type Tag from '../../common/models/Tag';\n\nexport interface SelectTagsSettingComponentOptions extends CommonSettingsItemOptions {\n type: 'flarum-tags.select-tags';\n options?: ITagSelectionModalAttrs;\n}\n\nexport interface SelectTagsSettingComponentAttrs extends SelectTagsSettingComponentOptions {\n settingValue: Stream;\n}\n\nexport default class SelectTagsSettingComponent<\n CustomAttrs extends SelectTagsSettingComponentAttrs = SelectTagsSettingComponentAttrs\n> extends Component {\n protected tags: Tag[] = [];\n protected loaded = false;\n\n view() {\n const value = JSON.parse(this.attrs.settingValue() || '[]');\n\n if (!this.loaded) {\n app.tagList.load(['parent']).then((tags) => {\n this.tags = tags.filter((tag) => value.includes(tag.id()));\n this.loaded = true;\n m.redraw();\n });\n }\n\n return (\n
\n \n {this.attrs.help &&
{this.attrs.help}
}\n {!this.loaded ? (\n \n ) : (\n \n )}\n
\n );\n }\n}\n","import app from 'flarum/admin/app';\nimport Tag from '../common/models/Tag';\nimport addTagsPermissionScope from './addTagsPermissionScope';\nimport addTagPermission from './addTagPermission';\nimport addTagsHomePageOption from './addTagsHomePageOption';\nimport addTagChangePermission from './addTagChangePermission';\nimport TagsPage from './components/TagsPage';\nimport TagListState from '../common/states/TagListState';\n\napp.initializers.add('flarum-tags', (app) => {\n app.store.models.tags = Tag;\n\n app.tagList = new TagListState();\n\n app.extensionData.for('flarum-tags').registerPage(TagsPage);\n\n addTagsPermissionScope();\n addTagPermission();\n addTagsHomePageOption();\n addTagChangePermission();\n addTagSelectionSettingComponent();\n});\n\n// Expose compat API\nimport tagsCompat from './compat';\nimport { compat } from '@flarum/core/admin';\nimport addTagSelectionSettingComponent from './addTagSelectionSettingComponent';\n\nObject.assign(compat, tagsCompat);\n","import { extend } from 'flarum/common/extend';\nimport AdminPage from 'flarum/admin/components/AdminPage';\nimport SelectTagsSettingComponent from './components/SelectTagsSettingComponent';\n\nexport default function () {\n extend(AdminPage.prototype, 'customSettingComponents', function (items) {\n items.add('flarum-tags.select-tags', (attrs) => {\n return ;\n });\n });\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["flarum","core","compat","_setPrototypeOf","o","p","Object","setPrototypeOf","bind","__proto__","_inheritsLoose","subClass","superClass","prototype","create","constructor","Tag","name","Model","call","this","slug","description","color","backgroundUrl","backgroundMode","icon","position","parent","children","defaultSort","isChild","isHidden","discussionCount","lastPostedAt","lastPostedDiscussion","isRestricted","canStartDiscussion","canAddToDiscussion","isPrimary","computed","tagIcon","tag","attrs","settings","hasIcon","useColor","className","classList","style","tagLabel","link","extract","tagText","app","translator","trans","title","href","route","tags","m","Link","sortTags","slice","sort","a","b","aPos","bPos","aParent","bParent","extend","PermissionGrid","loading","then","redraw","override","original","vnode","permission","tagPrefix","match","substr","length","map","required","items","filter","forEach","add","id","label","onremove","save","render","item","indexOf","tagScoped","PermissionDropdown","allowGuest","buttonClassName","caretIcon","onclick","extensionData","registerPermission","BasicsPage","path","setting","minutes","parseInt","data","allow_tag_change","SettingDropdown","defaultLabel","count","key","options","value","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","configurable","writable","_extends","assign","hasOwnProperty","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","userAgent","pattern","window","navigator","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","on","el","event","fn","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","document","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","replace","css","prop","val","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","find","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","elMatrix","scaleX","scaleY","d","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","Math","round","throttle","callback","ms","args","_this","setTimeout","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","Date","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginName","concat","pluginEvent","eventName","sortable","evt","eventCanceled","cancel","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_excluded","_ref","undefined","originalEvent","dragEl","parentEl","ghostEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","active","oldIndex","oldDraggableIndex","newIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","targetEl","toEl","fromEl","extraEventProperties","onName","charAt","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","createElement","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","join","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","rect","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","animationCallbackId","animationStates","disabled","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","Number","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","get","captureAnimationState","child","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","splice","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","forRepaintDummy","offsetWidth","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","str","src","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","type","touch","pointerType","originalTarget","shadowRoot","composedPath","root","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","c","cssMatrix","appendChild","removeAttribute","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","_ghostIsFirst","firstChild","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","useAnimation","set","destroy","Array","querySelectorAll","utils","is","dst","nextTick","cancelNextTick","detectDirection","element","_len","_key","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","EditTagModal","primary","oninit","model","Stream","attributes","submitData","content","fields","ItemList","placeholder","oninput","bidi","tabindex","Button","exists","onsubmit","hide","confirm","extractText","pushData","relationships","Modal","tagItem","TagsPage","forcedRefreshKey","minPrimaryTags","maxPrimaryTags","minSecondaryTags","maxSecondaryTags","oncreate","onListOnCreate","localeCompare","min","withAttr","setMinTags","submitButton","onSort","onSortUpdate","minTags","maxTags","HTMLOListElement","HTMLUListElement","j","url","method","ExtensionPage","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","error","done","Promise","TagListState","loadedIncludes","Set","load","includes","unloadedIncludes","include","has","self","tagsLabel","ToggleButton","view","isToggled","Component","TagSelectionModal","selected","bypassReqs","focused","KeyboardNavigatable","indexTag","initAttrs","canSelect","allowResetting","limits","total","secondary","Infinity","Error","catchInvalidLimits","onUp","setIndex","getCurrentNumericIndex","onDown","onSelect","select","onRemove","selectableTags","selectedTags","addTag","toLowerCase","primaryCount","secondaryCount","getFilteredTags","inputWidth","getInstruction","focus","removeTag","onready","onkeydown","navigate","onfocus","onblur","meetsRequirements","pinned","colored","onmouseover","toggleTag","highlight","allowBypassing","requireParentTag","t","onDeselect","remaining","metaKey","ctrlKey","click","getItem","Event","selectableItems","selectedTag","scrollToItem","$items","$dropdown","$item","eq","attr","dropdownScroll","dropdownTop","offset","dropdownBottom","outerHeight","itemTop","itemBottom","stop","addTagsHomePageOption","addTagChangePermission","addTagPermission","addTagsPermissionScope","SelectTagsSettingComponent","loaded","JSON","parse","settingValue","help","stringify","size","models","tagList","registerPage","AdminPage","tagsCompat","require","_regeneratorRuntime","module","exports","__esModule","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","doneResult","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","reverse","pop","skipTempReset","prev","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","r"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"admin.js","mappings":"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","sources":["webpack://@flarum/tags/./src/admin/addTagChangePermission.js","webpack://@flarum/tags/./src/admin/addTagPermission.js","webpack://@flarum/tags/./src/admin/addTagSelectionSettingComponent.tsx","webpack://@flarum/tags/./src/admin/addTagsHomePageOption.js","webpack://@flarum/tags/./src/admin/addTagsPermissionScope.tsx","webpack://@flarum/tags/./src/admin/compat.js","webpack://@flarum/tags/./src/admin/components/EditTagModal.tsx","webpack://@flarum/tags/./src/admin/components/SelectTagsSettingComponent.tsx","webpack://@flarum/tags/./src/admin/components/TagsPage.js","webpack://@flarum/tags/./src/admin/index.ts","webpack://@flarum/tags/./src/common/compat.js","webpack://@flarum/tags/./src/common/components/TagSelectionModal.tsx","webpack://@flarum/tags/./src/common/helpers/tagIcon.js","webpack://@flarum/tags/./src/common/helpers/tagLabel.js","webpack://@flarum/tags/./src/common/helpers/tagsLabel.js","webpack://@flarum/tags/./src/common/models/Tag.ts","webpack://@flarum/tags/./src/common/states/TagListState.ts","webpack://@flarum/tags/./src/common/utils/sortTags.tsx","webpack://@flarum/tags/./src/forum/components/ToggleButton.js","webpack://@flarum/tags/../../../node_modules/sortablejs/modular/sortable.esm.js","webpack://@flarum/tags/external assign \"flarum.core\"","webpack://@flarum/tags/external root \"flarum.core.compat['admin/app']\"","webpack://@flarum/tags/external root \"flarum.core.compat['admin/components/AdminPage']\"","webpack://@flarum/tags/external root \"flarum.core.compat['admin/components/BasicsPage']\"","webpack://@flarum/tags/external root \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@flarum/tags/external root \"flarum.core.compat['admin/components/PermissionDropdown']\"","webpack://@flarum/tags/external root \"flarum.core.compat['admin/components/PermissionGrid']\"","webpack://@flarum/tags/external root \"flarum.core.compat['admin/components/SettingDropdown']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/Component']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/Model']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/app']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Button']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/ColorPreviewInput']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Link']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/extend']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/KeyboardNavigatable']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/computed']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/extract']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/string']\"","webpack://@flarum/tags/external root \"flarum.core.compat['common/utils/withAttr']\"","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/typeof.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/regenerator/index.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@flarum/tags/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@flarum/tags/webpack/bootstrap","webpack://@flarum/tags/webpack/runtime/compat get default export","webpack://@flarum/tags/webpack/runtime/define property getters","webpack://@flarum/tags/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/tags/webpack/runtime/make namespace object","webpack://@flarum/tags/./admin.ts"],"sourcesContent":["import { extend } from 'flarum/common/extend';\nimport PermissionGrid from 'flarum/admin/components/PermissionGrid';\nimport SettingDropdown from 'flarum/admin/components/SettingDropdown';\n\nexport default function () {\n extend(PermissionGrid.prototype, 'startItems', (items) => {\n items.add(\n 'allowTagChange',\n {\n icon: 'fas fa-tag',\n label: app.translator.trans('flarum-tags.admin.permissions.allow_edit_tags_label'),\n setting: () => {\n const minutes = parseInt(app.data.settings.allow_tag_change, 10);\n\n return SettingDropdown.component({\n defaultLabel: minutes\n ? app.translator.trans('core.admin.permissions_controls.allow_some_minutes_button', { count: minutes })\n : app.translator.trans('core.admin.permissions_controls.allow_indefinitely_button'),\n key: 'allow_tag_change',\n options: [\n { value: '-1', label: app.translator.trans('core.admin.permissions_controls.allow_indefinitely_button') },\n { value: '10', label: app.translator.trans('core.admin.permissions_controls.allow_ten_minutes_button') },\n { value: 'reply', label: app.translator.trans('core.admin.permissions_controls.allow_until_reply_button') },\n ],\n });\n },\n },\n 90\n );\n });\n}\n","export default function () {\n app.extensionData\n .for('flarum-tags')\n .registerPermission(\n {\n icon: 'fas fa-tag',\n label: app.translator.trans('flarum-tags.admin.permissions.tag_discussions_label'),\n permission: 'discussion.tag',\n },\n 'moderate',\n 95\n )\n .registerPermission(\n {\n icon: 'fas fa-tags',\n label: app.translator.trans('flarum-tags.admin.permissions.bypass_tag_counts_label'),\n permission: 'bypassTagCounts',\n },\n 'start',\n 89\n );\n}\n","import { extend } from 'flarum/common/extend';\nimport AdminPage from 'flarum/admin/components/AdminPage';\nimport SelectTagsSettingComponent from './components/SelectTagsSettingComponent';\n\nexport default function () {\n extend(AdminPage.prototype, 'customSettingComponents', function (items) {\n items.add('flarum-tags.select-tags', (attrs) => {\n return ;\n });\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport BasicsPage from 'flarum/admin/components/BasicsPage';\n\nexport default function () {\n extend(BasicsPage.prototype, 'homePageItems', (items) => {\n items.add('tags', {\n path: '/tags',\n label: app.translator.trans('flarum-tags.admin.basics.tags_label'),\n });\n });\n}\n","import app from 'flarum/admin/app';\nimport { extend, override } from 'flarum/common/extend';\nimport PermissionGrid from 'flarum/admin/components/PermissionGrid';\nimport PermissionDropdown from 'flarum/admin/components/PermissionDropdown';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\n\nimport tagLabel from '../common/helpers/tagLabel';\nimport tagIcon from '../common/helpers/tagIcon';\nimport sortTags from '../common/utils/sortTags';\nimport Tag from '../common/models/Tag';\n\nexport default function () {\n extend(PermissionGrid.prototype, 'oninit', function () {\n this.loading = true;\n });\n\n extend(PermissionGrid.prototype, 'oncreate', function () {\n app.tagList.load().then(() => {\n this.loading = false;\n\n m.redraw();\n });\n });\n\n override(PermissionGrid.prototype, 'view', function (original, vnode) {\n if (this.loading) {\n return ;\n }\n\n return original(vnode);\n });\n\n override(app, 'getRequiredPermissions', (original, permission) => {\n const tagPrefix = permission.match(/^tag\\d+\\./);\n\n if (tagPrefix) {\n const globalPermission = permission.substr(tagPrefix[0].length);\n\n const required = original(globalPermission);\n\n return required.map((required) => tagPrefix[0] + required);\n }\n\n return original(permission);\n });\n\n extend(PermissionGrid.prototype, 'scopeItems', (items) => {\n sortTags(app.store.all('tags'))\n .filter((tag) => tag.isRestricted())\n .forEach((tag) =>\n items.add('tag' + tag.id(), {\n label: tagLabel(tag),\n onremove: () => tag.save({ isRestricted: false }),\n render: (item) => {\n if ('setting' in item) return '';\n\n if (\n item.permission === 'viewForum' ||\n item.permission === 'startDiscussion' ||\n (item.permission && item.permission.indexOf('discussion.') === 0 && item.tagScoped !== false) ||\n item.tagScoped\n ) {\n return PermissionDropdown.component({\n permission: 'tag' + tag.id() + '.' + item.permission,\n allowGuest: item.allowGuest,\n });\n }\n\n return '';\n },\n })\n );\n });\n\n extend(PermissionGrid.prototype, 'scopeControlItems', (items) => {\n const tags = sortTags(app.store.all('tags').filter((tag) => !tag.isRestricted()));\n\n if (tags.length) {\n items.add(\n 'tag',\n \n {tags.map((tag) => (\n \n ))}\n \n );\n }\n });\n}\n","import compat from '../common/compat';\n\nimport addTagsHomePageOption from './addTagsHomePageOption';\nimport addTagChangePermission from './addTagChangePermission';\nimport TagsPage from './components/TagsPage';\nimport EditTagModal from './components/EditTagModal';\nimport addTagPermission from './addTagPermission';\nimport addTagsPermissionScope from './addTagsPermissionScope';\n\nexport default Object.assign(compat, {\n 'tags/addTagsHomePageOption': addTagsHomePageOption,\n 'tags/addTagChangePermission': addTagChangePermission,\n 'tags/components/TagsPage': TagsPage,\n 'tags/components/EditTagModal': EditTagModal,\n 'tags/addTagPermission': addTagPermission,\n 'tags/addTagsPermissionScope': addTagsPermissionScope,\n});\n","import app from 'flarum/admin/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport Button from 'flarum/common/components/Button';\nimport ColorPreviewInput from 'flarum/common/components/ColorPreviewInput';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport { slug } from 'flarum/common/utils/string';\nimport Stream from 'flarum/common/utils/Stream';\n\nimport tagLabel from '../../common/helpers/tagLabel';\nimport type Mithril from 'mithril';\nimport type Tag from '../../common/models/Tag';\nimport extractText from 'flarum/common/utils/extractText';\nimport { ModelIdentifier } from 'flarum/common/Model';\n\nexport interface EditTagModalAttrs extends IInternalModalAttrs {\n primary?: boolean;\n model?: Tag;\n}\n\n/**\n * The `EditTagModal` component shows a modal dialog which allows the user\n * to create or edit a tag.\n */\nexport default class EditTagModal extends Modal {\n tag!: Tag;\n\n name!: Stream;\n slug!: Stream;\n description!: Stream;\n color!: Stream;\n icon!: Stream;\n isHidden!: Stream;\n primary!: Stream;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.tag = this.attrs.model || app.store.createRecord('tags');\n\n this.name = Stream(this.tag.name() || '');\n this.slug = Stream(this.tag.slug() || '');\n this.description = Stream(this.tag.description() || '');\n this.color = Stream(this.tag.color() || '');\n this.icon = Stream(this.tag.icon() || '');\n this.isHidden = Stream(this.tag.isHidden() || false);\n this.primary = Stream(this.attrs.primary || false);\n }\n\n className() {\n return 'EditTagModal Modal--small';\n }\n\n title() {\n return this.name()\n ? tagLabel(app.store.createRecord('tags', { attributes: this.submitData() }))\n : app.translator.trans('flarum-tags.admin.edit_tag.title');\n }\n\n content() {\n return (\n
,\n -10\n );\n\n return items;\n }\n\n submitData() {\n return {\n name: this.name(),\n slug: this.slug(),\n description: this.description(),\n color: this.color(),\n icon: this.icon(),\n isHidden: this.isHidden(),\n primary: this.primary(),\n };\n }\n\n onsubmit(e: SubmitEvent) {\n e.preventDefault();\n\n this.loading = true;\n\n // Errors aren't passed to the modal onerror handler here.\n // This is done for better error visibility on smaller screen heights.\n this.tag.save(this.submitData()).then(\n () => this.hide(),\n () => (this.loading = false)\n );\n }\n\n delete() {\n if (confirm(extractText(app.translator.trans('flarum-tags.admin.edit_tag.delete_tag_confirmation')))) {\n const children = app.store.all('tags').filter((tag) => tag.parent() === this.tag);\n\n this.tag.delete().then(() => {\n children.forEach((tag) =>\n tag.pushData({\n attributes: { isChild: false },\n // @deprecated. Temporary hack for type safety, remove before v1.3.\n relationships: { parent: null as any as [] },\n })\n );\n m.redraw();\n });\n\n this.hide();\n }\n }\n}\n","import app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport TagSelectionModal from '../../common/components/TagSelectionModal';\nimport tagsLabel from '../../common/helpers/tagsLabel';\n\nimport type { CommonSettingsItemOptions } from 'flarum/admin/components/AdminPage';\nimport type Stream from 'flarum/common/utils/Stream';\nimport type { ITagSelectionModalAttrs } from '../../common/components/TagSelectionModal';\nimport type Tag from '../../common/models/Tag';\n\nexport interface SelectTagsSettingComponentOptions extends CommonSettingsItemOptions {\n type: 'flarum-tags.select-tags';\n options?: ITagSelectionModalAttrs;\n}\n\nexport interface SelectTagsSettingComponentAttrs extends SelectTagsSettingComponentOptions {\n settingValue: Stream;\n}\n\nexport default class SelectTagsSettingComponent<\n CustomAttrs extends SelectTagsSettingComponentAttrs = SelectTagsSettingComponentAttrs\n> extends Component {\n protected tags: Tag[] = [];\n protected loaded = false;\n\n view() {\n const value = JSON.parse(this.attrs.settingValue() || '[]');\n\n if (!this.loaded) {\n app.tagList.load(['parent']).then((tags) => {\n this.tags = tags.filter((tag) => value.includes(tag.id()));\n this.loaded = true;\n m.redraw();\n });\n }\n\n return (\n
\n \n {this.attrs.help &&
{this.attrs.help}
}\n {!this.loaded ? (\n \n ) : (\n \n )}\n
\n );\n }\n}\n","import sortable from 'sortablejs';\n\nimport app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\nimport Button from 'flarum/common/components/Button';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport withAttr from 'flarum/common/utils/withAttr';\n\nimport EditTagModal from './EditTagModal';\nimport tagIcon from '../../common/helpers/tagIcon';\nimport sortTags from '../../common/utils/sortTags';\n\nfunction tagItem(tag) {\n return (\n
\n );\n}\n\nexport default class TagsPage extends ExtensionPage {\n oninit(vnode) {\n super.oninit(vnode);\n\n // A regular redraw won't work here, because sortable has mucked around\n // with the DOM which will confuse Mithril's diffing algorithm. Instead\n // we force a full reconstruction of the DOM by changing the key, which\n // makes mithril completely re-render the component on redraw.\n this.forcedRefreshKey = 0;\n\n this.loading = true;\n\n app.tagList.load(['parent']).then(() => {\n this.loading = false;\n\n m.redraw();\n });\n }\n\n content() {\n if (this.loading) {\n return ;\n }\n\n const minPrimaryTags = this.setting('flarum-tags.min_primary_tags', 0);\n const maxPrimaryTags = this.setting('flarum-tags.max_primary_tags', 0);\n\n const minSecondaryTags = this.setting('flarum-tags.min_secondary_tags', 0);\n const maxSecondaryTags = this.setting('flarum-tags.max_secondary_tags', 0);\n\n const tags = sortTags(app.store.all('tags').filter((tag) => !tag.parent()));\n\n return (\n
\n );\n }\n\n onListOnCreate(vnode) {\n this.$('.TagList')\n .get()\n .map((e) => {\n sortable.create(e, {\n group: 'tags',\n delay: 50,\n delayOnTouchOnly: true,\n touchStartThreshold: 5,\n animation: 150,\n swapThreshold: 0.65,\n dragClass: 'sortable-dragging',\n ghostClass: 'sortable-placeholder',\n onSort: (e) => this.onSortUpdate(e),\n });\n });\n }\n\n setMinTags(minTags, maxTags, value) {\n minTags(value);\n maxTags(Math.max(value, maxTags()));\n }\n\n onSortUpdate(e) {\n // If we've moved a tag from 'primary' to 'secondary', then we'll update\n // its attributes in our local store so that when we redraw the change\n // will be made.\n if (e.from instanceof HTMLOListElement && e.to instanceof HTMLUListElement) {\n app.store.getById('tags', e.item.getAttribute('data-id')).pushData({\n attributes: {\n position: null,\n isChild: false,\n },\n relationships: { parent: null },\n });\n }\n\n // Construct an array of primary tag IDs and their children, in the same\n // order that they have been arranged in.\n const order = this.$('.TagList--primary > li')\n .map(function () {\n return {\n id: $(this).data('id'),\n children: $(this)\n .find('li')\n .map(function () {\n return $(this).data('id');\n })\n .get(),\n };\n })\n .get();\n\n // Now that we have an accurate representation of the order which the\n // primary tags are in, we will update the tag attributes in our local\n // store to reflect this order.\n order.forEach((tag, i) => {\n const parent = app.store.getById('tags', tag.id);\n parent.pushData({\n attributes: {\n position: i,\n isChild: false,\n },\n relationships: { parent: null },\n });\n\n tag.children.forEach((child, j) => {\n app.store.getById('tags', child).pushData({\n attributes: {\n position: j,\n isChild: true,\n },\n relationships: { parent },\n });\n });\n });\n\n app.request({\n url: app.forum.attribute('apiUrl') + '/tags/order',\n method: 'POST',\n body: { order },\n });\n\n this.forcedRefreshKey++;\n m.redraw();\n }\n}\n","import app from 'flarum/admin/app';\nimport Tag from '../common/models/Tag';\nimport addTagsPermissionScope from './addTagsPermissionScope';\nimport addTagPermission from './addTagPermission';\nimport addTagsHomePageOption from './addTagsHomePageOption';\nimport addTagChangePermission from './addTagChangePermission';\nimport TagsPage from './components/TagsPage';\nimport TagListState from '../common/states/TagListState';\n\napp.initializers.add('flarum-tags', () => {\n app.store.models.tags = Tag;\n\n app.tagList = new TagListState();\n\n app.extensionData.for('flarum-tags').registerPage(TagsPage);\n\n addTagsPermissionScope();\n addTagPermission();\n addTagsHomePageOption();\n addTagChangePermission();\n addTagSelectionSettingComponent();\n});\n\n// Expose compat API\nimport tagsCompat from './compat';\nimport { compat } from '@flarum/core/admin';\nimport addTagSelectionSettingComponent from './addTagSelectionSettingComponent';\n\nObject.assign(compat, tagsCompat);\n","import sortTags from './utils/sortTags';\nimport Tag from './models/Tag';\nimport tagsLabel from './helpers/tagsLabel';\nimport tagIcon from './helpers/tagIcon';\nimport tagLabel from './helpers/tagLabel';\nimport TagSelectionModal from './components/TagSelectionModal';\nimport TagListState from './states/TagListState';\n\nexport default {\n 'tags/utils/sortTags': sortTags,\n 'tags/models/Tag': Tag,\n 'tags/helpers/tagsLabel': tagsLabel,\n 'tags/helpers/tagIcon': tagIcon,\n 'tags/helpers/tagLabel': tagLabel,\n 'tags/components/TagSelectionModal': TagSelectionModal,\n 'tags/states/TagListState': TagListState,\n};\n","import app from 'flarum/common/app';\nimport Button from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\nimport extractText from 'flarum/common/utils/extractText';\nimport highlight from 'flarum/common/helpers/highlight';\nimport KeyboardNavigatable from 'flarum/common/utils/KeyboardNavigatable';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Modal from 'flarum/common/components/Modal';\nimport Stream from 'flarum/common/utils/Stream';\n\nimport sortTags from '../utils/sortTags';\nimport tagLabel from '../helpers/tagLabel';\nimport tagIcon from '../helpers/tagIcon';\nimport ToggleButton from '../../forum/components/ToggleButton';\n\nimport type Tag from '../models/Tag';\nimport type { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport type Mithril from 'mithril';\n\nexport interface ITagSelectionModalLimits {\n /** Whether to allow bypassing the limits set here. This will show a toggle button to bypass limits. */\n allowBypassing?: boolean;\n /** Maximum number of primary/secondary tags allowed. */\n max?: {\n total?: number;\n primary?: number;\n secondary?: number;\n };\n /** Minimum number of primary/secondary tags to be selected. */\n min?: {\n total?: number;\n primary?: number;\n secondary?: number;\n };\n}\n\nexport interface ITagSelectionModalAttrs extends IInternalModalAttrs {\n /** Custom modal className to use. */\n className?: string;\n /** Modal title, defaults to 'Choose Tags'. */\n title?: string;\n /** Initial tag selection value. */\n selectedTags?: Tag[];\n /** Limits set based on minimum and maximum number of primary/secondary tags that can be selected. */\n limits?: ITagSelectionModalLimits;\n /** Whether to allow resetting the value. Defaults to true. */\n allowResetting?: boolean;\n /** Whether to require the parent tag of a selected tag to be selected as well. */\n requireParentTag?: boolean;\n /** Filter tags that can be selected. */\n selectableTags?: (tags: Tag[]) => Tag[];\n /** Whether a tag can be selected. */\n canSelect: (tag: Tag) => boolean;\n /** Callback for when a tag is selected. */\n onSelect?: (tag: Tag, selected: Tag[]) => void;\n /** Callback for when a tag is deselected. */\n onDeselect?: (tag: Tag, selected: Tag[]) => void;\n /** Callback for when the selection is submitted. */\n onsubmit?: (selected: Tag[]) => void;\n}\n\nexport type ITagSelectionModalState = undefined;\n\nexport default class TagSelectionModal<\n CustomAttrs extends ITagSelectionModalAttrs = ITagSelectionModalAttrs,\n CustomState extends ITagSelectionModalState = ITagSelectionModalState\n> extends Modal {\n protected loading = true;\n protected tags!: Tag[];\n protected selected: Tag[] = [];\n protected bypassReqs: boolean = false;\n\n protected filter = Stream('');\n protected focused = false;\n protected navigator = new KeyboardNavigatable();\n protected indexTag?: Tag;\n\n static initAttrs(attrs: ITagSelectionModalAttrs) {\n super.initAttrs(attrs);\n\n // Default values for optional attributes.\n attrs.title ||= extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.title'));\n attrs.canSelect ||= () => true;\n attrs.allowResetting ??= true;\n attrs.limits = {\n min: {\n total: attrs.limits?.min?.total ?? -Infinity,\n primary: attrs.limits?.min?.primary ?? -Infinity,\n secondary: attrs.limits?.min?.secondary ?? -Infinity,\n },\n max: {\n total: attrs.limits?.max?.total ?? Infinity,\n primary: attrs.limits?.max?.primary ?? Infinity,\n secondary: attrs.limits?.max?.secondary ?? Infinity,\n },\n };\n\n // Prevent illogical limits from being provided.\n catchInvalidLimits(attrs.limits);\n }\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.navigator\n .onUp(() => this.setIndex(this.getCurrentNumericIndex() - 1, true))\n .onDown(() => this.setIndex(this.getCurrentNumericIndex() + 1, true))\n .onSelect(this.select.bind(this))\n .onRemove(() => this.selected.splice(this.selected.length - 1, 1));\n\n app.tagList.load(['parent']).then((tags) => {\n this.loading = false;\n\n if (this.attrs.selectableTags) {\n tags = this.attrs.selectableTags(tags);\n }\n\n this.tags = sortTags(tags);\n\n if (this.attrs.selectedTags) {\n this.attrs.selectedTags.map(this.addTag.bind(this));\n }\n\n this.indexTag = tags[0];\n\n m.redraw();\n });\n }\n\n className() {\n return classList('TagSelectionModal', this.attrs.className);\n }\n\n title() {\n return this.attrs.title;\n }\n\n content() {\n if (this.loading || !this.tags) {\n return ;\n }\n\n const filter = this.filter().toLowerCase();\n const primaryCount = this.primaryCount();\n const secondaryCount = this.secondaryCount();\n const tags = this.getFilteredTags();\n\n const inputWidth = Math.max(extractText(this.getInstruction(primaryCount, secondaryCount)).length, this.filter().length);\n\n return [\n
\n );\n }\n\n oncreate(vnode) {\n super.oncreate(vnode);\n\n app.setTitle(app.translator.trans('flarum-tags.forum.all_tags.meta_title_text'));\n app.setTitleCount(0);\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/EventPost'];","import extract from 'flarum/common/utils/extract';\nimport tagLabel from './tagLabel';\nimport sortTags from '../utils/sortTags';\n\nexport default function tagsLabel(tags, attrs = {}) {\n const children = [];\n const link = extract(attrs, 'link');\n\n attrs.className = 'TagsLabel ' + (attrs.className || '');\n\n if (tags) {\n sortTags(tags).forEach((tag) => {\n if (tag || tags.length === 1) {\n children.push(tagLabel(tag, { link }));\n }\n });\n } else {\n children.push(tagLabel());\n }\n\n return {children};\n}\n","import EventPost from 'flarum/forum/components/EventPost';\nimport tagsLabel from '../../common/helpers/tagsLabel';\n\nexport default class DiscussionTaggedPost extends EventPost {\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n const oldTags = attrs.post.content()[0];\n const newTags = attrs.post.content()[1];\n\n function diffTags(tags1, tags2) {\n return tags1.filter((tag) => tags2.indexOf(tag) === -1).map((id) => app.store.getById('tags', id));\n }\n\n attrs.tagsAdded = diffTags(newTags, oldTags);\n attrs.tagsRemoved = diffTags(oldTags, newTags);\n }\n\n icon() {\n return 'fas fa-tag';\n }\n\n descriptionKey() {\n if (this.attrs.tagsAdded.length) {\n if (this.attrs.tagsRemoved.length) {\n return 'flarum-tags.forum.post_stream.added_and_removed_tags_text';\n }\n\n return 'flarum-tags.forum.post_stream.added_tags_text';\n }\n\n return 'flarum-tags.forum.post_stream.removed_tags_text';\n }\n\n descriptionData() {\n const data = {};\n\n if (this.attrs.tagsAdded.length) {\n data.tagsAdded = app.translator.trans('flarum-tags.forum.post_stream.tags_text', {\n tags: tagsLabel(this.attrs.tagsAdded, { link: true }),\n count: this.attrs.tagsAdded.length,\n });\n }\n\n if (this.attrs.tagsRemoved.length) {\n data.tagsRemoved = app.translator.trans('flarum-tags.forum.post_stream.tags_text', {\n tags: tagsLabel(this.attrs.tagsRemoved, { link: true }),\n count: this.attrs.tagsRemoved.length,\n });\n }\n\n return data;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Separator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","import Link from 'flarum/common/components/Link';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport classList from 'flarum/common/utils/classList';\nimport tagIcon from '../../common/helpers/tagIcon';\n\nexport default class TagLinkButton extends LinkButton {\n view(vnode) {\n const tag = this.attrs.model;\n const active = this.constructor.isActive(this.attrs);\n const description = tag && tag.description();\n const className = classList(['TagLinkButton', 'hasIcon', this.attrs.className, tag.isChild() && 'child']);\n\n return (\n \n {tagIcon(tag, { className: 'Button-icon' })}\n {tag ? tag.name() : app.translator.trans('flarum-tags.forum.index.untagged_link')}\n \n );\n }\n\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n const tag = attrs.model;\n\n attrs.params.tags = tag ? tag.slug() : 'untagged';\n attrs.route = app.route('tag', attrs.params);\n }\n}\n","import { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Separator from 'flarum/common/components/Separator';\nimport LinkButton from 'flarum/common/components/LinkButton';\n\nimport TagLinkButton from './components/TagLinkButton';\nimport TagsPage from './components/TagsPage';\nimport sortTags from '../common/utils/sortTags';\n\nexport default function () {\n // Add a link to the tags page, as well as a list of all the tags,\n // to the index page's sidebar.\n extend(IndexPage.prototype, 'navItems', function (items) {\n items.add(\n 'tags',\n \n {app.translator.trans('flarum-tags.forum.index.tags_link')}\n ,\n -10\n );\n\n if (app.current.matches(TagsPage)) return;\n\n items.add('separator', Separator.component(), -12);\n\n const params = app.search.stickyParams();\n const tags = app.store.all('tags');\n const currentTag = this.currentTag();\n\n const addTag = (tag) => {\n let active = currentTag === tag;\n\n if (!active && currentTag) {\n active = currentTag.parent() === tag;\n }\n\n // tag.name() is passed here as children even though it isn't used directly\n // because when we need to get the active child in SelectDropdown, we need to\n // use its children to populate the dropdown. The problem here is that `view`\n // on TagLinkButton is only called AFTER SelectDropdown, so no children are available\n // for SelectDropdown to use at the time.\n items.add('tag' + tag.id(), TagLinkButton.component({ model: tag, params, active }, tag?.name()), -14);\n };\n\n sortTags(tags)\n .filter(\n (tag) => tag.position() !== null && (!tag.isChild() || (currentTag && (tag.parent() === currentTag || tag.parent() === currentTag.parent())))\n )\n .forEach(addTag);\n\n const more = tags.filter((tag) => tag.position() === null).sort((a, b) => b.discussionCount() - a.discussionCount());\n\n more.splice(0, 3).forEach(addTag);\n\n if (more.length) {\n items.add('moreTags', {app.translator.trans('flarum-tags.forum.index.more_link')}, -16);\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/GlobalSearchState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","import Component from 'flarum/common/Component';\nimport tagIcon from '../../common/helpers/tagIcon';\n\nexport default class TagHero extends Component {\n view() {\n const tag = this.attrs.model;\n const color = tag.color();\n\n return (\n \n
\n \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport type Mithril from 'mithril';\nimport { extend, override } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport GlobalSearchState from 'flarum/forum/states/GlobalSearchState';\nimport classList from 'flarum/common/utils/classList';\n\nimport TagHero from './components/TagHero';\nimport Tag from '../common/models/Tag';\nimport { ComponentAttrs } from 'flarum/common/Component';\n\nconst findTag = (slug: string) => app.store.all('tags').find((tag) => tag.slug().localeCompare(slug, undefined, { sensitivity: 'base' }) === 0);\n\nexport default function () {\n IndexPage.prototype.currentTag = function () {\n if (this.currentActiveTag) {\n return this.currentActiveTag;\n }\n\n const slug = app.search.params().tags;\n let tag = null;\n\n if (slug) {\n tag = findTag(slug);\n }\n\n if ((slug && !tag) || (tag && !tag.isChild() && !tag.children())) {\n if (this.currentTagLoading) {\n return;\n }\n\n this.currentTagLoading = true;\n\n // Unlike the backend, no need to fetch parent.children because if we're on\n // a child tag page, then either:\n // - We loaded in that child tag (and its siblings) in the API document\n // - We first navigated to the current tag's parent, which would have loaded in the current tag's siblings.\n app.store\n .find('tags', slug, { include: 'children,children.parent,parent,state' })\n .then(() => {\n this.currentActiveTag = findTag(slug);\n\n m.redraw();\n })\n .finally(() => {\n this.currentTagLoading = false;\n });\n }\n\n if (tag) {\n this.currentActiveTag = tag;\n return this.currentActiveTag;\n }\n\n return;\n };\n\n // If currently viewing a tag, insert a tag hero at the top of the view.\n override(IndexPage.prototype, 'hero', function (original) {\n const tag = this.currentTag();\n\n if (tag) return ;\n\n return original();\n });\n\n extend(IndexPage.prototype, 'view', function (vdom: Mithril.Vnode) {\n const tag = this.currentTag();\n\n if (tag) vdom.attrs.className += ' IndexPage--tag' + tag.id();\n });\n\n extend(IndexPage.prototype, 'setTitle', function () {\n const tag = this.currentTag();\n\n if (tag) {\n app.setTitle(tag.name());\n }\n });\n\n // If currently viewing a tag, restyle the 'new discussion' button to use\n // the tag's color, and disable if the user isn't allowed to edit.\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (tag) {\n const color = tag.color();\n const canStartDiscussion = tag.canStartDiscussion() || !app.session.user;\n const newDiscussion = items.get('newDiscussion') as Mithril.Vnode;\n\n if (color) {\n newDiscussion.attrs.className = classList([newDiscussion.attrs.className, 'Button--tagColored']);\n newDiscussion.attrs.style = { '--color': color };\n }\n\n newDiscussion.attrs.disabled = !canStartDiscussion;\n newDiscussion.children = app.translator.trans(\n canStartDiscussion ? 'core.forum.index.start_discussion_button' : 'core.forum.index.cannot_start_discussion_button'\n );\n }\n });\n\n // Add a parameter for the global search state to pass on to the\n // DiscussionListState that will let us filter discussions by tag.\n extend(GlobalSearchState.prototype, 'params', function (params) {\n params.tags = m.route.param('tags');\n });\n\n // Translate that parameter into a gambit appended to the search query.\n extend(DiscussionListState.prototype, 'requestParams', function (this: DiscussionListState, params) {\n if (typeof params.include === 'string') {\n params.include = [params.include];\n } else {\n params.include?.push('tags', 'tags.parent');\n }\n\n if (this.params.tags) {\n const filter = params.filter ?? {};\n filter.tag = this.params.tags;\n // TODO: replace this with a more robust system.\n const q = filter.q;\n if (q) {\n filter.q = `${q} tag:${this.params.tags}`;\n }\n params.filter = filter;\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionListItem'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionHero'];","import { extend } from 'flarum/common/extend';\nimport DiscussionListItem from 'flarum/forum/components/DiscussionListItem';\nimport DiscussionHero from 'flarum/forum/components/DiscussionHero';\n\nimport tagsLabel from '../common/helpers/tagsLabel';\nimport sortTags from '../common/utils/sortTags';\n\nexport default function () {\n // Add tag labels to each discussion in the discussion list.\n extend(DiscussionListItem.prototype, 'infoItems', function (items) {\n const tags = this.attrs.discussion.tags();\n\n if (tags && tags.length) {\n items.add('tags', tagsLabel(tags), 10);\n }\n });\n\n // Restyle a discussion's hero to use its first tag's color.\n extend(DiscussionHero.prototype, 'view', function (view) {\n const tags = sortTags(this.attrs.discussion.tags());\n\n if (tags && tags.length) {\n const color = tags[0].color();\n if (color) {\n view.attrs.style = { '--hero-bg': color };\n view.attrs.className += ' DiscussionHero--colored';\n }\n }\n });\n\n // Add a list of a discussion's tags to the discussion hero, displayed\n // before the title. Put the title on its own line.\n extend(DiscussionHero.prototype, 'items', function (items) {\n const tags = this.attrs.discussion.tags();\n\n if (tags && tags.length) {\n items.add('tags', tagsLabel(tags, { link: true }), 5);\n }\n });\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/DiscussionControls'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","export default function getSelectableTags(discussion) {\n let tags = app.store.all('tags');\n\n if (discussion) {\n tags = tags.filter((tag) => tag.canAddToDiscussion() || discussion.tags().indexOf(tag) !== -1);\n } else {\n tags = tags.filter((tag) => tag.canStartDiscussion());\n }\n\n return tags;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/KeyboardNavigatable'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","import Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\n\n/**\n * @TODO move to core\n */\nexport default class ToggleButton extends Component {\n view(vnode) {\n const { className, isToggled, ...attrs } = this.attrs;\n const icon = isToggled ? 'far fa-check-circle' : 'far fa-circle';\n\n return (\n \n );\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import app from 'flarum/common/app';\nimport Button from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\nimport extractText from 'flarum/common/utils/extractText';\nimport highlight from 'flarum/common/helpers/highlight';\nimport KeyboardNavigatable from 'flarum/common/utils/KeyboardNavigatable';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Modal from 'flarum/common/components/Modal';\nimport Stream from 'flarum/common/utils/Stream';\n\nimport sortTags from '../utils/sortTags';\nimport tagLabel from '../helpers/tagLabel';\nimport tagIcon from '../helpers/tagIcon';\nimport ToggleButton from '../../forum/components/ToggleButton';\n\nimport type Tag from '../models/Tag';\nimport type { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport type Mithril from 'mithril';\n\nexport interface ITagSelectionModalLimits {\n /** Whether to allow bypassing the limits set here. This will show a toggle button to bypass limits. */\n allowBypassing?: boolean;\n /** Maximum number of primary/secondary tags allowed. */\n max?: {\n total?: number;\n primary?: number;\n secondary?: number;\n };\n /** Minimum number of primary/secondary tags to be selected. */\n min?: {\n total?: number;\n primary?: number;\n secondary?: number;\n };\n}\n\nexport interface ITagSelectionModalAttrs extends IInternalModalAttrs {\n /** Custom modal className to use. */\n className?: string;\n /** Modal title, defaults to 'Choose Tags'. */\n title?: string;\n /** Initial tag selection value. */\n selectedTags?: Tag[];\n /** Limits set based on minimum and maximum number of primary/secondary tags that can be selected. */\n limits?: ITagSelectionModalLimits;\n /** Whether to allow resetting the value. Defaults to true. */\n allowResetting?: boolean;\n /** Whether to require the parent tag of a selected tag to be selected as well. */\n requireParentTag?: boolean;\n /** Filter tags that can be selected. */\n selectableTags?: (tags: Tag[]) => Tag[];\n /** Whether a tag can be selected. */\n canSelect: (tag: Tag) => boolean;\n /** Callback for when a tag is selected. */\n onSelect?: (tag: Tag, selected: Tag[]) => void;\n /** Callback for when a tag is deselected. */\n onDeselect?: (tag: Tag, selected: Tag[]) => void;\n /** Callback for when the selection is submitted. */\n onsubmit?: (selected: Tag[]) => void;\n}\n\nexport type ITagSelectionModalState = undefined;\n\nexport default class TagSelectionModal<\n CustomAttrs extends ITagSelectionModalAttrs = ITagSelectionModalAttrs,\n CustomState extends ITagSelectionModalState = ITagSelectionModalState\n> extends Modal {\n protected loading = true;\n protected tags!: Tag[];\n protected selected: Tag[] = [];\n protected bypassReqs: boolean = false;\n\n protected filter = Stream('');\n protected focused = false;\n protected navigator = new KeyboardNavigatable();\n protected indexTag?: Tag;\n\n static initAttrs(attrs: ITagSelectionModalAttrs) {\n super.initAttrs(attrs);\n\n // Default values for optional attributes.\n attrs.title ||= extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.title'));\n attrs.canSelect ||= () => true;\n attrs.allowResetting ??= true;\n attrs.limits = {\n min: {\n total: attrs.limits?.min?.total ?? -Infinity,\n primary: attrs.limits?.min?.primary ?? -Infinity,\n secondary: attrs.limits?.min?.secondary ?? -Infinity,\n },\n max: {\n total: attrs.limits?.max?.total ?? Infinity,\n primary: attrs.limits?.max?.primary ?? Infinity,\n secondary: attrs.limits?.max?.secondary ?? Infinity,\n },\n };\n\n // Prevent illogical limits from being provided.\n catchInvalidLimits(attrs.limits);\n }\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.navigator\n .onUp(() => this.setIndex(this.getCurrentNumericIndex() - 1, true))\n .onDown(() => this.setIndex(this.getCurrentNumericIndex() + 1, true))\n .onSelect(this.select.bind(this))\n .onRemove(() => this.selected.splice(this.selected.length - 1, 1));\n\n app.tagList.load(['parent']).then((tags) => {\n this.loading = false;\n\n if (this.attrs.selectableTags) {\n tags = this.attrs.selectableTags(tags);\n }\n\n this.tags = sortTags(tags);\n\n if (this.attrs.selectedTags) {\n this.attrs.selectedTags.map(this.addTag.bind(this));\n }\n\n this.indexTag = tags[0];\n\n m.redraw();\n });\n }\n\n className() {\n return classList('TagSelectionModal', this.attrs.className);\n }\n\n title() {\n return this.attrs.title;\n }\n\n content() {\n if (this.loading || !this.tags) {\n return ;\n }\n\n const filter = this.filter().toLowerCase();\n const primaryCount = this.primaryCount();\n const secondaryCount = this.secondaryCount();\n const tags = this.getFilteredTags();\n\n const inputWidth = Math.max(extractText(this.getInstruction(primaryCount, secondaryCount)).length, this.filter().length);\n\n return [\n
,\n ];\n }\n\n /**\n * Filters the available tags on every state change.\n */\n private getFilteredTags(): Tag[] {\n const filter = this.filter().toLowerCase();\n const primaryCount = this.primaryCount();\n const secondaryCount = this.secondaryCount();\n let tags = this.tags;\n\n if (this.attrs.requireParentTag) {\n // Filter out all child tags whose parents have not been selected. This\n // makes it impossible to select a child if its parent hasn't been selected.\n tags = tags.filter((tag) => {\n const parent = tag.parent();\n return parent !== null && (parent === false || this.selected.includes(parent));\n });\n }\n\n if (!this.bypassReqs) {\n // If we reached the total maximum number of tags, we can't select anymore.\n if (this.selected.length >= this.attrs.limits!.max!.total!) {\n tags = tags.filter((tag) => this.selected.includes(tag));\n }\n // If the number of selected primary/secondary tags is at the maximum, then\n // we'll filter out all other tags of that type.\n else {\n if (primaryCount >= this.attrs.limits!.max!.primary!) {\n tags = tags.filter((tag) => !tag.isPrimary() || this.selected.includes(tag));\n }\n if (secondaryCount >= this.attrs.limits!.max!.secondary!) {\n tags = tags.filter((tag) => tag.isPrimary() || this.selected.includes(tag));\n }\n }\n }\n\n // If the user has entered text in the filter input, then filter by tags\n // whose name matches what they've entered.\n if (filter) {\n tags = tags.filter((tag) => tag.name().substring(0, filter.length).toLowerCase() === filter);\n }\n\n if (!this.indexTag || !tags.includes(this.indexTag)) this.indexTag = tags[0];\n\n return tags;\n }\n\n /**\n * Counts the number of selected primary tags.\n */\n protected primaryCount(): number {\n return this.selected.filter((tag) => tag.isPrimary()).length;\n }\n\n /**\n * Counts the number of selected secondary tags.\n */\n protected secondaryCount(): number {\n return this.selected.filter((tag) => !tag.isPrimary()).length;\n }\n\n /**\n * Validates the number of selected primary/secondary tags against the set min max limits.\n */\n protected meetsRequirements(primaryCount: number, secondaryCount: number) {\n if (this.bypassReqs || (this.attrs.allowResetting && this.selected.length === 0)) {\n return true;\n }\n\n if (this.selected.length < this.attrs.limits!.min!.total!) {\n return false;\n }\n\n return primaryCount >= this.attrs.limits!.min!.primary! && secondaryCount >= this.attrs.limits!.min!.secondary!;\n }\n\n /**\n * Add the given tag to the list of selected tags.\n */\n protected addTag(tag: Tag | undefined) {\n if (!tag || !this.attrs.canSelect(tag)) return;\n\n if (this.attrs.onSelect) {\n this.attrs.onSelect(tag, this.selected);\n }\n\n // If this tag has a parent, we'll also need to add the parent tag to the\n // selected list if it's not already in there.\n if (this.attrs.requireParentTag) {\n const parent = tag.parent();\n if (parent && !this.selected.includes(parent)) {\n this.selected.push(parent);\n }\n }\n\n if (!this.selected.includes(tag)) {\n this.selected.push(tag);\n }\n }\n\n /**\n * Remove the given tag from the list of selected tags.\n */\n protected removeTag(tag: Tag) {\n const index = this.selected.indexOf(tag);\n\n if (index !== -1) {\n this.selected.splice(index, 1);\n\n // Look through the list of selected tags for any tags which have the tag\n // we just removed as their parent. We'll need to remove them too.\n if (this.attrs.requireParentTag) {\n this.selected.filter((t) => t.parent() === tag).forEach(this.removeTag.bind(this));\n }\n\n if (this.attrs.onDeselect) {\n this.attrs.onDeselect(tag, this.selected);\n }\n }\n }\n\n protected toggleTag(tag: Tag) {\n // Won't happen, needed for type safety.\n if (!this.tags) return;\n\n if (this.selected.includes(tag)) {\n this.removeTag(tag);\n } else {\n this.addTag(tag);\n }\n\n if (this.filter()) {\n this.filter('');\n this.indexTag = this.tags[0];\n }\n\n this.onready();\n }\n\n /**\n * Gives human text instructions based on the current number of selected tags and set limits.\n */\n protected getInstruction(primaryCount: number, secondaryCount: number) {\n if (this.bypassReqs) {\n return '';\n }\n\n if (primaryCount < this.attrs.limits!.min!.primary!) {\n const remaining = this.attrs.limits!.min!.primary! - primaryCount;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_primary_placeholder', { count: remaining }));\n } else if (secondaryCount < this.attrs.limits!.min!.secondary!) {\n const remaining = this.attrs.limits!.min!.secondary! - secondaryCount;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_secondary_placeholder', { count: remaining }));\n } else if (this.selected.length < this.attrs.limits!.min!.total!) {\n const remaining = this.attrs.limits!.min!.total! - this.selected.length;\n return extractText(app.translator.trans('flarum-tags.lib.tag_selection_modal.choose_tags_placeholder', { count: remaining }));\n }\n\n return '';\n }\n\n /**\n * Submit tag selection.\n */\n onsubmit(e: SubmitEvent) {\n e.preventDefault();\n\n if (this.attrs.onsubmit) this.attrs.onsubmit(this.selected);\n\n this.hide();\n }\n\n protected select(e: KeyboardEvent) {\n // Ctrl + Enter submits the selection, just Enter completes the current entry\n if (e.metaKey || e.ctrlKey || (this.indexTag && this.selected.includes(this.indexTag))) {\n if (this.selected.length) {\n // The DOM submit method doesn't emit a `submit event, so we\n // simulate a manual submission so our `onsubmit` logic is run.\n this.$('button[type=\"submit\"]').click();\n }\n } else if (this.indexTag) {\n this.getItem(this.indexTag)[0].dispatchEvent(new Event('click'));\n }\n }\n\n protected selectableItems() {\n return this.$('.TagSelectionModal-list > li');\n }\n\n protected getCurrentNumericIndex() {\n if (!this.indexTag) return -1;\n\n return this.selectableItems().index(this.getItem(this.indexTag));\n }\n\n protected getItem(selectedTag: Tag) {\n return this.selectableItems().filter(`[data-index=\"${selectedTag.id()}\"]`);\n }\n\n protected setIndex(index: number, scrollToItem: boolean) {\n const $items = this.selectableItems();\n const $dropdown = $items.parent();\n\n if (index < 0) {\n index = $items.length - 1;\n } else if (index >= $items.length) {\n index = 0;\n }\n\n const $item = $items.eq(index);\n\n this.indexTag = app.store.getById('tags', $item.attr('data-index')!);\n\n m.redraw();\n\n if (scrollToItem && this.indexTag) {\n const dropdownScroll = $dropdown.scrollTop()!;\n const dropdownTop = $dropdown.offset()!.top;\n const dropdownBottom = dropdownTop + $dropdown.outerHeight()!;\n const itemTop = $item.offset()!.top;\n const itemBottom = itemTop + $item.outerHeight()!;\n\n let scrollTop;\n if (itemTop < dropdownTop) {\n scrollTop = dropdownScroll - dropdownTop + itemTop - parseInt($dropdown.css('padding-top'), 10);\n } else if (itemBottom > dropdownBottom) {\n scrollTop = dropdownScroll - dropdownBottom + itemBottom + parseInt($dropdown.css('padding-bottom'), 10);\n }\n\n if (typeof scrollTop !== 'undefined') {\n $dropdown.stop(true).animate({ scrollTop }, 100);\n }\n }\n }\n}\n\n/**\n * Catch invalid limits provided to the tag selection modal.\n */\nfunction catchInvalidLimits(limits: ITagSelectionModalLimits) {\n if (limits.min!.primary! > limits.max!.primary!) {\n throw new Error('The minimum number of primary tags allowed cannot be more than the maximum number of primary tags allowed.');\n }\n\n if (limits.min!.secondary! > limits.max!.secondary!) {\n throw new Error('The minimum number of secondary tags allowed cannot be more than the maximum number of secondary tags allowed.');\n }\n\n if (limits.min!.total! > limits.max!.primary! + limits.max!.secondary!) {\n throw new Error('The minimum number of tags allowed cannot be more than the maximum number of primary and secondary tags allowed together.');\n }\n\n if (limits.max!.total! < limits.min!.primary! + limits.min!.secondary!) {\n throw new Error('The maximum number of tags allowed cannot be less than the minimum number of primary and secondary tags allowed together.');\n }\n\n if (limits.min!.total! > limits.max!.total!) {\n throw new Error('The minimum number of tags allowed cannot be more than the maximum number of tags allowed.');\n }\n}\n","import classList from 'flarum/common/utils/classList';\n\nexport default function tagIcon(tag, attrs = {}, settings = {}) {\n const hasIcon = tag && tag.icon();\n const { useColor = true } = settings;\n\n attrs.className = classList([attrs.className, 'icon', hasIcon ? tag.icon() : 'TagIcon']);\n\n if (tag && useColor) {\n attrs.style = attrs.style || {};\n attrs.style['--color'] = tag.color();\n\n if (hasIcon) {\n attrs.style.color = tag.color();\n }\n } else if (!tag) {\n attrs.className += ' untagged';\n }\n\n return hasIcon ? : ;\n}\n","import extract from 'flarum/common/utils/extract';\nimport Link from 'flarum/common/components/Link';\nimport tagIcon from './tagIcon';\n\nexport default function tagLabel(tag, attrs = {}) {\n attrs.style = attrs.style || {};\n attrs.className = 'TagLabel ' + (attrs.className || '');\n\n const link = extract(attrs, 'link');\n const tagText = tag ? tag.name() : app.translator.trans('flarum-tags.lib.deleted_tag_text');\n\n if (tag) {\n const color = tag.color();\n if (color) {\n attrs.style['--tag-bg'] = color;\n attrs.className += ' colored';\n }\n\n if (link) {\n attrs.title = tag.description() || '';\n attrs.href = app.route('tag', { tags: tag.slug() });\n }\n\n if (tag.isChild()) {\n attrs.className += ' TagLabel--child';\n }\n } else {\n attrs.className += ' untagged';\n }\n\n return m(\n link ? Link : 'span',\n attrs,\n \n {tag && tag.icon() && tagIcon(tag, {}, { useColor: false })} {tagText}\n \n );\n}\n","import extract from 'flarum/common/utils/extract';\nimport tagLabel from './tagLabel';\nimport sortTags from '../utils/sortTags';\n\nexport default function tagsLabel(tags, attrs = {}) {\n const children = [];\n const link = extract(attrs, 'link');\n\n attrs.className = 'TagsLabel ' + (attrs.className || '');\n\n if (tags) {\n sortTags(tags).forEach((tag) => {\n if (tag || tags.length === 1) {\n children.push(tagLabel(tag, { link }));\n }\n });\n } else {\n children.push(tagLabel());\n }\n\n return {children};\n}\n","import computed from 'flarum/common/utils/computed';\nimport Model from 'flarum/common/Model';\nimport type Discussion from 'flarum/common/models/Discussion';\n\nexport default class Tag extends Model {\n name() {\n return Model.attribute('name').call(this);\n }\n slug() {\n return Model.attribute('slug').call(this);\n }\n description() {\n return Model.attribute('description').call(this);\n }\n\n color() {\n return Model.attribute('color').call(this);\n }\n backgroundUrl() {\n return Model.attribute('backgroundUrl').call(this);\n }\n backgroundMode() {\n return Model.attribute('backgroundMode').call(this);\n }\n icon() {\n return Model.attribute('icon').call(this);\n }\n\n position() {\n return Model.attribute('position').call(this);\n }\n parent() {\n return Model.hasOne('parent').call(this);\n }\n children() {\n return Model.hasMany('children').call(this);\n }\n defaultSort() {\n return Model.attribute('defaultSort').call(this);\n }\n isChild() {\n return Model.attribute('isChild').call(this);\n }\n isHidden() {\n return Model.attribute('isHidden').call(this);\n }\n\n discussionCount() {\n return Model.attribute('discussionCount').call(this);\n }\n lastPostedAt() {\n return Model.attribute('lastPostedAt', Model.transformDate).call(this);\n }\n lastPostedDiscussion() {\n return Model.hasOne('lastPostedDiscussion').call(this);\n }\n\n isRestricted() {\n return Model.attribute('isRestricted').call(this);\n }\n canStartDiscussion() {\n return Model.attribute('canStartDiscussion').call(this);\n }\n canAddToDiscussion() {\n return Model.attribute('canAddToDiscussion').call(this);\n }\n\n isPrimary() {\n return computed('position', 'parent', (position, parent) => position !== null && parent === false).call(this);\n }\n}\n","import app from 'flarum/common/app';\nimport type Tag from '../../common/models/Tag';\n\nexport default class TagListState {\n loadedIncludes = new Set();\n\n async load(includes: string[] = []): Promise {\n const unloadedIncludes = includes.filter((include) => !this.loadedIncludes.has(include));\n\n if (unloadedIncludes.length === 0) {\n return Promise.resolve(app.store.all('tags'));\n }\n\n return app.store.find('tags', { include: unloadedIncludes.join(',') }).then((val) => {\n unloadedIncludes.forEach((include) => this.loadedIncludes.add(include));\n return val;\n });\n }\n}\n","import Tag from '../models/Tag';\n\nexport default function sortTags(tags: Tag[]) {\n return tags.slice(0).sort((a, b) => {\n const aPos = a.position();\n const bPos = b.position();\n\n // If they're both secondary tags, sort them by their discussions count,\n // descending.\n if (aPos === null && bPos === null) return b.discussionCount() - a.discussionCount();\n\n // If just one is a secondary tag, then the primary tag should\n // come first.\n if (bPos === null) return -1;\n if (aPos === null) return 1;\n\n // If we've made it this far, we know they're both primary tags. So we'll\n // need to see if they have parents.\n const aParent = a.parent();\n const bParent = b.parent();\n\n // If they both have the same parent, then their positions are local,\n // so we can compare them directly.\n if (aParent === bParent) return aPos - bPos;\n // If they are both child tags, then we will compare the positions of their\n // parents.\n else if (aParent && bParent) return aParent.position()! - bParent.position()!;\n // If we are comparing a child tag with its parent, then we let the parent\n // come first. If we are comparing an unrelated parent/child, then we\n // compare both of the parents.\n else if (aParent) return aParent === b ? 1 : aParent.position()! - bPos;\n else if (bParent) return bParent === a ? -1 : aPos - bParent.position()!;\n\n return 0;\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport TextEditor from 'flarum/common/components/TextEditor';\nimport TextEditorButton from 'flarum/common/components/TextEditorButton';\nimport highlight from 'flarum/common/helpers/highlight';\nimport KeyboardNavigatable from 'flarum/common/utils/KeyboardNavigatable';\nimport { throttle } from 'flarum/common/utils/throttleDebounce';\nimport Badge from 'flarum/common/components/Badge';\n\nimport AutocompleteDropdown from './fragments/AutocompleteDropdown';\nimport TagMentionTextGenerator from './utils/TagMentionTextGenerator';\n\nconst throttledSearch = throttle(\n 250, // 250ms timeout\n function (typed, searched, returnedTags, returnedTagIds, dropdown, buildSuggestions) {\n const typedLower = typed.toLowerCase();\n if (!searched.includes(typedLower)) {\n app.store.find('tags', { filter: { q: typed }, page: { limit: 5 } }).then((results) => {\n results.forEach((u) => {\n if (!returnedTagIds.has(u.id())) {\n returnedTagIds.add(u.id());\n returnedTags.push(u);\n }\n });\n\n buildSuggestions();\n });\n\n searched.push(typedLower);\n }\n }\n);\n\nexport default function addComposerAutocomplete() {\n const $container = $('');\n const dropdown = new AutocompleteDropdown();\n\n extend(TextEditor.prototype, 'oncreate', function () {\n const $editor = this.$('.TextEditor-editor').wrap('');\n\n this.navigator = new KeyboardNavigatable();\n this.navigator\n .when(() => dropdown.active)\n .onUp(() => dropdown.navigate(-1))\n .onDown(() => dropdown.navigate(1))\n .onSelect(dropdown.complete.bind(dropdown))\n .onCancel(dropdown.hide.bind(dropdown))\n .bindTo($editor);\n\n $editor.after($container);\n });\n\n extend(TextEditor.prototype, 'buildEditorParams', function (params) {\n const searched = [];\n let relMentionStart;\n let absMentionStart;\n let typed;\n let matchTyped;\n\n const mentionTextGenerator = new TagMentionTextGenerator();\n\n // Store tags..\n const returnedTags = Array.from(app.store.all('tags'));\n const returnedTagIds = new Set(returnedTags.map((t) => t.id()));\n\n const applySuggestion = (replacement) => {\n this.attrs.composer.editor.replaceBeforeCursor(absMentionStart - 1, replacement + ' ');\n\n dropdown.hide();\n };\n\n params.inputListeners.push(() => {\n const selection = this.attrs.composer.editor.getSelectionRange();\n\n const cursor = selection[0];\n\n if (selection[1] - cursor > 0) return;\n\n // Search backwards from the cursor for an '#' symbol. If we find one,\n // we will want to show the autocomplete dropdown!\n const lastChunk = this.attrs.composer.editor.getLastNChars(30);\n absMentionStart = 0;\n for (let i = lastChunk.length - 1; i >= 0; i--) {\n const character = lastChunk.substr(i, 1);\n if (character === '#' && (i == 0 || /\\s/.test(lastChunk.substr(i - 1, 1)))) {\n relMentionStart = i + 1;\n absMentionStart = cursor - lastChunk.length + i + 1;\n break;\n }\n }\n\n dropdown.hide();\n dropdown.active = false;\n\n if (absMentionStart) {\n typed = lastChunk.substring(relMentionStart).toLowerCase();\n matchTyped = typed.match(/^[\"|“]((?:(?!\"#).)+)$/);\n typed = (matchTyped && matchTyped[1]) || typed;\n\n const makeTagSuggestion = function (tag, replacement, content, className = '') {\n let tagName = tag.name().toLowerCase();\n\n if (typed) {\n tagName = highlight(tagName, typed);\n }\n\n return (\n \n );\n };\n\n const tagMatches = function (tag) {\n const names = [tag.name()];\n\n return names.some((name) => name.toLowerCase().substr(0, typed.length) === typed);\n };\n\n const buildSuggestions = () => {\n const suggestions = [];\n\n // If the user has started to type a tag name, then suggest tags\n // matching that name.\n if (typed) {\n returnedTags.forEach((tag) => {\n if (!tagMatches(tag)) return;\n\n suggestions.push(makeTagSuggestion(tag, mentionTextGenerator.forTag(tag), '', 'MentionsDropdown-tag'));\n });\n }\n\n if (suggestions.length) {\n dropdown.items = suggestions;\n m.render($container[0], dropdown.render());\n\n dropdown.show();\n const coordinates = this.attrs.composer.editor.getCaretCoordinates(absMentionStart);\n const width = dropdown.$().outerWidth();\n const height = dropdown.$().outerHeight();\n const parent = dropdown.$().offsetParent();\n let left = coordinates.left;\n let top = coordinates.top + 15;\n\n // Keep the dropdown inside the editor.\n if (top + height > parent.height()) {\n top = coordinates.top - height - 15;\n }\n if (left + width > parent.width()) {\n left = parent.width() - width;\n }\n\n // Prevent the dropdown from going off screen on mobile\n top = Math.max(-(parent.offset().top - $(document).scrollTop()), top);\n left = Math.max(-parent.offset().left, left);\n\n dropdown.show(left, top);\n } else {\n dropdown.active = false;\n dropdown.hide();\n }\n };\n\n dropdown.active = true;\n\n buildSuggestions();\n\n dropdown.setIndex(0);\n dropdown.$().scrollTop(0);\n\n // Don't send API calls searching for users or tags until at least 2 characters have been typed.\n // This focuses the mention results on users and posts in the discussion.\n if (typed.length > 1) {\n throttledSearch(typed, searched, returnedTags, returnedTagIds, dropdown, buildSuggestions);\n }\n }\n });\n });\n\n extend(TextEditor.prototype, 'toolbarItems', function (items) {\n items.add(\n 'mentionTag',\n this.attrs.composer.editor.insertAtCursor(' #')} icon=\"fas fa-tags\">\n {app.translator.trans('flarum-tags.forum.composer.mention_tooltip')}\n \n );\n });\n}\n","import { extend, override } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport classList from 'flarum/common/utils/classList';\n\nimport TagDiscussionModal from './components/TagDiscussionModal';\nimport tagsLabel from '../common/helpers/tagsLabel';\nimport getSelectableTags from './utils/getSelectableTags';\n\nexport default function () {\n extend(IndexPage.prototype, 'newDiscussionAction', function (promise) {\n // From `addTagFilter\n const tag = this.currentTag();\n\n if (tag) {\n const parent = tag.parent();\n const tags = parent ? [parent, tag] : [tag];\n promise.then((composer) => (composer.fields.tags = tags));\n } else {\n app.composer.fields.tags = [];\n }\n });\n\n extend(DiscussionComposer.prototype, 'oninit', function () {\n app.tagList.load(['parent']).then(() => m.redraw());\n });\n\n // Add tag-selection abilities to the discussion composer.\n DiscussionComposer.prototype.chooseTags = function () {\n const selectableTags = getSelectableTags();\n\n if (!selectableTags.length) return;\n\n app.modal.show(TagDiscussionModal, {\n selectedTags: (this.composer.fields.tags || []).slice(0),\n onsubmit: (tags) => {\n this.composer.fields.tags = tags;\n this.$('textarea').focus();\n },\n });\n };\n\n // Add a tag-selection menu to the discussion composer's header, after the\n // title.\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags || [];\n const selectableTags = getSelectableTags();\n\n items.add(\n 'tags',\n \n {tags.length ? (\n tagsLabel(tags)\n ) : (\n {app.translator.trans('flarum-tags.forum.composer_discussion.choose_tags_link')}\n )}\n ,\n 10\n );\n });\n\n override(DiscussionComposer.prototype, 'onsubmit', function (original) {\n const chosenTags = this.composer.fields.tags || [];\n const chosenPrimaryTags = chosenTags.filter((tag) => tag.position() !== null && !tag.isChild());\n const chosenSecondaryTags = chosenTags.filter((tag) => tag.position() === null);\n const selectableTags = getSelectableTags();\n\n const minPrimaryTags = parseInt(app.forum.attribute('minPrimaryTags'));\n const minSecondaryTags = parseInt(app.forum.attribute('minSecondaryTags'));\n const maxPrimaryTags = parseInt(app.forum.attribute('maxPrimaryTags'));\n const maxSecondaryTags = parseInt(app.forum.attribute('maxSecondaryTags'));\n\n if (\n ((!chosenTags.length && maxPrimaryTags !== 0 && maxSecondaryTags !== 0) ||\n chosenPrimaryTags.length < minPrimaryTags ||\n chosenSecondaryTags.length < minSecondaryTags) &&\n selectableTags.length\n ) {\n app.modal.show(TagDiscussionModal, {\n selectedTags: chosenTags,\n onsubmit: (tags) => {\n this.composer.fields.tags = tags;\n original();\n },\n });\n } else {\n original();\n }\n });\n\n // Add the selected tags as data to submit to the server.\n extend(DiscussionComposer.prototype, 'data', function (data) {\n data.relationships = data.relationships || {};\n data.relationships.tags = this.composer.fields.tags;\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport DiscussionControls from 'flarum/forum/utils/DiscussionControls';\nimport Button from 'flarum/common/components/Button';\n\nimport TagDiscussionModal from './components/TagDiscussionModal';\n\nexport default function () {\n // Add a control allowing the discussion to be moved to another category.\n extend(DiscussionControls, 'moderationControls', function (items, discussion) {\n if (discussion.canTag()) {\n items.add(\n 'tags',\n \n );\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport type Mithril from 'mithril';\nimport { extend, override } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport GlobalSearchState from 'flarum/forum/states/GlobalSearchState';\nimport classList from 'flarum/common/utils/classList';\n\nimport TagHero from './components/TagHero';\nimport Tag from '../common/models/Tag';\nimport { ComponentAttrs } from 'flarum/common/Component';\n\nconst findTag = (slug: string) => app.store.all('tags').find((tag) => tag.slug().localeCompare(slug, undefined, { sensitivity: 'base' }) === 0);\n\nexport default function () {\n IndexPage.prototype.currentTag = function () {\n if (this.currentActiveTag) {\n return this.currentActiveTag;\n }\n\n const slug = app.search.params().tags;\n let tag = null;\n\n if (slug) {\n tag = findTag(slug);\n }\n\n if ((slug && !tag) || (tag && !tag.isChild() && !tag.children())) {\n if (this.currentTagLoading) {\n return;\n }\n\n this.currentTagLoading = true;\n\n // Unlike the backend, no need to fetch parent.children because if we're on\n // a child tag page, then either:\n // - We loaded in that child tag (and its siblings) in the API document\n // - We first navigated to the current tag's parent, which would have loaded in the current tag's siblings.\n app.store\n .find('tags', slug, { include: 'children,children.parent,parent,state' })\n .then(() => {\n this.currentActiveTag = findTag(slug);\n\n m.redraw();\n })\n .finally(() => {\n this.currentTagLoading = false;\n });\n }\n\n if (tag) {\n this.currentActiveTag = tag;\n return this.currentActiveTag;\n }\n\n return;\n };\n\n // If currently viewing a tag, insert a tag hero at the top of the view.\n override(IndexPage.prototype, 'hero', function (original) {\n const tag = this.currentTag();\n\n if (tag) return ;\n\n return original();\n });\n\n extend(IndexPage.prototype, 'view', function (vdom: Mithril.Vnode) {\n const tag = this.currentTag();\n\n if (tag) vdom.attrs.className += ' IndexPage--tag' + tag.id();\n });\n\n extend(IndexPage.prototype, 'setTitle', function () {\n const tag = this.currentTag();\n\n if (tag) {\n app.setTitle(tag.name());\n }\n });\n\n // If currently viewing a tag, restyle the 'new discussion' button to use\n // the tag's color, and disable if the user isn't allowed to edit.\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (tag) {\n const color = tag.color();\n const canStartDiscussion = tag.canStartDiscussion() || !app.session.user;\n const newDiscussion = items.get('newDiscussion') as Mithril.Vnode;\n\n if (color) {\n newDiscussion.attrs.className = classList([newDiscussion.attrs.className, 'Button--tagColored']);\n newDiscussion.attrs.style = { '--color': color };\n }\n\n newDiscussion.attrs.disabled = !canStartDiscussion;\n newDiscussion.children = app.translator.trans(\n canStartDiscussion ? 'core.forum.index.start_discussion_button' : 'core.forum.index.cannot_start_discussion_button'\n );\n }\n });\n\n // Add a parameter for the global search state to pass on to the\n // DiscussionListState that will let us filter discussions by tag.\n extend(GlobalSearchState.prototype, 'params', function (params) {\n params.tags = m.route.param('tags');\n });\n\n // Translate that parameter into a gambit appended to the search query.\n extend(DiscussionListState.prototype, 'requestParams', function (this: DiscussionListState, params) {\n if (typeof params.include === 'string') {\n params.include = [params.include];\n } else {\n params.include?.push('tags', 'tags.parent');\n }\n\n if (this.params.tags) {\n const filter = params.filter ?? {};\n filter.tag = this.params.tags;\n // TODO: replace this with a more robust system.\n const q = filter.q;\n if (q) {\n filter.q = `${q} tag:${this.params.tags}`;\n }\n params.filter = filter;\n }\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport DiscussionListItem from 'flarum/forum/components/DiscussionListItem';\nimport DiscussionHero from 'flarum/forum/components/DiscussionHero';\n\nimport tagsLabel from '../common/helpers/tagsLabel';\nimport sortTags from '../common/utils/sortTags';\n\nexport default function () {\n // Add tag labels to each discussion in the discussion list.\n extend(DiscussionListItem.prototype, 'infoItems', function (items) {\n const tags = this.attrs.discussion.tags();\n\n if (tags && tags.length) {\n items.add('tags', tagsLabel(tags), 10);\n }\n });\n\n // Restyle a discussion's hero to use its first tag's color.\n extend(DiscussionHero.prototype, 'view', function (view) {\n const tags = sortTags(this.attrs.discussion.tags());\n\n if (tags && tags.length) {\n const color = tags[0].color();\n if (color) {\n view.attrs.style = { '--hero-bg': color };\n view.attrs.className += ' DiscussionHero--colored';\n }\n }\n });\n\n // Add a list of a discussion's tags to the discussion hero, displayed\n // before the title. Put the title on its own line.\n extend(DiscussionHero.prototype, 'items', function (items) {\n const tags = this.attrs.discussion.tags();\n\n if (tags && tags.length) {\n items.add('tags', tagsLabel(tags, { link: true }), 5);\n }\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport Separator from 'flarum/common/components/Separator';\nimport LinkButton from 'flarum/common/components/LinkButton';\n\nimport TagLinkButton from './components/TagLinkButton';\nimport TagsPage from './components/TagsPage';\nimport sortTags from '../common/utils/sortTags';\n\nexport default function () {\n // Add a link to the tags page, as well as a list of all the tags,\n // to the index page's sidebar.\n extend(IndexPage.prototype, 'navItems', function (items) {\n items.add(\n 'tags',\n \n {app.translator.trans('flarum-tags.forum.index.tags_link')}\n ,\n -10\n );\n\n if (app.current.matches(TagsPage)) return;\n\n items.add('separator', Separator.component(), -12);\n\n const params = app.search.stickyParams();\n const tags = app.store.all('tags');\n const currentTag = this.currentTag();\n\n const addTag = (tag) => {\n let active = currentTag === tag;\n\n if (!active && currentTag) {\n active = currentTag.parent() === tag;\n }\n\n // tag.name() is passed here as children even though it isn't used directly\n // because when we need to get the active child in SelectDropdown, we need to\n // use its children to populate the dropdown. The problem here is that `view`\n // on TagLinkButton is only called AFTER SelectDropdown, so no children are available\n // for SelectDropdown to use at the time.\n items.add('tag' + tag.id(), TagLinkButton.component({ model: tag, params, active }, tag?.name()), -14);\n };\n\n sortTags(tags)\n .filter(\n (tag) => tag.position() !== null && (!tag.isChild() || (currentTag && (tag.parent() === currentTag || tag.parent() === currentTag.parent())))\n )\n .forEach(addTag);\n\n const more = tags.filter((tag) => tag.position() === null).sort((a, b) => b.discussionCount() - a.discussionCount());\n\n more.splice(0, 3).forEach(addTag);\n\n if (more.length) {\n items.add('moreTags', {app.translator.trans('flarum-tags.forum.index.more_link')}, -16);\n }\n });\n}\n","import compat from '../common/compat';\n\nimport addTagFilter from './addTagFilter';\nimport addTagControl from './addTagControl';\nimport TagHero from './components/TagHero';\nimport TagDiscussionModal from './components/TagDiscussionModal';\nimport TagsPage from './components/TagsPage';\nimport DiscussionTaggedPost from './components/DiscussionTaggedPost';\nimport TagLinkButton from './components/TagLinkButton';\nimport addTagList from './addTagList';\nimport addTagLabels from './addTagLabels';\nimport addTagComposer from './addTagComposer';\nimport getSelectableTags from './utils/getSelectableTags';\nimport * as textFormatter from './utils/textFormatter';\n\nexport default Object.assign(compat, {\n 'tags/addTagFilter': addTagFilter,\n 'tags/addTagControl': addTagControl,\n 'tags/components/TagHero': TagHero,\n 'tags/components/TagDiscussionModal': TagDiscussionModal,\n 'tags/components/TagsPage': TagsPage,\n 'tags/components/DiscussionTaggedPost': DiscussionTaggedPost,\n 'tags/components/TagLinkButton': TagLinkButton,\n 'tags/addTagList': addTagList,\n 'tags/addTagLabels': addTagLabels,\n 'tags/addTagComposer': addTagComposer,\n 'tags/utils/getSelectableTags': getSelectableTags,\n 'tags/utils/textFormatter': textFormatter,\n});\n","import EventPost from 'flarum/forum/components/EventPost';\nimport tagsLabel from '../../common/helpers/tagsLabel';\n\nexport default class DiscussionTaggedPost extends EventPost {\n static initAttrs(attrs) {\n super.initAttrs(attrs);\n\n const oldTags = attrs.post.content()[0];\n const newTags = attrs.post.content()[1];\n\n function diffTags(tags1, tags2) {\n return tags1.filter((tag) => tags2.indexOf(tag) === -1).map((id) => app.store.getById('tags', id));\n }\n\n attrs.tagsAdded = diffTags(newTags, oldTags);\n attrs.tagsRemoved = diffTags(oldTags, newTags);\n }\n\n icon() {\n return 'fas fa-tag';\n }\n\n descriptionKey() {\n if (this.attrs.tagsAdded.length) {\n if (this.attrs.tagsRemoved.length) {\n return 'flarum-tags.forum.post_stream.added_and_removed_tags_text';\n }\n\n return 'flarum-tags.forum.post_stream.added_tags_text';\n }\n\n return 'flarum-tags.forum.post_stream.removed_tags_text';\n }\n\n descriptionData() {\n const data = {};\n\n if (this.attrs.tagsAdded.length) {\n data.tagsAdded = app.translator.trans('flarum-tags.forum.post_stream.tags_text', {\n tags: tagsLabel(this.attrs.tagsAdded, { link: true }),\n count: this.attrs.tagsAdded.length,\n });\n }\n\n if (this.attrs.tagsRemoved.length) {\n data.tagsRemoved = app.translator.trans('flarum-tags.forum.post_stream.tags_text', {\n tags: tagsLabel(this.attrs.tagsRemoved, { link: true }),\n count: this.attrs.tagsRemoved.length,\n });\n }\n\n return data;\n }\n}\n","import app from 'flarum/forum/app';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport classList from 'flarum/common/utils/classList';\nimport extractText from 'flarum/common/utils/extractText';\n\nimport getSelectableTags from '../utils/getSelectableTags';\nimport TagSelectionModal, { ITagSelectionModalAttrs } from '../../common/components/TagSelectionModal';\n\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Tag from '../../common/models/Tag';\n\nexport interface TagDiscussionModalAttrs extends ITagSelectionModalAttrs {\n discussion?: Discussion;\n}\n\nexport default class TagDiscussionModal extends TagSelectionModal {\n static initAttrs(attrs: TagDiscussionModalAttrs) {\n super.initAttrs(attrs);\n\n const title = attrs.discussion\n ? app.translator.trans('flarum-tags.forum.choose_tags.edit_title', { title: {attrs.discussion.title()} })\n : app.translator.trans('flarum-tags.forum.choose_tags.title');\n\n attrs.className = classList(attrs.className, 'TagDiscussionModal');\n attrs.title = extractText(title);\n attrs.allowResetting = !!app.forum.attribute('canBypassTagCounts');\n attrs.limits = {\n allowBypassing: attrs.allowResetting,\n max: {\n primary: app.forum.attribute('minPrimaryTags'),\n secondary: app.forum.attribute('maxSecondaryTags'),\n },\n min: {\n primary: app.forum.attribute('maxPrimaryTags'),\n secondary: app.forum.attribute('minSecondaryTags'),\n },\n };\n attrs.requireParentTag = true;\n attrs.selectableTags = () => getSelectableTags(attrs.discussion);\n attrs.selectedTags ??= (attrs.discussion?.tags() as Tag[]) || [];\n attrs.canSelect = (tag) => tag.canStartDiscussion();\n\n const suppliedOnsubmit = attrs.onsubmit || null;\n\n // Save changes.\n attrs.onsubmit = function (tags) {\n const discussion = attrs.discussion;\n\n if (discussion) {\n discussion.save({ relationships: { tags } }).then(() => {\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n });\n }\n\n if (suppliedOnsubmit) suppliedOnsubmit(tags);\n };\n }\n}\n","import Component from 'flarum/common/Component';\nimport tagIcon from '../../common/helpers/tagIcon';\n\nexport default class TagHero extends Component {\n view() {\n const tag = this.attrs.model;\n const color = tag.color();\n\n return (\n \n