diff --git a/.eslintrc b/.eslintrc
index 58952b4eb3c..320310db8d9 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -2,7 +2,8 @@
"extends": "eslint-config-discourse",
"rules": {
"discourse-ember/global-ember": 2,
- "no-duplicate-imports": 2
+ "no-duplicate-imports": 2,
+ "sort-imports": 2
},
"globals": {
"moduleFor": "off",
diff --git a/app/assets/javascripts/admin/addon/components/ace-editor.js b/app/assets/javascripts/admin/addon/components/ace-editor.js
index 41c22eff56e..4f703450030 100644
--- a/app/assets/javascripts/admin/addon/components/ace-editor.js
+++ b/app/assets/javascripts/admin/addon/components/ace-editor.js
@@ -1,6 +1,6 @@
import Component from "@ember/component";
-import loadScript from "discourse/lib/load-script";
import getURL from "discourse-common/lib/get-url";
+import loadScript from "discourse/lib/load-script";
import { observes } from "discourse-common/utils/decorators";
import { on } from "@ember/object/evented";
diff --git a/app/assets/javascripts/admin/addon/components/admin-backups-logs.js b/app/assets/javascripts/admin/addon/components/admin-backups-logs.js
index 1bb36931a09..2531919aa2a 100644
--- a/app/assets/javascripts/admin/addon/components/admin-backups-logs.js
+++ b/app/assets/javascripts/admin/addon/components/admin-backups-logs.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import { scheduleOnce } from "@ember/runloop";
-import Component from "@ember/component";
-import discourseDebounce from "discourse/lib/debounce";
import { observes, on } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import I18n from "I18n";
+import discourseDebounce from "discourse/lib/debounce";
+import { scheduleOnce } from "@ember/runloop";
export default Component.extend({
classNames: ["admin-backups-logs"],
diff --git a/app/assets/javascripts/admin/addon/components/admin-report-chart.js b/app/assets/javascripts/admin/addon/components/admin-report-chart.js
index 20a190d9d2b..40f927f55da 100644
--- a/app/assets/javascripts/admin/addon/components/admin-report-chart.js
+++ b/app/assets/javascripts/admin/addon/components/admin-report-chart.js
@@ -1,8 +1,8 @@
-import { makeArray } from "discourse-common/lib/helpers";
import { debounce, schedule } from "@ember/runloop";
import Component from "@ember/component";
-import { number } from "discourse/lib/formatter";
import loadScript from "discourse/lib/load-script";
+import { makeArray } from "discourse-common/lib/helpers";
+import { number } from "discourse/lib/formatter";
export default Component.extend({
classNames: ["admin-report-chart"],
diff --git a/app/assets/javascripts/admin/addon/components/admin-report-counts.js b/app/assets/javascripts/admin/addon/components/admin-report-counts.js
index 6d3c0b398b1..03c690dbbd6 100644
--- a/app/assets/javascripts/admin/addon/components/admin-report-counts.js
+++ b/app/assets/javascripts/admin/addon/components/admin-report-counts.js
@@ -1,5 +1,5 @@
-import { match } from "@ember/object/computed";
import Component from "@ember/component";
+import { match } from "@ember/object/computed";
export default Component.extend({
allTime: true,
tagName: "tr",
diff --git a/app/assets/javascripts/admin/addon/components/admin-report-stacked-chart.js b/app/assets/javascripts/admin/addon/components/admin-report-stacked-chart.js
index 3519e6a163b..b07a8261c8e 100644
--- a/app/assets/javascripts/admin/addon/components/admin-report-stacked-chart.js
+++ b/app/assets/javascripts/admin/addon/components/admin-report-stacked-chart.js
@@ -1,8 +1,8 @@
-import { makeArray } from "discourse-common/lib/helpers";
import { debounce, schedule } from "@ember/runloop";
import Component from "@ember/component";
-import { number } from "discourse/lib/formatter";
import loadScript from "discourse/lib/load-script";
+import { makeArray } from "discourse-common/lib/helpers";
+import { number } from "discourse/lib/formatter";
export default Component.extend({
classNames: ["admin-report-chart", "admin-report-stacked-chart"],
diff --git a/app/assets/javascripts/admin/addon/components/admin-report-storage-stats.js b/app/assets/javascripts/admin/addon/components/admin-report-storage-stats.js
index b41304ec34a..e12bc6432f7 100644
--- a/app/assets/javascripts/admin/addon/components/admin-report-storage-stats.js
+++ b/app/assets/javascripts/admin/addon/components/admin-report-storage-stats.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import I18n from "I18n";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
import { setting } from "discourse/lib/computed";
export default Component.extend({
diff --git a/app/assets/javascripts/admin/addon/components/admin-report-table-cell.js b/app/assets/javascripts/admin/addon/components/admin-report-table-cell.js
index 967370ab8e6..aadf6e0f736 100644
--- a/app/assets/javascripts/admin/addon/components/admin-report-table-cell.js
+++ b/app/assets/javascripts/admin/addon/components/admin-report-table-cell.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "td",
diff --git a/app/assets/javascripts/admin/addon/components/admin-report-table-header.js b/app/assets/javascripts/admin/addon/components/admin-report-table-header.js
index f7c91dcab67..5c7cdf1e4ca 100644
--- a/app/assets/javascripts/admin/addon/components/admin-report-table-header.js
+++ b/app/assets/javascripts/admin/addon/components/admin-report-table-header.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "th",
diff --git a/app/assets/javascripts/admin/addon/components/admin-report-table.js b/app/assets/javascripts/admin/addon/components/admin-report-table.js
index b44ea784ddd..a237e93ee43 100644
--- a/app/assets/javascripts/admin/addon/components/admin-report-table.js
+++ b/app/assets/javascripts/admin/addon/components/admin-report-table.js
@@ -1,7 +1,7 @@
+import Component from "@ember/component";
+import { alias } from "@ember/object/computed";
import discourseComputed from "discourse-common/utils/decorators";
import { makeArray } from "discourse-common/lib/helpers";
-import { alias } from "@ember/object/computed";
-import Component from "@ember/component";
const PAGES_LIMIT = 8;
diff --git a/app/assets/javascripts/admin/addon/components/admin-report.js b/app/assets/javascripts/admin/addon/components/admin-report.js
index eb9b06f703a..31fc2c2973f 100644
--- a/app/assets/javascripts/admin/addon/components/admin-report.js
+++ b/app/assets/javascripts/admin/addon/components/admin-report.js
@@ -1,16 +1,16 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { makeArray } from "discourse-common/lib/helpers";
-import { alias, or, and, equal, notEmpty } from "@ember/object/computed";
-import EmberObject, { computed, action } from "@ember/object";
-import { next } from "@ember/runloop";
-import Component from "@ember/component";
-import ReportLoader from "discourse/lib/reports-loader";
-import { exportEntity } from "discourse/lib/export-csv";
-import { outputExportResult } from "discourse/lib/export-result";
+import EmberObject, { action, computed } from "@ember/object";
import Report, { SCHEMA_VERSION } from "admin/models/report";
+import { alias, and, equal, notEmpty, or } from "@ember/object/computed";
+import Component from "@ember/component";
+import I18n from "I18n";
+import ReportLoader from "discourse/lib/reports-loader";
+import discourseComputed from "discourse-common/utils/decorators";
+import { exportEntity } from "discourse/lib/export-csv";
import { isPresent } from "@ember/utils";
import { isTesting } from "discourse-common/config/environment";
+import { makeArray } from "discourse-common/lib/helpers";
+import { next } from "@ember/runloop";
+import { outputExportResult } from "discourse/lib/export-result";
const TABLE_OPTIONS = {
perPage: 8,
diff --git a/app/assets/javascripts/admin/addon/components/admin-theme-editor.js b/app/assets/javascripts/admin/addon/components/admin-theme-editor.js
index c453c877d62..ac073c4b551 100644
--- a/app/assets/javascripts/admin/addon/components/admin-theme-editor.js
+++ b/app/assets/javascripts/admin/addon/components/admin-theme-editor.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import { next } from "@ember/runloop";
import Component from "@ember/component";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import { fmt } from "discourse/lib/computed";
+import { next } from "@ember/runloop";
export default Component.extend({
@discourseComputed("theme.targets", "onlyOverridden", "showAdvanced")
diff --git a/app/assets/javascripts/admin/addon/components/admin-user-field-item.js b/app/assets/javascripts/admin/addon/components/admin-user-field-item.js
index 17634d5c49c..c9642e3c94d 100644
--- a/app/assets/javascripts/admin/addon/components/admin-user-field-item.js
+++ b/app/assets/javascripts/admin/addon/components/admin-user-field-item.js
@@ -1,16 +1,16 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { empty } from "@ember/object/computed";
-import { scheduleOnce } from "@ember/runloop";
-import Component from "@ember/component";
-import UserField from "admin/models/user-field";
-import { bufferedProperty } from "discourse/mixins/buffered-content";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { propertyEqual, i18n } from "discourse/lib/computed";
import discourseComputed, {
observes,
on,
} from "discourse-common/utils/decorators";
+import { i18n, propertyEqual } from "discourse/lib/computed";
+import Component from "@ember/component";
+import I18n from "I18n";
+import UserField from "admin/models/user-field";
+import { bufferedProperty } from "discourse/mixins/buffered-content";
+import { empty } from "@ember/object/computed";
+import { isEmpty } from "@ember/utils";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { scheduleOnce } from "@ember/runloop";
export default Component.extend(bufferedProperty("userField"), {
editing: empty("userField.id"),
diff --git a/app/assets/javascripts/admin/addon/components/admin-watched-word.js b/app/assets/javascripts/admin/addon/components/admin-watched-word.js
index 061c83d56a8..266b02b3c6f 100644
--- a/app/assets/javascripts/admin/addon/components/admin-watched-word.js
+++ b/app/assets/javascripts/admin/addon/components/admin-watched-word.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
import Component from "@ember/component";
-import { iconHTML } from "discourse-common/lib/icon-library";
+import I18n from "I18n";
import bootbox from "bootbox";
+import { iconHTML } from "discourse-common/lib/icon-library";
export default Component.extend({
classNames: ["watched-word"],
diff --git a/app/assets/javascripts/admin/addon/components/admin-web-hook-event-chooser.js b/app/assets/javascripts/admin/addon/components/admin-web-hook-event-chooser.js
index 98e39518bf6..1c8e59fd275 100644
--- a/app/assets/javascripts/admin/addon/components/admin-web-hook-event-chooser.js
+++ b/app/assets/javascripts/admin/addon/components/admin-web-hook-event-chooser.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import I18n from "I18n";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
classNames: ["hook-event"],
diff --git a/app/assets/javascripts/admin/addon/components/admin-web-hook-event.js b/app/assets/javascripts/admin/addon/components/admin-web-hook-event.js
index 75f1326a483..fbcf1594e03 100644
--- a/app/assets/javascripts/admin/addon/components/admin-web-hook-event.js
+++ b/app/assets/javascripts/admin/addon/components/admin-web-hook-event.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
-import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import { ensureJSON, plainJSON, prettyJSON } from "discourse/lib/formatter";
+import Component from "@ember/component";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Component.extend({
tagName: "li",
diff --git a/app/assets/javascripts/admin/addon/components/admin-web-hook-status.js b/app/assets/javascripts/admin/addon/components/admin-web-hook-status.js
index 818970f1256..a80a769e94f 100644
--- a/app/assets/javascripts/admin/addon/components/admin-web-hook-status.js
+++ b/app/assets/javascripts/admin/addon/components/admin-web-hook-status.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
import { iconHTML } from "discourse-common/lib/icon-library";
export default Component.extend({
diff --git a/app/assets/javascripts/admin/addon/components/color-input.js b/app/assets/javascripts/admin/addon/components/color-input.js
index 3d7dad5e008..c563fedc948 100644
--- a/app/assets/javascripts/admin/addon/components/color-input.js
+++ b/app/assets/javascripts/admin/addon/components/color-input.js
@@ -1,8 +1,8 @@
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
-import { computed, action } from "@ember/object";
+import { action, computed } from "@ember/object";
import loadScript, { loadCSS } from "discourse/lib/load-script";
+import Component from "@ember/component";
import { observes } from "discourse-common/utils/decorators";
+import { schedule } from "@ember/runloop";
/**
An input field for a color.
diff --git a/app/assets/javascripts/admin/addon/components/email-styles-editor.js b/app/assets/javascripts/admin/addon/components/email-styles-editor.js
index c40f8a543ed..6f7cf6d0210 100644
--- a/app/assets/javascripts/admin/addon/components/email-styles-editor.js
+++ b/app/assets/javascripts/admin/addon/components/email-styles-editor.js
@@ -1,8 +1,8 @@
+import Component from "@ember/component";
import I18n from "I18n";
+import bootbox from "bootbox";
import discourseComputed from "discourse-common/utils/decorators";
import { reads } from "@ember/object/computed";
-import Component from "@ember/component";
-import bootbox from "bootbox";
export default Component.extend({
editorId: reads("fieldName"),
diff --git a/app/assets/javascripts/admin/addon/components/embeddable-host.js b/app/assets/javascripts/admin/addon/components/embeddable-host.js
index 9846c9fc7b8..a3213e7c942 100644
--- a/app/assets/javascripts/admin/addon/components/embeddable-host.js
+++ b/app/assets/javascripts/admin/addon/components/embeddable-host.js
@@ -1,16 +1,16 @@
-import I18n from "I18n";
import discourseComputed, {
- on,
observes,
+ on,
} from "discourse-common/utils/decorators";
+import Category from "discourse/models/category";
+import Component from "@ember/component";
+import I18n from "I18n";
+import bootbox from "bootbox";
+import { bufferedProperty } from "discourse/mixins/buffered-content";
import { isEmpty } from "@ember/utils";
import { or } from "@ember/object/computed";
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
-import { bufferedProperty } from "discourse/mixins/buffered-content";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import Category from "discourse/models/category";
-import bootbox from "bootbox";
+import { schedule } from "@ember/runloop";
export default Component.extend(bufferedProperty("host"), {
editToggled: false,
diff --git a/app/assets/javascripts/admin/addon/components/embedding-setting.js b/app/assets/javascripts/admin/addon/components/embedding-setting.js
index 8c1a187ac69..7b8417aa06f 100644
--- a/app/assets/javascripts/admin/addon/components/embedding-setting.js
+++ b/app/assets/javascripts/admin/addon/components/embedding-setting.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
classNames: ["embed-setting"],
diff --git a/app/assets/javascripts/admin/addon/components/highlighted-code.js b/app/assets/javascripts/admin/addon/components/highlighted-code.js
index f5486db8d95..21cfaf6b154 100644
--- a/app/assets/javascripts/admin/addon/components/highlighted-code.js
+++ b/app/assets/javascripts/admin/addon/components/highlighted-code.js
@@ -1,5 +1,5 @@
+import { observes, on } from "discourse-common/utils/decorators";
import Component from "@ember/component";
-import { on, observes } from "discourse-common/utils/decorators";
import highlightSyntax from "discourse/lib/highlight-syntax";
export default Component.extend({
diff --git a/app/assets/javascripts/admin/addon/components/ip-lookup.js b/app/assets/javascripts/admin/addon/components/ip-lookup.js
index db19cb25c34..99929048a46 100644
--- a/app/assets/javascripts/admin/addon/components/ip-lookup.js
+++ b/app/assets/javascripts/admin/addon/components/ip-lookup.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
-import EmberObject from "@ember/object";
-import { later } from "@ember/runloop";
-import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import AdminUser from "admin/models/admin-user";
-import copyText from "discourse/lib/copy-text";
+import Component from "@ember/component";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import copyText from "discourse/lib/copy-text";
+import discourseComputed from "discourse-common/utils/decorators";
+import { later } from "@ember/runloop";
export default Component.extend({
classNames: ["ip-lookup"],
diff --git a/app/assets/javascripts/admin/addon/components/penalty-post-action.js b/app/assets/javascripts/admin/addon/components/penalty-post-action.js
index 4a46bbbea7e..e0102724474 100644
--- a/app/assets/javascripts/admin/addon/components/penalty-post-action.js
+++ b/app/assets/javascripts/admin/addon/components/penalty-post-action.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
import discourseComputed, {
afterRender,
} from "discourse-common/utils/decorators";
-import { equal } from "@ember/object/computed";
import Component from "@ember/component";
+import I18n from "I18n";
+import { equal } from "@ember/object/computed";
const ACTIONS = ["delete", "delete_replies", "edit", "none"];
diff --git a/app/assets/javascripts/admin/addon/components/permalink-form.js b/app/assets/javascripts/admin/addon/components/permalink-form.js
index b7238f57005..a5a8a95e35a 100644
--- a/app/assets/javascripts/admin/addon/components/permalink-form.js
+++ b/app/assets/javascripts/admin/addon/components/permalink-form.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { schedule } from "@ember/runloop";
import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
-import { fmt } from "discourse/lib/computed";
+import I18n from "I18n";
import Permalink from "admin/models/permalink";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { fmt } from "discourse/lib/computed";
+import { schedule } from "@ember/runloop";
export default Component.extend({
classNames: ["permalink-form"],
diff --git a/app/assets/javascripts/admin/addon/components/report-filters/bool.js b/app/assets/javascripts/admin/addon/components/report-filters/bool.js
index 0a752c54e28..544709791c0 100644
--- a/app/assets/javascripts/admin/addon/components/report-filters/bool.js
+++ b/app/assets/javascripts/admin/addon/components/report-filters/bool.js
@@ -1,5 +1,5 @@
-import { action } from "@ember/object";
import FilterComponent from "admin/components/report-filters/filter";
+import { action } from "@ember/object";
export default FilterComponent.extend({
checked: false,
diff --git a/app/assets/javascripts/admin/addon/components/report-filters/category.js b/app/assets/javascripts/admin/addon/components/report-filters/category.js
index 4cbe9651934..877c3aee7a2 100644
--- a/app/assets/javascripts/admin/addon/components/report-filters/category.js
+++ b/app/assets/javascripts/admin/addon/components/report-filters/category.js
@@ -1,6 +1,6 @@
+import FilterComponent from "admin/components/report-filters/filter";
import { action } from "@ember/object";
import { readOnly } from "@ember/object/computed";
-import FilterComponent from "admin/components/report-filters/filter";
export default FilterComponent.extend({
category: readOnly("filter.default"),
diff --git a/app/assets/javascripts/admin/addon/components/report-filters/group.js b/app/assets/javascripts/admin/addon/components/report-filters/group.js
index 5cf379332b2..30dd4c7b1b9 100644
--- a/app/assets/javascripts/admin/addon/components/report-filters/group.js
+++ b/app/assets/javascripts/admin/addon/components/report-filters/group.js
@@ -1,5 +1,5 @@
-import { computed } from "@ember/object";
import FilterComponent from "admin/components/report-filters/filter";
+import { computed } from "@ember/object";
export default FilterComponent.extend({
classNames: ["group-filter"],
diff --git a/app/assets/javascripts/admin/addon/components/resumable-upload.js b/app/assets/javascripts/admin/addon/components/resumable-upload.js
index 0afa189a1d7..8e3ce18e8cc 100644
--- a/app/assets/javascripts/admin/addon/components/resumable-upload.js
+++ b/app/assets/javascripts/admin/addon/components/resumable-upload.js
@@ -1,9 +1,9 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
+import discourseComputed, { on } from "discourse-common/utils/decorators";
import { later, schedule } from "@ember/runloop";
import Component from "@ember/component";
+import I18n from "I18n";
+import getURL from "discourse-common/lib/get-url";
import { iconHTML } from "discourse-common/lib/icon-library";
-import discourseComputed, { on } from "discourse-common/utils/decorators";
/*global Resumable:true */
diff --git a/app/assets/javascripts/admin/addon/components/screened-ip-address-form.js b/app/assets/javascripts/admin/addon/components/screened-ip-address-form.js
index e738c81b852..40dd71ad9ab 100644
--- a/app/assets/javascripts/admin/addon/components/screened-ip-address-form.js
+++ b/app/assets/javascripts/admin/addon/components/screened-ip-address-form.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
import discourseComputed, { on } from "discourse-common/utils/decorators";
-import { schedule } from "@ember/runloop";
import Component from "@ember/component";
-import bootbox from "bootbox";
+import I18n from "I18n";
import ScreenedIpAddress from "admin/models/screened-ip-address";
+import bootbox from "bootbox";
+import { schedule } from "@ember/runloop";
/**
A form to create an IP address that will be blocked or allowed.
diff --git a/app/assets/javascripts/admin/addon/components/secret-value-list.js b/app/assets/javascripts/admin/addon/components/secret-value-list.js
index 9b59c26d3ac..5ad0e5b3ceb 100644
--- a/app/assets/javascripts/admin/addon/components/secret-value-list.js
+++ b/app/assets/javascripts/admin/addon/components/secret-value-list.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import { isEmpty } from "@ember/utils";
-import Component from "@ember/component";
import { on } from "discourse-common/utils/decorators";
import { set } from "@ember/object";
diff --git a/app/assets/javascripts/admin/addon/components/simple-list.js b/app/assets/javascripts/admin/addon/components/simple-list.js
index f3db4c59731..96136c98e2c 100644
--- a/app/assets/javascripts/admin/addon/components/simple-list.js
+++ b/app/assets/javascripts/admin/addon/components/simple-list.js
@@ -1,6 +1,6 @@
-import { empty } from "@ember/object/computed";
import Component from "@ember/component";
import { action } from "@ember/object";
+import { empty } from "@ember/object/computed";
import { on } from "discourse-common/utils/decorators";
export default Component.extend({
diff --git a/app/assets/javascripts/admin/addon/components/site-setting.js b/app/assets/javascripts/admin/addon/components/site-setting.js
index 695ddac781a..888daa31176 100644
--- a/app/assets/javascripts/admin/addon/components/site-setting.js
+++ b/app/assets/javascripts/admin/addon/components/site-setting.js
@@ -1,7 +1,7 @@
-import Component from "@ember/component";
import BufferedContent from "discourse/mixins/buffered-content";
-import SiteSetting from "admin/models/site-setting";
+import Component from "@ember/component";
import SettingComponent from "admin/mixins/setting-component";
+import SiteSetting from "admin/models/site-setting";
import { readOnly } from "@ember/object/computed";
export default Component.extend(BufferedContent, SettingComponent, {
diff --git a/app/assets/javascripts/admin/addon/components/site-settings/bool.js b/app/assets/javascripts/admin/addon/components/site-settings/bool.js
index a565648c6db..70d7c59ae00 100644
--- a/app/assets/javascripts/admin/addon/components/site-settings/bool.js
+++ b/app/assets/javascripts/admin/addon/components/site-settings/bool.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import discourseComputed from "discourse-common/utils/decorators";
import { isEmpty } from "@ember/utils";
-import Component from "@ember/component";
export default Component.extend({
@discourseComputed("value")
diff --git a/app/assets/javascripts/admin/addon/components/site-settings/category-list.js b/app/assets/javascripts/admin/addon/components/site-settings/category-list.js
index 0369756c088..9dc792e6de0 100644
--- a/app/assets/javascripts/admin/addon/components/site-settings/category-list.js
+++ b/app/assets/javascripts/admin/addon/components/site-settings/category-list.js
@@ -1,5 +1,5 @@
-import Component from "@ember/component";
import Category from "discourse/models/category";
+import Component from "@ember/component";
import { computed } from "@ember/object";
export default Component.extend({
diff --git a/app/assets/javascripts/admin/addon/components/site-settings/color.js b/app/assets/javascripts/admin/addon/components/site-settings/color.js
index 7e5e71effc6..8d098cb7d80 100644
--- a/app/assets/javascripts/admin/addon/components/site-settings/color.js
+++ b/app/assets/javascripts/admin/addon/components/site-settings/color.js
@@ -1,5 +1,5 @@
+import { action, computed } from "@ember/object";
import Component from "@ember/component";
-import { computed, action } from "@ember/object";
function RGBToHex(rgb) {
// Choose correct separator
diff --git a/app/assets/javascripts/admin/addon/components/site-settings/group-list.js b/app/assets/javascripts/admin/addon/components/site-settings/group-list.js
index f7ea8945039..ad9dbbfd1c5 100644
--- a/app/assets/javascripts/admin/addon/components/site-settings/group-list.js
+++ b/app/assets/javascripts/admin/addon/components/site-settings/group-list.js
@@ -1,5 +1,5 @@
-import { computed } from "@ember/object";
import Component from "@ember/component";
+import { computed } from "@ember/object";
export default Component.extend({
tokenSeparator: "|",
diff --git a/app/assets/javascripts/admin/addon/components/site-settings/tag-list.js b/app/assets/javascripts/admin/addon/components/site-settings/tag-list.js
index e5723668d73..d679063df14 100644
--- a/app/assets/javascripts/admin/addon/components/site-settings/tag-list.js
+++ b/app/assets/javascripts/admin/addon/components/site-settings/tag-list.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
import { action } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
@discourseComputed("value")
diff --git a/app/assets/javascripts/admin/addon/components/site-text-summary.js b/app/assets/javascripts/admin/addon/components/site-text-summary.js
index abe4f5fa63e..071091f12b8 100644
--- a/app/assets/javascripts/admin/addon/components/site-text-summary.js
+++ b/app/assets/javascripts/admin/addon/components/site-text-summary.js
@@ -1,6 +1,6 @@
import Component from "@ember/component";
-import { on } from "discourse-common/utils/decorators";
import highlightHTML from "discourse/lib/highlight-html";
+import { on } from "discourse-common/utils/decorators";
export default Component.extend({
classNames: ["site-text"],
diff --git a/app/assets/javascripts/admin/addon/components/suspension-details.js b/app/assets/javascripts/admin/addon/components/suspension-details.js
index f9edc0e225a..e99a7e1c5b8 100644
--- a/app/assets/javascripts/admin/addon/components/suspension-details.js
+++ b/app/assets/javascripts/admin/addon/components/suspension-details.js
@@ -1,8 +1,8 @@
import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
import I18n from "I18n";
-import { equal } from "@ember/object/computed";
import { action } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
+import { equal } from "@ember/object/computed";
const CUSTOM_REASON_KEY = "custom";
diff --git a/app/assets/javascripts/admin/addon/components/tags-uploader.js b/app/assets/javascripts/admin/addon/components/tags-uploader.js
index 3c547adf8d5..1dc3bfc4673 100644
--- a/app/assets/javascripts/admin/addon/components/tags-uploader.js
+++ b/app/assets/javascripts/admin/addon/components/tags-uploader.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import I18n from "I18n";
import UploadMixin from "discourse/mixins/upload";
+import { alias } from "@ember/object/computed";
import bootbox from "bootbox";
export default Component.extend(UploadMixin, {
diff --git a/app/assets/javascripts/admin/addon/components/theme-setting-editor.js b/app/assets/javascripts/admin/addon/components/theme-setting-editor.js
index cf87683ff7e..8ceaf32bbb6 100644
--- a/app/assets/javascripts/admin/addon/components/theme-setting-editor.js
+++ b/app/assets/javascripts/admin/addon/components/theme-setting-editor.js
@@ -1,5 +1,5 @@
-import Component from "@ember/component";
import BufferedContent from "discourse/mixins/buffered-content";
+import Component from "@ember/component";
import SettingComponent from "admin/mixins/setting-component";
import { ajax } from "discourse/lib/ajax";
import { url } from "discourse/lib/computed";
diff --git a/app/assets/javascripts/admin/addon/components/theme-setting-relatives-selector.js b/app/assets/javascripts/admin/addon/components/theme-setting-relatives-selector.js
index b23760f6657..4f02a147688 100644
--- a/app/assets/javascripts/admin/addon/components/theme-setting-relatives-selector.js
+++ b/app/assets/javascripts/admin/addon/components/theme-setting-relatives-selector.js
@@ -1,5 +1,5 @@
-import Component from "@ember/component";
import BufferedContent from "discourse/mixins/buffered-content";
+import Component from "@ember/component";
import SettingComponent from "admin/mixins/setting-component";
export default Component.extend(BufferedContent, SettingComponent, {
diff --git a/app/assets/javascripts/admin/addon/components/theme-translation.js b/app/assets/javascripts/admin/addon/components/theme-translation.js
index 6174aeb4eb2..7a598db1c82 100644
--- a/app/assets/javascripts/admin/addon/components/theme-translation.js
+++ b/app/assets/javascripts/admin/addon/components/theme-translation.js
@@ -1,7 +1,7 @@
-import { alias } from "@ember/object/computed";
-import Component from "@ember/component";
import BufferedContent from "discourse/mixins/buffered-content";
+import Component from "@ember/component";
import SettingComponent from "admin/mixins/setting-component";
+import { alias } from "@ember/object/computed";
export default Component.extend(BufferedContent, SettingComponent, {
layoutName: "admin/templates/components/site-setting",
diff --git a/app/assets/javascripts/admin/addon/components/themes-list-item.js b/app/assets/javascripts/admin/addon/components/themes-list-item.js
index d8af9eabc7e..edc17835352 100644
--- a/app/assets/javascripts/admin/addon/components/themes-list-item.js
+++ b/app/assets/javascripts/admin/addon/components/themes-list-item.js
@@ -1,10 +1,10 @@
-import { gt, and } from "@ember/object/computed";
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
+import { and, gt } from "@ember/object/computed";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { iconHTML } from "discourse-common/lib/icon-library";
+import Component from "@ember/component";
import { escape } from "pretty-text/sanitizer";
+import { iconHTML } from "discourse-common/lib/icon-library";
import { isTesting } from "discourse-common/config/environment";
+import { schedule } from "@ember/runloop";
const MAX_COMPONENTS = 4;
diff --git a/app/assets/javascripts/admin/addon/components/themes-list.js b/app/assets/javascripts/admin/addon/components/themes-list.js
index cdad5e454aa..715ca9cceef 100644
--- a/app/assets/javascripts/admin/addon/components/themes-list.js
+++ b/app/assets/javascripts/admin/addon/components/themes-list.js
@@ -1,6 +1,6 @@
-import { gt, equal } from "@ember/object/computed";
+import { COMPONENTS, THEMES } from "admin/models/theme";
+import { equal, gt } from "@ember/object/computed";
import Component from "@ember/component";
-import { THEMES, COMPONENTS } from "admin/models/theme";
import discourseComputed from "discourse-common/utils/decorators";
import { inject as service } from "@ember/service";
diff --git a/app/assets/javascripts/admin/addon/components/value-list.js b/app/assets/javascripts/admin/addon/components/value-list.js
index 9951eee3f4b..aa89de7f38d 100644
--- a/app/assets/javascripts/admin/addon/components/value-list.js
+++ b/app/assets/javascripts/admin/addon/components/value-list.js
@@ -1,7 +1,7 @@
import discourseComputed, { on } from "discourse-common/utils/decorators";
-import { makeArray } from "discourse-common/lib/helpers";
import { empty, reads } from "@ember/object/computed";
import Component from "@ember/component";
+import { makeArray } from "discourse-common/lib/helpers";
export default Component.extend({
classNameBindings: [":value-list"],
diff --git a/app/assets/javascripts/admin/addon/components/watched-word-form.js b/app/assets/javascripts/admin/addon/components/watched-word-form.js
index 5dc9d7b8e62..788103f793e 100644
--- a/app/assets/javascripts/admin/addon/components/watched-word-form.js
+++ b/app/assets/javascripts/admin/addon/components/watched-word-form.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { schedule } from "@ember/runloop";
+import discourseComputed, {
+ observes,
+ on,
+} from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import I18n from "I18n";
import WatchedWord from "admin/models/watched-word";
import bootbox from "bootbox";
-import discourseComputed, {
- on,
- observes,
-} from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
+import { schedule } from "@ember/runloop";
export default Component.extend({
classNames: ["watched-word-form"],
diff --git a/app/assets/javascripts/admin/addon/components/watched-word-uploader.js b/app/assets/javascripts/admin/addon/components/watched-word-uploader.js
index 800c0d49886..00c8ce4d995 100644
--- a/app/assets/javascripts/admin/addon/components/watched-word-uploader.js
+++ b/app/assets/javascripts/admin/addon/components/watched-word-uploader.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import I18n from "I18n";
import UploadMixin from "discourse/mixins/upload";
+import { alias } from "@ember/object/computed";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend(UploadMixin, {
type: "txt",
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-api-keys-index.js b/app/assets/javascripts/admin/addon/controllers/admin-api-keys-index.js
index 880a2c6435f..5b4ee4ee0a3 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-api-keys-index.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-api-keys-index.js
@@ -1,5 +1,5 @@
-import { popupAjaxError } from "discourse/lib/ajax-error";
import Controller from "@ember/controller";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
actions: {
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-api-keys-new.js b/app/assets/javascripts/admin/addon/controllers/admin-api-keys-new.js
index 06e495109c1..8d56042a676 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-api-keys-new.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-api-keys-new.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import { isBlank } from "@ember/utils";
import Controller from "@ember/controller";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
+import { isBlank } from "@ember/utils";
import { popupAjaxError } from "discourse/lib/ajax-error";
import showModal from "discourse/lib/show-modal";
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-api-keys-show.js b/app/assets/javascripts/admin/addon/controllers/admin-api-keys-show.js
index 11251a45e6e..28a883d985f 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-api-keys-show.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-api-keys-show.js
@@ -1,8 +1,8 @@
-import { bufferedProperty } from "discourse/mixins/buffered-content";
import Controller from "@ember/controller";
+import { bufferedProperty } from "discourse/mixins/buffered-content";
+import { empty } from "@ember/object/computed";
import { isEmpty } from "@ember/utils";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import { empty } from "@ember/object/computed";
import showModal from "discourse/lib/show-modal";
export default Controller.extend(bufferedProperty("model"), {
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-backups-index.js b/app/assets/javascripts/admin/addon/controllers/admin-backups-index.js
index c32e70f6333..c53adeecf9a 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-backups-index.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-backups-index.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { alias, equal } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
+import { alias, equal } from "@ember/object/computed";
+import { i18n, setting } from "discourse/lib/computed";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import discourseComputed from "discourse-common/utils/decorators";
-import { setting, i18n } from "discourse/lib/computed";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
adminBackups: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-backups-logs.js b/app/assets/javascripts/admin/addon/controllers/admin-backups-logs.js
index 8c70f054398..e8a1694e2c2 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-backups-logs.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-backups-logs.js
@@ -1,5 +1,5 @@
-import { alias } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
+import { alias } from "@ember/object/computed";
export default Controller.extend({
adminBackups: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-backups.js b/app/assets/javascripts/admin/addon/controllers/admin-backups.js
index 83a93d8898e..77dfbc31329 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-backups.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-backups.js
@@ -1,4 +1,4 @@
-import { not, and } from "@ember/object/computed";
+import { and, not } from "@ember/object/computed";
import Controller from "@ember/controller";
export default Controller.extend({
noOperationIsRunning: not("model.isOperationRunning"),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-badges-award.js b/app/assets/javascripts/admin/addon/controllers/admin-badges-award.js
index f3ef51d7015..218b3cb0e0a 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-badges-award.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-badges-award.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import bootbox from "bootbox";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
saving: false,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-badges-show.js b/app/assets/javascripts/admin/addon/controllers/admin-badges-show.js
index 3fec918ba95..23341f0d27e 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-badges-show.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-badges-show.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { reads } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { bufferedProperty } from "discourse/mixins/buffered-content";
-import { propertyNotEqual } from "discourse/lib/computed";
-import { run } from "@ember/runloop";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import I18n from "I18n";
import bootbox from "bootbox";
+import { bufferedProperty } from "discourse/mixins/buffered-content";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { propertyNotEqual } from "discourse/lib/computed";
+import { reads } from "@ember/object/computed";
+import { run } from "@ember/runloop";
export default Controller.extend(bufferedProperty("model"), {
adminBadges: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-badges.js b/app/assets/javascripts/admin/addon/controllers/admin-badges.js
index 433c49bac59..11d78fc4cc3 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-badges.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-badges.js
@@ -1,6 +1,6 @@
import Controller from "@ember/controller";
-import { inject as service } from "@ember/service";
import discourseComputed from "discourse-common/utils/decorators";
+import { inject as service } from "@ember/service";
export default Controller.extend({
routing: service("-routing"),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-colors-show.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-colors-show.js
index 5fa62188396..37394fd17f6 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-colors-show.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-colors-show.js
@@ -1,8 +1,8 @@
+import Controller from "@ember/controller";
import I18n from "I18n";
+import bootbox from "bootbox";
import discourseComputed from "discourse-common/utils/decorators";
import { later } from "@ember/runloop";
-import Controller from "@ember/controller";
-import bootbox from "bootbox";
export default Controller.extend({
@discourseComputed("model.colors", "onlyOverridden")
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-colors.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-colors.js
index 01898b161a1..7f06b1f3f06 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-colors.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-colors.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import EmberObject from "@ember/object";
import Controller from "@ember/controller";
-import showModal from "discourse/lib/show-modal";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
+import showModal from "discourse/lib/show-modal";
export default Controller.extend({
@discourseComputed("model.@each.id")
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-email-style-edit.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-email-style-edit.js
index f1190600e8d..79813399b28 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-email-style-edit.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-email-style-edit.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import I18n from "I18n";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
@discourseComputed("model.isSaving")
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-email-templates-edit.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-email-templates-edit.js
index f5f7a563efa..d20f812ca3d 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-email-templates-edit.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-email-templates-edit.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Controller, { inject as controller } from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { bufferedProperty } from "discourse/mixins/buffered-content";
+import I18n from "I18n";
import { action } from "@ember/object";
import bootbox from "bootbox";
+import { bufferedProperty } from "discourse/mixins/buffered-content";
+import discourseComputed from "discourse-common/utils/decorators";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend(bufferedProperty("emailTemplate"), {
adminCustomizeEmailTemplates: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-email-templates.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-email-templates.js
index 415cf1d1579..a3d7f360e03 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-email-templates.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-email-templates.js
@@ -1,6 +1,6 @@
-import { sort } from "@ember/object/computed";
-import { action } from "@ember/object";
import Controller from "@ember/controller";
+import { action } from "@ember/object";
+import { sort } from "@ember/object/computed";
export default Controller.extend({
sortedTemplates: sort("emailTemplates", "titleSorting"),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-robots-txt.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-robots-txt.js
index 7da07207441..a178f2c999a 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-robots-txt.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-robots-txt.js
@@ -1,7 +1,7 @@
-import { not } from "@ember/object/computed";
import Controller from "@ember/controller";
import { ajax } from "discourse/lib/ajax";
import { bufferedProperty } from "discourse/mixins/buffered-content";
+import { not } from "@ember/object/computed";
import { propertyEqual } from "discourse/lib/computed";
export default Controller.extend(bufferedProperty("model"), {
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-themes-edit.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-themes-edit.js
index 889d90a9218..b69b57510cf 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-themes-edit.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-themes-edit.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
-import { url } from "discourse/lib/computed";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
+import { url } from "discourse/lib/computed";
export default Controller.extend({
section: null,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-themes-show.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-themes-show.js
index 9e9afda71d0..ba3a2d323ce 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-themes-show.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-themes-show.js
@@ -1,21 +1,21 @@
-import I18n from "I18n";
-import { makeArray } from "discourse-common/lib/helpers";
+import { COMPONENTS, THEMES } from "admin/models/theme";
import {
empty,
filterBy,
- match,
mapBy,
+ match,
notEmpty,
} from "@ember/object/computed";
import Controller from "@ember/controller";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import ThemeSettings from "admin/models/theme-settings";
+import bootbox from "bootbox";
import discourseComputed from "discourse-common/utils/decorators";
-import { url } from "discourse/lib/computed";
+import { makeArray } from "discourse-common/lib/helpers";
import { popupAjaxError } from "discourse/lib/ajax-error";
import showModal from "discourse/lib/show-modal";
-import ThemeSettings from "admin/models/theme-settings";
-import { THEMES, COMPONENTS } from "admin/models/theme";
-import EmberObject from "@ember/object";
-import bootbox from "bootbox";
+import { url } from "discourse/lib/computed";
const THEME_UPLOAD_VAR = 2;
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-customize-themes.js b/app/assets/javascripts/admin/addon/controllers/admin-customize-themes.js
index 3ffe9301f1a..17dda660401 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-customize-themes.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-customize-themes.js
@@ -1,6 +1,6 @@
import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
import { THEMES } from "admin/models/theme";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
currentTab: THEMES,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-dashboard-general.js b/app/assets/javascripts/admin/addon/controllers/admin-dashboard-general.js
index fe97fb08555..a831b686bc2 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-dashboard-general.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-dashboard-general.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { makeArray } from "discourse-common/lib/helpers";
import Controller, { inject } from "@ember/controller";
-import { setting } from "discourse/lib/computed";
import AdminDashboard from "admin/models/admin-dashboard";
-import Report from "admin/models/report";
+import I18n from "I18n";
import PeriodComputationMixin from "admin/mixins/period-computation";
+import Report from "admin/models/report";
import { computed } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
import getURL from "discourse-common/lib/get-url";
+import { makeArray } from "discourse-common/lib/helpers";
+import { setting } from "discourse/lib/computed";
function staticReport(reportType) {
return computed("reports.[]", function () {
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-dashboard-moderation.js b/app/assets/javascripts/admin/addon/controllers/admin-dashboard-moderation.js
index 6781c50bdea..16e632d6e22 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-dashboard-moderation.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-dashboard-moderation.js
@@ -1,8 +1,8 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
import PeriodComputationMixin from "admin/mixins/period-computation";
import { computed } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
export default Controller.extend(PeriodComputationMixin, {
@discourseComputed
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-dashboard-reports.js b/app/assets/javascripts/admin/addon/controllers/admin-dashboard-reports.js
index 966304a0e56..445eb667d8b 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-dashboard-reports.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-dashboard-reports.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { debounce } from "@ember/runloop";
import Controller from "@ember/controller";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import { debounce } from "@ember/runloop";
+import discourseComputed from "discourse-common/utils/decorators";
const { get } = Ember;
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-dashboard.js b/app/assets/javascripts/admin/addon/controllers/admin-dashboard.js
index 29e1ad0c5a6..89955953fbd 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-dashboard.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-dashboard.js
@@ -1,9 +1,9 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller, { inject } from "@ember/controller";
-import { setting } from "discourse/lib/computed";
-import { computed } from "@ember/object";
import AdminDashboard from "admin/models/admin-dashboard";
import VersionCheck from "admin/models/version-check";
+import { computed } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
+import { setting } from "discourse/lib/computed";
const PROBLEMS_CHECK_MINUTES = 1;
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-email-bounced.js b/app/assets/javascripts/admin/addon/controllers/admin-email-bounced.js
index 07721cdff09..874b7147fb9 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-email-bounced.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-email-bounced.js
@@ -1,7 +1,7 @@
import AdminEmailLogsController from "admin/controllers/admin-email-logs";
+import { INPUT_DELAY } from "discourse-common/config/environment";
import discourseDebounce from "discourse/lib/debounce";
import { observes } from "discourse-common/utils/decorators";
-import { INPUT_DELAY } from "discourse-common/config/environment";
export default AdminEmailLogsController.extend({
@observes("filter.{status,user,address,type}")
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-email-index.js b/app/assets/javascripts/admin/addon/controllers/admin-email-index.js
index f356731e6d9..18bfd4a8c47 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-email-index.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-email-index.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import { empty } from "@ember/object/computed";
import Controller from "@ember/controller";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import { observes } from "discourse-common/utils/decorators";
import bootbox from "bootbox";
+import { empty } from "@ember/object/computed";
+import { observes } from "discourse-common/utils/decorators";
export default Controller.extend({
/**
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-email-preview-digest.js b/app/assets/javascripts/admin/addon/controllers/admin-email-preview-digest.js
index 4b6ba80ce68..4210f9cff28 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-email-preview-digest.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-email-preview-digest.js
@@ -1,8 +1,8 @@
-import { empty, or, notEmpty } from "@ember/object/computed";
+import { empty, notEmpty, or } from "@ember/object/computed";
import Controller from "@ember/controller";
import EmailPreview from "admin/models/email-preview";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import bootbox from "bootbox";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
username: null,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-email-received.js b/app/assets/javascripts/admin/addon/controllers/admin-email-received.js
index ab023378666..8b977c4d507 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-email-received.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-email-received.js
@@ -1,8 +1,8 @@
import AdminEmailLogsController from "admin/controllers/admin-email-logs";
-import discourseDebounce from "discourse/lib/debounce";
-import IncomingEmail from "admin/models/incoming-email";
-import { observes } from "discourse-common/utils/decorators";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import IncomingEmail from "admin/models/incoming-email";
+import discourseDebounce from "discourse/lib/debounce";
+import { observes } from "discourse-common/utils/decorators";
export default AdminEmailLogsController.extend({
@observes("filter.{status,from,to,subject}")
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-email-rejected.js b/app/assets/javascripts/admin/addon/controllers/admin-email-rejected.js
index 2c160648c62..5be59e6ab89 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-email-rejected.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-email-rejected.js
@@ -1,8 +1,8 @@
import AdminEmailLogsController from "admin/controllers/admin-email-logs";
-import discourseDebounce from "discourse/lib/debounce";
-import IncomingEmail from "admin/models/incoming-email";
-import { observes } from "discourse-common/utils/decorators";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import IncomingEmail from "admin/models/incoming-email";
+import discourseDebounce from "discourse/lib/debounce";
+import { observes } from "discourse-common/utils/decorators";
export default AdminEmailLogsController.extend({
@observes("filter.{status,from,to,subject,error}")
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-email-sent.js b/app/assets/javascripts/admin/addon/controllers/admin-email-sent.js
index 2c7890cde82..660f681c62e 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-email-sent.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-email-sent.js
@@ -1,7 +1,7 @@
import AdminEmailLogsController from "admin/controllers/admin-email-logs";
+import { INPUT_DELAY } from "discourse-common/config/environment";
import discourseDebounce from "discourse/lib/debounce";
import { observes } from "discourse-common/utils/decorators";
-import { INPUT_DELAY } from "discourse-common/config/environment";
export default AdminEmailLogsController.extend({
@observes("filter.{status,user,address,type,reply_key}")
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-email-skipped.js b/app/assets/javascripts/admin/addon/controllers/admin-email-skipped.js
index 07721cdff09..874b7147fb9 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-email-skipped.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-email-skipped.js
@@ -1,7 +1,7 @@
import AdminEmailLogsController from "admin/controllers/admin-email-logs";
+import { INPUT_DELAY } from "discourse-common/config/environment";
import discourseDebounce from "discourse/lib/debounce";
import { observes } from "discourse-common/utils/decorators";
-import { INPUT_DELAY } from "discourse-common/config/environment";
export default AdminEmailLogsController.extend({
@observes("filter.{status,user,address,type}")
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-embedding.js b/app/assets/javascripts/admin/addon/controllers/admin-embedding.js
index df7f856ed56..147d4dd35a6 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-embedding.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-embedding.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import discourseComputed from "discourse-common/utils/decorators";
import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-emojis.js b/app/assets/javascripts/admin/addon/controllers/admin-emojis.js
index 4019cb188e6..94e284c0c9c 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-emojis.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-emojis.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import { sort } from "@ember/object/computed";
import EmberObject, { action, computed } from "@ember/object";
import Controller from "@ember/controller";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import { sort } from "@ember/object/computed";
const ALL_FILTER = "all";
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-emails.js b/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-emails.js
index 134968eb10f..ed3cd6489d7 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-emails.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-emails.js
@@ -1,7 +1,7 @@
import Controller from "@ember/controller";
+import ScreenedEmail from "admin/models/screened-email";
import { exportEntity } from "discourse/lib/export-csv";
import { outputExportResult } from "discourse/lib/export-result";
-import ScreenedEmail from "admin/models/screened-email";
export default Controller.extend({
loading: false,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-ip-addresses.js b/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-ip-addresses.js
index 68ac649425d..32ed7ad944d 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-ip-addresses.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-ip-addresses.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
-import discourseDebounce from "discourse/lib/debounce";
-import { outputExportResult } from "discourse/lib/export-result";
-import { exportEntity } from "discourse/lib/export-csv";
-import ScreenedIpAddress from "admin/models/screened-ip-address";
-import { observes } from "discourse-common/utils/decorators";
+import I18n from "I18n";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import ScreenedIpAddress from "admin/models/screened-ip-address";
import bootbox from "bootbox";
+import discourseDebounce from "discourse/lib/debounce";
+import { exportEntity } from "discourse/lib/export-csv";
+import { observes } from "discourse-common/utils/decorators";
+import { outputExportResult } from "discourse/lib/export-result";
export default Controller.extend({
loading: false,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-urls.js b/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-urls.js
index 90d008bb869..86621f59689 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-urls.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-logs-screened-urls.js
@@ -1,7 +1,7 @@
import Controller from "@ember/controller";
+import ScreenedUrl from "admin/models/screened-url";
import { exportEntity } from "discourse/lib/export-csv";
import { outputExportResult } from "discourse/lib/export-result";
-import ScreenedUrl from "admin/models/screened-url";
export default Controller.extend({
loading: false,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-logs-staff-action-logs.js b/app/assets/javascripts/admin/addon/controllers/admin-logs-staff-action-logs.js
index 70496049d1b..2758a10aa16 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-logs-staff-action-logs.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-logs-staff-action-logs.js
@@ -1,10 +1,10 @@
import Controller from "@ember/controller";
import EmberObject from "@ember/object";
-import { scheduleOnce } from "@ember/runloop";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import { exportEntity } from "discourse/lib/export-csv";
import { outputExportResult } from "discourse/lib/export-result";
-import I18n from "I18n";
+import { scheduleOnce } from "@ember/runloop";
export default Controller.extend({
queryParams: ["filters"],
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-permalinks.js b/app/assets/javascripts/admin/addon/controllers/admin-permalinks.js
index 729cdab0c85..2aaf42ff3e8 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-permalinks.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-permalinks.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
-import discourseDebounce from "discourse/lib/debounce";
-import Permalink from "admin/models/permalink";
-import { observes } from "discourse-common/utils/decorators";
+import I18n from "I18n";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import Permalink from "admin/models/permalink";
import bootbox from "bootbox";
+import discourseDebounce from "discourse/lib/debounce";
+import { observes } from "discourse-common/utils/decorators";
export default Controller.extend({
loading: false,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-plugins.js b/app/assets/javascripts/admin/addon/controllers/admin-plugins.js
index 955aaba5c38..d19c5584aad 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-plugins.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-plugins.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
@discourseComputed
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-reports-show.js b/app/assets/javascripts/admin/addon/controllers/admin-reports-show.js
index c20dfc1c2e2..64a2c5de931 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-reports-show.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-reports-show.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
queryParams: ["start_date", "end_date", "filters", "chart_grouping"],
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-search-logs-index.js b/app/assets/javascripts/admin/addon/controllers/admin-search-logs-index.js
index 2e2bcb4f732..bf110796f25 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-search-logs-index.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-search-logs-index.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
+import I18n from "I18n";
export const DEFAULT_PERIOD = "yearly";
export default Controller.extend({
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-search-logs-term.js b/app/assets/javascripts/admin/addon/controllers/admin-search-logs-term.js
index 8ee5dd5df1e..2d4f22211b6 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-search-logs-term.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-search-logs-term.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
import { DEFAULT_PERIOD } from "admin/controllers/admin-search-logs-index";
+import I18n from "I18n";
export default Controller.extend({
loading: false,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-site-settings-category.js b/app/assets/javascripts/admin/addon/controllers/admin-site-settings-category.js
index 5a12f1d717e..2727c56010e 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-site-settings-category.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-site-settings-category.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller, { inject as controller } from "@ember/controller";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
adminSiteSettings: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-site-settings.js b/app/assets/javascripts/admin/addon/controllers/admin-site-settings.js
index 02e7ab8f07c..7dea3a237cf 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-site-settings.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-site-settings.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { alias } from "@ember/object/computed";
import Controller from "@ember/controller";
-import discourseDebounce from "discourse/lib/debounce";
-import { observes } from "discourse-common/utils/decorators";
+import I18n from "I18n";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import { alias } from "@ember/object/computed";
+import discourseDebounce from "discourse/lib/debounce";
+import { isEmpty } from "@ember/utils";
+import { observes } from "discourse-common/utils/decorators";
export default Controller.extend({
filter: null,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-site-text-edit.js b/app/assets/javascripts/admin/addon/controllers/admin-site-text-edit.js
index b33bbe39686..99e1c19af34 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-site-text-edit.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-site-text-edit.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { bufferedProperty } from "discourse/mixins/buffered-content";
+import I18n from "I18n";
import bootbox from "bootbox";
+import { bufferedProperty } from "discourse/mixins/buffered-content";
+import discourseComputed from "discourse-common/utils/decorators";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend(bufferedProperty("siteText"), {
saved: false,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-site-text-index.js b/app/assets/javascripts/admin/addon/controllers/admin-site-text-index.js
index e46096c751e..fb1a238c3e9 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-site-text-index.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-site-text-index.js
@@ -1,5 +1,5 @@
-import { debounce } from "@ember/runloop";
import Controller from "@ember/controller";
+import { debounce } from "@ember/runloop";
let lastSearch;
export default Controller.extend({
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-user-badges.js b/app/assets/javascripts/admin/addon/controllers/admin-user-badges.js
index 6951a7b562e..2c5212e4ba9 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-user-badges.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-user-badges.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias, sort } from "@ember/object/computed";
-import { next } from "@ember/runloop";
import Controller, { inject as controller } from "@ember/controller";
+import { alias, sort } from "@ember/object/computed";
import GrantBadgeController from "discourse/mixins/grant-badge-controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import I18n from "I18n";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { next } from "@ember/runloop";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend(GrantBadgeController, {
adminUser: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-user-fields.js b/app/assets/javascripts/admin/addon/controllers/admin-user-fields.js
index 913ed729a73..9b37e931da2 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-user-fields.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-user-fields.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
import { gte, sort } from "@ember/object/computed";
import Controller from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import I18n from "I18n";
import bootbox from "bootbox";
+import { popupAjaxError } from "discourse/lib/ajax-error";
const MAX_FIELDS = 30;
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-user-index.js b/app/assets/javascripts/admin/addon/controllers/admin-user-index.js
index 2bed595b3fa..4912c3a3970 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-user-index.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-user-index.js
@@ -1,16 +1,16 @@
-import I18n from "I18n";
-import { notEmpty, and } from "@ember/object/computed";
-import { inject as service } from "@ember/service";
-import Controller from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
+import { and, notEmpty } from "@ember/object/computed";
+import { fmt, propertyNotEqual, setting } from "discourse/lib/computed";
import CanCheckEmails from "discourse/mixins/can-check-emails";
-import { propertyNotEqual, setting, fmt } from "discourse/lib/computed";
-import { userPath } from "discourse/lib/url";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import Controller from "@ember/controller";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
+import bootbox from "bootbox";
import discourseComputed from "discourse-common/utils/decorators";
import { htmlSafe } from "@ember/template";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { inject as service } from "@ember/service";
import showModal from "discourse/lib/show-modal";
-import bootbox from "bootbox";
+import { userPath } from "discourse/lib/url";
export default Controller.extend(CanCheckEmails, {
adminTools: service(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-users-list-show.js b/app/assets/javascripts/admin/addon/controllers/admin-users-list-show.js
index fd20b6c3080..0c2952e9297 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-users-list-show.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-users-list-show.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import Controller from "@ember/controller";
-import discourseDebounce from "discourse/lib/debounce";
-import { i18n } from "discourse/lib/computed";
import AdminUser from "admin/models/admin-user";
import CanCheckEmails from "discourse/mixins/can-check-emails";
+import Controller from "@ember/controller";
+import I18n from "I18n";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import discourseDebounce from "discourse/lib/debounce";
+import { i18n } from "discourse/lib/computed";
export default Controller.extend(CanCheckEmails, {
model: null,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js b/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
index 6a9b78bf297..1daa8a6ec39 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { or } from "@ember/object/computed";
-import { schedule } from "@ember/runloop";
import Controller, { inject as controller } from "@ember/controller";
+import I18n from "I18n";
import WatchedWord from "admin/models/watched-word";
import { ajax } from "discourse/lib/ajax";
-import { fmt } from "discourse/lib/computed";
-import showModal from "discourse/lib/show-modal";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { fmt } from "discourse/lib/computed";
+import { or } from "@ember/object/computed";
+import { schedule } from "@ember/runloop";
+import showModal from "discourse/lib/show-modal";
export default Controller.extend({
adminWatchedWords: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-watched-words.js b/app/assets/javascripts/admin/addon/controllers/admin-watched-words.js
index 151fc82c33a..3ed8bee62fa 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-watched-words.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-watched-words.js
@@ -1,10 +1,10 @@
-import { isEmpty } from "@ember/utils";
-import { alias } from "@ember/object/computed";
-import EmberObject from "@ember/object";
import Controller from "@ember/controller";
-import discourseDebounce from "discourse/lib/debounce";
-import { observes } from "discourse-common/utils/decorators";
+import EmberObject from "@ember/object";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import { alias } from "@ember/object/computed";
+import discourseDebounce from "discourse/lib/debounce";
+import { isEmpty } from "@ember/utils";
+import { observes } from "discourse-common/utils/decorators";
export default Controller.extend({
filter: null,
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-web-hooks-show-events.js b/app/assets/javascripts/admin/addon/controllers/admin-web-hooks-show-events.js
index 49c87926d21..cdb4c9b6152 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-web-hooks-show-events.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-web-hooks-show-events.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Controller from "@ember/controller";
import { ajax } from "discourse/lib/ajax";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-web-hooks-show.js b/app/assets/javascripts/admin/addon/controllers/admin-web-hooks-show.js
index f2e9f2178d0..26b5fb20d08 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-web-hooks-show.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-web-hooks-show.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
-import { alias } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { extractDomainFromUrl } from "discourse/lib/utilities";
import EmberObject from "@ember/object";
-import { isAbsoluteURL } from "discourse-common/lib/get-url";
+import I18n from "I18n";
+import { alias } from "@ember/object/computed";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { extractDomainFromUrl } from "discourse/lib/utilities";
+import { isAbsoluteURL } from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
adminWebHooks: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-web-hooks.js b/app/assets/javascripts/admin/addon/controllers/admin-web-hooks.js
index cc13ea9e9d4..6e1acf97dc1 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin-web-hooks.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin-web-hooks.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import I18n from "I18n";
import bootbox from "bootbox";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
actions: {
diff --git a/app/assets/javascripts/admin/addon/controllers/admin.js b/app/assets/javascripts/admin/addon/controllers/admin.js
index 4c51eb38b72..03838b789cd 100644
--- a/app/assets/javascripts/admin/addon/controllers/admin.js
+++ b/app/assets/javascripts/admin/addon/controllers/admin.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { inject as service } from "@ember/service";
import Controller from "@ember/controller";
import { dasherize } from "@ember/string";
+import discourseComputed from "discourse-common/utils/decorators";
+import { inject as service } from "@ember/service";
export default Controller.extend({
router: service(),
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-add-upload.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-add-upload.js
index 12b2be4f4ab..876ac3ae9ae 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-add-upload.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-add-upload.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { and, not } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
+import { and, not } from "@ember/object/computed";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { ajax } from "discourse/lib/ajax";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
import { popupAjaxError } from "discourse/lib/ajax-error";
const THEME_FIELD_VARIABLE_TYPE_IDS = [2, 3, 4];
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-badge-preview.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-badge-preview.js
index 90af87cb735..322436303f9 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-badge-preview.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-badge-preview.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
import { alias, map } from "@ember/object/computed";
import Controller from "@ember/controller";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import { escapeExpression } from "discourse/lib/utilities";
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-edit-badge-groupings.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-edit-badge-groupings.js
index cedbf436320..aa7d5665fa3 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-edit-badge-groupings.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-edit-badge-groupings.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import Controller from "@ember/controller";
import { A } from "@ember/array";
-import { ajax } from "discourse/lib/ajax";
+import Controller from "@ember/controller";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { observes } from "discourse-common/utils/decorators";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import { observes } from "discourse-common/utils/decorators";
export default Controller.extend(ModalFunctionality, {
@observes("model")
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-incoming-email.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-incoming-email.js
index 45df8e46288..6055baa1fe4 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-incoming-email.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-incoming-email.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
import IncomingEmail from "admin/models/incoming-email";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import discourseComputed from "discourse-common/utils/decorators";
import { longDate } from "discourse/lib/formatter";
import { popupAjaxError } from "discourse/lib/ajax-error";
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-install-theme.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-install-theme.js
index 4bdb6ca85c5..79f47dfc696 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-install-theme.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-install-theme.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
-import { equal, match, alias } from "@ember/object/computed";
+import { COMPONENTS, THEMES } from "admin/models/theme";
import Controller, { inject as controller } from "@ember/controller";
+import { alias, equal, match } from "@ember/object/computed";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { POPULAR_THEMES } from "discourse-common/helpers/popular-themes";
import { ajax } from "discourse/lib/ajax";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { THEMES, COMPONENTS } from "admin/models/theme";
-import { POPULAR_THEMES } from "discourse-common/helpers/popular-themes";
import { set } from "@ember/object";
const MIN_NAME_LENGTH = 4;
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-merge-users-confirmation.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-merge-users-confirmation.js
index f2233c07a3b..48be2946bc4 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-merge-users-confirmation.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-merge-users-confirmation.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
import Controller, { inject as controller } from "@ember/controller";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import { action } from "@ember/object";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend(ModalFunctionality, {
adminUserIndex: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-merge-users-prompt.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-merge-users-prompt.js
index baaf7cef7a9..2a088dff314 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-merge-users-prompt.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-merge-users-prompt.js
@@ -1,8 +1,8 @@
import Controller, { inject as controller } from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import { action } from "@ember/object";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend(ModalFunctionality, {
adminUserIndex: controller(),
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-reseed.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-reseed.js
index b29a800aa05..672f6d8db3f 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-reseed.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-reseed.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-silence-user.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-silence-user.js
index e379b903c2e..b76565f8157 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-silence-user.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-silence-user.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
import Controller from "@ember/controller";
import PenaltyController from "admin/mixins/penalty-controller";
+import discourseComputed from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
export default Controller.extend(PenaltyController, {
silenceUntil: null,
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-suspend-user.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-suspend-user.js
index 4997f629470..2712b57cf23 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-suspend-user.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-suspend-user.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
import Controller from "@ember/controller";
import PenaltyController from "admin/mixins/penalty-controller";
+import discourseComputed from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
export default Controller.extend(PenaltyController, {
suspendUntil: null,
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-uploaded-image-list.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-uploaded-image-list.js
index 0aeffaad591..7ab4cb69848 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-uploaded-image-list.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-uploaded-image-list.js
@@ -1,5 +1,5 @@
+import { observes, on } from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
-import { on, observes } from "discourse-common/utils/decorators";
import ModalFunctionality from "discourse/mixins/modal-functionality";
export default Controller.extend(ModalFunctionality, {
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/admin-watched-word-test.js b/app/assets/javascripts/admin/addon/controllers/modals/admin-watched-word-test.js
index b088cccb753..215cc08a6d9 100644
--- a/app/assets/javascripts/admin/addon/controllers/modals/admin-watched-word-test.js
+++ b/app/assets/javascripts/admin/addon/controllers/modals/admin-watched-word-test.js
@@ -1,6 +1,6 @@
import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend(ModalFunctionality, {
@discourseComputed("value", "model.compiledRegularExpression")
diff --git a/app/assets/javascripts/admin/addon/helpers/check-icon.js b/app/assets/javascripts/admin/addon/helpers/check-icon.js
index 51fb238550d..14ae3e649c0 100644
--- a/app/assets/javascripts/admin/addon/helpers/check-icon.js
+++ b/app/assets/javascripts/admin/addon/helpers/check-icon.js
@@ -1,6 +1,6 @@
+import { htmlSafe } from "@ember/template";
import { registerUnbound } from "discourse-common/lib/helpers";
import { renderIcon } from "discourse-common/lib/icon-library";
-import { htmlSafe } from "@ember/template";
registerUnbound("check-icon", function (value) {
let icon = value ? "check" : "times";
diff --git a/app/assets/javascripts/admin/addon/helpers/disposition-icon.js b/app/assets/javascripts/admin/addon/helpers/disposition-icon.js
index 03960ff289d..5dbd069cf33 100644
--- a/app/assets/javascripts/admin/addon/helpers/disposition-icon.js
+++ b/app/assets/javascripts/admin/addon/helpers/disposition-icon.js
@@ -1,5 +1,5 @@
-import { iconHTML } from "discourse-common/lib/icon-library";
import Helper from "@ember/component/helper";
+import { iconHTML } from "discourse-common/lib/icon-library";
export default Helper.extend({
compute([disposition]) {
diff --git a/app/assets/javascripts/admin/addon/helpers/post-action-title.js b/app/assets/javascripts/admin/addon/helpers/post-action-title.js
index 2d8e3c3fe8e..9a1d213d93d 100644
--- a/app/assets/javascripts/admin/addon/helpers/post-action-title.js
+++ b/app/assets/javascripts/admin/addon/helpers/post-action-title.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Helper from "@ember/component/helper";
+import I18n from "I18n";
function postActionTitle([id, nameKey]) {
let title = I18n.t(`admin.flags.short_names.${nameKey}`, {
diff --git a/app/assets/javascripts/admin/addon/helpers/preserve-newlines.js b/app/assets/javascripts/admin/addon/helpers/preserve-newlines.js
index 16639f30ccc..3d7f2e019e7 100644
--- a/app/assets/javascripts/admin/addon/helpers/preserve-newlines.js
+++ b/app/assets/javascripts/admin/addon/helpers/preserve-newlines.js
@@ -1,5 +1,5 @@
-import { htmlHelper } from "discourse-common/lib/helpers";
import { escapeExpression } from "discourse/lib/utilities";
+import { htmlHelper } from "discourse-common/lib/helpers";
export default htmlHelper((str) =>
escapeExpression(str).replace(/\n/g, "
")
diff --git a/app/assets/javascripts/admin/addon/mixins/penalty-controller.js b/app/assets/javascripts/admin/addon/mixins/penalty-controller.js
index 250d60664f6..55514dfe486 100644
--- a/app/assets/javascripts/admin/addon/mixins/penalty-controller.js
+++ b/app/assets/javascripts/admin/addon/mixins/penalty-controller.js
@@ -1,10 +1,10 @@
import I18n from "I18n";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { extractError } from "discourse/lib/ajax-error";
import Mixin from "@ember/object/mixin";
-import { next } from "@ember/runloop";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
import { Promise } from "rsvp";
import bootbox from "bootbox";
+import { extractError } from "discourse/lib/ajax-error";
+import { next } from "@ember/runloop";
export default Mixin.create(ModalFunctionality, {
errorMessage: null,
diff --git a/app/assets/javascripts/admin/addon/mixins/period-computation.js b/app/assets/javascripts/admin/addon/mixins/period-computation.js
index 7b8afe796a5..b46503e73c0 100644
--- a/app/assets/javascripts/admin/addon/mixins/period-computation.js
+++ b/app/assets/javascripts/admin/addon/mixins/period-computation.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import DiscourseURL from "discourse/lib/url";
import Mixin from "@ember/object/mixin";
+import discourseComputed from "discourse-common/utils/decorators";
export default Mixin.create({
queryParams: ["period"],
diff --git a/app/assets/javascripts/admin/addon/mixins/setting-component.js b/app/assets/javascripts/admin/addon/mixins/setting-component.js
index c7d42df43a3..d96bd40c22b 100644
--- a/app/assets/javascripts/admin/addon/mixins/setting-component.js
+++ b/app/assets/javascripts/admin/addon/mixins/setting-component.js
@@ -1,14 +1,14 @@
-import I18n from "I18n";
-import { warn } from "@ember/debug";
-import discourseComputed from "discourse-common/utils/decorators";
import { alias, oneWay } from "@ember/object/computed";
-import { categoryLinkHTML } from "discourse/helpers/category-link";
-import { on } from "@ember/object/evented";
+import I18n from "I18n";
import Mixin from "@ember/object/mixin";
-import showModal from "discourse/lib/show-modal";
import { Promise } from "rsvp";
import { ajax } from "discourse/lib/ajax";
+import { categoryLinkHTML } from "discourse/helpers/category-link";
+import discourseComputed from "discourse-common/utils/decorators";
import { htmlSafe } from "@ember/template";
+import { on } from "@ember/object/evented";
+import showModal from "discourse/lib/show-modal";
+import { warn } from "@ember/debug";
const CUSTOM_TYPES = [
"bool",
diff --git a/app/assets/javascripts/admin/addon/mixins/setting-object.js b/app/assets/javascripts/admin/addon/mixins/setting-object.js
index 5a40360b084..29dbb0d9679 100644
--- a/app/assets/javascripts/admin/addon/mixins/setting-object.js
+++ b/app/assets/javascripts/admin/addon/mixins/setting-object.js
@@ -1,7 +1,7 @@
import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { computed } from "@ember/object";
import Mixin from "@ember/object/mixin";
+import { computed } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
import { isPresent } from "@ember/utils";
export default Mixin.create({
diff --git a/app/assets/javascripts/admin/addon/models/admin-dashboard.js b/app/assets/javascripts/admin/addon/models/admin-dashboard.js
index dec30faf2da..400ebe161bb 100644
--- a/app/assets/javascripts/admin/addon/models/admin-dashboard.js
+++ b/app/assets/javascripts/admin/addon/models/admin-dashboard.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
const GENERAL_ATTRIBUTES = [
"updated_at",
diff --git a/app/assets/javascripts/admin/addon/models/admin-user.js b/app/assets/javascripts/admin/addon/models/admin-user.js
index 0bc1132623b..3f40cb74743 100644
--- a/app/assets/javascripts/admin/addon/models/admin-user.js
+++ b/app/assets/javascripts/admin/addon/models/admin-user.js
@@ -1,16 +1,16 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { filter, or, gt, lt, not } from "@ember/object/computed";
-import { iconHTML } from "discourse-common/lib/icon-library";
-import { ajax } from "discourse/lib/ajax";
-import { propertyNotEqual } from "discourse/lib/computed";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import Group from "discourse/models/group";
import DiscourseURL, { userPath } from "discourse/lib/url";
+import { filter, gt, lt, not, or } from "@ember/object/computed";
+import Group from "discourse/models/group";
+import I18n from "I18n";
import { Promise } from "rsvp";
import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
+import { iconHTML } from "discourse-common/lib/icon-library";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { propertyNotEqual } from "discourse/lib/computed";
const wrapAdmin = (user) => (user ? AdminUser.create(user) : null);
diff --git a/app/assets/javascripts/admin/addon/models/api-key.js b/app/assets/javascripts/admin/addon/models/api-key.js
index adf186d4548..be5475a4abc 100644
--- a/app/assets/javascripts/admin/addon/models/api-key.js
+++ b/app/assets/javascripts/admin/addon/models/api-key.js
@@ -1,8 +1,8 @@
-import discourseComputed from "discourse-common/utils/decorators";
import AdminUser from "admin/models/admin-user";
import RestModel from "discourse/models/rest";
import { ajax } from "discourse/lib/ajax";
import { computed } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
import { fmt } from "discourse/lib/computed";
const ApiKey = RestModel.extend({
diff --git a/app/assets/javascripts/admin/addon/models/backup-status.js b/app/assets/javascripts/admin/addon/models/backup-status.js
index 474c3c16889..dffad0d0609 100644
--- a/app/assets/javascripts/admin/addon/models/backup-status.js
+++ b/app/assets/javascripts/admin/addon/models/backup-status.js
@@ -1,6 +1,6 @@
+import EmberObject from "@ember/object";
import discourseComputed from "discourse-common/utils/decorators";
import { not } from "@ember/object/computed";
-import EmberObject from "@ember/object";
export default EmberObject.extend({
restoreDisabled: not("restoreEnabled"),
diff --git a/app/assets/javascripts/admin/addon/models/backup.js b/app/assets/javascripts/admin/addon/models/backup.js
index 4112b06f2b7..2d2b88152c1 100644
--- a/app/assets/javascripts/admin/addon/models/backup.js
+++ b/app/assets/javascripts/admin/addon/models/backup.js
@@ -1,10 +1,10 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { ajax } from "discourse/lib/ajax";
-import { extractError } from "discourse/lib/ajax-error";
import EmberObject from "@ember/object";
+import I18n from "I18n";
import MessageBus from "message-bus-client";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import { extractError } from "discourse/lib/ajax-error";
+import getURL from "discourse-common/lib/get-url";
const Backup = EmberObject.extend({
destroy() {
diff --git a/app/assets/javascripts/admin/addon/models/color-scheme-color.js b/app/assets/javascripts/admin/addon/models/color-scheme-color.js
index f5427d542ce..49cb552a92f 100644
--- a/app/assets/javascripts/admin/addon/models/color-scheme-color.js
+++ b/app/assets/javascripts/admin/addon/models/color-scheme-color.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
import discourseComputed, {
observes,
on,
} from "discourse-common/utils/decorators";
-import { propertyNotEqual } from "discourse/lib/computed";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { propertyNotEqual } from "discourse/lib/computed";
const ColorSchemeColor = EmberObject.extend({
@on("init")
diff --git a/app/assets/javascripts/admin/addon/models/color-scheme.js b/app/assets/javascripts/admin/addon/models/color-scheme.js
index 4bce289ba7e..e1b73ad14e8 100644
--- a/app/assets/javascripts/admin/addon/models/color-scheme.js
+++ b/app/assets/javascripts/admin/addon/models/color-scheme.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
import { A } from "@ember/array";
import ArrayProxy from "@ember/array/proxy";
-import discourseComputed from "discourse-common/utils/decorators";
-import { not } from "@ember/object/computed";
-import { ajax } from "discourse/lib/ajax";
import ColorSchemeColor from "admin/models/color-scheme-color";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import { not } from "@ember/object/computed";
const ColorScheme = EmberObject.extend({
init() {
diff --git a/app/assets/javascripts/admin/addon/models/email-log.js b/app/assets/javascripts/admin/addon/models/email-log.js
index 18406ceb7a6..6565611974a 100644
--- a/app/assets/javascripts/admin/addon/models/email-log.js
+++ b/app/assets/javascripts/admin/addon/models/email-log.js
@@ -1,7 +1,7 @@
-import getURL from "discourse-common/lib/get-url";
-import { ajax } from "discourse/lib/ajax";
import AdminUser from "admin/models/admin-user";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
+import getURL from "discourse-common/lib/get-url";
const EmailLog = EmberObject.extend({});
diff --git a/app/assets/javascripts/admin/addon/models/email-preview.js b/app/assets/javascripts/admin/addon/models/email-preview.js
index 893fb5b4fb8..96ffe2f9499 100644
--- a/app/assets/javascripts/admin/addon/models/email-preview.js
+++ b/app/assets/javascripts/admin/addon/models/email-preview.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
const EmailPreview = EmberObject.extend({});
diff --git a/app/assets/javascripts/admin/addon/models/email-settings.js b/app/assets/javascripts/admin/addon/models/email-settings.js
index 52ac14acec9..f959df408f6 100644
--- a/app/assets/javascripts/admin/addon/models/email-settings.js
+++ b/app/assets/javascripts/admin/addon/models/email-settings.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
const EmailSettings = EmberObject.extend({});
diff --git a/app/assets/javascripts/admin/addon/models/email-template.js b/app/assets/javascripts/admin/addon/models/email-template.js
index b58da0457f7..4be7d9fff93 100644
--- a/app/assets/javascripts/admin/addon/models/email-template.js
+++ b/app/assets/javascripts/admin/addon/models/email-template.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import RestModel from "discourse/models/rest";
+import { ajax } from "discourse/lib/ajax";
const { getProperties } = Ember;
export default RestModel.extend({
diff --git a/app/assets/javascripts/admin/addon/models/flag-type.js b/app/assets/javascripts/admin/addon/models/flag-type.js
index 607cb755d85..5859584ce7f 100644
--- a/app/assets/javascripts/admin/addon/models/flag-type.js
+++ b/app/assets/javascripts/admin/addon/models/flag-type.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import RestModel from "discourse/models/rest";
+import discourseComputed from "discourse-common/utils/decorators";
export default RestModel.extend({
@discourseComputed("id")
diff --git a/app/assets/javascripts/admin/addon/models/incoming-email.js b/app/assets/javascripts/admin/addon/models/incoming-email.js
index 42eb995f851..8489ae8dd35 100644
--- a/app/assets/javascripts/admin/addon/models/incoming-email.js
+++ b/app/assets/javascripts/admin/addon/models/incoming-email.js
@@ -1,6 +1,6 @@
-import { ajax } from "discourse/lib/ajax";
import AdminUser from "admin/models/admin-user";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
const IncomingEmail = EmberObject.extend({});
diff --git a/app/assets/javascripts/admin/addon/models/permalink.js b/app/assets/javascripts/admin/addon/models/permalink.js
index de61b27fd40..a2e8445b082 100644
--- a/app/assets/javascripts/admin/addon/models/permalink.js
+++ b/app/assets/javascripts/admin/addon/models/permalink.js
@@ -1,8 +1,8 @@
+import Category from "discourse/models/category";
+import DiscourseURL from "discourse/lib/url";
+import EmberObject from "@ember/object";
import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";
-import DiscourseURL from "discourse/lib/url";
-import Category from "discourse/models/category";
-import EmberObject from "@ember/object";
const Permalink = EmberObject.extend({
save: function () {
diff --git a/app/assets/javascripts/admin/addon/models/report.js b/app/assets/javascripts/admin/addon/models/report.js
index a7b3d5786d7..baa0aba16f8 100644
--- a/app/assets/javascripts/admin/addon/models/report.js
+++ b/app/assets/javascripts/admin/addon/models/report.js
@@ -1,19 +1,19 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { makeArray } from "discourse-common/lib/helpers";
-import { isEmpty } from "@ember/utils";
-import EmberObject from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import round from "discourse/lib/round";
+import { durationTiny, number } from "discourse/lib/formatter";
import {
+ escapeExpression,
fillMissingDates,
formatUsername,
toNumber,
- escapeExpression,
} from "discourse/lib/utilities";
-import { number, durationTiny } from "discourse/lib/formatter";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
+import { makeArray } from "discourse-common/lib/helpers";
import { renderAvatar } from "discourse/helpers/user-avatar";
+import round from "discourse/lib/round";
// Change this line each time report format change
// and you want to ensure cache is reset
diff --git a/app/assets/javascripts/admin/addon/models/screened-email.js b/app/assets/javascripts/admin/addon/models/screened-email.js
index 4e902488d17..857cca0d63c 100644
--- a/app/assets/javascripts/admin/addon/models/screened-email.js
+++ b/app/assets/javascripts/admin/addon/models/screened-email.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
const ScreenedEmail = EmberObject.extend({
@discourseComputed("action")
diff --git a/app/assets/javascripts/admin/addon/models/screened-ip-address.js b/app/assets/javascripts/admin/addon/models/screened-ip-address.js
index 33e2b443178..a7d29aab319 100644
--- a/app/assets/javascripts/admin/addon/models/screened-ip-address.js
+++ b/app/assets/javascripts/admin/addon/models/screened-ip-address.js
@@ -1,8 +1,8 @@
+import EmberObject from "@ember/object";
import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";
import { equal } from "@ember/object/computed";
-import { ajax } from "discourse/lib/ajax";
-import EmberObject from "@ember/object";
const ScreenedIpAddress = EmberObject.extend({
@discourseComputed("action_name")
diff --git a/app/assets/javascripts/admin/addon/models/screened-url.js b/app/assets/javascripts/admin/addon/models/screened-url.js
index a7bc7cfa6f8..f3769c7d2f1 100644
--- a/app/assets/javascripts/admin/addon/models/screened-url.js
+++ b/app/assets/javascripts/admin/addon/models/screened-url.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
const ScreenedUrl = EmberObject.extend({
@discourseComputed("action")
diff --git a/app/assets/javascripts/admin/addon/models/site-setting.js b/app/assets/javascripts/admin/addon/models/site-setting.js
index 350281e6162..49ed58366e1 100644
--- a/app/assets/javascripts/admin/addon/models/site-setting.js
+++ b/app/assets/javascripts/admin/addon/models/site-setting.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import { ajax } from "discourse/lib/ajax";
-import Setting from "admin/mixins/setting-object";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import Setting from "admin/mixins/setting-object";
+import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";
const SiteSetting = EmberObject.extend(Setting, {
diff --git a/app/assets/javascripts/admin/addon/models/site-text.js b/app/assets/javascripts/admin/addon/models/site-text.js
index 7dcd614402f..d6c4c4d1300 100644
--- a/app/assets/javascripts/admin/addon/models/site-text.js
+++ b/app/assets/javascripts/admin/addon/models/site-text.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import RestModel from "discourse/models/rest";
+import { ajax } from "discourse/lib/ajax";
const { getProperties } = Ember;
export default RestModel.extend({
diff --git a/app/assets/javascripts/admin/addon/models/staff-action-log.js b/app/assets/javascripts/admin/addon/models/staff-action-log.js
index 09d84b67910..70d86c41e77 100644
--- a/app/assets/javascripts/admin/addon/models/staff-action-log.js
+++ b/app/assets/javascripts/admin/addon/models/staff-action-log.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import AdminUser from "admin/models/admin-user";
-import { escapeExpression } from "discourse/lib/utilities";
+import I18n from "I18n";
import RestModel from "discourse/models/rest";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import { escapeExpression } from "discourse/lib/utilities";
function format(label, value, escape = true) {
return value
diff --git a/app/assets/javascripts/admin/addon/models/theme-settings.js b/app/assets/javascripts/admin/addon/models/theme-settings.js
index a823592ad2f..d91c3e583ef 100644
--- a/app/assets/javascripts/admin/addon/models/theme-settings.js
+++ b/app/assets/javascripts/admin/addon/models/theme-settings.js
@@ -1,4 +1,4 @@
-import Setting from "admin/mixins/setting-object";
import EmberObject from "@ember/object";
+import Setting from "admin/mixins/setting-object";
export default EmberObject.extend(Setting, {});
diff --git a/app/assets/javascripts/admin/addon/models/theme.js b/app/assets/javascripts/admin/addon/models/theme.js
index 10c78c5b826..9783b07e00f 100644
--- a/app/assets/javascripts/admin/addon/models/theme.js
+++ b/app/assets/javascripts/admin/addon/models/theme.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import { get } from "@ember/object";
+import { gt, or } from "@ember/object/computed";
import { isBlank, isEmpty } from "@ember/utils";
-import { or, gt } from "@ember/object/computed";
+import I18n from "I18n";
import RestModel from "discourse/models/rest";
import discourseComputed from "discourse-common/utils/decorators";
+import { get } from "@ember/object";
import { popupAjaxError } from "discourse/lib/ajax-error";
const THEME_UPLOAD_VAR = 2;
diff --git a/app/assets/javascripts/admin/addon/models/tl3-requirements.js b/app/assets/javascripts/admin/addon/models/tl3-requirements.js
index a6b31363b9b..920d6e5f665 100644
--- a/app/assets/javascripts/admin/addon/models/tl3-requirements.js
+++ b/app/assets/javascripts/admin/addon/models/tl3-requirements.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import EmberObject from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
export default EmberObject.extend({
@discourseComputed("days_visited", "time_period")
diff --git a/app/assets/javascripts/admin/addon/models/version-check.js b/app/assets/javascripts/admin/addon/models/version-check.js
index 53882d6eca4..4f939064af3 100644
--- a/app/assets/javascripts/admin/addon/models/version-check.js
+++ b/app/assets/javascripts/admin/addon/models/version-check.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
const VersionCheck = EmberObject.extend({
@discourseComputed("updated_at")
diff --git a/app/assets/javascripts/admin/addon/models/watched-word.js b/app/assets/javascripts/admin/addon/models/watched-word.js
index 938b25f7bc6..741d0372491 100644
--- a/app/assets/javascripts/admin/addon/models/watched-word.js
+++ b/app/assets/javascripts/admin/addon/models/watched-word.js
@@ -1,6 +1,6 @@
+import EmberObject from "@ember/object";
import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import EmberObject from "@ember/object";
const WatchedWord = EmberObject.extend({
save() {
diff --git a/app/assets/javascripts/admin/addon/models/web-hook.js b/app/assets/javascripts/admin/addon/models/web-hook.js
index 677d76aa88d..8dd568a9fb1 100644
--- a/app/assets/javascripts/admin/addon/models/web-hook.js
+++ b/app/assets/javascripts/admin/addon/models/web-hook.js
@@ -1,9 +1,9 @@
-import { isEmpty } from "@ember/utils";
-import RestModel from "discourse/models/rest";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
import Category from "discourse/models/category";
import Group from "discourse/models/group";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import RestModel from "discourse/models/rest";
import Site from "discourse/models/site";
+import { isEmpty } from "@ember/utils";
export default RestModel.extend({
content_type: 1, // json
diff --git a/app/assets/javascripts/admin/addon/routes/admin-backups-index.js b/app/assets/javascripts/admin/addon/routes/admin-backups-index.js
index aee755b7051..08f68952d08 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-backups-index.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-backups-index.js
@@ -1,5 +1,5 @@
-import Route from "@ember/routing/route";
import Backup from "admin/models/backup";
+import Route from "@ember/routing/route";
export default Route.extend({
activate() {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-backups-logs.js b/app/assets/javascripts/admin/addon/routes/admin-backups-logs.js
index e2e3a933c8b..8de1ef52401 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-backups-logs.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-backups-logs.js
@@ -1,6 +1,6 @@
import EmberObject from "@ember/object";
-import Route from "@ember/routing/route";
import PreloadStore from "discourse/lib/preload-store";
+import Route from "@ember/routing/route";
export default Route.extend({
// since the logs are pushed via the message bus
diff --git a/app/assets/javascripts/admin/addon/routes/admin-backups.js b/app/assets/javascripts/admin/addon/routes/admin-backups.js
index 41c6cb0f8b5..1e26c0221db 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-backups.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-backups.js
@@ -1,14 +1,14 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import EmberObject from "@ember/object";
-import DiscourseRoute from "discourse/routes/discourse";
-import { ajax } from "discourse/lib/ajax";
-import showModal from "discourse/lib/show-modal";
-import BackupStatus from "admin/models/backup-status";
import Backup from "admin/models/backup";
+import BackupStatus from "admin/models/backup-status";
+import DiscourseRoute from "discourse/routes/discourse";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import PreloadStore from "discourse/lib/preload-store";
import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import getURL from "discourse-common/lib/get-url";
+import showModal from "discourse/lib/show-modal";
const LOG_CHANNEL = "/admin/backups/logs";
diff --git a/app/assets/javascripts/admin/addon/routes/admin-badges-show.js b/app/assets/javascripts/admin/addon/routes/admin-badges-show.js
index c95cae8afa2..a370cd32d85 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-badges-show.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-badges-show.js
@@ -1,10 +1,10 @@
+import Badge from "discourse/models/badge";
import I18n from "I18n";
-import { get } from "@ember/object";
import Route from "@ember/routing/route";
import { ajax } from "discourse/lib/ajax";
-import Badge from "discourse/models/badge";
-import showModal from "discourse/lib/show-modal";
import bootbox from "bootbox";
+import { get } from "@ember/object";
+import showModal from "discourse/lib/show-modal";
export default Route.extend({
serialize(m) {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-badges.js b/app/assets/javascripts/admin/addon/routes/admin-badges.js
index 59bc0944cbf..ac4b9e9b534 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-badges.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-badges.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
-import { ajax } from "discourse/lib/ajax";
import Badge from "discourse/models/badge";
import BadgeGrouping from "discourse/models/badge-grouping";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
export default DiscourseRoute.extend({
_json: null,
diff --git a/app/assets/javascripts/admin/addon/routes/admin-customize-colors.js b/app/assets/javascripts/admin/addon/routes/admin-customize-colors.js
index b2d4f2c16bc..cf2dc3d18d4 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-customize-colors.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-customize-colors.js
@@ -1,5 +1,5 @@
-import Route from "@ember/routing/route";
import ColorScheme from "admin/models/color-scheme";
+import Route from "@ember/routing/route";
export default Route.extend({
model() {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-customize-themes-show.js b/app/assets/javascripts/admin/addon/routes/admin-customize-themes-show.js
index feaf0ef7aef..6311e6100e5 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-customize-themes-show.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-customize-themes-show.js
@@ -1,7 +1,7 @@
+import { COMPONENTS, THEMES } from "admin/models/theme";
import I18n from "I18n";
import Route from "@ember/routing/route";
import { scrollTop } from "discourse/mixins/scroll-top";
-import { THEMES, COMPONENTS } from "admin/models/theme";
export default Route.extend({
serialize(model) {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-email-bounced.js b/app/assets/javascripts/admin/addon/routes/admin-email-bounced.js
index 041b25fc058..d89010c9efa 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-email-bounced.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-email-bounced.js
@@ -1,5 +1,5 @@
-import showModal from "discourse/lib/show-modal";
import AdminEmailLogs from "admin/routes/admin-email-logs";
+import showModal from "discourse/lib/show-modal";
export default AdminEmailLogs.extend({
status: "bounced",
diff --git a/app/assets/javascripts/admin/addon/routes/admin-email-preview-digest.js b/app/assets/javascripts/admin/addon/routes/admin-email-preview-digest.js
index 03d72f0f826..730bcd0e7ea 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-email-preview-digest.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-email-preview-digest.js
@@ -1,5 +1,5 @@
-import DiscourseRoute from "discourse/routes/discourse";
import EmailPreview, { oneWeekAgo } from "admin/models/email-preview";
+import DiscourseRoute from "discourse/routes/discourse";
export default DiscourseRoute.extend({
model() {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-email-rejected.js b/app/assets/javascripts/admin/addon/routes/admin-email-rejected.js
index e5d45015497..ce45fa8962e 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-email-rejected.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-email-rejected.js
@@ -1,5 +1,5 @@
-import showModal from "discourse/lib/show-modal";
import AdminEmailIncomings from "admin/routes/admin-email-incomings";
+import showModal from "discourse/lib/show-modal";
export default AdminEmailIncomings.extend({
status: "rejected",
diff --git a/app/assets/javascripts/admin/addon/routes/admin-emojis.js b/app/assets/javascripts/admin/addon/routes/admin-emojis.js
index 5db8760a517..5047bd6f828 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-emojis.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-emojis.js
@@ -1,5 +1,5 @@
-import EmberObject from "@ember/object";
import DiscourseRoute from "discourse/routes/discourse";
+import EmberObject from "@ember/object";
import { ajax } from "discourse/lib/ajax";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/admin/addon/routes/admin-logs-staff-action-logs.js b/app/assets/javascripts/admin/addon/routes/admin-logs-staff-action-logs.js
index a3c3f196e0c..68657da533f 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-logs-staff-action-logs.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-logs-staff-action-logs.js
@@ -1,6 +1,6 @@
import DiscourseRoute from "discourse/routes/discourse";
-import showModal from "discourse/lib/show-modal";
import EmberObject from "@ember/object";
+import showModal from "discourse/lib/show-modal";
export default DiscourseRoute.extend({
queryParams: {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-search-logs-index.js b/app/assets/javascripts/admin/addon/routes/admin-search-logs-index.js
index c688b8ebbaa..c04f3b22b81 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-search-logs-index.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-search-logs-index.js
@@ -1,5 +1,5 @@
-import EmberObject from "@ember/object";
import DiscourseRoute from "discourse/routes/discourse";
+import EmberObject from "@ember/object";
import { ajax } from "discourse/lib/ajax";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/admin/addon/routes/admin-search-logs-term.js b/app/assets/javascripts/admin/addon/routes/admin-search-logs-term.js
index 989d2583843..b9613fe04fa 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-search-logs-term.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-search-logs-term.js
@@ -1,5 +1,5 @@
-import EmberObject from "@ember/object";
import DiscourseRoute from "discourse/routes/discourse";
+import EmberObject from "@ember/object";
import { ajax } from "discourse/lib/ajax";
import { fillMissingDates } from "discourse/lib/utilities";
import { translateResults } from "discourse/lib/search";
diff --git a/app/assets/javascripts/admin/addon/routes/admin-site-settings-category.js b/app/assets/javascripts/admin/addon/routes/admin-site-settings-category.js
index be2a2180d28..aab0b337db7 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-site-settings-category.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-site-settings-category.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import EmberObject from "@ember/object";
import DiscourseRoute from "discourse/routes/discourse";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
export default DiscourseRoute.extend({
model(params) {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-site-text-index.js b/app/assets/javascripts/admin/addon/routes/admin-site-text-index.js
index 036438235d5..85dfe8e8c1b 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-site-text-index.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-site-text-index.js
@@ -1,6 +1,6 @@
import Route from "@ember/routing/route";
-import showModal from "discourse/lib/show-modal";
import { getProperties } from "@ember/object";
+import showModal from "discourse/lib/show-modal";
export default Route.extend({
queryParams: {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-user-badges.js b/app/assets/javascripts/admin/addon/routes/admin-user-badges.js
index f15649f92d4..f9549e39e6b 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-user-badges.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-user-badges.js
@@ -1,6 +1,6 @@
+import Badge from "discourse/models/badge";
import DiscourseRoute from "discourse/routes/discourse";
import UserBadge from "discourse/models/user-badge";
-import Badge from "discourse/models/badge";
export default DiscourseRoute.extend({
model() {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-user.js b/app/assets/javascripts/admin/addon/routes/admin-user.js
index 90436dabd43..d9627ba571c 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-user.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-user.js
@@ -1,6 +1,6 @@
-import { get } from "@ember/object";
-import DiscourseRoute from "discourse/routes/discourse";
import AdminUser from "admin/models/admin-user";
+import DiscourseRoute from "discourse/routes/discourse";
+import { get } from "@ember/object";
export default DiscourseRoute.extend({
serialize(model) {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-users-list.js b/app/assets/javascripts/admin/addon/routes/admin-users-list.js
index db8106a8ed5..4630c8efc83 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-users-list.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-users-list.js
@@ -1,7 +1,7 @@
+import AdminUser from "admin/models/admin-user";
import DiscourseRoute from "discourse/routes/discourse";
import { exportEntity } from "discourse/lib/export-csv";
import { outputExportResult } from "discourse/lib/export-result";
-import AdminUser from "admin/models/admin-user";
export default DiscourseRoute.extend({
actions: {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-watched-words-action.js b/app/assets/javascripts/admin/addon/routes/admin-watched-words-action.js
index 3c770f7e093..fe1ce75ab70 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-watched-words-action.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-watched-words-action.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import EmberObject from "@ember/object";
import DiscourseRoute from "discourse/routes/discourse";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
export default DiscourseRoute.extend({
model(params) {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-web-hooks-show-events.js b/app/assets/javascripts/admin/addon/routes/admin-web-hooks-show-events.js
index b07b390d404..1b7923224bb 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-web-hooks-show-events.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-web-hooks-show-events.js
@@ -1,5 +1,5 @@
-import { get } from "@ember/object";
import DiscourseRoute from "discourse/routes/discourse";
+import { get } from "@ember/object";
export default DiscourseRoute.extend({
model(params) {
diff --git a/app/assets/javascripts/admin/addon/routes/admin-web-hooks-show.js b/app/assets/javascripts/admin/addon/routes/admin-web-hooks-show.js
index a5eb3dd8735..6d7c64f9559 100644
--- a/app/assets/javascripts/admin/addon/routes/admin-web-hooks-show.js
+++ b/app/assets/javascripts/admin/addon/routes/admin-web-hooks-show.js
@@ -1,5 +1,5 @@
-import { get } from "@ember/object";
import DiscourseRoute from "discourse/routes/discourse";
+import { get } from "@ember/object";
export default DiscourseRoute.extend({
serialize(model) {
diff --git a/app/assets/javascripts/admin/addon/routes/admin.js b/app/assets/javascripts/admin/addon/routes/admin.js
index c84051d1718..e0949ba414c 100644
--- a/app/assets/javascripts/admin/addon/routes/admin.js
+++ b/app/assets/javascripts/admin/addon/routes/admin.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
titleToken() {
diff --git a/app/assets/javascripts/admin/addon/services/admin-tools.js b/app/assets/javascripts/admin/addon/services/admin-tools.js
index fc02b998fe9..16294be1b3b 100644
--- a/app/assets/javascripts/admin/addon/services/admin-tools.js
+++ b/app/assets/javascripts/admin/addon/services/admin-tools.js
@@ -1,16 +1,16 @@
-import I18n from "I18n";
+import AdminUser from "admin/models/admin-user";
// A service that can act as a bridge between the front end Discourse application
// and the admin application. Use this if you need front end code to access admin
// modules. Inject it optionally, and if it exists go to town!
-import AdminUser from "admin/models/admin-user";
-import { iconHTML } from "discourse-common/lib/icon-library";
-import { ajax } from "discourse/lib/ajax";
-import showModal from "discourse/lib/show-modal";
-import { getOwner } from "discourse-common/lib/get-owner";
-import Service from "@ember/service";
+import I18n from "I18n";
import { Promise } from "rsvp";
+import Service from "@ember/service";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import { getOwner } from "discourse-common/lib/get-owner";
+import { iconHTML } from "discourse-common/lib/icon-library";
+import showModal from "discourse/lib/show-modal";
export default Service.extend({
init() {
diff --git a/app/assets/javascripts/admin/tests/admin/integration/components/group-list-setting-test.js b/app/assets/javascripts/admin/tests/admin/integration/components/group-list-setting-test.js
index 4df70d2c89e..025f868e989 100644
--- a/app/assets/javascripts/admin/tests/admin/integration/components/group-list-setting-test.js
+++ b/app/assets/javascripts/admin/tests/admin/integration/components/group-list-setting-test.js
@@ -1,7 +1,7 @@
-import { moduleForComponent } from "ember-qunit";
import EmberObject from "@ember/object";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import componentTest from "discourse/tests/helpers/component-test";
+import { moduleForComponent } from "ember-qunit";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
moduleForComponent("group-list", { integration: true });
diff --git a/app/assets/javascripts/admin/tests/admin/integration/components/themes-list-item-test.js b/app/assets/javascripts/admin/tests/admin/integration/components/themes-list-item-test.js
index ff2356ba6e5..0fe76fe463f 100644
--- a/app/assets/javascripts/admin/tests/admin/integration/components/themes-list-item-test.js
+++ b/app/assets/javascripts/admin/tests/admin/integration/components/themes-list-item-test.js
@@ -1,8 +1,8 @@
-import { queryAll } from "discourse/tests/helpers/qunit-helpers";
-import { moduleForComponent } from "ember-qunit";
import I18n from "I18n";
-import componentTest from "discourse/tests/helpers/component-test";
import Theme from "admin/models/theme";
+import componentTest from "discourse/tests/helpers/component-test";
+import { moduleForComponent } from "ember-qunit";
+import { queryAll } from "discourse/tests/helpers/qunit-helpers";
moduleForComponent("themes-list-item", { integration: true });
diff --git a/app/assets/javascripts/admin/tests/admin/integration/components/themes-list-test.js b/app/assets/javascripts/admin/tests/admin/integration/components/themes-list-test.js
index 0eaa6ebd799..cd6ab79551d 100644
--- a/app/assets/javascripts/admin/tests/admin/integration/components/themes-list-test.js
+++ b/app/assets/javascripts/admin/tests/admin/integration/components/themes-list-test.js
@@ -1,8 +1,8 @@
-import { queryAll } from "discourse/tests/helpers/qunit-helpers";
-import { moduleForComponent } from "ember-qunit";
+import Theme, { COMPONENTS, THEMES } from "admin/models/theme";
import I18n from "I18n";
import componentTest from "discourse/tests/helpers/component-test";
-import Theme, { THEMES, COMPONENTS } from "admin/models/theme";
+import { moduleForComponent } from "ember-qunit";
+import { queryAll } from "discourse/tests/helpers/qunit-helpers";
moduleForComponent("themes-list", { integration: true });
diff --git a/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-customize-themes-show-test.js b/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-customize-themes-show-test.js
index 318f55fdc07..b3a6c02b854 100644
--- a/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-customize-themes-show-test.js
+++ b/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-customize-themes-show-test.js
@@ -1,7 +1,7 @@
+import Theme from "admin/models/theme";
+import { mapRoutes } from "discourse/mapping-router";
import { moduleFor } from "ember-qunit";
import { test } from "qunit";
-import { mapRoutes } from "discourse/mapping-router";
-import Theme from "admin/models/theme";
moduleFor("controller:admin-customize-themes-show", {
beforeEach() {
diff --git a/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-customize-themes-test.js b/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-customize-themes-test.js
index 06eec98328a..ada14f06fc9 100644
--- a/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-customize-themes-test.js
+++ b/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-customize-themes-test.js
@@ -1,7 +1,7 @@
+import Theme from "admin/models/theme";
+import { mapRoutes } from "discourse/mapping-router";
import { moduleFor } from "ember-qunit";
import { test } from "qunit";
-import { mapRoutes } from "discourse/mapping-router";
-import Theme from "admin/models/theme";
moduleFor("controller:admin-customize-themes", {
beforeEach() {
diff --git a/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-user-badges-test.js b/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-user-badges-test.js
index b377f7f31d3..b4ba5a360be 100644
--- a/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-user-badges-test.js
+++ b/app/assets/javascripts/admin/tests/admin/unit/controllers/admin-user-badges-test.js
@@ -1,7 +1,7 @@
-import { moduleFor } from "ember-qunit";
-import { test } from "qunit";
import Badge from "discourse/models/badge";
import { mapRoutes } from "discourse/mapping-router";
+import { moduleFor } from "ember-qunit";
+import { test } from "qunit";
moduleFor("controller:admin-user-badges", {
beforeEach() {
diff --git a/app/assets/javascripts/admin/tests/admin/unit/models/theme-test.js b/app/assets/javascripts/admin/tests/admin/unit/models/theme-test.js
index 05f4dea5c1f..058db729215 100644
--- a/app/assets/javascripts/admin/tests/admin/unit/models/theme-test.js
+++ b/app/assets/javascripts/admin/tests/admin/unit/models/theme-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import Theme from "admin/models/theme";
module("model:theme");
diff --git a/app/assets/javascripts/discourse-common/addon/helpers/d-icon.js b/app/assets/javascripts/discourse-common/addon/helpers/d-icon.js
index 9d4e387df62..ec759798b2d 100644
--- a/app/assets/javascripts/discourse-common/addon/helpers/d-icon.js
+++ b/app/assets/javascripts/discourse-common/addon/helpers/d-icon.js
@@ -1,6 +1,6 @@
+import { htmlSafe } from "@ember/template";
import { registerUnbound } from "discourse-common/lib/helpers";
import { renderIcon } from "discourse-common/lib/icon-library";
-import { htmlSafe } from "@ember/template";
registerUnbound("d-icon", function (id, params) {
return htmlSafe(renderIcon("string", id, params));
diff --git a/app/assets/javascripts/discourse-common/addon/helpers/fa-icon.js b/app/assets/javascripts/discourse-common/addon/helpers/fa-icon.js
index 04d701153b8..7df981e96f4 100644
--- a/app/assets/javascripts/discourse-common/addon/helpers/fa-icon.js
+++ b/app/assets/javascripts/discourse-common/addon/helpers/fa-icon.js
@@ -1,7 +1,7 @@
-import { registerUnbound } from "discourse-common/lib/helpers";
-import { renderIcon } from "discourse-common/lib/icon-library";
import deprecated from "discourse-common/lib/deprecated";
import { htmlSafe } from "@ember/template";
+import { registerUnbound } from "discourse-common/lib/helpers";
+import { renderIcon } from "discourse-common/lib/icon-library";
export function iconHTML(id, params) {
return renderIcon("string", id, params);
diff --git a/app/assets/javascripts/discourse-common/addon/helpers/get-url.js b/app/assets/javascripts/discourse-common/addon/helpers/get-url.js
index e1821eeea26..14d907ec363 100644
--- a/app/assets/javascripts/discourse-common/addon/helpers/get-url.js
+++ b/app/assets/javascripts/discourse-common/addon/helpers/get-url.js
@@ -1,6 +1,6 @@
-import { registerUnbound } from "discourse-common/lib/helpers";
-import getUrl from "discourse-common/lib/get-url";
import deprecated from "discourse-common/lib/deprecated";
+import getUrl from "discourse-common/lib/get-url";
+import { registerUnbound } from "discourse-common/lib/helpers";
registerUnbound("get-url", (value) => getUrl(value));
registerUnbound("base-url", () => {
diff --git a/app/assets/javascripts/discourse-common/addon/helpers/html-safe.js b/app/assets/javascripts/discourse-common/addon/helpers/html-safe.js
index 355dbfb35ad..11809ba8b88 100644
--- a/app/assets/javascripts/discourse-common/addon/helpers/html-safe.js
+++ b/app/assets/javascripts/discourse-common/addon/helpers/html-safe.js
@@ -1,5 +1,5 @@
-import { registerUnbound } from "discourse-common/lib/helpers";
import { htmlSafe } from "@ember/template";
+import { registerUnbound } from "discourse-common/lib/helpers";
registerUnbound("html-safe", function (string) {
return htmlSafe(string);
diff --git a/app/assets/javascripts/discourse-common/addon/lib/get-owner.js b/app/assets/javascripts/discourse-common/addon/lib/get-owner.js
index f26a3bd7582..94a12c2358b 100644
--- a/app/assets/javascripts/discourse-common/addon/lib/get-owner.js
+++ b/app/assets/javascripts/discourse-common/addon/lib/get-owner.js
@@ -1,5 +1,5 @@
-import deprecated from "discourse-common/lib/deprecated";
import { getOwner as emberGetOwner, setOwner } from "@ember/application";
+import deprecated from "discourse-common/lib/deprecated";
let _default = {};
diff --git a/app/assets/javascripts/discourse-common/addon/lib/helpers.js b/app/assets/javascripts/discourse-common/addon/lib/helpers.js
index 76de9ae2f45..e9af233da88 100644
--- a/app/assets/javascripts/discourse-common/addon/lib/helpers.js
+++ b/app/assets/javascripts/discourse-common/addon/lib/helpers.js
@@ -1,6 +1,6 @@
-import { get } from "@ember/object";
import Helper from "@ember/component/helper";
import RawHandlebars from "discourse-common/lib/raw-handlebars";
+import { get } from "@ember/object";
import { htmlSafe } from "@ember/template";
export function makeArray(obj) {
diff --git a/app/assets/javascripts/discourse-common/addon/lib/icon-library.js b/app/assets/javascripts/discourse-common/addon/lib/icon-library.js
index 38d13285a8e..5f26ea7708a 100644
--- a/app/assets/javascripts/discourse-common/addon/lib/icon-library.js
+++ b/app/assets/javascripts/discourse-common/addon/lib/icon-library.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import { h } from "virtual-dom";
import attributeHook from "discourse-common/lib/attribute-hook";
+import { h } from "virtual-dom";
import { isDevelopment } from "discourse-common/config/environment";
const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
diff --git a/app/assets/javascripts/discourse-common/addon/resolver.js b/app/assets/javascripts/discourse-common/addon/resolver.js
index 4fcc1966d15..ac6b668030a 100644
--- a/app/assets/javascripts/discourse-common/addon/resolver.js
+++ b/app/assets/javascripts/discourse-common/addon/resolver.js
@@ -1,7 +1,7 @@
+import { classify, dasherize } from "@ember/string";
+import deprecated from "discourse-common/lib/deprecated";
import { findHelper } from "discourse-common/lib/helpers";
import { get } from "@ember/object";
-import deprecated from "discourse-common/lib/deprecated";
-import { classify, dasherize } from "@ember/string";
const _options = {};
diff --git a/app/assets/javascripts/discourse-common/addon/utils/decorators.js b/app/assets/javascripts/discourse-common/addon/utils/decorators.js
index 98742a87911..c7f3729d8e2 100644
--- a/app/assets/javascripts/discourse-common/addon/utils/decorators.js
+++ b/app/assets/javascripts/discourse-common/addon/utils/decorators.js
@@ -1,9 +1,9 @@
+import { bind as emberBind, next, schedule } from "@ember/runloop";
+import decoratorAlias from "discourse-common/utils/decorator-alias";
+import extractValue from "discourse-common/utils/extract-value";
import handleDescriptor from "discourse-common/utils/handle-descriptor";
import isDescriptor from "discourse-common/utils/is-descriptor";
-import extractValue from "discourse-common/utils/extract-value";
-import decoratorAlias from "discourse-common/utils/decorator-alias";
import macroAlias from "discourse-common/utils/macro-alias";
-import { schedule, next, bind as emberBind } from "@ember/runloop";
export default function discourseComputedDecorator(...params) {
// determine if user called as @discourseComputed('blah', 'blah') or @discourseComputed
diff --git a/app/assets/javascripts/discourse/app/adapters/post-reply-history.js b/app/assets/javascripts/discourse/app/adapters/post-reply-history.js
index 0116f327446..e8d58d969a5 100644
--- a/app/assets/javascripts/discourse/app/adapters/post-reply-history.js
+++ b/app/assets/javascripts/discourse/app/adapters/post-reply-history.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import RestAdapter from "discourse/adapters/rest";
+import { ajax } from "discourse/lib/ajax";
export default RestAdapter.extend({
find(store, type, findArgs) {
diff --git a/app/assets/javascripts/discourse/app/adapters/post-reply.js b/app/assets/javascripts/discourse/app/adapters/post-reply.js
index 7f12465127e..4d6871e2dec 100644
--- a/app/assets/javascripts/discourse/app/adapters/post-reply.js
+++ b/app/assets/javascripts/discourse/app/adapters/post-reply.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import RestAdapter from "discourse/adapters/rest";
+import { ajax } from "discourse/lib/ajax";
export default RestAdapter.extend({
find(store, type, findArgs) {
diff --git a/app/assets/javascripts/discourse/app/adapters/post.js b/app/assets/javascripts/discourse/app/adapters/post.js
index 4318cc0d076..3a203510f4f 100644
--- a/app/assets/javascripts/discourse/app/adapters/post.js
+++ b/app/assets/javascripts/discourse/app/adapters/post.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import RestAdapter, { Result } from "discourse/adapters/rest";
+import { ajax } from "discourse/lib/ajax";
import { underscore } from "@ember/string";
export default RestAdapter.extend({
diff --git a/app/assets/javascripts/discourse/app/adapters/topic-list.js b/app/assets/javascripts/discourse/app/adapters/topic-list.js
index cc36b230f5e..fb6a0c80d5e 100644
--- a/app/assets/javascripts/discourse/app/adapters/topic-list.js
+++ b/app/assets/javascripts/discourse/app/adapters/topic-list.js
@@ -1,7 +1,7 @@
-import getURL from "discourse-common/lib/get-url";
-import { ajax } from "discourse/lib/ajax";
-import RestAdapter from "discourse/adapters/rest";
import PreloadStore from "discourse/lib/preload-store";
+import RestAdapter from "discourse/adapters/rest";
+import { ajax } from "discourse/lib/ajax";
+import getURL from "discourse-common/lib/get-url";
export function finderFor(filter, params) {
return function () {
diff --git a/app/assets/javascripts/discourse/app/adapters/topic.js b/app/assets/javascripts/discourse/app/adapters/topic.js
index 5c22b1c17fc..ee68791717c 100644
--- a/app/assets/javascripts/discourse/app/adapters/topic.js
+++ b/app/assets/javascripts/discourse/app/adapters/topic.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import RestAdapter from "discourse/adapters/rest";
+import { ajax } from "discourse/lib/ajax";
export default RestAdapter.extend({
find(store, type, findArgs) {
diff --git a/app/assets/javascripts/discourse/app/app.js b/app/assets/javascripts/discourse/app/app.js
index e303100c63d..093dfe5eea4 100644
--- a/app/assets/javascripts/discourse/app/app.js
+++ b/app/assets/javascripts/discourse/app/app.js
@@ -1,6 +1,6 @@
import Application from "@ember/application";
-import { buildResolver } from "discourse-common/resolver";
import Mousetrap from "mousetrap";
+import { buildResolver } from "discourse-common/resolver";
const _pluginCallbacks = [];
diff --git a/app/assets/javascripts/discourse/app/components/about-page-users.js b/app/assets/javascripts/discourse/app/components/about-page-users.js
index 482daa80dad..f0412f4f24e 100644
--- a/app/assets/javascripts/discourse/app/components/about-page-users.js
+++ b/app/assets/javascripts/discourse/app/components/about-page-users.js
@@ -1,10 +1,10 @@
import Component from "@ember/component";
-import { userPath } from "discourse/lib/url";
+import { computed } from "@ember/object";
import { formatUsername } from "discourse/lib/utilities";
import { normalize } from "discourse/components/user-info";
-import { renderAvatar } from "discourse/helpers/user-avatar";
-import { computed } from "@ember/object";
import { prioritizeNameInUx } from "discourse/lib/settings";
+import { renderAvatar } from "discourse/helpers/user-avatar";
+import { userPath } from "discourse/lib/url";
export default Component.extend({
usersTemplates: computed("users.[]", function () {
diff --git a/app/assets/javascripts/discourse/app/components/add-category-tag-classes.js b/app/assets/javascripts/discourse/app/components/add-category-tag-classes.js
index 5120b187356..8e8dd866831 100644
--- a/app/assets/javascripts/discourse/app/components/add-category-tag-classes.js
+++ b/app/assets/javascripts/discourse/app/components/add-category-tag-classes.js
@@ -1,6 +1,6 @@
-import { scheduleOnce } from "@ember/runloop";
import Component from "@ember/component";
import { observes } from "discourse-common/utils/decorators";
+import { scheduleOnce } from "@ember/runloop";
export default Component.extend({
_slug: null,
diff --git a/app/assets/javascripts/discourse/app/components/auth-token-dropdown.js b/app/assets/javascripts/discourse/app/components/auth-token-dropdown.js
index 131593ebc75..6c020a3d164 100644
--- a/app/assets/javascripts/discourse/app/components/auth-token-dropdown.js
+++ b/app/assets/javascripts/discourse/app/components/auth-token-dropdown.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
import { computed } from "@ember/object";
export default DropdownSelectBoxComponent.extend({
diff --git a/app/assets/javascripts/discourse/app/components/avatar-flair.js b/app/assets/javascripts/discourse/app/components/avatar-flair.js
index 7789e18bbfb..8e6331d3307 100644
--- a/app/assets/javascripts/discourse/app/components/avatar-flair.js
+++ b/app/assets/javascripts/discourse/app/components/avatar-flair.js
@@ -1,5 +1,5 @@
-import { observes } from "discourse-common/utils/decorators";
import MountWidget from "discourse/components/mount-widget";
+import { observes } from "discourse-common/utils/decorators";
export default MountWidget.extend({
widget: "avatar-flair",
diff --git a/app/assets/javascripts/discourse/app/components/avatar-uploader.js b/app/assets/javascripts/discourse/app/components/avatar-uploader.js
index 4b59d96c474..0620aa0d9f7 100644
--- a/app/assets/javascripts/discourse/app/components/avatar-uploader.js
+++ b/app/assets/javascripts/discourse/app/components/avatar-uploader.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
import UploadMixin from "discourse/mixins/upload";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend(UploadMixin, {
type: "avatar",
diff --git a/app/assets/javascripts/discourse/app/components/backup-codes.js b/app/assets/javascripts/discourse/app/components/backup-codes.js
index 1b74cf1462d..e66fe6de634 100644
--- a/app/assets/javascripts/discourse/app/components/backup-codes.js
+++ b/app/assets/javascripts/discourse/app/components/backup-codes.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
+import { slugify, toAsciiPrintable } from "discourse/lib/utilities";
import Component from "@ember/component";
-import { toAsciiPrintable, slugify } from "discourse/lib/utilities";
+import discourseComputed from "discourse-common/utils/decorators";
// https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding
function b64EncodeUnicode(str) {
diff --git a/app/assets/javascripts/discourse/app/components/backup-uploader.js b/app/assets/javascripts/discourse/app/components/backup-uploader.js
index bc2f5ceb149..69e9ba6db09 100644
--- a/app/assets/javascripts/discourse/app/components/backup-uploader.js
+++ b/app/assets/javascripts/discourse/app/components/backup-uploader.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
-import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import I18n from "I18n";
import UploadMixin from "discourse/mixins/upload";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
import { on } from "@ember/object/evented";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Component.extend(UploadMixin, {
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/components/badge-button.js b/app/assets/javascripts/discourse/app/components/badge-button.js
index b9acaee6e34..26c378678d9 100644
--- a/app/assets/javascripts/discourse/app/components/badge-button.js
+++ b/app/assets/javascripts/discourse/app/components/badge-button.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/components/badge-card.js b/app/assets/javascripts/discourse/app/components/badge-card.js
index 60a25847b44..c4ee8a933c5 100644
--- a/app/assets/javascripts/discourse/app/components/badge-card.js
+++ b/app/assets/javascripts/discourse/app/components/badge-card.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
+import { emojiUnescape, sanitize } from "discourse/lib/text";
import Component from "@ember/component";
-import { sanitize, emojiUnescape } from "discourse/lib/text";
+import discourseComputed from "discourse-common/utils/decorators";
import { isEmpty } from "@ember/utils";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/badge-selector.js b/app/assets/javascripts/discourse/app/components/badge-selector.js
index bf97777dc1f..b8530f13009 100644
--- a/app/assets/javascripts/discourse/app/components/badge-selector.js
+++ b/app/assets/javascripts/discourse/app/components/badge-selector.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import Component from "@ember/component";
import discourseComputed, {
- on,
observes,
+ on,
} from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import I18n from "I18n";
import { findRawTemplate } from "discourse-common/lib/raw-templates";
const { makeArray } = Ember;
diff --git a/app/assets/javascripts/discourse/app/components/badge-title.js b/app/assets/javascripts/discourse/app/components/badge-title.js
index 6034ce986b9..0dbdd75722c 100644
--- a/app/assets/javascripts/discourse/app/components/badge-title.js
+++ b/app/assets/javascripts/discourse/app/components/badge-title.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
diff --git a/app/assets/javascripts/discourse/app/components/basic-topic-list.js b/app/assets/javascripts/discourse/app/components/basic-topic-list.js
index f28d8bbbff0..0445741f0b1 100644
--- a/app/assets/javascripts/discourse/app/components/basic-topic-list.js
+++ b/app/assets/javascripts/discourse/app/components/basic-topic-list.js
@@ -1,5 +1,5 @@
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
import { alias, not } from "@ember/object/computed";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
import Component from "@ember/component";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/bookmark-actions-dropdown.js b/app/assets/javascripts/discourse/app/components/bookmark-actions-dropdown.js
index 21fe283f691..a8aaf749919 100644
--- a/app/assets/javascripts/discourse/app/components/bookmark-actions-dropdown.js
+++ b/app/assets/javascripts/discourse/app/components/bookmark-actions-dropdown.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import { computed, action } from "@ember/object";
+import { action, computed } from "@ember/object";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
export default DropdownSelectBoxComponent.extend({
classNames: ["bookmark-actions-dropdown"],
diff --git a/app/assets/javascripts/discourse/app/components/bookmark-list.js b/app/assets/javascripts/discourse/app/components/bookmark-list.js
index 546b9bf5e33..784f25d8318 100644
--- a/app/assets/javascripts/discourse/app/components/bookmark-list.js
+++ b/app/assets/javascripts/discourse/app/components/bookmark-list.js
@@ -1,13 +1,13 @@
-import Component from "@ember/component";
-import { Promise } from "rsvp";
-import I18n from "I18n";
-import { action } from "@ember/object";
-import showModal from "discourse/lib/show-modal";
import {
- shouldOpenInNewTab,
openLinkInNewTab,
+ shouldOpenInNewTab,
} from "discourse/lib/click-track";
+import Component from "@ember/component";
+import I18n from "I18n";
+import { Promise } from "rsvp";
+import { action } from "@ember/object";
import bootbox from "bootbox";
+import showModal from "discourse/lib/show-modal";
export default Component.extend({
classNames: ["bookmark-list-wrapper"],
diff --git a/app/assets/javascripts/discourse/app/components/bread-crumbs.js b/app/assets/javascripts/discourse/app/components/bread-crumbs.js
index eaff3112b74..a93c9e9a3bb 100644
--- a/app/assets/javascripts/discourse/app/components/bread-crumbs.js
+++ b/app/assets/javascripts/discourse/app/components/bread-crumbs.js
@@ -1,7 +1,7 @@
-import { filter } from "@ember/object/computed";
import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
import deprecated from "discourse-common/lib/deprecated";
+import discourseComputed from "discourse-common/utils/decorators";
+import { filter } from "@ember/object/computed";
// A breadcrumb including category drop downs
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/bulk-select-button.js b/app/assets/javascripts/discourse/app/components/bulk-select-button.js
index 80353b4317e..f0dc4c48c7a 100644
--- a/app/assets/javascripts/discourse/app/components/bulk-select-button.js
+++ b/app/assets/javascripts/discourse/app/components/bulk-select-button.js
@@ -1,5 +1,5 @@
-import { schedule } from "@ember/runloop";
import Component from "@ember/component";
+import { schedule } from "@ember/runloop";
import showModal from "discourse/lib/show-modal";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/categories-boxes-topic.js b/app/assets/javascripts/discourse/app/components/categories-boxes-topic.js
index e7c48f4032e..2fa86091259 100644
--- a/app/assets/javascripts/discourse/app/components/categories-boxes-topic.js
+++ b/app/assets/javascripts/discourse/app/components/categories-boxes-topic.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "li",
diff --git a/app/assets/javascripts/discourse/app/components/categories-boxes-with-topics.js b/app/assets/javascripts/discourse/app/components/categories-boxes-with-topics.js
index e4399e8bfc1..5aac7408cee 100644
--- a/app/assets/javascripts/discourse/app/components/categories-boxes-with-topics.js
+++ b/app/assets/javascripts/discourse/app/components/categories-boxes-with-topics.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
import { equal } from "@ember/object/computed";
+import { isEmpty } from "@ember/utils";
export default Component.extend({
tagName: "section",
diff --git a/app/assets/javascripts/discourse/app/components/categories-boxes.js b/app/assets/javascripts/discourse/app/components/categories-boxes.js
index 12be7c835db..25918dbc3ad 100644
--- a/app/assets/javascripts/discourse/app/components/categories-boxes.js
+++ b/app/assets/javascripts/discourse/app/components/categories-boxes.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
import { equal } from "@ember/object/computed";
+import { isEmpty } from "@ember/utils";
export default Component.extend({
tagName: "section",
diff --git a/app/assets/javascripts/discourse/app/components/categories-only.js b/app/assets/javascripts/discourse/app/components/categories-only.js
index 9be4c383a59..002ddf82e3e 100644
--- a/app/assets/javascripts/discourse/app/components/categories-only.js
+++ b/app/assets/javascripts/discourse/app/components/categories-only.js
@@ -1,7 +1,7 @@
import Component from "@ember/component";
+import { action } from "@ember/object";
import discourseComputed from "discourse-common/utils/decorators";
import { equal } from "@ember/object/computed";
-import { action } from "@ember/object";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/category-permission-row.js b/app/assets/javascripts/discourse/app/components/category-permission-row.js
index 881f33a9bab..7b745eb9ae1 100644
--- a/app/assets/javascripts/discourse/app/components/category-permission-row.js
+++ b/app/assets/javascripts/discourse/app/components/category-permission-row.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import Component from "@ember/component";
+import { alias, equal } from "@ember/object/computed";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import I18n from "I18n";
import PermissionType from "discourse/models/permission-type";
-import { equal, alias } from "@ember/object/computed";
const EVERYONE = "everyone";
diff --git a/app/assets/javascripts/discourse/app/components/category-read-only-banner.js b/app/assets/javascripts/discourse/app/components/category-read-only-banner.js
index e299da8b545..d8371808f27 100644
--- a/app/assets/javascripts/discourse/app/components/category-read-only-banner.js
+++ b/app/assets/javascripts/discourse/app/components/category-read-only-banner.js
@@ -1,6 +1,6 @@
import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
import { and } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
@discourseComputed
diff --git a/app/assets/javascripts/discourse/app/components/cdn-img.js b/app/assets/javascripts/discourse/app/components/cdn-img.js
index 385a2c98bc2..218ad3653de 100644
--- a/app/assets/javascripts/discourse/app/components/cdn-img.js
+++ b/app/assets/javascripts/discourse/app/components/cdn-img.js
@@ -1,6 +1,6 @@
-import { getURLWithCDN } from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
+import { getURLWithCDN } from "discourse-common/lib/get-url";
import { htmlSafe } from "@ember/template";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/choose-message.js b/app/assets/javascripts/discourse/app/components/choose-message.js
index 3665923f9eb..22833e61f5e 100644
--- a/app/assets/javascripts/discourse/app/components/choose-message.js
+++ b/app/assets/javascripts/discourse/app/components/choose-message.js
@@ -1,10 +1,10 @@
+import Component from "@ember/component";
+import discourseDebounce from "discourse/lib/debounce";
import { get } from "@ember/object";
import { isEmpty } from "@ember/utils";
import { next } from "@ember/runloop";
-import Component from "@ember/component";
-import discourseDebounce from "discourse/lib/debounce";
-import { searchForTerm } from "discourse/lib/search";
import { observes } from "discourse-common/utils/decorators";
+import { searchForTerm } from "discourse/lib/search";
export default Component.extend({
loading: null,
diff --git a/app/assets/javascripts/discourse/app/components/choose-topic.js b/app/assets/javascripts/discourse/app/components/choose-topic.js
index 84070125c28..01352333ae3 100644
--- a/app/assets/javascripts/discourse/app/components/choose-topic.js
+++ b/app/assets/javascripts/discourse/app/components/choose-topic.js
@@ -1,9 +1,9 @@
-import { isEmpty } from "@ember/utils";
-import { next } from "@ember/runloop";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
import Component from "@ember/component";
import discourseDebounce from "discourse/lib/debounce";
+import { isEmpty } from "@ember/utils";
+import { next } from "@ember/runloop";
import { searchForTerm } from "discourse/lib/search";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
export default Component.extend({
loading: null,
diff --git a/app/assets/javascripts/discourse/app/components/color-picker-choice.js b/app/assets/javascripts/discourse/app/components/color-picker-choice.js
index 4d7c617e1af..96c26dddaa9 100644
--- a/app/assets/javascripts/discourse/app/components/color-picker-choice.js
+++ b/app/assets/javascripts/discourse/app/components/color-picker-choice.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
export default Component.extend({
tagName: "button",
diff --git a/app/assets/javascripts/discourse/app/components/composer-action-title.js b/app/assets/javascripts/discourse/app/components/composer-action-title.js
index 11ec4c28b30..851738c1586 100644
--- a/app/assets/javascripts/discourse/app/components/composer-action-title.js
+++ b/app/assets/javascripts/discourse/app/components/composer-action-title.js
@@ -1,15 +1,15 @@
-import I18n from "I18n";
-import { alias } from "@ember/object/computed";
-import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
import {
- PRIVATE_MESSAGE,
- CREATE_TOPIC,
CREATE_SHARED_DRAFT,
- REPLY,
+ CREATE_TOPIC,
EDIT,
EDIT_SHARED_DRAFT,
+ PRIVATE_MESSAGE,
+ REPLY,
} from "discourse/models/composer";
+import Component from "@ember/component";
+import I18n from "I18n";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
import { iconHTML } from "discourse-common/lib/icon-library";
const TITLES = {
diff --git a/app/assets/javascripts/discourse/app/components/composer-body.js b/app/assets/javascripts/discourse/app/components/composer-body.js
index b6b60aa5f33..7708f8287c5 100644
--- a/app/assets/javascripts/discourse/app/components/composer-body.js
+++ b/app/assets/javascripts/discourse/app/components/composer-body.js
@@ -1,19 +1,19 @@
import {
- run,
cancel,
- schedule,
- later,
debounce,
+ later,
+ run,
+ schedule,
throttle,
} from "@ember/runloop";
-import Component from "@ember/component";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
import Composer from "discourse/models/composer";
-import afterTransition from "discourse/lib/after-transition";
-import positioningWorkaround from "discourse/lib/safari-hacks";
-import { headerHeight } from "discourse/components/site-header";
import KeyEnterEscape from "discourse/mixins/key-enter-escape";
+import afterTransition from "discourse/lib/after-transition";
+import { headerHeight } from "discourse/components/site-header";
import { iOSWithVisualViewport } from "discourse/lib/utilities";
+import positioningWorkaround from "discourse/lib/safari-hacks";
const START_EVENTS = "touchstart mousedown";
const DRAG_EVENTS = "touchmove mousemove";
diff --git a/app/assets/javascripts/discourse/app/components/composer-editor.js b/app/assets/javascripts/discourse/app/components/composer-editor.js
index ed64d0f2c9a..bc90e6bf8cc 100644
--- a/app/assets/javascripts/discourse/app/components/composer-editor.js
+++ b/app/assets/javascripts/discourse/app/components/composer-editor.js
@@ -1,47 +1,47 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { run, debounce, later, next, schedule, throttle } from "@ember/runloop";
-import Component from "@ember/component";
-import userSearch from "discourse/lib/user-search";
+import {
+ authorizesOneOrMoreImageExtensions,
+ displayErrorForUpload,
+ getUploadMarkdown,
+ validateUploadedFiles,
+} from "discourse/lib/uploads";
+import {
+ cacheShortUploadUrl,
+ resolveAllShortUrls,
+} from "pretty-text/upload-short-url";
+import {
+ caretPosition,
+ clipboardHelpers,
+ formatUsername,
+ inCodeBlock,
+ tinyAvatar,
+} from "discourse/lib/utilities";
+import { debounce, later, next, run, schedule, throttle } from "@ember/runloop";
import discourseComputed, {
observes,
on,
} from "discourse-common/utils/decorators";
import {
- linkSeenMentions,
- fetchUnseenMentions,
-} from "discourse/lib/link-mentions";
-import {
- linkSeenHashtags,
fetchUnseenHashtags,
+ linkSeenHashtags,
} from "discourse/lib/link-hashtags";
+import {
+ fetchUnseenMentions,
+ linkSeenMentions,
+} from "discourse/lib/link-mentions";
+import Component from "@ember/component";
import Composer from "discourse/models/composer";
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
-import { findRawTemplate } from "discourse-common/lib/raw-templates";
-import { iconHTML } from "discourse-common/lib/icon-library";
-import {
- tinyAvatar,
- formatUsername,
- clipboardHelpers,
- caretPosition,
- inCodeBlock,
-} from "discourse/lib/utilities";
-import putCursorAtEnd from "discourse/lib/put-cursor-at-end";
-import {
- validateUploadedFiles,
- authorizesOneOrMoreImageExtensions,
- getUploadMarkdown,
- displayErrorForUpload,
-} from "discourse/lib/uploads";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
-
-import {
- cacheShortUploadUrl,
- resolveAllShortUrls,
-} from "pretty-text/upload-short-url";
+import { findRawTemplate } from "discourse-common/lib/raw-templates";
+import getURL from "discourse-common/lib/get-url";
+import { iconHTML } from "discourse-common/lib/icon-library";
import { isTesting } from "discourse-common/config/environment";
+
import { loadOneboxes } from "discourse/lib/load-oneboxes";
+import putCursorAtEnd from "discourse/lib/put-cursor-at-end";
+import userSearch from "discourse/lib/user-search";
const REBUILD_SCROLL_MAP_EVENTS = ["composer:resized", "composer:typed-reply"];
diff --git a/app/assets/javascripts/discourse/app/components/composer-message.js b/app/assets/javascripts/discourse/app/components/composer-message.js
index 21b68a0faeb..2fd8055775e 100644
--- a/app/assets/javascripts/discourse/app/components/composer-message.js
+++ b/app/assets/javascripts/discourse/app/components/composer-message.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import deprecated from "discourse-common/lib/deprecated";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
import { getOwner } from "discourse-common/lib/get-owner";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/composer-messages.js b/app/assets/javascripts/discourse/app/components/composer-messages.js
index 3273da6b16c..a2ae8b9e41a 100644
--- a/app/assets/javascripts/discourse/app/components/composer-messages.js
+++ b/app/assets/javascripts/discourse/app/components/composer-messages.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import { not } from "@ember/object/computed";
-import EmberObject from "@ember/object";
-import { scheduleOnce } from "@ember/runloop";
import Component from "@ember/component";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import LinkLookup from "discourse/lib/link-lookup";
+import { not } from "@ember/object/computed";
+import { scheduleOnce } from "@ember/runloop";
let _messagesCache = {};
diff --git a/app/assets/javascripts/discourse/app/components/composer-title.js b/app/assets/javascripts/discourse/app/components/composer-title.js
index 06e132bae8a..25895f9ea30 100644
--- a/app/assets/javascripts/discourse/app/components/composer-title.js
+++ b/app/assets/javascripts/discourse/app/components/composer-title.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
import { alias, or } from "@ember/object/computed";
import { debounce, next, schedule } from "@ember/runloop";
-import Component from "@ember/component";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { load } from "pretty-text/oneboxer";
-import { lookupCache } from "pretty-text/oneboxer-cache";
+import Component from "@ember/component";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
import { isTesting } from "discourse-common/config/environment";
-import EmberObject from "@ember/object";
+import { load } from "pretty-text/oneboxer";
+import { lookupCache } from "pretty-text/oneboxer-cache";
import putCursorAtEnd from "discourse/lib/put-cursor-at-end";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/composer-toggles.js b/app/assets/javascripts/discourse/app/components/composer-toggles.js
index 16b1773bb15..b60019c52ca 100644
--- a/app/assets/javascripts/discourse/app/components/composer-toggles.js
+++ b/app/assets/javascripts/discourse/app/components/composer-toggles.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/composer-user-selector.js b/app/assets/javascripts/discourse/app/components/composer-user-selector.js
index 2f6f81e675a..dc0bc42cfe0 100644
--- a/app/assets/javascripts/discourse/app/components/composer-user-selector.js
+++ b/app/assets/javascripts/discourse/app/components/composer-user-selector.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import I18n from "I18n";
import putCursorAtEnd from "discourse/lib/put-cursor-at-end";
+import { schedule } from "@ember/runloop";
export default Component.extend({
showSelector: true,
diff --git a/app/assets/javascripts/discourse/app/components/conditional-loading-section.js b/app/assets/javascripts/discourse/app/components/conditional-loading-section.js
index d4249354cc4..c3dc936c49e 100644
--- a/app/assets/javascripts/discourse/app/components/conditional-loading-section.js
+++ b/app/assets/javascripts/discourse/app/components/conditional-loading-section.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
export default Component.extend({
classNames: ["conditional-loading-section"],
diff --git a/app/assets/javascripts/discourse/app/components/conditional-loading-spinner.js b/app/assets/javascripts/discourse/app/components/conditional-loading-spinner.js
index f581c30a57e..22ebf1ddaa9 100644
--- a/app/assets/javascripts/discourse/app/components/conditional-loading-spinner.js
+++ b/app/assets/javascripts/discourse/app/components/conditional-loading-spinner.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
classNameBindings: [
diff --git a/app/assets/javascripts/discourse/app/components/count-i18n.js b/app/assets/javascripts/discourse/app/components/count-i18n.js
index 7c3ed90373e..1d5a1fa228e 100644
--- a/app/assets/javascripts/discourse/app/components/count-i18n.js
+++ b/app/assets/javascripts/discourse/app/components/count-i18n.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
export default Component.extend({
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/components/create-topics-notice.js b/app/assets/javascripts/discourse/app/components/create-topics-notice.js
index 54c1057afbf..0dbd17ef3ad 100644
--- a/app/assets/javascripts/discourse/app/components/create-topics-notice.js
+++ b/app/assets/javascripts/discourse/app/components/create-topics-notice.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import I18n from "I18n";
import LivePostCounts from "discourse/models/live-post-counts";
+import { alias } from "@ember/object/computed";
import { htmlSafe } from "@ember/template";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/csv-uploader.js b/app/assets/javascripts/discourse/app/components/csv-uploader.js
index fcc98c08475..9ab2c015b99 100644
--- a/app/assets/javascripts/discourse/app/components/csv-uploader.js
+++ b/app/assets/javascripts/discourse/app/components/csv-uploader.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import I18n from "I18n";
import UploadMixin from "discourse/mixins/upload";
-import { on } from "@ember/object/evented";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { on } from "@ember/object/evented";
export default Component.extend(UploadMixin, {
type: "csv",
diff --git a/app/assets/javascripts/discourse/app/components/d-button.js b/app/assets/javascripts/discourse/app/components/d-button.js
index 20f76b8ccbf..0581c2663fa 100644
--- a/app/assets/javascripts/discourse/app/components/d-button.js
+++ b/app/assets/javascripts/discourse/app/components/d-button.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import { notEmpty, empty, equal } from "@ember/object/computed";
-import { computed } from "@ember/object";
+import { empty, equal, notEmpty } from "@ember/object/computed";
import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
+import { computed } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "button",
diff --git a/app/assets/javascripts/discourse/app/components/d-document.js b/app/assets/javascripts/discourse/app/components/d-document.js
index bd66be79a43..8cb06759455 100644
--- a/app/assets/javascripts/discourse/app/components/d-document.js
+++ b/app/assets/javascripts/discourse/app/components/d-document.js
@@ -1,10 +1,10 @@
import Component from "@ember/component";
-import { inject as service } from "@ember/service";
-import { bind } from "discourse-common/utils/decorators";
-import logout from "discourse/lib/logout";
import I18n from "I18n";
-import { setLogoffCallback } from "discourse/lib/ajax";
+import { bind } from "discourse-common/utils/decorators";
import bootbox from "bootbox";
+import logout from "discourse/lib/logout";
+import { inject as service } from "@ember/service";
+import { setLogoffCallback } from "discourse/lib/ajax";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/d-editor.js b/app/assets/javascripts/discourse/app/components/d-editor.js
index 2ac5201c807..976acf965fc 100644
--- a/app/assets/javascripts/discourse/app/components/d-editor.js
+++ b/app/assets/javascripts/discourse/app/components/d-editor.js
@@ -1,36 +1,35 @@
-import I18n from "I18n";
-import { debounce, later, next, schedule, scheduleOnce } from "@ember/runloop";
-import { inject as service } from "@ember/service";
-import Component from "@ember/component";
-import Mousetrap from "mousetrap";
-
-import discourseComputed, {
- on,
- observes,
-} from "discourse-common/utils/decorators";
-import { categoryHashtagTriggerRule } from "discourse/lib/category-hashtags";
-import { search as searchCategoryTag } from "discourse/lib/category-tag-search";
-import { getRegister } from "discourse-common/lib/get-owner";
-import { findRawTemplate } from "discourse-common/lib/raw-templates";
-import { siteDir } from "discourse/lib/text-direction";
import {
- determinePostReplaceSelection,
- clipboardHelpers,
- safariHacksDisabled,
caretPosition,
+ clipboardHelpers,
+ determinePostReplaceSelection,
inCodeBlock,
+ safariHacksDisabled,
} from "discourse/lib/utilities";
-import toMarkdown from "discourse/lib/to-markdown";
-import deprecated from "discourse-common/lib/deprecated";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
-import { translations } from "pretty-text/emoji/data";
+import { debounce, later, next, schedule, scheduleOnce } from "@ember/runloop";
+import discourseComputed, {
+ observes,
+ on,
+} from "discourse-common/utils/decorators";
import { emojiSearch, isSkinTonableEmoji } from "pretty-text/emoji";
import { emojiUrlFor, generateCookFunction } from "discourse/lib/text";
-import showModal from "discourse/lib/show-modal";
+import Component from "@ember/component";
+import I18n from "I18n";
+import Mousetrap from "mousetrap";
import { Promise } from "rsvp";
-import { isTesting } from "discourse-common/config/environment";
import { SKIP } from "discourse/lib/autocomplete";
+import { categoryHashtagTriggerRule } from "discourse/lib/category-hashtags";
+import deprecated from "discourse-common/lib/deprecated";
+import { findRawTemplate } from "discourse-common/lib/raw-templates";
+import { getRegister } from "discourse-common/lib/get-owner";
import { isEmpty } from "@ember/utils";
+import { isTesting } from "discourse-common/config/environment";
+import { search as searchCategoryTag } from "discourse/lib/category-tag-search";
+import { inject as service } from "@ember/service";
+import showModal from "discourse/lib/show-modal";
+import { siteDir } from "discourse/lib/text-direction";
+import toMarkdown from "discourse/lib/to-markdown";
+import { translations } from "pretty-text/emoji/data";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
// Our head can be a static string or a function that returns a string
// based on input (like for numbered lists).
diff --git a/app/assets/javascripts/discourse/app/components/d-modal-body.js b/app/assets/javascripts/discourse/app/components/d-modal-body.js
index 3b519a8db61..a156c7ec934 100644
--- a/app/assets/javascripts/discourse/app/components/d-modal-body.js
+++ b/app/assets/javascripts/discourse/app/components/d-modal-body.js
@@ -1,5 +1,5 @@
-import { scheduleOnce } from "@ember/runloop";
import Component from "@ember/component";
+import { scheduleOnce } from "@ember/runloop";
export default Component.extend({
classNames: ["modal-body"],
fixed: false,
diff --git a/app/assets/javascripts/discourse/app/components/d-modal.js b/app/assets/javascripts/discourse/app/components/d-modal.js
index 63e9e755dfa..2ef23e5a17c 100644
--- a/app/assets/javascripts/discourse/app/components/d-modal.js
+++ b/app/assets/javascripts/discourse/app/components/d-modal.js
@@ -1,8 +1,8 @@
-import afterTransition from "discourse/lib/after-transition";
+import Component from "@ember/component";
import I18n from "I18n";
+import afterTransition from "discourse/lib/after-transition";
import { next } from "@ember/runloop";
import { on } from "discourse-common/utils/decorators";
-import Component from "@ember/component";
export default Component.extend({
classNameBindings: [
diff --git a/app/assets/javascripts/discourse/app/components/d-navigation.js b/app/assets/javascripts/discourse/app/components/d-navigation.js
index 824ece25909..31af03343ad 100644
--- a/app/assets/javascripts/discourse/app/components/d-navigation.js
+++ b/app/assets/javascripts/discourse/app/components/d-navigation.js
@@ -1,9 +1,9 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import NavItem from "discourse/models/nav-item";
-import { inject as service } from "@ember/service";
import Component from "@ember/component";
import FilterModeMixin from "discourse/mixins/filter-mode";
+import NavItem from "discourse/models/nav-item";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { inject as service } from "@ember/service";
export default Component.extend(FilterModeMixin, {
router: service(),
diff --git a/app/assets/javascripts/discourse/app/components/date-input.js b/app/assets/javascripts/discourse/app/components/date-input.js
index 7c8cd58989a..694337f1029 100644
--- a/app/assets/javascripts/discourse/app/components/date-input.js
+++ b/app/assets/javascripts/discourse/app/components/date-input.js
@@ -1,11 +1,11 @@
-import { Promise } from "rsvp";
-import I18n from "I18n";
-import { schedule } from "@ember/runloop";
-import { action } from "@ember/object";
+import discourseComputed, { on } from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import I18n from "I18n";
+import { Promise } from "rsvp";
+import { action } from "@ember/object";
/* global Pikaday:true */
import loadScript from "discourse/lib/load-script";
-import discourseComputed, { on } from "discourse-common/utils/decorators";
+import { schedule } from "@ember/runloop";
export default Component.extend({
classNames: ["d-date-input"],
diff --git a/app/assets/javascripts/discourse/app/components/date-picker.js b/app/assets/javascripts/discourse/app/components/date-picker.js
index f54b48da8d4..a3a1cd6ddf3 100644
--- a/app/assets/javascripts/discourse/app/components/date-picker.js
+++ b/app/assets/javascripts/discourse/app/components/date-picker.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import { schedule } from "@ember/runloop";
+import discourseComputed, { on } from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import I18n from "I18n";
/* global Pikaday:true */
import loadScript from "discourse/lib/load-script";
-import discourseComputed, { on } from "discourse-common/utils/decorators";
+import { schedule } from "@ember/runloop";
const DATE_FORMAT = "YYYY-MM-DD";
diff --git a/app/assets/javascripts/discourse/app/components/date-time-input.js b/app/assets/javascripts/discourse/app/components/date-time-input.js
index 01d4d20ab1a..2093b71c6ef 100644
--- a/app/assets/javascripts/discourse/app/components/date-time-input.js
+++ b/app/assets/javascripts/discourse/app/components/date-time-input.js
@@ -1,5 +1,5 @@
+import { action, computed } from "@ember/object";
import Component from "@ember/component";
-import { computed, action } from "@ember/object";
export default Component.extend({
classNames: ["d-date-time-input"],
diff --git a/app/assets/javascripts/discourse/app/components/desktop-notification-config.js b/app/assets/javascripts/discourse/app/components/desktop-notification-config.js
index 56984dfa8a0..29bf5bcfec8 100644
--- a/app/assets/javascripts/discourse/app/components/desktop-notification-config.js
+++ b/app/assets/javascripts/discourse/app/components/desktop-notification-config.js
@@ -1,18 +1,18 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { or } from "@ember/object/computed";
-import Component from "@ember/component";
-import KeyValueStore from "discourse/lib/key-value-store";
import {
- context,
confirmNotification,
+ context,
} from "discourse/lib/desktop-notifications";
import {
- subscribe as subscribePushNotification,
- unsubscribe as unsubscribePushNotification,
isPushNotificationsSupported,
keyValueStore as pushNotificationKeyValueStore,
userSubscriptionKey as pushNotificationUserSubscriptionKey,
+ subscribe as subscribePushNotification,
+ unsubscribe as unsubscribePushNotification,
} from "discourse/lib/push-notifications";
+import Component from "@ember/component";
+import KeyValueStore from "discourse/lib/key-value-store";
+import discourseComputed from "discourse-common/utils/decorators";
+import { or } from "@ember/object/computed";
const keyValueStore = new KeyValueStore(context);
diff --git a/app/assets/javascripts/discourse/app/components/discourse-banner.js b/app/assets/javascripts/discourse/app/components/discourse-banner.js
index baf54cfdc28..738211dde2e 100644
--- a/app/assets/javascripts/discourse/app/components/discourse-banner.js
+++ b/app/assets/javascripts/discourse/app/components/discourse-banner.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
hide: false,
diff --git a/app/assets/javascripts/discourse/app/components/discourse-linked-text.js b/app/assets/javascripts/discourse/app/components/discourse-linked-text.js
index acbb88021a2..4085d56d2fe 100644
--- a/app/assets/javascripts/discourse/app/components/discourse-linked-text.js
+++ b/app/assets/javascripts/discourse/app/components/discourse-linked-text.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/discourse-tag-bound.js b/app/assets/javascripts/discourse/app/components/discourse-tag-bound.js
index f692e3a2fb3..278ec36c7ba 100644
--- a/app/assets/javascripts/discourse/app/components/discourse-tag-bound.js
+++ b/app/assets/javascripts/discourse/app/components/discourse-tag-bound.js
@@ -1,6 +1,6 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
export default Component.extend({
tagName: "a",
diff --git a/app/assets/javascripts/discourse/app/components/discourse-topic.js b/app/assets/javascripts/discourse/app/components/discourse-topic.js
index dcfbc4b21a7..d09f9cd245e 100644
--- a/app/assets/javascripts/discourse/app/components/discourse-topic.js
+++ b/app/assets/javascripts/discourse/app/components/discourse-topic.js
@@ -1,11 +1,11 @@
-import { alias } from "@ember/object/computed";
import { later, schedule, scheduleOnce, throttle } from "@ember/runloop";
-import Component from "@ember/component";
-import DiscourseURL from "discourse/lib/url";
import AddArchetypeClass from "discourse/mixins/add-archetype-class";
import ClickTrack from "discourse/lib/click-track";
-import Scrolling from "discourse/mixins/scrolling";
+import Component from "@ember/component";
+import DiscourseURL from "discourse/lib/url";
import MobileScrollDirection from "discourse/mixins/mobile-scroll-direction";
+import Scrolling from "discourse/mixins/scrolling";
+import { alias } from "@ember/object/computed";
import { observes } from "discourse-common/utils/decorators";
const MOBILE_SCROLL_DIRECTION_CHECK_THROTTLE = 300;
diff --git a/app/assets/javascripts/discourse/app/components/discovery-topics-list.js b/app/assets/javascripts/discourse/app/components/discovery-topics-list.js
index dad15d1d9de..bce1b2a9e83 100644
--- a/app/assets/javascripts/discourse/app/components/discovery-topics-list.js
+++ b/app/assets/javascripts/discourse/app/components/discovery-topics-list.js
@@ -1,6 +1,6 @@
+import { observes, on } from "discourse-common/utils/decorators";
import { schedule, scheduleOnce } from "@ember/runloop";
import Component from "@ember/component";
-import { on, observes } from "discourse-common/utils/decorators";
import LoadMore from "discourse/mixins/load-more";
import UrlRefresh from "discourse/mixins/url-refresh";
import { inject as service } from "@ember/service";
diff --git a/app/assets/javascripts/discourse/app/components/edit-category-general.js b/app/assets/javascripts/discourse/app/components/edit-category-general.js
index 7a6c85d7760..8bd8b8eda8c 100644
--- a/app/assets/javascripts/discourse/app/components/edit-category-general.js
+++ b/app/assets/javascripts/discourse/app/components/edit-category-general.js
@@ -1,12 +1,12 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
-import { not } from "@ember/object/computed";
+import { cancel, later } from "@ember/runloop";
+import Category from "discourse/models/category";
import { action } from "@ember/object";
-import { later, cancel } from "@ember/runloop";
import { buildCategoryPanel } from "discourse/components/edit-category-panel";
import { categoryBadgeHTML } from "discourse/helpers/category-link";
-import Category from "discourse/models/category";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
+import { not } from "@ember/object/computed";
export default buildCategoryPanel("general", {
init() {
diff --git a/app/assets/javascripts/discourse/app/components/edit-category-panel.js b/app/assets/javascripts/discourse/app/components/edit-category-panel.js
index 02f7a28424e..e20bc7baab5 100644
--- a/app/assets/javascripts/discourse/app/components/edit-category-panel.js
+++ b/app/assets/javascripts/discourse/app/components/edit-category-panel.js
@@ -1,5 +1,5 @@
-import { equal } from "@ember/object/computed";
import Component from "@ember/component";
+import { equal } from "@ember/object/computed";
const EditCategoryPanel = Component.extend({});
export default EditCategoryPanel;
diff --git a/app/assets/javascripts/discourse/app/components/edit-category-security.js b/app/assets/javascripts/discourse/app/components/edit-category-security.js
index 6f9e9309a32..e99352e4b18 100644
--- a/app/assets/javascripts/discourse/app/components/edit-category-security.js
+++ b/app/assets/javascripts/discourse/app/components/edit-category-security.js
@@ -1,5 +1,5 @@
-import { buildCategoryPanel } from "discourse/components/edit-category-panel";
import PermissionType from "discourse/models/permission-type";
+import { buildCategoryPanel } from "discourse/components/edit-category-panel";
import discourseComputed from "discourse-common/utils/decorators";
import { not } from "@ember/object/computed";
diff --git a/app/assets/javascripts/discourse/app/components/edit-category-settings.js b/app/assets/javascripts/discourse/app/components/edit-category-settings.js
index b18e84d5c05..f04ffa6721a 100644
--- a/app/assets/javascripts/discourse/app/components/edit-category-settings.js
+++ b/app/assets/javascripts/discourse/app/components/edit-category-settings.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { empty, and } from "@ember/object/computed";
-import { setting } from "discourse/lib/computed";
-import { buildCategoryPanel } from "discourse/components/edit-category-panel";
-import { SEARCH_PRIORITIES } from "discourse/lib/constants";
+import { and, empty } from "@ember/object/computed";
import Group from "discourse/models/group";
+import I18n from "I18n";
+import { SEARCH_PRIORITIES } from "discourse/lib/constants";
+import { buildCategoryPanel } from "discourse/components/edit-category-panel";
+import discourseComputed from "discourse-common/utils/decorators";
+import { setting } from "discourse/lib/computed";
const categorySortCriteria = [];
export function addCategorySortCriteria(criteria) {
diff --git a/app/assets/javascripts/discourse/app/components/edit-category-tab.js b/app/assets/javascripts/discourse/app/components/edit-category-tab.js
index 0ead526caa1..45721b43701 100644
--- a/app/assets/javascripts/discourse/app/components/edit-category-tab.js
+++ b/app/assets/javascripts/discourse/app/components/edit-category-tab.js
@@ -1,11 +1,11 @@
+import Component from "@ember/component";
+import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import { scheduleOnce } from "@ember/runloop";
-import Component from "@ember/component";
-import { propertyEqual } from "discourse/lib/computed";
-import getURL from "discourse-common/lib/get-url";
import { empty } from "@ember/object/computed";
-import DiscourseURL from "discourse/lib/url";
+import getURL from "discourse-common/lib/get-url";
+import { propertyEqual } from "discourse/lib/computed";
+import { scheduleOnce } from "@ember/runloop";
import { underscore } from "@ember/string";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/edit-category-tags.js b/app/assets/javascripts/discourse/app/components/edit-category-tags.js
index 862e874ce48..f9dc2d914ba 100644
--- a/app/assets/javascripts/discourse/app/components/edit-category-tags.js
+++ b/app/assets/javascripts/discourse/app/components/edit-category-tags.js
@@ -1,4 +1,4 @@
-import { empty, and } from "@ember/object/computed";
+import { and, empty } from "@ember/object/computed";
import { buildCategoryPanel } from "discourse/components/edit-category-panel";
export default buildCategoryPanel("tags", {
diff --git a/app/assets/javascripts/discourse/app/components/edit-category-topic-template.js b/app/assets/javascripts/discourse/app/components/edit-category-topic-template.js
index eeac5335b00..b4d8d7a7213 100644
--- a/app/assets/javascripts/discourse/app/components/edit-category-topic-template.js
+++ b/app/assets/javascripts/discourse/app/components/edit-category-topic-template.js
@@ -1,6 +1,6 @@
-import { schedule } from "@ember/runloop";
import { buildCategoryPanel } from "discourse/components/edit-category-panel";
import { observes } from "discourse-common/utils/decorators";
+import { schedule } from "@ember/runloop";
export default buildCategoryPanel("topic-template", {
// Modals are defined using the singleton pattern.
diff --git a/app/assets/javascripts/discourse/app/components/edit-topic-timer-form.js b/app/assets/javascripts/discourse/app/components/edit-topic-timer-form.js
index fd3652d5cce..fea8de29bce 100644
--- a/app/assets/javascripts/discourse/app/components/edit-topic-timer-form.js
+++ b/app/assets/javascripts/discourse/app/components/edit-topic-timer-form.js
@@ -1,15 +1,15 @@
-import { equal, or, readOnly } from "@ember/object/computed";
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
import {
- PUBLISH_TO_CATEGORY_STATUS_TYPE,
- OPEN_STATUS_TYPE,
- DELETE_STATUS_TYPE,
- CLOSE_STATUS_TYPE,
BUMP_TYPE,
+ CLOSE_STATUS_TYPE,
DELETE_REPLIES_TYPE,
+ DELETE_STATUS_TYPE,
+ OPEN_STATUS_TYPE,
+ PUBLISH_TO_CATEGORY_STATUS_TYPE,
} from "discourse/controllers/edit-topic-timer";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import { equal, or, readOnly } from "@ember/object/computed";
+import Component from "@ember/component";
+import { schedule } from "@ember/runloop";
export default Component.extend({
selection: readOnly("topicTimer.status_type"),
diff --git a/app/assets/javascripts/discourse/app/components/email-dropdown.js b/app/assets/javascripts/discourse/app/components/email-dropdown.js
index 173d12d74bc..f28cacf82ea 100644
--- a/app/assets/javascripts/discourse/app/components/email-dropdown.js
+++ b/app/assets/javascripts/discourse/app/components/email-dropdown.js
@@ -1,7 +1,7 @@
import { action, computed } from "@ember/object";
-import { inject as service } from "@ember/service";
-import I18n from "I18n";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
+import { inject as service } from "@ember/service";
export default DropdownSelectBoxComponent.extend({
router: service(),
diff --git a/app/assets/javascripts/discourse/app/components/emoji-picker.js b/app/assets/javascripts/discourse/app/components/emoji-picker.js
index b13c18f6a44..38eff47a556 100644
--- a/app/assets/javascripts/discourse/app/components/emoji-picker.js
+++ b/app/assets/javascripts/discourse/app/components/emoji-picker.js
@@ -1,17 +1,17 @@
-import { observes, bind } from "discourse-common/utils/decorators";
-import { htmlSafe } from "@ember/template";
-import { emojiUnescape, emojiUrlFor } from "discourse/lib/text";
import { action, computed } from "@ember/object";
-import { inject as service } from "@ember/service";
-import { schedule, later } from "@ember/runloop";
-import Component from "@ember/component";
-import { createPopper } from "@popperjs/core";
+import { bind, observes } from "discourse-common/utils/decorators";
import {
+ emojiSearch,
extendedEmojiList,
isSkinTonableEmoji,
- emojiSearch,
} from "pretty-text/emoji";
-import { safariHacksDisabled, escapeExpression } from "discourse/lib/utilities";
+import { emojiUnescape, emojiUrlFor } from "discourse/lib/text";
+import { escapeExpression, safariHacksDisabled } from "discourse/lib/utilities";
+import { later, schedule } from "@ember/runloop";
+import Component from "@ember/component";
+import { createPopper } from "@popperjs/core";
+import { htmlSafe } from "@ember/template";
+import { inject as service } from "@ember/service";
function customEmojis() {
const list = extendedEmojiList();
diff --git a/app/assets/javascripts/discourse/app/components/emoji-uploader.js b/app/assets/javascripts/discourse/app/components/emoji-uploader.js
index d94117682a0..371137e4fa0 100644
--- a/app/assets/javascripts/discourse/app/components/emoji-uploader.js
+++ b/app/assets/javascripts/discourse/app/components/emoji-uploader.js
@@ -1,8 +1,8 @@
-import { notEmpty } from "@ember/object/computed";
-import { action } from "@ember/object";
import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
import UploadMixin from "discourse/mixins/upload";
+import { action } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
+import { notEmpty } from "@ember/object/computed";
const DEFAULT_GROUP = "default";
diff --git a/app/assets/javascripts/discourse/app/components/expanding-text-area.js b/app/assets/javascripts/discourse/app/components/expanding-text-area.js
index ac1f6fae46d..86a15b910b8 100644
--- a/app/assets/javascripts/discourse/app/components/expanding-text-area.js
+++ b/app/assets/javascripts/discourse/app/components/expanding-text-area.js
@@ -1,7 +1,7 @@
+import { observes, on } from "discourse-common/utils/decorators";
import TextArea from "@ember/component/text-area";
-import { schedule } from "@ember/runloop";
-import { on, observes } from "discourse-common/utils/decorators";
import autosize from "discourse/lib/autosize";
+import { schedule } from "@ember/runloop";
export default TextArea.extend({
@on("didInsertElement")
diff --git a/app/assets/javascripts/discourse/app/components/flag-action-type.js b/app/assets/javascripts/discourse/app/components/flag-action-type.js
index b1fe079c600..a409fec15df 100644
--- a/app/assets/javascripts/discourse/app/components/flag-action-type.js
+++ b/app/assets/javascripts/discourse/app/components/flag-action-type.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { and, not, equal } from "@ember/object/computed";
+import { and, equal, not } from "@ember/object/computed";
import Component from "@ember/component";
+import I18n from "I18n";
import { MAX_MESSAGE_LENGTH } from "discourse/models/post-action-type";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
classNames: ["flag-action-type"],
diff --git a/app/assets/javascripts/discourse/app/components/flag-selection.js b/app/assets/javascripts/discourse/app/components/flag-selection.js
index 6f731dd0e82..ebb7209e4f8 100644
--- a/app/assets/javascripts/discourse/app/components/flag-selection.js
+++ b/app/assets/javascripts/discourse/app/components/flag-selection.js
@@ -1,5 +1,5 @@
-import { next } from "@ember/runloop";
import Component from "@ember/component";
+import { next } from "@ember/runloop";
import { observes } from "discourse-common/utils/decorators";
// Mostly hacks because `flag.hbs` didn't use `radio-button`
diff --git a/app/assets/javascripts/discourse/app/components/flat-button.js b/app/assets/javascripts/discourse/app/components/flat-button.js
index 927d19a2c43..8f8ac08a141 100644
--- a/app/assets/javascripts/discourse/app/components/flat-button.js
+++ b/app/assets/javascripts/discourse/app/components/flat-button.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/footer-nav.js b/app/assets/javascripts/discourse/app/components/footer-nav.js
index ab87708bac2..9a99c1b4fc6 100644
--- a/app/assets/javascripts/discourse/app/components/footer-nav.js
+++ b/app/assets/javascripts/discourse/app/components/footer-nav.js
@@ -1,9 +1,9 @@
-import { throttle } from "@ember/runloop";
-import MountWidget from "discourse/components/mount-widget";
+import { isAppWebview, postRNWebviewMessage } from "discourse/lib/utilities";
import MobileScrollDirection from "discourse/mixins/mobile-scroll-direction";
+import MountWidget from "discourse/components/mount-widget";
import Scrolling from "discourse/mixins/scrolling";
import { observes } from "discourse-common/utils/decorators";
-import { isAppWebview, postRNWebviewMessage } from "discourse/lib/utilities";
+import { throttle } from "@ember/runloop";
const MOBILE_SCROLL_DIRECTION_CHECK_THROTTLE = 150;
diff --git a/app/assets/javascripts/discourse/app/components/future-date-input.js b/app/assets/javascripts/discourse/app/components/future-date-input.js
index 9457e900b38..ab0f447601c 100644
--- a/app/assets/javascripts/discourse/app/components/future-date-input.js
+++ b/app/assets/javascripts/discourse/app/components/future-date-input.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { equal, and, empty, or } from "@ember/object/computed";
-import Component from "@ember/component";
+import { and, empty, equal, or } from "@ember/object/computed";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
import { FORMAT } from "select-kit/components/future-date-input-selector";
+import I18n from "I18n";
import { PUBLISH_TO_CATEGORY_STATUS_TYPE } from "discourse/controllers/edit-topic-timer";
+import { isEmpty } from "@ember/utils";
export default Component.extend({
selection: null,
diff --git a/app/assets/javascripts/discourse/app/components/global-notice.js b/app/assets/javascripts/discourse/app/components/global-notice.js
index 00fdb98350d..c6a2e9e967b 100644
--- a/app/assets/javascripts/discourse/app/components/global-notice.js
+++ b/app/assets/javascripts/discourse/app/components/global-notice.js
@@ -1,10 +1,10 @@
-import getURL from "discourse-common/lib/get-url";
-import { bind } from "discourse-common/utils/decorators";
-import I18n from "I18n";
-import Component from "@ember/component";
-import LogsNotice from "discourse/services/logs-notice";
import EmberObject, { computed } from "@ember/object";
import cookie, { removeCookie } from "discourse/lib/cookie";
+import Component from "@ember/component";
+import I18n from "I18n";
+import LogsNotice from "discourse/services/logs-notice";
+import { bind } from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
const _pluginNotices = [];
diff --git a/app/assets/javascripts/discourse/app/components/google-search.js b/app/assets/javascripts/discourse/app/components/google-search.js
index 527ffdfd12c..1e5e0622587 100644
--- a/app/assets/javascripts/discourse/app/components/google-search.js
+++ b/app/assets/javascripts/discourse/app/components/google-search.js
@@ -1,7 +1,7 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
export default Component.extend({
classNames: ["google-search-form"],
diff --git a/app/assets/javascripts/discourse/app/components/group-card-contents.js b/app/assets/javascripts/discourse/app/components/group-card-contents.js
index fa2897df188..f9b0ef1f190 100644
--- a/app/assets/javascripts/discourse/app/components/group-card-contents.js
+++ b/app/assets/javascripts/discourse/app/components/group-card-contents.js
@@ -1,11 +1,11 @@
import { alias, gt } from "@ember/object/computed";
-import Component from "@ember/component";
-import { setting } from "discourse/lib/computed";
-import discourseComputed from "discourse-common/utils/decorators";
import CardContentsBase from "discourse/mixins/card-contents-base";
import CleansUp from "discourse/mixins/cleans-up";
-import { groupPath } from "discourse/lib/url";
+import Component from "@ember/component";
import { Promise } from "rsvp";
+import discourseComputed from "discourse-common/utils/decorators";
+import { groupPath } from "discourse/lib/url";
+import { setting } from "discourse/lib/computed";
const maxMembersToDisplay = 10;
diff --git a/app/assets/javascripts/discourse/app/components/group-flair-inputs.js b/app/assets/javascripts/discourse/app/components/group-flair-inputs.js
index 0c60c695d40..465940927b9 100644
--- a/app/assets/javascripts/discourse/app/components/group-flair-inputs.js
+++ b/app/assets/javascripts/discourse/app/components/group-flair-inputs.js
@@ -1,16 +1,16 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
import discourseComputed, {
- on,
observes,
+ on,
} from "discourse-common/utils/decorators";
-import { debounce } from "@ember/runloop";
import Component from "@ember/component";
-import { escapeExpression } from "discourse/lib/utilities";
-import { convertIconClass } from "discourse-common/lib/icon-library";
-import { ajax } from "discourse/lib/ajax";
-import { htmlSafe } from "@ember/template";
+import I18n from "I18n";
import { action } from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
+import { convertIconClass } from "discourse-common/lib/icon-library";
+import { debounce } from "@ember/runloop";
+import { escapeExpression } from "discourse/lib/utilities";
+import getURL from "discourse-common/lib/get-url";
+import { htmlSafe } from "@ember/template";
export default Component.extend({
classNames: ["group-flair-inputs"],
diff --git a/app/assets/javascripts/discourse/app/components/group-manage-logs-filter.js b/app/assets/javascripts/discourse/app/components/group-manage-logs-filter.js
index 52ca1587e44..8e7332663e6 100644
--- a/app/assets/javascripts/discourse/app/components/group-manage-logs-filter.js
+++ b/app/assets/javascripts/discourse/app/components/group-manage-logs-filter.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/group-manage-save-button.js b/app/assets/javascripts/discourse/app/components/group-manage-save-button.js
index 2c92af9c0cb..0a92d4bd843 100644
--- a/app/assets/javascripts/discourse/app/components/group-manage-save-button.js
+++ b/app/assets/javascripts/discourse/app/components/group-manage-save-button.js
@@ -1,9 +1,9 @@
+import Component from "@ember/component";
+import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
import { popupAjaxError } from "discourse/lib/ajax-error";
import { popupAutomaticMembershipAlert } from "discourse/controllers/groups-new";
-import DiscourseURL from "discourse/lib/url";
export default Component.extend({
saving: null,
diff --git a/app/assets/javascripts/discourse/app/components/group-member-dropdown.js b/app/assets/javascripts/discourse/app/components/group-member-dropdown.js
index f4cb9ad287f..c59dc84ca3e 100644
--- a/app/assets/javascripts/discourse/app/components/group-member-dropdown.js
+++ b/app/assets/javascripts/discourse/app/components/group-member-dropdown.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
import { computed } from "@ember/object";
export default DropdownSelectBoxComponent.extend({
diff --git a/app/assets/javascripts/discourse/app/components/group-membership-button.js b/app/assets/javascripts/discourse/app/components/group-membership-button.js
index bb7df0ea9cd..2849d16bb71 100644
--- a/app/assets/javascripts/discourse/app/components/group-membership-button.js
+++ b/app/assets/javascripts/discourse/app/components/group-membership-button.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
+import bootbox from "bootbox";
+import cookie from "discourse/lib/cookie";
import discourseComputed from "discourse-common/utils/decorators";
import { popupAjaxError } from "discourse/lib/ajax-error";
import showModal from "discourse/lib/show-modal";
-import bootbox from "bootbox";
-import cookie from "discourse/lib/cookie";
export default Component.extend({
classNames: ["group-membership-button"],
diff --git a/app/assets/javascripts/discourse/app/components/group-post.js b/app/assets/javascripts/discourse/app/components/group-post.js
index 49d32270460..679f88ceff3 100644
--- a/app/assets/javascripts/discourse/app/components/group-post.js
+++ b/app/assets/javascripts/discourse/app/components/group-post.js
@@ -1,6 +1,6 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
export default Component.extend({
@discourseComputed("post.url")
diff --git a/app/assets/javascripts/discourse/app/components/group-selector.js b/app/assets/javascripts/discourse/app/components/group-selector.js
index 2516de122c3..651dfb7ade4 100644
--- a/app/assets/javascripts/discourse/app/components/group-selector.js
+++ b/app/assets/javascripts/discourse/app/components/group-selector.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import Component from "@ember/component";
import discourseComputed, {
- on,
observes,
+ on,
} from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import I18n from "I18n";
import { findRawTemplate } from "discourse-common/lib/raw-templates";
+import { isEmpty } from "@ember/utils";
export default Component.extend({
@discourseComputed("placeholderKey")
diff --git a/app/assets/javascripts/discourse/app/components/groups-form-interaction-fields.js b/app/assets/javascripts/discourse/app/components/groups-form-interaction-fields.js
index fd60e3686b1..ca271caa980 100644
--- a/app/assets/javascripts/discourse/app/components/groups-form-interaction-fields.js
+++ b/app/assets/javascripts/discourse/app/components/groups-form-interaction-fields.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
import Component from "@ember/component";
-import { or } from "@ember/object/computed";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
+import { or } from "@ember/object/computed";
export default Component.extend({
init() {
diff --git a/app/assets/javascripts/discourse/app/components/groups-form-membership-fields.js b/app/assets/javascripts/discourse/app/components/groups-form-membership-fields.js
index fb00e15c13a..e7239ce3857 100644
--- a/app/assets/javascripts/discourse/app/components/groups-form-membership-fields.js
+++ b/app/assets/javascripts/discourse/app/components/groups-form-membership-fields.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import I18n from "I18n";
import { computed } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tokenSeparator: "|",
diff --git a/app/assets/javascripts/discourse/app/components/groups-form-profile-fields.js b/app/assets/javascripts/discourse/app/components/groups-form-profile-fields.js
index e6c2af54baa..23672bc5b85 100644
--- a/app/assets/javascripts/discourse/app/components/groups-form-profile-fields.js
+++ b/app/assets/javascripts/discourse/app/components/groups-form-profile-fields.js
@@ -1,12 +1,12 @@
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import EmberObject from "@ember/object";
+import Group from "discourse/models/group";
import I18n from "I18n";
+import discourseDebounce from "discourse/lib/debounce";
import { isEmpty } from "@ember/utils";
import { not } from "@ember/object/computed";
-import Component from "@ember/component";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import Group from "discourse/models/group";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import discourseDebounce from "discourse/lib/debounce";
-import EmberObject from "@ember/object";
export default Component.extend({
disableSave: null,
diff --git a/app/assets/javascripts/discourse/app/components/groups-info.js b/app/assets/javascripts/discourse/app/components/groups-info.js
index 9390d17e4e6..f7ff39a99fc 100644
--- a/app/assets/javascripts/discourse/app/components/groups-info.js
+++ b/app/assets/javascripts/discourse/app/components/groups-info.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/components/highlight-search.js b/app/assets/javascripts/discourse/app/components/highlight-search.js
index 7864b6ef982..b0f8cc5e9cf 100644
--- a/app/assets/javascripts/discourse/app/components/highlight-search.js
+++ b/app/assets/javascripts/discourse/app/components/highlight-search.js
@@ -1,6 +1,6 @@
+import { observes, on } from "discourse-common/utils/decorators";
import Component from "@ember/component";
import highlightSearch from "discourse/lib/highlight-search";
-import { observes, on } from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/components/highlight-text.js b/app/assets/javascripts/discourse/app/components/highlight-text.js
index 2f37f89e9b9..6199140de3d 100644
--- a/app/assets/javascripts/discourse/app/components/highlight-text.js
+++ b/app/assets/javascripts/discourse/app/components/highlight-text.js
@@ -1,5 +1,5 @@
-import highlightSearch from "discourse/components/highlight-search";
import deprecated from "discourse-common/lib/deprecated";
+import highlightSearch from "discourse/components/highlight-search";
export default highlightSearch.extend({
init() {
diff --git a/app/assets/javascripts/discourse/app/components/ignored-user-list.js b/app/assets/javascripts/discourse/app/components/ignored-user-list.js
index a7a2d3d5157..e355a898edb 100644
--- a/app/assets/javascripts/discourse/app/components/ignored-user-list.js
+++ b/app/assets/javascripts/discourse/app/components/ignored-user-list.js
@@ -1,7 +1,7 @@
import Component from "@ember/component";
+import User from "discourse/models/user";
import { popupAjaxError } from "discourse/lib/ajax-error";
import showModal from "discourse/lib/show-modal";
-import User from "discourse/models/user";
export default Component.extend({
item: null,
diff --git a/app/assets/javascripts/discourse/app/components/image-uploader.js b/app/assets/javascripts/discourse/app/components/image-uploader.js
index c292d20641e..441ec4b743c 100644
--- a/app/assets/javascripts/discourse/app/components/image-uploader.js
+++ b/app/assets/javascripts/discourse/app/components/image-uploader.js
@@ -1,11 +1,11 @@
-import { getURLWithCDN } from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
-import { next } from "@ember/runloop";
import Component from "@ember/component";
import UploadMixin from "discourse/mixins/upload";
-import lightbox from "discourse/lib/lightbox";
import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import { getURLWithCDN } from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
+import lightbox from "discourse/lib/lightbox";
+import { next } from "@ember/runloop";
import { popupAjaxError } from "discourse/lib/ajax-error";
export default Component.extend(UploadMixin, {
diff --git a/app/assets/javascripts/discourse/app/components/images-uploader.js b/app/assets/javascripts/discourse/app/components/images-uploader.js
index 7f6a70c15dd..beeff06ccfd 100644
--- a/app/assets/javascripts/discourse/app/components/images-uploader.js
+++ b/app/assets/javascripts/discourse/app/components/images-uploader.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import I18n from "I18n";
import UploadMixin from "discourse/mixins/upload";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend(UploadMixin, {
type: "avatar",
diff --git a/app/assets/javascripts/discourse/app/components/invite-link-panel.js b/app/assets/javascripts/discourse/app/components/invite-link-panel.js
index 27c2d53fd35..339cd521ea5 100644
--- a/app/assets/javascripts/discourse/app/components/invite-link-panel.js
+++ b/app/assets/javascripts/discourse/app/components/invite-link-panel.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
+import { and, readOnly } from "@ember/object/computed";
import Component from "@ember/component";
import Group from "discourse/models/group";
-import { and, readOnly } from "@ember/object/computed";
+import I18n from "I18n";
+import Invite from "discourse/models/invite";
import { action } from "@ember/object";
import discourseComputed from "discourse-common/utils/decorators";
-import Invite from "discourse/models/invite";
export default Component.extend({
inviteModel: readOnly("panel.model.inviteModel"),
diff --git a/app/assets/javascripts/discourse/app/components/invite-panel.js b/app/assets/javascripts/discourse/app/components/invite-panel.js
index 9b289189d85..0578836b38e 100644
--- a/app/assets/javascripts/discourse/app/components/invite-panel.js
+++ b/app/assets/javascripts/discourse/app/components/invite-panel.js
@@ -1,14 +1,14 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
import EmberObject, { action } from "@ember/object";
import { alias, and, equal, readOnly } from "@ember/object/computed";
import Component from "@ember/component";
-import { emailValid } from "discourse/lib/utilities";
import Group from "discourse/models/group";
+import I18n from "I18n";
import Invite from "discourse/models/invite";
-import { i18n } from "discourse/lib/computed";
+import discourseComputed from "discourse-common/utils/decorators";
+import { emailValid } from "discourse/lib/utilities";
import { getNativeContact } from "discourse/lib/pwa-utils";
+import { i18n } from "discourse/lib/computed";
+import { isEmpty } from "@ember/utils";
export default Component.extend({
tagName: null,
diff --git a/app/assets/javascripts/discourse/app/components/latest-topic-list-item.js b/app/assets/javascripts/discourse/app/components/latest-topic-list-item.js
index 5e48bd6ac20..96fc9310b2e 100644
--- a/app/assets/javascripts/discourse/app/components/latest-topic-list-item.js
+++ b/app/assets/javascripts/discourse/app/components/latest-topic-list-item.js
@@ -1,8 +1,8 @@
-import Component from "@ember/component";
import {
- showEntrance,
navigateToTopic,
+ showEntrance,
} from "discourse/components/topic-list-item";
+import Component from "@ember/component";
export default Component.extend({
attributeBindings: ["topic.id:data-topic-id"],
diff --git a/app/assets/javascripts/discourse/app/components/link-to-input.js b/app/assets/javascripts/discourse/app/components/link-to-input.js
index 6a988c8c9a2..b3b9b704328 100644
--- a/app/assets/javascripts/discourse/app/components/link-to-input.js
+++ b/app/assets/javascripts/discourse/app/components/link-to-input.js
@@ -1,5 +1,5 @@
-import { schedule } from "@ember/runloop";
import Component from "@ember/component";
+import { schedule } from "@ember/runloop";
export default Component.extend({
showInput: false,
diff --git a/app/assets/javascripts/discourse/app/components/links-redirect.js b/app/assets/javascripts/discourse/app/components/links-redirect.js
index e74b6d9f145..45996d88ec3 100644
--- a/app/assets/javascripts/discourse/app/components/links-redirect.js
+++ b/app/assets/javascripts/discourse/app/components/links-redirect.js
@@ -1,5 +1,5 @@
-import Component from "@ember/component";
import ClickTrack from "discourse/lib/click-track";
+import Component from "@ember/component";
export default Component.extend({
didInsertElement() {
diff --git a/app/assets/javascripts/discourse/app/components/login-buttons.js b/app/assets/javascripts/discourse/app/components/login-buttons.js
index b321aaf6f8b..ca8c628671a 100644
--- a/app/assets/javascripts/discourse/app/components/login-buttons.js
+++ b/app/assets/javascripts/discourse/app/components/login-buttons.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
import { findAll } from "discourse/models/login-method";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/login-modal.js b/app/assets/javascripts/discourse/app/components/login-modal.js
index 2e3207e6df8..52f0acef040 100644
--- a/app/assets/javascripts/discourse/app/components/login-modal.js
+++ b/app/assets/javascripts/discourse/app/components/login-modal.js
@@ -1,6 +1,6 @@
-import { schedule } from "@ember/runloop";
import Component from "@ember/component";
import cookie from "discourse/lib/cookie";
+import { schedule } from "@ember/runloop";
export default Component.extend({
didInsertElement() {
diff --git a/app/assets/javascripts/discourse/app/components/mobile-nav.js b/app/assets/javascripts/discourse/app/components/mobile-nav.js
index 197743242d5..db61688f961 100644
--- a/app/assets/javascripts/discourse/app/components/mobile-nav.js
+++ b/app/assets/javascripts/discourse/app/components/mobile-nav.js
@@ -1,6 +1,6 @@
-import { next } from "@ember/runloop";
+import { observes, on } from "discourse-common/utils/decorators";
import Component from "@ember/component";
-import { on, observes } from "discourse-common/utils/decorators";
+import { next } from "@ember/runloop";
export default Component.extend({
@on("init")
diff --git a/app/assets/javascripts/discourse/app/components/modal-tab.js b/app/assets/javascripts/discourse/app/components/modal-tab.js
index 07977aff2c6..ed87097b6eb 100644
--- a/app/assets/javascripts/discourse/app/components/modal-tab.js
+++ b/app/assets/javascripts/discourse/app/components/modal-tab.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
+import discourseComputed from "discourse-common/utils/decorators";
import { equal } from "@ember/object/computed";
import { propertyEqual } from "discourse/lib/computed";
-import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "li",
diff --git a/app/assets/javascripts/discourse/app/components/mount-widget.js b/app/assets/javascripts/discourse/app/components/mount-widget.js
index 5d8b319f8e6..f0f7e66e4a3 100644
--- a/app/assets/javascripts/discourse/app/components/mount-widget.js
+++ b/app/assets/javascripts/discourse/app/components/mount-widget.js
@@ -1,11 +1,11 @@
import { cancel, scheduleOnce } from "@ember/runloop";
-import Component from "@ember/component";
import { diff, patch } from "virtual-dom";
-import { WidgetClickHook } from "discourse/widgets/hooks";
import { queryRegistry, traverseCustomWidgets } from "discourse/widgets/widget";
-import { getRegister } from "discourse-common/lib/get-owner";
+import Component from "@ember/component";
import DirtyKeys from "discourse/lib/dirty-keys";
+import { WidgetClickHook } from "discourse/widgets/hooks";
import { camelize } from "@ember/string";
+import { getRegister } from "discourse-common/lib/get-owner";
let _cleanCallbacks = {};
export function addWidgetCleanCallback(widgetName, fn) {
diff --git a/app/assets/javascripts/discourse/app/components/nav-item.js b/app/assets/javascripts/discourse/app/components/nav-item.js
index d8afc6b39c6..54e0562ec05 100644
--- a/app/assets/javascripts/discourse/app/components/nav-item.js
+++ b/app/assets/javascripts/discourse/app/components/nav-item.js
@@ -1,9 +1,9 @@
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import { inject as service } from "@ember/service";
-import Component from "@ember/component";
-/* You might be looking for navigation-item. */
import { iconHTML } from "discourse-common/lib/icon-library";
+/* You might be looking for navigation-item. */
+import { inject as service } from "@ember/service";
export default Component.extend({
tagName: "li",
diff --git a/app/assets/javascripts/discourse/app/components/navigation-bar.js b/app/assets/javascripts/discourse/app/components/navigation-bar.js
index 45041bc4cb4..8cd046314b7 100644
--- a/app/assets/javascripts/discourse/app/components/navigation-bar.js
+++ b/app/assets/javascripts/discourse/app/components/navigation-bar.js
@@ -1,9 +1,9 @@
-import { next } from "@ember/runloop";
-import Component from "@ember/component";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
import DiscourseURL from "discourse/lib/url";
-import { renderedConnectorsFor } from "discourse/lib/plugin-connectors";
import FilterModeMixin from "discourse/mixins/filter-mode";
+import { next } from "@ember/runloop";
+import { renderedConnectorsFor } from "discourse/lib/plugin-connectors";
export default Component.extend(FilterModeMixin, {
tagName: "ul",
diff --git a/app/assets/javascripts/discourse/app/components/navigation-item.js b/app/assets/javascripts/discourse/app/components/navigation-item.js
index d5768eb202b..29b95a405c7 100644
--- a/app/assets/javascripts/discourse/app/components/navigation-item.js
+++ b/app/assets/javascripts/discourse/app/components/navigation-item.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
import FilterModeMixin from "discourse/mixins/filter-mode";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend(FilterModeMixin, {
tagName: "li",
diff --git a/app/assets/javascripts/discourse/app/components/notification-consent-banner.js b/app/assets/javascripts/discourse/app/components/notification-consent-banner.js
index e9cf6a936dd..d19abc998d9 100644
--- a/app/assets/javascripts/discourse/app/components/notification-consent-banner.js
+++ b/app/assets/javascripts/discourse/app/components/notification-consent-banner.js
@@ -1,6 +1,6 @@
+import DesktopNotificationConfig from "discourse/components/desktop-notification-config";
import discourseComputed from "discourse-common/utils/decorators";
import { keyValueStore as pushNotificationKeyValueStore } from "discourse/lib/push-notifications";
-import DesktopNotificationConfig from "discourse/components/desktop-notification-config";
const userDismissedPromptKey = "dismissed-prompt";
diff --git a/app/assets/javascripts/discourse/app/components/plugin-connector.js b/app/assets/javascripts/discourse/app/components/plugin-connector.js
index 34dcb9ce4ef..abf6d89f119 100644
--- a/app/assets/javascripts/discourse/app/components/plugin-connector.js
+++ b/app/assets/javascripts/discourse/app/components/plugin-connector.js
@@ -1,8 +1,8 @@
+import { computed, defineProperty } from "@ember/object";
import Component from "@ember/component";
-import { defineProperty, computed } from "@ember/object";
-import deprecated from "discourse-common/lib/deprecated";
-import { buildArgsWithDeprecations } from "discourse/lib/plugin-connectors";
import { afterRender } from "discourse-common/utils/decorators";
+import { buildArgsWithDeprecations } from "discourse/lib/plugin-connectors";
+import deprecated from "discourse-common/lib/deprecated";
let _decorators = {};
diff --git a/app/assets/javascripts/discourse/app/components/plugin-outlet.js b/app/assets/javascripts/discourse/app/components/plugin-outlet.js
index 1fd1f402f71..410b070a1b9 100644
--- a/app/assets/javascripts/discourse/app/components/plugin-outlet.js
+++ b/app/assets/javascripts/discourse/app/components/plugin-outlet.js
@@ -1,4 +1,7 @@
-import Component from "@ember/component";
+import {
+ buildArgsWithDeprecations,
+ renderedConnectorsFor,
+} from "discourse/lib/plugin-connectors";
/**
A plugin outlet is an extension point for templates where other templates can
be inserted by plugins.
@@ -30,10 +33,7 @@ import Component from "@ember/component";
The list of disabled plugins is returned via the `Site` singleton.
**/
-import {
- renderedConnectorsFor,
- buildArgsWithDeprecations,
-} from "discourse/lib/plugin-connectors";
+import Component from "@ember/component";
export default Component.extend({
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/components/popup-input-tip.js b/app/assets/javascripts/discourse/app/components/popup-input-tip.js
index f15a50c2272..51d5519862d 100644
--- a/app/assets/javascripts/discourse/app/components/popup-input-tip.js
+++ b/app/assets/javascripts/discourse/app/components/popup-input-tip.js
@@ -1,7 +1,7 @@
import { alias, not } from "@ember/object/computed";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
import Component from "@ember/component";
import { iconHTML } from "discourse-common/lib/icon-library";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
export default Component.extend({
classNameBindings: [":popup-tip", "good", "bad", "lastShownAt::hide"],
diff --git a/app/assets/javascripts/discourse/app/components/preference-checkbox.js b/app/assets/javascripts/discourse/app/components/preference-checkbox.js
index f38ed1f6c09..d138f58e19c 100644
--- a/app/assets/javascripts/discourse/app/components/preference-checkbox.js
+++ b/app/assets/javascripts/discourse/app/components/preference-checkbox.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
export default Component.extend({
classNames: ["controls"],
diff --git a/app/assets/javascripts/discourse/app/components/pwa-install-banner.js b/app/assets/javascripts/discourse/app/components/pwa-install-banner.js
index 86e91ab2b36..9f29c72cf3a 100644
--- a/app/assets/javascripts/discourse/app/components/pwa-install-banner.js
+++ b/app/assets/javascripts/discourse/app/components/pwa-install-banner.js
@@ -1,5 +1,5 @@
-import Component from "@ember/component";
import discourseComputed, { bind, on } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
const USER_DISMISSED_PROMPT_KEY = "dismissed-pwa-install-banner";
diff --git a/app/assets/javascripts/discourse/app/components/quote-button.js b/app/assets/javascripts/discourse/app/components/quote-button.js
index 08b0d52ed93..6a7393775e0 100644
--- a/app/assets/javascripts/discourse/app/components/quote-button.js
+++ b/app/assets/javascripts/discourse/app/components/quote-button.js
@@ -1,18 +1,18 @@
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
-import discourseDebounce from "discourse/lib/debounce";
-import toMarkdown from "discourse/lib/to-markdown";
import {
- selectedText,
- selectedElement,
postUrl,
+ selectedElement,
+ selectedText,
} from "discourse/lib/utilities";
-import { getAbsoluteURL } from "discourse-common/lib/get-url";
+import Component from "@ember/component";
import { INPUT_DELAY } from "discourse-common/config/environment";
-import { action } from "@ember/object";
-import discourseComputed from "discourse-common/utils/decorators";
import Sharing from "discourse/lib/sharing";
+import { action } from "@ember/object";
import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
+import discourseDebounce from "discourse/lib/debounce";
+import { getAbsoluteURL } from "discourse-common/lib/get-url";
+import { schedule } from "@ember/runloop";
+import toMarkdown from "discourse/lib/to-markdown";
function getQuoteTitle(element) {
const titleEl = element.querySelector(".title");
diff --git a/app/assets/javascripts/discourse/app/components/radio-button.js b/app/assets/javascripts/discourse/app/components/radio-button.js
index 40a3abf07cb..c7411a860a2 100644
--- a/app/assets/javascripts/discourse/app/components/radio-button.js
+++ b/app/assets/javascripts/discourse/app/components/radio-button.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "input",
diff --git a/app/assets/javascripts/discourse/app/components/related-messages.js b/app/assets/javascripts/discourse/app/components/related-messages.js
index 9d78fcee9ea..daa1a058bea 100644
--- a/app/assets/javascripts/discourse/app/components/related-messages.js
+++ b/app/assets/javascripts/discourse/app/components/related-messages.js
@@ -1,6 +1,6 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/reviewable-bundled-action.js b/app/assets/javascripts/discourse/app/components/reviewable-bundled-action.js
index 6a84b18eec8..5046c027f24 100644
--- a/app/assets/javascripts/discourse/app/components/reviewable-bundled-action.js
+++ b/app/assets/javascripts/discourse/app/components/reviewable-bundled-action.js
@@ -1,4 +1,4 @@
-import { gt, alias } from "@ember/object/computed";
+import { alias, gt } from "@ember/object/computed";
import Component from "@ember/component";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/reviewable-claimed-topic.js b/app/assets/javascripts/discourse/app/components/reviewable-claimed-topic.js
index 8405fc041a9..b8fef00b177 100644
--- a/app/assets/javascripts/discourse/app/components/reviewable-claimed-topic.js
+++ b/app/assets/javascripts/discourse/app/components/reviewable-claimed-topic.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/reviewable-conversation-post.js b/app/assets/javascripts/discourse/app/components/reviewable-conversation-post.js
index 4cad0417bec..375bac5343c 100644
--- a/app/assets/javascripts/discourse/app/components/reviewable-conversation-post.js
+++ b/app/assets/javascripts/discourse/app/components/reviewable-conversation-post.js
@@ -1,5 +1,5 @@
-import { gte } from "@ember/object/computed";
import Component from "@ember/component";
+import { gte } from "@ember/object/computed";
export default Component.extend({
showUsername: gte("index", 1),
});
diff --git a/app/assets/javascripts/discourse/app/components/reviewable-flagged-post.js b/app/assets/javascripts/discourse/app/components/reviewable-flagged-post.js
index 7e57c8ed628..84c27f152f5 100644
--- a/app/assets/javascripts/discourse/app/components/reviewable-flagged-post.js
+++ b/app/assets/javascripts/discourse/app/components/reviewable-flagged-post.js
@@ -1,8 +1,8 @@
+import Component from "@ember/component";
import discourseComputed from "discourse-common/utils/decorators";
import { gt } from "@ember/object/computed";
-import Component from "@ember/component";
-import { longDate } from "discourse/lib/formatter";
import { historyHeat } from "discourse/widgets/post-edits-indicator";
+import { longDate } from "discourse/lib/formatter";
import showModal from "discourse/lib/show-modal";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/reviewable-histories.js b/app/assets/javascripts/discourse/app/components/reviewable-histories.js
index 9b7e1fb10a9..b50025f33d5 100644
--- a/app/assets/javascripts/discourse/app/components/reviewable-histories.js
+++ b/app/assets/javascripts/discourse/app/components/reviewable-histories.js
@@ -1,5 +1,5 @@
-import { filterBy } from "@ember/object/computed";
import Component from "@ember/component";
+import { filterBy } from "@ember/object/computed";
export default Component.extend({
filteredHistories: filterBy("histories", "created", false),
});
diff --git a/app/assets/javascripts/discourse/app/components/reviewable-item.js b/app/assets/javascripts/discourse/app/components/reviewable-item.js
index 39cfd92faad..585a54f7ff7 100644
--- a/app/assets/javascripts/discourse/app/components/reviewable-item.js
+++ b/app/assets/javascripts/discourse/app/components/reviewable-item.js
@@ -1,14 +1,14 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
-import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import Category from "discourse/models/category";
-import optionalService from "discourse/lib/optional-service";
-import showModal from "discourse/lib/show-modal";
-import { dasherize } from "@ember/string";
-import { set } from "@ember/object";
+import Component from "@ember/component";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import { dasherize } from "@ember/string";
+import discourseComputed from "discourse-common/utils/decorators";
+import optionalService from "discourse/lib/optional-service";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { set } from "@ember/object";
+import showModal from "discourse/lib/show-modal";
let _components = {};
diff --git a/app/assets/javascripts/discourse/app/components/reviewable-score.js b/app/assets/javascripts/discourse/app/components/reviewable-score.js
index 2cf3ba72d39..5ca9a262e71 100644
--- a/app/assets/javascripts/discourse/app/components/reviewable-score.js
+++ b/app/assets/javascripts/discourse/app/components/reviewable-score.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import discourseComputed from "discourse-common/utils/decorators";
import { gt } from "@ember/object/computed";
-import Component from "@ember/component";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/save-controls.js b/app/assets/javascripts/discourse/app/components/save-controls.js
index b0f5f84f3e7..73e0e0ba747 100644
--- a/app/assets/javascripts/discourse/app/components/save-controls.js
+++ b/app/assets/javascripts/discourse/app/components/save-controls.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import discourseComputed from "discourse-common/utils/decorators";
import { or } from "@ember/object/computed";
-import Component from "@ember/component";
export default Component.extend({
classNames: ["controls", "save-button"],
diff --git a/app/assets/javascripts/discourse/app/components/scroll-tracker.js b/app/assets/javascripts/discourse/app/components/scroll-tracker.js
index 7fb7b398e10..228a50d1a25 100644
--- a/app/assets/javascripts/discourse/app/components/scroll-tracker.js
+++ b/app/assets/javascripts/discourse/app/components/scroll-tracker.js
@@ -1,6 +1,6 @@
-import { next } from "@ember/runloop";
import Component from "@ember/component";
import Scrolling from "discourse/mixins/scrolling";
+import { next } from "@ember/runloop";
export default Component.extend(Scrolling, {
didReceiveAttrs() {
diff --git a/app/assets/javascripts/discourse/app/components/scrolling-post-stream.js b/app/assets/javascripts/discourse/app/components/scrolling-post-stream.js
index a5bb6c089fe..054a5d95a6b 100644
--- a/app/assets/javascripts/discourse/app/components/scrolling-post-stream.js
+++ b/app/assets/javascripts/discourse/app/components/scrolling-post-stream.js
@@ -1,7 +1,7 @@
+import { cloak, uncloak } from "discourse/widgets/post-stream";
import { debounce, next, scheduleOnce } from "@ember/runloop";
import DiscourseURL from "discourse/lib/url";
import MountWidget from "discourse/components/mount-widget";
-import { cloak, uncloak } from "discourse/widgets/post-stream";
import { isWorkaroundActive } from "discourse/lib/safari-hacks";
import offsetCalculator from "discourse/lib/offset-calculator";
import { inject as service } from "@ember/service";
diff --git a/app/assets/javascripts/discourse/app/components/search-advanced-options.js b/app/assets/javascripts/discourse/app/components/search-advanced-options.js
index 15aad708d05..86d11e1bf09 100644
--- a/app/assets/javascripts/discourse/app/components/search-advanced-options.js
+++ b/app/assets/javascripts/discourse/app/components/search-advanced-options.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
+import Category from "discourse/models/category";
import Component from "@ember/component";
+import I18n from "I18n";
import { action } from "@ember/object";
import { escapeExpression } from "discourse/lib/utilities";
-import Category from "discourse/models/category";
const REGEXP_BLOCKS = /(([^" \t\n\x0B\f\r]+)?(("[^"]+")?))/g;
diff --git a/app/assets/javascripts/discourse/app/components/search-text-field.js b/app/assets/javascripts/discourse/app/components/search-text-field.js
index 2c78a6736da..f2ce629a2bd 100644
--- a/app/assets/javascripts/discourse/app/components/search-text-field.js
+++ b/app/assets/javascripts/discourse/app/components/search-text-field.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import discourseComputed, { on } from "discourse-common/utils/decorators";
+import I18n from "I18n";
import TextField from "discourse/components/text-field";
import { applySearchAutocomplete } from "discourse/lib/search";
diff --git a/app/assets/javascripts/discourse/app/components/second-factor-form.js b/app/assets/javascripts/discourse/app/components/second-factor-form.js
index 8467026b062..3f0c40b381e 100644
--- a/app/assets/javascripts/discourse/app/components/second-factor-form.js
+++ b/app/assets/javascripts/discourse/app/components/second-factor-form.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import I18n from "I18n";
import { SECOND_FACTOR_METHODS } from "discourse/models/user";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
@discourseComputed("secondFactorMethod")
diff --git a/app/assets/javascripts/discourse/app/components/second-factor-input.js b/app/assets/javascripts/discourse/app/components/second-factor-input.js
index f1a2ac9fcd2..b1da9e9d0ea 100644
--- a/app/assets/javascripts/discourse/app/components/second-factor-input.js
+++ b/app/assets/javascripts/discourse/app/components/second-factor-input.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
import { SECOND_FACTOR_METHODS } from "discourse/models/user";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
@discourseComputed("secondFactorMethod")
diff --git a/app/assets/javascripts/discourse/app/components/share-panel.js b/app/assets/javascripts/discourse/app/components/share-panel.js
index 5dc0012d12d..af0fb62147e 100644
--- a/app/assets/javascripts/discourse/app/components/share-panel.js
+++ b/app/assets/javascripts/discourse/app/components/share-panel.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
-import { escapeExpression } from "discourse/lib/utilities";
-import discourseComputed from "discourse-common/utils/decorators";
+import I18n from "I18n";
import Sharing from "discourse/lib/sharing";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
+import { escapeExpression } from "discourse/lib/utilities";
+import { isEmpty } from "@ember/utils";
import { later } from "@ember/runloop";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/share-popup.js b/app/assets/javascripts/discourse/app/components/share-popup.js
index b62f08dc2c2..3b2c3eb0933 100644
--- a/app/assets/javascripts/discourse/app/components/share-popup.js
+++ b/app/assets/javascripts/discourse/app/components/share-popup.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { scheduleOnce, later } from "@ember/runloop";
-import Component from "@ember/component";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
-import { longDateNoYear } from "discourse/lib/formatter";
import discourseComputed, { bind } from "discourse-common/utils/decorators";
+import { later, scheduleOnce } from "@ember/runloop";
+import Component from "@ember/component";
+import I18n from "I18n";
import Sharing from "discourse/lib/sharing";
-import { nativeShare } from "discourse/lib/pwa-utils";
import { alias } from "@ember/object/computed";
+import { isEmpty } from "@ember/utils";
+import { longDateNoYear } from "discourse/lib/formatter";
+import { nativeShare } from "discourse/lib/pwa-utils";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
export default Component.extend({
elementId: "share-link",
diff --git a/app/assets/javascripts/discourse/app/components/shared-draft-controls.js b/app/assets/javascripts/discourse/app/components/shared-draft-controls.js
index 927f259d107..cc0347a41ac 100644
--- a/app/assets/javascripts/discourse/app/components/shared-draft-controls.js
+++ b/app/assets/javascripts/discourse/app/components/shared-draft-controls.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import I18n from "I18n";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/signup-cta.js b/app/assets/javascripts/discourse/app/components/signup-cta.js
index 6008bf3b463..944e5363117 100644
--- a/app/assets/javascripts/discourse/app/components/signup-cta.js
+++ b/app/assets/javascripts/discourse/app/components/signup-cta.js
@@ -1,5 +1,5 @@
-import { later } from "@ember/runloop";
import Component from "@ember/component";
+import { later } from "@ember/runloop";
import { on } from "@ember/object/evented";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/site-header.js b/app/assets/javascripts/discourse/app/components/site-header.js
index ffeaebadd4f..b1d5146ae0d 100644
--- a/app/assets/javascripts/discourse/app/components/site-header.js
+++ b/app/assets/javascripts/discourse/app/components/site-header.js
@@ -1,12 +1,12 @@
-import { cancel, later, schedule } from "@ember/runloop";
-import MountWidget from "discourse/components/mount-widget";
-import { observes } from "discourse-common/utils/decorators";
-import Docking from "discourse/mixins/docking";
import PanEvents, {
- SWIPE_VELOCITY,
SWIPE_DISTANCE_THRESHOLD,
+ SWIPE_VELOCITY,
SWIPE_VELOCITY_THRESHOLD,
} from "discourse/mixins/pan-events";
+import { cancel, later, schedule } from "@ember/runloop";
+import Docking from "discourse/mixins/docking";
+import MountWidget from "discourse/components/mount-widget";
+import { observes } from "discourse-common/utils/decorators";
import { topicTitleDecorators } from "discourse/components/topic-title";
const SiteHeaderComponent = MountWidget.extend(Docking, PanEvents, {
diff --git a/app/assets/javascripts/discourse/app/components/slow-mode-info.js b/app/assets/javascripts/discourse/app/components/slow-mode-info.js
index 178291630d7..65fb10ebbaf 100644
--- a/app/assets/javascripts/discourse/app/components/slow-mode-info.js
+++ b/app/assets/javascripts/discourse/app/components/slow-mode-info.js
@@ -1,9 +1,9 @@
-import { durationTextFromSeconds } from "discourse/helpers/slow-mode";
import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
import Topic from "discourse/models/topic";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import { action } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
+import { durationTextFromSeconds } from "discourse/helpers/slow-mode";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Component.extend({
@discourseComputed("topic.slow_mode_seconds")
diff --git a/app/assets/javascripts/discourse/app/components/suggested-topics.js b/app/assets/javascripts/discourse/app/components/suggested-topics.js
index cf34847a1bd..f601c1d84d2 100644
--- a/app/assets/javascripts/discourse/app/components/suggested-topics.js
+++ b/app/assets/javascripts/discourse/app/components/suggested-topics.js
@@ -1,10 +1,10 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import { computed, get } from "@ember/object";
import Component from "@ember/component";
-import { categoryBadgeHTML } from "discourse/helpers/category-link";
+import I18n from "I18n";
import Site from "discourse/models/site";
+import { categoryBadgeHTML } from "discourse/helpers/category-link";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/table-header-toggle.js b/app/assets/javascripts/discourse/app/components/table-header-toggle.js
index e94d260c86b..0ab184a1e43 100644
--- a/app/assets/javascripts/discourse/app/components/table-header-toggle.js
+++ b/app/assets/javascripts/discourse/app/components/table-header-toggle.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
import { iconHTML } from "discourse-common/lib/icon-library";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/tag-drop-link.js b/app/assets/javascripts/discourse/app/components/tag-drop-link.js
index c3875ce884c..8b90a3246f8 100644
--- a/app/assets/javascripts/discourse/app/components/tag-drop-link.js
+++ b/app/assets/javascripts/discourse/app/components/tag-drop-link.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
import DiscourseURL from "discourse/lib/url";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "a",
diff --git a/app/assets/javascripts/discourse/app/components/tag-groups-form.js b/app/assets/javascripts/discourse/app/components/tag-groups-form.js
index cc51816677d..d9ba0fff3b9 100644
--- a/app/assets/javascripts/discourse/app/components/tag-groups-form.js
+++ b/app/assets/javascripts/discourse/app/components/tag-groups-form.js
@@ -1,11 +1,11 @@
+import Component from "@ember/component";
+import Group from "discourse/models/group";
import I18n from "I18n";
+import PermissionType from "discourse/models/permission-type";
+import bootbox from "bootbox";
+import { bufferedProperty } from "discourse/mixins/buffered-content";
import discourseComputed from "discourse-common/utils/decorators";
import { isEmpty } from "@ember/utils";
-import Component from "@ember/component";
-import { bufferedProperty } from "discourse/mixins/buffered-content";
-import PermissionType from "discourse/models/permission-type";
-import Group from "discourse/models/group";
-import bootbox from "bootbox";
export default Component.extend(bufferedProperty("model"), {
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/tag-info.js b/app/assets/javascripts/discourse/app/components/tag-info.js
index 0aef4eedb6f..5749eb283ef 100644
--- a/app/assets/javascripts/discourse/app/components/tag-info.js
+++ b/app/assets/javascripts/discourse/app/components/tag-info.js
@@ -1,12 +1,12 @@
+import { and, reads } from "@ember/object/computed";
+import Component from "@ember/component";
import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
+import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
import { popupAjaxError } from "discourse/lib/ajax-error";
import showModal from "discourse/lib/show-modal";
-import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
-import { reads, and } from "@ember/object/computed";
-import { isEmpty } from "@ember/utils";
-import bootbox from "bootbox";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/tag-list.js b/app/assets/javascripts/discourse/app/components/tag-list.js
index 72853d4bb7d..52b3c41df34 100644
--- a/app/assets/javascripts/discourse/app/components/tag-list.js
+++ b/app/assets/javascripts/discourse/app/components/tag-list.js
@@ -1,8 +1,8 @@
+import Category from "discourse/models/category";
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import { sort } from "@ember/object/computed";
-import Component from "@ember/component";
-import Category from "discourse/models/category";
export default Component.extend({
classNameBindings: [
diff --git a/app/assets/javascripts/discourse/app/components/tags-admin-dropdown.js b/app/assets/javascripts/discourse/app/components/tags-admin-dropdown.js
index 0dbfc3233ba..1f1da871496 100644
--- a/app/assets/javascripts/discourse/app/components/tags-admin-dropdown.js
+++ b/app/assets/javascripts/discourse/app/components/tags-admin-dropdown.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
import { computed } from "@ember/object";
export default DropdownSelectBoxComponent.extend({
diff --git a/app/assets/javascripts/discourse/app/components/text-field.js b/app/assets/javascripts/discourse/app/components/text-field.js
index 1a90c693406..187a1661b42 100644
--- a/app/assets/javascripts/discourse/app/components/text-field.js
+++ b/app/assets/javascripts/discourse/app/components/text-field.js
@@ -1,8 +1,8 @@
+import { cancel, debounce, next } from "@ember/runloop";
+import { isLTR, isRTL, siteDir } from "discourse/lib/text-direction";
import I18n from "I18n";
import TextField from "@ember/component/text-field";
import discourseComputed from "discourse-common/utils/decorators";
-import { siteDir, isRTL, isLTR } from "discourse/lib/text-direction";
-import { next, debounce, cancel } from "@ember/runloop";
const DEBOUNCE_MS = 500;
diff --git a/app/assets/javascripts/discourse/app/components/time-input.js b/app/assets/javascripts/discourse/app/components/time-input.js
index 0163ee1dd98..35b8c8d7828 100644
--- a/app/assets/javascripts/discourse/app/components/time-input.js
+++ b/app/assets/javascripts/discourse/app/components/time-input.js
@@ -1,6 +1,6 @@
-import { isPresent } from "@ember/utils";
-import { computed, action } from "@ember/object";
+import { action, computed } from "@ember/object";
import Component from "@ember/component";
+import { isPresent } from "@ember/utils";
function convertMinutes(num) {
return { hours: Math.floor(num / 60), minutes: num % 60 };
diff --git a/app/assets/javascripts/discourse/app/components/top-period-buttons.js b/app/assets/javascripts/discourse/app/components/top-period-buttons.js
index 3ff48e71fb5..f1f637385d0 100644
--- a/app/assets/javascripts/discourse/app/components/top-period-buttons.js
+++ b/app/assets/javascripts/discourse/app/components/top-period-buttons.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
classNames: ["top-title-buttons"],
diff --git a/app/assets/javascripts/discourse/app/components/topic-entrance.js b/app/assets/javascripts/discourse/app/components/topic-entrance.js
index c5cc0ca1155..2b73f4de6e9 100644
--- a/app/assets/javascripts/discourse/app/components/topic-entrance.js
+++ b/app/assets/javascripts/discourse/app/components/topic-entrance.js
@@ -1,9 +1,9 @@
+import CleansUp from "discourse/mixins/cleans-up";
+import Component from "@ember/component";
+import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import { scheduleOnce } from "@ember/runloop";
-import Component from "@ember/component";
-import DiscourseURL from "discourse/lib/url";
-import CleansUp from "discourse/mixins/cleans-up";
function entranceDate(dt, showTime) {
const today = new Date();
diff --git a/app/assets/javascripts/discourse/app/components/topic-footer-buttons.js b/app/assets/javascripts/discourse/app/components/topic-footer-buttons.js
index 429c4ea1866..270f488b6f9 100644
--- a/app/assets/javascripts/discourse/app/components/topic-footer-buttons.js
+++ b/app/assets/javascripts/discourse/app/components/topic-footer-buttons.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias, or, and } from "@ember/object/computed";
+import { alias, and, or } from "@ember/object/computed";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
import { getTopicFooterButtons } from "discourse/lib/register-topic-footer-button";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/topic-list-item.js b/app/assets/javascripts/discourse/app/components/topic-list-item.js
index 59d433da156..22d67f2d002 100644
--- a/app/assets/javascripts/discourse/app/components/topic-list-item.js
+++ b/app/assets/javascripts/discourse/app/components/topic-list-item.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
-import { schedule } from "@ember/runloop";
import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
+import { alias } from "@ember/object/computed";
import { findRawTemplate } from "discourse-common/lib/raw-templates";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
import { on } from "@ember/object/evented";
+import { schedule } from "@ember/runloop";
import { topicTitleDecorators } from "discourse/components/topic-title";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
export function showEntrance(e) {
let target = $(e.target);
diff --git a/app/assets/javascripts/discourse/app/components/topic-list.js b/app/assets/javascripts/discourse/app/components/topic-list.js
index 178fe9c82d1..8c5919afe48 100644
--- a/app/assets/javascripts/discourse/app/components/topic-list.js
+++ b/app/assets/javascripts/discourse/app/components/topic-list.js
@@ -1,9 +1,9 @@
import { alias, reads } from "@ember/object/computed";
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
import LoadMore from "discourse/mixins/load-more";
import { on } from "@ember/object/evented";
+import { schedule } from "@ember/runloop";
export default Component.extend(LoadMore, {
tagName: "table",
diff --git a/app/assets/javascripts/discourse/app/components/topic-navigation.js b/app/assets/javascripts/discourse/app/components/topic-navigation.js
index 1db8312fe2d..bacc74415ef 100644
--- a/app/assets/javascripts/discourse/app/components/topic-navigation.js
+++ b/app/assets/javascripts/discourse/app/components/topic-navigation.js
@@ -1,13 +1,13 @@
-import EmberObject from "@ember/object";
-import { debounce, later } from "@ember/runloop";
-import Component from "@ember/component";
-import { observes } from "discourse-common/utils/decorators";
-import showModal from "discourse/lib/show-modal";
import PanEvents, {
- SWIPE_VELOCITY,
SWIPE_DISTANCE_THRESHOLD,
+ SWIPE_VELOCITY,
SWIPE_VELOCITY_THRESHOLD,
} from "discourse/mixins/pan-events";
+import { debounce, later } from "@ember/runloop";
+import Component from "@ember/component";
+import EmberObject from "@ember/object";
+import { observes } from "discourse-common/utils/decorators";
+import showModal from "discourse/lib/show-modal";
const MIN_WIDTH_TIMELINE = 924,
MIN_HEIGHT_TIMELINE = 325;
diff --git a/app/assets/javascripts/discourse/app/components/topic-post-badges.js b/app/assets/javascripts/discourse/app/components/topic-post-badges.js
index 3efeaeee2dc..78600182a19 100644
--- a/app/assets/javascripts/discourse/app/components/topic-post-badges.js
+++ b/app/assets/javascripts/discourse/app/components/topic-post-badges.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
export default Component.extend({
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/components/topic-progress.js b/app/assets/javascripts/discourse/app/components/topic-progress.js
index 1fa674c713e..56f17df089d 100644
--- a/app/assets/javascripts/discourse/app/components/topic-progress.js
+++ b/app/assets/javascripts/discourse/app/components/topic-progress.js
@@ -1,8 +1,8 @@
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
import I18n from "I18n";
import { alias } from "@ember/object/computed";
import { scheduleOnce } from "@ember/runloop";
-import Component from "@ember/component";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
export default Component.extend({
elementId: "topic-progress-wrapper",
diff --git a/app/assets/javascripts/discourse/app/components/topic-status.js b/app/assets/javascripts/discourse/app/components/topic-status.js
index 9ff136b1926..a370849c8ca 100644
--- a/app/assets/javascripts/discourse/app/components/topic-status.js
+++ b/app/assets/javascripts/discourse/app/components/topic-status.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
import { iconHTML } from "discourse-common/lib/icon-library";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/topic-timeline.js b/app/assets/javascripts/discourse/app/components/topic-timeline.js
index e10377c30e0..09fbfcd78a9 100644
--- a/app/assets/javascripts/discourse/app/components/topic-timeline.js
+++ b/app/assets/javascripts/discourse/app/components/topic-timeline.js
@@ -1,6 +1,6 @@
-import { next } from "@ember/runloop";
-import MountWidget from "discourse/components/mount-widget";
import Docking from "discourse/mixins/docking";
+import MountWidget from "discourse/components/mount-widget";
+import { next } from "@ember/runloop";
import { observes } from "discourse-common/utils/decorators";
import optionalService from "discourse/lib/optional-service";
import outletHeights from "discourse/lib/header-outlet-height";
diff --git a/app/assets/javascripts/discourse/app/components/topic-timer-info.js b/app/assets/javascripts/discourse/app/components/topic-timer-info.js
index da3ce4e7e22..146ca10b2d5 100644
--- a/app/assets/javascripts/discourse/app/components/topic-timer-info.js
+++ b/app/assets/javascripts/discourse/app/components/topic-timer-info.js
@@ -1,10 +1,10 @@
+import { cancel, later } from "@ember/runloop";
+import Category from "discourse/models/category";
+import Component from "@ember/component";
+import { DELETE_REPLIES_TYPE } from "discourse/controllers/edit-topic-timer";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import { cancel, later } from "@ember/runloop";
-import Component from "@ember/component";
import { iconHTML } from "discourse-common/lib/icon-library";
-import Category from "discourse/models/category";
-import { DELETE_REPLIES_TYPE } from "discourse/controllers/edit-topic-timer";
import { isTesting } from "discourse-common/config/environment";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/user-badge.js b/app/assets/javascripts/discourse/app/components/user-badge.js
index f2647da215f..201fa550218 100644
--- a/app/assets/javascripts/discourse/app/components/user-badge.js
+++ b/app/assets/javascripts/discourse/app/components/user-badge.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/components/user-card-contents.js b/app/assets/javascripts/discourse/app/components/user-card-contents.js
index 93001a1299e..6c128fd2b60 100644
--- a/app/assets/javascripts/discourse/app/components/user-card-contents.js
+++ b/app/assets/javascripts/discourse/app/components/user-card-contents.js
@@ -1,16 +1,16 @@
-import { getURLWithCDN } from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { alias, gte, and, gt, not, or } from "@ember/object/computed";
import EmberObject, { set } from "@ember/object";
-import Component from "@ember/component";
+import { alias, and, gt, gte, not, or } from "@ember/object/computed";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import User from "discourse/models/user";
import { propertyNotEqual, setting } from "discourse/lib/computed";
-import { durationTiny } from "discourse/lib/formatter";
import CanCheckEmails from "discourse/mixins/can-check-emails";
import CardContentsBase from "discourse/mixins/card-contents-base";
import CleansUp from "discourse/mixins/cleans-up";
+import Component from "@ember/component";
+import I18n from "I18n";
+import User from "discourse/models/user";
+import { durationTiny } from "discourse/lib/formatter";
+import { getURLWithCDN } from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
import { prioritizeNameInUx } from "discourse/lib/settings";
export default Component.extend(CardContentsBase, CanCheckEmails, CleansUp, {
diff --git a/app/assets/javascripts/discourse/app/components/user-field.js b/app/assets/javascripts/discourse/app/components/user-field.js
index 08db97b9cb8..aedfa0de48f 100644
--- a/app/assets/javascripts/discourse/app/components/user-field.js
+++ b/app/assets/javascripts/discourse/app/components/user-field.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
import { fmt } from "discourse/lib/computed";
export default Component.extend({
diff --git a/app/assets/javascripts/discourse/app/components/user-flag-percentage.js b/app/assets/javascripts/discourse/app/components/user-flag-percentage.js
index 71525ea57f3..a5f19d13e03 100644
--- a/app/assets/javascripts/discourse/app/components/user-flag-percentage.js
+++ b/app/assets/javascripts/discourse/app/components/user-flag-percentage.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Component from "@ember/component";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/user-info.js b/app/assets/javascripts/discourse/app/components/user-info.js
index 051d8a3b0ba..a16b8875a4b 100644
--- a/app/assets/javascripts/discourse/app/components/user-info.js
+++ b/app/assets/javascripts/discourse/app/components/user-info.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
import { userPath } from "discourse/lib/url";
export function normalize(name) {
diff --git a/app/assets/javascripts/discourse/app/components/user-link.js b/app/assets/javascripts/discourse/app/components/user-link.js
index 71737d62351..fc3978a50b7 100644
--- a/app/assets/javascripts/discourse/app/components/user-link.js
+++ b/app/assets/javascripts/discourse/app/components/user-link.js
@@ -1,5 +1,5 @@
-import { alias } from "@ember/object/computed";
import Component from "@ember/component";
+import { alias } from "@ember/object/computed";
export default Component.extend({
tagName: "a",
attributeBindings: ["href", "data-user-card"],
diff --git a/app/assets/javascripts/discourse/app/components/user-selector.js b/app/assets/javascripts/discourse/app/components/user-selector.js
index b47aff691cd..6b9bb6a19a0 100644
--- a/app/assets/javascripts/discourse/app/components/user-selector.js
+++ b/app/assets/javascripts/discourse/app/components/user-selector.js
@@ -1,8 +1,8 @@
-import { isEmpty } from "@ember/utils";
-import { bind, on, observes } from "discourse-common/utils/decorators";
+import { bind, observes, on } from "discourse-common/utils/decorators";
import TextField from "discourse/components/text-field";
-import userSearch from "discourse/lib/user-search";
import { findRawTemplate } from "discourse-common/lib/raw-templates";
+import { isEmpty } from "@ember/utils";
+import userSearch from "discourse/lib/user-search";
export default TextField.extend({
autocorrect: false,
diff --git a/app/assets/javascripts/discourse/app/components/user-stat.js b/app/assets/javascripts/discourse/app/components/user-stat.js
index 61003fa8c50..bc33c00a5d2 100644
--- a/app/assets/javascripts/discourse/app/components/user-stat.js
+++ b/app/assets/javascripts/discourse/app/components/user-stat.js
@@ -1,5 +1,5 @@
-import { equal } from "@ember/object/computed";
import Component from "@ember/component";
+import { equal } from "@ember/object/computed";
export default Component.extend({
classNames: ["user-stat"],
type: "number",
diff --git a/app/assets/javascripts/discourse/app/components/user-stream-item.js b/app/assets/javascripts/discourse/app/components/user-stream-item.js
index cb6b3a5a516..b80903845c3 100644
--- a/app/assets/javascripts/discourse/app/components/user-stream-item.js
+++ b/app/assets/javascripts/discourse/app/components/user-stream-item.js
@@ -1,7 +1,7 @@
import Component from "@ember/component";
-import { propertyEqual } from "discourse/lib/computed";
-import { computed } from "@ember/object";
import { actionDescription } from "discourse/widgets/post-small-action";
+import { computed } from "@ember/object";
+import { propertyEqual } from "discourse/lib/computed";
export default Component.extend({
classNameBindings: [
diff --git a/app/assets/javascripts/discourse/app/components/user-stream.js b/app/assets/javascripts/discourse/app/components/user-stream.js
index 72a0b533f36..b57117e88f2 100644
--- a/app/assets/javascripts/discourse/app/components/user-stream.js
+++ b/app/assets/javascripts/discourse/app/components/user-stream.js
@@ -1,16 +1,16 @@
-import I18n from "I18n";
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
-import LoadMore from "discourse/mixins/load-more";
import ClickTrack from "discourse/lib/click-track";
-import Post from "discourse/models/post";
+import Component from "@ember/component";
import DiscourseURL from "discourse/lib/url";
import Draft from "discourse/models/draft";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import I18n from "I18n";
+import LoadMore from "discourse/mixins/load-more";
+import Post from "discourse/models/post";
+import bootbox from "bootbox";
import { getOwner } from "discourse-common/lib/get-owner";
import { observes } from "discourse-common/utils/decorators";
import { on } from "@ember/object/evented";
-import bootbox from "bootbox";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { schedule } from "@ember/runloop";
export default Component.extend(LoadMore, {
_initialize: on("init", function () {
diff --git a/app/assets/javascripts/discourse/app/components/user-summary-category-search.js b/app/assets/javascripts/discourse/app/components/user-summary-category-search.js
index 3a5441ff6b9..35c21644e9a 100644
--- a/app/assets/javascripts/discourse/app/components/user-summary-category-search.js
+++ b/app/assets/javascripts/discourse/app/components/user-summary-category-search.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
tagName: "",
diff --git a/app/assets/javascripts/discourse/app/components/user-summary-topics-list.js b/app/assets/javascripts/discourse/app/components/user-summary-topics-list.js
index 18fc5e896a4..f02063e03a8 100644
--- a/app/assets/javascripts/discourse/app/components/user-summary-topics-list.js
+++ b/app/assets/javascripts/discourse/app/components/user-summary-topics-list.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import discourseComputed from "discourse-common/utils/decorators";
// should be kept in sync with 'UserSummary::MAX_SUMMARY_RESULTS'
const MAX_SUMMARY_RESULTS = 6;
diff --git a/app/assets/javascripts/discourse/app/controllers/about.js b/app/assets/javascripts/discourse/app/controllers/about.js
index 9e05f5e9f9a..26f3761bfd8 100644
--- a/app/assets/javascripts/discourse/app/controllers/about.js
+++ b/app/assets/javascripts/discourse/app/controllers/about.js
@@ -1,7 +1,7 @@
+import Controller from "@ember/controller";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import { gt } from "@ember/object/computed";
-import Controller from "@ember/controller";
export default Controller.extend({
faqOverriden: gt("siteSettings.faq_url.length", 0),
diff --git a/app/assets/javascripts/discourse/app/controllers/account-created-edit-email.js b/app/assets/javascripts/discourse/app/controllers/account-created-edit-email.js
index 04c1dc7499d..c3a20cc06d7 100644
--- a/app/assets/javascripts/discourse/app/controllers/account-created-edit-email.js
+++ b/app/assets/javascripts/discourse/app/controllers/account-created-edit-email.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
import { changeEmail } from "discourse/lib/user-activation";
+import discourseComputed from "discourse-common/utils/decorators";
import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
diff --git a/app/assets/javascripts/discourse/app/controllers/activation-edit.js b/app/assets/javascripts/discourse/app/controllers/activation-edit.js
index 29620f3c149..ee57b1b1fd9 100644
--- a/app/assets/javascripts/discourse/app/controllers/activation-edit.js
+++ b/app/assets/javascripts/discourse/app/controllers/activation-edit.js
@@ -1,8 +1,8 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller, { inject as controller } from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { extractError } from "discourse/lib/ajax-error";
import { changeEmail } from "discourse/lib/user-activation";
+import discourseComputed from "discourse-common/utils/decorators";
+import { extractError } from "discourse/lib/ajax-error";
export default Controller.extend(ModalFunctionality, {
login: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/application.js b/app/assets/javascripts/discourse/app/controllers/application.js
index fb6b103bcb4..e8615d2f944 100644
--- a/app/assets/javascripts/discourse/app/controllers/application.js
+++ b/app/assets/javascripts/discourse/app/controllers/application.js
@@ -1,7 +1,7 @@
+import { isAppWebview, isiOSPWA } from "discourse/lib/utilities";
+import Controller from "@ember/controller";
import discourseComputed from "discourse-common/utils/decorators";
import { inject as service } from "@ember/service";
-import Controller from "@ember/controller";
-import { isAppWebview, isiOSPWA } from "discourse/lib/utilities";
export default Controller.extend({
showTop: true,
diff --git a/app/assets/javascripts/discourse/app/controllers/associate-account-confirm.js b/app/assets/javascripts/discourse/app/controllers/associate-account-confirm.js
index b817ae43247..6afae9f1d77 100644
--- a/app/assets/javascripts/discourse/app/controllers/associate-account-confirm.js
+++ b/app/assets/javascripts/discourse/app/controllers/associate-account-confirm.js
@@ -1,7 +1,7 @@
import Controller from "@ember/controller";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
import { ajax } from "discourse/lib/ajax";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
export default Controller.extend(ModalFunctionality, {
actions: {
diff --git a/app/assets/javascripts/discourse/app/controllers/auth-token.js b/app/assets/javascripts/discourse/app/controllers/auth-token.js
index 6637ea3b1ad..2d8c91157a3 100644
--- a/app/assets/javascripts/discourse/app/controllers/auth-token.js
+++ b/app/assets/javascripts/discourse/app/controllers/auth-token.js
@@ -1,7 +1,7 @@
-import { next } from "@ember/runloop";
import Controller from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { ajax } from "discourse/lib/ajax";
+import { next } from "@ember/runloop";
import { userPath } from "discourse/lib/url";
export default Controller.extend(ModalFunctionality, {
diff --git a/app/assets/javascripts/discourse/app/controllers/avatar-selector.js b/app/assets/javascripts/discourse/app/controllers/avatar-selector.js
index 099919cbce2..a7d7e2cf24a 100644
--- a/app/assets/javascripts/discourse/app/controllers/avatar-selector.js
+++ b/app/assets/javascripts/discourse/app/controllers/avatar-selector.js
@@ -1,8 +1,8 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { ajax } from "discourse/lib/ajax";
import { allowsImages } from "discourse/lib/uploads";
+import discourseComputed from "discourse-common/utils/decorators";
import { popupAjaxError } from "discourse/lib/ajax-error";
import { setting } from "discourse/lib/computed";
diff --git a/app/assets/javascripts/discourse/app/controllers/badges/index.js b/app/assets/javascripts/discourse/app/controllers/badges/index.js
index f6856254084..265b5cd3e6a 100644
--- a/app/assets/javascripts/discourse/app/controllers/badges/index.js
+++ b/app/assets/javascripts/discourse/app/controllers/badges/index.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import discourseComputed from "discourse-common/utils/decorators";
function badgeKey(badge) {
let pos = badge.get("badge_grouping.position");
diff --git a/app/assets/javascripts/discourse/app/controllers/badges/show.js b/app/assets/javascripts/discourse/app/controllers/badges/show.js
index ae33c40c816..4cab9625dac 100644
--- a/app/assets/javascripts/discourse/app/controllers/badges/show.js
+++ b/app/assets/javascripts/discourse/app/controllers/badges/show.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
import Controller, { inject as controller } from "@ember/controller";
-import EmberObject from "@ember/object";
-import Badge from "discourse/models/badge";
-import UserBadge from "discourse/models/user-badge";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Badge from "discourse/models/badge";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import UserBadge from "discourse/models/user-badge";
export default Controller.extend({
application: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/bookmark.js b/app/assets/javascripts/discourse/app/controllers/bookmark.js
index 0eb85d61958..e53617d5114 100644
--- a/app/assets/javascripts/discourse/app/controllers/bookmark.js
+++ b/app/assets/javascripts/discourse/app/controllers/bookmark.js
@@ -1,18 +1,18 @@
-import I18n from "I18n";
-import { schedule, next } from "@ember/runloop";
+import { REMINDER_TYPES, formattedReminderTime } from "discourse/lib/bookmark";
import { and, or } from "@ember/object/computed";
-import { action } from "@ember/object";
-import { isPresent, isEmpty } from "@ember/utils";
+import { isEmpty, isPresent } from "@ember/utils";
+import { next, schedule } from "@ember/runloop";
+import { AUTO_DELETE_PREFERENCES } from "discourse/models/bookmark";
import Controller from "@ember/controller";
-import { Promise } from "rsvp";
+import I18n from "I18n";
+import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { Promise } from "rsvp";
+import { action } from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
+import bootbox from "bootbox";
import discourseComputed from "discourse-common/utils/decorators";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import { ajax } from "discourse/lib/ajax";
-import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
-import { formattedReminderTime, REMINDER_TYPES } from "discourse/lib/bookmark";
-import { AUTO_DELETE_PREFERENCES } from "discourse/models/bookmark";
-import bootbox from "bootbox";
// global shortcuts that interfere with these modal shortcuts, they are rebound when the
// modal is closed
diff --git a/app/assets/javascripts/discourse/app/controllers/bulk-notification-level.js b/app/assets/javascripts/discourse/app/controllers/bulk-notification-level.js
index 70808d469c5..0a8655986fb 100644
--- a/app/assets/javascripts/discourse/app/controllers/bulk-notification-level.js
+++ b/app/assets/javascripts/discourse/app/controllers/bulk-notification-level.js
@@ -1,7 +1,7 @@
+import Controller, { inject as controller } from "@ember/controller";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import { empty } from "@ember/object/computed";
-import Controller, { inject as controller } from "@ember/controller";
import { topicLevels } from "discourse/lib/notification-levels";
// Support for changing the notification level of various topics
diff --git a/app/assets/javascripts/discourse/app/controllers/change-owner.js b/app/assets/javascripts/discourse/app/controllers/change-owner.js
index df39e86c950..d2e30c31c30 100644
--- a/app/assets/javascripts/discourse/app/controllers/change-owner.js
+++ b/app/assets/javascripts/discourse/app/controllers/change-owner.js
@@ -1,12 +1,12 @@
+import Controller, { inject } from "@ember/controller";
+import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import Topic from "discourse/models/topic";
+import { alias } from "@ember/object/computed";
import discourseComputed from "discourse-common/utils/decorators";
import { isEmpty } from "@ember/utils";
-import { alias } from "@ember/object/computed";
import { next } from "@ember/runloop";
-import Controller, { inject } from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import DiscourseURL from "discourse/lib/url";
-import Topic from "discourse/models/topic";
export default Controller.extend(ModalFunctionality, {
topicController: inject("topic"),
diff --git a/app/assets/javascripts/discourse/app/controllers/change-post-notice.js b/app/assets/javascripts/discourse/app/controllers/change-post-notice.js
index b8bfbdfa6ad..ffcbbaa175e 100644
--- a/app/assets/javascripts/discourse/app/controllers/change-post-notice.js
+++ b/app/assets/javascripts/discourse/app/controllers/change-post-notice.js
@@ -1,9 +1,9 @@
import Controller from "@ember/controller";
-import { action } from "@ember/object";
-import { isEmpty } from "@ember/utils";
-import discourseComputed from "discourse-common/utils/decorators";
-import { cookAsync } from "discourse/lib/text";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { action } from "@ember/object";
+import { cookAsync } from "discourse/lib/text";
+import discourseComputed from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
export default Controller.extend(ModalFunctionality, {
post: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/change-timestamp.js b/app/assets/javascripts/discourse/app/controllers/change-timestamp.js
index acc39aef156..8e41d3aa049 100644
--- a/app/assets/javascripts/discourse/app/controllers/change-timestamp.js
+++ b/app/assets/javascripts/discourse/app/controllers/change-timestamp.js
@@ -1,11 +1,11 @@
+import Controller, { inject } from "@ember/controller";
+import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import Topic from "discourse/models/topic";
import discourseComputed from "discourse-common/utils/decorators";
import { isEmpty } from "@ember/utils";
import { next } from "@ember/runloop";
-import Controller, { inject } from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import DiscourseURL from "discourse/lib/url";
-import Topic from "discourse/models/topic";
// Modal related to changing the timestamp of posts
export default Controller.extend(ModalFunctionality, {
diff --git a/app/assets/javascripts/discourse/app/controllers/composer.js b/app/assets/javascripts/discourse/app/controllers/composer.js
index 7feb149ddbd..9cb9d444f42 100644
--- a/app/assets/javascripts/discourse/app/controllers/composer.js
+++ b/app/assets/javascripts/discourse/app/controllers/composer.js
@@ -1,36 +1,36 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { and, or, alias, reads } from "@ember/object/computed";
-import { cancel, debounce, run } from "@ember/runloop";
-import { inject as service } from "@ember/service";
+import Composer, { SAVE_ICONS, SAVE_LABELS } from "discourse/models/composer";
import Controller, { inject } from "@ember/controller";
-import DiscourseURL from "discourse/lib/url";
-import { buildQuote } from "discourse/lib/quote";
-import Draft from "discourse/models/draft";
-import discourseComputed, {
- observes,
- on,
-} from "discourse-common/utils/decorators";
-import { getOwner } from "discourse-common/lib/get-owner";
-import { escapeExpression } from "discourse/lib/utilities";
+import EmberObject, { action, computed } from "@ember/object";
+import { alias, and, or, reads } from "@ember/object/computed";
import {
authorizesOneOrMoreExtensions,
uploadIcon,
} from "discourse/lib/uploads";
-import { emojiUnescape } from "discourse/lib/text";
-import { shortDate } from "discourse/lib/formatter";
-import Composer, { SAVE_LABELS, SAVE_ICONS } from "discourse/models/composer";
-import { Promise } from "rsvp";
-import { isTesting } from "discourse-common/config/environment";
-import EmberObject, { computed, action } from "@ember/object";
-import deprecated from "discourse-common/lib/deprecated";
-import bootbox from "bootbox";
-import showModal from "discourse/lib/show-modal";
+import { cancel, debounce, run } from "@ember/runloop";
import {
cannotPostAgain,
durationTextFromSeconds,
} from "discourse/helpers/slow-mode";
+import discourseComputed, {
+ observes,
+ on,
+} from "discourse-common/utils/decorators";
+import DiscourseURL from "discourse/lib/url";
+import Draft from "discourse/models/draft";
+import I18n from "I18n";
+import { Promise } from "rsvp";
+import bootbox from "bootbox";
+import { buildQuote } from "discourse/lib/quote";
+import deprecated from "discourse-common/lib/deprecated";
+import { emojiUnescape } from "discourse/lib/text";
+import { escapeExpression } from "discourse/lib/utilities";
+import { getOwner } from "discourse-common/lib/get-owner";
+import getURL from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
+import { isTesting } from "discourse-common/config/environment";
+import { inject as service } from "@ember/service";
+import { shortDate } from "discourse/lib/formatter";
+import showModal from "discourse/lib/show-modal";
function loadDraft(store, opts) {
let promise = Promise.resolve();
diff --git a/app/assets/javascripts/discourse/app/controllers/convert-to-public-topic.js b/app/assets/javascripts/discourse/app/controllers/convert-to-public-topic.js
index ba53b1a54b6..4fb7c1eee76 100644
--- a/app/assets/javascripts/discourse/app/controllers/convert-to-public-topic.js
+++ b/app/assets/javascripts/discourse/app/controllers/convert-to-public-topic.js
@@ -1,6 +1,6 @@
import Controller from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend(ModalFunctionality, {
publicCategoryId: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/create-account.js b/app/assets/javascripts/discourse/app/controllers/create-account.js
index d0976f6104d..fce8b5e08a3 100644
--- a/app/assets/javascripts/discourse/app/controllers/create-account.js
+++ b/app/assets/javascripts/discourse/app/controllers/create-account.js
@@ -1,27 +1,27 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { A } from "@ember/array";
-import { isEmpty } from "@ember/utils";
-import { notEmpty } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { setting } from "discourse/lib/computed";
+import cookie, { removeCookie } from "discourse/lib/cookie";
import discourseComputed, {
observes,
on,
} from "discourse-common/utils/decorators";
-import { emailValid } from "discourse/lib/utilities";
-import PasswordValidation from "discourse/mixins/password-validation";
-import UsernameValidation from "discourse/mixins/username-validation";
-import NameValidation from "discourse/mixins/name-validation";
-import UserFieldsValidation from "discourse/mixins/user-fields-validation";
-import { userPath } from "discourse/lib/url";
-import { findAll } from "discourse/models/login-method";
+import { A } from "@ember/array";
import EmberObject from "@ember/object";
-import User from "discourse/models/user";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import NameValidation from "discourse/mixins/name-validation";
+import PasswordValidation from "discourse/mixins/password-validation";
import { Promise } from "rsvp";
-import cookie, { removeCookie } from "discourse/lib/cookie";
+import User from "discourse/models/user";
+import UserFieldsValidation from "discourse/mixins/user-fields-validation";
+import UsernameValidation from "discourse/mixins/username-validation";
+import { ajax } from "discourse/lib/ajax";
+import { emailValid } from "discourse/lib/utilities";
+import { findAll } from "discourse/models/login-method";
+import getURL from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
+import { notEmpty } from "@ember/object/computed";
+import { setting } from "discourse/lib/computed";
+import { userPath } from "discourse/lib/url";
export default Controller.extend(
ModalFunctionality,
diff --git a/app/assets/javascripts/discourse/app/controllers/delete-topic-confirm.js b/app/assets/javascripts/discourse/app/controllers/delete-topic-confirm.js
index f3e06c43f31..fb8de284301 100644
--- a/app/assets/javascripts/discourse/app/controllers/delete-topic-confirm.js
+++ b/app/assets/javascripts/discourse/app/controllers/delete-topic-confirm.js
@@ -1,8 +1,8 @@
+import Controller, { inject } from "@ember/controller";
import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
import { action } from "@ember/object";
import discourseComputed from "discourse-common/utils/decorators";
-import Controller, { inject } from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
// Modal that displays confirmation text when user deletes a topic
// The modal will display only if the topic exceeds a certain amount of views
diff --git a/app/assets/javascripts/discourse/app/controllers/discovery.js b/app/assets/javascripts/discourse/app/controllers/discovery.js
index c50bca76d3e..9f2993a6ae2 100644
--- a/app/assets/javascripts/discourse/app/controllers/discovery.js
+++ b/app/assets/javascripts/discourse/app/controllers/discovery.js
@@ -1,7 +1,7 @@
-import { alias, not, equal } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
-import DiscourseURL from "discourse/lib/url";
+import { alias, equal, not } from "@ember/object/computed";
import Category from "discourse/models/category";
+import DiscourseURL from "discourse/lib/url";
import { observes } from "discourse-common/utils/decorators";
import { inject as service } from "@ember/service";
diff --git a/app/assets/javascripts/discourse/app/controllers/discovery/categories.js b/app/assets/javascripts/discourse/app/controllers/discovery/categories.js
index a213a32efbc..01879ddc2e8 100644
--- a/app/assets/javascripts/discourse/app/controllers/discovery/categories.js
+++ b/app/assets/javascripts/discourse/app/controllers/discovery/categories.js
@@ -1,8 +1,8 @@
+import DiscoveryController from "discourse/controllers/discovery";
+import { inject as controller } from "@ember/controller";
+import { dasherize } from "@ember/string";
import discourseComputed from "discourse-common/utils/decorators";
import { reads } from "@ember/object/computed";
-import { inject as controller } from "@ember/controller";
-import DiscoveryController from "discourse/controllers/discovery";
-import { dasherize } from "@ember/string";
const subcategoryStyleComponentNames = {
rows: "categories_only",
diff --git a/app/assets/javascripts/discourse/app/controllers/discovery/topics.js b/app/assets/javascripts/discourse/app/controllers/discovery/topics.js
index 679ada3505a..6e33eb20fce 100644
--- a/app/assets/javascripts/discourse/app/controllers/discovery/topics.js
+++ b/app/assets/javascripts/discourse/app/controllers/discovery/topics.js
@@ -1,25 +1,25 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import {
alias,
- not,
- gt,
empty,
- notEmpty,
equal,
+ gt,
+ not,
+ notEmpty,
readOnly,
} from "@ember/object/computed";
-import { inject as controller } from "@ember/controller";
-import DiscoveryController from "discourse/controllers/discovery";
import BulkTopicSelection from "discourse/mixins/bulk-topic-selection";
-import { endWith } from "discourse/lib/computed";
-import showModal from "discourse/lib/show-modal";
-import { userPath } from "discourse/lib/url";
-import TopicList from "discourse/models/topic-list";
+import DiscoveryController from "discourse/controllers/discovery";
+import I18n from "I18n";
import Topic from "discourse/models/topic";
+import TopicList from "discourse/models/topic-list";
+import { inject as controller } from "@ember/controller";
+import deprecated from "discourse-common/lib/deprecated";
+import discourseComputed from "discourse-common/utils/decorators";
+import { endWith } from "discourse/lib/computed";
import { routeAction } from "discourse/helpers/route-action";
import { inject as service } from "@ember/service";
-import deprecated from "discourse-common/lib/deprecated";
+import showModal from "discourse/lib/show-modal";
+import { userPath } from "discourse/lib/url";
const controllerOpts = {
discovery: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/edit-category-tabs.js b/app/assets/javascripts/discourse/app/controllers/edit-category-tabs.js
index cff351a23a0..6a3f6ea50a5 100644
--- a/app/assets/javascripts/discourse/app/controllers/edit-category-tabs.js
+++ b/app/assets/javascripts/discourse/app/controllers/edit-category-tabs.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
-import Controller from "@ember/controller";
import discourseComputed, { on } from "discourse-common/utils/decorators";
+import Controller from "@ember/controller";
+import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
+import { NotificationLevels } from "discourse/lib/notification-levels";
+import PermissionType from "discourse/models/permission-type";
import bootbox from "bootbox";
import { extractError } from "discourse/lib/ajax-error";
-import DiscourseURL from "discourse/lib/url";
import { readOnly } from "@ember/object/computed";
-import PermissionType from "discourse/models/permission-type";
-import { NotificationLevels } from "discourse/lib/notification-levels";
import { underscore } from "@ember/string";
export default Controller.extend({
diff --git a/app/assets/javascripts/discourse/app/controllers/edit-slow-mode.js b/app/assets/javascripts/discourse/app/controllers/edit-slow-mode.js
index 4cf17bf2395..e76573617f9 100644
--- a/app/assets/javascripts/discourse/app/controllers/edit-slow-mode.js
+++ b/app/assets/javascripts/discourse/app/controllers/edit-slow-mode.js
@@ -1,12 +1,12 @@
-import Controller from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import discourseComputed from "discourse-common/utils/decorators";
-import I18n from "I18n";
-import Topic from "discourse/models/topic";
import { fromSeconds, toSeconds } from "discourse/helpers/slow-mode";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { equal } from "@ember/object/computed";
+import Controller from "@ember/controller";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import Topic from "discourse/models/topic";
import { action } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
+import { equal } from "@ember/object/computed";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend(ModalFunctionality, {
selectedSlowMode: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/edit-topic-timer.js b/app/assets/javascripts/discourse/app/controllers/edit-topic-timer.js
index 784a6d07054..64a8c1c4f3d 100644
--- a/app/assets/javascripts/discourse/app/controllers/edit-topic-timer.js
+++ b/app/assets/javascripts/discourse/app/controllers/edit-topic-timer.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
-import { alias } from "@ember/object/computed";
import EmberObject, { setProperties } from "@ember/object";
import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
+import { FORMAT } from "select-kit/components/future-date-input-selector";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import TopicTimer from "discourse/models/topic-timer";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import { FORMAT } from "select-kit/components/future-date-input-selector";
export const CLOSE_STATUS_TYPE = "close";
export const OPEN_STATUS_TYPE = "open";
diff --git a/app/assets/javascripts/discourse/app/controllers/email-login.js b/app/assets/javascripts/discourse/app/controllers/email-login.js
index 575110d2958..166f9fd8c34 100644
--- a/app/assets/javascripts/discourse/app/controllers/email-login.js
+++ b/app/assets/javascripts/discourse/app/controllers/email-login.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import DiscourseURL from "discourse/lib/url";
import { SECOND_FACTOR_METHODS } from "discourse/models/user";
import { ajax } from "discourse/lib/ajax";
-import DiscourseURL from "discourse/lib/url";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
import { getWebauthnCredential } from "discourse/lib/webauthn";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
lockImageUrl: getURL("/images/lock.svg"),
diff --git a/app/assets/javascripts/discourse/app/controllers/exception.js b/app/assets/javascripts/discourse/app/controllers/exception.js
index badf33afc86..0057782817c 100644
--- a/app/assets/javascripts/discourse/app/controllers/exception.js
+++ b/app/assets/javascripts/discourse/app/controllers/exception.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import { equal, gte, none, alias } from "@ember/object/computed";
-import { schedule } from "@ember/runloop";
-import Controller from "@ember/controller";
+import { alias, equal, gte, none } from "@ember/object/computed";
import discourseComputed, { on } from "discourse-common/utils/decorators";
+import Controller from "@ember/controller";
+import I18n from "I18n";
+import { schedule } from "@ember/runloop";
const ButtonBackBright = {
classes: "btn-primary",
diff --git a/app/assets/javascripts/discourse/app/controllers/feature-topic-on-profile.js b/app/assets/javascripts/discourse/app/controllers/feature-topic-on-profile.js
index 622b5823bf9..946a4551066 100644
--- a/app/assets/javascripts/discourse/app/controllers/feature-topic-on-profile.js
+++ b/app/assets/javascripts/discourse/app/controllers/feature-topic-on-profile.js
@@ -1,8 +1,8 @@
import Controller from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import { none } from "@ember/object/computed";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend(ModalFunctionality, {
newFeaturedTopic: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/feature-topic.js b/app/assets/javascripts/discourse/app/controllers/feature-topic.js
index b646cec5004..d05003e9a35 100644
--- a/app/assets/javascripts/discourse/app/controllers/feature-topic.js
+++ b/app/assets/javascripts/discourse/app/controllers/feature-topic.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Controller, { inject } from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { categoryLinkHTML } from "discourse/helpers/category-link";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import { categoryLinkHTML } from "discourse/helpers/category-link";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend(ModalFunctionality, {
topicController: inject("topic"),
diff --git a/app/assets/javascripts/discourse/app/controllers/flag.js b/app/assets/javascripts/discourse/app/controllers/flag.js
index 22cc6840812..21c41e973b0 100644
--- a/app/assets/javascripts/discourse/app/controllers/flag.js
+++ b/app/assets/javascripts/discourse/app/controllers/flag.js
@@ -1,15 +1,15 @@
+import ActionSummary from "discourse/models/action-summary";
+import Controller from "@ember/controller";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { MAX_MESSAGE_LENGTH } from "discourse/models/post-action-type";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { Promise } from "rsvp";
+import User from "discourse/models/user";
import discourseComputed from "discourse-common/utils/decorators";
import { not } from "@ember/object/computed";
-import EmberObject from "@ember/object";
-import Controller from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import ActionSummary from "discourse/models/action-summary";
-import { MAX_MESSAGE_LENGTH } from "discourse/models/post-action-type";
import optionalService from "discourse/lib/optional-service";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import I18n from "I18n";
-import User from "discourse/models/user";
-import { Promise } from "rsvp";
export default Controller.extend(ModalFunctionality, {
adminTools: optionalService(),
diff --git a/app/assets/javascripts/discourse/app/controllers/forgot-password.js b/app/assets/javascripts/discourse/app/controllers/forgot-password.js
index 3da342f8f40..8a7d814a7b5 100644
--- a/app/assets/javascripts/discourse/app/controllers/forgot-password.js
+++ b/app/assets/javascripts/discourse/app/controllers/forgot-password.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
import Controller from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { ajax } from "discourse/lib/ajax";
+import cookie from "discourse/lib/cookie";
+import discourseComputed from "discourse-common/utils/decorators";
import { escapeExpression } from "discourse/lib/utilities";
import { extractError } from "discourse/lib/ajax-error";
import getURL from "discourse-common/lib/get-url";
-import cookie from "discourse/lib/cookie";
+import { isEmpty } from "@ember/utils";
export default Controller.extend(ModalFunctionality, {
offerHelp: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/full-page-search.js b/app/assets/javascripts/discourse/app/controllers/full-page-search.js
index 032b438c8e5..44dee80ae3e 100644
--- a/app/assets/javascripts/discourse/app/controllers/full-page-search.js
+++ b/app/assets/javascripts/discourse/app/controllers/full-page-search.js
@@ -1,20 +1,20 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { or } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
import {
- translateResults,
- searchContextDescription,
getSearchKey,
isValidSearchTerm,
+ searchContextDescription,
+ translateResults,
} from "discourse/lib/search";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
import Category from "discourse/models/category";
-import { escapeExpression } from "discourse/lib/utilities";
-import { setTransient } from "discourse/lib/page-tracker";
import Composer from "discourse/models/composer";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
+import { escapeExpression } from "discourse/lib/utilities";
+import { isEmpty } from "@ember/utils";
+import { or } from "@ember/object/computed";
import { scrollTop } from "discourse/mixins/scroll-top";
+import { setTransient } from "discourse/lib/page-tracker";
const SortOrders = [
{ name: I18n.t("search.relevance"), id: 0 },
diff --git a/app/assets/javascripts/discourse/app/controllers/grant-badge.js b/app/assets/javascripts/discourse/app/controllers/grant-badge.js
index 0375df7c30f..a0f060aef56 100644
--- a/app/assets/javascripts/discourse/app/controllers/grant-badge.js
+++ b/app/assets/javascripts/discourse/app/controllers/grant-badge.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import Controller, { inject } from "@ember/controller";
-import { extractError } from "discourse/lib/ajax-error";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import GrantBadgeController from "discourse/mixins/grant-badge-controller";
import Badge from "discourse/models/badge";
+import GrantBadgeController from "discourse/mixins/grant-badge-controller";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
import UserBadge from "discourse/models/user-badge";
import { all } from "rsvp";
+import discourseComputed from "discourse-common/utils/decorators";
+import { extractError } from "discourse/lib/ajax-error";
export default Controller.extend(ModalFunctionality, GrantBadgeController, {
topicController: inject("topic"),
diff --git a/app/assets/javascripts/discourse/app/controllers/group-activity-posts.js b/app/assets/javascripts/discourse/app/controllers/group-activity-posts.js
index b5a702386ff..3e73979ca83 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-activity-posts.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-activity-posts.js
@@ -1,6 +1,6 @@
import Controller, { inject as controller } from "@ember/controller";
-import { observes } from "discourse-common/utils/decorators";
import { fmt } from "discourse/lib/computed";
+import { observes } from "discourse-common/utils/decorators";
export default Controller.extend({
group: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/group-activity.js b/app/assets/javascripts/discourse/app/controllers/group-activity.js
index 36a5ada86b9..d00fe154e9d 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-activity.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-activity.js
@@ -1,5 +1,5 @@
-import { inject as service } from "@ember/service";
import Controller from "@ember/controller";
+import { inject as service } from "@ember/service";
export default Controller.extend({
router: service(),
queryParams: ["category_id"],
diff --git a/app/assets/javascripts/discourse/app/controllers/group-add-members.js b/app/assets/javascripts/discourse/app/controllers/group-add-members.js
index ed6258c45a4..4964da68867 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-add-members.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-add-members.js
@@ -1,11 +1,11 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
import Controller from "@ember/controller";
-import { extractError } from "discourse/lib/ajax-error";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { action } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
import { emailValid } from "discourse/lib/utilities";
-import I18n from "I18n";
+import { extractError } from "discourse/lib/ajax-error";
+import { isEmpty } from "@ember/utils";
export default Controller.extend(ModalFunctionality, {
loading: false,
diff --git a/app/assets/javascripts/discourse/app/controllers/group-index.js b/app/assets/javascripts/discourse/app/controllers/group-index.js
index fa04f694aca..fd37fe892d7 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-index.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-index.js
@@ -1,9 +1,9 @@
import Controller, { inject as controller } from "@ember/controller";
-import { gt } from "@ember/object/computed";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import discourseDebounce from "discourse/lib/debounce";
import { action } from "@ember/object";
+import discourseDebounce from "discourse/lib/debounce";
+import { gt } from "@ember/object/computed";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
application: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/group-manage-categories.js b/app/assets/javascripts/discourse/app/controllers/group-manage-categories.js
index 88b101f43cf..239a2eab233 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-manage-categories.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-manage-categories.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
@discourseComputed(
diff --git a/app/assets/javascripts/discourse/app/controllers/group-manage-tags.js b/app/assets/javascripts/discourse/app/controllers/group-manage-tags.js
index c55b45bde35..70fbe2b8bf6 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-manage-tags.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-manage-tags.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
@discourseComputed(
diff --git a/app/assets/javascripts/discourse/app/controllers/group-manage.js b/app/assets/javascripts/discourse/app/controllers/group-manage.js
index fd7042334b4..28b3da6b8b0 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-manage.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-manage.js
@@ -1,6 +1,6 @@
-import { inject as service } from "@ember/service";
import Controller from "@ember/controller";
import discourseComputed from "discourse-common/utils/decorators";
+import { inject as service } from "@ember/service";
export default Controller.extend({
router: service(),
diff --git a/app/assets/javascripts/discourse/app/controllers/group-messages.js b/app/assets/javascripts/discourse/app/controllers/group-messages.js
index 9d963204199..cb0c46fcf17 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-messages.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-messages.js
@@ -1,5 +1,5 @@
-import { inject as service } from "@ember/service";
import Controller from "@ember/controller";
+import { inject as service } from "@ember/service";
export default Controller.extend({
router: service(),
});
diff --git a/app/assets/javascripts/discourse/app/controllers/group-requests.js b/app/assets/javascripts/discourse/app/controllers/group-requests.js
index a9f7e8dfd88..791da19ee0c 100644
--- a/app/assets/javascripts/discourse/app/controllers/group-requests.js
+++ b/app/assets/javascripts/discourse/app/controllers/group-requests.js
@@ -1,8 +1,8 @@
import Controller, { inject as controller } from "@ember/controller";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import discourseDebounce from "discourse/lib/debounce";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
application: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/group.js b/app/assets/javascripts/discourse/app/controllers/group.js
index 9cc9b218d91..635a1bca1eb 100644
--- a/app/assets/javascripts/discourse/app/controllers/group.js
+++ b/app/assets/javascripts/discourse/app/controllers/group.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import EmberObject, { action } from "@ember/object";
import Controller, { inject as controller } from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
-import { inject as service } from "@ember/service";
-import { readOnly } from "@ember/object/computed";
-import deprecated from "discourse-common/lib/deprecated";
+import EmberObject, { action } from "@ember/object";
+import I18n from "I18n";
import bootbox from "bootbox";
+import deprecated from "discourse-common/lib/deprecated";
+import discourseComputed from "discourse-common/utils/decorators";
+import { readOnly } from "@ember/object/computed";
+import { inject as service } from "@ember/service";
const Tab = EmberObject.extend({
init() {
diff --git a/app/assets/javascripts/discourse/app/controllers/groups-index.js b/app/assets/javascripts/discourse/app/controllers/groups-index.js
index de488fb53d0..a68dbedf58a 100644
--- a/app/assets/javascripts/discourse/app/controllers/groups-index.js
+++ b/app/assets/javascripts/discourse/app/controllers/groups-index.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
import Controller, { inject as controller } from "@ember/controller";
-import { debounce } from "@ember/runloop";
-import { action } from "@ember/object";
-import discourseComputed from "discourse-common/utils/decorators";
+import I18n from "I18n";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import { action } from "@ember/object";
+import { debounce } from "@ember/runloop";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend({
application: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/groups-new.js b/app/assets/javascripts/discourse/app/controllers/groups-new.js
index ed2a25e9366..821c60c167e 100644
--- a/app/assets/javascripts/discourse/app/controllers/groups-new.js
+++ b/app/assets/javascripts/discourse/app/controllers/groups-new.js
@@ -1,9 +1,9 @@
+import Controller from "@ember/controller";
import I18n from "I18n";
import { action } from "@ember/object";
-import Controller from "@ember/controller";
import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import bootbox from "bootbox";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export function popupAutomaticMembershipAlert(group_id, email_domains) {
if (!email_domains) {
diff --git a/app/assets/javascripts/discourse/app/controllers/history.js b/app/assets/javascripts/discourse/app/controllers/history.js
index e80e265d3e6..23d66efe331 100644
--- a/app/assets/javascripts/discourse/app/controllers/history.js
+++ b/app/assets/javascripts/discourse/app/controllers/history.js
@@ -1,19 +1,19 @@
-import I18n from "I18n";
+import { alias, equal, gt, not, or } from "@ember/object/computed";
import discourseComputed, {
- on,
observes,
+ on,
} from "discourse-common/utils/decorators";
-import { alias, gt, not, or, equal } from "@ember/object/computed";
-import Controller from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { categoryBadgeHTML } from "discourse/helpers/category-link";
import { propertyGreaterThan, propertyLessThan } from "discourse/lib/computed";
-import { sanitizeAsync } from "discourse/lib/text";
-import { iconHTML } from "discourse-common/lib/icon-library";
-import Post from "discourse/models/post";
import Category from "discourse/models/category";
-import { computed } from "@ember/object";
+import Controller from "@ember/controller";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import Post from "discourse/models/post";
import bootbox from "bootbox";
+import { categoryBadgeHTML } from "discourse/helpers/category-link";
+import { computed } from "@ember/object";
+import { iconHTML } from "discourse-common/lib/icon-library";
+import { sanitizeAsync } from "discourse/lib/text";
function customTagArray(fieldName) {
return computed(fieldName, function () {
diff --git a/app/assets/javascripts/discourse/app/controllers/ignore-duration-with-username.js b/app/assets/javascripts/discourse/app/controllers/ignore-duration-with-username.js
index c8d7afcbbe3..408c6f72d7a 100644
--- a/app/assets/javascripts/discourse/app/controllers/ignore-duration-with-username.js
+++ b/app/assets/javascripts/discourse/app/controllers/ignore-duration-with-username.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import User from "discourse/models/user";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend(ModalFunctionality, {
loading: false,
diff --git a/app/assets/javascripts/discourse/app/controllers/ignore-duration.js b/app/assets/javascripts/discourse/app/controllers/ignore-duration.js
index 8382e90cea7..ad141ae22af 100644
--- a/app/assets/javascripts/discourse/app/controllers/ignore-duration.js
+++ b/app/assets/javascripts/discourse/app/controllers/ignore-duration.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { popupAjaxError } from "discourse/lib/ajax-error";
diff --git a/app/assets/javascripts/discourse/app/controllers/insert-hyperlink.js b/app/assets/javascripts/discourse/app/controllers/insert-hyperlink.js
index d57eec38b47..3d4b3babadd 100644
--- a/app/assets/javascripts/discourse/app/controllers/insert-hyperlink.js
+++ b/app/assets/javascripts/discourse/app/controllers/insert-hyperlink.js
@@ -1,10 +1,10 @@
-import { isEmpty } from "@ember/utils";
import { cancel, debounce, schedule } from "@ember/runloop";
import Controller from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { searchForTerm } from "discourse/lib/search";
import { bind } from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
import { prefixProtocol } from "discourse/lib/url";
+import { searchForTerm } from "discourse/lib/search";
export default Controller.extend(ModalFunctionality, {
_debounced: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/invites-show.js b/app/assets/javascripts/discourse/app/controllers/invites-show.js
index 8e142efdcc0..811c74f960f 100644
--- a/app/assets/javascripts/discourse/app/controllers/invites-show.js
+++ b/app/assets/javascripts/discourse/app/controllers/invites-show.js
@@ -1,18 +1,18 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
import { alias, notEmpty, or, readOnly } from "@ember/object/computed";
import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
-import getUrl from "discourse-common/lib/get-url";
import DiscourseURL from "discourse/lib/url";
-import { ajax } from "discourse/lib/ajax";
-import { emailValid } from "discourse/lib/utilities";
-import PasswordValidation from "discourse/mixins/password-validation";
-import UsernameValidation from "discourse/mixins/username-validation";
-import NameValidation from "discourse/mixins/name-validation";
-import UserFieldsValidation from "discourse/mixins/user-fields-validation";
-import { findAll as findLoginMethods } from "discourse/models/login-method";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import NameValidation from "discourse/mixins/name-validation";
+import PasswordValidation from "discourse/mixins/password-validation";
+import UserFieldsValidation from "discourse/mixins/user-fields-validation";
+import UsernameValidation from "discourse/mixins/username-validation";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import { emailValid } from "discourse/lib/utilities";
+import { findAll as findLoginMethods } from "discourse/models/login-method";
+import getUrl from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
export default Controller.extend(
PasswordValidation,
diff --git a/app/assets/javascripts/discourse/app/controllers/jump-to-post.js b/app/assets/javascripts/discourse/app/controllers/jump-to-post.js
index a2aa1a06923..dab3ced52bb 100644
--- a/app/assets/javascripts/discourse/app/controllers/jump-to-post.js
+++ b/app/assets/javascripts/discourse/app/controllers/jump-to-post.js
@@ -1,7 +1,7 @@
-import { alias } from "@ember/object/computed";
-import { next } from "@ember/runloop";
import Controller from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { alias } from "@ember/object/computed";
+import { next } from "@ember/runloop";
export default Controller.extend(ModalFunctionality, {
model: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/keyboard-shortcuts-help.js b/app/assets/javascripts/discourse/app/controllers/keyboard-shortcuts-help.js
index ebf2632ac39..f717a0fe795 100644
--- a/app/assets/javascripts/discourse/app/controllers/keyboard-shortcuts-help.js
+++ b/app/assets/javascripts/discourse/app/controllers/keyboard-shortcuts-help.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
const KEY = "keyboard_shortcuts_help";
diff --git a/app/assets/javascripts/discourse/app/controllers/login.js b/app/assets/javascripts/discourse/app/controllers/login.js
index 94468d4bae5..ce500f8209a 100644
--- a/app/assets/javascripts/discourse/app/controllers/login.js
+++ b/app/assets/javascripts/discourse/app/controllers/login.js
@@ -1,23 +1,23 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
-import { alias, or, readOnly } from "@ember/object/computed";
-import EmberObject from "@ember/object";
-import { next, schedule } from "@ember/runloop";
import Controller, { inject as controller } from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import showModal from "discourse/lib/show-modal";
-import { setting } from "discourse/lib/computed";
-import { findAll } from "discourse/models/login-method";
-import { escape } from "pretty-text/sanitizer";
-import { escapeExpression, areCookiesEnabled } from "discourse/lib/utilities";
-import { extractError } from "discourse/lib/ajax-error";
-import { SECOND_FACTOR_METHODS } from "discourse/models/user";
-import { getWebauthnCredential } from "discourse/lib/webauthn";
-import bootbox from "bootbox";
+import { alias, or, readOnly } from "@ember/object/computed";
+import { areCookiesEnabled, escapeExpression } from "discourse/lib/utilities";
import cookie, { removeCookie } from "discourse/lib/cookie";
+import { next, schedule } from "@ember/runloop";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { SECOND_FACTOR_METHODS } from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
+import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { escape } from "pretty-text/sanitizer";
+import { extractError } from "discourse/lib/ajax-error";
+import { findAll } from "discourse/models/login-method";
+import getURL from "discourse-common/lib/get-url";
+import { getWebauthnCredential } from "discourse/lib/webauthn";
+import { isEmpty } from "@ember/utils";
+import { setting } from "discourse/lib/computed";
+import showModal from "discourse/lib/show-modal";
// This is happening outside of the app via popup
const AuthErrors = [
diff --git a/app/assets/javascripts/discourse/app/controllers/move-to-topic.js b/app/assets/javascripts/discourse/app/controllers/move-to-topic.js
index 1337ecad3d4..648fa3cabce 100644
--- a/app/assets/javascripts/discourse/app/controllers/move-to-topic.js
+++ b/app/assets/javascripts/discourse/app/controllers/move-to-topic.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { alias, equal } from "@ember/object/computed";
-import { next } from "@ember/runloop";
import Controller, { inject } from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { movePosts, mergeTopic } from "discourse/models/topic";
+import { alias, equal } from "@ember/object/computed";
+import { mergeTopic, movePosts } from "discourse/models/topic";
import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
import discourseComputed from "discourse-common/utils/decorators";
import { extractError } from "discourse/lib/ajax-error";
+import { isEmpty } from "@ember/utils";
+import { next } from "@ember/runloop";
export default Controller.extend(ModalFunctionality, {
topicName: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/navigation/categories.js b/app/assets/javascripts/discourse/app/controllers/navigation/categories.js
index 5d7d3dafa11..a1be94b13b4 100644
--- a/app/assets/javascripts/discourse/app/controllers/navigation/categories.js
+++ b/app/assets/javascripts/discourse/app/controllers/navigation/categories.js
@@ -1,6 +1,6 @@
+import NavigationDefaultController from "discourse/controllers/navigation/default";
import discourseComputed from "discourse-common/utils/decorators";
import { inject } from "@ember/controller";
-import NavigationDefaultController from "discourse/controllers/navigation/default";
export default NavigationDefaultController.extend({
discoveryCategories: inject("discovery/categories"),
diff --git a/app/assets/javascripts/discourse/app/controllers/navigation/category.js b/app/assets/javascripts/discourse/app/controllers/navigation/category.js
index 0ddadd933f3..2ff17f2a080 100644
--- a/app/assets/javascripts/discourse/app/controllers/navigation/category.js
+++ b/app/assets/javascripts/discourse/app/controllers/navigation/category.js
@@ -1,6 +1,6 @@
-import { none, and } from "@ember/object/computed";
-import NavigationDefaultController from "discourse/controllers/navigation/default";
+import { and, none } from "@ember/object/computed";
import FilterModeMixin from "discourse/mixins/filter-mode";
+import NavigationDefaultController from "discourse/controllers/navigation/default";
export default NavigationDefaultController.extend(FilterModeMixin, {
showingParentCategory: none("category.parentCategory"),
diff --git a/app/assets/javascripts/discourse/app/controllers/navigation/default.js b/app/assets/javascripts/discourse/app/controllers/navigation/default.js
index 880869324ea..28a3530650a 100644
--- a/app/assets/javascripts/discourse/app/controllers/navigation/default.js
+++ b/app/assets/javascripts/discourse/app/controllers/navigation/default.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller, { inject as controller } from "@ember/controller";
import FilterModeMixin from "discourse/mixins/filter-mode";
+import discourseComputed from "discourse-common/utils/decorators";
export default Controller.extend(FilterModeMixin, {
discovery: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/password-reset.js b/app/assets/javascripts/discourse/app/controllers/password-reset.js
index ac6f7a69ec0..9e7b9ede5af 100644
--- a/app/assets/javascripts/discourse/app/controllers/password-reset.js
+++ b/app/assets/javascripts/discourse/app/controllers/password-reset.js
@@ -1,12 +1,12 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
+import DiscourseURL, { userPath } from "discourse/lib/url";
import { alias, or, readOnly } from "@ember/object/computed";
import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
-import DiscourseURL, { userPath } from "discourse/lib/url";
-import { ajax } from "discourse/lib/ajax";
+import I18n from "I18n";
import PasswordValidation from "discourse/mixins/password-validation";
import { SECOND_FACTOR_METHODS } from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
import { getWebauthnCredential } from "discourse/lib/webauthn";
export default Controller.extend(PasswordValidation, {
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences.js b/app/assets/javascripts/discourse/app/controllers/preferences.js
index 9d963204199..cb0c46fcf17 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences.js
@@ -1,5 +1,5 @@
-import { inject as service } from "@ember/service";
import Controller from "@ember/controller";
+import { inject as service } from "@ember/service";
export default Controller.extend({
router: service(),
});
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/account.js b/app/assets/javascripts/discourse/app/controllers/preferences/account.js
index f033cdc1f7c..4e7507b57ff 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/account.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/account.js
@@ -1,19 +1,19 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { not, or, gt } from "@ember/object/computed";
-import Controller from "@ember/controller";
-import { iconHTML } from "discourse-common/lib/icon-library";
-import CanCheckEmails from "discourse/mixins/can-check-emails";
-import discourseComputed from "discourse-common/utils/decorators";
+import { gt, not, or } from "@ember/object/computed";
import { propertyNotEqual, setting } from "discourse/lib/computed";
+import CanCheckEmails from "discourse/mixins/can-check-emails";
+import Controller from "@ember/controller";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
+import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { findAll } from "discourse/models/login-method";
+import getURL from "discourse-common/lib/get-url";
+import { iconHTML } from "discourse-common/lib/icon-library";
+import logout from "discourse/lib/logout";
import { popupAjaxError } from "discourse/lib/ajax-error";
import showModal from "discourse/lib/show-modal";
-import { findAll } from "discourse/models/login-method";
-import { ajax } from "discourse/lib/ajax";
import { userPath } from "discourse/lib/url";
-import logout from "discourse/lib/logout";
-import EmberObject from "@ember/object";
-import bootbox from "bootbox";
// Number of tokens shown by default.
const DEFAULT_AUTH_TOKENS_COUNT = 2;
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/categories.js b/app/assets/javascripts/discourse/app/controllers/preferences/categories.js
index 64d41aa9ca8..862aedd3239 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/categories.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/categories.js
@@ -1,6 +1,6 @@
+import Controller from "@ember/controller";
import discourseComputed from "discourse-common/utils/decorators";
import { or } from "@ember/object/computed";
-import Controller from "@ember/controller";
import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/email.js b/app/assets/javascripts/discourse/app/controllers/preferences/email.js
index 16772da45f2..8a2380807a4 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/email.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/email.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import { empty, or } from "@ember/object/computed";
import Controller from "@ember/controller";
-import { propertyEqual } from "discourse/lib/computed";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import discourseComputed from "discourse-common/utils/decorators";
import { emailValid } from "discourse/lib/utilities";
+import { propertyEqual } from "discourse/lib/computed";
export default Controller.extend({
queryParams: ["new"],
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/emails.js b/app/assets/javascripts/discourse/app/controllers/preferences/emails.js
index 1672e4a6d15..2062170002d 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/emails.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/emails.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import { equal } from "@ember/object/computed";
import Controller from "@ember/controller";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
+import { equal } from "@ember/object/computed";
import { popupAjaxError } from "discourse/lib/ajax-error";
const EMAIL_LEVELS = {
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/interface.js b/app/assets/javascripts/discourse/app/controllers/preferences/interface.js
index 89732723826..74f0940d3ff 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/interface.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/interface.js
@@ -1,22 +1,22 @@
-import I18n from "I18n";
import Controller, { inject } from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
-import { listThemes, setLocalTheme } from "discourse/lib/theme-selector";
+import {
+ iOSWithVisualViewport,
+ isiPad,
+ safariHacksDisabled,
+ setDefaultHomepage,
+} from "discourse/lib/utilities";
import {
listColorSchemes,
loadColorSchemeStylesheet,
updateColorSchemeCookie,
} from "discourse/lib/color-scheme-picker";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { reload } from "discourse/helpers/page-reloader";
-import {
- safariHacksDisabled,
- isiPad,
- iOSWithVisualViewport,
- setDefaultHomepage,
-} from "discourse/lib/utilities";
+import { listThemes, setLocalTheme } from "discourse/lib/theme-selector";
+import I18n from "I18n";
import { computed } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
+import { popupAjaxError } from "discourse/lib/ajax-error";
import { reads } from "@ember/object/computed";
+import { reload } from "discourse/helpers/page-reloader";
const USER_HOMES = {
1: "latest",
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/notifications.js b/app/assets/javascripts/discourse/app/controllers/preferences/notifications.js
index e231d043f95..52e8b03655f 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/notifications.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/notifications.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
+import I18n from "I18n";
import { NotificationLevels } from "discourse/lib/notification-levels";
import { popupAjaxError } from "discourse/lib/ajax-error";
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/profile.js b/app/assets/javascripts/discourse/app/controllers/preferences/profile.js
index 5f92bd20d54..fb31cf33926 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/profile.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/profile.js
@@ -1,14 +1,14 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import EmberObject from "@ember/object";
import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { cookAsync } from "discourse/lib/text";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import showModal from "discourse/lib/show-modal";
-import { readOnly } from "@ember/object/computed";
import bootbox from "bootbox";
+import { cookAsync } from "discourse/lib/text";
+import discourseComputed from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { readOnly } from "@ember/object/computed";
+import showModal from "discourse/lib/show-modal";
export default Controller.extend({
init() {
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/second-factor.js b/app/assets/javascripts/discourse/app/controllers/preferences/second-factor.js
index c1746d4ed9a..566c704a600 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/second-factor.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/second-factor.js
@@ -1,15 +1,15 @@
-import I18n from "I18n";
-import { alias } from "@ember/object/computed";
-import Controller from "@ember/controller";
-import discourseComputed from "discourse-common/utils/decorators";
-import { iconHTML } from "discourse-common/lib/icon-library";
-import CanCheckEmails from "discourse/mixins/can-check-emails";
import DiscourseURL, { userPath } from "discourse/lib/url";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { findAll } from "discourse/models/login-method";
+import CanCheckEmails from "discourse/mixins/can-check-emails";
+import Controller from "@ember/controller";
+import I18n from "I18n";
import { SECOND_FACTOR_METHODS } from "discourse/models/user";
-import showModal from "discourse/lib/show-modal";
+import { alias } from "@ember/object/computed";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { findAll } from "discourse/models/login-method";
+import { iconHTML } from "discourse-common/lib/icon-library";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import showModal from "discourse/lib/show-modal";
export default Controller.extend(CanCheckEmails, {
loading: false,
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/tags.js b/app/assets/javascripts/discourse/app/controllers/preferences/tags.js
index bc959ca4410..bc74ec007a3 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/tags.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/tags.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
+import discourseComputed from "discourse-common/utils/decorators";
import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/username.js b/app/assets/javascripts/discourse/app/controllers/preferences/username.js
index 819121724a9..6fbeb232c05 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/username.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/username.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { empty, or } from "@ember/object/computed";
-import Controller from "@ember/controller";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { setting, propertyEqual } from "discourse/lib/computed";
import DiscourseURL, { userPath } from "discourse/lib/url";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import { empty, or } from "@ember/object/computed";
+import { propertyEqual, setting } from "discourse/lib/computed";
+import Controller from "@ember/controller";
+import I18n from "I18n";
import User from "discourse/models/user";
import bootbox from "bootbox";
+import { isEmpty } from "@ember/utils";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
taken: false,
diff --git a/app/assets/javascripts/discourse/app/controllers/preferences/users.js b/app/assets/javascripts/discourse/app/controllers/preferences/users.js
index c7311d5630c..cdaf9ee0acb 100644
--- a/app/assets/javascripts/discourse/app/controllers/preferences/users.js
+++ b/app/assets/javascripts/discourse/app/controllers/preferences/users.js
@@ -1,9 +1,9 @@
-import { makeArray } from "discourse-common/lib/helpers";
-import { alias, or, and } from "@ember/object/computed";
import { action, computed } from "@ember/object";
+import { alias, and, or } from "@ember/object/computed";
import Controller from "@ember/controller";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import discourseComputed from "discourse-common/utils/decorators";
+import { makeArray } from "discourse-common/lib/helpers";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
ignoredUsernames: alias("model.ignored_usernames"),
diff --git a/app/assets/javascripts/discourse/app/controllers/publish-page.js b/app/assets/javascripts/discourse/app/controllers/publish-page.js
index 046685511e7..ef1452c3237 100644
--- a/app/assets/javascripts/discourse/app/controllers/publish-page.js
+++ b/app/assets/javascripts/discourse/app/controllers/publish-page.js
@@ -1,7 +1,7 @@
+import { action, computed } from "@ember/object";
+import { equal, not } from "@ember/object/computed";
import Controller from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
-import { computed, action } from "@ember/object";
-import { equal, not } from "@ember/object/computed";
import { ajax } from "discourse/lib/ajax";
import { popupAjaxError } from "discourse/lib/ajax-error";
diff --git a/app/assets/javascripts/discourse/app/controllers/raw-email.js b/app/assets/javascripts/discourse/app/controllers/raw-email.js
index 887af55d52a..b2a5a8ec1e9 100644
--- a/app/assets/javascripts/discourse/app/controllers/raw-email.js
+++ b/app/assets/javascripts/discourse/app/controllers/raw-email.js
@@ -1,8 +1,8 @@
-import { equal } from "@ember/object/computed";
import Controller from "@ember/controller";
+import IncomingEmail from "admin/models/incoming-email";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import Post from "discourse/models/post";
-import IncomingEmail from "admin/models/incoming-email";
+import { equal } from "@ember/object/computed";
// This controller handles displaying of raw email
export default Controller.extend(ModalFunctionality, {
diff --git a/app/assets/javascripts/discourse/app/controllers/rename-tag.js b/app/assets/javascripts/discourse/app/controllers/rename-tag.js
index 64a17026d7a..04dc73c7121 100644
--- a/app/assets/javascripts/discourse/app/controllers/rename-tag.js
+++ b/app/assets/javascripts/discourse/app/controllers/rename-tag.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
+import BufferedContent from "discourse/mixins/buffered-content";
import Controller from "@ember/controller";
import ModalFunctionality from "discourse/mixins/modal-functionality";
-import BufferedContent from "discourse/mixins/buffered-content";
+import discourseComputed from "discourse-common/utils/decorators";
import { extractError } from "discourse/lib/ajax-error";
import { oneWay } from "@ember/object/computed";
diff --git a/app/assets/javascripts/discourse/app/controllers/reorder-categories.js b/app/assets/javascripts/discourse/app/controllers/reorder-categories.js
index 969c46f9da8..0875848ce36 100644
--- a/app/assets/javascripts/discourse/app/controllers/reorder-categories.js
+++ b/app/assets/javascripts/discourse/app/controllers/reorder-categories.js
@@ -1,12 +1,12 @@
-import { sort } from "@ember/object/computed";
-import Evented from "@ember/object/evented";
-import EmberObjectProxy from "@ember/object/proxy";
-import Controller from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import BufferedProxy from "ember-buffered-proxy/proxy";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import discourseComputed, { on } from "discourse-common/utils/decorators";
+import BufferedProxy from "ember-buffered-proxy/proxy";
+import Controller from "@ember/controller";
+import EmberObjectProxy from "@ember/object/proxy";
+import Evented from "@ember/object/evented";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { ajax } from "discourse/lib/ajax";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { sort } from "@ember/object/computed";
export default Controller.extend(ModalFunctionality, Evented, {
init() {
diff --git a/app/assets/javascripts/discourse/app/controllers/request-group-membership-form.js b/app/assets/javascripts/discourse/app/controllers/request-group-membership-form.js
index 32c6170a934..0d3b52f77f9 100644
--- a/app/assets/javascripts/discourse/app/controllers/request-group-membership-form.js
+++ b/app/assets/javascripts/discourse/app/controllers/request-group-membership-form.js
@@ -1,11 +1,11 @@
+import Controller from "@ember/controller";
+import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { alias } from "@ember/object/computed";
import discourseComputed from "discourse-common/utils/decorators";
import { isEmpty } from "@ember/utils";
-import { alias } from "@ember/object/computed";
-import Controller from "@ember/controller";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import DiscourseURL from "discourse/lib/url";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
export default Controller.extend(ModalFunctionality, {
loading: false,
diff --git a/app/assets/javascripts/discourse/app/controllers/review-index.js b/app/assets/javascripts/discourse/app/controllers/review-index.js
index cca820a4562..7ea2523e87e 100644
--- a/app/assets/javascripts/discourse/app/controllers/review-index.js
+++ b/app/assets/javascripts/discourse/app/controllers/review-index.js
@@ -1,6 +1,6 @@
+import Controller from "@ember/controller";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import Controller from "@ember/controller";
import { isPresent } from "@ember/utils";
export default Controller.extend({
diff --git a/app/assets/javascripts/discourse/app/controllers/review-settings.js b/app/assets/javascripts/discourse/app/controllers/review-settings.js
index 353fc33e811..8ca69c88531 100644
--- a/app/assets/javascripts/discourse/app/controllers/review-settings.js
+++ b/app/assets/javascripts/discourse/app/controllers/review-settings.js
@@ -1,8 +1,8 @@
import Controller from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import discourseComputed from "discourse-common/utils/decorators";
import I18n from "I18n";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend({
saving: false,
diff --git a/app/assets/javascripts/discourse/app/controllers/second-factor-add-security-key.js b/app/assets/javascripts/discourse/app/controllers/second-factor-add-security-key.js
index 6674abff6de..d6b48db673c 100644
--- a/app/assets/javascripts/discourse/app/controllers/second-factor-add-security-key.js
+++ b/app/assets/javascripts/discourse/app/controllers/second-factor-add-security-key.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import Controller from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
import {
bufferToBase64,
- stringToBuffer,
isWebauthnSupported,
+ stringToBuffer,
} from "discourse/lib/webauthn";
+import Controller from "@ember/controller";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
// model for this controller is user
export default Controller.extend(ModalFunctionality, {
diff --git a/app/assets/javascripts/discourse/app/controllers/second-factor-add-totp.js b/app/assets/javascripts/discourse/app/controllers/second-factor-add-totp.js
index 2a5a6a4c639..bdc1f3511d5 100644
--- a/app/assets/javascripts/discourse/app/controllers/second-factor-add-totp.js
+++ b/app/assets/javascripts/discourse/app/controllers/second-factor-add-totp.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
export default Controller.extend(ModalFunctionality, {
diff --git a/app/assets/javascripts/discourse/app/controllers/second-factor-backup-edit.js b/app/assets/javascripts/discourse/app/controllers/second-factor-backup-edit.js
index f87c90c3928..01afb54af77 100644
--- a/app/assets/javascripts/discourse/app/controllers/second-factor-backup-edit.js
+++ b/app/assets/javascripts/discourse/app/controllers/second-factor-backup-edit.js
@@ -1,9 +1,9 @@
+import Controller from "@ember/controller";
import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { SECOND_FACTOR_METHODS } from "discourse/models/user";
import { alias } from "@ember/object/computed";
import { later } from "@ember/runloop";
-import Controller from "@ember/controller";
-import { SECOND_FACTOR_METHODS } from "discourse/models/user";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
export default Controller.extend(ModalFunctionality, {
loading: false,
diff --git a/app/assets/javascripts/discourse/app/controllers/static.js b/app/assets/javascripts/discourse/app/controllers/static.js
index f0228e7dc00..61f8008d159 100644
--- a/app/assets/javascripts/discourse/app/controllers/static.js
+++ b/app/assets/javascripts/discourse/app/controllers/static.js
@@ -1,7 +1,7 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { equal } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import { equal } from "@ember/object/computed";
import { userPath } from "discourse/lib/url";
export default Controller.extend({
diff --git a/app/assets/javascripts/discourse/app/controllers/tag-show.js b/app/assets/javascripts/discourse/app/controllers/tag-show.js
index 5d19259d6b0..9fbc7ffc396 100644
--- a/app/assets/javascripts/discourse/app/controllers/tag-show.js
+++ b/app/assets/javascripts/discourse/app/controllers/tag-show.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
-import { alias } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
import BulkTopicSelection from "discourse/mixins/bulk-topic-selection";
-import NavItem from "discourse/models/nav-item";
import FilterModeMixin from "discourse/mixins/filter-mode";
-import { queryParams } from "discourse/controllers/discovery-sortable";
+import I18n from "I18n";
+import NavItem from "discourse/models/nav-item";
+import { alias } from "@ember/object/computed";
import bootbox from "bootbox";
+import { queryParams } from "discourse/controllers/discovery-sortable";
import showModal from "discourse/lib/show-modal";
export default Controller.extend(BulkTopicSelection, FilterModeMixin, {
diff --git a/app/assets/javascripts/discourse/app/controllers/tags-index.js b/app/assets/javascripts/discourse/app/controllers/tags-index.js
index 7ce3acdb460..7222df90c92 100644
--- a/app/assets/javascripts/discourse/app/controllers/tags-index.js
+++ b/app/assets/javascripts/discourse/app/controllers/tags-index.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import { alias, notEmpty } from "@ember/object/computed";
import Controller from "@ember/controller";
-import showModal from "discourse/lib/show-modal";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import showModal from "discourse/lib/show-modal";
export default Controller.extend({
sortedByCount: true,
diff --git a/app/assets/javascripts/discourse/app/controllers/topic-bulk-actions.js b/app/assets/javascripts/discourse/app/controllers/topic-bulk-actions.js
index 98a56d80e14..909a8dc6c45 100644
--- a/app/assets/javascripts/discourse/app/controllers/topic-bulk-actions.js
+++ b/app/assets/javascripts/discourse/app/controllers/topic-bulk-actions.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { empty, alias } from "@ember/object/computed";
+import { alias, empty } from "@ember/object/computed";
import Controller from "@ember/controller";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { Promise } from "rsvp";
import Topic from "discourse/models/topic";
import bootbox from "bootbox";
-import { Promise } from "rsvp";
const _buttons = [];
diff --git a/app/assets/javascripts/discourse/app/controllers/topic.js b/app/assets/javascripts/discourse/app/controllers/topic.js
index 5c3c16f6df5..2bb4f750dde 100644
--- a/app/assets/javascripts/discourse/app/controllers/topic.js
+++ b/app/assets/javascripts/discourse/app/controllers/topic.js
@@ -1,31 +1,31 @@
-import I18n from "I18n";
-import { isPresent, isEmpty } from "@ember/utils";
-import { or, and, not, alias } from "@ember/object/computed";
-import EmberObject from "@ember/object";
-import { next, schedule, later } from "@ember/runloop";
import Controller, { inject as controller } from "@ember/controller";
-import { bufferedProperty } from "discourse/mixins/buffered-content";
-import Composer from "discourse/models/composer";
import DiscourseURL, { userPath } from "discourse/lib/url";
+import { alias, and, not, or } from "@ember/object/computed";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import { isEmpty, isPresent } from "@ember/utils";
+import { later, next, schedule } from "@ember/runloop";
+import { AUTO_DELETE_PREFERENCES } from "discourse/models/bookmark";
+import Composer from "discourse/models/composer";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import Post from "discourse/models/post";
-import { buildQuote } from "discourse/lib/quote";
+import { Promise } from "rsvp";
import QuoteState from "discourse/lib/quote-state";
import Topic from "discourse/models/topic";
-import discourseDebounce from "discourse/lib/debounce";
-import isElementInViewport from "discourse/lib/is-element-in-viewport";
-import { ajax } from "discourse/lib/ajax";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { extractLinkMeta } from "discourse/lib/render-topic-featured-link";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { spinnerHTML } from "discourse/helpers/loading-spinner";
-import showModal from "discourse/lib/show-modal";
import TopicTimer from "discourse/models/topic-timer";
-import { Promise } from "rsvp";
-import { escapeExpression } from "discourse/lib/utilities";
-import { AUTO_DELETE_PREFERENCES } from "discourse/models/bookmark";
-import { inject as service } from "@ember/service";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import { bufferedProperty } from "discourse/mixins/buffered-content";
+import { buildQuote } from "discourse/lib/quote";
import { deepMerge } from "discourse-common/lib/object";
+import discourseDebounce from "discourse/lib/debounce";
+import { escapeExpression } from "discourse/lib/utilities";
+import { extractLinkMeta } from "discourse/lib/render-topic-featured-link";
+import isElementInViewport from "discourse/lib/is-element-in-viewport";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { inject as service } from "@ember/service";
+import showModal from "discourse/lib/show-modal";
+import { spinnerHTML } from "discourse/helpers/loading-spinner";
let customPostMessageCallbacks = {};
diff --git a/app/assets/javascripts/discourse/app/controllers/upload-selector.js b/app/assets/javascripts/discourse/app/controllers/upload-selector.js
index 8963016eb90..1e424f9aedf 100644
--- a/app/assets/javascripts/discourse/app/controllers/upload-selector.js
+++ b/app/assets/javascripts/discourse/app/controllers/upload-selector.js
@@ -1,14 +1,14 @@
-import I18n from "I18n";
-import { equal } from "@ember/object/computed";
-import Controller from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import discourseComputed from "discourse-common/utils/decorators";
import {
allowsAttachments,
authorizedExtensions,
authorizesAllExtensions,
uploadIcon,
} from "discourse/lib/uploads";
+import Controller from "@ember/controller";
+import I18n from "I18n";
+import ModalFunctionality from "discourse/mixins/modal-functionality";
+import discourseComputed from "discourse-common/utils/decorators";
+import { equal } from "@ember/object/computed";
export default Controller.extend(ModalFunctionality, {
imageUrl: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/user-activity-bookmarks.js b/app/assets/javascripts/discourse/app/controllers/user-activity-bookmarks.js
index ab19fc5d570..86edb9b0236 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-activity-bookmarks.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-activity-bookmarks.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
import Controller, { inject } from "@ember/controller";
+import Bookmark from "discourse/models/bookmark";
+import I18n from "I18n";
import { Promise } from "rsvp";
import { action } from "@ember/object";
import discourseComputed from "discourse-common/utils/decorators";
-import Bookmark from "discourse/models/bookmark";
export default Controller.extend({
application: inject(),
diff --git a/app/assets/javascripts/discourse/app/controllers/user-activity.js b/app/assets/javascripts/discourse/app/controllers/user-activity.js
index ac945e469b3..d6e7241f358 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-activity.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-activity.js
@@ -1,10 +1,10 @@
+import Controller, { inject as controller } from "@ember/controller";
import I18n from "I18n";
import { alias } from "@ember/object/computed";
-import { inject as service } from "@ember/service";
-import Controller, { inject as controller } from "@ember/controller";
+import bootbox from "bootbox";
import { exportUserArchive } from "discourse/lib/export-csv";
import { observes } from "discourse-common/utils/decorators";
-import bootbox from "bootbox";
+import { inject as service } from "@ember/service";
export default Controller.extend({
application: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/user-badges.js b/app/assets/javascripts/discourse/app/controllers/user-badges.js
index 3b8cfdb9c28..a4d55048f92 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-badges.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-badges.js
@@ -1,5 +1,5 @@
-import { alias, sort } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
+import { alias, sort } from "@ember/object/computed";
export default Controller.extend({
user: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/user-card.js b/app/assets/javascripts/discourse/app/controllers/user-card.js
index 9bc2a40c623..b08b8d3639f 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-card.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-card.js
@@ -1,5 +1,5 @@
import Controller, { inject as controller } from "@ember/controller";
-import DiscourseURL, { userPath, groupPath } from "discourse/lib/url";
+import DiscourseURL, { groupPath, userPath } from "discourse/lib/url";
export default Controller.extend({
topic: controller(),
diff --git a/app/assets/javascripts/discourse/app/controllers/user-invited-show.js b/app/assets/javascripts/discourse/app/controllers/user-invited-show.js
index 6becdb6d4ea..9781e87007b 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-invited-show.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-invited-show.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
import { equal, reads } from "@ember/object/computed";
import Controller from "@ember/controller";
+import I18n from "I18n";
+import { INPUT_DELAY } from "discourse-common/config/environment";
import Invite from "discourse/models/invite";
+import bootbox from "bootbox";
import discourseDebounce from "discourse/lib/debounce";
import { popupAjaxError } from "discourse/lib/ajax-error";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { INPUT_DELAY } from "discourse-common/config/environment";
-import bootbox from "bootbox";
export default Controller.extend({
user: null,
diff --git a/app/assets/javascripts/discourse/app/controllers/user-notifications.js b/app/assets/javascripts/discourse/app/controllers/user-notifications.js
index 27da855d1b2..369e6f6f126 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-notifications.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-notifications.js
@@ -1,6 +1,6 @@
import Controller, { inject as controller } from "@ember/controller";
-import { ajax } from "discourse/lib/ajax";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import { ajax } from "discourse/lib/ajax";
import { readOnly } from "@ember/object/computed";
import { inject as service } from "@ember/service";
diff --git a/app/assets/javascripts/discourse/app/controllers/user-private-messages.js b/app/assets/javascripts/discourse/app/controllers/user-private-messages.js
index ce7663e3340..4e1fd703931 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-private-messages.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-private-messages.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias, equal, and } from "@ember/object/computed";
-import { inject as service } from "@ember/service";
import Controller, { inject as controller } from "@ember/controller";
+import { alias, and, equal } from "@ember/object/computed";
+import I18n from "I18n";
import Topic from "discourse/models/topic";
import bootbox from "bootbox";
+import discourseComputed from "discourse-common/utils/decorators";
+import { inject as service } from "@ember/service";
export default Controller.extend({
userTopicsList: controller("user-topics-list"),
diff --git a/app/assets/javascripts/discourse/app/controllers/user-summary.js b/app/assets/javascripts/discourse/app/controllers/user-summary.js
index 5a2863e2bad..fbfe0985df2 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-summary.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-summary.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { alias } from "@ember/object/computed";
import Controller, { inject } from "@ember/controller";
+import { alias } from "@ember/object/computed";
+import discourseComputed from "discourse-common/utils/decorators";
import { durationTiny } from "discourse/lib/formatter";
// should be kept in sync with 'UserSummary::MAX_BADGES'
diff --git a/app/assets/javascripts/discourse/app/controllers/user-topics-list.js b/app/assets/javascripts/discourse/app/controllers/user-topics-list.js
index 1480d4633ed..1196916ebd3 100644
--- a/app/assets/javascripts/discourse/app/controllers/user-topics-list.js
+++ b/app/assets/javascripts/discourse/app/controllers/user-topics-list.js
@@ -1,5 +1,5 @@
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
import Controller, { inject as controller } from "@ember/controller";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
// Lists of topics on a user's page.
export default Controller.extend({
diff --git a/app/assets/javascripts/discourse/app/controllers/user.js b/app/assets/javascripts/discourse/app/controllers/user.js
index 0376d6a787b..fa9e99749be 100644
--- a/app/assets/javascripts/discourse/app/controllers/user.js
+++ b/app/assets/javascripts/discourse/app/controllers/user.js
@@ -1,13 +1,13 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { isEmpty } from "@ember/utils";
-import { alias, or, gt, not, and } from "@ember/object/computed";
-import EmberObject, { set, computed } from "@ember/object";
-import { inject as service } from "@ember/service";
import Controller, { inject } from "@ember/controller";
+import EmberObject, { computed, set } from "@ember/object";
+import { alias, and, gt, not, or } from "@ember/object/computed";
import CanCheckEmails from "discourse/mixins/can-check-emails";
import User from "discourse/models/user";
+import discourseComputed from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
import optionalService from "discourse/lib/optional-service";
import { prioritizeNameInUx } from "discourse/lib/settings";
+import { inject as service } from "@ember/service";
export default Controller.extend(CanCheckEmails, {
indexStream: false,
diff --git a/app/assets/javascripts/discourse/app/controllers/users.js b/app/assets/javascripts/discourse/app/controllers/users.js
index 52ec79863d1..a0b180a1644 100644
--- a/app/assets/javascripts/discourse/app/controllers/users.js
+++ b/app/assets/javascripts/discourse/app/controllers/users.js
@@ -1,8 +1,8 @@
-import { equal } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
import discourseDebounce from "discourse/lib/debounce";
-import { observes } from "discourse-common/utils/decorators";
+import { equal } from "@ember/object/computed";
import { longDate } from "discourse/lib/formatter";
+import { observes } from "discourse-common/utils/decorators";
export default Controller.extend({
application: controller(),
diff --git a/app/assets/javascripts/discourse/app/helpers/application.js b/app/assets/javascripts/discourse/app/helpers/application.js
index 98341b942fd..629a20648af 100644
--- a/app/assets/javascripts/discourse/app/helpers/application.js
+++ b/app/assets/javascripts/discourse/app/helpers/application.js
@@ -1,12 +1,12 @@
-import I18n from "I18n";
-import { registerUnbound } from "discourse-common/lib/helpers";
import {
- longDate,
autoUpdatingRelativeAge,
+ longDate,
number,
} from "discourse/lib/formatter";
-import { htmlSafe } from "@ember/template";
+import I18n from "I18n";
import { escapeExpression } from "discourse/lib/utilities";
+import { htmlSafe } from "@ember/template";
+import { registerUnbound } from "discourse-common/lib/helpers";
registerUnbound("raw-date", (dt) => htmlSafe(longDate(new Date(dt))));
diff --git a/app/assets/javascripts/discourse/app/helpers/bound-avatar-template.js b/app/assets/javascripts/discourse/app/helpers/bound-avatar-template.js
index b08e483b2e4..8e054d8ce50 100644
--- a/app/assets/javascripts/discourse/app/helpers/bound-avatar-template.js
+++ b/app/assets/javascripts/discourse/app/helpers/bound-avatar-template.js
@@ -1,6 +1,6 @@
-import { isEmpty } from "@ember/utils";
-import { htmlHelper } from "discourse-common/lib/helpers";
import { avatarImg } from "discourse/lib/utilities";
+import { htmlHelper } from "discourse-common/lib/helpers";
+import { isEmpty } from "@ember/utils";
export default htmlHelper((avatarTemplate, size) => {
if (isEmpty(avatarTemplate)) {
diff --git a/app/assets/javascripts/discourse/app/helpers/bound-avatar.js b/app/assets/javascripts/discourse/app/helpers/bound-avatar.js
index 6504dc1c085..627ca000176 100644
--- a/app/assets/javascripts/discourse/app/helpers/bound-avatar.js
+++ b/app/assets/javascripts/discourse/app/helpers/bound-avatar.js
@@ -1,8 +1,8 @@
-import { get } from "@ember/object";
-import { isEmpty } from "@ember/utils";
-import { htmlHelper } from "discourse-common/lib/helpers";
-import { avatarImg } from "discourse/lib/utilities";
import { addExtraUserClasses } from "discourse/helpers/user-avatar";
+import { avatarImg } from "discourse/lib/utilities";
+import { get } from "@ember/object";
+import { htmlHelper } from "discourse-common/lib/helpers";
+import { isEmpty } from "@ember/utils";
export default htmlHelper((user, size) => {
if (isEmpty(user)) {
diff --git a/app/assets/javascripts/discourse/app/helpers/bound-category-link.js b/app/assets/javascripts/discourse/app/helpers/bound-category-link.js
index 4c86867061e..bd620032219 100644
--- a/app/assets/javascripts/discourse/app/helpers/bound-category-link.js
+++ b/app/assets/javascripts/discourse/app/helpers/bound-category-link.js
@@ -1,4 +1,4 @@
-import { htmlHelper } from "discourse-common/lib/helpers";
import { categoryLinkHTML } from "discourse/helpers/category-link";
+import { htmlHelper } from "discourse-common/lib/helpers";
export default htmlHelper(categoryLinkHTML);
diff --git a/app/assets/javascripts/discourse/app/helpers/category-link.js b/app/assets/javascripts/discourse/app/helpers/category-link.js
index b26560a0081..71dcd3d7224 100644
--- a/app/assets/javascripts/discourse/app/helpers/category-link.js
+++ b/app/assets/javascripts/discourse/app/helpers/category-link.js
@@ -1,13 +1,13 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { get } from "@ember/object";
import { helperContext, registerUnbound } from "discourse-common/lib/helpers";
-import { isRTL } from "discourse/lib/text-direction";
-import { iconHTML } from "discourse-common/lib/icon-library";
import Category from "discourse/models/category";
+import I18n from "I18n";
import Site from "discourse/models/site";
import { escapeExpression } from "discourse/lib/utilities";
+import { get } from "@ember/object";
+import getURL from "discourse-common/lib/get-url";
import { htmlSafe } from "@ember/template";
+import { iconHTML } from "discourse-common/lib/icon-library";
+import { isRTL } from "discourse/lib/text-direction";
let _renderer = defaultCategoryLinkRenderer;
diff --git a/app/assets/javascripts/discourse/app/helpers/cold-age-class.js b/app/assets/javascripts/discourse/app/helpers/cold-age-class.js
index 06f269e3b62..ff696982cce 100644
--- a/app/assets/javascripts/discourse/app/helpers/cold-age-class.js
+++ b/app/assets/javascripts/discourse/app/helpers/cold-age-class.js
@@ -1,4 +1,4 @@
-import { registerUnbound, helperContext } from "discourse-common/lib/helpers";
+import { helperContext, registerUnbound } from "discourse-common/lib/helpers";
function daysSinceEpoch(dt) {
// 1000 * 60 * 60 * 24 = days since epoch
diff --git a/app/assets/javascripts/discourse/app/helpers/dash-if-empty.js b/app/assets/javascripts/discourse/app/helpers/dash-if-empty.js
index b6741cad28a..502998ee877 100644
--- a/app/assets/javascripts/discourse/app/helpers/dash-if-empty.js
+++ b/app/assets/javascripts/discourse/app/helpers/dash-if-empty.js
@@ -1,4 +1,4 @@
-import { isEmpty } from "@ember/utils";
import { htmlHelper } from "discourse-common/lib/helpers";
+import { isEmpty } from "@ember/utils";
export default htmlHelper((str) => (isEmpty(str) ? "—" : str));
diff --git a/app/assets/javascripts/discourse/app/helpers/dir-span.js b/app/assets/javascripts/discourse/app/helpers/dir-span.js
index e2fb6f9f488..022b2de52f6 100644
--- a/app/assets/javascripts/discourse/app/helpers/dir-span.js
+++ b/app/assets/javascripts/discourse/app/helpers/dir-span.js
@@ -1,6 +1,6 @@
-import { registerUnbound, helperContext } from "discourse-common/lib/helpers";
-import { isRTL } from "discourse/lib/text-direction";
+import { helperContext, registerUnbound } from "discourse-common/lib/helpers";
import { htmlSafe } from "@ember/template";
+import { isRTL } from "discourse/lib/text-direction";
function setDir(text) {
let content = text ? text : "";
diff --git a/app/assets/javascripts/discourse/app/helpers/discourse-tag.js b/app/assets/javascripts/discourse/app/helpers/discourse-tag.js
index 21780387f1c..09cb84518d2 100644
--- a/app/assets/javascripts/discourse/app/helpers/discourse-tag.js
+++ b/app/assets/javascripts/discourse/app/helpers/discourse-tag.js
@@ -1,6 +1,6 @@
+import { htmlSafe } from "@ember/template";
import { registerUnbound } from "discourse-common/lib/helpers";
import renderTag from "discourse/lib/render-tag";
-import { htmlSafe } from "@ember/template";
export default registerUnbound("discourse-tag", function (name, params) {
return htmlSafe(renderTag(name, params));
diff --git a/app/assets/javascripts/discourse/app/helpers/discourse-tags.js b/app/assets/javascripts/discourse/app/helpers/discourse-tags.js
index 9b233652085..ea9a82a3047 100644
--- a/app/assets/javascripts/discourse/app/helpers/discourse-tags.js
+++ b/app/assets/javascripts/discourse/app/helpers/discourse-tags.js
@@ -1,6 +1,6 @@
+import { htmlSafe } from "@ember/template";
import { registerUnbound } from "discourse-common/lib/helpers";
import renderTags from "discourse/lib/render-tags";
-import { htmlSafe } from "@ember/template";
export default registerUnbound("discourse-tags", function (topic, params) {
return htmlSafe(renderTags(topic, params));
diff --git a/app/assets/javascripts/discourse/app/helpers/editable-value.js b/app/assets/javascripts/discourse/app/helpers/editable-value.js
index ae67cedf5ea..32763daaf49 100644
--- a/app/assets/javascripts/discourse/app/helpers/editable-value.js
+++ b/app/assets/javascripts/discourse/app/helpers/editable-value.js
@@ -1,5 +1,5 @@
-import { get } from "@ember/object";
import Helper from "@ember/component/helper";
+import { get } from "@ember/object";
export function formatCurrency([reviewable, fieldId]) {
// The field `category_id` corresponds to `category`
diff --git a/app/assets/javascripts/discourse/app/helpers/format-age.js b/app/assets/javascripts/discourse/app/helpers/format-age.js
index 21bfeb423b6..0eef6341302 100644
--- a/app/assets/javascripts/discourse/app/helpers/format-age.js
+++ b/app/assets/javascripts/discourse/app/helpers/format-age.js
@@ -1,6 +1,6 @@
import { autoUpdatingRelativeAge, durationTiny } from "discourse/lib/formatter";
-import { registerUnbound } from "discourse-common/lib/helpers";
import { htmlSafe } from "@ember/template";
+import { registerUnbound } from "discourse-common/lib/helpers";
registerUnbound("format-age", function (dt) {
dt = new Date(dt);
diff --git a/app/assets/javascripts/discourse/app/helpers/format-date.js b/app/assets/javascripts/discourse/app/helpers/format-date.js
index a68468076b2..e91759cdce8 100644
--- a/app/assets/javascripts/discourse/app/helpers/format-date.js
+++ b/app/assets/javascripts/discourse/app/helpers/format-date.js
@@ -1,6 +1,6 @@
-import { registerUnbound } from "discourse-common/lib/helpers";
import { autoUpdatingRelativeAge } from "discourse/lib/formatter";
import { htmlSafe } from "@ember/template";
+import { registerUnbound } from "discourse-common/lib/helpers";
/**
Display logic for dates. It is unbound in Ember but will use jQuery to
diff --git a/app/assets/javascripts/discourse/app/helpers/format-username.js b/app/assets/javascripts/discourse/app/helpers/format-username.js
index 2e6904a7991..6388a900fbd 100644
--- a/app/assets/javascripts/discourse/app/helpers/format-username.js
+++ b/app/assets/javascripts/discourse/app/helpers/format-username.js
@@ -1,4 +1,4 @@
-import { registerUnbound } from "discourse-common/lib/helpers";
import { formatUsername } from "discourse/lib/utilities";
+import { registerUnbound } from "discourse-common/lib/helpers";
export default registerUnbound("format-username", formatUsername);
diff --git a/app/assets/javascripts/discourse/app/helpers/icon-or-image.js b/app/assets/javascripts/discourse/app/helpers/icon-or-image.js
index b8b02bdf008..3ad6d53604a 100644
--- a/app/assets/javascripts/discourse/app/helpers/icon-or-image.js
+++ b/app/assets/javascripts/discourse/app/helpers/icon-or-image.js
@@ -1,6 +1,6 @@
-import { isEmpty } from "@ember/utils";
+import { convertIconClass, iconHTML } from "discourse-common/lib/icon-library";
import { htmlHelper } from "discourse-common/lib/helpers";
-import { iconHTML, convertIconClass } from "discourse-common/lib/icon-library";
+import { isEmpty } from "@ember/utils";
export default htmlHelper(function ({ icon, image }) {
if (!isEmpty(image)) {
diff --git a/app/assets/javascripts/discourse/app/helpers/inline-date.js b/app/assets/javascripts/discourse/app/helpers/inline-date.js
index 16adc0c0684..166ca2ad224 100644
--- a/app/assets/javascripts/discourse/app/helpers/inline-date.js
+++ b/app/assets/javascripts/discourse/app/helpers/inline-date.js
@@ -1,5 +1,5 @@
-import { relativeAge } from "discourse/lib/formatter";
import { registerHelper } from "discourse-common/lib/helpers";
+import { relativeAge } from "discourse/lib/formatter";
registerHelper("inline-date", function ([dt]) {
// TODO: Remove this in 1.13 or greater
diff --git a/app/assets/javascripts/discourse/app/helpers/node.js b/app/assets/javascripts/discourse/app/helpers/node.js
index 79f8f73eaea..5bc02d6b886 100644
--- a/app/assets/javascripts/discourse/app/helpers/node.js
+++ b/app/assets/javascripts/discourse/app/helpers/node.js
@@ -1,5 +1,5 @@
+import { longDate, number, relativeAge } from "discourse/lib/formatter";
import { h } from "virtual-dom";
-import { relativeAge, longDate, number } from "discourse/lib/formatter";
export function dateNode(dt) {
if (typeof dt === "string") {
diff --git a/app/assets/javascripts/discourse/app/helpers/raw-plugin-outlet.js b/app/assets/javascripts/discourse/app/helpers/raw-plugin-outlet.js
index 52901c500f9..18ba68c6fa5 100644
--- a/app/assets/javascripts/discourse/app/helpers/raw-plugin-outlet.js
+++ b/app/assets/javascripts/discourse/app/helpers/raw-plugin-outlet.js
@@ -1,6 +1,6 @@
-import { rawConnectorsFor } from "discourse/lib/plugin-connectors";
import RawHandlebars from "discourse-common/lib/raw-handlebars";
import { htmlSafe } from "@ember/template";
+import { rawConnectorsFor } from "discourse/lib/plugin-connectors";
RawHandlebars.registerHelper("raw-plugin-outlet", function (args) {
const connectors = rawConnectorsFor(args.hash.name);
diff --git a/app/assets/javascripts/discourse/app/helpers/raw.js b/app/assets/javascripts/discourse/app/helpers/raw.js
index 0c1ba6cf53e..31374ee196d 100644
--- a/app/assets/javascripts/discourse/app/helpers/raw.js
+++ b/app/assets/javascripts/discourse/app/helpers/raw.js
@@ -1,4 +1,4 @@
-import { registerUnbound, helperContext } from "discourse-common/lib/helpers";
+import { helperContext, registerUnbound } from "discourse-common/lib/helpers";
import { findRawTemplate } from "discourse-common/lib/raw-templates";
import { htmlSafe } from "@ember/template";
diff --git a/app/assets/javascripts/discourse/app/helpers/replace-emoji.js b/app/assets/javascripts/discourse/app/helpers/replace-emoji.js
index 56f8c6e2f8f..3109cf29003 100644
--- a/app/assets/javascripts/discourse/app/helpers/replace-emoji.js
+++ b/app/assets/javascripts/discourse/app/helpers/replace-emoji.js
@@ -1,6 +1,6 @@
-import { registerUnbound } from "discourse-common/lib/helpers";
import { emojiUnescape } from "discourse/lib/text";
import { htmlSafe } from "@ember/template";
+import { registerUnbound } from "discourse-common/lib/helpers";
registerUnbound("replace-emoji", (text, options) => {
return htmlSafe(emojiUnescape(text, options));
diff --git a/app/assets/javascripts/discourse/app/helpers/reviewable-history-description.js b/app/assets/javascripts/discourse/app/helpers/reviewable-history-description.js
index 85820f729fd..0bd3e1aa819 100644
--- a/app/assets/javascripts/discourse/app/helpers/reviewable-history-description.js
+++ b/app/assets/javascripts/discourse/app/helpers/reviewable-history-description.js
@@ -1,7 +1,7 @@
+import { EDITED } from "discourse/models/reviewable-history";
import I18n from "I18n";
import { htmlHelper } from "discourse-common/lib/helpers";
import { htmlStatus } from "discourse/helpers/reviewable-status";
-import { EDITED } from "discourse/models/reviewable-history";
import { iconHTML } from "discourse-common/lib/icon-library";
export default htmlHelper(function (rh) {
diff --git a/app/assets/javascripts/discourse/app/helpers/reviewable-status.js b/app/assets/javascripts/discourse/app/helpers/reviewable-status.js
index 3eaebe847e3..4fe4ef2445e 100644
--- a/app/assets/javascripts/discourse/app/helpers/reviewable-status.js
+++ b/app/assets/javascripts/discourse/app/helpers/reviewable-status.js
@@ -1,13 +1,13 @@
+import {
+ APPROVED,
+ DELETED,
+ IGNORED,
+ PENDING,
+ REJECTED,
+} from "discourse/models/reviewable";
import I18n from "I18n";
import { htmlHelper } from "discourse-common/lib/helpers";
import { iconHTML } from "discourse-common/lib/icon-library";
-import {
- PENDING,
- APPROVED,
- REJECTED,
- IGNORED,
- DELETED,
-} from "discourse/models/reviewable";
function dataFor(status) {
switch (status) {
diff --git a/app/assets/javascripts/discourse/app/helpers/theme-helpers.js b/app/assets/javascripts/discourse/app/helpers/theme-helpers.js
index 354d69d1d01..989877554f1 100644
--- a/app/assets/javascripts/discourse/app/helpers/theme-helpers.js
+++ b/app/assets/javascripts/discourse/app/helpers/theme-helpers.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import { helperContext, registerUnbound } from "discourse-common/lib/helpers";
+import I18n from "I18n";
import deprecated from "discourse-common/lib/deprecated";
registerUnbound("theme-i18n", (themeId, key, params) => {
diff --git a/app/assets/javascripts/discourse/app/helpers/topic-featured-link.js b/app/assets/javascripts/discourse/app/helpers/topic-featured-link.js
index 31f3e8cdaa8..44df2cb02ff 100644
--- a/app/assets/javascripts/discourse/app/helpers/topic-featured-link.js
+++ b/app/assets/javascripts/discourse/app/helpers/topic-featured-link.js
@@ -1,6 +1,6 @@
+import { htmlSafe } from "@ember/template";
import { registerUnbound } from "discourse-common/lib/helpers";
import renderTopicFeaturedLink from "discourse/lib/render-topic-featured-link";
-import { htmlSafe } from "@ember/template";
export default registerUnbound("topic-featured-link", function (topic, params) {
return htmlSafe(renderTopicFeaturedLink(topic, params));
diff --git a/app/assets/javascripts/discourse/app/helpers/topic-link.js b/app/assets/javascripts/discourse/app/helpers/topic-link.js
index dcc9f6c2e8f..2a8bb170e8f 100644
--- a/app/assets/javascripts/discourse/app/helpers/topic-link.js
+++ b/app/assets/javascripts/discourse/app/helpers/topic-link.js
@@ -1,5 +1,5 @@
-import { registerUnbound } from "discourse-common/lib/helpers";
import { htmlSafe } from "@ember/template";
+import { registerUnbound } from "discourse-common/lib/helpers";
registerUnbound("topic-link", (topic, args) => {
const title = topic.get("fancyTitle");
diff --git a/app/assets/javascripts/discourse/app/helpers/user-avatar.js b/app/assets/javascripts/discourse/app/helpers/user-avatar.js
index 85cb4d1398f..0e789c7e3ae 100644
--- a/app/assets/javascripts/discourse/app/helpers/user-avatar.js
+++ b/app/assets/javascripts/discourse/app/helpers/user-avatar.js
@@ -1,8 +1,8 @@
-import { get } from "@ember/object";
-import { registerUnbound } from "discourse-common/lib/helpers";
import { avatarImg, formatUsername } from "discourse/lib/utilities";
-import { prioritizeNameInUx } from "discourse/lib/settings";
+import { get } from "@ember/object";
import { htmlSafe } from "@ember/template";
+import { prioritizeNameInUx } from "discourse/lib/settings";
+import { registerUnbound } from "discourse-common/lib/helpers";
let _customAvatarHelpers;
diff --git a/app/assets/javascripts/discourse/app/helpers/user-status.js b/app/assets/javascripts/discourse/app/helpers/user-status.js
index 1f84c11a0db..da2f3bd7d24 100644
--- a/app/assets/javascripts/discourse/app/helpers/user-status.js
+++ b/app/assets/javascripts/discourse/app/helpers/user-status.js
@@ -1,7 +1,7 @@
import I18n from "I18n";
-import { iconHTML } from "discourse-common/lib/icon-library";
-import { htmlHelper } from "discourse-common/lib/helpers";
import { escapeExpression } from "discourse/lib/utilities";
+import { htmlHelper } from "discourse-common/lib/helpers";
+import { iconHTML } from "discourse-common/lib/icon-library";
export default htmlHelper((user, args) => {
if (!user) {
diff --git a/app/assets/javascripts/discourse/app/initializers/asset-version.js b/app/assets/javascripts/discourse/app/initializers/asset-version.js
index 203f6d4af81..c9017c6bccf 100644
--- a/app/assets/javascripts/discourse/app/initializers/asset-version.js
+++ b/app/assets/javascripts/discourse/app/initializers/asset-version.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import { later } from "@ember/runloop";
import bootbox from "bootbox";
+import { later } from "@ember/runloop";
// Subscribe to "asset-version" change events via the Message Bus
export default {
diff --git a/app/assets/javascripts/discourse/app/initializers/auto-load-modules.js b/app/assets/javascripts/discourse/app/initializers/auto-load-modules.js
index b08e3a291fc..b985d85c372 100644
--- a/app/assets/javascripts/discourse/app/initializers/auto-load-modules.js
+++ b/app/assets/javascripts/discourse/app/initializers/auto-load-modules.js
@@ -1,10 +1,10 @@
import {
- registerHelpers,
createHelperContext,
+ registerHelpers,
} from "discourse-common/lib/helpers";
+import Handlebars from "handlebars";
import RawHandlebars from "discourse-common/lib/raw-handlebars";
import { registerRawHelpers } from "discourse-common/lib/raw-handlebars-helpers";
-import Handlebars from "handlebars";
import { setOwner } from "@ember/application";
export function autoLoadModules(container, registry) {
diff --git a/app/assets/javascripts/discourse/app/initializers/click-interceptor.js b/app/assets/javascripts/discourse/app/initializers/click-interceptor.js
index ca7ec483806..9f8adfd7a71 100644
--- a/app/assets/javascripts/discourse/app/initializers/click-interceptor.js
+++ b/app/assets/javascripts/discourse/app/initializers/click-interceptor.js
@@ -1,5 +1,5 @@
-import interceptClick from "discourse/lib/intercept-click";
import DiscourseURL from "discourse/lib/url";
+import interceptClick from "discourse/lib/intercept-click";
export default {
name: "click-interceptor",
diff --git a/app/assets/javascripts/discourse/app/initializers/copy-codeblocks.js b/app/assets/javascripts/discourse/app/initializers/copy-codeblocks.js
index a3326d2b47e..828df323a18 100644
--- a/app/assets/javascripts/discourse/app/initializers/copy-codeblocks.js
+++ b/app/assets/javascripts/discourse/app/initializers/copy-codeblocks.js
@@ -1,9 +1,9 @@
-import { withPluginApi } from "discourse/lib/plugin-api";
import { cancel, later } from "@ember/runloop";
-import { Promise } from "rsvp";
-import { iconHTML } from "discourse-common/lib/icon-library";
import I18n from "I18n";
+import { Promise } from "rsvp";
import { guidFor } from "@ember/object/internals";
+import { iconHTML } from "discourse-common/lib/icon-library";
+import { withPluginApi } from "discourse/lib/plugin-api";
// http://github.com/feross/clipboard-copy
function clipboardCopy(text) {
diff --git a/app/assets/javascripts/discourse/app/initializers/d-popover.js b/app/assets/javascripts/discourse/app/initializers/d-popover.js
index 9564f81aee1..d3a96f24908 100644
--- a/app/assets/javascripts/discourse/app/initializers/d-popover.js
+++ b/app/assets/javascripts/discourse/app/initializers/d-popover.js
@@ -1,7 +1,7 @@
import {
- showPopover,
- hidePopover,
POPOVER_SELECTORS,
+ hidePopover,
+ showPopover,
} from "discourse/lib/d-popover";
export default {
diff --git a/app/assets/javascripts/discourse/app/initializers/enable-emoji.js b/app/assets/javascripts/discourse/app/initializers/enable-emoji.js
index 4a056a2532a..965ff5a82c5 100644
--- a/app/assets/javascripts/discourse/app/initializers/enable-emoji.js
+++ b/app/assets/javascripts/discourse/app/initializers/enable-emoji.js
@@ -1,6 +1,6 @@
-import { withPluginApi } from "discourse/lib/plugin-api";
-import { registerEmoji } from "pretty-text/emoji";
import PreloadStore from "discourse/lib/preload-store";
+import { registerEmoji } from "pretty-text/emoji";
+import { withPluginApi } from "discourse/lib/plugin-api";
export default {
name: "enable-emoji",
diff --git a/app/assets/javascripts/discourse/app/initializers/live-development.js b/app/assets/javascripts/discourse/app/initializers/live-development.js
index e5b96a85447..00f1f89d0ba 100644
--- a/app/assets/javascripts/discourse/app/initializers/live-development.js
+++ b/app/assets/javascripts/discourse/app/initializers/live-development.js
@@ -1,7 +1,7 @@
-import DiscourseURL from "discourse/lib/url";
import { currentThemeIds, refreshCSS } from "discourse/lib/theme-selector";
-import { isDevelopment } from "discourse-common/config/environment";
+import DiscourseURL from "discourse/lib/url";
import Handlebars from "handlebars";
+import { isDevelopment } from "discourse-common/config/environment";
// Use the message bus for live reloading of components for faster development.
export default {
diff --git a/app/assets/javascripts/discourse/app/initializers/logout.js b/app/assets/javascripts/discourse/app/initializers/logout.js
index bff6d40ccb6..cedb695a362 100644
--- a/app/assets/javascripts/discourse/app/initializers/logout.js
+++ b/app/assets/javascripts/discourse/app/initializers/logout.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import logout from "discourse/lib/logout";
import bootbox from "bootbox";
+import logout from "discourse/lib/logout";
let _showingLogout = false;
diff --git a/app/assets/javascripts/discourse/app/initializers/message-bus.js b/app/assets/javascripts/discourse/app/initializers/message-bus.js
index 5f44db12731..13ccf4601bb 100644
--- a/app/assets/javascripts/discourse/app/initializers/message-bus.js
+++ b/app/assets/javascripts/discourse/app/initializers/message-bus.js
@@ -1,8 +1,8 @@
-import getURL from "discourse-common/lib/get-url";
-// Initialize the message bus to receive messages.
-import userPresent from "discourse/lib/user-presence";
-import { handleLogoff } from "discourse/lib/ajax";
import { isProduction, isTesting } from "discourse-common/config/environment";
+// Initialize the message bus to receive messages.
+import getURL from "discourse-common/lib/get-url";
+import { handleLogoff } from "discourse/lib/ajax";
+import userPresent from "discourse/lib/user-presence";
const LONG_POLL_AFTER_UNSEEN_TIME = 1200000; // 20 minutes
const CONNECTIVITY_ERROR_CLASS = "message-bus-offline";
diff --git a/app/assets/javascripts/discourse/app/initializers/page-tracking.js b/app/assets/javascripts/discourse/app/initializers/page-tracking.js
index 80a462d5e86..13858cbc242 100644
--- a/app/assets/javascripts/discourse/app/initializers/page-tracking.js
+++ b/app/assets/javascripts/discourse/app/initializers/page-tracking.js
@@ -1,9 +1,9 @@
-import { cleanDOM } from "discourse/lib/clean-dom";
import {
- startPageTracking,
- resetPageTracking,
googleTagManagerPageChanged,
+ resetPageTracking,
+ startPageTracking,
} from "discourse/lib/page-tracker";
+import { cleanDOM } from "discourse/lib/clean-dom";
import { viewTrackingRequired } from "discourse/lib/ajax";
export default {
diff --git a/app/assets/javascripts/discourse/app/initializers/post-decorations.js b/app/assets/javascripts/discourse/app/initializers/post-decorations.js
index bdc13546367..8d59d50a4bf 100644
--- a/app/assets/javascripts/discourse/app/initializers/post-decorations.js
+++ b/app/assets/javascripts/discourse/app/initializers/post-decorations.js
@@ -1,7 +1,7 @@
import highlightSyntax from "discourse/lib/highlight-syntax";
import lightbox from "discourse/lib/lightbox";
-import { setupLazyLoading } from "discourse/lib/lazy-load-images";
import { setTextDirections } from "discourse/lib/text-direction";
+import { setupLazyLoading } from "discourse/lib/lazy-load-images";
import { withPluginApi } from "discourse/lib/plugin-api";
export default {
diff --git a/app/assets/javascripts/discourse/app/initializers/subscribe-user-notifications.js b/app/assets/javascripts/discourse/app/initializers/subscribe-user-notifications.js
index 941ad849ea7..4559df7e551 100644
--- a/app/assets/javascripts/discourse/app/initializers/subscribe-user-notifications.js
+++ b/app/assets/javascripts/discourse/app/initializers/subscribe-user-notifications.js
@@ -1,15 +1,15 @@
import EmberObject, { set } from "@ember/object";
// Subscribes to user events on the message bus
import {
- init as initDesktopNotifications,
- onNotification,
alertChannel,
disable as disableDesktopNotifications,
+ init as initDesktopNotifications,
+ onNotification,
} from "discourse/lib/desktop-notifications";
import {
+ isPushNotificationsEnabled,
register as registerPushNotifications,
unsubscribe as unsubscribePushNotifications,
- isPushNotificationsEnabled,
} from "discourse/lib/push-notifications";
import { isTesting } from "discourse-common/config/environment";
diff --git a/app/assets/javascripts/discourse/app/initializers/topic-footer-buttons.js b/app/assets/javascripts/discourse/app/initializers/topic-footer-buttons.js
index 362f358a5ab..812e1b83124 100644
--- a/app/assets/javascripts/discourse/app/initializers/topic-footer-buttons.js
+++ b/app/assets/javascripts/discourse/app/initializers/topic-footer-buttons.js
@@ -1,7 +1,7 @@
import I18n from "I18n";
-import showModal from "discourse/lib/show-modal";
-import { registerTopicFooterButton } from "discourse/lib/register-topic-footer-button";
import { formattedReminderTime } from "discourse/lib/bookmark";
+import { registerTopicFooterButton } from "discourse/lib/register-topic-footer-button";
+import showModal from "discourse/lib/show-modal";
const SHARE_PRIORITY = 1000;
const BOOKMARK_PRIORITY = 900;
diff --git a/app/assets/javascripts/discourse/app/initializers/webview-background.js b/app/assets/javascripts/discourse/app/initializers/webview-background.js
index b3946c54950..72993a75fe4 100644
--- a/app/assets/javascripts/discourse/app/initializers/webview-background.js
+++ b/app/assets/javascripts/discourse/app/initializers/webview-background.js
@@ -1,5 +1,5 @@
-import { later } from "@ember/runloop";
import { isAppWebview, postRNWebviewMessage } from "discourse/lib/utilities";
+import { later } from "@ember/runloop";
// Send bg color to webview so iOS status bar matches site theme
export default {
diff --git a/app/assets/javascripts/discourse/app/lib/ajax.js b/app/assets/javascripts/discourse/app/lib/ajax.js
index 79fba4949c6..36330cabf39 100644
--- a/app/assets/javascripts/discourse/app/lib/ajax.js
+++ b/app/assets/javascripts/discourse/app/lib/ajax.js
@@ -1,11 +1,11 @@
+import { Promise } from "rsvp";
+import Session from "discourse/models/session";
+import Site from "discourse/models/site";
+import User from "discourse/models/user";
import getURL from "discourse-common/lib/get-url";
+import { isTesting } from "discourse-common/config/environment";
import { run } from "@ember/runloop";
import userPresent from "discourse/lib/user-presence";
-import Session from "discourse/models/session";
-import { Promise } from "rsvp";
-import Site from "discourse/models/site";
-import { isTesting } from "discourse-common/config/environment";
-import User from "discourse/models/user";
let _trackView = false;
let _transientHeader = null;
diff --git a/app/assets/javascripts/discourse/app/lib/autocomplete.js b/app/assets/javascripts/discourse/app/lib/autocomplete.js
index b9b32f6ff5d..f08c7851d2a 100644
--- a/app/assets/javascripts/discourse/app/lib/autocomplete.js
+++ b/app/assets/javascripts/discourse/app/lib/autocomplete.js
@@ -1,8 +1,8 @@
+import { cancel, debounce, later } from "@ember/runloop";
+import { caretPosition, setCaretPosition } from "discourse/lib/utilities";
import { INPUT_DELAY } from "discourse-common/config/environment";
-import { debounce, cancel, later } from "@ember/runloop";
-import { iconHTML } from "discourse-common/lib/icon-library";
-import { setCaretPosition, caretPosition } from "discourse/lib/utilities";
import Site from "discourse/models/site";
+import { iconHTML } from "discourse-common/lib/icon-library";
/**
This is a jQuery plugin to support autocompleting values in our text fields.
diff --git a/app/assets/javascripts/discourse/app/lib/category-hashtags.js b/app/assets/javascripts/discourse/app/lib/category-hashtags.js
index 2aa56c3bbc2..75c85616f91 100644
--- a/app/assets/javascripts/discourse/app/lib/category-hashtags.js
+++ b/app/assets/javascripts/discourse/app/lib/category-hashtags.js
@@ -1,7 +1,7 @@
export const SEPARATOR = ":";
import {
- caretRowCol,
caretPosition,
+ caretRowCol,
inCodeBlock,
} from "discourse/lib/utilities";
diff --git a/app/assets/javascripts/discourse/app/lib/category-tag-search.js b/app/assets/javascripts/discourse/app/lib/category-tag-search.js
index 460e4770cb1..95fcdab9e05 100644
--- a/app/assets/javascripts/discourse/app/lib/category-tag-search.js
+++ b/app/assets/javascripts/discourse/app/lib/category-tag-search.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseDebounce from "discourse/lib/debounce";
+import { cancel, later } from "@ember/runloop";
import { CANCELLED_STATUS } from "discourse/lib/autocomplete";
import Category from "discourse/models/category";
-import { TAG_HASHTAG_POSTFIX } from "discourse/lib/tag-hashtags";
-import { SEPARATOR } from "discourse/lib/category-hashtags";
import { Promise } from "rsvp";
-import { later, cancel } from "@ember/runloop";
+import { SEPARATOR } from "discourse/lib/category-hashtags";
+import { TAG_HASHTAG_POSTFIX } from "discourse/lib/tag-hashtags";
+import discourseDebounce from "discourse/lib/debounce";
+import getURL from "discourse-common/lib/get-url";
import { isTesting } from "discourse-common/config/environment";
let cache = {};
diff --git a/app/assets/javascripts/discourse/app/lib/click-track.js b/app/assets/javascripts/discourse/app/lib/click-track.js
index a3524c760e2..28744e29118 100644
--- a/app/assets/javascripts/discourse/app/lib/click-track.js
+++ b/app/assets/javascripts/discourse/app/lib/click-track.js
@@ -1,14 +1,14 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { later } from "@ember/runloop";
-import { ajax } from "discourse/lib/ajax";
import DiscourseURL from "discourse/lib/url";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
-import { selectedText } from "discourse/lib/utilities";
+import I18n from "I18n";
import { Promise } from "rsvp";
-import { isTesting } from "discourse-common/config/environment";
import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
+import getURL from "discourse-common/lib/get-url";
+import { isTesting } from "discourse-common/config/environment";
+import { later } from "@ember/runloop";
+import { selectedText } from "discourse/lib/utilities";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
export function isValidLink($link) {
// .hashtag == category/tag link
diff --git a/app/assets/javascripts/discourse/app/lib/color-scheme-picker.js b/app/assets/javascripts/discourse/app/lib/color-scheme-picker.js
index 5ddb5be9fd4..2370a91ba64 100644
--- a/app/assets/javascripts/discourse/app/lib/color-scheme-picker.js
+++ b/app/assets/javascripts/discourse/app/lib/color-scheme-picker.js
@@ -1,6 +1,6 @@
+import cookie, { removeCookie } from "discourse/lib/cookie";
import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import cookie, { removeCookie } from "discourse/lib/cookie";
export function listColorSchemes(site, options = {}) {
let schemes = site.get("user_color_schemes");
diff --git a/app/assets/javascripts/discourse/app/lib/computed.js b/app/assets/javascripts/discourse/app/lib/computed.js
index f1640b18d2c..b0cd28c7eb0 100644
--- a/app/assets/javascripts/discourse/app/lib/computed.js
+++ b/app/assets/javascripts/discourse/app/lib/computed.js
@@ -1,6 +1,6 @@
-import getURL from "discourse-common/lib/get-url";
import I18n from "I18n";
import { computed } from "@ember/object";
+import getURL from "discourse-common/lib/get-url";
import { htmlSafe as htmlSafeTemplateHelper } from "@ember/template";
function addonFmt(str, formats) {
diff --git a/app/assets/javascripts/discourse/app/lib/desktop-notifications.js b/app/assets/javascripts/discourse/app/lib/desktop-notifications.js
index 2ec39fde56e..5513b021ee0 100644
--- a/app/assets/javascripts/discourse/app/lib/desktop-notifications.js
+++ b/app/assets/javascripts/discourse/app/lib/desktop-notifications.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import { later } from "@ember/runloop";
import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
import KeyValueStore from "discourse/lib/key-value-store";
-import { formatUsername } from "discourse/lib/utilities";
import { Promise } from "rsvp";
import Site from "discourse/models/site";
import User from "discourse/models/user";
+import { formatUsername } from "discourse/lib/utilities";
+import { later } from "@ember/runloop";
let primaryTab = false;
let liveEnabled = false;
diff --git a/app/assets/javascripts/discourse/app/lib/export-csv.js b/app/assets/javascripts/discourse/app/lib/export-csv.js
index d1dda9cef2a..b259fcc8657 100644
--- a/app/assets/javascripts/discourse/app/lib/export-csv.js
+++ b/app/assets/javascripts/discourse/app/lib/export-csv.js
@@ -1,7 +1,7 @@
import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import bootbox from "bootbox";
+import { popupAjaxError } from "discourse/lib/ajax-error";
function exportEntityByType(type, entity, args) {
return ajax("/export_csv/export_entity.json", {
diff --git a/app/assets/javascripts/discourse/app/lib/eyeline.js b/app/assets/javascripts/discourse/app/lib/eyeline.js
index 9190bf05dcf..f7f318865d8 100644
--- a/app/assets/javascripts/discourse/app/lib/eyeline.js
+++ b/app/assets/javascripts/discourse/app/lib/eyeline.js
@@ -1,5 +1,5 @@
-import { isTesting } from "discourse-common/config/environment";
import AppEvents from "discourse/services/app-events";
+import { isTesting } from "discourse-common/config/environment";
let _skipUpdate;
let _rootElement;
diff --git a/app/assets/javascripts/discourse/app/lib/formatter.js b/app/assets/javascripts/discourse/app/lib/formatter.js
index 6415fa08a55..616358521dd 100644
--- a/app/assets/javascripts/discourse/app/lib/formatter.js
+++ b/app/assets/javascripts/discourse/app/lib/formatter.js
@@ -1,5 +1,5 @@
-import { helperContext } from "discourse-common/lib/helpers";
import I18n from "I18n";
+import { helperContext } from "discourse-common/lib/helpers";
export function shortDate(date) {
return moment(date).format(I18n.t("dates.medium.date_year"));
diff --git a/app/assets/javascripts/discourse/app/lib/highlight-syntax.js b/app/assets/javascripts/discourse/app/lib/highlight-syntax.js
index 4ca0162c090..3a1a5d9b864 100644
--- a/app/assets/javascripts/discourse/app/lib/highlight-syntax.js
+++ b/app/assets/javascripts/discourse/app/lib/highlight-syntax.js
@@ -1,5 +1,5 @@
-import loadScript from "discourse/lib/load-script";
import deprecated from "discourse-common/lib/deprecated";
+import loadScript from "discourse/lib/load-script";
/*global hljs:true */
let _moreLanguages = [];
diff --git a/app/assets/javascripts/discourse/app/lib/keyboard-shortcuts.js b/app/assets/javascripts/discourse/app/lib/keyboard-shortcuts.js
index dabad153163..c49d279ca4b 100644
--- a/app/assets/javascripts/discourse/app/lib/keyboard-shortcuts.js
+++ b/app/assets/javascripts/discourse/app/lib/keyboard-shortcuts.js
@@ -1,13 +1,13 @@
-import { later, run, throttle, schedule } from "@ember/runloop";
-import DiscourseURL from "discourse/lib/url";
-import Composer from "discourse/models/composer";
-import { minimumOffset } from "discourse/lib/offset-calculator";
-import { ajax } from "discourse/lib/ajax";
-import { INPUT_DELAY } from "discourse-common/config/environment";
+import { later, run, schedule, throttle } from "@ember/runloop";
import {
nextTopicUrl,
previousTopicUrl,
} from "discourse/lib/topic-list-tracker";
+import Composer from "discourse/models/composer";
+import DiscourseURL from "discourse/lib/url";
+import { INPUT_DELAY } from "discourse-common/config/environment";
+import { ajax } from "discourse/lib/ajax";
+import { minimumOffset } from "discourse/lib/offset-calculator";
const DEFAULT_BINDINGS = {
"!": { postAction: "showFlags" },
diff --git a/app/assets/javascripts/discourse/app/lib/lightbox.js b/app/assets/javascripts/discourse/app/lib/lightbox.js
index 7bd934db2ec..28563fb06d5 100644
--- a/app/assets/javascripts/discourse/app/lib/lightbox.js
+++ b/app/assets/javascripts/discourse/app/lib/lightbox.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import loadScript from "discourse/lib/load-script";
import {
escapeExpression,
isAppWebview,
postRNWebviewMessage,
} from "discourse/lib/utilities";
+import I18n from "I18n";
+import User from "discourse/models/user";
+import loadScript from "discourse/lib/load-script";
import { renderIcon } from "discourse-common/lib/icon-library";
import { spinnerHTML } from "discourse/helpers/loading-spinner";
-import User from "discourse/models/user";
export default function (elem, siteSettings) {
if (!elem) {
diff --git a/app/assets/javascripts/discourse/app/lib/link-hashtags.js b/app/assets/javascripts/discourse/app/lib/link-hashtags.js
index 202b9bb1b8e..d09cbbdda11 100644
--- a/app/assets/javascripts/discourse/app/lib/link-hashtags.js
+++ b/app/assets/javascripts/discourse/app/lib/link-hashtags.js
@@ -1,7 +1,7 @@
-import { schedule } from "@ember/runloop";
+import { TAG_HASHTAG_POSTFIX } from "discourse/lib/tag-hashtags";
import { ajax } from "discourse/lib/ajax";
import { replaceSpan } from "discourse/lib/category-hashtags";
-import { TAG_HASHTAG_POSTFIX } from "discourse/lib/tag-hashtags";
+import { schedule } from "@ember/runloop";
const categoryHashtags = {};
const tagHashtags = {};
diff --git a/app/assets/javascripts/discourse/app/lib/link-mentions.js b/app/assets/javascripts/discourse/app/lib/link-mentions.js
index 915c683fc37..fa3ff8ec0b7 100644
--- a/app/assets/javascripts/discourse/app/lib/link-mentions.js
+++ b/app/assets/javascripts/discourse/app/lib/link-mentions.js
@@ -1,8 +1,8 @@
+import { ajax } from "discourse/lib/ajax";
+import { formatUsername } from "discourse/lib/utilities";
import getURL from "discourse-common/lib/get-url";
import { schedule } from "@ember/runloop";
-import { ajax } from "discourse/lib/ajax";
import { userPath } from "discourse/lib/url";
-import { formatUsername } from "discourse/lib/utilities";
let maxGroupMention;
diff --git a/app/assets/javascripts/discourse/app/lib/load-oneboxes.js b/app/assets/javascripts/discourse/app/lib/load-oneboxes.js
index c07d6abb481..7a880391789 100644
--- a/app/assets/javascripts/discourse/app/lib/load-oneboxes.js
+++ b/app/assets/javascripts/discourse/app/lib/load-oneboxes.js
@@ -1,5 +1,5 @@
+import { LOADING_ONEBOX_CSS_CLASS, load } from "pretty-text/oneboxer";
import { applyInlineOneboxes } from "pretty-text/inline-oneboxer";
-import { load, LOADING_ONEBOX_CSS_CLASS } from "pretty-text/oneboxer";
export function loadOneboxes(
container,
diff --git a/app/assets/javascripts/discourse/app/lib/load-script.js b/app/assets/javascripts/discourse/app/lib/load-script.js
index 004be25f8b2..9eebebff36a 100644
--- a/app/assets/javascripts/discourse/app/lib/load-script.js
+++ b/app/assets/javascripts/discourse/app/lib/load-script.js
@@ -1,8 +1,8 @@
import getURL, { getURLWithCDN } from "discourse-common/lib/get-url";
-import { run } from "@ember/runloop";
-import { ajax } from "discourse/lib/ajax";
import { PUBLIC_JS_VERSIONS } from "discourse/lib/public-js-versions";
import { Promise } from "rsvp";
+import { ajax } from "discourse/lib/ajax";
+import { run } from "@ember/runloop";
const _loaded = {};
const _loading = {};
diff --git a/app/assets/javascripts/discourse/app/lib/lock-on.js b/app/assets/javascripts/discourse/app/lib/lock-on.js
index 941e7d4a986..74df39c2ca1 100644
--- a/app/assets/javascripts/discourse/app/lib/lock-on.js
+++ b/app/assets/javascripts/discourse/app/lib/lock-on.js
@@ -1,5 +1,5 @@
-import { minimumOffset } from "discourse/lib/offset-calculator";
import { bind } from "discourse-common/utils/decorators";
+import { minimumOffset } from "discourse/lib/offset-calculator";
// Dear traveller, you are entering a zone where we are at war with the browser.
// The browser is insisting on positioning scrollTop per the location it was in
diff --git a/app/assets/javascripts/discourse/app/lib/logout.js b/app/assets/javascripts/discourse/app/lib/logout.js
index e1d73befef1..637d85764db 100644
--- a/app/assets/javascripts/discourse/app/lib/logout.js
+++ b/app/assets/javascripts/discourse/app/lib/logout.js
@@ -1,6 +1,6 @@
import getURL from "discourse-common/lib/get-url";
-import { isEmpty } from "@ember/utils";
import { helperContext } from "discourse-common/lib/helpers";
+import { isEmpty } from "@ember/utils";
export default function logout({ redirect } = {}) {
const ctx = helperContext();
diff --git a/app/assets/javascripts/discourse/app/lib/plugin-api.js b/app/assets/javascripts/discourse/app/lib/plugin-api.js
index 8bdce675b92..b536e80dbba 100644
--- a/app/assets/javascripts/discourse/app/lib/plugin-api.js
+++ b/app/assets/javascripts/discourse/app/lib/plugin-api.js
@@ -1,73 +1,73 @@
-import deprecated from "discourse-common/lib/deprecated";
-import { addDecorator } from "discourse/widgets/post-cooked";
-import { addPluginOutletDecorator } from "discourse/components/plugin-connector";
-import { addTopicTitleDecorator } from "discourse/components/topic-title";
-import DiscourseBanner from "discourse/components/discourse-banner";
-import { addButton, removeButton } from "discourse/widgets/post-menu";
-import { includeAttributes } from "discourse/lib/transform-post";
-import { registerHighlightJSLanguage } from "discourse/lib/highlight-syntax";
-import { addToolbarCallback } from "discourse/components/d-editor";
-import { addWidgetCleanCallback } from "discourse/components/mount-widget";
-import { addGlobalNotice } from "discourse/components/global-notice";
-import {
- createWidget,
- reopenWidget,
- decorateWidget,
- changeSetting,
- queryRegistry,
-} from "discourse/widgets/widget";
-import {
- preventCloak,
- addPostTransformCallback,
-} from "discourse/widgets/post-stream";
-import { h } from "virtual-dom";
-import { addPopupMenuOptionsCallback } from "discourse/controllers/composer";
-import { extraConnectorClass } from "discourse/lib/plugin-connectors";
-import { addPostSmallActionIcon } from "discourse/widgets/post-small-action";
-import { registerTopicFooterButton } from "discourse/lib/register-topic-footer-button";
-import { addDiscoveryQueryParam } from "discourse/controllers/discovery-sortable";
-import { addTagsHtmlCallback } from "discourse/lib/render-tags";
-import { addUserMenuGlyph } from "discourse/widgets/user-menu";
-import { addPostClassesCallback } from "discourse/widgets/post";
-import {
- attachAdditionalPanel,
- addToHeaderIcons,
-} from "discourse/widgets/header";
-import {
- registerIconRenderer,
- replaceIcon,
- iconNode,
-} from "discourse-common/lib/icon-library";
-import { replaceTagRenderer } from "discourse/lib/render-tag";
-import { addNavItem } from "discourse/models/nav-item";
-import { replaceFormatter } from "discourse/lib/utilities";
-import { modifySelectKit } from "select-kit/mixins/plugin-api";
-import { addGTMPageChangedCallback } from "discourse/lib/page-tracker";
-import { registerCustomAvatarHelper } from "discourse/helpers/user-avatar";
-import { addUsernameSelectorDecorator } from "discourse/helpers/decorate-username-selector";
-import { disableNameSuppression } from "discourse/widgets/poster-name";
-import { registerCustomPostMessageCallback as registerCustomPostMessageCallback1 } from "discourse/controllers/topic";
-import Sharing from "discourse/lib/sharing";
import ComposerEditor, {
addComposerUploadHandler,
addComposerUploadMarkdownResolver,
} from "discourse/components/composer-editor";
-import { addCategorySortCriteria } from "discourse/components/edit-category-settings";
+import { addButton, removeButton } from "discourse/widgets/post-menu";
import {
addExtraIconRenderer,
replaceCategoryLinkRenderer,
} from "discourse/helpers/category-link";
-import Composer from "discourse/models/composer";
-import { on } from "@ember/object/evented";
-import { addQuickAccessProfileItem } from "discourse/widgets/quick-access-profile";
-import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
-import { addFeaturedLinkMetaDecorator } from "discourse/lib/render-topic-featured-link";
-import { getOwner } from "discourse-common/lib/get-owner";
-import { addAdvancedSearchOptions } from "discourse/components/search-advanced-options";
+import {
+ addPostTransformCallback,
+ preventCloak,
+} from "discourse/widgets/post-stream";
import {
addSaveableUserField,
addSaveableUserOptionField,
} from "discourse/models/user";
+import {
+ addToHeaderIcons,
+ attachAdditionalPanel,
+} from "discourse/widgets/header";
+import {
+ changeSetting,
+ createWidget,
+ decorateWidget,
+ queryRegistry,
+ reopenWidget,
+} from "discourse/widgets/widget";
+import {
+ iconNode,
+ registerIconRenderer,
+ replaceIcon,
+} from "discourse-common/lib/icon-library";
+import Composer from "discourse/models/composer";
+import DiscourseBanner from "discourse/components/discourse-banner";
+import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
+import Sharing from "discourse/lib/sharing";
+import { addAdvancedSearchOptions } from "discourse/components/search-advanced-options";
+import { addCategorySortCriteria } from "discourse/components/edit-category-settings";
+import { addDecorator } from "discourse/widgets/post-cooked";
+import { addDiscoveryQueryParam } from "discourse/controllers/discovery-sortable";
+import { addFeaturedLinkMetaDecorator } from "discourse/lib/render-topic-featured-link";
+import { addGTMPageChangedCallback } from "discourse/lib/page-tracker";
+import { addGlobalNotice } from "discourse/components/global-notice";
+import { addNavItem } from "discourse/models/nav-item";
+import { addPluginOutletDecorator } from "discourse/components/plugin-connector";
+import { addPopupMenuOptionsCallback } from "discourse/controllers/composer";
+import { addPostClassesCallback } from "discourse/widgets/post";
+import { addPostSmallActionIcon } from "discourse/widgets/post-small-action";
+import { addQuickAccessProfileItem } from "discourse/widgets/quick-access-profile";
+import { addTagsHtmlCallback } from "discourse/lib/render-tags";
+import { addToolbarCallback } from "discourse/components/d-editor";
+import { addTopicTitleDecorator } from "discourse/components/topic-title";
+import { addUserMenuGlyph } from "discourse/widgets/user-menu";
+import { addUsernameSelectorDecorator } from "discourse/helpers/decorate-username-selector";
+import { addWidgetCleanCallback } from "discourse/components/mount-widget";
+import deprecated from "discourse-common/lib/deprecated";
+import { disableNameSuppression } from "discourse/widgets/poster-name";
+import { extraConnectorClass } from "discourse/lib/plugin-connectors";
+import { getOwner } from "discourse-common/lib/get-owner";
+import { h } from "virtual-dom";
+import { includeAttributes } from "discourse/lib/transform-post";
+import { modifySelectKit } from "select-kit/mixins/plugin-api";
+import { on } from "@ember/object/evented";
+import { registerCustomAvatarHelper } from "discourse/helpers/user-avatar";
+import { registerCustomPostMessageCallback as registerCustomPostMessageCallback1 } from "discourse/controllers/topic";
+import { registerHighlightJSLanguage } from "discourse/lib/highlight-syntax";
+import { registerTopicFooterButton } from "discourse/lib/register-topic-footer-button";
+import { replaceFormatter } from "discourse/lib/utilities";
+import { replaceTagRenderer } from "discourse/lib/render-tag";
// If you add any methods to the API ensure you bump up this number
const PLUGIN_API_VERSION = "0.11.1";
diff --git a/app/assets/javascripts/discourse/app/lib/plugin-connectors.js b/app/assets/javascripts/discourse/app/lib/plugin-connectors.js
index a722b7cd60a..16b7fafdb3d 100644
--- a/app/assets/javascripts/discourse/app/lib/plugin-connectors.js
+++ b/app/assets/javascripts/discourse/app/lib/plugin-connectors.js
@@ -1,6 +1,6 @@
import Site from "discourse/models/site";
-import deprecated from "discourse-common/lib/deprecated";
import { buildRawConnectorCache } from "discourse-common/lib/raw-templates";
+import deprecated from "discourse-common/lib/deprecated";
let _connectorCache;
let _rawConnectorCache;
diff --git a/app/assets/javascripts/discourse/app/lib/push-notifications.js b/app/assets/javascripts/discourse/app/lib/push-notifications.js
index 40d4f27a2c4..4c21b86e3f1 100644
--- a/app/assets/javascripts/discourse/app/lib/push-notifications.js
+++ b/app/assets/javascripts/discourse/app/lib/push-notifications.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import KeyValueStore from "discourse/lib/key-value-store";
+import { ajax } from "discourse/lib/ajax";
export const keyValueStore = new KeyValueStore("discourse_push_notifications_");
diff --git a/app/assets/javascripts/discourse/app/lib/put-cursor-at-end.js b/app/assets/javascripts/discourse/app/lib/put-cursor-at-end.js
index a8c483e4793..8286036b4f9 100644
--- a/app/assets/javascripts/discourse/app/lib/put-cursor-at-end.js
+++ b/app/assets/javascripts/discourse/app/lib/put-cursor-at-end.js
@@ -1,5 +1,5 @@
-import positioningWorkaround from "discourse/lib/safari-hacks";
import { isAppleDevice } from "discourse/lib/utilities";
+import positioningWorkaround from "discourse/lib/safari-hacks";
export default function (element) {
if (isAppleDevice() && positioningWorkaround.touchstartEvent) {
diff --git a/app/assets/javascripts/discourse/app/lib/register-topic-footer-button.js b/app/assets/javascripts/discourse/app/lib/register-topic-footer-button.js
index 27f6130c100..cdafab891f2 100644
--- a/app/assets/javascripts/discourse/app/lib/register-topic-footer-button.js
+++ b/app/assets/javascripts/discourse/app/lib/register-topic-footer-button.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import error from "@ember/error";
import { computed } from "@ember/object";
+import error from "@ember/error";
let _topicFooterButtons = {};
diff --git a/app/assets/javascripts/discourse/app/lib/render-tag.js b/app/assets/javascripts/discourse/app/lib/render-tag.js
index fbc7ab62c84..d545ad10bc7 100644
--- a/app/assets/javascripts/discourse/app/lib/render-tag.js
+++ b/app/assets/javascripts/discourse/app/lib/render-tag.js
@@ -1,6 +1,6 @@
-import getURL from "discourse-common/lib/get-url";
import User from "discourse/models/user";
import { escapeExpression } from "discourse/lib/utilities";
+import getURL from "discourse-common/lib/get-url";
import { helperContext } from "discourse-common/lib/helpers";
let _renderer = defaultRenderTag;
diff --git a/app/assets/javascripts/discourse/app/lib/render-topic-featured-link.js b/app/assets/javascripts/discourse/app/lib/render-topic-featured-link.js
index 13d83c0064d..5c3f0b4b24b 100644
--- a/app/assets/javascripts/discourse/app/lib/render-topic-featured-link.js
+++ b/app/assets/javascripts/discourse/app/lib/render-topic-featured-link.js
@@ -1,6 +1,6 @@
+import User from "discourse/models/user";
import { h } from "virtual-dom";
import { renderIcon } from "discourse-common/lib/icon-library";
-import User from "discourse/models/user";
const _decorators = [];
diff --git a/app/assets/javascripts/discourse/app/lib/reports-loader.js b/app/assets/javascripts/discourse/app/lib/reports-loader.js
index 675f296ef9f..e0b108b7c7b 100644
--- a/app/assets/javascripts/discourse/app/lib/reports-loader.js
+++ b/app/assets/javascripts/discourse/app/lib/reports-loader.js
@@ -1,5 +1,5 @@
-import { run } from "@ember/runloop";
import { ajax } from "discourse/lib/ajax";
+import { run } from "@ember/runloop";
const { debounce } = run;
let _queue = [];
diff --git a/app/assets/javascripts/discourse/app/lib/safari-hacks.js b/app/assets/javascripts/discourse/app/lib/safari-hacks.js
index 03e286d6052..7ecdb18b89c 100644
--- a/app/assets/javascripts/discourse/app/lib/safari-hacks.js
+++ b/app/assets/javascripts/discourse/app/lib/safari-hacks.js
@@ -1,11 +1,11 @@
-import { later } from "@ember/runloop";
-import discourseDebounce from "discourse/lib/debounce";
import {
- safariHacksDisabled,
iOSWithVisualViewport,
+ safariHacksDisabled,
} from "discourse/lib/utilities";
import { INPUT_DELAY } from "discourse-common/config/environment";
+import discourseDebounce from "discourse/lib/debounce";
import { helperContext } from "discourse-common/lib/helpers";
+import { later } from "@ember/runloop";
// TODO: remove calcHeight once iOS 13 adoption > 90%
// In iOS 13 and up we use visualViewport API to calculate height
diff --git a/app/assets/javascripts/discourse/app/lib/screen-track.js b/app/assets/javascripts/discourse/app/lib/screen-track.js
index 5ef5798967a..40bc56104e3 100644
--- a/app/assets/javascripts/discourse/app/lib/screen-track.js
+++ b/app/assets/javascripts/discourse/app/lib/screen-track.js
@@ -1,6 +1,6 @@
import { ajax } from "discourse/lib/ajax";
-import { isTesting } from "discourse-common/config/environment";
import { bind } from "discourse-common/utils/decorators";
+import { isTesting } from "discourse-common/config/environment";
// We use this class to track how long posts in a topic are on the screen.
const PAUSE_UNLESS_SCROLLED = 1000 * 60 * 3;
diff --git a/app/assets/javascripts/discourse/app/lib/search.js b/app/assets/javascripts/discourse/app/lib/search.js
index fe5d7a6cf03..0b0f9ecb2f6 100644
--- a/app/assets/javascripts/discourse/app/lib/search.js
+++ b/app/assets/javascripts/discourse/app/lib/search.js
@@ -1,19 +1,19 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import EmberObject from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import { findRawTemplate } from "discourse-common/lib/raw-templates";
import Category from "discourse/models/category";
-import { search as searchCategoryTag } from "discourse/lib/category-tag-search";
-import userSearch from "discourse/lib/user-search";
-import { userPath } from "discourse/lib/url";
-import { emojiUnescape } from "discourse/lib/text";
-import User from "discourse/models/user";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import Post from "discourse/models/post";
import Topic from "discourse/models/topic";
-import { escapeExpression } from "discourse/lib/utilities";
+import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
import { deepMerge } from "discourse-common/lib/object";
+import { emojiUnescape } from "discourse/lib/text";
+import { escapeExpression } from "discourse/lib/utilities";
+import { findRawTemplate } from "discourse-common/lib/raw-templates";
+import getURL from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
+import { search as searchCategoryTag } from "discourse/lib/category-tag-search";
+import { userPath } from "discourse/lib/url";
+import userSearch from "discourse/lib/user-search";
export function translateResults(results, opts) {
opts = opts || {};
diff --git a/app/assets/javascripts/discourse/app/lib/static-route-builder.js b/app/assets/javascripts/discourse/app/lib/static-route-builder.js
index c2056a7a15c..200714b4f3a 100644
--- a/app/assets/javascripts/discourse/app/lib/static-route-builder.js
+++ b/app/assets/javascripts/discourse/app/lib/static-route-builder.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
-import StaticPage from "discourse/models/static-page";
import DiscourseURL, { jumpToElement } from "discourse/lib/url";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
+import StaticPage from "discourse/models/static-page";
const configs = {
faq: "faq_url",
diff --git a/app/assets/javascripts/discourse/app/lib/text.js b/app/assets/javascripts/discourse/app/lib/text.js
index a46500e5d44..e20fb6ade31 100644
--- a/app/assets/javascripts/discourse/app/lib/text.js
+++ b/app/assets/javascripts/discourse/app/lib/text.js
@@ -1,14 +1,14 @@
-import { getURLWithCDN } from "discourse-common/lib/get-url";
import PrettyText, { buildOptions } from "pretty-text/pretty-text";
-import { performEmojiUnescape, buildEmojiUrl } from "pretty-text/emoji";
+import { buildEmojiUrl, performEmojiUnescape } from "pretty-text/emoji";
import AllowLister from "pretty-text/allow-lister";
-import { sanitize as textSanitize } from "pretty-text/sanitizer";
-import loadScript from "discourse/lib/load-script";
-import { formatUsername } from "discourse/lib/utilities";
import { Promise } from "rsvp";
-import { htmlSafe } from "@ember/template";
-import { helperContext } from "discourse-common/lib/helpers";
import Session from "discourse/models/session";
+import { formatUsername } from "discourse/lib/utilities";
+import { getURLWithCDN } from "discourse-common/lib/get-url";
+import { helperContext } from "discourse-common/lib/helpers";
+import { htmlSafe } from "@ember/template";
+import loadScript from "discourse/lib/load-script";
+import { sanitize as textSanitize } from "pretty-text/sanitizer";
function getOpts(opts) {
let context = helperContext();
diff --git a/app/assets/javascripts/discourse/app/lib/theme-selector.js b/app/assets/javascripts/discourse/app/lib/theme-selector.js
index 8b9f194bbd7..32326b4a88b 100644
--- a/app/assets/javascripts/discourse/app/lib/theme-selector.js
+++ b/app/assets/javascripts/discourse/app/lib/theme-selector.js
@@ -1,6 +1,6 @@
+import cookie, { removeCookie } from "discourse/lib/cookie";
import I18n from "I18n";
import deprecated from "discourse-common/lib/deprecated";
-import cookie, { removeCookie } from "discourse/lib/cookie";
const keySelector = "meta[name=discourse_theme_ids]";
diff --git a/app/assets/javascripts/discourse/app/lib/uploads.js b/app/assets/javascripts/discourse/app/lib/uploads.js
index 92e2677e9e5..6be776006ff 100644
--- a/app/assets/javascripts/discourse/app/lib/uploads.js
+++ b/app/assets/javascripts/discourse/app/lib/uploads.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import { isAppleDevice } from "discourse/lib/utilities";
import bootbox from "bootbox";
+import { isAppleDevice } from "discourse/lib/utilities";
function isGUID(value) {
return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(
diff --git a/app/assets/javascripts/discourse/app/lib/url.js b/app/assets/javascripts/discourse/app/lib/url.js
index 919e369ee1a..f58fbe5ac38 100644
--- a/app/assets/javascripts/discourse/app/lib/url.js
+++ b/app/assets/javascripts/discourse/app/lib/url.js
@@ -1,12 +1,12 @@
-import { isEmpty } from "@ember/utils";
-import EmberObject from "@ember/object";
-import { next, schedule } from "@ember/runloop";
-import offsetCalculator from "discourse/lib/offset-calculator";
-import LockOn from "discourse/lib/lock-on";
-import { defaultHomepage } from "discourse/lib/utilities";
-import User from "discourse/models/user";
import getURL, { withoutPrefix } from "discourse-common/lib/get-url";
+import { next, schedule } from "@ember/runloop";
+import EmberObject from "@ember/object";
+import LockOn from "discourse/lib/lock-on";
import Session from "discourse/models/session";
+import User from "discourse/models/user";
+import { defaultHomepage } from "discourse/lib/utilities";
+import { isEmpty } from "@ember/utils";
+import offsetCalculator from "discourse/lib/offset-calculator";
import { setOwner } from "@ember/application";
const rewrites = [];
diff --git a/app/assets/javascripts/discourse/app/lib/user-search.js b/app/assets/javascripts/discourse/app/lib/user-search.js
index 8c3caa5143c..b68e0755e8a 100644
--- a/app/assets/javascripts/discourse/app/lib/user-search.js
+++ b/app/assets/javascripts/discourse/app/lib/user-search.js
@@ -1,10 +1,10 @@
-import { isTesting } from "discourse-common/config/environment";
-import discourseDebounce from "discourse/lib/debounce";
+import { cancel, later } from "@ember/runloop";
import { CANCELLED_STATUS } from "discourse/lib/autocomplete";
-import { userPath } from "discourse/lib/url";
-import { emailValid } from "discourse/lib/utilities";
import { Promise } from "rsvp";
-import { later, cancel } from "@ember/runloop";
+import discourseDebounce from "discourse/lib/debounce";
+import { emailValid } from "discourse/lib/utilities";
+import { isTesting } from "discourse-common/config/environment";
+import { userPath } from "discourse/lib/url";
var cache = {},
cacheKey,
diff --git a/app/assets/javascripts/discourse/app/lib/utilities.js b/app/assets/javascripts/discourse/app/lib/utilities.js
index 5d0b5c9f3c0..50b51d59ac4 100644
--- a/app/assets/javascripts/discourse/app/lib/utilities.js
+++ b/app/assets/javascripts/discourse/app/lib/utilities.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { escape } from "pretty-text/sanitizer";
-import toMarkdown from "discourse/lib/to-markdown";
-import Handlebars from "handlebars";
import getURL, { getURLWithCDN } from "discourse-common/lib/get-url";
-import { helperContext } from "discourse-common/lib/helpers";
+import Handlebars from "handlebars";
+import I18n from "I18n";
import { deepMerge } from "discourse-common/lib/object";
+import { escape } from "pretty-text/sanitizer";
+import { helperContext } from "discourse-common/lib/helpers";
+import toMarkdown from "discourse/lib/to-markdown";
let _defaultHomepage;
diff --git a/app/assets/javascripts/discourse/app/mapping-router.js b/app/assets/javascripts/discourse/app/mapping-router.js
index 51bf14322be..289c09a9b5f 100644
--- a/app/assets/javascripts/discourse/app/mapping-router.js
+++ b/app/assets/javascripts/discourse/app/mapping-router.js
@@ -1,9 +1,9 @@
import EmberRouter from "@ember/routing/router";
-import { defaultHomepage } from "discourse/lib/utilities";
-import { rewritePath } from "discourse/lib/url";
import Site from "discourse/models/site";
-import { isTesting } from "discourse-common/config/environment";
+import { defaultHomepage } from "discourse/lib/utilities";
import getURL from "discourse-common/lib/get-url";
+import { isTesting } from "discourse-common/config/environment";
+import { rewritePath } from "discourse/lib/url";
const BareRouter = EmberRouter.extend({
location: isTesting() ? "none" : "discourse-location",
diff --git a/app/assets/javascripts/discourse/app/mixins/add-archetype-class.js b/app/assets/javascripts/discourse/app/mixins/add-archetype-class.js
index 723826790ca..3105319490d 100644
--- a/app/assets/javascripts/discourse/app/mixins/add-archetype-class.js
+++ b/app/assets/javascripts/discourse/app/mixins/add-archetype-class.js
@@ -1,4 +1,4 @@
-import { on, observes } from "discourse-common/utils/decorators";
+import { observes, on } from "discourse-common/utils/decorators";
// Mix this in to a view that has a `archetype` property to automatically
// add it to the body as the view is entered / left / model is changed.
diff --git a/app/assets/javascripts/discourse/app/mixins/buffered-content.js b/app/assets/javascripts/discourse/app/mixins/buffered-content.js
index 6dd9f09be4b..9b6d0b64499 100644
--- a/app/assets/javascripts/discourse/app/mixins/buffered-content.js
+++ b/app/assets/javascripts/discourse/app/mixins/buffered-content.js
@@ -1,7 +1,7 @@
+import BufferedProxy from "ember-buffered-proxy/proxy";
import EmberObjectProxy from "@ember/object/proxy";
import Mixin from "@ember/object/mixin";
import { computed } from "@ember/object";
-import BufferedProxy from "ember-buffered-proxy/proxy";
export function bufferedProperty(property) {
const mixin = {
diff --git a/app/assets/javascripts/discourse/app/mixins/bulk-topic-selection.js b/app/assets/javascripts/discourse/app/mixins/bulk-topic-selection.js
index 279fe79fa3f..d539a14063c 100644
--- a/app/assets/javascripts/discourse/app/mixins/bulk-topic-selection.js
+++ b/app/assets/javascripts/discourse/app/mixins/bulk-topic-selection.js
@@ -1,8 +1,8 @@
-import { alias } from "@ember/object/computed";
-import { NotificationLevels } from "discourse/lib/notification-levels";
-import { on } from "discourse-common/utils/decorators";
import Mixin from "@ember/object/mixin";
+import { NotificationLevels } from "discourse/lib/notification-levels";
import Topic from "discourse/models/topic";
+import { alias } from "@ember/object/computed";
+import { on } from "discourse-common/utils/decorators";
export default Mixin.create({
bulkSelectEnabled: false,
diff --git a/app/assets/javascripts/discourse/app/mixins/can-check-emails.js b/app/assets/javascripts/discourse/app/mixins/can-check-emails.js
index e856d615c96..d76250124f4 100644
--- a/app/assets/javascripts/discourse/app/mixins/can-check-emails.js
+++ b/app/assets/javascripts/discourse/app/mixins/can-check-emails.js
@@ -1,4 +1,4 @@
-import { and, alias, or } from "@ember/object/computed";
+import { alias, and, or } from "@ember/object/computed";
import { propertyEqual, setting } from "discourse/lib/computed";
import Mixin from "@ember/object/mixin";
diff --git a/app/assets/javascripts/discourse/app/mixins/card-contents-base.js b/app/assets/javascripts/discourse/app/mixins/card-contents-base.js
index 0a996f8056a..2b67cd1bde7 100644
--- a/app/assets/javascripts/discourse/app/mixins/card-contents-base.js
+++ b/app/assets/javascripts/discourse/app/mixins/card-contents-base.js
@@ -1,12 +1,12 @@
import { alias, match } from "@ember/object/computed";
import { next, schedule, throttle } from "@ember/runloop";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
-import afterTransition from "discourse/lib/after-transition";
import DiscourseURL from "discourse/lib/url";
import Mixin from "@ember/object/mixin";
+import afterTransition from "discourse/lib/after-transition";
import { escapeExpression } from "discourse/lib/utilities";
import headerOutletHeights from "discourse/lib/header-outlet-height";
import { inject as service } from "@ember/service";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
export default Mixin.create({
router: service(),
diff --git a/app/assets/javascripts/discourse/app/mixins/cleans-up.js b/app/assets/javascripts/discourse/app/mixins/cleans-up.js
index 753dad027c3..054f770def6 100644
--- a/app/assets/javascripts/discourse/app/mixins/cleans-up.js
+++ b/app/assets/javascripts/discourse/app/mixins/cleans-up.js
@@ -1,5 +1,5 @@
-import { on } from "@ember/object/evented";
import Mixin from "@ember/object/mixin";
+import { on } from "@ember/object/evented";
// Include this mixin if you want to be notified when the dom should be
// cleaned (usually on route change.)
diff --git a/app/assets/javascripts/discourse/app/mixins/docking.js b/app/assets/javascripts/discourse/app/mixins/docking.js
index 302ac24af86..4147ae94de7 100644
--- a/app/assets/javascripts/discourse/app/mixins/docking.js
+++ b/app/assets/javascripts/discourse/app/mixins/docking.js
@@ -1,5 +1,5 @@
+import { debounce, later } from "@ember/runloop";
import Mixin from "@ember/object/mixin";
-import { later, debounce } from "@ember/runloop";
const helper = {
offset() {
diff --git a/app/assets/javascripts/discourse/app/mixins/filter-mode.js b/app/assets/javascripts/discourse/app/mixins/filter-mode.js
index ebf59bb1a83..22f30609688 100644
--- a/app/assets/javascripts/discourse/app/mixins/filter-mode.js
+++ b/app/assets/javascripts/discourse/app/mixins/filter-mode.js
@@ -1,6 +1,6 @@
+import Category from "discourse/models/category";
import Mixin from "@ember/object/mixin";
import { computed } from "@ember/object";
-import Category from "discourse/models/category";
export default Mixin.create({
filterModeInternal: computed(
diff --git a/app/assets/javascripts/discourse/app/mixins/grant-badge-controller.js b/app/assets/javascripts/discourse/app/mixins/grant-badge-controller.js
index a1820399f6e..6858d440965 100644
--- a/app/assets/javascripts/discourse/app/mixins/grant-badge-controller.js
+++ b/app/assets/javascripts/discourse/app/mixins/grant-badge-controller.js
@@ -1,8 +1,8 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { empty } from "@ember/object/computed";
+import Mixin from "@ember/object/mixin";
import UserBadge from "discourse/models/user-badge";
import { convertIconClass } from "discourse-common/lib/icon-library";
-import Mixin from "@ember/object/mixin";
+import discourseComputed from "discourse-common/utils/decorators";
+import { empty } from "@ember/object/computed";
export default Mixin.create({
@discourseComputed("allBadges.[]", "userBadges.[]")
diff --git a/app/assets/javascripts/discourse/app/mixins/load-more.js b/app/assets/javascripts/discourse/app/mixins/load-more.js
index 421cb16d2c2..4b2f5d4f764 100644
--- a/app/assets/javascripts/discourse/app/mixins/load-more.js
+++ b/app/assets/javascripts/discourse/app/mixins/load-more.js
@@ -1,7 +1,7 @@
import Eyeline from "discourse/lib/eyeline";
+import Mixin from "@ember/object/mixin";
import Scrolling from "discourse/mixins/scrolling";
import { on } from "discourse-common/utils/decorators";
-import Mixin from "@ember/object/mixin";
// Provides the ability to load more items for a view which is scrolled to the bottom.
export default Mixin.create(Scrolling, {
diff --git a/app/assets/javascripts/discourse/app/mixins/mobile-scroll-direction.js b/app/assets/javascripts/discourse/app/mixins/mobile-scroll-direction.js
index 556831fb33f..2be71c0d636 100644
--- a/app/assets/javascripts/discourse/app/mixins/mobile-scroll-direction.js
+++ b/app/assets/javascripts/discourse/app/mixins/mobile-scroll-direction.js
@@ -1,5 +1,5 @@
-import { debounce } from "@ember/runloop";
import Mixin from "@ember/object/mixin";
+import { debounce } from "@ember/runloop";
// Small buffer so that very tiny scrolls don't trigger mobile header switch
const MOBILE_SCROLL_TOLERANCE = 5;
diff --git a/app/assets/javascripts/discourse/app/mixins/modal-functionality.js b/app/assets/javascripts/discourse/app/mixins/modal-functionality.js
index bc728628a49..6287199a755 100644
--- a/app/assets/javascripts/discourse/app/mixins/modal-functionality.js
+++ b/app/assets/javascripts/discourse/app/mixins/modal-functionality.js
@@ -1,5 +1,5 @@
-import showModal from "discourse/lib/show-modal";
import Mixin from "@ember/object/mixin";
+import showModal from "discourse/lib/show-modal";
export default Mixin.create({
flash(text, messageClass) {
diff --git a/app/assets/javascripts/discourse/app/mixins/name-validation.js b/app/assets/javascripts/discourse/app/mixins/name-validation.js
index 61b8c623447..52623f537e3 100644
--- a/app/assets/javascripts/discourse/app/mixins/name-validation.js
+++ b/app/assets/javascripts/discourse/app/mixins/name-validation.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import discourseComputed from "discourse-common/utils/decorators";
-import Mixin from "@ember/object/mixin";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import Mixin from "@ember/object/mixin";
+import discourseComputed from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
export default Mixin.create({
@discourseComputed()
diff --git a/app/assets/javascripts/discourse/app/mixins/password-validation.js b/app/assets/javascripts/discourse/app/mixins/password-validation.js
index 6511ec4bdef..feb020cbf7a 100644
--- a/app/assets/javascripts/discourse/app/mixins/password-validation.js
+++ b/app/assets/javascripts/discourse/app/mixins/password-validation.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import discourseComputed from "discourse-common/utils/decorators";
-import Mixin from "@ember/object/mixin";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import Mixin from "@ember/object/mixin";
+import discourseComputed from "discourse-common/utils/decorators";
+import { isEmpty } from "@ember/utils";
export default Mixin.create({
rejectedPasswords: null,
diff --git a/app/assets/javascripts/discourse/app/mixins/scroll-top.js b/app/assets/javascripts/discourse/app/mixins/scroll-top.js
index 0e0ffc58f7f..93c72ae445f 100644
--- a/app/assets/javascripts/discourse/app/mixins/scroll-top.js
+++ b/app/assets/javascripts/discourse/app/mixins/scroll-top.js
@@ -1,8 +1,8 @@
-import { scheduleOnce } from "@ember/runloop";
import DiscourseURL from "discourse/lib/url";
-import { deprecated } from "discourse/mixins/scroll-top";
import Mixin from "@ember/object/mixin";
+import { deprecated } from "discourse/mixins/scroll-top";
import { isTesting } from "discourse-common/config/environment";
+import { scheduleOnce } from "@ember/runloop";
const context = {
_scrollTop() {
diff --git a/app/assets/javascripts/discourse/app/mixins/scrolling.js b/app/assets/javascripts/discourse/app/mixins/scrolling.js
index 67b5fb81f6f..f1df25463a7 100644
--- a/app/assets/javascripts/discourse/app/mixins/scrolling.js
+++ b/app/assets/javascripts/discourse/app/mixins/scrolling.js
@@ -1,6 +1,6 @@
-import { scheduleOnce } from "@ember/runloop";
-import discourseDebounce from "discourse/lib/debounce";
import Mixin from "@ember/object/mixin";
+import discourseDebounce from "discourse/lib/debounce";
+import { scheduleOnce } from "@ember/runloop";
import { inject as service } from "@ember/service";
/**
diff --git a/app/assets/javascripts/discourse/app/mixins/upload.js b/app/assets/javascripts/discourse/app/mixins/upload.js
index 1298f498e45..b626f6c994c 100644
--- a/app/assets/javascripts/discourse/app/mixins/upload.js
+++ b/app/assets/javascripts/discourse/app/mixins/upload.js
@@ -1,14 +1,14 @@
-import I18n from "I18n";
-import { warn } from "@ember/debug";
import {
displayErrorForUpload,
validateUploadedFiles,
} from "discourse/lib/uploads";
-import getUrl from "discourse-common/lib/get-url";
-import { on } from "@ember/object/evented";
+import I18n from "I18n";
import Mixin from "@ember/object/mixin";
import bootbox from "bootbox";
import { deepMerge } from "discourse-common/lib/object";
+import getUrl from "discourse-common/lib/get-url";
+import { on } from "@ember/object/evented";
+import { warn } from "@ember/debug";
export default Mixin.create({
uploading: false,
diff --git a/app/assets/javascripts/discourse/app/mixins/user-fields-validation.js b/app/assets/javascripts/discourse/app/mixins/user-fields-validation.js
index 6aeb2470ff4..1a503dfcc21 100644
--- a/app/assets/javascripts/discourse/app/mixins/user-fields-validation.js
+++ b/app/assets/javascripts/discourse/app/mixins/user-fields-validation.js
@@ -1,8 +1,8 @@
-import { isEmpty } from "@ember/utils";
-import EmberObject from "@ember/object";
import discourseComputed, { on } from "discourse-common/utils/decorators";
-import Mixin from "@ember/object/mixin";
+import EmberObject from "@ember/object";
import I18n from "I18n";
+import Mixin from "@ember/object/mixin";
+import { isEmpty } from "@ember/utils";
export default Mixin.create({
@on("init")
diff --git a/app/assets/javascripts/discourse/app/mixins/username-validation.js b/app/assets/javascripts/discourse/app/mixins/username-validation.js
index 09d13d2b29f..9d26b91cea9 100644
--- a/app/assets/javascripts/discourse/app/mixins/username-validation.js
+++ b/app/assets/javascripts/discourse/app/mixins/username-validation.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import discourseDebounce from "discourse/lib/debounce";
-import { setting } from "discourse/lib/computed";
-import discourseComputed from "discourse-common/utils/decorators";
-import Mixin from "@ember/object/mixin";
import EmberObject from "@ember/object";
+import I18n from "I18n";
+import Mixin from "@ember/object/mixin";
import User from "discourse/models/user";
+import discourseComputed from "discourse-common/utils/decorators";
+import discourseDebounce from "discourse/lib/debounce";
+import { isEmpty } from "@ember/utils";
+import { setting } from "discourse/lib/computed";
export default Mixin.create({
uniqueUsernameValidation: null,
diff --git a/app/assets/javascripts/discourse/app/models/action-summary.js b/app/assets/javascripts/discourse/app/models/action-summary.js
index 7680d13110b..2bf455aaded 100644
--- a/app/assets/javascripts/discourse/app/models/action-summary.js
+++ b/app/assets/javascripts/discourse/app/models/action-summary.js
@@ -1,6 +1,6 @@
-import { or } from "@ember/object/computed";
-import { ajax } from "discourse/lib/ajax";
import RestModel from "discourse/models/rest";
+import { ajax } from "discourse/lib/ajax";
+import { or } from "@ember/object/computed";
import { popupAjaxError } from "discourse/lib/ajax-error";
export default RestModel.extend({
diff --git a/app/assets/javascripts/discourse/app/models/archetype.js b/app/assets/javascripts/discourse/app/models/archetype.js
index bd4eedffe0b..fb48513fbc4 100644
--- a/app/assets/javascripts/discourse/app/models/archetype.js
+++ b/app/assets/javascripts/discourse/app/models/archetype.js
@@ -1,6 +1,6 @@
import { gt, not } from "@ember/object/computed";
-import { propertyEqual } from "discourse/lib/computed";
import RestModel from "discourse/models/rest";
+import { propertyEqual } from "discourse/lib/computed";
export default RestModel.extend({
hasOptions: gt("options.length", 0),
diff --git a/app/assets/javascripts/discourse/app/models/badge-grouping.js b/app/assets/javascripts/discourse/app/models/badge-grouping.js
index cd9b1cd037e..e681d4f0253 100644
--- a/app/assets/javascripts/discourse/app/models/badge-grouping.js
+++ b/app/assets/javascripts/discourse/app/models/badge-grouping.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import RestModel from "discourse/models/rest";
+import discourseComputed from "discourse-common/utils/decorators";
export default RestModel.extend({
@discourseComputed("name")
diff --git a/app/assets/javascripts/discourse/app/models/badge.js b/app/assets/javascripts/discourse/app/models/badge.js
index 894f3fb09d0..99648d7558a 100644
--- a/app/assets/javascripts/discourse/app/models/badge.js
+++ b/app/assets/javascripts/discourse/app/models/badge.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
-import { none } from "@ember/object/computed";
-import EmberObject from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
import BadgeGrouping from "discourse/models/badge-grouping";
-import RestModel from "discourse/models/rest";
+import EmberObject from "@ember/object";
import { Promise } from "rsvp";
+import RestModel from "discourse/models/rest";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
+import { none } from "@ember/object/computed";
const Badge = RestModel.extend({
newBadge: none("id"),
diff --git a/app/assets/javascripts/discourse/app/models/bookmark.js b/app/assets/javascripts/discourse/app/models/bookmark.js
index 0c416b15ba0..d65b32272b7 100644
--- a/app/assets/javascripts/discourse/app/models/bookmark.js
+++ b/app/assets/javascripts/discourse/app/models/bookmark.js
@@ -1,16 +1,16 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
import Category from "discourse/models/category";
-import User from "discourse/models/user";
-import { fancyTitle } from "discourse/lib/topic-fancy-title";
-import { longDate } from "discourse/lib/formatter";
-import { none } from "@ember/object/computed";
-import { computed } from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
+import I18n from "I18n";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
+import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
+import { computed } from "@ember/object";
import discourseComputed from "discourse-common/utils/decorators";
+import { fancyTitle } from "discourse/lib/topic-fancy-title";
import { formattedReminderTime } from "discourse/lib/bookmark";
+import getURL from "discourse-common/lib/get-url";
+import { longDate } from "discourse/lib/formatter";
+import { none } from "@ember/object/computed";
export const AUTO_DELETE_PREFERENCES = {
NEVER: 0,
diff --git a/app/assets/javascripts/discourse/app/models/category-list.js b/app/assets/javascripts/discourse/app/models/category-list.js
index cf4d89534da..f9c4cc552bf 100644
--- a/app/assets/javascripts/discourse/app/models/category-list.js
+++ b/app/assets/javascripts/discourse/app/models/category-list.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
import ArrayProxy from "@ember/array/proxy";
-import PreloadStore from "discourse/lib/preload-store";
-import { ajax } from "discourse/lib/ajax";
-import Topic from "discourse/models/topic";
import Category from "discourse/models/category";
+import I18n from "I18n";
+import PreloadStore from "discourse/lib/preload-store";
import Site from "discourse/models/site";
+import Topic from "discourse/models/topic";
+import { ajax } from "discourse/lib/ajax";
const CategoryList = ArrayProxy.extend({
init() {
diff --git a/app/assets/javascripts/discourse/app/models/category.js b/app/assets/javascripts/discourse/app/models/category.js
index 33c9afd2ed6..c37eeeef854 100644
--- a/app/assets/javascripts/discourse/app/models/category.js
+++ b/app/assets/javascripts/discourse/app/models/category.js
@@ -1,13 +1,13 @@
-import getURL from "discourse-common/lib/get-url";
import discourseComputed, { on } from "discourse-common/utils/decorators";
-import { get } from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import RestModel from "discourse/models/rest";
-import PermissionType from "discourse/models/permission-type";
import { NotificationLevels } from "discourse/lib/notification-levels";
+import PermissionType from "discourse/models/permission-type";
+import RestModel from "discourse/models/rest";
import Site from "discourse/models/site";
import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
+import { get } from "@ember/object";
import { getOwner } from "discourse-common/lib/get-owner";
+import getURL from "discourse-common/lib/get-url";
const STAFF_GROUP_NAME = "staff";
diff --git a/app/assets/javascripts/discourse/app/models/composer.js b/app/assets/javascripts/discourse/app/models/composer.js
index bf594f253ca..271c1ae51e3 100644
--- a/app/assets/javascripts/discourse/app/models/composer.js
+++ b/app/assets/javascripts/discourse/app/models/composer.js
@@ -1,28 +1,28 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { reads, equal, not, or, and } from "@ember/object/computed";
import EmberObject, { set } from "@ember/object";
+import { and, equal, not, or, reads } from "@ember/object/computed";
import { cancel, later, next, throttle } from "@ember/runloop";
-import RestModel from "discourse/models/rest";
-import Topic from "discourse/models/topic";
-import { throwAjaxError } from "discourse/lib/ajax-error";
-import { QUOTE_REGEXP } from "discourse/lib/quote";
-import Draft from "discourse/models/draft";
import discourseComputed, {
observes,
on,
} from "discourse-common/utils/decorators";
import {
+ emailValid,
escapeExpression,
tinyAvatar,
- emailValid,
} from "discourse/lib/utilities";
-import { propertyNotEqual } from "discourse/lib/computed";
+import Draft from "discourse/models/draft";
+import I18n from "I18n";
import { Promise } from "rsvp";
+import { QUOTE_REGEXP } from "discourse/lib/quote";
+import RestModel from "discourse/models/rest";
import Site from "discourse/models/site";
+import Topic from "discourse/models/topic";
import User from "discourse/models/user";
-import deprecated from "discourse-common/lib/deprecated";
import bootbox from "bootbox";
+import deprecated from "discourse-common/lib/deprecated";
+import { isEmpty } from "@ember/utils";
+import { propertyNotEqual } from "discourse/lib/computed";
+import { throwAjaxError } from "discourse/lib/ajax-error";
// The actions the composer can take
export const CREATE_TOPIC = "createTopic",
diff --git a/app/assets/javascripts/discourse/app/models/draft.js b/app/assets/javascripts/discourse/app/models/draft.js
index 25bddd83297..5406c7f9b88 100644
--- a/app/assets/javascripts/discourse/app/models/draft.js
+++ b/app/assets/javascripts/discourse/app/models/draft.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
const Draft = EmberObject.extend();
diff --git a/app/assets/javascripts/discourse/app/models/group-history.js b/app/assets/javascripts/discourse/app/models/group-history.js
index 2b8fb34b214..ef1c6787f1c 100644
--- a/app/assets/javascripts/discourse/app/models/group-history.js
+++ b/app/assets/javascripts/discourse/app/models/group-history.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import RestModel from "discourse/models/rest";
+import discourseComputed from "discourse-common/utils/decorators";
export default RestModel.extend({
@discourseComputed("action")
diff --git a/app/assets/javascripts/discourse/app/models/group.js b/app/assets/javascripts/discourse/app/models/group.js
index 6c6a662f012..a6c587382bc 100644
--- a/app/assets/javascripts/discourse/app/models/group.js
+++ b/app/assets/javascripts/discourse/app/models/group.js
@@ -1,14 +1,14 @@
-import EmberObject from "@ember/object";
-import { equal } from "@ember/object/computed";
-import { isEmpty } from "@ember/utils";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import Category from "discourse/models/category";
+import EmberObject from "@ember/object";
import GroupHistory from "discourse/models/group-history";
+import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import Topic from "discourse/models/topic";
import User from "discourse/models/user";
-import { Promise } from "rsvp";
+import { ajax } from "discourse/lib/ajax";
+import { equal } from "@ember/object/computed";
+import { isEmpty } from "@ember/utils";
const Group = RestModel.extend({
user_count: 0,
diff --git a/app/assets/javascripts/discourse/app/models/invite.js b/app/assets/javascripts/discourse/app/models/invite.js
index aa72a55e8eb..aef88d10ab5 100644
--- a/app/assets/javascripts/discourse/app/models/invite.js
+++ b/app/assets/javascripts/discourse/app/models/invite.js
@@ -1,10 +1,10 @@
import EmberObject from "@ember/object";
+import { Promise } from "rsvp";
+import User from "discourse/models/user";
import { ajax } from "discourse/lib/ajax";
+import { isNone } from "@ember/utils";
import { popupAjaxError } from "discourse/lib/ajax-error";
import { userPath } from "discourse/lib/url";
-import { Promise } from "rsvp";
-import { isNone } from "@ember/utils";
-import User from "discourse/models/user";
const Invite = EmberObject.extend({
rescind() {
diff --git a/app/assets/javascripts/discourse/app/models/live-post-counts.js b/app/assets/javascripts/discourse/app/models/live-post-counts.js
index a95565e6025..bac51ff8250 100644
--- a/app/assets/javascripts/discourse/app/models/live-post-counts.js
+++ b/app/assets/javascripts/discourse/app/models/live-post-counts.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
const LivePostCounts = EmberObject.extend({});
diff --git a/app/assets/javascripts/discourse/app/models/login-method.js b/app/assets/javascripts/discourse/app/models/login-method.js
index 3b1ca37b2a0..db0882f890a 100644
--- a/app/assets/javascripts/discourse/app/models/login-method.js
+++ b/app/assets/javascripts/discourse/app/models/login-method.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import EmberObject from "@ember/object";
-import { updateCsrfToken } from "discourse/lib/ajax";
+import I18n from "I18n";
import { Promise } from "rsvp";
import Session from "discourse/models/session";
import Site from "discourse/models/site";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
+import { updateCsrfToken } from "discourse/lib/ajax";
const LoginMethod = EmberObject.extend({
@discourseComputed
diff --git a/app/assets/javascripts/discourse/app/models/nav-item.js b/app/assets/javascripts/discourse/app/models/nav-item.js
index 3b36b6cdd26..5f74cb68181 100644
--- a/app/assets/javascripts/discourse/app/models/nav-item.js
+++ b/app/assets/javascripts/discourse/app/models/nav-item.js
@@ -1,15 +1,15 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { emojiUnescape } from "discourse/lib/text";
import Category from "discourse/models/category";
import EmberObject from "@ember/object";
-import { reads } from "@ember/object/computed";
-import deprecated from "discourse-common/lib/deprecated";
+import I18n from "I18n";
import Site from "discourse/models/site";
import User from "discourse/models/user";
-import { getOwner } from "discourse-common/lib/get-owner";
import { deepMerge } from "discourse-common/lib/object";
+import deprecated from "discourse-common/lib/deprecated";
+import discourseComputed from "discourse-common/utils/decorators";
+import { emojiUnescape } from "discourse/lib/text";
+import { getOwner } from "discourse-common/lib/get-owner";
+import getURL from "discourse-common/lib/get-url";
+import { reads } from "@ember/object/computed";
const NavItem = EmberObject.extend({
@discourseComputed("name")
diff --git a/app/assets/javascripts/discourse/app/models/permission-type.js b/app/assets/javascripts/discourse/app/models/permission-type.js
index 696f1620346..17df7bd9df3 100644
--- a/app/assets/javascripts/discourse/app/models/permission-type.js
+++ b/app/assets/javascripts/discourse/app/models/permission-type.js
@@ -1,6 +1,6 @@
+import EmberObject from "@ember/object";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import EmberObject from "@ember/object";
export function buildPermissionDescription(id) {
return I18n.t("permission_types." + PermissionType.DESCRIPTION_KEYS[id]);
diff --git a/app/assets/javascripts/discourse/app/models/post-action-type.js b/app/assets/javascripts/discourse/app/models/post-action-type.js
index 35a93b54c5d..9b40783c0a2 100644
--- a/app/assets/javascripts/discourse/app/models/post-action-type.js
+++ b/app/assets/javascripts/discourse/app/models/post-action-type.js
@@ -1,5 +1,5 @@
-import { not } from "@ember/object/computed";
import RestModel from "discourse/models/rest";
+import { not } from "@ember/object/computed";
export const MAX_MESSAGE_LENGTH = 500;
diff --git a/app/assets/javascripts/discourse/app/models/post-stream.js b/app/assets/javascripts/discourse/app/models/post-stream.js
index 42e5da69fea..3ae9c1429af 100644
--- a/app/assets/javascripts/discourse/app/models/post-stream.js
+++ b/app/assets/javascripts/discourse/app/models/post-stream.js
@@ -1,17 +1,17 @@
-import I18n from "I18n";
-import { get } from "@ember/object";
-import { isEmpty } from "@ember/utils";
-import { or, not, and } from "@ember/object/computed";
-import { ajax } from "discourse/lib/ajax";
+import { and, not, or } from "@ember/object/computed";
import DiscourseURL from "discourse/lib/url";
-import RestModel from "discourse/models/rest";
+import I18n from "I18n";
import PostsWithPlaceholders from "discourse/lib/posts-with-placeholders";
-import discourseComputed from "discourse-common/utils/decorators";
-import { loadTopicView } from "discourse/models/topic";
import { Promise } from "rsvp";
+import RestModel from "discourse/models/rest";
import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
import { deepMerge } from "discourse-common/lib/object";
import deprecated from "discourse-common/lib/deprecated";
+import discourseComputed from "discourse-common/utils/decorators";
+import { get } from "@ember/object";
+import { isEmpty } from "@ember/utils";
+import { loadTopicView } from "discourse/models/topic";
export default RestModel.extend({
_identityMap: null,
diff --git a/app/assets/javascripts/discourse/app/models/post.js b/app/assets/javascripts/discourse/app/models/post.js
index 911cca18b66..41dd4c54274 100644
--- a/app/assets/javascripts/discourse/app/models/post.js
+++ b/app/assets/javascripts/discourse/app/models/post.js
@@ -1,23 +1,23 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import EmberObject, { get } from "@ember/object";
-import { isEmpty } from "@ember/utils";
-import { equal, and, or, not } from "@ember/object/computed";
-import { ajax } from "discourse/lib/ajax";
-import RestModel from "discourse/models/rest";
-import { popupAjaxError } from "discourse/lib/ajax-error";
+import { and, equal, not, or } from "@ember/object/computed";
import ActionSummary from "discourse/models/action-summary";
-import { propertyEqual } from "discourse/lib/computed";
-import { postUrl } from "discourse/lib/utilities";
-import { cookAsync } from "discourse/lib/text";
-import { userPath } from "discourse/lib/url";
import Composer from "discourse/models/composer";
+import I18n from "I18n";
import { Promise } from "rsvp";
+import RestModel from "discourse/models/rest";
import Site from "discourse/models/site";
import User from "discourse/models/user";
-import showModal from "discourse/lib/show-modal";
+import { ajax } from "discourse/lib/ajax";
+import { cookAsync } from "discourse/lib/text";
+import discourseComputed from "discourse-common/utils/decorators";
import { fancyTitle } from "discourse/lib/topic-fancy-title";
+import { isEmpty } from "@ember/utils";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { postUrl } from "discourse/lib/utilities";
+import { propertyEqual } from "discourse/lib/computed";
import { resolveShareUrl } from "discourse/helpers/share-url";
+import showModal from "discourse/lib/show-modal";
+import { userPath } from "discourse/lib/url";
const Post = RestModel.extend({
@discourseComputed("url")
diff --git a/app/assets/javascripts/discourse/app/models/rest.js b/app/assets/javascripts/discourse/app/models/rest.js
index 10f3d04b03b..26219a9c48c 100644
--- a/app/assets/javascripts/discourse/app/models/rest.js
+++ b/app/assets/javascripts/discourse/app/models/rest.js
@@ -1,8 +1,8 @@
-import { warn } from "@ember/debug";
-import { equal } from "@ember/object/computed";
import EmberObject from "@ember/object";
import { Promise } from "rsvp";
+import { equal } from "@ember/object/computed";
import { getOwner } from "discourse-common/lib/get-owner";
+import { warn } from "@ember/debug";
const RestModel = EmberObject.extend({
isNew: equal("__state", "new"),
diff --git a/app/assets/javascripts/discourse/app/models/result-set.js b/app/assets/javascripts/discourse/app/models/result-set.js
index 4e7866f86fc..644e75638bc 100644
--- a/app/assets/javascripts/discourse/app/models/result-set.js
+++ b/app/assets/javascripts/discourse/app/models/result-set.js
@@ -1,6 +1,6 @@
import ArrayProxy from "@ember/array/proxy";
-import discourseComputed from "discourse-common/utils/decorators";
import { Promise } from "rsvp";
+import discourseComputed from "discourse-common/utils/decorators";
export default ArrayProxy.extend({
loading: false,
diff --git a/app/assets/javascripts/discourse/app/models/reviewable-history.js b/app/assets/javascripts/discourse/app/models/reviewable-history.js
index bb143b712c9..90484cc6660 100644
--- a/app/assets/javascripts/discourse/app/models/reviewable-history.js
+++ b/app/assets/javascripts/discourse/app/models/reviewable-history.js
@@ -1,5 +1,5 @@
-import { equal } from "@ember/object/computed";
import RestModel from "discourse/models/rest";
+import { equal } from "@ember/object/computed";
export const CREATED = 0;
export const TRANSITIONED_TO = 1;
diff --git a/app/assets/javascripts/discourse/app/models/reviewable.js b/app/assets/javascripts/discourse/app/models/reviewable.js
index a3052414574..47c095bb46a 100644
--- a/app/assets/javascripts/discourse/app/models/reviewable.js
+++ b/app/assets/javascripts/discourse/app/models/reviewable.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
-import RestModel from "discourse/models/rest";
import Category from "discourse/models/category";
+import I18n from "I18n";
import { Promise } from "rsvp";
+import RestModel from "discourse/models/rest";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
export const PENDING = 0;
export const APPROVED = 1;
diff --git a/app/assets/javascripts/discourse/app/models/site.js b/app/assets/javascripts/discourse/app/models/site.js
index 24e483db423..fa59e1cc213 100644
--- a/app/assets/javascripts/discourse/app/models/site.js
+++ b/app/assets/javascripts/discourse/app/models/site.js
@@ -1,15 +1,15 @@
-import discourseComputed from "discourse-common/utils/decorators";
import EmberObject, { get } from "@ember/object";
-import { isEmpty } from "@ember/utils";
import { alias, sort } from "@ember/object/computed";
import Archetype from "discourse/models/archetype";
import PostActionType from "discourse/models/post-action-type";
-import Singleton from "discourse/mixins/singleton";
-import RestModel from "discourse/models/rest";
-import TrustLevel from "discourse/models/trust-level";
import PreloadStore from "discourse/lib/preload-store";
+import RestModel from "discourse/models/rest";
+import Singleton from "discourse/mixins/singleton";
+import TrustLevel from "discourse/models/trust-level";
import deprecated from "discourse-common/lib/deprecated";
+import discourseComputed from "discourse-common/utils/decorators";
import { getOwner } from "discourse-common/lib/get-owner";
+import { isEmpty } from "@ember/utils";
const Site = RestModel.extend({
isReadOnly: alias("is_readonly"),
diff --git a/app/assets/javascripts/discourse/app/models/static-page.js b/app/assets/javascripts/discourse/app/models/static-page.js
index 6d39b9c59c1..38e373dffaf 100644
--- a/app/assets/javascripts/discourse/app/models/static-page.js
+++ b/app/assets/javascripts/discourse/app/models/static-page.js
@@ -1,6 +1,6 @@
import EmberObject from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
import { Promise } from "rsvp";
+import { ajax } from "discourse/lib/ajax";
const StaticPage = EmberObject.extend();
diff --git a/app/assets/javascripts/discourse/app/models/store.js b/app/assets/javascripts/discourse/app/models/store.js
index 7f18d2262d2..aa477b0ee1e 100644
--- a/app/assets/javascripts/discourse/app/models/store.js
+++ b/app/assets/javascripts/discourse/app/models/store.js
@@ -1,11 +1,11 @@
import EmberObject, { set } from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import RestModel from "discourse/models/rest";
-import ResultSet from "discourse/models/result-set";
-import { getRegister } from "discourse-common/lib/get-owner";
-import { underscore } from "@ember/string";
import Category from "discourse/models/category";
import { Promise } from "rsvp";
+import RestModel from "discourse/models/rest";
+import ResultSet from "discourse/models/result-set";
+import { ajax } from "discourse/lib/ajax";
+import { getRegister } from "discourse-common/lib/get-owner";
+import { underscore } from "@ember/string";
let _identityMap;
diff --git a/app/assets/javascripts/discourse/app/models/tag-group.js b/app/assets/javascripts/discourse/app/models/tag-group.js
index d34ddcf7d20..e34e5cae711 100644
--- a/app/assets/javascripts/discourse/app/models/tag-group.js
+++ b/app/assets/javascripts/discourse/app/models/tag-group.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import RestModel from "discourse/models/rest";
import PermissionType from "discourse/models/permission-type";
+import RestModel from "discourse/models/rest";
+import discourseComputed from "discourse-common/utils/decorators";
export default RestModel.extend({
@discourseComputed("permissions")
diff --git a/app/assets/javascripts/discourse/app/models/tag.js b/app/assets/javascripts/discourse/app/models/tag.js
index 03946c9b679..5f514f8db10 100644
--- a/app/assets/javascripts/discourse/app/models/tag.js
+++ b/app/assets/javascripts/discourse/app/models/tag.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import RestModel from "discourse/models/rest";
+import discourseComputed from "discourse-common/utils/decorators";
export default RestModel.extend({
@discourseComputed("count", "pm_count")
diff --git a/app/assets/javascripts/discourse/app/models/topic-details.js b/app/assets/javascripts/discourse/app/models/topic-details.js
index ce2f98363b6..8162a0537d4 100644
--- a/app/assets/javascripts/discourse/app/models/topic-details.js
+++ b/app/assets/javascripts/discourse/app/models/topic-details.js
@@ -1,16 +1,16 @@
-import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import EmberObject from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
+import I18n from "I18n";
+import { NotificationLevels } from "discourse/lib/notification-levels";
+import RestModel from "discourse/models/rest";
import User from "discourse/models/user";
-import getURL from "discourse-common/lib/get-url";
+import { ajax } from "discourse/lib/ajax";
/**
A model representing a Topic's details that aren't always present, such as a list of participants.
When showing topics in lists and such this information should not be required.
**/
-import { NotificationLevels } from "discourse/lib/notification-levels";
-import RestModel from "discourse/models/rest";
+import discourseComputed from "discourse-common/utils/decorators";
+import getURL from "discourse-common/lib/get-url";
const TopicDetails = RestModel.extend({
loaded: false,
diff --git a/app/assets/javascripts/discourse/app/models/topic-list.js b/app/assets/javascripts/discourse/app/models/topic-list.js
index 45020da87f7..0503eca3710 100644
--- a/app/assets/javascripts/discourse/app/models/topic-list.js
+++ b/app/assets/javascripts/discourse/app/models/topic-list.js
@@ -1,13 +1,13 @@
-import getURL from "discourse-common/lib/get-url";
-import { notEmpty } from "@ember/object/computed";
import EmberObject from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import RestModel from "discourse/models/rest";
-import { getOwner } from "discourse-common/lib/get-owner";
import { Promise } from "rsvp";
+import RestModel from "discourse/models/rest";
import Session from "discourse/models/session";
-import { isEmpty } from "@ember/utils";
import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
+import { getOwner } from "discourse-common/lib/get-owner";
+import getURL from "discourse-common/lib/get-url";
+import { isEmpty } from "@ember/utils";
+import { notEmpty } from "@ember/object/computed";
function extractByKey(collection, klass) {
const retval = {};
diff --git a/app/assets/javascripts/discourse/app/models/topic-timer.js b/app/assets/javascripts/discourse/app/models/topic-timer.js
index e6d108a6084..a0685521aa9 100644
--- a/app/assets/javascripts/discourse/app/models/topic-timer.js
+++ b/app/assets/javascripts/discourse/app/models/topic-timer.js
@@ -1,5 +1,5 @@
-import { ajax } from "discourse/lib/ajax";
import RestModel from "discourse/models/rest";
+import { ajax } from "discourse/lib/ajax";
const TopicTimer = RestModel.extend({});
diff --git a/app/assets/javascripts/discourse/app/models/topic-tracking-state.js b/app/assets/javascripts/discourse/app/models/topic-tracking-state.js
index 4d209f5fee7..983818cd40e 100644
--- a/app/assets/javascripts/discourse/app/models/topic-tracking-state.js
+++ b/app/assets/javascripts/discourse/app/models/topic-tracking-state.js
@@ -1,12 +1,12 @@
import EmberObject, { get } from "@ember/object";
-import { isEmpty } from "@ember/utils";
-import { NotificationLevels } from "discourse/lib/notification-levels";
import discourseComputed, { on } from "discourse-common/utils/decorators";
-import PreloadStore from "discourse/lib/preload-store";
import Category from "discourse/models/category";
+import DiscourseURL from "discourse/lib/url";
+import { NotificationLevels } from "discourse/lib/notification-levels";
+import PreloadStore from "discourse/lib/preload-store";
import User from "discourse/models/user";
import { deepEqual } from "discourse-common/lib/object";
-import DiscourseURL from "discourse/lib/url";
+import { isEmpty } from "@ember/utils";
function isNew(topic) {
return (
diff --git a/app/assets/javascripts/discourse/app/models/topic.js b/app/assets/javascripts/discourse/app/models/topic.js
index 5c05172f359..819f8c8ff04 100644
--- a/app/assets/javascripts/discourse/app/models/topic.js
+++ b/app/assets/javascripts/discourse/app/models/topic.js
@@ -1,27 +1,27 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import EmberObject from "@ember/object";
-import { not, notEmpty, equal, and, or } from "@ember/object/computed";
-import { ajax } from "discourse/lib/ajax";
-import { flushMap } from "discourse/models/store";
-import RestModel from "discourse/models/rest";
-import { propertyEqual, fmt } from "discourse/lib/computed";
-import { longDate } from "discourse/lib/formatter";
+import { and, equal, not, notEmpty, or } from "@ember/object/computed";
+import { fmt, propertyEqual } from "discourse/lib/computed";
import ActionSummary from "discourse/models/action-summary";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { emojiUnescape } from "discourse/lib/text";
-import PreloadStore from "discourse/lib/preload-store";
-import { userPath } from "discourse/lib/url";
-import { fancyTitle } from "discourse/lib/topic-fancy-title";
-import discourseComputed from "discourse-common/utils/decorators";
import Category from "discourse/models/category";
-import Session from "discourse/models/session";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import PreloadStore from "discourse/lib/preload-store";
import { Promise } from "rsvp";
+import RestModel from "discourse/models/rest";
+import Session from "discourse/models/session";
import Site from "discourse/models/site";
import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";
import { deepMerge } from "discourse-common/lib/object";
+import discourseComputed from "discourse-common/utils/decorators";
+import { emojiUnescape } from "discourse/lib/text";
+import { fancyTitle } from "discourse/lib/topic-fancy-title";
+import { flushMap } from "discourse/models/store";
+import getURL from "discourse-common/lib/get-url";
+import { longDate } from "discourse/lib/formatter";
+import { popupAjaxError } from "discourse/lib/ajax-error";
import { resolveShareUrl } from "discourse/helpers/share-url";
+import { userPath } from "discourse/lib/url";
export function loadTopicView(topic, args) {
const data = deepMerge({}, args);
diff --git a/app/assets/javascripts/discourse/app/models/user-action-stat.js b/app/assets/javascripts/discourse/app/models/user-action-stat.js
index 2ebde268b36..77394fe3947 100644
--- a/app/assets/javascripts/discourse/app/models/user-action-stat.js
+++ b/app/assets/javascripts/discourse/app/models/user-action-stat.js
@@ -1,6 +1,6 @@
-import discourseComputed from "discourse-common/utils/decorators";
import RestModel from "discourse/models/rest";
import UserAction from "discourse/models/user-action";
+import discourseComputed from "discourse-common/utils/decorators";
import { i18n } from "discourse/lib/computed";
export default RestModel.extend({
diff --git a/app/assets/javascripts/discourse/app/models/user-action.js b/app/assets/javascripts/discourse/app/models/user-action.js
index 5599e56c8b4..2c3762c726d 100644
--- a/app/assets/javascripts/discourse/app/models/user-action.js
+++ b/app/assets/javascripts/discourse/app/models/user-action.js
@@ -1,11 +1,11 @@
+import { and, equal, or } from "@ember/object/computed";
import discourseComputed, { on } from "discourse-common/utils/decorators";
-import { or, equal, and } from "@ember/object/computed";
+import Category from "discourse/models/category";
import RestModel from "discourse/models/rest";
+import User from "discourse/models/user";
import UserActionGroup from "discourse/models/user-action-group";
import { postUrl } from "discourse/lib/utilities";
import { userPath } from "discourse/lib/url";
-import Category from "discourse/models/category";
-import User from "discourse/models/user";
const UserActionTypes = {
likes_given: 1,
diff --git a/app/assets/javascripts/discourse/app/models/user-badge.js b/app/assets/javascripts/discourse/app/models/user-badge.js
index 832730a1b1a..304059d65db 100644
--- a/app/assets/javascripts/discourse/app/models/user-badge.js
+++ b/app/assets/javascripts/discourse/app/models/user-badge.js
@@ -1,10 +1,10 @@
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
import Badge from "discourse/models/badge";
+import EmberObject from "@ember/object";
import { Promise } from "rsvp";
import Topic from "discourse/models/topic";
-import EmberObject from "@ember/object";
import User from "discourse/models/user";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
const UserBadge = EmberObject.extend({
@discourseComputed
diff --git a/app/assets/javascripts/discourse/app/models/user-draft.js b/app/assets/javascripts/discourse/app/models/user-draft.js
index 0bf9a1116cd..44874e9b1ec 100644
--- a/app/assets/javascripts/discourse/app/models/user-draft.js
+++ b/app/assets/javascripts/discourse/app/models/user-draft.js
@@ -1,13 +1,13 @@
+import {
+ NEW_PRIVATE_MESSAGE_KEY,
+ NEW_TOPIC_KEY,
+} from "discourse/models/composer";
import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
import RestModel from "discourse/models/rest";
+import User from "discourse/models/user";
+import discourseComputed from "discourse-common/utils/decorators";
import { postUrl } from "discourse/lib/utilities";
import { userPath } from "discourse/lib/url";
-import User from "discourse/models/user";
-import {
- NEW_TOPIC_KEY,
- NEW_PRIVATE_MESSAGE_KEY,
-} from "discourse/models/composer";
export default RestModel.extend({
@discourseComputed("draft_username")
diff --git a/app/assets/javascripts/discourse/app/models/user-drafts-stream.js b/app/assets/javascripts/discourse/app/models/user-drafts-stream.js
index 6be48165023..90864e13ffc 100644
--- a/app/assets/javascripts/discourse/app/models/user-drafts-stream.js
+++ b/app/assets/javascripts/discourse/app/models/user-drafts-stream.js
@@ -1,16 +1,16 @@
+import {
+ NEW_PRIVATE_MESSAGE_KEY,
+ NEW_TOPIC_KEY,
+} from "discourse/models/composer";
import { A } from "@ember/array";
-import discourseComputed from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
-import { url } from "discourse/lib/computed";
+import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import UserDraft from "discourse/models/user-draft";
+import { ajax } from "discourse/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
import { emojiUnescape } from "discourse/lib/text";
-import { Promise } from "rsvp";
-import {
- NEW_TOPIC_KEY,
- NEW_PRIVATE_MESSAGE_KEY,
-} from "discourse/models/composer";
import { escapeExpression } from "discourse/lib/utilities";
+import { url } from "discourse/lib/computed";
export default RestModel.extend({
loaded: false,
diff --git a/app/assets/javascripts/discourse/app/models/user-posts-stream.js b/app/assets/javascripts/discourse/app/models/user-posts-stream.js
index 825feff0351..b152630bc19 100644
--- a/app/assets/javascripts/discourse/app/models/user-posts-stream.js
+++ b/app/assets/javascripts/discourse/app/models/user-posts-stream.js
@@ -1,9 +1,9 @@
-import { on } from "discourse-common/utils/decorators";
-import { ajax } from "discourse/lib/ajax";
-import { url } from "discourse/lib/computed";
-import UserAction from "discourse/models/user-action";
-import { Promise } from "rsvp";
import EmberObject from "@ember/object";
+import { Promise } from "rsvp";
+import UserAction from "discourse/models/user-action";
+import { ajax } from "discourse/lib/ajax";
+import { on } from "discourse-common/utils/decorators";
+import { url } from "discourse/lib/computed";
export default EmberObject.extend({
loaded: false,
diff --git a/app/assets/javascripts/discourse/app/models/user-stream.js b/app/assets/javascripts/discourse/app/models/user-stream.js
index 14ff2fb4014..b66c95d5169 100644
--- a/app/assets/javascripts/discourse/app/models/user-stream.js
+++ b/app/assets/javascripts/discourse/app/models/user-stream.js
@@ -1,12 +1,12 @@
+import discourseComputed, { on } from "discourse-common/utils/decorators";
import { A } from "@ember/array";
-import { ajax } from "discourse/lib/ajax";
-import { url } from "discourse/lib/computed";
+import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import UserAction from "discourse/models/user-action";
+import { ajax } from "discourse/lib/ajax";
import { emojiUnescape } from "discourse/lib/text";
-import { Promise } from "rsvp";
-import discourseComputed, { on } from "discourse-common/utils/decorators";
import { escapeExpression } from "discourse/lib/utilities";
+import { url } from "discourse/lib/computed";
export default RestModel.extend({
loaded: false,
diff --git a/app/assets/javascripts/discourse/app/models/user.js b/app/assets/javascripts/discourse/app/models/user.js
index f2b78e35ad9..0a1a94e422f 100644
--- a/app/assets/javascripts/discourse/app/models/user.js
+++ b/app/assets/javascripts/discourse/app/models/user.js
@@ -1,35 +1,35 @@
-import getURL, { getURLWithCDN } from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { A } from "@ember/array";
-import { isEmpty } from "@ember/utils";
-import { gt, equal, or } from "@ember/object/computed";
-import EmberObject, { get, computed, getProperties } from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import { url } from "discourse/lib/computed";
-import RestModel from "discourse/models/rest";
-import Bookmark from "discourse/models/bookmark";
-import UserStream from "discourse/models/user-stream";
-import UserPostsStream from "discourse/models/user-posts-stream";
-import Singleton from "discourse/mixins/singleton";
-import { longDate } from "discourse/lib/formatter";
-import discourseComputed from "discourse-common/utils/decorators";
-import Badge from "discourse/models/badge";
-import UserBadge from "discourse/models/user-badge";
-import UserActionStat from "discourse/models/user-action-stat";
-import UserAction from "discourse/models/user-action";
-import UserDraftsStream from "discourse/models/user-drafts-stream";
-import Group from "discourse/models/group";
-import { emojiUnescape } from "discourse/lib/text";
-import PreloadStore from "discourse/lib/preload-store";
-import { defaultHomepage, escapeExpression } from "discourse/lib/utilities";
-import { userPath } from "discourse/lib/url";
-import Category from "discourse/models/category";
-import { Promise } from "rsvp";
-import deprecated from "discourse-common/lib/deprecated";
-import Site from "discourse/models/site";
-import { NotificationLevels } from "discourse/lib/notification-levels";
-import { getOwner } from "discourse-common/lib/get-owner";
+import EmberObject, { computed, get, getProperties } from "@ember/object";
import cookie, { removeCookie } from "discourse/lib/cookie";
+import { defaultHomepage, escapeExpression } from "discourse/lib/utilities";
+import { equal, gt, or } from "@ember/object/computed";
+import getURL, { getURLWithCDN } from "discourse-common/lib/get-url";
+import { A } from "@ember/array";
+import Badge from "discourse/models/badge";
+import Bookmark from "discourse/models/bookmark";
+import Category from "discourse/models/category";
+import Group from "discourse/models/group";
+import I18n from "I18n";
+import { NotificationLevels } from "discourse/lib/notification-levels";
+import PreloadStore from "discourse/lib/preload-store";
+import { Promise } from "rsvp";
+import RestModel from "discourse/models/rest";
+import Singleton from "discourse/mixins/singleton";
+import Site from "discourse/models/site";
+import UserAction from "discourse/models/user-action";
+import UserActionStat from "discourse/models/user-action-stat";
+import UserBadge from "discourse/models/user-badge";
+import UserDraftsStream from "discourse/models/user-drafts-stream";
+import UserPostsStream from "discourse/models/user-posts-stream";
+import UserStream from "discourse/models/user-stream";
+import { ajax } from "discourse/lib/ajax";
+import deprecated from "discourse-common/lib/deprecated";
+import discourseComputed from "discourse-common/utils/decorators";
+import { emojiUnescape } from "discourse/lib/text";
+import { getOwner } from "discourse-common/lib/get-owner";
+import { isEmpty } from "@ember/utils";
+import { longDate } from "discourse/lib/formatter";
+import { url } from "discourse/lib/computed";
+import { userPath } from "discourse/lib/url";
export const SECOND_FACTOR_METHODS = {
TOTP: 1,
diff --git a/app/assets/javascripts/discourse/app/pre-initializers/discourse-bootstrap.js b/app/assets/javascripts/discourse/app/pre-initializers/discourse-bootstrap.js
index 330fbe25542..4ecda523b10 100644
--- a/app/assets/javascripts/discourse/app/pre-initializers/discourse-bootstrap.js
+++ b/app/assets/javascripts/discourse/app/pre-initializers/discourse-bootstrap.js
@@ -1,18 +1,18 @@
-import PreloadStore from "discourse/lib/preload-store";
-import I18n from "I18n";
-import Session from "discourse/models/session";
-import RSVP from "rsvp";
import {
- setEnvironment,
- isTesting,
- isProduction,
isDevelopment,
+ isProduction,
+ isTesting,
+ setEnvironment,
} from "discourse-common/config/environment";
-import { setupURL, setupS3CDN } from "discourse-common/lib/get-url";
+import { setupS3CDN, setupURL } from "discourse-common/lib/get-url";
+import I18n from "I18n";
+import PreloadStore from "discourse/lib/preload-store";
+import RSVP from "rsvp";
+import Session from "discourse/models/session";
import deprecated from "discourse-common/lib/deprecated";
+import { setDefaultOwner } from "discourse-common/lib/get-owner";
import { setIconList } from "discourse-common/lib/icon-library";
import { setURLContainer } from "discourse/lib/url";
-import { setDefaultOwner } from "discourse-common/lib/get-owner";
export default {
name: "discourse-bootstrap",
diff --git a/app/assets/javascripts/discourse/app/pre-initializers/dynamic-route-builders.js b/app/assets/javascripts/discourse/app/pre-initializers/dynamic-route-builders.js
index aada8bab6b7..654d525cc2a 100644
--- a/app/assets/javascripts/discourse/app/pre-initializers/dynamic-route-builders.js
+++ b/app/assets/javascripts/discourse/app/pre-initializers/dynamic-route-builders.js
@@ -1,9 +1,9 @@
+import DiscoverySortableController from "discourse/controllers/discovery-sortable";
+import Site from "discourse/models/site";
+import TagShowRoute from "discourse/routes/tag-show";
+import User from "discourse/models/user";
import buildCategoryRoute from "discourse/routes/build-category-route";
import buildTopicRoute from "discourse/routes/build-topic-route";
-import DiscoverySortableController from "discourse/controllers/discovery-sortable";
-import TagShowRoute from "discourse/routes/tag-show";
-import Site from "discourse/models/site";
-import User from "discourse/models/user";
export default {
after: "inject-discourse-objects",
diff --git a/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js b/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js
index 14ae8e272fb..3e863c33947 100644
--- a/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js
+++ b/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js
@@ -1,15 +1,15 @@
-import Session from "discourse/models/session";
-import KeyValueStore from "discourse/lib/key-value-store";
-import Store from "discourse/models/store";
-import DiscourseLocation from "discourse/lib/discourse-location";
-import SearchService from "discourse/services/search";
import TopicTrackingState, {
startTracking,
} from "discourse/models/topic-tracking-state";
-import ScreenTrack from "discourse/lib/screen-track";
-import Site from "discourse/models/site";
-import User from "discourse/models/user";
+import DiscourseLocation from "discourse/lib/discourse-location";
+import KeyValueStore from "discourse/lib/key-value-store";
import MessageBus from "message-bus-client";
+import ScreenTrack from "discourse/lib/screen-track";
+import SearchService from "discourse/services/search";
+import Session from "discourse/models/session";
+import Site from "discourse/models/site";
+import Store from "discourse/models/store";
+import User from "discourse/models/user";
const ALL_TARGETS = ["controller", "component", "route", "model", "adapter"];
diff --git a/app/assets/javascripts/discourse/app/raw-views/list/post-count-or-badges.js b/app/assets/javascripts/discourse/app/raw-views/list/post-count-or-badges.js
index b93a87bb9e6..5a9573090b7 100644
--- a/app/assets/javascripts/discourse/app/raw-views/list/post-count-or-badges.js
+++ b/app/assets/javascripts/discourse/app/raw-views/list/post-count-or-badges.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import { or, and } from "@ember/object/computed";
+import { and, or } from "@ember/object/computed";
import EmberObject from "@ember/object";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
export default EmberObject.extend({
diff --git a/app/assets/javascripts/discourse/app/raw-views/list/posts-count-column.js b/app/assets/javascripts/discourse/app/raw-views/list/posts-count-column.js
index 1484e812ccb..6f9f953e128 100644
--- a/app/assets/javascripts/discourse/app/raw-views/list/posts-count-column.js
+++ b/app/assets/javascripts/discourse/app/raw-views/list/posts-count-column.js
@@ -1,6 +1,6 @@
+import EmberObject from "@ember/object";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import EmberObject from "@ember/object";
import { fmt } from "discourse/lib/computed";
export default EmberObject.extend({
diff --git a/app/assets/javascripts/discourse/app/raw-views/list/visited-line.js b/app/assets/javascripts/discourse/app/raw-views/list/visited-line.js
index 254631f1dd8..569137bd5b7 100644
--- a/app/assets/javascripts/discourse/app/raw-views/list/visited-line.js
+++ b/app/assets/javascripts/discourse/app/raw-views/list/visited-line.js
@@ -1,5 +1,5 @@
-import discourseComputed from "discourse-common/utils/decorators";
import EmberObject from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
export default EmberObject.extend({
@discourseComputed
diff --git a/app/assets/javascripts/discourse/app/raw-views/topic-list-header-column.js b/app/assets/javascripts/discourse/app/raw-views/topic-list-header-column.js
index 9e2ec5fb2fe..3ce75d3075f 100644
--- a/app/assets/javascripts/discourse/app/raw-views/topic-list-header-column.js
+++ b/app/assets/javascripts/discourse/app/raw-views/topic-list-header-column.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import EmberObject from "@ember/object";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
export default EmberObject.extend({
diff --git a/app/assets/javascripts/discourse/app/raw-views/topic-status.js b/app/assets/javascripts/discourse/app/raw-views/topic-status.js
index 646f22b4d3a..da1e4273d20 100644
--- a/app/assets/javascripts/discourse/app/raw-views/topic-status.js
+++ b/app/assets/javascripts/discourse/app/raw-views/topic-status.js
@@ -1,6 +1,6 @@
+import EmberObject from "@ember/object";
import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
-import EmberObject from "@ember/object";
export default EmberObject.extend({
showDefault: null,
diff --git a/app/assets/javascripts/discourse/app/routes/about.js b/app/assets/javascripts/discourse/app/routes/about.js
index 4a9897ce70d..efc663e0a47 100644
--- a/app/assets/javascripts/discourse/app/routes/about.js
+++ b/app/assets/javascripts/discourse/app/routes/about.js
@@ -1,6 +1,6 @@
+import DiscourseRoute from "discourse/routes/discourse";
import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
-import DiscourseRoute from "discourse/routes/discourse";
export default DiscourseRoute.extend({
model() {
diff --git a/app/assets/javascripts/discourse/app/routes/account-created.js b/app/assets/javascripts/discourse/app/routes/account-created.js
index c3c22c7dad9..04944f21959 100644
--- a/app/assets/javascripts/discourse/app/routes/account-created.js
+++ b/app/assets/javascripts/discourse/app/routes/account-created.js
@@ -1,5 +1,5 @@
-import Route from "@ember/routing/route";
import PreloadStore from "discourse/lib/preload-store";
+import Route from "@ember/routing/route";
export default Route.extend({
setupController(controller) {
diff --git a/app/assets/javascripts/discourse/app/routes/application.js b/app/assets/javascripts/discourse/app/routes/application.js
index 8c8a21c80a0..e355aa92f85 100644
--- a/app/assets/javascripts/discourse/app/routes/application.js
+++ b/app/assets/javascripts/discourse/app/routes/application.js
@@ -1,19 +1,19 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
-import { ajax } from "discourse/lib/ajax";
-import { setting } from "discourse/lib/computed";
-import logout from "discourse/lib/logout";
-import showModal from "discourse/lib/show-modal";
-import OpenComposer from "discourse/mixins/open-composer";
+import DiscourseURL, { userPath } from "discourse/lib/url";
import Category from "discourse/models/category";
-import mobile from "discourse/lib/mobile";
+import Composer from "discourse/models/composer";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
+import OpenComposer from "discourse/mixins/open-composer";
+import { ajax } from "discourse/lib/ajax";
+import bootbox from "bootbox";
import { findAll } from "discourse/models/login-method";
import { getOwner } from "discourse-common/lib/get-owner";
-import DiscourseURL, { userPath } from "discourse/lib/url";
-import Composer from "discourse/models/composer";
+import getURL from "discourse-common/lib/get-url";
+import logout from "discourse/lib/logout";
+import mobile from "discourse/lib/mobile";
import { inject as service } from "@ember/service";
-import bootbox from "bootbox";
+import { setting } from "discourse/lib/computed";
+import showModal from "discourse/lib/show-modal";
function unlessReadOnly(method, message) {
return function () {
diff --git a/app/assets/javascripts/discourse/app/routes/associate-account.js b/app/assets/javascripts/discourse/app/routes/associate-account.js
index c14075811c6..ca1277f750c 100644
--- a/app/assets/javascripts/discourse/app/routes/associate-account.js
+++ b/app/assets/javascripts/discourse/app/routes/associate-account.js
@@ -1,8 +1,8 @@
-import { next } from "@ember/runloop";
import DiscourseRoute from "discourse/routes/discourse";
import { ajax } from "discourse/lib/ajax";
-import showModal from "discourse/lib/show-modal";
+import { next } from "@ember/runloop";
import { popupAjaxError } from "discourse/lib/ajax-error";
+import showModal from "discourse/lib/show-modal";
export default DiscourseRoute.extend({
beforeModel() {
diff --git a/app/assets/javascripts/discourse/app/routes/badges-index.js b/app/assets/javascripts/discourse/app/routes/badges-index.js
index f11e5ca1242..63b2cac55ac 100644
--- a/app/assets/javascripts/discourse/app/routes/badges-index.js
+++ b/app/assets/javascripts/discourse/app/routes/badges-index.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
import Badge from "discourse/models/badge";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
import PreloadStore from "discourse/lib/preload-store";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/badges-show.js b/app/assets/javascripts/discourse/app/routes/badges-show.js
index 1174938c38f..81a05ddeaa3 100644
--- a/app/assets/javascripts/discourse/app/routes/badges-show.js
+++ b/app/assets/javascripts/discourse/app/routes/badges-show.js
@@ -1,7 +1,7 @@
-import DiscourseRoute from "discourse/routes/discourse";
-import UserBadge from "discourse/models/user-badge";
import Badge from "discourse/models/badge";
+import DiscourseRoute from "discourse/routes/discourse";
import PreloadStore from "discourse/lib/preload-store";
+import UserBadge from "discourse/models/user-badge";
import { hash } from "rsvp";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/build-category-route.js b/app/assets/javascripts/discourse/app/routes/build-category-route.js
index 84959b9a6bf..d7e10e764eb 100644
--- a/app/assets/javascripts/discourse/app/routes/build-category-route.js
+++ b/app/assets/javascripts/discourse/app/routes/build-category-route.js
@@ -1,19 +1,19 @@
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
+import { Promise, all } from "rsvp";
+import {
+ changeSort,
+ queryParams,
+ resetParams,
+} from "discourse/controllers/discovery-sortable";
import {
filterQueryParams,
findTopicList,
} from "discourse/routes/build-topic-route";
-import {
- changeSort,
- resetParams,
- queryParams,
-} from "discourse/controllers/discovery-sortable";
-import TopicList from "discourse/models/topic-list";
-import PermissionType from "discourse/models/permission-type";
-import CategoryList from "discourse/models/category-list";
import Category from "discourse/models/category";
-import { Promise, all } from "rsvp";
+import CategoryList from "discourse/models/category-list";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
+import PermissionType from "discourse/models/permission-type";
+import TopicList from "discourse/models/topic-list";
// A helper function to create a category route with parameters
export default (filterArg, params) => {
diff --git a/app/assets/javascripts/discourse/app/routes/build-private-messages-route.js b/app/assets/javascripts/discourse/app/routes/build-private-messages-route.js
index ba7d099bbd2..102e3cf5859 100644
--- a/app/assets/javascripts/discourse/app/routes/build-private-messages-route.js
+++ b/app/assets/javascripts/discourse/app/routes/build-private-messages-route.js
@@ -1,7 +1,7 @@
import I18n from "I18n";
+import UserAction from "discourse/models/user-action";
import UserTopicListRoute from "discourse/routes/user-topic-list";
import { findOrResetCachedTopicList } from "discourse/lib/cached-topic-list";
-import UserAction from "discourse/models/user-action";
// A helper to build a user topic list route
export default (viewName, path, channel) => {
diff --git a/app/assets/javascripts/discourse/app/routes/build-topic-route.js b/app/assets/javascripts/discourse/app/routes/build-topic-route.js
index b526c6af462..6a20e58d0fa 100644
--- a/app/assets/javascripts/discourse/app/routes/build-topic-route.js
+++ b/app/assets/javascripts/discourse/app/routes/build-topic-route.js
@@ -1,17 +1,17 @@
-import { isEmpty } from "@ember/utils";
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
import {
changeSort,
- resetParams,
queryParams,
+ resetParams,
} from "discourse/controllers/discovery-sortable";
-import { defaultHomepage } from "discourse/lib/utilities";
-import Session from "discourse/models/session";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
import { Promise } from "rsvp";
+import Session from "discourse/models/session";
import Site from "discourse/models/site";
-import { inject as service } from "@ember/service";
import { deepEqual } from "discourse-common/lib/object";
+import { defaultHomepage } from "discourse/lib/utilities";
+import { isEmpty } from "@ember/utils";
+import { inject as service } from "@ember/service";
// A helper to build a topic route for a filter
function filterQueryParams(params, defaultParams) {
diff --git a/app/assets/javascripts/discourse/app/routes/discourse.js b/app/assets/javascripts/discourse/app/routes/discourse.js
index aff1f6b2223..8ce296fc63c 100644
--- a/app/assets/javascripts/discourse/app/routes/discourse.js
+++ b/app/assets/javascripts/discourse/app/routes/discourse.js
@@ -1,6 +1,6 @@
-import { once } from "@ember/runloop";
import Composer from "discourse/models/composer";
import Route from "@ember/routing/route";
+import { once } from "@ember/runloop";
import { seenUser } from "discourse/lib/user-presence";
const DiscourseRoute = Route.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/discovery-categories.js b/app/assets/javascripts/discourse/app/routes/discovery-categories.js
index 606664ef303..b496f99e7ef 100644
--- a/app/assets/javascripts/discourse/app/routes/discovery-categories.js
+++ b/app/assets/javascripts/discourse/app/routes/discovery-categories.js
@@ -1,16 +1,16 @@
-import I18n from "I18n";
-import EmberObject from "@ember/object";
-import { next } from "@ember/runloop";
-import DiscourseRoute from "discourse/routes/discourse";
-import showModal from "discourse/lib/show-modal";
-import OpenComposer from "discourse/mixins/open-composer";
import CategoryList from "discourse/models/category-list";
-import { defaultHomepage } from "discourse/lib/utilities";
+import DiscourseRoute from "discourse/routes/discourse";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import OpenComposer from "discourse/mixins/open-composer";
+import PreloadStore from "discourse/lib/preload-store";
+import Site from "discourse/models/site";
import TopicList from "discourse/models/topic-list";
import { ajax } from "discourse/lib/ajax";
-import PreloadStore from "discourse/lib/preload-store";
+import { defaultHomepage } from "discourse/lib/utilities";
import { hash } from "rsvp";
-import Site from "discourse/models/site";
+import { next } from "@ember/runloop";
+import showModal from "discourse/lib/show-modal";
const DiscoveryCategoriesRoute = DiscourseRoute.extend(OpenComposer, {
renderTemplate() {
diff --git a/app/assets/javascripts/discourse/app/routes/discovery.js b/app/assets/javascripts/discourse/app/routes/discovery.js
index a99efc3ca12..0a983301fa9 100644
--- a/app/assets/javascripts/discourse/app/routes/discovery.js
+++ b/app/assets/javascripts/discourse/app/routes/discovery.js
@@ -4,8 +4,8 @@
**/
import DiscourseRoute from "discourse/routes/discourse";
import OpenComposer from "discourse/mixins/open-composer";
-import { scrollTop } from "discourse/mixins/scroll-top";
import User from "discourse/models/user";
+import { scrollTop } from "discourse/mixins/scroll-top";
import { setTopicList } from "discourse/lib/topic-list-tracker";
export default DiscourseRoute.extend(OpenComposer, {
diff --git a/app/assets/javascripts/discourse/app/routes/edit-category.js b/app/assets/javascripts/discourse/app/routes/edit-category.js
index ae8136c4a0e..f9ebcf1255c 100644
--- a/app/assets/javascripts/discourse/app/routes/edit-category.js
+++ b/app/assets/javascripts/discourse/app/routes/edit-category.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
import Category from "discourse/models/category";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
model(params) {
diff --git a/app/assets/javascripts/discourse/app/routes/edit-child-category.js b/app/assets/javascripts/discourse/app/routes/edit-child-category.js
index ae8136c4a0e..f9ebcf1255c 100644
--- a/app/assets/javascripts/discourse/app/routes/edit-child-category.js
+++ b/app/assets/javascripts/discourse/app/routes/edit-child-category.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
import Category from "discourse/models/category";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
model(params) {
diff --git a/app/assets/javascripts/discourse/app/routes/email-login.js b/app/assets/javascripts/discourse/app/routes/email-login.js
index b2e466977a3..a83a484d3a4 100644
--- a/app/assets/javascripts/discourse/app/routes/email-login.js
+++ b/app/assets/javascripts/discourse/app/routes/email-login.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/forgot-password.js b/app/assets/javascripts/discourse/app/routes/forgot-password.js
index fe42fbd9d34..932c63b7bb6 100644
--- a/app/assets/javascripts/discourse/app/routes/forgot-password.js
+++ b/app/assets/javascripts/discourse/app/routes/forgot-password.js
@@ -1,6 +1,6 @@
-import { next } from "@ember/runloop";
-import { defaultHomepage } from "discourse/lib/utilities";
import buildStaticRoute from "discourse/routes/build-static-route";
+import { defaultHomepage } from "discourse/lib/utilities";
+import { next } from "@ember/runloop";
const ForgotPasswordRoute = buildStaticRoute("password-reset");
diff --git a/app/assets/javascripts/discourse/app/routes/full-page-search.js b/app/assets/javascripts/discourse/app/routes/full-page-search.js
index 126b5a076e9..f628bb7998c 100644
--- a/app/assets/javascripts/discourse/app/routes/full-page-search.js
+++ b/app/assets/javascripts/discourse/app/routes/full-page-search.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
-import { ajax } from "discourse/lib/ajax";
import {
- translateResults,
getSearchKey,
isValidSearchTerm,
+ translateResults,
} from "discourse/lib/search";
-import PreloadStore from "discourse/lib/preload-store";
import { getTransient, setTransient } from "discourse/lib/page-tracker";
+import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
+import PreloadStore from "discourse/lib/preload-store";
+import { ajax } from "discourse/lib/ajax";
import { escapeExpression } from "discourse/lib/utilities";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/group-activity-posts.js b/app/assets/javascripts/discourse/app/routes/group-activity-posts.js
index 767f3e028e4..0c805e51cc0 100644
--- a/app/assets/javascripts/discourse/app/routes/group-activity-posts.js
+++ b/app/assets/javascripts/discourse/app/routes/group-activity-posts.js
@@ -1,6 +1,6 @@
+import DiscourseRoute from "discourse/routes/discourse";
import I18n from "I18n";
import { get } from "@ember/object";
-import DiscourseRoute from "discourse/routes/discourse";
export function buildGroupPage(type) {
return DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/group-activity-topics.js b/app/assets/javascripts/discourse/app/routes/group-activity-topics.js
index 2169f7adc24..31e5fde47c0 100644
--- a/app/assets/javascripts/discourse/app/routes/group-activity-topics.js
+++ b/app/assets/javascripts/discourse/app/routes/group-activity-topics.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/group-index.js b/app/assets/javascripts/discourse/app/routes/group-index.js
index 2db84a909eb..fdd634dfa6d 100644
--- a/app/assets/javascripts/discourse/app/routes/group-index.js
+++ b/app/assets/javascripts/discourse/app/routes/group-index.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
-import showModal from "discourse/lib/show-modal";
+import I18n from "I18n";
import { action } from "@ember/object";
+import showModal from "discourse/lib/show-modal";
export default DiscourseRoute.extend({
titleToken() {
diff --git a/app/assets/javascripts/discourse/app/routes/group-manage-categories.js b/app/assets/javascripts/discourse/app/routes/group-manage-categories.js
index e6e30185b60..2523e5f8f5d 100644
--- a/app/assets/javascripts/discourse/app/routes/group-manage-categories.js
+++ b/app/assets/javascripts/discourse/app/routes/group-manage-categories.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/group-manage-interaction.js b/app/assets/javascripts/discourse/app/routes/group-manage-interaction.js
index f8fa57bf59d..ad993fb5cdd 100644
--- a/app/assets/javascripts/discourse/app/routes/group-manage-interaction.js
+++ b/app/assets/javascripts/discourse/app/routes/group-manage-interaction.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/group-manage-logs.js b/app/assets/javascripts/discourse/app/routes/group-manage-logs.js
index cbe7a8c08aa..4cdd9bd0cc9 100644
--- a/app/assets/javascripts/discourse/app/routes/group-manage-logs.js
+++ b/app/assets/javascripts/discourse/app/routes/group-manage-logs.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
titleToken() {
diff --git a/app/assets/javascripts/discourse/app/routes/group-manage-membership.js b/app/assets/javascripts/discourse/app/routes/group-manage-membership.js
index f65567c50f3..b448f867567 100644
--- a/app/assets/javascripts/discourse/app/routes/group-manage-membership.js
+++ b/app/assets/javascripts/discourse/app/routes/group-manage-membership.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/group-manage-profile.js b/app/assets/javascripts/discourse/app/routes/group-manage-profile.js
index e1a76ac8290..1edb6d39d70 100644
--- a/app/assets/javascripts/discourse/app/routes/group-manage-profile.js
+++ b/app/assets/javascripts/discourse/app/routes/group-manage-profile.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/group-manage-tags.js b/app/assets/javascripts/discourse/app/routes/group-manage-tags.js
index b86cd6264f1..6e2523485c7 100644
--- a/app/assets/javascripts/discourse/app/routes/group-manage-tags.js
+++ b/app/assets/javascripts/discourse/app/routes/group-manage-tags.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/group-manage.js b/app/assets/javascripts/discourse/app/routes/group-manage.js
index 12d266476ca..db7ef9a8bcb 100644
--- a/app/assets/javascripts/discourse/app/routes/group-manage.js
+++ b/app/assets/javascripts/discourse/app/routes/group-manage.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/group-messages.js b/app/assets/javascripts/discourse/app/routes/group-messages.js
index 5b4296bca5f..ffd83a263c5 100644
--- a/app/assets/javascripts/discourse/app/routes/group-messages.js
+++ b/app/assets/javascripts/discourse/app/routes/group-messages.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
titleToken() {
diff --git a/app/assets/javascripts/discourse/app/routes/group-permissions.js b/app/assets/javascripts/discourse/app/routes/group-permissions.js
index d907b4e148f..82ba93cac92 100644
--- a/app/assets/javascripts/discourse/app/routes/group-permissions.js
+++ b/app/assets/javascripts/discourse/app/routes/group-permissions.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
import { buildPermissionDescription } from "discourse/models/permission-type";
diff --git a/app/assets/javascripts/discourse/app/routes/group-requests.js b/app/assets/javascripts/discourse/app/routes/group-requests.js
index 42ddf67a994..0c87f2cb5eb 100644
--- a/app/assets/javascripts/discourse/app/routes/group-requests.js
+++ b/app/assets/javascripts/discourse/app/routes/group-requests.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
titleToken() {
diff --git a/app/assets/javascripts/discourse/app/routes/groups-index.js b/app/assets/javascripts/discourse/app/routes/groups-index.js
index 61409311105..41684664ead 100644
--- a/app/assets/javascripts/discourse/app/routes/groups-index.js
+++ b/app/assets/javascripts/discourse/app/routes/groups-index.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
titleToken() {
diff --git a/app/assets/javascripts/discourse/app/routes/groups-new.js b/app/assets/javascripts/discourse/app/routes/groups-new.js
index 1a4e5ce8498..fe375c54595 100644
--- a/app/assets/javascripts/discourse/app/routes/groups-new.js
+++ b/app/assets/javascripts/discourse/app/routes/groups-new.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
import Group from "discourse/models/group";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/invites-show.js b/app/assets/javascripts/discourse/app/routes/invites-show.js
index a2546f2d1d1..d094036fe66 100644
--- a/app/assets/javascripts/discourse/app/routes/invites-show.js
+++ b/app/assets/javascripts/discourse/app/routes/invites-show.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
import PreloadStore from "discourse/lib/preload-store";
import { deepMerge } from "discourse-common/lib/object";
diff --git a/app/assets/javascripts/discourse/app/routes/login.js b/app/assets/javascripts/discourse/app/routes/login.js
index 88dc645f308..bc6766c1a36 100644
--- a/app/assets/javascripts/discourse/app/routes/login.js
+++ b/app/assets/javascripts/discourse/app/routes/login.js
@@ -1,6 +1,6 @@
-import { next } from "@ember/runloop";
import buildStaticRoute from "discourse/routes/build-static-route";
import { defaultHomepage } from "discourse/lib/utilities";
+import { next } from "@ember/runloop";
const LoginRoute = buildStaticRoute("login");
diff --git a/app/assets/javascripts/discourse/app/routes/new-category.js b/app/assets/javascripts/discourse/app/routes/new-category.js
index 0ff104ea25c..5b6816a2928 100644
--- a/app/assets/javascripts/discourse/app/routes/new-category.js
+++ b/app/assets/javascripts/discourse/app/routes/new-category.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
-import { SEARCH_PRIORITIES } from "discourse/lib/constants";
+import I18n from "I18n";
import { Promise } from "rsvp";
+import { SEARCH_PRIORITIES } from "discourse/lib/constants";
export default DiscourseRoute.extend({
model() {
diff --git a/app/assets/javascripts/discourse/app/routes/new-message.js b/app/assets/javascripts/discourse/app/routes/new-message.js
index be40e455923..04c3be6bc28 100644
--- a/app/assets/javascripts/discourse/app/routes/new-message.js
+++ b/app/assets/javascripts/discourse/app/routes/new-message.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { next } from "@ember/runloop";
import DiscourseRoute from "discourse/routes/discourse";
-import User from "discourse/models/user";
import Group from "discourse/models/group";
+import I18n from "I18n";
+import User from "discourse/models/user";
import bootbox from "bootbox";
import cookie from "discourse/lib/cookie";
+import { next } from "@ember/runloop";
export default DiscourseRoute.extend({
beforeModel(transition) {
diff --git a/app/assets/javascripts/discourse/app/routes/new-topic.js b/app/assets/javascripts/discourse/app/routes/new-topic.js
index 538254dff0c..abf30681a7c 100644
--- a/app/assets/javascripts/discourse/app/routes/new-topic.js
+++ b/app/assets/javascripts/discourse/app/routes/new-topic.js
@@ -1,7 +1,7 @@
-import { next } from "@ember/runloop";
-import DiscourseRoute from "discourse/routes/discourse";
import Category from "discourse/models/category";
+import DiscourseRoute from "discourse/routes/discourse";
import cookie from "discourse/lib/cookie";
+import { next } from "@ember/runloop";
export default DiscourseRoute.extend({
beforeModel(transition) {
diff --git a/app/assets/javascripts/discourse/app/routes/password-reset.js b/app/assets/javascripts/discourse/app/routes/password-reset.js
index dca1f8ac0dd..9ab12b44423 100644
--- a/app/assets/javascripts/discourse/app/routes/password-reset.js
+++ b/app/assets/javascripts/discourse/app/routes/password-reset.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
import PreloadStore from "discourse/lib/preload-store";
import { ajax } from "discourse/lib/ajax";
-import { userPath } from "discourse/lib/url";
import { deepMerge } from "discourse-common/lib/object";
+import { userPath } from "discourse/lib/url";
export default DiscourseRoute.extend({
titleToken() {
diff --git a/app/assets/javascripts/discourse/app/routes/preferences-account.js b/app/assets/javascripts/discourse/app/routes/preferences-account.js
index 7e2fee5b557..a56664daf65 100644
--- a/app/assets/javascripts/discourse/app/routes/preferences-account.js
+++ b/app/assets/javascripts/discourse/app/routes/preferences-account.js
@@ -1,6 +1,6 @@
-import showModal from "discourse/lib/show-modal";
-import UserBadge from "discourse/models/user-badge";
import RestrictedUserRoute from "discourse/routes/restricted-user";
+import UserBadge from "discourse/models/user-badge";
+import showModal from "discourse/lib/show-modal";
export default RestrictedUserRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/review.js b/app/assets/javascripts/discourse/app/routes/review.js
index dbb1204369b..573150584db 100644
--- a/app/assets/javascripts/discourse/app/routes/review.js
+++ b/app/assets/javascripts/discourse/app/routes/review.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
titleToken() {
diff --git a/app/assets/javascripts/discourse/app/routes/signup.js b/app/assets/javascripts/discourse/app/routes/signup.js
index 2130250a0ed..f46e3c544ef 100644
--- a/app/assets/javascripts/discourse/app/routes/signup.js
+++ b/app/assets/javascripts/discourse/app/routes/signup.js
@@ -1,5 +1,5 @@
-import { next } from "@ember/runloop";
import buildStaticRoute from "discourse/routes/build-static-route";
+import { next } from "@ember/runloop";
const SignupRoute = buildStaticRoute("signup");
diff --git a/app/assets/javascripts/discourse/app/routes/tag-groups-new.js b/app/assets/javascripts/discourse/app/routes/tag-groups-new.js
index e7e27caa3d6..8df2516fb6b 100644
--- a/app/assets/javascripts/discourse/app/routes/tag-groups-new.js
+++ b/app/assets/javascripts/discourse/app/routes/tag-groups-new.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/tag-groups.js b/app/assets/javascripts/discourse/app/routes/tag-groups.js
index e0d9ff6798c..53e95088e15 100644
--- a/app/assets/javascripts/discourse/app/routes/tag-groups.js
+++ b/app/assets/javascripts/discourse/app/routes/tag-groups.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
showFooter: true,
diff --git a/app/assets/javascripts/discourse/app/routes/tag-show.js b/app/assets/javascripts/discourse/app/routes/tag-show.js
index 565c4ca23f1..bc07ea23e3d 100644
--- a/app/assets/javascripts/discourse/app/routes/tag-show.js
+++ b/app/assets/javascripts/discourse/app/routes/tag-show.js
@@ -1,21 +1,21 @@
-import { makeArray } from "discourse-common/lib/helpers";
-import I18n from "I18n";
-import DiscourseRoute from "discourse/routes/discourse";
-import Composer from "discourse/models/composer";
-import showModal from "discourse/lib/show-modal";
import {
filterQueryParams,
findTopicList,
} from "discourse/routes/build-topic-route";
import {
- resetParams,
queryParams,
+ resetParams,
} from "discourse/controllers/discovery-sortable";
-import PermissionType from "discourse/models/permission-type";
import Category from "discourse/models/category";
+import Composer from "discourse/models/composer";
+import DiscourseRoute from "discourse/routes/discourse";
import FilterModeMixin from "discourse/mixins/filter-mode";
+import I18n from "I18n";
+import PermissionType from "discourse/models/permission-type";
import { escapeExpression } from "discourse/lib/utilities";
+import { makeArray } from "discourse-common/lib/helpers";
import { setTopicList } from "discourse/lib/topic-list-tracker";
+import showModal from "discourse/lib/show-modal";
export default DiscourseRoute.extend(FilterModeMixin, {
navMode: "latest",
diff --git a/app/assets/javascripts/discourse/app/routes/tags-index.js b/app/assets/javascripts/discourse/app/routes/tags-index.js
index d33acb9bbf9..12409d95765 100644
--- a/app/assets/javascripts/discourse/app/routes/tags-index.js
+++ b/app/assets/javascripts/discourse/app/routes/tags-index.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
import Tag from "discourse/models/tag";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/topic-by-slug-or-id.js b/app/assets/javascripts/discourse/app/routes/topic-by-slug-or-id.js
index 539aa4b4e48..0cfe24473fe 100644
--- a/app/assets/javascripts/discourse/app/routes/topic-by-slug-or-id.js
+++ b/app/assets/javascripts/discourse/app/routes/topic-by-slug-or-id.js
@@ -1,5 +1,5 @@
-import DiscourseRoute from "discourse/routes/discourse";
import Topic, { ID_CONSTRAINT } from "discourse/models/topic";
+import DiscourseRoute from "discourse/routes/discourse";
import DiscourseURL from "discourse/lib/url";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/topic-from-params.js b/app/assets/javascripts/discourse/app/routes/topic-from-params.js
index d2818b12fc6..35fd8b40dca 100644
--- a/app/assets/javascripts/discourse/app/routes/topic-from-params.js
+++ b/app/assets/javascripts/discourse/app/routes/topic-from-params.js
@@ -1,9 +1,9 @@
-import { isEmpty } from "@ember/utils";
-import { schedule } from "@ember/runloop";
import DiscourseRoute from "discourse/routes/discourse";
import DiscourseURL from "discourse/lib/url";
import Draft from "discourse/models/draft";
+import { isEmpty } from "@ember/utils";
import { isTesting } from "discourse-common/config/environment";
+import { schedule } from "@ember/runloop";
// This route is used for retrieving a topic based on params
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/topic.js b/app/assets/javascripts/discourse/app/routes/topic.js
index 2653598c89c..06c1351a859 100644
--- a/app/assets/javascripts/discourse/app/routes/topic.js
+++ b/app/assets/javascripts/discourse/app/routes/topic.js
@@ -1,11 +1,11 @@
-import { get } from "@ember/object";
-import { isEmpty } from "@ember/utils";
import { cancel, later, schedule } from "@ember/runloop";
import DiscourseRoute from "discourse/routes/discourse";
import DiscourseURL from "discourse/lib/url";
import { ID_CONSTRAINT } from "discourse/models/topic";
-import { setTopicId } from "discourse/lib/topic-list-tracker";
+import { get } from "@ember/object";
+import { isEmpty } from "@ember/utils";
import { inject as service } from "@ember/service";
+import { setTopicId } from "discourse/lib/topic-list-tracker";
import showModal from "discourse/lib/show-modal";
const SCROLL_DELAY = 500;
diff --git a/app/assets/javascripts/discourse/app/routes/unknown.js b/app/assets/javascripts/discourse/app/routes/unknown.js
index 3365d463ee3..81eafa6359c 100644
--- a/app/assets/javascripts/discourse/app/routes/unknown.js
+++ b/app/assets/javascripts/discourse/app/routes/unknown.js
@@ -1,6 +1,6 @@
-import { ajax } from "discourse/lib/ajax";
-import DiscourseURL from "discourse/lib/url";
import DiscourseRoute from "discourse/routes/discourse";
+import DiscourseURL from "discourse/lib/url";
+import { ajax } from "discourse/lib/ajax";
export default DiscourseRoute.extend({
model(params, transition) {
diff --git a/app/assets/javascripts/discourse/app/routes/user-activity-likes-given.js b/app/assets/javascripts/discourse/app/routes/user-activity-likes-given.js
index 4b599e9718b..6c3ef6b0024 100644
--- a/app/assets/javascripts/discourse/app/routes/user-activity-likes-given.js
+++ b/app/assets/javascripts/discourse/app/routes/user-activity-likes-given.js
@@ -1,5 +1,5 @@
-import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
+import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
export default UserActivityStreamRoute.extend({
userActionType: UserAction.TYPES["likes_given"],
diff --git a/app/assets/javascripts/discourse/app/routes/user-activity-pending.js b/app/assets/javascripts/discourse/app/routes/user-activity-pending.js
index 2f22c7e5493..e5b56331647 100644
--- a/app/assets/javascripts/discourse/app/routes/user-activity-pending.js
+++ b/app/assets/javascripts/discourse/app/routes/user-activity-pending.js
@@ -1,5 +1,5 @@
-import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
+import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
export default UserActivityStreamRoute.extend({
userActionType: UserAction.TYPES.pending,
diff --git a/app/assets/javascripts/discourse/app/routes/user-activity-replies.js b/app/assets/javascripts/discourse/app/routes/user-activity-replies.js
index d1fe8bf2641..ec530a4acdb 100644
--- a/app/assets/javascripts/discourse/app/routes/user-activity-replies.js
+++ b/app/assets/javascripts/discourse/app/routes/user-activity-replies.js
@@ -1,5 +1,5 @@
-import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
+import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
export default UserActivityStreamRoute.extend({
userActionType: UserAction.TYPES["posts"],
diff --git a/app/assets/javascripts/discourse/app/routes/user-activity-topics.js b/app/assets/javascripts/discourse/app/routes/user-activity-topics.js
index 108193cb09f..3e736f35145 100644
--- a/app/assets/javascripts/discourse/app/routes/user-activity-topics.js
+++ b/app/assets/javascripts/discourse/app/routes/user-activity-topics.js
@@ -1,5 +1,5 @@
-import UserTopicListRoute from "discourse/routes/user-topic-list";
import UserAction from "discourse/models/user-action";
+import UserTopicListRoute from "discourse/routes/user-topic-list";
export default UserTopicListRoute.extend({
userActionType: UserAction.TYPES.topics,
diff --git a/app/assets/javascripts/discourse/app/routes/user-badges.js b/app/assets/javascripts/discourse/app/routes/user-badges.js
index c2b02b3b951..3f2d04421a2 100644
--- a/app/assets/javascripts/discourse/app/routes/user-badges.js
+++ b/app/assets/javascripts/discourse/app/routes/user-badges.js
@@ -1,6 +1,6 @@
import DiscourseRoute from "discourse/routes/discourse";
-import ViewingActionType from "discourse/mixins/viewing-action-type";
import UserBadge from "discourse/models/user-badge";
+import ViewingActionType from "discourse/mixins/viewing-action-type";
export default DiscourseRoute.extend(ViewingActionType, {
model() {
diff --git a/app/assets/javascripts/discourse/app/routes/user-invited-show.js b/app/assets/javascripts/discourse/app/routes/user-invited-show.js
index 88d93a5509f..aaac65bb68d 100644
--- a/app/assets/javascripts/discourse/app/routes/user-invited-show.js
+++ b/app/assets/javascripts/discourse/app/routes/user-invited-show.js
@@ -1,7 +1,7 @@
import DiscourseRoute from "discourse/routes/discourse";
import Invite from "discourse/models/invite";
-import showModal from "discourse/lib/show-modal";
import { getAbsoluteURL } from "discourse-common/lib/get-url";
+import showModal from "discourse/lib/show-modal";
export default DiscourseRoute.extend({
model(params) {
diff --git a/app/assets/javascripts/discourse/app/routes/user-notifications-edits.js b/app/assets/javascripts/discourse/app/routes/user-notifications-edits.js
index 134da934da5..8be7b15b7bb 100644
--- a/app/assets/javascripts/discourse/app/routes/user-notifications-edits.js
+++ b/app/assets/javascripts/discourse/app/routes/user-notifications-edits.js
@@ -1,5 +1,5 @@
-import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
+import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
export default UserActivityStreamRoute.extend({
userActionType: UserAction.TYPES["edits"],
diff --git a/app/assets/javascripts/discourse/app/routes/user-notifications-likes-received.js b/app/assets/javascripts/discourse/app/routes/user-notifications-likes-received.js
index 7206e7705d7..1bfaa46b844 100644
--- a/app/assets/javascripts/discourse/app/routes/user-notifications-likes-received.js
+++ b/app/assets/javascripts/discourse/app/routes/user-notifications-likes-received.js
@@ -1,5 +1,5 @@
-import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
+import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
export default UserActivityStreamRoute.extend({
userActionType: UserAction.TYPES["likes_received"],
diff --git a/app/assets/javascripts/discourse/app/routes/user-notifications-mentions.js b/app/assets/javascripts/discourse/app/routes/user-notifications-mentions.js
index 0c212babc76..2d8c2622da0 100644
--- a/app/assets/javascripts/discourse/app/routes/user-notifications-mentions.js
+++ b/app/assets/javascripts/discourse/app/routes/user-notifications-mentions.js
@@ -1,5 +1,5 @@
-import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
+import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
export default UserActivityStreamRoute.extend({
userActionType: UserAction.TYPES["mentions"],
diff --git a/app/assets/javascripts/discourse/app/routes/user-notifications-responses.js b/app/assets/javascripts/discourse/app/routes/user-notifications-responses.js
index 271373e0b12..52604ccdc54 100644
--- a/app/assets/javascripts/discourse/app/routes/user-notifications-responses.js
+++ b/app/assets/javascripts/discourse/app/routes/user-notifications-responses.js
@@ -1,5 +1,5 @@
-import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserAction from "discourse/models/user-action";
+import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
export default UserActivityStreamRoute.extend({
userActionType: UserAction.TYPES["replies"],
diff --git a/app/assets/javascripts/discourse/app/routes/user-private-messages-tags.js b/app/assets/javascripts/discourse/app/routes/user-private-messages-tags.js
index 1ce81b56cf0..3cbda900f14 100644
--- a/app/assets/javascripts/discourse/app/routes/user-private-messages-tags.js
+++ b/app/assets/javascripts/discourse/app/routes/user-private-messages-tags.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import EmberObject from "@ember/object";
import DiscourseRoute from "discourse/routes/discourse";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
import { popupAjaxError } from "discourse/lib/ajax-error";
diff --git a/app/assets/javascripts/discourse/app/routes/user-private-messages.js b/app/assets/javascripts/discourse/app/routes/user-private-messages.js
index b9e22f77824..49851427c3f 100644
--- a/app/assets/javascripts/discourse/app/routes/user-private-messages.js
+++ b/app/assets/javascripts/discourse/app/routes/user-private-messages.js
@@ -1,6 +1,6 @@
+import Composer from "discourse/models/composer";
import DiscourseRoute from "discourse/routes/discourse";
import Draft from "discourse/models/draft";
-import Composer from "discourse/models/composer";
export default DiscourseRoute.extend({
renderTemplate() {
diff --git a/app/assets/javascripts/discourse/app/routes/user.js b/app/assets/javascripts/discourse/app/routes/user.js
index c95ead49695..b8f7437d31f 100644
--- a/app/assets/javascripts/discourse/app/routes/user.js
+++ b/app/assets/javascripts/discourse/app/routes/user.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
import User from "discourse/models/user";
export default DiscourseRoute.extend({
diff --git a/app/assets/javascripts/discourse/app/routes/users.js b/app/assets/javascripts/discourse/app/routes/users.js
index 4dad9ebbe68..c055d4e2cc9 100644
--- a/app/assets/javascripts/discourse/app/routes/users.js
+++ b/app/assets/javascripts/discourse/app/routes/users.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DiscourseRoute from "discourse/routes/discourse";
+import I18n from "I18n";
export default DiscourseRoute.extend({
queryParams: {
diff --git a/app/assets/javascripts/discourse/app/services/app-events.js b/app/assets/javascripts/discourse/app/services/app-events.js
index 9e738afecb8..3e639e4b16a 100644
--- a/app/assets/javascripts/discourse/app/services/app-events.js
+++ b/app/assets/javascripts/discourse/app/services/app-events.js
@@ -1,6 +1,6 @@
-import deprecated from "discourse-common/lib/deprecated";
import Evented from "@ember/object/evented";
import Service from "@ember/service";
+import deprecated from "discourse-common/lib/deprecated";
let _events = {};
diff --git a/app/assets/javascripts/discourse/app/services/logs-notice.js b/app/assets/javascripts/discourse/app/services/logs-notice.js
index a3334aadc87..6c77e7c6b89 100644
--- a/app/assets/javascripts/discourse/app/services/logs-notice.js
+++ b/app/assets/javascripts/discourse/app/services/logs-notice.js
@@ -1,13 +1,13 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import EmberObject from "@ember/object";
import discourseComputed, {
- on,
observes,
+ on,
} from "discourse-common/utils/decorators";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import { autoUpdatingRelativeAge } from "discourse/lib/formatter";
+import getURL from "discourse-common/lib/get-url";
import { htmlSafe } from "@ember/template";
+import { isEmpty } from "@ember/utils";
const LOGS_NOTICE_KEY = "logs-notice-text";
diff --git a/app/assets/javascripts/discourse/app/services/theme-settings.js b/app/assets/javascripts/discourse/app/services/theme-settings.js
index 88cc4f736dc..3a1afbdf223 100644
--- a/app/assets/javascripts/discourse/app/services/theme-settings.js
+++ b/app/assets/javascripts/discourse/app/services/theme-settings.js
@@ -1,5 +1,5 @@
-import { get } from "@ember/object";
import Service from "@ember/service";
+import { get } from "@ember/object";
export default Service.extend({
settings: null,
diff --git a/app/assets/javascripts/discourse/app/widgets/actions-summary.js b/app/assets/javascripts/discourse/app/widgets/actions-summary.js
index faefd2c5590..16f6be54edd 100644
--- a/app/assets/javascripts/discourse/app/widgets/actions-summary.js
+++ b/app/assets/javascripts/discourse/app/widgets/actions-summary.js
@@ -1,10 +1,10 @@
-import getURL from "discourse-common/lib/get-url";
import I18n from "I18n";
-import { createWidget } from "discourse/widgets/widget";
import { avatarFor } from "discourse/widgets/post";
+import { createWidget } from "discourse/widgets/widget";
+import getURL from "discourse-common/lib/get-url";
import { h } from "virtual-dom";
-import { userPath } from "discourse/lib/url";
import hbs from "discourse/widgets/hbs-compiler";
+import { userPath } from "discourse/lib/url";
export function smallUserAtts(user) {
return {
diff --git a/app/assets/javascripts/discourse/app/widgets/avatar-flair.js b/app/assets/javascripts/discourse/app/widgets/avatar-flair.js
index 4e1c5f06960..5aafe34de9f 100644
--- a/app/assets/javascripts/discourse/app/widgets/avatar-flair.js
+++ b/app/assets/javascripts/discourse/app/widgets/avatar-flair.js
@@ -1,5 +1,5 @@
+import { convertIconClass, iconNode } from "discourse-common/lib/icon-library";
import { createWidget } from "discourse/widgets/widget";
-import { iconNode, convertIconClass } from "discourse-common/lib/icon-library";
import { escapeExpression } from "discourse/lib/utilities";
createWidget("avatar-flair", {
diff --git a/app/assets/javascripts/discourse/app/widgets/bookmark-reminder-notification-item.js b/app/assets/javascripts/discourse/app/widgets/bookmark-reminder-notification-item.js
index f923e8e0cd5..5dd5c2c3141 100644
--- a/app/assets/javascripts/discourse/app/widgets/bookmark-reminder-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/bookmark-reminder-notification-item.js
@@ -1,6 +1,6 @@
+import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import I18n from "I18n";
import { createWidgetFrom } from "discourse/widgets/widget";
-import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import { formatUsername } from "discourse/lib/utilities";
createWidgetFrom(
diff --git a/app/assets/javascripts/discourse/app/widgets/button.js b/app/assets/javascripts/discourse/app/widgets/button.js
index 82e706a7d0f..413d01ba282 100644
--- a/app/assets/javascripts/discourse/app/widgets/button.js
+++ b/app/assets/javascripts/discourse/app/widgets/button.js
@@ -1,8 +1,8 @@
+import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import { createWidget } from "discourse/widgets/widget";
-import { iconNode } from "discourse-common/lib/icon-library";
import { h } from "virtual-dom";
-import DiscourseURL from "discourse/lib/url";
+import { iconNode } from "discourse-common/lib/icon-library";
export const ButtonClass = {
tagName: "button.widget-button.btn",
diff --git a/app/assets/javascripts/discourse/app/widgets/component-connector.js b/app/assets/javascripts/discourse/app/widgets/component-connector.js
index db52456adc4..8799d2770f9 100644
--- a/app/assets/javascripts/discourse/app/widgets/component-connector.js
+++ b/app/assets/javascripts/discourse/app/widgets/component-connector.js
@@ -1,5 +1,5 @@
-import { scheduleOnce } from "@ember/runloop";
import { getOwner } from "@ember/application";
+import { scheduleOnce } from "@ember/runloop";
export default class ComponentConnector {
constructor(widget, componentName, opts, trackedProperties) {
diff --git a/app/assets/javascripts/discourse/app/widgets/connector.js b/app/assets/javascripts/discourse/app/widgets/connector.js
index 25c6e8e852d..7e08a18e230 100644
--- a/app/assets/javascripts/discourse/app/widgets/connector.js
+++ b/app/assets/javascripts/discourse/app/widgets/connector.js
@@ -1,5 +1,5 @@
-import { next } from "@ember/runloop";
import { getOwner } from "@ember/application";
+import { next } from "@ember/runloop";
export default class Connector {
constructor(widget, opts) {
diff --git a/app/assets/javascripts/discourse/app/widgets/custom-notification-item.js b/app/assets/javascripts/discourse/app/widgets/custom-notification-item.js
index 2f395a75ed1..72c8dc62694 100644
--- a/app/assets/javascripts/discourse/app/widgets/custom-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/custom-notification-item.js
@@ -1,6 +1,6 @@
+import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import I18n from "I18n";
import { createWidgetFrom } from "discourse/widgets/widget";
-import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import { formatUsername } from "discourse/lib/utilities";
import { iconNode } from "discourse-common/lib/icon-library";
diff --git a/app/assets/javascripts/discourse/app/widgets/decorator-helper.js b/app/assets/javascripts/discourse/app/widgets/decorator-helper.js
index 7c67d99ed9e..fcd58cba038 100644
--- a/app/assets/javascripts/discourse/app/widgets/decorator-helper.js
+++ b/app/assets/javascripts/discourse/app/widgets/decorator-helper.js
@@ -1,7 +1,7 @@
import Connector from "discourse/widgets/connector";
-import { h } from "virtual-dom";
import PostCooked from "discourse/widgets/post-cooked";
import RawHtml from "discourse/widgets/raw-html";
+import { h } from "virtual-dom";
class DecoratorHelper {
constructor(widget, attrs, state) {
diff --git a/app/assets/javascripts/discourse/app/widgets/default-notification-item.js b/app/assets/javascripts/discourse/app/widgets/default-notification-item.js
index a935121d131..1e0974904a8 100644
--- a/app/assets/javascripts/discourse/app/widgets/default-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/default-notification-item.js
@@ -1,19 +1,19 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
-import RawHtml from "discourse/widgets/raw-html";
-import { createWidget } from "discourse/widgets/widget";
-import { h } from "virtual-dom";
-import { emojiUnescape } from "discourse/lib/text";
+import DiscourseURL, { userPath } from "discourse/lib/url";
+import { ajax, setTransientHeader } from "discourse/lib/ajax";
import {
- postUrl,
escapeExpression,
formatUsername,
+ postUrl,
} from "discourse/lib/utilities";
-import DiscourseURL, { userPath } from "discourse/lib/url";
-import { iconNode } from "discourse-common/lib/icon-library";
-import { ajax, setTransientHeader } from "discourse/lib/ajax";
+import I18n from "I18n";
+import RawHtml from "discourse/widgets/raw-html";
+import { createWidget } from "discourse/widgets/widget";
+import { emojiUnescape } from "discourse/lib/text";
import getURL from "discourse-common/lib/get-url";
+import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
+import { isEmpty } from "@ember/utils";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
export const DefaultNotificationItem = createWidget(
"default-notification-item",
diff --git a/app/assets/javascripts/discourse/app/widgets/embedded-post.js b/app/assets/javascripts/discourse/app/widgets/embedded-post.js
index 7e00cf04db5..a723373454f 100644
--- a/app/assets/javascripts/discourse/app/widgets/embedded-post.js
+++ b/app/assets/javascripts/discourse/app/widgets/embedded-post.js
@@ -1,8 +1,8 @@
-import PostCooked from "discourse/widgets/post-cooked";
import DecoratorHelper from "discourse/widgets/decorator-helper";
+import DiscourseURL from "discourse/lib/url";
+import PostCooked from "discourse/widgets/post-cooked";
import { createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";
-import DiscourseURL from "discourse/lib/url";
import hbs from "discourse/widgets/hbs-compiler";
createWidget("post-link-arrow", {
diff --git a/app/assets/javascripts/discourse/app/widgets/emoji.js b/app/assets/javascripts/discourse/app/widgets/emoji.js
index 3c2b5e3b320..d1185ae9d5c 100644
--- a/app/assets/javascripts/discourse/app/widgets/emoji.js
+++ b/app/assets/javascripts/discourse/app/widgets/emoji.js
@@ -1,6 +1,6 @@
-import { createWidget } from "discourse/widgets/widget";
-import { emojiUrlFor, emojiUnescape } from "discourse/lib/text";
+import { emojiUnescape, emojiUrlFor } from "discourse/lib/text";
import RawHtml from "discourse/widgets/raw-html";
+import { createWidget } from "discourse/widgets/widget";
import { escapeExpression } from "discourse/lib/utilities";
export function replaceEmoji(str) {
diff --git a/app/assets/javascripts/discourse/app/widgets/footer-nav.js b/app/assets/javascripts/discourse/app/widgets/footer-nav.js
index 0d57be4973f..1a61ad34cc2 100644
--- a/app/assets/javascripts/discourse/app/widgets/footer-nav.js
+++ b/app/assets/javascripts/discourse/app/widgets/footer-nav.js
@@ -1,5 +1,5 @@
-import { createWidget } from "discourse/widgets/widget";
import { isAppWebview, postRNWebviewMessage } from "discourse/lib/utilities";
+import { createWidget } from "discourse/widgets/widget";
createWidget("footer-nav", {
tagName: "div.footer-nav-widget",
diff --git a/app/assets/javascripts/discourse/app/widgets/group-message-summary-notification-item.js b/app/assets/javascripts/discourse/app/widgets/group-message-summary-notification-item.js
index c005ec0a4f9..03b3fea88a6 100644
--- a/app/assets/javascripts/discourse/app/widgets/group-message-summary-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/group-message-summary-notification-item.js
@@ -1,6 +1,6 @@
+import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import I18n from "I18n";
import { createWidgetFrom } from "discourse/widgets/widget";
-import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
createWidgetFrom(
DefaultNotificationItem,
diff --git a/app/assets/javascripts/discourse/app/widgets/hamburger-categories.js b/app/assets/javascripts/discourse/app/widgets/hamburger-categories.js
index 3c7de57033e..8ef945c88b2 100644
--- a/app/assets/javascripts/discourse/app/widgets/hamburger-categories.js
+++ b/app/assets/javascripts/discourse/app/widgets/hamburger-categories.js
@@ -1,9 +1,9 @@
-import getURL from "discourse-common/lib/get-url";
+import Category from "discourse/models/category";
import I18n from "I18n";
import { createWidget } from "discourse/widgets/widget";
+import getURL from "discourse-common/lib/get-url";
import { h } from "virtual-dom";
import { number } from "discourse/lib/formatter";
-import Category from "discourse/models/category";
createWidget("hamburger-category", {
tagName: "li.category-link",
diff --git a/app/assets/javascripts/discourse/app/widgets/hamburger-menu.js b/app/assets/javascripts/discourse/app/widgets/hamburger-menu.js
index b13a698a4ee..b7a044358c7 100644
--- a/app/assets/javascripts/discourse/app/widgets/hamburger-menu.js
+++ b/app/assets/javascripts/discourse/app/widgets/hamburger-menu.js
@@ -1,12 +1,12 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { later } from "@ember/runloop";
-import { createWidget, applyDecorators } from "discourse/widgets/widget";
-import { h } from "virtual-dom";
import DiscourseURL, { userPath } from "discourse/lib/url";
-import { ajax } from "discourse/lib/ajax";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
+import { applyDecorators, createWidget } from "discourse/widgets/widget";
+import I18n from "I18n";
import { NotificationLevels } from "discourse/lib/notification-levels";
+import { ajax } from "discourse/lib/ajax";
+import getURL from "discourse-common/lib/get-url";
+import { h } from "virtual-dom";
+import { later } from "@ember/runloop";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
const flatten = (array) => [].concat.apply([], array);
diff --git a/app/assets/javascripts/discourse/app/widgets/header-topic-info.js b/app/assets/javascripts/discourse/app/widgets/header-topic-info.js
index d5099ea66f8..1d223eb5f5b 100644
--- a/app/assets/javascripts/discourse/app/widgets/header-topic-info.js
+++ b/app/assets/javascripts/discourse/app/widgets/header-topic-info.js
@@ -1,13 +1,13 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
import { applyDecorators, createWidget } from "discourse/widgets/widget";
+import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
+import RawHtml from "discourse/widgets/raw-html";
+import { avatarImg } from "discourse/widgets/post";
+import getURL from "discourse-common/lib/get-url";
import { h } from "virtual-dom";
import { iconNode } from "discourse-common/lib/icon-library";
-import DiscourseURL from "discourse/lib/url";
-import RawHtml from "discourse/widgets/raw-html";
import renderTags from "discourse/lib/render-tags";
import { topicFeaturedLinkNode } from "discourse/lib/render-topic-featured-link";
-import { avatarImg } from "discourse/widgets/post";
createWidget("topic-header-participant", {
tagName: "span",
diff --git a/app/assets/javascripts/discourse/app/widgets/header.js b/app/assets/javascripts/discourse/app/widgets/header.js
index 11a8a038492..a76108cb5b8 100644
--- a/app/assets/javascripts/discourse/app/widgets/header.js
+++ b/app/assets/javascripts/discourse/app/widgets/header.js
@@ -1,17 +1,17 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { get } from "@ember/object";
-import { schedule } from "@ember/runloop";
-import { createWidget } from "discourse/widgets/widget";
-import { iconNode } from "discourse-common/lib/icon-library";
-import { avatarImg } from "discourse/widgets/post";
import DiscourseURL, { userPath } from "discourse/lib/url";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
-import { applySearchAutocomplete } from "discourse/lib/search";
-import { ajax } from "discourse/lib/ajax";
+import I18n from "I18n";
import { addExtraUserClasses } from "discourse/helpers/user-avatar";
-import { scrollTop } from "discourse/mixins/scroll-top";
+import { ajax } from "discourse/lib/ajax";
+import { applySearchAutocomplete } from "discourse/lib/search";
+import { avatarImg } from "discourse/widgets/post";
+import { createWidget } from "discourse/widgets/widget";
+import { get } from "@ember/object";
+import getURL from "discourse-common/lib/get-url";
import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
+import { schedule } from "@ember/runloop";
+import { scrollTop } from "discourse/mixins/scroll-top";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
const _extraHeaderIcons = [];
diff --git a/app/assets/javascripts/discourse/app/widgets/home-logo.js b/app/assets/javascripts/discourse/app/widgets/home-logo.js
index 8fb0a4ef711..971d74f948a 100644
--- a/app/assets/javascripts/discourse/app/widgets/home-logo.js
+++ b/app/assets/javascripts/discourse/app/widgets/home-logo.js
@@ -1,10 +1,10 @@
-import getURL from "discourse-common/lib/get-url";
+import DiscourseURL from "discourse/lib/url";
+import Session from "discourse/models/session";
import { createWidget } from "discourse/widgets/widget";
+import getURL from "discourse-common/lib/get-url";
import { h } from "virtual-dom";
import { iconNode } from "discourse-common/lib/icon-library";
import { wantsNewWindow } from "discourse/lib/intercept-click";
-import DiscourseURL from "discourse/lib/url";
-import Session from "discourse/models/session";
export default createWidget("home-logo", {
tagName: "div.title",
diff --git a/app/assets/javascripts/discourse/app/widgets/invitee-accepted-notification-item.js b/app/assets/javascripts/discourse/app/widgets/invitee-accepted-notification-item.js
index 26fc48f9718..0b0b181aba0 100644
--- a/app/assets/javascripts/discourse/app/widgets/invitee-accepted-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/invitee-accepted-notification-item.js
@@ -1,5 +1,5 @@
-import { createWidgetFrom } from "discourse/widgets/widget";
import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
+import { createWidgetFrom } from "discourse/widgets/widget";
import { userPath } from "discourse/lib/url";
createWidgetFrom(
diff --git a/app/assets/javascripts/discourse/app/widgets/liked-consolidated-notification-item.js b/app/assets/javascripts/discourse/app/widgets/liked-consolidated-notification-item.js
index 6901f3b6a29..9257687fb49 100644
--- a/app/assets/javascripts/discourse/app/widgets/liked-consolidated-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/liked-consolidated-notification-item.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import { isEmpty } from "@ember/utils";
-import { createWidgetFrom } from "discourse/widgets/widget";
import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
+import I18n from "I18n";
+import { createWidgetFrom } from "discourse/widgets/widget";
import { escapeExpression } from "discourse/lib/utilities";
+import { isEmpty } from "@ember/utils";
import { userPath } from "discourse/lib/url";
createWidgetFrom(
diff --git a/app/assets/javascripts/discourse/app/widgets/liked-notification-item.js b/app/assets/javascripts/discourse/app/widgets/liked-notification-item.js
index 46d5db1231a..97b62d4eba0 100644
--- a/app/assets/javascripts/discourse/app/widgets/liked-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/liked-notification-item.js
@@ -1,6 +1,6 @@
+import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import I18n from "I18n";
import { createWidgetFrom } from "discourse/widgets/widget";
-import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import { formatUsername } from "discourse/lib/utilities";
createWidgetFrom(DefaultNotificationItem, "liked-notification-item", {
diff --git a/app/assets/javascripts/discourse/app/widgets/link.js b/app/assets/javascripts/discourse/app/widgets/link.js
index 63452b05202..8dc41e842f8 100644
--- a/app/assets/javascripts/discourse/app/widgets/link.js
+++ b/app/assets/javascripts/discourse/app/widgets/link.js
@@ -1,10 +1,10 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { wantsNewWindow } from "discourse/lib/intercept-click";
-import { createWidget } from "discourse/widgets/widget";
-import { iconNode } from "discourse-common/lib/icon-library";
-import { h } from "virtual-dom";
import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
+import { createWidget } from "discourse/widgets/widget";
+import getURL from "discourse-common/lib/get-url";
+import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
+import { wantsNewWindow } from "discourse/lib/intercept-click";
export default createWidget("link", {
tagName: "a",
diff --git a/app/assets/javascripts/discourse/app/widgets/membership-request-accepted-notification-item.js b/app/assets/javascripts/discourse/app/widgets/membership-request-accepted-notification-item.js
index f47cea3edab..93dc02b7fb1 100644
--- a/app/assets/javascripts/discourse/app/widgets/membership-request-accepted-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/membership-request-accepted-notification-item.js
@@ -1,6 +1,6 @@
+import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import I18n from "I18n";
import { createWidgetFrom } from "discourse/widgets/widget";
-import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import { groupPath } from "discourse/lib/url";
createWidgetFrom(
diff --git a/app/assets/javascripts/discourse/app/widgets/membership-request-consolidated-notification-item.js b/app/assets/javascripts/discourse/app/widgets/membership-request-consolidated-notification-item.js
index 62a85030277..cd270077db2 100644
--- a/app/assets/javascripts/discourse/app/widgets/membership-request-consolidated-notification-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/membership-request-consolidated-notification-item.js
@@ -1,6 +1,6 @@
+import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import I18n from "I18n";
import { createWidgetFrom } from "discourse/widgets/widget";
-import { DefaultNotificationItem } from "discourse/widgets/default-notification-item";
import { userPath } from "discourse/lib/url";
createWidgetFrom(
diff --git a/app/assets/javascripts/discourse/app/widgets/menu-panel.js b/app/assets/javascripts/discourse/app/widgets/menu-panel.js
index 4a07f37a680..5c9872bb72f 100644
--- a/app/assets/javascripts/discourse/app/widgets/menu-panel.js
+++ b/app/assets/javascripts/discourse/app/widgets/menu-panel.js
@@ -1,6 +1,6 @@
-import hbs from "discourse/widgets/hbs-compiler";
import { createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";
+import hbs from "discourse/widgets/hbs-compiler";
createWidget("menu-links", {
buildClasses(attrs) {
diff --git a/app/assets/javascripts/discourse/app/widgets/post-admin-menu.js b/app/assets/javascripts/discourse/app/widgets/post-admin-menu.js
index bc1b4369c5c..dd56714c1b0 100644
--- a/app/assets/javascripts/discourse/app/widgets/post-admin-menu.js
+++ b/app/assets/javascripts/discourse/app/widgets/post-admin-menu.js
@@ -1,6 +1,6 @@
+import { ButtonClass } from "discourse/widgets/button";
import { createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";
-import { ButtonClass } from "discourse/widgets/button";
createWidget(
"post-admin-menu-button",
diff --git a/app/assets/javascripts/discourse/app/widgets/post-cooked.js b/app/assets/javascripts/discourse/app/widgets/post-cooked.js
index 94a61f66e38..5de05a49967 100644
--- a/app/assets/javascripts/discourse/app/widgets/post-cooked.js
+++ b/app/assets/javascripts/discourse/app/widgets/post-cooked.js
@@ -1,10 +1,10 @@
+import highlightHTML, { unhighlightHTML } from "discourse/lib/highlight-html";
import I18n from "I18n";
-import { iconHTML } from "discourse-common/lib/icon-library";
import { ajax } from "discourse/lib/ajax";
+import highlightSearch from "discourse/lib/highlight-search";
+import { iconHTML } from "discourse-common/lib/icon-library";
import { isValidLink } from "discourse/lib/click-track";
import { number } from "discourse/lib/formatter";
-import highlightSearch from "discourse/lib/highlight-search";
-import highlightHTML, { unhighlightHTML } from "discourse/lib/highlight-html";
import { spinnerHTML } from "discourse/helpers/loading-spinner";
let _beforeAdoptDecorators = [];
diff --git a/app/assets/javascripts/discourse/app/widgets/post-edits-indicator.js b/app/assets/javascripts/discourse/app/widgets/post-edits-indicator.js
index 5a69e4c3386..818da0e0c3d 100644
--- a/app/assets/javascripts/discourse/app/widgets/post-edits-indicator.js
+++ b/app/assets/javascripts/discourse/app/widgets/post-edits-indicator.js
@@ -1,8 +1,8 @@
import I18n from "I18n";
import { createWidget } from "discourse/widgets/widget";
+import { h } from "virtual-dom";
import { iconNode } from "discourse-common/lib/icon-library";
import { longDate } from "discourse/lib/formatter";
-import { h } from "virtual-dom";
function mult(val) {
return 60 * 50 * 1000 * val;
diff --git a/app/assets/javascripts/discourse/app/widgets/post-links.js b/app/assets/javascripts/discourse/app/widgets/post-links.js
index 36ea35513b6..54d437b6cd1 100644
--- a/app/assets/javascripts/discourse/app/widgets/post-links.js
+++ b/app/assets/javascripts/discourse/app/widgets/post-links.js
@@ -1,6 +1,6 @@
-import { iconNode } from "discourse-common/lib/icon-library";
import { createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
import { replaceEmoji } from "discourse/widgets/emoji";
export default createWidget("post-links", {
diff --git a/app/assets/javascripts/discourse/app/widgets/post-menu.js b/app/assets/javascripts/discourse/app/widgets/post-menu.js
index 17002ce8939..ed5fe33b137 100644
--- a/app/assets/javascripts/discourse/app/widgets/post-menu.js
+++ b/app/assets/javascripts/discourse/app/widgets/post-menu.js
@@ -1,11 +1,11 @@
-import { next, run } from "@ember/runloop";
import { applyDecorators, createWidget } from "discourse/widgets/widget";
-import { smallUserAtts } from "discourse/widgets/actions-summary";
-import { h } from "virtual-dom";
-import showModal from "discourse/lib/show-modal";
+import { next, run } from "@ember/runloop";
import { Promise } from "rsvp";
-import { isTesting } from "discourse-common/config/environment";
import { formattedReminderTime } from "discourse/lib/bookmark";
+import { h } from "virtual-dom";
+import { isTesting } from "discourse-common/config/environment";
+import showModal from "discourse/lib/show-modal";
+import { smallUserAtts } from "discourse/widgets/actions-summary";
const LIKE_ACTION = 2;
const VIBRATE_DURATION = 5;
diff --git a/app/assets/javascripts/discourse/app/widgets/post-small-action.js b/app/assets/javascripts/discourse/app/widgets/post-small-action.js
index 824c72bea13..700ffef23ae 100644
--- a/app/assets/javascripts/discourse/app/widgets/post-small-action.js
+++ b/app/assets/javascripts/discourse/app/widgets/post-small-action.js
@@ -1,12 +1,12 @@
import I18n from "I18n";
-import { createWidget } from "discourse/widgets/widget";
import RawHtml from "discourse/widgets/raw-html";
-import { iconNode } from "discourse-common/lib/icon-library";
-import { h } from "virtual-dom";
-import { avatarFor } from "discourse/widgets/post";
-import { userPath } from "discourse/lib/url";
import { autoUpdatingRelativeAge } from "discourse/lib/formatter";
+import { avatarFor } from "discourse/widgets/post";
import { computed } from "@ember/object";
+import { createWidget } from "discourse/widgets/widget";
+import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
+import { userPath } from "discourse/lib/url";
export function actionDescriptionHtml(actionCode, createdAt, username) {
const dt = new Date(createdAt);
diff --git a/app/assets/javascripts/discourse/app/widgets/post-stream.js b/app/assets/javascripts/discourse/app/widgets/post-stream.js
index c4d32dacc6d..e8dc61cf32d 100644
--- a/app/assets/javascripts/discourse/app/widgets/post-stream.js
+++ b/app/assets/javascripts/discourse/app/widgets/post-stream.js
@@ -1,9 +1,9 @@
-import { debounce } from "@ember/runloop";
-import { createWidget } from "discourse/widgets/widget";
-import transformPost from "discourse/lib/transform-post";
import { Placeholder } from "discourse/lib/posts-with-placeholders";
import { addWidgetCleanCallback } from "discourse/components/mount-widget";
+import { createWidget } from "discourse/widgets/widget";
+import { debounce } from "@ember/runloop";
import { isTesting } from "discourse-common/config/environment";
+import transformPost from "discourse/lib/transform-post";
let transformCallbacks = null;
export function postTransformCallbacks(transformed) {
diff --git a/app/assets/javascripts/discourse/app/widgets/post.js b/app/assets/javascripts/discourse/app/widgets/post.js
index 7d8d0d3f6ad..0a97e6332ee 100644
--- a/app/assets/javascripts/discourse/app/widgets/post.js
+++ b/app/assets/javascripts/discourse/app/widgets/post.js
@@ -1,25 +1,25 @@
-import getURL, { getURLWithCDN } from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import PostCooked from "discourse/widgets/post-cooked";
-import DecoratorHelper from "discourse/widgets/decorator-helper";
-import { createWidget, applyDecorators } from "discourse/widgets/widget";
-import RawHtml from "discourse/widgets/raw-html";
-import { iconNode } from "discourse-common/lib/icon-library";
-import { transformBasicPost } from "discourse/lib/transform-post";
-import { postTransformCallbacks } from "discourse/widgets/post-stream";
-import { h } from "virtual-dom";
-import DiscourseURL from "discourse/lib/url";
-import { dateNode } from "discourse/helpers/node";
+import { applyDecorators, createWidget } from "discourse/widgets/widget";
import {
- translateSize,
avatarUrl,
formatUsername,
+ translateSize,
} from "discourse/lib/utilities";
-import hbs from "discourse/widgets/hbs-compiler";
-import { relativeAgeMediumSpan } from "discourse/lib/formatter";
-import { prioritizeNameInUx } from "discourse/lib/settings";
+import getURL, { getURLWithCDN } from "discourse-common/lib/get-url";
+import DecoratorHelper from "discourse/widgets/decorator-helper";
+import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
+import PostCooked from "discourse/widgets/post-cooked";
import { Promise } from "rsvp";
+import RawHtml from "discourse/widgets/raw-html";
import bootbox from "bootbox";
+import { dateNode } from "discourse/helpers/node";
+import { h } from "virtual-dom";
+import hbs from "discourse/widgets/hbs-compiler";
+import { iconNode } from "discourse-common/lib/icon-library";
+import { postTransformCallbacks } from "discourse/widgets/post-stream";
+import { prioritizeNameInUx } from "discourse/lib/settings";
+import { relativeAgeMediumSpan } from "discourse/lib/formatter";
+import { transformBasicPost } from "discourse/lib/transform-post";
function transformWithCallbacks(post) {
let transformed = transformBasicPost(post);
diff --git a/app/assets/javascripts/discourse/app/widgets/poster-name.js b/app/assets/javascripts/discourse/app/widgets/poster-name.js
index da553bf9b56..441fda53fdf 100644
--- a/app/assets/javascripts/discourse/app/widgets/poster-name.js
+++ b/app/assets/javascripts/discourse/app/widgets/poster-name.js
@@ -1,9 +1,9 @@
-import getURL from "discourse-common/lib/get-url";
+import { applyDecorators, createWidget } from "discourse/widgets/widget";
import I18n from "I18n";
-import { iconNode } from "discourse-common/lib/icon-library";
-import { createWidget, applyDecorators } from "discourse/widgets/widget";
-import { h } from "virtual-dom";
import { formatUsername } from "discourse/lib/utilities";
+import getURL from "discourse-common/lib/get-url";
+import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
import { prioritizeNameInUx } from "discourse/lib/settings";
let sanitizeName = function (name) {
diff --git a/app/assets/javascripts/discourse/app/widgets/private-message-map.js b/app/assets/javascripts/discourse/app/widgets/private-message-map.js
index 13784716e0f..9a68c2e16d2 100644
--- a/app/assets/javascripts/discourse/app/widgets/private-message-map.js
+++ b/app/assets/javascripts/discourse/app/widgets/private-message-map.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { makeArray } from "discourse-common/lib/helpers";
-import { createWidget } from "discourse/widgets/widget";
-import { h } from "virtual-dom";
import { avatarFor, avatarImg } from "discourse/widgets/post";
-import hbs from "discourse/widgets/hbs-compiler";
+import I18n from "I18n";
import bootbox from "bootbox";
+import { createWidget } from "discourse/widgets/widget";
+import getURL from "discourse-common/lib/get-url";
+import { h } from "virtual-dom";
+import hbs from "discourse/widgets/hbs-compiler";
+import { makeArray } from "discourse-common/lib/helpers";
createWidget("pm-remove-group-link", {
tagName: "a.remove-invited.no-text.btn-icon.btn",
diff --git a/app/assets/javascripts/discourse/app/widgets/quick-access-bookmarks.js b/app/assets/javascripts/discourse/app/widgets/quick-access-bookmarks.js
index fdeb7e0a868..9f8c99f8898 100644
--- a/app/assets/javascripts/discourse/app/widgets/quick-access-bookmarks.js
+++ b/app/assets/javascripts/discourse/app/widgets/quick-access-bookmarks.js
@@ -1,8 +1,8 @@
-import { h } from "virtual-dom";
import QuickAccessPanel from "discourse/widgets/quick-access-panel";
import UserAction from "discourse/models/user-action";
import { ajax } from "discourse/lib/ajax";
import { createWidgetFrom } from "discourse/widgets/widget";
+import { h } from "virtual-dom";
import { postUrl } from "discourse/lib/utilities";
const ICON = "bookmark";
diff --git a/app/assets/javascripts/discourse/app/widgets/quick-access-item.js b/app/assets/javascripts/discourse/app/widgets/quick-access-item.js
index f21fbf971b4..b5a241214eb 100644
--- a/app/assets/javascripts/discourse/app/widgets/quick-access-item.js
+++ b/app/assets/javascripts/discourse/app/widgets/quick-access-item.js
@@ -1,9 +1,9 @@
-import { h } from "virtual-dom";
import RawHtml from "discourse/widgets/raw-html";
import { createWidget } from "discourse/widgets/widget";
import { emojiUnescape } from "discourse/lib/text";
-import { iconNode } from "discourse-common/lib/icon-library";
import { escapeExpression } from "discourse/lib/utilities";
+import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
/**
* This helper widget tries to enforce a consistent look and behavior for any
diff --git a/app/assets/javascripts/discourse/app/widgets/quick-access-notifications.js b/app/assets/javascripts/discourse/app/widgets/quick-access-notifications.js
index 39d8e14a7b6..98a1c1b7d3d 100644
--- a/app/assets/javascripts/discourse/app/widgets/quick-access-notifications.js
+++ b/app/assets/javascripts/discourse/app/widgets/quick-access-notifications.js
@@ -1,6 +1,6 @@
+import QuickAccessPanel from "discourse/widgets/quick-access-panel";
import { ajax } from "discourse/lib/ajax";
import { createWidgetFrom } from "discourse/widgets/widget";
-import QuickAccessPanel from "discourse/widgets/quick-access-panel";
createWidgetFrom(QuickAccessPanel, "quick-access-notifications", {
buildKey: () => "quick-access-notifications",
diff --git a/app/assets/javascripts/discourse/app/widgets/quick-access-panel.js b/app/assets/javascripts/discourse/app/widgets/quick-access-panel.js
index 7b75486881f..18feb59dd1f 100644
--- a/app/assets/javascripts/discourse/app/widgets/quick-access-panel.js
+++ b/app/assets/javascripts/discourse/app/widgets/quick-access-panel.js
@@ -1,8 +1,8 @@
import I18n from "I18n";
+import { Promise } from "rsvp";
import Session from "discourse/models/session";
import { createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";
-import { Promise } from "rsvp";
/**
* This tries to enforce a consistent flow of fetching, caching, refreshing,
diff --git a/app/assets/javascripts/discourse/app/widgets/quick-access-profile.js b/app/assets/javascripts/discourse/app/widgets/quick-access-profile.js
index 5b32c40954c..83961b1cc65 100644
--- a/app/assets/javascripts/discourse/app/widgets/quick-access-profile.js
+++ b/app/assets/javascripts/discourse/app/widgets/quick-access-profile.js
@@ -1,7 +1,7 @@
import I18n from "I18n";
+import { Promise } from "rsvp";
import QuickAccessPanel from "discourse/widgets/quick-access-panel";
import { createWidgetFrom } from "discourse/widgets/widget";
-import { Promise } from "rsvp";
const _extraItems = [];
diff --git a/app/assets/javascripts/discourse/app/widgets/search-menu-controls.js b/app/assets/javascripts/discourse/app/widgets/search-menu-controls.js
index 461b93b2e88..27ff502b85d 100644
--- a/app/assets/javascripts/discourse/app/widgets/search-menu-controls.js
+++ b/app/assets/javascripts/discourse/app/widgets/search-menu-controls.js
@@ -1,8 +1,8 @@
import I18n from "I18n";
-import { get } from "@ember/object";
-import { searchContextDescription } from "discourse/lib/search";
-import { h } from "virtual-dom";
import { createWidget } from "discourse/widgets/widget";
+import { get } from "@ember/object";
+import { h } from "virtual-dom";
+import { searchContextDescription } from "discourse/lib/search";
createWidget("search-term", {
tagName: "input",
diff --git a/app/assets/javascripts/discourse/app/widgets/search-menu-results.js b/app/assets/javascripts/discourse/app/widgets/search-menu-results.js
index d1981adf800..8c0719f0028 100644
--- a/app/assets/javascripts/discourse/app/widgets/search-menu-results.js
+++ b/app/assets/javascripts/discourse/app/widgets/search-menu-results.js
@@ -1,11 +1,11 @@
+import { escapeExpression, formatUsername } from "discourse/lib/utilities";
import I18n from "I18n";
-import { avatarImg } from "discourse/widgets/post";
-import { dateNode } from "discourse/helpers/node";
import RawHtml from "discourse/widgets/raw-html";
+import { avatarImg } from "discourse/widgets/post";
import { createWidget } from "discourse/widgets/widget";
+import { dateNode } from "discourse/helpers/node";
import { h } from "virtual-dom";
import highlightSearch from "discourse/lib/highlight-search";
-import { escapeExpression, formatUsername } from "discourse/lib/utilities";
import { iconNode } from "discourse-common/lib/icon-library";
import renderTag from "discourse/lib/render-tag";
diff --git a/app/assets/javascripts/discourse/app/widgets/search-menu.js b/app/assets/javascripts/discourse/app/widgets/search-menu.js
index 1b3585c72f1..999e063742e 100644
--- a/app/assets/javascripts/discourse/app/widgets/search-menu.js
+++ b/app/assets/javascripts/discourse/app/widgets/search-menu.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
-import { get } from "@ember/object";
-import { debounce } from "@ember/runloop";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import { searchForTerm, isValidSearchTerm } from "discourse/lib/search";
-import { createWidget } from "discourse/widgets/widget";
-import { h } from "virtual-dom";
+import { isValidSearchTerm, searchForTerm } from "discourse/lib/search";
import DiscourseURL from "discourse/lib/url";
+import { createWidget } from "discourse/widgets/widget";
+import { debounce } from "@ember/runloop";
+import { get } from "@ember/object";
+import getURL from "discourse-common/lib/get-url";
+import { h } from "virtual-dom";
+import { popupAjaxError } from "discourse/lib/ajax-error";
const searchData = {};
diff --git a/app/assets/javascripts/discourse/app/widgets/topic-admin-menu.js b/app/assets/javascripts/discourse/app/widgets/topic-admin-menu.js
index a022ac3b404..ed7d6e9ca76 100644
--- a/app/assets/javascripts/discourse/app/widgets/topic-admin-menu.js
+++ b/app/assets/javascripts/discourse/app/widgets/topic-admin-menu.js
@@ -1,4 +1,4 @@
-import { createWidget, applyDecorators } from "discourse/widgets/widget";
+import { applyDecorators, createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";
createWidget("admin-menu-button", {
diff --git a/app/assets/javascripts/discourse/app/widgets/topic-map.js b/app/assets/javascripts/discourse/app/widgets/topic-map.js
index dc4f053b6f7..abde361f8bf 100644
--- a/app/assets/javascripts/discourse/app/widgets/topic-map.js
+++ b/app/assets/javascripts/discourse/app/widgets/topic-map.js
@@ -1,8 +1,8 @@
+import { avatarFor, avatarImg } from "discourse/widgets/post";
+import { dateNode, numberNode } from "discourse/helpers/node";
import I18n from "I18n";
import { createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";
-import { avatarImg, avatarFor } from "discourse/widgets/post";
-import { dateNode, numberNode } from "discourse/helpers/node";
import { replaceEmoji } from "discourse/widgets/emoji";
const LINKS_SHOWN = 5;
diff --git a/app/assets/javascripts/discourse/app/widgets/topic-status.js b/app/assets/javascripts/discourse/app/widgets/topic-status.js
index 28363d1a6fe..9a1b460db65 100644
--- a/app/assets/javascripts/discourse/app/widgets/topic-status.js
+++ b/app/assets/javascripts/discourse/app/widgets/topic-status.js
@@ -1,9 +1,9 @@
import I18n from "I18n";
-import { createWidget } from "discourse/widgets/widget";
-import { iconNode } from "discourse-common/lib/icon-library";
-import { h } from "virtual-dom";
-import { escapeExpression } from "discourse/lib/utilities";
import TopicStatusIcons from "discourse/helpers/topic-status-icons";
+import { createWidget } from "discourse/widgets/widget";
+import { escapeExpression } from "discourse/lib/utilities";
+import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
export default createWidget("topic-status", {
tagName: "div.topic-statuses",
diff --git a/app/assets/javascripts/discourse/app/widgets/topic-timeline.js b/app/assets/javascripts/discourse/app/widgets/topic-timeline.js
index ba21c6eb8dc..18f8573a834 100644
--- a/app/assets/javascripts/discourse/app/widgets/topic-timeline.js
+++ b/app/assets/javascripts/discourse/app/widgets/topic-timeline.js
@@ -1,14 +1,14 @@
-import I18n from "I18n";
-import { later } from "@ember/runloop";
-import { createWidget } from "discourse/widgets/widget";
import ComponentConnector from "discourse/widgets/component-connector";
-import { h } from "virtual-dom";
-import { relativeAge } from "discourse/lib/formatter";
-import { iconNode } from "discourse-common/lib/icon-library";
+import I18n from "I18n";
import RawHtml from "discourse/widgets/raw-html";
+import { createWidget } from "discourse/widgets/widget";
+import { deepMerge } from "discourse-common/lib/object";
+import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
+import { later } from "@ember/runloop";
+import { relativeAge } from "discourse/lib/formatter";
import renderTags from "discourse/lib/render-tags";
import renderTopicFeaturedLink from "discourse/lib/render-topic-featured-link";
-import { deepMerge } from "discourse-common/lib/object";
const SCROLLER_HEIGHT = 50;
const LAST_READ_HEIGHT = 20;
diff --git a/app/assets/javascripts/discourse/app/widgets/user-menu.js b/app/assets/javascripts/discourse/app/widgets/user-menu.js
index 79379340f77..2fb8c417e7a 100644
--- a/app/assets/javascripts/discourse/app/widgets/user-menu.js
+++ b/app/assets/javascripts/discourse/app/widgets/user-menu.js
@@ -1,6 +1,6 @@
-import { later } from "@ember/runloop";
import { createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";
+import { later } from "@ember/runloop";
const UserMenuAction = {
QUICK_ACCESS: "quickAccess",
diff --git a/app/assets/javascripts/discourse/app/widgets/user-notifications-large.js b/app/assets/javascripts/discourse/app/widgets/user-notifications-large.js
index d5b05fbe8c2..9ca518313a3 100644
--- a/app/assets/javascripts/discourse/app/widgets/user-notifications-large.js
+++ b/app/assets/javascripts/discourse/app/widgets/user-notifications-large.js
@@ -1,6 +1,6 @@
import { createWidget } from "discourse/widgets/widget";
-import { h } from "virtual-dom";
import { dateNode } from "discourse/helpers/node";
+import { h } from "virtual-dom";
createWidget("large-notification-item", {
buildClasses(attrs) {
diff --git a/app/assets/javascripts/discourse/app/widgets/widget-dropdown.js b/app/assets/javascripts/discourse/app/widgets/widget-dropdown.js
index 47b7f875d57..605082d87ab 100644
--- a/app/assets/javascripts/discourse/app/widgets/widget-dropdown.js
+++ b/app/assets/javascripts/discourse/app/widgets/widget-dropdown.js
@@ -1,8 +1,8 @@
import I18n from "I18n";
+import { createPopper } from "@popperjs/core";
import { createWidget } from "discourse/widgets/widget";
import hbs from "discourse/widgets/hbs-compiler";
import { schedule } from "@ember/runloop";
-import { createPopper } from "@popperjs/core";
/*
diff --git a/app/assets/javascripts/discourse/app/widgets/widget.js b/app/assets/javascripts/discourse/app/widgets/widget.js
index a00ccc8af75..a69fee5a3b5 100644
--- a/app/assets/javascripts/discourse/app/widgets/widget.js
+++ b/app/assets/javascripts/discourse/app/widgets/widget.js
@@ -1,28 +1,28 @@
-import I18n from "I18n";
import {
+ WidgetChangeHook,
WidgetClickHook,
- WidgetDoubleClickHook,
WidgetClickOutsideHook,
- WidgetKeyUpHook,
- WidgetKeyDownHook,
- WidgetMouseDownOutsideHook,
+ WidgetDoubleClickHook,
WidgetDragHook,
WidgetInputHook,
- WidgetChangeHook,
- WidgetMouseUpHook,
+ WidgetKeyDownHook,
+ WidgetKeyUpHook,
WidgetMouseDownHook,
+ WidgetMouseDownOutsideHook,
WidgetMouseMoveHook,
- WidgetMouseOverHook,
WidgetMouseOutHook,
- WidgetTouchStartHook,
+ WidgetMouseOverHook,
+ WidgetMouseUpHook,
WidgetTouchEndHook,
+ WidgetTouchStartHook,
} from "discourse/widgets/hooks";
-import { h } from "virtual-dom";
import DecoratorHelper from "discourse/widgets/decorator-helper";
+import I18n from "I18n";
import { Promise } from "rsvp";
-import { isProduction } from "discourse-common/config/environment";
-import { get } from "@ember/object";
import { deepMerge } from "discourse-common/lib/object";
+import { get } from "@ember/object";
+import { h } from "virtual-dom";
+import { isProduction } from "discourse-common/config/environment";
const _registry = {};
diff --git a/app/assets/javascripts/discourse/tests/acceptance/about-test.js b/app/assets/javascripts/discourse/tests/acceptance/about-test.js
index 92a8f3e333f..b51cd5a5721 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/about-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/about-test.js
@@ -1,6 +1,6 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("About", function () {
test("viewing", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/account-created-test.js b/app/assets/javascripts/discourse/tests/acceptance/account-created-test.js
index 2d8433a0e06..fab4de4e04e 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/account-created-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/account-created-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit, click, fillIn, currentRouteName } from "@ember/test-helpers";
-import { test } from "qunit";
+import { click, currentRouteName, fillIn, visit } from "@ember/test-helpers";
import PreloadStore from "discourse/lib/preload-store";
+import { test } from "qunit";
acceptance("Account Created", function () {
test("account created - message", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-emails-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-emails-test.js
index 326895c9a55..0b2342b9dc6 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-emails-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-emails-test.js
@@ -1,5 +1,5 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { fillIn, click, visit } from "@ember/test-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
+import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
const EMAIL = `
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-search-log-term-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-search-log-term-test.js
index 8baa169fe16..b4a9df1cdeb 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-search-log-term-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-search-log-term-test.js
@@ -1,6 +1,6 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Admin - Search Log Term", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-search-logs-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-search-logs-test.js
index 42e64263e06..9b19b29b6be 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-search-logs-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-search-logs-test.js
@@ -1,4 +1,4 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-site-settings-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-site-settings-test.js
index cdba86ee709..57bff6d17f4 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-site-settings-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-site-settings-test.js
@@ -1,18 +1,18 @@
-import {
- fillIn,
- click,
- triggerKeyEvent,
- visit,
- currentURL,
-} from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
count,
- queryAll,
exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
+import {
+ click,
+ currentURL,
+ fillIn,
+ triggerKeyEvent,
+ visit,
+} from "@ember/test-helpers";
import siteSettingFixture from "discourse/tests/fixtures/site-settings";
+import { test } from "qunit";
acceptance("Admin - Site Settings", function (needs) {
let updatedTitle;
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-site-text-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-site-text-test.js
index 25ab4ae46bb..d477fd90c5b 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-site-text-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-site-text-test.js
@@ -1,9 +1,9 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { fillIn, click, visit, currentURL } from "@ember/test-helpers";
+import { click, currentURL, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("Admin - Site Texts", function (needs) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-suspend-user-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-suspend-user-test.js
index b615a126b34..05a8a86dee4 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-suspend-user-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-suspend-user-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit, click, fillIn } from "@ember/test-helpers";
-import { test } from "qunit";
+import { click, fillIn, visit } from "@ember/test-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Admin - Suspend User", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-user-badges-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-user-badges-test.js
index 72edb00493f..fa36848fe2b 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-user-badges-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-user-badges-test.js
@@ -1,6 +1,6 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Admin - Users Badges", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js
index 273f7031ce2..400d03e5c8f 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-user-emails-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
function assertNoSecondary(assert) {
assert.equal(
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-user-index-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-user-index-test.js
index e7096a6da12..731c77c2167 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-user-index-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-user-index-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Admin - User Index", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js
index 6d71d402273..86d4bbee413 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-users-list-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
acceptance("Admin - Users List", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/admin-watched-words-test.js b/app/assets/javascripts/discourse/tests/acceptance/admin-watched-words-test.js
index 3a2d4cc462c..2ae807ffc9d 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/admin-watched-words-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/admin-watched-words-test.js
@@ -1,9 +1,9 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { fillIn, click, visit } from "@ember/test-helpers";
+import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("Admin - Watched Words", function (needs) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/auth-complete-test.js b/app/assets/javascripts/discourse/tests/acceptance/auth-complete-test.js
index c480166ba56..d89d834cf39 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/auth-complete-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/auth-complete-test.js
@@ -1,5 +1,5 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit, currentRouteName } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
+import { currentRouteName, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("Auth Complete", function (needs) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/badges-test.js b/app/assets/javascripts/discourse/tests/acceptance/badges-test.js
index 6292d3e0c6f..6eaaf10431b 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/badges-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/badges-test.js
@@ -1,7 +1,7 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Badges", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/bookmarks-test.js b/app/assets/javascripts/discourse/tests/acceptance/bookmarks-test.js
index 36af34e88fb..b879e1583cc 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/bookmarks-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/bookmarks-test.js
@@ -1,13 +1,13 @@
-import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import I18n from "I18n";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import {
acceptance,
+ exists,
loggedInUser,
queryAll,
- exists,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, fillIn, visit } from "@ember/test-helpers";
+import I18n from "I18n";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
async function openBookmarkModal() {
if (exists(".topic-post:first-child button.show-more-actions")) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-banner-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-banner-test.js
index 1c9846c8a9c..9a2264a6b5d 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/category-banner-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/category-banner-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
acceptance,
+ queryAll,
visible,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import DiscoveryFixtures from "discourse/tests/fixtures/discovery-fixtures";
+import { test } from "qunit";
acceptance("Category Banners", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-chooser-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-chooser-test.js
index bd7ef8217d0..81d2b9abdfe 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/category-chooser-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/category-chooser-test.js
@@ -1,7 +1,7 @@
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("CategoryChooser", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js
index c8a6e043ceb..020aa1fde35 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/category-edit-security-test.js
@@ -1,8 +1,8 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import I18n from "I18n";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Category Edit - security", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-edit-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-edit-test.js
index 7f7ff5fd2f9..3df14fd12eb 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/category-edit-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/category-edit-test.js
@@ -1,13 +1,13 @@
import {
- queryAll,
acceptance,
+ queryAll,
visible,
} from "discourse/tests/helpers/qunit-helpers";
-import { click, fillIn, visit, currentURL } from "@ember/test-helpers";
-import { test } from "qunit";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { click, currentURL, fillIn, visit } from "@ember/test-helpers";
import DiscourseURL from "discourse/lib/url";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
import sinon from "sinon";
+import { test } from "qunit";
acceptance("Category Edit", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/category-new-test.js b/app/assets/javascripts/discourse/tests/acceptance/category-new-test.js
index c5496f56cbf..f02189ea475 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/category-new-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/category-new-test.js
@@ -1,9 +1,9 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { fillIn, click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import I18n from "I18n";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
+import { click, fillIn, visit } from "@ember/test-helpers";
import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
import sinon from "sinon";
+import { test } from "qunit";
acceptance("Category New", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/click-track-test.js b/app/assets/javascripts/discourse/tests/acceptance/click-track-test.js
index 8b7585ad8ca..9829cc75121 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/click-track-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/click-track-test.js
@@ -1,5 +1,5 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { click, visit, currentURL } from "@ember/test-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
+import { click, currentURL, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("Click Track", function (needs) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-actions-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-actions-test.js
index 518faf8c270..95c35851439 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-actions-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-actions-test.js
@@ -1,18 +1,18 @@
-import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import I18n from "I18n";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import {
acceptance,
- updateCurrentUser,
- queryAll,
exists,
+ queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
-import { _clearSnapshots } from "select-kit/components/composer-actions";
-import { toggleCheckDraftPopup } from "discourse/controllers/composer";
+import { click, fillIn, visit } from "@ember/test-helpers";
import Draft from "discourse/models/draft";
+import I18n from "I18n";
import { Promise } from "rsvp";
+import { _clearSnapshots } from "select-kit/components/composer-actions";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
import sinon from "sinon";
+import { test } from "qunit";
+import { toggleCheckDraftPopup } from "discourse/controllers/composer";
acceptance("Composer Actions", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-attachment-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-attachment-test.js
index 63f8fbbc60e..51e7b1806b8 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-attachment-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-attachment-test.js
@@ -1,4 +1,4 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-edit-conflict-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-edit-conflict-test.js
index ec0d7b4c02e..6eb7be82355 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-edit-conflict-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-edit-conflict-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
acceptance("Composer - Edit conflict", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-hyperlink-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-hyperlink-test.js
index c825cbd1ae1..3cc5eb98eb7 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-hyperlink-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-hyperlink-test.js
@@ -1,7 +1,7 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, triggerKeyEvent, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-onebox-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-onebox-test.js
index 7e48fae3694..04ad220536d 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-onebox-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-onebox-test.js
@@ -1,4 +1,4 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-tags-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-tags-test.js
index 47feb7c70ad..2948b100081 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-tags-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-tags-test.js
@@ -1,11 +1,11 @@
-import { click, fillIn, visit, currentURL } from "@ember/test-helpers";
-import { test } from "qunit";
-import Category from "discourse/models/category";
import {
acceptance,
updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, currentURL, fillIn, visit } from "@ember/test-helpers";
+import Category from "discourse/models/category";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Composer - Tags", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-test.js
index 738c770ad3d..1cec7ceb8c6 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-test.js
@@ -1,19 +1,19 @@
-import { click, fillIn, visit, currentURL } from "@ember/test-helpers";
-import { skip, test } from "qunit";
-import I18n from "I18n";
-import { run } from "@ember/runloop";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import {
acceptance,
- invisible,
- visible,
- queryAll,
exists,
+ invisible,
+ queryAll,
+ visible,
} from "discourse/tests/helpers/qunit-helpers";
-import { toggleCheckDraftPopup } from "discourse/controllers/composer";
+import { click, currentURL, fillIn, visit } from "@ember/test-helpers";
+import { skip, test } from "qunit";
import Draft from "discourse/models/draft";
+import I18n from "I18n";
import { Promise } from "rsvp";
+import { run } from "@ember/runloop";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
import sinon from "sinon";
+import { toggleCheckDraftPopup } from "discourse/controllers/composer";
acceptance("Composer", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-topic-links-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-topic-links-test.js
index 32e8badb2bd..7a9d6b402d1 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-topic-links-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-topic-links-test.js
@@ -1,7 +1,7 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-uncategorized-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-uncategorized-test.js
index 6d7ec8cbac1..f9b8c1be32e 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/composer-uncategorized-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/composer-uncategorized-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance(
"Composer disabled, uncategorized not allowed when any topic_template present",
diff --git a/app/assets/javascripts/discourse/tests/acceptance/create-account-external-test.js b/app/assets/javascripts/discourse/tests/acceptance/create-account-external-test.js
index 0c24d119c7b..0e0fb6deee5 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/create-account-external-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/create-account-external-test.js
@@ -1,6 +1,6 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Create Account - external auth", function (needs) {
needs.hooks.beforeEach(() => {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/create-account-user-fields-test.js b/app/assets/javascripts/discourse/tests/acceptance/create-account-user-fields-test.js
index 60d24324e61..9bbefe93133 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/create-account-user-fields-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/create-account-user-fields-test.js
@@ -1,7 +1,7 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/custom-html-set-test.js b/app/assets/javascripts/discourse/tests/acceptance/custom-html-set-test.js
index fd58172d053..8266f7a9df3 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/custom-html-set-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/custom-html-set-test.js
@@ -1,12 +1,12 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import { setCustomHTML } from "discourse/helpers/custom-html";
import PreloadStore from "discourse/lib/preload-store";
+import { setCustomHTML } from "discourse/helpers/custom-html";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("CustomHTML set", function () {
test("has no custom HTML in the top", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js b/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js
index ecc7e0d7526..bb79868cc81 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/custom-html-template-test.js
@@ -1,8 +1,8 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import Ember from "ember";
import hbs from "htmlbars-inline-precompile";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("CustomHTML template", function (needs) {
needs.hooks.beforeEach(() => {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/dashboard-test.js b/app/assets/javascripts/discourse/tests/acceptance/dashboard-test.js
index d1e6f31fb12..b573383066b 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/dashboard-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/dashboard-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Dashboard", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/email-notice-test.js b/app/assets/javascripts/discourse/tests/acceptance/email-notice-test.js
index 087efa0e3ea..a4bdd4e8fa1 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/email-notice-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/email-notice-test.js
@@ -1,10 +1,10 @@
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- updateCurrentUser,
exists,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Email Disabled Banner", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js b/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js
index 11467f6a7a0..fdaaabb1f20 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/emoji-picker-test.js
@@ -1,7 +1,7 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js b/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js
index ca23c0cf033..67c1dfc7b93 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js
@@ -1,4 +1,4 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
import { IMAGE_VERSION as v } from "pretty-text/emoji/version";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/encoded-category-test.js b/app/assets/javascripts/discourse/tests/acceptance/encoded-category-test.js
index 773a54ef8bf..9e5a80bead9 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/encoded-category-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/encoded-category-test.js
@@ -1,7 +1,7 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import DiscoveryFixtures from "discourse/tests/fixtures/discovery-fixtures";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Encoded Sub Category Discovery", function (needs) {
needs.settings({
diff --git a/app/assets/javascripts/discourse/tests/acceptance/enforce-second-factor-test.js b/app/assets/javascripts/discourse/tests/acceptance/enforce-second-factor-test.js
index 735b49fb3ef..eaf9ca48960 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/enforce-second-factor-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/enforce-second-factor-test.js
@@ -1,10 +1,10 @@
-import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- updateCurrentUser,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
+import { test } from "qunit";
acceptance("Enforce Second Factor", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/flag-post-test.js b/app/assets/javascripts/discourse/tests/acceptance/flag-post-test.js
index f5cd5c413e8..124b58f4e8a 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/flag-post-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/flag-post-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
import userFixtures from "discourse/tests/fixtures/user-fixtures";
async function openFlagModal() {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/forgot-password-test.js b/app/assets/javascripts/discourse/tests/acceptance/forgot-password-test.js
index 09cda1e425b..92df2514a1c 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/forgot-password-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/forgot-password-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
let userFound = false;
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-index-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-index-test.js
index 70898fd78aa..524af365e59 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-index-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-index-test.js
@@ -1,12 +1,12 @@
-import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import I18n from "I18n";
import {
acceptance,
- updateCurrentUser,
count,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
+import I18n from "I18n";
+import { test } from "qunit";
acceptance("Group Members - Anonymous", function () {
test("Viewing Members as anon user", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-manage-categories-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-manage-categories-test.js
index 5a07bdba709..573b606da3d 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-manage-categories-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-manage-categories-test.js
@@ -1,11 +1,11 @@
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- updateCurrentUser,
count,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Managing Group Category Notification Defaults", function () {
test("As an anonymous user", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-manage-interaction-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-manage-interaction-test.js
index 244ae75e8f2..e5bf10edbbb 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-manage-interaction-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-manage-interaction-test.js
@@ -1,10 +1,10 @@
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- updateCurrentUser,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Managing Group Interaction Settings", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-manage-logs-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-manage-logs-test.js
index 0573a88d900..6ae37982a54 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-manage-logs-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-manage-logs-test.js
@@ -1,4 +1,4 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-manage-membership-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-manage-membership-test.js
index a130efdc464..5a955e12c92 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-manage-membership-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-manage-membership-test.js
@@ -1,11 +1,11 @@
-import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- updateCurrentUser,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Managing Group Membership", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-manage-profile-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-manage-profile-test.js
index dc4bdba41fa..67785934d18 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-manage-profile-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-manage-profile-test.js
@@ -1,11 +1,11 @@
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- updateCurrentUser,
count,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Managing Group Profile", function () {
test("As an anonymous user", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-manage-tags-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-manage-tags-test.js
index 248f56d0a2f..f309023e6d3 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-manage-tags-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-manage-tags-test.js
@@ -1,11 +1,11 @@
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- updateCurrentUser,
count,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Managing Group Tag Notification Defaults", function () {
test("As an anonymous user", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-requests-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-requests-test.js
index 40b321f1be5..08310e75800 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-requests-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-requests-test.js
@@ -1,4 +1,4 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/group-test.js b/app/assets/javascripts/discourse/tests/acceptance/group-test.js
index 4405e6e1632..2e92868be17 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/group-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/group-test.js
@@ -1,12 +1,12 @@
import {
- queryAll,
acceptance,
count,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
function setupGroupPretender(server, helper) {
server.post("/groups/Macdonald/request_membership", () => {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/groups-index-test.js b/app/assets/javascripts/discourse/tests/acceptance/groups-index-test.js
index 42da9a3b4c0..e1bc069f20e 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/groups-index-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/groups-index-test.js
@@ -1,12 +1,12 @@
-import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- invisible,
count,
- queryAll,
exists,
+ invisible,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
+import { test } from "qunit";
acceptance("Groups", function () {
test("Browsing Groups", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/groups-new-test.js b/app/assets/javascripts/discourse/tests/acceptance/groups-new-test.js
index 38eb83822dc..1b020084b36 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/groups-new-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/groups-new-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
acceptance("New Group - Anonymous", function () {
test("As an anon user", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/hamburger-menu-test.js b/app/assets/javascripts/discourse/tests/acceptance/hamburger-menu-test.js
index 93b3e8b74e9..618315426ed 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/hamburger-menu-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/hamburger-menu-test.js
@@ -1,10 +1,10 @@
-import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
- updateCurrentUser,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
+import { test } from "qunit";
acceptance("Opening the hamburger menu with some reviewables", function (
needs
diff --git a/app/assets/javascripts/discourse/tests/acceptance/hashtags-test.js b/app/assets/javascripts/discourse/tests/acceptance/hashtags-test.js
index 726397c9b5c..96db923d6e5 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/hashtags-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/hashtags-test.js
@@ -1,4 +1,4 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js b/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js
index bd877437dc1..7004ee6e14c 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import PreloadStore from "discourse/lib/preload-store";
+import { test } from "qunit";
acceptance("Invite Accept", function (needs) {
needs.settings({ full_name_required: true });
diff --git a/app/assets/javascripts/discourse/tests/acceptance/invite-show-user-fields-test.js b/app/assets/javascripts/discourse/tests/acceptance/invite-show-user-fields-test.js
index 8bc3b810e8c..a03c92e3a4b 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/invite-show-user-fields-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/invite-show-user-fields-test.js
@@ -1,7 +1,7 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { fillIn, click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
+import { click, fillIn, visit } from "@ember/test-helpers";
import PreloadStore from "discourse/lib/preload-store";
+import { test } from "qunit";
acceptance("Accept Invite - User Fields", function (needs) {
needs.site({
diff --git a/app/assets/javascripts/discourse/tests/acceptance/jump-to-test.js b/app/assets/javascripts/discourse/tests/acceptance/jump-to-test.js
index 5d72e2e2b7d..3afb2a1bab4 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/jump-to-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/jump-to-test.js
@@ -1,5 +1,5 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { click, fillIn, visit, currentURL } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
+import { click, currentURL, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("Jump to", function (needs) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/keyboard-shortcuts-test.js b/app/assets/javascripts/discourse/tests/acceptance/keyboard-shortcuts-test.js
index f9bdf7bd582..7228638e786 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/keyboard-shortcuts-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/keyboard-shortcuts-test.js
@@ -1,6 +1,6 @@
-import { triggerKeyEvent, visit, currentURL } from "@ember/test-helpers";
-import { test } from "qunit";
+import { currentURL, triggerKeyEvent, visit } from "@ember/test-helpers";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
acceptance("Keyboard Shortcuts", function (needs) {
needs.pretender((server, helper) => {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-redirect-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-redirect-test.js
index 6d3b26ff956..2731a37854a 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/login-redirect-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/login-redirect-test.js
@@ -1,6 +1,6 @@
-import { visit, currentRouteName } from "@ember/test-helpers";
-import { test } from "qunit";
+import { currentRouteName, visit } from "@ember/test-helpers";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
acceptance("Login redirect - anonymous", function () {
test("redirects login to default homepage", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-required-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-required-test.js
index 06d51060010..283ad787377 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/login-required-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/login-required-test.js
@@ -1,9 +1,9 @@
import {
- exists,
acceptance,
+ exists,
invisible,
} from "discourse/tests/helpers/qunit-helpers";
-import { click, visit, currentRouteName } from "@ember/test-helpers";
+import { click, currentRouteName, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("Login Required", function (needs) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-hide-email-address-taken-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-hide-email-address-taken-test.js
index 4c05406c6cc..d75eafea084 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-hide-email-address-taken-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-hide-email-address-taken-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
acceptance("Login with email - hide email address taken", function (needs) {
needs.settings({
diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-no-social-logins-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-no-social-logins-test.js
index 474db0e4fa1..b1496f7e281 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-no-social-logins-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-and-no-social-logins-test.js
@@ -1,7 +1,7 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-disabled-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-disabled-test.js
index 7a38f54f9da..84fcd4d5764 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-disabled-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-disabled-test.js
@@ -1,4 +1,4 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-test.js b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-test.js
index bca7b367e0b..b75514b9fc8 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/login-with-email-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/login-with-email-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { fillIn, click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { click, fillIn, visit } from "@ember/test-helpers";
import I18n from "I18n";
+import { test } from "qunit";
acceptance("Login with email", function (needs) {
needs.settings({
diff --git a/app/assets/javascripts/discourse/tests/acceptance/mobile-discovery-test.js b/app/assets/javascripts/discourse/tests/acceptance/mobile-discovery-test.js
index 106a1fb2e63..700554d1d37 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/mobile-discovery-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/mobile-discovery-test.js
@@ -1,6 +1,6 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Topic Discovery - Mobile", function (needs) {
needs.mobileView();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/mobile-sign-in-test.js b/app/assets/javascripts/discourse/tests/acceptance/mobile-sign-in-test.js
index 8a6449de519..3b84b022b0b 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/mobile-sign-in-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/mobile-sign-in-test.js
@@ -1,4 +1,4 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/mobile-users-test.js b/app/assets/javascripts/discourse/tests/acceptance/mobile-users-test.js
index 903a89d09bb..bd888676fdd 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/mobile-users-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/mobile-users-test.js
@@ -1,6 +1,6 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("User Directory - Mobile", function (needs) {
needs.mobileView();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/modal-test.js b/app/assets/javascripts/discourse/tests/acceptance/modal-test.js
index 6864a68c896..d2f16fb4254 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/modal-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/modal-test.js
@@ -1,14 +1,14 @@
-import { click, triggerKeyEvent, visit } from "@ember/test-helpers";
-import { skip, test } from "qunit";
-import I18n from "I18n";
-import { run } from "@ember/runloop";
import {
acceptance,
controllerFor,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import showModal from "discourse/lib/show-modal";
+import { click, triggerKeyEvent, visit } from "@ember/test-helpers";
+import { skip, test } from "qunit";
+import I18n from "I18n";
import hbs from "htmlbars-inline-precompile";
+import { run } from "@ember/runloop";
+import showModal from "discourse/lib/show-modal";
acceptance("Modal", function (needs) {
let _translations;
diff --git a/app/assets/javascripts/discourse/tests/acceptance/new-message-test.js b/app/assets/javascripts/discourse/tests/acceptance/new-message-test.js
index adef980eb07..764c1abd0a3 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/new-message-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/new-message-test.js
@@ -1,10 +1,10 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("New Message - Anonymous", function () {
test("accessing new-message route when logged out", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/new-topic-test.js b/app/assets/javascripts/discourse/tests/acceptance/new-topic-test.js
index 34292f54ad1..1d5a9bdbf6c 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/new-topic-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/new-topic-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("New Topic - Anonymous", function () {
test("accessing new-topic route when logged out", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/notifications-filter-test.js b/app/assets/javascripts/discourse/tests/acceptance/notifications-filter-test.js
index 7bceb89507f..14ccee5afc4 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/notifications-filter-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/notifications-filter-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Notifications filter", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/page-publishing-test.js b/app/assets/javascripts/discourse/tests/acceptance/page-publishing-test.js
index 11d8e71e1e5..cc77008f4f8 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/page-publishing-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/page-publishing-test.js
@@ -1,4 +1,4 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/password-reset-test.js b/app/assets/javascripts/discourse/tests/acceptance/password-reset-test.js
index 331900f93bf..9ddee1bee92 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/password-reset-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/password-reset-test.js
@@ -1,15 +1,15 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit, click, fillIn } from "@ember/test-helpers";
-import { test } from "qunit";
+import { click, fillIn, visit } from "@ember/test-helpers";
+import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import PreloadStore from "discourse/lib/preload-store";
import { parsePostData } from "discourse/tests/helpers/create-pretender";
-import DiscourseURL from "discourse/lib/url";
import sinon from "sinon";
+import { test } from "qunit";
acceptance("Password Reset", function (needs) {
needs.pretender((server, helper) => {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/personal-message-test.js b/app/assets/javascripts/discourse/tests/acceptance/personal-message-test.js
index 875c316ba12..1558b244eed 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/personal-message-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/personal-message-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Personal Message", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-keyboard-shortcut-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-keyboard-shortcut-test.js
index ba4bc64e521..4a517fae5b2 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/plugin-keyboard-shortcut-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-keyboard-shortcut-test.js
@@ -1,10 +1,10 @@
import { triggerKeyEvent, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import { acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { withPluginApi } from "discourse/lib/plugin-api";
-import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
import KeyboardShortcutInitializer from "discourse/initializers/keyboard-shortcuts";
+import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
+import { acceptance } from "discourse/tests/helpers/qunit-helpers";
import sinon from "sinon";
+import { test } from "qunit";
+import { withPluginApi } from "discourse/lib/plugin-api";
acceptance("Plugin Keyboard Shortcuts - Logged In", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-connector-class-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-connector-class-test.js
index 35ff37a03a8..c7028c7acb4 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-connector-class-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-connector-class-test.js
@@ -1,9 +1,9 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit, click } from "@ember/test-helpers";
-import { test } from "qunit";
-import { extraConnectorClass } from "discourse/lib/plugin-connectors";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
import { action } from "@ember/object";
+import { extraConnectorClass } from "discourse/lib/plugin-connectors";
import hbs from "htmlbars-inline-precompile";
+import { test } from "qunit";
const PREFIX = "javascripts/single-test/connectors";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-decorator-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-decorator-test.js
index 4ebef80da5d..99f0e800c8e 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-decorator-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-decorator-test.js
@@ -1,12 +1,12 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import { withPluginApi } from "discourse/lib/plugin-api";
import hbs from "htmlbars-inline-precompile";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
+import { withPluginApi } from "discourse/lib/plugin-api";
const PREFIX = "javascripts/single-test/connectors";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-multi-template-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-multi-template-test.js
index 77d19c53f9c..640916bfeed 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-multi-template-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-multi-template-test.js
@@ -1,8 +1,8 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { clearCache } from "discourse/lib/plugin-connectors";
import hbs from "htmlbars-inline-precompile";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
const HELLO = "javascripts/multi-test/connectors/user-profile-primary/hello";
const GOODBYE =
diff --git a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-single-template-test.js b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-single-template-test.js
index c6d92a5f068..edd4504072f 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-single-template-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/plugin-outlet-single-template-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
const CONNECTOR =
"javascripts/single-test/connectors/user-profile-primary/hello";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/post-admin-menu-test.js b/app/assets/javascripts/discourse/tests/acceptance/post-admin-menu-test.js
index 2b0817fb9b9..e69edbb5ad7 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/post-admin-menu-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/post-admin-menu-test.js
@@ -1,5 +1,5 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit, click } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("Post - Admin Menu - Anonymous", function () {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/preferences-test.js b/app/assets/javascripts/discourse/tests/acceptance/preferences-test.js
index 2a3ca2dcc2d..e22cfa10002 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/preferences-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/preferences-test.js
@@ -1,20 +1,20 @@
-import {
- visit,
- currentURL,
- currentRouteName,
- click,
- fillIn,
-} from "@ember/test-helpers";
-import { test } from "qunit";
-import I18n from "I18n";
import {
acceptance,
- updateCurrentUser,
- queryAll,
exists,
+ queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
+import {
+ click,
+ currentRouteName,
+ currentURL,
+ fillIn,
+ visit,
+} from "@ember/test-helpers";
+import I18n from "I18n";
import User from "discourse/models/user";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
function preferencesPretender(server, helper) {
server.post("/u/second_factors.json", () => {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/raw-plugin-outlet-test.js b/app/assets/javascripts/discourse/tests/acceptance/raw-plugin-outlet-test.js
index f8337a3f214..13a2f52e1e5 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/raw-plugin-outlet-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/raw-plugin-outlet-test.js
@@ -1,11 +1,11 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import compile from "handlebars-compiler";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import {
addRawTemplate,
removeRawTemplate,
} from "discourse-common/lib/raw-templates";
+import compile from "handlebars-compiler";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
const CONNECTOR =
"javascripts/raw-test/connectors/topic-list-before-status/lala";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/redirect-to-top-test.js b/app/assets/javascripts/discourse/tests/acceptance/redirect-to-top-test.js
index f698cfe2f4a..542e31b22a8 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/redirect-to-top-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/redirect-to-top-test.js
@@ -1,10 +1,10 @@
-import { visit, currentRouteName } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { currentRouteName, visit } from "@ember/test-helpers";
import DiscoveryFixtures from "discourse/tests/fixtures/discovery-fixtures";
+import { test } from "qunit";
acceptance("Redirect to Top", function (needs) {
needs.pretender((server, helper) => {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/reports-test.js b/app/assets/javascripts/discourse/tests/acceptance/reports-test.js
index f09734ee4ee..14928dafe2d 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/reports-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/reports-test.js
@@ -1,6 +1,6 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Reports", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/review-test.js b/app/assets/javascripts/discourse/tests/acceptance/review-test.js
index 4ec8ebb6752..a8dfcd18812 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/review-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/review-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit, click, fillIn } from "@ember/test-helpers";
-import { test } from "qunit";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
+import { click, fillIn, visit } from "@ember/test-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Review", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/search-full-test.js b/app/assets/javascripts/discourse/tests/acceptance/search-full-test.js
index f22827afa84..62c57421b8f 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/search-full-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/search-full-test.js
@@ -1,14 +1,14 @@
-import { triggerKeyEvent, visit, fillIn, click } from "@ember/test-helpers";
+import {
+ acceptance,
+ exists,
+ queryAll,
+ selectDate,
+ visible,
+ waitFor,
+} from "discourse/tests/helpers/qunit-helpers";
+import { click, fillIn, triggerKeyEvent, visit } from "@ember/test-helpers";
import { skip, test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
-import {
- selectDate,
- acceptance,
- waitFor,
- visible,
- queryAll,
- exists,
-} from "discourse/tests/helpers/qunit-helpers";
acceptance("Search - Full Page", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/search-mobile-test.js b/app/assets/javascripts/discourse/tests/acceptance/search-mobile-test.js
index bad0576f3c2..2aefc5efa5f 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/search-mobile-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/search-mobile-test.js
@@ -1,7 +1,7 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/search-test.js b/app/assets/javascripts/discourse/tests/acceptance/search-test.js
index d7b7b820777..00bd5bc22d5 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/search-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/search-test.js
@@ -1,12 +1,12 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { click, triggerKeyEvent, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { click, fillIn, triggerKeyEvent, visit } from "@ember/test-helpers";
import searchFixtures from "discourse/tests/fixtures/search-fixtures";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Search - Anonymous", function (needs) {
let calledEmpty = false;
diff --git a/app/assets/javascripts/discourse/tests/acceptance/share-and-invite-desktop-test.js b/app/assets/javascripts/discourse/tests/acceptance/share-and-invite-desktop-test.js
index 1030da62315..39cc6dfac52 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/share-and-invite-desktop-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/share-and-invite-desktop-test.js
@@ -1,7 +1,7 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/share-and-invite-mobile-test.js b/app/assets/javascripts/discourse/tests/acceptance/share-and-invite-mobile-test.js
index ee21e0e23f8..3ec3650a042 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/share-and-invite-mobile-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/share-and-invite-mobile-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Share and Invite modal - mobile", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/shared-drafts-test.js b/app/assets/javascripts/discourse/tests/acceptance/shared-drafts-test.js
index a69f3bec8e2..5e6d236f7b1 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/shared-drafts-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/shared-drafts-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Shared Drafts", function () {
test("Viewing", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/sign-in-test.js b/app/assets/javascripts/discourse/tests/acceptance/sign-in-test.js
index ed467e7eef3..62df079754f 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/sign-in-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/sign-in-test.js
@@ -1,7 +1,7 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { skip, test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/static-test.js b/app/assets/javascripts/discourse/tests/acceptance/static-test.js
index d955e08fe31..55fa797140f 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/static-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/static-test.js
@@ -1,6 +1,6 @@
-import { visit, currentRouteName } from "@ember/test-helpers";
-import { test } from "qunit";
import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
+import { currentRouteName, visit } from "@ember/test-helpers";
+import { test } from "qunit";
acceptance("Static", function () {
test("Static Pages", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/tag-groups-test.js b/app/assets/javascripts/discourse/tests/acceptance/tag-groups-test.js
index 03131de6ce2..c3ab9d85d8e 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/tag-groups-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/tag-groups-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("Tag Groups", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/tags-intersection-test.js b/app/assets/javascripts/discourse/tests/acceptance/tags-intersection-test.js
index f05a989c63a..e2747520a16 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/tags-intersection-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/tags-intersection-test.js
@@ -1,4 +1,4 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/tags-test.js b/app/assets/javascripts/discourse/tests/acceptance/tags-test.js
index 663aedc781c..a3d339afece 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/tags-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/tags-test.js
@@ -1,11 +1,11 @@
-import { click, visit, currentURL } from "@ember/test-helpers";
-import { test } from "qunit";
import {
- updateCurrentUser,
acceptance,
- queryAll,
exists,
+ queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, currentURL, visit } from "@ember/test-helpers";
+import { test } from "qunit";
acceptance("Tags", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-admin-menu-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-admin-menu-test.js
index ed8dde1117c..cba99e8f8f7 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-admin-menu-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-admin-menu-test.js
@@ -1,6 +1,6 @@
import {
- exists,
acceptance,
+ exists,
updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-anonymous-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-anonymous-test.js
index f131b7620f7..d07cac23812 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-anonymous-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-anonymous-test.js
@@ -1,10 +1,10 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Topic - Anonymous", function () {
test("Enter a Topic", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-discovery-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-discovery-test.js
index f82c20f42a1..627da729122 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-discovery-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-discovery-test.js
@@ -1,14 +1,14 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import DiscourseURL from "discourse/lib/url";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import MessageBus from "message-bus-client";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
import sinon from "sinon";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Topic Discovery", function (needs) {
needs.settings({
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js
index 5893d33da66..bdc5e543a38 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-edit-timer-test.js
@@ -1,7 +1,7 @@
import {
acceptance,
- updateCurrentUser,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
import { click, fillIn, visit } from "@ember/test-helpers";
import { skip, test } from "qunit";
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-footer-buttons-mobile-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-footer-buttons-mobile-test.js
index 1950e23d2cf..bbf42fdf7df 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-footer-buttons-mobile-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-footer-buttons-mobile-test.js
@@ -1,10 +1,10 @@
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
-import { withPluginApi } from "discourse/lib/plugin-api";
-import { clearTopicFooterButtons } from "discourse/lib/register-topic-footer-button";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { clearTopicFooterButtons } from "discourse/lib/register-topic-footer-button";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
+import { withPluginApi } from "discourse/lib/plugin-api";
let _test;
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-list-tracker-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-list-tracker-test.js
index 4b3cb170e97..72d747d0445 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-list-tracker-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-list-tracker-test.js
@@ -1,11 +1,11 @@
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import { acceptance } from "discourse/tests/helpers/qunit-helpers";
import {
nextTopicUrl,
previousTopicUrl,
setTopicId,
} from "discourse/lib/topic-list-tracker";
+import { acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Topic list tracking", function () {
test("Navigation", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-move-posts-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-move-posts-test.js
index fba4550cd2c..442b109dcd2 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-move-posts-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-move-posts-test.js
@@ -1,7 +1,7 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
acceptance("Topic move posts", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-notifications-button-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-notifications-button-test.js
index 8b36d5211ab..b345fb36a1c 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-notifications-button-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-notifications-button-test.js
@@ -1,7 +1,7 @@
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("Topic Notifications button", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-quote-button-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-quote-button-test.js
index 56686feec7a..912c5a61359 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-quote-button-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-quote-button-test.js
@@ -1,11 +1,11 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
-import { test } from "qunit";
import I18n from "I18n";
+import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
function selectText(selector) {
const range = document.createRange();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js
index 77d92442ad1..dbb5df668a5 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js
@@ -1,15 +1,15 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
visible,
} from "discourse/tests/helpers/qunit-helpers";
-import { click, triggerKeyEvent, fillIn, visit } from "@ember/test-helpers";
-import { test } from "qunit";
+import { click, fillIn, triggerKeyEvent, visit } from "@ember/test-helpers";
import I18n from "I18n";
-import { withPluginApi } from "discourse/lib/plugin-api";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
import { IMAGE_VERSION as v } from "pretty-text/emoji/version";
+import { withPluginApi } from "discourse/lib/plugin-api";
function selectText(selector) {
const range = document.createRange();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/unknown-test.js b/app/assets/javascripts/discourse/tests/acceptance/unknown-test.js
index aa2e5e39318..b552dcfeb61 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/unknown-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/unknown-test.js
@@ -1,5 +1,5 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit, currentURL } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
+import { currentURL, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("Unknown", function (needs) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-anonymous-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-anonymous-test.js
index 78b6339456b..5e86c5c869f 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/user-anonymous-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/user-anonymous-test.js
@@ -1,10 +1,10 @@
-import { visit, currentURL, currentRouteName } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
count,
exists,
} from "discourse/tests/helpers/qunit-helpers";
+import { currentRouteName, currentURL, visit } from "@ember/test-helpers";
+import { test } from "qunit";
acceptance("User Anonymous", function () {
test("Root URL", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-bookmarks-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-bookmarks-test.js
index a86878a1e18..79c6dd90e1f 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/user-bookmarks-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/user-bookmarks-test.js
@@ -1,13 +1,13 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
-import { test } from "qunit";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
-import userFixtures from "discourse/tests/fixtures/user-fixtures";
import { cloneJSON } from "discourse-common/lib/object";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
+import userFixtures from "discourse/tests/fixtures/user-fixtures";
acceptance("User's bookmarks", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-card-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-card-test.js
index 4785de3e12a..3dff64d71db 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/user-card-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/user-card-test.js
@@ -1,8 +1,8 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit, click } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
+import User from "discourse/models/user";
import { test } from "qunit";
import userFixtures from "discourse/tests/fixtures/user-fixtures";
-import User from "discourse/models/user";
acceptance("User Card - Show Local Time", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-drafts-stream-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-drafts-stream-test.js
index 7938bef36ec..2f39a4cfdec 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/user-drafts-stream-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/user-drafts-stream-test.js
@@ -1,9 +1,9 @@
import {
- queryAll,
acceptance,
+ queryAll,
visible,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit, click } from "@ember/test-helpers";
+import { click, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance("User Drafts", function (needs) {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-preferences-interface-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-preferences-interface-test.js
index 644f06b36c5..8f1de7289f9 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/user-preferences-interface-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/user-preferences-interface-test.js
@@ -1,14 +1,14 @@
import {
- queryAll,
- exists,
acceptance,
+ exists,
+ queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import { visit, click } from "@ember/test-helpers";
-import { test } from "qunit";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
-import Site from "discourse/models/site";
-import Session from "discourse/models/session";
+import { click, visit } from "@ember/test-helpers";
import cookie, { removeCookie } from "discourse/lib/cookie";
+import Session from "discourse/models/session";
+import Site from "discourse/models/site";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { test } from "qunit";
acceptance("User Preferences - Interface", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-test.js
index d72318b95d1..2c747253a65 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/user-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/user-test.js
@@ -1,10 +1,10 @@
-import { visit, currentRouteName, click } from "@ember/test-helpers";
-import { test } from "qunit";
import {
acceptance,
exists,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
+import { click, currentRouteName, visit } from "@ember/test-helpers";
+import { test } from "qunit";
acceptance("User Routes", function (needs) {
needs.user();
diff --git a/app/assets/javascripts/discourse/tests/acceptance/users-test.js b/app/assets/javascripts/discourse/tests/acceptance/users-test.js
index 79469bf2c87..72899463c28 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/users-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/users-test.js
@@ -1,6 +1,6 @@
-import { exists, acceptance } from "discourse/tests/helpers/qunit-helpers";
-import { visit } from "@ember/test-helpers";
+import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
+import { visit } from "@ember/test-helpers";
acceptance("User Directory", function () {
test("Visit Page", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/helpers/component-test.js b/app/assets/javascripts/discourse/tests/helpers/component-test.js
index e2edd2ead64..3670d265334 100644
--- a/app/assets/javascripts/discourse/tests/helpers/component-test.js
+++ b/app/assets/javascripts/discourse/tests/helpers/component-test.js
@@ -1,13 +1,13 @@
import EmberObject from "@ember/object";
-import createStore from "discourse/tests/helpers/create-store";
-import { autoLoadModules } from "discourse/initializers/auto-load-modules";
+import Session from "discourse/models/session";
+import Site from "discourse/models/site";
+import { TestModuleForComponent } from "@ember/test-helpers";
import TopicTrackingState from "discourse/models/topic-tracking-state";
import User from "discourse/models/user";
-import Site from "discourse/models/site";
-import Session from "discourse/models/session";
+import { autoLoadModules } from "discourse/initializers/auto-load-modules";
+import createStore from "discourse/tests/helpers/create-store";
import { currentSettings } from "discourse/tests/helpers/site-settings";
import { test } from "qunit";
-import { TestModuleForComponent } from "@ember/test-helpers";
export function setupRenderingTest(hooks) {
let testModule;
diff --git a/app/assets/javascripts/discourse/tests/helpers/create-pretender.js b/app/assets/javascripts/discourse/tests/helpers/create-pretender.js
index 2a2431afd0c..5665df651d0 100644
--- a/app/assets/javascripts/discourse/tests/helpers/create-pretender.js
+++ b/app/assets/javascripts/discourse/tests/helpers/create-pretender.js
@@ -1,5 +1,5 @@
-import User from "discourse/models/user";
import Pretender from "pretender";
+import User from "discourse/models/user";
export function parsePostData(query) {
const result = {};
diff --git a/app/assets/javascripts/discourse/tests/helpers/create-store.js b/app/assets/javascripts/discourse/tests/helpers/create-store.js
index 80eb23704ce..ad15ffd4fa3 100644
--- a/app/assets/javascripts/discourse/tests/helpers/create-store.js
+++ b/app/assets/javascripts/discourse/tests/helpers/create-store.js
@@ -1,6 +1,6 @@
-import Store from "discourse/models/store";
-import RestAdapter from "discourse/adapters/rest";
import KeyValueStore from "discourse/lib/key-value-store";
+import RestAdapter from "discourse/adapters/rest";
+import Store from "discourse/models/store";
import TopicListAdapter from "discourse/adapters/topic-list";
import TopicTrackingState from "discourse/models/topic-tracking-state";
import { buildResolver } from "discourse-common/resolver";
diff --git a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js
index 6ac05479492..64a66c7774a 100644
--- a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js
+++ b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js
@@ -1,43 +1,43 @@
-import { Promise } from "rsvp";
-import { isEmpty } from "@ember/utils";
-import { run, later } from "@ember/runloop";
-import sessionFixtures from "discourse/tests/fixtures/session-fixtures";
-import HeaderComponent from "discourse/components/site-header";
-import { forceMobile, resetMobile } from "discourse/lib/mobile";
-import { resetPluginApi } from "discourse/lib/plugin-api";
+import QUnit, { module } from "qunit";
import {
clearCache as clearOutletCache,
resetExtraClasses,
} from "discourse/lib/plugin-connectors";
-import { clearHTMLCache } from "discourse/helpers/custom-html";
-import { flushMap } from "discourse/models/store";
import { clearRewrites, setURLContainer } from "discourse/lib/url";
-import { initSearchData } from "discourse/widgets/search-menu";
-import { resetDecorators } from "discourse/widgets/widget";
-import { resetWidgetCleanCallbacks } from "discourse/components/mount-widget";
-import { resetTopicTitleDecorators } from "discourse/components/topic-title";
-import { resetDecorators as resetPostCookedDecorators } from "discourse/widgets/post-cooked";
-import { resetDecorators as resetPluginOutletDecorators } from "discourse/components/plugin-connector";
-import { resetUsernameDecorators } from "discourse/helpers/decorate-username-selector";
-import { resetCache as resetOneboxCache } from "pretty-text/oneboxer";
-import { resetCustomPostMessageCallbacks } from "discourse/controllers/topic";
-import { _clearSnapshots } from "select-kit/components/composer-actions";
-import User from "discourse/models/user";
-import { mapRoutes } from "discourse/mapping-router";
import {
currentSettings,
mergeSettings,
} from "discourse/tests/helpers/site-settings";
+import { forceMobile, resetMobile } from "discourse/lib/mobile";
import { getOwner, setDefaultOwner } from "discourse-common/lib/get-owner";
-import { setTopicList } from "discourse/lib/topic-list-tracker";
-import { moduleFor } from "ember-qunit";
-import QUnit, { module } from "qunit";
-import siteFixtures from "discourse/tests/fixtures/site-fixtures";
+import { later, run } from "@ember/runloop";
+import HeaderComponent from "discourse/components/site-header";
+import { Promise } from "rsvp";
import Site from "discourse/models/site";
+import User from "discourse/models/user";
+import { _clearSnapshots } from "select-kit/components/composer-actions";
+import { clearHTMLCache } from "discourse/helpers/custom-html";
import createStore from "discourse/tests/helpers/create-store";
-import { getApplication } from "@ember/test-helpers";
import deprecated from "discourse-common/lib/deprecated";
+import { flushMap } from "discourse/models/store";
+import { getApplication } from "@ember/test-helpers";
+import { initSearchData } from "discourse/widgets/search-menu";
+import { isEmpty } from "@ember/utils";
+import { mapRoutes } from "discourse/mapping-router";
+import { moduleFor } from "ember-qunit";
+import { resetCustomPostMessageCallbacks } from "discourse/controllers/topic";
+import { resetDecorators } from "discourse/widgets/widget";
+import { resetCache as resetOneboxCache } from "pretty-text/oneboxer";
+import { resetPluginApi } from "discourse/lib/plugin-api";
+import { resetDecorators as resetPluginOutletDecorators } from "discourse/components/plugin-connector";
+import { resetDecorators as resetPostCookedDecorators } from "discourse/widgets/post-cooked";
+import { resetTopicTitleDecorators } from "discourse/components/topic-title";
+import { resetUsernameDecorators } from "discourse/helpers/decorate-username-selector";
+import { resetWidgetCleanCallbacks } from "discourse/components/mount-widget";
+import sessionFixtures from "discourse/tests/fixtures/session-fixtures";
+import { setTopicList } from "discourse/lib/topic-list-tracker";
import sinon from "sinon";
+import siteFixtures from "discourse/tests/fixtures/site-fixtures";
export function currentUser() {
return User.create(sessionFixtures["/session/current.json"].current_user);
diff --git a/app/assets/javascripts/discourse/tests/helpers/select-kit-helper.js b/app/assets/javascripts/discourse/tests/helpers/select-kit-helper.js
index a8a4377b484..5058dd9e1aa 100644
--- a/app/assets/javascripts/discourse/tests/helpers/select-kit-helper.js
+++ b/app/assets/javascripts/discourse/tests/helpers/select-kit-helper.js
@@ -1,7 +1,7 @@
-import { queryAll, exists } from "discourse/tests/helpers/qunit-helpers";
-import { moduleForComponent } from "ember-qunit";
-import { isEmpty } from "@ember/utils";
import { click, fillIn } from "@ember/test-helpers";
+import { exists, queryAll } from "discourse/tests/helpers/qunit-helpers";
+import { isEmpty } from "@ember/utils";
+import { moduleForComponent } from "ember-qunit";
function checkSelectKitIsNotExpanded(selector) {
if (queryAll(selector).hasClass("is-expanded")) {
diff --git a/app/assets/javascripts/discourse/tests/helpers/widget-test.js b/app/assets/javascripts/discourse/tests/helpers/widget-test.js
index 91f8daaa48d..ed1514e0d4c 100644
--- a/app/assets/javascripts/discourse/tests/helpers/widget-test.js
+++ b/app/assets/javascripts/discourse/tests/helpers/widget-test.js
@@ -1,6 +1,6 @@
-import { moduleForComponent } from "ember-qunit";
-import componentTest from "discourse/tests/helpers/component-test";
import { addPretenderCallback } from "discourse/tests/helpers/qunit-helpers";
+import componentTest from "discourse/tests/helpers/component-test";
+import { moduleForComponent } from "ember-qunit";
export function moduleForWidget(name, options = {}) {
let fullName = `widget:${name}`;
diff --git a/app/assets/javascripts/discourse/tests/integration/components/ace-editor-test.js b/app/assets/javascripts/discourse/tests/integration/components/ace-editor-test.js
index 83f94cc4c9a..e711a2b2799 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/ace-editor-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/ace-editor-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | ace-editor", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/admin-report-test.js b/app/assets/javascripts/discourse/tests/integration/components/admin-report-test.js
index 878c0079420..fdc398de9ae 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/admin-report-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/admin-report-test.js
@@ -1,13 +1,13 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
exists,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import pretender from "discourse/tests/helpers/create-pretender";
import { click } from "@ember/test-helpers";
+import pretender from "discourse/tests/helpers/create-pretender";
discourseModule("Integration | Component | admin-report", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/badge-title-test.js b/app/assets/javascripts/discourse/tests/integration/components/badge-title-test.js
index 8f8ee9e9ac4..a2ffe1ab182 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/badge-title-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/badge-title-test.js
@@ -1,11 +1,11 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
import EmberObject from "@ember/object";
-import pretender from "discourse/tests/helpers/create-pretender";
import { click } from "@ember/test-helpers";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import pretender from "discourse/tests/helpers/create-pretender";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
discourseModule("Integration | Component | badge-title", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/cook-text-test.js b/app/assets/javascripts/discourse/tests/integration/components/cook-text-test.js
index 0477ecb84ff..c349bcac79d 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/cook-text-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/cook-text-test.js
@@ -1,10 +1,10 @@
-import {
- queryAll,
- discourseModule,
-} from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import {
+ discourseModule,
+ queryAll,
+} from "discourse/tests/helpers/qunit-helpers";
import pretender from "discourse/tests/helpers/create-pretender";
import { resetCache } from "pretty-text/upload-short-url";
diff --git a/app/assets/javascripts/discourse/tests/integration/components/d-button-test.js b/app/assets/javascripts/discourse/tests/integration/components/d-button-test.js
index a79aeceb873..3341ecc19e5 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/d-button-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/d-button-test.js
@@ -1,12 +1,12 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
exists,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import I18n from "I18n";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | d-button", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/d-editor-test.js b/app/assets/javascripts/discourse/tests/integration/components/d-editor-test.js
index c116dab8af2..aa11d74479f 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/d-editor-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/d-editor-test.js
@@ -1,20 +1,20 @@
+import { click, fillIn } from "@ember/test-helpers";
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import I18n from "I18n";
-import { next } from "@ember/runloop";
-import { clearToolbarCallbacks } from "discourse/components/d-editor";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import { withPluginApi } from "discourse/lib/plugin-api";
-import formatTextWithSelection from "discourse/tests/helpers/d-editor-helper";
import {
- setTextareaSelection,
getTextareaSelection,
+ setTextareaSelection,
} from "discourse/tests/helpers/textarea-selection-helper";
-import { fillIn, click } from "@ember/test-helpers";
+import I18n from "I18n";
+import { clearToolbarCallbacks } from "discourse/components/d-editor";
+import formatTextWithSelection from "discourse/tests/helpers/d-editor-helper";
+import { next } from "@ember/runloop";
+import { withPluginApi } from "discourse/lib/plugin-api";
discourseModule("Integration | Component | d-editor", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/d-icon-test.js b/app/assets/javascripts/discourse/tests/integration/components/d-icon-test.js
index 4f1f69ee0d2..8a6c97e0054 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/d-icon-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/d-icon-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | d-icon", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/date-input-test.js b/app/assets/javascripts/discourse/tests/integration/components/date-input-test.js
index abc1246b0ee..22dd41ac425 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/date-input-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/date-input-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { click } from "@ember/test-helpers";
function dateInput() {
diff --git a/app/assets/javascripts/discourse/tests/integration/components/date-time-input-range-test.js b/app/assets/javascripts/discourse/tests/integration/components/date-time-input-range-test.js
index e9d035f879e..eade3cffdff 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/date-time-input-range-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/date-time-input-range-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
function fromDateInput() {
return queryAll(".from.d-date-time-input .date-picker")[0];
diff --git a/app/assets/javascripts/discourse/tests/integration/components/date-time-input-test.js b/app/assets/javascripts/discourse/tests/integration/components/date-time-input-test.js
index b010643c0b5..a660917a36f 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/date-time-input-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/date-time-input-test.js
@@ -1,11 +1,11 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
exists,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { click } from "@ember/test-helpers";
function dateInput() {
diff --git a/app/assets/javascripts/discourse/tests/integration/components/highlighted-code-test.js b/app/assets/javascripts/discourse/tests/integration/components/highlighted-code-test.js
index 4f748269ccf..85aed0811fc 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/highlighted-code-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/highlighted-code-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
const LONG_CODE_BLOCK = "puts a\n".repeat(15000);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/html-safe-helper-test.js b/app/assets/javascripts/discourse/tests/integration/components/html-safe-helper-test.js
index 27e71cee900..eda366d2953 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/html-safe-helper-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/html-safe-helper-test.js
@@ -1,7 +1,7 @@
-import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
discourseModule("Integration | Component | html-safe-helper", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/iframed-html-test.js b/app/assets/javascripts/discourse/tests/integration/components/iframed-html-test.js
index d2ca70ba619..c9312f99bc6 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/iframed-html-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/iframed-html-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | iframed-html", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/image-uploader-test.js b/app/assets/javascripts/discourse/tests/integration/components/image-uploader-test.js
index d1b5b74b729..b100fb4b851 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/image-uploader-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/image-uploader-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { click } from "@ember/test-helpers";
discourseModule("Integration | Component | image-uploader", function (hooks) {
diff --git a/app/assets/javascripts/discourse/tests/integration/components/load-more-test.js b/app/assets/javascripts/discourse/tests/integration/components/load-more-test.js
index a9d2138b52f..cdfc720f8ef 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/load-more-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/load-more-test.js
@@ -1,8 +1,8 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import { configureEyeline } from "discourse/lib/eyeline";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import { configureEyeline } from "discourse/lib/eyeline";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
discourseModule("Integration | Component | load-more", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/secret-value-list-test.js b/app/assets/javascripts/discourse/tests/integration/components/secret-value-list-test.js
index 44a80873ae8..684ef966d14 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/secret-value-list-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/secret-value-list-test.js
@@ -1,12 +1,12 @@
+import { click, fillIn } from "@ember/test-helpers";
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import I18n from "I18n";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import { fillIn, click } from "@ember/test-helpers";
discourseModule("Integration | Component | secret-value-list", function (
hooks
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/api-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/api-test.js
index 5a4876dfc93..e352e97fee1 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/api-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/api-test.js
@@ -1,16 +1,16 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import selectKit, {
- setDefaultState,
DEFAULT_CONTENT,
+ setDefaultState,
} from "discourse/tests/helpers/select-kit-helper";
-import { withPluginApi } from "discourse/lib/plugin-api";
import { clearCallbacks } from "select-kit/mixins/plugin-api";
+import { withPluginApi } from "discourse/lib/plugin-api";
discourseModule("Integration | Component | select-kit:api", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-chooser-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-chooser-test.js
index a7ca05875ed..080838a6568 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-chooser-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-chooser-test.js
@@ -1,9 +1,9 @@
-import createStore from "discourse/tests/helpers/create-store";
-import I18n from "I18n";
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import I18n from "I18n";
+import createStore from "discourse/tests/helpers/create-store";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
function template(options = []) {
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-drop-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-drop-test.js
index 39c13b7f228..4cc1a4b013a 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-drop-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/category-drop-test.js
@@ -1,17 +1,17 @@
-import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
-import I18n from "I18n";
-import DiscourseURL from "discourse/lib/url";
-import Category from "discourse/models/category";
+import {
+ ALL_CATEGORIES_ID,
+ NO_CATEGORIES_ID,
+} from "select-kit/components/category-drop";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
-import {
- NO_CATEGORIES_ID,
- ALL_CATEGORIES_ID,
-} from "select-kit/components/category-drop";
+import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
+import Category from "discourse/models/category";
+import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
import { set } from "@ember/object";
import sinon from "sinon";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
function initCategories(context) {
const categories = context.site.categoriesList;
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/combo-box-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/combo-box-test.js
index 37bc4cac730..fbd9e4cc03d 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/combo-box-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/combo-box-test.js
@@ -1,9 +1,9 @@
-import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
import { click } from "@ember/test-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
const DEFAULT_CONTENT = [
{ id: 1, name: "foo" },
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/dropdown-select-box-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/dropdown-select-box-test.js
index 124c31a5c76..01ddec94dcc 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/dropdown-select-box-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/dropdown-select-box-test.js
@@ -1,7 +1,7 @@
-import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
const DEFAULT_CONTENT = [
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/list-setting-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/list-setting-test.js
index 45a18068473..d7dfbe6a3f5 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/list-setting-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/list-setting-test.js
@@ -1,7 +1,7 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
function template(options = []) {
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/mini-tag-chooser-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/mini-tag-chooser-test.js
index bd1431e25b3..9eb3fb1574f 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/mini-tag-chooser-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/mini-tag-chooser-test.js
@@ -1,12 +1,12 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import I18n from "I18n";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
discourseModule(
"Integration | Component | select-kit/mini-tag-chooser",
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/multi-select-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/multi-select-test.js
index 1ac0a366c0a..503966d994b 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/multi-select-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/multi-select-test.js
@@ -1,7 +1,7 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
function template(options = []) {
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/notifications-button-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/notifications-button-test.js
index 6783f1edc38..a85589fa0d0 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/notifications-button-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/notifications-button-test.js
@@ -1,10 +1,10 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
import selectKit, {
setDefaultState,
} from "discourse/tests/helpers/select-kit-helper";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
discourseModule(
"Integration | Component | select-kit/notifications-button",
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/pinned-options-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/pinned-options-test.js
index 561d33661c5..8ac593a7682 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/pinned-options-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/pinned-options-test.js
@@ -1,9 +1,9 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import Topic from "discourse/models/topic";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
const buildTopic = function (pinned = true) {
return Topic.create({
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/single-select-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/single-select-test.js
index fc6acb60023..dd7972d4907 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/single-select-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/single-select-test.js
@@ -1,9 +1,9 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import I18n from "I18n";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
function template(options = []) {
return `
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/tag-drop-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/tag-drop-test.js
index fc4aa2a88f0..55df881fdf1 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/tag-drop-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/tag-drop-test.js
@@ -1,12 +1,12 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
import I18n from "I18n";
import Site from "discourse/models/site";
-import { set } from "@ember/object";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import pretender from "discourse/tests/helpers/create-pretender";
import selectKit from "discourse/tests/helpers/select-kit-helper";
+import { set } from "@ember/object";
function initTags(context) {
const categories = context.site.categoriesList;
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/topic-notifications-button-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/topic-notifications-button-test.js
index 61ceaf1736a..3e991248cc2 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/topic-notifications-button-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/topic-notifications-button-test.js
@@ -1,10 +1,10 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import I18n from "I18n";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import I18n from "I18n";
import Topic from "discourse/models/topic";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
const buildTopic = function (level, archetype = "regular") {
return Topic.create({
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/topic-notifications-options-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/topic-notifications-options-test.js
index a274b44f3b3..5be20fc32b2 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/topic-notifications-options-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/topic-notifications-options-test.js
@@ -1,10 +1,10 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import I18n from "I18n";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import I18n from "I18n";
import Topic from "discourse/models/topic";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
const buildTopic = function (archetype) {
return Topic.create({
diff --git a/app/assets/javascripts/discourse/tests/integration/components/select-kit/user-chooser-test.js b/app/assets/javascripts/discourse/tests/integration/components/select-kit/user-chooser-test.js
index f6233da3645..8eae6bf75b2 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/select-kit/user-chooser-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/select-kit/user-chooser-test.js
@@ -1,7 +1,7 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
discourseModule("Integration | Component | select-kit/user-chooser", function (
diff --git a/app/assets/javascripts/discourse/tests/integration/components/simple-list-test.js b/app/assets/javascripts/discourse/tests/integration/components/simple-list-test.js
index a9d3236d233..c0cfb63b69b 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/simple-list-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/simple-list-test.js
@@ -1,11 +1,11 @@
+import { click, fillIn, triggerKeyEvent } from "@ember/test-helpers";
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import { click, triggerKeyEvent, fillIn } from "@ember/test-helpers";
discourseModule("Integration | Component | simple-list", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/text-field-test.js b/app/assets/javascripts/discourse/tests/integration/components/text-field-test.js
index 3a5b612c584..ab9ba425ab6 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/text-field-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/text-field-test.js
@@ -1,13 +1,13 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import sinon from "sinon";
import I18n from "I18n";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { fillIn } from "@ember/test-helpers";
+import sinon from "sinon";
discourseModule("Integration | Component | text-field", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/time-input-test.js b/app/assets/javascripts/discourse/tests/integration/components/time-input-test.js
index 07f5e896ab5..f30a3968782 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/time-input-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/time-input-test.js
@@ -1,8 +1,8 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
function setTime(time) {
this.setProperties(time);
diff --git a/app/assets/javascripts/discourse/tests/integration/components/user-selector-test.js b/app/assets/javascripts/discourse/tests/integration/components/user-selector-test.js
index 35d44053f58..d3def0d2b80 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/user-selector-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/user-selector-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
function paste(element, text) {
let e = new Event("paste");
diff --git a/app/assets/javascripts/discourse/tests/integration/components/value-list-test.js b/app/assets/javascripts/discourse/tests/integration/components/value-list-test.js
index 84795c9c628..b49b6ccc4e5 100644
--- a/app/assets/javascripts/discourse/tests/integration/components/value-list-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/components/value-list-test.js
@@ -1,12 +1,12 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import selectKit from "discourse/tests/helpers/select-kit-helper";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { click } from "@ember/test-helpers";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
discourseModule("Integration | Component | value-list", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/actions-summary-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/actions-summary-test.js
index e717e6a3d4a..794c95338b7 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/actions-summary-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/actions-summary-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | Widget | actions-summary", function (
hooks
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/avatar-flair-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/avatar-flair-test.js
index 3a5c899ca66..49a11aa97d9 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/avatar-flair-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/avatar-flair-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | Widget | avatar-flair", function (
hooks
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/button-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/button-test.js
index 196c02b0d62..343aeb729e7 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/button-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/button-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | Widget | button", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/default-notification-item-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/default-notification-item-test.js
index ddf2365ac54..40cd6e29840 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/default-notification-item-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/default-notification-item-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import EmberObject from "@ember/object";
import pretender from "discourse/tests/helpers/create-pretender";
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/hamburger-menu-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/hamburger-menu-test.js
index 74fa5b7c08f..43638125ea7 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/hamburger-menu-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/hamburger-menu-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { NotificationLevels } from "discourse/lib/notification-levels";
const topCategoryIds = [2, 3, 1];
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/header-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/header-test.js
index b4f74d17467..512eeaa4223 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/header-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/header-test.js
@@ -1,11 +1,11 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
exists,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { click } from "@ember/test-helpers";
discourseModule("Integration | Component | Widget | header", function (hooks) {
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/home-logo-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/home-logo-test.js
index 91046ece555..bf5d3d36842 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/home-logo-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/home-logo-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import Session from "discourse/models/session";
const bigLogo = "/images/d-logo-sketch.png?test";
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/post-links-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/post-links-test.js
index 43510cf083a..6a24877b12c 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/post-links-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/post-links-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { click } from "@ember/test-helpers";
discourseModule("Integration | Component | Widget | post-links", function (
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/post-menu-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/post-menu-test.js
index 2bf649baeb2..a497cae817e 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/post-menu-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/post-menu-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import { withPluginApi } from "discourse/lib/plugin-api";
discourseModule("Integration | Component | Widget | post-menu", function (
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/post-stream-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/post-stream-test.js
index 69063f7d2e6..5d4ce3ff92c 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/post-stream-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/post-stream-test.js
@@ -1,12 +1,12 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import Topic from "discourse/models/topic";
import Post from "discourse/models/post";
+import Topic from "discourse/models/topic";
function postStreamTest(name, attrs) {
componentTest(name, {
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/post-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/post-test.js
index 4bd114a1c49..c996ee2edc5 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/post-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/post-test.js
@@ -1,12 +1,12 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import I18n from "I18n";
import EmberObject from "@ember/object";
+import I18n from "I18n";
import { click } from "@ember/test-helpers";
discourseModule("Integration | Component | Widget | post", function (hooks) {
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/poster-name-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/poster-name-test.js
index 6c446238848..0c2a15ba768 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/poster-name-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/poster-name-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | Widget | poster-name", function (
hooks
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/quick-access-item-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/quick-access-item-test.js
index 5834b2cb27d..6fe42c672aa 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/quick-access-item-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/quick-access-item-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
const CONTENT_DIV_SELECTOR = "li > a > div";
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/small-user-list-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/small-user-list-test.js
index 0f5d8ebbf18..20ae8b1206e 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/small-user-list-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/small-user-list-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
discourseModule("Integration | Component | Widget | small-user-list", function (
hooks
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/topic-admin-menu-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/topic-admin-menu-test.js
index 098cce11497..62348c4a895 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/topic-admin-menu-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/topic-admin-menu-test.js
@@ -1,9 +1,9 @@
-import { exists, discourseModule } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
-import Topic from "discourse/models/topic";
+import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
import Category from "discourse/models/category";
+import Topic from "discourse/models/topic";
const createArgs = (topic) => {
return {
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/topic-participant-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/topic-participant-test.js
index c81534f3e5c..3ca10291279 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/topic-participant-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/topic-participant-test.js
@@ -1,7 +1,7 @@
-import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
+import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
discourseModule(
"Integration | Component | Widget | topic-participant",
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/topic-status-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/topic-status-test.js
index 6fce46e765d..89fce7aeb15 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/topic-status-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/topic-status-test.js
@@ -1,10 +1,10 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import TopicStatusIcons from "discourse/helpers/topic-status-icons";
discourseModule("Integration | Component | Widget | topic-status", function (
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/user-menu-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/user-menu-test.js
index b9f0166214e..d2b2667afcf 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/user-menu-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/user-menu-test.js
@@ -1,14 +1,14 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
-import sinon from "sinon";
-import I18n from "I18n";
import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
import { click } from "@ember/test-helpers";
+import sinon from "sinon";
discourseModule("Integration | Component | Widget | user-menu", function (
hooks
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/widget-dropdown-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/widget-dropdown-test.js
index 6b6350d9b78..9e2642a16ae 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/widget-dropdown-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/widget-dropdown-test.js
@@ -1,11 +1,11 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
exists,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import I18n from "I18n";
import { click } from "@ember/test-helpers";
diff --git a/app/assets/javascripts/discourse/tests/integration/widgets/widget-test.js b/app/assets/javascripts/discourse/tests/integration/widgets/widget-test.js
index 88607997b5b..047eebbf322 100644
--- a/app/assets/javascripts/discourse/tests/integration/widgets/widget-test.js
+++ b/app/assets/javascripts/discourse/tests/integration/widgets/widget-test.js
@@ -1,17 +1,17 @@
+import componentTest, {
+ setupRenderingTest,
+} from "discourse/tests/helpers/component-test";
import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
-import componentTest, {
- setupRenderingTest,
-} from "discourse/tests/helpers/component-test";
import I18n from "I18n";
-import { next } from "@ember/runloop";
-import { createWidget } from "discourse/widgets/widget";
-import { withPluginApi } from "discourse/lib/plugin-api";
import { Promise } from "rsvp";
-import hbs from "discourse/widgets/hbs-compiler";
import { click } from "@ember/test-helpers";
+import { createWidget } from "discourse/widgets/widget";
+import hbs from "discourse/widgets/hbs-compiler";
+import { next } from "@ember/runloop";
+import { withPluginApi } from "discourse/lib/plugin-api";
discourseModule("Integration | Component | Widget | base", function (hooks) {
setupRenderingTest(hooks);
diff --git a/app/assets/javascripts/discourse/tests/setup-tests.js b/app/assets/javascripts/discourse/tests/setup-tests.js
index d4405bc2a80..39f97ab8b7d 100644
--- a/app/assets/javascripts/discourse/tests/setup-tests.js
+++ b/app/assets/javascripts/discourse/tests/setup-tests.js
@@ -1,32 +1,32 @@
import {
- resetSettings,
- currentSettings,
-} from "discourse/tests/helpers/site-settings";
-import { getOwner, setDefaultOwner } from "discourse-common/lib/get-owner";
-import { setupURL, setupS3CDN } from "discourse-common/lib/get-url";
-import { createHelperContext } from "discourse-common/lib/helpers";
-import { buildResolver } from "discourse-common/resolver";
-import createPretender, {
- pretenderHelpers,
- applyDefaultHandlers,
-} from "discourse/tests/helpers/create-pretender";
-import { flushMap } from "discourse/models/store";
-import { ScrollingDOMMethods } from "discourse/mixins/scrolling";
-import {
- resetSite,
applyPretender,
exists,
+ resetSite,
} from "discourse/tests/helpers/qunit-helpers";
-import PreloadStore from "discourse/lib/preload-store";
-import User from "discourse/models/user";
-import Session from "discourse/models/session";
-import { clearAppEventsCache } from "discourse/services/app-events";
-import QUnit from "qunit";
-import MessageBus from "message-bus-client";
-import deprecated from "discourse-common/lib/deprecated";
-import sinon from "sinon";
+import createPretender, {
+ applyDefaultHandlers,
+ pretenderHelpers,
+} from "discourse/tests/helpers/create-pretender";
+import {
+ currentSettings,
+ resetSettings,
+} from "discourse/tests/helpers/site-settings";
+import { getOwner, setDefaultOwner } from "discourse-common/lib/get-owner";
import { setApplication, setResolver } from "@ember/test-helpers";
+import { setupS3CDN, setupURL } from "discourse-common/lib/get-url";
+import MessageBus from "message-bus-client";
+import PreloadStore from "discourse/lib/preload-store";
+import QUnit from "qunit";
+import { ScrollingDOMMethods } from "discourse/mixins/scrolling";
+import Session from "discourse/models/session";
+import User from "discourse/models/user";
import bootbox from "bootbox";
+import { buildResolver } from "discourse-common/resolver";
+import { clearAppEventsCache } from "discourse/services/app-events";
+import { createHelperContext } from "discourse-common/lib/helpers";
+import deprecated from "discourse-common/lib/deprecated";
+import { flushMap } from "discourse/models/store";
+import sinon from "sinon";
const Plugin = $.fn.modal;
const Modal = Plugin.Constructor;
diff --git a/app/assets/javascripts/discourse/tests/unit/components/group-membership-button-test.js b/app/assets/javascripts/discourse/tests/unit/components/group-membership-button-test.js
index 58e2eb38552..1076d004358 100644
--- a/app/assets/javascripts/discourse/tests/unit/components/group-membership-button-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/components/group-membership-button-test.js
@@ -1,5 +1,5 @@
-import { test } from "qunit";
import { moduleFor } from "ember-qunit";
+import { test } from "qunit";
// TODO: Convert to a modern *integration* test
moduleFor("component:group-membership-button");
diff --git a/app/assets/javascripts/discourse/tests/unit/controllers/avatar-selector-test.js b/app/assets/javascripts/discourse/tests/unit/controllers/avatar-selector-test.js
index 7a88c1e1198..870d05a78e3 100644
--- a/app/assets/javascripts/discourse/tests/unit/controllers/avatar-selector-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/controllers/avatar-selector-test.js
@@ -1,6 +1,6 @@
import EmberObject from "@ember/object";
-import { mapRoutes } from "discourse/mapping-router";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import { mapRoutes } from "discourse/mapping-router";
import { test } from "qunit";
discourseModule("Unit | Controller | avatar-selector", function (hooks) {
diff --git a/app/assets/javascripts/discourse/tests/unit/controllers/bookmark-test.js b/app/assets/javascripts/discourse/tests/unit/controllers/bookmark-test.js
index 4b44be5884f..ca8a6b18569 100644
--- a/app/assets/javascripts/discourse/tests/unit/controllers/bookmark-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/controllers/bookmark-test.js
@@ -1,13 +1,13 @@
-import sinon from "sinon";
import {
discourseModule,
- logIn,
fakeTime,
+ logIn,
} from "discourse/tests/helpers/qunit-helpers";
-import { test } from "qunit";
-import User from "discourse/models/user";
import KeyboardShortcutInitializer from "discourse/initializers/keyboard-shortcuts";
import { REMINDER_TYPES } from "discourse/lib/bookmark";
+import User from "discourse/models/user";
+import sinon from "sinon";
+import { test } from "qunit";
let BookmarkController;
diff --git a/app/assets/javascripts/discourse/tests/unit/controllers/create-account-test.js b/app/assets/javascripts/discourse/tests/unit/controllers/create-account-test.js
index 6f0e1574345..90f96b6efad 100644
--- a/app/assets/javascripts/discourse/tests/unit/controllers/create-account-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/controllers/create-account-test.js
@@ -1,6 +1,6 @@
-import { test } from "qunit";
import I18n from "I18n";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
discourseModule("Unit | Controller | create-account", function () {
test("basicUsernameValidation", async function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/controllers/preferences-account-test.js b/app/assets/javascripts/discourse/tests/unit/controllers/preferences-account-test.js
index 35b6fd228be..a57d1441b70 100644
--- a/app/assets/javascripts/discourse/tests/unit/controllers/preferences-account-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/controllers/preferences-account-test.js
@@ -1,6 +1,6 @@
+import EmberObject from "@ember/object";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
-import EmberObject from "@ember/object";
discourseModule("Unit | Controller | preferences/account", function () {
test("updating of associated accounts", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/controllers/reorder-categories-test.js b/app/assets/javascripts/discourse/tests/unit/controllers/reorder-categories-test.js
index 47c4323d70c..50c466d3196 100644
--- a/app/assets/javascripts/discourse/tests/unit/controllers/reorder-categories-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/controllers/reorder-categories-test.js
@@ -1,7 +1,7 @@
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import { test } from "qunit";
import EmberObject from "@ember/object";
import createStore from "discourse/tests/helpers/create-store";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
discourseModule("Unit | Controller | reorder-categories", function () {
test("reorder set unique position number", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/controllers/topic-test.js b/app/assets/javascripts/discourse/tests/unit/controllers/topic-test.js
index b68ad5bfdcd..324073256d6 100644
--- a/app/assets/javascripts/discourse/tests/unit/controllers/topic-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/controllers/topic-test.js
@@ -1,12 +1,12 @@
-import { moduleFor } from "ember-qunit";
-import { test } from "qunit";
import EmberObject from "@ember/object";
-import { next } from "@ember/runloop";
-import Topic from "discourse/models/topic";
import { Placeholder } from "discourse/lib/posts-with-placeholders";
-import User from "discourse/models/user";
import { Promise } from "rsvp";
+import Topic from "discourse/models/topic";
+import User from "discourse/models/user";
+import { moduleFor } from "ember-qunit";
+import { next } from "@ember/runloop";
import pretender from "discourse/tests/helpers/create-pretender";
+import { test } from "qunit";
moduleFor("controller:topic", "controller:topic", {
needs: [
diff --git a/app/assets/javascripts/discourse/tests/unit/ember/resolver-test.js b/app/assets/javascripts/discourse/tests/unit/ember/resolver-test.js
index 3aa18c8d522..decaab7f4af 100644
--- a/app/assets/javascripts/discourse/tests/unit/ember/resolver-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/ember/resolver-test.js
@@ -1,5 +1,5 @@
-import { test, module } from "qunit";
-import { setResolverOption, buildResolver } from "discourse-common/resolver";
+import { buildResolver, setResolverOption } from "discourse-common/resolver";
+import { module, test } from "qunit";
let originalTemplates;
let resolver;
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/allow-lister-test.js b/app/assets/javascripts/discourse/tests/unit/lib/allow-lister-test.js
index 683ab4c0fd5..0a759c16bc3 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/allow-lister-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/allow-lister-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import AllowLister from "pretty-text/allow-lister";
module("Unit | Utility | allowLister", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/bookmark-test.js b/app/assets/javascripts/discourse/tests/unit/lib/bookmark-test.js
index 4635b46997a..79dcb4a6fe9 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/bookmark-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/bookmark-test.js
@@ -1,7 +1,7 @@
-import sinon from "sinon";
-import { test, module } from "qunit";
-import { formattedReminderTime } from "discourse/lib/bookmark";
+import { module, test } from "qunit";
import { fakeTime } from "discourse/tests/helpers/qunit-helpers";
+import { formattedReminderTime } from "discourse/lib/bookmark";
+import sinon from "sinon";
module("Unit | Utility | bookmark", function (hooks) {
hooks.beforeEach(function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/break-string-test.js b/app/assets/javascripts/discourse/tests/unit/lib/break-string-test.js
index 35a13b7607a..f35d81c0027 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/break-string-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/break-string-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
/* global BreakString:true */
module("Unit | Utility | breakString", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/category-badge-test.js b/app/assets/javascripts/discourse/tests/unit/lib/category-badge-test.js
index 5f59b74e4c0..21236dec84f 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/category-badge-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/category-badge-test.js
@@ -1,9 +1,9 @@
-import { test } from "qunit";
+import Site from "discourse/models/site";
+import { categoryBadgeHTML } from "discourse/helpers/category-link";
import createStore from "discourse/tests/helpers/create-store";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import Site from "discourse/models/site";
import sinon from "sinon";
-import { categoryBadgeHTML } from "discourse/helpers/category-link";
+import { test } from "qunit";
discourseModule("Unit | Utility | category-badge", function () {
test("categoryBadge without a category", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/click-track-edit-history-test.js b/app/assets/javascripts/discourse/tests/unit/lib/click-track-edit-history-test.js
index ae6b16e66d1..f6e875e6a65 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/click-track-edit-history-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/click-track-edit-history-test.js
@@ -1,10 +1,10 @@
-import sinon from "sinon";
-import { module, skip } from "qunit";
-import DiscourseURL from "discourse/lib/url";
-import ClickTrack from "discourse/lib/click-track";
import { fixture, logIn } from "discourse/tests/helpers/qunit-helpers";
+import { module, skip } from "qunit";
+import ClickTrack from "discourse/lib/click-track";
+import DiscourseURL from "discourse/lib/url";
import User from "discourse/models/user";
import pretender from "discourse/tests/helpers/create-pretender";
+import sinon from "sinon";
const track = ClickTrack.trackClick;
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/click-track-profile-page-test.js b/app/assets/javascripts/discourse/tests/unit/lib/click-track-profile-page-test.js
index 3bf79ce2c42..1de09ca57ae 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/click-track-profile-page-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/click-track-profile-page-test.js
@@ -1,9 +1,9 @@
-import sinon from "sinon";
-import { module, skip } from "qunit";
-import DiscourseURL from "discourse/lib/url";
-import ClickTrack from "discourse/lib/click-track";
import { fixture, logIn } from "discourse/tests/helpers/qunit-helpers";
+import { module, skip } from "qunit";
+import ClickTrack from "discourse/lib/click-track";
+import DiscourseURL from "discourse/lib/url";
import pretender from "discourse/tests/helpers/create-pretender";
+import sinon from "sinon";
const track = ClickTrack.trackClick;
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/click-track-test.js b/app/assets/javascripts/discourse/tests/unit/lib/click-track-test.js
index d29cd0f7706..de2f56eed36 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/click-track-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/click-track-test.js
@@ -1,11 +1,11 @@
-import sinon from "sinon";
-import { skip, test, module } from "qunit";
-import { later } from "@ember/runloop";
-import DiscourseURL from "discourse/lib/url";
-import ClickTrack from "discourse/lib/click-track";
import { fixture, logIn } from "discourse/tests/helpers/qunit-helpers";
+import { module, skip, test } from "qunit";
+import ClickTrack from "discourse/lib/click-track";
+import DiscourseURL from "discourse/lib/url";
import User from "discourse/models/user";
+import { later } from "@ember/runloop";
import pretender from "discourse/tests/helpers/create-pretender";
+import sinon from "sinon";
const track = ClickTrack.trackClick;
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/computed-test.js b/app/assets/javascripts/discourse/tests/unit/lib/computed-test.js
index 869336cc815..216e42cd630 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/computed-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/computed-test.js
@@ -1,18 +1,18 @@
-import sinon from "sinon";
-import { test } from "qunit";
-import I18n from "I18n";
-import EmberObject from "@ember/object";
import {
- setting,
+ fmt,
+ htmlSafe,
+ i18n,
propertyEqual,
propertyNotEqual,
- fmt,
- i18n,
+ setting,
url,
- htmlSafe,
} from "discourse/lib/computed";
-import { setPrefix } from "discourse-common/lib/get-url";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import { setPrefix } from "discourse-common/lib/get-url";
+import sinon from "sinon";
+import { test } from "qunit";
discourseModule("Unit | Utility | computed", function (hooks) {
hooks.beforeEach(function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/emoji-store-test.js b/app/assets/javascripts/discourse/tests/unit/lib/emoji-store-test.js
index 2c49202e7b4..fa17f404e63 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/emoji-store-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/emoji-store-test.js
@@ -1,5 +1,5 @@
-import { test } from "qunit";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
discourseModule("Unit | Utility | emoji-emojiStore", function (hooks) {
hooks.beforeEach(function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js b/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js
index 78cc82b272f..34491cb537a 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js
@@ -1,8 +1,8 @@
-import { test } from "qunit";
-import { emojiSearch } from "pretty-text/emoji";
-import { IMAGE_VERSION as v } from "pretty-text/emoji/version";
-import { emojiUnescape } from "discourse/lib/text";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
+import { emojiSearch } from "pretty-text/emoji";
+import { emojiUnescape } from "discourse/lib/text";
+import { test } from "qunit";
+import { IMAGE_VERSION as v } from "pretty-text/emoji/version";
discourseModule("Unit | Utility | emoji", function () {
test("emojiUnescape", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/formatter-test.js b/app/assets/javascripts/discourse/tests/unit/lib/formatter-test.js
index 23aaa2f37aa..2d04636ccd5 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/formatter-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/formatter-test.js
@@ -1,14 +1,14 @@
-import { test } from "qunit";
import {
- relativeAge,
autoUpdatingRelativeAge,
- updateRelativeAge,
- number,
- longDate,
durationTiny,
+ longDate,
+ number,
+ relativeAge,
+ updateRelativeAge,
} from "discourse/lib/formatter";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import sinon from "sinon";
+import { test } from "qunit";
function formatMins(mins, opts = {}) {
let dt = new Date(new Date() - mins * 60 * 1000);
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/get-url-test.js b/app/assets/javascripts/discourse/tests/unit/lib/get-url-test.js
index 8d95763027a..82d86b838a9 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/get-url-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/get-url-test.js
@@ -1,13 +1,13 @@
-import { test, module } from "qunit";
import getURL, {
- setupURL,
- setupS3CDN,
+ getAbsoluteURL,
getURLWithCDN,
isAbsoluteURL,
- getAbsoluteURL,
setPrefix,
+ setupS3CDN,
+ setupURL,
withoutPrefix,
} from "discourse-common/lib/get-url";
+import { module, test } from "qunit";
module("Unit | Utility | get-url", function () {
test("isAbsoluteURL", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/highlight-search-test.js b/app/assets/javascripts/discourse/tests/unit/lib/highlight-search-test.js
index 0756899e305..165c53b5de7 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/highlight-search-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/highlight-search-test.js
@@ -1,6 +1,6 @@
import highlightSearch, { CLASS_NAME } from "discourse/lib/highlight-search";
-import { fixture } from "discourse/tests/helpers/qunit-helpers";
import { module, test } from "qunit";
+import { fixture } from "discourse/tests/helpers/qunit-helpers";
module("Unit | Utility | highlight-search", function () {
test("highlighting text", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/i18n-test.js b/app/assets/javascripts/discourse/tests/unit/lib/i18n-test.js
index 53d132726eb..bbc2635a20e 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/i18n-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/i18n-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import I18n from "I18n";
module("Unit | Utility | i18n", function (hooks) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/icon-library-test.js b/app/assets/javascripts/discourse/tests/unit/lib/icon-library-test.js
index d86a251112a..3089ebec8fa 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/icon-library-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/icon-library-test.js
@@ -1,9 +1,9 @@
-import { test, module } from "qunit";
import {
+ convertIconClass,
iconHTML,
iconNode,
- convertIconClass,
} from "discourse-common/lib/icon-library";
+import { module, test } from "qunit";
module("Unit | Utility | icon-library", function () {
test("return icon markup", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/key-value-store-test.js b/app/assets/javascripts/discourse/tests/unit/lib/key-value-store-test.js
index 51c4bff28ef..a2fa6876a95 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/key-value-store-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/key-value-store-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import KeyValueStore from "discourse/lib/key-value-store";
module("Unit | Utility | key-value-store", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/keyboard-shortcuts-test.js b/app/assets/javascripts/discourse/tests/unit/lib/keyboard-shortcuts-test.js
index 56f77dcf352..fe9b717db10 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/keyboard-shortcuts-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/keyboard-shortcuts-test.js
@@ -1,7 +1,7 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import DiscourseURL from "discourse/lib/url";
-import sinon from "sinon";
import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
+import sinon from "sinon";
let testMouseTrap;
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/link-mentions-test.js b/app/assets/javascripts/discourse/tests/unit/lib/link-mentions-test.js
index df3528168c7..53c072bdc95 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/link-mentions-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/link-mentions-test.js
@@ -1,8 +1,8 @@
-import { test, module } from "qunit";
import {
fetchUnseenMentions,
linkSeenMentions,
} from "discourse/lib/link-mentions";
+import { module, test } from "qunit";
import { Promise } from "rsvp";
import pretender from "discourse/tests/helpers/create-pretender";
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/load-script-test.js b/app/assets/javascripts/discourse/tests/unit/lib/load-script-test.js
index 11e1d2d56ab..8fbb43605b4 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/load-script-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/load-script-test.js
@@ -1,5 +1,5 @@
-import { skip, test, module } from "qunit";
-import { loadScript, cacheBuster } from "discourse/lib/load-script";
+import { cacheBuster, loadScript } from "discourse/lib/load-script";
+import { module, skip, test } from "qunit";
import { PUBLIC_JS_VERSIONS as jsVersions } from "discourse/lib/public-js-versions";
module("Unit | Utility | load-script", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/oneboxer-test.js b/app/assets/javascripts/discourse/tests/unit/lib/oneboxer-test.js
index be8f8dcd2cc..6630075cdd4 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/oneboxer-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/oneboxer-test.js
@@ -1,7 +1,7 @@
-import { test, module } from "qunit";
-import { load } from "pretty-text/oneboxer";
-import { ajax } from "discourse/lib/ajax";
import { failedCache, localCache } from "pretty-text/oneboxer-cache";
+import { module, test } from "qunit";
+import { ajax } from "discourse/lib/ajax";
+import { load } from "pretty-text/oneboxer";
import { stringToHTML } from "discourse/tests/helpers/html-helper";
function loadOnebox(element) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/parse-bbcode-tag-test.js b/app/assets/javascripts/discourse/tests/unit/lib/parse-bbcode-tag-test.js
index 91eecc3441a..ac433caa377 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/parse-bbcode-tag-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/parse-bbcode-tag-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import { parseBBCodeTag } from "pretty-text/engines/discourse-markdown/bbcode-block";
module("Unit | Utility | parseBBCodeTag", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/preload-store-test.js b/app/assets/javascripts/discourse/tests/unit/lib/preload-store-test.js
index dd0f952b74d..abdde2fec6b 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/preload-store-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/preload-store-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import PreloadStore from "discourse/lib/preload-store";
import { Promise } from "rsvp";
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/pretty-text-test.js b/app/assets/javascripts/discourse/tests/unit/lib/pretty-text-test.js
index 401e98a9843..8f232ae8551 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/pretty-text-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/pretty-text-test.js
@@ -1,15 +1,15 @@
-import { skip, test, module } from "qunit";
-import { buildQuote } from "discourse/lib/quote";
-import Post from "discourse/models/post";
import PrettyText, { buildOptions } from "pretty-text/pretty-text";
-import { IMAGE_VERSION as v } from "pretty-text/emoji/version";
import {
applyCachedInlineOnebox,
deleteCachedInlineOnebox,
} from "pretty-text/inline-oneboxer";
+import { module, skip, test } from "qunit";
+import Post from "discourse/models/post";
+import { buildQuote } from "discourse/lib/quote";
+import { deepMerge } from "discourse-common/lib/object";
import { extractDataAttribute } from "pretty-text/engines/discourse-markdown-it";
import { registerEmoji } from "pretty-text/emoji";
-import { deepMerge } from "discourse-common/lib/object";
+import { IMAGE_VERSION as v } from "pretty-text/emoji/version";
const rawOpts = {
siteSettings: {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/sanitizer-test.js b/app/assets/javascripts/discourse/tests/unit/lib/sanitizer-test.js
index cdc6a33a757..ea7898f33cd 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/sanitizer-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/sanitizer-test.js
@@ -1,5 +1,5 @@
-import { test, module } from "qunit";
import PrettyText, { buildOptions } from "pretty-text/pretty-text";
+import { module, test } from "qunit";
import { hrefAllowed } from "pretty-text/sanitizer";
module("Unit | Utility | sanitizer", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/screen-track-test.js b/app/assets/javascripts/discourse/tests/unit/lib/screen-track-test.js
index c119debdbbb..b1a557811d2 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/screen-track-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/screen-track-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import ScreenTrack from "discourse/lib/screen-track";
module("Unit | Utility | screen-track", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/search-test.js b/app/assets/javascripts/discourse/tests/unit/lib/search-test.js
index db46e189922..61f9876011c 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/search-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/search-test.js
@@ -1,9 +1,9 @@
-import { test, module } from "qunit";
-import I18n from "I18n";
+import { module, test } from "qunit";
import {
- translateResults,
searchContextDescription,
+ translateResults,
} from "discourse/lib/search";
+import I18n from "I18n";
module("Unit | Utility | search", function () {
test("unescapesEmojisInBlurbs", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/sharing-test.js b/app/assets/javascripts/discourse/tests/unit/lib/sharing-test.js
index cf505fba0dd..8a1a0afcbe6 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/sharing-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/sharing-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import Sharing from "discourse/lib/sharing";
module("Unit | Utility | sharing", function (hooks) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/text-direction-test.js b/app/assets/javascripts/discourse/tests/unit/lib/text-direction-test.js
index cfc9640b24a..ab23021fab3 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/text-direction-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/text-direction-test.js
@@ -1,5 +1,5 @@
-import { test, module } from "qunit";
-import { isRTL, isLTR } from "discourse/lib/text-direction";
+import { isLTR, isRTL } from "discourse/lib/text-direction";
+import { module, test } from "qunit";
module("Unit | Utility | text-direction", function () {
test("isRTL", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/to-markdown-test.js b/app/assets/javascripts/discourse/tests/unit/lib/to-markdown-test.js
index 1ee3b245a6a..9a74adf00c3 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/to-markdown-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/to-markdown-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import toMarkdown from "discourse/lib/to-markdown";
module("Unit | Utility | to-markdown", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/upload-short-url-test.js b/app/assets/javascripts/discourse/tests/unit/lib/upload-short-url-test.js
index 19c66342da1..5d1cf7d824f 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/upload-short-url-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/upload-short-url-test.js
@@ -1,12 +1,12 @@
-import { test, module } from "qunit";
import {
lookupCachedUploadUrl,
- resolveAllShortUrls,
resetCache,
+ resolveAllShortUrls,
} from "pretty-text/upload-short-url";
+import { module, test } from "qunit";
+import pretender, { response } from "discourse/tests/helpers/create-pretender";
import { ajax } from "discourse/lib/ajax";
import { fixture } from "discourse/tests/helpers/qunit-helpers";
-import pretender, { response } from "discourse/tests/helpers/create-pretender";
import { settled } from "@ember/test-helpers";
function stubUrls(imageSrcs, attachmentSrcs, otherMediaSrcs) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/uploads-test.js b/app/assets/javascripts/discourse/tests/unit/lib/uploads-test.js
index c477c08ebc1..25b6121bdaf 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/uploads-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/uploads-test.js
@@ -1,18 +1,18 @@
+import * as Utilities from "discourse/lib/utilities";
+import {
+ allowsAttachments,
+ allowsImages,
+ authorizedExtensions,
+ getUploadMarkdown,
+ isImage,
+ validateUploadedFiles,
+} from "discourse/lib/uploads";
+import I18n from "I18n";
+import User from "discourse/models/user";
+import bootbox from "bootbox";
+import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
import sinon from "sinon";
import { test } from "qunit";
-import I18n from "I18n";
-import {
- validateUploadedFiles,
- authorizedExtensions,
- isImage,
- allowsImages,
- allowsAttachments,
- getUploadMarkdown,
-} from "discourse/lib/uploads";
-import * as Utilities from "discourse/lib/utilities";
-import User from "discourse/models/user";
-import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import bootbox from "bootbox";
discourseModule("Unit | Utility | uploads", function () {
test("validateUploadedFiles", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/url-test.js b/app/assets/javascripts/discourse/tests/unit/lib/url-test.js
index adfb906f514..5781a8383a7 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/url-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/url-test.js
@@ -1,9 +1,9 @@
-import sinon from "sinon";
-import { test, module } from "qunit";
-import DiscourseURL, { userPath, prefixProtocol } from "discourse/lib/url";
-import { setPrefix } from "discourse-common/lib/get-url";
-import { logIn } from "discourse/tests/helpers/qunit-helpers";
+import DiscourseURL, { prefixProtocol, userPath } from "discourse/lib/url";
+import { module, test } from "qunit";
import User from "discourse/models/user";
+import { logIn } from "discourse/tests/helpers/qunit-helpers";
+import { setPrefix } from "discourse-common/lib/get-url";
+import sinon from "sinon";
module("Unit | Utility | url", function () {
test("isInternal with a HTTP url", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/user-search-test.js b/app/assets/javascripts/discourse/tests/unit/lib/user-search-test.js
index 3d3e2157de6..021fee33fc8 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/user-search-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/user-search-test.js
@@ -1,7 +1,7 @@
-import { test, module } from "qunit";
-import userSearch from "discourse/lib/user-search";
-import { CANCELLED_STATUS } from "discourse/lib/autocomplete";
+import { module, test } from "qunit";
import pretender, { response } from "discourse/tests/helpers/create-pretender";
+import { CANCELLED_STATUS } from "discourse/lib/autocomplete";
+import userSearch from "discourse/lib/user-search";
module("Unit | Utility | user-search", function (hooks) {
hooks.beforeEach(function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/lib/utilities-test.js b/app/assets/javascripts/discourse/tests/unit/lib/utilities-test.js
index b38d96d16a0..e76b27877d4 100644
--- a/app/assets/javascripts/discourse/tests/unit/lib/utilities-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/lib/utilities-test.js
@@ -1,21 +1,21 @@
-import { skip, test } from "qunit";
import {
- escapeExpression,
- emailValid,
- extractDomainFromUrl,
- avatarUrl,
- getRawSize,
avatarImg,
- initializeDefaultHomepage,
- defaultHomepage,
- setDefaultHomepage,
+ avatarUrl,
caretRowCol,
- setCaretPosition,
- toAsciiPrintable,
- slugify,
+ defaultHomepage,
+ emailValid,
+ escapeExpression,
+ extractDomainFromUrl,
fillMissingDates,
+ getRawSize,
inCodeBlock,
+ initializeDefaultHomepage,
+ setCaretPosition,
+ setDefaultHomepage,
+ slugify,
+ toAsciiPrintable,
} from "discourse/lib/utilities";
+import { skip, test } from "qunit";
import Handlebars from "handlebars";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
diff --git a/app/assets/javascripts/discourse/tests/unit/localization-test.js b/app/assets/javascripts/discourse/tests/unit/localization-test.js
index 55f35738de9..4939746aed6 100644
--- a/app/assets/javascripts/discourse/tests/unit/localization-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/localization-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import I18n from "I18n";
import LocalizationInitializer from "discourse/initializers/localization";
diff --git a/app/assets/javascripts/discourse/tests/unit/mixins/grant-badge-controller-test.js b/app/assets/javascripts/discourse/tests/unit/mixins/grant-badge-controller-test.js
index 7807f8c3673..8b939bd9de3 100644
--- a/app/assets/javascripts/discourse/tests/unit/mixins/grant-badge-controller-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/mixins/grant-badge-controller-test.js
@@ -1,7 +1,7 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
+import Badge from "discourse/models/badge";
import Controller from "@ember/controller";
import GrantBadgeControllerMixin from "discourse/mixins/grant-badge-controller";
-import Badge from "discourse/models/badge";
module("Unit | Mixin | grant-badge-controller", function (hooks) {
hooks.beforeEach(function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/mixins/setting-object-test.js b/app/assets/javascripts/discourse/tests/unit/mixins/setting-object-test.js
index cc2f92bfe25..a3cca394fc3 100644
--- a/app/assets/javascripts/discourse/tests/unit/mixins/setting-object-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/mixins/setting-object-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import EmberObject from "@ember/object";
import Setting from "admin/mixins/setting-object";
diff --git a/app/assets/javascripts/discourse/tests/unit/mixins/singleton-test.js b/app/assets/javascripts/discourse/tests/unit/mixins/singleton-test.js
index 6aaf8c6e1b4..b142e52042e 100644
--- a/app/assets/javascripts/discourse/tests/unit/mixins/singleton-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/mixins/singleton-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import EmberObject from "@ember/object";
import Singleton from "discourse/mixins/singleton";
diff --git a/app/assets/javascripts/discourse/tests/unit/models/badge-test.js b/app/assets/javascripts/discourse/tests/unit/models/badge-test.js
index 1e950b066d2..794cf972310 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/badge-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/badge-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import Badge from "discourse/models/badge";
module("Unit | Model | badge", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/category-test.js b/app/assets/javascripts/discourse/tests/unit/models/category-test.js
index 8aac6f24673..2d5f8e0e856 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/category-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/category-test.js
@@ -1,7 +1,7 @@
-import sinon from "sinon";
-import { test, module } from "qunit";
-import createStore from "discourse/tests/helpers/create-store";
+import { module, test } from "qunit";
import Category from "discourse/models/category";
+import createStore from "discourse/tests/helpers/create-store";
+import sinon from "sinon";
module("Unit | Model | category", function () {
test("slugFor", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/composer-test.js b/app/assets/javascripts/discourse/tests/unit/models/composer-test.js
index 53a0c41e531..975ea0303b8 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/composer-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/composer-test.js
@@ -1,18 +1,18 @@
-import { test } from "qunit";
-import EmberObject from "@ember/object";
import {
- discourseModule,
+ CREATE_TOPIC,
+ EDIT,
+ PRIVATE_MESSAGE,
+ REPLY,
+} from "discourse/models/composer";
+import {
currentUser,
+ discourseModule,
} from "discourse/tests/helpers/qunit-helpers";
import AppEvents from "discourse/services/app-events";
-import {
- EDIT,
- REPLY,
- CREATE_TOPIC,
- PRIVATE_MESSAGE,
-} from "discourse/models/composer";
+import EmberObject from "@ember/object";
import Post from "discourse/models/post";
import createStore from "discourse/tests/helpers/create-store";
+import { test } from "qunit";
function createComposer(opts) {
opts = opts || {};
diff --git a/app/assets/javascripts/discourse/tests/unit/models/email-log-test.js b/app/assets/javascripts/discourse/tests/unit/models/email-log-test.js
index ad7e9a918c9..adefc0dc13f 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/email-log-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/email-log-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import EmailLog from "admin/models/email-log";
import { setPrefix } from "discourse-common/lib/get-url";
diff --git a/app/assets/javascripts/discourse/tests/unit/models/group-test.js b/app/assets/javascripts/discourse/tests/unit/models/group-test.js
index 4e8d17114e8..4b266f7e0c4 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/group-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/group-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import Group from "discourse/models/group";
module("Unit | Model | group", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/invite-test.js b/app/assets/javascripts/discourse/tests/unit/models/invite-test.js
index 688aaebd060..10c75307515 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/invite-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/invite-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import Invite from "discourse/models/invite";
module("Unit | Model | invite", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/nav-item-test.js b/app/assets/javascripts/discourse/tests/unit/models/nav-item-test.js
index ead95c535c3..329aa30fa68 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/nav-item-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/nav-item-test.js
@@ -1,9 +1,9 @@
-import { test, module } from "qunit";
-import { run } from "@ember/runloop";
-import createStore from "discourse/tests/helpers/create-store";
-import NavItem from "discourse/models/nav-item";
+import { module, test } from "qunit";
import Category from "discourse/models/category";
+import NavItem from "discourse/models/nav-item";
import Site from "discourse/models/site";
+import createStore from "discourse/tests/helpers/create-store";
+import { run } from "@ember/runloop";
module("Unit | Model | nav-item", function (hooks) {
hooks.beforeEach(function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/post-stream-test.js b/app/assets/javascripts/discourse/tests/unit/models/post-stream-test.js
index 97a93542f3c..849c8e7d6d3 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/post-stream-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/post-stream-test.js
@@ -1,11 +1,11 @@
-import sinon from "sinon";
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import ArrayProxy from "@ember/array/proxy";
import Post from "discourse/models/post";
-import createStore from "discourse/tests/helpers/create-store";
-import User from "discourse/models/user";
import { Promise } from "rsvp";
+import User from "discourse/models/user";
+import createStore from "discourse/tests/helpers/create-store";
import pretender from "discourse/tests/helpers/create-pretender";
+import sinon from "sinon";
function buildStream(id, stream) {
const store = createStore();
diff --git a/app/assets/javascripts/discourse/tests/unit/models/post-test.js b/app/assets/javascripts/discourse/tests/unit/models/post-test.js
index 39b5a584714..b85d5762b7d 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/post-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/post-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import Post from "discourse/models/post";
import User from "discourse/models/user";
import { deepMerge } from "discourse-common/lib/object";
diff --git a/app/assets/javascripts/discourse/tests/unit/models/report-test.js b/app/assets/javascripts/discourse/tests/unit/models/report-test.js
index 2fd60707fd8..3324ec09196 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/report-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/report-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import Report from "admin/models/report";
import { setPrefix } from "discourse-common/lib/get-url";
diff --git a/app/assets/javascripts/discourse/tests/unit/models/rest-model-test.js b/app/assets/javascripts/discourse/tests/unit/models/rest-model-test.js
index 2a6f7a75c07..8fe391217d8 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/rest-model-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/rest-model-test.js
@@ -1,8 +1,8 @@
-import sinon from "sinon";
-import { test, module } from "qunit";
-import createStore from "discourse/tests/helpers/create-store";
-import RestModel from "discourse/models/rest";
+import { module, test } from "qunit";
import RestAdapter from "discourse/adapters/rest";
+import RestModel from "discourse/models/rest";
+import createStore from "discourse/tests/helpers/create-store";
+import sinon from "sinon";
module("Unit | Model | rest-model", function () {
test("munging", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/result-set-test.js b/app/assets/javascripts/discourse/tests/unit/models/result-set-test.js
index cf102cc9ddf..595e7227807 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/result-set-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/result-set-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import ResultSet from "discourse/models/result-set";
import createStore from "discourse/tests/helpers/create-store";
diff --git a/app/assets/javascripts/discourse/tests/unit/models/session-test.js b/app/assets/javascripts/discourse/tests/unit/models/session-test.js
index 30c521afe4f..8037876ec90 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/session-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/session-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import Session from "discourse/models/session";
module("Unit | Model | session", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/site-test.js b/app/assets/javascripts/discourse/tests/unit/models/site-test.js
index dd0395eee32..d5e52ada4cf 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/site-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/site-test.js
@@ -1,6 +1,6 @@
-import { test, module } from "qunit";
-import createStore from "discourse/tests/helpers/create-store";
+import { module, test } from "qunit";
import Site from "discourse/models/site";
+import createStore from "discourse/tests/helpers/create-store";
module("Unit | Model | site", function () {
test("create", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/staff-action-log-test.js b/app/assets/javascripts/discourse/tests/unit/models/staff-action-log-test.js
index 1ad43c507a0..e76f05fdbee 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/staff-action-log-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/staff-action-log-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import StaffActionLog from "admin/models/staff-action-log";
module("Unit | Model | staff-action-log", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/topic-details-test.js b/app/assets/javascripts/discourse/tests/unit/models/topic-details-test.js
index dcd6d9d0dc5..8cbe7b06b5f 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/topic-details-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/topic-details-test.js
@@ -1,6 +1,6 @@
-import { test, module } from "qunit";
-import User from "discourse/models/user";
+import { module, test } from "qunit";
import Topic from "discourse/models/topic";
+import User from "discourse/models/user";
function buildDetails(id) {
const topic = Topic.create({ id: id });
diff --git a/app/assets/javascripts/discourse/tests/unit/models/topic-test.js b/app/assets/javascripts/discourse/tests/unit/models/topic-test.js
index 02fbdbd4920..cbad413691c 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/topic-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/topic-test.js
@@ -1,10 +1,10 @@
-import { test } from "qunit";
-import { IMAGE_VERSION as v } from "pretty-text/emoji/version";
import Category from "discourse/models/category";
+import EmberObject from "@ember/object";
import Topic from "discourse/models/topic";
import User from "discourse/models/user";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";
-import EmberObject from "@ember/object";
+import { test } from "qunit";
+import { IMAGE_VERSION as v } from "pretty-text/emoji/version";
discourseModule("Unit | Model | topic", function () {
test("defaults", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/topic-tracking-state-test.js b/app/assets/javascripts/discourse/tests/unit/models/topic-tracking-state-test.js
index 2f7b2331a12..761f955f6f3 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/topic-tracking-state-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/topic-tracking-state-test.js
@@ -1,9 +1,9 @@
-import { test, module } from "qunit";
-import TopicTrackingState from "discourse/models/topic-tracking-state";
-import createStore from "discourse/tests/helpers/create-store";
+import { module, test } from "qunit";
import Category from "discourse/models/category";
import { NotificationLevels } from "discourse/lib/notification-levels";
+import TopicTrackingState from "discourse/models/topic-tracking-state";
import User from "discourse/models/user";
+import createStore from "discourse/tests/helpers/create-store";
import sinon from "sinon";
module("Unit | Model | topic-tracking-state", function (hooks) {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/user-action-test.js b/app/assets/javascripts/discourse/tests/unit/models/user-action-test.js
index 00dd4c01167..9b6518c3de2 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/user-action-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/user-action-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import UserAction from "discourse/models/user-action";
module("Unit | Model | user-action", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/user-badge-test.js b/app/assets/javascripts/discourse/tests/unit/models/user-badge-test.js
index 999cbc94d15..28257789e26 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/user-badge-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/user-badge-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import UserBadge from "discourse/models/user-badge";
import badgeFixtures from "discourse/tests/fixtures/user-badges";
diff --git a/app/assets/javascripts/discourse/tests/unit/models/user-drafts-test.js b/app/assets/javascripts/discourse/tests/unit/models/user-drafts-test.js
index a7b8ecc538c..118089d6446 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/user-drafts-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/user-drafts-test.js
@@ -1,8 +1,8 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import I18n from "I18n";
-import UserDraft from "discourse/models/user-draft";
import { NEW_TOPIC_KEY } from "discourse/models/composer";
import User from "discourse/models/user";
+import UserDraft from "discourse/models/user-draft";
module("Unit | Model | user-draft", function () {
test("stream", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/user-stream-test.js b/app/assets/javascripts/discourse/tests/unit/models/user-stream-test.js
index 698855b3cc0..9fdeb815a61 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/user-stream-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/user-stream-test.js
@@ -1,6 +1,6 @@
-import { test, module } from "qunit";
-import UserAction from "discourse/models/user-action";
+import { module, test } from "qunit";
import User from "discourse/models/user";
+import UserAction from "discourse/models/user-action";
module("Unit | Model | user-stream", function () {
test("basics", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/models/user-test.js b/app/assets/javascripts/discourse/tests/unit/models/user-test.js
index 680f6562dbd..d17725a6f84 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/user-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/user-test.js
@@ -1,9 +1,9 @@
-import sinon from "sinon";
-import { test, module } from "qunit";
-import User from "discourse/models/user";
-import Group from "discourse/models/group";
import * as ajaxlib from "discourse/lib/ajax";
+import { module, test } from "qunit";
+import Group from "discourse/models/group";
+import User from "discourse/models/user";
import pretender from "discourse/tests/helpers/create-pretender";
+import sinon from "sinon";
module("Unit | Model | user", function () {
test("staff", function (assert) {
diff --git a/app/assets/javascripts/discourse/tests/unit/services/document-title-test.js b/app/assets/javascripts/discourse/tests/unit/services/document-title-test.js
index cae8dccdb69..a960c3757e1 100644
--- a/app/assets/javascripts/discourse/tests/unit/services/document-title-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/services/document-title-test.js
@@ -1,8 +1,8 @@
-import { test } from "qunit";
import {
- discourseModule,
currentUser,
+ discourseModule,
} from "discourse/tests/helpers/qunit-helpers";
+import { test } from "qunit";
discourseModule("Unit | Service | document-title", function (hooks) {
hooks.beforeEach(function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/services/store-test.js b/app/assets/javascripts/discourse/tests/unit/services/store-test.js
index 1396d5122db..28d676453b1 100644
--- a/app/assets/javascripts/discourse/tests/unit/services/store-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/services/store-test.js
@@ -1,4 +1,4 @@
-import { test, module } from "qunit";
+import { module, test } from "qunit";
import createStore from "discourse/tests/helpers/create-store";
module("Unit | Service | store", function () {
diff --git a/app/assets/javascripts/discourse/tests/unit/utils/decorators-test.js b/app/assets/javascripts/discourse/tests/unit/utils/decorators-test.js
index 996ed194732..5da70fd5d8f 100644
--- a/app/assets/javascripts/discourse/tests/unit/utils/decorators-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/utils/decorators-test.js
@@ -1,7 +1,7 @@
-import { exists } from "discourse/tests/helpers/qunit-helpers";
-import { afterRender } from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import { afterRender } from "discourse-common/utils/decorators";
import componentTest from "discourse/tests/helpers/component-test";
+import { exists } from "discourse/tests/helpers/qunit-helpers";
import { moduleForComponent } from "ember-qunit";
const fooComponent = Component.extend({
diff --git a/app/assets/javascripts/pretty-text/addon/emoji.js b/app/assets/javascripts/pretty-text/addon/emoji.js
index 67a7c2afaf1..6e25d3881c1 100644
--- a/app/assets/javascripts/pretty-text/addon/emoji.js
+++ b/app/assets/javascripts/pretty-text/addon/emoji.js
@@ -1,10 +1,10 @@
import {
- emojis,
aliases,
- searchAliases,
- translations,
- tonableEmojis,
+ emojis,
replacements,
+ searchAliases,
+ tonableEmojis,
+ translations,
} from "pretty-text/emoji/data";
import { IMAGE_VERSION } from "pretty-text/emoji/version";
diff --git a/app/assets/javascripts/pretty-text/addon/engines/discourse-markdown-it.js b/app/assets/javascripts/pretty-text/addon/engines/discourse-markdown-it.js
index e28ec7becf9..3e6f3f64fea 100644
--- a/app/assets/javascripts/pretty-text/addon/engines/discourse-markdown-it.js
+++ b/app/assets/javascripts/pretty-text/addon/engines/discourse-markdown-it.js
@@ -1,7 +1,7 @@
import AllowLister from "pretty-text/allow-lister";
-import { sanitize } from "pretty-text/sanitizer";
-import guid from "pretty-text/guid";
import deprecated from "discourse-common/lib/deprecated";
+import guid from "pretty-text/guid";
+import { sanitize } from "pretty-text/sanitizer";
export const ATTACHMENT_CSS_CLASS = "attachment";
diff --git a/app/assets/javascripts/pretty-text/addon/oneboxer.js b/app/assets/javascripts/pretty-text/addon/oneboxer.js
index 00d6867d248..77879690de1 100644
--- a/app/assets/javascripts/pretty-text/addon/oneboxer.js
+++ b/app/assets/javascripts/pretty-text/addon/oneboxer.js
@@ -1,13 +1,13 @@
-import { later } from "@ember/runloop";
import {
- localCache,
failedCache,
- setLocalCache,
- setFailedCache,
- resetLocalCache,
- resetFailedCache,
+ localCache,
normalize,
+ resetFailedCache,
+ resetLocalCache,
+ setFailedCache,
+ setLocalCache,
} from "pretty-text/oneboxer-cache";
+import { later } from "@ember/runloop";
let timeout;
const loadingQueue = [];
diff --git a/app/assets/javascripts/pretty-text/addon/upload-short-url.js b/app/assets/javascripts/pretty-text/addon/upload-short-url.js
index 56a5311c229..5080a52ec8d 100644
--- a/app/assets/javascripts/pretty-text/addon/upload-short-url.js
+++ b/app/assets/javascripts/pretty-text/addon/upload-short-url.js
@@ -1,5 +1,5 @@
-import { debounce } from "@ember/runloop";
import I18n from "I18n";
+import { debounce } from "@ember/runloop";
let _cache = {};
diff --git a/app/assets/javascripts/pretty-text/addon/white-lister.js b/app/assets/javascripts/pretty-text/addon/white-lister.js
index 9e2fa6bf104..e07df502e44 100644
--- a/app/assets/javascripts/pretty-text/addon/white-lister.js
+++ b/app/assets/javascripts/pretty-text/addon/white-lister.js
@@ -1,7 +1,7 @@
-import deprecated from "discourse-common/lib/deprecated";
import AllowLister, {
DEFAULT_LIST as NEW_DEFAULT_LIST,
} from "pretty-text/allow-lister";
+import deprecated from "discourse-common/lib/deprecated";
export default class WhiteLister extends AllowLister {
constructor(options) {
diff --git a/app/assets/javascripts/pretty-text/engines/discourse-markdown/onebox.js b/app/assets/javascripts/pretty-text/engines/discourse-markdown/onebox.js
index edbe4d54bd6..f1eb387877d 100644
--- a/app/assets/javascripts/pretty-text/engines/discourse-markdown/onebox.js
+++ b/app/assets/javascripts/pretty-text/engines/discourse-markdown/onebox.js
@@ -1,5 +1,5 @@
-import { lookupCache } from "pretty-text/oneboxer-cache";
import { cachedInlineOnebox } from "pretty-text/inline-oneboxer";
+import { lookupCache } from "pretty-text/oneboxer-cache";
const ONEBOX = 1;
const INLINE = 2;
diff --git a/app/assets/javascripts/select-kit/addon/components/categories-admin-dropdown.js b/app/assets/javascripts/select-kit/addon/components/categories-admin-dropdown.js
index 4336ff22a5b..da6f1339071 100644
--- a/app/assets/javascripts/select-kit/addon/components/categories-admin-dropdown.js
+++ b/app/assets/javascripts/select-kit/addon/components/categories-admin-dropdown.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
import { computed } from "@ember/object";
import { setting } from "discourse/lib/computed";
diff --git a/app/assets/javascripts/select-kit/addon/components/category-chooser.js b/app/assets/javascripts/select-kit/addon/components/category-chooser.js
index 8bb8a688155..fa56c7a4430 100644
--- a/app/assets/javascripts/select-kit/addon/components/category-chooser.js
+++ b/app/assets/javascripts/select-kit/addon/components/category-chooser.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import ComboBoxComponent from "select-kit/components/combo-box";
-import PermissionType from "discourse/models/permission-type";
-import Category from "discourse/models/category";
-import { categoryBadgeHTML } from "discourse/helpers/category-link";
import { computed, set } from "@ember/object";
+import Category from "discourse/models/category";
+import ComboBoxComponent from "select-kit/components/combo-box";
+import I18n from "I18n";
+import PermissionType from "discourse/models/permission-type";
+import { categoryBadgeHTML } from "discourse/helpers/category-link";
import { isNone } from "@ember/utils";
import { setting } from "discourse/lib/computed";
diff --git a/app/assets/javascripts/select-kit/addon/components/category-drop.js b/app/assets/javascripts/select-kit/addon/components/category-drop.js
index a7d6e82e060..9007a452199 100644
--- a/app/assets/javascripts/select-kit/addon/components/category-drop.js
+++ b/app/assets/javascripts/select-kit/addon/components/category-drop.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
-import I18n from "I18n";
-import { readOnly } from "@ember/object/computed";
-import { computed } from "@ember/object";
+import Category from "discourse/models/category";
import ComboBoxComponent from "select-kit/components/combo-box";
import DiscourseURL from "discourse/lib/url";
-import Category from "discourse/models/category";
+import I18n from "I18n";
import { categoryBadgeHTML } from "discourse/helpers/category-link";
+import { computed } from "@ember/object";
+import getURL from "discourse-common/lib/get-url";
+import { readOnly } from "@ember/object/computed";
export const NO_CATEGORIES_ID = "no-categories";
export const ALL_CATEGORIES_ID = "all-categories";
diff --git a/app/assets/javascripts/select-kit/addon/components/category-drop/category-drop-header.js b/app/assets/javascripts/select-kit/addon/components/category-drop/category-drop-header.js
index 7daa6c0e4b3..5cb7281d89b 100644
--- a/app/assets/javascripts/select-kit/addon/components/category-drop/category-drop-header.js
+++ b/app/assets/javascripts/select-kit/addon/components/category-drop/category-drop-header.js
@@ -1,8 +1,8 @@
-import { readOnly } from "@ember/object/computed";
-import { schedule } from "@ember/runloop";
import ComboBoxSelectBoxHeaderComponent from "select-kit/components/combo-box/combo-box-header";
import discourseComputed from "discourse-common/utils/decorators";
import layout from "select-kit/templates/components/category-drop/category-drop-header";
+import { readOnly } from "@ember/object/computed";
+import { schedule } from "@ember/runloop";
export default ComboBoxSelectBoxHeaderComponent.extend({
layout,
diff --git a/app/assets/javascripts/select-kit/addon/components/category-notifications-button.js b/app/assets/javascripts/select-kit/addon/components/category-notifications-button.js
index aee957c63cb..4b93627ef60 100644
--- a/app/assets/javascripts/select-kit/addon/components/category-notifications-button.js
+++ b/app/assets/javascripts/select-kit/addon/components/category-notifications-button.js
@@ -1,5 +1,5 @@
-import { or } from "@ember/object/computed";
import NotificationOptionsComponent from "select-kit/components/notifications-button";
+import { or } from "@ember/object/computed";
export default NotificationOptionsComponent.extend({
pluginApiIdentifiers: ["category-notifications-button"],
diff --git a/app/assets/javascripts/select-kit/addon/components/category-row.js b/app/assets/javascripts/select-kit/addon/components/category-row.js
index cbcb6df4dbb..dedd8a5c48d 100644
--- a/app/assets/javascripts/select-kit/addon/components/category-row.js
+++ b/app/assets/javascripts/select-kit/addon/components/category-row.js
@@ -1,11 +1,11 @@
-import { reads, bool } from "@ember/object/computed";
-import SelectKitRowComponent from "select-kit/components/select-kit/select-kit-row";
-import Category from "discourse/models/category";
-import { categoryBadgeHTML } from "discourse/helpers/category-link";
+import { bool, reads } from "@ember/object/computed";
import { isEmpty, isNone } from "@ember/utils";
+import Category from "discourse/models/category";
+import SelectKitRowComponent from "select-kit/components/select-kit/select-kit-row";
+import { categoryBadgeHTML } from "discourse/helpers/category-link";
import { computed } from "@ember/object";
-import { setting } from "discourse/lib/computed";
import layout from "select-kit/templates/components/category-row";
+import { setting } from "discourse/lib/computed";
function htmlToText(encodedString) {
const elem = document.createElement("textarea");
diff --git a/app/assets/javascripts/select-kit/addon/components/category-selector.js b/app/assets/javascripts/select-kit/addon/components/category-selector.js
index 69f157fe419..1a081f9e9c2 100644
--- a/app/assets/javascripts/select-kit/addon/components/category-selector.js
+++ b/app/assets/javascripts/select-kit/addon/components/category-selector.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { categoryBadgeHTML } from "discourse/helpers/category-link";
-import EmberObject, { get, computed } from "@ember/object";
-import { mapBy } from "@ember/object/computed";
-import { makeArray } from "discourse-common/lib/helpers";
-import MultiSelectComponent from "select-kit/components/multi-select";
+import EmberObject, { computed, get } from "@ember/object";
import Category from "discourse/models/category";
+import I18n from "I18n";
+import MultiSelectComponent from "select-kit/components/multi-select";
+import { categoryBadgeHTML } from "discourse/helpers/category-link";
+import { makeArray } from "discourse-common/lib/helpers";
+import { mapBy } from "@ember/object/computed";
export default MultiSelectComponent.extend({
pluginApiIdentifiers: ["category-selector"],
diff --git a/app/assets/javascripts/select-kit/addon/components/color-palettes.js b/app/assets/javascripts/select-kit/addon/components/color-palettes.js
index 417aca4edc6..9c419f41b5d 100644
--- a/app/assets/javascripts/select-kit/addon/components/color-palettes.js
+++ b/app/assets/javascripts/select-kit/addon/components/color-palettes.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import ComboBoxComponent from "select-kit/components/combo-box";
+import I18n from "I18n";
export default ComboBoxComponent.extend({
pluginApiIdentifiers: ["color-palettes"],
diff --git a/app/assets/javascripts/select-kit/addon/components/color-palettes/color-palettes-row.js b/app/assets/javascripts/select-kit/addon/components/color-palettes/color-palettes-row.js
index 4ec5a382ded..4819db65d06 100644
--- a/app/assets/javascripts/select-kit/addon/components/color-palettes/color-palettes-row.js
+++ b/app/assets/javascripts/select-kit/addon/components/color-palettes/color-palettes-row.js
@@ -1,6 +1,6 @@
-import { escapeExpression } from "discourse/lib/utilities";
import SelectKitRowComponent from "select-kit/components/select-kit/select-kit-row";
import { computed } from "@ember/object";
+import { escapeExpression } from "discourse/lib/utilities";
import layout from "select-kit/templates/components/color-palettes/color-palettes-row";
export default SelectKitRowComponent.extend({
diff --git a/app/assets/javascripts/select-kit/addon/components/combo-box/combo-box-header.js b/app/assets/javascripts/select-kit/addon/components/combo-box/combo-box-header.js
index be48bb31322..6d6378d3337 100644
--- a/app/assets/javascripts/select-kit/addon/components/combo-box/combo-box-header.js
+++ b/app/assets/javascripts/select-kit/addon/components/combo-box/combo-box-header.js
@@ -1,4 +1,4 @@
-import { reads, and } from "@ember/object/computed";
+import { and, reads } from "@ember/object/computed";
import SingleSelectHeaderComponent from "select-kit/components/select-kit/single-select-header";
import { computed } from "@ember/object";
import layout from "select-kit/templates/components/combo-box/combo-box-header";
diff --git a/app/assets/javascripts/select-kit/addon/components/composer-actions.js b/app/assets/javascripts/select-kit/addon/components/composer-actions.js
index c453c469181..3cde967ef3f 100644
--- a/app/assets/javascripts/select-kit/addon/components/composer-actions.js
+++ b/app/assets/javascripts/select-kit/addon/components/composer-actions.js
@@ -1,18 +1,18 @@
-import I18n from "I18n";
-import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
import {
- PRIVATE_MESSAGE,
- CREATE_TOPIC,
CREATE_SHARED_DRAFT,
- REPLY,
+ CREATE_TOPIC,
EDIT,
+ PRIVATE_MESSAGE,
+ REPLY,
} from "discourse/models/composer";
import Draft from "discourse/models/draft";
+import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
+import bootbox from "bootbox";
+import { camelize } from "@ember/string";
import { computed } from "@ember/object";
import { equal } from "@ember/object/computed";
-import { camelize } from "@ember/string";
import { isEmpty } from "@ember/utils";
-import bootbox from "bootbox";
// Component can get destroyed and lose state
let _topicSnapshot = null;
diff --git a/app/assets/javascripts/select-kit/addon/components/create-color-row.js b/app/assets/javascripts/select-kit/addon/components/create-color-row.js
index 063cc67ba3d..e19630287f0 100644
--- a/app/assets/javascripts/select-kit/addon/components/create-color-row.js
+++ b/app/assets/javascripts/select-kit/addon/components/create-color-row.js
@@ -1,7 +1,7 @@
import SelectKitRowComponent from "select-kit/components/select-kit/select-kit-row";
import { escapeExpression } from "discourse/lib/utilities";
-import { schedule } from "@ember/runloop";
import layout from "select-kit/templates/components/create-color-row";
+import { schedule } from "@ember/runloop";
export default SelectKitRowComponent.extend({
layout,
diff --git a/app/assets/javascripts/select-kit/addon/components/dropdown-select-box/dropdown-select-box-header.js b/app/assets/javascripts/select-kit/addon/components/dropdown-select-box/dropdown-select-box-header.js
index 68d26db9af7..c8115d48500 100644
--- a/app/assets/javascripts/select-kit/addon/components/dropdown-select-box/dropdown-select-box-header.js
+++ b/app/assets/javascripts/select-kit/addon/components/dropdown-select-box/dropdown-select-box-header.js
@@ -1,7 +1,7 @@
import SingleSelectHeaderComponent from "select-kit/components/select-kit/single-select-header";
import { computed } from "@ember/object";
-import { readOnly } from "@ember/object/computed";
import layout from "select-kit/templates/components/dropdown-select-box/dropdown-select-box-header";
+import { readOnly } from "@ember/object/computed";
export default SingleSelectHeaderComponent.extend({
layout,
diff --git a/app/assets/javascripts/select-kit/addon/components/dropdown-select-box/dropdown-select-box-row.js b/app/assets/javascripts/select-kit/addon/components/dropdown-select-box/dropdown-select-box-row.js
index 3bb126c0fa7..6399da5b2dd 100644
--- a/app/assets/javascripts/select-kit/addon/components/dropdown-select-box/dropdown-select-box-row.js
+++ b/app/assets/javascripts/select-kit/addon/components/dropdown-select-box/dropdown-select-box-row.js
@@ -1,6 +1,6 @@
-import { readOnly } from "@ember/object/computed";
import SelectKitRowComponent from "select-kit/components/select-kit/select-kit-row";
import layout from "select-kit/templates/components/dropdown-select-box/dropdown-select-box-row";
+import { readOnly } from "@ember/object/computed";
export default SelectKitRowComponent.extend({
layout,
diff --git a/app/assets/javascripts/select-kit/addon/components/future-date-input-selector.js b/app/assets/javascripts/select-kit/addon/components/future-date-input-selector.js
index 291a7c1bb49..8371514e74f 100644
--- a/app/assets/javascripts/select-kit/addon/components/future-date-input-selector.js
+++ b/app/assets/javascripts/select-kit/addon/components/future-date-input-selector.js
@@ -1,10 +1,10 @@
+import { CLOSE_STATUS_TYPE } from "discourse/controllers/edit-topic-timer";
+import ComboBoxComponent from "select-kit/components/combo-box";
+import DatetimeMixin from "select-kit/components/future-date-input-selector/mixin";
import I18n from "I18n";
import { computed } from "@ember/object";
import { equal } from "@ember/object/computed";
import { isEmpty } from "@ember/utils";
-import ComboBoxComponent from "select-kit/components/combo-box";
-import { CLOSE_STATUS_TYPE } from "discourse/controllers/edit-topic-timer";
-import DatetimeMixin from "select-kit/components/future-date-input-selector/mixin";
const TIMEFRAME_BASE = {
enabled: () => true,
diff --git a/app/assets/javascripts/select-kit/addon/components/future-date-input-selector/mixin.js b/app/assets/javascripts/select-kit/addon/components/future-date-input-selector/mixin.js
index 66dea891837..c9b64fa5318 100644
--- a/app/assets/javascripts/select-kit/addon/components/future-date-input-selector/mixin.js
+++ b/app/assets/javascripts/select-kit/addon/components/future-date-input-selector/mixin.js
@@ -1,7 +1,7 @@
import { CLOSE_STATUS_TYPE } from "discourse/controllers/edit-topic-timer";
-import { timeframeDetails } from "select-kit/components/future-date-input-selector";
import Mixin from "@ember/object/mixin";
import { isNone } from "@ember/utils";
+import { timeframeDetails } from "select-kit/components/future-date-input-selector";
export default Mixin.create({
_computeIconsForValue(value) {
diff --git a/app/assets/javascripts/select-kit/addon/components/group-dropdown.js b/app/assets/javascripts/select-kit/addon/components/group-dropdown.js
index 44776187538..365f8c5ad09 100644
--- a/app/assets/javascripts/select-kit/addon/components/group-dropdown.js
+++ b/app/assets/javascripts/select-kit/addon/components/group-dropdown.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import { reads, gte } from "@ember/object/computed";
+import { gte, reads } from "@ember/object/computed";
import ComboBoxComponent from "select-kit/components/combo-box";
import DiscourseURL from "discourse/lib/url";
+import I18n from "I18n";
import { computed } from "@ember/object";
import { setting } from "discourse/lib/computed";
diff --git a/app/assets/javascripts/select-kit/addon/components/group-members-dropdown.js b/app/assets/javascripts/select-kit/addon/components/group-members-dropdown.js
index 5d089e1be08..d9d64832c3c 100644
--- a/app/assets/javascripts/select-kit/addon/components/group-members-dropdown.js
+++ b/app/assets/javascripts/select-kit/addon/components/group-members-dropdown.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
-import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
import { action, computed } from "@ember/object";
+import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
export default DropdownSelectBoxComponent.extend({
classNames: ["group-members-dropdown"],
diff --git a/app/assets/javascripts/select-kit/addon/components/icon-picker.js b/app/assets/javascripts/select-kit/addon/components/icon-picker.js
index eb053b03963..69b7767b1d8 100644
--- a/app/assets/javascripts/select-kit/addon/components/icon-picker.js
+++ b/app/assets/javascripts/select-kit/addon/components/icon-picker.js
@@ -1,13 +1,13 @@
-import MultiSelectComponent from "select-kit/components/multi-select";
-import { computed } from "@ember/object";
-import { ajax } from "discourse/lib/ajax";
-import { makeArray } from "discourse-common/lib/helpers";
import {
convertIconClass,
disableMissingIconWarning,
enableMissingIconWarning,
} from "discourse-common/lib/icon-library";
+import MultiSelectComponent from "select-kit/components/multi-select";
+import { ajax } from "discourse/lib/ajax";
+import { computed } from "@ember/object";
import { isDevelopment } from "discourse-common/config/environment";
+import { makeArray } from "discourse-common/lib/helpers";
export default MultiSelectComponent.extend({
pluginApiIdentifiers: ["icon-picker"],
diff --git a/app/assets/javascripts/select-kit/addon/components/list-setting.js b/app/assets/javascripts/select-kit/addon/components/list-setting.js
index f2ee92b6032..da9d9f7d4bd 100644
--- a/app/assets/javascripts/select-kit/addon/components/list-setting.js
+++ b/app/assets/javascripts/select-kit/addon/components/list-setting.js
@@ -1,8 +1,8 @@
-import MultiSelectComponent from "select-kit/components/multi-select";
import { MAIN_COLLECTION } from "select-kit/components/select-kit";
+import MultiSelectComponent from "select-kit/components/multi-select";
import { computed } from "@ember/object";
-import { readOnly } from "@ember/object/computed";
import { makeArray } from "discourse-common/lib/helpers";
+import { readOnly } from "@ember/object/computed";
export default MultiSelectComponent.extend({
pluginApiIdentifiers: ["list-setting"],
diff --git a/app/assets/javascripts/select-kit/addon/components/mini-tag-chooser.js b/app/assets/javascripts/select-kit/addon/components/mini-tag-chooser.js
index 8ed8cff649f..7fcbe045fe5 100644
--- a/app/assets/javascripts/select-kit/addon/components/mini-tag-chooser.js
+++ b/app/assets/javascripts/select-kit/addon/components/mini-tag-chooser.js
@@ -1,13 +1,13 @@
-import I18n from "I18n";
import { empty, or } from "@ember/object/computed";
import ComboBox from "select-kit/components/combo-box";
+import { ERRORS_COLLECTION } from "select-kit/components/select-kit";
+import I18n from "I18n";
import TagsMixin from "select-kit/mixins/tags";
-import { makeArray } from "discourse-common/lib/helpers";
import { computed } from "@ember/object";
-import { setting } from "discourse/lib/computed";
+import { makeArray } from "discourse-common/lib/helpers";
const SELECTED_TAGS_COLLECTION = "MINI_TAG_CHOOSER_SELECTED_TAGS";
-import { ERRORS_COLLECTION } from "select-kit/components/select-kit";
+import { setting } from "discourse/lib/computed";
export default ComboBox.extend(TagsMixin, {
pluginApiIdentifiers: ["mini-tag-chooser"],
diff --git a/app/assets/javascripts/select-kit/addon/components/mini-tag-chooser/selected-collection.js b/app/assets/javascripts/select-kit/addon/components/mini-tag-chooser/selected-collection.js
index bb9fbac778d..e8187c687a6 100644
--- a/app/assets/javascripts/select-kit/addon/components/mini-tag-chooser/selected-collection.js
+++ b/app/assets/javascripts/select-kit/addon/components/mini-tag-chooser/selected-collection.js
@@ -1,6 +1,6 @@
+import { empty, reads } from "@ember/object/computed";
import Component from "@ember/component";
import { computed } from "@ember/object";
-import { reads, empty } from "@ember/object/computed";
import layout from "select-kit/templates/components/mini-tag-chooser/selected-collection";
export default Component.extend({
diff --git a/app/assets/javascripts/select-kit/addon/components/multi-select.js b/app/assets/javascripts/select-kit/addon/components/multi-select.js
index 2c7900fe4ac..d4b8e09a145 100644
--- a/app/assets/javascripts/select-kit/addon/components/multi-select.js
+++ b/app/assets/javascripts/select-kit/addon/components/multi-select.js
@@ -1,9 +1,9 @@
-import deprecated from "discourse-common/lib/deprecated";
import SelectKitComponent from "select-kit/components/select-kit";
import { computed } from "@ember/object";
+import deprecated from "discourse-common/lib/deprecated";
import { isPresent } from "@ember/utils";
-import { makeArray } from "discourse-common/lib/helpers";
import layout from "select-kit/templates/components/multi-select";
+import { makeArray } from "discourse-common/lib/helpers";
export default SelectKitComponent.extend({
pluginApiIdentifiers: ["multi-select"],
diff --git a/app/assets/javascripts/select-kit/addon/components/multi-select/multi-select-filter.js b/app/assets/javascripts/select-kit/addon/components/multi-select/multi-select-filter.js
index 267e83f2731..3e49691a4f9 100644
--- a/app/assets/javascripts/select-kit/addon/components/multi-select/multi-select-filter.js
+++ b/app/assets/javascripts/select-kit/addon/components/multi-select/multi-select-filter.js
@@ -1,7 +1,7 @@
import I18n from "I18n";
-import discourseComputed from "discourse-common/utils/decorators";
-const { isEmpty } = Ember;
import SelectKitFilterComponent from "select-kit/components/select-kit/select-kit-filter";
+const { isEmpty } = Ember;
+import discourseComputed from "discourse-common/utils/decorators";
import layout from "select-kit/templates/components/select-kit/select-kit-filter";
export default SelectKitFilterComponent.extend({
diff --git a/app/assets/javascripts/select-kit/addon/components/multi-select/multi-select-header.js b/app/assets/javascripts/select-kit/addon/components/multi-select/multi-select-header.js
index e01a0f7ca80..ed3b298da8b 100644
--- a/app/assets/javascripts/select-kit/addon/components/multi-select/multi-select-header.js
+++ b/app/assets/javascripts/select-kit/addon/components/multi-select/multi-select-header.js
@@ -1,7 +1,7 @@
import SelectKitHeaderComponent from "select-kit/components/select-kit/select-kit-header";
import { computed } from "@ember/object";
-import { makeArray } from "discourse-common/lib/helpers";
import layout from "select-kit/templates/components/multi-select/multi-select-header";
+import { makeArray } from "discourse-common/lib/helpers";
export default SelectKitHeaderComponent.extend({
classNames: ["multi-select-header"],
diff --git a/app/assets/javascripts/select-kit/addon/components/notifications-button.js b/app/assets/javascripts/select-kit/addon/components/notifications-button.js
index 5e0788e55af..0935db826b4 100644
--- a/app/assets/javascripts/select-kit/addon/components/notifications-button.js
+++ b/app/assets/javascripts/select-kit/addon/components/notifications-button.js
@@ -1,7 +1,7 @@
-import I18n from "I18n";
-import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
import { allLevels, buttonDetails } from "discourse/lib/notification-levels";
import { computed, setProperties } from "@ember/object";
+import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
export default DropdownSelectBoxComponent.extend({
pluginApiIdentifiers: ["notifications-button"],
diff --git a/app/assets/javascripts/select-kit/addon/components/notifications-button/notifications-button-row.js b/app/assets/javascripts/select-kit/addon/components/notifications-button/notifications-button-row.js
index 25fa2f323f4..58cb0aa44ca 100644
--- a/app/assets/javascripts/select-kit/addon/components/notifications-button/notifications-button-row.js
+++ b/app/assets/javascripts/select-kit/addon/components/notifications-button/notifications-button-row.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
-import { readOnly } from "@ember/object/computed";
-import { computed } from "@ember/object";
import DropdownSelectBoxRowComponent from "select-kit/components/dropdown-select-box/dropdown-select-box-row";
+import I18n from "I18n";
+import { computed } from "@ember/object";
import { escapeExpression } from "discourse/lib/utilities";
+import { readOnly } from "@ember/object/computed";
export default DropdownSelectBoxRowComponent.extend({
classNames: ["notifications-button-row"],
diff --git a/app/assets/javascripts/select-kit/addon/components/notifications-filter.js b/app/assets/javascripts/select-kit/addon/components/notifications-filter.js
index aafd2ce447c..08b05789be7 100644
--- a/app/assets/javascripts/select-kit/addon/components/notifications-filter.js
+++ b/app/assets/javascripts/select-kit/addon/components/notifications-filter.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
import { computed } from "@ember/object";
export default DropdownSelectBoxComponent.extend({
diff --git a/app/assets/javascripts/select-kit/addon/components/period-chooser/period-chooser-row.js b/app/assets/javascripts/select-kit/addon/components/period-chooser/period-chooser-row.js
index 49bfefa5817..0787fa62ef4 100644
--- a/app/assets/javascripts/select-kit/addon/components/period-chooser/period-chooser-row.js
+++ b/app/assets/javascripts/select-kit/addon/components/period-chooser/period-chooser-row.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DropdownSelectBoxRowComponent from "select-kit/components/dropdown-select-box/dropdown-select-box-row";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import layout from "select-kit/templates/components/period-chooser/period-chooser-row";
diff --git a/app/assets/javascripts/select-kit/addon/components/pinned-button.js b/app/assets/javascripts/select-kit/addon/components/pinned-button.js
index 3b9f79c091e..bc1a834becf 100644
--- a/app/assets/javascripts/select-kit/addon/components/pinned-button.js
+++ b/app/assets/javascripts/select-kit/addon/components/pinned-button.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators";
import layout from "select-kit/templates/components/pinned-button";
diff --git a/app/assets/javascripts/select-kit/addon/components/pinned-options.js b/app/assets/javascripts/select-kit/addon/components/pinned-options.js
index f137223f587..94a355baefa 100644
--- a/app/assets/javascripts/select-kit/addon/components/pinned-options.js
+++ b/app/assets/javascripts/select-kit/addon/components/pinned-options.js
@@ -1,6 +1,6 @@
-import I18n from "I18n";
+import { action, computed } from "@ember/object";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
-import { computed, action } from "@ember/object";
+import I18n from "I18n";
const UNPINNED = "unpinned";
const PINNED = "pinned";
diff --git a/app/assets/javascripts/select-kit/addon/components/select-kit.js b/app/assets/javascripts/select-kit/addon/components/select-kit.js
index d76586f50f4..a440f8d0967 100644
--- a/app/assets/javascripts/select-kit/addon/components/select-kit.js
+++ b/app/assets/javascripts/select-kit/addon/components/select-kit.js
@@ -1,26 +1,26 @@
-import { createPopper } from "@popperjs/core";
-import I18n from "I18n";
import EmberObject, { computed, get } from "@ember/object";
-import { guidFor } from "@ember/object/internals";
-import Component from "@ember/component";
-import deprecated from "discourse-common/lib/deprecated";
-import { makeArray } from "discourse-common/lib/helpers";
-import UtilsMixin from "select-kit/mixins/utils";
-import Mixin from "@ember/object/mixin";
-import { isPresent, isEmpty, isNone } from "@ember/utils";
-import {
- next,
- debounce,
- cancel,
- throttle,
- bind,
- schedule,
-} from "@ember/runloop";
-import { Promise } from "rsvp";
import PluginApiMixin, {
applyContentPluginApiCallbacks,
applyOnChangePluginApiCallbacks,
} from "select-kit/mixins/plugin-api";
+import {
+ bind,
+ cancel,
+ debounce,
+ next,
+ schedule,
+ throttle,
+} from "@ember/runloop";
+import { isEmpty, isNone, isPresent } from "@ember/utils";
+import Component from "@ember/component";
+import I18n from "I18n";
+import Mixin from "@ember/object/mixin";
+import { Promise } from "rsvp";
+import UtilsMixin from "select-kit/mixins/utils";
+import { createPopper } from "@popperjs/core";
+import deprecated from "discourse-common/lib/deprecated";
+import { guidFor } from "@ember/object/internals";
+import { makeArray } from "discourse-common/lib/helpers";
export const MAIN_COLLECTION = "MAIN_COLLECTION";
export const ERRORS_COLLECTION = "ERRORS_COLLECTION";
diff --git a/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-body.js b/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-body.js
index 594c0232a52..8566eee81d5 100644
--- a/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-body.js
+++ b/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-body.js
@@ -1,6 +1,6 @@
import Component from "@ember/component";
-import { computed } from "@ember/object";
import { bind } from "@ember/runloop";
+import { computed } from "@ember/object";
import layout from "select-kit/templates/components/select-kit/select-kit-body";
export default Component.extend({
diff --git a/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-filter.js b/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-filter.js
index 729b3d5d67b..f9f6bbe2b38 100644
--- a/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-filter.js
+++ b/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-filter.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
+import UtilsMixin from "select-kit/mixins/utils";
+import { computed } from "@ember/object";
import discourseComputed from "discourse-common/utils/decorators";
import { isPresent } from "@ember/utils";
-import { computed } from "@ember/object";
-import { not } from "@ember/object/computed";
-import UtilsMixin from "select-kit/mixins/utils";
import layout from "select-kit/templates/components/select-kit/select-kit-filter";
+import { not } from "@ember/object/computed";
export default Component.extend(UtilsMixin, {
layout,
diff --git a/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-header.js b/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-header.js
index 83a48f961d9..7db79a2b525 100644
--- a/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-header.js
+++ b/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-header.js
@@ -1,8 +1,8 @@
-import { computed } from "@ember/object";
import Component from "@ember/component";
import UtilsMixin from "select-kit/mixins/utils";
-import { schedule } from "@ember/runloop";
+import { computed } from "@ember/object";
import { makeArray } from "discourse-common/lib/helpers";
+import { schedule } from "@ember/runloop";
export default Component.extend(UtilsMixin, {
eventType: "click",
diff --git a/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-row.js b/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-row.js
index 30ed72ffced..287637a56d0 100644
--- a/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-row.js
+++ b/app/assets/javascripts/select-kit/addon/components/select-kit/select-kit-row.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
+import { action, computed } from "@ember/object";
import Component from "@ember/component";
-import { computed, action } from "@ember/object";
-import { makeArray } from "discourse-common/lib/helpers";
-import { guidFor } from "@ember/object/internals";
+import I18n from "I18n";
import UtilsMixin from "select-kit/mixins/utils";
+import { guidFor } from "@ember/object/internals";
import layout from "select-kit/templates/components/select-kit/select-kit-row";
+import { makeArray } from "discourse-common/lib/helpers";
export default Component.extend(UtilsMixin, {
layout,
diff --git a/app/assets/javascripts/select-kit/addon/components/selected-name.js b/app/assets/javascripts/select-kit/addon/components/selected-name.js
index 5b0c5122704..e9cc1688a77 100644
--- a/app/assets/javascripts/select-kit/addon/components/selected-name.js
+++ b/app/assets/javascripts/select-kit/addon/components/selected-name.js
@@ -1,8 +1,8 @@
-import { computed, get, action } from "@ember/object";
+import { action, computed, get } from "@ember/object";
import Component from "@ember/component";
-import { makeArray } from "discourse-common/lib/helpers";
import UtilsMixin from "select-kit/mixins/utils";
import layout from "select-kit/templates/components/selected-name";
+import { makeArray } from "discourse-common/lib/helpers";
export default Component.extend(UtilsMixin, {
tagName: "",
diff --git a/app/assets/javascripts/select-kit/addon/components/tag-chooser.js b/app/assets/javascripts/select-kit/addon/components/tag-chooser.js
index 0fcc339c116..64693c62fea 100644
--- a/app/assets/javascripts/select-kit/addon/components/tag-chooser.js
+++ b/app/assets/javascripts/select-kit/addon/components/tag-chooser.js
@@ -1,6 +1,6 @@
-import { computed } from "@ember/object";
import MultiSelectComponent from "select-kit/components/multi-select";
import TagsMixin from "select-kit/mixins/tags";
+import { computed } from "@ember/object";
import { makeArray } from "discourse-common/lib/helpers";
export default MultiSelectComponent.extend(TagsMixin, {
diff --git a/app/assets/javascripts/select-kit/addon/components/tag-drop.js b/app/assets/javascripts/select-kit/addon/components/tag-drop.js
index 720e8ad64b0..02abe4ccb2f 100644
--- a/app/assets/javascripts/select-kit/addon/components/tag-drop.js
+++ b/app/assets/javascripts/select-kit/addon/components/tag-drop.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
-import Category from "discourse/models/category";
-import { readOnly, or, equal, gte } from "@ember/object/computed";
+import { equal, gte, or, readOnly } from "@ember/object/computed";
import { i18n, setting } from "discourse/lib/computed";
+import Category from "discourse/models/category";
import ComboBoxComponent from "select-kit/components/combo-box";
import DiscourseURL from "discourse/lib/url";
import TagsMixin from "select-kit/mixins/tags";
import { computed } from "@ember/object";
+import getURL from "discourse-common/lib/get-url";
import { isEmpty } from "@ember/utils";
import { makeArray } from "discourse-common/lib/helpers";
diff --git a/app/assets/javascripts/select-kit/addon/components/tag-group-chooser.js b/app/assets/javascripts/select-kit/addon/components/tag-group-chooser.js
index 17676a20e6d..d2026ff113e 100644
--- a/app/assets/javascripts/select-kit/addon/components/tag-group-chooser.js
+++ b/app/assets/javascripts/select-kit/addon/components/tag-group-chooser.js
@@ -1,7 +1,7 @@
import MultiSelectComponent from "select-kit/components/multi-select";
import TagsMixin from "select-kit/mixins/tags";
-import { makeArray } from "discourse-common/lib/helpers";
import { computed } from "@ember/object";
+import { makeArray } from "discourse-common/lib/helpers";
export default MultiSelectComponent.extend(TagsMixin, {
pluginApiIdentifiers: ["tag-group-chooser"],
diff --git a/app/assets/javascripts/select-kit/addon/components/toolbar-popup-menu-options.js b/app/assets/javascripts/select-kit/addon/components/toolbar-popup-menu-options.js
index 812166a29e6..e8a1f68c281 100644
--- a/app/assets/javascripts/select-kit/addon/components/toolbar-popup-menu-options.js
+++ b/app/assets/javascripts/select-kit/addon/components/toolbar-popup-menu-options.js
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
export default DropdownSelectBoxComponent.extend({
pluginApiIdentifiers: ["toolbar-popup-menu-options"],
diff --git a/app/assets/javascripts/select-kit/addon/components/topic-notifications-button.js b/app/assets/javascripts/select-kit/addon/components/topic-notifications-button.js
index dd7ada4144c..13faac30b10 100644
--- a/app/assets/javascripts/select-kit/addon/components/topic-notifications-button.js
+++ b/app/assets/javascripts/select-kit/addon/components/topic-notifications-button.js
@@ -1,5 +1,5 @@
-import Component from "@ember/component";
import { action, computed } from "@ember/object";
+import Component from "@ember/component";
import layout from "select-kit/templates/components/topic-notifications-button";
export default Component.extend({
diff --git a/app/assets/javascripts/select-kit/addon/components/topic-notifications-options.js b/app/assets/javascripts/select-kit/addon/components/topic-notifications-options.js
index 163ea1030ba..65b99695f59 100644
--- a/app/assets/javascripts/select-kit/addon/components/topic-notifications-options.js
+++ b/app/assets/javascripts/select-kit/addon/components/topic-notifications-options.js
@@ -1,6 +1,6 @@
import NotificationsButtonComponent from "select-kit/components/notifications-button";
-import { topicLevels } from "discourse/lib/notification-levels";
import { computed } from "@ember/object";
+import { topicLevels } from "discourse/lib/notification-levels";
export default NotificationsButtonComponent.extend({
pluginApiIdentifiers: ["topic-notifications-options"],
diff --git a/app/assets/javascripts/select-kit/addon/components/user-chooser.js b/app/assets/javascripts/select-kit/addon/components/user-chooser.js
index 102556ae83f..6bf7257bad9 100644
--- a/app/assets/javascripts/select-kit/addon/components/user-chooser.js
+++ b/app/assets/javascripts/select-kit/addon/components/user-chooser.js
@@ -1,9 +1,9 @@
+import userSearch, {
+ eagerCompleteSearch,
+ skipSearch,
+} from "discourse/lib/user-search";
import MultiSelectComponent from "select-kit/components/multi-select";
import { computed } from "@ember/object";
-import userSearch, {
- skipSearch,
- eagerCompleteSearch,
-} from "discourse/lib/user-search";
import { makeArray } from "discourse-common/lib/helpers";
export default MultiSelectComponent.extend({
diff --git a/app/assets/javascripts/select-kit/addon/components/user-notifications-dropdown.js b/app/assets/javascripts/select-kit/addon/components/user-notifications-dropdown.js
index 04ac5944a6d..b246e817770 100644
--- a/app/assets/javascripts/select-kit/addon/components/user-notifications-dropdown.js
+++ b/app/assets/javascripts/select-kit/addon/components/user-notifications-dropdown.js
@@ -1,8 +1,8 @@
-import I18n from "I18n";
import DropdownSelectBox from "select-kit/components/dropdown-select-box";
+import I18n from "I18n";
+import { computed } from "@ember/object";
import { popupAjaxError } from "discourse/lib/ajax-error";
import showModal from "discourse/lib/show-modal";
-import { computed } from "@ember/object";
export default DropdownSelectBox.extend({
classNames: ["user-notifications", "user-notifications-dropdown"],
diff --git a/app/assets/javascripts/select-kit/addon/mixins/tags.js b/app/assets/javascripts/select-kit/addon/mixins/tags.js
index 180ee414109..b9240bd3f56 100644
--- a/app/assets/javascripts/select-kit/addon/mixins/tags.js
+++ b/app/assets/javascripts/select-kit/addon/mixins/tags.js
@@ -1,11 +1,11 @@
-import getURL from "discourse-common/lib/get-url";
import I18n from "I18n";
-import { reads } from "@ember/object/computed";
-import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
import Mixin from "@ember/object/mixin";
-import { makeArray } from "discourse-common/lib/helpers";
+import { ajax } from "discourse/lib/ajax";
+import getURL from "discourse-common/lib/get-url";
import { isEmpty } from "@ember/utils";
+import { makeArray } from "discourse-common/lib/helpers";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import { reads } from "@ember/object/computed";
export default Mixin.create({
searchTags(url, data, callback) {
diff --git a/app/assets/javascripts/wizard/components/font-preview.js b/app/assets/javascripts/wizard/components/font-preview.js
index df6d9ef0e98..ef2f73f216b 100644
--- a/app/assets/javascripts/wizard/components/font-preview.js
+++ b/app/assets/javascripts/wizard/components/font-preview.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
-import { observes } from "discourse-common/utils/decorators";
import {
+ chooseDarker,
createPreviewComponent,
darkLightDiff,
- chooseDarker,
} from "wizard/lib/preview";
+import I18n from "I18n";
+import { observes } from "discourse-common/utils/decorators";
const LOREM = `
Lorem ipsum dolor sit amet, consectetur adipiscing.
diff --git a/app/assets/javascripts/wizard/components/homepage-preview.js b/app/assets/javascripts/wizard/components/homepage-preview.js
index 8848ebd3176..0e61f60f3aa 100644
--- a/app/assets/javascripts/wizard/components/homepage-preview.js
+++ b/app/assets/javascripts/wizard/components/homepage-preview.js
@@ -1,9 +1,9 @@
-import { observes } from "discourse-common/utils/decorators";
import {
- createPreviewComponent,
LOREM,
+ createPreviewComponent,
darkLightDiff,
} from "wizard/lib/preview";
+import { observes } from "discourse-common/utils/decorators";
export default createPreviewComponent(659, 320, {
logo: null,
diff --git a/app/assets/javascripts/wizard/components/image-preview-favicon.js b/app/assets/javascripts/wizard/components/image-preview-favicon.js
index 82b0e95cee0..12a47e7ed60 100644
--- a/app/assets/javascripts/wizard/components/image-preview-favicon.js
+++ b/app/assets/javascripts/wizard/components/image-preview-favicon.js
@@ -1,5 +1,5 @@
-import { observes } from "discourse-common/utils/decorators";
import { createPreviewComponent } from "wizard/lib/preview";
+import { observes } from "discourse-common/utils/decorators";
export default createPreviewComponent(371, 124, {
tab: null,
diff --git a/app/assets/javascripts/wizard/components/image-preview-large-icon.js b/app/assets/javascripts/wizard/components/image-preview-large-icon.js
index 0d7c86a7d60..25ff5371256 100644
--- a/app/assets/javascripts/wizard/components/image-preview-large-icon.js
+++ b/app/assets/javascripts/wizard/components/image-preview-large-icon.js
@@ -1,5 +1,5 @@
-import { observes } from "discourse-common/utils/decorators";
import { createPreviewComponent } from "wizard/lib/preview";
+import { observes } from "discourse-common/utils/decorators";
export default createPreviewComponent(325, 125, {
ios: null,
diff --git a/app/assets/javascripts/wizard/components/image-preview-logo-small.js b/app/assets/javascripts/wizard/components/image-preview-logo-small.js
index ba55380d159..cc692e2aa8b 100644
--- a/app/assets/javascripts/wizard/components/image-preview-logo-small.js
+++ b/app/assets/javascripts/wizard/components/image-preview-logo-small.js
@@ -1,5 +1,5 @@
+import { LOREM, createPreviewComponent, drawHeader } from "wizard/lib/preview";
import { observes } from "discourse-common/utils/decorators";
-import { createPreviewComponent, drawHeader, LOREM } from "wizard/lib/preview";
export default createPreviewComponent(375, 100, {
image: null,
diff --git a/app/assets/javascripts/wizard/components/image-preview-logo.js b/app/assets/javascripts/wizard/components/image-preview-logo.js
index acad28063a2..c48bfa7ba54 100644
--- a/app/assets/javascripts/wizard/components/image-preview-logo.js
+++ b/app/assets/javascripts/wizard/components/image-preview-logo.js
@@ -1,5 +1,5 @@
-import { observes } from "discourse-common/utils/decorators";
import { createPreviewComponent, drawHeader } from "wizard/lib/preview";
+import { observes } from "discourse-common/utils/decorators";
export default createPreviewComponent(400, 100, {
image: null,
diff --git a/app/assets/javascripts/wizard/components/invite-list.js b/app/assets/javascripts/wizard/components/invite-list.js
index 115a25c66f7..f01f7088844 100644
--- a/app/assets/javascripts/wizard/components/invite-list.js
+++ b/app/assets/javascripts/wizard/components/invite-list.js
@@ -1,6 +1,6 @@
+import Component from "@ember/component";
import I18n from "I18n";
import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
export default Component.extend({
classNames: ["invite-list"],
diff --git a/app/assets/javascripts/wizard/components/radio-button.js b/app/assets/javascripts/wizard/components/radio-button.js
index f1a829cfa11..af16d49236b 100644
--- a/app/assets/javascripts/wizard/components/radio-button.js
+++ b/app/assets/javascripts/wizard/components/radio-button.js
@@ -1,6 +1,6 @@
-import { next } from "@ember/runloop";
-import Component from "@ember/component";
import { observes, on } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import { next } from "@ember/runloop";
export default Component.extend({
tagName: "label",
diff --git a/app/assets/javascripts/wizard/components/theme-preview.js b/app/assets/javascripts/wizard/components/theme-preview.js
index 5e72c3ec3ce..7ef561db1fb 100644
--- a/app/assets/javascripts/wizard/components/theme-preview.js
+++ b/app/assets/javascripts/wizard/components/theme-preview.js
@@ -1,11 +1,11 @@
-import I18n from "I18n";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
import {
+ LOREM,
+ chooseDarker,
createPreviewComponent,
darkLightDiff,
- chooseDarker,
- LOREM,
} from "wizard/lib/preview";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import I18n from "I18n";
export default createPreviewComponent(305, 165, {
logo: null,
diff --git a/app/assets/javascripts/wizard/components/wizard-field-image.js b/app/assets/javascripts/wizard/components/wizard-field-image.js
index 6900a2ec3e9..783e203e79f 100644
--- a/app/assets/javascripts/wizard/components/wizard-field-image.js
+++ b/app/assets/javascripts/wizard/components/wizard-field-image.js
@@ -1,10 +1,10 @@
-import I18n from "I18n";
import Component from "@ember/component";
-import getUrl from "discourse-common/lib/get-url";
-import discourseComputed from "discourse-common/utils/decorators";
-import { getToken } from "wizard/lib/ajax";
-import { getOwner } from "discourse-common/lib/get-owner";
+import I18n from "I18n";
import { dasherize } from "@ember/string";
+import discourseComputed from "discourse-common/utils/decorators";
+import { getOwner } from "discourse-common/lib/get-owner";
+import { getToken } from "wizard/lib/ajax";
+import getUrl from "discourse-common/lib/get-url";
export default Component.extend({
classNames: ["wizard-image-row"],
diff --git a/app/assets/javascripts/wizard/components/wizard-field.js b/app/assets/javascripts/wizard/components/wizard-field.js
index e7af4bcb629..3a39cb46d5d 100644
--- a/app/assets/javascripts/wizard/components/wizard-field.js
+++ b/app/assets/javascripts/wizard/components/wizard-field.js
@@ -1,6 +1,6 @@
import Component from "@ember/component";
-import discourseComputed from "discourse-common/utils/decorators";
import { dasherize } from "@ember/string";
+import discourseComputed from "discourse-common/utils/decorators";
export default Component.extend({
classNameBindings: [":wizard-field", "typeClass", "field.invalid"],
diff --git a/app/assets/javascripts/wizard/components/wizard-step.js b/app/assets/javascripts/wizard/components/wizard-step.js
index c71141d2b07..7baf1ea42fd 100644
--- a/app/assets/javascripts/wizard/components/wizard-step.js
+++ b/app/assets/javascripts/wizard/components/wizard-step.js
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
-import getUrl from "discourse-common/lib/get-url";
import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import I18n from "I18n";
+import getUrl from "discourse-common/lib/get-url";
import { htmlSafe } from "@ember/template";
+import { schedule } from "@ember/runloop";
jQuery.fn.wiggle = function (times, duration) {
if (times > 0) {
diff --git a/app/assets/javascripts/wizard/lib/ajax.js b/app/assets/javascripts/wizard/lib/ajax.js
index e5c89e6bb28..ec0dd1c5cd2 100644
--- a/app/assets/javascripts/wizard/lib/ajax.js
+++ b/app/assets/javascripts/wizard/lib/ajax.js
@@ -1,7 +1,7 @@
-import { run } from "@ember/runloop";
-import getUrl from "discourse-common/lib/get-url";
import { Promise } from "rsvp";
+import getUrl from "discourse-common/lib/get-url";
import jQuery from "jquery";
+import { run } from "@ember/runloop";
let token;
diff --git a/app/assets/javascripts/wizard/lib/preview.js b/app/assets/javascripts/wizard/lib/preview.js
index fd17028beef..db9553d0354 100644
--- a/app/assets/javascripts/wizard/lib/preview.js
+++ b/app/assets/javascripts/wizard/lib/preview.js
@@ -1,8 +1,8 @@
-import { scheduleOnce } from "@ember/runloop";
import Component from "@ember/component";
+import { Promise } from "rsvp";
/*eslint no-bitwise:0 */
import getUrl from "discourse-common/lib/get-url";
-import { Promise } from "rsvp";
+import { scheduleOnce } from "@ember/runloop";
export const LOREM = `
Lorem ipsum dolor sit amet,
diff --git a/app/assets/javascripts/wizard/models/step.js b/app/assets/javascripts/wizard/models/step.js
index 3c84dbfa008..527789d2990 100644
--- a/app/assets/javascripts/wizard/models/step.js
+++ b/app/assets/javascripts/wizard/models/step.js
@@ -1,7 +1,7 @@
import EmberObject from "@ember/object";
-import discourseComputed from "discourse-common/utils/decorators";
import ValidState from "wizard/mixins/valid-state";
import { ajax } from "wizard/lib/ajax";
+import discourseComputed from "discourse-common/utils/decorators";
export default EmberObject.extend(ValidState, {
id: null,
diff --git a/app/assets/javascripts/wizard/models/wizard.js b/app/assets/javascripts/wizard/models/wizard.js
index 1d8cbdbd615..b0bb132c399 100644
--- a/app/assets/javascripts/wizard/models/wizard.js
+++ b/app/assets/javascripts/wizard/models/wizard.js
@@ -1,8 +1,8 @@
+import EmberObject from "@ember/object";
import Step from "wizard/models/step";
import WizardField from "wizard/models/wizard-field";
import { ajax } from "wizard/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";
-import EmberObject from "@ember/object";
const Wizard = EmberObject.extend({
@discourseComputed("steps.length")
diff --git a/app/assets/javascripts/wizard/test/acceptance/wizard-test.js b/app/assets/javascripts/wizard/test/acceptance/wizard-test.js
index ef8b3f0aec6..4c00de28106 100644
--- a/app/assets/javascripts/wizard/test/acceptance/wizard-test.js
+++ b/app/assets/javascripts/wizard/test/acceptance/wizard-test.js
@@ -1,7 +1,7 @@
-import { test, module } from "qunit";
+import { currentRouteName, visit } from "@ember/test-helpers";
+import { module, test } from "qunit";
import { run } from "@ember/runloop";
import startApp from "wizard/test/helpers/start-app";
-import { visit, currentRouteName } from "@ember/test-helpers";
var wizard;
module("Acceptance: wizard", {
diff --git a/app/assets/javascripts/wizard/test/components/invite-list-test.js b/app/assets/javascripts/wizard/test/components/invite-list-test.js
index 6489a45271d..c3e988b3188 100644
--- a/app/assets/javascripts/wizard/test/components/invite-list-test.js
+++ b/app/assets/javascripts/wizard/test/components/invite-list-test.js
@@ -1,5 +1,5 @@
-import { moduleForComponent } from "ember-qunit";
import { componentTest } from "wizard/test/helpers/component-test";
+import { moduleForComponent } from "ember-qunit";
moduleForComponent("invite-list", { integration: true });
diff --git a/app/assets/javascripts/wizard/test/helpers/start-app.js b/app/assets/javascripts/wizard/test/helpers/start-app.js
index 9c6cfe898e5..e49d315bb2f 100644
--- a/app/assets/javascripts/wizard/test/helpers/start-app.js
+++ b/app/assets/javascripts/wizard/test/helpers/start-app.js
@@ -1,6 +1,6 @@
-import { run } from "@ember/runloop";
import Wizard from "wizard/wizard";
import initializer from "wizard/initializers/load-helpers";
+import { run } from "@ember/runloop";
let app;
let started = false;
diff --git a/app/assets/javascripts/wizard/test/models/wizard-field-test.js b/app/assets/javascripts/wizard/test/models/wizard-field-test.js
index 876ffd8df97..90eda2bb14c 100644
--- a/app/assets/javascripts/wizard/test/models/wizard-field-test.js
+++ b/app/assets/javascripts/wizard/test/models/wizard-field-test.js
@@ -1,6 +1,6 @@
+import WizardField from "wizard/models/wizard-field";
import { moduleFor } from "ember-qunit";
import { test } from "qunit";
-import WizardField from "wizard/models/wizard-field";
moduleFor("model:wizard-field");
diff --git a/plugins/discourse-details/test/javascripts/acceptance/details-button-test.js.es6 b/plugins/discourse-details/test/javascripts/acceptance/details-button-test.js.es6
index 2a72387f4b6..34f0437f62e 100644
--- a/plugins/discourse-details/test/javascripts/acceptance/details-button-test.js.es6
+++ b/plugins/discourse-details/test/javascripts/acceptance/details-button-test.js.es6
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
+import I18n from "I18n";
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
import selectKit from "discourse/tests/helpers/select-kit-helper";
diff --git a/plugins/discourse-local-dates/assets/javascripts/discourse/components/discourse-local-dates-create-form.js.es6 b/plugins/discourse-local-dates/assets/javascripts/discourse/components/discourse-local-dates-create-form.js.es6
index e304337903f..581b5027813 100644
--- a/plugins/discourse-local-dates/assets/javascripts/discourse/components/discourse-local-dates-create-form.js.es6
+++ b/plugins/discourse-local-dates/assets/javascripts/discourse/components/discourse-local-dates-create-form.js.es6
@@ -1,17 +1,17 @@
-import I18n from "I18n";
-import EmberObject from "@ember/object";
-import { isEmpty } from "@ember/utils";
-import { schedule } from "@ember/runloop";
-import Component from "@ember/component";
-import { notEmpty } from "@ember/object/computed";
-import { Promise } from "rsvp";
/* global Pikaday:true */
-import { propertyNotEqual } from "discourse/lib/computed";
-import loadScript from "discourse/lib/load-script";
import computed, { observes } from "discourse-common/utils/decorators";
+import Component from "@ember/component";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
+import { INPUT_DELAY } from "discourse-common/config/environment";
+import { Promise } from "rsvp";
import { cookAsync } from "discourse/lib/text";
import discourseDebounce from "discourse/lib/debounce";
-import { INPUT_DELAY } from "discourse-common/config/environment";
+import { isEmpty } from "@ember/utils";
+import loadScript from "discourse/lib/load-script";
+import { notEmpty } from "@ember/object/computed";
+import { propertyNotEqual } from "discourse/lib/computed";
+import { schedule } from "@ember/runloop";
export default Component.extend({
timeFormat: "HH:mm:ss",
diff --git a/plugins/discourse-local-dates/assets/javascripts/initializers/discourse-local-dates.js.es6 b/plugins/discourse-local-dates/assets/javascripts/initializers/discourse-local-dates.js.es6
index 7ed27566352..c4633d1f85d 100644
--- a/plugins/discourse-local-dates/assets/javascripts/initializers/discourse-local-dates.js.es6
+++ b/plugins/discourse-local-dates/assets/javascripts/initializers/discourse-local-dates.js.es6
@@ -1,6 +1,6 @@
-import { withPluginApi } from "discourse/lib/plugin-api";
-import showModal from "discourse/lib/show-modal";
import LocalDateBuilder from "../lib/local-date-builder";
+import showModal from "discourse/lib/show-modal";
+import { withPluginApi } from "discourse/lib/plugin-api";
const DATE_TEMPLATE = `
diff --git a/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6 b/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6
index a6771da39a5..502d05b21a6 100644
--- a/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6
+++ b/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6
@@ -1,5 +1,5 @@
-import I18n from "I18n";
import DateWithZoneHelper from "./date-with-zone-helper";
+import I18n from "I18n";
const TIME_FORMAT = "LLL";
const DATE_FORMAT = "LL";
diff --git a/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6 b/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6
index c4d62e08b46..92baa75838c 100644
--- a/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6
+++ b/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6
@@ -1,6 +1,6 @@
-import sinon from "sinon";
import I18n from "I18n";
import LocalDateBuilder from "./local-date-builder";
+import sinon from "sinon";
const UTC = "Etc/UTC";
const SYDNEY = "Australia/Sydney";
diff --git a/plugins/discourse-narrative-bot/assets/javascripts/initializers/new-user-narrative.js.es6 b/plugins/discourse-narrative-bot/assets/javascripts/initializers/new-user-narrative.js.es6
index 0a895646726..3cac3b63e0d 100644
--- a/plugins/discourse-narrative-bot/assets/javascripts/initializers/new-user-narrative.js.es6
+++ b/plugins/discourse-narrative-bot/assets/javascripts/initializers/new-user-narrative.js.es6
@@ -1,5 +1,5 @@
-import { withPluginApi } from "discourse/lib/plugin-api";
import { ajax } from "discourse/lib/ajax";
+import { withPluginApi } from "discourse/lib/plugin-api";
function initialize(api) {
const messageBus = api.container.lookup("message-bus:main");
diff --git a/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.js.es6 b/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.js.es6
index 9c2703de1cb..19a82d03095 100644
--- a/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.js.es6
+++ b/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.js.es6
@@ -1,18 +1,18 @@
-import Component from "@ember/component";
+import {
+ CLOSED,
+ COMPOSER_TYPE,
+ EDITING,
+ KEEP_ALIVE_DURATION_SECONDS,
+ REPLYING,
+} from "discourse/plugins/discourse-presence/discourse/lib/presence";
import { cancel, throttle } from "@ember/runloop";
-import { gt, readOnly } from "@ember/object/computed";
-import { inject as service } from "@ember/service";
import discourseComputed, {
observes,
on,
} from "discourse-common/utils/decorators";
-import {
- REPLYING,
- CLOSED,
- EDITING,
- COMPOSER_TYPE,
- KEEP_ALIVE_DURATION_SECONDS,
-} from "discourse/plugins/discourse-presence/discourse/lib/presence";
+import { gt, readOnly } from "@ember/object/computed";
+import Component from "@ember/component";
+import { inject as service } from "@ember/service";
export default Component.extend({
// Passed in variables
diff --git a/plugins/discourse-presence/assets/javascripts/discourse/components/topic-presence-display.js.es6 b/plugins/discourse-presence/assets/javascripts/discourse/components/topic-presence-display.js.es6
index 4600eef460a..169f00b4385 100644
--- a/plugins/discourse-presence/assets/javascripts/discourse/components/topic-presence-display.js.es6
+++ b/plugins/discourse-presence/assets/javascripts/discourse/components/topic-presence-display.js.es6
@@ -1,8 +1,8 @@
+import discourseComputed, { on } from "discourse-common/utils/decorators";
import Component from "@ember/component";
+import { TOPIC_TYPE } from "discourse/plugins/discourse-presence/discourse/lib/presence";
import { gt } from "@ember/object/computed";
import { inject as service } from "@ember/service";
-import discourseComputed, { on } from "discourse-common/utils/decorators";
-import { TOPIC_TYPE } from "discourse/plugins/discourse-presence/discourse/lib/presence";
export default Component.extend({
topic: null,
diff --git a/plugins/discourse-presence/assets/javascripts/discourse/lib/presence.js.es6 b/plugins/discourse-presence/assets/javascripts/discourse/lib/presence.js.es6
index aa070d68aba..2146ce582a8 100644
--- a/plugins/discourse-presence/assets/javascripts/discourse/lib/presence.js.es6
+++ b/plugins/discourse-presence/assets/javascripts/discourse/lib/presence.js.es6
@@ -1,5 +1,5 @@
-import EmberObject from "@ember/object";
import { cancel, later } from "@ember/runloop";
+import EmberObject from "@ember/object";
import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";
diff --git a/plugins/discourse-presence/assets/javascripts/discourse/services/presence-manager.js.es6 b/plugins/discourse-presence/assets/javascripts/discourse/services/presence-manager.js.es6
index fa8cc51c23b..ae24b630737 100644
--- a/plugins/discourse-presence/assets/javascripts/discourse/services/presence-manager.js.es6
+++ b/plugins/discourse-presence/assets/javascripts/discourse/services/presence-manager.js.es6
@@ -1,7 +1,7 @@
-import Service from "@ember/service";
import Presence, {
CLOSED,
} from "discourse/plugins/discourse-presence/discourse/lib/presence";
+import Service from "@ember/service";
const PresenceManager = Service.extend({
presences: null,
diff --git a/plugins/poll/assets/javascripts/components/poll-breakdown-chart.js.es6 b/plugins/poll/assets/javascripts/components/poll-breakdown-chart.js.es6
index 96e93c3a870..be7826602d4 100644
--- a/plugins/poll/assets/javascripts/components/poll-breakdown-chart.js.es6
+++ b/plugins/poll/assets/javascripts/components/poll-breakdown-chart.js.es6
@@ -1,10 +1,10 @@
-import I18n from "I18n";
import Component from "@ember/component";
-import { mapBy } from "@ember/object/computed";
-import { htmlSafe } from "@ember/template";
+import I18n from "I18n";
import { PIE_CHART_TYPE } from "discourse/plugins/poll/controllers/poll-ui-builder";
-import { getColors } from "discourse/plugins/poll/lib/chart-colors";
import discourseComputed from "discourse-common/utils/decorators";
+import { getColors } from "discourse/plugins/poll/lib/chart-colors";
+import { htmlSafe } from "@ember/template";
+import { mapBy } from "@ember/object/computed";
export default Component.extend({
// Arguments:
diff --git a/plugins/poll/assets/javascripts/components/poll-breakdown-option.js.es6 b/plugins/poll/assets/javascripts/components/poll-breakdown-option.js.es6
index 0a02c79c6e4..c63d9f45c14 100644
--- a/plugins/poll/assets/javascripts/components/poll-breakdown-option.js.es6
+++ b/plugins/poll/assets/javascripts/components/poll-breakdown-option.js.es6
@@ -1,11 +1,11 @@
-import I18n from "I18n";
import Component from "@ember/component";
+import I18n from "I18n";
import { action } from "@ember/object";
+import discourseComputed from "discourse-common/utils/decorators";
import { equal } from "@ember/object/computed";
+import { getColors } from "discourse/plugins/poll/lib/chart-colors";
import { htmlSafe } from "@ember/template";
import { propertyEqual } from "discourse/lib/computed";
-import discourseComputed from "discourse-common/utils/decorators";
-import { getColors } from "discourse/plugins/poll/lib/chart-colors";
export default Component.extend({
// Arguments:
diff --git a/plugins/poll/assets/javascripts/controllers/poll-breakdown.js.es6 b/plugins/poll/assets/javascripts/controllers/poll-breakdown.js.es6
index 89effd92720..66c160f2f29 100644
--- a/plugins/poll/assets/javascripts/controllers/poll-breakdown.js.es6
+++ b/plugins/poll/assets/javascripts/controllers/poll-breakdown.js.es6
@@ -1,13 +1,13 @@
-import I18n from "I18n";
import Controller from "@ember/controller";
-import { action } from "@ember/object";
-import { classify } from "@ember/string";
-import { htmlSafe } from "@ember/template";
-import { ajax } from "discourse/lib/ajax";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import loadScript from "discourse/lib/load-script";
+import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
+import { action } from "@ember/object";
+import { ajax } from "discourse/lib/ajax";
+import { classify } from "@ember/string";
import discourseComputed from "discourse-common/utils/decorators";
+import { htmlSafe } from "@ember/template";
+import loadScript from "discourse/lib/load-script";
+import { popupAjaxError } from "discourse/lib/ajax-error";
export default Controller.extend(ModalFunctionality, {
model: null,
diff --git a/plugins/poll/assets/javascripts/controllers/poll-ui-builder.js.es6 b/plugins/poll/assets/javascripts/controllers/poll-ui-builder.js.es6
index 9090e92f65a..2bf034e8f89 100644
--- a/plugins/poll/assets/javascripts/controllers/poll-ui-builder.js.es6
+++ b/plugins/poll/assets/javascripts/controllers/poll-ui-builder.js.es6
@@ -1,7 +1,7 @@
-import I18n from "I18n";
+import discourseComputed, { observes } from "discourse-common/utils/decorators";
import Controller from "@ember/controller";
import EmberObject from "@ember/object";
-import discourseComputed, { observes } from "discourse-common/utils/decorators";
+import I18n from "I18n";
export const BAR_CHART_TYPE = "bar";
export const PIE_CHART_TYPE = "pie";
diff --git a/plugins/poll/assets/javascripts/initializers/add-poll-ui-builder.js.es6 b/plugins/poll/assets/javascripts/initializers/add-poll-ui-builder.js.es6
index d920848db99..abeb3056c6e 100644
--- a/plugins/poll/assets/javascripts/initializers/add-poll-ui-builder.js.es6
+++ b/plugins/poll/assets/javascripts/initializers/add-poll-ui-builder.js.es6
@@ -1,6 +1,6 @@
-import { withPluginApi } from "discourse/lib/plugin-api";
-import showModal from "discourse/lib/show-modal";
import discourseComputed from "discourse-common/utils/decorators";
+import showModal from "discourse/lib/show-modal";
+import { withPluginApi } from "discourse/lib/plugin-api";
function initializePollUIBuilder(api) {
api.modifyClass("controller:composer", {
diff --git a/plugins/poll/assets/javascripts/initializers/extend-for-poll.js.es6 b/plugins/poll/assets/javascripts/initializers/extend-for-poll.js.es6
index 46ec6e86c44..6d9505704e6 100644
--- a/plugins/poll/assets/javascripts/initializers/extend-for-poll.js.es6
+++ b/plugins/poll/assets/javascripts/initializers/extend-for-poll.js.es6
@@ -1,8 +1,8 @@
import EmberObject from "@ember/object";
-import { withPluginApi } from "discourse/lib/plugin-api";
import WidgetGlue from "discourse/widgets/glue";
import { getRegister } from "discourse-common/lib/get-owner";
import { observes } from "discourse-common/utils/decorators";
+import { withPluginApi } from "discourse/lib/plugin-api";
function initializePolls(api) {
const register = getRegister(api);
diff --git a/plugins/poll/assets/javascripts/widgets/discourse-poll.js.es6 b/plugins/poll/assets/javascripts/widgets/discourse-poll.js.es6
index 45f48d69227..fa983631732 100644
--- a/plugins/poll/assets/javascripts/widgets/discourse-poll.js.es6
+++ b/plugins/poll/assets/javascripts/widgets/discourse-poll.js.es6
@@ -1,18 +1,18 @@
import I18n from "I18n";
-import { h } from "virtual-dom";
+import { PIE_CHART_TYPE } from "discourse/plugins/poll/controllers/poll-ui-builder";
+import RawHtml from "discourse/widgets/raw-html";
import { ajax } from "discourse/lib/ajax";
+import { avatarFor } from "discourse/widgets/post";
+import { createWidget } from "discourse/widgets/widget";
+import evenRound from "discourse/plugins/poll/lib/even-round";
+import { getColors } from "discourse/plugins/poll/lib/chart-colors";
+import { h } from "virtual-dom";
+import { iconNode } from "discourse-common/lib/icon-library";
+import loadScript from "discourse/lib/load-script";
import { popupAjaxError } from "discourse/lib/ajax-error";
import { relativeAge } from "discourse/lib/formatter";
-import loadScript from "discourse/lib/load-script";
import round from "discourse/lib/round";
import showModal from "discourse/lib/show-modal";
-import { avatarFor } from "discourse/widgets/post";
-import RawHtml from "discourse/widgets/raw-html";
-import { createWidget } from "discourse/widgets/widget";
-import { iconNode } from "discourse-common/lib/icon-library";
-import { PIE_CHART_TYPE } from "discourse/plugins/poll/controllers/poll-ui-builder";
-import { getColors } from "discourse/plugins/poll/lib/chart-colors";
-import evenRound from "discourse/plugins/poll/lib/even-round";
function optionHtml(option) {
const $node = $(`${option.html}`);
diff --git a/plugins/poll/test/javascripts/acceptance/poll-builder-disabled-test.js.es6 b/plugins/poll/test/javascripts/acceptance/poll-builder-disabled-test.js.es6
index e79b2f7b5ca..8969cea1640 100644
--- a/plugins/poll/test/javascripts/acceptance/poll-builder-disabled-test.js.es6
+++ b/plugins/poll/test/javascripts/acceptance/poll-builder-disabled-test.js.es6
@@ -1,10 +1,10 @@
import {
acceptance,
- updateCurrentUser,
exists,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
-import { displayPollBuilderButton } from "discourse/plugins/poll/helpers/display-poll-builder-button";
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
+import { displayPollBuilderButton } from "discourse/plugins/poll/helpers/display-poll-builder-button";
acceptance("Poll Builder - polls are disabled", function (needs) {
needs.user();
diff --git a/plugins/poll/test/javascripts/acceptance/poll-builder-enabled-test.js.es6 b/plugins/poll/test/javascripts/acceptance/poll-builder-enabled-test.js.es6
index f0e517ceae9..b0df0ba5584 100644
--- a/plugins/poll/test/javascripts/acceptance/poll-builder-enabled-test.js.es6
+++ b/plugins/poll/test/javascripts/acceptance/poll-builder-enabled-test.js.es6
@@ -1,12 +1,12 @@
-import selectKit from "discourse/tests/helpers/select-kit-helper";
import {
acceptance,
- updateCurrentUser,
exists,
queryAll,
+ updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
-import { displayPollBuilderButton } from "discourse/plugins/poll/helpers/display-poll-builder-button";
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
+import { displayPollBuilderButton } from "discourse/plugins/poll/helpers/display-poll-builder-button";
+import selectKit from "discourse/tests/helpers/select-kit-helper";
acceptance("Poll Builder - polls are enabled", function (needs) {
needs.user();
diff --git a/plugins/poll/test/javascripts/acceptance/poll-pie-chart-test.js.es6 b/plugins/poll/test/javascripts/acceptance/poll-pie-chart-test.js.es6
index 78f6d0bb9dd..721f764a1d9 100644
--- a/plugins/poll/test/javascripts/acceptance/poll-pie-chart-test.js.es6
+++ b/plugins/poll/test/javascripts/acceptance/poll-pie-chart-test.js.es6
@@ -1,4 +1,4 @@
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
acceptance("Rendering polls with pie charts", function (needs) {
needs.user();
diff --git a/plugins/poll/test/javascripts/acceptance/poll-quote-test.js.es6 b/plugins/poll/test/javascripts/acceptance/poll-quote-test.js.es6
index 113bbf9b26d..45b93f47c56 100644
--- a/plugins/poll/test/javascripts/acceptance/poll-quote-test.js.es6
+++ b/plugins/poll/test/javascripts/acceptance/poll-quote-test.js.es6
@@ -1,5 +1,5 @@
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
acceptance("Poll quote", function (needs) {
needs.user();
diff --git a/plugins/poll/test/javascripts/acceptance/polls-bar-chart-test-desktop.js.es6 b/plugins/poll/test/javascripts/acceptance/polls-bar-chart-test-desktop.js.es6
index 625ca4fda64..8bfdf217127 100644
--- a/plugins/poll/test/javascripts/acceptance/polls-bar-chart-test-desktop.js.es6
+++ b/plugins/poll/test/javascripts/acceptance/polls-bar-chart-test-desktop.js.es6
@@ -1,5 +1,5 @@
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
acceptance("Rendering polls with bar charts - desktop", function (needs) {
needs.user();
diff --git a/plugins/poll/test/javascripts/acceptance/polls-bar-chart-test-mobile.js.es6 b/plugins/poll/test/javascripts/acceptance/polls-bar-chart-test-mobile.js.es6
index 2acce037d83..625907a40b5 100644
--- a/plugins/poll/test/javascripts/acceptance/polls-bar-chart-test-mobile.js.es6
+++ b/plugins/poll/test/javascripts/acceptance/polls-bar-chart-test-mobile.js.es6
@@ -1,5 +1,5 @@
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
-import { queryAll, acceptance } from "discourse/tests/helpers/qunit-helpers";
acceptance("Rendering polls with bar charts - mobile", function (needs) {
needs.user();
diff --git a/plugins/poll/test/javascripts/widgets/discourse-poll-standard-results-test.js.es6 b/plugins/poll/test/javascripts/widgets/discourse-poll-standard-results-test.js.es6
index 8c8cb8dae7e..3edd1c3e59f 100644
--- a/plugins/poll/test/javascripts/widgets/discourse-poll-standard-results-test.js.es6
+++ b/plugins/poll/test/javascripts/widgets/discourse-poll-standard-results-test.js.es6
@@ -1,8 +1,8 @@
-import EmberObject from "@ember/object";
import {
moduleForWidget,
widgetTest,
} from "discourse/tests/helpers/widget-test";
+import EmberObject from "@ember/object";
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
moduleForWidget("discourse-poll-standard-results");
diff --git a/plugins/poll/test/javascripts/widgets/discourse-poll-test.js.es6 b/plugins/poll/test/javascripts/widgets/discourse-poll-test.js.es6
index 3ecf17cc6a6..6be48becf7f 100644
--- a/plugins/poll/test/javascripts/widgets/discourse-poll-test.js.es6
+++ b/plugins/poll/test/javascripts/widgets/discourse-poll-test.js.es6
@@ -1,9 +1,9 @@
-import I18n from "I18n";
-import EmberObject from "@ember/object";
import {
moduleForWidget,
widgetTest,
} from "discourse/tests/helpers/widget-test";
+import EmberObject from "@ember/object";
+import I18n from "I18n";
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
let requests = 0;
diff --git a/plugins/styleguide/assets/javascripts/discourse/routes/styleguide-show.js.es6 b/plugins/styleguide/assets/javascripts/discourse/routes/styleguide-show.js.es6
index 71ca411ddcc..21e7dd65520 100644
--- a/plugins/styleguide/assets/javascripts/discourse/routes/styleguide-show.js.es6
+++ b/plugins/styleguide/assets/javascripts/discourse/routes/styleguide-show.js.es6
@@ -1,6 +1,6 @@
import {
- sectionById,
findNote,
+ sectionById,
} from "discourse/plugins/styleguide/discourse/lib/styleguide";
import { createData } from "discourse/plugins/styleguide/discourse/lib/dummy-data";