{"version":3,"file":"js/890-627538b58a4e10eea247.chunk.js","mappings":"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","sources":["webpack://agra/./app/javascript/components/inputs/trix-text-input.vue","webpack://agra/./app/javascript/components/inputs/trix/editor.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/button.vue?c891","webpack://agra/./app/javascript/components/inputs/trix/toolbar/icon-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/icon-button.vue?221f","webpack://agra/./app/javascript/components/inputs/trix/toolbar/attach-files-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/bold-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/code-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/h1-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/indent-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/italic-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/link-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/ol-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/outdent-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/quote-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/redo-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/ul-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/undo-button.vue","webpack://agra/./app/javascript/components/inputs/trix/toolbar/undo-button.vue?585e","webpack://agra/./app/javascript/components/inputs/trix/toolbar/attach-files-button.vue?410a","webpack://agra/./app/javascript/components/inputs/trix/toolbar/bold-button.vue?fdf5","webpack://agra/./app/javascript/components/inputs/trix/toolbar/code-button.vue?a672","webpack://agra/./app/javascript/components/inputs/trix/toolbar/h1-button.vue?6e5a","webpack://agra/./app/javascript/components/inputs/trix/toolbar/indent-button.vue?c924","webpack://agra/./app/javascript/components/inputs/trix/toolbar/italic-button.vue?f78b","webpack://agra/./app/javascript/components/inputs/trix/toolbar/link-button.vue?08e5","webpack://agra/./app/javascript/components/inputs/trix/toolbar/ol-button.vue?0382","webpack://agra/./app/javascript/components/inputs/trix/toolbar/outdent-button.vue?8905","webpack://agra/./app/javascript/components/inputs/trix/toolbar/quote-button.vue?ba70","webpack://agra/./app/javascript/components/inputs/trix/toolbar/redo-button.vue?a1bc","webpack://agra/./app/javascript/components/inputs/trix/toolbar/ul-button.vue?af8c","webpack://agra/./app/javascript/components/inputs/trix/toolbar.vue?ca7a","webpack://agra/./app/javascript/components/inputs/trix/editor.vue?14e1","webpack://agra/./app/javascript/components/inputs/trix/content-blocks-dropdown.vue","webpack://agra/./app/javascript/components/inputs/trix/content-blocks-dropdown.vue?c8c0","webpack://agra/./app/javascript/components/inputs/trix/editor-with-content-blocks.vue","webpack://agra/./app/javascript/components/inputs/trix/editor-with-content-blocks.vue?5b6f","webpack://agra/./app/javascript/components/inputs/trix-text-input.vue?ff23"],"sourcesContent":["<template>\n  <div :class=\"{ 'is-invalid': showValidationError }\">\n    <label v-if=\"label\" :class=\"labelClasses\" :for=\"editorId\">\n      <required v-if=\"required\" />\n      {{ label }}\n    </label>\n\n    <editor-with-content-blocks v-if=\"anyContentBlocks\" ref=\"trix\" :src-content=\"value\" :input-name=\"inputName\"\n                                :content-blocks=\"contentBlocks\" :content-blocks-base-path=\"contentBlocksBasePath\"\n                                :show-html-mode=\"showHtmlMode\" :show-attach-files=\"showAttachFiles\" :show-code-button=\"showCodeButton\"\n                                @input=\"updateText\" @blur=\"$emit('blur')\" @focus=\"$emit('focus')\" @change-to-html-mode=\"changeToHtmlMode\" />\n\n    <editor v-else ref=\"trix\" :src-content=\"value\" :input-name=\"inputName\" :show-html-mode=\"showHtmlMode\"\n                   :show-attach-files=\"showAttachFiles\" :allowed-attachment-types=\"allowedAttachmentContentTypes\"\n                   :show-code-button=\"showCodeButton\" :show-heading-button=\"showHeadingButton\" @input=\"updateText\"\n                   @blur=\"$emit('blur')\" @focus=\"$emit('focus')\" @change-to-html-mode=\"changeToHtmlMode\" />\n\n    <p v-if=\"helpText\" class=\"form-text text-muted\" v-html=\"helpText\" />\n\n    <validation-errors v-if=\"showValidationError\" :errors=\"validationErrors\" />\n  </div>\n</template>\n\n<script>\nimport Editor from './trix/editor'\nimport EditorWithContentBlocks from './trix/editor-with-content-blocks'\nimport kebabCase from 'lodash/kebabCase'\nimport { nextTick } from 'vue'\nimport Required from '@/components/required'\nimport ValidationErrors from './validation-errors'\n\nexport default {\n  components: { Editor, EditorWithContentBlocks, Required, ValidationErrors },\n\n  props: {\n    allowedAttachmentContentTypes: {\n      type: Array,\n      required: false\n    },\n    contentBlocks: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    contentBlocksBasePath: {\n      type: String,\n      required: false\n    },\n    helpText: {\n      type: String,\n      required: false\n    },\n    inputName: {\n      type: String,\n      required: false,\n      default: 'content'\n    },\n    label: {\n      type: String,\n      required: false\n    },\n    labelCssClass: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    required: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    showAttachFiles: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n    showCodeButton: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    showHeadingButton: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n    showHtmlMode: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n    value: {\n      type: String,\n      required: false\n    },\n    validationErrors: {\n      type: Array,\n      required: false\n    }\n  },\n\n  emits: ['blur', 'change-to-html-mode', 'focus', 'input'],\n\n  computed: {\n    anyContentBlocks() {\n      return this.contentBlocks.length > 0\n    },\n\n    editorId() {\n      return kebabCase(this.inputName)\n    },\n\n    labelClasses() {\n      return [this.labelCssClass, 'string', { 'required': this.required }]\n    },\n\n    showValidationError() {\n      return this.validationErrors && this.validationErrors.length > 0\n    }\n  },\n\n  methods: {\n    updateText(newValue) {\n      // Wait until the next tick, to avoid weirdness if emitting the new value\n      // causes our 'value' prop to be updated.\n      nextTick(() => {\n        this.$emit('input', newValue)\n      })\n    },\n\n    changeToHtmlMode() {\n      this.$emit('change-to-html-mode')\n    },\n\n    focus() {\n      this.$refs.trix.focus()\n    }\n  }\n}\n</script>\n","<template>\n  <div class=\"trix_container\">\n    <slot name=\"toolbar\" :toolbar-id=\"toolbarId\">\n      <toolbar :toolbar-id=\"toolbarId\" :show-html-mode-toggle=\"showHtmlMode\" :show-attach-files-button=\"showAttachFiles\"\n               :show-code-button=\"showCodeButton\" :show-heading-button=\"showHeadingButton\"\n               @change-to-html-mode=\"changeToHtmlMode\" />\n    </slot>\n\n    <trix-editor :id=\"editorId\" ref=\"trix\"\n                 :contenteditable=\"true\"\n                 :class=\"['trix-content']\"\n                 :input=\"inputId\"\n                 placeholder=\"\"\n                 :toolbar=\"toolbarId\"\n                 :data-direct-upload-url=\"activeStorageUploadUrl\"\n                 :data-blob-url-template=\"activeStorageBlobUrlTemplate\"\n                 @trix-change=\"handleContentChange\"\n                 @trix-attachment-add=\"emitAttachmentAdd\"\n                 @trix-attachment-remove=\"emitAttachmentRemove\"\n                 @trix-file-accept=\"handleFileAccept\"\n                 @trix-focus=\"processTrixFocus\"\n                 @trix-blur=\"processTrixBlur\"\n                 @trix-action-invoke=\"emitActionInvoke\" />\n\n    <input :id=\"inputId\"\n           type=\"hidden\"\n           :name=\"inputName\"\n           :value=\"editorContent\">\n  </div>\n</template>\n\n<script>\nimport '@/action-text' // Initialize ActionText to handle attachments from the Trix editor\nimport kebabCase from 'lodash/kebabCase'\nimport Toolbar from './toolbar'\n\nconst BLOB_URL_TEMPLATE = '/rails/active_storage/blobs/redirect/:signed_id/:filename'\n\nexport default {\n  components: { Toolbar },\n\n  props: {\n    allowedAttachmentTypes: {\n      type: Array,\n      required: false\n    },\n\n    inputName: {\n      type: String,\n      required: false,\n      default: 'content'\n    },\n\n    showAttachFiles: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    showCodeButton: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n\n    showHeadingButton: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    showHtmlMode: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    srcContent: {\n      type: String,\n      required: false,\n      default: ''\n    }\n  },\n\n  emits: ['blur', 'change-to-html-mode', 'focus', 'input', 'trix-attachment-add', 'trix-attachment-remove', 'trix-action-invoke'],\n\n  data() {\n    // Remove new lines from the content which are otherwise transformed to <br> tags\n    const contentWithoutNewLines = this.srcContent ? this.srcContent.replace(/\\n/g, '') : ''\n\n    return {\n      activeStorageBlobUrlTemplate: BLOB_URL_TEMPLATE,\n      editorContent: contentWithoutNewLines,\n      isActived: null\n    }\n  },\n\n  computed: {\n    activeStorageUploadUrl() {\n      return this.agraConfiguration.activeStorageDirectUploadsPath\n    },\n\n    editorId() {\n      return kebabCase(this.inputName)\n    },\n\n    inputId() {\n      return `${kebabCase(this.inputName)}-input`\n    },\n\n    toolbarId() {\n      return `${this.inputId}-toolbar`\n    }\n  },\n\n  watch: {\n    srcContent: {\n      handler: 'handleInitialContentChange'\n    }\n  },\n\n  methods: {\n    attachmentIsAllowedType(file) {\n      if (this.allowedAttachmentTypes) {\n        return this.allowedAttachmentTypes.includes(file.type)\n      } else {\n        // If allowedAttachmentTypes has not been specified, then assume everything is allowed.\n        return true\n      }\n    },\n\n    changeToHtmlMode() {\n      this.$emit('change-to-html-mode')\n    },\n\n    emitActionInvoke(evt) {\n      // Re-emit the event for anything else that might want to handle it\n      this.$emit('trix-action-invoke', evt)\n    },\n\n    emitAttachmentAdd(evt) {\n      // Re-emit the event for anything else that might want to handle it\n      this.$emit('trix-attachment-add', evt)\n    },\n\n    emitAttachmentRemove(evt) {\n      // Re-emit the event for anything else that might want to handle it\n      this.$emit('trix-attachment-remove', evt)\n    },\n\n    emitInput(newValue) {\n      if (!this.uploadInProgress()) {\n        this.$emit('input', newValue)\n      }\n    },\n\n    focus() {\n      this.isActived = true\n      this.$refs.trix.focus()\n    },\n\n    getContentEndPosition() {\n      return this.$refs.trix.editor.getDocument().toString().length - 1\n    },\n\n    handleContentChange(event) {\n      this.editorContent = event.srcElement ? event.srcElement.value : event.target.value\n      this.emitInput(this.editorContent)\n    },\n\n    handleFileAccept(event) {\n      // If file attachments are not allowed, then prevent files from being attached\n      // in case someone pastes or drag/drops a file into the editor.\n      // This is the way recommended by official Trix docs here:\n      // https://github.com/basecamp/trix?tab=readme-ov-file#storing-attached-files\n      if (!this.showAttachFiles || !this.attachmentIsAllowedType(event.file)) {\n        event.preventDefault()\n      }\n    },\n\n    handleInitialContentChange(newContent) {\n      newContent = newContent === undefined ? '' : newContent\n\n      if (this.$refs.trix.editor && this.$refs.trix.editor.innerHTML !== newContent) {\n        /* Update editor's content when initial content changed */\n        this.editorContent = newContent\n\n        /**\n         *  If user are typing, then don't reload the editor,\n         *  hence keep cursor's position after typing.\n         */\n        if (!this.isActived) {\n          this.reloadEditorContent(this.editorContent)\n        }\n      }\n    },\n\n    insertAttachment(attachment) {\n      this.$refs.trix.editor.insertAttachment(attachment)\n    },\n\n    processTrixBlur() {\n      if (this.$refs.trix) {\n        this.isActived = false\n      }\n\n      this.$emit('blur')\n    },\n\n    processTrixFocus() {\n      if (this.$refs.trix) {\n        this.isActived = true\n      }\n\n      this.$emit('focus')\n    },\n\n    reloadEditorContent(newContent) {\n      // Reload HTML content\n      this.$refs.trix.editor.loadHTML(newContent)\n\n      // Move cursor to end of new content updated\n      this.$refs.trix.editor.setSelectedRange(this.getContentEndPosition())\n    },\n\n    removeAttachment(attachment) {\n      this.$refs.trix.editor.composition.removeAttachment(attachment)\n    },\n\n    uploadInProgress() {\n      this.$refs.trix.editor.getDocument().getAttachments().map((attachment) => attachment.isPending()).length > 0\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"~mixins/rtl_only\" as rtl_override;\n\n.trix_container {\n  max-width: 100%;\n  height: auto;\n\n  ::v-deep(.trix-button-group) {\n    background-color: white;\n  }\n\n  ::v-deep(.trix-content) {\n    background-color: white;\n\n    @include rtl_override.rtl-only {\n      li {\n        margin-left: 0;\n        margin-right: 1em;\n      }\n    }\n  }\n}\n</style>\n","<template>\n  <trix-toolbar :id=\"toolbarId\">\n    <!-- We are using flexbox layout to avoid having a horizontal scroll on narrow screens.\n         In addition to avoiding a horizontal scrollbar for better usability of the toolbar tools,\n         this is necessary because of toolbar components which require a vertical overflow out of the toolbar,\n         such as the dropdown for inserting content blocks. Due to a bug in the implementation of CSS property\n         \"overflow\" in browsers, we are not able to use a horizontal scroll while having vertical overflow be visible as we need to.\n         See https://stackoverflow.com/a/17020278 and the comment in below CSS on .trix-button-row -->\n    <div class=\"d-flex flex-wrap flex-lg-nowrap\">\n      <div class=\"trix-button-row\">\n        <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\n          <bold-button />\n          <italic-button />\n          <link-button />\n        </span>\n        <span class=\"trix-button-group-spacer\" />\n        <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\n          <h1-button v-if=\"showHeadingButton\" />\n          <quote-button />\n          <code-button v-if=\"showCodeButton\" />\n          <ul-button />\n          <ol-button />\n          <outdent-button />\n          <indent-button />\n        </span>\n      </div>\n      <template v-if=\"showAttachmentsGroup\">\n        <div class=\"m-lg-2\" />\n        <div class=\"trix-button-row\">\n          <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\n            <attach-files-button v-if=\"showAttachFilesButton\" />\n            <div class=\"content-insertion-component\">\n              <slot name=\"content-insertion-component\" />\n            </div>\n          </span>\n        </div>\n      </template>\n      <div class=\"m-2\" />\n      <div class=\"trix-button-row\">\n        <span v-if=\"showHtmlModeToggle\" class=\"trix-button-group\">\n          <toolbar-button :button-text=\"htmlModeButtonText\" @click=\"changeToHtmlMode\" />\n        </span>\n        <span class=\"trix-button-group-spacer\" />\n        <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\n          <undo-button />\n          <redo-button />\n        </span>\n      </div>\n    </div>\n    <div class=\"trix-dialogs\" data-trix-dialogs>\n      <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\n        <div class=\"trix-dialog__link-fields\">\n          <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" :placeholder=\"lang.urlPlaceholder\"\n                 :aria-label=\"lang.url\" required data-trix-input>\n          <div class=\"trix-button-group\">\n            <input type=\"button\" class=\"trix-button trix-button--dialog\" :value=\"lang.link\"\n                   data-trix-method=\"setAttribute\">\n            <input type=\"button\" class=\"trix-button trix-button--dialog\" :value=\"lang.unlink\"\n                   data-trix-method=\"removeAttribute\">\n          </div>\n        </div>\n      </div>\n    </div>\n  </trix-toolbar>\n</template>\n\n<script>\nimport AttachFilesButton from './toolbar/attach-files-button'\nimport BoldButton from './toolbar/bold-button'\nimport CodeButton from './toolbar/code-button'\nimport H1Button from './toolbar/h1-button'\nimport IndentButton from './toolbar/indent-button'\nimport ItalicButton from './toolbar/italic-button'\nimport LinkButton from './toolbar/link-button'\nimport OlButton from './toolbar/ol-button'\nimport OutdentButton from './toolbar/outdent-button'\nimport QuoteButton from './toolbar/quote-button'\nimport RedoButton from './toolbar/redo-button'\nimport ToolbarButton from './toolbar/button'\nimport UlButton from './toolbar/ul-button'\nimport UndoButton from './toolbar/undo-button'\n\nexport default {\n  components: { AttachFilesButton, BoldButton, CodeButton, H1Button, IndentButton, ItalicButton,\n                LinkButton, OlButton, OutdentButton, QuoteButton, RedoButton, ToolbarButton, UlButton, UndoButton },\n\n  props: {\n    contentBlocks: {\n      type: Array,\n      required: false\n    },\n\n    showAttachFilesButton: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    showCodeButton: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n\n    showHeadingButton: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    showHtmlModeToggle: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    toolbarId: {\n      type: String,\n      required: true\n    }\n  },\n\n  emits: ['change-to-html-mode'],\n\n  data() {\n    return {\n      htmlModeButtonText: '<HTML>'\n    }\n  },\n\n  computed: {\n    lang() {\n      return this.i18n.t('components.trix_editor.toolbar')\n    },\n\n    showAttachmentsGroup() {\n      return this.showAttachFilesButton || !!this.$slots['content-insertion-component']\n    }\n  },\n\n  methods: {\n    changeToHtmlMode() {\n      this.$emit('change-to-html-mode')\n    }\n  }\n\n}\n</script>\n\n<style scoped lang=\"scss\">\n.trix-button-row {\n  // We must use `overflow: visible` here, not `overflow-y: visible`, due to the following bug in how browsers implement overflow properties:\n  // https://stackoverflow.com/a/17020278\n  overflow: visible;\n}\n\n.content-insertion-component {\n  $side-border: 1px solid #ccc;\n  border-left: $side-border;\n  height: 27px;\n}\n</style>\n","<template>\n  <button type=\"button\" class=\"trix-button\" :title=\"buttonText\" tabindex=\"-1\" @click=\"$emit('click')\">\n    {{ buttonText }}\n  </button>\n</template>\n\n<script>\nexport default {\n  props: {\n    buttonText: {\n      type: String,\n      required: true\n    }\n  },\n\n  emits: ['click']\n}\n</script>\n","import { render } from \"./button.vue?vue&type=template&id=4a6ee1a4\"\nimport script from \"./button.vue?vue&type=script&lang=js\"\nexport * from \"./button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <toolbar-button :button-text=\"buttonText\" class=\"trix-button--icon\" :class=\"iconClass\" />\n</template>\n\n<script>\nimport ToolbarButton from './button'\n\nexport default {\n  components: { ToolbarButton },\n\n  props: {\n    buttonText: {\n      type: String,\n      required: true\n    },\n\n    iconKey: {\n      type: String,\n      required: true\n    }\n  },\n\n  computed: {\n    iconClass() {\n      return `trix-button--icon-${this.iconKey}`\n    }\n  }\n}\n</script>\n","import { render } from \"./icon-button.vue?vue&type=template&id=5da10823\"\nimport script from \"./icon-button.vue?vue&type=script&lang=js\"\nexport * from \"./icon-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <icon-button icon-key=\"attach\" :button-text=\"i18n.t('components.trix_editor.toolbar.attachFiles')\"\n               data-trix-action=\"attachFiles\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button :button-text=\"i18n.t('components.trix_editor.toolbar.bold')\" icon-key=\"bold\"\n               data-trix-attribute=\"bold\" data-trix-key=\"b\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button :button-text=\"i18n.t('components.trix_editor.toolbar.code')\" icon-key=\"code\"\n               data-trix-attribute=\"code\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"heading-1\" :button-text=\"i18n.t('components.trix_editor.toolbar.heading1')\"\n\n               data-trix-attribute=\"heading1\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"increase-nesting-level\" :button-text=\"i18n.t('components.trix_editor.toolbar.indent')\"\n               data-trix-action=\"increaseNestingLevel\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"italic\" :button-text=\"i18n.t('components.trix_editor.toolbar.italic')\"\n               data-trix-attribute=\"italic\" data-trix-key=\"i\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"link\" :button-text=\"i18n.t('components.trix_editor.toolbar.link')\"\n               data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"number-list\" :button-text=\"i18n.t('components.trix_editor.toolbar.numbers')\"\n               data-trix-attribute=\"number\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"decrease-nesting-level\" :button-text=\"i18n.t('components.trix_editor.toolbar.outdent')\"\n               data-trix-action=\"decreaseNestingLevel\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"quote\" :button-text=\"i18n.t('components.trix_editor.toolbar.quote')\"\n               data-trix-attribute=\"quote\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"redo\" :button-text=\"i18n.t('components.trix_editor.toolbar.redo')\"\n               data-trix-action=\"redo\" data-trix-key=\"shift+z\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"bullet-list\" :button-text=\"i18n.t('components.trix_editor.toolbar.bullets')\"\n               data-trix-attribute=\"bullet\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","<template>\n  <icon-button icon-key=\"undo\" :button-text=\"i18n.t('components.trix_editor.toolbar.undo')\"\n               data-trix-action=\"undo\" data-trix-key=\"z\" />\n</template>\n\n<script>\nimport IconButton from './icon-button'\n\nexport default {\n  components: { IconButton }\n}\n</script>\n","import { render } from \"./undo-button.vue?vue&type=template&id=16cc8047\"\nimport script from \"./undo-button.vue?vue&type=script&lang=js\"\nexport * from \"./undo-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./attach-files-button.vue?vue&type=template&id=42b04484\"\nimport script from \"./attach-files-button.vue?vue&type=script&lang=js\"\nexport * from \"./attach-files-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./bold-button.vue?vue&type=template&id=4255448e\"\nimport script from \"./bold-button.vue?vue&type=script&lang=js\"\nexport * from \"./bold-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./code-button.vue?vue&type=template&id=265a737c\"\nimport script from \"./code-button.vue?vue&type=script&lang=js\"\nexport * from \"./code-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./h1-button.vue?vue&type=template&id=1f1a6e1e\"\nimport script from \"./h1-button.vue?vue&type=script&lang=js\"\nexport * from \"./h1-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./indent-button.vue?vue&type=template&id=7953204e\"\nimport script from \"./indent-button.vue?vue&type=script&lang=js\"\nexport * from \"./indent-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./italic-button.vue?vue&type=template&id=b24d0cd0\"\nimport script from \"./italic-button.vue?vue&type=script&lang=js\"\nexport * from \"./italic-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./link-button.vue?vue&type=template&id=691de415\"\nimport script from \"./link-button.vue?vue&type=script&lang=js\"\nexport * from \"./link-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ol-button.vue?vue&type=template&id=1ea4dd6c\"\nimport script from \"./ol-button.vue?vue&type=script&lang=js\"\nexport * from \"./ol-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./outdent-button.vue?vue&type=template&id=d8190b34\"\nimport script from \"./outdent-button.vue?vue&type=script&lang=js\"\nexport * from \"./outdent-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./quote-button.vue?vue&type=template&id=f3790134\"\nimport script from \"./quote-button.vue?vue&type=script&lang=js\"\nexport * from \"./quote-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./redo-button.vue?vue&type=template&id=7743593c\"\nimport script from \"./redo-button.vue?vue&type=script&lang=js\"\nexport * from \"./redo-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ul-button.vue?vue&type=template&id=796ef03f\"\nimport script from \"./ul-button.vue?vue&type=script&lang=js\"\nexport * from \"./ul-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./toolbar.vue?vue&type=template&id=8fde994e&scoped=true\"\nimport script from \"./toolbar.vue?vue&type=script&lang=js\"\nexport * from \"./toolbar.vue?vue&type=script&lang=js\"\n\nimport \"./toolbar.vue?vue&type=style&index=0&id=8fde994e&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8fde994e\"]])\n\nexport default __exports__","import { render } from \"./editor.vue?vue&type=template&id=3cbc1518&scoped=true\"\nimport script from \"./editor.vue?vue&type=script&lang=js\"\nexport * from \"./editor.vue?vue&type=script&lang=js\"\n\nimport \"./editor.vue?vue&type=style&index=0&id=3cbc1518&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3cbc1518\"]])\n\nexport default __exports__","<template>\n  <vue-multiselect class=\"content-blocks-dropdown dropdown\"\n                   open-direction=\"bottom\"\n                   :placeholder=\"i18n.t('components.trix_editor.toolbar.insertContent')\"\n                   :options=\"contentBlocks\"\n                   :show-labels=\"false\"\n                   @update:model-value=\"onClick\">\n    <template #option=\"props\">\n      {{ props.option.label }}\n    </template>\n  </vue-multiselect>\n</template>\n\n<script>\nimport VueMultiselect from 'vue-multiselect'\n\nexport default {\n  components: { VueMultiselect },\n\n  props: {\n    contentBlocks: {\n      type: Array,\n      required: true\n    }\n  },\n\n  emits: ['insert'],\n\n  methods: {\n    onClick(contentBlock) {\n      this.$emit('insert', contentBlock)\n    }\n  }\n}\n</script>\n\n\n<style lang=\"scss\" scoped>\n @use \"~friendship_styles/colors\" as colors;\n\n  .content-blocks-dropdown {\n    width: 200px;\n  }\n\n  // Overriding the height of the component requires changing a bunch of CSS.\n  // See: https://github.com/shentao/vue-multiselect/issues/143\n\n  $custom-height: 27px;\n\n  ::v-deep(.multiselect) {\n    height: $custom-height;\n    min-height: unset;\n  }\n\n  ::v-deep(.multiselect__placeholder) {\n    margin: 0 5px;\n  }\n\n  ::v-deep(.multiselect__tags) {\n    border: none;\n    border-radius: 0;\n    min-height: unset;\n    height:  $custom-height;\n    font-size: 11px;\n    padding: 0 2px;\n    display: flex;\n    align-items: center;\n\n    input {\n      font-size: 11px;\n      height: $custom-height;\n      margin-bottom: 0;\n      padding: 0 5px;\n    }\n  }\n\n  ::v-deep(.multiselect__select) {\n    height: $custom-height;\n    margin-top: auto;\n    margin-bottom: auto;\n  }\n\n  ::v-deep(.multiselect__option) {\n    font-size: 11px;\n  }\n\n  // Override highlight color for the selected option\n  ::v-deep(.multiselect__option--highlight) {\n    background: colors.$dark-blue;\n  }\n</style>\n","import { render } from \"./content-blocks-dropdown.vue?vue&type=template&id=7f21591a&scoped=true\"\nimport script from \"./content-blocks-dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./content-blocks-dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./content-blocks-dropdown.vue?vue&type=style&index=0&id=7f21591a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7f21591a\"]])\n\nexport default __exports__","<template>\n  <div>\n    <editor ref=\"editor\" :input-name=\"inputName\" :src-content=\"srcContent\"\n            @input=\"emitInput\" @blur=\"$emit('blur')\" @focus=\"$emit('focus')\" @trix-attachment-add=\"handleAttachmentAdd\"\n            @trix-attachment-remove=\"handleAttachmentRemove\" @trix-action-invoke=\"handleActionInvoke\">\n      <template #toolbar=\"{ toolbarId }\">\n        <toolbar :toolbar-id=\"toolbarId\" :content-blocks=\"contentBlocks\" :show-html-mode-toggle=\"showHtmlMode\"\n                 @change-to-html-mode=\"changeToHtmlMode\">\n          <template #content-insertion-component>\n            <content-blocks-dropdown :content-blocks=\"contentBlocks\" @insert=\"insertContentBlock\" />\n          </template>\n        </toolbar>\n      </template>\n    </editor>\n  </div>\n</template>\n\n<script>\nimport ajax from '@/helpers/ajax'\nimport ContentBlocksDropdown from './content-blocks-dropdown'\nimport Editor from './editor'\nimport Toolbar from './toolbar'\nimport Trix from 'trix'\n\nconst ATTACHMENT_KIND_CONTENT_BLOCK = 'contentBlock'\n\nexport default {\n  components: { ContentBlocksDropdown, Editor, Toolbar },\n\n  props: {\n    contentBlocks: {\n      type: Array,\n      required: true\n    },\n\n    contentBlocksBasePath: {\n      type: String,\n      required: false\n    },\n\n    inputName: {\n      type: String,\n      required: false\n    },\n\n    showHtmlMode: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    srcContent: {\n      type: String,\n      required: false\n    }\n  },\n\n  emits: ['blur', 'change-to-html-mode', 'focus', 'input', 'trix-attachment-add'],\n\n  methods: {\n    createContentBlockRecord({ kind, successCallback }) {\n      // Tell the server that this particular instance of this content block is being inserted,\n      // so it can create a record of it that has a persistent ID. We can then use the sgid we\n      // get back to refer to this block later.\n      ajax.post({\n        url: this.contentBlocksBasePath,\n        data: {\n          content_block: {\n            kind: kind\n          }\n        },\n        successHandler: successCallback\n      })\n    },\n\n    emitInput(newValue) {\n      this.$emit('input', newValue)\n    },\n\n    focus() {\n      this.$refs.editor.focus()\n    },\n\n    handleActionInvoke(evt) {\n      // Our custom \"Insert Content\" button on the toolbar causes Trix to emit 'trix-action-invoke'\n      // with the action 'x-content'.\n      if (evt.actionName === 'x-content') {\n        this.$refs.contentBlockSelector.open()\n      }\n    },\n\n    handleAttachmentAdd(evt) {\n      let attachment = evt.attachment\n\n      if (attachment.getAttribute('kind') === ATTACHMENT_KIND_CONTENT_BLOCK && !attachment.getAttribute('sgid')) {\n        // This happens when content is loaded into the editor that includes a contentBlock attachment without an sgid.\n        // For example, this can happen when certain email template content is applied.\n        // Do the appropriate process to obtain an sgid and add it to the attachment.\n        this.createContentBlockRecord({\n          kind: attachment.getAttribute('contentBlockKind'),\n          successCallback: ({ sgid }) => {\n            attachment.setAttributes({sgid: sgid})\n          }\n        })\n      }\n\n      // Re-emit the event for anything else that might want to handle it\n      this.$emit('trix-attachment-add', evt)\n    },\n\n    handleAttachmentRemove(evt) {\n      const attachment = evt.attachment\n\n      // If a content block is removed from the body, tell the server so it can delete its corresponding record.\n      if (attachment.getAttribute('kind') === ATTACHMENT_KIND_CONTENT_BLOCK) {\n        const sgid = attachment.getAttribute('sgid')\n        ajax.delete({\n          url: `${this.contentBlocksBasePath}/${sgid}`\n        })\n      }\n    },\n\n    insertContentBlock(contentBlock) {\n      // Tell the server so we get an sgid for this content block, then insert it via the Trix Editor interface.\n      this.createContentBlockRecord({\n        kind: contentBlock.kind,\n        successCallback: ({ sgid }) => {\n          const attachment = new Trix.Attachment({\n            content: contentBlock.content,\n            kind: ATTACHMENT_KIND_CONTENT_BLOCK,\n            sgid: sgid\n          })\n\n          this.$refs.editor.insertAttachment(attachment)\n        }\n      })\n    },\n\n    changeToHtmlMode() {\n      this.$emit('change-to-html-mode')\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep(.trix-content) {\n  .attachment--content {\n    width: 100%;\n  }\n}\n</style>\n","import { render } from \"./editor-with-content-blocks.vue?vue&type=template&id=8d482ece&scoped=true\"\nimport script from \"./editor-with-content-blocks.vue?vue&type=script&lang=js\"\nexport * from \"./editor-with-content-blocks.vue?vue&type=script&lang=js\"\n\nimport \"./editor-with-content-blocks.vue?vue&type=style&index=0&id=8d482ece&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8d482ece\"]])\n\nexport default __exports__","import { render } from \"./trix-text-input.vue?vue&type=template&id=09c1a96c\"\nimport script from \"./trix-text-input.vue?vue&type=script&lang=js\"\nexport * from \"./trix-text-input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","key","props","buttonText","type","String","required","emits","_createElementBlock","title","$props","tabindex","onClick","_cache","$event","_ctx","$emit","_hoisted_1","components","ToolbarButton","iconKey","computed","iconClass","this","_createBlock","_component_toolbar_button","_normalizeClass","$options","IconButton","AttachFilesButton","_component_icon_button","i18n","t","BoldButton","CodeButton","H1Button","IndentButton","ItalicButton","LinkButton","OlButton","OutdentButton","QuoteButton","RedoButton","UlButton","UndoButton","contentBlocks","Array","showAttachFilesButton","Boolean","default","showCodeButton","showHeadingButton","showHtmlModeToggle","toolbarId","data","htmlModeButtonText","lang","showAttachmentsGroup","$slots","methods","changeToHtmlMode","id","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_createVNode","_component_bold_button","_createTextVNode","_component_italic_button","_component_link_button","_hoisted_5","_component_h1_button","_createCommentVNode","_component_quote_button","_component_code_button","_component_ul_button","_component_ol_button","_component_outdent_button","_component_indent_button","_Fragment","_hoisted_6","_hoisted_7","_component_attach_files_button","_hoisted_8","_renderSlot","undefined","_hoisted_9","_hoisted_10","$data","_hoisted_11","_component_undo_button","_component_redo_button","_hoisted_12","_hoisted_13","_hoisted_14","name","placeholder","urlPlaceholder","url","_hoisted_15","_hoisted_16","value","link","_hoisted_17","unlink","_hoisted_18","Toolbar","allowedAttachmentTypes","inputName","showAttachFiles","showHtmlMode","srcContent","activeStorageBlobUrlTemplate","editorContent","replace","isActived","activeStorageUploadUrl","agraConfiguration","activeStorageDirectUploadsPath","editorId","kebabCase","inputId","watch","handler","attachmentIsAllowedType","file","includes","emitActionInvoke","evt","emitAttachmentAdd","emitAttachmentRemove","emitInput","newValue","uploadInProgress","focus","$refs","trix","getContentEndPosition","editor","getDocument","toString","length","handleContentChange","event","srcElement","target","handleFileAccept","preventDefault","handleInitialContentChange","newContent","innerHTML","reloadEditorContent","insertAttachment","attachment","processTrixBlur","processTrixFocus","loadHTML","setSelectedRange","removeAttachment","composition","getAttachments","map","isPending","_component_toolbar","onChangeToHtmlMode","ref","contenteditable","input","toolbar","onTrixChange","args","onTrixAttachmentAdd","onTrixAttachmentRemove","onTrixFileAccept","onTrixFocus","onTrixBlur","onTrixActionInvoke","VueMultiselect","contentBlock","_component_vue_multiselect","options","option","_withCtx","_toDisplayString","label","_","ATTACHMENT_KIND_CONTENT_BLOCK","ContentBlocksDropdown","Editor","contentBlocksBasePath","createContentBlockRecord","kind","successCallback","ajax","post","content_block","successHandler","handleActionInvoke","actionName","contentBlockSelector","open","handleAttachmentAdd","getAttribute","sgid","setAttributes","handleAttachmentRemove","delete","insertContentBlock","Trix","Attachment","content","_component_editor","onInput","onBlur","onFocus","_component_content_blocks_dropdown","onInsert","EditorWithContentBlocks","Required","ValidationErrors","allowedAttachmentContentTypes","helpText","labelCssClass","validationErrors","anyContentBlocks","labelClasses","showValidationError","updateText","nextTick","for","_component_required","_component_editor_with_content_blocks","_component_validation_errors","errors"],"sourceRoot":""}