PageSourceSearch

https://topografiapamieci.pl/chunk-LW6XMMIP.js

js topografiapamieci.pl collected 2026-10-08 12:03:59 UTC 86,527 bytes, 1 lines download raw bytes

1import{a as je}from"./chunk-OE57CPA5.js";import{a as Ne}from"./chunk-VILPCUMY.js";import{d as qe}from"./chunk-Y2VEHYCS.js";import{a as Oe,b as Ge}from"./chunk-VWNPSH6G.js";import{a as Ue}from"./chunk-FQJZPOXY.js";import{a as ee}from"./chunk-MAGBFBLM.js";import{b as Be,c as $e,d as te}from"./chunk-NXF35R4I.js";import{a as Z}from"./chunk-WOECTUBD.js";import{A as Le,c as ke,f as me,i as pe,r as Ee,t as Q}from"./chunk-S7LYEJVY.js";import{a as ue}from"./chunk-4GXCJFHC.js";import{a as V,c as oe}from"./chunk-VSVX6VL4.js";import{c as xe,f as ce,k as ve,o as Pe,x as $,y as O}from"./chunk-24MP32AG.js";import{$b as de,A as j,Ab as y,C as Ie,Eb as A,Fb as E,G as z,Gb as a,Jc as B,Ka as Se,La as Te,Ma as De,Na as be,Nb as Me,Ob as Ae,P as we,Pb as ae,Qb as he,Ra as r,Rb as K,S as Y,Tb as fe,Ub as g,V as ge,Vb as L,Wb as S,Xb as J,Zb as le,_ as D,_b as se,ac as Ce,bb as k,dc as Re,ea as c,eb as Ve,f as ye,fa as m,gc as h,hc as f,j as W,ka as U,mc as C,na as _,nc as N,pc as P,qb as q,qc as T,rb as x,rc as Fe,sb as v,vb as ie,wb as ne,xb as b,yb as l,zb as s}from"./chunk-TH2R3M5J.js";import{a as w,b as F}from"./chunk-GAL4ENT6.js";var _e=(()=>{class n{http=D(ce);destroyRef=D(U);baseUrl=`${oe.apiUrl}/cms/articles`;publicBaseUrl=`${oe.apiUrl}/public/cms/articles`;currentArticleLoadRequestId=0;_state=_({articles:[],currentArticle:null,isLoading:!1,error:null,totalPages:0,currentPage:0,totalElements:0});articles=C(()=>this._state().articles);currentArticle=C(()=>this._state().currentArticle);isLoading=C(()=>this._state().isLoading);error=C(()=>this._state().error);totalPages=C(()=>this._state().totalPages);currentPage=C(()=>this._state().currentPage);totalElements=C(()=>this._state().totalElements);loadArticleById(e){let t=this.startCurrentArticleLoad();this.http.get(`${this.baseUrl}/${e}`).pipe(V(this.destroyRef),j(i=>this.isCurrentArticleLoad(t)?this.handleError(`loading article ${e}`,i,null):W(null)),z(()=>{this.isCurrentArticleLoad(t)&&this.setLoadingState(!1,!1)})).subscribe(i=>this.setCurrentArticleForLatestLoad(t,i))}loadArticleByPlaceId(e){let t=this.startCurrentArticleLoad();this.http.get(`${this.baseUrl}/place/${e}`).pipe(V(this.destroyRef),j(i=>this.isCurrentArticleLoad(t)?this.handleError(`loading article for place ${e}`,i,null,!0):W(null)),z(()=>{this.isCurrentArticleLoad(t)&&this.setLoadingState(!1,!1)})).subscribe(i=>this.setCurrentArticleForLatestLoad(t,i))}loadArticleByPersonId(e){let t=this.startCurrentArticleLoad();this.http.get(`${this.baseUrl}/person/${e}`).pipe(V(this.destroyRef),j(i=>this.isCurrentArticleLoad(t)?this.handleError(`loading article for person ${e}`,i,null,!0):W(null)),z(()=>{this.isCurrentArticleLoad(t)&&this.setLoadingState(!1,!1)})).subscribe(i=>this.setCurrentArticleForLatestLoad(t,i))}loadArticleByPlaceIdPublic(e){let t=this.startCurrentArticleLoad();this.http.get(`${this.publicBaseUrl}/place/${e}`).pipe(V(this.destroyRef),j(i=>this.isCurrentArticleLoad(t)?this.handleError(`loading public article for place ${e}`,i,null,!0):W(null)),z(()=>{this.isCurrentArticleLoad(t)&&this.setLoadingState(!1,!1)})).subscribe(i=>this.setCurrentArticleForLatestLoad(t,i))}loadArticleByPersonIdPublic(e){let t=this.startCurrentArticleLoad();this.http.get(`${this.publicBaseUrl}/person/${e}`).pipe(V(this.destroyRef),j(i=>this.isCurrentArticleLoad(t)?this.handleError(`loading public article for person ${e}`,i,null,!0):W(null)),z(()=>{this.isCurrentArticleLoad(t)&&this.setLoadingState(!1,!1)})).subscribe(i=>this.setCurrentArticleForLatestLoad(t,i))}loadAllArticles(e){this.setLoadingState(!0);let t=this.buildPaginationParams(e);this.http.get(this.baseUrl,{params:t}).pipe(V(this.destroyRef),j(i=>this.handleError("loading articles",i,this.createEmptyPageResponse())),z(()=>this.setLoadingState(!1,!1))).subscribe(i=>{i&&typeof i=="object"&&"content"in i&&this._state.update(o=>F(w({},o),{articles:i.content,totalPages:i.totalPages,currentPage:i.currentPage,totalElements:i.totalElements}))})}createArticle(e){return this.http.post(this.baseUrl,e).pipe(V(this.destroyRef),Y(t=>{this._state.update(i=>F(w({}
1,i),{articles:[...i.articles,t],currentArticle:t}))}),j(t=>{throw console.error("Error creating article:",t),t}))}updateArticle(e,t){return this.http.put(`${this.baseUrl}/${e}`,t).pipe(V(this.destroyRef),Y(i=>{this._state.update(o=>F(w({},o),{articles:o.articles.map(d=>d.id===e?i:d),currentArticle:o.currentArticle?.id===e?i:o.currentArticle}))}),j(i=>{throw console.error(`Error updating article ${e}:`,i),i}))}deleteArticle(e){return this.http.delete(`${this.baseUrl}/${e}`).pipe(V(this.destroyRef),Y(()=>{this._state.update(t=>F(w({},t),{articles:t.articles.filter(i=>i.id!==e),currentArticle:t.currentArticle?.id===e?null:t.currentArticle}))}),j(t=>{throw console.error(`Error deleting article ${e}:`,t),t}))}clearCurrentArticle(){this._state.update(e=>F(w({},e),{currentArticle:null}))}clearError(){this._state.update(e=>F(w({},e),{error:null}))}startCurrentArticleLoad(){let e=++this.currentArticleLoadRequestId;return this._state.update(t=>F(w({},t),{currentArticle:null,isLoading:!0,error:null})),e}isCurrentArticleLoad(e){return e===this.currentArticleLoadRequestId}setCurrentArticleForLatestLoad(e,t){this.isCurrentArticleLoad(e)&&this._state.update(i=>F(w({},i),{currentArticle:t&&typeof t=="object"&&"id"in t?t:null}))}buildPaginationParams(e){let t=new xe().set("page",(e?.page??0).toString()).set("size",(e?.size??20).toString());return e?.sort&&(t=t.set("sort",e.sort)),t}createEmptyPageResponse(){return{content:[],totalElements:0,totalPages:0,currentPage:0,size:20,first:!0,last:!0,empty:!0}}setLoadingState(e,t=!0){this._state.update(i=>F(w({},i),{isLoading:e,error:t?null:i.error}))}handleError(e,t,i,o=!1){if(o&&t.status===404)return W(i);console.error(`Error ${e}:`,t);let p=this.mapErrorMessage(e,t);return this._state.update(I=>F(w({},I),{error:p})),W(i)}mapErrorMessage(e,t){let i=t;return i.status===404?e.includes("loading article")&&!e.includes("articles")?"Article not found":`Failed to ${e}`:i.status===403?"Access denied for this operation":i.status&&i.status>=400&&i.status<500?"Invalid request. Please check your input.":i.status&&i.status>=500?"Server error. Please try again later.":`Failed to ${e}`}static \u0275fac=function(t){return new(t||n)};static \u0275prov=ge({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var M=function(n){return n.TEXT="TEXT",n.QUOTE="QUOTE",n.IMAGE="IMAGE",n.AUDIO="AUDIO",n.VIDEO="VIDEO",n.GALLERY="GALLERY",n}(M||{});var ze=(()=>{class n{http=D(ce);destroyRef=D(U);articleService=D(_e);baseUrl=`${oe.apiUrl}/cms/elements`;_state=_({isLoading:!1,error:null,lastOperation:null});_skipArticleReload=_(!1);isLoading=C(()=>this._state().isLoading);error=C(()=>this._state().error);lastOperation=C(()=>this._state().lastOperation);addElement(e){if(!this.validateElementContent(e.type,e.content))throw new Error("Invalid element content");return this.setLoadingState(!0),this.http.post(this.baseUrl,e).pipe(V(this.destroyRef),Y(()=>{this._state.update(t=>F(w({},t),{lastOperation:"add"})),this.articleService.loadArticleById(e.articleId)}),j(t=>{throw console.error("Error adding element:",t),t}),z(()=>this.setLoadingState(!1)))}updateElement(e,t){return this.setLoadingState(!0),this.http.put(`${this.baseUrl}/${e}`,t).pipe(V(this.destroyRef),Y(()=>{this._state.update(i=>F(w({},i),{lastOperation:"update"})),this.refreshArticleAfterElementChange()}),j(i=>{throw console.error("Error updating element:",i),i}),z(()=>this.setLoadingState(!1)))}deleteElement(e,t){return this.setLoadingState(!0),this.http.delete(`${this.baseUrl}/${e}`).pipe(V(this.destroyRef),Y(()=>{this._state.update(i=>F(w({},i),{lastOperation:"delete"})),this.articleService.loadArticleById(t)}),j(i=>{throw console.error("Error deleting element:",i),i}),z(()=>this.setLoadingState(!1)))}reorderElements(e){if(!this.validatePositionSequence(e.elements))throw new Error("Invalid position sequence");return this.setLoadingState(!0),this.http.put(`${this.baseUrl}/reorder`,e).pipe(V(this.destroyRef),Y(()=>{this._state.update(t=>F(w({},t),{lastOperation:"reorder"})),this.articleService.loadArticleById(e.articleId)}),j(t=>{throw console.error("Error reordering elements:",t),t}),z(()=>this.setLoadingState(!1)))}buildTextContent(e,t){return w({text:e},t&&{formatting:t})}buildQuoteContent(e,t,i){return w(w({text:e},t&&{author:t}),i&&{source:i})}buildImageContent(e,t,i){return w(w({imageId:e},t&&{caption:t}),i&&{alt:i})}buildAudioContent(e,t){return w({recordingId:e},t&&{caption:t})}buildVideoContent(e,t,i){return w(w({url:e},t&&{caption:t}),i&&{thumbnailUrl:i})}buildGalleryContent(e,t){return w({images:[...e]},t&&{layout:t})}validateElementContent(e,t){switch(e){case M.TEXT:return this.validateTextContent(t);case M.QUOTE:return this.validateQuoteContent(t);case M.IMAGE:return this.validateImageContent(t);case M.AUDIO:return this.validateAudioContent(t);case M.VIDEO:return this.validateVideoContent(t);case M.GALLERY:return this.validateGalleryContent(t);default:return!1}}clearError(){this._state.update(e=>F(w({},e),{error:null}))}setSkipArticleReload(e){this._skipArticleReload.set(e)}validateTextContent(e){let t=e.text;if(typeof t=="string")return!0;
1if(typeof t=="object"&&t!==null&&!Array.isArray(t)){let o=Object.values(t);return o.length>0&&o.every(d=>typeof d=="string")}return!1}validateQuoteContent(e){let t=e.text;return typeof t!="object"||t===null||Array.isArray(t)?!1:Object.values(t).some(d=>typeof d=="string"&&d.trim().length>0)}validateImageContent(e){let t=e.imageId;return t==null||t===0||typeof t=="number"&&t>0}validateAudioContent(e){return typeof e.recordingId=="number"&&e.recordingId>0}validateVideoContent(e){return typeof e.url=="string"&&e.url.length>0}validateGalleryContent(e){return Array.isArray(e.images)&&e.images.length>0}validatePositionSequence(e){if(e.length===0)return!1;let t=[...e].sort((i,o)=>i.newPosition-o.newPosition);for(let i=0;i<t.length;i++)if(t[i].newPosition!==i)return!1;return!0}refreshArticleAfterElementChange(){if(this._skipArticleReload())return;let e=this.articleService.currentArticle();e&&this.articleService.loadArticleById(e.id)}setLoadingState(e){this._state.update(t=>F(w({},t),{isLoading:e}))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=ge({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Ke=(()=>{class n{sanitizer=D(ve);transform(e){return e&&this.sanitizer.sanitize(Se.HTML,e)||""}static \u0275fac=function(t){return new(t||n)};static \u0275pipe=Ve({name:"safeHtml",type:n,pure:!0})}return n})();function ot(n,u){if(n&1&&(l(0,"div"),y(1,"jw-image-display",6,0),h(3,"translate"),s()),n&2){let e=ae(2),t=a(2);K("px-16",!e.isHorizontal())("pe-16",e.isHorizontal()),r(),b("imageId",t._imageId())("alt",f(3,7,"cms.textElement.image"))("showDescription",!0)}}function rt(n,u){if(n&1&&(l(0,"div",1)(1,"div",3),x(2,ot,4,9,"div",4),s(),y(3,"div",5),h(4,"safeHtml"),s()),n&2){let e=a();r(2),v(e._imageId()?2:-1),r(),b("innerHTML",f(4,2,e.currentText()),Te)}}function at(n,u){if(n&1&&(l(0,"div",10),g(1),s()),n&2){let e=a(2);r(),S(" ",e.validationError()," ")}}function lt(n,u){n&1&&y(0,"span",13)}function st(n,u){if(n&1){let e=A();l(0,"div",2)(1,"div",7)(2,"jw-image-upload",8),E("fileData",function(i){c(e);let o=a();return m(o.onImageSelected(i))})("descriptionsData",function(i){c(e);let o=a();return m(o.onImageDescriptionsChange(i))}),s(),l(3,"jw-multi-language-rich-text-input",9),de("ngModelChange",function(i){c(e);let o=a();return se(o._textContentValues,i)||(o._textContentValues=i),m(i)}),E("valueChange",function(i){c(e);let o=a();return m(o.onTextChange(i))}),s(),x(4,at,2,1,"div",10),s(),l(5,"div",11)(6,"button",12),E("click",function(){c(e);let i=a();return m(i.onSave())}),x(7,lt,1,0,"span",13),g(8),h(9,"translate"),s(),l(10,"button",14),E("click",function(){c(e);let i=a();return m(i.onCancel())}),g(11),h(12,"translate"),s()()()}if(n&2){let e=a();r(2),b("image",e.currentImage()),r(),b("required",!0),le("ngModel",e._textContentValues),r(),v(e.validationError()?4:-1),r(2),b("disabled",!e.isValid()||e.isSaving()),r(),v(e.isSaving()?7:-1),r(),S(" ",f(9,9,"buttons.save")," "),r(2),b("disabled",e.isSaving()),r(),S(" ",f(12,11,"buttons.cancel")," ")}}var We=(()=>{class n{element=T.required();editMode=T(!1);publicMode=T(!1);save=P();cancelEdit=P();languageService=D(ue);imageService=D(Z);destroyRef=D(U);_textContent=_(new Map);_textContentValues=_([]);_imageId=_(null);_fullImage=_(null);_imageDescriptions=_([]);_pendingFileData=_(null);_isSaving=_(!1);_validationError=_(null);currentLanguage=C(()=>this.languageService.getCurrentLanguage());currentText=C(()=>{let e=this.currentLanguage();return this._textContent().get(e)||""});currentImage=C(()=>this._fullImage());isValid=C(()=>{let e=this._textContent();return Array.from(e.values()).some(t=>t?.trim().length>0)});isSaving=this._isSaving.asReadonly();validationError=this._validationError.asReadonly();constructor(){N(()=>{let e=this.element(),t=this.editMode();e&&!t&&this.initializeFromElement(e)})}ngOnInit(){this.initializeFromElement(this.element())}initializeFromElement(e){let t=new Map(Object.entries(e.text||{}));this._textContent.set(t);let i=Array.from(t.entries()).map(([d,p])=>({language:d,value:p}));this._textContentValues.set(i);let o=e.imageId||null;this._imageId.set(o),o?(console.log("CMS Text Element: Loading image with ID:",o),(this.publicMode()?this.imageService.getImagePublic(o):this.imageService.getImageWithUrls(o)).pipe(V(this.destroyRef)).subscribe({next:I=>{this._fullImage.set(I)},error:I=>{console.error("Failed to load image data:",I),this._fullImage.set(null),this._imageDescriptions.set([])}})):(this._fullImage.set(null),this._imageDescriptions.set([])),this._pendingFileData.set(null),this._isSaving.set(!1),this._val
1idationError.set(null)}onTextChange(e){let t=new Map;e.forEach(i=>t.set(i.language,i.value)),this._textContent.set(t),this._textContentValues.set(e)}onImageSelected(e){e?(this._pendingFileData.set(e),this._validationError.set(null),this._fullImage.set(null)):(this._pendingFileData.set(null),this._imageId.set(null),this._fullImage.set(null),this._imageDescriptions.set([]))}onImageDescriptionsChange(e){console.log("CMS Text Element: Received descriptions from image-upload:",e),this._imageDescriptions.set(e)}onSave(){if(!this.isValid())return;this._isSaving.set(!0),this._validationError.set(null);let e=this._pendingFileData(),t=this._imageDescriptions(),i=this._imageId();if(console.log("CMS Text Element: Saving with descriptions:",t),e){let o={file:e.file};this.imageService.uploadImage(o).subscribe({next:d=>{d.success&&d.image?(this._imageId.set(d.image.id),this._pendingFileData.set(null),t.length>0?this.updateImageDescriptions(d.image.id,d.image,t):this.emitSaveWithCurrentState()):(this._isSaving.set(!1),this._validationError.set("Failed to upload image"))},error:d=>{console.error("Image upload failed:",d),this._isSaving.set(!1),this._validationError.set("Failed to upload image")}})}else if(i&&t.length>0){let o=this._fullImage();o?this.updateImageDescriptions(i,o,t):this.emitSaveWithCurrentState()}else this.emitSaveWithCurrentState()}updateImageDescriptions(e,t,i){let o=i.filter(p=>p.value.trim().length>0).map(p=>({language:p.language,description:p.value})),d={imageKey:t.imageKey,thumbnailXSKey:t.thumbnailXSKey,thumbnailMDKey:t.thumbnailMDKey,thumbnailLGKey:t.thumbnailLGKey,width:t.width,height:t.height,mimeType:t.mimeType,translations:o};this.imageService.updateImage(e,d).subscribe({next:p=>{this._fullImage.set(p),this.emitSaveWithCurrentState()},error:p=>{console.error("Failed to update image descriptions:",p),this.emitSaveWithCurrentState()}})}emitSaveWithCurrentState(){let e=Object.fromEntries(this._textContent()),t={content:w({text:e,formatting:"html"},this._imageId()&&{imageId:this._imageId()})};this.save.emit(t)}onCancel(){this.initializeFromElement(this.element()),this.cancelEdit.emit()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-cms-text-element"]],inputs:{element:[1,"element"],editMode:[1,"editMode"],publicMode:[1,"publicMode"]},outputs:{save:"save",cancelEdit:"cancelEdit"},decls:2,vars:2,consts:[["image",""],[1,"cms-text-element-view","flex"],[1,"card","bg-base-100","shadow-sm"],[1,"w-1/2"],[3,"px-16","pe-16"],[1,"prose","w-1/2","pr-16",3,"innerHTML"],["size","md",1,"max-w-full","w-full",3,"imageId","alt","showDescription"],[1,"cms-text-element-edit","card-body","grid","grid-cols-1","gap-6","lg:grid-cols-[3fr_7fr]"],[3,"fileData","descriptionsData","image"],["labelKey","cms.textElement.content",3,"ngModelChange","valueChange","required","ngModel"],[1,"alert","alert-error","mt-2"],[1,"m-4","flex","justify-end","gap-3"],["type","button",1,"btn","btn-primary",3,"click","disabled"],[1,"loading","loading-spinner","loading-sm"],["type","button",1,"btn","btn-outline",3,"click","disabled"]],template:function(t,i){t&1&&(x(0,rt,5,4,"div",1),x(1,st,13,13,"div",2)),t&2&&(v(i.editMode()?-1:0),r(),v(i.editMode()?1:-1))},dependencies:[B,Q,me,Ee,pe,O,$,Be,te,Ke,ee],encapsulation:2,changeDetection:0})}return n})();function dt(n,u){if(n&1&&(l(0,"div"),y(1,"jw-image-display",5,0),s()),n&2){let e=ae(2),t=a(2);K("px-32",!e.isHorizontal())("pe-16",e.isHorizontal()),r(),b("imageId",t._imageId())("showDescription",!0)}}function ct(n,u){if(n&1&&(l(0,"div",1)(1,"div",3),x(2,dt,3,6,"div",4),s(),y(3,"div",3),s()),n&2){let e=a();r(2),v(e._imageId()?2:-1)}}function mt(n,u){if(n&1&&(l(0,"div",8),g(1),s()),n&2){let e=a(2);r(),S(" ",e.validationError()," ")}}function pt(n,u){n&1&&y(0,"span",11)}function ut(n,u){if(n&1){let e=A();l(0,"div",2)(1,"div",6)(2,"jw-image-upload",7),E("fileData",function(i){c(e);let o=a();return m(o.onImageSelected(i))})("descriptionsData",function(i){c(e);let o=a();return m(o.onImageDescriptionsChange(i))})("altTextsData",function(i){c(e);let o=a();return m(o.onAltTextsChange(i))}),s(),x(3,mt,2,1,"div",8),s(),l(4,"div",9)(5,"button",10),E("click",function(){c(e);let i=a();return m(i.onSave())}),x(6,pt,1,0,"span",11),g(7),h(8,"translate"),s(),l(9,"button",12),E("click",function(){c(e);let i=a();return m(i.onCancel())}),g(10),h(11,"translate"),s()()()}if(n&2){let e=a();r(2),b("image",e.currentImage()),r(),v(e.validationError()?3:-1),r(2),b("disabled",!e.isValid()||e.isSaving()),r(),v(e.isSaving()?6:-1),r(),S(" ",f(8,7,"buttons.save")," "),r(2),b("disabled",e.isSaving()),r(),S(" ",f(11,9,"buttons.cancel")," ")}}
1var He=(()=>{class n{element=T.required();editMode=T(!1);publicMode=T(!1);articleId=T();save=P();create=P();cancelEdit=P();imageService=D(Z);destroyRef=D(U);_imageId=_(null);_fullImage=_(null);_imageDescriptions=_([]);_altTexts=_([]);_pendingFileData=_(null);_isSaving=_(!1);_validationError=_(null);currentImage=C(()=>this._fullImage());isCreationMode=C(()=>{let e=this.element().id;return!e||typeof e=="string"});isValid=C(()=>{let e=this._imageId(),t=this._pendingFileData();return e!==null&&e>0||t!==null});isSaving=this._isSaving.asReadonly();validationError=this._validationError.asReadonly();constructor(){N(()=>{let e=this.element(),t=this.editMode();e&&!t&&this.initializeFromElement(e)})}ngOnInit(){this.initializeFromElement(this.element())}initializeFromElement(e){let t=e.imageId||null;this._imageId.set(t),t&&t>0?(console.log("CMS Image Element: Loading image with ID:",t),(this.publicMode()?this.imageService.getImagePublic(t):this.imageService.getImageWithUrls(t)).pipe(V(this.destroyRef)).subscribe({next:d=>{this._fullImage.set(d)},error:d=>{console.error("Failed to load image data:",d),this._fullImage.set(null),this._imageDescriptions.set([])}})):(this._fullImage.set(null),this._imageDescriptions.set([])),this._pendingFileData.set(null),this._isSaving.set(!1),this._validationError.set(null)}onImageSelected(e){e?(this._pendingFileData.set(e),this._validationError.set(null),this._fullImage.set(null)):(this._pendingFileData.set(null),this._imageId.set(null),this._fullImage.set(null),this._imageDescriptions.set([]))}onImageDescriptionsChange(e){console.log("CMS Image Element: Received descriptions from image-upload:",e),this._imageDescriptions.set(e)}onAltTextsChange(e){console.log("CMS Image Element: Received alt texts from image-upload:",e),this._altTexts.set(e)}onSave(){if(!this.isValid())return;this._isSaving.set(!0),this._validationError.set(null);let e=this._pendingFileData(),t=this._imageDescriptions(),i=this._altTexts(),o=this._imageId();if(console.log("CMS Image Element: Saving with descriptions:",t,"and alt texts:",i),e){let d={file:e.file,descriptions:t,altTexts:i};this.imageService.uploadImage(d).subscribe({next:p=>{p.success&&p.image?(this._imageId.set(p.image.id),this._pendingFileData.set(null),this.emitSaveWithCurrentState()):(this._isSaving.set(!1),this._validationError.set("Failed to upload image"))},error:p=>{console.error("Image upload failed:",p),this._isSaving.set(!1),this._validationError.set("Failed to upload image")}})}else if(o&&(t.length>0||i.length>0)){let d=this._fullImage();d?this.updateImageDescriptions(o,d,t,i):this.emitSaveWithCurrentState()}else this.emitSaveWithCurrentState()}updateImageDescriptions(e,t,i,o){let d=new Map;i.filter(R=>R.value.trim().length>0).forEach(R=>{d.set(R.language,F(w({},d.get(R.language)||{}),{description:R.value}))}),o.filter(R=>R.value.trim().length>0).forEach(R=>{d.set(R.language,F(w({},d.get(R.language)||{}),{altText:R.value}))});let p=Array.from(d.entries()).map(([R,X])=>({language:R,description:X.description,altText:X.altText})),I={imageKey:t.imageKey,thumbnailXSKey:t.thumbnailXSKey,thumbnailMDKey:t.thumbnailMDKey,thumbnailLGKey:t.thumbnailLGKey,width:t.width,height:t.height,mimeType:t.mimeType,translations:p};this.imageService.updateImage(e,I).subscribe({next:R=>{this._fullImage.set(R),this.emitSaveWithCurrentState()},error:R=>{console.error("Failed to update image descriptions and alt texts:",R),this.emitSaveWithCurrentState()}})}emitSaveWithCurrentState(){if(this.isCreationMode()){let e=this.articleId();if(!e){console.error("Cannot create element without articleId"),this._isSaving.set(!1),this._validationError.set("Article ID is required for creation");return}let t={articleId:e,type:M.IMAGE,content:{imageId:this._imageId()}};this.create.emit(t)}else{let e={content:{imageId:this._imageId()}};this.save.emit(e)}}onCancel(){this.initializeFromElement(this.element()),this.cancelEdit.emit()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-cms-image-element"]],inputs:{element:[1,"element"],editMode:[1,"editMode"],publicMode:[1,"publicMode"],articleId:[1,"articleId"]},outputs:{save:"save",create:"create",cancelEdit:"cancelEdit"},decls:2,vars:2,consts:[["image",""],[1,"cms-image-element-view"],[1,"card","bg-base-100","
1shadow-sm"],[1,"w-1/2"],[3,"px-32","pe-16"],["size","md",1,"max-w-full","w-full",3,"imageId","showDescription"],[1,"cms-image-element-edit","card-body"],[3,"fileData","descriptionsData","altTextsData","image"],[1,"alert","alert-error","mt-2"],[1,"m-4","flex","justify-end","gap-3"],["type","button",1,"btn","btn-primary",3,"click","disabled"],[1,"loading","loading-spinner","loading-sm"],["type","button",1,"btn","btn-outline",3,"click","disabled"]],template:function(t,i){t&1&&(x(0,ct,4,1,"div",1),x(1,ut,12,11,"div",2)),t&2&&(v(i.editMode()?-1:0),r(),v(i.editMode()?1:-1))},dependencies:[B,Q,O,$,te,ee],encapsulation:2,changeDetection:0})}return n})();var _t=(n,u)=>u.id;function gt(n,u){if(n&1&&(l(0,"label",1)(1,"span",4),g(2),s()()),n&2){let e=a();b("for",e.inputId()),r(2),L(e.label())}}function ht(n,u){if(n&1){let e=A();l(0,"div",3)(1,"span"),g(2),s(),l(3,"button",5),h(4,"translate"),E("click",function(){c(e);let i=a();return m(i.onClear())}),g(5," \u2715 "),s()()}if(n&2){let e=u;r(2),J("",e.firstName," ",e.lastName),r(),q("aria-label",f(4,3,"cms.personAutocomplete.clear"))}}function ft(n,u){n&1&&(l(0,"div",7),y(1,"span",10),s())}function Ct(n,u){if(n&1){let e=A();l(0,"li",11)(1,"button",12),E("mousedown",function(i){let o=c(e).$implicit,d=a(3);return i.preventDefault(),m(d.onSelect(o))}),g(2),s()()}if(n&2){let e=u.$implicit,t=u.$index,i=a(3);r(),K("bg-base-200",i.activeOptionIndex()===t),b("id",i.optionId(e)),q("aria-selected",i.activeOptionIndex()===t),r(),J(" ",e.firstName," ",e.lastName," ")}}function xt(n,u){if(n&1&&(l(0,"ul",8),ie(1,Ct,3,6,"li",11,_t),s()),n&2){let e=a(2);b("id",e.inputId()+"-listbox"),r(),ne(e.results())}}function vt(n,u){n&1&&(l(0,"div",9),g(1),h(2,"translate"),s()),n&2&&(r(),S(" ",f(2,1,"cms.personAutocomplete.noResults")," "))}function Et(n,u){if(n&1){let e=A();l(0,"input",6),h(1,"translate"),h(2,"translate"),E("input",function(i){c(e);let o=a();return m(o.onInput(i))})("focus",function(){c(e);let i=a();return m(i.onFocus())})("blur",function(){c(e);let i=a();return m(i.onBlur())})("keydown",function(i){c(e);let o=a();return m(o.onKeydown(i))}),s(),x(3,ft,2,0,"div",7),x(4,xt,3,1,"ul",8),x(5,vt,3,3,"div",9)}if(n&2){let e=a();b("id",e.inputId())("placeholder",f(1,10,"cms.personAutocomplete.placeholder"))("value",e.searchQuery()),q("aria-expanded",e.isOpen())("aria-controls",e.isOpen()?e.inputId()+"-listbox":null)("aria-activedescendant",e.activeOptionId())("aria-label",e.label()||f(2,12,"cms.personAutocomplete.placeholder")),r(3),v(e.isLoading()?3:-1),r(),v(e.isOpen()&&e.results().length>0?4:-1),r(),v(e.isOpen()&&!e.isLoading()&&e.results().length===0&&e.searchQuery().length>=2?5:-1)}}var Xe=(()=>{class n{label=T("");initialPersonId=T(null);initialPersonName=T(null);personSelected=P();http=D(ce);destroyRef=D(U);searchQuery=_("");results=_([]);isLoading=_(!1);isOpen=_(!1);selectedPerson=_(null);activeOptionIndex=_(-1);activeOptionId=C(()=>{let e=this.activeOptionIndex(),t=this.results()[e];return this.isOpen()&&t?this.optionId(t):null});inputId=C(()=>`person-autocomplete-${Math.random().toString(36).substring(2,9)}`);searchSubject=new ye;baseUrl=`${oe.apiUrl}/persons`;constructor(){N(()=>{this.syncSelectionFromInputs(this.initialPersonId(),this.initialPersonName())})}ngOnInit(){this.searchSubject.pipe(Ie(300),we(e=>{if(e.length<2)return this.results.set([]),this.isLoading.set(!1),W(null);this.isLoading.set(!0);let t=new xe().set("query",e).set("page","0").set("size","10");return this.http.get(`${this.baseUrl}/search`,{params:t}).pipe(j(()=>W({content:[]})))}),V(this.destroyRef)).subscribe(e=>{this.isLoading.set(!1),e&&(this.results.set(e.content),this.activeOptionIndex.set(e.content.length>0?0:-1),this.isOpen.set(e.content.length>0||this.searchQuery().length>=2))})}onInput(e){let t=e.target.value;this.searchQuery.set(t),this.searchSubject.next(t),t.length<2&&(this.isOpen.set(!1),this.results.set([]),this.activeOptionIndex.set(-1))}onFocus(){this.results().length>0&&(this.isOpen.set(!0),this.activeOptionIndex()<0&&this.activeOptionIndex.set(0))}onBlur(){setTimeout(()=>{this.isOpen.set(!1),this.activeOptionIndex.set(-1)},150)}onKeydown(e){if(e.key==="Escape"){this.isOpen.set(!1),this.activeOptionIndex.set(-1),e.preventDefault();return}let t=this.results();if(t.length!==0){if(e.key==="ArrowDown"){this.isOpen.set(!0),this.activeOptionIndex.update(i=>i<t.length-1?i+1:0),e.preventDefault();return}if(e.key==="ArrowUp"){this.isOpen.set(!0),this.activeOptionIndex.update(i=>i>0?i-1:t.length-1),e.preventDefault();return}if(e.key==="Enter"&&this.isOpen()){let i=t[this.activeOptionIndex()];i&&(this.onSelect(i),e.preventDefault())}}}onSelect(e){let t={id:e.id,firstName:e.firstName,lastName:e.lastName};this.selectedPerson.set(t),this.isOpen.set(!1),this.results.set([]),this.activeOptionIndex.set(-1),this.searchQuery.set(""),this.personSelected.emit(t)}onClear(){this.selectedPerson.set(null),this.searchQuery.set(""),this.results.set([]),this.activeOptionIndex.set(-1),this.isOpen.set(!1),this.personSelected.emit(null)}optionId(e){return`${this.inputId()}-option-${e.id}`}syncSelectionFromInputs(e,t){if(e===null){this.selectedPerson.set(null);return}let i=t?t.split(" "):[];this.selectedPerson.set({id:e,firstName:i[0]??"",lastName:i.slice(1).join(" ")??""})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-person-autocomplete"]],inputs:{label:[1,"label"],initialPersonId:[1,"initialPersonId"],initialPersonName:[1,"initialPersonName"]},outputs:{personSelected:"personSelected"},decls:5,vars:2,consts:[[1,"form-control","w-full"],[1,"label",3,"for"],[1,"relative"],[1,"input","input-bordered","flex","h-12","items-center","justify-between","gap-2"],[1,"label-text"],["type","button",1,"btn","btn-xs","btn-ghost",3,"click"],["type","text","autocomplete","off","role","combobox","aria-autocomplete","list",1,"input","input-bordered","w-full",3,"input","focus","blur","keydown","i
1d","placeholder","value"],[1,"pointer-events-none","absolute","top-1/2","right-3","-translate-y-1/2"],["role","listbox",1,"bg-base-100","border-base-300","rounded-box","absolute","z-50","mt-1","max-h-60","w-full","overflow-y-auto","border","shadow-lg",3,"id"],[1,"bg-base-100","border-base-300","rounded-box","text-base-content/60","absolute","z-50","mt-1","w-full","border","p-3","text-sm","shadow-lg"],[1,"loading","loading-spinner","loading-sm"],["role","presentation"],["type","button","role","option",1,"hover:bg-base-200","w-full","px-4","py-2","text-left",3,"mousedown","id"]],template:function(t,i){if(t&1&&(l(0,"div",0),x(1,gt,3,2,"label",1),l(2,"div",2),x(3,ht,6,5,"div",3)(4,Et,6,14),s()()),t&2){let o;r(),v(i.label()?1:-1),r(2),v((o=i.selectedPerson())?3:4,o)}},dependencies:[B,O,$],encapsulation:2,changeDetection:0})}return n})();function bt(n,u){if(n&1&&(l(0,"div"),y(1,"jw-image-display",9,0),h(3,"translate"),s()),n&2){let e=ae(2),t=a(2);K("px-16",!e.isHorizontal())("pe-16",e.isHorizontal()),r(),b("imageId",t._imageId())("alt",f(3,7,"cms.quoteElement.image"))("showDescription",!0)}}function yt(n,u){if(n&1&&(l(0,"p",8),g(1),s()),n&2){let e=a(2);r(),J(" (",e.element().personFirstName," ",e.element().personLastName,") ")}}function It(n,u){if(n&1&&(l(0,"div",1)(1,"div",3),x(2,bt,4,9,"div",4),s(),l(3,"div",5)(4,"div",3)(5,"blockquote",6)(6,"p",7),g(7),s(),x(8,yt,2,2,"p",8),s()()()()),n&2){let e=a();r(2),v(e._imageId()?2:-1),r(5),L(e.currentText()),r(),v(e.element().personFirstName&&e.element().personLastName?8:-1)}}function wt(n,u){if(n&1&&(l(0,"div",15),g(1),s()),n&2){let e=a(2);r(),S(" ",e.validationError()," ")}}function St(n,u){n&1&&y(0,"span",18)}function Tt(n,u){if(n&1){let e=A();l(0,"div",2)(1,"div",10)(2,"jw-image-upload",11),E("fileData",function(i){c(e);let o=a();return m(o.onImageSelected(i))})("descriptionsData",function(i){c(e);let o=a();return m(o.onImageDescriptionsChange(i))}),s(),l(3,"div")(4,"jw-multi-language-textarea",12),de("ngModelChange",function(i){c(e);let o=a();return se(o._textContentValues,i)||(o._textContentValues=i),m(i)}),E("valueChange",function(i){c(e);let o=a();return m(o.onTextChange(i))}),s(),l(5,"div",13)(6,"jw-person-autocomplete",14),h(7,"translate"),E("personSelected",function(i){c(e);let o=a();return m(o.onPersonSelected(i))}),s()(),x(8,wt,2,1,"div",15),s()(),l(9,"div",16)(10,"button",17),E("click",function(){c(e);let i=a();return m(i.onSave())}),x(11,St,1,0,"span",18),g(12),h(13,"translate"),s(),l(14,"button",19),E("click",function(){c(e);let i=a();return m(i.onCancel())}),g(15),h(16,"translate"),s()()()}if(n&2){let e=a();r(2),b("image",e.currentImage()),r(2),b("required",!0)("rows",4),le("ngModel",e._textContentValues),r(2),b("label",f(7,13,"cms.personAutocomplete.label"))("initialPersonId",e._selectedPersonId())("initialPersonName",e.selectedPersonName()),r(2),v(e.validationError()?8:-1),r(2),b("disabled",!e.isValid()||e.isSaving()),r(),v(e.isSaving()?11:-1),r(),S(" ",f(13,15,"buttons.save")," "),r(2),b("disabled",e.isSaving()),r(),S(" ",f(16,17,"buttons.cancel")," ")}}var Ye=(()=>{class n{element=T.required();isEditMode=T(!1);publicMode=T(!1);articleId=T();save=P();create=P();cancelEdit=P();languageService=D(ue);imageService=D(Z);destroyRef=D(U);_textContent=_(new Map);_textContentValues=_([]);_imageId=_(null);_fullImage=_(null);_imageDescriptions=_([]);_pendingFileData=_(null);_selectedPersonId=_(null);_selectedPersonFirstName=_(null);_selectedPersonLastName=_(null);selectedPersonName=C(()=>{let e=this._selectedPersonFirstName(),t=this._selectedPersonLastName();return e&&t?`${e} ${t}`:null});author=_("");source=_("");_isSaving=_(!1);_validationError=_(null);_forceReinit=_(0);isCreationMode=C(()=>typeof this.element().id!="number");currentLanguage=C(()=>this.languageService.getCurrentLanguage());currentText=C(()=>{let e=this.currentLanguage();return this._textContent().get(e)||""});currentImage=C(()=>this._fullImage());isValid=C(()=>{let e=this._textContent();return Array.from(e.values()).some(t=>t?.trim().length>0)});isSaving=this._isSaving.asReadonly();
1validationError=this._validationError.asReadonly();textContentValues=C(()=>this._textContentValues());textContentMap=C(()=>this._textContent());constructor(){N(()=>{let e=this.element(),t=this.isEditMode(),i=this._forceReinit();e&&(!t||i>0)&&(this.initializeFromElement(e),i>0&&this._forceReinit.set(0))})}ngOnInit(){this.initializeFromElement(this.element())}initializeFromElement(e){let t=new Map(Object.entries(e.text||{}));this._textContent.set(t);let i=Array.from(t.entries()).map(([d,p])=>({language:d,value:p}));this._textContentValues.set(i),this.author.set(e.author||""),this.source.set(e.source||""),this._selectedPersonId.set(e.personId??null),this._selectedPersonFirstName.set(e.personFirstName??null),this._selectedPersonLastName.set(e.personLastName??null);let o=e.imageId||null;this._imageId.set(o),o?(this.publicMode()?this.imageService.getImagePublic(o):this.imageService.getImageWithUrls(o)).pipe(V(this.destroyRef)).subscribe({next:I=>{this._fullImage.set(I)},error:I=>{console.error("CMS Quote Element: Failed to load image data:",I),this._fullImage.set(null),this._imageDescriptions.set([])}}):(this._fullImage.set(null),this._imageDescriptions.set([])),this._pendingFileData.set(null),this._isSaving.set(!1),this._validationError.set(null),!this.isEditMode()&&o&&setTimeout(()=>this.verifyImageDataLoaded(),100)}onPersonSelected(e){e?(this._selectedPersonId.set(e.id),this._selectedPersonFirstName.set(e.firstName),this._selectedPersonLastName.set(e.lastName)):(this._selectedPersonId.set(null),this._selectedPersonFirstName.set(null),this._selectedPersonLastName.set(null))}onTextChange(e){let t=new Map;e.forEach(i=>t.set(i.language,i.value)),this._textContent.set(t),this._textContentValues.set(e)}onImageSelected(e){e?(this._pendingFileData.set(e),this._validationError.set(null),this._fullImage.set(null)):(this._pendingFileData.set(null),this._imageId.set(null),this._fullImage.set(null),this._imageDescriptions.set([]))}onImageDescriptionsChange(e){this._imageDescriptions.set(e)}onSave(){if(!this.isValid()){this._validationError.set("Quote text is required in at least one language");return}if(this.isCreationMode()&&!this.articleId()){this._validationError.set("Article ID is required for creating new elements");return}this._isSaving.set(!0),this._validationError.set(null);let e=this._pendingFileData(),t=this._imageDescriptions(),i=this._imageId();if(e){let o={file:e.file};this.imageService.uploadImage(o).subscribe({next:d=>{d.success&&d.image?(this._imageId.set(d.image.id),this._pendingFileData.set(null),t.length>0?this.updateImageDescriptions(d.image.id,d.image,t):this.emitSaveWithCurrentState()):(this._isSaving.set(!1),this._validationError.set("Failed to upload image"))},error:d=>{console.error("Image upload failed:",d),this._isSaving.set(!1),this._validationError.set("Failed to upload image")}})}else if(i&&t.length>0){let o=this._fullImage();o?this.updateImageDescriptions(i,o,t):this.emitSaveWithCurrentState()}else this.emitSaveWithCurrentState()}updateImageDescriptions(e,t,i){let o=i.filter(p=>p.value.trim().length>0).map(p=>({language:p.language,description:p.value})),d={imageKey:t.imageKey,thumbnailXSKey:t.thumbnailXSKey,thumbnailMDKey:t.thumbnailMDKey,thumbnailLGKey:t.thumbnailLGKey,width:t.width,height:t.height,mimeType:t.mimeType,translations:o};this.imageService.updateImage(e,d).subscribe({next:p=>{this._fullImage.set(p),this.emitSaveWithCurrentState()},error:p=>{console.error("Failed to update image descriptions:",p),this.emitSaveWithCurrentState()}})}emitSaveWithCurrentState(){let e=Object.fromEntries(this._textContent());if(this.isCreationMode()){let t={articleId:this.articleId(),type:M.QUOTE,content:w(w(w(w({text:e},this.author()&&{author:this.author()}),this.source()&&{source:this.source()}),this._imageId()&&{imageId:this._imageId()}),this._selectedPersonId()!==null&&{personId:this._selectedPersonId()})};this.create.emit(t)}else{let t={content:w(w(w(w({text:e},this.author()&&{author:this.author()}),this.source()&&{source:this.source()}),this._imageId()&&{imageId:this._imageId()}),this._selectedPersonId()!==null&&{personId:this._selectedPersonId()})};this.save.emit(t)}}onCancel(){this._forceReinit.update(e=>e+1),this.cancelEdit.emit()}verifyImageDataLoaded(){let e=this._imageId(),t=this._fullImage();e&&!t&&(console.warn("CMS Quote Element: imageId present but fullImage not loaded",{imageId:e,elementId:this.element
1().id}),(this.publicMode()?this.imageService.getImagePublic(e):this.imageService.getImageWithUrls(e)).pipe(V(this.destroyRef)).subscribe({next:d=>{console.log("CMS Quote Element: Image data loaded on retry",d),this._fullImage.set(d)},error:d=>{console.error("CMS Quote Element: Failed to load image data on retry:",d)}}))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-cms-quote-element"]],inputs:{element:[1,"element"],isEditMode:[1,"isEditMode"],publicMode:[1,"publicMode"],articleId:[1,"articleId"]},outputs:{save:"save",create:"create",cancelEdit:"cancelEdit"},decls:2,vars:2,consts:[["image",""],[1,"cms-quote-element-view","flex","gap-4"],[1,"card","bg-base-100","shadow-sm"],[1,"w-1/2"],[3,"px-16","pe-16"],[1,"quote-container","flex","w-1/2","items-center","justify-center"],[1,"text-primary","my-4","pl-4"],[1,"quote-text","text-lg"],[1,"quote-text","mt-1","text-lg"],["size","md",1,"w-full","max-w-full",3,"imageId","alt","showDescription"],[1,"cms-quote-element-edit","card-body","grid","grid-cols-1","gap-6","lg:grid-cols-[3fr_7fr]"],[3,"fileData","descriptionsData","image"],["labelKey","cms.quoteElement.text",3,"ngModelChange","valueChange","required","rows","ngModel"],[1,"mt-4"],[3,"personSelected","label","initialPersonId","initialPersonName"],[1,"alert","alert-error","mt-2"],[1,"m-4","flex","justify-end","gap-3"],["data-testid","save-button","type","button",1,"btn","btn-primary",3,"click","disabled"],[1,"loading","loading-spinner","loading-sm"],["data-testid","cancel-button","type","button",1,"btn","btn-outline",3,"click","disabled"]],template:function(t,i){t&1&&(x(0,It,9,3,"div",1),x(1,Tt,17,19,"div",2)),t&2&&(v(i.isEditMode()?-1:0),r(),v(i.isEditMode()?1:-1))},dependencies:[B,Q,me,Ee,pe,O,$,$e,te,ee,Xe],encapsulation:2,changeDetection:0})}return n})();function Dt(n,u){if(n&1&&(l(0,"div",3),y(1,"iframe",5),s()),n&2){let e=a(2);r(),b("src",e.safeEmbedUrl(),be)}}function Vt(n,u){n&1&&(l(0,"div",4)(1,"div",6),y(2,"i",7),l(3,"p",8),g(4),h(5,"translate"),s()()()),n&2&&(r(4),L(f(5,1,"cms.videoElement.noVideo")))}function Mt(n,u){if(n&1&&(l(0,"div",0)(1,"div",2),x(2,Dt,2,1,"div",3)(3,Vt,6,3,"div",4),s()()),n&2){let e=a();r(2),v(e._embedUrl()?2:3)}}function At(n,u){n&1&&(l(0,"div",14)(1,"span",23),y(2,"i",24),g(3),h(4,"translate"),s()()),n&2&&(r(3),S(" ",f(4,1,"cms.videoElement.invalidUrl")," "))}function Rt(n,u){n&1&&g(0," YouTube ")}function Ft(n,u){n&1&&g(0," Vimeo ")}function Pt(n,u){if(n&1&&(l(0,"div",14)(1,"span",25),y(2,"i",26),g(3),h(4,"translate"),x(5,Rt,1,0),x(6,Ft,1,0),s()()),n&2){let e=a(2);r(3),S(" ",f(4,3,"cms.videoElement.detected"),": "),r(2),v(e._videoProvider()==="youtube"?5:-1),r(),v(e._videoProvider()==="vimeo"?6:-1)}}function kt(n,u){if(n&1&&(l(0,"div",17)(1,"div",27)(2,"span",28),g(3),h(4,"translate"),s()(),l(5,"div",29)(6,"div",3),y(7,"iframe",30),s()()()),n&2){let e=a(2);r(3),S(" ",f(4,2,"cms.videoElement.preview")," "),r(4),b("src",e.safeEmbedUrl(),be)}}function Lt(n,u){if(n&1&&(l(0,"div",18),y(1,"i",31),l(2,"span"),g(3),s()()),n&2){let e=a(2);r(3),L(e.validationError())}}function jt(n,u){n&1&&y(0,"span",21)}function Ut(n,u){if(n&1){let e=A();l(0,"div",1)(1,"div",9)(2,"div",10)(3,"label",11)(4,"span",12),g(5),h(6,"translate"),s()(),l(7,"input",13),h(8,"translate"),de("ngModelChange",function(i){c(e);let o=a();return se(o.urlValue,i)||(o.urlValue=i),m(i)}),E("ngModelChange",function(i){c(e);let o=a();return m(o.onUrlChange(i))}),s(),x(9,At,5,3,"div",14),x(10,Pt,7,5,"div",14),l(11,"div",14)(12,"span",15),y(13,"i",16),g(14),h(15,"translate"),s()()(),x(16,kt,8,4,"div",17),x(17,Lt,4,1,"div",18),s(),l(18,"div",19)(19,"button",20),E("click",function(){c(e);let i=a();return m(i.onSave())}),x(20,jt,1,0,"span",21),g(21),h(22,"translate"),s(),l(23,"button",22),E("click",function(){c(e);let i=a();return m(i.onCancel())}),g(24),h(25,"translate"),s()()()}if(n&2){let e=a();r(5),S(" ",f(6,15,"cms.videoElement.url")," * "),r(2),K("input-error",!e._isValidUrl()&&e._url().length>0),le("ngModel",e.urlValue),b("placeholder",f(8,17,"cms.videoElement.urlPlaceholder")),r(2),v(!e._isValidUrl()&&e._url().length>0?9:-1),r(),v(e._isValidUrl()&&e._url().length>0&&e._videoProvider()!=="unknown"?10:-1),r(4),S(" ",f(15,19,"cms.videoElement.supportedPlatforms")," "),r(2),v(e._embedUrl()?16:-1),r(),v(e.validationError()?17:-1),r(2),b("disabled",!e.isValid()||e.isSaving()),r(),v(e.isSaving()?20:-1),r(),S(" ",f(22,21,"buttons.save")," "),r(2),b("disabled",e.isSaving()),r(),S(" ",f(25,23,"buttons.cancel")," ")}}var Je=(()=>{class n{element=T.required();editMode=T(!1);publicMode=T(!1);articleId=T();
1save=P();create=P();cancelEdit=P();sanitizer=D(ve);_url=_("");_isSaving=_(!1);_validationError=_(null);_forceReinit=_(0);isCreationMode=C(()=>{let e=this.element().id;return!e||typeof e=="string"});_videoInfo=C(()=>this.parseVideoUrl(this._url()));_embedUrl=C(()=>this._videoInfo().embedUrl);_videoProvider=C(()=>this._videoInfo().provider);_isValidUrl=C(()=>this._url().trim().length===0?!0:this._videoInfo().videoId!==null);isValid=C(()=>this._url().trim().length>0&&this._isValidUrl());isSaving=this._isSaving.asReadonly();validationError=this._validationError.asReadonly();urlValue="";constructor(){N(()=>{let e=this.element(),t=this.editMode(),i=this._forceReinit();e&&(!t||i>0)&&(this.initializeFromElement(e),i>0&&this._forceReinit.set(0))})}ngOnInit(){this.initializeFromElement(this.element())}initializeFromElement(e){this._url.set(e.url||""),this.urlValue=e.url||"",this._isSaving.set(!1),this._validationError.set(null)}parseVideoUrl(e){let t=e.trim();if(!t)return{provider:"unknown",videoId:null,embedUrl:null};try{let i=[/(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9_-]{11})/,/youtube\.com\/embed\/([a-zA-Z0-9_-]{11})/,/youtube\.com\/v\/([a-zA-Z0-9_-]{11})/];for(let d of i){let p=t.match(d);if(p){let I=p[1];return{provider:"youtube",videoId:I,embedUrl:`https://www.youtube.com/embed/${I}`}}}let o=[/vimeo\.com\/(\d+)/,/player\.vimeo\.com\/video\/(\d+)/];for(let d of o){let p=t.match(d);if(p){let I=p[1];return{provider:"vimeo",videoId:I,embedUrl:`https://player.vimeo.com/video/${I}`}}}return{provider:"unknown",videoId:null,embedUrl:null}}catch(i){return console.error("Error parsing video URL:",i),{provider:"unknown",videoId:null,embedUrl:null}}}safeEmbedUrl(){let e=this._embedUrl();return e?this.sanitizer.bypassSecurityTrustResourceUrl(e):null}onUrlChange(e){this._url.set(e),this._validationError.set(null)}onSave(){if(!this.isValid()){this._validationError.set("Please enter a valid video URL");return}this._isSaving.set(!0),this._validationError.set(null),this._url.set(this.urlValue),this.emitSaveWithCurrentState()}emitSaveWithCurrentState(){if(this.isCreationMode()){let e=this.articleId();if(!e){console.error("Cannot create element without articleId"),this._isSaving.set(!1),this._validationError.set("Article ID is required for creation");return}let t={articleId:e,type:M.VIDEO,content:{url:this._url()}};this.create.emit(t)}else{let e={content:{url:this._url()}};this.save.emit(e)}}onCancel(){this._forceReinit.update(e=>e+1),this.cancelEdit.emit()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-cms-video-element"]],inputs:{element:[1,"element"],editMode:[1,"editMode"],publicMode:[1,"publicMode"],articleId:[1,"articleId"]},outputs:{save:"save",create:"create",cancelEdit:"cancelEdit"},decls:2,vars:2,consts:[[1,"cms-video-element-view"],[1,"card","bg-base-100","shadow-sm"],[1,"mx-auto","w-full","max-w-6xl"],[1,"relative","w-full",2,"padding-bottom","56.25%"],[1,"flex","h-64","items-center","justify-center","rounded-lg","bg-base-200"],["frameborder","0","allow","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share","referrerpolicy","strict-origin-when-cross-origin","allowfullscreen","","title","Embedded video",1,"absolute","left-0","top-0","h-full","w-full","rounded-lg","border-0",3,"src"],[1,"text-center"],[1,"fas","fa-video","mb-2","text-4xl","text-base-content/40"],[1,"text-base-content/60"],[1,"cms-video-element-edit","card-body"],[1,"form-control"],["for","video-url-input",1,"label"],[1,"label-text","font-medium"],["id","video-url-input","type","url",1,"input","input-bordered","w-full",3,"ngModelChange","ngModel","placeholder"],[1,"label"],[1,"label-text-alt","text-base-content/60"],[1,"fas","fa-info-circle","mr-1"],[1,"mt-4"],[1,"alert","alert-error","mt-4"],[1,"m-4","flex","justify-end","gap-3"],["type","button",1,"btn","btn-primary",3,"click","disabled"],[1,"loading","loading-spinner","loading-sm"],["type","button",1,"btn","btn-outline",3,"click","disabled"],[1,"label-text-alt","text-error"],[1,"fas","fa-exclamation-circle","mr-1"],[1,"label-text-alt","text-success","mr-2"],[1,"fas","fa-check-circle","mr-1"],[1,"mb-2"],[1,"text-sm","font-medium"],[1,"mx-auto","w-full","max-w-md"],["frameborder","0","allow","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share","referrerpolicy","strict-origin-when-cross-origin","allowfullscreen","","title","Video preview",1,"absolute","left-0","top-0","h-full","w-full","rounded-lg","border-2","border-base-300",3,"src"],[1,"fas","fa-exclamation-triangle"]],template:function(t,i){t&1&&(x(0,Mt,4,1,"div",0),x(1,Ut,26,25,"div",1)),t&2&&(v(i.editMode()?-1:0),r(),v(i.editMode()?1:-1))},dependencies:[B,Q,ke,me,pe,O,$],encapsulation:2,changeDetection:0})}return n})();function Bt(n,u){if(n&1){let e=A();l(0,"button",12),E("click",function(){c(e);let i=a();return m(i.onContextButtonClick())}),g(1),s()}if(n&2){let e=a();q("aria-label",e.contextButtonAriaLabel()),r(),S(" ",e.contextButtonLabel()," ")}}function $t(n,u){if(n&1&&(l(0,"a",8),g(1," Transkrypcja "),s()),n&2){let e=a();b("href",e.transcriptUrl(),De),q("aria-label",e.transcriptButtonAriaLabel())}}var Ze=(()=>{class n{recordingPlayback=D(qe);router=D(Pe);recording=T.required();context=T.required();recordingTitle=C(()=>Ge(this.recording()));isPlaying=C(()=>this.recordingPlayback.isRecordingPlaying(this.recording().id));playButtonAriaLabel=C(()=>{let e=this.isPlaying()?"Pause":"Play",t=this.recordingTitle();return`${e} ${t}`});contextButtonLabel=C(()=>this.context()==="place"?"Biogram":"Miejsce");shouldShowContextButton=C(()=>{let e=this.recording();return this.context()==="place"?!!e.interviewee:!!e.places&&e.places.length>0});contextButtonAriaLabel=C(()=>{let e=this.recording();return this.context()==="place"&&e.interviewee?`View biography of ${e.interviewee.firstName} ${e.interviewee.lastName}`:this.context()==="person"&&e.places&&e.places.length>0?`View place: ${je(e.places[0],"pl")}`:this.contextButtonLabel()});shouldShowTranscriptButton=C(()=>{let e=this.recording().transcriptFileKey;return!!e&&e.trim().length>0});transcriptUrl=C(()=>`/api/public/transcripts/${this.recording().id}/view`);transcriptButtonAriaLabel=C(()=>`Open transcript of "${this.recordingTitle()}" in new tab`);formattedDuration=C(()=>Oe(this.recording().durationInSeconds));onPlayClick(){this.isPlaying()?this.recordingPlayback.togglePlayback():this.recordingPlayback.playRecording(this.recording().id)}onContextButtonClick(){let e=this.recording();this.context()==="place"&&e.interviewee?this.router.navigate(["/people",e.interviewee.id]):this.context()==="person"&&e.places&&e.places.length>0&&this.router.navigate(["/places",e.places[0].id])}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-related-recording-row"]],inputs:{recording:[1,"recording"],context:[1,"context"]},decls:14,vars:7,consts:[[1,"flex","items-center","justify-between","py-4","border-b","border-base-300"],[1,"flex","items-center","gap-4","flex-1","min-w-0"],["data-testid","play-button",1,"text-4xl","hover:text-gray-700","transition-colors","rounded","cursor-pointer",3,"click"],["aria-hidden","true"],[1,"flex-1","min-w-0"],["data-testid","recording-title",1,"font-medium","text-base","truncate"],[1,"flex","items-center","gap-2","ml-4","shrink-0"],["data-testid","context-button",1,"btn","btn-sm","btn-outline","btn-primary"],["target","_blank","rel","noopener noreferrer","data-testid","transcript-button",1,"btn","btn-sm","btn-outline","btn-primary",3,"href"],["data-testid","duration-display",1,"flex","items-center","gap-1.5","text-sm","text-base-content/70"],["aria-hidden","true","data-testid","clock-icon",1,"fas","fa-clock"],["data-testid","duration-text"],["data-testid","context-button",1,"btn","btn-sm","btn-outline","btn-primary",3,"click"]],template:function(t,i){t&1&&(l(0,"div",0)(1,"div",1)(2,"button",2),E("click",function(){return i.onPlayClick()}),y(3,"i",3),s(),l(4,"div",4)(5,"h4",5),g(6),s()()(),l(7,"div",6),x(8,Bt,2,2,"button",7),x(9,$t,2,2,"a",8),l(10,"div",9),y(11,"i",10),l(12,"span",11),g(13),s()()()()),t&2&&(r(2),q("aria-label",i.playButtonAriaLabel()),r(),fe(i.isPlaying()?"fas fa-pause":"fas fa-play"),r(3),S(" ",i.recordingTitle()," "),r(2),v(i.shouldShowContextButton()?8:-1),r(),v(i.shouldShowTranscriptButton()?9:-1),r(4),L(i.formattedDuration()))},encapsulation:2,changeDetection:0})}return n})();var Ot=()=>[];function Gt(n,u){if(n&1&&y(0,"jw-related-recording-row",2),n&2){let e=a(2);b("recording",e.currentRecording())("context",e.context())}}function Nt(n,u){n&1&&(l(0,"div",3),y(1,"i",4),l(2,"p"),g(3),h(4,"translate"),s()()),n&2&&(r(3),L(f(4,1,"cms.audioElement.recordingLoading")))}function qt(n,u){if(n&1&&(l(0,"div",0),x(1,Gt,1,2,"jw-related-recording-row",2)(2,Nt,5,3,"div",3),s()),n&2){let e=a();r(),v(e.currentRecording()?1:2)}}function zt(n,u){if(n&1&&(l(0,"div",8)(1,"div",6),g(2),h(3,"translate"),s(),y(4,"jw-related-recording-row",2),s()),n&2){let e=a(2);r(2),S(" ",f(3,3,"cms.audioElement.selectedRecording")," "),r(2),b("recording",e.currentRecording())("context",e.context())}}function Kt(n,u){if(n&1&&(l(0,"div",9),y(1,"i",14),l(2,"span"),g(3),s()()),n&2){let e=a(2);r(3),L(e._validationError())}}function Qt(n,u){n&1&&y(0,"span",12)}function Wt(n,u){if(n&1){let e=A();l(0,"div",1)(1,"div",5)(2,"div",6),g(3),h(4,"translate"),s(),l(5,"jw-recording-search",7),E("recordingSelected",function(i){c(e);let o=a();return m(o.onRecordingSelected(i))}),s()(),x(6,zt,5,5,"div",8),x(7,Kt,4,1,"div",9),l(8,"div",10)(9,"button",11),E("click",function(){c(e);let i=a();return m(i.onSave())}),x(10,Qt,1,0,"span",12),g(11),h(12,"translate"),s(),l(13,"button",13),E("click",function(){c(e);let i=a();return m(i.onCancel())}),g(14),h(15,"translate"),s()()()}if(n&2){let e,t,i=a();r(3),S(" ",f(4,12,"cms.audioElement.selectRecording")," * "),r(2),b("placeId",(e=i.cmsArticleService.currentArticle())==null?null:e.placeId)("personId",(t=i.cmsArticleService.currentArticle())==null?null:t.personId)("excludeIds",Re(18,Ot))("searchMode","all")("placeholder","cms.audioElement.searchPlaceholder"),r(),v(i.currentRecording()?6:-1),r(),v(i._validationError()?7:-1),r(2),b("disabled",!i.isValid()||i.isSaving()),r(),v(i.isSaving()?10:-1),r(),S(" ",f(12,14,"buttons.save")," "),r(3),S(" ",f(15,16,"buttons.cancel")," ")}}var et=(()=>{class n{element=T.required();editMode=T(!1);publicMode=T(!1);articleId=T();
1save=P();create=P();cancelEdit=P();recordingService=D(Ue);cmsArticleService=D(_e);destroyRef=D(U);_recordingId=_(null);_fullRecording=_(null);_isSaving=_(!1);_validationError=_(null);currentRecording=C(()=>this._fullRecording());isCreationMode=C(()=>{let e=this.element().id;return!e||typeof e=="string"});context=C(()=>this.cmsArticleService.currentArticle()?.placeId?"place":"person");isValid=C(()=>{let e=this._recordingId();return e!==null&&e>0});isSaving=this._isSaving.asReadonly();validationError=this._validationError.asReadonly();constructor(){N(()=>{let e=this.element(),t=this.editMode();e&&!t&&this.initializeFromElement(e)})}ngOnInit(){this.initializeFromElement(this.element())}initializeFromElement(e){let t=e.recordingId||null;this._recordingId.set(t),e.recording?this._fullRecording.set(e.recording):t&&t>0?this.loadRecording(t):this._fullRecording.set(null),this._isSaving.set(!1),this._validationError.set(null)}loadRecording(e){this.recordingService.loadRecordingByIdPublic(e).pipe(V(this.destroyRef)).subscribe({next:t=>{this._fullRecording.set(t)},error:t=>{console.error("Failed to load recording:",t),this._fullRecording.set(null),this._validationError.set("Failed to load recording")}})}onRecordingSelected(e){this._recordingId.set(e.id),this._fullRecording.set(e),this._validationError.set(null)}onSave(){if(this.isValid())if(this._isSaving.set(!0),this._validationError.set(null),this.isCreationMode()){let e=this.articleId();if(!e){console.error("Cannot create element without articleId"),this._isSaving.set(!1),this._validationError.set("Article ID is required for creation");return}let t={articleId:e,type:M.AUDIO,content:{recordingId:this._recordingId()}};this.create.emit(t)}else{let e={content:{recordingId:this._recordingId()}};this.save.emit(e)}}onCancel(){this.initializeFromElement(this.element()),this.cancelEdit.emit()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-cms-audio-element"]],inputs:{element:[1,"element"],editMode:[1,"editMode"],publicMode:[1,"publicMode"],articleId:[1,"articleId"]},outputs:{save:"save",create:"create",cancelEdit:"cancelEdit"},decls:2,vars:2,consts:[[1,"audio-element-view","my-4","max-w-6xl","mx-auto"],[1,"audio-element-edit","my-4","p-6","border","border-base-300","rounded-box","bg-base-100"],[3,"recording","context"],[1,"p-4","text-center","text-base-content/70"],[1,"fas","fa-microphone","text-2xl","mb-2"],[1,"form-control","my-4"],[1,"block","text-sm","font-medium","mb-2"],[3,"recordingSelected","placeId","personId","excludeIds","searchMode","placeholder"],[1,"my-4","p-4","bg-base-200","rounded-box"],[1,"alert","alert-error","my-4"],[1,"flex","gap-3","pt-4","border-t","border-base-300","justify-center"],["type","button",1,"btn","btn-primary",3,"click","disabled"],[1,"loading","loading-spinner","loading-sm"],["type","button",1,"btn","btn-secondary",3,"click"],[1,"fas","fa-exclamation-circle","mr-2"]],template:function(t,i){t&1&&(x(0,qt,3,1,"div",0),x(1,Wt,16,19,"div",1)),t&2&&(v(i.editMode()?-1:0),r(),v(i.editMode()?1:-1))},dependencies:[B,Q,O,$,Ne,Ze],encapsulation:2,changeDetection:0})}return n})();var tt=(n,u)=>u.imageId;function Ht(n,u){if(n&1&&(l(0,"div",5),y(1,"jw-image-display",6),s()),n&2){let e=u.$implicit;r(),b("imageId",e.imageId)("showDescription",!0)}}function Xt(n,u){if(n&1&&(l(0,"div",4),ie(1,Ht,2,2,"div",5,tt),s()),n&2){let e=a(2);he("grid-template-columns",e.gridTemplateColumns()),r(),ne(e.galleryImages())}}function Yt(n,u){n&1&&(l(0,"div",3),y(1,"i",7),l(2,"p"),g(3),h(4,"translate"),s()()),n&2&&(r(3),L(f(4,1,"cms.galleryElement.noImages")))}function Jt(n,u){if(n&1&&(l(0,"div",0),x(1,Xt,3,2,"div",2)(2,Yt,5,3,"div",3),s()),n&2){let e=a();r(),v(e.galleryImages().length>0?1:2)}}function Zt(n,u){if(n&1){let e=A();l(0,"div",15)(1,"div",22)(2,"h4",23),g(3),h(4,"translate"),s(),l(5,"button",24),E("click",function(){c(e);let i=a(2);return m(i.cancelImageUpload())}),y(6,"i",25),s()(),l(7,"jw-image-upload",26),E("fileData",function(i){c(e);let o=a(2);return m(o.onFileDataReceived(i))})("descriptionsData",function(i){c(e);let o=a(2);return m(o.onDescriptionsReceived(i))})("altTextsData",function(i){c(e);let o=a(2);return m(o.onAltTextsReceived(i))}),s(),l(8,"div",27)(9,"button",28),E("click",function(){c(e);let i=a(2);return m(i.confirmImageUpload())}),g(10),h(11,"translate"),s(),l(12,"button",29),E("click",function(){c(e);let i=a(2);return m(i.cancelImageUpload())}),g(13),h(14,"translate"),s()()()}if(n&2){let e=a(2);r(3),L(f(4,4,"cms.galleryElement.uploadNewImage")),r(6),b("disabled",!e.pendingFileData()),r(),S(" ",f(11,6,"buttons.confirm")," "),r(3),S(" ",f(14,8,"buttons.cancel")," ")}}function ei(n,u){if(n&1){let e=A();l(0,"div",15)(1,"div",22)(2,"h4",23),g(3),h(4,"translate"),s(),l(5,"button",24),E("click",function(){c(e);let i=a(2);return m(i.cancelImageEdit())}),y(6,"i",25),s()(),l(7,"jw-image-upload",30),E("fileData",function(i){c(e);let o=a(2);return m(o.onEditFileDataReceived(i))})("descriptionsData",function(i){c(e);let o=a(2);return m(o.onEditDescriptionsReceived(i))})("altTextsData",function(i){c(e);let o=a(2);return m(o.onEditAltTextsReceived(i))})("imageReplacement",function(i){c(e);let o=a(2);return m(o.onEditImageReplacement(i))}),s(),l(8,"div",27)(9,"button",28),E("click",function(){c(e);let i=a(2);return m(i.confirmImageEdit())}),g(10),h(11,"translate"),s(),l(12,"button",31),E("click",function(){c(e);let i=a(2);return m(i.cancelImageEdit())}),g(13),h(14,"translate"),s()()()}if(n&2){let e=a(2);r(3),L(f(4,5,"cms.galleryElement.editingImage")),r(4),b("image",e.editingImage()),r(2),b("disabled",e.isSaving()),r(),S(" ",f(11,7,"buttons.save")," "),r(3),S(" ",f(14,9,"buttons.cancel")," ")}}function ti(n,u){if(n&1){let e=A();l(0,"div",32)(1,"div",33),y(2,"jw-image-display",34),s(),l(3,"div",35)(4,"div",23),g(5),h(6,"translate"),s(),l(7,"div",36),g(8),h(9,"translate"),s()(),l(10,"div",37)(11,"button",38),h(12,"translate"),E("click",function(){let i=c(e).$index,o=a(3);return m(o.moveUp(i))}),y(13,"i",39),s(),l(14,"button",38),h(15,"translate"),E("click",function(){let i=c(e).$index,o=a(3);return m(o.moveDown(i))}),y(16,"i",40),s(),l(17,"button",41),h(18,"translate"),E("click",function(){let i=c(e).$index,o=a(3);return m(o.removeImage(i))}),y(19,"i",42),s(),l(20,"button",38),h(21,"translate"),E("click",function(){let i=c(e).$index,o=a(3);return m(o.openImageEdit(i))}),y(22,"i",43),s()()()}if(n&2){let e=u.$implicit,t=u.$index,i=a(3);r(2),b("imageId",e.imageId),r(3),S(" ",i.getImageDescription(e)||f(6,11,"cms.galleryElement.noDescription")," "),r(3),J(" ",f(9,13,"cms.galleryElement.order"),": ",t+1," "),r(3),b("disabled",!i.canMoveUp(t)),q("aria-label",f(12,15,"cms.galleryElement.moveUp")),r(3),b("disabled",!i.canMoveDown(t)),q("aria-label",f(15,17,"cms.galleryElement.moveDown")),r(3),q("aria-label",f(18,19,"cms.galleryElement.removeImage")),r(3),b("disabled",!i.canEdit()),q("aria-label",f(21,21,"cms.galleryElement.editImage"))}}function ii(n,u){if(n&1&&(l(0,"div",16),ie(1,ti,23,23,"div",32,tt),s()),n&2){let e=a(2);r(),ne(e.galleryImages())}}function ni(n,u){n&1&&(l(0,"div",3),y(1,"i",7),l(2,"p"),g(3),h(4,"translate"),s()()),n&2&&(r(3),L(f(4,1,"cms.galleryElement.noImages")))}function oi(n,u){if(n&1&&(l(0,"div",17),y(1,"i",44),g(2),s()),n&2){let e=a(2);r(2),S(" ",e.validationError()," ")}}function ri(n,u){n&1&&y(0,"span",20)}function ai(n,u){if(n&1){let e=A();l(0,"div",1)(1,"div",8)(2,"div",9)(3,"h3",10),g(4),h(5,"translate"),s(),l(6,"div",11),g(7),h(8,"translate"),s()(),l(9,"div",12)(10,"button",13),E("click",function(){c(e);let i=a();return m(i.openImageUpload())}),y(11,"i",14),g(12),h(13,"translate"),s()(),x(14,Zt,15,10,"div",15),x(15,ei,15,11,"div",15),x(16,ii,3,0,"div",16)(17,ni,5,3,"div",3),x(18,oi,3,1,"div",17),s(),l(19,"div",18)(20,"button",19),E("click",function(){c(e);let i=a();return m(i.onSave())}),x(21,ri,1,0,"span",20),g(22),h(23,"translate"),s(),l(24,"button",21),E("click",function(){c(e);let i=a();return m(i.onCancel())}),g(25),h(26,"translate"),s()()()}if(n&2){let e=a();r(4),L(f(5,14,"cms.galleryElement.title")),r(3),J(" ",e.galleryImages().length," / 4 ",f(8,16,"cms.galleryElement.images")," "),r(3),b("disabled",!e.canAddMore()||e.showImageUpload()),r(2),S(" ",f(13,18,"cms.galleryElement.addImage")," "),r(2),v(e.showImageUpload()?14:-1),r(),v(e.showImageEdit()?15:-1),r(),v(e.galleryImages().length>0?16:17),r(2),v(e.validationError()?18:-1),r(2),b("disabled",!e.isValid()||e.isSaving()),r(),v(e.isSaving()?21:-1),r(),S(" ",f(23,20,"buttons.save")," "),r(2),b("disabled",e.isSaving()),r(),S(" ",f(26,22,"buttons.cancel")," ")}}var it=(()=>{class n{imageService=D(Z);languageService=D(ue);destroyRef=D(U);element=T.required();editMode=T(!1);articleId=T();
1save=P();create=P();cancelEdit=P();_galleryImages=_([]);_layout=_(void 0);_isSaving=_(!1);_validationError=_(null);_showImageUpload=_(!1);_pendingFileData=_(null);_pendingDescriptions=_([]);_pendingAltTexts=_([]);_editingImageIndex=_(null);_editingImage=_(null);_showImageEdit=_(!1);_imageReplacement=_(null);isCreationMode=C(()=>{let e=this.element().id;return!e||typeof e=="string"});isValid=C(()=>this._galleryImages().length>0);galleryImages=this._galleryImages.asReadonly();layout=this._layout.asReadonly();isSaving=this._isSaving.asReadonly();validationError=this._validationError.asReadonly();showImageUpload=this._showImageUpload.asReadonly();pendingFileData=this._pendingFileData.asReadonly();editingImage=this._editingImage.asReadonly();showImageEdit=this._showImageEdit.asReadonly();isEditing=C(()=>this._editingImageIndex()!==null);canEdit=C(()=>!this.isEditing()&&!this.showImageUpload());constructor(){N(()=>{let e=this.element(),t=this.editMode();e&&!t&&this.initializeFromElement(e)})}ngOnInit(){this.initializeFromElement(this.element())}initializeFromElement(e){let t=e.images?[...e.images]:[];this._galleryImages.set(t),this._layout.set(e.layout),this._isSaving.set(!1),this._validationError.set(null)}onSave(){if(!this.isValid()){this._validationError.set("At least one image is required");return}if(this._isSaving.set(!0),this._validationError.set(null),this.isCreationMode()){let e=this.articleId();if(!e){console.error("Cannot create element without articleId"),this._isSaving.set(!1),this._validationError.set("Article ID is required for creation");return}let t={articleId:e,type:M.GALLERY,content:w({images:this._galleryImages()},this._layout()&&{layout:this._layout()})};this.create.emit(t)}else{let e={content:w({images:this._galleryImages()},this._layout()&&{layout:this._layout()})};this.save.emit(e)}}onCancel(){this.initializeFromElement(this.element()),this.cancelEdit.emit()}addImage(e){if(!this.canAddMore())return;let t=this._galleryImages(),i=t.length,o=F(w({},e),{order:i});this._galleryImages.set([...t,o])}canAddMore(){return this._galleryImages().length<4}removeImage(e){let t=this._galleryImages();if(e<0||e>=t.length)return;let o=[...t.slice(0,e),...t.slice(e+1)].map((d,p)=>F(w({},d),{order:p}));this._galleryImages.set(o)}moveUp(e){if(!this.canMoveUp(e))return;let t=[...this._galleryImages()],i=t[e];t[e]=t[e-1],t[e-1]=i;let o=t.map((d,p)=>F(w({},d),{order:p}));this._galleryImages.set(o)}moveDown(e){if(!this.canMoveDown(e))return;let t=[...this._galleryImages()],i=t[e];t[e]=t[e+1],t[e+1]=i;let o=t.map((d,p)=>F(w({},d),{order:p}));this._galleryImages.set(o)}canMoveUp(e){return e>0}canMoveDown(e){let t=this._galleryImages();return e<t.length-1}onImageUploaded(e){this.addImage(e)}openImageUpload(){this.canAddMore()&&(this._showImageUpload.set(!0),this._pendingFileData.set(null),this._pendingDescriptions.set([]),this._pendingAltTexts.set([]))}cancelImageUpload(){this._showImageUpload.set(!1),this._pendingFileData.set(null),this._pendingDescriptions.set([]),this._pendingAltTexts.set([])}onFileDataReceived(e){this._pendingFileData.set(e)}onDescriptionsReceived(e){this._pendingDescriptions.set(e)}onAltTextsReceived(e){this._pendingAltTexts.set(e)}confirmImageUpload(){let e=this._pendingFileData(),t=this._pendingDescriptions(),i=this._pendingAltTexts();if(!e||!this.canAddMore())return;this._isSaving.set(!0);let o={file:e.file};this.imageService.uploadImage(o).pipe(V(this.destroyRef)).subscribe({next:d=>{if(d.success&&d.image){let p=d.image.id;if(t.length>0||i.length>0){let I=new Map;t.filter(G=>G.value.trim().length>0).forEach(G=>{I.set(G.language,{language:G.language,description:G.value})}),i.filter(G=>G.value.trim().length>0).forEach(G=>{let nt=I.get(G.language)||{language:G.language};I.set(G.language,F(w({},nt),{altText:G.value}))});let R=Array.from(I.values()),X={imageKey:d.image.imageKey,thumbnailXSKey:d.image.thumbnailXSKey,thumbnailMDKey:d.image.thumbnailMDKey,thumbnailLGKey:d.image.thumbnailLGKey,width:d.image.width,height:d.image.height,mimeType:d.image.mimeType,translations:R};this.imageService.updateImage(p,X).pipe(V(this.destroyRef)).subscribe({next:()=>{this.addImageToGallery(p)},error:G=>{console.error("Failed to update image translations:",G),this.addImageToGallery(p)}})}else this.addImageToGallery(p)}
1else this._isSaving.set(!1),this._validationError.set("Failed to upload image")},error:d=>{console.error("Image upload failed:",d),this._isSaving.set(!1),this._validationError.set("Failed to upload image")}})}addImageToGallery(e){this.imageService.getImageWithUrls(e).pipe(V(this.destroyRef)).subscribe({next:t=>{let i={imageId:e,order:this._galleryImages().length,image:t};this.addImage(i),this._showImageUpload.set(!1),this._pendingFileData.set(null),this._pendingDescriptions.set([]),this._pendingAltTexts.set([]),this._isSaving.set(!1),this._validationError.set(null)},error:t=>{console.error("Failed to fetch complete image data:",t);let i={imageId:e,order:this._galleryImages().length};this.addImage(i),this._showImageUpload.set(!1),this._pendingFileData.set(null),this._pendingDescriptions.set([]),this._pendingAltTexts.set([]),this._isSaving.set(!1),this._validationError.set(null)}})}getImageDescription(e){if(!e.image||!e.image.translations)return"";let t=e.image.translations;if(t.length===0)return"";let i=this.languageService.getCurrentLanguage(),o=t.find(p=>p.language===i);return o?.description?o.description:t.find(p=>p.description)?.description||""}gridTemplateColumns=C(()=>{let e=this._galleryImages().length;return e===0?"":`repeat(${e}, 1fr)`});openImageEdit(e){if(!this.canEdit())return;let t=this._galleryImages();if(e<0||e>=t.length)return;let i=t[e];!i||!i.imageId||(this._isSaving.set(!0),this._validationError.set(null),this.imageService.getImageWithUrls(i.imageId).pipe(V(this.destroyRef)).subscribe({next:o=>{this._editingImageIndex.set(e),this._editingImage.set(o),this._showImageEdit.set(!0),this._isSaving.set(!1)},error:o=>{console.error("Failed to load image for editing:",o),this._validationError.set("Failed to load image"),this._isSaving.set(!1)}}))}cancelImageEdit(){this._editingImageIndex.set(null),this._editingImage.set(null),this._showImageEdit.set(!1),this._pendingFileData.set(null),this._pendingDescriptions.set([]),this._pendingAltTexts.set([]),this._imageReplacement.set(null),this._validationError.set(null)}confirmImageEdit(){let e=this._editingImageIndex(),t=this._editingImage(),i=this._imageReplacement(),o=this._pendingDescriptions(),d=this._pendingAltTexts();e===null||!t||(this._isSaving.set(!0),i?this.handleImageReplacement(e,i):this.handleDescriptionUpdate(e,t.id,o,d))}onEditFileDataReceived(e){this._pendingFileData.set(e)}onEditDescriptionsReceived(e){this._pendingDescriptions.set(e)}onEditAltTextsReceived(e){this._pendingAltTexts.set(e)}onEditImageReplacement(e){this._imageReplacement.set(e)}handleImageReplacement(e,t){let{oldImageId:i,newFileData:o}=t,d=this._pendingDescriptions(),p=this._pendingAltTexts(),I={file:o.file};this.imageService.uploadImage(I).pipe(V(this.destroyRef)).subscribe({next:R=>{if(R.success&&R.image){let X=R.image.id;d.length>0||p.length>0?this.updateImageTranslations(X,d,p,()=>this.replaceGalleryImage(e,X,i)):this.replaceGalleryImage(e,X,i)}else this._isSaving.set(!1),this._validationError.set("Failed to upload image")},error:R=>{console.error("Image replacement upload failed:",R),this._isSaving.set(!1),this._validationError.set("Failed to upload image")}})}replaceGalleryImage(e,t,i){this.imageService.getImageWithUrls(t).pipe(V(this.destroyRef)).subscribe({next:o=>{let d=[...this._galleryImages()],p=d[e]?.order??e;d[e]={imageId:t,order:p,image:o},this._galleryImages.set(d),i&&this.imageService.deleteImage(i).pipe(V(this.destroyRef)).subscribe({next:()=>{console.log(`Old image ${i} deleted successfully`)},error:I=>{console.error(`Failed to delete old image ${i}:`,I)}}),this.cancelImageEdit(),this._isSaving.set(!1)},error:o=>{console.error("Failed to fetch new image data:",o),this._isSaving.set(!1),this._validationError.set("Failed to load new image")}})}handleDescriptionUpdate(e,t,i,o){this.updateImageTranslations(t,i,o,()=>{this.imageService.getImageWithUrls(t).pipe(V(this.destroyRef)).subscribe({next:d=>{let p=[...this._galleryImages()];p[e]=F(w({},p[e]),{image:d}),this._galleryImages.set(p),this.cancelImageEdit(),this._isSaving.set(!1)},error:d=>{console.error("Failed to refresh image data:",d),this._isSaving.set(!1),this._val
1idationError.set("Failed to refresh image")}})})}updateImageTranslations(e,t,i,o){let d=new Map;t.filter(I=>I.value.trim().length>0).forEach(I=>{d.set(I.language,{language:I.language,description:I.value})}),i.filter(I=>I.value.trim().length>0).forEach(I=>{let R=d.get(I.language)||{language:I.language};d.set(I.language,F(w({},R),{altText:I.value}))});let p=Array.from(d.values());this.imageService.getImageWithUrls(e).pipe(V(this.destroyRef)).subscribe({next:I=>{let R={imageKey:I.imageKey,thumbnailXSKey:I.thumbnailXSKey,thumbnailMDKey:I.thumbnailMDKey,thumbnailLGKey:I.thumbnailLGKey,width:I.width,height:I.height,mimeType:I.mimeType,translations:p};this.imageService.updateImage(e,R).pipe(V(this.destroyRef)).subscribe({next:()=>{o()},error:X=>{console.error("Failed to update image translations:",X),this._isSaving.set(!1),this._validationError.set("Failed to update image")}})},error:I=>{console.error("Failed to fetch current image:",I),this._isSaving.set(!1),this._validationError.set("Failed to fetch image")}})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-cms-gallery-element"]],inputs:{element:[1,"element"],editMode:[1,"editMode"],articleId:[1,"articleId"]},outputs:{save:"save",create:"create",cancelEdit:"cancelEdit"},decls:2,vars:1,consts:[[1,"cms-gallery-element-view"],[1,"card","bg-base-100","shadow-sm"],[1,"grid",3,"grid-template-columns"],[1,"text-center","text-gray-500","py-8"],[1,"grid"],[1,"gallery-image-container"],["size","lg",1,"w-full","h-auto",3,"imageId","showDescription"],[1,"fas","fa-images","text-4xl","mb-2","opacity-50"],[1,"cms-gallery-element-edit","card-body"],[1,"flex","items-center","justify-between","mb-4"],[1,"text-lg","font-semibold"],[1,"text-sm","text-gray-500"],[1,"mb-4"],["type","button",1,"btn","btn-outline","btn-sm",3,"click","disabled"],[1,"fas","fa-plus","mr-1"],[1,"mb-4","p-4","border","border-base-300","rounded-lg","bg-base-50"],[1,"space-y-2"],[1,"alert","alert-error","mt-4"],[1,"m-4","flex","justify-end","gap-3"],["type","button",1,"btn","btn-primary",3,"click","disabled"],[1,"loading","loading-spinner","loading-sm"],["type","button",1,"btn","btn-outline",3,"click","disabled"],[1,"flex","items-center","justify-between","mb-2"],[1,"text-sm","font-medium"],["type","button",1,"btn","btn-ghost","btn-xs",3,"click"],[1,"fas","fa-times"],[3,"fileData","descriptionsData","altTextsData"],[1,"flex","gap-2","mt-3"],["type","button",1,"btn","btn-primary","btn-sm",3,"click","disabled"],["type","button",1,"btn","btn-outline","btn-sm",3,"click"],[3,"fileData","descriptionsData","altTextsData","imageReplacement","image"],["type","button",1,"btn","btn-ghost","btn-sm",3,"click"],[1,"flex","items-center","gap-3","p-3","border","border-base-300","rounded-lg","bg-base-50"],[1,"flex-shrink-0"],["size","xs",1,"w-16","h-16","rounded","object-cover",3,"imageId"],[1,"flex-grow"],[1,"text-xs","text-gray-500"],[1,"flex","gap-1"],["type","button",1,"btn","btn-ghost","btn-xs",3,"click","disabled"],[1,"fas","fa-arrow-up"],[1,"fas","fa-arrow-down"],["type","button",1,"btn","btn-ghost","btn-xs","text-error",3,"click"],[1,"fas","fa-trash"],[1,"fas","fa-edit"],[1,"fas","fa-exclamation-triangle","mr-2"]],template:function(t,i){t&1&&x(0,Jt,3,1,"div",0)(1,ai,27,24,"div",1),t&2&&v(i.editMode()?1:0)},dependencies:[B,Q,O,$,te,ee],encapsulation:2,changeDetection:0})}return n})();var li=["confirmationDialog"],si=(n,u)=>u.id??n;function di(n,u){n&1&&(l(0,"div",2),y(1,"span",6),s())}function ci(n,u){if(n&1){let e=A();l(0,"jw-cms-text-element",16),E("save",function(i){c(e);let o=a().$implicit,d=a(2);return m(d.onElementSave(o.id,i))})("cancelEdit",function(){c(e);let i=a(3);return m(i.onElementEditCancel())}),s()}if(n&2){let e=a().$implicit,t=a(2);b("element",e)("editMode",t.isEditing(e.id))("publicMode",t.publicMode())}}function mi(n,u){if(n&1){let e=A();l(0,"jw-cms-image-element",17),E("create",function(i){c(e);let o=a(3);return m(o.onNewElementCreate(i))})("save",function(i){c(e);let o=a().$implicit,d=a(2);return m(d.onElementSave(o.id,i))})("cancelEdit",function(){c(e);let i=a().$implicit,o=a(2);return m(i.id&&typeof i.id=="number"?o.onElementEditCancel():o.onNewElementCancel())}),s()}if(n&2){let e=a().$implicit,t=a(2);b("element",e)("editMode",t.isEditing(e.id))("publicMode",t.publicMode())("articleId",t.articleId())}}function pi(n,u){if(n&1){let e=A();l(0,"jw-cms-quote-element",18),E("create",function(i){c(e);let o=a(3);return m(o.onNewElementCreate(i))})("save",function(i){c(e);let o=a().$implicit,d=a(2);return m(d.onElementSave(o.id,i))})("cancelEdit",function(){c(e);let i=a().$implicit,o=a(2);return m(i.id&&typeof i.id=="number"?o.onElementEditCancel():o.onNewElementCancel())}),s()}if(n&2){let e=a().$implicit,t=a(2);b("element",e)("isEditMode",t.isEditing(e.id))("publicMode",t.publicMode())("articleId",t.articleId())}}function ui(n,u){if(n&1){let e=A();l(0,"jw-cms-video-element",17),E("create",function(i){c(e);let o=a(3);return m(o.onNewElementCreate(i))})("save",function(i){c(e);let o=a().$implicit,d=a(2);return m(d.onElementSave(o.id,i))})("cancelEdit",function(){c(e);let i=a().$implicit,o=a(2);return m(i.id&&typeof i.id=="number"?o.onElementEditCancel():o.onNewElementCancel())}),s()}if(n&2){let e=a().$implicit,t=a(2);b("element",e)("editMode",t.isEditing(e.id))("publicMode",t.publicMode())("articleId",t.articleId())}}function _i(n,u){if(n&1){let e=A();l(0,"jw-cms-audio-element",17),E("create",function(i){c(e);let o=a(3);return m(o.onNewElementCreate(i))})("save",function(i){c(e);let o=a().$implicit,d=a(2);return m(d.onElementSave(o.id,i))})("cancelEdit",function(){c(e);let i=a().$implicit,o=a(2);return m(i.id&&typeof i.id=="number"?o.onElementEditCancel():o.onNewElementCancel())}),s()}if(n&2){let e=a().$implicit,t=a(2);b("element",e)("editMode",t.isEditing(e.id))("publicMode",t.publicMode())("articleId",t.articleId())}}function gi(n,u){if(n&1){let e=A();l(0,"jw-cms-gallery-element",19),E("create",function(i){c(e);let o=a(3);return m(o.onNewElementCreate(i))})("save",function(i){c(e);let o=a().$implicit,d=a(2);return m(d.onElementSave(o.id,i))})("cancelEdit",function(){c(e);let i=a().$implicit,o=a(2);return m(i.id&&typeof i.id=="number"?o.onElementEditCancel():o.onNewElementCancel())}),s()}if(n&2){let e=a().$implicit,t=a(2);b("element",e)("editMode",t.isEditing(e.id))("articleId",t.articleId())}}function hi(n,u){if(n&1){let e=A();l(0,"div",15)(1,"button",20),h(2,"translate"),E("click",function(){c(e);let i=a(),o=i.$implicit,d=i.$index,p=a(2);return m(p.moveElementUp(o,d))}),y(3,"i",21),s(),l(4,"button",22),h(5,"translate"),h(6,"translate"),E("click",function(){c(e);let i=a().$implicit,o=a(2);return m(o.toggleEditElement(i.id))}),y(7,"i"),s(),l(8,"button",23),h(9,"translate"),E("click",function(){c(e);let i=a().$implicit,o=a(2);return m(o.deleteElement(i))}),y(10,"i",24),s(),l(11,"button",20),h(12,"translate"),E("click",function(){c(e);let i=a(),o=i.$implicit,d=i.$index,p=a(2);return m(p.moveElementDown(o,d))}),y(13,"i",25),s()()}if(n&2){let e=a(),t=e.$implicit,i=e.$index,o=a(2);r(),b("title",Ce(f(2,15,"cms.moveUp")))("disabled",i===0),r(3),K("btn-primary",!o.isEditing(t.id))("btn-secondary",o.isEditing(t.id)),b("title",o.isEditing(t.id)?f(5,17,"cms.cancelEdit"):f(6,19,"cms.edit")),r(3),fe(o.isEditing(t.id)?"fas fa-times":"fas fa-edit"),r(),b("title",Ce(f(9,21,"cms.delete"))),r(3),b("title",Ce(f(12,23,"cms.moveDown")))("disabled",i===o.elements().length-1)}}function fi(n,u){if(n&1&&(l(0,"div",9)(1,"div",10),x(2,ci,1,3,"jw-cms-text-element",11),x(3,mi,1,4,"jw-cms-image-element",12),x(4,pi,1,4,"jw-cms-quote-element",13),x(5,ui,1,4,"jw-cms-video-element",12),x(6,_i,1,4,"jw-cms-audio-element",12),x(7,gi,1,3,"jw-cms-gallery-element",14),s(),x(8,hi,14,25,"div",15),s()),n&2){let e=u.$implicit,t=a(2);he("grid-template-columns",t.shouldShowControls(e)?"1fr 8rem":"1fr"),r(2),v(e.type===t.ElementType.TEXT?2:-1),r(),v(e.type===t.ElementType.IMAGE?3:-1),r(),v(e.type===t.ElementType.QUOTE?4:-1),r(),v(e.type===t.ElementType.VIDEO?5:-1),r(),v(e.type===t.ElementType.AUDIO?6:-1),r(),v(e.type===t.ElementType.GALLERY?7:-1),r(),v(t.shouldShowControls(e)?8:-1)}}function Ci(n,u){if(n&1){let e=A();l(0,"div",8)(1,"div",26)(2,"button",27),y(3,"i",28),g(4),h(5,"translate"),s(),l(6,"ul",29)(7,"li")(8,"button",30),E("click",function(){c(e);let i=a(2);return i.addTextElement(),m(i.closeDropdown())}),y(9,"i",31),g(10),h(11,"translate"),s()(),l(12,"li")(13,"button",30),E("click",function(){c(e);let i=a(2);return i.addImageElement(),m(i.closeDropdown())}),y(14,"i",32),g(15),h(16,"translate"),s()(),l(17,"li")(18,"button",30),E("click",function(){c(e);let i=a(2);return i.addQuoteElement(),m(i.closeDropdown())}),y(19,"i",33),g(20),h(21,"translate"),s()(),l(22,"li")(23,"button",30),E("click",function(){c(e);let i=a(2);return i.addVideoElement(),m(i.closeDropdown())}),y(24,"i",34),g(25),h(26,"translate"),s()(),l(27,"li")(28,"button",30),E("click",function(){c(e);let i=a(2);return i.addAudioElement(),m(i.closeDropdown())}),y(29,"i",35),g(30),h(31,"translate"),s()(),l(32,"li")(33,"button",30),E("click",function(){c(e);let i=a(2);return i.addGalleryElement(),m(i.closeDropdown())}),y(34,"i",36),g(35),h(36,"translate"),s()()()()()}n&2&&(r(4),S(" ",f(5,7,"cms.addElement")," "),r(6),S(" ",f(11,9,"cms.elementTypes.text")," "),r(5),S(" ",f(16,11,"cms.elementTypes.image")," "),r(5),S(" ",f(21,13,"cms.elementTypes.quote")," "),r(5),S(" ",f(26,15,"cms.elementTypes.video")," "),r(5),S(" ",f(31,17,"cms.elementTypes.audio")," "),r(5),S(" ",f(36,19,"cms.elementTypes.gallery")," "))}function xi(n,u){if(n&1&&(ie(0,fi,9,9,"div",7,si),x(2,Ci,37,21,"div",8)),n&2){let e=a();ne(e.elements()),r(2),v(e.editMode()?2:-1)}}var Jo=(()=>{class n{ElementType=M;articleId=T.required();editMode=T(!0);
1skipInitialLoad=T(!1);publicMode=T(!1);cmsArticleService=D(_e);cmsElementService=D(ze);confirmationDialog=Fe.required("confirmationDialog");_editingElementId=_(null);_pendingNewElement=_(null);elementToDelete=_(null);article=C(()=>this.cmsArticleService.currentArticle());isLoading=C(()=>this.cmsElementService.isLoading());elements=C(()=>{let e=this.article()?.elements||[],t=this._pendingNewElement();if(!t)return e;let i;if(t.type===M.IMAGE)i={id:t.tempId,type:M.IMAGE,position:t.position,imageId:0};else if(t.type===M.VIDEO)i={id:t.tempId,type:M.VIDEO,position:t.position,url:"",caption:void 0,thumbnailUrl:void 0};else if(t.type===M.AUDIO)i={id:t.tempId,type:M.AUDIO,position:t.position,recordingId:0};else if(t.type===M.GALLERY)i={id:t.tempId,type:M.GALLERY,position:t.position,images:[]};else if(t.type===M.QUOTE)i={id:t.tempId,type:M.QUOTE,position:t.position,text:{}};else throw new Error(`Unsupported pending element type: ${t.type}`);return[...e,i]});isEditing(e){return this._editingElementId()===e}shouldShowControls(e){return this.editMode()&&e.id!==void 0&&e.id!==null&&typeof e.id=="number"}ngOnInit(){if(this.skipInitialLoad()||this.publicMode())return;let e=this.articleId(),t=this.cmsArticleService.currentArticle();e&&(!t||t.id!==e)&&this.cmsArticleService.loadArticleById(e)}moveElementUp(e,t){if(t===0)return;let d=this.elements().filter(p=>typeof p.id=="number").map((p,I)=>I===t-1?{elementId:p.id,newPosition:t}:I===t?{elementId:p.id,newPosition:t-1}:{elementId:p.id,newPosition:I});this.cmsElementService.reorderElements({articleId:this.articleId(),elements:d}).subscribe()}moveElementDown(e,t){let i=this.elements();if(t===i.length-1)return;let d=i.filter(p=>typeof p.id=="number").map((p,I)=>I===t?{elementId:p.id,newPosition:t+1}:I===t+1?{elementId:p.id,newPosition:t}:{elementId:p.id,newPosition:I});this.cmsElementService.reorderElements({articleId:this.articleId(),elements:d}).subscribe()}deleteElement(e){this.elementToDelete.set(e),this.confirmationDialog().show()}handleDeleteConfirm(){let e=this.elementToDelete();e&&this.cmsElementService.deleteElement(e.id,this.articleId()).subscribe({complete:()=>{this.elementToDelete.set(null),this.confirmationDialog().hide()}})}handleDeleteCancel(){this.elementToDelete.set(null),this.confirmationDialog().hide()}startEditElement(e){this._editingElementId.set(e)}toggleEditElement(e){this._editingElementId()===e?this._editingElementId.set(null):this._editingElementId.set(e)}onElementSave(e,t){if(!this.editMode()){console.warn("Cannot save element in display/public mode");return}this.cmsElementService.updateElement(e,t).subscribe({next:()=>{this._editingElementId.set(null);let i=this.article();i?.id&&this.cmsArticleService.loadArticleById(i.id)},error:i=>{console.error("Save failed:",i),this._editingElementId.set(null)}})}onElementEditCancel(){this._editingElementId.set(null)}addTextElement(){let e={articleId:this.articleId(),type:M.TEXT,content:{text:{pl:"<p>Nowy element tekstowy</p>"},formatting:"html"}};this.cmsElementService.addElement(e).subscribe({next:t=>{t.id&&this._editingElementId.set(t.id)},error:t=>console.error("Failed to add element:",t)})}addImageElement(){let e=this.article()?.elements||[],t=`pending-image-${Date.now()}`;this._pendingNewElement.set({type:M.IMAGE,tempId:t,position:e.length}),this._editingElementId.set(t)}addQuoteElement(){let e=this.article()?.elements||[],t=`pending-quote-${Date.now()}`;this._pendingNewElement.set({type:M.QUOTE,tempId:t,position:e.length}),this._editingElementId.set(t)}addVideoElement(){let e=this.article()?.elements||[],t=`pending-video-${Date.now()}`;this._pendingNewElement.set({type:M.VIDEO,tempId:t,position:e.length}),this._editingElementId.set(t)}addAudioElement(){let e=this.article()?.elements||[],t=`pending-audio-${Date.now()}`;this._pendingNewElement.set({type:M.AUDIO,tempId:t,position:e.length}),this._editingElementId.set(t)}addGalleryElement(){let e=this.article()?.elements||[],t=`pending-gallery-${Date.now()}`;this._pendingNewElement.set({type:M.GALLERY,tempId:t,position:e.length}),this._editingElementId.set(t)}onNewElementCreate(e){this.cmsElementService.addElement(e).subscribe({next:()=>{this._pendingNewElement.set(null),this._editingElementId.set(null);
1let t=this.article();t?.id&&this.cmsArticleService.loadArticleById(t.id)},error:t=>{console.error("Failed to create element:",t)}})}onNewElementCancel(){this._pendingNewElement.set(null),this._editingElementId.set(null)}closeDropdown(){document.activeElement instanceof HTMLElement&&document.activeElement.blur()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["jw-cms-entry-editor"]],viewQuery:function(t,i){t&1&&Me(i.confirmationDialog,li,5),t&2&&Ae()},inputs:{articleId:[1,"articleId"],editMode:[1,"editMode"],skipInitialLoad:[1,"skipInitialLoad"],publicMode:[1,"publicMode"]},decls:13,vars:13,consts:[["confirmationDialog",""],[1,"cms-entry-editor"],[1,"flex","items-center","justify-center","p-8"],["confirmButtonClasses","btn-error","cancelButtonClasses","btn-outline",3,"confirmed","cancelled","confirmButtonLabel","cancelButtonLabel"],[1,"text-lg","font-bold","mb-4"],[1,"mb-4"],[1,"loading","loading-spinner","loading-lg"],[1,"element-container","mb-16","grid","gap-4",3,"grid-template-columns"],[1,"flex","items-center","justify-center"],[1,"element-container","mb-16","grid","gap-4"],[1,"element-content","min-w-0"],[3,"element","editMode","publicMode"],[3,"element","editMode","publicMode","articleId"],[3,"element","isEditMode","publicMode","articleId"],[3,"element","editMode","articleId"],[1,"element-controls","flex","flex-col","items-center","justify-center","gap-2"],[3,"save","cancelEdit","element","editMode","publicMode"],[3,"create","save","cancelEdit","element","editMode","publicMode","articleId"],[3,"create","save","cancelEdit","element","isEditMode","publicMode","articleId"],[3,"create","save","cancelEdit","element","editMode","articleId"],["type","button",1,"btn","btn-sm","btn-circle",3,"click","disabled","title"],[1,"fas","fa-arrow-up"],["type","button",1,"btn","btn-sm","btn-circle",3,"click","title"],["type","button",1,"btn","btn-sm","btn-error","btn-circle",3,"click","title"],[1,"fas","fa-trash"],[1,"fas","fa-arrow-down"],[1,"dropdown","dropdown-top","mt-6"],["type","button","tabindex","0",1,"btn","btn-success","w-full"],[1,"fas","fa-plus","mr-2"],["tabindex","0",1,"dropdown-content","menu","bg-base-100","rounded-box","z-[1]","w-full","p-2","shadow"],["type","button",3,"click"],[1,"fas","fa-align-left","mr-2"],[1,"fas","fa-image","mr-2"],[1,"fas","fa-quote-left","mr-2"],[1,"fas","fa-video","mr-2"],[1,"fas","fa-microphone","mr-2"],[1,"fas","fa-images","mr-2"]],template:function(t,i){if(t&1){let o=A();l(0,"div",1),x(1,di,2,0,"div",2)(2,xi,3,1),l(3,"ui-confirmation-dialog",3,0),h(5,"translate"),h(6,"translate"),E("confirmed",function(){return c(o),m(i.handleDeleteConfirm())})("cancelled",function(){return c(o),m(i.handleDeleteCancel())}),l(7,"h3",4),g(8),h(9,"translate"),s(),l(10,"p",5),g(11),h(12,"translate"),s()()()}t&2&&(r(),v(i.isLoading()?1:2),r(2),b("confirmButtonLabel",f(5,5,"cms.entry.deleteConfirmation.confirm"))("cancelButtonLabel",f(6,7,"cms.entry.deleteConfirmation.cancel")),r(5),S(" ",f(9,9,"cms.entry.deleteConfirmation.title")," "),r(3),S(" ",f(12,11,"cms.entry.deleteConfirmation.message")," "))},dependencies:[B,O,$,We,He,Ye,Je,et,it,Le],encapsulation:2,changeDetection:0})}return n})();export{_e as a,Ke as b,Ze as c,Jo as d};

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.