1"use strict";(self.webpackChunkttoools_web=self.webpackChunkttoools_web||[]).push([[6977],{98333:(H,R,s)=>{s.d(R,{Q:()=>V});var v=s(45312),M=s(17705),C=s(21626),t=s(95416);let V=(()=>{class k{constructor(b,l){this.http=b,this.snackbar=l,this.endpoint=v.c.text_to_docx_url}downloadDocxV0(b,l="output.docx"){this.snackbar.open("Document is currently being exported, please wait...","",{duration:3e4}),this.http.post(this.endpoint+"ttdocx/",{pages:b}).subscribe(h=>{const u=this.base64ToBlob(h.docx_base64,"application/vnd.openxmlformats-officedocument.wordprocessingml.document"),y=window.URL.createObjectURL(u),d=document.createElement("a");d.href=y,d.download=l,d.click(),this.snackbar.open("Your document has been successfully exported. Thank you for waiting!")},h=>console.error(h))}downloadDocx(b,l="output.docx"){this.snackbar.open("Document is currently being exported, please wait...","",{duration:3e4});const O={pages:b},h=l.replace(/[:\\\/\?\*\"\<\>\|\.{2,}]/g,"_").replace(/\s+/g,"_").replace(/_{2,}/g,"_"),g=h.endsWith(".docx")?h:h+".docx";this.http.post(this.endpoint+"ttdocx/",O).subscribe(u=>{const d=this.base64ToBlob(u.docx_base64,"application/vnd.openxmlformats-officedocument.wordprocessingml.document"),j=window.URL.createObjectURL(d),F=document.createElement("a");F.href=j,F.download=g,F.click(),window.URL.revokeObjectURL(j),this.snackbar.open("Your document has been successfully exported. Thank you for waiting!")},u=>{console.error(u),this.snackbar.open("Error exporting document. Please try again.","",{duration:5e3})})}htmlToDocx(b,l="output.docx"){this.snackbar.open("Document is currently being exported, please wait...","",{duration:3e4}),this.http.post(this.endpoint+"ttdocx/html-to-docx",{html:b}).subscribe(h=>{const u=this.base64ToBlob(h.docx_base64,"application/vnd.openxmlformats-officedocument.wordprocessingml.document"),y=window.URL.createObjectURL(u),d=document.createElement("a");d.href=y,d.download=l,d.click(),this.snackbar.open("Your document has been successfully exported. Thank you for waiting!")},h=>console.error(h))}base64ToBlob(b,l){const h=atob(b),g=h.length,u=Math.ceil(g/512),y=new Array(u);for(let d=0;d<u;++d){const j=512*d,F=Math.min(j+512,g),B=new Array(F-j);for(let x=j,f=0;x<F;++f,++x)B[f]=h[x].charCodeAt(0);y[d]=new Uint8Array(B)}return new Blob(y,{type:l})}static{this.\u0275fac=function(l){return new(l||k)(M.KVO(C.Qq),M.KVO(t.UG))}}static{this.\u0275prov=M.jDH({token:k,factory:k.\u0275fac,providedIn:"root"})}}return k})()},66977:(H,R,s)=>{s.r(R),s.d(R,{NovelModule:()=>Zt});var v=s(60177),M=s(51188),C=s(10467),t=s(17705);const V={no_default_fields:["tone","language"],plot_form:[{label:"Plot",name:"plot",placeholder:"Example: Sarah had left her small hometown in search of more fulfilling opportunities, but she found herself returning several years later due to a family matter. On this return, Sarah quickly discovered an unsettling darkness that seemed to be consuming the town.",example:"Sarah had left her small hometown in search of more fulfilling opportunities, but she found herself returning several years later due to a family matter. On this return, Sarah quickly discovered an unsettling darkness that seemed to be consuming the town.",type:"textarea",max_length:2500,max_length_premium:5e3,value:""},{label:"Setting",name:"setting",placeholder:"The story takes place in a small, rural town in the Midwest of the United States. The town is surrounded by fields of corn and wheat, and the nearest city is a couple of hours' drive away. The town has a single main street with a handful of stores, a diner, a gas station, and a small park.",example:"The story takes place in a small, rural town in the Midwest of the United States. The town is surrounded by fields of corn and wheat, and the nearest city is a couple of hours' drive away. The town has a single main street with a handful of stores, a diner, a gas station, and a small park.",type:"textarea",max_length:1e3,max_length_premium:2e3,value:"",optional:!0},{label:"Genre",name:"genre",type:"text",placeholder:"Example: Fantasy, Romance, Mystery, Adventure",example:"Mystery",max_length:100,value:"",optional:!0},{label:"Theme",name:"theme",type:"text",placeholder:"Example: Power, Family, Love, C
1oming of age, Good vs. evil",example:"The power of truth",max_length:100,value:"",optional:!0},{label:"Point of view",name:"point_of_view",placeholder:"First-person, Second-person, Third-person",example:"",help:"",type:"text",max_length:100,value:"",optional:!0},{label:"Language",name:"language",type:"select",selection_options:[{label:"\u{1f1fa}\u{1f1f2} English",value:"English"},{label:"\u{1f1e9}\u{1f1ea} Germany",value:"German"},{label:"\u{1f1ee}\u{1f1f9} Italy",value:"Italian"},{label:"\u{1f1ea}\u{1f1f8} Spain",value:"Spanish"},{label:"\u{1f1eb}\u{1f1f7} France",value:"French"},{label:"\u{1f1ef}\u{1f1f5} Japan",value:"Japanese"},{label:"\u{1f1f5}\u{1f1f1} Poland",value:"Polish"},{label:"\u{1f1f3}\u{1f1f1} Netherlands",value:"Dutch"},{label:"\u{1f1f5}\u{1f1f9} Portugal",value:"Portuguese"},{label:"\u{1f1f7}\u{1f1f4} Romania",value:"Romanian"},{label:"\u{1f1f8}\u{1f1ea} Sweden",value:"Swedish"}],placeholder:"",max_length:50,optional:!0,value:"English"}],character_form:[{label:"Character",name:"character",placeholder:"Sarah - a young woman in her late twenties who left her small hometown several years ago in search of more fulfilling opportunities. She is determined and hardworking but also feels a sense of nostalgia and attachment to her hometown. \n\nEmily - Sarah's childhood best friend who still lives in the town. She is warm and friendly but seems to be harboring a secret.\n\nTom - the town's sheriff who is struggling to keep the peace as the town falls deeper into darkness. He is stern but fair and determined to protect the town.\n\nMr. Jenkins - the owner of the local diner. He is a gruff and surly man who seems to know more than he lets on.\n\nThe Darkness - an unknown force that is slowly taking over the town. It manifests in strange occurrences such as flickering streetlights, sudden power outages, and a pervasive feeling of dread.",example:"Sarah - a young woman in her late twenties who left her small hometown several years ago in search of more fulfilling opportunities. She is determined and hardworking but also feels a sense of nostalgia and attachment to her hometown. \n\nEmily - Sarah's childhood best friend who still lives in the town. She is warm and friendly but seems to be harboring a secret.\n\nTom - the town's sheriff who is struggling to keep the peace as the town falls deeper into darkness. He is stern but fair and determined to protect the town.\n\nMr. Jenkins - the owner of the local diner. He is a gruff and surly man who seems to know more than he lets on.\n\nThe Darkness - an unknown force that is slowly taking over the town. It manifests in strange occurrences such as flickering streetlights, sudden power outages, and a pervasive feeling of dread.",type:"textarea",max_length:2500,value:"",optional:!0}],num_chapters_form:[{label:"Num Chapters",name:"num_chapters",type:"slider",placeholder:"",example:"",value:5,max:30,min:1,premium:!0,default:5}],chapters_outline_form:[]};var k=s(21413),G=s(5964),b=s(56977),l=s(51824),O=s(86054),h=s(2388),g=s(95416),u=s(12431),y=s(53351),d=s(34006),j=s(345),F=s(98333),B=s(93993),x=s(59115),f=s(88834),S=s(99213),$=s(86600),A=s(29005),W=s(32596),Y=s(56776),D=s(96850),N=s(9183),_=s(89417),Q=s(6714),U=s(21602),z=s(50886),q=s(19047);function Z(i,c){1&i&&(t.qex(0),t.EFF(1," Generate Chapter "),t.j41(2,"mat-icon"),t.EFF(3,"arrow_forward"),t.k0s(),t.bVm())}function K(i,c){1&i&&(t.j41(0,"div",6),t.EFF(1," Stop generating "),t.nrm(2,"mat-spinner",7),t.k0s())}function tt(i,c){1&i&&(t.j41(0,"span",14),t.nrm(1,"mat-spinner",37),t.k0s())}function et(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",38),t.bIt("click",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.focusEditor())}),t.EFF(1," Start writing or let "),t.j41(2,"span",39),t.bIt("click",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.rewrite())}),t.EFF(3,"AI generate this chapter"),t.k0s()()}}function nt(i,c){if(1&i&&(t.qex(0),t.nrm(1,"app-chat-box",51),t.bVm()),2&i){const e=t.XpG(4);t.R7$(1),t.Y8G("chat_id_input",e.data.cowriter_id)("context",e.cowriter_context)("show_settings",!1)("show_settings_btn",!1)("show_markdown",!0)("chat_system_name","Co-Writer")("enable_clear_chat",!0)}}const J=function(){return["tone","language"]};function ot(i,c){if(1&i){const e=t.RV6();t.qex(0),t.j41(1,"div",42),t.nrm(2,"span",28),t.j41(3,"mat-icon",43),t.bIt("click",function(){t.eBV(e);const n=t.XpG(3);return t.Njj(n.expand_writing_result=!1)}),t.EFF(4,"clear"),t.k0s()(),t.j41(5,"mat-tab-group",44),t.bIt("selectedTabChange",function(n){t.eBV(e);const r=t.XpG(3);return t.Njj(r.generatorModeChange(n))}),t.j41(6,"mat-tab",45)(7,"div",46)(8,"app-writing-form",47),t.bIt("submit_event",function(n){t.eBV(e);const r=t.XpG(3);return t.Njj(r.generateChapter(n))})("form_change",function(n){t.eBV(e);const r=t.XpG(3);return t.Njj(r.chapterSettingChange(n))}),t.k0s()()(),t.j41(9,"mat-tab",48)(10,"div",46)(11,"app-writing-form",49),t.bIt("submit_event",function(n){t.eBV(e);const r=t.XpG(3);return t.Njj(r.generateChapter(n,!0))})("form_change",function(n){t.eBV(e);const r=t.XpG(3);return t.Njj(r.chapterSettingChange(n))}),t.k0s()()(),t.j41(12,"mat-tab",50),t.DNE(13,nt,2,7,"ng-container",41),t.k0s()(),t.bVm()}if(2&i){const e=t.XpG(3);t.R7$(8),t.Y8G("forms",e.chapter_setting_forms)("loading",e.loading)("no_default_fields",t.lJ4(18,J))("show_label_number",!1)("show_stop_btn",!0)("show_optional_text",!1)("submit_btn_label","Generate Chapter")("on_change",!0)("panel_mode",!0),t.R7$(3),t.Y8G("forms",e.chapter_setting_forms)("loading",e.loading)("no_default_fields",t.lJ4(19,J))("show_label_number",!1)("show_stop_btn",!0)("show_optional_text",!1)("submit_btn_label","Continue")("panel_mode",!0),t.R7$(2),t.Y8G("ngIf",e.data.cowriter_id)}}function rt(i,c){if(1&i){const e=t.RV6();t.qex(0),t.j41(1,"div",52)(2,"mat-icon",43),t.bIt("click",function(){t.eBV(e);const n=t.XpG(3);return t.Njj(n.result_tab=0)}),t.EFF(3,"arrow_right"),t.k0s(),t.EFF(4," Rewrite "),t.k0s(),t.j41(5,"div",46),t.nrm(6,"app-writing-result",53),t.k0s(),t.bVm()}if(2&i){const e=t.XpG(3);t.R7$(6),t.Y8G("outputs",e.result)("tool_id","story/story-rephrase")("stream","v2")("enable_chat_mode",!1)}}function it(i,c){if(1&i){const e=t.RV6();t.qex(0),t.j41(1,"div",52)(2,"mat-icon",43),t.bIt("click",function(){t.eBV(e);const n=t.XpG(3);return t.Njj(n.result_tab=0)}),t.EFF(3,"arrow_right"),t.k0s(),t.EFF(4," Rewrite "),t.k0s(),t.j41(5,"div",46),t.nrm(6,"app-text-generation-form-view",54),t.k0s(),t.bVm()}if(2&i){const e=t.XpG(3);t.R7$(6),t.Y8G("title","Rewrite")("form",e.rewrite_form.form)("tool_id",e.rewrite_form.tool_id)("tool_icon",e.rewrite_form.tool_icon)("stream",e.rewrite_form.stream)("display","tab")("model","Jaguar")("enable_chat_mode",!1)("show_ai_config_btn",!1)}}function at(i,c){if(1&i&&(t.j41(0,"div",40),t.DNE(1,ot,14,20,"ng-container",41),t.DNE(2,rt,7,4,"ng-container",41),t.DNE(3,it,7,9,"ng-container",41),t.k0s()),2&i){const e=t.XpG(2);t.AVh("expand",e.expand_writing_result),t.R7$(1),t.Y8G("ngIf",0==e.result_tab),t.R7$(1),t.Y8G("ngIf",1==e.result_tab),t.R7$(1),t.Y8G("ngIf",1.1==e.result_tab)}}function st(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",8)(1,"div",9)(2,"div",10)(3,"quill-editor",11),t.bIt("ngModelChange",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.chapter.editor_content=n)})("onEditorCreated",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.onEditorCreated(n))})("onSelectionChanged",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.onSelectionChanged(n))})("onContentChanged",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.textChange(n))}),t.j41(4,"div",12),t.DNE(5,tt,2,0,"span",13),t.j41(6,"span",14),t.nrm(7,"button",15)(8,"button",16)(9,"button",17),t.k0s(),t.j41(10,"span",14),t.nrm(11,"button",18)(12,"button",18),t.j41(13,"select",19),t.nrm(14,"option",20)(15,"option",21)(16,"option",22)(17,"option",23),t.k0s()(),t.j41(18,"span",14),t.nrm(19,"button",24)(20,"button",24),t.k0s(),t.j41(21,"span",14),t.nrm(22,"button",25)(23,"button",26),t.k0s(),t.j41(24,"span",14),t.nrm(25,"button",27),t.k0s(),t.nrm(26,"span",28),t.j41(27,"span",14)(28,"a",29),t.qex(29),t.j41(30,"mat-icon",30),t.EFF(31,"auto_fix_normal"),t.k0s(),t.EFF(32," Rewrite "),t.bVm(),t.k0s(),t.j41(33,"mat-menu",null,31)(35,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Rephrase"))}),t.j41(36,"span"),t.EFF(37,"Rephrase"),t.k0s()(),t.j41(38,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Clarity"))}),t.j41(39,"span"),t.EFF(40,"Clarity"),t.k0s()(),t.j41(41,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Simple"))}),t.j41(42,"span"),t.EFF(43,"Simple"),t.k0s()(),t.j41(44,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Creative"))}),t.j41(45,"span"),t.EFF(46,"Creative"),t.k0s()(),t.j41(47,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Engaging"))}),t.j41(48,"span"),t.EFF(49,"Engaging"),t.k0s()(),t.j41(50,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Enhancement"))}),t.j41(51,"span"),t.EFF(52,"Enhancement"),t.k0s()(),t.j41(53,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Dialogue"))}),t.j41(54,"span"),t.EFF(55,"Dialogue"),t.k0s()(),t.j41(56,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Reimagining"))}),t.j41(57,"span"),t.EFF(58,"Reimagining"),t.k0s()(),t.j41(59,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("More descriptive"))}),t.j41(60,"span"),t.EFF(61,"More descriptive"),t.k0s()(),t.j41(62,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("sdt"))}),t.j41(63,"span"),t.EFF(64,"Show, don't tell"),t.k0s()(),t.j41(65,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("More intense"))}),t.j41(66,"span"),t.EFF(67,"More intense"),t.k0s()(),t.j41(68,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("More inner conflict"))}),t.j41(69,"span"),t.EFF(70,"More inner conflict"),t.k0s()(),t.j41(71,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Shorter"))}),t.j41(72,"span"),t.EFF(73,"Shorter"),t.k0s()(),t.j41(74,"button",32),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.rewrite("Custom"))}),t.j41(75,"span"),t.EFF(76,"Custom"),t.k0s()()()(),t.j41(77,"span",33),t.nrm(78,"app-ai-editor-word-count",34),t.k0s()()(),t.DNE(79,et,4,0,"div",35),t.k0s(),t.DNE(80,at,4,5,"div",36),t.k0s()()}if(2&i){const e=t.sdS(34),o=t.XpG();t.R7$(3),t.Y8G("ngModel",o.chapter.editor_content),t.R7$(2),t.Y8G("ngIf",o.loading),t.R7$(2),t.Y8G("title","Bold"),t.R7$(1),t.Y8G("title","Italic"),t.R7$(1),t.Y8G("title","Underline"),t.R7$(2),t.Y8G("title","Ordered")("value","ordered"),t.R7$(1),t.Y8G("title","Bullet")("value","bullet"),t.R7$(1),t.Y8G("title","Aligment"),t.R7$(6),t.Y8G("title","H1")("value","1"),t.R7$(1),t.Y8G("title","H2")("value","2"),t.R7$(2),t.Y8G("title","Link"),t.R7$(1),t.Y8G("title","Clean"),t.R7$(2),t.Y8G("title","Lineheight"),t.R7$(3),t.Y8G("matMenuTriggerFor",e),t.R7$(50),t.Y8G("input",o.chapter.editor_content),t.R7$(1),t.Y8G("ngIf",(null==o.chapter?null:o.chapter.name)&&!o.chapter.editor_content),t.R7$(1),t.Y8G("ngIf",o.result_tab>=0)}}function ct(i,c){if(1&i){const e=t.RV6();
1t.j41(0,"div",55)(1,"div",56),t.nrm(2,"img",57),t.k0s(),t.j41(3,"div",58),t.EFF(4,"Please ensure you have defined each chapter's outline before proceeding. Once complete, click on 'Apply Changes'. Only then can you access the chapters page."),t.k0s(),t.j41(5,"button",59),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.updateTab(3))}),t.EFF(6," Go to Chapter Outline "),t.k0s()()}}let lt=(()=>{class i{constructor(e,o,n,r){this.writingService=e,this.firestore=o,this.authService=n,this.snackBar=r,this.ngUnsubscribe=new k.B,this.update_tab_section=new t.bkB,this.loading_event=new t.bkB,this.selection_text="",this.result_tab=0,this.loading=!1,this.expand_writing_result=!1,this.chapter_setting_forms=[{label:"AI Model",name:"model",type:"ai_model_select",selection_options:[{label:"Cheetah",value:"Cheetah"},{label:"Liger",value:"Liger"},{label:"Puma",value:"Puma"},{label:"Jaguar",value:"Jaguar"}],placeholder:"",value:"Cheetah"},{label:"Chapter Plot",name:"length",type:"textarea",placeholder:"",example:"",value:"",disable_text_form:!0,max_length:700},{label:"Chapter Beats",name:"chapter_beats",type:"textarea",placeholder:"When crafting chapter beats, think of them as the rhythm of your story's heart \u2013 each beat is a vital sign of life in your narrative. Use the following structure to ensure each beat serves its purpose: \n\n 1. INT. DALMAA'S APARTMENT - DAY\n Dalmaa sits on her couch, surrounded by journals and photographs. She reflects on her journey, flipping through the pages and revisiting the memories that have shaped her. The room is bathed in soft candlelight, creating an atmosphere of introspection.",example:"",value:"",default:"",help:"Chapter beats are the pulse of your story's chapters, marking key moments and events that drive the narrative forward. Think of them as the stepping stones leading your readers through the journey of each chapter. Each beat is a scene or a significant moment that contributes to the overall chapter plot, helping to build tension, develop characters, and advance the story.",max_length:5e3,optional:!0,enable_suggestion:!0,suggestion_label:"Generate Beats",suggestion_api:{url:"story/story-chapter-beats",params:{story:""}}},{label:"Continuation Guidance",name:"guideline",type:"textarea",placeholder:"Provide a guideline (e.g., 'Introduce a surprise visitor'), or leave blank for AI to take the lead.",example:"",value:"",hide:!0,max_length:700,optional:!0},{label:"Chapter Length",name:"length",type:"slider",placeholder:"",example:"",value:200,max:1e3,min:50},{label:"Dialogue Balance",name:"dialogue_balance",type:"slider",placeholder:"",example:"",value:60,max:100,min:0,help:"Balance of Narrative and Dialogue: Specify the amount of dialogue you want in the generated story. such as 50%, 80%. The default value is 20 percent."},{label:"Previous Chapter Summary",name:"previous_chapter_summary",placeholder:"",example:"",type:"textarea",max_length:2e3,optional:!0,value:"",hide:!0,enable_suggestion:!0,suggestion_label:"Generate Summary",suggestion_api:{url:"story/story-summary",params:{story:""}}},{label:"Format",name:"format",type:"select",placeholder:"",example:"",options:["Prose","Screenplay","Stageplay","Poem"],value:"Prose",optional:!0},{label:"Point of view",name:"point_of_view",placeholder:"First-person, Second-person, Third-person",example:"",help:"",type:"text",max_length:100,value:"",optional:!0},{label:"Tone",name:"story_tone",type:"autocomplete",placeholder:"Example: Suspenseful, Romantic, Humorous, Dark, Inspirational, ",example:["Dark","Mysterious"],options:["\u{1f631} Suspenseful"," \u{1f495} Romantic","\u{1f602} Humorous","\u{1f3ad} Dramatic","\u{1f311} Dark","\u{1f680} Adventurous","\u{1f389} Inspirational","\u{1f575}\ufe0f\u200d\u2640\ufe0f Mysterious","\u{1f622} Melancholic","\u{1f92a} Satirical","\u{1f64f} Hopeful","\u{1f9da}\u200d\u2640\ufe0f Whimsical"],max_length:255,value:"",optional:!0},{label:"Additional Context",name:"context",type:"textarea",placeholder:"",help:"It can be helpful to provide AI with additional context or information about the story or setting to ensure that it understands the intended meaning of the story. For example, you could provide more information about the character, her surroundings, or her motivations.",example:"",max_length:5e3,value:"",optional:!0},{label:"Language",name:"language",type:"select",selection_options:[{label:"\u{1f1fa}\u{1f1f2} English",value:"English"},{label:"\u{1f1e9}\u{1f1ea} Germany",value:"German"},{label:"\u{1f1ee}\u{1f1f9} Italy",value:"Italian"},{label:"\u{1f1ea}\u{1f1f8} Spain",value:"Spanish"},{label:"\u{1f1eb}\u{1f1f7} France",value:"French"},{label:"\u{1f1ef}\u{1f1f5} Japan",value:"Japanese"},{label:"\u{1f1f5}\u{1f1f1} Poland",value:"Polish"},{label:"\u{1f1f3}\u{1f1f1} Netherlands",value:"Dutch"},{label:"\u{1f1f5}\u{1f1f9} Portugal",value:"Portuguese"},{label:"\u{1f1f7}\u{1f1f4} Romania",value:"Romanian"},{label:"\u{1f1f8}\u{1f1ea} Sweden",value:"Swedish"}],placeholder:"",max_length:50,optional:!0,value:"English"}],this.rewrite_form=W.V.story_rephrase,this.last_generated_text="",this.authService.user_subject.pipe((0,G.p)(a=>!1!==a,(0,b.Q)(this.ngUnsubscribe))).subscribe(a=>{this.user=a})}ngOnInit(){!this.data?.cowriter_id&&this.chapter?setTimeout(()=>{this.newChatCowriter()},1e3):this.prepareCowriterContext()}ngOnDestroy(){this.loading&&this.writingService.ai_generating_controller_subject.next({action:"stop"})}ngOnChanges(){if(this.chapter){if(!this.data?.cowriter_id&&this.chapter?setTimeout(()=>{this.newChatCowriter()},1e3):this.prepareCowriterContext(),this.chapter.editor_content=this.chapter.content?this.chapter.content.replaceAll("\n","<br>"):"",this.chapter_setting_forms[1].value=this.chapter.plot,this.chapter_no>0){let e=this.data.chapters[this.chapter_no-1];this.chapter_setting_forms[6].hide=!1,this.chapter_setting_forms[6].optional=!1,""!=e.content&&e.content?(this.chapter_setting_forms[6].enable_suggestion=!0,this.chapter_setting_forms[6].suggestion_api.params.story=e.name+"\n"+e.content):this.chapter_setting_forms[6].enable_suggestion=!1,this.chapter_setting_forms[6].value=e.summary?e.summary:""}else this.chapter_setting_forms[6].hide=!0,this.chapter_setting_forms[6].optional=!0;this.chapter_setting_forms[2].suggestion_api.params.chapter_plot=this.chapter.name+"\n"+this.chapter.plot,this.chapter_setting_forms[2].suggestion_api.params.chapter_plot=this.chapter.name+"\n"+this.chapter.plot,this.data.chapters_form&&(this.chapter_setting_forms[2].suggestion_api.params.outline=this.data.chapters.map(e=>e.name+"\n"+e.plot).join("\n\n")),this.data.characters&&(this.chapter_setting_forms[2].suggestion_api.params.characters=this.data.characters),this.chapter_setting_forms[2].value=this.data.chapters[this.chapter_no]?.chapter_beats?this.data.chapters[this.chapter_no].chapter_beats:""}}onEditorCreated(e){this.editor=e}chapterSettingChange(e){e.previous_chapter_summary&&""!=e.previous_chapter_summary&&this.chapter_no>0&&(this.data.chapters[this.chapter_no-1].summary=e.previous_chapter_summary),e.chapter_beats&&""!=e.chapter_beats&&(this.data.chapters[this.chapter_no].chapter_beats=e.chapter_beats),e.model&&(this.chapter_setting_forms[4].max=(["Puma","Jaguar"].indexOf(e.model),2e3))}rewrite(e=""){if("sdt"==e&&(e="Show, don't tell"),"Custom"==e)return this.result_tab=1.1,this.rewrite_form.form[0].value=this.selection_text,void(this.rewrite_form.form[1].value="Custom");this.result_tab=1,this.selection_text&&""!=this.selection_text?setTimeout(()=>{this.generate({story:this.selection_text,purpose:e,model:"Jaguar-plus",language:this.data.language?this.data.language:"English",storyteller:!0},"story/story-rephrase",!1,!1)},100):this.snackBar.open("Please highlight text to rewrite.")}getSelectionText(){var e="";if(window.getSelection){let n=window.getSelection().getRangeAt(0);this.selection_rect=n.getBoundingClientRect(),e=window.getSelection().toString()}return e}onSelectionChanged(e){this.selection_text=this.getSelectionText()}textChange(e){this.selection_text="","user"===e.source&&(this.chapter.content=this.editor.getText(),this.prepareCowriterContext())}focusEditor(){this.editor.focus()}updateStorySettings(e,o=!0){this.chapter_setting=e;for(const n in this.chapter_setting)if(Object.prototype.hasOwnProperty.call(this.chapter_setting,n)){const r=this.chapter_setting[n];let a=this.chapter_setting_forms.findIndex(p=>p.name===n);a>=0&&(this.chapter_setting_forms[a].value=r)}}generateChapter(e,o=!1){let n=this.data.chapters.filter((a,p)=>p<this.chapter_no).map(a=>a.summary?a.summary:"").join("\n\n"),r="";o&&(r=this.chapter.content,"\n"==r[r.length-1]&&(r=r.slice(0,-1))),this.generate({purpose:"Story Chapter",length:e.length,chapter_plot:this.chapter.name+"\n"+this.chapter.plot,chapter_beats:e.chapter_beats,setting:this.data.setting,characters:this.data.characters,previous_chapter_summary:n,dialogue_balance:e.dialogue_balance,plots:this.data.chapters.map(a=>a.name+"\n"+a.plot).join("\n\n"),point_of_view:e.point_of_view?e.point_of_view:this.data.point_of_view,genre:this.data.genre,theme:this.data.theme,story_tone:e.story_tone,context:e.context,language:e.language,continue_from_this_content:r,continue_story:o,guideline:e.guideline,model:e.model?e.model:"",novel_studio:!0,chapter_no:this.chapter_no+1,chapter_name:this.chapter.name,format:e.format},"story/story-generator",o)}generate(e,o){var n=this;return(0,C.A)(function*(r,a,p=!1,w=!0){if(n.loading)return;n.loading=!0,n.expand_writing_result=!1,n.loading_event.emit(n.loading);let P,E="";p&&(E=r.continue_from_this_content),P=n.writingService.ai_generated_stream_subject.pipe((0,G.p)(m=>!1!==m)).subscribe(m=>{if(m?.text)if(w){p&&9==m.text.charCodeAt(0)&&(m.text=" "+m.text.substring(1)),n.chapter.content=E+m.text,n.chapter.editor_content=n.chapter.content.replaceAll("\n","<br>");const T=n.editor.container.querySelector(".ql-editor");T.scrollTop=T.scrollHeight}else n.result=[m];m?.completed&&(P.unsubscribe(),n.loading=!1,n.loading_event.emit(n.loading),n.prepareCowriterContext(),n.last_generated_text=m.text)}),n.writingService.generateStream(r,a,a).then(m=>{m&&!1===m.success&&(n.loading=!1,n.loading_event.emit(n.loading),setTimeout(()=>{P.unsubscribe()},100))})}).apply(this,arguments)}updateTab(e){this.update_tab_section.emit(e)}generateChapterMobile(){this.loading?document.getElementById("writing-submit-btn")?.click():this.expand_writing_result=!0}generatorModeChange(e){0==e.index?(this.chapter_setting_forms[4].label="Chapter Length",this.chapter_setting_forms[4].value=200,this.chapter_setting_forms[3].hide=!0):1==e.index&&(this.chapter_setting_forms[4].label="Output Length",this.chapter_setting_forms[4].value=50,this.chapter_setting_forms[3].hide=!1)}newChatCowriter(){var e=this;return(0,C.A)(function*(){const o=yield(0,l.gS)((0,l.rJ)(e.firestore,"customers",e.user.uid,"chat_history"),{name:"Untitled",created_at:(0,l.O5)(),updated_at:(0,l.O5)(),memory:[],messages:[],mapping:[],cowriter:!0});if(o.id&&(e.data.cowriter_id=o.id,e.novel_id)){e.prepareCowriterContext();const n=(0,l.H9)(e.firestore,"customers",e.user.uid,"novel_documents",e.novel_id);yield(0,l.BN)(n,{cowriter_id:e.data.cowriter_id},{merge:!0})}})()}prepareCowriterContext(){let e=this.data.chapters.filter((n,r)=>r!=this.chapter_no).map(n=>n.summary?n.summary:"").join("\n\n"),o="";this.chapter&&(o=this.chapter.content),"\n"==o[o.length-1]&&(o=o.slice(0,-1)),this.cowriter_context={chapters_summary:e,chapters:this.data.chapters.map(n=>n.content).join("\n\n"),current_chapter:o,setting:this.data.setting,characters:this.data.characters,plots:this.data.chapters.map(n=>n.name+"\n"+n.plot).join("\n\n"),plot:this.data.plot,genre:this.data.genre,theme:this.data.theme,language:this.data.language?this.data.language:"English",novel_cowriter:!0}}static{this.\u0275fac=function(o){return new(o||i)(t.rXU(u.w),t.rXU(l._7),t.rXU(y.u),t.rXU(g.UG))}}static{this.\u0275cmp=t.VBU({type:i,selectors:[["app-story-editor"]],inputs:{data:"data",chapter:"chapter",chapter_no:"chapter_no",novel_id:"novel_id"},outputs:{update_tab_section:"update_tab_section",loading_event:"loading_event"},features:[t.OA$],decls:7,vars:4,consts:[[1,"text-end","p-2","mobile-generate-btn-container"],["mat-button","",1,"mobile-generate-btn","round-btn","text-white",3,"click"],[4,"ngIf","ngIfElse"],["show_loading",""],["class","editor-wrapper",4,"ngIf"],["class","help-text-container container text-center ",4,"ngIf"],[1,"loading-spinner-in-btn"],["diameter","26",1,"white-spinner","ms-1"],[1,"editor-wrapper"],[1,"editor-container"],[1,"quill-editor-container"],[3,"ngModel","ngModelChange","onEditorCreated","onSelectionChanged","onContentChanged"],["quill-editor-toolbar",""],["class","ql-formats",4,"ngIf"],[1,"ql-formats"],[1,"ql-bold",3,"title"],[1,"ql-italic",3,"title"],[1,"ql-underline",3,"title"],[1,"ql-list",3,"title","value"],[1,"ql-align",3,"title"],["selected",""],["value","center"],["value","right"],["value","justify"],[1,"ql-header",3,"title","value"],[1,"ql-link",3,"title"],[1,"ql-clean",3,"title"],[1,"ql-line-height",3,"title"],[1,"flex-grow-1"],["mat-button","",1,"round-btn","mat-text-icon",3,"matMenuTriggerFor"],[1,"mat-icon-18px"],["RewriteMenu","matMenu"],["mat-menu-item","",3,"click"],[1,"ql-formats","fs-8"],[3,"input"],["class","editor-placeholder text-secondary",3,"click",4,"ngIf"],["class","writing-result-wrapper ms-2",3,"expand",4,"ngIf"],["diameter","20"],[1,"editor-placeholder","text-secondary",3,"click"],[1,"fsbtn",3,"click"],[1,"writing-result-wrapper","ms-2"],[4,"ngIf"],[1,"result-header","p-2","d-flex","d-lg-none","align-items-center"],[3,"click"],["animationDuration","0ms",3,"selectedTabChange"],["label","Generate"],[1,"writing-result-container"],[3,"forms","loading","no_default_fields","show_label_number","show_stop_btn","show_optional_text","submit_btn_label","on_change","panel_mode","submit_event","form_change"],["label","Continue"],[3,"forms","loading","no_default_fields","show_label_number","show_stop_btn","show_optional_text","submit_btn_label","panel_mode","submit_event","form_change"],["label","Co-Writer"],[3,"chat_id_input","context","show_settings","show_settings_btn","show_markdown","chat_system_name","enable_clear_chat"],[1,"result-header","p-2","d-flex","align-items-center"],[3,"outputs","tool_id","stream","enable_chat_mode"],[3,"title","form","tool_id","tool_icon","stream","display","model","enable_chat_mode","show_ai_config_btn"],[1,"help-text-container","container","text-center"],[1,"py-5"],["src","assets/images/writing/warning.png","alt",""],[1,"py-5","fs-5"],["mat-button","",1,"round-btn","btn-primary-base",3,"click"]],template:function(o,n){if(1&o&&(t.j41(0,"div",0)(1,"button",1),t.bIt("click",function(){return n.generateChapterMobile()}),t.DNE(2,Z,4,0,"ng-container",2),t.DNE(3,K,3,0,"ng-template",null,3,t.C5r),t.k0s()(),t.DNE(5,st,81,21,"div",4),t.DNE(6,ct,7,0,"div",5)),2&o){const r=t.sdS(4);t.R7$(2),t.Y8G("ngIf",!n.loading)("ngIfElse",r),t.R7$(3),t.Y8G("ngIf",n.chapter),t.R7$(1),t.Y8G("ngIf",!n.chapter)}},dependencies:[v.bT,Y.i9,S.An,D.mq,D.T8,N.LG,f.It,f.$z,_.xH,_.y7,_.BC,_.vS,x.kk,x.fb,x.Cp,A.G,Q.$,U.W,z.f,q.A],styles:["app-story-editor{width:100%}app-story-editor .editor-wrapper{background:var(--bg-gray-1);height:calc(100vh - 187px)}@media (min-width: 1081px){app-story-editor .editor-wrapper{min-height:calc(100vh - 124px)}}app-story-editor .editor-container{display:flex;height:calc(100% + -0px);padding:1.5rem}@media (max-width: 1000px){app-story-editor .editor-container{padding:0}}app-story-editor .doc-name-container{position:absolute;top:0;left:50%;transform:translate(-50%);height:55px;display:flex;align-items:center;z-index:10}app-story-editor .doc-name-container input{border:0;overflow:hidden;text-overflow:ellipsis}app-story-editor .quill-editor-container{margin:auto;height:100%;width:100%;position:relative;padding-bottom:70px;padding-right:1.5rem}@media (max-width: 1000px){app-story-editor .quill-editor-container{padding-right:0;padding-bottom:0}}app-story-editor .quill-editor-container .editor-placeholder{position:absolute;top:57px;left:0;right:0;padding:72px 80px 0 108px}@media (max-width: 1200px){app-story-editor .quill-editor-container .editor-placeholder{padding:1.5rem}}app-story-editor .quill-editor-container .editor-placeholder .fsbtn{text-decoration:underline;cursor:pointer}app-story-editor .quill-editor-container .cmd-form{position:absolute;top:57px;le
1ft:0;right:0;margin:72px 80px 0 108px;padding:1rem;border-radius:16px;background-color:#f4f7fe}app-story-editor .quill-editor-container .cmd-form .cmd-form-header img{max-width:20px}app-story-editor .quill-editor-container .cmd-form .cmd-form-header button{width:30px;height:30px;line-height:30px}app-story-editor .quill-editor-container .cmd-form .cmd-form-header mat-icon{font-size:20px;height:20px;width:20px;line-height:20px}app-story-editor .quill-editor-container .cmd-form textarea{line-height:1.8}app-story-editor .quill-editor-container .cmd-form .cmd-form-footer button{min-width:120px}app-story-editor .writing-result-wrapper{min-width:350px;max-width:350px;font-size:14px;overflow-y:auto;overflow-x:hidden;height:100%;max-height:100%;background-color:var(--bs-white);border-radius:16px;box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}@media (max-width: 1300px){app-story-editor .writing-result-wrapper{min-width:initial}}@media (max-width: 1000px){app-story-editor .writing-result-wrapper{position:fixed;transition:all .1s ease;transform:translate(100%);z-index:100;top:0;right:0;bottom:0;background:var(--bs-white);
1box-shadow:var(--box-shadow-card)}app-story-editor .writing-result-wrapper.expand{transform:translate(0)}}@media (max-width: 1300px){app-story-editor .writing-result-wrapper{margin-left:1rem}}app-story-editor .writing-result-wrapper .result-header{font-size:1rem;font-weight:600;border-bottom:1px solid var(--border-gray)}app-story-editor .writing-result-wrapper .result-header mat-icon{font-size:30px;width:30px;height:30px;line-height:30px;cursor:pointer;margin-right:5px;border-radius:100px}app-story-editor .writing-result-wrapper .result-header mat-icon:nth-child(2){display:none}@media (max-width: 1000px){app-story-editor .writing-result-wrapper .result-header mat-icon:nth-child(1){display:none}app-story-editor .writing-result-wrapper .result-header mat-icon:nth-child(2){display:block}}app-story-editor .writing-result-wrapper .result-header mat-icon:hover{background-color:var(--bs-whitesmoke)}app-story-editor .writing-result-wrapper .writing-result-container{height:calc(100% + -0px)}app-story-editor .writing-result-wrapper .mat-mdc-tab-group{height:100%}@media (max-width: 1000px){app-story-editor .writing-result-wrapper .mat-mdc-tab-group{height:calc(100% - 47px)}}app-story-editor .writing-result-wrapper .mat-mdc-tab-group .mdc-tab__text-label{font-weight:600}app-story-editor .ai-tool-container{padding:1rem;background-color:var(--bs-white);border-bottom:1px solid var(--g-colorGray150);display:flex;align-items:center}app-story-editor .ai-tool-container button{margin-right:5px;line-height:33px}app-story-editor .ai-tool-container button.round-btn{border:1px solid var(--g-colorGray150)}app-story-editor .ai-tool-container button.round-btn mat-icon{font-size:18px;height:18px;width:18px}app-story-editor quill-editor{flex:1;display:block;border-radius:8px;height:100%;box-shadow:0 4px 22px #0000000a}app-story-editor quill-editor p{padding-bottom:.5em!important}app-story-editor quill-editor .insert-tag{color:var(--theme-color)}app-story-editor quill-editor .ql-container{font-size:1rem;font-family:Open Sans,sans-serif;height:calc(100% + -0px)}app-story-editor quill-editor .ql-editor{background:var(--bs-white);border-bottom-left-radius:8px;border-bottom-right-radius:8px;padding:64px 80px;line-height:2.2;font-size:16px;text-indent:1.5em}@media (max-width: 1200px){app-story-editor quill-editor .ql-editor{padding:1.5rem}}app-story-editor quill-editor .ql-editor p{line-height:inherit}app-story-editor quill-editor .ql-editor.ql-blank:before{left:auto;right:auto;display:none}app-story-editor quill-editor .ql-toolbar.ql-snow{padding:1rem;border:0;border-bottom:1px solid var(--border-gray);background:var(--bs-white);border-top-right-radius:8px;border-top-left-radius:8px;display:flex;align-items:center;font-family:Open Sans,sans-serif!important}app-story-editor quill-editor .ql-toolbar.ql-snow .mat-mdc-button{height:30px;padding:3px 8px!important}@media (max-width: 1000px){app-story-editor quill-editor .ql-toolbar.ql-snow{display:none}}app-story-editor quill-editor .ql-container.ql-snow{border:0;margin:auto}app-story-editor quill-editor .grammar-error{border-bottom:2px solid #f24d5d;cursor:pointer;font-weight:inherit}app-story-editor quill-editor .grammar-error:hover{background:#ffd9d9}app-story-editor .controller-wrapper{position:absolute;left:0;right:0;bottom:-10px}app-story-editor .controller-wrapper .controller-container{box-shadow:var(--shadow-controller);background-color:var(--bs-white);display:flex;align-items:center;border-radius:16px;padding:7px;max-width:85%;margin:0 auto}app-story-editor .controller-wrapper .controller-container .continue-mode-btn{background:rgba(var(--bs-primary-rgb),.2);color:rgb(var(--bs-primary-rgb));padding:2px 12px;font-weight:600}app-story-editor .controller-wrapper button{border-radius:16px;padding:2px 8px}app-story-editor .controller-wrapper button .mat-button-wrapper{display:flex;align-items:center}app-story-editor .controller-wrapper button.active{background:var(--theme-color);color:#fff}app-story-editor .controller-wrapper button .mat-icon{font-size:20px;height:20px;width:20px;line-height:20px}app-story-editor .controller-wrapper .write-btn{padding:0 5px 0 10px!important}app-story-editor .controller-wrapper .command-input-container .mat-form-field-infix{border-top:0}app-story-editor .controller-wrapper .command-input-container .mat-form-field-wrapper{padding-bottom:0;border-radius:4px;border:5px}app-story-editor .controller-wrapper .command-input-container textarea{line-height:1.8}app-story-editor .controller-wrapper .mat-mdc-icon-button{width:36px;height:36px;line-height:40px}app-story-editor .form-container{display:flex;flex-direction:column;height:100%;padding:24px 24px 0;overflow:auto;position:relative;height:calc(100vh - 55px)}app-story-editor .form-container .form-item{position:relative}app-story-editor .form-container .form-item:nth-last-child(3){padding-bottom:25px}app-story-editor .form-container .form-item .premium-param{background:rgba(255,255,255,.61);z-index:2}app-story-editor .form-container .form-item .premium-param .premium-icon{position:absolute;top:0;right:0;padding:0 8px!important;background:var(--premium);color:#fff;height:25px;line-height:23px;font-size:13px}app-story-editor .form-container .form-label{color:var(--theme-color-4);font-weight:600;line-height:1.6rem}app-story-editor .form-container .form-label.form-optional{color:initial;font-weight:400}app-story-editor .form-container .optional{font-size:12px;font-weight:400;margin-left:5px;color:var(--gray-400)}app-story-editor .form-container .help-icon{font-size:18px;width:18px;height:18px}app-story-editor .form-container .select-btn-container{gap:8px;padding-bottom:1.34375em}app-story-editor .form-container .select-btn-container button{border:1px solid var(--border-gray)}app-story-editor .form-container .slider{margin-bottom:1.34375em}app-story-editor .form-container .slider-input-container{position:absolute;top:0;right:0}app-story-editor .form-container .slider-input-container .slider-input{width:46px;border-radius:4px;border:1px solid var(--border-gray)!important;padding:4px 5px 3px;line-height:15px;text-align:right}app-story-editor .form-container .slider-input-container .slider-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}app-story-editor app-text-generation-form-view{max-height:100%;height:100%!important;min-height:auto!important}app-story-editor app-text-generation-form-view .writing-container{flex-direction:column;max-height:100%!important}app-story-editor app-text-generation-form-view .writing-container .left,app-story-editor app-text-generation-form-view .writing-container .right{max-height:50%!important;height:50%}app-story-editor app-text-generation-form-view .writing-container .left{width:100%;max-width:100%!important}app-story-editor .loading-document{background:var(--bs-white);z-index:2}app-story-editor app-writing-form button.submit{width:100%}app-story-editor app-writing-form button.submit mat-icon{display:none}app-story-editor app-writing-form .mat-mdc-form-field{font-size:14px!important}@media (max-width: 768px){app-story-editor app-writing-form .form-container{overflow-y:auto!important;height:calc(100% - 95px)!important}}app-story-editor app-chat-box .chat-box-container{height:calc(100vh - 220p
1x)!important}@media (max-width: 1080px){app-story-editor app-chat-box .chat-box-container{height:calc(100vh - 283px)!important}}@media (max-width: 1000px){app-story-editor app-chat-box .chat-box-container{height:calc(100vh - 96px)!important}}app-story-editor app-chat-box .chat-message-wrapper{min-height:calc(100% - 102px)!important}app-story-editor app-chat-box .chat-input-container textarea{min-height:23px}app-story-editor .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-right-radius:12px!important;border-bottom-right-radius:12px!important}app-story-editor .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:20px!important;border-bottom-left-radius:20px!important}.help-text-container{max-width:600px}.help-text-container img{max-width:300px}.help-text-container div{line-height:1.6}.mobile-generate-btn-container{display:none;margin-top:-52px}@media (max-width: 1000px){.mobile-generate-btn-container{display:block}}.mobile-generate-btn-container .mobile-generate-btn{background:linear-gradient(90deg,#0059fc,#820aff 100%)}.loading-spinner-in-btn{padding:0}.darkMode app-story-editor .editor-wrapper{background-color:#131313}.darkMode app-story-editor quill-editor .ql-toolbar.ql-snow{background-color:#202020}.darkMode app-story-editor quill-editor .ql-editor{background-color:#202020}.darkMode app-story-editor quill-editor .ql-snow .ql-stroke{stroke:#dcdcdc}.darkMode app-story-editor quill-editor .ql-snow .ql-fill{fill:#dcdcdc}.darkMode app-story-editor .writing-result-wrapper{background-color:#202020}.darkMode app-story-editor .form-container .form-label{color:inherit}.darkMode app-story-editor .mobile-generate-btn-container{background-color:#202020}\n"],encapsulation:2})}}return i})();var I=s(59042);function pt(i,c){1&i&&(t.qex(0),t.EFF(1," Auto Generate "),t.j41(2,"mat-icon",16),t.EFF(3,"auto_mode"),t.k0s(),t.bVm())}function dt(i,c){1&i&&(t.j41(0,"div",17),t.qex(1),t.EFF(2," Stop generating"),t.bVm(),t.nrm(3,"mat-spinner",18),t.k0s())}function mt(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",19)(1,"div",20),t.EFF(2," Num Chapters "),t.k0s(),t.j41(3,"div",21)(4,"div",22)(5,"button",23),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.editNumChapters(-1))}),t.j41(6,"mat-icon"),t.EFF(7,"remove"),t.k0s()(),t.j41(8,"input",24),t.bIt("ngModelChange",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.num_chapters=n)}),t.k0s(),t.j41(9,"button",23),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.editNumChapters(1))}),t.j41(10,"mat-icon"),t.EFF(11,"add"),t.k0s()()()(),t.j41(12,"div",25)(13,"button",26),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.show_num_chapters_form=!1)}),t.EFF(14," Cancel "),t.k0s(),t.j41(15,"button",27),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.generateOutline())}),t.EFF(16," Generate "),t.k0s()()()}if(2&i){const e=t.XpG();t.R7$(8),t.Y8G("ngModel",e.num_chapters)}}function ht(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",28)(1,"div",29)(2,"input",30),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;return t.Njj(a.name=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.onFormChange())}),t.k0s()(),t.j41(3,"div",31),t.nrm(4,"div",32),t.j41(5,"div",33)(6,"textarea",34),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;return t.Njj(a.plot=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.onFormChange())}),t.k0s()()(),t.j41(7,"div",35),t.bIt("click",function(){const r=t.eBV(e).index,a=t.XpG();return t.Njj(a.remove(r))}),t.j41(8,"button",36)(9,"mat-icon"),t.EFF(10,"delete_outline"),t.k0s()()()()}if(2&i){const e=c.$implicit,o=t.XpG();t.R7$(2),t.Y8G("ngModel",e.name),t.R7$(4),t.Y8G("maxlength",o.max_length-o.outline_length+(null==e.plot?null:e.plot.length))("ngModel",e.plot)}}let _t=(()=>{class i{constructor(e,o,n){this.writingService=e,this.dialog=o,this.snackbar=n,this.ngUnsubscribe=new k.B,this.update_data=new t.bkB,this.update_tab_section=new t.bkB,this.loading_event=new t.bkB,this.loading=!1,this.form=[],this.show_num_chapters_form=!1,this.num_chapters_form=Array.from(Array(25).keys()),this.num_chapters=5,this.can_apply=!1,this.max_length=18e3,this.outline_length=0}ngOnInit(){}ngOnDestroy(){this.ngUnsubscribe.next(null),this.ngUnsubscribe.complete(),this.loading&&this.writingService.ai_generating_controller_subject.next({action:"stop"})}ngOnChanges(e){this.data.chapters_form||(this.data.chapters_form=[]),this.form=this.data.chapters_form,this.onFormChange()}newOutline(){this.form.length>=25?this.snackbar.open("Unable to create a new chapter as you are nearing the limit for chapter details. We will be increasing this limit soon.","",{duration:5e3}):(this.form||(this.form=[]),this.form.push({name:"Chapter "+(this.form.length+1)+": XXX",chapter_no:this.form.length+1,plot:"",content:"",editor_content:""}))}remove(e){this.form.splice(e,1),this.onFormChange()}requestGenerateOutline(){this.loading?this.writingService.ai_generating_controller_subject.next({action:"stop"}):this.show_num_chapters_form=!0}generateOutline(){this.data.plot&&""!=this.data.plot?this.num_chapters>25||this.num_chapters<0?this.snackbar.open("The number of chapters must be within the range of 1 to 25.","",{panelClass:"error",duration:5e3}):this.form.length>0?this.dialog.open(h.C,{panelClass:"my-dialog",data:{title:"Auto Generate Chapter Outlines",text:"The data of your present Chapter Outlines will be substituted with the automatically generated one."},autoFocus:!1}).afterClosed().subscribe(e=>{e&&this.generateChaptersOutline()}):this.generateChaptersOutline():this.snackbar.open("Please specify Plot.","",{panelClass:"error",duration:5e3})}generateChaptersOutline(){this.show_num_chapters_form=!1,this.form=[];for(let e=0;e<this.num_chapters;e+=1)this.form.push({name:"Chapter "+(e+1)+": XXX",chapter_no:e+1,plot:"",content:"",editor_content:""});this.generate({plot:this.data.plot,character:this.data.characters,setting:this.data.setting,num:this.num_chapters,genre:this.data.genre?this.data.genre:"",theme:this.data.theme?this.data.theme:"",tone:this.data.tone?this.data.tone:"",point_of_view:this.data.point_of_view?this.data.point_of_view:""},"story/story-chapters")}generate(e,o){var n=this;return(0,C.A)(function*(){if(n.loading)return;let r;n.loading=!0,n.loading_event.emit(n.loading),r=n.writingService.ai_generated_stream_subject.pipe((0,G.p)(a=>!1!==a)).subscribe(a=>{a?.text&&n.splitTextIntoChapters(a.text),a?.completed&&(r.unsubscribe(),n.loading=!1,n.loading_event.emit(n.loading),n.onFormChange())}),n.writingService.generateStream(e,o,o).then(a=>{a&&!1===a.success&&(n.loading=!1,n.loading_event.emit(n.loading),setTimeout(()=>{r.unsubscribe()},100))})})()}splitTextIntoChapters(e){const o=e.split(/(Chapter \d+: .*\n)/g);let n=[],r=0;for(let a=1;a<o.length;a+=2){let p={index:(a+1)/2,plot:o[a+1].trim(),name:o[a].trim()};n.push(p)}n.length>
10&&n.forEach(a=>{r+=a.name.length+a.plot.length,this.form[a.index-1]={...this.form[a.index-1],plot:a.plot,name:a.name}}),this.outline_length=r,this.data.chapters_form=this.form}onFormChange(){let e=0,o=JSON.stringify(this.form.map(r=>(e+=r.name.length+r.plot.length,{name:r.name,plot:r.plot}))),n=JSON.stringify(this.data.chapters.map(r=>({name:r.name,plot:r.plot})));this.can_apply=o!=n,this.outline_length=e}applyChapters(){let e=JSON.parse(JSON.stringify(this.form));e.forEach((o,n)=>{this.data.chapters[n]&&(e[n].content=this.data.chapters[n].content,e[n].summary=this.data.chapters[n].summary?this.data.chapters[n].summary:"")}),this.update_data.emit({chapters:e,chapters_form:JSON.parse(JSON.stringify(this.form))}),this.update_tab_section.emit(4)}editNumChapters(e){this.num_chapters=this.num_chapters+e,this.num_chapters<0&&(this.num_chapters=0),this.num_chapters>25&&(this.num_chapters=25)}static{this.\u0275fac=function(o){return new(o||i)(t.rXU(u.w),t.rXU(d.bZ),t.rXU(g.UG))}}static{this.\u0275cmp=t.VBU({type:i,selectors:[["app-outline"]],inputs:{data:"data"},outputs:{update_data:"update_data",update_tab_section:"update_tab_section",loading_event:"loading_event"},features:[t.OA$],decls:22,vars:12,consts:[[1,"container","outline-form-container","mt-4"],[1,"title","d-flex","align-items-center"],[1,"fs-4"],[1,"flex-grow-1"],["mat-button","",1,"round-btn","me-1","d-none","d-md-block"],["mat-button","",1,"round-btn","border-gray","me-1","mat-text-icon",3,"click"],[4,"ngIf","ngIfElse"],["show_loading",""],["mat-button","",1,"round-btn",3,"disabled","click"],[1,"d-md-none","text-end","mt-3"],["mat-button","",1,"round-btn"],["class","num-chapters-form my-4 py-5 text-center",4,"ngIf"],[1,"form-container","py-4"],["class","outline-form-item p-3",4,"ngFor","ngForOf"],["matRipple","",1,"outline-form-item-new","d-flex","flex-column","align-items-center","justify-content-center",3,"click"],[1,"mb-3"],[1,"ms-1"],[1,"loading-spinner-in-btn","p-0"],["diameter","18",1,"ms-1"],[1,"num-chapters-form","my-4","py-5","text-center"],[1,"fs-4","mb-4"],[1,"mb-4","py-4","d-flex","justify-content-center"],[1,"round-btn","p-3","d-flex","align-items-center"],["mat-mini-fab","",1,"text-black","bg-white",3,"click"],["type","number","max","25","min","1",3,"ngModel","ngModelChange"],[1,"text-center"],["mat-button","",1,"round-btn","me-2","bg-light",3,"click"],["mat-button","",1,"btn-primary","round-btn",3,"click"],[1,"outline-form-item","p-3"],[1,"name-form","text-center","mb-2"],["type","text","maxlength","50",3,"ngModel","ngModelChange"],[1,"plot-form"],[1,"mb-3","text-center"],[1,"textarea-container"],["matInput","","rows","15","autocomplete","off",3,"maxlength","ngModel","ngModelChange"],[1,"floating-action-container",3,"click"],["mat-icon-button",""]],template:function(o,n){if(1&o&&(t.j41(0,"div",0)(1,"div",1),t.nrm(2,"span",2)(3,"span",3),t.j41(4,"button",4),t.EFF(5),t.k0s(),t.j41(6,"button",5),t.bIt("click",function(){return n.requestGenerateOutline()}),t.DNE(7,pt,4,0,"ng-container",6),t.DNE(8,dt,4,0,"ng-template",null,7,t.C5r),t.k0s(),t.j41(10,"button",8),t.bIt("click",function(){return n.applyChapters()}),t.EFF(11," Apply Changes "),t.k0s()(),t.j41(12,"div",9)(13,"button",10),t.EFF(14),t.k0s()(),t.DNE(15,mt,17,1,"div",11),t.j41(16,"div",12),t.DNE(17,ht,11,3,"div",13),t.j41(18,"div",14),t.bIt("click",function(){return n.newOutline()}),t.j41(19,"mat-icon",15),t.EFF(20,"add"),t.k0s(),t.EFF(21),t.k0s()()()),2&o){const r=t.sdS(9);t.R7$(5),t.Lme(" ",n.outline_length," / ",n.max_length," Chars "),t.R7$(2),t.Y8G("ngIf",!n.loading)("ngIfElse",r),t.R7$(3),t.AVh("btn-primary-base",n.can_apply),t.Y8G("disabled",!n.can_apply),t.R7$(4),t.Lme(" ",n.outline_length," / ",n.max_length," Chars "),t.R7$(1),t.Y8G("ngIf",n.show_num_chapters_form),t.R7$(2),t.Y8G("ngForOf",n.form),t.R7$(4),t.SpI(" Create Chapter ",(null==n.form?null:n.form.length)+1," ")}},dependencies:[v.Sq,v.bT,f.$z,f.iY,f.$0,S.An,_.me,_.Q0,_.BC,_.tU,_.VZ,_.zX,_.vS,I.fg,N.LG,$.r6],styles:[".title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:18px;margin-right:0}.form-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:20px}.form-container[_ngcontent-%COMP%] .outline-form-item[_ngcontent-%COMP%]{border:1px solid var(--border-gray);border-radius:24px;flex:1;min-width:350px;max-width:418px;min-height:200px;position:relative}.form-container[_ngcontent-%COMP%] .outline-form-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{font-weight:700;text-align:center}.form-container[_ngcontent-%COMP%] .outline-form-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .form-container[_ngcontent-%COMP%] .outline-form-item[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{width:100%;border:0;background:transparent}.form-container[_ngcontent-%COMP%] .outline-form-item[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{font-size:14px}.form-container[_ngcontent-%COMP%] .outline-form-item[_ngcontent-%COMP%] .textarea-container[_ngcontent-%COMP%]{margin:0 -1rem -1rem;padding:1rem;border-bottom-right-radius:24px;border-bottom-left-radius:24px;background-color:var(--g-colorGray250)}.form-container[_ngcontent-%COMP%] .outline-form-item[_ngcontent-%COMP%] .floating-action-container[_ngcontent-%COMP%]{position:absolute;top:5px;right:5px}.form-container[_ngcontent-%COMP%] .outline-form-item-new[_ngcontent-%COMP%]{border:1px solid var(--border-gray);border-radius:24px;flex:1;min-width:350px;max-width:418px;min-height:200px;cursor:pointer}.form-container[_ngcontent-%COMP%] .outline-form-item-new[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:35px;height:35px;width:35px;line-height:35px}
1.num-chapters-form[_ngcontent-%COMP%]{border:1px solid var(--border-gray);border-radius:24px}.num-chapters-form[_ngcontent-%COMP%] .num-btn[_ngcontent-%COMP%]{width:50px;height:50px;line-height:50px;font-weight:500}.num-chapters-form[_ngcontent-%COMP%] .num-btn[_ngcontent-%COMP%]:hover{color:var(--bs-white);background-color:var(--bs-primary);border:0}.num-chapters-form[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border:0;outline:none;width:200px;text-align:center;font-size:2rem;height:100%}.num-chapters-form[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-webkit-outer-spin-button, .num-chapters-form[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num-chapters-form[_ngcontent-%COMP%] input[type=number][_ngcontent-%COMP%]{-moz-appearance:textfield}.num-chapters-form[_ngcontent-%COMP%] div.round-btn[_ngcontent-%COMP%]{border:1px solid var(--border-gray)} .darkMode app-outline .textarea-container{background-color:inherit!important} .darkMode app-outline input, .darkMode app-outline textarea{color:#dcdcdc} .darkMode app-outline .num-chapters-form input{background:transparent}"]})}}return i})();var X=s(32102);function gt(i,c){1&i&&(t.qex(0),t.EFF(1," Auto Generate "),t.j41(2,"mat-icon",12),t.EFF(3,"auto_mode"),t.k0s(),t.bVm())}function ut(i,c){1&i&&(t.j41(0,"div",13),t.qex(1),t.EFF(2," Stop generating"),t.bVm(),t.nrm(3,"mat-spinner",14),t.k0s())}function ft(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",17)(1,"div",18)(2,"div",19)(3,"div",20)(4,"div",21)(5,"mat-icon",22),t.EFF(6,"face"),t.k0s()(),t.j41(7,"div",23),t.nrm(8,"span",3),t.j41(9,"button",24),t.bIt("click",function(){const r=t.eBV(e).index,a=t.XpG(2);return t.Njj(a.remove(r))}),t.j41(10,"mat-icon"),t.EFF(11,"delete_outline"),t.k0s()()(),t.j41(12,"div",25)(13,"mat-form-field",26)(14,"mat-label"),t.EFF(15,"Name"),t.k0s(),t.j41(16,"input",27),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;return t.Njj(a.Name=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.onFormChange())}),t.k0s()()(),t.j41(17,"div",25)(18,"mat-form-field",26)(19,"mat-label"),t.EFF(20,"Age"),t.k0s(),t.j41(21,"input",27),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;return t.Njj(a.Age=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.onFormChange())}),t.k0s()()(),t.j41(22,"div",25)(23,"mat-form-field",28)(24,"mat-label"),t.EFF(25,"Job"),t.k0s(),t.j41(26,"input",27),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;return t.Njj(a.Job=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.onFormChange())}),t.k0s()()(),t.j41(27,"div",25)(28,"mat-form-field",28)(29,"mat-label"),t.EFF(30,"Role"),t.k0s(),t.j41(31,"input",27),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;return t.Njj(a["Character Role"]=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.onFormChange())}),t.k0s()()()()(),t.j41(32,"div",29)(33,"div",30)(34,"div",25)(35,"mat-form-field",28)(36,"mat-label"),t.EFF(37,"Appearance"),t.k0s(),t.j41(38,"input",27),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;return t.Njj(a.Appearance=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.onFormChange())}),t.k0s()()(),t.j41(39,"div",25)(40,"mat-form-field",28)(41,"mat-label"),t.EFF(42,"Personality"),t.k0s(),t.j41(43,"input",27),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;return t.Njj(a.Personality=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.onFormChange())}),t.k0s()()(),t.j41(44,"div",25)(45,"mat-form-field",28)(46,"mat-label"),t.EFF(47,"Background"),t.k0s(),t.j41(48,"textarea",31),t.bIt("ngModelChange",function(n){const a=t.eBV(e).$implicit;
1return t.Njj(a.Background=n)})("ngModelChange",function(){t.eBV(e);const n=t.XpG(2);return t.Njj(n.onFormChange())}),t.EFF(49," "),t.k0s()()()()()()()}if(2&i){const e=c.$implicit,o=t.XpG(2);t.R7$(16),t.Y8G("maxlength",o.max_form_length+(null==e.Name?null:e.Name.length))("ngModel",e.Name),t.R7$(5),t.Y8G("maxlength",o.max_form_length+(null==e.Age?null:e.Age.length))("ngModel",e.Age),t.R7$(5),t.Y8G("maxlength",o.max_form_length+(null==e.Job?null:e.Job.length))("ngModel",e.Job),t.R7$(5),t.Y8G("maxlength",o.max_form_length+(null==e["Character Role"]?null:e["Character Role"].length))("ngModel",e["Character Role"]),t.R7$(7),t.Y8G("maxlength",o.max_form_length+(null==e.Appearance?null:e.Appearance.length))("ngModel",e.Appearance),t.R7$(5),t.Y8G("maxlength",o.max_form_length+(null==e.Personality?null:e.Personality.length))("ngModel",e.Personality),t.R7$(5),t.Y8G("maxlength",o.max_form_length+(null==e.Background?null:e.Background.length))("ngModel",e.Background)}}function bt(i,c){if(1&i&&(t.j41(0,"div",15),t.DNE(1,ft,50,14,"div",16),t.k0s()),2&i){const e=t.XpG();t.R7$(1),t.Y8G("ngForOf",e.form)("ngForTrackBy",e.trackById)}}let xt=(()=>{class i{constructor(e,o,n){this.writingService=e,this.dialog=o,this.snackbar=n,this.ngUnsubscribe=new k.B,this.update_data=new t.bkB,this.loading_event=new t.bkB,this.form=[],this.loading=!1,this.max_length=1e4,this.max_form_length=1e4}ngOnInit(){this.data&&(this.characters=this.data.characters,this.max_form_length=this.max_length-this.characters?.length),this.characters&&""!=this.characters&&setTimeout(()=>{this.form=this.textToArray(this.characters)},50)}ngOnDestroy(){this.ngUnsubscribe.next(null),this.ngUnsubscribe.complete(),this.loading&&this.writingService.ai_generating_controller_subject.next({action:"stop"})}ngOnChanges(e){e?.data.currentValue?.name!==e?.data.previousValue?.name&&(this.data&&(this.characters=this.data.characters,this.max_form_length=this.max_length-this.characters?.length),this.characters&&""!=this.characters&&setTimeout(()=>{this.form=this.textToArray(this.characters)},50))}trackById(e,o){return o?.id}generateCharacter(){this.loading?this.writingService.ai_generating_controller_subject.next({action:"stop"}):this.data.plot&&""!=this.data.plot?this.form.length>0?this.dialog.open(h.C,{panelClass:"my-dialog",data:{title:"Auto Generate Characters",text:"The data of your present characters will be substituted with the automatically generated one."},autoFocus:!1}).afterClosed().subscribe(e=>{e&&(this.form=[],this.characters="",this.generate({mode:"Multiple Characters",plot:this.data.plot,setting:this.data.setting,theme:this.data.theme,genre:this.data.genre},"story/story-characters"))}):(this.form=[],this.characters="",this.generate({mode:"Multiple Characters",plot:this.data.plot,setting:this.data.setting,theme:this.data.theme,genre:this.data.genre},"story/story-characters")):this.snackbar.open("Please specify Plot.","",{panelClass:"error",duration:5e3})}newCharacter(){this.characters&&this.characters.length>this.max_length?this.snackbar.open("Unable to create a new character as you are nearing the limit for character details. We will be increasing this limit soon.","",{duration:5e3}):this.form=[{Name:"",Age:"",Job:"","Character Role":"",Appearance:"",Personality:"",Background:""},...this.form]}onFormChange(){this.loading||(this.characters=this.arrayToText(this.form),this.update_data.emit({characters:this.characters}),this.max_form_length=this.max_length-this.characters.length)}remove(e){this.form.splice(e,1),this.characters=this.arrayToText(this.form),this.update_data.emit({characters:this.characters})}generate(e,o){var n=this;return(0,C.A)(function*(){if(n.loading)return;let r;n.loading=!0,n.loading_event.emit(n.loading),r=n.writingService.ai_generated_stream_subject.pipe((0,G.p)(a=>!1!==a)).subscribe(a=>{a?.text&&(n.characters=a.text.replace(/\d+\.\s+Name: /g,"Name: "),n.form=n.textToArray(n.characters)),a?.completed&&(r.unsubscribe(),n.loading=!1,n.loading_event.emit(n.loading),n.update_data.emit({characters:n.characters}))}),n.writingService.generateStream(e,o,o).then(a=>{a&&!1===a.success&&(n.loading=!1,n.loading_event.emit(n.loading),setTimeout(()=>{r.unsubscribe()},100))})})()}textToArray(e){let o=e.split(/(?:\n\n)(Name:|Age:|Job:|Character Role:|Appearance:|Personality:|Backgroun
1d:)/);for(let r=1;r<o.length;r+=1)o[r]+=o[r+1],o.splice(r+1,1);return o.map(r=>{let a=r.split("\n"),p=null,w="",P={};for(let E of a){let m=E.split(":");m.length>=2?(null!==p&&(P[p]=w.trim()),p=m[0].trim(),w=m.slice(1).join(":").trim()):w+="\n"+E}return null!==p&&(P[p]=w.trim()),P})}arrayToText(e){let o="";return e.forEach(n=>{["Name","Age","Job","Character Role","Appearance","Personality","Background"].forEach(a=>{let p=n[a];p||(p=""),o+=`${a}: ${p}\n`}),o+="\n"}),o.trim()}static{this.\u0275fac=function(o){return new(o||i)(t.rXU(u.w),t.rXU(d.bZ),t.rXU(g.UG))}}static{this.\u0275cmp=t.VBU({type:i,selectors:[["app-character-form"]],inputs:{data:"data"},outputs:{update_data:"update_data",loading_event:"loading_event"},features:[t.OA$],decls:16,vars:7,consts:[[1,"container","character-form-container","mt-4"],[1,"title","d-flex","align-items-center"],[1,"fs-4"],[1,"flex-grow-1"],["mat-button","",1,"round-btn","me-1","d-none","d-md-block"],["mat-button","",1,"round-btn","me-1","bg-light","mat-text-icon",3,"click"],[4,"ngIf","ngIfElse"],["show_loading",""],["mat-button","",1,"round-btn","btn-primary-base",3,"click"],[1,"d-md-none","text-end","mt-3"],["mat-button","",1,"round-btn"],["class","form-container py-4",4,"ngIf"],[1,"ms-1"],[1,"loading-spinner-in-btn","p-0"],["diameter","18",1,"ms-1"],[1,"form-container","py-4"],["class","character-form py-2 m-2",4,"ngFor","ngForOf","ngForTrackBy"],[1,"character-form","py-2","m-2"],[1,"row","flex-wrap","character-form-item"],[1,"col-5","p-2"],[1,"profile-form"],[1,"d-flex","align-items-center","justify-content-center","flex-grow-1","text-secondary"],[1,"character-icon"],[1,"remove-btn","d-flex","p-2"],["mat-icon-button","",1,"text-secondary",3,"click"],[1,"text-form"],["appearance","outline",1,"border-top-0"],["matInput","","autocomplete","off",3,"maxlength","ngModel","ngModelChange"],["appearance","outline"],[1,"col-7","p-2"],[1,"form-item"],["matInput","","autocomplete","off","rows","7","placeholder","Describe your character's background, touching on key life events, influential relationships, hometown, and any challenges faced.",3,"maxlength","ngModel","ngModelChange"]],template:function(o,n){if(1&o&&(t.j41(0,"div",0)(1,"div",1),t.nrm(2,"span",2)(3,"span",3),t.j41(4,"button",4),t.EFF(5),t.k0s(),t.j41(6,"button",5),t.bIt("click",function(){return n.generateCharacter()}),t.DNE(7,gt,4,0,"ng-container",6),t.DNE(8,ut,4,0,"ng-template",null,7,t.C5r),t.k0s(),t.j41(10,"button",8),t.bIt("click",function(){return n.newCharacter()}),t.EFF(11," New character "),t.k0s()(),t.j41(12,"div",9)(13,"button",10),t.EFF(14),t.k0s()(),t.DNE(15,bt,2,2,"div",11),t.k0s()),2&o){const r=t.sdS(9);t.R7$(5),t.Lme(" ",null!=n.characters&&n.characters.length?n.characters.length:0," / ",n.max_length," Chars "),t.R7$(2),t.Y8G("ngIf",!n.loading)("ngIfElse",r),t.R7$(7),t.Lme(" ",null!=n.characters&&n.characters.length?n.characters.length:0," / ",n.max_length," Chars "),t.R7$(1),t.Y8G("ngIf",n.form)}},dependencies:[v.Sq,v.bT,f.$z,f.iY,S.An,_.me,_.BC,_.tU,_.vS,X.rl,X.nJ,I.fg,N.LG],styles:[".character-form-container[_ngcontent-%COMP%]{max-width:1000px}.title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:18px;margin-right:0}.character-form-item[_ngcontent-%COMP%] .text-form[_ngcontent-%COMP%]{display:flex;padding:8px 0;font-size:14px;align-items:center}.character-form-item[_ngcontent-%COMP%] .text-form[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{margin-right:10px;width:30%}.profile-form[_ngcontent-%COMP%]{background-color:var(--bs-whitesmoke);height:100%;border-radius:24px;box-shadow:var(--editor-shadow);padding:1rem;display:flex;flex-direction:column;position:relative;border:1px solid var(--border-gray)}.profile-form[_ngcontent-%COMP%] .character-icon[_ngcontent-%COMP%]{font-size:60px;height:60px;width:60px}.profile-form[_ngcontent-%COMP%] .remove-btn[_ngcontent-%COMP%]{position:absolute;top:5px;right:5px}.form-item[_ngcontent-%COMP%]{margin-bottom:0!important}@media (max-width: 768px){.row.flex-wrap[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{width:100%}} .mat-form-field-infix{border-top:0;padding:0} .profile-form .mat-mdc-form-field-subscript-wrapper, .character-form-item .mat-mdc-form-field-subscript-wrapper{display:none} .darkMode app-character-form .profile-form{background-color:inherit} .darkMode app-character-form .profile-form input, .darkMode app-character-form .profile-form textarea{color:#dcdcdc}"]})}}return i})();function vt(i,c){if(1&i&&(t.qex(0),t.EFF(1),t.bVm()),2&i){const e=t.XpG();t.R7$(1),t.SpI(" ",e.data.name," ")}}function Ct(i,c){1&i&&(t.qex(0),t.EFF(1," Load a document... "),t.bVm())}function wt(i,c){if(1&i){const e=t.RV6();t.j41(0,"mat-icon",28),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.clearDocument())}),t.EFF(1,"clear"),t.k0s()}}function yt(i,c){if(1&i){const e=t.RV6();t.j41(0,"button",30),t.bIt("click",function(){t.eBV(e);
1const n=t.XpG().$implicit,r=t.XpG();return t.Njj(r.loadDocument(n))}),t.j41(1,"span"),t.EFF(2),t.k0s()()}if(2&i){const e=t.XpG().$implicit;t.R7$(2),t.JRh(e.name)}}function Mt(i,c){if(1&i&&(t.qex(0),t.DNE(1,yt,3,1,"button",29),t.bVm()),2&i){const e=c.$implicit;t.R7$(1),t.Y8G("ngIf",!e.version||e.version&&2==e.version)}}function kt(i,c){if(1&i){const e=t.RV6();t.j41(0,"button",31),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.exportDocx())}),t.j41(1,"span",32),t.EFF(2,"Export document"),t.k0s()()}}function Ot(i,c){if(1&i){const e=t.RV6();t.j41(0,"button",31),t.bIt("click",function(){t.eBV(e);const n=t.XpG();return t.Njj(n.removeDoc())}),t.j41(1,"span",33),t.EFF(2,"Delete document"),t.k0s()()}}function Pt(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",34)(1,"div",35)(2,"app-writing-form",36),t.bIt("submit_event",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.plotSubmit(n))}),t.k0s()()()}if(2&i){const e=t.XpG();t.R7$(2),t.Y8G("forms",e.form_data.plot_form)("show_label_number",!1)("submit_btn_label","Next")("loading",e.loading)("no_default_fields",e.form_data.no_default_fields)("submit_on_form_change",!0)("show_submit_btn",!1)("enable_tools",!1)}}function jt(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",37)(1,"app-character-form",38),t.bIt("update_data",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.characterSubmit(n))})("loading_event",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.loading=n)}),t.k0s()()}if(2&i){const e=t.XpG();t.R7$(1),t.Y8G("data",e.data)}}function Ft(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",39)(1,"app-outline",40),t.bIt("update_data",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.chapterPlotsChange(n))})("update_tab_section",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.tabOnClick(n))})("loading_event",function(n){t.eBV(e);const r=t.XpG();return t.Njj(r.loading=n)}),t.k0s()()}if(2&i){const e=t.XpG();t.R7$(1),t.Y8G("data",e.data)}}function Et(i,c){if(1&i){const e=t.RV6();t.j41(0,"button",51),t.bIt("click",function(){const r=t.eBV(e).index,a=t.XpG(3);return t.Njj(a.onChapterChange(r))}),t.j41(1,"mat-icon"),t.EFF(2,"menu_book"),t.k0s(),t.j41(3,"span",52),t.EFF(4),t.k0s()()}if(2&i){const e=c.$implicit,o=c.index,n=t.XpG(3);t.AVh("active",n.selected_chapter==o),t.R7$(4),t.SpI(" ",e.name," ")}}function Tt(i,c){if(1&i&&(t.j41(0,"div",46)(1,"button",47),t.qex(2),t.EFF(3),t.j41(4,"mat-icon",48),t.EFF(5,"expand_more"),t.k0s(),t.bVm(),t.k0s(),t.j41(6,"mat-menu",null,49),t.DNE(8,Et,5,3,"button",50),t.k0s()()),2&i){const e=t.sdS(7),o=t.XpG(2);t.R7$(1),t.Y8G("matMenuTriggerFor",e),t.R7$(2),t.SpI(" ",o.data.chapters[o.selected_chapter].name," "),t.R7$(5),t.Y8G("ngForOf",o.data.chapters)}}function St(i,c){if(1&i){const e=t.RV6();t.j41(0,"button",55),t.bIt("click",function(){const r=t.eBV(e).index,a=t.XpG(3);return t.Njj(a.onChapterChange(r))}),t.j41(1,"mat-icon"),t.EFF(2,"menu_book"),t.k0s(),t.j41(3,"span",52),t.EFF(4),t.k0s()()}if(2&i){const e=c.$implicit,o=c.index,n=t.XpG(3);t.AVh("active",n.selected_chapter==o),t.R7$(4),t.SpI(" ",e.name," ")}}function Nt(i,c){if(1&i&&(t.j41(0,"div",53),t.DNE(1,St,5,3,"button",54),t.k0s()),2&i){const e=t.XpG(2);t.AVh("expand",e.expand_chapter_list),t.R7$(1),t.Y8G("ngForOf",e.data.chapters)}}function Gt(i,c){if(1&i){const e=t.RV6();t.j41(0,"div",56)(1,"app-story-editor",57),t.bIt("update_tab_section",function(n){t.eBV(e);const r=t.XpG(2);return t.Njj(r.tab_section=n)})("loading_event",function(n){t.eBV(e);const r=t.XpG(2);return t.Njj(r.loading=n)}),t.k0s()()}if(2&i){const e=t.XpG(2);t.R7$(1),t.Y8G("chapter",e.data.chapters[e.selected_chapter])("data",e.data)("chapter_no",e.selected_chapter)("novel_id",e.novel_id)}}function It(i,c){if(1&i&&(t.j41(0,"div",41),t.DNE(1,Tt,9,3,"div",42),t.j41(2,"div",43),t.DNE(3,Nt,2,3,"div",44),t.DNE(4,Gt,2,4,"div",45),t.k0s()()),2&i){const e=t.XpG();t.R7$(1),t.Y8G("ngIf",e.data.chapters&&e.data.chapters.length>0),t.R7$(2),t.Y8G("ngIf",e.data.chapters&&e.data.chapters.length>0),t.R7$(1),t.Y8G("ngIf",e.show_editor)}}const Rt=function(){return["/writing/novels"]},Vt=function(){return["/writing/story-generator"]},Bt=function(){return["/writing/story-generator/novel"]},$t=[{path:"",component:(()=>{class i{constructor(e,o,n,r,a,p,w,P,E,m){this.snackbar=e,this.writingService=o,this.firestore=n,this.authService=a,this.router=p,this.dialog=w,this.metaTagService=P,this.docxService=E,this._SeoService=m,this.ngUnsubscribe=new k.B,this.is_browser=!0,this.novel_id=null,this.collection="novel_documents",this.title="Story Generator",this.mode="Novel",this.tab_section=0,this.selected_chapter=0,this.default_form=JSON.parse(JSON.stringify(V)),this.form_data=JSON.parse(JSON.stringify(V)),this.data={plot:"",setting:"",story_tone:"",context:"",chapters:[]},this.loading=!1,this.expand_chapter_list=!1,this.show_editor=!0,this.metaTagService.updateTag({name:"robots",content:"noindex, nofollow"}),this._SeoService.setTitle("Novel Studio"),(0,v.UE)(r)&&(this.is_browser=!0,this.authService.user_subject.pipe((0,G.p)(T=>!1!==T,(0,b.Q)(this.ngUnsubscribe))).subscribe(T=>{this.user=T,T.isAnonymous?this.router.navigate(["/authen/signin"],{queryParams:{redirect:"/writing/story-generator/novel"}}):this.getDocs()}))}ngOnInit(){}ngOnDestroy(){this.ngUnsubscribe.next(null),this.ngUnsubscribe.complete()}getDocs(){if(!this.collection||!this.user)return;this.docs_sub&&this.docs_sub();const e=(0,l.P)((0,l.rJ)(this.firestore,"customers",this.user.uid,this.collection),(0,l.My)("created_at","desc"));this.docs_sub=(0,l.aQ)(e,o=>{let n=[];o.forEach(r=>{let p,a=r.data();a.updated_at&&(p=1e3*a.updated_at.seconds),n.push({...a,doc:r,updated:p})}),this.novel_docs=n})}loadDocument(e){this.clearDocument(),this.data=JSON.parse(JSON.stringify(e)),this.novel_id=e.doc.id,delete this.data.doc;for(const o in this.form_data)Object.prototype.hasOwnProperty.call(this.form_data,o)&&this.form_data[o].forEac
1h((r,a)=>{this.data[r.name]&&(this.form_data[o][a].value=this.data[r.name])});for(let o=0;o<this.data.num_chapters;o+=1)this.form_data.chapters_outline_form.push({label:"Chapter "+(o+1)+" Outline",name:"chapter_"+(o+1)+"_outline",type:"textarea",max_length:1e3,value:this.data["chapter_"+(o+1)+"_outline"]||""});this.snackbar.open("Settings updated!")}clearDocument(){this.form_data=JSON.parse(JSON.stringify(this.default_form)),this.data={plot:"",setting:"",story_tone:"",context:"",chapters:[]},this.novel_id=null,this.snackbar.open("Settings updated!")}removeDoc(){var e=this;return(0,C.A)(function*(){e.novel_id&&e.dialog.open(h.C,{panelClass:"my-dialog",data:{title:`Delete document "${e.data.name}" ?`,text:"Once you remove this document, it will be permanently unavailable to you. Please ensure you have saved any necessary information elsewhere before proceeding with this action.",confirm_bg:"btn-danger",confirm_label:"Delete",cancel_label:"Cancel"},autoFocus:!1}).afterClosed().subscribe(function(){var o=(0,C.A)(function*(n){n&&(yield(0,l.kd)((0,l.H9)(e.firestore,"customers",e.user.uid,e.collection,e.novel_id)),e.snackbar.open("Deleted successfully!"),setTimeout(()=>{e.clearDocument()},500))});return function(n){return o.apply(this,arguments)}}())})()}tabOnClick(e){this.loading||(4==e&&(this.data.chapters[this.selected_chapter]||(this.selected_chapter=0)),this.tab_section=e)}saveNovel(){var e=this;return(0,C.A)(function*(){e.novel_id?e.dialog.open(O.v,{panelClass:"my-dialog",data:{title:"Save document",label:"Name",default:e.data.name,submit_label:"Save",submit_2_label:"Save as new"},autoFocus:!1}).afterClosed().subscribe(function(){var o=(0,C.A)(function*(n){if(n.type&&"submit2"==n.type){let r=JSON.parse(JSON.stringify(e.data));r.name=n.text,r.chapters.forEach((p,w)=>{r.chapters[w].editor_content=""});const a=yield(0,l.gS)((0,l.rJ)(e.firestore,"customers",e.user.uid,e.collection),{created_at:(0,l.O5)(),updated_at:(0,l.O5)(),...r});a.id&&(e.novel_id=a.id),e.snackbar.open("Document saved successfully")}else if(n)try{let r=JSON.parse(JSON.stringify(e.data));r.name=n,r.updated_at=(0,l.O5)(),r.chapters.forEach((p,w)=>{r.chapters[w].editor_content=""});const a=(0,l.H9)(e.firestore,"customers",e.user.uid,e.collection,e.novel_id);yield(0,l.mZ)(a,r),e.snackbar.open("Document saved successfully")}catch(r){e.snackbar.open(r)}});return function(n){return o.apply(this,arguments)}}()):e.newNovel()})()}newNovel(){var e=this;return(0,C.A)(function*(){if(!e.user||e.user.isAnonymous)return localStorage.setItem("tmp_novel_document",JSON.stringify(e.data)),void e.router.navigate(["/authen/signin"],{queryParams:{redirect:"/writing/story-generator/novel"}});e.dialog.open(O.v,{panelClass:"my-dialog",data:{title:"Save document",label:"Name",submit_label:"Save"},autoFocus:!1}).afterClosed().subscribe(function(){var o=(0,C.A)(function*(n){if(n){e.data.name=n;const r=yield(0,l.gS)((0,l.rJ)(e.firestore,"customers",e.user.uid,e.collection),{created_at:(0,l.O5)(),updated_at:(0,l.O5)(),...e.data});r.id&&(e.novel_id=r.id,e.snackbar.open("Document saved successfully"))}});return function(n){return o.apply(this,arguments)}}())})()}saveFormData(e){this.data={...this.data,...e}}plotSubmit(e){this.saveFormData(e)}characterSubmit(e){this.saveFormData(e)}tabChange(e){this.loading||(this.tab_section=e)}chapterPlotsChange(e){this.saveFormData(e)}outlineSubmit(e){}formArrayToDict(e){let o={};return e.forEach(n=>{1==n.disabled||(o[n.name]=n.value,"checkbox"==n.type&&(o[n.name]=n.options.filter(r=>r.selected)))}),o}onChapterChange(e){this.loading||(this.selected_chapter=e,this.show_editor=!1,setTimeout(()=>{this.show_editor=!0},100))}exportDocx(){this.docxService.downloadDocx(this.data.chapters.map(e=>({text:e.content})),this.data.name)}static{this.\u0275fac=function(o){return new(o||i)(t.rXU(g.UG),t.rXU(u.w),t.rXU(l._7),t.rXU(t.Agw),t.rXU(y.u),t.rXU(M.Ix),t.rXU(d.bZ),t.rXU(j.W8),t.rXU(F.Q),t.rXU(B.B))}}static{this.\u0275cmp=t.VBU({type:i,selectors:[["app-novel"]],decls:63,vars:28,consts:[[1,"page-content"],[1,"page-title","d-flex"],["src","assets/images/writing/story-icon.png","alt","story generator icon"],[1,"fw-bold"],["mat-button","","routerLinkActive","router-link-active",1,"ms-2","mt-1","round-btn-8px","try-new-btn",3,"routerLink"],[1,"flex-grow-1","d-none","d-md-block"],[1,"mode-btn-conatiner","ms-3","me-2"],["mat-button","",1,"mode-btn",3,"routerLink"],[1,"me-2"],["mat-button","",1,"mode-btn","active",3,"routerLink"],[1,"header-action-container","d-flex"],["mat-button","",1,"doc-btn","round-btn-8px","border-1","me-2",3,"matMenuTriggerFor"],[4,"ngIf"],["class","ms-1 text-secondary clear-icon",3,"click",4,"ngIf"],[1,"ms-1","text-secondary"],["novel_docs_menu","matMenu"],[4,"ngFor","ngForOf"],["mat-button","",1,"round-btn-8px","bg-light","me-2",3,"click"],["mat-icon-button","",1,"round-btn-8px","bg-light",3,"matMenuTriggerFor"],["more_menu","matMenu"],["mat-menu-item","",3,"click",4,"ngIf"],[1,"section-tab-container"],[1,"section-tab-wrapper"],["matRipple","",1,"section-tab-btn",3,"click"],["class","tab-content-wrapper no-form-border",4,"ngIf"],["class","tab-content-wrapper character-tab-container",4,"ngIf"],["class","tab-content-wrapper-3",4,"ngIf"],["class","tab-content-wrapper-4",4,"ngIf"],[1,"ms-1","text-secondary","clear-icon",3,"click"],["class","novel-doc-btn","mat-menu-item","",3,"click",4,"ngIf"],["mat-menu-item","",1,"novel-doc-btn",3,"click"],["mat-menu-item","",3,"click"],[1,"text-dan"],[1,"text-danger"],[1,"tab-content-wrapper","no-form-border"],[1,"container","tab-content-container"],[3,"forms","show_label_number","submit_btn_label","loading","no_default_fields","submit_on_form_change","show_submit_btn","enable_tools","submit_event"],[1,"tab-content-wrapper","character-tab-container"],[3,"data","update_data","loading_event"],[1,"tab-content-wrapper-3"],[3,"data","update_data","update_tab_section","loading_event"],[1,"tab-content-wrapper-4"],["class","chapter-list-mobile p-2",4,"ngIf"],[1,"tab-content-container-4"],["class","chapter-list-wrapper mac-scrollbar",3,"expand",4,"ngIf"],["class","editor-container",4,"ngIf"],[1,"chapter-list-mobile","p-2"],["mat-button","",1,"",3,"matMenuTriggerFor"],[1,"text-secondary"],["chapter_list_menu","matMenu"],["class","chapter-list","mat-menu-item","",3,"active","click",4,"ngFor","ngForOf"],["mat-menu-item","",1,"chapter-list",3,"click"],[1,"chapter-title"],[1,"chapter-list-wrapper","mac-scrollbar"],["mat-button","","class","chapter-list mat-text-icon mb-2",3,"active","click",4,"ngFor","ngForOf"],["mat-button","",1,"chapter-list","mat-text-icon","mb-2",3,"click"],[1,"editor-container"],[3,"chapter","data","chapter_no","novel_id","update_tab_section","loading_event"]],template:function(o,n){if(1&o&&(t.j41(0,"div",0)(1,"div",1),t.nrm(2,"img",2),t.j41(3,"h1",3),t.EFF(4,"Novel Generator"),t.k0s(),t.j41(5,"button",4),t.EFF(6," Discover the New Novel Studio! "),t.j41(7,"mat-icon"),t.EFF(8,"arrow_outward"),t.k0s()(),t.nrm(9,"span",5),t.j41(10,"div",6)(11,"button",7)(12,"mat-icon",8),t.EFF(13,"wysiwyg"),t.k0s(),t.j41(14,"span"),t.EFF(15,"Short Story"),t.k0s()(),t.j41(16,"button",9)(17,"mat-icon",8),t.EFF(18,"chrome_reader_mode"),t.k0s(),t.j41(19,"span"),t.EFF(20,"Novel"),t.k0s()()(),t.j41(21,"div",10)(22,"button",11),t.qex(23),t.DNE(24,vt,2,1,"ng-container",12),t.DNE(25,Ct,2,0,"ng-container",12),t.DNE(26,wt,2,0,"mat-icon",13),t.j41(27,"mat-icon",14),t.EFF(28,"expand_more"),t.k0s(),t.bVm(),t.k0s(),t.j41(29,"mat-menu",null,15),t.DNE(31,Mt,2,1,"ng-container",16),t.k0s(),t.j41(32,"button",17),t.bIt("click",function(){return n.saveNovel()}),t.EFF(33," Save "),t.k0s(),t.j41(34,"button",18)(35,"mat-icon"),t.EFF(36,"more_horiz"),t.k0s()(),t.j41(37,"mat-menu",null,19),t.DNE(39,kt,3,0,"button",20),t.DNE(40,Ot,3,0,"button",20),t.k0s()()(),t.j41(41,"div",21)(42,"div",22)(43,"div",23),t.bIt("click",function(){return n.tabOnClick(0)}),t.j41(44,"mat-icon"),t.EFF(45," auto_awesome "),t.k0s(),t.EFF(46," Plot "),t.k0s(),t.j41(47,"div",23),t.bIt("click",function(){return n.tabOnClick(1)}),t.j41(48,"mat-icon"),t.EFF(49," groups_3 "),t.k0s(),t.EFF(50," Character "),t.k0s(),t.j41(51,"div",23),t.bIt("click",function(){return n.tabOnClick(3)}),t.j41(52,"mat-icon"),t.EFF(53," format_list_bulleted "),t.k0s(),t.EFF(54," Outline "),t.k0s(),t.j41(55,"div",23),t.bIt("click",function(){return n.tabOnClick(4)}),t.j41(56,"mat-icon"),t.EFF(57," auto_stories "),t.k0s(),t.EFF(58," Chapters "),t.k0s()()(),t.DNE(59,Pt,3,8,"div",24),t.DNE(60,jt,2,1,"div",25),t.DNE(61,Ft,2,1,"div",26),t.DNE(62,It,5,3,"div",27),t.k0s()),2&o){const r=t.sdS(30),a=t.sdS(38);t.R7$(5),t.Y8G("routerLink",t.lJ4(25,Rt)),t.R7$(6),t.Y8G("routerLink",t.lJ4(26,Vt)),t.R7$(5),t.Y8G("routerLink",t.lJ4(27,Bt)),t.R7$(6),t.AVh("text-secondary",!n.novel_id),t.Y8G("matMenuTriggerFor",r),t.R7$(2),t.Y8G("ngIf",n.novel_id),t.R7$(1),t.Y8G("ngIf",!n.novel_id),t.R7$(1),t.Y8G("ngIf",n.novel_id),t.R7$(5),t.Y8G("ngForOf",n.novel_docs),t.R7$(3),t.Y8G("matMenuTriggerFor",a),t.R7$(5),t.Y8G("ngIf",n.novel_id),t.R7$(1),t.Y8G("ngIf",n.novel_id),t.R7$(3),t.AVh("active",0==n.tab_section),t.R7$(4),t.AVh("active",1==n.tab_section),t.R7$(4),t.AVh("active",3==n.tab_section),t.R7$(4),t.AVh("active",4==n.tab_section),t.R7$(4),t.Y8G("ngIf",0==n.tab_section),t.R7$(1),t.Y8G("ngIf",1==n.tab_section),t.R7$(1),t.Y8G("ngIf",3==n.tab_section),t.R7$(1),t.Y8G("ngIf",4==n.tab_section)}},dependencies:[v.Sq,v.bT,M.Wk,M.wQ,x.kk,x.fb,x.Cp,f.$z,f.iY,S.An,$.r6,A.G,lt,_t,xt],styles:['[_nghost-%COMP%]{height:100vh;min-height:100vh;display:flex;flex-direction:column}@media (max-width: 768px){[_nghost-%COMP%]{height:auto;min-height:auto}}.page-title[_ngcontent-%COMP%]{border-bottom:1px solid var(--border-gray);padding:12px 12px 12px 24px;align-items:center}@media (max-width: 768px){.page-title[_ngcontent-%COMP%]{border-bottom:0;height:55px;padding:8px;justify-content:flex-end}.page-title[_ngcontent-%COMP%] .my-mat-icon-btn[_ngcontent-%COMP%]{margin-left:2px!important;background-color:initial!important}}.page-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 40px);padding:4px 0}@media (max-width: 768px){.page-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{position:fixed;top:15px;left:60px;z-index:10;font-size:16px!important;min-width:auto!important;max-width:calc(100% - 240px)}}.page-title[_ngcontent-%COMP%] .show-ex-btn[_ngcontent-%COMP%]{white-space:nowrap;width:-moz-fit-content;width:fit-content}.page-title[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{height:32px!important}@media (max-width: 768px){.page-title[_ngcontent-%COMP%]{padding:10px;flex-wrap:wrap}.page-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{min-width:calc(100% - 50px)}.page-title[_ngcontent-%COMP%] .preset-btn[_ngcontent-%COMP%]{flex:1;max-width:100%}}.page-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:18px}.page-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:30px;margin-right:10px}@media (max-width: 768px){.page-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:none}}@media (max-width: 768px){.page-title[_ngcontent-%COMP%] .title-btn-container[_ngcontent-%COMP%]{position:fixed;top:0;right:0;z-index:10;height:55px;padding:8px;align-items:center;background-color:#fff}}.mobile-result-tab-container[_ngcontent-%COMP%]{border-bottom:1px solid var(--border-gray);display:none;overflow:hidden}@media (max-width: 768px){.mobile-result-tab-container[_ngcontent-%COMP%]{display:flex}}.mobile-result-tab-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{flex:1;white-space:nowrap;border-radius:0!important;font-weight:500}.mobile-result-tab-container[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{border-bottom:2px solid var(--azure);font-weight:600}.writing-container[_ngcontent-%COMP%]{display:flex;flex:1;max-height:calc(100% - 55px);border-bottom:1px solid var(--border-gray)}@media (max-width: 1080px){.writing-container[_ngcontent-%COMP%]{max-height:calc(100% - 112px)}}.writing-container[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{position:relative;max-width:50%;min-width:400px}@media (max-width: 1400px){.writing-container[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{min-width:380px}}@media (max-width: 768px){.writing-container[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:100%;max-width:100%;min-width:100%}}@media (max-width: 768px){.writing-container[_ngcontent-%COMP%] .left.hidden-form[_ngcontent-%COMP%]{display:none}}.writing-container[_ngcontent-%COMP%] .left-form-resize-handle[_ngcontent-%COMP%]{width:16px;border-left:1px solid var(--border-gray);
1cursor:ew-resize}.writing-container[_ngcontent-%COMP%] .left-form-resize-handle[_ngcontent-%COMP%]:hover{border-color:#c5c5d2}.writing-container[_ngcontent-%COMP%] .right[_ngcontent-%COMP%], .writing-container[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{max-height:100%}.writing-container[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{flex:1}@media (max-width: 768px){.writing-container[_ngcontent-%COMP%]{max-height:initial;flex:initial;border-bottom:0;flex-wrap:wrap}}.model-item[_ngcontent-%COMP%]{min-width:300px;padding:8px 16px;border-top:1px solid var(--border-gray)}.model-item[_ngcontent-%COMP%]:nth-child(1){border:0}.model-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:15px;height:15px;width:15px;line-height:15px;margin-right:8px}.model-item[_ngcontent-%COMP%] .score-bar-container[_ngcontent-%COMP%] .score-bar.fill[_ngcontent-%COMP%]{background-color:var(--bs-primary)}.model-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:45px}.model-item[_ngcontent-%COMP%] .model-badge[_ngcontent-%COMP%]{font-size:10px;font-weight:600;margin-left:5px;padding:1px 4px;border-radius:5px;color:var(--bs-info);background-color:rgba(var(--bs-info-rgb),.2);display:inline-flex;max-height:15px;align-items:center}.model-item[_ngcontent-%COMP%] .model-badge.badge-default[_ngcontent-%COMP%]{background-color:var(--border-gray)!important;color:inherit}.model-item[_ngcontent-%COMP%] .model-badge.badge-alpha[_ngcontent-%COMP%]{background-color:rgba(var(--bs-success-rgb),.2)!important;color:var(--bs-success)}.model-item[_ngcontent-%COMP%] .score-bar-container[_ngcontent-%COMP%]{display:inline-flex;align-items:center}.model-item[_ngcontent-%COMP%] .score-bar-container[_ngcontent-%COMP%] .score-bar[_ngcontent-%COMP%]{border-radius:1px;height:5px;margin:1px;width:8px;background-color:#dadce0}.model-item[_ngcontent-%COMP%] .model-item-desc[_ngcontent-%COMP%]{line-height:1.4;margin-top:5px}.model-p-note[_ngcontent-%COMP%]{line-height:14px;border-top:1px solid var(--border-gray)}.ai-config-container[_ngcontent-%COMP%]{width:350px;border-left:1px solid var(--border-gray);height:100%;background-color:#fff;position:relative}.ai-config-container.compact-ui[_ngcontent-%COMP%]{position:fixed;top:55px;right:0;bottom:0;z-index:10}@media (max-width: 1200px){.ai-config-container[_ngcontent-%COMP%]{position:fixed;top:55px;right:0;bottom:0;z-index:10}}@media (max-width: 768px){.ai-config-container[_ngcontent-%COMP%]{top:0}}@media (max-width: 350px){.ai-config-container[_ngcontent-%COMP%]{width:100%}}.ai-config-container[_ngcontent-%COMP%] .config-header[_ngcontent-%COMP%]{padding:1rem}.ai-config-container[_ngcontent-%COMP%] .config-header[_ngcontent-%COMP%] .config-category-container[_ngcontent-%COMP%]{padding:2px}.ai-config-container[_ngcontent-%COMP%] .config-header[_ngcontent-%COMP%] .config-category-container[_ngcontent-%COMP%] .active[_ngcontent-%COMP%]{background-color:#fff;box-shadow:#00000029 0 1px 4px}.ai-config-container[_ngcontent-%COMP%] .config-body[_ngcontent-%COMP%]{height:calc(100% - 136px);overflow-x:hidden;overflow-y:auto}@media (max-width: 1200px){.ai-config-container[_ngcontent-%COMP%] .config-body[_ngcontent-%COMP%]{height:calc(100% - 196px)}}@media (max-width: 768px){.ai-config-container[_ngcontent-%COMP%] .config-body[_ngcontent-%COMP%]{height:calc(100% - 140px)}}.ai-config-container[_ngcontent-%COMP%] .configs-preset-form-container[_ngcontent-%COMP%]{padding:5px 16px 16px}.ai-config-container[_ngcontent-%COMP%] .configs-preset-form-container[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%]{font-weight:600}.presest-mat-menu-container[_ngcontent-%COMP%]{max-width:250px}.presest-mat-menu-container[_ngcontent-%COMP%] div.fs-9[_ngcontent-%COMP%]{padding:0 10px 0 36px}.preset-actions[_ngcontent-%COMP%]{max-width:250px}.preset-btn[_ngcontent-%COMP%]{max-width:150px;min-width:150px;padding:0 8px!important}.preset-item[_ngcontent-%COMP%]{min-width:150px}.preset-item[_ngcontent-%COMP%] .text-truncate[_ngcontent-%COMP%]{max-width:180px}@media (max-width: 768px){.page-title[_ngcontent-%COMP%]{border-bottom:0;height:auto!important;justify-content:initial}}
1.header-action-container[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{padding:0!important}@media (max-width: 768px){.header-action-container[_ngcontent-%COMP%]{width:100%;margin:0!important}}.doc-btn[_ngcontent-%COMP%]{border-color:var(--border-gray)!important;padding-right:8px!important}@media (max-width: 768px){.doc-btn[_ngcontent-%COMP%]{flex:1}}.doc-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;height:20px;width:20px;line-height:20px}.doc-btn[_ngcontent-%COMP%] mat-icon.clear-icon[_ngcontent-%COMP%]{font-size:16px;height:16px;width:16px;line-height:16px}.mode-btn-conatiner[_ngcontent-%COMP%]{border-radius:8px;padding:3.5px;background:var(--g-colorGray100);min-width:265px}@media (max-width: 768px){.mode-btn-conatiner[_ngcontent-%COMP%]{flex:1;margin:10px 0!important;width:100%}}.mode-btn-conatiner[_ngcontent-%COMP%] .mode-btn[_ngcontent-%COMP%]{text-align:center;line-height:30px;border-radius:8px;font-size:12px;width:50%;padding:0!important;height:31px;color:var(--g-colorGray200)}.mode-btn-conatiner[_ngcontent-%COMP%] .mode-btn.active[_ngcontent-%COMP%]{background-color:var(--bs-white);color:inherit;font-weight:600}.mode-btn-conatiner[_ngcontent-%COMP%] .mode-btn.active[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--bs-primary)}.mode-btn-conatiner[_ngcontent-%COMP%] .mode-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;height:20px;width:20px;line-height:20px}.mode-btn-conatiner[_ngcontent-%COMP%] .mode-btn[_ngcontent-%COMP%] mat-icon.clear-icon[_ngcontent-%COMP%]{font-size:16px;height:16px;width:16px;line-height:16px}.section-tab-container[_ngcontent-%COMP%]{border-bottom:1px solid var(--border-gray);background-color:var(--bs-white);position:sticky;top:0;overflow-x:auto;overflow-y:hidden;z-index:3}@media (max-width: 1080px){.section-tab-container[_ngcontent-%COMP%]{top:55px}}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:center}@media (max-width: 900px){.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%]{justify-content:flex-start}}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .todo-count[_ngcontent-%COMP%]{padding:2px 5px;background-color:#e22e00;color:#fff;margin-left:5px;border-radius:100px;font-size:.8rem}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .todo-count.animation[_ngcontent-%COMP%]{animation-name:alertAnimation;animation-timing-function:ease;animation-duration:.65s}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .section-tab-btn[_ngcontent-%COMP%]{font-size:.9rem;font-weight:600;
1min-width:200px;height:58px;position:relative;display:flex;justify-content:center;padding:0 15px;align-items:center;cursor:pointer}@media (max-width: 900px){.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .section-tab-btn[_ngcontent-%COMP%]{min-width:150px;white-space:nowrap;font-size:14px}}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .section-tab-btn[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:10px}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .section-tab-btn[_ngcontent-%COMP%]:before{border-top-left-radius:3px;border-top-right-radius:3px;bottom:-1px;content:"";display:block;height:3px;left:0;margin:0 8px;position:absolute;right:0}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .section-tab-btn.active[_ngcontent-%COMP%]{color:var(--bs-primary)}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .section-tab-btn.active[_ngcontent-%COMP%]:before{background-color:#1a73e8}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .section-tab-btn.active[_ngcontent-%COMP%]:nth-child(2){color:#1a73e8}.section-tab-container[_ngcontent-%COMP%] .section-tab-wrapper[_ngcontent-%COMP%] .section-tab-btn.active[_ngcontent-%COMP%]:nth-child(2):before{background-color:#1a73e8}.tab-content-wrapper[_ngcontent-%COMP%]{padding-top:1rem}.tab-content-wrapper[_ngcontent-%COMP%] .tab-content-container[_ngcontent-%COMP%]{max-width:900px}.tab-content-wrapper[_ngcontent-%COMP%] .tab-content-container[_ngcontent-%COMP%]{height:100%}.tab-content-wrapper[_ngcontent-%COMP%] .form-item[_ngcontent-%COMP%]{background-color:var(--bs-white);border:1px solid var(--border-gray);margin-top:1.5rem;border-radius:12px}.tab-content-wrapper[_ngcontent-%COMP%] .form-item[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:600;padding:1rem;border-bottom:1px solid var(--border-gray)}.tab-content-wrapper[_ngcontent-%COMP%] .form-item[_ngcontent-%COMP%] .form-body[_ngcontent-%COMP%]{padding:1rem}.tab-content-wrapper-3[_ngcontent-%COMP%]{height:calc(100vh - 187px);padding-top:1rem}.tab-content-wrapper-3[_ngcontent-%COMP%] .tab-content-container[_ngcontent-%COMP%]{max-width:900px}.tab-content-wrapper-4[_ngcontent-%COMP%]{background:var(--novel-generator-page-bg);height:calc(100vh - 187px)}@media (min-width: 1081px){.tab-content-wrapper-4[_ngcontent-%COMP%]{min-height:calc(100vh - 124px)}}.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%]{display:flex;background:var(--novel-generator-page-bg);min-height:calc(100vh - 187px)}@media (min-width: 1081px){.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%]{min-height:calc(100vh - 124px)}}.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%] .editor-container[_ngcontent-%COMP%]{flex:1}.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%] .chapter-list-wrapper[_ngcontent-%COMP%]{width:240px;padding:1.5rem 1rem;height:calc(100vh - 187px);overflow:auto}@media (min-width: 1081px){.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%] .chapter-list-wrapper[_ngcontent-%COMP%]{min-height:calc(100vh - 124px)}}@media (max-width: 1000px){.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%] .chapter-list-wrapper[_ngcontent-%COMP%]{display:none}}.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%] .chapter-list-wrapper[_ngcontent-%COMP%] .chapter-list[_ngcontent-%COMP%]{max-width:100%;width:100%;padding:5px 16px;font-size:.85em;justify-content:flex-start}.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%] .chapter-list-wrapper[_ngcontent-%COMP%] .chapter-list.active[_ngcontent-%COMP%]{color:var(--theme-color);background:var(--theme-btn-active-bg);font-weight:600}.tab-content-wrapper-4[_ngcontent-%COMP%] .tab-content-container-4[_ngcontent-%COMP%] .chapter-list-wrapper[_ngcontent-%COMP%] .chapter-title[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-content-wrapper-4[_ngcontent-%COMP%] .chapter-list-mobile[_ngcontent-%COMP%]{display:none}@media (max-width: 1000px){.tab-content-wrapper-4[_ngcontent-%COMP%] .chapter-list-mobile[_ngcontent-%COMP%]{display:block}}.mobile-warning[_ngcontent-%COMP%]{display:none}@media (max-width: 768px){.mobile-warning[_ngcontent-%COMP%]{display:block}}.try-new-btn[_ngcontent-%COMP%]{font-weight:600;color:rgba(var(--purple-rgb))!important;background-color:rgba(var(--purple-rgb),.2)}@media (max-width: 768px){.try-new-btn[_ngcontent-%COMP%]{display:none}}@media (max-width: 768px){ app-writing:has(app-novel) .site-logo{display:none!important}} app-novel .page-title{flex-wrap:wrap} app-novel .tab-content-wrapper .mat-form-field-outline-start{border-radius:12px 0 0 12px!important;min-width:12px!important;border:0!important} app-novel .tab-content-wrapper .mat-form-field-outline-end{border-radius:0 12px 12px 0!important;border:0!important} app-novel .tab-content-wrapper app-writing-form .form-item, app-novel .tab-content-wrapper app-character-form .form-item{border:1px solid var(--border-gray);border-radius:24px;margin-bottom:1rem;padding:1rem;box-shadow:0 4px 22px #0000000a} app-novel .tab-content-wrapper app-writing-form .form-label, app-novel .tab-content-wrapper app-character-form .form-label{padding-bottom:1rem;border-bottom:1px solid var(--border-gray)} app-novel .tab-content-wrapper app-writing-form .mat-form-field-wrapper, app-novel .tab-content-wrapper app-character-form .mat-form-field-wrapper{padding-bottom:0!important} app-novel .tab-content-wrapper app-writing-form .mat-form-field-appearance-outline .mat-form-field-flex, app-novel .tab-content-wrapper app-character-form .mat-form-field-appearance-outline .mat-form-field-flex{padding:0!important} app-novel .no-form-border .mdc-notched-outline__leading, app-novel .no-form-border .mdc-notched-outline__trailing{border:0!important} app-novel textarea.mat-mdc-input-element{line-height:1.8} app-novel .form-submit{border-top:0!important} app-novel .num-chapter-form-container button.submit{background:var(--bs-black)!important} app-novel .novel-doc-btn{width:174px} app-novel button.mat-mdc-menu-item{line-height:35px;height:35px;font-size:13px} app-novel button.chapter-list .mdc-button__label{max-width:calc(100% - 30px)} button.chapter-list .mdc-list-item__primary-text{white-space:nowrap;max-width:calc(100% - 40px);overflow:hidden;text-overflow:ellipsis} .darkMode app-novel .section-tab-container{background-color:#202124} .darkMode app-novel .mode-btn-conatiner{background-color:#3c4043} .darkMode app-novel .mode-btn-conatiner .mode-btn.active{background-color:#202020!important} .darkMode app-novel .tab-content-wrapper-4 .tab-content-container-4{background-color:#131313!important} .darkMode app-novel .chapter-list.active{background-color:#3c4043!important;color:#fff!important}']})}}return i})()}];let Xt=(()=>
1{class i{static{this.\u0275fac=function(o){return new(o||i)}}static{this.\u0275mod=t.$C({type:i})}static{this.\u0275inj=t.G2t({imports:[M.iI.forChild($t),M.iI]})}}return i})();var L=s(13333),Dt=s(14823),At=s(67575),Yt=s(83801),Ut=s(43881),zt=s(60850),qt=s(81014),Jt=s(35286);let Lt=[At.PO,S.m_,$.pZ,D.RI,N.D6,Yt.FQ,g._T,Dt.uc,d.hM,f.Hl,_.YN,x.Cn,X.RG,I.fS,zt.jL,Ut.Ez,N.D6,x.Cn],Ht=(()=>{class i{static{this.\u0275fac=function(o){return new(o||i)}}static{this.\u0275mod=t.$C({type:i})}static{this.\u0275inj=t.G2t({imports:[v.MD,Y.Qs.forRoot(),Lt,L.t,U.W,M.iI,qt.C,z.f,Jt.y2.forRoot(),q.A]})}}return i})();var Wt=s(82798);let Qt=[x.Cn,f.Hl,S.m_,_.YN,X.RG,I.fS,g._T,d.hM,Wt.Ve,N.D6,g._T,$.pZ,I.fS],Zt=(()=>{class i{static{this.\u0275fac=function(o){return new(o||i)}}static{this.\u0275mod=t.$C({type:i})}static{this.\u0275inj=t.G2t({imports:[v.MD,Xt,Qt,L.t,Ht]})}}return i})()}}]);
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.