PageSourceSearch

https://twinkle-nine.web.app/4321.b69160a3.chunk.js

js twinkle-nine.web.app collected 2026-10-03 13:44:53 UTC 96,734 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkts_boilerplate=self.webpackChunkts_boilerplate||[]).push([[4321],{14321:function(e,n,t){t.r(n),t.d(n,{default:function(){return ci}}),t(12064),t(44465),t(31863),t(3940),t(57045),t(75868),t(42652),t(10475),t(82106),t(85062),t(3233),t(20884),t(82185),t(32145),t(74277),t(86608),t(65114),t(61445),t(34068),t(32242),t(60039),t(66706),t(98832),t(51163),t(82758);var r,i,l,o=t(37953),a=t(84136),u=t(15548),c=t(92284),d=t(79661),s=t(79883),p=t(38190),f=t(80762),m=(t(24075),t(43732),t(97152),t(22798),t(65972)),b=t(71553),g=t(11510),v=t(19563),y=(t(3583),t(42575),t(31886),t(83483)),h=t(19730),x=t(53942),E=t(72575),P=t(89646),C=t(29080);function A(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function O(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function w(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var k=a.Ay.div(r||(r=w(["\n  display: flex;\n  align-items: center;\n  margin: 16px 0;\n"]))),I=a.Ay.div(i||(i=w(["\n  flex: 1;\n  height: 1px;\n  background: var(--lineColor);\n\n\n"]))),T=a.Ay.span(l||(l=w(["\n  font-size: ",";\n  color: var(--subTextColor);\n  font-weight: ",";\n  white-space: nowrap;\n\n  padding: 0 12px;\n"])),function(e){return e.fontSize||"14px"},function(e){return e.fontWeight||600}),j=o.memo(function(e){var n=e.text,t=e.fontSize,r=e.fontWeight,i=e.marginTop,l=e.marginBottom,a=e.gap,u=e.style,c=e.className,d=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?A(Object(t),!0).forEach(function(n){O(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):A(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}({marginTop:i,marginBottom:l,gap:a},u);return o.createElement(k,{style:d,className:c},o.createElement(I,{className:"left"}),n&&o.createElement(T,{fontSize:t,fontWeight:r},n),o.createElement(I,{className:"right"}))});j.displayName="DividerText";var D,S,F,L,R,M,z,_,q,G,B,U,H,X,N,K,W,V,Y,$,J=j,Z=t(51788),Q=t(67668);function ee(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}function ne(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function te(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?ne(Object(t),!0).forEach(function(n){re(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ne(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function re(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function ie(e){return function(e){if(Array.isArray(e))return ae(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||oe(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function le(){return le=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},le.apply(this,arguments)}function oe(e,n){if(e){if("string"==typeof e)return ae(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?ae(e,n):void 0}}function ae(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var ue=function(e){var n,t,r=e.field,i=(e.formConfig,e.handleUpdateField),l=e.handleDeleteField,a=(e.handleListDisplayMappingChange,(0,g.gl)({id:r.id})),u=a.attributes,c=a.listeners,d=a.setNodeRef,s=a.transform,p=a.transition,b=a.isDragging,A={transform:P.Ks.Transform.toString(s),transition:p},O=Object.entries(m.o5).map(function(e){var n,t,r=(t=2,function(e){if(Array.isArray(e))return e}(n=e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(n,t)||oe(n,t)||function(){throw new TypeError("Invalid attempt to de
1structure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=r[0];return{id:i,key:i,value:r[1]}}),w=(0,o.useCallback)(function(e){i(r.id,{type:e})},[r.id,i]),k=(0,o.useCallback)(function(e){i(r.id,{title:e.target.value})},[r.id,i]),I=(0,o.useCallback)(function(e){i(r.id,{description:e.target.value})},[r.id,i]),T=(0,o.useCallback)(function(){i(r.id,{required:!r.required})},[r.id,r.required,i]),j=(0,o.useCallback)(function(){i(r.id,{adminOnly:!r.adminOnly})},[r.id,r.adminOnly,i]),D=(0,o.useCallback)(function(){confirm("이 필드를 삭제하시겠습니까?")&&l(r.id)},[r.id,l]),S=r.type===m.PR.DIVIDER,F=!0===Q.l.photocardThemeSet,L=(0,y.useCollection)(F?h.Gf.PROFILE_TEMPLATE:null,{orderBy:["order","asc"],listen:!0}).data,R=(0,o.useMemo)(function(){var e=[{id:"none",key:"none",value:"템플릿 사용 안함"}];return L&&L.forEach(function(n){e.push({id:n.id||"",key:n.id||"",value:n.isDefault?"".concat(n.title," (기본)"):n.title})}),e},[L]),M=(0,o.useCallback)(function(e){i(r.id,"none"===e?{profileTemplateId:null,useDefaultProfile:!1}:{profileTemplateId:e,useDefaultProfile:!0})},[r.id,i]);return o.createElement(ce,{ref:d,style:A,isDragging:b},o.createElement(de,null,o.createElement(se,null,o.createElement(pe,le({},u,c),o.createElement(fe,null),o.createElement(fe,null),o.createElement(fe,null)),o.createElement(ye,null,o.createElement(v.A,{selectList:O,selectedKey:r.type,setSelectedKey:w,size:"sm"}))),o.createElement(me,null,!S&&o.createElement(o.Fragment,null,o.createElement(be,null,o.createElement("span",null,"필수"),o.createElement(Z.A,{isChecked:r.required,handleSwitch:T})),o.createElement(be,{isSecret:r.adminOnly},o.createElement("span",null,"비밀글"),o.createElement(Z.A,{isChecked:r.adminOnly||!1,handleSwitch:j}))),o.createElement(C.A,{onClick:D,icon:"Trash18"}))),S?o.createElement(ve,null,o.createElement(J,{text:"".concat(r.dividerText||"구분선 (폼 제출 화면에서 섹션 구분용)")}),o.createElement(x.A,{label:"구분선 텍스트 (선택사항)",name:"dividerText",value:r.dividerText||"",onChange:function(e){return i(r.id,{dividerText:e.target.value})},placeholder:"빈 여백일 시, 라인만 표시됨"})):o.createElement(ve,null,r.adminOnly&&o.createElement(ge,null,"🔒 이 필드의 답변은 ",o.createElement("strong",null,"관리자만 열람 가능"),"합니다."),o.createElement(x.A,{label:"필드 제목",name:"title",value:r.title,onChange:k,placeholder:"필드 제목을 입력하세요"}),o.createElement(E.A,{label:"필드 설명 (선택사항)",name:"description",value:r.description||"",onChange:I,placeholder:"필드에 대한 설명을 입력하세요",minRows:2,maxRows:5}),F&&r.type===m.PR.LONG_TEXT&&o.createElement(he,null,o.createElement(xe,null,o.createElement("span",null,"프로필 템플릿 적용"),o.createElement(v.A,{selectList:R,selectedKey:r.profileTemplateId||"none",setSelectedKey:M,size:"sm",style:{minWidth:"200px"}})),o.createElement(Ee,null,"선택한 템플릿이 폼 작성 시 에디터에 미리 적용됩니다.",o.createElement("br",null),"[게시판 기능 설정] - [프로필 템플릿]에서 템플릿을 관리할 수 있습니다.")),r.type===m.PR.IMAGE_UPLOAD&&o.createElement(Pe,null,o.createElement(Ce,null,"이미지 업로드 설정"),o.createElement(Ae,null,o.createElement("span",null,"다중 업로드 허용"),o.createElement(Z.A,{isChecked:r.allowMultiple||!1,handleSwitch:function(){return i(r.id,{allowMultiple:!r.allowMultiple})}})),r.allowMultiple&&o.createElement(Oe,null,o.createElement("span",null,"이미지 등록 개수"),o.createElement(we,null,o.createElement(x.A,{name:"maxImageCount",type:"number",value:(null===(n=r.maxImageCount)||void 0===n?void 0:n.toString())||"",onChange:function(e){var n=parseInt(e.target.value,10);!isNaN(n)&&n>=1?i(r.id,{maxImageCount:n}):""===e.target.value&&i(r.id,{maxImageCount:void 0})},placeholder:"제한 없음"}),o.createElement("span",null,"개"))),r.allowMultiple&&o.createElement(ke,null,"비워두면 제한 없이 등록 가능합니다.")),(r.type===m.PR.RADIO||r.type===m.PR.CHECKBOX)&&o.createElement("div",{style:{marginTop:"12px"}},o.createElement("div",{style:{fontSize:"13px",fontWeight:600,marginBottom:"8px",color:"var(--textColor)"}},"선택 옵션"),null===(t=r.options)||void 0===t?void 0:t.map(function(e,n){return o.createElement("div",{key:e.id,style:{display:"flex",gap:"8px",marginBottom:"8px",alignItems:"center"}},o.createElement(x.A,{name:"option-".concat(e.id),value:e.value,onChange:function(t){var l=ie(r.options||[]);l[n]=te(te({},e),{},{label:t.target.value,value:t.target.value}),i(r.id,{options:l})},placeholder:"옵션 ".concat(n+1),style:{flex:1}}),o.createElement(f.A,{shape:"stroke",color:"warning",size:"sm",onClick:function(){var e,t=null===(e=r.options)||void 0===e?void 0:e.filter(function(e,t){return t!==n});i(r.id,{options:t})}},"삭제"))}),o.createElement(f.A,{shape:"stroke",size:"sm",onClick:function(){var e={id:"opt_".concat(Date.now()),label:"",value:""};i(r.id,{options:[].concat(ie(r.options||[]),[e])})}},"+ 옵션 추가"))))}
1,ce=a.Ay.div(D||(D=ee(["\n  background: var(--cardBackgroundColor);\n  border: 1px solid var(--lineColor);\n  border-radius: 8px;\n  padding: 16px;\n  transition: all 0.2s ease;\n  position: relative;\n\n  ","\n\n  &:hover {\n    border-color: var(--primaryColor);\n    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n  }\n"])),function(e){return e.isDragging&&"\n    transform: rotate(2deg);\n    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);\n    z-index: 1000;\n  "}),de=a.Ay.div(S||(S=ee(["\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 12px;\n"]))),se=a.Ay.div(F||(F=ee(["\n  display: flex;\n  align-items: center;\n  gap: 12px;\n"]))),pe=a.Ay.div(L||(L=ee(["\n  display: flex;\n  flex-direction: column;\n  gap: 2px;\n  cursor: grab;\n  padding: 4px;\n\n  &:active {\n    cursor: grabbing;\n  }\n"]))),fe=a.Ay.div(R||(R=ee(["\n  width: 12px;\n  height: 2px;\n  background: var(--subTextColor);\n  border-radius: 1px;\n"]))),me=a.Ay.div(M||(M=ee(["\n  display: flex;\n  gap: 8px;\n  align-items: center;
1\n"]))),be=a.Ay.div(z||(z=ee(["\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  font-size: 12px;\n  color: ",";\n  padding: 4px 8px;\n  border-radius: 4px;\n  background: ",";\n  transition: all 0.2s ease;\n"])),function(e){return e.isSecret?"#ff6b6b":"var(--textColor)"},function(e){return e.isSecret?"rgba(255, 107, 107, 0.1)":"transparent"}),ge=a.Ay.div(_||(_=ee(["\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  padding: 10px 14px;\n  background: rgba(255, 107, 107, 0.08);\n  border: 1px solid rgba(255, 107, 107, 0.2);\n  border-radius: 8px;\n  font-size: 13px;\n  color: #ff6b6b;\n\n  strong {\n    font-weight: 600;\n  }\n"]))),ve=a.Ay.div(q||(q=ee(["\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n"]))),ye=(a.Ay.div(G||(G=ee(["\n  text-align: center;\n  font-size: 12px;\n  color: var(--subTextColor);\n  padding: 8px;\n"]))),a.Ay.div(B||(B=ee(["\n  width: 200px;\n"])))),he=a.Ay.div(U||(U=ee(["\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n  padding: 12px;\n  background: var(--backgroundColor);\n  border-radius: 8px;\n  border: 1px dashed var(--lineColor);\n"]))),xe=a.Ay.div(H||(H=ee(["\n  display: flex;\n  align-items: center;\n  gap: 12px;\n\n  > span {\n    font-size: 13px;\n    font-weight: 600;\n    color: var(--textColor);\n    white-space: nowrap;\n  }\n"]))),Ee=a.Ay.p(X||(X=ee(["\n  width: 100%;\n  font-size: 12px;\n  color: var(--subTextColor);\n  margin: 4px 0 0;\n  line-height: 1.4;\n"]))),Pe=a.Ay.div(N||(N=ee(["\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  padding: 12px;\n  background: var(--backgroundColor);\n  border-radius: 8px;\n  border: 1px dashed var(--lineColor);\n"]))),Ce=a.Ay.h6(K||(K=ee(["\n  margin: 0;\n  font-size: 13px;\n  font-weight: 600;\n  color: var(--textColor);\n"]))),Ae=a.Ay.div(W||(W=ee(["\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  font-size: 13px;\n  color: var(--textColor);\n"]))),Oe=a.Ay.div(V||(V=ee(["\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  font-size: 13px;\n  color: var(--textColor);\n"]))),we=a.Ay.div(Y||(Y=ee(["\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  \n  input {\n    max-width: 80px;\n  }\n  \n  > span {\n    color: var(--subTextColor);\n  }\n"]))),ke=a.Ay.p($||($=ee(["\n  font-size: 11px;\n  color: var(--subTextColor);\n  margin: 0;\n"]))),Ie=t(51896),Te={characterCommunity:{title:"자캐 커뮤니티 신청서",description:"자캐 커뮤니티 활동을 위한 기본 신청서 양식",fields:[{type:m.PR.SHORT_TEXT,title:"신청자 (오너명)",description:"오너명을 입력해주세요",required:!0,isPhotocardLinked:!1,maxLength:50,id:"",order:0},{type:m.PR.SHORT_TEXT,title:"캐릭터 이름",description:"한글 표기|원어 표기|영문 표기",required:!0,isPhotocardLinked:!0,maxLength:50,id:"",order:0},{type:m.PR.SHORT_TEXT,title:"캐릭터 설정",description:"나이 | 키 | 몸무게",required:!0,isPhotocardLinked:!0,maxLength:50,id:"",order:0},{type:m.PR.SHORT_TEXT,title:"한마디",description:"캐릭터에 대한 한마디를 남겨주세요",required:!0,isPhotocardLinked:!1,maxLength:100,id:"",order:0},{type:m.PR.IMAGE_UPLOAD,title:"캐릭터 두상",description:"두상 사이즈 권장 120 * 240",required:!0,isPhotocardLinked:!0,allowMultiple:!1,maxImageCount:1,id:"",order:0},{type:m.PR.IMAGE_UPLOAD,title:"캐릭터 전신",description:"전신 사이즈 권장 가로 800이하",required:!0,isPhotocardLinked:!0,allowMultiple:!1,maxImageCount:1,id:"",order:0},{type:m.PR.LONG_TEXT,title:"캐릭터 성격",description:"캐릭터의 성격, ë°°ê²½, 특징 등을 자세히 설명해주세요",required:!0,isPhotocardLinked:!0,maxLength:2e3,id:"",order:0},{type:m.PR.LONG_TEXT,title:"캐릭터 이능력 설정",description:"캐릭터의 이능력 특징 등을 자세히 설명해주세요",required:!0,isPhotocardLinked:!0,maxLength:2e3,id:"",order:0},{type:m.PR.IMAGE_UPLOAD,title:"추가 이미지",description:"캐릭터 추가 설정 이미지를 업로드해주세요",required:!1,isPhotocardLinked:!0,allowMultiple:!1,maxImageCount:1,id:"",order:0},{type:m.PR.STAT_INPUT,title:"스탯 설정",description:"캐릭터의 스탯을 설정해주세요 (HP, MP, 공격력, 방어력 등)",required:!1,isPhotocardLinked:!0,id:"",order:0},{type:m.PR.STATUS,title:"신청서 상태",description:"신청서 ì
1ž‘성 상태를 선택해주세요",required:!0,isPhotocardLinked:!1,id:"",order:0},{type:m.PR.LONG_TEXT,title:"수정사항",description:"수정이 필요한 내용이나 추가 요청사항을 작성해주세요",required:!1,isPhotocardLinked:!1,maxLength:2e3,id:"",order:0},{type:m.PR.LONG_TEXT,title:"오너 트리거 요소",description:"캐릭터의 트리거 요소나 주의사항을 작성해주세요",required:!1,isPhotocardLinked:!1,maxLength:2e3,id:"",order:0},{type:m.PR.LONG_TEXT,title:"소수 합격 요소",description:"소수 합격과 관련된 특별 요소를 작성해주세요",required:!1,isPhotocardLinked:!1,maxLength:2e3,id:"",order:0},{type:m.PR.SHORT_TEXT,title:"오너 연락처 아이디",description:"연락 가능한 SNS 아이디나 디스코드 등을 입력해주세요",required:!1,isPhotocardLinked:!1,maxLength:100,id:"",order:0},{type:m.PR.LONG_TEXT,title:"비밀설정",description:"관리자만 열람 가능한 비공개 제출 항목입니다",required:!1,isPhotocardLinked:!1,maxLength:2e3,id:"",order:0,adminOnly:!0},{type:m.PR.LONG_TEXT,title:"성장 후 IF",description:"관리자만 열람 가능한 비공개 제출 항목입니다",required:!0,isPhotocardLinked:!1,maxLength:5e3,id:"",order:0,adminOnly:!0},{type:m.PR.CAMP_SELECT,title:"진영 설정",description:"캐릭터가 속한 진영을 선택해주세요",required:!1,isPhotocardLinked:!0,id:"",order:0},{type:m.PR.CHECKBOX,title:"공지 확인",description:"아래 항목을 확인하고, 모두 체크해주세요.",required:!0,isPhotocardLinked:!1,options:[{id:(0,Ie.A)(),label:"1",value:"공지 확인 완료"},{id:(0,Ie.A)(),label:"2",value:"매주 1회 스토리 필수 참여 가능"},{id:(0,Ie.A)(),label:"3",value:"06년생 이상 성인"}],id:"",order:0}],collectionPath:"",isDefaultForm:!1,listDisplayMappingPreset:{titleFieldIndex:1,thumbnailFieldIndex:4,subTitleFieldIndex:0,optionFieldIndex:17,optionField2Index:17,profileFieldIndex:4,fullBodyFieldIndex:5,tagFieldIndex:null,descriptionFieldIndex:null}},commission:{title:"커미션 신청서",description:"일러스트/디자인 커미션 의뢰를 위한 신청서 양식",fields:[{type:m.PR.SHORT_TEXT,title:"의뢰자명",description:"연락 가능한 이름이나 닉네임을 입력해주세요",required:!0,isPhotocardLinked:!1,maxLength:50,id:"",order:0},{type:m.PR.SHORT_TEXT,title:"연락처",description:"이메일, 디스코드, SNS 등 연락 가능한 수단을 입력해주세요",required:!0,isPhotocardLinked:!1,maxLength:100,id:"",order:0},{type:m.PR.RADIO,title:"커미션 유형",description:"원하는 커미션 유형을 선택해주세요",required:!0,isPhotocardLinked:!1,options:[{id:(0,Ie.A)(),label:"캐릭터 일러스트",value:"캐릭터 일러스트"},{id:(0,Ie.A)(),label:"상황 일러스트",value:"상황 일러스트"},{id:(0,Ie.A)(),label:"캐릭터 디자인",value:"캐릭터 디자인"},{id:(0,Ie.A)(),label:"기타",value:"기타"}],id:"",order:0},{type:m.PR.RADIO,title:"예산 범위",description:"예상 예산 범위를 선택해주세요",required:!0,isPhotocardLinked:!1,options:[{id:(0,Ie.A)(),label:"~10만원",value:"~10만원"},{id:(0,Ie.A)(),label:"10~30만원",value:"10~30만원"},{id:(0,Ie.A)(),label:"30~50만원",value:"30~50만원"},{id:(0,Ie.A)(),label:"50만원 이상",value:"50만원 이상"}],id:"",order:0},{type:m.PR.LONG_TEXT,title:"세부 요청사항",description:"커미션에 대한 구체적인 요청사항을 작성해주세요",required:!0,isPhotocardLinked:!1,maxLength:2e3,id:"",order:0},{type:m.PR.SHORT_TEXT,title:"마감 희망일",description:"작업 완료 희망일을 입력해주세요 (예: 2024년 3월)",required:!1,isPhotocardLinked:!1,maxLength:100,id:"",order:0},{type:m.PR.IMAGE_UPLOAD,title:"레퍼런스 이미지",description:"참고할 수 있는 이미지들을 업로드해주세요",required:!1,isPhotocardLinked:!1,allowMultiple:!1,maxImageCount:1,id:"",order:0},{type:m.PR.CHECKBOX,title:"추가 서비스",description:"필요한 추가 서비스를 선택해주세요",required:!1,isPhotocardLinked:!1,options:[{id:(0,Ie.A)(),label:"고해상도 파일 제공",value:"고해상도 파일 제공"},{id:(0,Ie.A)(),label:"작업 과정 공유",value:"작업 과정 공유"},{id:(0,Ie.A)(),label:"상업적 이용 허가",value:"상업적 이용 허가"},{id:(0,Ie.A)(),label:"수정 작업 포함",value:"수정 작업 포함"}],id:"",order:0},{type:m.PR.LONG_TEXT,title:"기타 요구사항",description:"추가로 전달하고 싶은 내용이 있다면 작성해주세요",required:!1,isPhotocardLinked:!1,maxLength:1e3,id:"",order:0},{type:m.PR.STATUS,title:"신청서 상태",description:"신청서 ì
1ž‘성 상태를 선택해주세요",required:!0,isPhotocardLinked:!1,id:"",order:0},{type:m.PR.LONG_TEXT,title:"비밀설정",description:"관리자만 열람 가능한 비공개 제출 항목입니다",required:!1,isPhotocardLinked:!1,maxLength:5e3,id:"",order:0,adminOnly:!0}],collectionPath:"",isDefaultForm:!1},eventApplication:{title:"이벤트 참가 신청서",description:"커뮤니티 이벤트 참가를 위한 기본 신청서 양식",fields:[{type:m.PR.SHORT_TEXT,title:"참가자명",description:"이벤트 참가자의 이름이나 닉네임을 입력해주세요",required:!0,isPhotocardLinked:!1,maxLength:50,id:"",order:0},{type:m.PR.RADIO,title:"참가 부문",description:"참가하고 싶은 부문을 선택해주세요",required:!0,isPhotocardLinked:!1,options:[{id:(0,Ie.A)(),label:"일러스트 부문",value:"일러스트 부문"},{id:(0,Ie.A)(),label:"소설 부문",value:"소설 부문"},{id:(0,Ie.A)(),label:"영상 부문",value:"영상 부문"},{id:(0,Ie.A)(),label:"기타 부문",value:"기타 부문"}],id:"",order:0},{type:m.PR.SHORT_TEXT,title:"작품 제목",description:"참가 작품의 제목을 입력해주세요",required:!0,isPhotocardLinked:!1,maxLength:100,id:"",order:0},{type:m.PR.LONG_TEXT,title:"작품 설명",description:"작품에 대한 간단한 설명을 작성해주세요",required:!0,isPhotocardLinked:!1,maxLength:1e3,id:"",order:0},{type:m.PR.IMAGE_UPLOAD,title:"작품 파일",description:"참가 작품을 업로드해주세요",required:!0,isPhotocardLinked:!1,allowMultiple:!1,maxImageCount:1,id:"",order:0},{type:m.PR.TAGS,title:"작품 태그",description:"작품과 관련된 태그를 추가해주세요",required:!1,isPhotocardLinked:!1,hashtag:[],id:"",order:0},{type:m.PR.CHECKBOX,title:"참가 동의사항",description:"이벤트 참가를 위한 동의사항을 확인해주세요",required:!0,isPhotocardLinked:!1,options:[{id:(0,Ie.A)(),label:"이벤트 규칙에 동의합니다",value:"이벤트 규칙에 동의합니다"},{id:(0,Ie.A)(),label:"작품 공개 전시에 동의합니다",value:"작품 공개 전시에 동의합니다"},{id:(0,Ie.A)(),label:"ê²°ê³¼ 발표 방식에 동의합니다",value:"ê²°ê³¼ 발표 방식에 동의합니다"}],id:"",order:0},{type:m.PR.STATUS,title:"신청서 상태",description:"신청서 작성 상태를 선택해주세요",required:!0,isPhotocardLinked:!1,id:"",order:0},{type:m.PR.LONG_TEXT,title:"비밀설정",description:"관리자만 열람 가능한 비공개 제출 항목입니다",required:!1,isPhotocardLinked:!1,maxLength:2e3,id:"",order:0,adminOnly:!0}],collectionPath:"",isDefaultForm:!1}},je=t(21960);function De(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(e,n)||Se(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Se(e,n){if(e){if("string"==typeof e)return Fe(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Fe(e,n):void 0}}function Fe(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function Le(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function Re(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Le(Object(t),!0).forEach(function(n){Me(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Le(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Me(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var ze=function(e){var n,t={id:e.id,type:e.type,title:e.title||"",description:e.description||"",required:e.required,order:e.order,isPhotocardLinked:e.isPhotocardLinked,collectionPath:e.collectionPath||void 0};return e.type!==m.PR.SHORT_TEXT&&e.type!==m.PR.LONG_TEXT||(t.maxLength=e.maxLength||100),e.type===m.PR.IMAGE_UPLOAD&&(t.allowMultiple=null!==(n=e.allowMultiple)&&void 0!==n&&n,e.maxImageCount&&(t.maxImageCount=e.maxImageCount)),e.type!==m.PR.CHECKBOX&&e.type!==m.PR.RADIO||(t.options=e.options||[]),e.type===m.PR.TAGS&&(t.hashtag=e.hashtag||[]),t},_e=function(e){var n=e.formConfig,t=e.setFormConfig,r=De((0,o.useState)(m.PR.SHORT_TEXT),2),i=r[0],l=r[1],a=De((0,o.useState)(!1),2),u=(a[0],a[1],Object.entries(m.o5).map(function(e){var n=De(e,2),t=n[0];return{id:t,key:t,value:n[1]}})),c=(0,b.FR)((0,b.MS)(b.cA,{activationConstraint:{distance:10}}),(0,b.MS)(b.IG,{activationConstraint:{distance:10}}
1));(0,o.useEffect)(function(){if(!n.fields||0===n.fields.length){var e={id:"field_dummy_".concat(Date.now()),type:m.PR.SHORT_TEXT,title:"이름",description:"귀하의 이름을 입력해주세요.",required:!0,order:0,isPhotocardLinked:!1};t(function(n){return Re(Re({},n),{},{fields:[e]})})}n.submissionPeriod||t(function(e){return Re(Re({},e),{},{submissionPeriod:{startDate:null,endDate:null,enabled:!1}})})},[t]);var d=(0,o.useCallback)(function(e){var n=Te[e],r=n.fields.map(function(e,n){var t;return{id:"field_".concat(Date.now(),"_").concat(n),type:e.type,title:e.title,description:e.description||"",required:e.required,order:n,isPhotocardLinked:e.isPhotocardLinked,maxLength:e.maxLength||void 0,allowMultiple:null!==(t=e.allowMultiple)&&void 0!==t?t:void 0,options:e.options||void 0,hashtag:e.hashtag||void 0}}),i=n.listDisplayMappingPreset,l=function(e){return null===e||e<0||e>=r.length?null:r[e].id||null},o=i?{titleFieldId:l(i.titleFieldIndex),thumbnailFieldId:l(i.thumbnailFieldIndex),subTitleFieldId:l(i.subTitleFieldIndex),optionFieldId:l(i.optionFieldIndex),optionField2Id:l(i.optionField2Index),profileFieldId:l(i.profileFieldIndex),fullBodyFieldId:l(i.fullBodyFieldIndex),tagFieldId:l(i.tagFieldIndex),descriptionFieldId:l(i.descriptionFieldIndex),isCompleted:!1}:void 0;t(function(e){return Re(Re({},e),{},{title:n.title,description:n.description,fields:r},o?{listDisplayMapping:o}:{})})},[t]),s=(0,o.useCallback)(function(){var e={id:"field_".concat(Date.now()),type:i,title:m.o5[i]||"새 필드",description:"",required:!1,order:n.fields.length,isPhotocardLinked:!1},r=i,l=Re({},e);r===m.PR.SHORT_TEXT||r===m.PR.LONG_TEXT?l.maxLength=r===m.PR.SHORT_TEXT?100:2e3:r===m.PR.IMAGE_UPLOAD?l.allowMultiple=!1:r===m.PR.CHECKBOX||r===m.PR.RADIO?l.options=[]:r===m.PR.TAGS&&(l.hashtag=[]),t(function(e){return Re(Re({},e),{},{fields:[].concat((n=e.fields,function(e){if(Array.isArray(e))return Fe(e)}(n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||Se(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[l])});var n})},[i,n.fields.length,t]),p=(0,o.useCallback)(function(e,n){t(function(t){return Re(Re({},t),{},{fields:t.fields.map(function(t){return t.id===e?Re(Re({},t),n):t})})})},[t]),f=(0,o.useCallback)(function(e){t(function(n){return Re(Re({},n),{},{fields:n.fields.filter(function(n){return n.id!==e})})})},[t]),y=(0,o.useCallback)(function(e){var n=e.active,r=e.over;n.id!==(null==r?void 0:r.id)&&t(function(e){var t=e.fields.findIndex(function(e){return e.id===n.id}),i=e.fields.findIndex(function(e){return e.id===(null==r?void 0:r.id)}),l=(0,g.be)(e.fields,t,i).map(function(e,n){return Re(Re({},e),{},{order:n})});return Re(Re({},e),{},{fields:l})})},[t]),h=(0,o.useCallback)(function(e,n){t(function(t){return Re(Re({},t),{},{listDisplayMapping:Re(Re({},t.listDisplayMapping),{},Me({},e,n))})})},[t]),x=((0,o.useCallback)(function(){var e=function(e){return Re(Re({},e),{},{fields:e.fields.map(ze),submissionPeriod:e.submissionPeriod||{startDate:null,endDate:null,enabled:!1}})}(n),t=JSON.stringify(e);localStorage.setItem("formConfigDraft",t),alert("임시 저장되었습니다.")},[n]),n.fields||[]);return o.createElement(o.Fragment,null,o.createElement(je.wn,{style:{border:"1px dashed var(--lineColor)"}},o.createElement(je._x,null,"필드 설정"),o.createElement(je.aF,null,o.createElement(je.B5,null,"폼 템플릿"),o.createElement(je.Mp,null,o.createElement(je.F3,{onClick:function(){return d("characterCommunity")}},"자캐 커뮤니티 신청서"),o.createElement(je.F3,{onClick:function(){return d("commission")}},"커미션 신청서"),o.createElement(je.F3,{onClick:function(){return d("eventApplication")}},"이벤트 참가 신청서"))),o.createElement(b.Mp,{sensors:c,onDragEnd:y},o.createElement(g.gB,{items:x.map(function(e){return e.id}),strategy:g._G},o.createElement(je.WY,null,x.length>0?x.map(function(e){return o.createElement(ue,{key:e.id,field:e,formConfig:n,handleUpdateField:p,handleDeleteField:f,handleListDisplayMappingChange:h})}):o.createElement(je.pp,null,o.createElement("p",null,"아직 추가된 필드가 없습니다."),o.createElement("p",null,"아래 버튼을 클릭해서 첫 ë²
1ˆì§¸ 필드를 추가해보세요."))))),o.createElement(je.Dq,null,o.createElement(v.A,{selectList:u,selectedKey:i,setSelectedKey:l,size:"md",dropdownStyle:{width:"100%"},dropdownDirection:"bottomLeft"}),o.createElement(je.eW,{onClick:s},"+ 필드 추가"))))};function qe(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function Ge(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?qe(Object(t),!0).forEach(function(n){Be(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):qe(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Be(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function Ue(e,n,t,r,i,l,o){try{var a=e[l](o),u=a.value}catch(e){return void t(e)}a.done?n(u):Promise.resolve(u).then(r,i)}function He(e){return He="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(e)}function Xe(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(e,n)||function(e,n){if(e){if("string"==typeof e)return Ne(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Ne(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ne(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var Ke=t(59352).default.firestore(),We=function e(n){for(var t={},r=0,i=Object.entries(n);r<i.length;r++){var l=Xe(i[r],2),o=l[0],a=l[1];if(void 0!==a)if(a instanceof Date)t[o]=a;else if(a&&"object"===He(a)&&"function"==typeof a.toDate)t[o]=a;else if(Array.isArray(a))t[o]=a;else if(a&&"object"===He(a)){var u=e(a);t[o]=u}else t[o]=a}return t};function Ve(e){return Ye.apply(this,arguments)}function Ye(){return(e=regeneratorRuntime.mark(function e(n){var t,r,i,l,o,a,u,c;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=n.collectionPath,r=n.formConfig,i=n.isEdit,l=void 0!==i&&i,e.prev=1,console.log("🔧 saveFormConfig 시작:",{collectionPath:t,formConfigId:r.id,isEdit:l,hasShareLink:!!r.shareLink}),o=Ke.collection(t||"form"),console.log("📁 컬렉션 참조 생성:",t||"form"),a=We(r),console.log("🧹 undefined 필드 제거 완료:",{original:Object.keys(r),cleaned:Object.keys(a),removedFields:Object.keys(r).filter(function(e){return!(e in a)})}),u=Ge(Ge({},a),{},{editedAt:new Date,createdAt:l?a.createdAt:new Date}),!l||!r.id){e.next=16;break}return console.log("📝 기존 폼 수정 모드:",r.id),e.next=12,o.doc(r.id).set(u,{merge:!0});case 12:return console.log("✅ Firestore 저장 완료"),e.abrupt("return",{success:!0,id:r.id,message:"폼이 성공적으로 수정되었습니다."});case 16:return console.log("🆕 새 폼 생성 모드"),e.next=19,o.add(u);case 19:return c=e.sent,e.next=22,o.doc(c.id).set({id:c.id},{merge:!0});case 22:return console.log("✅ 새 폼 저장 완료:",c.id),e.abrupt("return",{success:!0,id:c.id,message:"폼이 성공적으로 저장되었습니다."});case 24:e.next=30;break;case 26:return e.prev=26,e.t0=e.catch(1),console.error("❌ saveFormConfig 에러 상세:",{error:e.t0,message:e.t0 instanceof Error?e.t0.message:"알 수 없는 오류",stack:e.t0 instanceof Error?e.t0.stack:void 0,collectionPath:t,formConfigId:r.id,isEdit:l}),e.abrupt("return",{success:!1,error:e.t0,message:"폼 저장 중 오류가 발생했습니다."});case 30:case"end":return e.stop()}},e,null,[[1,26]])}),Ye=function(){var n=this,t=arguments;return new Promise(function(r,i){var l=e.apply(n,t);function o(e){Ue(l,r,i,o,a,"next",e)}function a(e){Ue(l,r,i,o,a,"throw",e)}o(void 0)})}).apply(this,arguments);var e}var $e,Je,Ze,Qe,en,nn=t(374),tn={characterCommunity:{title:"자캐 커뮤니티 활동 유의사항",content:"<h3>자캐 커뮤니티 활동 유의사항</h3>\n\n<p><strong>1. 기본 예의</strong></p>\n<ul>\n<li>
1상대방을 존중하고 예의를 지켜주세요</li>\n<li>욕설, 비방, 차별적 발언은 금지됩니다</li>\n<li>개인정보 요구나 공유는 삼가해 주세요</li>\n</ul>\n\n<p><strong>2. 캐릭터 설정</strong></p>\n<ul>\n<li>타인의 캐릭터를 무단으로 사용하지 마세요</li>\n<li>과도한 폭력성이나 선정성은 자제해 주세요</li>\n<li>캐릭터 간 관계 설정은 상호 동의 하에 진행해 주세요</li>\n</ul>\n\n<p><strong>3. 콘텐츠 가이드라인</strong></p>\n<ul>\n<li>저작권을 침해하는 내용은 금지됩니다</li>\n<li>불법적이거나 유해한 내용은 삼가해 주세요</li>\n<li>스포일러가 포함된 내용은 사전에 경고해 주세요</li>\n</ul>\n\n<p><em>위 사항을 위반할 경우 게시물 삭제나 활동 제한 조치가 있을 수 있습니다.</em></p>"},commission:{title:"커미션 유의사항",content:"<h3>커미션 신청 및 진행 유의사항</h3>\n\n<p><strong>1. 신청 전 확인사항</strong></p>\n<ul>\n<li>작업 기간과 예상 완성일을 확인해 주세요</li>\n<li>수정 가능 횟수와 범위를 미리 협의해 주세요</li>\n<li>결제 방식과 일정을 명확히 해주세요</li>\n</ul>\n\n<p><strong>2. 작업 진행</strong></p>\n<ul>\n<li>러프 단계에서 충분한 소통을 해주세요</li>\n<li>레퍼런스는 최대한 구체적으로 제공해 주세요</li>\n<li>작업자의 화풍과 스타일을 존중해 주세요</li>\n</ul>\n\n<p><strong>3. 완성 후 주의사항</strong></p>\n<ul>\n<li>완성작의 무단 수정이나 재배포는 금지됩니다</li>\n<li>상업적 이용 시 사전 협의가 필요합니다</li>\n<li>작업자 크레딧 표기를 부탁드립니다</li>\n</ul>\n\n<p><strong>4. 취소 및 환불</strong></p>\n<ul>\n<li>러프 확정 후 취소 시 부분 비용이 발생할 수 있습니다</li>\n<li>작업자 사정으로 인한 취소 시 전액 환불됩니다</li>\n</ul>\n\n<p><em>원활한 작업 진행을 위해 상호 소통과 이해를 부탁드립니다.</em></p>"},event:{title:"이벤트 참여 안내",content:"<h3>이벤트 참여 안내</h3>\n\n<p><strong>참여 자격</strong></p>\n<ul>\n<li>커뮤니티 가입 후 일정 기간이 경과한 회원</li>\n<li>커뮤니티 규칙을 준수하는 회원</li>\n</ul>\n\n<p><strong>참여 방법</strong></p>\n<ul>\n<li>신청 양식을 정확히 작성해 주세요</li>\n<li>마감일 이전에 제출해 주세요</li>\n<li>중복 신청은 불가합니다</li>\n</ul>\n\n<p><strong>주의사항</strong></p>\n<ul>\n<li>허위 정보 기재 시 참여가 제한될 수 있습니다</li>\n<li>이벤트 결과는 개별 안내드립니다</li>\n<li>문의사항은 운영진에게 연락해 주세요</li>\n</ul>"},roleplay:{title:"롤플레이 진행 가이드",content:"<h3>롤플레이 진행 가이드</h3>\n\n<p><strong>1. 시작하기 전</strong></p>\n<ul>\n<li>참여자 간 캐릭터 설정을 공유해 주세요</li>\n<li>진행 방식과 규칙을 미리 협의해 주세요</li>\n<li>금기사항이 있다면 사전에 알려주세요</li>\n</ul>\n\n<p><strong>2. 진행 중 주의사항</strong></p>\n<ul>\n<li>다른 참여자의 캐릭터를 임의로 조작하지 마세요</li>\n<li>과도한 메타게이밍은 자제해 주세요</li>\n<li>상황이 어려워지면 언제든 중단 요청할 수 있습니다</li>\n</ul>\n\n<p><strong>3. 예의사항</strong></p>\n<ul>\n<li>상대방의 플레이 스타일을 존중해 주세요</li>\n<li>IC(인캐릭터)와 OOC(아웃캐릭터)를 구분해 주세요</li>\n<li>불편한 상황이 생기면 솔직하게 이야기해 주세요</li>\n</ul>\n\n<p><em>모든 참여자가 즐거운 롤플레이를 할 수 있도록 배려해 주세요.</em></p>"}},rn=t(44173);function ln(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var on,an,un,cn,dn,sn,pn,fn,mn,bn,gn,vn,yn,hn,xn,En,Pn,Cn,An,On,wn=a.Ay.div($e||($e=ln(["\n  padding: 8px 16px;\n  text-align: center;\n  border: 2px dashed var(--lineColor);\n  border-radius: 12px;\n  color: var(--subTextColor);\n"]))),kn=a.Ay.div(Je||(Je=ln(["\n  margin-bottom: 20px;\n"]))),In=a.Ay.h6(Ze||(Ze=ln(["\n  margin-bottom: 12px;\n  color: var(--textColor);\n  font-weight: 600;\n"]))),Tn=a.Ay.div(Qe||(Qe=ln(["\n  display: flex;\n  gap: 8px;\n  flex-wrap: wrap;\n"]))),jn=a.Ay.button(en||(en=ln(["\n  padding: 8px 16px;\n  border: 1px solid var(--lineColor);\n  border-radius: 8px;\n  background: var(--bgColor);\n  color: var(--textColor);\n  font-size: 13px;\n  transition: all 0.2s ease;\n\n  &:hover {\n    border-color: var(--primaryColor);\n    background: var(--primaryColor);\n    color: white;
1\n    cursor: var(--hoverCursorURL), pointer;\n  }\n"]))),Dn={size:!0,align:!0,color:!0,list:!0,blockquote:!0,codeblock:!1,link:!0,image:!0,file:!1,html:!0,emoji:!1,header:!0},Sn=function(e){var n=e.guideContents,t=e.guideHtmlContents,r=e.guideActive,i=e.guideIsHtmlMode,l=e.setGuideContents,a=e.setGuideHtmlContents,u=e.setGuideActive,c=e.setGuideIsHtmlMode,d=e.formConfig,s=(0,o.useCallback)(function(e){l(tn[e].content)},[l]);return o.createElement(je.wn,{style:{display:"flex",flexDirection:"column",gap:"16px"}},o.createElement("h5",null,"안내 페이지 설정",o.createElement(rn.PF,null,"안내 및 동의 설명을 입력할 수 있습니다.",o.createElement("br",null),"유저는 이 안내 페이지에 모두 동의해야 폼 입력창으로 넘어갈 수 있습니다.")),o.createElement(kn,null,o.createElement(Z.A,{isChecked:r,handleSwitch:function(){return u(!r)}},"안내 페이지 활성화")),o.createElement(kn,null,o.createElement(In,null,"자주 쓰는 양식"),o.createElement(Tn,null,o.createElement(jn,{onClick:function(){return s("characterCommunity")}},"자캐 커뮤니티 활동 유의사항"),o.createElement(jn,{onClick:function(){return s("commission")}},"커미션 유의사항"),o.createElement(jn,{onClick:function(){return s("event")}},"이벤트 참여 안내"),o.createElement(jn,{onClick:function(){return s("roleplay")}},"롤플레이 진행 가이드"))),o.createElement(wn,null,o.createElement(nn.A,{id:"guidePage-info-editor".concat(d.id),value:n,onChange:l,htmlValue:t||n,onHtmlChange:a,customIsHtmlMode:i,customSetHtmlMode:c,style:{minHeight:100},placeholder:"안내 페이지 내용을 입력하세요",setToolbar:Dn})))},Fn=(t(93116),t(98114)),Ln=t(70768),Rn=t(77828),Mn=t(25078),zn=t(15181);function _n(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function qn(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?_n(Object(t),!0).forEach(function(n){Gn(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):_n(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Gn(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function Bn(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function Un(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var Hn,Xn,Nn=a.Ay.div(on||(on=Un(["\n  background: var(--cardBackgroundColor);\n  border-radius: 12px;\n  border: 1px solid var(--lineColor);\n  padding: 24px;\n"]))),Kn=a.Ay.h3(an||(an=Un(["\n  font-size: 18px;\n  font-weight: 600;\n  color: var(--textColor);\n  margin: 0 0 16px 0;\n"]))),Wn=a.Ay.div(un||(un=Un(["\n  background: var(--backgroundColor);\n  border: 1px solid var(--lineColor);\n  border-radius: 8px;\n  padding: 20px;\n  margin-bottom: 24px;\n"]))),Vn=a.Ay.div(cn||(cn=Un(["\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n  gap: 16px;\n  margin-top: 16px;\n"]))),Yn=a.Ay.label(dn||(dn=Un(["\n  display: flex;\n  flex-direction: column;\n  padding: 16px;\n  border: 2px solid\n    ",";\n  border-radius: 8px;\n  background: ",";\n  cursor: pointer;\n  transition: all 0.2s;\n\n  &:hover {\n    border-color: var(--primaryColor);\n    background: rgba(var(--primaryColorRGB), 0.05);\n  }\n"])),function(e){return e.selected?"var(--primaryColor)":"var(--lineColor)"},function(e){return e.selected?"rgba(var(--primaryColorRGB), 0.05)":"var(--cardBackgroundColor)"}),$n=a.Ay.div(sn||(sn=Un(["\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  margin-bottom: 8px;\n"]))),Jn=a.Ay.h4(pn||(pn=Un(["\n  margin: 0;\n  font-size: 15px;\n  font-weight: 600;\n  color: var(--textColor);\n"]))),Zn=a.Ay.p(fn||(fn=Un(["\n  margin: 0;\n  font-size: 13px;\n  color: var(--subTextColor);\n  line-height: 1.4;
1\n"]))),Qn=a.Ay.div(mn||(mn=Un(["\n  background: var(--bgColor);\n  border: 2px dashed var(--lineColor);\n  border-radius: 12px;\n  padding: 32px;\n  margin-top: 16px;\n"]))),et=a.Ay.div(bn||(bn=Un(["\n  background: var(--cardBackgroundColor);\n  border: 1px solid var(--lineColor);\n  border-radius: 8px;\n  padding: 24px;\n  max-width: 600px;\n  margin: 0 auto;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n"]))),nt=a.Ay.div(gn||(gn=Un(["\n  text-align: center;\n  margin-bottom: 32px;\n  padding-bottom: 24px;\n  border-bottom: 1px solid var(--lineColor);\n"]))),tt=a.Ay.h2(vn||(vn=Un(["\n  font-size: 24px;\n  font-weight: 700;\n  color: var(--textColor);\n  margin: 0 0 8px 0;\n"]))),rt=a.Ay.p(yn||(yn=Un(["\n  padding: 16px 0;\n"]))),it=a.Ay.div(hn||(hn=Un(["\n  margin-top: 32px;\n  padding-top: 24px;\n  border-top: 1px solid var(--lineColor);\n  display: flex;\n  gap: 12px;\n  justify-content: center;\n"]))),lt=a.Ay.div(xn||(xn=Un(["\n  text-align: center;\n  padding: 60px 20px;\n  color: var(--subTextColor);\n"]))),ot=a.Ay.div(En||(En=Un(["\n  font-size: 48px;\n  margin-bottom: 16px;\n  opacity: 0.5;\n"]))),at=a.Ay.div(Pn||(Pn=Un(["\n  margin-bottom: 16px;\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n"]))),ut=a.Ay.div(Cn||(Cn=Un(["\n  background: rgba(var(--primaryColorRGB), 0.1);\n  border: 1px solid var(--primaryColor);\n  border-radius: 8px;\n  padding: 16px;\n  margin-bottom: 16px;\n"]))),ct=a.Ay.h4(An||(An=Un(["\n  margin: 0 0 8px 0;\n  color: var(--primaryColor);\n  font-size: 14px;\n  font-weight: 600;\n"]))),dt=a.Ay.p(On||(On=Un(["\n  margin: 0;\n  font-size: 13px;\n  color: var(--textColor);\n  line-height: 1.4;\n"]))),st=function(e){var n,t,r=e.formConfig,i=e.setFormConfig,l=(n=(0,o.useState)({}),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(n,t)||function(e,n){if(e){if("string"==typeof e)return Bn(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Bn(e,n):void 0}}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=l[0],u=l[1],c=r.designType||Fn.PK.NUMBERED,d=function(e){i(function(n){return qn(qn({},n),{},{designType:e})})},s=function(){i(function(e){return qn(qn({},e),{},{hideCampInDetail:!e.hideCampInDetail})})};return r.fields&&0!==r.fields.length?o.createElement(Nn,null,o.createElement(Kn,null,"폼 디자인"),o.createElement(ut,null,o.createElement(ct,null,"💡 폼 디자인 안내"),o.createElement(dt,null,"디자인 타입을 선택하고, 아래에서 실제 사용자에게 보여질 폼의 모습을 확인하세요. 각 필드는 실제 동작하지만 데이터는 저장되지 않습니다.")),o.createElement(Wn,null,o.createElement(Kn,{style:{fontSize:15,margin:"0 0 12px 0"}},"디자인 타입 선택"),o.createElement(Vn,null,Object.values(Fn.PK).map(function(e){return o.createElement(Yn,{key:e,selected:c===e,onClick:function(){return d(e)}},o.createElement($n,null,o.createElement(Ln.A,{name:"designType",value:e,checked:c===e,onChange:function(){},shape:"default"}),o.createElement(Jn,null,Fn.Wz[e])),o.createElement(Zn,null,Fn.yx[e]))}))),c===Fn.PK.PHOTOCARD&&o.createElement(at,null,o.createElement(Rn.A,{label:"진영 출력",description:"포토카드 상세 페이지에서 진영(Camp)을 표시합니다.",isChecked:!r.hideCampInDetail,onToggle:s})),o.createElement(Qn,null,o.createElement(et,null,o.createElement(nt,null,o.createElement(tt,null,r.title||"제목 없는 폼"),r.description&&o.createElement(rt,null,o.createElement(zn.A,{value:r.description}))),o.createElement(Mn.A,{fields:r.fields,designType:c,fieldValues:a,onFieldChange:function(e,n){u(function(t){return qn(qn({},t),{},Gn({}
1,e,n))})},isEdit:!1}),o.createElement(it,null,o.createElement(f.A,{shape:"stroke",size:"lg",onClick:function(){alert("이것은 미리보기입니다. 실제 저장되지 않습니다.")},icon:"Save18"},"임시저장"),o.createElement(f.A,{color:"primary",size:"lg",onClick:function(){alert("이것은 미리보기입니다. 실제 제출되지 않습니다.")},icon:"Save18"},"제출하기"))))):o.createElement(Nn,null,o.createElement(Kn,null,"폼 디자인"),o.createElement(ut,null,o.createElement(ct,null,"💡 폼 디자인 안내"),o.createElement(dt,null,"폼의 디자인 타입을 선택하고, 실제 사용자에게 보여질 폼의 모습을 확인할 수 있습니다.")),o.createElement(Wn,null,o.createElement(Kn,{style:{fontSize:15,margin:"0 0 12px 0"}},"디자인 타입 선택"),o.createElement(Vn,null,Object.values(Fn.PK).map(function(e){return o.createElement(Yn,{key:e,selected:c===e,onClick:function(){return d(e)}},o.createElement($n,null,o.createElement(Ln.A,{name:"designType",value:e,checked:c===e,onChange:function(){},shape:"default"}),o.createElement(Jn,null,Fn.Wz[e])),o.createElement(Zn,null,Fn.yx[e]))}))),c===Fn.PK.PHOTOCARD&&o.createElement(at,null,o.createElement(Rn.A,{label:"진영 출력",description:"포토카드 상세 페이지에서 진영(Camp)을 표시합니다.",isChecked:!r.hideCampInDetail,onToggle:s})),o.createElement(Qn,null,o.createElement(lt,null,o.createElement(ot,null,"📝"),o.createElement("h4",null,"필드를 추가해주세요"),o.createElement("p",null,"아직 추가된 필드가 없습니다.",o.createElement("br",null),"필드 설정 탭에서 필드를 추가하면 여기에 미리보기가 표시됩니다."))))},pt=t(8084);function ft(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function mt(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?ft(Object(t),!0).forEach(function(n){bt(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ft(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function bt(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function gt(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var vt=a.Ay.div(Hn||(Hn=gt(["\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n"]))),yt=a.Ay.div(Xn||(Xn=gt(["\n  border: ",";\n  padding: 16px;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  border-radius: var(--cardBorderRadius);\n\n  &:hover {\n    cursor: var(--hoverCursorURL), pointer;\n    background-color: var(--inkColor);\n  }\n"])),function(e){return e.isSelected?"1px solid var(--primaryColor)":"1px solid var(--lineColor)"}),ht=function(e){if(!e)return null;if(null!=e&&e.toDate&&"function"==typeof e.toDate)return e.toDate();if(e instanceof Date)return e;if(void 0!==(null==e?void 0:e.seconds))return new Date(1e3*e.seconds);if("string"==typeof e){var n=new Date(e);return isNaN(n.getTime())?null:n}return null},xt=function(e){var n=e.formConfig,t=e.setFormConfig,r=(0,y.useCollection)("formSetting",{listen:!0}).data,i=(0,o.useCallback)(function(e){var n=function(e){return mt(mt({},e),{},{submissionPeriod:e.submissionPeriod?mt(mt({},e.submissionPeriod),{},{startDate:ht(e.submissionPeriod.startDate),endDate:ht(e.submissionPeriod.endDate)}):void 0,createdAt:ht(e.createdAt)||e.createdAt,editedAt:ht(e.editedAt)||e.editedAt})}(e);console.log("📋 폼 선택:",{id:e.id,title:e.title,submissionPeriod:{original:e.submissionPeriod,normalized:n.submissionPeriod}}),t(n)},[t]);return r?o.createElement(vt,null,r.map(function(e){return o.createElement(yt,{isSelected:(null==n?void 0:n.id)===e.id,onClick:function(){return i(e)},key:e.id},e.title,e.isDefaultForm&&o.createElement(pt.A,{value:"대표"}))})):null}
1,Et=t(18858),Pt=(t(33001),t(30868));function Ct(e,n,t,r,i,l,o){try{var a=e[l](o),u=a.value}catch(e){return void t(e)}a.done?n(u):Promise.resolve(u).then(r,i)}function At(e){return Ot.apply(this,arguments)}function Ot(){var e;return e=regeneratorRuntime.mark(function e(n){var t,r,i,l,o,a,u,c,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=n.collectionPath,r=n.docId,n.title,n.description,e.prev=1,i="https://".concat("moogong-home",".web.app/").concat(t,"/").concat(r),e.next=17;break;case 8:if(!(l=e.sent).ok){e.next=16;break}return e.next=12,l.json();case 12:return o=e.sent,e.abrupt("return",o.data.tiny_url);case 16:console.warn("TinyURL API 실패, 무료 서비스로 대체");case 17:return e.next=19,fetch("https://tinyurl.com/api-create.php?url=".concat(encodeURIComponent(i)));case 19:if(!(a=e.sent).ok){e.next=26;break}return e.next=23,a.text();case 23:if(!(u=e.sent)||!u.startsWith("https://tinyurl.com/")){e.next=26;break}return e.abrupt("return",u);case 26:return e.next=28,fetch("https://is.gd/create.php?format=simple&url=".concat(encodeURIComponent(i)));case 28:if(!(c=e.sent).ok){e.next=35;break}return e.next=32,c.text();case 32:if(!(d=e.sent)||!d.startsWith("https://is.gd/")){e.next=35;break}return e.abrupt("return",d);case 35:return console.warn("모든 URL 단축 서비스 실패, 원본 URL 반환"),e.abrupt("return",i);case 39:return e.prev=39,e.t0=e.catch(1),console.error("URL 단축 중 오류:",e.t0),e.abrupt("return","https://".concat("moogong-home",".web.app/").concat(t,"/").concat(r));case 44:case"end":return e.stop()}},e,null,[[1,39]])}),Ot=function(){var n=this,t=arguments;return new Promise(function(r,i){var l=e.apply(n,t);function o(e){Ct(l,r,i,o,a,"next",e)}function a(e){Ct(l,r,i,o,a,"throw",e)}o(void 0)})},Ot.apply(this,arguments)}function wt(e){return new Promise(function(n){if(navigator.clipboard&&window.isSecureContext)navigator.clipboard.writeText(e).then(function(){return n(!0)}).catch(function(){return n(!1)});else{var t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();try{var r=document.execCommand("copy");document.body.removeChild(t),n(r)}catch(e){document.body.removeChild(t),n(!1)}}})}t(96790);var kt,It,Tt,jt,Dt=t(25083),St=t(42522);function Ft(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function Lt(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Ft(Object(t),!0).forEach(function(n){Rt(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Ft(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Rt(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function Mt(e,n,t,r,i,l,o){try{var a=e[l](o),u=a.value}catch(e){return void t(e)}a.done?n(u):Promise.resolve(u).then(r,i)}function zt(e){return function(){var n=this,t=arguments;return new Promise(function(r,i){var l=e.apply(n,t);function o(e){Mt(l,r,i,o,a,"next",e)}function a(e){Mt(l,r,i,o,a,"throw",e)}o(void 0)})}}function _t(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(e,n)||function(e,n){if(e){if("string"==typeof e)return qt(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?qt(e,n):void 0}}
1(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qt(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function Gt(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}a.Ay.div(kt||(kt=Gt(["\n  display: flex;\n  gap: 8px;\n  align-items: flex-end;\n"]))),a.Ay.div(It||(It=Gt(["\n  flex: 1;\n"]))),(0,a.Ay)(f.A)(Tt||(Tt=Gt(["\n  min-width: 80px;\n  white-space: nowrap;\n"])));var Bt,Ut,Ht,Xt,Nt,Kt,Wt,Vt,Yt,$t,Jt,Zt,Qt,er=a.Ay.div(jt||(jt=Gt(["\n  padding: 8px 16px;\n  text-align: center;\n  border: 2px dashed var(--lineColor);\n  border-radius: 12px;\n  color: var(--subTextColor);\n"]))),nr={size:!0,align:!0,color:!0,list:!0,blockquote:!0,codeblock:!1,link:!0,image:!0,file:!1,html:!0,emoji:!1,header:!0},tr=function(e){var n,t,r,i,l,a,u,d,s=e.formConfig,p=e.setFormConfig,f=_t((0,o.useState)("idle"),2),m=(f[0],f[1]),b=_t((0,o.useState)(!1),2),g=(b[0],b[1]),v=((0,o.useCallback)(zt(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(s.shareLink){e.next=2;break}return e.abrupt("return");case 2:return m("copying"),e.next=5,wt(s.shareLink);case 5:e.sent?(m("success"),setTimeout(function(){return m("idle")},2e3)):(m("error"),setTimeout(function(){return m("idle")},2e3));case 7:case"end":return e.stop()}},e)})),[s.shareLink]),(0,o.useCallback)(function(){var e,n;console.log("🔄 제출 기간 토글:",{"현재상태":null===(e=s.submissionPeriod)||void 0===e?void 0:e.enabled,"새상태":!(null!==(n=s.submissionPeriod)&&void 0!==n&&n.enabled)}),p(function(e){var n,t,r;return Lt(Lt({},e),{},{submissionPeriod:Lt(Lt({},e.submissionPeriod),{},{enabled:!(null!==(n=e.submissionPeriod)&&void 0!==n&&n.enabled),startDate:(null===(t=e.submissionPeriod)||void 0===t?void 0:t.startDate)||null,endDate:(null===(r=e.submissionPeriod)||void 0===r?void 0:r.endDate)||null})})})},[p,null===(n=s.submissionPeriod)||void 0===n?void 0:n.enabled])),y=(0,o.useCallback)(function(){p(function(e){return Lt(Lt({},e),{},{isDefaultForm:!e.isDefaultForm})})},[p]),h=(0,o.useCallback)(function(){p(function(e){return Lt(Lt({},e),{},{hideCampTabs:!e.hideCampTabs})})},[p]),E=(0,o.useCallback)(function(){p(function(e){var n;return Lt(Lt({},e),{},{showAccessTypeField:!(null===(n=e.showAccessTypeField)||void 0===n||n)})})},[p]),P=(0,o.useCallback)(function(e){p(function(n){return Lt(Lt({},n),{},{defaultAccessType:e})})},[p]),C=((0,o.useCallback)(zt(regeneratorRuntime.mark(function e(){var n,t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(console.log("🔍 공유 링크 생성 전 formConfig 상태:",{id:s.id,title:s.title,collectionPath:s.collectionPath,hasShareLink:!!s.shareLink}),s.id){e.next=4;break}return alert("폼을 먼저 저장해주세요."),e.abrupt("return");case 4:return g(!0),e.prev=5,console.log("🔗 공유 링크 생성 시작:",{formId:s.id,collectionPath:s.collectionPath,title:s.title}),e.next=9,At({collectionPath:"form",docId:s.id,title:s.title||"폼 작성",description:s.description||"폼을 작성해주세요"});case 9:if(!(n=e.sent)){e.next=20;break}return p(function(e){return Lt(Lt({},e),{},{shareLink:n})}),console.log("💾 공유 링크 저장 시작:",{collectionPath:"formSetting",formConfigId:s.id,isEdit:!0,shareLink:n}),e.next=15,Ve({collectionPath:"formSetting",formConfig:Lt(Lt({},s),{},{shareLink:n}),isEdit:!0});case 15:t=e.sent,console.log("💾 저장 결과:",t),t.success?(console.log("✅ 공유 링크 생성 및 저장 완료:",n),alert("공유 링크가 생성되고 저장되었습니다!")):(console.error("❌ 저장 실패 상세:",{error:t.error,message:t.message,formConfigId:s.id,collectionPath:"formSetting"}),console.warn("⚠️ 공유 링크 생성은 성공했지만 저장 실패:",t.message),alert("공유 링크는 생성되었지만 저장에 실패했습니다. 폼을 저장해주세요.")),e.next=21;break;case 20:throw new Error("공유 링크 생성에 실패했습니다.");case 21:e.next=27;break;case 23:e.prev=23,e.t0=e.catch(5),console.error("❌ 공유 링크 생성 실패:",e.t0),alert("공유 링크 생성에 실패했습니다. 다시 시도해주세요.");case 27:return e.prev=27,g(!1),e.finish(27);case 30:case"end":return e.stop()}},e,null,[[5,23,27,30]])})),[s,p]),(0,o.useCallback)(function(e,n){var t;console.log("📅 제출 기간 변경:",{startDate:e,endDate:n,"현재enabled":null===(t=s.submissionPeriod)||void 0===t?void 0:t.enabled}),p(function(t){var r;return Lt(Lt({},t),{},{submissionPeriod:Lt(Lt({},t.submissionPeriod),{},{startDate:e,endDate:n,enabled:(null===(r=t.submissionPeriod)||void 0===r?void 0:r.enabled)||!1})})})},[p,null===(t=s.submissionPeriod)||void 0===t?void 0:t.enabled]),(0,o.useCallback)(function(e){var n;
1console.log("📅 시작일 변경:",{startDate:e,"기존endDate":null===(n=s.submissionPeriod)||void 0===n?void 0:n.endDate}),p(function(n){var t,r;return Lt(Lt({},n),{},{submissionPeriod:Lt(Lt({},n.submissionPeriod),{},{startDate:e,endDate:(null===(t=n.submissionPeriod)||void 0===t?void 0:t.endDate)||null,enabled:(null===(r=n.submissionPeriod)||void 0===r?void 0:r.enabled)||!1})})})},[p,null===(r=s.submissionPeriod)||void 0===r?void 0:r.endDate])),A=(0,o.useCallback)(function(e){var n;console.log("📅 종료일 변경:",{endDate:e,"기존startDate":null===(n=s.submissionPeriod)||void 0===n?void 0:n.startDate}),p(function(n){var t,r;return Lt(Lt({},n),{},{submissionPeriod:Lt(Lt({},n.submissionPeriod),{},{startDate:(null===(t=n.submissionPeriod)||void 0===t?void 0:t.startDate)||null,endDate:e,enabled:(null===(r=n.submissionPeriod)||void 0===r?void 0:r.enabled)||!1})})})},[p,null===(i=s.submissionPeriod)||void 0===i?void 0:i.startDate]);return o.createElement(o.Fragment,null,o.createElement(je.wn,null,o.createElement(je._x,null,"기본 정보"),o.createElement(je.E8,null,o.createElement(Z.A,{isChecked:s.isDefaultForm||!1,handleSwitch:y},"이 게시판을 대표 폼으로 지정"),o.createElement(Z.A,{isChecked:s.hideCampTabs||!1,handleSwitch:h},"게시판 상단 진영 태그 탭 숨기기"),o.createElement(je.MG,null,o.createElement(je.DU,null,o.createElement(Z.A,{isChecked:(null===(l=s.submissionPeriod)||void 0===l?void 0:l.enabled)||!1,handleSwitch:v},"폼 제출 기간 설정")),(null===(a=s.submissionPeriod)||void 0===a?void 0:a.enabled)&&o.createElement(Pt.A,{label:"제출 가능 기간",initialFrom:s.submissionPeriod.startDate,initialTo:s.submissionPeriod.endDate,setFrom:C,setTo:A,direction:"bottomLeft"})),o.createElement(je.MG,null,o.createElement(x.A,{label:"폼 제목",name:"title",value:s.title||"",onChange:function(e){return p(function(n){return Lt(Lt({},n),{},{title:e.target.value})})},placeholder:"폼 제목을 입력하세요"})),o.createElement(je.MG,null,o.createElement(Dt.A,null,"폼 설명"),o.createElement(er,null,o.createElement(nn.A,{id:"form-description-editor-".concat(s.id),value:s.description||"",onChange:function(e){return p(function(n){return Lt(Lt({},n),{},{description:e})})},style:{minHeight:150},placeholder:"폼에 대한 설명을 입력하세요",setToolbar:nr}))),o.createElement(je.MG,null,o.createElement(Z.A,{isChecked:null===(u=s.showAccessTypeField)||void 0===u||u,handleSwitch:E},"폼 작성 시 열람 권한 선택 보이기"),o.createElement(rn.PF,null,"끄면 작성자에게 열람 권한 선택 UI가 숨겨지고, 아래에서 설정한 기본값이 자동 적용됩니다. 관리자는 수정 시 항상 열람 권한을 변경할 수 있습니다.")),o.createElement(je.MG,null,o.createElement(St.A,{accessType:null!==(d=s.defaultAccessType)&&void 0!==d?d:c.KC.PUBLIC,setAccessType:P,label:"열람 권한 기본값"})))))};function rr(e){return function(e){if(Array.isArray(e))return ur(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ar(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ir(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function lr(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?ir(Object(t),!0).forEach(function(n){or(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ir(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function or(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function ar(e,n){if(e){if("string"==typeof e)return ur(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?ur(e,n):void 0}}function ur(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function cr(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}t(4031);var dr,sr,pr,fr,mr,br,gr,vr=a.Ay.div(Bt||(Bt=cr(["\n  display: flex;\n  flex-direction: column;\n  gap: 24px;\n  padding: 24px;\n  ","\n"])),Et.BA),yr=a.Ay.div(Ut||(Ut=cr(["\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n"]))),hr=a.Ay.h3(Ht||(Ht=cr(["\n  font-size: 18px;\n  font-weight: 600;\n  color: var(--textColor);\n  margin: 0;\n"]))),xr=a.Ay.p(Xt||(Xt=cr(["\n  font-size: 14px;\n  color: var(--subTextColor);\n  margin: 0;\n  line-height: 1.5;\n"]))),Er=a.Ay.div(Nt||(Nt=cr(["\n  padding: 12px 16px;\n  border-radius: 8px;
1\n  background: var(--primaryBackgroundColor);\n  border: 1px solid var(--primaryColor);\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 13px;\n  color: var(--textColor);\n  line-height: 1.5;\n"]))),Pr=a.Ay.span(Kt||(Kt=cr(["\n  background: var(--primaryColor);\n  color: white;\n  font-size: 12px;\n  padding: 2px 8px;\n  border-radius: 12px;\n  margin-left: 8px;\n"]))),Cr=a.Ay.div(Wt||(Wt=cr(["\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n  padding: 20px;\n  border: 1px solid var(--lineColor);\n  border-radius: 8px;\n  background: var(--cardBackgroundColor);\n"]))),Ar=a.Ay.select(Vt||(Vt=cr(["\n  padding: 12px 16px;\n  border: 1px solid var(--lineColor);\n  border-radius: 8px;\n  background: var(--cardBackgroundColor);\n  color: var(--textColor);\n  font-size: 14px;\n  outline: none;\n  transition: border-color 0.2s;\n\n  &:focus {\n    border-color: var(--primaryColor);\n  }\n\n  &:disabled {\n    background: var(--disabledBackgroundColor);\n    color: var(--subTextColor);\n    cursor: not-allowed;\n  }\n"]))),Or=a.Ay.div(Yt||(Yt=cr(["\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 14px 18px;\n  border-radius: 8px;\n  background: var(--primaryBackgroundColor);\n  border: 1.5px solid var(--primaryColor);\n  gap: 12px;\n"]))),wr=a.Ay.div($t||($t=cr(["\n  font-size: 13px;\n  color: var(--textColor);\n  line-height: 1.5;\n\n  strong {\n    color: var(--primaryColor);\n    font-weight: 600;\n  }\n"]))),kr=a.Ay.button(Jt||(Jt=cr(["\n  flex-shrink: 0;\n  padding: 8px 16px;\n  border-radius: 6px;\n  background: var(--primaryColor);\n  color: white;\n  font-size: 13px;\n  font-weight: 600;\n  border: none;\n  cursor: pointer;\n  white-space: nowrap;\n  transition: opacity 0.15s;\n\n  &:hover {\n    opacity: 0.85;\n  }\n"]))),Ir=a.Ay.span(Zt||(Zt=cr(["\n  font-size: 12px;\n  color: var(--subTextColor);\n  font-weight: 400;\n\n  em {\n    color: var(--primaryColor);\n    font-style: normal;\n    font-weight: 500;\n  }\n"]))),Tr=a.Ay.div(Qt||(Qt=cr(["\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n"]))),jr=function(e){var n=e.formConfig,t=e.setFormConfig,r=n.fields,i=n.listDisplayMapping,l=(0,o.useMemo)(function(){var e=Object.entries(Te).find(function(e){var t,r,i=(t=e,r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(t,r)||ar(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[1];return i.title===n.title&&i.listDisplayMappingPreset});return e?{key:e[0],label:e[1].title,preset:e[1].listDisplayMappingPreset}:null},[n.title]),a=(0,o.useCallback)(function(){if(l){var e=l.preset,n=function(e){return null===e||e<0||e>=r.length?null:r[e].id||null};t(function(t){return lr(lr({},t),{},{listDisplayMapping:lr(lr({},t.listDisplayMapping),{},{titleFieldId:n(e.titleFieldIndex),thumbnailFieldId:n(e.thumbnailFieldIndex),subTitleFieldId:n(e.subTitleFieldIndex),optionFieldId:n(e.optionFieldIndex),optionField2Id:n(e.optionField2Index),profileFieldId:n(e.profileFieldIndex),fullBodyFieldId:n(e.fullBodyFieldIndex),tagFieldId:n(e.tagFieldIndex),descriptionFieldId:n(e.descriptionFieldIndex),isCompleted:!1})})})}},[l,r,t]);(0,o.useEffect)(function(){n.listDisplayMapping||t(function(e){return lr(lr({},e),{},{listDisplayMapping:{titleFieldId:null,thumbnailFieldId:null,subTitleFieldId:null,optionFieldId:null,optionField2Id:null,profileFieldId:null,fullBodyFieldId:null,tagFieldId:null,descriptionFieldId:null,isCompleted:!1}})})},[n.listDisplayMapping,t]);var u=(0,o.useMemo)(function(){return[{value:"",label:"선택하지 않음"}].concat(r.map(function(e){return{value:e.id,label:"".concat(e.title," (").concat(e.type,")")}}))},[r]),c=(0,o.useMemo)(function(){var e=r.filter(function(e){return e.type===m.PR.SHORT_TEXT||e.type===m.PR.LONG_TEXT});return[{value:"",label:"선택하지 않음"}].concat(rr(e.map(function(e){return{value:e.id,label:"".concat(e.title," (").concat(e.type,")")}}
1)))},[r]),d=(0,o.useMemo)(function(){var e=r.filter(function(e){return e.type===m.PR.IMAGE_UPLOAD});return[{value:"",label:"선택하지 않음"}].concat(rr(e.map(function(e){return{value:e.id,label:"".concat(e.title," (이미지)")}})))},[r]);(0,o.useEffect)(function(){if(i){var e=!(!i.titleFieldId||!i.thumbnailFieldId);i.isCompleted!==e&&t(function(n){return lr(lr({},n),{},{listDisplayMapping:lr(lr({},n.listDisplayMapping),{},{isCompleted:e})})})}},[i,t]);var s=function(e,n){t(function(t){return lr(lr({},t),{},{listDisplayMapping:lr(lr({},t.listDisplayMapping),{},or({},e,n||null))})})};return o.createElement(vr,null,o.createElement(yr,null,o.createElement(hr,null,"리스트 표시 설정",o.createElement(Pr,null,"필수")),o.createElement(xr,null,"폼 응답이 리스트 및 포토카드 게시판에서 어떻게 표시될지 설정합니다. 각 필드 선택 시 포토카드 마이그레이션 매핑도 함께 설정됩니다."),o.createElement(Er,null,"필수 항목(제목, 썸네일)을 반드시 설정해주세요. 마이그레이션 시 각 필드가 포토카드 속성으로 변환됩니다.")),l&&o.createElement(Or,null,o.createElement(wr,null,o.createElement("strong",null,"[",l.label,"]")," 템플릿에 맞는 리스트 표시 설정 프리셋이 있습니다. 아래 버튼을 눌러 자동으로 적용하세요."),o.createElement(kr,{onClick:a},"템플릿 매핑 적용")),o.createElement(Cr,null,o.createElement(yr,null,o.createElement(Tr,null,o.createElement(hr,null,"제목 필드 선택"),o.createElement(Ir,null,"제목 필드 ↔ 포토카드의 ",o.createElement("em",null,"타이틀(title)"),"로 변환")),o.createElement(Ar,{value:(null==i?void 0:i.titleFieldId)||"",onChange:function(e){return s("titleFieldId",e.target.value)}},c.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)}))),o.createElement(yr,null,o.createElement(Tr,null,o.createElement(hr,null,"썸네일 필드 선택"),o.createElement(Ir,null,"썸네일 필드 ↔ 포토카드의 ",o.createElement("em",null,"대표 이미지(thumbnail)"),"로 변환")),o.createElement(Ar,{value:(null==i?void 0:i.thumbnailFieldId)||"",onChange:function(e){return s("thumbnailFieldId",e.target.value)}},d.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)}))),o.createElement(yr,null,o.createElement(Tr,null,o.createElement(hr,null,"부제목 필드 선택 (선택사항)"),o.createElement(Ir,null,"부제목 필드 ↔ 포토카드의 ",o.createElement("em",null,"서브타이틀(subTitle)"),"로 변환")),o.createElement(Ar,{value:(null==i?void 0:i.subTitleFieldId)||"",onChange:function(e){return s("subTitleFieldId",e.target.value)}},c.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)}))),o.createElement(yr,null,o.createElement(Tr,null,o.createElement(hr,null,"태그 필드 선택 (선택사항)"),o.createElement(Ir,null,"태그 필드 ↔ 포토카드의 ",o.createElement("em",null,"타이틀 태그(closet.tag)"),"로 변환")),o.createElement(Ar,{value:(null==i?void 0:i.tagFieldId)||"",onChange:function(e){return s("tagFieldId",e.target.value)}},c.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)}))),o.createElement(yr,null,o.createElement(Tr,null,o.createElement(hr,null,"설명 필드 선택 (선택사항)"),o.createElement(Ir,null,"설명 필드 ↔ 포토카드의 ",o.createElement("em",null,"설명(closet.description)"),"으로 변환")),o.createElement(Ar,{value:(null==i?void 0:i.descriptionFieldId)||"",onChange:function(e){return s("descriptionFieldId",e.target.value)}},c.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)}))),o.createElement(yr,null,o.createElement(hr,null,"옵션 필드 1 선택 (선택사항)"),o.createElement(xr,null,"리스트에서 추가 정보로 표시될 첫 번째 필드를 선택하세요."),o.createElement(Ar,{value:(null==i?void 0:i.optionFieldId)||"",onChange:function(e){return s("optionFieldId",e.target.value)}},u.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)}))),o.createElement(yr,null,o.createElement(hr,null,"옵션 필드 2 선택 (선택사항)"),o.createElement(xr,null,"리스트에서 추가 정보로 표시될 두 번째 필드를 선택하세요."),o.createElement(Ar,{value:(null==i?void 0:i.optionField2Id)||"",onChange:function(e){return s("optionField2Id",e.target.value)}},u.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)}))),o.createElement(yr,null,o.createElement(Tr,null,o.createElement(hr,null,"대표 프로필 필드 선택 (선택사항)"),o.createElement(Ir,null,"대표 프로필 필드 ↔ 포토카드의 ",o.createElement("em",null,"프로필 이미지"),"로 변환")),o.createElement(Ar,{value:(null==i?void 0:i.profileFieldId)||"",onChange:function(e){return s("profileFieldId",e.target.value)}},d.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)}))),o.createElement(yr,null,o.createElement(Tr,null,o.createElement(hr,null,"전신 필드 선택 (선택사항)"),o.createElement(Ir,null,"전신 필드 ↔ 포토카드의 ",o.createElement("em",null,"대표 이미지(closet[0].imgURL)"),"로 변환")),o.createElement(Ar,{value:(null==i?void 0:i.fullBodyFieldId)||"",onChange:function(e){return s("fullBodyFieldId",e.target.value)}},d.map(function(e){return o.createElement("option",{key:e.value,value:e.value},e.label)})))),0===r.length&&o.createElement(xr,{style:{textAlign:"center",color:"var(--warningColor)"}},"먼저 필드를 추가한 후 리스트 표시 설정을 진행해주세요."))};function Dr(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function Sr(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}t(6110);var Fr,Lr,Rr,Mr,zr,_r,qr=a.Ay.div(dr||(dr=Sr(["\n  display: flex;\n  flex-direction: column;\n  gap: 24px;\n"]))),Gr=a.Ay.div(sr||(sr=Sr(["\n  background: var(--cardBackgroun
1dColor);\n  border: 1px solid var(--lineColor);\n  border-radius: 8px;\n  padding: 20px;\n"]))),Br=a.Ay.h3(pr||(pr=Sr(["\n  font-size: 18px;\n  font-weight: 600;\n  color: var(--textColor);\n  margin-bottom: 16px;\n  padding-bottom: 12px;\n  border-bottom: 2px solid var(--lineColor);\n"]))),Ur=a.Ay.div(fr||(fr=Sr(["\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 12px 0;\n  border-bottom: 1px solid var(--lineColor);\n\n  &:last-child {\n    border-bottom: none;\n  }\n"]))),Hr=a.Ay.div(mr||(mr=Sr(["\n  font-size: 14px;\n  color: var(--textColor);\n  font-weight: 500;\n"]))),Xr=a.Ay.div(br||(br=Sr(["\n  font-size: 17px;\n  font-weight: 700;\n"]))),Nr=a.Ay.div(gr||(gr=Sr(["\n  text-align: center;\n  padding: 40px 20px;\n  color: var(--subTextColor);\n  font-size: 14px;\n"]))),Kr=function(e){var n=e.formConfig,t=(0,y.useCollection)(n.id?h.Gf.FORM:null,{where:["formConfigId","==",n.id],listen:!0}).data,r=(0,o.useMemo)(function(){return n.fields.find(function(e){return e.type===m.PR.STATUS})},[n.fields]),i=(0,o.useMemo)(function(){if(!t||!r)return{};var e={};return t.forEach(function(n){var t=n.responses&&n.responses[r.id]||n[r.id],i=(null==t?void 0:t.value)||t||n.status||"draft";e[i]=(e[i]||0)+1}),e},[t,r]);return o.createElement(qr,null,o.createElement(Gr,null,o.createElement(Br,null,"전체 응답 집계"),o.createElement(Ur,null,o.createElement(Hr,null,"총 응답 수"),o.createElement(Xr,null,(null==t?void 0:t.length)||0,"개"))),r&&o.createElement(Gr,null,o.createElement(Br,null,"응답 상태 집계"),o.createElement("div",{style:{fontSize:13,color:"var(--subTextColor)",marginBottom:16}},r.title),Object.keys(i).length>0?o.createElement(o.Fragment,null,Object.entries(i).map(function(e){var n,t,r=(t=2,function(e){if(Array.isArray(e))return e}(n=e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(n,t)||function(e,n){if(e){if("string"==typeof e)return Dr(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Dr(e,n):void 0}}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=r[0],l=r[1];return o.createElement(Ur,{key:i},o.createElement(Hr,null,m.HY[i]||i),o.createElement(Xr,null,l,"개"))}),o.createElement(Ur,{style:{borderTop:"2px solid var(--lineColor)",marginTop:8}},o.createElement(Hr,{style:{fontWeight:700}},"전체"),o.createElement(Xr,null,Object.values(i).reduce(function(e,n){return e+n},0),"개"))):o.createElement(Nr,null,"아직 상태별 통계가 없습니다.")),(!t||0===t.length)&&o.createElement(Gr,null,o.createElement(Nr,null,o.createElement("h4",{style:{marginBottom:8,color:"var(--textColor)"}},"아직 응답이 없습니다"),o.createElement("p",null,"폼이 제출되면 여기에 통계가 표시됩니다."))))},Wr=t(60684);function Vr(e,n,t,r,i,l,o){try{var a=e[l](o),u=a.value}catch(e){return void t(e)}a.done?n(u):Promise.resolve(u).then(r,i)}function Yr(e){return function(){var n=this,t=arguments;return new Promise(function(r,i){var l=e.apply(n,t);function o(e){Vr(l,r,i,o,a,"next",e)}function a(e){Vr(l,r,i,o,a,"throw",e)}o(void 0)})}}function $r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function Jr(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?$r(Object(t),!0).forEach(function(n){Zr(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):$r(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Zr(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function Qr(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(e,n)||function(e,n){if(e){if("string"==typeof e)return ei(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?ei(e,n):void 0}}
1(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ei(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function ni(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var ti,ri=a.Ay.div(Fr||(Fr=ni(["\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n  width: 100%;\n  max-width: 1460px;\n"]))),ii=a.Ay.div(Lr||(Lr=ni(["\n  display: grid;\n  grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr);\n  gap: 16px;\n  align-items: start;\n  width: 100%;\n"]))),li=a.Ay.div(Rr||(Rr=ni(["\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 16px;\n  ","\n"])),Et.BA),oi=a.Ay.h1(Mr||(Mr=ni(["\n  font-size: 24px;\n  font-weight: 700;\n  color: var(--textColor);\n  margin: 0;\n"]))),ai=a.Ay.div(zr||(zr=ni(["\n  display: flex;\n  gap: 12px;\n"]))),ui=a.Ay.div(_r||(_r=ni(["\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n  padding: 16px;\n  min-width: 0;\n  ","\n"])),Et.BA);!function(e){e.DEFAULT="default",e.LIST_DISPLAY="listDisplay",e.FIELDS="fields",e.GUIDE="guide",e.DESIGN="design",e.STATS="stats"}(ti||(ti={}));var ci=function(){var e=(0,u.Zp)(),n="formSetting",r=(0,d.vc)(s.Bs),i=Qr((0,o.useState)(ti.DEFAULT),2),l=i[0],a=i[1],m=Qr((0,o.useState)(!1),2),b=m[0],g=m[1],v=Qr((0,o.useState)(null),2),y=v[0],h=v[1],x=Qr((0,o.useState)((null==y?void 0:y.guideContents)||""),2),E=x[0],P=x[1],C=Qr((0,o.useState)((null==y?void 0:y.guideHtmlContents)||""),2),A=C[0],O=C[1],w=Qr((0,o.useState)((null==y?void 0:y.guideActive)||!1),2),k=w[0],I=w[1],T=Qr((0,o.useState)((null==y?void 0:y.guideIsHtmlMode)||!1),2),j=T[0],D=T[1];(0,o.useEffect)(function(){P((null==y?void 0:y.guideContents)||""),O((null==y?void 0:y.guideHtmlContents)||""),I((null==y?void 0:y.guideActive)||!1),D((null==y?void 0:y.guideIsHtmlMode)||!1)},[y]);var S=function(e){var n={id:e.id,type:e.type,title:e.title||"",description:e.description||"",required:e.required,order:e.order,isPhotocardLinked:e.isPhotocardLinked};return void 0!==e.adminOnly&&(n.adminOnly=e.adminOnly),void 0!==e.useDefaultProfile&&(n.useDefaultProfile=e.useDefaultProfile),void 0!==e.profileTemplateId&&(n.profileTemplateId=e.profileTemplateId),void 0!==e.dividerText&&(n.dividerText=e.dividerText),void 0!==e.maxLength&&(n.maxLength=e.maxLength),void 0!==e.allowMultiple&&(n.allowMultiple=e.allowMultiple),void 0!==e.maxImageCount&&(n.maxImageCount=e.maxImageCount),void 0!==e.options&&(n.options=e.options||[]),void 0!==e.hashtag&&(n.hashtag=e.hashtag||[]),void 0!==e.collectionPath&&(n.collectionPath=e.collectionPath),n},F=function(e){var n,t,r,i,l,o=e.submissionPeriod?{enabled:null!==(n=e.submissionPeriod.enabled)&&void 0!==n&&n,startDate:null!==(t=e.submissionPeriod.startDate)&&void 0!==t?t:null,endDate:null!==(r=e.submissionPeriod.endDate)&&void 0!==r?r:null}:{enabled:!1,startDate:null,endDate:null};return console.log("🧹 sanitizeFormConfig - submissionPeriod:",{input:e.submissionPeriod,output:o}),Jr(Jr({},e),{},{fields:e.fields.map(S),submissionPeriod:o,listDisplayMapping:e.listDisplayMapping||{titleFieldId:null,thumbnailFieldId:null,subTitleFieldId:null,optionFieldId:null,optionField2Id:null,profileFieldId:null,fullBodyFieldId:null,tagFieldId:null,descriptionFieldId:null,isCompleted:!1},defaultAccessType:null!==(i=e.defaultAccessType)&&void 0!==i?i:"public",showAccessTypeField:null===(l=e.showAccessTypeField)||void 0===l||l,__snapshot:""})},L=(0,o.useCallback)(Yr(regeneratorRuntime.mark(function e(){var r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(y&&y.id){e.next=3;break}return alert("삭제할 폼을 선택해주세요."),e.abrupt("return");case 3:if(confirm('"'.concat(y.title,'" 폼을 삭제하시겠습니까?\n\n이 작업은 되돌릴 수 없습니다.\n관련 응답 데이터는 삭제되지 않습니다.'))){e.next=6;break}return e.abrupt("return");case 6:return e.prev=6,e.next=9,Promise.resolve().then(t.bind(t,59352)).then(function(e){return e.default.firestore()});case 9:return r=e.sent,e.next=12,r.collection(n).doc(y.id).delete();case 12:alert("폼이 삭제되었습니다."),h(null),e.next=20;break;case 16:e.prev=16,e.t0=e.catch(6),console.error("폼 삭제 오류:",e.t0),alert("폼 삭제 ì
1¤‘ 오류가 발생했습니다.");case 20:case"end":return e.stop()}},e,null,[[6,16]])})),[y,n]),R=(0,o.useCallback)(Yr(regeneratorRuntime.mark(function e(){var t,i,l;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t={id:"",title:"새 폼",description:"",collectionPath:n,fields:[],accessType:c.KC.PUBLIC,authorUid:r||"",createdAt:new Date,submissionPeriod:{startDate:null,endDate:null,enabled:!1},isDefaultForm:!1,listDisplayMapping:{titleFieldId:null,thumbnailFieldId:null,subTitleFieldId:null,optionFieldId:null,optionField2Id:null,profileFieldId:null,fullBodyFieldId:null,tagFieldId:null,descriptionFieldId:null,isCompleted:!1},guideActive:!1,guideContents:"",designType:Fn.PK.NUMBERED},i=F(t),e.next=4,Ve({collectionPath:"formSetting",formConfig:i});case 4:(l=e.sent).success?(alert(l.message),l.id&&h(Jr(Jr({},t),{},{id:l.id}))):alert(l.message);case 6:case"end":return e.stop()}},e)})),[r,n]),M=(0,o.useCallback)(Yr(regeneratorRuntime.mark(function e(){var i,l,o,a,u,c,d,s,p,f;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(y){e.next=3;break}return alert("저장할 폼을 선택하거나 추가해주세요."),e.abrupt("return");case 3:if(console.log("🔍 저장 시작 - formConfig 상태:",{title:y.title,isDefaultForm:y.isDefaultForm,submissionPeriod:y.submissionPeriod,hasSubmissionPeriod:!!y.submissionPeriod,submissionPeriodEnabled:null===(i=y.submissionPeriod)||void 0===i?void 0:i.enabled,startDate:null===(l=y.submissionPeriod)||void 0===l?void 0:l.startDate,endDate:null===(o=y.submissionPeriod)||void 0===o?void 0:o.endDate}),y.title.trim()){e.next=7;break}return alert("폼 제목을 입력해주세요."),e.abrupt("return");case 7:if(null!==(a=y.listDisplayMapping)&&void 0!==a&&a.isCompleted){e.next=10;break}return alert("리스트 표시 설정을 완료해주세요. (제목, 썸네일, 부제목 필드를 모두 선택해야 합니다)"),e.abrupt("return");case 10:if(e.prev=10,g(!0),!y.isDefaultForm){e.next=24;break}return e.next=15,Promise.resolve().then(t.bind(t,59352)).then(function(e){return e.default.firestore()});case 15:return u=e.sent,e.next=18,u.collection(n).where("isDefaultForm","==",!0).get();case 18:return c=e.sent,d=u.batch(),c.docs.forEach(function(e){e.id!==y.id&&d.update(e.ref,{isDefaultForm:!1})}),e.next=23,d.commit();case 23:console.log("✅ 기존 대표 폼 해제 완료");case 24:return s=F(y),console.log("🧹 정리된 설정:",{submissionPeriod:s.submissionPeriod}),p=Jr(Jr({},s),{},{authorUid:r||"",guideContents:E||"",guideHtmlContents:A||"",guideActive:null!=k&&k,guideIsHtmlMode:null!=j&&j}),console.log("💾 저장할 최종 데이터:",{submissionPeriod:p.submissionPeriod}),e.next=30,Ve({collectionPath:n,formConfig:p,isEdit:!!y.id});case 30:(f=e.sent).success?(!y.id&&f.id&&h(function(e){return e?Jr(Jr({},e),{},{id:f.id}):e}),console.log("✅ 저장 성공"),alert(f.message)):(console.error("❌ 저장 실패:",f.message),alert(f.message)),e.next=38;break;case 34:e.prev=34,e.t0=e.catch(10),console.error("폼 저장 중 오류:",e.t0),alert("폼 저장 중 오류가 발생했습니다.");case 38:return e.prev=38,g(!1),e.finish(38);case 41:case"end":return e.stop()}},e,null,[[10,34,38,41]])})),[y,n,r,E,A,k,j]),z=y?[{value:ti.DEFAULT,label:"기본 설정",isShow:!0,drawView:o.createElement(tr,{formConfig:y,setFormConfig:h})},{value:ti.LIST_DISPLAY,label:"리스트 표시 설정",isShow:!0,drawView:o.createElement(jr,{formConfig:y,setFormConfig:h})},{value:ti.FIELDS,label:"필드 설정",isShow:!0,drawView:o.createElement(_e,{formConfig:y,setFormConfig:h})},{value:ti.GUIDE,label:"안내 페이지",isShow:!0,drawView:o.createElement(Sn,{formConfig:y,guideContents:E,guideHtmlContents:A,guideActive:k,guideIsHtmlMode:j,setGuideContents:P,setGuideHtmlContents:O,setGuideActive:I,setGuideIsHtmlMode:D})},{value:ti.DESIGN,label:"폼 디자인",isShow:!0,drawView:o.createElement(st,{formConfig:y,setFormConfig:h})},{value:ti.STATS,label:"응답 통계",isShow:!0,drawView:o.createElement(Kr,{formConfig:y})}]:[];return o.createElement(Wr.Ay,null,o.createElement(ri,null,o.createElement(li,null,o.createElement(oi,null,(null==y?void 0:y.title)||"폼 설정"),o.createElement(ai,null,o.createElement(f.A,{shape:"stroke",onClick:function(){return e(-1)}},"나가기"),y&&o.createElement(f.A,{shape:"stroke",color:"warning",onClick:L},"폼 삭제"),o.createElement(f.A,{onClick:M,disabled:b},b?"저장 중...":"저장"))),o.createElement(ii,null,o.createElement(ui,null,o.createElement(f.A,{color:"default",onClick:R},"폼 추가"),o.createElement(xt,{formConfig:y,setFormConfig:h})),o.createElement("div",{style:{minWidth:0}},y?o.createElement(p.A,{viewOptions:z,defaultViewType:l,customSetViewType:a}):o.createElement("div",null,"폼을 선택하거나 추가해주세요.")))))}},21960:function(e,n,t){t.d(n,{B5:function(){return I},DU:function(){return O},Dq:function(){return D},E8:function(){return C},F3:function(){return j},MG:function(){return A},Mp:function(){return T},WY:function(){return w},_x:function(){return P},aF:function(){return k},eW:function(){return S},pp:function(){return F},wn:function(){return E}}),t(12064),t(44465),t(31863);var r,i,l,o,a,u,c,d,s,p,f,m,b,g,v,y,h=t(84136);function x(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}
1var E=h.Ay.div(r||(r=x(["\n  background: var(--cardBackgroundColor);\n  border-radius: 12px;\n  border: 1px solid var(--lineColor);\n  padding: 24px;\n  margin-bottom: 24px;\n"]))),P=h.Ay.h3(i||(i=x(["\n  font-size: 18px;\n  font-weight: 600;\n  color: var(--textColor);\n  margin: 0 0 16px 0;\n"]))),C=h.Ay.div(l||(l=x(["\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n  margin-bottom: 24px;\n"]))),A=h.Ay.div(o||(o=x(["\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n"]))),O=h.Ay.div(a||(a=x(["\n  display: flex;\n  align-items: center;\n  gap: 16px;\n"]))),w=(h.Ay.div(u||(u=x(["\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 14px;\n"]))),h.Ay.div(c||(c=x(["\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n  position: relative;\n  min-height: 100px;\n"])))),k=h.Ay.div(d||(d=x(["\n  margin-bottom: 20px;\n"]))),I=h.Ay.h6(s||(s=x(["\n  margin-bottom: 12px;\n  color: var(--textColor);\n  font-size: 14px;\n  font-weight: 600;\n"]))),T=h.Ay.div(p||(p=x(["\n  display: flex;\n  gap: 8px;\n  flex-wrap: wrap;\n"]))),j=h.Ay.button(f||(f=x(["\n  padding: 8px 16px;\n  border: 1px solid var(--lineColor);\n  border-radius: 8px;\n  background: var(--bgColor);\n  color: var(--textColor);\n  cursor: pointer;\n  font-size: 13px;\n  transition: all 0.2s ease;\n\n  &:hover {\n    border-color: var(--primaryColor);\n    background: var(--primaryColor);\n    color: white;\n  }\n"]))),D=h.Ay.div(m||(m=x(["\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  padding: 16px;\n  border: 2px dashed var(--lineColor);\n  border-radius: 8px;\n  background: transparent;\n  transition: all 0.2s ease;\n  margin-top: 16px;\n\n  &:hover {\n    border-color: var(--primaryColor);\n    background: rgba(var(--primaryColorRGB), 0.05);\n  }\n"]))),S=h.Ay.button(b||(b=x(["\n  padding: 12px 20px;\n  background: var(--primaryColor);\n  color: white;\n  border: none;\n  border-radius: 6px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n\n  &:hover {\n    background: var(--primaryColorHover);\n    transform: translateY(-1px);\n  }\n"]))),F=(h.Ay.div(g||(g=x(["\n  display: flex;\n  justify-content: flex-end;\n  gap: 12px;\n  margin-top: 24px;\n  padding-top: 24px;\n  border-top: 1px solid var(--lineColor);\n"]))),h.Ay.div(v||(v=x(["\n  width: 200px;\n"]))),h.Ay.div(y||(y=x(["\n  text-align: center;\n  padding: 40px 20px;\n  color: var(--subTextColor);\n  border: 2px dashed var(--lineColor);\n  border-radius: 8px;\n  background: var(--bgColor);\n"]))))},30868:function(e,n,t){t(12064),t(44465),t(31863),t(3940),t(32145),t(74277),t(61445),t(57045),t(65114),t(32242),t(60039),t(75868),t(42652),t(66706);var r,i,l,o=t(37953),a=t(84136),u=t(66028),c=t(33820),d=t(43078),s=t(61578),p=t(42274),f=t(11731),m=t(10546),b=t(53942),g=t(25083),v=t(73968),y=t(45435),h=t.n(y);function x(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,l=[],o=!0,a=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(l.push(r.value),!n||l.length!==n);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(a)throw i}}return l}}(e,n)||function(e,n){if(e){if("string"==typeof e)return E(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?E(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function P(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var C=a.Ay.div(r||(r=P(["\n  position: relative;\n  width: 100%;\n"]))),A=a.Ay.div(i||(i=P(["\n  display: flex;\n  gap: 8px;\n  align-items: center;\n  position: relative;\n"]))),O=a.Ay.div(l||(l=P(["\n  .rdp {\n    margin: 0 !important;\n  }\n"])));n.A=function(e){var n=e.label,t=e.required,r=e.initialFrom,i=e.initialTo,l=e.setFrom,a=e.setTo,y=e.direction,E=x((0,o.useState)(!1),2),P=E[0],w=E[1],k=(0,o.useRef)(null),I=x((0,o.useState)(),2),T=I[0],j=I[1],D=x((0,o.useState)(""),2),S=D[0],F=D[1],L=x((0,o.useState)(""),2),R=L[0],M=L[1];function z(){w(!0)}function _(e){return e instanceof Date?h()(e).format("YYYY-MM-DD"):(0,v.LU)(e)}return(0,o.useEffect)(function(){r&&F(_(r)),i&&M(_(i))},[]),o.createElement(C,null,n&&o.createElement(g.A,{required:t},n),o.createElement(A,{ref:k}
1,o.createElement(b.A,{value:S,name:"from date",onChange:function(e){var n=e.target.value,t=(0,d.A)(n,"y-MM-dd",new Date);if(!(0,s.A)(n))return l&&l(n),j({from:void 0,to:void 0}),F(n);l&&l(t),null!=T&&T.to&&(0,p.A)(t,T.to)?j({from:T.to,to:t}):j({from:t,to:null==T?void 0:T.to})},placeholder:"From Date",onFocus:z})," – ",o.createElement(b.A,{value:R,name:"to date",onChange:function(e){var n=e.target.value,t=(0,d.A)(n,"y-MM-dd",new Date);if(!(0,s.A)(n))return a&&a(n),j({from:void 0,to:void 0}),M(n);a&&a(t),null!=T&&T.from&&(0,f.A)(t,T.from)?j({from:t,to:T.from}):j({from:null==T?void 0:T.from,to:t})},placeholder:"To Date",onFocus:z})),P&&o.createElement(u.Ay,{handleClickOutside:function(e,n){k.current&&n&&(k.current.contains(e.target)||n.contains(e.target)||!P||w(!1))},direction:y||"bottomLeft",style:{width:"100%"},open:P},o.createElement(O,null,o.createElement(c.hv,{initialFocus:P,mode:"range",selected:T,onSelect:function(e){j(e),null!=e&&e.from?(F((0,m.A)(e.from,"y-MM-dd")),l&&l(e.from)):(F(""),l&&l("")),null!=e&&e.to?(M((0,m.A)(e.to,"y-MM-dd")),a&&a(e.to)):(M(""),a&&a(""))}}))))}}}]);
2//# sourceMappingURL=4321.b69160a3.chunk.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.