{"version":3,"file":"discourse-data-explorer.js","names":["define","_exports","_buildPlugin","Object","defineProperty","value","default","extend","_component","_templateFactory","_templateOnly","CodeView","setComponentTemplate","createTemplateFactory","id","block","moduleName","isStrictMode","undefined","_modifier","_object","_didInsert","_decorators","_loadChartJs","_themeColor","_component2","DataExplorerBarChart","chart","barsColor","barsHoverColor","gridColor","labelsColor","willDestroy","super","arguments","this","destroy","config","type","data","options","labels","args","datasets","label","datasetName","values","backgroundColor","hoverBackgroundColor","scales","legend","fontColor","xAxes","gridLines","color","zeroLineColor","ticks","yAxes","beginAtZero","initChart","canvas","Chart","context","getContext","dt7948","n","prototype","bind","updateChartData","update","action","scope","on","_tracking","_utils","_conditionalLoadingSpinner","_dButton","_withEventValue","_oneTable","ExplorerSchema","g","tracked","filter","i","loading","hideSchema","transformedSchema","schema","key","hasOwnProperty","forEach","col","notes_components","primary","push","is_nullable","column_default","fkey_info","denormal","notes","join","enum","column_desc","havepopup","havetypeinfo","filteredTables","tables","isBlank","RegExp","haveFilter","source","unshift","name","columns","open","test","filterCols","column_name","isEmpty","updateFilter","toLowerCase","debounce","filterChanged","collapseSchema","updateHideSchema","expandSchema","EnumInfo","enuminfo","entries","map","_dIcon","_discourseI18n","_enumInfo","OneTable","table","styles","toggleOpen","i18n","_template","_dModal","QueryHelp","htmlSafe","_service","_string","_form","_category","_booleanThree","_categoryIdInput","_groupInput","_userIdInput","_userListInput","ParamValidationError","ERRORS","Error","layoutMap","int","bigint","boolean","string","time","date","datetime","double","user_id","post_id","topic_id","category_id","group_id","badge_id","int_list","string_list","user_list","group_list","REQUIRED","NOT_AN_INTEGER","NOT_A_NUMBER","OVERFLOW_HIGH","count","OVERFLOW_LOW","INVALID","NO_SUCH_CATEGORY","NO_SUCH_GROUP","INVALID_DATE","INVALID_TIME","serializeValue","String","replaceAll","toString","validationOf","info","nullable","components","boolean_three","componentOf","ParamInputForm","service","site","paramInfo","infoOf","form","promiseNormalizations","formLoaded","Promise","res","__form_load_callback","constructor","initializeParams","onRegisterApi","submit","allNormalized","allSettled","internal","identifier","pinfo","createParamInfo","normalized","getNormalizedValue","handlePromiseNormalization","create","validation","validate","validatorOf","component","addError","message","title","normalizeValue","trim","asyncFindBySlugPath","dasherize","then","catch","err","jqXHR","status","errorThrow","digitalizeCategoryId","normalizeGroups","errorMsg","slice","Array","isArray","split","moment","format","Date","toISOString","initialValues","promise","set","finally","GroupNames","Set","get","GroupNameOf","fromEntries","valid_groups","invalid_groups","val","has","Number","length","getErrorFn","isPositiveInt","isNaN","parseInt","parseFloat","every","categoriesById","getError","serializedData","onSubmit","BooleanThree","_helper","_categoryChooser","CategoryIdInput","field","hash","_groupChooser","GroupInput","allGroups","groupChooserOption","maximum","_emailGroupUserChooser","UserIdInput","UserListInput","_runloop","_ajax","_getUrl","_badge","_dataExplorerBarChart","_queryRowContent","_badge2","_category2","_group","_html","_json","_post","_reltime","_tagGroup","_text","_topic","_url","_user","VIEW_COMPONENTS","topic","text","post","reltime","badge","url","user","group","html","json","category","tag_group","QueryResult","chartDisplayed","colRender","content","colrender","rows","params","explainText","explain","chartDatasetName","columnNames","colName","endsWith","dIdx","indexOf","substring","columnComponents","_","idx","chartValues","item","colCount","resultCount","result_count","default_limit","duration","toNumber","precision","parameterAry","arr","transformedUserTable","transformedRelTable","relations","transformedBadgeTable","transformedPostTable","transformedTopicTable","transformedTagGroupTable","transformedGroupTable","groups","canShowChart","hasTwoColumns","secondColumnContainsNumber","secondColumnContainsId","chartLabels","labelSelectors","username","relationName","lookupFunc","capitalize","labelSelector","r","relation","call","_cutChartLabel","lookupUser","lookupBadge","lookupPost","lookupTopic","lookupTagGroup","lookupGroup","lookupCategory","findById","labelString","downloadResultJson","_downloadResult","downloadResultCsv","showChart","hideChart","_download_url","windowName","replace","Math","random","window","btoa","document","createElement","addInput","setAttribute","appendChild","query","JSON","stringify","ajax","csrf","body","schedule","removeChild","modelClass","result","_queryResult","QueryResultsWrapper","_utilities","QueryRowContent","results","componentDefinition","row","ctx","baseuri","textValue","escapeExpression","classify","columnValue","dest","guessUrl","cached","_iconLibrary","Badge","iconOrImageReplacement","icon","iconHTML","convertIconClass","_categoryLink","Category","categoryBadgeReplacement","categoryLinkHTML","allowUncategorized","Group","Html","_fullscreenCode","Json","modal","parsedJson","parse","viewJson","show","model","code","codeClasses","_avatar","Post","_formatter","Reltime","boundDateReplacement","autoUpdatingRelativeAge","Text","Topic","Url","User","_willDestroy","ShareReport","visible","element","link","mouseDownHandler","e","contains","target","close","keyDownHandler","keyCode","registerListeners","isDestroying","isDestroyed","addEventListener","unregisterListeners","removeEventListener","focusInput","select","focus","preventDefault","_routing","NavItem","c","shouldRender","has_visible_data_explorer_queries","LinkTo","classNames","tagName","_controller","_default","_rsvp","_ajaxError","PluginsExplorerController","dialog","appEvents","router","sortByProperty","sortDescending","search","newQueryName","showCreate","queryParams","acceptedImportFileTypes","order","sortedQueries","toSorted","a","b","compare","reverse","parsedParams","filteredContent","regexp","description","createDisabled","addCreatedRecord","record","transitionTo","_importQuery","file","_readFileAsTextAsync","_parseQuery","store","createRecord","save","sql","TypeError","resolve","reject","reader","FileReader","onload","onerror","readAsText","dragMove","movementY","movementX","editPane","querySelector","grippie","initialPaneWidth","originalPaneHeight","originalPaneWidth","clientWidth","clientHeight","newHeight","max","newWidth","style","height","width","trigger","scrollTop","scrollTo","import","files","popupAjaxError","SyntaxError","alert","console","error","displayCreate","updateSortProperty","property","updateSearch","updateNewQueryName","_constants","_queryHelp","_paramInputForm","_query","editingName","editingQuery","showResults","dirty","shouldAutoRun","saveDisabled","runDisabled","editDisabled","groupOptions","AUTO_GROUPS","everyone","saveAndRun","run","didStartDrag","didEndDrag","updateGroupIds","editName","editQuery","download","downloadUrl","goHome","showHelpModal","resetParams","discard","find","setProperties","getProperties","updatePropertyNames","group_ids","destroyQuery","destroyRecord","recover","setDirty","exitEdit","hasParams","success","responseJSON","runOnLoad","GroupReportsIndexController","_bookmark","_bookmarkFormData","_bookmark2","GroupReportsShowController","currentUser","queryGroup","bookmark","queryGroupBookmark","param_info","bookmarkLabel","bookmarkIcon","reminder_at","WITH_REMINDER_ICON","NO_REMINDER_ICON","bookmarkClassName","stringifiedParams","response","toggleBookmark","modalBookmark","bookmarkable_type","bookmarkable_id","BookmarkFormData","afterSave","bookmarkFormData","saveData","attachedTo","afterDelete","resource","path","route","_pluginApi","initialize","container","lookup","admin","withPluginApi","api","setAdminPluginIcon","addPluralization","getComputedStyle","getPropertyValue","_rest","Query","static","updating","computed","beforeUpdate","afterUpdate","newParams","oldParams","updateProperties","props","destroyed","createProperties","_route","_discourse","AdminPluginsExplorerIndex","beforeModel","transition","to","disallow","groupPromise","queryPromise","findAll","groupNames","setupController","controller","AdminPluginsExplorerQueriesDetails","autoRun","as","refreshModel","schemaPromise","cache","query_id","GroupReportsIndexRoute","modelFor","queries","afterModel","GroupReportsShowRoute","query_group","reduce","acc","param","assign","_pickFilesButton","_tableHeaderToggle","_textField","_ageWithTooltip","_truthHelpers","_shareReport","fn","not","_aceEditor","_dTextarea","_draggable","_multiSelect","_codeView","_explorerSchema","_queryResultsWrapper","Input","array"],"sources":["discourse/plugins/discourse-data-explorer/admin/adapters/query.js","discourse/plugins/discourse-data-explorer/discourse/components/code-view.js","discourse/plugins/discourse-data-explorer/discourse/components/data-explorer-bar-chart.js","discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema.js","discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema/enum-info.js","discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema/one-table.js","discourse/plugins/discourse-data-explorer/discourse/components/modal/query-help.js","discourse/plugins/discourse-data-explorer/discourse/components/param-input-form.js","discourse/plugins/discourse-data-explorer/discourse/components/param-input/boolean-three.js","discourse/plugins/discourse-data-explorer/discourse/components/param-input/category-id-input.js","discourse/plugins/discourse-data-explorer/discourse/components/param-input/group-input.js","discourse/plugins/discourse-data-explorer/discourse/components/param-input/user-id-input.js","discourse/plugins/discourse-data-explorer/discourse/components/param-input/user-list-input.js","discourse/plugins/discourse-data-explorer/discourse/components/query-result.js","discourse/plugins/discourse-data-explorer/discourse/components/query-results-wrapper.js","discourse/plugins/discourse-data-explorer/discourse/components/query-row-content.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/badge.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/category.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/group.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/html.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/json.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/post.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/reltime.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/tag-group.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/text.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/topic.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/url.js","discourse/plugins/discourse-data-explorer/discourse/components/result-types/user.js","discourse/plugins/discourse-data-explorer/discourse/components/share-report.js","discourse/plugins/discourse-data-explorer/discourse/connectors/group-reports-nav-item/nav-item.js","discourse/plugins/discourse-data-explorer/discourse/controllers/admin-plugins/explorer.js","discourse/plugins/discourse-data-explorer/discourse/controllers/admin-plugins/explorer/index.js","discourse/plugins/discourse-data-explorer/discourse/controllers/admin-plugins/explorer/queries/details.js","discourse/plugins/discourse-data-explorer/discourse/controllers/group/reports.js","discourse/plugins/discourse-data-explorer/discourse/controllers/group/reports/index.js","discourse/plugins/discourse-data-explorer/discourse/controllers/group/reports/show.js","discourse/plugins/discourse-data-explorer/discourse/explorer-route-map.js","discourse/plugins/discourse-data-explorer/discourse/group-reports-route-map.js","discourse/plugins/discourse-data-explorer/discourse/initializers/data-explorer-admin-plugin-configuration-nav.js","discourse/plugins/discourse-data-explorer/discourse/initializers/initialize-data-explorer.js","discourse/plugins/discourse-data-explorer/discourse/lib/themeColor.js","discourse/plugins/discourse-data-explorer/discourse/models/query.js","discourse/plugins/discourse-data-explorer/discourse/routes/admin-plugins/explorer.js","discourse/plugins/discourse-data-explorer/discourse/routes/admin-plugins/explorer/index.js","discourse/plugins/discourse-data-explorer/discourse/routes/admin-plugins/explorer/queries/details.js","discourse/plugins/discourse-data-explorer/discourse/routes/group/reports.js","discourse/plugins/discourse-data-explorer/discourse/routes/group/reports/index.js","discourse/plugins/discourse-data-explorer/discourse/routes/group/reports/show.js","discourse/plugins/discourse-data-explorer/discourse/templates/admin-plugins/explorer/index.js","discourse/plugins/discourse-data-explorer/discourse/templates/admin-plugins/explorer/queries/details.js","discourse/plugins/discourse-data-explorer/discourse/templates/group/reports.js","discourse/plugins/discourse-data-explorer/discourse/templates/group/reports/index.js","discourse/plugins/discourse-data-explorer/discourse/templates/group/reports/show.js"],"sourcesContent":["define(\"discourse/plugins/discourse-data-explorer/admin/adapters/query\", [\"exports\", \"discourse/admin/adapters/build-plugin\"], function (_exports, _buildPlugin) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _buildPlugin.default)(\"explorer\").extend({});\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/code-view\", [\"exports\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const CodeView = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <pre><code class={{@codeClass}}>{{@value}}</code></pre>\n  \n  */\n  {\n    \"id\": \"xVCrxl74\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,\\\"pre\\\"],[12],[10,\\\"code\\\"],[15,0,[30,1]],[12],[1,[30,2]],[13],[13],[1,\\\"\\\\n\\\"]],[\\\"@codeClass\\\",\\\"@value\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/code-view.js\",\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"code-view:CodeView\"));\n  var _default = _exports.default = CodeView;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/data-explorer-bar-chart\", [\"exports\", \"@glimmer/component\", \"@ember/modifier\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"discourse/lib/decorators\", \"discourse/lib/load-chart-js\", \"discourse/plugins/discourse-data-explorer/discourse/lib/themeColor\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _modifier, _object, _didInsert, _decorators, _loadChartJs, _themeColor, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class DataExplorerBarChart extends _component.default {\n    chart;\n    barsColor = (0, _themeColor.default)(\"--tertiary\");\n    barsHoverColor = (0, _themeColor.default)(\"--tertiary-high\");\n    gridColor = (0, _themeColor.default)(\"--primary-low\");\n    labelsColor = (0, _themeColor.default)(\"--primary-medium\");\n    willDestroy() {\n      super.willDestroy(...arguments);\n      this.chart.destroy();\n    }\n    get config() {\n      const data = this.data;\n      const options = this.options;\n      return {\n        type: \"bar\",\n        data,\n        options\n      };\n    }\n    get data() {\n      const labels = this.args.labels;\n      return {\n        labels,\n        datasets: [{\n          label: this.args.datasetName,\n          data: this.args.values,\n          backgroundColor: this.barsColor,\n          hoverBackgroundColor: this.barsHoverColor\n        }]\n      };\n    }\n    get options() {\n      return {\n        scales: {\n          legend: {\n            labels: {\n              fontColor: this.labelsColor\n            }\n          },\n          xAxes: [{\n            gridLines: {\n              color: this.gridColor,\n              zeroLineColor: this.gridColor\n            },\n            ticks: {\n              fontColor: this.labelsColor\n            }\n          }],\n          yAxes: [{\n            gridLines: {\n              color: this.gridColor,\n              zeroLineColor: this.gridColor\n            },\n            ticks: {\n              beginAtZero: true,\n              fontColor: this.labelsColor\n            }\n          }]\n        }\n      };\n    }\n    async initChart(canvas) {\n      const Chart = await (0, _loadChartJs.default)();\n      const context = canvas.getContext(\"2d\");\n      this.chart = new Chart(context, this.config);\n    }\n    static {\n      dt7948.n(this.prototype, \"initChart\", [_decorators.bind]);\n    }\n    updateChartData() {\n      this.chart.data = this.data;\n      this.chart.update();\n    }\n    static {\n      dt7948.n(this.prototype, \"updateChartData\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <canvas\n            {{didInsert this.initChart}}\n            {{on \"change\" this.updateChartData}}\n          ></canvas>\n        \n      */\n      {\n        \"id\": \"4jmYqfl3\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[11,\\\"canvas\\\"],[4,[32,0],[[30,0,[\\\"initChart\\\"]]],null],[4,[32,1],[\\\"change\\\",[30,0,[\\\"updateChartData\\\"]]],null],[12],[13],[1,\\\"\\\\n  \\\"]],[],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/data-explorer-bar-chart.js\",\n        \"scope\": () => [_didInsert.default, _modifier.on],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = DataExplorerBarChart;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/modifier\", \"@ember/object\", \"@ember/utils\", \"discourse/components/conditional-loading-spinner\", \"discourse/components/d-button\", \"discourse/helpers/with-event-value\", \"discourse/lib/decorators\", \"discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema/one-table\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _modifier, _object, _utils, _conditionalLoadingSpinner, _dButton, _withEventValue, _decorators, _oneTable, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class ExplorerSchema extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"filter\", [_tracking.tracked]);\n    }\n    #filter = (dt7948.i(this, \"filter\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"loading\", [_tracking.tracked]);\n    }\n    #loading = (dt7948.i(this, \"loading\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"hideSchema\", [_tracking.tracked], function () {\n        return this.args.hideSchema;\n      });\n    }\n    #hideSchema = (dt7948.i(this, \"hideSchema\"), void 0);\n    get transformedSchema() {\n      const schema = this.args.schema;\n      for (const key in schema) {\n        if (!schema.hasOwnProperty(key)) {\n          continue;\n        }\n        schema[key].forEach(col => {\n          const notes_components = [];\n          if (col.primary) {\n            notes_components.push(\"primary key\");\n          }\n          if (col.is_nullable) {\n            notes_components.push(\"null\");\n          }\n          if (col.column_default) {\n            notes_components.push(\"default \" + col.column_default);\n          }\n          if (col.fkey_info) {\n            notes_components.push(\"fkey \" + col.fkey_info);\n          }\n          if (col.denormal) {\n            notes_components.push(\"denormal \" + col.denormal);\n          }\n          const notes = notes_components.join(\", \");\n          if (notes) {\n            col.notes = notes;\n          }\n          if (col.enum || col.column_desc) {\n            col.havepopup = true;\n          }\n          col.havetypeinfo = !!(col.notes || col.enum || col.column_desc);\n        });\n      }\n      return schema;\n    }\n    get filteredTables() {\n      let tables = [];\n      let filter = this.filter;\n      try {\n        if (!(0, _utils.isBlank)(this.filter)) {\n          filter = new RegExp(this.filter);\n        }\n      } catch {\n        filter = null;\n      }\n      const haveFilter = !!filter;\n      for (const key in this.transformedSchema) {\n        if (!this.transformedSchema.hasOwnProperty(key)) {\n          continue;\n        }\n        if (!haveFilter) {\n          tables.push({\n            name: key,\n            columns: this.transformedSchema[key],\n            open: false\n          });\n          continue;\n        }\n        // Check the table name vs the filter\n        if (filter.source === key || filter.source + \"s\" === key) {\n          tables.unshift({\n            name: key,\n            columns: this.transformedSchema[key],\n            open: haveFilter\n          });\n        } else if (filter.test(key)) {\n          // whole table matches\n          tables.push({\n            name: key,\n            columns: this.transformedSchema[key],\n            open: haveFilter\n          });\n        } else {\n          // filter the columns\n          let filterCols = [];\n          this.transformedSchema[key].forEach(col => {\n            if (filter.source === col.column_name) {\n              filterCols.unshift(col);\n            } else if (filter.test(col.column_name)) {\n              filterCols.push(col);\n            }\n          });\n          if (!(0, _utils.isEmpty)(filterCols)) {\n            tables.push({\n              name: key,\n              columns: filterCols,\n              open: haveFilter\n            });\n          }\n        }\n      }\n      return tables;\n    }\n    updateFilter(value) {\n      this.filter = value.toLowerCase();\n      this.loading = false;\n    }\n    static {\n      dt7948.n(this.prototype, \"updateFilter\", [(0, _decorators.debounce)(500)]);\n    }\n    filterChanged(value) {\n      this.loading = true;\n      this.updateFilter(value);\n    }\n    static {\n      dt7948.n(this.prototype, \"filterChanged\", [_object.action]);\n    }\n    collapseSchema() {\n      this.hideSchema = true;\n      this.args.updateHideSchema(true);\n    }\n    static {\n      dt7948.n(this.prototype, \"collapseSchema\", [_object.action]);\n    }\n    expandSchema() {\n      this.hideSchema = false;\n      this.args.updateHideSchema(false);\n    }\n    static {\n      dt7948.n(this.prototype, \"expandSchema\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          {{#if this.hideSchema}}\n            <DButton\n              @action={{this.expandSchema}}\n              @icon=\"chevron-left\"\n              class=\"no-text unhide\"\n            />\n          {{else}}\n            <div class=\"schema\">\n              <div class=\"schema-search inline-form full-width\">\n                <input\n                  type=\"text\"\n                  {{on \"input\" (withEventValue this.filterChanged)}}\n                />\n                <DButton\n                  @action={{this.collapseSchema}}\n                  @icon=\"chevron-right\"\n                  class=\"no-text\"\n                />\n              </div>\n      \n              <div class=\"schema-container\">\n                <ConditionalLoadingSpinner @condition={{this.loading}}>\n                  <ul>\n                    {{#each this.filteredTables as |table|}}\n                      <OneTable @table={{table}} />\n                    {{/each}}\n                  </ul>\n                </ConditionalLoadingSpinner>\n              </div>\n            </div>\n          {{/if}}\n        \n      */\n      {\n        \"id\": \"gI6bUmNO\",\n        \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"hideSchema\\\"]],[[[1,\\\"      \\\"],[8,[32,0],[[24,0,\\\"no-text unhide\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,0,[\\\"expandSchema\\\"]],\\\"chevron-left\\\"]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"schema\\\"],[12],[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"schema-search inline-form full-width\\\"],[12],[1,\\\"\\\\n          \\\"],[11,\\\"input\\\"],[24,4,\\\"text\\\"],[4,[32,1],[\\\"input\\\",[28,[32,2],[[30,0,[\\\"filterChanged\\\"]]],null]],null],[12],[13],[1,\\\"\\\\n          \\\"],[8,[32,0],[[24,0,\\\"no-text\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,0,[\\\"collapseSchema\\\"]],\\\"chevron-right\\\"]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n        \\\"],[10,0],[14,0,\\\"schema-container\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,3],null,[[\\\"@condition\\\"],[[30,0,[\\\"loading\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n            \\\"],[10,\\\"ul\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"filteredTables\\\"]]],null]],null],null,[[[1,\\\"                \\\"],[8,[32,4],null,[[\\\"@table\\\"],[[30,1]]],null],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"            \\\"],[13],[1,\\\"\\\\n          \\\"]],[]]]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"  \\\"]],[\\\"table\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema.js\",\n        \"scope\": () => [_dButton.default, _modifier.on, _withEventValue.default, _conditionalLoadingSpinner.default, _oneTable.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = ExplorerSchema;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema/enum-info\", [\"exports\", \"@glimmer/component\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class EnumInfo extends _component.default {\n    get enuminfo() {\n      return Object.entries(this.args.col.enum).map(([value, name]) => ({\n        value,\n        name\n      }));\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <ol>\n            {{#each this.enuminfo as |enum|}}\n              <li value={{enum.value}}>\n                {{enum.name}}\n              </li>\n            {{/each}}\n          </ol>\n        \n      */\n      {\n        \"id\": \"MJ8hPN0g\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"ol\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,0,[\\\"enuminfo\\\"]]],null]],null],null,[[[1,\\\"        \\\"],[10,\\\"li\\\"],[15,2,[30,1,[\\\"value\\\"]]],[12],[1,\\\"\\\\n          \\\"],[1,[30,1,[\\\"name\\\"]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"enum\\\"],[\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema/enum-info.js\",\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = EnumInfo;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema/one-table\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/modifier\", \"discourse/helpers/d-icon\", \"discourse/lib/decorators\", \"discourse-i18n\", \"discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema/enum-info\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _modifier, _dIcon, _decorators, _discourseI18n, _enumInfo, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class OneTable extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"open\", [_tracking.tracked], function () {\n        return this.args.table.open;\n      });\n    }\n    #open = (dt7948.i(this, \"open\"), void 0);\n    get styles() {\n      return this.open ? \"open\" : \"\";\n    }\n    toggleOpen() {\n      this.open = !this.open;\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleOpen\", [_decorators.bind]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <li class=\"schema-table {{this.styles}}\">\n            {{! template-lint-enable no-invalid-interactive }}\n            <div\n              class=\"schema-table-name\"\n              role=\"button\"\n              {{on \"click\" this.toggleOpen}}\n            >\n              {{#if this.open}}\n                {{icon \"caret-down\"}}\n              {{else}}\n                {{icon \"caret-right\"}}\n              {{/if}}\n              {{@table.name}}\n            </div>\n      \n            <div class=\"schema-table-cols\">\n              {{#if this.open}}\n                <dl>\n                  {{#each @table.columns as |col|}}\n                    <div>\n                      <dt\n                        class={{if col.sensitive \"sensitive\"}}\n                        title={{if col.sensitive (i18n \"explorer.schema.sensitive\")}}\n                      >\n                        {{#if col.sensitive}}\n                          {{icon \"triangle-exclamation\"}}\n                        {{/if}}\n                        {{col.column_name}}\n                      </dt>\n                      <dd>\n                        {{col.data_type}}\n                        {{#if col.havetypeinfo}}\n                          <br />\n                          {{#if col.havepopup}}\n                            <div class=\"popup-info\">\n                              {{icon \"info\"}}\n                              <div class=\"popup\">\n                                {{col.column_desc}}\n                                {{#if col.enum}}\n                                  <EnumInfo @col={{col}} />\n                                {{/if}}\n                              </div>\n                            </div>\n                          {{/if}}\n                          <span class=\"schema-typenotes\">\n                            {{col.notes}}\n                          </span>\n                        {{/if}}\n                      </dd>\n                    </div>\n                  {{/each}}\n                </dl>\n              {{/if}}\n            </div>\n          </li>\n        \n      */\n      {\n        \"id\": \"T1XEPyKj\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"li\\\"],[15,0,[29,[\\\"schema-table \\\",[30,0,[\\\"styles\\\"]]]]],[12],[1,\\\"\\\\n\\\"],[1,\\\"      \\\"],[11,0],[24,0,\\\"schema-table-name\\\"],[24,\\\"role\\\",\\\"button\\\"],[4,[32,0],[\\\"click\\\",[30,0,[\\\"toggleOpen\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"open\\\"]],[[[1,\\\"          \\\"],[1,[28,[32,1],[\\\"caret-down\\\"],null]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[1,[28,[32,1],[\\\"caret-right\\\"],null]],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"        \\\"],[1,[30,1,[\\\"name\\\"]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"schema-table-cols\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"open\\\"]],[[[1,\\\"          \\\"],[10,\\\"dl\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,1,[\\\"columns\\\"]]],null]],null],null,[[[1,\\\"              \\\"],[10,0],[12],[1,\\\"\\\\n                \\\"],[10,\\\"dt\\\"],[15,0,[52,[30,2,[\\\"sensitive\\\"]],\\\"sensitive\\\"]],[15,\\\"title\\\",[52,[30,2,[\\\"sensitive\\\"]],[28,[32,2],[\\\"explorer.schema.sensitive\\\"],null]]],[12],[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"sensitive\\\"]],[[[1,\\\"                    \\\"],[1,[28,[32,1],[\\\"triangle-exclamation\\\"],null]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"                  \\\"],[1,[30,2,[\\\"column_name\\\"]]],[1,\\\"\\\\n                \\\"],[13],[1,\\\"\\\\n                \\\"],[10,\\\"dd\\\"],[12],[1,\\\"\\\\n                  \\\"],[1,[30,2,[\\\"data_type\\\"]]],[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"havetypeinfo\\\"]],[[[1,\\\"                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"havepopup\\\"]],[[[1,\\\"                      \\\"],[10,0],[14,0,\\\"popup-info\\\"],[12],[1,\\\"\\\\n                        \\\"],[1,[28,[32,1],[\\\"info\\\"],null]],[1,\\\"\\\\n                        \\\"],[10,0],[14,0,\\\"popup\\\"],[12],[1,\\\"\\\\n                          \\\"],[1,[30,2,[\\\"column_desc\\\"]]],[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"enum\\\"]],[[[1,\\\"                            \\\"],[8,[32,3],null,[[\\\"@col\\\"],[[30,2]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"                        \\\"],[13],[1,\\\"\\\\n                      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"                    \\\"],[10,1],[14,0,\\\"schema-typenotes\\\"],[12],[1,\\\"\\\\n                      \\\"],[1,[30,2,[\\\"notes\\\"]]],[1,\\\"\\\\n                    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"                \\\"],[13],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"          \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@table\\\",\\\"col\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema/one-table.js\",\n        \"scope\": () => [_modifier.on, _dIcon.default, _discourseI18n.i18n, _enumInfo.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = OneTable;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/modal/query-help\", [\"exports\", \"@ember/template\", \"discourse/components/d-modal\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _template, _dModal, _discourseI18n, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const QueryHelp = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <DModal\n      @title={{i18n \"explorer.help.modal_title\"}}\n      @closeModal={{@closeModal}}\n    >\n      <:body>\n        {{htmlSafe (i18n \"explorer.help.auto_resolution\")}}\n        {{htmlSafe (i18n \"explorer.help.custom_params\")}}\n        {{htmlSafe (i18n \"explorer.help.default_values\")}}\n        {{htmlSafe (i18n \"explorer.help.data_types\")}}\n      </:body>\n    </DModal>\n  \n  */\n  {\n    \"id\": \"iS4lNHrY\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@title\\\",\\\"@closeModal\\\"],[[28,[32,1],[\\\"explorer.help.modal_title\\\"],null],[30,1]]],[[\\\"body\\\"],[[[[1,\\\"\\\\n      \\\"],[1,[28,[32,2],[[28,[32,1],[\\\"explorer.help.auto_resolution\\\"],null]],null]],[1,\\\"\\\\n      \\\"],[1,[28,[32,2],[[28,[32,1],[\\\"explorer.help.custom_params\\\"],null]],null]],[1,\\\"\\\\n      \\\"],[1,[28,[32,2],[[28,[32,1],[\\\"explorer.help.default_values\\\"],null]],null]],[1,\\\"\\\\n      \\\"],[1,[28,[32,2],[[28,[32,1],[\\\"explorer.help.data_types\\\"],null]],null]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[\\\"@closeModal\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/modal/query-help.js\",\n    \"scope\": () => [_dModal.default, _discourseI18n.i18n, _template.htmlSafe],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"query-help:QueryHelp\"));\n  var _default = _exports.default = QueryHelp;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/param-input-form\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"@ember/string\", \"@ember/utils\", \"discourse/components/conditional-loading-spinner\", \"discourse/components/form\", \"discourse/models/category\", \"discourse-i18n\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input/boolean-three\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input/category-id-input\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input/group-input\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input/user-id-input\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input/user-list-input\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _object, _service, _string, _utils, _conditionalLoadingSpinner, _form, _category, _discourseI18n, _booleanThree, _categoryIdInput, _groupInput, _userIdInput, _userListInput, _component2, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.ParamValidationError = _exports.ERRORS = void 0;\n  class ParamValidationError extends Error {}\n  _exports.ParamValidationError = ParamValidationError;\n  const layoutMap = {\n    int: \"int\",\n    bigint: \"string\",\n    boolean: \"boolean\",\n    string: \"string\",\n    time: \"time\",\n    date: \"date\",\n    datetime: \"datetime\",\n    double: \"string\",\n    user_id: \"user_id\",\n    post_id: \"string\",\n    topic_id: \"generic\",\n    category_id: \"category_id\",\n    group_id: \"group_list\",\n    badge_id: \"generic\",\n    int_list: \"generic\",\n    string_list: \"generic\",\n    user_list: \"user_list\",\n    group_list: \"group_list\"\n  };\n  const ERRORS = _exports.ERRORS = {\n    REQUIRED: (0, _discourseI18n.i18n)(\"form_kit.errors.required\"),\n    NOT_AN_INTEGER: (0, _discourseI18n.i18n)(\"form_kit.errors.not_an_integer\"),\n    NOT_A_NUMBER: (0, _discourseI18n.i18n)(\"form_kit.errors.not_a_number\"),\n    OVERFLOW_HIGH: (0, _discourseI18n.i18n)(\"form_kit.errors.too_high\", {\n      count: 2147484647\n    }),\n    OVERFLOW_LOW: (0, _discourseI18n.i18n)(\"form_kit.errors.too_low\", {\n      count: -2147484648\n    }),\n    INVALID: (0, _discourseI18n.i18n)(\"explorer.form.errors.invalid\"),\n    NO_SUCH_CATEGORY: (0, _discourseI18n.i18n)(\"explorer.form.errors.no_such_category\"),\n    NO_SUCH_GROUP: (0, _discourseI18n.i18n)(\"explorer.form.errors.no_such_group\"),\n    INVALID_DATE: date => (0, _discourseI18n.i18n)(\"explorer.form.errors.invalid_date\", {\n      date\n    }),\n    INVALID_TIME: time => (0, _discourseI18n.i18n)(\"explorer.form.errors.invalid_time\", {\n      time\n    })\n  };\n  function digitalizeCategoryId(value) {\n    value = String(value || \"\");\n    const isPositiveInt = /^\\d+$/.test(value);\n    if (!isPositiveInt && value.trim()) {\n      return _category.default.asyncFindBySlugPath((0, _string.dasherize)(value)).then(res => res.id).catch(err => {\n        if (err.jqXHR?.status === 404) {\n          throw new ParamValidationError(`${ERRORS.NO_SUCH_CATEGORY}: ${value}`);\n        } else {\n          throw new Error(err.errorThrow || err.message);\n        }\n      });\n    }\n    return value;\n  }\n  function serializeValue(type, value) {\n    switch (type) {\n      case \"string\":\n      case \"int\":\n        return value != null ? String(value) : \"\";\n      case \"boolean\":\n        return String(value);\n      case \"group_list\":\n      case \"user_list\":\n        return value?.join(\",\");\n      case \"group_id\":\n        return value[0];\n      case \"datetime\":\n        return value?.replaceAll(\"T\", \" \");\n      default:\n        return value?.toString();\n    }\n  }\n  function validationOf(info) {\n    switch (layoutMap[info.type]) {\n      case \"boolean\":\n        return info.nullable ? \"required\" : \"\";\n      case \"string\":\n      case \"string_list\":\n      case \"generic\":\n        return info.nullable ? \"\" : \"required:trim\";\n      default:\n        return info.nullable ? \"\" : \"required\";\n    }\n  }\n  const components = {\n    int: (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <@field.Input @type=\"number\" name={{@info.identifier}} />\n      \n    */\n    {\n      \"id\": \"LqjzNAP1\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[30,1,[\\\"Input\\\"]],[[16,3,[30,2,[\\\"identifier\\\"]]]],[[\\\"@type\\\"],[\\\"number\\\"]],null],[1,\\\"\\\\n  \\\"]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n      \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input-form.js\",\n      \"isStrictMode\": true\n    }), (0, _templateOnly.default)(undefined, undefined)),\n    boolean: (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      <@field.Checkbox name={{@info.identifier}} />\n    */\n    {\n      \"id\": \"EPjRDPDE\",\n      \"block\": \"[[[8,[30,1,[\\\"Checkbox\\\"]],[[16,3,[30,2,[\\\"identifier\\\"]]]],null,null]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n      \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input-form.js\",\n      \"isStrictMode\": true\n    }), (0, _templateOnly.default)(undefined, undefined)),\n    boolean_three: _booleanThree.default,\n    category_id: _categoryIdInput.default,\n    user_id: _userIdInput.default,\n    user_list: _userListInput.default,\n    group_list: _groupInput.default,\n    date: (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <@field.Input @type=\"date\" name={{@info.identifier}} />\n      \n    */\n    {\n      \"id\": \"PiOJH2KJ\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[30,1,[\\\"Input\\\"]],[[16,3,[30,2,[\\\"identifier\\\"]]]],[[\\\"@type\\\"],[\\\"date\\\"]],null],[1,\\\"\\\\n  \\\"]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n      \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input-form.js\",\n      \"isStrictMode\": true\n    }), (0, _templateOnly.default)(undefined, undefined)),\n    time: (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <@field.Input @type=\"time\" name={{@info.identifier}} />\n      \n    */\n    {\n      \"id\": \"AJ3FGiLP\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[30,1,[\\\"Input\\\"]],[[16,3,[30,2,[\\\"identifier\\\"]]]],[[\\\"@type\\\"],[\\\"time\\\"]],null],[1,\\\"\\\\n  \\\"]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n      \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input-form.js\",\n      \"isStrictMode\": true\n    }), (0, _templateOnly.default)(undefined, undefined)),\n    datetime: (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <@field.Input @type=\"datetime-local\" name={{@info.identifier}} />\n      \n    */\n    {\n      \"id\": \"I4oVAyRx\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[30,1,[\\\"Input\\\"]],[[16,3,[30,2,[\\\"identifier\\\"]]]],[[\\\"@type\\\"],[\\\"datetime-local\\\"]],null],[1,\\\"\\\\n  \\\"]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n      \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input-form.js\",\n      \"isStrictMode\": true\n    }), (0, _templateOnly.default)(undefined, undefined)),\n    default: (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      <@field.Input name={{@info.identifier}} />\n    */\n    {\n      \"id\": \"wujT8X/g\",\n      \"block\": \"[[[8,[30,1,[\\\"Input\\\"]],[[16,3,[30,2,[\\\"identifier\\\"]]]],null,null]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n      \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input-form.js\",\n      \"isStrictMode\": true\n    }), (0, _templateOnly.default)(undefined, undefined))\n  };\n  function componentOf(info) {\n    let type = layoutMap[info.type] || \"generic\";\n    if (info.nullable && type === \"boolean\") {\n      type = \"boolean_three\";\n    }\n    return components[type] || components.default;\n  }\n  class ParamInputForm extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"site\", [_service.service]);\n    }\n    #site = (dt7948.i(this, \"site\"), void 0);\n    data = {};\n    paramInfo = [];\n    infoOf = {};\n    form = null;\n    promiseNormalizations = [];\n    formLoaded = new Promise(res => {\n      this.__form_load_callback = res;\n    });\n    constructor() {\n      super(...arguments);\n      this.initializeParams();\n      this.args.onRegisterApi?.({\n        submit: this.submit,\n        allNormalized: Promise.allSettled(this.promiseNormalizations)\n      });\n    }\n    initializeParams() {\n      this.args.paramInfo.forEach(info => {\n        // Skip internal types - they are auto-injected server-side\n        if (info.internal) {\n          return;\n        }\n        const identifier = info.identifier;\n        const pinfo = this.createParamInfo(info);\n        this.paramInfo.push(pinfo);\n        this.infoOf[identifier] = info;\n        const normalized = this.getNormalizedValue(info);\n        if (normalized instanceof Promise) {\n          this.handlePromiseNormalization(normalized, pinfo);\n        } else {\n          this.data[identifier] = normalized;\n        }\n      });\n    }\n    createParamInfo(info) {\n      return _object.default.create({\n        ...info,\n        validation: validationOf(info),\n        validate: this.validatorOf(info),\n        component: componentOf(info)\n      });\n    }\n    async addError(identifier, message) {\n      await this.formLoaded;\n      this.form.addError(identifier, {\n        title: identifier,\n        message\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"addError\", [_object.action]);\n    }\n    normalizeValue(info, value) {\n      switch (info.type) {\n        case \"category_id\":\n          return digitalizeCategoryId(value);\n        case \"boolean\":\n          if (value == null || value === \"#null\") {\n            return info.nullable ? \"#null\" : false;\n          }\n          return value === \"true\";\n        case \"group_id\":\n        case \"group_list\":\n          const normalized = this.normalizeGroups(value);\n          if (normalized.errorMsg) {\n            this.addError(info.identifier, normalized.errorMsg);\n          }\n          return info.type === \"group_id\" ? normalized.value.slice(0, 1) : normalized.value;\n        case \"user_list\":\n          if (Array.isArray(value)) {\n            return value || null;\n          }\n          return value?.split(\",\") || null;\n        case \"user_id\":\n          if (Array.isArray(value)) {\n            return value[0];\n          }\n          return value;\n        case \"date\":\n          try {\n            if (!value) {\n              return null;\n            }\n            return moment(value).format(\"YYYY-MM-DD\");\n          } catch {\n            this.addError(info.identifier, ERRORS.INVALID_DATE(String(value)));\n            return null;\n          }\n        case \"time\":\n          try {\n            if (!value) {\n              return null;\n            }\n            return moment(new Date(`1970/01/01 ${value}`).toISOString()).format(\"HH:mm\");\n          } catch {\n            this.addError(info.identifier, ERRORS.INVALID_TIME(String(value)));\n            return null;\n          }\n        case \"datetime\":\n          try {\n            if (!value) {\n              return null;\n            }\n            return moment(new Date(value).toISOString()).format(\"YYYY-MM-DD HH:mm\");\n          } catch {\n            this.addError(info.identifier, ERRORS.INVALID_TIME(String(value)));\n            return null;\n          }\n        default:\n          return value;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"normalizeValue\", [_object.action]);\n    }\n    getNormalizedValue(info) {\n      const initialValues = this.args.initialValues;\n      const identifier = info.identifier;\n      return this.normalizeValue(info, initialValues && identifier in initialValues ? initialValues[identifier] : info.default);\n    }\n    handlePromiseNormalization(promise, pinfo) {\n      this.promiseNormalizations.push(promise);\n      pinfo.set(\"loading\", true);\n      this.data[pinfo.identifier] = null;\n      promise.then(res => this.form.set(pinfo.identifier, res)).catch(err => this.addError(pinfo.identifier, err.message)).finally(() => pinfo.set(\"loading\", false));\n    }\n    normalizeGroups(values) {\n      values ||= [];\n      if (typeof values === \"string\") {\n        values = values.split(\",\");\n      }\n      const GroupNames = new Set(this.site.get(\"groups\").map(g => g.name));\n      const GroupNameOf = Object.fromEntries(this.site.get(\"groups\").map(g => [g.id, g.name]));\n      const valid_groups = [];\n      const invalid_groups = [];\n      for (const val of values) {\n        if (GroupNames.has(val)) {\n          valid_groups.push(val);\n        } else if (GroupNameOf[Number(val)]) {\n          valid_groups.push(GroupNameOf[Number(val)]);\n        } else {\n          invalid_groups.push(String(val));\n        }\n      }\n      return {\n        value: valid_groups,\n        errorMsg: invalid_groups.length !== 0 ? `${ERRORS.NO_SUCH_GROUP}: ${invalid_groups.join(\", \")}` : null\n      };\n    }\n    static {\n      dt7948.n(this.prototype, \"normalizeGroups\", [_object.action]);\n    }\n    getErrorFn(info) {\n      const isPositiveInt = value => /^\\d+$/.test(value);\n      const VALIDATORS = {\n        int: value => {\n          if (value >= 2147483648) {\n            return ERRORS.OVERFLOW_HIGH;\n          }\n          if (value <= -2147483649) {\n            return ERRORS.OVERFLOW_LOW;\n          }\n          return null;\n        },\n        bigint: value => {\n          if (isNaN(parseInt(value, 10))) {\n            return ERRORS.NOT_A_NUMBER;\n          }\n          return /^-?\\d+$/.test(value) ? null : ERRORS.NOT_AN_INTEGER;\n        },\n        boolean: value => {\n          return /^Y|N|#null|true|false/.test(String(value)) ? null : ERRORS.INVALID;\n        },\n        double: value => {\n          if (isNaN(parseFloat(value))) {\n            if (/^(-?)Inf(inity)?$/i.test(value) || /^(-?)NaN$/i.test(value)) {\n              return null;\n            }\n            return ERRORS.NOT_A_NUMBER;\n          }\n          return null;\n        },\n        int_list: value => {\n          return value.split(\",\").every(i => /^(-?\\d+|null)$/.test(i.trim())) ? null : ERRORS.INVALID;\n        },\n        post_id: value => {\n          return isPositiveInt(value) || /\\d+\\/\\d+(\\?u=.*)?$/.test(value) || /\\/t\\/[^/]+\\/(\\d+)(\\?u=.*)?/.test(value) ? null : ERRORS.INVALID;\n        },\n        topic_id: value => {\n          return isPositiveInt(value) || /\\/t\\/[^/]+\\/(\\d+)/.test(value) ? null : ERRORS.INVALID;\n        },\n        category_id: value => {\n          return this.site.categoriesById.get(Number(value)) ? null : ERRORS.NO_SUCH_CATEGORY;\n        },\n        group_list: value => {\n          return this.normalizeGroups(value).errorMsg;\n        },\n        group_id: value => {\n          return this.normalizeGroups(value).errorMsg;\n        }\n      };\n      return VALIDATORS[info.type] ?? (() => null);\n    }\n    validatorOf(info) {\n      const getError = this.getErrorFn(info);\n      return (name, value, {\n        addError\n      }) => {\n        // skip require validation for we have used them in @validation\n        if ((0, _utils.isEmpty)(value) || value == null) {\n          return;\n        }\n        const message = getError(value);\n        if (message != null) {\n          addError(name, {\n            title: info.identifier,\n            message\n          });\n        }\n      };\n    }\n    async submit() {\n      // No visible params to validate - return empty object\n      if (this.paramInfo.length === 0) {\n        return {};\n      }\n      if (this.form == null) {\n        throw \"No form\";\n      }\n      this.serializedData = null;\n      await this.form.submit();\n      if (this.serializedData == null) {\n        throw new ParamValidationError(\"validation_failed\");\n      } else {\n        return this.serializedData;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"submit\", [_object.action]);\n    }\n    onRegisterApi(form) {\n      this.__form_load_callback();\n      this.form = form;\n    }\n    static {\n      dt7948.n(this.prototype, \"onRegisterApi\", [_object.action]);\n    }\n    onSubmit(data) {\n      const serializedData = {};\n      for (const [id, val] of Object.entries(data)) {\n        serializedData[id] = serializeValue(this.infoOf[id].type, val) ?? undefined;\n      }\n      this.serializedData = serializedData;\n    }\n    static {\n      dt7948.n(this.prototype, \"onSubmit\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          {{#if this.paramInfo.length}}\n            <div class=\"query-params\">\n              <Form\n                @data={{this.data}}\n                @onRegisterApi={{this.onRegisterApi}}\n                @onSubmit={{this.onSubmit}}\n                class=\"params-form\"\n                as |form|\n              >\n                {{#each this.paramInfo as |info|}}\n                  <div class=\"param\">\n                    <form.Field\n                      @name={{info.identifier}}\n                      @title={{info.identifier}}\n                      @validation={{info.validation}}\n                      @validate={{info.validate}}\n                      as |field|\n                    >\n                      <info.component @field={{field}} @info={{info}} />\n                      <ConditionalLoadingSpinner\n                        @condition={{info.loading}}\n                        @size=\"small\"\n                      />\n                    </form.Field>\n                  </div>\n                {{/each}}\n              </Form>\n            </div>\n          {{/if}}\n        \n      */\n      {\n        \"id\": \"23wVAnQb\",\n        \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"paramInfo\\\",\\\"length\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"query-params\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,0],[[24,0,\\\"params-form\\\"]],[[\\\"@data\\\",\\\"@onRegisterApi\\\",\\\"@onSubmit\\\"],[[30,0,[\\\"data\\\"]],[30,0,[\\\"onRegisterApi\\\"]],[30,0,[\\\"onSubmit\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"paramInfo\\\"]]],null]],null],null,[[[1,\\\"            \\\"],[10,0],[14,0,\\\"param\\\"],[12],[1,\\\"\\\\n              \\\"],[8,[30,1,[\\\"Field\\\"]],null,[[\\\"@name\\\",\\\"@title\\\",\\\"@validation\\\",\\\"@validate\\\"],[[30,2,[\\\"identifier\\\"]],[30,2,[\\\"identifier\\\"]],[30,2,[\\\"validation\\\"]],[30,2,[\\\"validate\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[8,[30,2,[\\\"component\\\"]],null,[[\\\"@field\\\",\\\"@info\\\"],[[30,3],[30,2]]],null],[1,\\\"\\\\n                \\\"],[8,[32,1],null,[[\\\"@condition\\\",\\\"@size\\\"],[[30,2,[\\\"loading\\\"]],\\\"small\\\"]],null],[1,\\\"\\\\n              \\\"]],[3]]]]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"        \\\"]],[1]]]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"form\\\",\\\"info\\\",\\\"field\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input-form.js\",\n        \"scope\": () => [_form.default, _conditionalLoadingSpinner.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = ParamInputForm;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/param-input/boolean-three\", [\"exports\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _discourseI18n, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const BooleanThree = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <@field.Select name={{@info.identifier}} as |select|>\n      <select.Option @value=\"Y\">\n        {{i18n \"explorer.types.bool.true\"}}\n      </select.Option>\n      <select.Option @value=\"N\">\n        {{i18n \"explorer.types.bool.false\"}}\n      </select.Option>\n      <select.Option @value=\"#null\">\n        {{i18n \"explorer.types.bool.null_\"}}\n      </select.Option>\n    </@field.Select>\n  \n  */\n  {\n    \"id\": \"QGdtG+ZY\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"Select\\\"]],[[16,3,[30,2,[\\\"identifier\\\"]]]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[8,[30,3,[\\\"Option\\\"]],null,[[\\\"@value\\\"],[\\\"Y\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[\\\"explorer.types.bool.true\\\"],null]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n    \\\"],[8,[30,3,[\\\"Option\\\"]],null,[[\\\"@value\\\"],[\\\"N\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[\\\"explorer.types.bool.false\\\"],null]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n    \\\"],[8,[30,3,[\\\"Option\\\"]],null,[[\\\"@value\\\"],[\\\"#null\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[\\\"explorer.types.bool.null_\\\"],null]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[\\\"@field\\\",\\\"@info\\\",\\\"select\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input/boolean-three.js\",\n    \"scope\": () => [_discourseI18n.i18n],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"boolean-three:BooleanThree\"));\n  var _default = _exports.default = BooleanThree;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/param-input/category-id-input\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"discourse/select-kit/components/category-chooser\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _categoryChooser, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class CategoryIdInput extends _component.default {\n    // CategoryChooser will try to modify the value of value,\n    // triggering a setting-on-hash error. So we have to do the dirty work.\n    get data() {\n      return {\n        value: this.args.field.value\n      };\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <@field.Custom id={{@field.id}}>\n            <CategoryChooser\n              @value={{this.data.value}}\n              @onChange={{@field.set}}\n              @options={{hash\n                allowUncategorized=null\n                autoInsertNoneItem=true\n                none=true\n              }}\n              name={{@info.identifier}}\n            />\n          </@field.Custom>\n        \n      */\n      {\n        \"id\": \"LInHOVmK\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[30,1,[\\\"Custom\\\"]],[[16,1,[30,1,[\\\"id\\\"]]]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[32,0],[[16,3,[30,2,[\\\"identifier\\\"]]]],[[\\\"@value\\\",\\\"@onChange\\\",\\\"@options\\\"],[[30,0,[\\\"data\\\",\\\"value\\\"]],[30,1,[\\\"set\\\"]],[28,[32,1],null,[[\\\"allowUncategorized\\\",\\\"autoInsertNoneItem\\\",\\\"none\\\"],[null,true,true]]]]],null],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input/category-id-input.js\",\n        \"scope\": () => [_categoryChooser.default, _helper.hash],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = CategoryIdInput;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/param-input/group-input\", [\"exports\", \"@glimmer/component\", \"@ember/service\", \"discourse/select-kit/components/group-chooser\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _service, _groupChooser, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class GroupInput extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"site\", [_service.service]);\n    }\n    #site = (dt7948.i(this, \"site\"), void 0);\n    get allGroups() {\n      return this.site.get(\"groups\");\n    }\n    get groupChooserOption() {\n      return this.args.info.type === \"group_id\" ? {\n        maximum: 1\n      } : {};\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <@field.Custom id={{@field.id}}>\n            <GroupChooser\n              @content={{this.allGroups}}\n              @value={{@field.value}}\n              @labelProperty=\"name\"\n              @valueProperty=\"name\"\n              @onChange={{@field.set}}\n              @options={{this.groupChooserOption}}\n              name={{@info.identifier}}\n            />\n          </@field.Custom>\n        \n      */\n      {\n        \"id\": \"6g+ZjBLl\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[30,1,[\\\"Custom\\\"]],[[16,1,[30,1,[\\\"id\\\"]]]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[32,0],[[16,3,[30,2,[\\\"identifier\\\"]]]],[[\\\"@content\\\",\\\"@value\\\",\\\"@labelProperty\\\",\\\"@valueProperty\\\",\\\"@onChange\\\",\\\"@options\\\"],[[30,0,[\\\"allGroups\\\"]],[30,1,[\\\"value\\\"]],\\\"name\\\",\\\"name\\\",[30,1,[\\\"set\\\"]],[30,0,[\\\"groupChooserOption\\\"]]]],null],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input/group-input.js\",\n        \"scope\": () => [_groupChooser.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = GroupInput;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/param-input/user-id-input\", [\"exports\", \"@ember/helper\", \"discourse/select-kit/components/email-group-user-chooser\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _helper, _emailGroupUserChooser, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const UserIdInput = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <@field.Custom id={{@field.id}}>\n      <EmailGroupUserChooser\n        @value={{@field.value}}\n        @options={{hash maximum=1}}\n        @onChange={{@field.set}}\n        name={{@info.identifier}}\n      />\n    </@field.Custom>\n  \n  */\n  {\n    \"id\": \"5qGz7mpy\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"Custom\\\"]],[[16,1,[30,1,[\\\"id\\\"]]]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[8,[32,0],[[16,3,[30,2,[\\\"identifier\\\"]]]],[[\\\"@value\\\",\\\"@options\\\",\\\"@onChange\\\"],[[30,1,[\\\"value\\\"]],[28,[32,1],null,[[\\\"maximum\\\"],[1]]],[30,1,[\\\"set\\\"]]]],null],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input/user-id-input.js\",\n    \"scope\": () => [_emailGroupUserChooser.default, _helper.hash],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"user-id-input:UserIdInput\"));\n  var _default = _exports.default = UserIdInput;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/param-input/user-list-input\", [\"exports\", \"discourse/select-kit/components/email-group-user-chooser\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _emailGroupUserChooser, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const UserListInput = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <@field.Custom id={{@field.id}}>\n      <EmailGroupUserChooser\n        @value={{@field.value}}\n        @onChange={{@field.set}}\n        name={{@info.identifier}}\n      />\n    </@field.Custom>\n  \n  */\n  {\n    \"id\": \"ASiNmtTM\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"Custom\\\"]],[[16,1,[30,1,[\\\"id\\\"]]]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[8,[32,0],[[16,3,[30,2,[\\\"identifier\\\"]]]],[[\\\"@value\\\",\\\"@onChange\\\"],[[30,1,[\\\"value\\\"]],[30,1,[\\\"set\\\"]]]],null],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[\\\"@field\\\",\\\"@info\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/param-input/user-list-input.js\",\n    \"scope\": () => [_emailGroupUserChooser.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"user-list-input:UserListInput\"));\n  var _default = _exports.default = UserListInput;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/query-result\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/object\", \"@ember/runloop\", \"@ember/service\", \"@ember/string\", \"discourse/components/d-button\", \"discourse/lib/ajax\", \"discourse/lib/get-url\", \"discourse/models/badge\", \"discourse/models/category\", \"discourse-i18n\", \"discourse/plugins/discourse-data-explorer/discourse/components/data-explorer-bar-chart\", \"discourse/plugins/discourse-data-explorer/discourse/components/query-row-content\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/badge\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/category\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/group\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/html\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/json\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/post\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/reltime\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/tag-group\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/text\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/topic\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/url\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/user\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _object, _runloop, _service, _string, _dButton, _ajax, _getUrl, _badge, _category, _discourseI18n, _dataExplorerBarChart, _queryRowContent, _badge2, _category2, _group, _html, _json, _post, _reltime, _tagGroup, _text, _topic, _url, _user, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const VIEW_COMPONENTS = {\n    topic: _topic.default,\n    text: _text.default,\n    post: _post.default,\n    reltime: _reltime.default,\n    badge: _badge2.default,\n    url: _url.default,\n    user: _user.default,\n    group: _group.default,\n    html: _html.default,\n    json: _json.default,\n    category: _category2.default,\n    tag_group: _tagGroup.default\n  };\n  class QueryResult extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"site\", [_service.service]);\n    }\n    #site = (dt7948.i(this, \"site\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"chartDisplayed\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #chartDisplayed = (dt7948.i(this, \"chartDisplayed\"), void 0);\n    get colRender() {\n      return this.args.content.colrender || {};\n    }\n    get rows() {\n      return this.args.content.rows;\n    }\n    get columns() {\n      return this.args.content.columns;\n    }\n    get params() {\n      return this.args.content.params;\n    }\n    get explainText() {\n      return this.args.content.explain;\n    }\n    get chartDatasetName() {\n      return this.columnNames[1];\n    }\n    get columnNames() {\n      if (!this.columns) {\n        return [];\n      }\n      return this.columns.map(colName => {\n        if (colName.endsWith(\"_id\")) {\n          return colName.slice(0, -3);\n        }\n        const dIdx = colName.indexOf(\"$\");\n        if (dIdx >= 0) {\n          return colName.substring(dIdx + 1);\n        }\n        return colName;\n      });\n    }\n    get columnComponents() {\n      if (!this.columns) {\n        return [];\n      }\n      return this.columns.map((_, idx) => {\n        let type = \"text\";\n        if (this.colRender[idx]) {\n          type = this.colRender[idx];\n        }\n        return {\n          name: type,\n          component: VIEW_COMPONENTS[type]\n        };\n      });\n    }\n    get chartValues() {\n      // return an array with the second value of this.row\n      return this.rows.map(item => item[1]);\n    }\n    get colCount() {\n      return this.columns.length;\n    }\n    get resultCount() {\n      const count = this.args.content.result_count;\n      if (count === this.args.content.default_limit) {\n        return (0, _discourseI18n.i18n)(\"explorer.max_result_count\", {\n          count\n        });\n      } else {\n        return (0, _discourseI18n.i18n)(\"explorer.result_count\", {\n          count\n        });\n      }\n    }\n    get duration() {\n      return (0, _discourseI18n.i18n)(\"explorer.run_time\", {\n        value: _discourseI18n.default.toNumber(this.args.content.duration, {\n          precision: 1\n        })\n      });\n    }\n    get parameterAry() {\n      let arr = [];\n      for (let key in this.params) {\n        if (this.params.hasOwnProperty(key)) {\n          arr.push({\n            key,\n            value: this.params[key]\n          });\n        }\n      }\n      return arr;\n    }\n    get transformedUserTable() {\n      return transformedRelTable(this.args.content.relations.user);\n    }\n    get transformedBadgeTable() {\n      return transformedRelTable(this.args.content.relations.badge, _badge.default);\n    }\n    get transformedPostTable() {\n      return transformedRelTable(this.args.content.relations.post);\n    }\n    get transformedTopicTable() {\n      return transformedRelTable(this.args.content.relations.topic);\n    }\n    get transformedTagGroupTable() {\n      return transformedRelTable(this.args.content.relations.tag_group);\n    }\n    get transformedGroupTable() {\n      return transformedRelTable(this.site.groups);\n    }\n    get canShowChart() {\n      const hasTwoColumns = this.colCount === 2;\n      const secondColumnContainsNumber = this.resultCount[0] > 0 && typeof this.rows[0][1] === \"number\";\n      const secondColumnContainsId = this.colRender[1];\n      return hasTwoColumns && secondColumnContainsNumber && !secondColumnContainsId;\n    }\n    get chartLabels() {\n      const labelSelectors = {\n        user: user => user.username,\n        badge: badge => badge.name,\n        topic: topic => topic.title,\n        group: group => group.name,\n        category: category => category.name\n      };\n      const relationName = this.colRender[0];\n      if (relationName) {\n        const lookupFunc = this[`lookup${(0, _string.capitalize)(relationName)}`];\n        const labelSelector = labelSelectors[relationName];\n        if (lookupFunc && labelSelector) {\n          return this.rows.map(r => {\n            const relation = lookupFunc.call(this, r[0]);\n            const label = labelSelector(relation);\n            return this._cutChartLabel(label);\n          });\n        }\n      }\n      return this.rows.map(r => this._cutChartLabel(r[0]));\n    }\n    lookupUser(id) {\n      return this.transformedUserTable[id];\n    }\n    lookupBadge(id) {\n      return this.transformedBadgeTable[id];\n    }\n    lookupPost(id) {\n      return this.transformedPostTable[id];\n    }\n    lookupTopic(id) {\n      return this.transformedTopicTable[id];\n    }\n    lookupTagGroup(id) {\n      return this.transformedTagGroupTable[id];\n    }\n    lookupGroup(id) {\n      return this.transformedGroupTable[id];\n    }\n    lookupCategory(id) {\n      return _category.default.findById(id);\n    }\n    _cutChartLabel(label) {\n      const labelString = label.toString();\n      if (labelString.length > 25) {\n        return `${labelString.substring(0, 25)}...`;\n      } else {\n        return labelString;\n      }\n    }\n    downloadResultJson() {\n      this._downloadResult(\"json\");\n    }\n    static {\n      dt7948.n(this.prototype, \"downloadResultJson\", [_object.action]);\n    }\n    downloadResultCsv() {\n      this._downloadResult(\"csv\");\n    }\n    static {\n      dt7948.n(this.prototype, \"downloadResultCsv\", [_object.action]);\n    }\n    showChart() {\n      this.chartDisplayed = true;\n    }\n    static {\n      dt7948.n(this.prototype, \"showChart\", [_object.action]);\n    }\n    hideChart() {\n      this.chartDisplayed = false;\n    }\n    static {\n      dt7948.n(this.prototype, \"hideChart\", [_object.action]);\n    }\n    _download_url() {\n      return this.args.group ? `/g/${this.args.group.name}/reports/` : \"/admin/plugins/explorer/queries/\";\n    }\n    _downloadResult(format) {\n      // Create a frame to submit the form in (?)\n      // to avoid leaving an about:blank behind\n      let windowName = randomIdShort();\n      const newWindowContents = \"<style>body{font-size:36px;display:flex;justify-content:center;align-items:center;}</style><body>Click anywhere to close this window once the download finishes.<script>window.onclick=function(){window.close()};</script>\";\n      window.open(\"data:text/html;base64,\" + btoa(newWindowContents), windowName);\n      let form = document.createElement(\"form\");\n      form.setAttribute(\"id\", \"query-download-result\");\n      form.setAttribute(\"method\", \"post\");\n      form.setAttribute(\"action\", (0, _getUrl.default)(this._download_url() + this.args.query.id + \"/run.\" + format + \"?download=1\"));\n      form.setAttribute(\"target\", windowName);\n      form.setAttribute(\"style\", \"display:none;\");\n      function addInput(name, value) {\n        let field;\n        field = document.createElement(\"input\");\n        field.setAttribute(\"name\", name);\n        field.setAttribute(\"value\", value);\n        form.appendChild(field);\n      }\n      addInput(\"params\", JSON.stringify(this.params));\n      addInput(\"explain\", this.explainText);\n      addInput(\"limit\", \"1000000\");\n      (0, _ajax.ajax)(\"/session/csrf.json\").then(csrf => {\n        addInput(\"authenticity_token\", csrf.csrf);\n        document.body.appendChild(form);\n        form.submit();\n        (0, _runloop.schedule)(\"afterRender\", () => document.body.removeChild(form));\n      });\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <article>\n            <header class=\"result-header\">\n              <div class=\"result-info\">\n                <DButton\n                  @action={{this.downloadResultJson}}\n                  @icon=\"download\"\n                  @label=\"explorer.download_json\"\n                />\n      \n                <DButton\n                  @action={{this.downloadResultCsv}}\n                  @icon=\"download\"\n                  @label=\"explorer.download_csv\"\n                />\n      \n                {{#if this.canShowChart}}\n                  {{#if this.chartDisplayed}}\n                    <DButton\n                      @action={{this.hideChart}}\n                      @icon=\"table\"\n                      @label=\"explorer.show_table\"\n                    />\n                  {{else}}\n                    <DButton\n                      @action={{this.showChart}}\n                      @icon=\"chart-bar\"\n                      @label=\"explorer.show_graph\"\n                    />\n                  {{/if}}\n                {{/if}}\n              </div>\n      \n              <div class=\"result-about\">\n                {{this.resultCount}}\n                {{this.duration}}\n              </div>\n      \n              <br />\n      \n              {{~#if this.explainText}}\n                <pre class=\"result-explain\">\n              <code>\n                    {{~this.explainText}}\n                  </code>\n            </pre>\n              {{~/if}}\n      \n              <br />\n            </header>\n      \n            <section>\n              {{#if this.chartDisplayed}}\n                <DataExplorerBarChart\n                  @labels={{this.chartLabels}}\n                  @values={{this.chartValues}}\n                  @datasetName={{this.chartDatasetName}}\n                />\n              {{else}}\n                <table>\n                  <thead>\n                    <tr class=\"headers\">\n                      {{#each this.columnNames as |col|}}\n                        <th>{{col}}</th>\n                      {{/each}}\n                    </tr>\n                  </thead>\n                  <tbody>\n                    {{#each this.rows as |row|}}\n                      <QueryRowContent\n                        @row={{row}}\n                        @columnComponents={{this.columnComponents}}\n                        @lookupUser={{this.lookupUser}}\n                        @lookupBadge={{this.lookupBadge}}\n                        @lookupPost={{this.lookupPost}}\n                        @lookupTopic={{this.lookupTopic}}\n                        @lookupTagGroup={{this.lookupTagGroup}}\n                        @lookupGroup={{this.lookupGroup}}\n                        @lookupCategory={{this.lookupCategory}}\n                        @transformedPostTable={{this.transformedPostTable}}\n                        @transformedBadgeTable={{this.transformedBadgeTable}}\n                        @transformedUserTable={{this.transformedUserTable}}\n                        @transformedTagGroupTable={{this.transformedTagGroupTable}}\n                        @transformedGroupTable={{this.transformedGroupTable}}\n                        @transformedTopicTable={{this.transformedTopicTable}}\n                        @site={{this.site}}\n                      />\n                    {{/each}}\n                  </tbody>\n                </table>\n              {{/if}}\n            </section>\n          </article>\n        \n      */\n      {\n        \"id\": \"aRznaJx5\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"article\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"header\\\"],[14,0,\\\"result-header\\\"],[12],[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"result-info\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,0],null,[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\"],[[30,0,[\\\"downloadResultJson\\\"]],\\\"download\\\",\\\"explorer.download_json\\\"]],null],[1,\\\"\\\\n\\\\n          \\\"],[8,[32,0],null,[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\"],[[30,0,[\\\"downloadResultCsv\\\"]],\\\"download\\\",\\\"explorer.download_csv\\\"]],null],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"canShowChart\\\"]],[[[41,[30,0,[\\\"chartDisplayed\\\"]],[[[1,\\\"              \\\"],[8,[32,0],null,[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\"],[[30,0,[\\\"hideChart\\\"]],\\\"table\\\",\\\"explorer.show_table\\\"]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"              \\\"],[8,[32,0],null,[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\"],[[30,0,[\\\"showChart\\\"]],\\\"chart-bar\\\",\\\"explorer.show_graph\\\"]],null],[1,\\\"\\\\n\\\"]],[]]]],[]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\\n        \\\"],[10,0],[14,0,\\\"result-about\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[30,0,[\\\"resultCount\\\"]]],[1,\\\"\\\\n          \\\"],[1,[30,0,[\\\"duration\\\"]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n        \\\"],[10,\\\"br\\\"],[12],[13],[41,[30,0,[\\\"explainText\\\"]],[[[1,\\\"          \\\"],[10,\\\"pre\\\"],[14,0,\\\"result-explain\\\"],[12],[1,\\\"        \\\"],[10,\\\"code\\\"],[12],[1,[30,0,[\\\"explainText\\\"]]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n      \\\"],[13]],[]],null],[1,\\\"\\\\n        \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,\\\"section\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"chartDisplayed\\\"]],[[[1,\\\"          \\\"],[8,[32,1],null,[[\\\"@labels\\\",\\\"@values\\\",\\\"@datasetName\\\"],[[30,0,[\\\"chartLabels\\\"]],[30,0,[\\\"chartValues\\\"]],[30,0,[\\\"chartDatasetName\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[10,\\\"table\\\"],[12],[1,\\\"\\\\n            \\\"],[10,\\\"thead\\\"],[12],[1,\\\"\\\\n              \\\"],[10,\\\"tr\\\"],[14,0,\\\"headers\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"columnNames\\\"]]],null]],null],null,[[[1,\\\"                  \\\"],[10,\\\"th\\\"],[12],[1,[30,1]],[13],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"              \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n            \\\"],[10,\\\"tbody\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,0,[\\\"rows\\\"]]],null]],null],null,[[[1,\\\"                \\\"],[8,[32,2],null,[[\\\"@row\\\",\\\"@columnComponents\\\",\\\"@lookupUser\\\",\\\"@lookupBadge\\\",\\\"@lookupPost\\\",\\\"@lookupTopic\\\",\\\"@lookupTagGroup\\\",\\\"@lookupGroup\\\",\\\"@lookupCategory\\\",\\\"@transformedPostTable\\\",\\\"@transformedBadgeTable\\\",\\\"@transformedUserTable\\\",\\\"@transformedTagGroupTable\\\",\\\"@transformedGroupTable\\\",\\\"@transformedTopicTable\\\",\\\"@site\\\"],[[30,2],[30,0,[\\\"columnComponents\\\"]],[30,0,[\\\"lookupUser\\\"]],[30,0,[\\\"lookupBadge\\\"]],[30,0,[\\\"lookupPost\\\"]],[30,0,[\\\"lookupTopic\\\"]],[30,0,[\\\"lookupTagGroup\\\"]],[30,0,[\\\"lookupGroup\\\"]],[30,0,[\\\"lookupCategory\\\"]],[30,0,[\\\"transformedPostTable\\\"]],[30,0,[\\\"transformedBadgeTable\\\"]],[30,0,[\\\"transformedUserTable\\\"]],[30,0,[\\\"transformedTagGroupTable\\\"]],[30,0,[\\\"transformedGroupTable\\\"]],[30,0,[\\\"transformedTopicTable\\\"]],[30,0,[\\\"site\\\"]]]],null],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"            \\\"],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"col\\\",\\\"row\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/query-result.js\",\n        \"scope\": () => [_dButton.default, _dataExplorerBarChart.default, _queryRowContent.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = QueryResult;\n  function randomIdShort() {\n    return \"xxxxxxxx\".replace(/[xy]/g, () => {\n      /*eslint-disable*/return (Math.random() * 16 | 0).toString(16);\n      /*eslint-enable*/\n    });\n  }\n  function transformedRelTable(table, modelClass) {\n    const result = {};\n    table?.forEach(item => {\n      if (modelClass) {\n        result[item.id] = modelClass.create(item);\n      } else {\n        result[item.id] = item;\n      }\n    });\n    return result;\n  }\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/query-results-wrapper\", [\"exports\", \"discourse/plugins/discourse-data-explorer/discourse/components/query-result\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _queryResult, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const QueryResultsWrapper = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{#if @results}}\n      <div class=\"query-results\">\n        {{#if @showResults}}\n          <QueryResult @query={{@query}} @content={{@results}} />\n        {{else}}\n          {{#each @results.errors as |err|}}\n            <pre class=\"query-error\"><code>{{~err}}</code></pre>\n          {{/each}}\n        {{/if}}\n      </div>\n    {{/if}}\n  \n  */\n  {\n    \"id\": \"RKnbOu46\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"query-results\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,2],[[[1,\\\"        \\\"],[8,[32,0],null,[[\\\"@query\\\",\\\"@content\\\"],[[30,3],[30,1]]],null],[1,\\\"\\\\n\\\"]],[]],[[[42,[28,[31,2],[[28,[31,2],[[30,1,[\\\"errors\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[10,\\\"pre\\\"],[14,0,\\\"query-error\\\"],[12],[10,\\\"code\\\"],[12],[1,[30,4]],[13],[13],[1,\\\"\\\\n\\\"]],[4]],null]],[]]],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[\\\"@results\\\",\\\"@showResults\\\",\\\"@query\\\",\\\"err\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/query-results-wrapper.js\",\n    \"scope\": () => [_queryResult.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"query-results-wrapper:QueryResultsWrapper\"));\n  var _default = _exports.default = QueryResultsWrapper;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/query-row-content\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/string\", \"discourse/lib/get-url\", \"discourse/lib/utilities\", \"discourse/plugins/discourse-data-explorer/discourse/components/result-types/text\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _string, _getUrl, _utilities, _text, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class QueryRowContent extends _component.default {\n    get results() {\n      return this.args.columnComponents.map((componentDefinition, idx) => {\n        const value = this.args.row[idx],\n          id = parseInt(value, 10);\n        const ctx = {\n          value,\n          id,\n          baseuri: (0, _getUrl.default)(\"\")\n        };\n        if (this.args.row[idx] === null) {\n          return {\n            component: _text.default,\n            textValue: \"NULL\"\n          };\n        } else if (componentDefinition.name === \"text\") {\n          return {\n            component: _text.default,\n            textValue: (0, _utilities.escapeExpression)(this.args.row[idx].toString())\n          };\n        }\n        const lookupFunc = this.args[`lookup${(0, _string.classify)(componentDefinition.name)}`];\n        if (lookupFunc) {\n          ctx[componentDefinition.name] = lookupFunc.call(this.args, id);\n        }\n        if (componentDefinition.name === \"url\") {\n          let [url, name] = guessUrl(value);\n          ctx[\"href\"] = url;\n          ctx[\"target\"] = name;\n        }\n        try {\n          return {\n            component: componentDefinition.component || _text.default,\n            ctx\n          };\n        } catch {\n          return \"error\";\n        }\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"results\", [_tracking.cached]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <tr>\n            {{#each this.results as |result|}}\n              <td>\n                <result.component\n                  @ctx={{result.ctx}}\n                  @params={{result.params}}\n                  @textValue={{result.textValue}}\n                />\n              </td>\n            {{/each}}\n          </tr>\n        \n      */\n      {\n        \"id\": \"pUN4qEcO\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"tr\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,0,[\\\"results\\\"]]],null]],null],null,[[[1,\\\"        \\\"],[10,\\\"td\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[30,1,[\\\"component\\\"]],null,[[\\\"@ctx\\\",\\\"@params\\\",\\\"@textValue\\\"],[[30,1,[\\\"ctx\\\"]],[30,1,[\\\"params\\\"]],[30,1,[\\\"textValue\\\"]]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"result\\\"],[\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/query-row-content.js\",\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = QueryRowContent;\n  function guessUrl(columnValue) {\n    let [dest, name] = [columnValue, columnValue];\n    const split = columnValue.split(/,(.+)/);\n    if (split.length > 1) {\n      name = split[0];\n      dest = split[1];\n    }\n    return [dest, name];\n  }\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/badge\", [\"exports\", \"@glimmer/component\", \"@ember/template\", \"@ember/utils\", \"discourse/lib/icon-library\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _template, _utils, _iconLibrary, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class Badge extends _component.default {\n    get iconOrImageReplacement() {\n      if ((0, _utils.isEmpty)(this.args.ctx.badge.icon)) {\n        return \"\";\n      }\n      if (this.args.ctx.badge.icon.indexOf(\"fa-\") > -1) {\n        const icon = (0, _iconLibrary.iconHTML)((0, _iconLibrary.convertIconClass)(this.args.ctx.badge.icon));\n        return (0, _template.htmlSafe)(icon);\n      } else {\n        return (0, _template.htmlSafe)(\"<img src='\" + this.args.ctx.badge.icon + \"'>\");\n      }\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <a\n            href=\"{{@ctx.baseuri}}/badges/{{@ctx.badge.id}}/{{@ctx.badge.name}}\"\n            class=\"user-badge {{@ctx.badge.badgeTypeClassName}}\"\n            title={{@ctx.badge.display_name}}\n            data-badge-name={{@ctx.badge.name}}\n          >\n            {{this.iconOrImageReplacement}}\n            <span class=\"badge-display-name\">{{@ctx.badge.display_name}}</span>\n          </a>\n        \n      */\n      {\n        \"id\": \"CKRpS1ZA\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,3],[15,6,[29,[[30,1,[\\\"baseuri\\\"]],\\\"/badges/\\\",[30,1,[\\\"badge\\\",\\\"id\\\"]],\\\"/\\\",[30,1,[\\\"badge\\\",\\\"name\\\"]]]]],[15,0,[29,[\\\"user-badge \\\",[30,1,[\\\"badge\\\",\\\"badgeTypeClassName\\\"]]]]],[15,\\\"title\\\",[30,1,[\\\"badge\\\",\\\"display_name\\\"]]],[15,\\\"data-badge-name\\\",[30,1,[\\\"badge\\\",\\\"name\\\"]]],[12],[1,\\\"\\\\n      \\\"],[1,[30,0,[\\\"iconOrImageReplacement\\\"]]],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"badge-display-name\\\"],[12],[1,[30,1,[\\\"badge\\\",\\\"display_name\\\"]]],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@ctx\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/badge.js\",\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = Badge;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/category\", [\"exports\", \"@glimmer/component\", \"discourse/helpers/category-link\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _categoryLink, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class Category extends _component.default {\n    get categoryBadgeReplacement() {\n      return (0, _categoryLink.categoryLinkHTML)(this.args.ctx.category, {\n        allowUncategorized: true\n      });\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          {{#if @ctx.category}}\n            {{this.categoryBadgeReplacement}}\n          {{else}}\n            <a href=\"{{@ctx.baseuri}}/t/{{@ctx.id}}\">{{@ctx.id}}</a>\n          {{/if}}\n        \n      */\n      {\n        \"id\": \"VoUSiDzK\",\n        \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"category\\\"]],[[[1,\\\"      \\\"],[1,[30,0,[\\\"categoryBadgeReplacement\\\"]]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"      \\\"],[10,3],[15,6,[29,[[30,1,[\\\"baseuri\\\"]],\\\"/t/\\\",[30,1,[\\\"id\\\"]]]]],[12],[1,[30,1,[\\\"id\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"  \\\"]],[\\\"@ctx\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/category.js\",\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = Category;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/group\", [\"exports\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Group = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{#if @ctx.group}}\n      <a\n        href=\"{{@ctx.baseuri}}/groups/{{@ctx.group.name}}\"\n      >{{@ctx.group.name}}</a>\n    {{else}}\n      {{@ctx.id}}\n    {{/if}}\n  \n  */\n  {\n    \"id\": \"8SJHpAt8\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"group\\\"]],[[[1,\\\"    \\\"],[10,3],[15,6,[29,[[30,1,[\\\"baseuri\\\"]],\\\"/groups/\\\",[30,1,[\\\"group\\\",\\\"name\\\"]]]]],[12],[1,[30,1,[\\\"group\\\",\\\"name\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[1,[30,1,[\\\"id\\\"]]],[1,\\\"\\\\n\\\"]],[]]]],[\\\"@ctx\\\"],[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/group.js\",\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"group:Group\"));\n  var _default = _exports.default = Group;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/html\", [\"exports\", \"@ember/template\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _template, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Html = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    {{htmlSafe @ctx.value}}\n  */\n  {\n    \"id\": \"GrTwhjnL\",\n    \"block\": \"[[[1,[28,[32,0],[[30,1,[\\\"value\\\"]]],null]]],[\\\"@ctx\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/html.js\",\n    \"scope\": () => [_template.htmlSafe],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"html:Html\"));\n  var _default = _exports.default = Html;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/json\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"discourse/components/modal/fullscreen-code\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _object, _service, _dButton, _fullscreenCode, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class Json extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"modal\", [_service.service]);\n    }\n    #modal = (dt7948.i(this, \"modal\"), void 0);\n    get parsedJson() {\n      try {\n        return JSON.parse(this.args.ctx.value);\n      } catch {\n        return null;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"parsedJson\", [_tracking.cached]);\n    }\n    viewJson() {\n      this.modal.show(_fullscreenCode.default, {\n        model: {\n          code: this.parsedJson ? JSON.stringify(this.parsedJson, null, 2) : this.args.ctx.value,\n          codeClasses: \"\"\n        }\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"viewJson\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <div class=\"result-json\">\n            <div class=\"result-json-value\">{{@ctx.value}}</div>\n            <DButton\n              class=\"result-json-button\"\n              @action={{this.viewJson}}\n              @icon=\"ellipsis\"\n              @title=\"explorer.view_json\"\n            />\n          </div>\n        \n      */\n      {\n        \"id\": \"SsPcrLID\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"result-json\\\"],[12],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"result-json-value\\\"],[12],[1,[30,1,[\\\"value\\\"]]],[13],[1,\\\"\\\\n      \\\"],[8,[32,0],[[24,0,\\\"result-json-button\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@title\\\"],[[30,0,[\\\"viewJson\\\"]],\\\"ellipsis\\\",\\\"explorer.view_json\\\"]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@ctx\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/json.js\",\n        \"scope\": () => [_dButton.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = Json;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/post\", [\"exports\", \"@ember/template\", \"discourse/helpers/avatar\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _template, _avatar, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Post = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{#if @ctx.post}}\n      <aside\n        class=\"quote\"\n        data-post={{@ctx.post.post_number}}\n        data-topic={{@ctx.post.topic_id}}\n      >\n        <div class=\"title\">\n          <div class=\"quote-controls\">\n            {{! template-lint-disable no-invalid-link-text }}\n            <a\n              href=\"/t/via-quote/{{@ctx.post.topic_id}}/{{@ctx.post.post_number}}\"\n              title=\"go to the quoted post\"\n              class=\"quote-other-topic\"\n            >\n            </a>\n          </div>\n  \n          <a\n            class=\"result-post-link\"\n            href=\"/t/{{@ctx.post.topic_id}}/{{@ctx.post.post_number}}\"\n          >\n            {{avatar @ctx.post imageSize=\"tiny\"}}{{@ctx.post.username}}:\n          </a>\n        </div>\n  \n        <blockquote>\n          <p>\n            {{htmlSafe @ctx.post.excerpt}}\n          </p>\n        </blockquote>\n      </aside>\n    {{else}}\n      {{@ctx.id}}\n    {{/if}}\n  \n  */\n  {\n    \"id\": \"ob5ZjFMS\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"post\\\"]],[[[1,\\\"    \\\"],[10,\\\"aside\\\"],[14,0,\\\"quote\\\"],[15,\\\"data-post\\\",[30,1,[\\\"post\\\",\\\"post_number\\\"]]],[15,\\\"data-topic\\\",[30,1,[\\\"post\\\",\\\"topic_id\\\"]]],[12],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"title\\\"],[12],[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"quote-controls\\\"],[12],[1,\\\"\\\\n\\\"],[1,\\\"          \\\"],[10,3],[15,6,[29,[\\\"/t/via-quote/\\\",[30,1,[\\\"post\\\",\\\"topic_id\\\"]],\\\"/\\\",[30,1,[\\\"post\\\",\\\"post_number\\\"]]]]],[14,\\\"title\\\",\\\"go to the quoted post\\\"],[14,0,\\\"quote-other-topic\\\"],[12],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n        \\\"],[10,3],[14,0,\\\"result-post-link\\\"],[15,6,[29,[\\\"/t/\\\",[30,1,[\\\"post\\\",\\\"topic_id\\\"]],\\\"/\\\",[30,1,[\\\"post\\\",\\\"post_number\\\"]]]]],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,0],[[30,1,[\\\"post\\\"]]],[[\\\"imageSize\\\"],[\\\"tiny\\\"]]]],[1,[30,1,[\\\"post\\\",\\\"username\\\"]]],[1,\\\":\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,\\\"blockquote\\\"],[12],[1,\\\"\\\\n        \\\"],[10,2],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,1],[[30,1,[\\\"post\\\",\\\"excerpt\\\"]]],null]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[1,[30,1,[\\\"id\\\"]]],[1,\\\"\\\\n\\\"]],[]]]],[\\\"@ctx\\\"],[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/post.js\",\n    \"scope\": () => [_avatar.default, _template.htmlSafe],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"post:Post\"));\n  var _default = _exports.default = Post;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/reltime\", [\"exports\", \"@glimmer/component\", \"@ember/template\", \"discourse/lib/formatter\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _template, _formatter, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class Reltime extends _component.default {\n    get boundDateReplacement() {\n      return (0, _template.htmlSafe)((0, _formatter.autoUpdatingRelativeAge)(new Date(this.args.ctx.value), {\n        title: true\n      }));\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{this.boundDateReplacement}}\n      */\n      {\n        \"id\": \"sR4xzXqZ\",\n        \"block\": \"[[[1,[30,0,[\\\"boundDateReplacement\\\"]]]],[],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/reltime.js\",\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = Reltime;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/tag-group\", [\"exports\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Group = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{#if @ctx.tag_group}}\n      <a\n        href=\"{{@ctx.baseuri}}/tag_groups/{{@ctx.id}}\"\n      >{{@ctx.tag_group.name}}</a>\n    {{else}}\n      {{@ctx.id}}\n    {{/if}}\n  \n  */\n  {\n    \"id\": \"/MnMhjZd\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"tag_group\\\"]],[[[1,\\\"    \\\"],[10,3],[15,6,[29,[[30,1,[\\\"baseuri\\\"]],\\\"/tag_groups/\\\",[30,1,[\\\"id\\\"]]]]],[12],[1,[30,1,[\\\"tag_group\\\",\\\"name\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[1,[30,1,[\\\"id\\\"]]],[1,\\\"\\\\n\\\"]],[]]]],[\\\"@ctx\\\"],[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/tag-group.js\",\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"tag-group:Group\"));\n  var _default = _exports.default = Group;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/text\", [\"exports\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Text = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    {{@textValue}}\n  */\n  {\n    \"id\": \"ug+UMthn\",\n    \"block\": \"[[[1,[30,1]]],[\\\"@textValue\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/text.js\",\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"text:Text\"));\n  var _default = _exports.default = Text;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/topic\", [\"exports\", \"@ember/template\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _template, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Topic = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{#if @ctx.topic}}\n      <a href=\"{{@ctx.baseuri}}/t/{{@ctx.topic.slug}}/{{@ctx.topic.id}}\">\n        {{htmlSafe @ctx.topic.fancy_title}}\n      </a>\n      ({{@ctx.topic.posts_count}})\n    {{else}}\n      <a href=\"{{@ctx.baseuri}}/t/{{@ctx.id}}\">{{@ctx.id}}</a>\n    {{/if}}\n  \n  */\n  {\n    \"id\": \"8ZBjKBPn\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"topic\\\"]],[[[1,\\\"    \\\"],[10,3],[15,6,[29,[[30,1,[\\\"baseuri\\\"]],\\\"/t/\\\",[30,1,[\\\"topic\\\",\\\"slug\\\"]],\\\"/\\\",[30,1,[\\\"topic\\\",\\\"id\\\"]]]]],[12],[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[[30,1,[\\\"topic\\\",\\\"fancy_title\\\"]]],null]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    (\\\"],[1,[30,1,[\\\"topic\\\",\\\"posts_count\\\"]]],[1,\\\")\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[10,3],[15,6,[29,[[30,1,[\\\"baseuri\\\"]],\\\"/t/\\\",[30,1,[\\\"id\\\"]]]]],[12],[1,[30,1,[\\\"id\\\"]]],[13],[1,\\\"\\\\n\\\"]],[]]]],[\\\"@ctx\\\"],[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/topic.js\",\n    \"scope\": () => [_template.htmlSafe],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"topic:Topic\"));\n  var _default = _exports.default = Topic;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/url\", [\"exports\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Url = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <a href={{@ctx.href}}>{{@ctx.target}}</a>\n  \n  */\n  {\n    \"id\": \"rheOkt0Y\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,3],[15,6,[30,1,[\\\"href\\\"]]],[12],[1,[30,1,[\\\"target\\\"]]],[13],[1,\\\"\\\\n\\\"]],[\\\"@ctx\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/url.js\",\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"url:Url\"));\n  var _default = _exports.default = Url;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/result-types/user\", [\"exports\", \"discourse/helpers/avatar\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _avatar, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const User = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{#if @ctx.user}}\n      <a\n        href=\"{{@ctx.baseuri}}/u/{{@ctx.user.username}}/activity\"\n        data-user-card={{@ctx.user.username}}\n      >\n        {{avatar @ctx.user imageSize=\"tiny\"}}\n        {{@ctx.user.username}}\n      </a>\n    {{else}}\n      {{@ctx.id}}\n    {{/if}}\n  \n  */\n  {\n    \"id\": \"0ZJLHHjF\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"user\\\"]],[[[1,\\\"    \\\"],[10,3],[15,6,[29,[[30,1,[\\\"baseuri\\\"]],\\\"/u/\\\",[30,1,[\\\"user\\\",\\\"username\\\"]],\\\"/activity\\\"]]],[15,\\\"data-user-card\\\",[30,1,[\\\"user\\\",\\\"username\\\"]]],[12],[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[[30,1,[\\\"user\\\"]]],[[\\\"imageSize\\\"],[\\\"tiny\\\"]]]],[1,\\\"\\\\n      \\\"],[1,[30,1,[\\\"user\\\",\\\"username\\\"]]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[1,[30,1,[\\\"id\\\"]]],[1,\\\"\\\\n\\\"]],[]]]],[\\\"@ctx\\\"],[\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/result-types/user.js\",\n    \"scope\": () => [_avatar.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"user:User\"));\n  var _default = _exports.default = User;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/components/share-report\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/modifier\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/render-modifiers/modifiers/will-destroy\", \"discourse/components/d-button\", \"discourse/helpers/d-icon\", \"discourse/lib/decorators\", \"discourse/lib/get-url\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _modifier, _object, _didInsert, _willDestroy, _dButton, _dIcon, _decorators, _getUrl, _discourseI18n, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class ShareReport extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"visible\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #visible = (dt7948.i(this, \"visible\"), void 0);\n    element;\n    get link() {\n      return (0, _getUrl.default)(`/g/${this.args.group}/reports/${this.args.query.id}`);\n    }\n    mouseDownHandler(e) {\n      if (!this.element.contains(e.target)) {\n        this.close();\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"mouseDownHandler\", [_decorators.bind]);\n    }\n    keyDownHandler(e) {\n      if (e.keyCode === 27) {\n        this.close();\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"keyDownHandler\", [_decorators.bind]);\n    }\n    registerListeners(element) {\n      if (!element || this.isDestroying || this.isDestroyed) {\n        return;\n      }\n      this.element = element;\n      document.addEventListener(\"mousedown\", this.mouseDownHandler);\n      element.addEventListener(\"keydown\", this.keyDownHandler);\n    }\n    static {\n      dt7948.n(this.prototype, \"registerListeners\", [_object.action]);\n    }\n    unregisterListeners(element) {\n      this.element = element;\n      document.removeEventListener(\"mousedown\", this.mouseDownHandler);\n      element.removeEventListener(\"keydown\", this.keyDownHandler);\n    }\n    static {\n      dt7948.n(this.prototype, \"unregisterListeners\", [_object.action]);\n    }\n    focusInput(e) {\n      e.select();\n      e.focus();\n    }\n    static {\n      dt7948.n(this.prototype, \"focusInput\", [_object.action]);\n    }\n    open(e) {\n      e.preventDefault();\n      this.visible = true;\n    }\n    static {\n      dt7948.n(this.prototype, \"open\", [_object.action]);\n    }\n    close() {\n      this.visible = false;\n    }\n    static {\n      dt7948.n(this.prototype, \"close\", [_object.action]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <div class=\"share-report\">\n            <a href=\"#\" {{on \"click\" this.open}} class=\"share-report-button\">\n              {{icon \"link\"}}\n              {{@group}}\n            </a>\n      \n            {{#if this.visible}}\n              <div\n                class=\"popup\"\n                {{didInsert this.registerListeners}}\n                {{willDestroy this.unregisterListeners}}\n              >\n                <label>{{i18n \"explorer.link\"}} {{@group}}</label>\n                <input\n                  type=\"text\"\n                  value={{this.link}}\n                  {{didInsert this.focusInput}}\n                />\n      \n                <DButton\n                  @action={{this.close}}\n                  @icon=\"xmark\"\n                  @aria-label=\"share.close\"\n                  @title=\"share.close\"\n                  class=\"btn-flat close\"\n                />\n              </div>\n            {{/if}}\n          </div>\n        \n      */\n      {\n        \"id\": \"12tpRDL4\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"share-report\\\"],[12],[1,\\\"\\\\n      \\\"],[11,3],[24,6,\\\"#\\\"],[24,0,\\\"share-report-button\\\"],[4,[32,0],[\\\"click\\\",[30,0,[\\\"open\\\"]]],null],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,1],[\\\"link\\\"],null]],[1,\\\"\\\\n        \\\"],[1,[30,1]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"visible\\\"]],[[[1,\\\"        \\\"],[11,0],[24,0,\\\"popup\\\"],[4,[32,2],[[30,0,[\\\"registerListeners\\\"]]],null],[4,[32,3],[[30,0,[\\\"unregisterListeners\\\"]]],null],[12],[1,\\\"\\\\n          \\\"],[10,\\\"label\\\"],[12],[1,[28,[32,4],[\\\"explorer.link\\\"],null]],[1,\\\" \\\"],[1,[30,1]],[13],[1,\\\"\\\\n          \\\"],[11,\\\"input\\\"],[16,2,[30,0,[\\\"link\\\"]]],[24,4,\\\"text\\\"],[4,[32,2],[[30,0,[\\\"focusInput\\\"]]],null],[12],[13],[1,\\\"\\\\n\\\\n          \\\"],[8,[32,5],[[24,0,\\\"btn-flat close\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@aria-label\\\",\\\"@title\\\"],[[30,0,[\\\"close\\\"]],\\\"xmark\\\",\\\"share.close\\\",\\\"share.close\\\"]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@group\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/components/share-report.js\",\n        \"scope\": () => [_modifier.on, _dIcon.default, _didInsert.default, _willDestroy.default, _discourseI18n.i18n, _dButton.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = ShareReport;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/connectors/group-reports-nav-item/nav-item\", [\"exports\", \"@ember/component\", \"@ember/routing\", \"@ember-decorators/component\", \"discourse/helpers/d-icon\", \"discourse-i18n\", \"@ember/template-factory\"], function (_exports, _component, _routing, _component2, _dIcon, _discourseI18n, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const NavItem = dt7948.c(class NavItem extends _component.default {\n    static shouldRender(args) {\n      return args.group.has_visible_data_explorer_queries;\n    }\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        \n          <LinkTo @route=\"group.reports\">\n            {{icon \"chart-bar\"}}{{i18n \"group.reports\"}}\n          </LinkTo>\n        \n      */\n      {\n        \"id\": \"7BpYvDaT\",\n        \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],null,[[\\\"@route\\\"],[\\\"group.reports\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[1,[28,[32,1],[\\\"chart-bar\\\"],null]],[1,[28,[32,2],[\\\"group.reports\\\"],null]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/connectors/group-reports-nav-item/nav-item.js\",\n        \"scope\": () => [_routing.LinkTo, _dIcon.default, _discourseI18n.i18n],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component2.classNames)(\"group-reports-nav-item-outlet\", \"nav-item\"), (0, _component2.tagName)(\"li\")]);\n  var _default = _exports.default = NavItem;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/controllers/admin-plugins/explorer\", [\"exports\", \"@ember/controller\"], function (_exports, _controller) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class _default extends _controller.default {}\n  _exports.default = _default;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/controllers/admin-plugins/explorer/index\", [\"exports\", \"@glimmer/tracking\", \"@ember/controller\", \"@ember/object\", \"@ember/service\", \"@ember/utils\", \"rsvp\", \"discourse/lib/ajax-error\", \"discourse/lib/decorators\", \"discourse-i18n\"], function (_exports, _tracking, _controller, _object, _service, _utils, _rsvp, _ajaxError, _decorators, _discourseI18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PluginsExplorerController extends _controller.default {\n    static {\n      dt7948.g(this.prototype, \"dialog\", [_service.service]);\n    }\n    #dialog = (dt7948.i(this, \"dialog\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"appEvents\", [_service.service]);\n    }\n    #appEvents = (dt7948.i(this, \"appEvents\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"sortByProperty\", [_tracking.tracked], function () {\n        return \"last_run_at\";\n      });\n    }\n    #sortByProperty = (dt7948.i(this, \"sortByProperty\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"sortDescending\", [_tracking.tracked], function () {\n        return true;\n      });\n    }\n    #sortDescending = (dt7948.i(this, \"sortDescending\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"params\", [_tracking.tracked]);\n    }\n    #params = (dt7948.i(this, \"params\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"search\", [_tracking.tracked]);\n    }\n    #search = (dt7948.i(this, \"search\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"newQueryName\", [_tracking.tracked]);\n    }\n    #newQueryName = (dt7948.i(this, \"newQueryName\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"showCreate\", [_tracking.tracked]);\n    }\n    #showCreate = (dt7948.i(this, \"showCreate\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"loading\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #loading = (dt7948.i(this, \"loading\"), void 0);\n    queryParams = [\"id\"];\n    explain = false;\n    acceptedImportFileTypes = [\"application/json\"];\n    order = null;\n    form = null;\n    get sortedQueries() {\n      const sortedQueries = this.model.content.toSorted((a, b) => (0, _utils.compare)(a?.[this.sortByProperty], b?.[this.sortByProperty]));\n      return this.sortDescending ? sortedQueries.reverse() : sortedQueries;\n    }\n    get parsedParams() {\n      return this.params ? JSON.parse(this.params) : null;\n    }\n    get filteredContent() {\n      const regexp = new RegExp(this.search, \"i\");\n      return this.sortedQueries.filter(result => regexp.test(result.name) || regexp.test(result.description));\n    }\n    get createDisabled() {\n      return (this.newQueryName || \"\").trim().length === 0;\n    }\n    addCreatedRecord(record) {\n      this.model.content.push(record);\n      this.router.transitionTo(\"adminPlugins.explorer.queries.details\", record.id);\n    }\n    async _importQuery(file) {\n      const json = await this._readFileAsTextAsync(file);\n      const query = this._parseQuery(json);\n      const record = this.store.createRecord(\"query\", query);\n      const response = await record.save();\n      return response.target;\n    }\n    _parseQuery(json) {\n      const parsed = JSON.parse(json);\n      const query = parsed.query;\n      if (!query || !query.sql) {\n        throw new TypeError();\n      }\n      query.id = 0; // 0 means no Id yet\n      return query;\n    }\n    _readFileAsTextAsync(file) {\n      return new _rsvp.Promise((resolve, reject) => {\n        const reader = new FileReader();\n        reader.onload = () => {\n          resolve(reader.result);\n        };\n        reader.onerror = reject;\n        reader.readAsText(file);\n      });\n    }\n    dragMove(e) {\n      if (!e.movementY && !e.movementX) {\n        return;\n      }\n      const editPane = document.querySelector(\".query-editor\");\n      const target = editPane.querySelector(\".panels-flex\");\n      const grippie = editPane.querySelector(\".grippie\");\n\n      // we need to get the initial height / width of edit pane\n      // before we manipulate the size\n      if (!this.initialPaneWidth && !this.originalPaneHeight) {\n        this.originalPaneWidth = target.clientWidth;\n        this.originalPaneHeight = target.clientHeight;\n      }\n      const newHeight = Math.max(this.originalPaneHeight, target.clientHeight + e.movementY);\n      const newWidth = Math.max(this.originalPaneWidth, target.clientWidth + e.movementX);\n      target.style.height = newHeight + \"px\";\n      target.style.width = newWidth + \"px\";\n      grippie.style.width = newWidth + \"px\";\n      this.appEvents.trigger(\"ace:resize\");\n    }\n    static {\n      dt7948.n(this.prototype, \"dragMove\", [_decorators.bind]);\n    }\n    scrollTop() {\n      window.scrollTo(0, 0);\n    }\n    static {\n      dt7948.n(this.prototype, \"scrollTop\", [_decorators.bind]);\n    }\n    async import(files) {\n      try {\n        this.loading = true;\n        const file = files[0];\n        const record = await this._importQuery(file);\n        this.addCreatedRecord(record);\n      } catch (e) {\n        if (e.jqXHR) {\n          (0, _ajaxError.popupAjaxError)(e);\n        } else if (e instanceof SyntaxError) {\n          this.dialog.alert((0, _discourseI18n.i18n)(\"explorer.import.unparseable_json\"));\n        } else if (e instanceof TypeError) {\n          this.dialog.alert((0, _discourseI18n.i18n)(\"explorer.import.wrong_json\"));\n        } else {\n          this.dialog.alert((0, _discourseI18n.i18n)(\"errors.desc.unknown\"));\n          // eslint-disable-next-line no-console\n          console.error(e);\n        }\n      } finally {\n        this.loading = false;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"import\", [_object.action]);\n    }\n    displayCreate() {\n      this.showCreate = true;\n    }\n    static {\n      dt7948.n(this.prototype, \"displayCreate\", [_object.action]);\n    }\n    updateSortProperty(property) {\n      if (this.sortByProperty === property) {\n        this.sortDescending = !this.sortDescending;\n      } else {\n        this.sortByProperty = property;\n        this.sortDescending = true;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"updateSortProperty\", [_object.action]);\n    }\n    async create() {\n      try {\n        const name = this.newQueryName.trim();\n        this.loading = true;\n        this.showCreate = false;\n        const result = await this.store.createRecord(\"query\", {\n          name\n        }).save();\n        this.addCreatedRecord(result.target);\n      } catch (error) {\n        (0, _ajaxError.popupAjaxError)(error);\n      } finally {\n        this.loading = false;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"create\", [_object.action]);\n    }\n    updateSearch(value) {\n      this.search = value;\n    }\n    static {\n      dt7948.n(this.prototype, \"updateSearch\", [_object.action]);\n    }\n    updateNewQueryName(value) {\n      this.newQueryName = value;\n    }\n    static {\n      dt7948.n(this.prototype, \"updateNewQueryName\", [_object.action]);\n    }\n  }\n  _exports.default = PluginsExplorerController;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/controllers/admin-plugins/explorer/queries/details\", [\"exports\", \"@glimmer/tracking\", \"@ember/controller\", \"@ember/object\", \"@ember/service\", \"rsvp\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/constants\", \"discourse/lib/decorators\", \"discourse/plugins/discourse-data-explorer/discourse/components/modal/query-help\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input-form\", \"discourse/plugins/discourse-data-explorer/discourse/models/query\"], function (_exports, _tracking, _controller, _object, _service, _rsvp, _ajax, _ajaxError, _constants, _decorators, _queryHelp, _paramInputForm, _query) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PluginsExplorerController extends _controller.default {\n    static {\n      dt7948.g(this.prototype, \"modal\", [_service.service]);\n    }\n    #modal = (dt7948.i(this, \"modal\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"appEvents\", [_service.service]);\n    }\n    #appEvents = (dt7948.i(this, \"appEvents\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"params\", [_tracking.tracked]);\n    }\n    #params = (dt7948.i(this, \"params\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"editingName\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #editingName = (dt7948.i(this, \"editingName\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"editingQuery\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #editingQuery = (dt7948.i(this, \"editingQuery\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"loading\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #loading = (dt7948.i(this, \"loading\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"showResults\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #showResults = (dt7948.i(this, \"showResults\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"hideSchema\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #hideSchema = (dt7948.i(this, \"hideSchema\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"results\", [_tracking.tracked], function () {\n        return this.model.results;\n      });\n    }\n    #results = (dt7948.i(this, \"results\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"dirty\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #dirty = (dt7948.i(this, \"dirty\"), void 0);\n    queryParams = [\"params\"];\n    explain = false;\n    order = null;\n    form = null;\n    shouldAutoRun = false;\n    get saveDisabled() {\n      return !this.dirty;\n    }\n    get runDisabled() {\n      return this.dirty;\n    }\n    get parsedParams() {\n      return this.params ? JSON.parse(this.params) : null;\n    }\n    get editDisabled() {\n      return parseInt(this.model.id, 10) < 0 ? true : false;\n    }\n    get groupOptions() {\n      return this.groups.filter(g => g.id !== _constants.AUTO_GROUPS.everyone.id).map(g => {\n        return {\n          id: g.id,\n          name: g.name\n        };\n      });\n    }\n    async save() {\n      try {\n        this.loading = true;\n        await this.model.save();\n        this.dirty = false;\n        this.editingName = false;\n      } catch (error) {\n        (0, _ajaxError.popupAjaxError)(error);\n        throw error;\n      } finally {\n        this.loading = false;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"save\", [_object.action]);\n    }\n    saveAndRun() {\n      this.save().then(() => this.run());\n    }\n    static {\n      dt7948.n(this.prototype, \"saveAndRun\", [_object.action]);\n    }\n    async _importQuery(file) {\n      const json = await this._readFileAsTextAsync(file);\n      const query = this._parseQuery(json);\n      const record = this.store.createRecord(\"query\", query);\n      const response = await record.save();\n      return response.target;\n    }\n    _parseQuery(json) {\n      const parsed = JSON.parse(json);\n      const query = parsed.query;\n      if (!query || !query.sql) {\n        throw new TypeError();\n      }\n      query.id = 0; // 0 means no Id yet\n      return query;\n    }\n    _readFileAsTextAsync(file) {\n      return new _rsvp.Promise((resolve, reject) => {\n        const reader = new FileReader();\n        reader.onload = () => {\n          resolve(reader.result);\n        };\n        reader.onerror = reject;\n        reader.readAsText(file);\n      });\n    }\n    dragMove(e) {\n      if (!e.movementY && !e.movementX) {\n        return;\n      }\n      const editPane = document.querySelector(\".query-editor\");\n      const target = editPane.querySelector(\".panels-flex\");\n      const grippie = editPane.querySelector(\".grippie\");\n\n      // we need to get the initial height / width of edit pane\n      // before we manipulate the size\n      if (!this.initialPaneWidth && !this.originalPaneHeight) {\n        this.originalPaneWidth = target.clientWidth;\n        this.originalPaneHeight = target.clientHeight;\n      }\n      const newHeight = Math.max(this.originalPaneHeight, target.clientHeight + e.movementY);\n      const newWidth = Math.max(this.originalPaneWidth, target.clientWidth + e.movementX);\n      target.style.height = newHeight + \"px\";\n      target.style.width = newWidth + \"px\";\n      grippie.style.width = newWidth + \"px\";\n      this.appEvents.trigger(\"ace:resize\");\n    }\n    static {\n      dt7948.n(this.prototype, \"dragMove\", [_decorators.bind]);\n    }\n    didStartDrag() {}\n    static {\n      dt7948.n(this.prototype, \"didStartDrag\", [_decorators.bind]);\n    }\n    didEndDrag() {}\n    static {\n      dt7948.n(this.prototype, \"didEndDrag\", [_decorators.bind]);\n    }\n    updateGroupIds(value) {\n      this.dirty = true;\n      this.model.set(\"group_ids\", value);\n    }\n    static {\n      dt7948.n(this.prototype, \"updateGroupIds\", [_object.action]);\n    }\n    updateHideSchema(value) {\n      this.hideSchema = value;\n    }\n    static {\n      dt7948.n(this.prototype, \"updateHideSchema\", [_object.action]);\n    }\n    editName() {\n      this.editingName = true;\n    }\n    static {\n      dt7948.n(this.prototype, \"editName\", [_object.action]);\n    }\n    editQuery() {\n      this.editingQuery = true;\n    }\n    static {\n      dt7948.n(this.prototype, \"editQuery\", [_object.action]);\n    }\n    download() {\n      window.open(this.model.downloadUrl, \"_blank\");\n    }\n    static {\n      dt7948.n(this.prototype, \"download\", [_object.action]);\n    }\n    goHome() {\n      this.router.transitionTo(\"adminPlugins.explorer\");\n    }\n    static {\n      dt7948.n(this.prototype, \"goHome\", [_object.action]);\n    }\n    showHelpModal() {\n      this.modal.show(_queryHelp.default);\n    }\n    static {\n      dt7948.n(this.prototype, \"showHelpModal\", [_object.action]);\n    }\n    resetParams() {\n      this.model.resetParams();\n    }\n    static {\n      dt7948.n(this.prototype, \"resetParams\", [_object.action]);\n    }\n    async discard() {\n      try {\n        this.loading = true;\n        const result = await this.store.find(\"query\", this.model.id);\n        this.model.setProperties(result.getProperties(_query.default.updatePropertyNames));\n        if (!this.model.group_ids || !Array.isArray(this.model.group_ids)) {\n          this.model.set(\"group_ids\", []);\n        }\n        this.dirty = false;\n      } catch (error) {\n        (0, _ajaxError.popupAjaxError)(error);\n      } finally {\n        this.loading = false;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"discard\", [_object.action]);\n    }\n    async destroyQuery() {\n      try {\n        this.loading = true;\n        this.showResults = false;\n        await this.store.destroyRecord(\"query\", this.model);\n        this.model.set(\"destroyed\", true);\n      } catch (error) {\n        (0, _ajaxError.popupAjaxError)(error);\n      } finally {\n        this.loading = false;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"destroyQuery\", [_object.action]);\n    }\n    async recover() {\n      try {\n        this.loading = true;\n        this.showResults = true;\n        await this.model.save();\n        this.model.set(\"destroyed\", false);\n      } catch (error) {\n        (0, _ajaxError.popupAjaxError)(error);\n      } finally {\n        this.loading = false;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"recover\", [_object.action]);\n    }\n    onRegisterApi(form) {\n      this.form = form;\n    }\n    static {\n      dt7948.n(this.prototype, \"onRegisterApi\", [_object.action]);\n    }\n    setDirty() {\n      this.dirty = true;\n    }\n    static {\n      dt7948.n(this.prototype, \"setDirty\", [_object.action]);\n    }\n    exitEdit() {\n      this.editingName = false;\n    }\n    static {\n      dt7948.n(this.prototype, \"exitEdit\", [_object.action]);\n    }\n    async run() {\n      let params = null;\n      if (this.model.hasParams) {\n        try {\n          params = await this.form?.submit();\n        } catch (err) {\n          if (err instanceof _paramInputForm.ParamValidationError) {\n            return;\n          }\n        }\n        if (params == null) {\n          return;\n        }\n      }\n      this.setProperties({\n        loading: true,\n        showResults: false,\n        params: JSON.stringify(params)\n      });\n      (0, _ajax.ajax)(\"/admin/plugins/explorer/queries/\" + this.model.id + \"/run\", {\n        type: \"POST\",\n        data: {\n          params: JSON.stringify(params),\n          explain: this.explain\n        }\n      }).then(result => {\n        this.results = result;\n        if (!result.success) {\n          this.showResults = false;\n          return;\n        }\n        this.showResults = true;\n      }).catch(err => {\n        this.showResults = false;\n        if (err.jqXHR && err.jqXHR.status === 422 && err.jqXHR.responseJSON) {\n          this.results = err.jqXHR.responseJSON;\n        } else {\n          (0, _ajaxError.popupAjaxError)(err);\n        }\n      }).finally(() => this.loading = false);\n    }\n    static {\n      dt7948.n(this.prototype, \"run\", [_object.action]);\n    }\n    runOnLoad() {\n      if (this.shouldAutoRun) {\n        this.run();\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"runOnLoad\", [_object.action]);\n    }\n  }\n  _exports.default = PluginsExplorerController;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/controllers/group/reports\", [\"exports\", \"@ember/controller\"], function (_exports, _controller) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class _default extends _controller.default {}\n  _exports.default = _default;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/controllers/group/reports/index\", [\"exports\", \"@ember/controller\"], function (_exports, _controller) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class GroupReportsIndexController extends _controller.default {}\n  _exports.default = GroupReportsIndexController;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/controllers/group/reports/show\", [\"exports\", \"@glimmer/tracking\", \"@ember/controller\", \"@ember/object\", \"@ember/service\", \"discourse/components/modal/bookmark\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/bookmark-form-data\", \"discourse/lib/decorators\", \"discourse/models/bookmark\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input-form\"], function (_exports, _tracking, _controller, _object, _service, _bookmark, _ajax, _ajaxError, _bookmarkFormData, _decorators, _bookmark2, _paramInputForm) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class GroupReportsShowController extends _controller.default {\n    static {\n      dt7948.g(this.prototype, \"currentUser\", [_service.service]);\n    }\n    #currentUser = (dt7948.i(this, \"currentUser\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"modal\", [_service.service]);\n    }\n    #modal = (dt7948.i(this, \"modal\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"showResults\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #showResults = (dt7948.i(this, \"showResults\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"loading\", [_tracking.tracked], function () {\n        return false;\n      });\n    }\n    #loading = (dt7948.i(this, \"loading\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"results\", [_tracking.tracked], function () {\n        return this.model.results;\n      });\n    }\n    #results = (dt7948.i(this, \"results\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"queryGroupBookmark\", [_tracking.tracked], function () {\n        return this.queryGroup?.bookmark;\n      });\n    }\n    #queryGroupBookmark = (dt7948.i(this, \"queryGroupBookmark\"), void 0);\n    shouldAutoRun = false;\n    queryParams = [\"params\"];\n    form = null;\n    explain = false;\n    get parsedParams() {\n      return this.params ? JSON.parse(this.params) : null;\n    }\n    get hasParams() {\n      return this.model.param_info.length > 0;\n    }\n    get bookmarkLabel() {\n      return this.queryGroupBookmark ? \"bookmarked.edit_bookmark\" : \"bookmarked.title\";\n    }\n    get bookmarkIcon() {\n      if (this.queryGroupBookmark && this.queryGroupBookmark.reminder_at) {\n        return _bookmark2.WITH_REMINDER_ICON;\n      }\n      return _bookmark2.NO_REMINDER_ICON;\n    }\n    get bookmarkClassName() {\n      return this.queryGroupBookmark ? [\"query-group-bookmark\", \"bookmarked\"].join(\" \") : \"query-group-bookmark\";\n    }\n    async run() {\n      try {\n        let params = null;\n        if (this.hasParams) {\n          params = await this.form.submit();\n          if (params == null) {\n            return;\n          }\n        }\n        this.loading = true;\n        this.showResults = false;\n        const stringifiedParams = JSON.stringify(params);\n        this.router.transitionTo({\n          queryParams: {\n            params: params ? stringifiedParams : null\n          }\n        });\n        const response = await (0, _ajax.ajax)(`/g/${this.get(\"group.name\")}/reports/${this.model.id}/run`, {\n          type: \"POST\",\n          data: {\n            params: stringifiedParams,\n            explain: this.explain\n          }\n        });\n        this.results = response;\n        if (!response.success) {\n          return;\n        }\n        this.showResults = true;\n      } catch (error) {\n        if (error.jqXHR?.status === 422 && error.jqXHR.responseJSON) {\n          this.results = error.jqXHR.responseJSON;\n        } else if (!(error instanceof _paramInputForm.ParamValidationError)) {\n          (0, _ajaxError.popupAjaxError)(error);\n        }\n      } finally {\n        this.loading = false;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"run\", [_decorators.bind]);\n    }\n    toggleBookmark() {\n      const modalBookmark = this.queryGroupBookmark || this.store.createRecord(\"bookmark\", {\n        bookmarkable_type: \"DiscourseDataExplorer::QueryGroup\",\n        bookmarkable_id: this.queryGroup.id,\n        user_id: this.currentUser.id\n      });\n      return this.modal.show(_bookmark.default, {\n        model: {\n          bookmark: new _bookmarkFormData.BookmarkFormData(modalBookmark),\n          afterSave: bookmarkFormData => {\n            const bookmark = this.store.createRecord(\"bookmark\", bookmarkFormData.saveData);\n            this.queryGroupBookmark = bookmark;\n            this.appEvents.trigger(\"bookmarks:changed\", bookmarkFormData.saveData, bookmark.attachedTo());\n          },\n          afterDelete: () => {\n            this.queryGroupBookmark = null;\n          }\n        }\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"toggleBookmark\", [_object.action]);\n    }\n    onRegisterApi(form) {\n      this.form = form;\n    }\n    static {\n      dt7948.n(this.prototype, \"onRegisterApi\", [_object.action]);\n    }\n    runOnLoad() {\n      if (this.shouldAutoRun) {\n        this.run();\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"runOnLoad\", [_object.action]);\n    }\n  }\n  _exports.default = GroupReportsShowController;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/explorer-route-map\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    resource: \"admin.adminPlugins\",\n    path: \"/plugins\",\n    map() {\n      this.route(\"explorer\", function () {\n        this.route(\"queries\", function () {\n          this.route(\"details\", {\n            path: \"/:query_id\"\n          });\n        });\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/group-reports-route-map\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    resource: \"group\",\n    map() {\n      this.route(\"reports\", function () {\n        this.route(\"show\", {\n          path: \"/:query_id\"\n        });\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/initializers/data-explorer-admin-plugin-configuration-nav\", [\"exports\", \"discourse/lib/plugin-api\"], function (_exports, _pluginApi) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PLUGIN_ID = \"discourse-data-explorer\";\n  var _default = _exports.default = {\n    name: \"data-explorer-admin-plugin-configuration-nav\",\n    initialize(container) {\n      const currentUser = container.lookup(\"service:current-user\");\n      if (!currentUser?.admin) {\n        return;\n      }\n      (0, _pluginApi.withPluginApi)(api => {\n        api.setAdminPluginIcon(PLUGIN_ID, \"chart-line\");\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/initializers/initialize-data-explorer\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    name: \"initialize-data-explorer\",\n    initialize(container) {\n      container.lookup(\"service:store\").addPluralization(\"query\", \"queries\");\n    }\n  };\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/lib/themeColor\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = themeColor;\n  function themeColor(name) {\n    const style = getComputedStyle(document.body);\n    return style.getPropertyValue(name);\n  }\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/models/query\", [\"exports\", \"@ember/object\", \"discourse/lib/get-url\", \"discourse/models/rest\"], function (_exports, _object, _getUrl, _rest) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class Query extends _rest.default {\n    static updatePropertyNames = [\"name\", \"description\", \"sql\", \"user_id\", \"created_at\", \"group_ids\", \"last_run_at\"];\n    params = {};\n    constructor() {\n      super(...arguments);\n      this.param_info?.resetParams();\n    }\n    get downloadUrl() {\n      return (0, _getUrl.default)(`/admin/plugins/explorer/queries/${this.id}.json?export=1`);\n    }\n    get hasParams() {\n      // When saving, we need to refresh the param-input component to clean up the old key\n      return this.param_info.length && !this.updating;\n    }\n    static {\n      dt7948.n(this.prototype, \"hasParams\", [(0, _object.computed)(\"param_info\", \"updating\")]);\n    }\n    beforeUpdate() {\n      this.set(\"updating\", true);\n    }\n    afterUpdate() {\n      this.set(\"updating\", false);\n    }\n    resetParams() {\n      const newParams = {};\n      const oldParams = this.params;\n      this.param_info.forEach(pinfo => {\n        const name = pinfo.identifier;\n        if (oldParams[pinfo.identifier]) {\n          newParams[name] = oldParams[name];\n        } else if (pinfo[\"default\"] !== null) {\n          newParams[name] = pinfo[\"default\"];\n        } else if (pinfo[\"type\"] === \"boolean\") {\n          newParams[name] = \"false\";\n        } else if (pinfo[\"type\"] === \"user_id\") {\n          newParams[name] = null;\n        } else if (pinfo[\"type\"] === \"user_list\") {\n          newParams[name] = null;\n        } else if (pinfo[\"type\"] === \"group_list\") {\n          newParams[name] = null;\n        } else {\n          newParams[name] = \"\";\n        }\n      });\n      this.params = newParams;\n    }\n    updateProperties() {\n      const props = this.getProperties(Query.updatePropertyNames);\n      if (this.destroyed) {\n        props.id = this.id;\n      }\n      return props;\n    }\n    createProperties() {\n      if (this.sql) {\n        // Importing\n        return this.updateProperties();\n      }\n      return this.getProperties(\"name\");\n    }\n  }\n  _exports.default = Query;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/routes/admin-plugins/explorer\", [\"exports\", \"@ember/routing/route\"], function (_exports, _route) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class _default extends _route.default {}\n  _exports.default = _default;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/routes/admin-plugins/explorer/index\", [\"exports\", \"@ember/service\", \"discourse/lib/ajax\", \"discourse/routes/discourse\"], function (_exports, _service, _ajax, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class AdminPluginsExplorerIndex extends _discourse.default {\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    beforeModel(transition) {\n      // Redirect old /explorer?id=123 route to /explorer/queries/123\n      if (transition.to.queryParams.id) {\n        this.router.transitionTo(\"adminPlugins.explorer.queries.details\", transition.to.queryParams.id);\n      }\n    }\n    model() {\n      if (!this.currentUser.admin) {\n        // display \"Only available to admins\" message\n        return {\n          model: null,\n          schema: null,\n          disallow: true,\n          groups: null\n        };\n      }\n      const groupPromise = (0, _ajax.ajax)(\"/admin/plugins/explorer/groups.json\");\n      const queryPromise = this.store.findAll(\"query\");\n      return groupPromise.then(groups => {\n        let groupNames = {};\n        groups.forEach(g => {\n          groupNames[g.id] = g.name;\n        });\n        return queryPromise.then(model => {\n          model.content.forEach(query => {\n            query.set(\"group_names\", (query.group_ids || []).map(id => groupNames[id]));\n          });\n          return {\n            model,\n            groups\n          };\n        });\n      });\n    }\n    setupController(controller, model) {\n      controller.setProperties(model);\n    }\n  }\n  _exports.default = AdminPluginsExplorerIndex;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/routes/admin-plugins/explorer/queries/details\", [\"exports\", \"discourse/lib/ajax\", \"discourse/routes/discourse\"], function (_exports, _ajax, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class AdminPluginsExplorerQueriesDetails extends _discourse.default {\n    queryParams = {\n      autoRun: {\n        as: \"run\",\n        refreshModel: false\n      }\n    };\n    model(params) {\n      if (!this.currentUser.admin) {\n        // display \"Only available to admins\" message\n        return {\n          model: null,\n          schema: null,\n          disallow: true,\n          groups: null\n        };\n      }\n      const groupPromise = (0, _ajax.ajax)(\"/admin/plugins/explorer/groups.json\");\n      const schemaPromise = (0, _ajax.ajax)(\"/admin/plugins/explorer/schema.json\", {\n        cache: true\n      });\n      const queryPromise = this.store.find(\"query\", params.query_id);\n      return groupPromise.then(groups => {\n        let groupNames = {};\n        groups.forEach(g => {\n          groupNames[g.id] = g.name;\n        });\n        return schemaPromise.then(schema => {\n          return queryPromise.then(model => {\n            model.set(\"group_names\", (model.group_ids || []).map(id => groupNames[id]));\n            return {\n              model,\n              schema,\n              groups\n            };\n          });\n        });\n      });\n    }\n    setupController(controller, model, transition) {\n      controller.setProperties({\n        ...model,\n        shouldAutoRun: !!transition.to.queryParams.run\n      });\n    }\n  }\n  _exports.default = AdminPluginsExplorerQueriesDetails;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/routes/group/reports\", [\"exports\", \"@ember/routing/route\"], function (_exports, _route) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class _default extends _route.default {}\n  _exports.default = _default;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/routes/group/reports/index\", [\"exports\", \"@ember/service\", \"discourse/lib/ajax\", \"discourse/routes/discourse\"], function (_exports, _service, _ajax, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class GroupReportsIndexRoute extends _discourse.default {\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    model() {\n      const group = this.modelFor(\"group\");\n      return (0, _ajax.ajax)(`/g/${group.name}/reports`).then(queries => {\n        return {\n          model: queries,\n          group\n        };\n      }).catch(() => this.router.transitionTo(\"group.members\", group));\n    }\n    afterModel(model) {\n      if (!model.group.get(\"is_group_user\") && !(this.currentUser && this.currentUser.admin)) {\n        this.router.transitionTo(\"group.members\", model.group);\n      }\n    }\n    setupController(controller, model) {\n      controller.setProperties(model);\n    }\n  }\n  _exports.default = GroupReportsIndexRoute;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/routes/group/reports/show\", [\"exports\", \"@ember/service\", \"discourse/lib/ajax\", \"discourse/routes/discourse\"], function (_exports, _service, _ajax, _discourse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class GroupReportsShowRoute extends _discourse.default {\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    queryParams = {\n      autoRun: {\n        as: \"run\",\n        refreshModel: false\n      }\n    };\n    model(params) {\n      const group = this.modelFor(\"group\");\n      return (0, _ajax.ajax)(`/g/${group.name}/reports/${params.query_id}`).then(response => {\n        const query = response.query;\n        const queryGroup = response.query_group;\n        const queryParamInfo = query.param_info;\n        const queryParams = queryParamInfo.reduce((acc, param) => {\n          acc[param.identifier] = param.default;\n          return acc;\n        }, {});\n        return {\n          model: Object.assign({\n            params: queryParams\n          }, query),\n          group,\n          queryGroup,\n          results: null,\n          showResults: false\n        };\n      }).catch(() => {\n        this.router.transitionTo(\"group.members\", group);\n      });\n    }\n    setupController(controller, model, transition) {\n      controller.setProperties({\n        ...model,\n        shouldAutoRun: !!transition.to.queryParams.run\n      });\n    }\n  }\n  _exports.default = GroupReportsShowRoute;\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/templates/admin-plugins/explorer/index\", [\"exports\", \"@ember/helper\", \"@ember/modifier\", \"discourse/components/conditional-loading-spinner\", \"discourse/components/d-button\", \"discourse/components/pick-files-button\", \"discourse/components/table-header-toggle\", \"discourse/components/text-field\", \"discourse/helpers/age-with-tooltip\", \"discourse/helpers/d-icon\", \"discourse/truth-helpers\", \"discourse-i18n\", \"discourse/plugins/discourse-data-explorer/discourse/components/share-report\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _helper, _modifier, _conditionalLoadingSpinner, _dButton, _pickFilesButton, _tableHeaderToggle, _textField, _ageWithTooltip, _dIcon, _truthHelpers, _discourseI18n, _shareReport, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{#if @controller.disallow}}\n      <h1>{{i18n \"explorer.admins_only\"}}</h1>\n    {{else}}\n      <div class=\"query-list\">\n        <TextField\n          @value={{@controller.search}}\n          @placeholderKey=\"explorer.search_placeholder\"\n          @onChange={{@controller.updateSearch}}\n        />\n        <DButton\n          @action={{@controller.displayCreate}}\n          @icon=\"plus\"\n          class=\"no-text btn-right\"\n        />\n        <PickFilesButton\n          @label=\"explorer.import.label\"\n          @icon=\"upload\"\n          @acceptedFormatsOverride={{@controller.acceptedImportFileTypes}}\n          @showButton=\"true\"\n          @onFilesPicked={{@controller.import}}\n          class=\"import-btn\"\n        />\n      </div>\n  \n      {{#if @controller.showCreate}}\n        <div class=\"query-create\">\n          <TextField\n            @value={{@controller.newQueryName}}\n            @placeholderKey=\"explorer.create_placeholder\"\n            @onChange={{@controller.updateNewQueryName}}\n          />\n          <DButton\n            @action={{@controller.create}}\n            @disabled={{@controller.createDisabled}}\n            @label=\"explorer.create\"\n            @icon=\"plus\"\n          />\n        </div>\n      {{/if}}\n  \n      {{#if @controller.othersDirty}}\n        <div class=\"warning\">\n          {{icon \"triangle-exclamation\"}}\n          {{i18n \"explorer.others_dirty\"}}\n        </div>\n      {{/if}}\n  \n      {{#if @controller.model.content.length}}\n        <ConditionalLoadingSpinner @condition={{@controller.loading}} />\n  \n        <div class=\"container\">\n          <table class=\"d-admin-table recent-queries\">\n            <thead class=\"heading-container\">\n              <th class=\"col heading name\">\n                <div\n                  role=\"button\"\n                  class=\"heading-toggle\"\n                  {{on \"click\" (fn @controller.updateSortProperty \"name\")}}\n                >\n                  <TableHeaderToggle\n                    @field=\"name\"\n                    @labelKey=\"explorer.query_name\"\n                    @order={{@controller.order}}\n                    @asc={{not @controller.sortDescending}}\n                    @automatic=\"true\"\n                  />\n                </div>\n              </th>\n              <th class=\"col heading created-by\">\n                <div\n                  role=\"button\"\n                  class=\"heading-toggle\"\n                  {{on \"click\" (fn @controller.updateSortProperty \"username\")}}\n                >\n                  <TableHeaderToggle\n                    @field=\"username\"\n                    @labelKey=\"explorer.query_user\"\n                    @order={{@controller.order}}\n                    @asc={{not @controller.sortDescending}}\n                    @automatic=\"true\"\n                  />\n                </div>\n              </th>\n              <th class=\"col heading group-names\">\n                <div class=\"group-names-header\">\n                  {{i18n \"explorer.query_groups\"}}\n                </div>\n              </th>\n              <th class=\"col heading created-at\">\n                <div\n                  role=\"button\"\n                  class=\"heading-toggle\"\n                  {{on \"click\" (fn @controller.updateSortProperty \"last_run_at\")}}\n                >\n                  <TableHeaderToggle\n                    @field=\"last_run_at\"\n                    @labelKey=\"explorer.query_time\"\n                    @order={{@controller.order}}\n                    @asc={{not @controller.sortDescending}}\n                    @automatic=\"true\"\n                  />\n                </div>\n              </th>\n            </thead>\n            <tbody>\n              {{#each @controller.filteredContent as |query|}}\n                <tr class=\"d-admin-row__content query-row\">\n                  <td class=\"d-admin-row__overview\">\n                    <a\n                      {{on \"click\" @controller.scrollTop}}\n                      href=\"/admin/plugins/explorer/queries/{{query.id}}\"\n                    >\n                      <b class=\"query-name\">{{query.name}}</b>\n                      <span class=\"query-desc\">{{query.description}}</span>\n                    </a>\n                  </td>\n                  <td class=\"d-admin-row__detail query-created-by\">\n                    <div class=\"d-admin-row__mobile-label\">\n                      {{i18n \"explorer.query_user\"}}\n                    </div>\n                    {{#if query.username}}\n                      <div>\n                        <a href=\"/u/{{query.username}}/activity\">\n                          <span>{{query.username}}</span>\n                        </a>\n                      </div>\n                    {{/if}}\n                  </td>\n                  <td class=\"d-admin-row__detail query-group-names\">\n                    <div class=\"d-admin-row__mobile-label\">\n                      {{i18n \"explorer.query_groups\"}}\n                    </div>\n                    <div class=\"group-names\">\n                      {{#each query.group_names as |group|}}\n                        <ShareReport @group={{group}} @query={{query}} />\n                      {{/each}}\n                    </div>\n                  </td>\n                  <td class=\"d-admin-row__detail query-created-at\">\n                    <div class=\"d-admin-row__mobile-label\">\n                      {{i18n \"explorer.query_time\"}}\n                    </div>\n                    {{#if query.last_run_at}}\n                      <span>\n                        {{ageWithTooltip query.last_run_at format=\"medium\"}}\n                      </span>\n                    {{else if query.created_at}}\n                      <span>\n                        {{ageWithTooltip query.created_at format=\"medium\"}}\n                      </span>\n                    {{/if}}\n                  </td>\n                </tr>\n              {{else}}\n                <br />\n                <em class=\"no-search-results\">\n                  {{i18n \"explorer.no_search_results\"}}\n                </em>\n              {{/each}}\n            </tbody>\n          </table>\n        </div>\n  \n        <div class=\"explorer-pad-bottom\"></div>\n      {{/if}}\n    {{/if}}\n  \n  */\n  {\n    \"id\": \"v+7PkDrP\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"disallow\\\"]],[[[1,\\\"    \\\"],[10,\\\"h1\\\"],[12],[1,[28,[32,0],[\\\"explorer.admins_only\\\"],null]],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"query-list\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,1],null,[[\\\"@value\\\",\\\"@placeholderKey\\\",\\\"@onChange\\\"],[[30,1,[\\\"search\\\"]],\\\"explorer.search_placeholder\\\",[30,1,[\\\"updateSearch\\\"]]]],null],[1,\\\"\\\\n      \\\"],[8,[32,2],[[24,0,\\\"no-text btn-right\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,1,[\\\"displayCreate\\\"]],\\\"plus\\\"]],null],[1,\\\"\\\\n      \\\"],[8,[32,3],[[24,0,\\\"import-btn\\\"]],[[\\\"@label\\\",\\\"@icon\\\",\\\"@acceptedFormatsOverride\\\",\\\"@showButton\\\",\\\"@onFilesPicked\\\"],[\\\"explorer.import.label\\\",\\\"upload\\\",[30,1,[\\\"acceptedImportFileTypes\\\"]],\\\"true\\\",[30,1,[\\\"import\\\"]]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,1,[\\\"showCreate\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"query-create\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,1],null,[[\\\"@value\\\",\\\"@placeholderKey\\\",\\\"@onChange\\\"],[[30,1,[\\\"newQueryName\\\"]],\\\"explorer.create_placeholder\\\",[30,1,[\\\"updateNewQueryName\\\"]]]],null],[1,\\\"\\\\n        \\\"],[8,[32,2],null,[[\\\"@action\\\",\\\"@disabled\\\",\\\"@label\\\",\\\"@icon\\\"],[[30,1,[\\\"create\\\"]],[30,1,[\\\"createDisabled\\\"]],\\\"explorer.create\\\",\\\"plus\\\"]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"othersDirty\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"warning\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,4],[\\\"triangle-exclamation\\\"],null]],[1,\\\"\\\\n        \\\"],[1,[28,[32,0],[\\\"explorer.others_dirty\\\"],null]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"model\\\",\\\"content\\\",\\\"length\\\"]],[[[1,\\\"      \\\"],[8,[32,5],null,[[\\\"@condition\\\"],[[30,1,[\\\"loading\\\"]]]],null],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"container\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"table\\\"],[14,0,\\\"d-admin-table recent-queries\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"thead\\\"],[14,0,\\\"heading-container\\\"],[12],[1,\\\"\\\\n            \\\"],[10,\\\"th\\\"],[14,0,\\\"col heading name\\\"],[12],[1,\\\"\\\\n              \\\"],[11,0],[24,\\\"role\\\",\\\"button\\\"],[24,0,\\\"heading-toggle\\\"],[4,[32,6],[\\\"click\\\",[28,[32,7],[[30,1,[\\\"updateSortProperty\\\"]],\\\"name\\\"],null]],null],[12],[1,\\\"\\\\n                \\\"],[8,[32,8],null,[[\\\"@field\\\",\\\"@labelKey\\\",\\\"@order\\\",\\\"@asc\\\",\\\"@automatic\\\"],[\\\"name\\\",\\\"explorer.query_name\\\",[30,1,[\\\"order\\\"]],[28,[32,9],[[30,1,[\\\"sortDescending\\\"]]],null],\\\"true\\\"]],null],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n            \\\"],[10,\\\"th\\\"],[14,0,\\\"col heading created-by\\\"],[12],[1,\\\"\\\\n              \\\"],[11,0],[24,\\\"role\\\",\\\"button\\\"],[24,0,\\\"heading-toggle\\\"],[4,[32,6],[\\\"click\\\",[28,[32,7],[[30,1,[\\\"updateSortProperty\\\"]],\\\"username\\\"],null]],null],[12],[1,\\\"\\\\n                \\\"],[8,[32,8],null,[[\\\"@field\\\",\\\"@labelKey\\\",\\\"@order\\\",\\\"@asc\\\",\\\"@automatic\\\"],[\\\"username\\\",\\\"explorer.query_user\\\",[30,1,[\\\"order\\\"]],[28,[32,9],[[30,1,[\\\"sortDescending\\\"]]],null],\\\"true\\\"]],null],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n            \\\"],[10,\\\"th\\\"],[14,0,\\\"col heading group-names\\\"],[12],[1,\\\"\\\\n              \\\"],[10,0],[14,0,\\\"group-names-header\\\"],[12],[1,\\\"\\\\n                \\\"],[1,[28,[32,0],[\\\"explorer.query_groups\\\"],null]],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n            \\\"],[10,\\\"th\\\"],[14,0,\\\"col heading created-at\\\"],[12],[1,\\\"\\\\n              \\\"],[11,0],[24,\\\"role\\\",\\\"button\\\"],[24,0,\\\"heading-toggle\\\"],[4,[32,6],[\\\"click\\\",[28,[32,7],[[30,1,[\\\"updateSortProperty\\\"]],\\\"last_run_at\\\"],null]],null],[12],[1,\\\"\\\\n                \\\"],[8,[32,8],null,[[\\\"@field\\\",\\\"@labelKey\\\",\\\"@order\\\",\\\"@asc\\\",\\\"@automatic\\\"],[\\\"last_run_at\\\",\\\"explorer.query_time\\\",[30,1,[\\\"order\\\"]],[28,[32,9],[[30,1,[\\\"sortDescending\\\"]]],null],\\\"true\\\"]],null],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n          \\\"],[10,\\\"tbody\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,1,[\\\"filteredContent\\\"]]],null]],null],null,[[[1,\\\"              \\\"],[10,\\\"tr\\\"],[14,0,\\\"d-admin-row__content query-row\\\"],[12],[1,\\\"\\\\n                \\\"],[10,\\\"td\\\"],[14,0,\\\"d-admin-row__overview\\\"],[12],[1,\\\"\\\\n                  \\\"],[11,3],[16,6,[29,[\\\"/admin/plugins/explorer/queries/\\\",[30,2,[\\\"id\\\"]]]]],[4,[32,6],[\\\"click\\\",[30,1,[\\\"scrollTop\\\"]]],null],[12],[1,\\\"\\\\n                    \\\"],[10,\\\"b\\\"],[14,0,\\\"query-name\\\"],[12],[1,[30,2,[\\\"name\\\"]]],[13],[1,\\\"\\\\n                    \\\"],[10,1],[14,0,\\\"query-desc\\\"],[12],[1,[30,2,[\\\"description\\\"]]],[13],[1,\\\"\\\\n                  \\\"],[13],[1,\\\"\\\\n                \\\"],[13],[1,\\\"\\\\n                \\\"],[10,\\\"td\\\"],[14,0,\\\"d-admin-row__detail query-created-by\\\"],[12],[1,\\\"\\\\n                  \\\"],[10,0],[14,0,\\\"d-admin-row__mobile-label\\\"],[12],[1,\\\"\\\\n                    \\\"],[1,[28,[32,0],[\\\"explorer.query_user\\\"],null]],[1,\\\"\\\\n                  \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"username\\\"]],[[[1,\\\"                    \\\"],[10,0],[12],[1,\\\"\\\\n                      \\\"],[10,3],[15,6,[29,[\\\"/u/\\\",[30,2,[\\\"username\\\"]],\\\"/activity\\\"]]],[12],[1,\\\"\\\\n                        \\\"],[10,1],[12],[1,[30,2,[\\\"username\\\"]]],[13],[1,\\\"\\\\n                      \\\"],[13],[1,\\\"\\\\n                    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"                \\\"],[13],[1,\\\"\\\\n                \\\"],[10,\\\"td\\\"],[14,0,\\\"d-admin-row__detail query-group-names\\\"],[12],[1,\\\"\\\\n                  \\\"],[10,0],[14,0,\\\"d-admin-row__mobile-label\\\"],[12],[1,\\\"\\\\n                    \\\"],[1,[28,[32,0],[\\\"explorer.query_groups\\\"],null]],[1,\\\"\\\\n                  \\\"],[13],[1,\\\"\\\\n                  \\\"],[10,0],[14,0,\\\"group-names\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,2,[\\\"group_names\\\"]]],null]],null],null,[[[1,\\\"                      \\\"],[8,[32,10],null,[[\\\"@group\\\",\\\"@query\\\"],[[30,3],[30,2]]],null],[1,\\\"\\\\n\\\"]],[3]],null],[1,\\\"                  \\\"],[13],[1,\\\"\\\\n                \\\"],[13],[1,\\\"\\\\n                \\\"],[10,\\\"td\\\"],[14,0,\\\"d-admin-row__detail query-created-at\\\"],[12],[1,\\\"\\\\n                  \\\"],[10,0],[14,0,\\\"d-admin-row__mobile-label\\\"],[12],[1,\\\"\\\\n                    \\\"],[1,[28,[32,0],[\\\"explorer.query_time\\\"],null]],[1,\\\"\\\\n                  \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"last_run_at\\\"]],[[[1,\\\"                    \\\"],[10,1],[12],[1,\\\"\\\\n                      \\\"],[1,[28,[32,11],[[30,2,[\\\"last_run_at\\\"]]],[[\\\"format\\\"],[\\\"medium\\\"]]]],[1,\\\"\\\\n                    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[41,[30,2,[\\\"created_at\\\"]],[[[1,\\\"                    \\\"],[10,1],[12],[1,\\\"\\\\n                      \\\"],[1,[28,[32,11],[[30,2,[\\\"created_at\\\"]]],[[\\\"format\\\"],[\\\"medium\\\"]]]],[1,\\\"\\\\n                    \\\"],[13],[1,\\\"\\\\n                  \\\"]],[]],null]],[]]],[1,\\\"                \\\"],[13],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[2]],[[[1,\\\"              \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\"\\\\n              \\\"],[10,\\\"em\\\"],[14,0,\\\"no-search-results\\\"],[12],[1,\\\"\\\\n                \\\"],[1,[28,[32,0],[\\\"explorer.no_search_results\\\"],null]],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"explorer-pad-bottom\\\"],[12],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]]]],[\\\"@controller\\\",\\\"query\\\",\\\"group\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/templates/admin-plugins/explorer/index.js\",\n    \"scope\": () => [_discourseI18n.i18n, _textField.default, _dButton.default, _pickFilesButton.default, _dIcon.default, _conditionalLoadingSpinner.default, _modifier.on, _helper.fn, _tableHeaderToggle.default, _truthHelpers.not, _shareReport.default, _ageWithTooltip.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"explorer\"));\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/templates/admin-plugins/explorer/queries/details\", [\"exports\", \"@ember/component\", \"@ember/helper\", \"@ember/modifier\", \"@ember/render-modifiers/modifiers/did-insert\", \"discourse/components/ace-editor\", \"discourse/components/conditional-loading-spinner\", \"discourse/components/d-button\", \"discourse/components/d-textarea\", \"discourse/components/text-field\", \"discourse/helpers/d-icon\", \"discourse/modifiers/draggable\", \"discourse/select-kit/components/multi-select\", \"discourse-i18n\", \"discourse/plugins/discourse-data-explorer/discourse/components/code-view\", \"discourse/plugins/discourse-data-explorer/discourse/components/explorer-schema\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input-form\", \"discourse/plugins/discourse-data-explorer/discourse/components/query-results-wrapper\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _helper, _modifier, _didInsert, _aceEditor, _conditionalLoadingSpinner, _dButton, _dTextarea, _textField, _dIcon, _draggable, _multiSelect, _discourseI18n, _codeView, _explorerSchema, _paramInputForm, _queryResultsWrapper, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    {{#if @controller.disallow}}\n      <h1>{{i18n \"explorer.admins_only\"}}</h1>\n    {{else}}\n  \n      <div class=\"query-edit {{if @controller.editingName 'editing'}}\">\n        {{#if @controller.editingName}}\n          <div class=\"name\">\n            <DButton\n              @action={{@controller.goHome}}\n              @icon=\"chevron-left\"\n              class=\"previous\"\n            />\n            <DButton\n              @action={{@controller.exitEdit}}\n              @icon=\"xmark\"\n              class=\"previous\"\n            />\n            <div class=\"name-text-field\">\n              <TextField\n                @value={{@controller.model.name}}\n                @onChange={{@controller.setDirty}}\n              />\n            </div>\n          </div>\n  \n          <div class=\"desc\">\n            <DTextarea\n              @value={{@controller.model.description}}\n              @placeholder={{i18n \"explorer.description_placeholder\"}}\n              @input={{@controller.setDirty}}\n            />\n          </div>\n        {{else}}\n          <div class=\"name\">\n            <DButton\n              @action={{@controller.goHome}}\n              @icon=\"chevron-left\"\n              class=\"previous\"\n            />\n  \n            <h1>\n              <span>{{@controller.model.name}}</span>\n              {{#unless @controller.editDisabled}}\n                <DButton\n                  @action={{@controller.editName}}\n                  @icon=\"pencil\"\n                  class=\"edit-query-name btn-transparent\"\n                />\n              {{/unless}}\n            </h1>\n          </div>\n  \n          <div class=\"desc\">\n            {{@controller.model.description}}\n          </div>\n        {{/if}}\n  \n        {{#unless @controller.model.destroyed}}\n          <div class=\"groups\">\n            <span class=\"label\">{{i18n \"explorer.allow_groups\"}}</span>\n            <span>\n              <MultiSelect\n                @value={{@controller.model.group_ids}}\n                @content={{@controller.groupOptions}}\n                @options={{hash allowAny=false}}\n                @onChange={{@controller.updateGroupIds}}\n              />\n            </span>\n          </div>\n        {{/unless}}\n  \n        <div class=\"clear\"></div>\n  \n        {{#if @controller.editingQuery}}\n          <div class=\"query-editor {{if @controller.hideSchema 'no-schema'}}\">\n            <div class=\"panels-flex\">\n              <div class=\"editor-panel\">\n                <AceEditor\n                  {{on \"click\" @controller.setDirty}}\n                  @content={{@controller.model.sql}}\n                  @onChange={{fn (mut @controller.model.sql)}}\n                  @mode=\"sql\"\n                  @disabled={{@controller.model.destroyed}}\n                  @save={{@controller.save}}\n                  @submit={{@controller.saveAndRun}}\n                />\n              </div>\n  \n              <div class=\"right-panel\">\n                <ExplorerSchema\n                  @schema={{@controller.schema}}\n                  @hideSchema={{@controller.hideSchema}}\n                  @updateHideSchema={{@controller.updateHideSchema}}\n                />\n              </div>\n            </div>\n  \n            <div\n              class=\"grippie\"\n              {{draggable\n                didStartDrag=@controller.didStartDrag\n                didEndDrag=@controller.didEndDrag\n                dragMove=@controller.dragMove\n              }}\n            >\n              {{icon \"discourse-expand\"}}\n            </div>\n  \n            <div class=\"clear\"></div>\n          </div>\n        {{else}}\n          <div class=\"sql\">\n            <CodeView\n              @value={{@controller.model.sql}}\n              @codeClass=\"sql\"\n              @setDirty={{@controller.setDirty}}\n            />\n          </div>\n        {{/if}}\n  \n        <div class=\"clear\"></div>\n  \n        <div class=\"pull-left left-buttons\">\n          {{#if @controller.editingQuery}}\n            <DButton\n              class=\"btn-save-query\"\n              @action={{@controller.save}}\n              @label=\"explorer.save\"\n              @disabled={{@controller.saveDisabled}}\n            />\n          {{else}}\n            {{#unless @controller.editDisabled}}\n              <DButton\n                class=\"btn-edit-query\"\n                @action={{@controller.editQuery}}\n                @label=\"explorer.edit\"\n                @icon=\"pencil\"\n              />\n            {{/unless}}\n          {{/if}}\n  \n          <DButton\n            @action={{@controller.download}}\n            @label=\"explorer.export\"\n            @disabled={{@controller.runDisabled}}\n            @icon=\"download\"\n          />\n  \n          {{#if @controller.editingQuery}}\n            <DButton\n              @action={{@controller.showHelpModal}}\n              @label=\"explorer.help.label\"\n              @icon=\"circle-question\"\n            />\n          {{/if}}\n        </div>\n  \n        <div class=\"pull-right right-buttons\">\n          {{#if @controller.model.destroyed}}\n            <DButton\n              @action={{@controller.recover}}\n              @icon=\"arrow-rotate-left\"\n              @label=\"explorer.recover\"\n            />\n          {{else}}\n            {{#if @controller.editingQuery}}\n              <DButton\n                @action={{@controller.discard}}\n                @icon=\"arrow-rotate-left\"\n                @label=\"explorer.undo\"\n                @disabled={{@controller.saveDisabled}}\n              />\n            {{/if}}\n  \n            <DButton\n              @action={{@controller.destroyQuery}}\n              @icon=\"trash-can\"\n              @label=\"explorer.delete\"\n              class=\"btn-danger\"\n            />\n          {{/if}}\n        </div>\n        <div class=\"clear\"></div>\n      </div>\n  \n      <form class=\"query-run\" {{on \"submit\" @controller.run}}>\n        {{#if @controller.model.hasParams}}\n          <ParamInputForm\n            @initialValues={{@controller.parsedParams}}\n            @paramInfo={{@controller.model.param_info}}\n            @onRegisterApi={{@controller.onRegisterApi}}\n          />\n        {{/if}}\n  \n        {{#if @controller.runDisabled}}\n          {{#if @controller.saveDisabled}}\n            <DButton @label=\"explorer.run\" @disabled=\"true\" class=\"btn-primary\" />\n          {{else}}\n            <DButton\n              @action={{@controller.saveAndRun}}\n              @icon=\"play\"\n              @label=\"explorer.saverun\"\n              class=\"btn-primary\"\n            />\n          {{/if}}\n        {{else}}\n          <DButton\n            {{didInsert @controller.runOnLoad}}\n            @action={{@controller.run}}\n            @icon=\"play\"\n            @label=\"explorer.run\"\n            @disabled={{@controller.runDisabled}}\n            @type=\"submit\"\n            class=\"btn-primary\"\n          />\n        {{/if}}\n  \n        <label class=\"query-plan\">\n          <Input\n            @type=\"checkbox\"\n            @checked={{@controller.explain}}\n            name=\"explain\"\n          />\n          {{i18n \"explorer.explain_label\"}}\n        </label>\n      </form>\n      <hr />\n  \n      <ConditionalLoadingSpinner @condition={{@controller.loading}} />\n  \n      <QueryResultsWrapper\n        @results={{@controller.results}}\n        @showResults={{@controller.showResults}}\n        @query={{@controller.model}}\n        @content={{@controller.results}}\n      />\n    {{/if}}\n  \n  */\n  {\n    \"id\": \"SZiTuyEM\",\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"disallow\\\"]],[[[1,\\\"    \\\"],[10,\\\"h1\\\"],[12],[1,[28,[32,0],[\\\"explorer.admins_only\\\"],null]],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"\\\\n    \\\"],[10,0],[15,0,[29,[\\\"query-edit \\\",[52,[30,1,[\\\"editingName\\\"]],\\\"editing\\\"]]]],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"editingName\\\"]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"name\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,1],[[24,0,\\\"previous\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,1,[\\\"goHome\\\"]],\\\"chevron-left\\\"]],null],[1,\\\"\\\\n          \\\"],[8,[32,1],[[24,0,\\\"previous\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,1,[\\\"exitEdit\\\"]],\\\"xmark\\\"]],null],[1,\\\"\\\\n          \\\"],[10,0],[14,0,\\\"name-text-field\\\"],[12],[1,\\\"\\\\n            \\\"],[8,[32,2],null,[[\\\"@value\\\",\\\"@onChange\\\"],[[30,1,[\\\"model\\\",\\\"name\\\"]],[30,1,[\\\"setDirty\\\"]]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n        \\\"],[10,0],[14,0,\\\"desc\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,3],null,[[\\\"@value\\\",\\\"@placeholder\\\",\\\"@input\\\"],[[30,1,[\\\"model\\\",\\\"description\\\"]],[28,[32,0],[\\\"explorer.description_placeholder\\\"],null],[30,1,[\\\"setDirty\\\"]]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"name\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,1],[[24,0,\\\"previous\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,1,[\\\"goHome\\\"]],\\\"chevron-left\\\"]],null],[1,\\\"\\\\n\\\\n          \\\"],[10,\\\"h1\\\"],[12],[1,\\\"\\\\n            \\\"],[10,1],[12],[1,[30,1,[\\\"model\\\",\\\"name\\\"]]],[13],[1,\\\"\\\\n\\\"],[41,[51,[30,1,[\\\"editDisabled\\\"]]],[[[1,\\\"              \\\"],[8,[32,1],[[24,0,\\\"edit-query-name btn-transparent\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,1,[\\\"editName\\\"]],\\\"pencil\\\"]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\\n        \\\"],[10,0],[14,0,\\\"desc\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[30,1,[\\\"model\\\",\\\"description\\\"]]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"\\\\n\\\"],[41,[51,[30,1,[\\\"model\\\",\\\"destroyed\\\"]]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"groups\\\"],[12],[1,\\\"\\\\n          \\\"],[10,1],[14,0,\\\"label\\\"],[12],[1,[28,[32,0],[\\\"explorer.allow_groups\\\"],null]],[13],[1,\\\"\\\\n          \\\"],[10,1],[12],[1,\\\"\\\\n            \\\"],[8,[32,4],null,[[\\\"@value\\\",\\\"@content\\\",\\\"@options\\\",\\\"@onChange\\\"],[[30,1,[\\\"model\\\",\\\"group_ids\\\"]],[30,1,[\\\"groupOptions\\\"]],[28,[32,5],null,[[\\\"allowAny\\\"],[false]]],[30,1,[\\\"updateGroupIds\\\"]]]],null],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"clear\\\"],[12],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,1,[\\\"editingQuery\\\"]],[[[1,\\\"        \\\"],[10,0],[15,0,[29,[\\\"query-editor \\\",[52,[30,1,[\\\"hideSchema\\\"]],\\\"no-schema\\\"]]]],[12],[1,\\\"\\\\n          \\\"],[10,0],[14,0,\\\"panels-flex\\\"],[12],[1,\\\"\\\\n            \\\"],[10,0],[14,0,\\\"editor-panel\\\"],[12],[1,\\\"\\\\n              \\\"],[8,[32,6],[[4,[32,8],[\\\"click\\\",[30,1,[\\\"setDirty\\\"]]],null]],[[\\\"@content\\\",\\\"@onChange\\\",\\\"@mode\\\",\\\"@disabled\\\",\\\"@save\\\",\\\"@submit\\\"],[[30,1,[\\\"model\\\",\\\"sql\\\"]],[28,[32,7],[[28,[31,2],[[30,1,[\\\"model\\\",\\\"sql\\\"]]],null]],null],\\\"sql\\\",[30,1,[\\\"model\\\",\\\"destroyed\\\"]],[30,1,[\\\"save\\\"]],[30,1,[\\\"saveAndRun\\\"]]]],null],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\\n            \\\"],[10,0],[14,0,\\\"right-panel\\\"],[12],[1,\\\"\\\\n              \\\"],[8,[32,9],null,[[\\\"@schema\\\",\\\"@hideSchema\\\",\\\"@updateHideSchema\\\"],[[30,1,[\\\"schema\\\"]],[30,1,[\\\"hideSchema\\\"]],[30,1,[\\\"updateHideSchema\\\"]]]],null],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\\n          \\\"],[11,0],[24,0,\\\"grippie\\\"],[4,[32,10],null,[[\\\"didStartDrag\\\",\\\"didEndDrag\\\",\\\"dragMove\\\"],[[30,1,[\\\"didStartDrag\\\"]],[30,1,[\\\"didEndDrag\\\"]],[30,1,[\\\"dragMove\\\"]]]]],[12],[1,\\\"\\\\n            \\\"],[1,[28,[32,11],[\\\"discourse-expand\\\"],null]],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\\n          \\\"],[10,0],[14,0,\\\"clear\\\"],[12],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"sql\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,12],null,[[\\\"@value\\\",\\\"@codeClass\\\",\\\"@setDirty\\\"],[[30,1,[\\\"model\\\",\\\"sql\\\"]],\\\"sql\\\",[30,1,[\\\"setDirty\\\"]]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"clear\\\"],[12],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"pull-left left-buttons\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"editingQuery\\\"]],[[[1,\\\"          \\\"],[8,[32,1],[[24,0,\\\"btn-save-query\\\"]],[[\\\"@action\\\",\\\"@label\\\",\\\"@disabled\\\"],[[30,1,[\\\"save\\\"]],\\\"explorer.save\\\",[30,1,[\\\"saveDisabled\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[41,[51,[30,1,[\\\"editDisabled\\\"]]],[[[1,\\\"            \\\"],[8,[32,1],[[24,0,\\\"btn-edit-query\\\"]],[[\\\"@action\\\",\\\"@label\\\",\\\"@icon\\\"],[[30,1,[\\\"editQuery\\\"]],\\\"explorer.edit\\\",\\\"pencil\\\"]],null],[1,\\\"\\\\n\\\"]],[]],null]],[]]],[1,\\\"\\\\n        \\\"],[8,[32,1],null,[[\\\"@action\\\",\\\"@label\\\",\\\"@disabled\\\",\\\"@icon\\\"],[[30,1,[\\\"download\\\"]],\\\"explorer.export\\\",[30,1,[\\\"runDisabled\\\"]],\\\"download\\\"]],null],[1,\\\"\\\\n\\\\n\\\"],[41,[30,1,[\\\"editingQuery\\\"]],[[[1,\\\"          \\\"],[8,[32,1],null,[[\\\"@action\\\",\\\"@label\\\",\\\"@icon\\\"],[[30,1,[\\\"showHelpModal\\\"]],\\\"explorer.help.label\\\",\\\"circle-question\\\"]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\\n      \\\"],[10,0],[14,0,\\\"pull-right right-buttons\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"model\\\",\\\"destroyed\\\"]],[[[1,\\\"          \\\"],[8,[32,1],null,[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\"],[[30,1,[\\\"recover\\\"]],\\\"arrow-rotate-left\\\",\\\"explorer.recover\\\"]],null],[1,\\\"\\\\n\\\"]],[]],[[[41,[30,1,[\\\"editingQuery\\\"]],[[[1,\\\"            \\\"],[8,[32,1],null,[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\",\\\"@disabled\\\"],[[30,1,[\\\"discard\\\"]],\\\"arrow-rotate-left\\\",\\\"explorer.undo\\\",[30,1,[\\\"saveDisabled\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n          \\\"],[8,[32,1],[[24,0,\\\"btn-danger\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\"],[[30,1,[\\\"destroyQuery\\\"]],\\\"trash-can\\\",\\\"explorer.delete\\\"]],null],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"clear\\\"],[12],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[11,\\\"form\\\"],[24,0,\\\"query-run\\\"],[4,[32,8],[\\\"submit\\\",[30,1,[\\\"run\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"model\\\",\\\"hasParams\\\"]],[[[1,\\\"        \\\"],[8,[32,13],null,[[\\\"@initialValues\\\",\\\"@paramInfo\\\",\\\"@onRegisterApi\\\"],[[30,1,[\\\"parsedParams\\\"]],[30,1,[\\\"model\\\",\\\"param_info\\\"]],[30,1,[\\\"onRegisterApi\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"runDisabled\\\"]],[[[41,[30,1,[\\\"saveDisabled\\\"]],[[[1,\\\"          \\\"],[8,[32,1],[[24,0,\\\"btn-primary\\\"]],[[\\\"@label\\\",\\\"@disabled\\\"],[\\\"explorer.run\\\",\\\"true\\\"]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[8,[32,1],[[24,0,\\\"btn-primary\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\"],[[30,1,[\\\"saveAndRun\\\"]],\\\"play\\\",\\\"explorer.saverun\\\"]],null],[1,\\\"\\\\n\\\"]],[]]]],[]],[[[1,\\\"        \\\"],[8,[32,1],[[24,0,\\\"btn-primary\\\"],[4,[32,14],[[30,1,[\\\"runOnLoad\\\"]]],null]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\",\\\"@disabled\\\",\\\"@type\\\"],[[30,1,[\\\"run\\\"]],\\\"play\\\",\\\"explorer.run\\\",[30,1,[\\\"runDisabled\\\"]],\\\"submit\\\"]],null],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"\\\\n      \\\"],[10,\\\"label\\\"],[14,0,\\\"query-plan\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,15],[[24,3,\\\"explain\\\"]],[[\\\"@type\\\",\\\"@checked\\\"],[\\\"checkbox\\\",[30,1,[\\\"explain\\\"]]]],null],[1,\\\"\\\\n        \\\"],[1,[28,[32,0],[\\\"explorer.explain_label\\\"],null]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,\\\"hr\\\"],[12],[13],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,16],null,[[\\\"@condition\\\"],[[30,1,[\\\"loading\\\"]]]],null],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,17],null,[[\\\"@results\\\",\\\"@showResults\\\",\\\"@query\\\",\\\"@content\\\"],[[30,1,[\\\"results\\\"]],[30,1,[\\\"showResults\\\"]],[30,1,[\\\"model\\\"]],[30,1,[\\\"results\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]]]],[\\\"@controller\\\"],[\\\"if\\\",\\\"unless\\\",\\\"mut\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/templates/admin-plugins/explorer/queries/details.js\",\n    \"scope\": () => [_discourseI18n.i18n, _dButton.default, _textField.default, _dTextarea.default, _multiSelect.default, _helper.hash, _aceEditor.default, _helper.fn, _modifier.on, _explorerSchema.default, _draggable.default, _dIcon.default, _codeView.default, _paramInputForm.default, _didInsert.default, _component.Input, _conditionalLoadingSpinner.default, _queryResultsWrapper.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"details\"));\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/templates/group/reports\", [\"exports\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    {{outlet}}\n  */\n  {\n    \"id\": \"OQbmfwS8\",\n    \"block\": \"[[[46,[28,[31,1],null,null],null,null,null]],[],[\\\"component\\\",\\\"-outlet\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/templates/group/reports.js\",\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"reports\"));\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/templates/group/reports/index\", [\"exports\", \"@ember/helper\", \"@ember/routing\", \"discourse/helpers/age-with-tooltip\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _helper, _routing, _ageWithTooltip, _discourseI18n, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <section class=\"user-content\">\n      <table class=\"group-reports\">\n        <thead>\n          <th>\n            {{i18n \"explorer.report_name\"}}\n          </th>\n          <th>\n            {{i18n \"explorer.query_description\"}}\n          </th>\n          <th>\n            {{i18n \"explorer.query_time\"}}\n          </th>\n        </thead>\n        <tbody>\n          {{#each @controller.model.queries as |query|}}\n            <tr>\n              <td>\n                <LinkTo\n                  @route=\"group.reports.show\"\n                  @models={{array @controller.group.name query.id}}\n                >\n                  {{query.name}}\n                </LinkTo>\n              </td>\n              <td>{{query.description}}</td>\n              <td>\n                {{#if query.last_run_at}}\n                  {{ageWithTooltip query.last_run_at format=\"medium\"}}\n                {{/if}}\n              </td>\n            </tr>\n          {{/each}}\n        </tbody>\n      </table>\n    </section>\n  \n  */\n  {\n    \"id\": \"5wwsaetF\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,\\\"section\\\"],[14,0,\\\"user-content\\\"],[12],[1,\\\"\\\\n    \\\"],[10,\\\"table\\\"],[14,0,\\\"group-reports\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"thead\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"th\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,0],[\\\"explorer.report_name\\\"],null]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n        \\\"],[10,\\\"th\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,0],[\\\"explorer.query_description\\\"],null]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n        \\\"],[10,\\\"th\\\"],[12],[1,\\\"\\\\n          \\\"],[1,[28,[32,0],[\\\"explorer.query_time\\\"],null]],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n      \\\"],[10,\\\"tbody\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,1],[[28,[31,1],[[30,1,[\\\"model\\\",\\\"queries\\\"]]],null]],null],null,[[[1,\\\"          \\\"],[10,\\\"tr\\\"],[12],[1,\\\"\\\\n            \\\"],[10,\\\"td\\\"],[12],[1,\\\"\\\\n              \\\"],[8,[32,1],null,[[\\\"@route\\\",\\\"@models\\\"],[\\\"group.reports.show\\\",[28,[32,2],[[30,1,[\\\"group\\\",\\\"name\\\"]],[30,2,[\\\"id\\\"]]],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[1,[30,2,[\\\"name\\\"]]],[1,\\\"\\\\n              \\\"]],[]]]]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n            \\\"],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"description\\\"]]],[13],[1,\\\"\\\\n            \\\"],[10,\\\"td\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"last_run_at\\\"]],[[[1,\\\"                \\\"],[1,[28,[32,3],[[30,2,[\\\"last_run_at\\\"]]],[[\\\"format\\\"],[\\\"medium\\\"]]]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"            \\\"],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@controller\\\",\\\"query\\\"],[\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/templates/group/reports/index.js\",\n    \"scope\": () => [_discourseI18n.i18n, _routing.LinkTo, _helper.array, _ageWithTooltip.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"reports\"));\n});","define(\"discourse/plugins/discourse-data-explorer/discourse/templates/group/reports/show\", [\"exports\", \"@ember/modifier\", \"@ember/render-modifiers/modifiers/did-insert\", \"discourse/components/conditional-loading-spinner\", \"discourse/components/d-button\", \"discourse/plugins/discourse-data-explorer/discourse/components/param-input-form\", \"discourse/plugins/discourse-data-explorer/discourse/components/query-result\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _modifier, _didInsert, _conditionalLoadingSpinner, _dButton, _paramInputForm, _queryResult, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <section class=\"user-content\">\n      <h1>{{@controller.model.name}}</h1>\n      <p>{{@controller.model.description}}</p>\n  \n      <form class=\"query-run\" {{on \"submit\" @controller.run}}>\n        {{#if @controller.hasParams}}\n          <ParamInputForm\n            @initialValues={{@controller.parsedParams}}\n            @paramInfo={{@controller.model.param_info}}\n            @onRegisterApi={{@controller.onRegisterApi}}\n          />\n        {{/if}}\n  \n        <DButton\n          {{didInsert @controller.runOnLoad}}\n          @action={{@controller.run}}\n          @icon=\"play\"\n          @label=\"explorer.run\"\n          @type=\"submit\"\n          class=\"btn-primary\"\n        />\n  \n        <DButton\n          @action={{@controller.toggleBookmark}}\n          @label={{@controller.bookmarkLabel}}\n          @icon={{@controller.bookmarkIcon}}\n          class={{@controller.bookmarkClassName}}\n        />\n      </form>\n  \n      <ConditionalLoadingSpinner @condition={{@controller.loading}} />\n  \n      {{#if @controller.results}}\n        <div class=\"query-results\">\n          {{#if @controller.showResults}}\n            <QueryResult\n              @query={{@controller.model}}\n              @content={{@controller.results}}\n              @group={{@controller.group}}\n            />\n          {{else}}\n            {{#each @controller.results.errors as |err|}}\n              <pre class=\"query-error\"><code>{{~err}}</code></pre>\n            {{/each}}\n          {{/if}}\n        </div>\n      {{/if}}\n    </section>\n  \n  */\n  {\n    \"id\": \"0z3NLQvg\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,\\\"section\\\"],[14,0,\\\"user-content\\\"],[12],[1,\\\"\\\\n    \\\"],[10,\\\"h1\\\"],[12],[1,[30,1,[\\\"model\\\",\\\"name\\\"]]],[13],[1,\\\"\\\\n    \\\"],[10,2],[12],[1,[30,1,[\\\"model\\\",\\\"description\\\"]]],[13],[1,\\\"\\\\n\\\\n    \\\"],[11,\\\"form\\\"],[24,0,\\\"query-run\\\"],[4,[32,0],[\\\"submit\\\",[30,1,[\\\"run\\\"]]],null],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"hasParams\\\"]],[[[1,\\\"        \\\"],[8,[32,1],null,[[\\\"@initialValues\\\",\\\"@paramInfo\\\",\\\"@onRegisterApi\\\"],[[30,1,[\\\"parsedParams\\\"]],[30,1,[\\\"model\\\",\\\"param_info\\\"]],[30,1,[\\\"onRegisterApi\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n      \\\"],[8,[32,2],[[24,0,\\\"btn-primary\\\"],[4,[32,3],[[30,1,[\\\"runOnLoad\\\"]]],null]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@label\\\",\\\"@type\\\"],[[30,1,[\\\"run\\\"]],\\\"play\\\",\\\"explorer.run\\\",\\\"submit\\\"]],null],[1,\\\"\\\\n\\\\n      \\\"],[8,[32,2],[[16,0,[30,1,[\\\"bookmarkClassName\\\"]]]],[[\\\"@action\\\",\\\"@label\\\",\\\"@icon\\\"],[[30,1,[\\\"toggleBookmark\\\"]],[30,1,[\\\"bookmarkLabel\\\"]],[30,1,[\\\"bookmarkIcon\\\"]]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,4],null,[[\\\"@condition\\\"],[[30,1,[\\\"loading\\\"]]]],null],[1,\\\"\\\\n\\\\n\\\"],[41,[30,1,[\\\"results\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"query-results\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"showResults\\\"]],[[[1,\\\"          \\\"],[8,[32,5],null,[[\\\"@query\\\",\\\"@content\\\",\\\"@group\\\"],[[30,1,[\\\"model\\\"]],[30,1,[\\\"results\\\"]],[30,1,[\\\"group\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[42,[28,[31,2],[[28,[31,2],[[30,1,[\\\"results\\\",\\\"errors\\\"]]],null]],null],null,[[[1,\\\"            \\\"],[10,\\\"pre\\\"],[14,0,\\\"query-error\\\"],[12],[10,\\\"code\\\"],[12],[1,[30,2]],[13],[13],[1,\\\"\\\\n\\\"]],[2]],null]],[]]],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@controller\\\",\\\"err\\\"],[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-data-explorer/discourse/templates/group/reports/show.js\",\n    \"scope\": () => [_modifier.on, _paramInputForm.default, _dButton.default, _didInsert.default, _conditionalLoadingSpinner.default, _queryResult.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"show\"));\n});"],"mappings":"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","ignoreList":[]}