{"version":3,"sources":["AX6UIGrid_inline_editor.js"],"names":["_jqmin","require","_AX6UIGrid_body","edit_text","useReturnToSave","editMode","getHtml","_root","_columnKey","_editor","_value","attributes","attributesText","k","init","_$parent","$el","_jqmin2","default","this","_AX6UIGrid_body2","inlineEdit","bindUI","_$el","focus","select","edit_money","call","data","ax5formatter","$","extend","pattern","config","edit_number","edit_date","direction","content","type","onStateChanged","state","self","activePicker","attr","deActive","formatter","po","push","join","append","edit_select","optionText","optionSelected","eConfig","n","columnKeys","optionValue","options","activeSelectOptionGroup","forEach","ax5select","edit_checkbox","checked","lineHeight","body","columnHeight","columnPadding","columnBorderWidth","trueValue","height","marginTop","edit_textarea","offset","box","width","$newDiv","find","css","position","editorHeight","left","buttonHeight","top","value","ax5","util","stopEvent","e","originalEvent","$newTextarea","on","document","ESC","_getHtml","_bindUI","text","money","number","date","checkbox","textarea"],"mappings":"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","file":"AX6UIGrid_inline_editor.js","sourcesContent":["import jQuery from \"jqmin\";\nimport BODY from \"./AX6UIGrid_body\";\n\nconst edit_text = {\n  useReturnToSave: true,\n  editMode: \"popup\",\n  getHtml: function (_root, _columnKey, _editor, _value) {\n    if (typeof _editor.attributes !== \"undefined\") {\n      var attributesText = \"\";\n      for (var k in _editor.attributes) {\n        attributesText += ` ${k}='${_editor.attributes[k]}'`;\n      }\n    }\n    return `<input type=\"text\" data-ax6grid-editor=\"text\" value=\"${_value}\" ${attributesText}>`;\n  },\n  init: function (_root, _columnKey, _editor, _$parent, _value) {\n    var $el;\n    _$parent.append($el = jQuery(this.getHtml(_root, _columnKey, _editor, _value)));\n    this.bindUI(_root, _columnKey, $el, _editor, _$parent, _value);\n    $el.on(\"blur\", function () {\n      BODY.inlineEdit.deActive.call(_root, \"RETURN\", _columnKey);\n    });\n    return $el;\n  },\n  bindUI: function (_root, _columnKey, _$el, _editor, _$parent, _value) {\n    _$el.focus().select();\n  }\n};\n\nconst edit_money = {\n  useReturnToSave: true,\n  editMode: \"popup\",\n  getHtml: function (_root, _columnKey, _editor, _value) {\n    let attributesText = \"\";\n    if (typeof _editor.attributes !== \"undefined\") {\n      for (let k in _editor.attributes) {\n        attributesText += ` ${k}='${_editor.attributes[k]}'`;\n      }\n    }\n    return '<input type=\"text\" data-ax6grid-editor=\"money\" value=\"' + _value + '\" ' + attributesText + '\" />';\n  },\n  init: function (_root, _columnKey, _editor, _$parent, _value) {\n    let $el;\n    _$parent.append($el = jQuery(this.getHtml(_root, _columnKey, _editor, _value)));\n    this.bindUI(_root, _columnKey, $el, _editor, _$parent, _value);\n    $el.on(\"blur\", function () {\n      BODY.inlineEdit.deActive.call(_root, \"RETURN\", _columnKey);\n    });\n    return $el;\n  },\n  bindUI: function (_root, _columnKey, _$el, _editor, _$parent, _value) {\n    _$el.data(\"binded-ax5ui\", \"ax5formater\");\n    _$el.ax5formatter($.extend(true, {\n      pattern: \"money\"\n    }, _editor.config));\n    _$el.focus().select();\n  }\n};\n\nconst edit_number = {\n  useReturnToSave: true,\n  editMode: \"popup\",\n  getHtml: function (_root, _columnKey, _editor, _value) {\n    let attributesText = \"\";\n    if (typeof _editor.attributes !== \"undefined\") {\n      for (let k in _editor.attributes) {\n        attributesText += ` ${k}='${_editor.attributes[k]}'`;\n      }\n    }\n    return '<input type=\"text\" data-ax6grid-editor=\"number\" value=\"' + _value + '\" ' + attributesText + '\" />';\n  },\n  init: function (_root, _columnKey, _editor, _$parent, _value) {\n    var $el;\n    _$parent.append($el = jQuery(this.getHtml(_root, _columnKey, _editor, _value)));\n    this.bindUI(_root, _columnKey, $el, _editor, _$parent, _value);\n    $el.on(\"blur\", function () {\n      BODY.inlineEdit.deActive.call(_root, \"RETURN\", _columnKey);\n    });\n    return $el;\n  },\n  bindUI: function (_root, _columnKey, _$el, _editor, _$parent, _value) {\n    _$el.data(\"binded-ax5ui\", \"ax5formater\");\n    _$el.ax5formatter($.extend(true, {\n      pattern: \"number\"\n    }, _editor.config));\n    _$el.focus().select();\n  }\n};\n\nconst edit_date = {\n  useReturnToSave: true,\n  editMode: \"popup\",\n  getHtml: function (_root, _columnKey, _editor, _value) {\n    return '<input type=\"text\" data-ax6grid-editor=\"calendar\" value=\"' + _value + '\" >';\n  },\n  init: function (_root, _columnKey, _editor, _$parent, _value) {\n    var $el;\n    _$parent.append($el = jQuery(this.getHtml(_root, _columnKey, _editor, _value)));\n    this.bindUI(_root, _columnKey, $el, _editor, _$parent, _value);\n    return $el;\n  },\n  bindUI: function (_root, _columnKey, _$el, _editor, _$parent, _value) {\n    var self = _root;\n    _$el.data(\"binded-ax5ui\", \"ax5picker\");\n\n    _$el.ax5picker($.extend(true, {\n      direction: \"auto\",\n      content: {\n        type: 'date',\n        formatter: {\n          pattern: 'date'\n        }\n      },\n      onStateChanged: function () {\n        if (this.state == \"open\") {\n          this.self.activePicker.attr(\"data-ax6grid-inline-edit-picker\", \"date\");\n        } else if (this.state == \"close\") {\n          BODY.inlineEdit.deActive.call(self, \"RETURN\", _columnKey);\n        }\n      }\n    }, _editor.config));\n\n    _$el.focus().select();\n  }\n};\n\nconst edit_select = {\n  useReturnToSave: false,\n  editMode: \"popup\",\n  getHtml: function (_root, _columnKey, _editor, _value) {\n    var po = [];\n    po.push('<div data-ax5select=\"ax5grid-editor\" data-ax5select-config=\"{}\">');\n    po.push('</div>');\n\n    return po.join('');\n  },\n  init: function (_root, _columnKey, _editor, _$parent, _value) {\n    var $el;\n    _$parent.append($el = jQuery(this.getHtml(_root, _columnKey, _editor, _value)));\n    this.bindUI(_root, _columnKey, $el, _editor, _$parent, _value);\n    return $el;\n  },\n  bindUI: function (_root, _columnKey, _$el, _editor, _$parent, _value) {\n    var eConfig = {\n      columnKeys: {\n        optionValue: \"value\",\n        optionText: \"text\",\n        optionSelected: \"selected\"\n      }\n    };\n    jQuery.extend(true, eConfig, _editor.config);\n\n    eConfig.options.forEach(function (n) {\n      if (n[eConfig.columnKeys.optionValue] == _value) n[eConfig.columnKeys.optionSelected] = true;\n    });\n\n    var self = _root;\n    _$el.data(\"binded-ax5ui\", \"ax5select\");\n    _$el.ax5select($.extend(true, {\n      direction: \"auto\",\n      columnKeys: eConfig.columnKeys,\n      options: eConfig.options,\n      onStateChanged: function () {\n        if (this.state == \"open\") {\n          this.self.activeSelectOptionGroup.attr(\"data-ax6grid-inline-edit-picker\", \"select\");\n        } else if (this.state == \"changeValue\") {\n          BODY.inlineEdit.deActive.call(self, \"RETURN\", _columnKey, this.value[0][eConfig.columnKeys.optionValue]);\n        } else if (this.state == \"close\") {\n          BODY.inlineEdit.deActive.call(self, \"ESC\", _columnKey);\n        }\n      }\n    }, _editor.config));\n    _$el.ax5select(\"open\");\n    _$el.ax5select(\"setValue\", _value);\n    _$el.find(\"a\").focus();\n  }\n};\n\nconst edit_checkbox = {\n  editMode: \"inline\",\n  getHtml: function (_root, _editor, _value) {\n\n    var lineHeight = (_root.config.body.columnHeight - _root.config.body.columnPadding * 2 - _root.config.body.columnBorderWidth);\n    var checked;\n    if (_editor.config && _editor.config.trueValue) {\n      checked = (_value == _editor.config.trueValue) ? \"true\" : \"false\";\n    } else {\n      checked = (_value == false || _value == \"false\" || _value < \"1\") ? \"false\" : \"true\";\n    }\n\n    var eConfig = {\n      marginTop: 2,\n      height: lineHeight - 4\n    };\n    jQuery.extend(true, eConfig, _editor.config);\n    eConfig.marginTop = (lineHeight - eConfig.height) / 2;\n\n    return '<div data-ax6grid-editor=\"checkbox\" data-ax6grid-checked=\"' + checked + '\" style=\"height:' + eConfig.height + 'px;width:' + eConfig.height + 'px;margin-top:' + eConfig.marginTop + 'px;\"></div>';\n  }\n};\n\nconst edit_textarea = {\n  useReturnToSave: false,\n  editMode: \"popup\",\n  _getHtml: function (_root, _columnKey, _editor, _value) {\n    // init 에서 사용하게 될 HTML 태그를 만들어 줍니다.\n    return `<div data-ax6grid-editor=\"textarea\"></div>`;\n  },\n  _bindUI: function (_root, _columnKey, _$el, _editor, _$parent, _value) {\n    // 위치와 크기를 구합니다.\n    let offset = _$el.offset();\n    let box = {\n      width: _$el.width()\n    };\n    let editorHeight = 150;\n    let buttonHeight = 30;\n\n    // 새로운 엘리먼트 생성\n    let $newDiv = jQuery(`<div data-ax6grid-popup=\"textarea\" style=\"z-index: 9999;\">\n    <textarea style=\"width:100%;height:${editorHeight - buttonHeight}px;\" class=\"form-control\">${_value}</textarea>\n    <div style=\"height:${buttonHeight}px;padding:5px;text-align: right;\">\n        <button class=\"btn btn-default\">OK</button>\n    </div>\n</div>`);\n    let $newTextarea = $newDiv.find(\"textarea\");\n    // 엘리먼트에 CSS 적용\n    $newDiv.css({\n      position: \"absolute\",\n      left: offset.left,\n      top: offset.top,\n      width: box.width,\n      height: editorHeight\n    });\n    $newDiv.find(\"textarea\");\n\n    // 새로운 엘리먼트를 document.body에 append\n    jQuery(document.body).append($newDiv);\n    $newTextarea.focus().select();\n\n    $newTextarea.on(\"blur\", function (e) {\n      BODY.inlineEdit.deActive.call(_root, \"RETURN\", _columnKey, this.value);\n      $newDiv.remove();\n      ax5.util.stopEvent(e.originalEvent);\n    });\n    $newTextarea.on(\"keydown\", function (e) {\n      if (e.which == ax5.info.eventKeys.ESC) {\n        BODY.inlineEdit.deActive.call(_root, \"ESC\", _columnKey);\n        $newDiv.remove();\n        ax5.util.stopEvent(e.originalEvent);\n      }\n    });\n\n    /// 값 변경\n    /// BODY.inlineEdit.deActive.call(_root, \"RETURN\", _columnKey, this.value[0][eConfig.columnKeys.optionValue]);\n    /// 에디팅 취소\n    /// BODY.inlineEdit.deActive.call(_root, \"ESC\", _columnKey);\n  },\n\n  init: function (_root, _columnKey, _editor, _$parent, _value) {\n    // 인라인 에디팅 활성화 시작\n    /**\n     * _root : gridInstance\n     * _columnKey : di + \"_\" + col.colIndex + \"_\" + col.rowIndex\n     * _editor : col.editor\n     * _$parent : 셀\n     * _value : 값\n     */\n    let $el;\n    _$parent.append($el = jQuery(this._getHtml(_root, _columnKey, _editor, _value)));\n    // 셀에 HTML 컨텐츠 추가\n\n    this._bindUI(_root, _columnKey, $el, _editor, _$parent, _value);\n    // 이벤트 바인딩\n\n    return $el;\n  },\n};\n\nexport default {\n  \"text\": edit_text,\n  \"money\": edit_money,\n  \"number\": edit_number,\n  \"date\": edit_date,\n  \"select\": edit_select,\n  \"checkbox\": edit_checkbox,\n  \"textarea\": edit_textarea\n};"]}