{"version":3,"file":"discourse-policy.js","names":["define","_exports","_component","_tracking","_helper","_object","_utils","_trackedBuiltIns","_dButton","_dModal","_ajax","_text","_discourseI18n","_policyBuilderForm","_component2","_templateFactory","Object","defineProperty","value","default","PolicyBuilder","static","dt7948","g","this","prototype","tracked","isSaving","i","flash","policy","args","model","TrackedObject","reminder","version","insertPolicy","validateForm","toolbarEvent","addText","markdownParams","i18n","closeModal","n","action","updatePolicy","result","ajax","post","id","newRaw","replaceRaw","raw","save","cooked","cook","toString","edit_reason","key","entries","isPresent","push","join","policyRegex","RegExp","policyMatches","match","replace","isBlank","groups","setComponentTemplate","createTemplateFactory","block","moduleName","scope","fn","set","isStrictMode","_modifier","_policyFormField","_policyGroupInput","_policyReminderInput","PolicyBuilderForm","changeValue","field","event","onChange","target","changeBoolValue","checked","on","get","_templateOnly","PolicyFormFields","concat","undefined","_service","_groupChooser","PolicyGroupInput","service","site","selectedGroups","split","filter","Boolean","availableGroups","map","name","values","onChangeGroup","_comboBox","VALID_REMINDERS","PolicyReminderInput","hash","_truthHelpers","_boundAvatarTemplate","_dIcon","_ajaxError","_decorators","_policyBuilder","PostPolicy","appEvents","currentUser","modal","isLoading","showNotAccepted","constructor","super","arguments","setProperties","policy_accepted_by","policy_not_accepted_by","willDestroy","off","policyChanged","data","message","controller","findLoadedPost","policy_can_accept","policy_can_revoke","policy_accepted","policy_revoked","policy_not_accepted_by_count","policy_accepted_by_count","bind","policyHasUsers","acceptButtonClasses","classes","revokeButtonClasses","remainingAcceptedUsers","length","acceptedUsers","remainingNotAcceptedUsers","notAcceptedUsers","canManagePolicy","staff","revokePolicy","pushObject","obj","findBy","removeObject","_updatePolicy","acceptPolicy","loadRemainingAcceptedUsers","preventDefault","post_id","offset","users","forEach","user","e","popupAjaxError","loadRemainingNotAcceptedUsers","editPolicy","show","insertMode","toggleShowUsers","policyAction","type","and","not","EMAIL_FREQUENCY_OPTIONS","PreferencesPolicyEmails","eq","_pluginApi","initialize","container","lookup","policy_enabled","withPluginApi","api","getCurrentUser","siteSettings","addComposerToolbarPopupMenuOption","label","icon","group","condition","policy_restrict_to_staff_posts","initializePolicyBuilder","_utilities","_postPolicy","SETTINGS","camelName","escape","PolicyWrapper","_buildPolicyAttributes","form","setting","dataset","escapeExpression","parseInt","private","create","attachPolicy","helper","querySelector","innerHTML","getModel","policyPreview","document","createElement","classList","add","innerText","prepend","renderGlimmer","decorateCookedElement","onlyStream","registerCustomPostMessageCallback","trigger","setup","allowList","registerOptions","opts","features","registerPlugin","md","bbcode","ruler","rule","tag","wrap","token","info","attrs","keys","sort","_emails","SEND_EMAIL_NOTIFICATIONS_FIELD","addSaveableUserOptionField","reopen","init","_super","saveAttrNames"],"sources":["discourse/plugins/discourse-policy/discourse/components/modal/policy-builder.js","discourse/plugins/discourse-policy/discourse/components/policy-builder-form.js","discourse/plugins/discourse-policy/discourse/components/policy-form-field.js","discourse/plugins/discourse-policy/discourse/components/policy-group-input.js","discourse/plugins/discourse-policy/discourse/components/policy-reminder-input.js","discourse/plugins/discourse-policy/discourse/components/post-policy.js","discourse/plugins/discourse-policy/discourse/connectors/user-preferences-emails-pref-email-settings/preferences-policy-emails.js","discourse/plugins/discourse-policy/discourse/initializers/add-policy-builder.js","discourse/plugins/discourse-policy/discourse/initializers/extend-for-policy.js","discourse/plugins/discourse-policy/lib/discourse-markdown/policy.js","discourse/plugins/discourse-policy/pre-initializers/policy-user-options.js"],"sourcesContent":["define(\"discourse/plugins/discourse-policy/discourse/components/modal/policy-builder\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/helper\", \"@ember/object\", \"@ember/utils\", \"@ember-compat/tracked-built-ins\", \"discourse/components/d-button\", \"discourse/components/d-modal\", \"discourse/lib/ajax\", \"discourse/lib/text\", \"discourse-i18n\", \"discourse/plugins/discourse-policy/discourse/components/policy-builder-form\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _helper, _object, _utils, _trackedBuiltIns, _dButton, _dModal, _ajax, _text, _discourseI18n, _policyBuilderForm, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PolicyBuilder extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"isSaving\", [_tracking.tracked], function () {\n      return false;\n    }))();\n    #isSaving = (() => (dt7948.i(this, \"isSaving\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"flash\", [_tracking.tracked]))();\n    #flash = (() => (dt7948.i(this, \"flash\"), void 0))();\n    policy = (() => this.args.model.policy || new _trackedBuiltIns.TrackedObject({\n      reminder: null,\n      version: 1\n    }))();\n    insertPolicy() {\n      if (!this.validateForm()) {\n        return;\n      }\n      this.args.model.toolbarEvent?.addText(\"\\n\\n\" + `[policy ${this.markdownParams}]\\n${(0, _discourseI18n.i18n)(\"discourse_policy.accept_policy_template\")}\\n[/policy]` + \"\\n\\n\");\n      this.args.closeModal();\n    }\n    static #_3 = (() => dt7948.n(this.prototype, \"insertPolicy\", [_object.action]))();\n    async updatePolicy() {\n      if (!this.validateForm()) {\n        return;\n      }\n      this.isSaving = true;\n      try {\n        const result = await (0, _ajax.ajax)(`/posts/${this.args.model.post.id}`);\n        const newRaw = this.replaceRaw(result.raw);\n        if (newRaw) {\n          this.args.model.post.save({\n            raw: newRaw,\n            cooked: (await (0, _text.cook)(result.raw)).toString(),\n            edit_reason: (0, _discourseI18n.i18n)(\"discourse_policy.edit_reason\")\n          });\n        }\n      } finally {\n        this.isSaving = false;\n        this.args.closeModal();\n      }\n    }\n    static #_4 = (() => dt7948.n(this.prototype, \"updatePolicy\", [_object.action]))();\n    get markdownParams() {\n      const markdownParams = [];\n      for (const [key, value] of Object.entries(this.policy)) {\n        if ((0, _utils.isPresent)(value)) {\n          markdownParams.push(`${key}=\"${value}\"`);\n        }\n      }\n      return markdownParams.join(\" \");\n    }\n    replaceRaw(raw) {\n      const policyRegex = new RegExp(`\\\\[policy\\\\s(.*?)\\\\]`, \"m\");\n      const policyMatches = raw.match(policyRegex);\n      if (policyMatches?.[1]) {\n        return raw.replace(policyRegex, `[policy ${this.markdownParams}]`);\n      }\n      return false;\n    }\n    validateForm() {\n      if ((0, _utils.isBlank)(this.policy.groups)) {\n        this.flash = (0, _discourseI18n.i18n)(\"discourse_policy.builder.errors.group\");\n        return false;\n      }\n      if ((0, _utils.isBlank)(this.policy.version)) {\n        this.flash = (0, _discourseI18n.i18n)(\"discourse_policy.builder.errors.version\");\n        return false;\n      }\n      return true;\n    }\n    static #_5 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <DModal\n          @title={{i18n \"discourse_policy.builder.title\"}}\n          @closeModal={{@closeModal}}\n          @flash={{this.flash}}\n          @flashType=\"error\"\n          class=\"policy-builder\"\n        >\n          <:body>\n            <PolicyBuilderForm\n              @policy={{this.policy}}\n              @onChange={{fn set this.policy}}\n            />\n          </:body>\n    \n          <:footer>\n            {{#if @model.insertMode}}\n              <DButton\n                @label=\"discourse_policy.builder.insert\"\n                @action={{this.insertPolicy}}\n                class=\"btn-primary\"\n              />\n            {{else}}\n              <DButton\n                @label=\"discourse_policy.builder.save\"\n                @action={{this.updatePolicy}}\n                @isLoading={{this.isSaving}}\n                class=\"btn-primary\"\n              />\n            {{/if}}\n          </:footer>\n        </DModal>\n      \n    */\n    {\n      \"id\": \"RlsHX5Wh\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],[[24,0,\\\"policy-builder\\\"]],[[\\\"@title\\\",\\\"@closeModal\\\",\\\"@flash\\\",\\\"@flashType\\\"],[[28,[32,1],[\\\"discourse_policy.builder.title\\\"],null],[30,1],[30,0,[\\\"flash\\\"]],\\\"error\\\"]],[[\\\"body\\\",\\\"footer\\\"],[[[[1,\\\"\\\\n        \\\"],[8,[32,2],null,[[\\\"@policy\\\",\\\"@onChange\\\"],[[30,0,[\\\"policy\\\"]],[28,[32,3],[[32,4],[30,0,[\\\"policy\\\"]]],null]]],null],[1,\\\"\\\\n      \\\"]],[]],[[[1,\\\"\\\\n\\\"],[41,[30,2,[\\\"insertMode\\\"]],[[[1,\\\"          \\\"],[8,[32,5],[[24,0,\\\"btn-primary\\\"]],[[\\\"@label\\\",\\\"@action\\\"],[\\\"discourse_policy.builder.insert\\\",[30,0,[\\\"insertPolicy\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"          \\\"],[8,[32,5],[[24,0,\\\"btn-primary\\\"]],[[\\\"@label\\\",\\\"@action\\\",\\\"@isLoading\\\"],[\\\"discourse_policy.builder.save\\\",[30,0,[\\\"updatePolicy\\\"]],[30,0,[\\\"isSaving\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[\\\"@closeModal\\\",\\\"@model\\\"],false,[\\\"if\\\"]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-policy/discourse/components/modal/policy-builder.js\",\n      \"scope\": () => [_dModal.default, _discourseI18n.i18n, _policyBuilderForm.default, _helper.fn, _object.set, _dButton.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PolicyBuilder;\n});","define(\"discourse/plugins/discourse-policy/discourse/components/policy-builder-form\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"discourse/plugins/discourse-policy/discourse/components/policy-form-field\", \"discourse/plugins/discourse-policy/discourse/components/policy-group-input\", \"discourse/plugins/discourse-policy/discourse/components/policy-reminder-input\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _helper, _modifier, _object, _policyFormField, _policyGroupInput, _policyReminderInput, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PolicyBuilderForm extends _component.default {\n    changeValue(field, event) {\n      this.args.onChange(field, event.target.value);\n    }\n    static #_ = (() => dt7948.n(this.prototype, \"changeValue\", [_object.action]))();\n    changeBoolValue(field, event) {\n      this.args.onChange(field, event.target.checked);\n    }\n    static #_2 = (() => dt7948.n(this.prototype, \"changeBoolValue\", [_object.action]))();\n    static #_3 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <PolicyFormField @name=\"groups\" @required={{true}}>\n          <PolicyGroupInput\n            @groups={{@policy.groups}}\n            @onChangeGroup={{fn @onChange \"groups\"}}\n          />\n        </PolicyFormField>\n    \n        <PolicyFormField @name=\"version\" @required={{true}}>\n          <input\n            name=\"version\"\n            type=\"number\"\n            value={{readonly @policy.version}}\n            {{on \"input\" (fn this.changeValue \"version\")}}\n          />\n        </PolicyFormField>\n    \n        <PolicyFormField @name=\"renew\">\n          <input\n            name=\"renew\"\n            type=\"number\"\n            value={{readonly @policy.renew}}\n            {{on \"input\" (fn this.changeValue \"renew\")}}\n          />\n        </PolicyFormField>\n    \n        <PolicyFormField @name=\"renew-start\">\n          <input\n            type=\"date\"\n            placeholder=\"2020-03-31\"\n            name=\"renew-start\"\n            value={{readonly (get @policy \"renew-start\")}}\n            {{on \"input\" (fn this.changeValue \"renew-start\")}}\n          />\n        </PolicyFormField>\n    \n        <PolicyFormField @name=\"reminder\">\n          <PolicyReminderInput\n            @reminder={{@policy.reminder}}\n            @onChangeReminder={{fn @onChange \"reminder\"}}\n          />\n        </PolicyFormField>\n    \n        <PolicyFormField @name=\"accept\">\n          <input\n            type=\"text\"\n            name=\"accept\"\n            value={{readonly @policy.accept}}\n            {{on \"input\" (fn this.changeValue \"accept\")}}\n          />\n        </PolicyFormField>\n    \n        <PolicyFormField @name=\"revoke\">\n          <input\n            type=\"text\"\n            name=\"revoke\"\n            value={{readonly @policy.revoke}}\n            {{on \"input\" (fn this.changeValue \"revoke\")}}\n          />\n        </PolicyFormField>\n    \n        <PolicyFormField @name=\"add-users-to-group\">\n          <PolicyGroupInput\n            @groups={{get @policy \"add-users-to-group\"}}\n            @onChangeGroup={{fn @onChange \"add-users-to-group\"}}\n          />\n        </PolicyFormField>\n    \n        <PolicyFormField @name=\"private\">\n          <input\n            type=\"checkbox\"\n            name=\"private\"\n            checked={{readonly @policy.private}}\n            {{on \"click\" (fn this.changeBoolValue \"private\")}}\n          />\n        </PolicyFormField>\n      \n    */\n    {\n      \"id\": \"+3h7/ZqU\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\",\\\"@required\\\"],[\\\"groups\\\",true]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[32,1],null,[[\\\"@groups\\\",\\\"@onChangeGroup\\\"],[[30,1,[\\\"groups\\\"]],[28,[32,2],[[30,2],\\\"groups\\\"],null]]],null],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\",\\\"@required\\\"],[\\\"version\\\",true]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[11,\\\"input\\\"],[24,3,\\\"version\\\"],[16,2,[28,[31,0],[[30,1,[\\\"version\\\"]]],null]],[24,4,\\\"number\\\"],[4,[32,3],[\\\"input\\\",[28,[32,2],[[30,0,[\\\"changeValue\\\"]],\\\"version\\\"],null]],null],[12],[13],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\"],[\\\"renew\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[11,\\\"input\\\"],[24,3,\\\"renew\\\"],[16,2,[28,[31,0],[[30,1,[\\\"renew\\\"]]],null]],[24,4,\\\"number\\\"],[4,[32,3],[\\\"input\\\",[28,[32,2],[[30,0,[\\\"changeValue\\\"]],\\\"renew\\\"],null]],null],[12],[13],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\"],[\\\"renew-start\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[11,\\\"input\\\"],[24,\\\"placeholder\\\",\\\"2020-03-31\\\"],[24,3,\\\"renew-start\\\"],[16,2,[28,[31,0],[[28,[32,4],[[30,1],\\\"renew-start\\\"],null]],null]],[24,4,\\\"date\\\"],[4,[32,3],[\\\"input\\\",[28,[32,2],[[30,0,[\\\"changeValue\\\"]],\\\"renew-start\\\"],null]],null],[12],[13],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\"],[\\\"reminder\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[32,5],null,[[\\\"@reminder\\\",\\\"@onChangeReminder\\\"],[[30,1,[\\\"reminder\\\"]],[28,[32,2],[[30,2],\\\"reminder\\\"],null]]],null],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\"],[\\\"accept\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[11,\\\"input\\\"],[24,3,\\\"accept\\\"],[16,2,[28,[31,0],[[30,1,[\\\"accept\\\"]]],null]],[24,4,\\\"text\\\"],[4,[32,3],[\\\"input\\\",[28,[32,2],[[30,0,[\\\"changeValue\\\"]],\\\"accept\\\"],null]],null],[12],[13],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\"],[\\\"revoke\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[11,\\\"input\\\"],[24,3,\\\"revoke\\\"],[16,2,[28,[31,0],[[30,1,[\\\"revoke\\\"]]],null]],[24,4,\\\"text\\\"],[4,[32,3],[\\\"input\\\",[28,[32,2],[[30,0,[\\\"changeValue\\\"]],\\\"revoke\\\"],null]],null],[12],[13],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\"],[\\\"add-users-to-group\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[32,1],null,[[\\\"@groups\\\",\\\"@onChangeGroup\\\"],[[28,[32,4],[[30,1],\\\"add-users-to-group\\\"],null],[28,[32,2],[[30,2],\\\"add-users-to-group\\\"],null]]],null],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,0],null,[[\\\"@name\\\"],[\\\"private\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[11,\\\"input\\\"],[24,3,\\\"private\\\"],[16,\\\"checked\\\",[28,[31,0],[[30,1,[\\\"private\\\"]]],null]],[24,4,\\\"checkbox\\\"],[4,[32,3],[\\\"click\\\",[28,[32,2],[[30,0,[\\\"changeBoolValue\\\"]],\\\"private\\\"],null]],null],[12],[13],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[\\\"@policy\\\",\\\"@onChange\\\"],false,[\\\"readonly\\\"]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-policy/discourse/components/policy-builder-form.js\",\n      \"scope\": () => [_policyFormField.default, _policyGroupInput.default, _helper.fn, _modifier.on, _object.get, _policyReminderInput.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PolicyBuilderForm;\n});","define(\"discourse/plugins/discourse-policy/discourse/components/policy-form-field\", [\"exports\", \"@ember/helper\", \"discourse-i18n\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _helper, _discourseI18n, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PolicyFormFields = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <div class=\"policy-field {{@name}}\">\n      <div class=\"policy-field-label\">\n        <span class=\"label\">\n          {{i18n (concat \"discourse_policy.builder.\" @name \".label\")}}\n          {{#if @required}}\n            <span class=\"required-field\">*</span>\n          {{/if}}\n        </span>\n      </div>\n  \n      <div class=\"policy-field-control\">\n        {{yield}}\n      </div>\n  \n      <span class=\"policy-field-description\">\n        <span class=\"description\">\n          {{i18n (concat \"discourse_policy.builder.\" @name \".description\")}}\n        </span>\n      </span>\n    </div>\n  \n  */\n  {\n    \"id\": \"zNKlka3G\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,0],[15,0,[29,[\\\"policy-field \\\",[30,1]]]],[12],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"policy-field-label\\\"],[12],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"label\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,0],[[28,[32,1],[\\\"discourse_policy.builder.\\\",[30,1],\\\".label\\\"],null]],null]],[1,\\\"\\\\n\\\"],[41,[30,2],[[[1,\\\"          \\\"],[10,1],[14,0,\\\"required-field\\\"],[12],[1,\\\"*\\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[10,0],[14,0,\\\"policy-field-control\\\"],[12],[1,\\\"\\\\n      \\\"],[18,3,null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[10,1],[14,0,\\\"policy-field-description\\\"],[12],[1,\\\"\\\\n      \\\"],[10,1],[14,0,\\\"description\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,0],[[28,[32,1],[\\\"discourse_policy.builder.\\\",[30,1],\\\".description\\\"],null]],null]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@name\\\",\\\"@required\\\",\\\"&default\\\"],false,[\\\"if\\\",\\\"yield\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-policy/discourse/components/policy-form-field.js\",\n    \"scope\": () => [_discourseI18n.i18n, _helper.concat],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"policy-form-field:PolicyFormFields\"));\n  var _default = _exports.default = PolicyFormFields;\n});","define(\"discourse/plugins/discourse-policy/discourse/components/policy-group-input\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"select-kit/components/group-chooser\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _object, _service, _groupChooser, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PolicyGroupInput extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"site\", [_service.service]))();\n    #site = (() => (dt7948.i(this, \"site\"), void 0))();\n    get selectedGroups() {\n      return (this.args.groups || \"\").split(\",\").filter(Boolean);\n    }\n    get availableGroups() {\n      return (this.site.groups || []).map(g =>\n      // prevents group \"everyone\" to be listed\n      g.id === 0 ? null : g.name).filter(Boolean);\n    }\n    onChange(values) {\n      this.args.onChangeGroup?.(values.join(\",\"));\n    }\n    static #_2 = (() => dt7948.n(this.prototype, \"onChange\", [_object.action]))();\n    static #_3 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        <GroupChooser\n          @content={{this.availableGroups}}\n          @valueProperty={{null}}\n          @nameProperty={{null}}\n          @value={{this.selectedGroups}}\n          @onChange={{this.onChange}}\n        />\n      \n    */\n    {\n      \"id\": \"k+Z64mu9\",\n      \"block\": \"[[[1,\\\"\\\\n    \\\"],[8,[32,0],null,[[\\\"@content\\\",\\\"@valueProperty\\\",\\\"@nameProperty\\\",\\\"@value\\\",\\\"@onChange\\\"],[[30,0,[\\\"availableGroups\\\"]],null,null,[30,0,[\\\"selectedGroups\\\"]],[30,0,[\\\"onChange\\\"]]]],null],[1,\\\"\\\\n  \\\"]],[],false,[]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-policy/discourse/components/policy-group-input.js\",\n      \"scope\": () => [_groupChooser.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PolicyGroupInput;\n});","define(\"discourse/plugins/discourse-policy/discourse/components/policy-reminder-input\", [\"exports\", \"@ember/helper\", \"discourse-i18n\", \"select-kit/components/combo-box\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _helper, _discourseI18n, _comboBox, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const VALID_REMINDERS = [{\n    id: \"daily\",\n    name: (0, _discourseI18n.i18n)(\"daily\")\n  }, {\n    id: \"weekly\",\n    name: (0, _discourseI18n.i18n)(\"weekly\")\n  }];\n  const PolicyReminderInput = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <ComboBox\n      @value={{@reminder}}\n      @content={{VALID_REMINDERS}}\n      @options={{hash none=\"discourse_policy.builder.reminder.no_reminder\"}}\n      @onChange={{@onChangeReminder}}\n    />\n  \n  */\n  {\n    \"id\": \"1eKJOaUI\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@value\\\",\\\"@content\\\",\\\"@options\\\",\\\"@onChange\\\"],[[30,1],[32,1],[28,[32,2],null,[[\\\"none\\\"],[\\\"discourse_policy.builder.reminder.no_reminder\\\"]]],[30,2]]],null],[1,\\\"\\\\n\\\"]],[\\\"@reminder\\\",\\\"@onChangeReminder\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-policy/discourse/components/policy-reminder-input.js\",\n    \"scope\": () => [_comboBox.default, VALID_REMINDERS, _helper.hash],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"policy-reminder-input:PolicyReminderInput\"));\n  var _default = _exports.default = PolicyReminderInput;\n});","define(\"discourse/plugins/discourse-policy/discourse/components/post-policy\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"truth-helpers\", \"discourse/components/d-button\", \"discourse/helpers/bound-avatar-template\", \"discourse/helpers/d-icon\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/lib/decorators\", \"discourse-i18n\", \"discourse/plugins/discourse-policy/discourse/components/modal/policy-builder\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _component, _tracking, _modifier, _object, _service, _truthHelpers, _dButton, _boundAvatarTemplate, _dIcon, _ajax, _ajaxError, _decorators, _discourseI18n, _policyBuilder, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class PostPolicy extends _component.default {\n    static #_ = (() => dt7948.g(this.prototype, \"appEvents\", [_service.service]))();\n    #appEvents = (() => (dt7948.i(this, \"appEvents\"), void 0))();\n    static #_2 = (() => dt7948.g(this.prototype, \"currentUser\", [_service.service]))();\n    #currentUser = (() => (dt7948.i(this, \"currentUser\"), void 0))();\n    static #_3 = (() => dt7948.g(this.prototype, \"modal\", [_service.service]))();\n    #modal = (() => (dt7948.i(this, \"modal\"), void 0))();\n    static #_4 = (() => dt7948.g(this.prototype, \"isLoading\", [_tracking.tracked], function () {\n      return false;\n    }))();\n    #isLoading = (() => (dt7948.i(this, \"isLoading\"), void 0))();\n    static #_5 = (() => dt7948.g(this.prototype, \"showNotAccepted\", [_tracking.tracked], function () {\n      return false;\n    }))();\n    #showNotAccepted = (() => (dt7948.i(this, \"showNotAccepted\"), void 0))();\n    constructor() {\n      super(...arguments);\n      this.post?.setProperties({\n        policy_accepted_by: this.post?.policy_accepted_by || [],\n        policy_not_accepted_by: this.post?.policy_not_accepted_by || []\n      });\n      this.appEvents.on(\"policy:changed\", this, \"policyChanged\");\n    }\n    willDestroy() {\n      super.willDestroy(...arguments);\n      this.appEvents.off(\"policy:changed\", this, \"policyChanged\");\n    }\n    get post() {\n      return this.args.post;\n    }\n    get policy() {\n      return this.args.policy;\n    }\n    async policyChanged(data) {\n      if (data.message.id !== this.post.id) {\n        return;\n      }\n      const stream = data.controller.get(\"model.postStream\");\n      const post = stream.findLoadedPost(data.message.id);\n      if (post) {\n        const result = await (0, _ajax.ajax)(`/posts/${post.id}.json`);\n        this.post.setProperties({\n          policy_can_accept: result.policy_can_accept,\n          policy_can_revoke: result.policy_can_revoke,\n          policy_accepted: result.policy_accepted,\n          policy_revoked: result.policy_revoked,\n          policy_not_accepted_by: result.policy_not_accepted_by || [],\n          policy_not_accepted_by_count: result.policy_not_accepted_by_count,\n          policy_accepted_by: result.policy_accepted_by || [],\n          policy_accepted_by_count: result.policy_accepted_by_count\n        });\n      }\n    }\n    static #_6 = (() => dt7948.n(this.prototype, \"policyChanged\", [_decorators.bind]))();\n    get policyHasUsers() {\n      return (this.post?.policy_not_accepted_by_count || 0 + this.post?.policy_accepted_by_count || 0) > 0;\n    }\n    get acceptButtonClasses() {\n      let classes = \"accept btn-accept-policy\";\n      if (!this.post?.policy_accepted || this.post?.policy_revoked) {\n        classes += \" btn-primary\";\n      }\n      return classes;\n    }\n    get revokeButtonClasses() {\n      let classes = \"revoke btn-revoke-policy\";\n      if (!this.post?.policy_revoked || this.post?.policy_accepted) {\n        classes += \" btn-danger\";\n      }\n      return classes;\n    }\n    get remainingAcceptedUsers() {\n      return (this.post?.policy_accepted_by_count || 0) - (this.post?.policy_accepted_by || []).length;\n    }\n    get acceptedUsers() {\n      return this.post?.policy_accepted_by || [];\n    }\n    get remainingNotAcceptedUsers() {\n      return (this.post?.get(\"policy_not_accepted_by_count\") || 0) - (this.post?.get(\"policy_not_accepted_by\") || []).length;\n    }\n    get notAcceptedUsers() {\n      return this.post?.get(\"policy_not_accepted_by\") || [];\n    }\n    get canManagePolicy() {\n      return this.currentUser && (this.currentUser.staff || this.currentUser.id === this.post?.get(\"user_id\"));\n    }\n    revokePolicy() {\n      this.post.policy_not_accepted_by.pushObject(this.currentUser);\n      this.post.set(\"policy_not_accepted_by_count\", this.post.policy_not_accepted_by_count + 1);\n      const obj = this.post.policy_accepted_by.findBy(\"id\", this.currentUser.id);\n      if (obj) {\n        this.post.policy_accepted_by.removeObject(obj);\n        this.post.set(\"policy_accepted_by_count\", this.post.policy_accepted_by_count - 1);\n      }\n      if (this.post.policy_can_accept !== this.post.policy_can_revoke) {\n        this.post.setProperties({\n          policy_can_accept: true,\n          policy_can_revoke: false,\n          policy_accepted: false,\n          policy_revoked: true\n        });\n      }\n      this._updatePolicy(\"unaccept\", this.post.id);\n    }\n    static #_7 = (() => dt7948.n(this.prototype, \"revokePolicy\", [_object.action]))();\n    acceptPolicy() {\n      this.post.policy_accepted_by.pushObject(this.currentUser);\n      this.post.set(\"policy_accepted_by_count\", this.post.policy_accepted_by_count + 1);\n      const obj = this.post.policy_not_accepted_by.findBy(\"id\", this.currentUser.id);\n      if (obj) {\n        this.post.policy_not_accepted_by.removeObject(obj);\n        this.post.set(\"policy_not_accepted_by_count\", this.post.policy_not_accepted_by_count - 1);\n      }\n      if (this.post.policy_can_accept !== this.post.policy_can_revoke) {\n        this.post.setProperties({\n          policy_can_accept: false,\n          policy_can_revoke: true,\n          policy_accepted: true,\n          policy_revoked: false\n        });\n      }\n      this._updatePolicy(\"accept\", this.post.id);\n    }\n    static #_8 = (() => dt7948.n(this.prototype, \"acceptPolicy\", [_object.action]))();\n    async loadRemainingAcceptedUsers(event) {\n      event.preventDefault();\n      try {\n        const result = await (0, _ajax.ajax)(`/policy/accepted`, {\n          data: {\n            post_id: this.post.id,\n            offset: this.post.policy_accepted_by.length\n          }\n        });\n        result.users.forEach(user => {\n          this.post.policy_accepted_by.pushObject(user);\n        });\n      } catch (e) {\n        (0, _ajaxError.popupAjaxError)(e);\n      }\n    }\n    static #_9 = (() => dt7948.n(this.prototype, \"loadRemainingAcceptedUsers\", [_object.action]))();\n    async loadRemainingNotAcceptedUsers(event) {\n      event.preventDefault();\n      try {\n        const result = await (0, _ajax.ajax)(`/policy/accepted`, {\n          data: {\n            post_id: this.post.id,\n            offset: this.post.policy_not_accepted_by.length\n          }\n        });\n        result.users.forEach(user => {\n          this.post.policy_not_accepted_by.pushObject(user);\n        });\n      } catch (e) {\n        (0, _ajaxError.popupAjaxError)(e);\n      }\n    }\n    static #_10 = (() => dt7948.n(this.prototype, \"loadRemainingNotAcceptedUsers\", [_object.action]))();\n    editPolicy() {\n      this.modal.show(_policyBuilder.default, {\n        model: {\n          insertMode: false,\n          post: this.post,\n          policy: this.policy\n        }\n      });\n    }\n    static #_11 = (() => dt7948.n(this.prototype, \"editPolicy\", [_object.action]))();\n    toggleShowUsers(event) {\n      event.preventDefault();\n      this.showNotAccepted = !this.showNotAccepted;\n    }\n    static #_12 = (() => dt7948.n(this.prototype, \"toggleShowUsers\", [_object.action]))();\n    async _updatePolicy(policyAction, id) {\n      this.isLoading = true;\n      try {\n        await (0, _ajax.ajax)(`/policy/${policyAction}`, {\n          type: \"PUT\",\n          data: {\n            post_id: id\n          }\n        });\n      } catch (e) {\n        (0, _ajaxError.popupAjaxError)(e);\n      } finally {\n        this.isLoading = false;\n      }\n    }\n    static #_13 = (() => (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      \n        {{#if this.post}}\n          <div class=\"policy-footer\">\n            <div class=\"policy-actions\">\n              {{#if this.post.policy_can_accept}}\n                <DButton\n                  @isLoading={{this.isLoading}}\n                  @action={{this.acceptPolicy}}\n                  class={{this.acceptButtonClasses}}\n                  @translatedLabel={{this.policy.accept}}\n                  @icon={{if this.post.policy_accepted \"check\"}}\n                />\n              {{/if}}\n    \n              {{#if this.post.policy_can_revoke}}\n                <DButton\n                  @isLoading={{this.isLoading}}\n                  @action={{this.revokePolicy}}\n                  class={{this.revokeButtonClasses}}\n                  @translatedLabel={{this.policy.revoke}}\n                  @icon={{if this.post.policy_revoked \"check\"}}\n                />\n              {{/if}}\n            </div>\n    \n            <div class=\"user-lists\">\n              {{#if (and (not this.policyHasUsers) this.post.policy_stats)}}\n                <span class=\"no-possible-users\">\n                  {{i18n \"discourse_policy.no_possible_users\"}}\n                </span>\n              {{/if}}\n    \n              {{#if this.post.policy_accepted_by_count}}\n                <a\n                  href\n                  {{on \"click\" this.toggleShowUsers}}\n                  title={{i18n \"discourse_policy.accepted_tooltip\"}}\n                  class=\"toggle toggle-accepted\"\n                >\n                  <span class=\"user-count\">\n                    {{this.post.policy_accepted_by_count}}\n                  </span>\n                  {{icon \"user-check\"}}\n                </a>\n    \n                {{#unless this.showNotAccepted}}\n                  {{#if this.acceptedUsers.length}}\n                    <div class=\"users accepted\">\n                      {{#each this.acceptedUsers as |acceptedUser|}}\n                        {{avatar acceptedUser.avatar_template \"tiny\"}}\n                      {{/each}}\n    \n                      {{#if this.remainingAcceptedUsers}}\n                        <a\n                          href\n                          {{on \"click\" this.loadRemainingAcceptedUsers}}\n                          class=\"load-more-users\"\n                        >\n                          +\n                          {{this.remainingAcceptedUsers}}\n                          {{icon \"user\"}}\n                        </a>\n                      {{/if}}\n                    </div>\n                  {{/if}}\n                {{/unless}}\n              {{/if}}\n    \n              {{#if this.post.policy_not_accepted_by_count}}\n                <div class=\"separator\"></div>\n    \n                <a\n                  href\n                  {{on \"click\" this.toggleShowUsers}}\n                  title={{i18n \"discourse_policy.not_accepted_tooltip\"}}\n                  class=\"toggle toggle-not-accepted\"\n                >\n                  <span class=\"user-count\">\n                    {{this.post.policy_not_accepted_by_count}}\n                  </span>\n                  {{icon \"user-xmark\"}}\n                </a>\n    \n                {{#if this.showNotAccepted}}\n                  <div class=\"users not-accepted\">\n                    {{#each this.notAcceptedUsers as |notAcceptedUser|}}\n                      {{avatar notAcceptedUser.avatar_template \"tiny\"}}\n                    {{/each}}\n    \n                    {{#if this.remainingNotAcceptedUsers}}\n                      <a\n                        href\n                        {{on \"click\" this.loadRemainingNotAcceptedUsers}}\n                        class=\"load-more-users\"\n                      >\n                        +\n                        {{this.remainingNotAcceptedUsers}}\n                        {{icon \"user\"}}\n                      </a>\n                    {{/if}}\n                  </div>\n                {{/if}}\n              {{/if}}\n            </div>\n    \n            {{#if this.canManagePolicy}}\n              <DButton\n                @action={{this.editPolicy}}\n                @icon=\"gear\"\n                class=\"no-text btn-default edit-policy-settings-btn\"\n              />\n            {{/if}}\n          </div>\n        {{/if}}\n      \n    */\n    {\n      \"id\": \"/j5UuImR\",\n      \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"post\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"policy-footer\\\"],[12],[1,\\\"\\\\n        \\\"],[10,0],[14,0,\\\"policy-actions\\\"],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"post\\\",\\\"policy_can_accept\\\"]],[[[1,\\\"            \\\"],[8,[32,0],[[16,0,[30,0,[\\\"acceptButtonClasses\\\"]]]],[[\\\"@isLoading\\\",\\\"@action\\\",\\\"@translatedLabel\\\",\\\"@icon\\\"],[[30,0,[\\\"isLoading\\\"]],[30,0,[\\\"acceptPolicy\\\"]],[30,0,[\\\"policy\\\",\\\"accept\\\"]],[52,[30,0,[\\\"post\\\",\\\"policy_accepted\\\"]],\\\"check\\\"]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"post\\\",\\\"policy_can_revoke\\\"]],[[[1,\\\"            \\\"],[8,[32,0],[[16,0,[30,0,[\\\"revokeButtonClasses\\\"]]]],[[\\\"@isLoading\\\",\\\"@action\\\",\\\"@translatedLabel\\\",\\\"@icon\\\"],[[30,0,[\\\"isLoading\\\"]],[30,0,[\\\"revokePolicy\\\"]],[30,0,[\\\"policy\\\",\\\"revoke\\\"]],[52,[30,0,[\\\"post\\\",\\\"policy_revoked\\\"]],\\\"check\\\"]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\\n        \\\"],[10,0],[14,0,\\\"user-lists\\\"],[12],[1,\\\"\\\\n\\\"],[41,[28,[32,1],[[28,[32,2],[[30,0,[\\\"policyHasUsers\\\"]]],null],[30,0,[\\\"post\\\",\\\"policy_stats\\\"]]],null],[[[1,\\\"            \\\"],[10,1],[14,0,\\\"no-possible-users\\\"],[12],[1,\\\"\\\\n              \\\"],[1,[28,[32,3],[\\\"discourse_policy.no_possible_users\\\"],null]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"post\\\",\\\"policy_accepted_by_count\\\"]],[[[1,\\\"            \\\"],[11,3],[24,6,\\\"\\\"],[16,\\\"title\\\",[28,[32,3],[\\\"discourse_policy.accepted_tooltip\\\"],null]],[24,0,\\\"toggle toggle-accepted\\\"],[4,[32,4],[\\\"click\\\",[30,0,[\\\"toggleShowUsers\\\"]]],null],[12],[1,\\\"\\\\n              \\\"],[10,1],[14,0,\\\"user-count\\\"],[12],[1,\\\"\\\\n                \\\"],[1,[30,0,[\\\"post\\\",\\\"policy_accepted_by_count\\\"]]],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n              \\\"],[1,[28,[32,5],[\\\"user-check\\\"],null]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[51,[30,0,[\\\"showNotAccepted\\\"]]],[[[41,[30,0,[\\\"acceptedUsers\\\",\\\"length\\\"]],[[[1,\\\"                \\\"],[10,0],[14,0,\\\"users accepted\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,3],[[28,[31,3],[[30,0,[\\\"acceptedUsers\\\"]]],null]],null],null,[[[1,\\\"                    \\\"],[1,[28,[32,6],[[30,1,[\\\"avatar_template\\\"]],\\\"tiny\\\"],null]],[1,\\\"\\\\n\\\"]],[1]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"remainingAcceptedUsers\\\"]],[[[1,\\\"                    \\\"],[11,3],[24,6,\\\"\\\"],[24,0,\\\"load-more-users\\\"],[4,[32,4],[\\\"click\\\",[30,0,[\\\"loadRemainingAcceptedUsers\\\"]]],null],[12],[1,\\\"\\\\n                      +\\\\n                      \\\"],[1,[30,0,[\\\"remainingAcceptedUsers\\\"]]],[1,\\\"\\\\n                      \\\"],[1,[28,[32,5],[\\\"user\\\"],null]],[1,\\\"\\\\n                    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"                \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],null]],[]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"post\\\",\\\"policy_not_accepted_by_count\\\"]],[[[1,\\\"            \\\"],[10,0],[14,0,\\\"separator\\\"],[12],[13],[1,\\\"\\\\n\\\\n            \\\"],[11,3],[24,6,\\\"\\\"],[16,\\\"title\\\",[28,[32,3],[\\\"discourse_policy.not_accepted_tooltip\\\"],null]],[24,0,\\\"toggle toggle-not-accepted\\\"],[4,[32,4],[\\\"click\\\",[30,0,[\\\"toggleShowUsers\\\"]]],null],[12],[1,\\\"\\\\n              \\\"],[10,1],[14,0,\\\"user-count\\\"],[12],[1,\\\"\\\\n                \\\"],[1,[30,0,[\\\"post\\\",\\\"policy_not_accepted_by_count\\\"]]],[1,\\\"\\\\n              \\\"],[13],[1,\\\"\\\\n              \\\"],[1,[28,[32,5],[\\\"user-xmark\\\"],null]],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"showNotAccepted\\\"]],[[[1,\\\"              \\\"],[10,0],[14,0,\\\"users not-accepted\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,3],[[28,[31,3],[[30,0,[\\\"notAcceptedUsers\\\"]]],null]],null],null,[[[1,\\\"                  \\\"],[1,[28,[32,6],[[30,2,[\\\"avatar_template\\\"]],\\\"tiny\\\"],null]],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"remainingNotAcceptedUsers\\\"]],[[[1,\\\"                  \\\"],[11,3],[24,6,\\\"\\\"],[24,0,\\\"load-more-users\\\"],[4,[32,4],[\\\"click\\\",[30,0,[\\\"loadRemainingNotAcceptedUsers\\\"]]],null],[12],[1,\\\"\\\\n                    +\\\\n                    \\\"],[1,[30,0,[\\\"remainingNotAcceptedUsers\\\"]]],[1,\\\"\\\\n                    \\\"],[1,[28,[32,5],[\\\"user\\\"],null]],[1,\\\"\\\\n                  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"              \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\\n\\\"],[41,[30,0,[\\\"canManagePolicy\\\"]],[[[1,\\\"          \\\"],[8,[32,0],[[24,0,\\\"no-text btn-default edit-policy-settings-btn\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,0,[\\\"editPolicy\\\"]],\\\"gear\\\"]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[\\\"acceptedUser\\\",\\\"notAcceptedUser\\\"],false,[\\\"if\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n      \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-policy/discourse/components/post-policy.js\",\n      \"scope\": () => [_dButton.default, _truthHelpers.and, _truthHelpers.not, _discourseI18n.i18n, _modifier.on, _dIcon.default, _boundAvatarTemplate.default],\n      \"isStrictMode\": true\n    }), this))();\n  }\n  _exports.default = PostPolicy;\n});","define(\"discourse/plugins/discourse-policy/discourse/connectors/user-preferences-emails-pref-email-settings/preferences-policy-emails\", [\"exports\", \"@ember/helper\", \"truth-helpers\", \"discourse-i18n\", \"select-kit/components/combo-box\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _helper, _truthHelpers, _discourseI18n, _comboBox, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const EMAIL_FREQUENCY_OPTIONS = [{\n    name: (0, _discourseI18n.i18n)(\"discourse_policy.preferences.policy_emails.email_frequency_options.never\"),\n    value: \"never\"\n  }, {\n    name: (0, _discourseI18n.i18n)(\"discourse_policy.preferences.policy_emails.email_frequency_options.when_away\"),\n    value: \"when_away\"\n  }, {\n    name: (0, _discourseI18n.i18n)(\"discourse_policy.preferences.policy_emails.email_frequency_options.always\"),\n    value: \"always\"\n  }];\n  const PreferencesPolicyEmails = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <h3>{{i18n \"discourse_policy.preferences.title\"}}</h3>\n  \n    <div class=\"control-group policy-setting controls-dropdown\">\n      <label for=\"user_policy_email_frequency\">\n        {{i18n \"discourse_policy.preferences.policy_emails.label\"}}\n      </label>\n  \n      <ComboBox\n        @valueProperty=\"value\"\n        @content={{EMAIL_FREQUENCY_OPTIONS}}\n        @value={{@outletArgs.model.user_option.policy_email_frequency}}\n        @onChange={{fn\n          (mut @outletArgs.model.user_option.policy_email_frequency)\n        }}\n        @id=\"user_policy_email_frequency\"\n      />\n  \n      {{#if (eq @outletArgs.model.user_option.policy_email_frequency \"always\")}}\n        <div class=\"control-instructions\">\n          {{i18n \"discourse_policy.preferences.policy_emails.always_description\"}}\n        </div>\n      {{else if\n        (eq @outletArgs.model.user_option.policy_email_frequency \"when_away\")\n      }}\n        <div class=\"control-instructions\">\n          {{i18n \"discourse_policy.preferences.policy_emails.away_description\"}}\n        </div>\n      {{/if}}\n    </div>\n  \n  */\n  {\n    \"id\": \"9k+1XAIr\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[10,\\\"h3\\\"],[12],[1,[28,[32,0],[\\\"discourse_policy.preferences.title\\\"],null]],[13],[1,\\\"\\\\n\\\\n  \\\"],[10,0],[14,0,\\\"control-group policy-setting controls-dropdown\\\"],[12],[1,\\\"\\\\n    \\\"],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"user_policy_email_frequency\\\"],[12],[1,\\\"\\\\n      \\\"],[1,[28,[32,0],[\\\"discourse_policy.preferences.policy_emails.label\\\"],null]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\\n    \\\"],[8,[32,1],null,[[\\\"@valueProperty\\\",\\\"@content\\\",\\\"@value\\\",\\\"@onChange\\\",\\\"@id\\\"],[\\\"value\\\",[32,2],[30,1,[\\\"model\\\",\\\"user_option\\\",\\\"policy_email_frequency\\\"]],[28,[32,3],[[28,[31,0],[[30,1,[\\\"model\\\",\\\"user_option\\\",\\\"policy_email_frequency\\\"]]],null]],null],\\\"user_policy_email_frequency\\\"]],null],[1,\\\"\\\\n\\\\n\\\"],[41,[28,[32,4],[[30,1,[\\\"model\\\",\\\"user_option\\\",\\\"policy_email_frequency\\\"]],\\\"always\\\"],null],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"control-instructions\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,0],[\\\"discourse_policy.preferences.policy_emails.always_description\\\"],null]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[41,[28,[32,4],[[30,1,[\\\"model\\\",\\\"user_option\\\",\\\"policy_email_frequency\\\"]],\\\"when_away\\\"],null],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"control-instructions\\\"],[12],[1,\\\"\\\\n        \\\"],[1,[28,[32,0],[\\\"discourse_policy.preferences.policy_emails.away_description\\\"],null]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"]],[]],null]],[]]],[1,\\\"  \\\"],[13],[1,\\\"\\\\n\\\"]],[\\\"@outletArgs\\\"],false,[\\\"mut\\\",\\\"if\\\"]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-policy/discourse/connectors/user-preferences-emails-pref-email-settings/preferences-policy-emails.js\",\n    \"scope\": () => [_discourseI18n.i18n, _comboBox.default, EMAIL_FREQUENCY_OPTIONS, _helper.fn, _truthHelpers.eq],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"preferences-policy-emails:PreferencesPolicyEmails\"));\n  var _default = _exports.default = PreferencesPolicyEmails;\n});","define(\"discourse/plugins/discourse-policy/discourse/initializers/add-policy-builder\", [\"exports\", \"discourse/lib/plugin-api\", \"discourse/plugins/discourse-policy/discourse/components/modal/policy-builder\"], function (_exports, _pluginApi, _policyBuilder) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  function initializePolicyBuilder(api, container) {\n    const currentUser = api.getCurrentUser();\n    const siteSettings = container.lookup(\"service:site-settings\");\n    const modal = container.lookup(\"service:modal\");\n    if (currentUser) {\n      api.addComposerToolbarPopupMenuOption({\n        label: \"discourse_policy.builder.attach\",\n        icon: \"file-signature\",\n        group: \"insertions\",\n        action: toolbarEvent => {\n          modal.show(_policyBuilder.default, {\n            model: {\n              insertMode: true,\n              post: null,\n              toolbarEvent\n            }\n          });\n        },\n        condition: () => !siteSettings.policy_restrict_to_staff_posts || currentUser.staff\n      });\n    }\n  }\n  var _default = _exports.default = {\n    name: \"add-discourse-policy-builder\",\n    initialize(container) {\n      const siteSettings = container.lookup(\"service:site-settings\");\n      if (siteSettings.policy_enabled) {\n        (0, _pluginApi.withPluginApi)(api => initializePolicyBuilder(api, container));\n      }\n    }\n  };\n});","define(\"discourse/plugins/discourse-policy/discourse/initializers/extend-for-policy\", [\"exports\", \"@ember/object\", \"discourse/lib/plugin-api\", \"discourse/lib/utilities\", \"discourse-i18n\", \"discourse/plugins/discourse-policy/discourse/components/post-policy\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _object, _pluginApi, _utilities, _discourseI18n, _postPolicy, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const SETTINGS = [{\n    name: \"groups\"\n  }, {\n    name: \"version\"\n  }, {\n    name: \"renew\"\n  }, {\n    name: \"renew-start\",\n    camelName: \"renewStart\"\n  }, {\n    name: \"reminder\"\n  }, {\n    name: \"accept\",\n    default: (0, _discourseI18n.i18n)(\"discourse_policy.accept_policy\"),\n    escape: true\n  }, {\n    name: \"revoke\",\n    default: (0, _discourseI18n.i18n)(\"discourse_policy.revoke_policy\"),\n    escape: true\n  }, {\n    name: \"add-users-to-group\",\n    camelName: \"addUsersToGroup\"\n  }];\n  const PolicyWrapper = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n    <PostPolicy @post={{@data.post}} @policy={{@data.policy}} />\n  \n  */\n  {\n    \"id\": \"Ss96fqZL\",\n    \"block\": \"[[[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@post\\\",\\\"@policy\\\"],[[30,1,[\\\"post\\\"]],[30,1,[\\\"policy\\\"]]]],null],[1,\\\"\\\\n\\\"]],[\\\"@data\\\"],false,[]]\",\n    \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-policy/discourse/initializers/extend-for-policy.js\",\n    \"scope\": () => [_postPolicy.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"extend-for-policy:PolicyWrapper\"));\n  function _buildPolicyAttributes(policy) {\n    const form = {};\n    SETTINGS.forEach(setting => {\n      form[setting.name] = policy.dataset[setting.camelName || setting.name] || setting.default || \"\";\n      if (setting.escape) {\n        form[setting.name] = (0, _utilities.escapeExpression)(form[setting.name]);\n      }\n    });\n    if (!form.version || parseInt(form.version, 10) < 1) {\n      form.version = 1;\n    }\n    form.private = policy.dataset.private === \"true\";\n    return _object.default.create(form);\n  }\n  function attachPolicy(cooked, helper) {\n    const policy = cooked.querySelector(\".policy\");\n    if (!policy) {\n      return;\n    }\n    policy.innerHTML = `<div class=\"policy-body\">${policy.innerHTML}</div>`;\n    const post = helper?.getModel();\n    if (!post) {\n      // if no post it means we are decorating the preview, make it clear it's a policy\n      const policyPreview = document.createElement(\"div\");\n      policyPreview.classList.add(\"policy-preview\");\n      policyPreview.innerText = (0, _discourseI18n.i18n)(\"discourse_policy.title\");\n      policy.prepend(policyPreview);\n      return;\n    }\n    helper.renderGlimmer(policy, PolicyWrapper, {\n      post,\n      policy: _buildPolicyAttributes(policy)\n    });\n  }\n  var _default = _exports.default = {\n    name: \"extend-for-policy\",\n    initialize() {\n      (0, _pluginApi.withPluginApi)(function (api) {\n        api.decorateCookedElement(attachPolicy, {\n          onlyStream: false,\n          id: \"discourse-policy\"\n        });\n        api.registerCustomPostMessageCallback(\"policy_change\", (controller, message) => {\n          controller.appEvents.trigger(\"policy:changed\", {\n            controller,\n            message\n          });\n        });\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-policy/lib/discourse-markdown/policy\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.setup = setup;\n  const rule = {\n    tag: \"policy\",\n    wrap(token, info) {\n      if (!info.attrs.group && !info.attrs.groups) {\n        return false;\n      }\n      token.attrs = [[\"class\", \"policy\"]];\n\n      // defaults to version 1 of the policy\n      info.attrs.version ||= 1;\n      for (let key of Object.keys(info.attrs).sort()) {\n        token.attrs.push([`data-${key}`, info.attrs[key]]);\n      }\n      return true;\n    }\n  };\n  function setup(helper) {\n    helper.allowList([\"div.policy\"]);\n    helper.registerOptions((opts, siteSettings) => {\n      opts.features.policy = !!siteSettings.policy_enabled;\n    });\n    helper.registerPlugin(md => {\n      md.block.bbcode.ruler.push(\"policy\", rule);\n    });\n  }\n});","define(\"discourse/plugins/discourse-policy/pre-initializers/policy-user-options\", [\"exports\", \"discourse/controllers/preferences/emails\", \"discourse/lib/plugin-api\"], function (_exports, _emails, _pluginApi) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const SEND_EMAIL_NOTIFICATIONS_FIELD = \"policy_email_frequency\";\n  var _default = _exports.default = {\n    name: \"policy-user-options\",\n    initialize(container) {\n      (0, _pluginApi.withPluginApi)(api => {\n        const siteSettings = container.lookup(\"service:site-settings\");\n        if (siteSettings.policy_enabled) {\n          api.addSaveableUserOptionField(SEND_EMAIL_NOTIFICATIONS_FIELD);\n        }\n      });\n      _emails.default.reopen({\n        init() {\n          this._super(...arguments);\n          this.saveAttrNames.push(SEND_EMAIL_NOTIFICATIONS_FIELD);\n        }\n      });\n    }\n  };\n});"],"mappings":"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","ignoreList":[]}