{"version":3,"file":"action.mjs","sources":["../../../../packages/components/src/subject/action.ts"],"sourcesContent":["import { css, html, LitElement } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { safeCustomElement } from '../base/define'\nimport { subjectControlResetStyles, subjectHostStyles } from './shared-styles'\n\nconst answerTextList = [\n  { value: 2, label: '必须全部都是支持选项，方可下一步' },\n  { value: 1, label: '无需判断是否是支持选项' },\n  { value: 3, label: '包含全部支持选项，即可下一步' },\n]\n\nconst addSubjectOptions = [\n  { type: 'single', label: '单选题' },\n  { type: 'multiple', label: '多选题' },\n  { type: 'blank_fill', label: '填空题' },\n  { type: 'text_fill', label: '问答题' },\n  { type: 'scale', label: '量表题' },\n  { type: 'sort', label: '排序题' },\n  { type: 'page_end', label: '分页符' },\n]\n\n@safeCustomElement('qxs-subject-action')\nexport class QxsSubjectAction extends LitElement {\n  static styles = [subjectHostStyles, subjectControlResetStyles, css`\n    :host { font-size: 12px; }\n\n    .action { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; flex-wrap: wrap; gap: 8px; }\n    .action.active { background: transparent; }\n    .left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n    .right { display: flex; align-items: center; gap: 4px; }\n\n    .action-icon {\n      display: inline-flex; align-items: center; justify-content: center;\n      width: 32px; height: 32px; font-size: 18px; color: var(--qxs-subject-text-primary, #303133);\n      cursor: pointer; border-radius: 6px; border: 1px solid var(--qxs-subject-border, #dcdfe6);\n      background: var(--qxs-subject-fill-blank, #fff); transition: all 0.2s;\n    }\n    .action-icon:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-color-primary, #3D61E3); background: var(--qxs-subject-fill-soft-primary, #ecf5ff); }\n    .action-icon--danger:hover { color: var(--qxs-subject-color-danger, #f56c6c); border-color: var(--qxs-subject-color-danger, #f56c6c); background: var(--qxs-subject-fill-soft-danger, #fef0f0); }\n    .action-icon:disabled { color: var(--qxs-subject-text-disabled, #c0c4cc); cursor: not-allowed; opacity: 0.6; }\n\n    .text-btn {\n      display: inline-flex; align-items: center; gap: 4px;\n      padding: 6px 12px; font-size: 12px; border-radius: 3px;\n      cursor: pointer; border: 1px solid; transition: all 0.2s;\n    }\n    .text-btn--primary { background: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-color-primary, #3D61E3); color: var(--qxs-subject-fill-blank, #fff); }\n    .text-btn--primary:hover { background: var(--qxs-subject-color-primary-hover, #2D4CB8); border-color: var(--qxs-subject-color-primary-hover, #2D4CB8); }\n    .text-btn--default { background: var(--qxs-subject-fill-blank, #fff); border-color: var(--qxs-subject-border, #dcdfe6); color: var(--qxs-subject-text-regular, #606266); }\n    .text-btn--default:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-fill-soft-primary-border-strong, #bfd1ff); }\n    .text-btn--danger { background: var(--qxs-subject-color-danger, #f56c6c); border-color: var(--qxs-subject-color-danger, #f56c6c); color: var(--qxs-subject-fill-blank, #fff); }\n    .text-btn--danger:hover { background: var(--qxs-subject-color-danger-hover, #e05252); border-color: var(--qxs-subject-color-danger-hover, #e05252); }\n\n    .link-btn { background: none; border: none; color: var(--qxs-subject-color-primary, #3D61E3); cursor: pointer; font-size: 12px; }\n    .link-btn:hover { color: var(--qxs-subject-color-primary-hover, #2D4CB8); }\n\n    .checkbox-label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; color: var(--qxs-subject-text-regular, #606266); user-select: none; font-size: 12px; }\n    .checkbox-label.disabled { cursor: not-allowed; opacity: 0.6; }\n    .has-set { display: flex; align-items: center; font-size: 12px; color: #bbb; }\n    .answer-text { font-size: 11px; color: var(--qxs-subject-text-secondary, #909399); max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n\n    .btn-margin { margin-right: 10px; }\n\n    .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 2000; display: flex; align-items: center; justify-content: center; }\n    .modal { background: var(--qxs-subject-fill-blank, #fff); border-radius: 4px; min-width: 360px; max-width: 460px; box-shadow: 0 12px 32px rgba(0,0,0,.1); }\n    .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px 12px; border-bottom: 1px solid var(--qxs-subject-border-light, #e4e7ed); }\n    .modal-title { font-size: 14px; font-weight: 600; color: var(--qxs-subject-text-primary, #303133); }\n    .modal-close { background: none; border: none; font-size: 16px; cursor: pointer; color: var(--qxs-subject-text-secondary, #909399); padding: 0; line-height: 1; }\n    .modal-close:hover { color: var(--qxs-subject-color-primary, #3D61E3); }\n    .modal-body { padding: 20px; }\n    .modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--qxs-subject-border-light, #e4e7ed); }\n    .modal-footer button { padding: 6px 16px; font-size: 12px; border-radius: 3px; cursor: pointer; border: 1px solid var(--qxs-subject-border, #dcdfe6); background: var(--qxs-subject-fill-blank, #fff); color: var(--qxs-subject-text-regular, #606266); }\n    .modal-footer button:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-fill-soft-primary-border-strong, #bfd1ff); }\n    .modal-footer button.primary { background: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-color-primary, #3D61E3); color: var(--qxs-subject-fill-blank, #fff); }\n    .modal-footer button.primary:hover { background: var(--qxs-subject-color-primary-hover, #2D4CB8); border-color: var(--qxs-subject-color-primary-hover, #2D4CB8); }\n\n    .radio-item { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; cursor: pointer; font-size: 13px; color: var(--qxs-subject-text-regular, #606266); }\n    .radio-item:last-child { margin-bottom: 0; }\n\n    .inline-actions { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }\n    .add-menu-wrap { position: relative; display: inline-flex; }\n    .add-menu {\n      position: absolute; top: calc(100% + 6px); left: 0; z-index: 50;\n      display: grid; grid-template-columns: repeat(2, minmax(84px, 1fr)); gap: 8px;\n      min-width: 196px; padding: 10px; background: var(--qxs-subject-fill-blank, #fff); border: 1px solid var(--qxs-subject-border-light, #e4e7ed);\n      border-radius: 6px; box-shadow: var(--qxs-subject-shadow-soft, 0 8px 20px rgba(0,0,0,.12));\n    }\n    .add-item {\n      display: inline-flex; align-items: center; justify-content: center;\n      min-height: 30px; padding: 0 10px; border: 1px solid var(--qxs-subject-border, #dcdfe6); border-radius: 4px;\n      background: var(--qxs-subject-fill-blank, #fff); color: var(--qxs-subject-text-regular, #606266); font-size: 12px; cursor: pointer; transition: all .2s;\n    }\n    .add-item:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-color-primary, #3D61E3); background: var(--qxs-subject-fill-soft-primary, #ecf5ff); }\n  `]\n\n  @property({ type: Boolean, attribute: 'is-edit' }) 'is-edit' = false\n  @property({ type: Boolean, attribute: 'is-set' }) 'is-set' = false\n  @property({ type: Boolean, attribute: 'is-key' }) 'is-key' = false\n  @property({ type: Number, attribute: 'answer-check-type' }) 'answer-check-type' = 1\n  @property({ type: Boolean, attribute: 'show-other-option' }) 'show-other-option' = false\n  @property({ type: Boolean, attribute: 'show-answer-setting' }) 'show-answer-setting' = false\n  @property({ type: Boolean, attribute: 'show-key' }) 'show-key' = false\n  @property({ type: Boolean, attribute: 'show-rich-text' }) 'show-rich-text' = false\n  @property({ type: Boolean, attribute: 'hide-add-rich-text' }) 'hide-add-rich-text' = false\n  @property({ type: Boolean, attribute: 'show-delete-action' }) 'show-delete-action' = true\n  @property({ type: Boolean, attribute: 'show-save-action' }) 'show-save-action' = true\n  @property({ type: Boolean, attribute: 'page-end' }) 'page-end' = false\n  @property({ type: Boolean, attribute: 'show-move' }) 'show-move' = false\n  @property({ type: Boolean, attribute: 'show-add' }) 'show-add' = true\n  @property({ type: Boolean, attribute: 'show-jump' }) 'show-jump' = false\n  @property({ type: Number, attribute: 'exam-answer-relation-type' }) 'exam-answer-relation-type' = 0\n\n  @state() private _modalOpen = false\n  @state() private _currentCheckType = 1\n  @state() private _addMenuOpen = false\n\n  connectedCallback() {\n    super.connectedCallback()\n    document.addEventListener('click', this._handleDocumentClick)\n  }\n\n  disconnectedCallback() {\n    super.disconnectedCallback()\n    document.removeEventListener('click', this._handleDocumentClick)\n  }\n\n  updated(changed: Map<string, unknown>) {\n    if (changed.has('answer-check-type')) {\n      this._currentCheckType = this['answer-check-type']\n    }\n  }\n\n  private _handleDocumentClick = (e: MouseEvent) => {\n    const path = e.composedPath()\n    const wrap = this.shadowRoot?.querySelector('.add-menu-wrap')\n    if (wrap && !path.includes(wrap)) {\n      this._addMenuOpen = false\n    }\n  }\n\n  private _emit(name: string, detail?: unknown) {\n    this.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail: detail ?? null }))\n  }\n\n  private get _answerText() {\n    return answerTextList.find(i => i.value === this['answer-check-type'])?.label ?? ''\n  }\n\n  private get _showAnswerSetting() {\n    return this['show-other-option'] || this['show-answer-setting']\n  }\n\n  private get _showKey() {\n    return this['show-other-option'] || this['show-key']\n  }\n\n  private _renderEditMode() {\n    return html`\n      <div class=\"left\">\n        <span class=\"inline-actions\">\n          ${this['show-add']\n            ? html`\n            <span class=\"add-menu-wrap\">\n              <span class=\"link-btn\" @click=${() => { this._addMenuOpen = !this._addMenuOpen }}>在此题后加入新题</span>\n              ${this._renderAddMenu()}\n            </span>\n          `\n            : ''}\n          ${!this['hide-add-rich-text']\n            ? html`\n            <span class=\"link-btn\" @click=${() => this._emit('on-show-rich-text')}>\n              ${this['show-rich-text'] ? '删除题目描述（图文）' : '+添加题目描述（图文）'}\n            </span>\n          `\n            : ''}\n          ${this['show-jump']\n            ? html`\n            <span class=\"link-btn\" @click=${() => this._emit('jump')}>${this['is-set'] ? '编辑跳题逻辑' : '设置跳题逻辑'}</span>\n          `\n            : ''}\n          ${this._showAnswerSetting\n            ? html`\n            <span class=\"link-btn\" @click=${() => { this._modalOpen = true }}>答题设置</span>\n          `\n            : ''}\n          ${this._showKey\n            ? html`\n            <label class=\"checkbox-label\">\n              <input type=\"checkbox\" .checked=${this['is-key']} @change=${(e: Event) => this._emit('set-key', { value: (e.target as HTMLInputElement).checked })} />\n              核心题\n            </label>\n          `\n            : ''}\n        </span>\n      </div>\n      <div class=\"right\">\n        ${this['show-delete-action']\n          ? html`<button class=\"text-btn text-btn--danger btn-margin\" @click=${() => this._emit('delete')}>删除</button>`\n          : ''}\n        ${this['show-save-action']\n          ? html`<button class=\"text-btn text-btn--primary\" @click=${() => this._emit('save')}>完成编辑</button>`\n          : ''}\n      </div>\n    `\n  }\n\n  private _renderViewMode() {\n    return html`\n      <div class=\"left\">\n        <span class=\"inline-actions\">\n          ${this._showKey\n            ? html`\n            <label class=\"checkbox-label disabled\">\n              <input type=\"checkbox\" disabled .checked=${this['is-key']} /> 核心题\n            </label>\n          `\n            : ''}\n          ${this._showAnswerSetting\n            ? html`\n            <span class=\"answer-text\">${this._answerText}</span>\n          `\n            : ''}\n          ${this['show-add']\n            ? html`\n            <span class=\"add-menu-wrap\">\n              <span class=\"link-btn\" @click=${() => { this._addMenuOpen = !this._addMenuOpen }}>在此题后加入新题</span>\n              ${this._renderAddMenu()}\n            </span>\n          `\n            : ''}\n          ${this['show-jump']\n            ? html`\n            <span class=\"link-btn\" @click=${() => this._emit('jump')}>${this['is-set'] ? '编辑跳题逻辑' : '设置跳题逻辑'}</span>\n          `\n            : ''}\n        </span>\n      </div>\n      <div class=\"right\">\n        ${!this['is-set'] && this['show-move']\n          ? html`\n          <button class=\"text-btn text-btn--default\" @click=${() => this._emit('move', 'up')}>上移</button>\n          <button class=\"text-btn text-btn--default btn-margin\" @click=${() => this._emit('move', 'down')}>下移</button>\n        `\n          : ''}\n        ${!this['is-set'] && this['show-delete-action']\n          ? html`<button class=\"text-btn text-btn--danger btn-margin\" @click=${() => this._emit('delete')}>删除</button>`\n          : ''}\n        ${!this['page-end'] && !this['is-set']\n          ? html`\n          <button class=\"text-btn text-btn--default\" @click=${() => this._emit('edit')}>编辑</button>\n        `\n          : ''}\n      </div>\n    `\n  }\n\n  private _renderModal() {\n    if (!this._modalOpen) { return '' }\n    return html`\n      <div class=\"modal-backdrop\" @click=${() => { this._modalOpen = false }}>\n        <div class=\"modal\" @click=${(e: Event) => e.stopPropagation()}>\n          <div class=\"modal-header\">\n            <span class=\"modal-title\">答题设置</span>\n            <button class=\"modal-close\" @click=${() => { this._modalOpen = false }}>&#x2715;</button>\n          </div>\n          <div class=\"modal-body\">\n            ${answerTextList.map(item => html`\n              <label class=\"radio-item\">\n                <input type=\"radio\" name=\"answer-check-type\" .value=${String(item.value)}\n                  .checked=${this._currentCheckType === item.value}\n                  @change=${() => { this._currentCheckType = item.value }} />\n                ${item.label}\n              </label>\n            `)}\n          </div>\n          <div class=\"modal-footer\">\n            <button @click=${() => { this._modalOpen = false }}>取消</button>\n            <button class=\"primary\" @click=${() => {\n              this._emit('set-answer-setting', { value: this._currentCheckType })\n              this._modalOpen = false\n            }}>保存</button>\n          </div>\n        </div>\n      </div>\n    `\n  }\n\n  private _renderAddMenu() {\n    if (!this._addMenuOpen) { return '' }\n    return html`\n      <div class=\"add-menu\">\n        ${addSubjectOptions.map(item => html`\n          <button class=\"add-item\" @click=${() => {\n            this._addMenuOpen = false\n            this._emit('add', item.type)\n          }}>${item.label}</button>\n        `)}\n      </div>\n    `\n  }\n\n  render() {\n    return html`\n      <div class=\"action ${this['is-edit'] ? 'active' : ''}\">\n        ${this['is-edit'] ? this._renderEditMode() : this._renderViewMode()}\n        ${this['is-set'] ? html`<div class=\"has-set\">*此题设置了跳题逻辑</div>` : ''}\n      </div>\n      ${this._renderModal()}\n    `\n  }\n}\n\nexport function register() {}\n"],"names":["answerTextList","addSubjectOptions","QxsSubjectAction","LitElement","path","wrap","changed","name","detail","i","html","item","subjectHostStyles","subjectControlResetStyles","css","__decorateClass","property","state","safeCustomElement"],"mappings":"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"}