import{$ as ue}from"./chunk-KYCSJIMZ.js";import{A as T,Fa as me,Ia as _e,Y as se,jb as de,na as F,oa as C,pa as re,wa as ce,xa as pe,ya as B,za as Q}from"./chunk-PUTTU6SU.js";import{Cb as l,Db as n,Eb as y,Hb as D,Ib as I,Kb as O,Lb as p,Mb as W,Na as Z,Nb as X,Pc as ne,Qb as f,Rc as oe,Sb as g,T as N,Ta as d,Tb as h,U as $,Ua as M,Vc as ae,Xb as o,Z as q,_c as L,dc as Y,eb as j,fb as G,fc as ee,ga as v,gd as le,ha as E,hc as te,hd as A,ib as J,jd as w,ka as z,kb as K,lb as c,ld as V,md as R,od as P,pa as S,qa as H,tb as m,tc as x,wb as U,xb as k,yb as b,yc as u,zc as ie}from"./chunk-GMZELIIA.js";var fe=class t{static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-documentation"]],decls:68,vars:0,consts:[[1,"card"],[1,"font-semibold","text-2xl","mb-4"],[1,"font-semibold","text-xl","mb-4"],[1,"text-lg","mb-4"],[1,"app-code"],[1,"bg-highlight","px-2","py-1","rounded-border","not-italic","text-base"],[1,"leading-normal","list-disc","pl-8","text-lg","mb-4"],[1,"text-primary","font-medium"]],template:function(e,s){e&1&&(l(0,"div",0)(1,"div",1),o(2,"Documentation"),n(),l(3,"div",2),o(4,"Get Started"),n(),l(5,"p",3),o(6,"Sakai is an application template for Angular and is distributed as a CLI project. Current versions is Angular v19 with PrimeNG v19. In case CLI is not installed already, use the command below to set it up."),n(),l(7,"pre",4)(8,"code"),o(9,"npm install -g @angular/cli"),n()(),l(10,"p",3),o(11,' Once CLI is ready in your system, extract the contents of the zip file distribution, cd to the directory, install the libraries from npm and then execute "ng serve" to run the application in your local environment. '),n(),l(12,"pre",4)(13,"code"),o(14,`git clone https://github.com/primefaces/sakai-ng npm install ng serve`),n()(),l(15,"p",3),o(16,"The application should run at "),l(17,"i",5),o(18,"http://localhost:4200/"),n(),o(19," to view the application in your local environment."),n(),l(20,"div",2),o(21,"Structure"),n(),l(22,"p",3),o(23,"Templates consists of a couple folders, demos and layout have been separated so that you can easily identify what is necessary for your application."),n(),l(24,"ul",6)(25,"li")(26,"span",7),o(27,"src/app/layout"),n(),o(28,": Main layout files, needs to be present."),n(),l(29,"li")(30,"span",7),o(31,"src/app/pages"),n(),o(32,": Demo content like Dashboard."),n(),l(33,"li")(34,"span",7),o(35,"src/assets/demo"),n(),o(36,": Assets used in demos"),n(),l(37,"li")(38,"span",7),o(39,"src/assets/layout"),n(),o(40,": SCSS files of the main layout"),n()(),l(41,"div",2),o(42,"Menu"),n(),l(43,"p",3),o(44," Main menu is defined at "),l(45,"span",5),o(46,"src/app/layout/component/app.menu.ts"),n(),o(47," file. Update the "),l(48,"i",5),o(49,"model"),n(),o(50," property to define your own menu items. "),n(),l(51,"div",2),o(52,"Layout Service"),n(),l(53,"p",3)(54,"span",5),o(55,"src/app/layout/service/layout.service.ts"),n(),o(56," is a service that manages layout state changes, including dark mode, PrimeNG theme, menu modes, and states. "),n(),l(57,"div",2),o(58,"Tailwind CSS"),n(),l(59,"p",3),o(60,"The demo pages are developed with Tailwind CSS however the core application shell uses custom CSS."),n(),l(61,"div",2),o(62,"Variables"),n(),l(63,"p",3),o(64," CSS variables used in the template are derived from the applied PrimeNG theme. Customize them through the CSS variables in "),l(65,"span",5),o(66,"src/assets/layout/variables"),n(),o(67,". "),n()())},dependencies:[L],styles:["@media screen and (max-width: 991px){.video-container[_ngcontent-%COMP%]{position:relative;width:100%;height:0;padding-bottom:56.25%}.video-container[_ngcontent-%COMP%] iframe[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%}}"]})};var Ce=["header"],ye=["footer"],xe=["rejecticon"],Te=["accepticon"],ve=["message"],Ee=["icon"],Se=["headless"],je=[[["p-footer"]]],ke=["p-footer"],De=(t,a,e)=>({$implicit:t,onAccept:a,onReject:e}),Ie=t=>({$implicit:t});function Oe(t,a){t&1&&D(0)}function Le(t,a){if(t&1&&c(0,Oe,1,0,"ng-container",6),t&2){let e=p(2);m("ngTemplateOutlet",e.headlessTemplate||e._headlessTemplate)("ngTemplateOutletContext",te(2,De,e.confirmation,e.onAccept.bind(e),e.onReject.bind(e)))}}function we(t,a){t&1&&c(0,Le,1,6,"ng-template",null,2,x)}function Be(t,a){t&1&&D(0)}function Me(t,a){if(t&1&&(l(0,"div",7),c(1,Be,1,0,"ng-container",8),n()),t&2){let e=p(3);m("ngClass",e.cx("header")),d(),m("ngTemplateOutlet",e.headerTemplate||e._headerTemplate)}}function Ae(t,a){t&1&&c(0,Me,2,2,"ng-template",null,4,x)}function Ve(t,a){}function Re(t,a){t&1&&c(0,Ve,0,0,"ng-template")}function Pe(t,a){if(t&1&&c(0,Re,1,0,null,8),t&2){let e=p(3);m("ngTemplateOutlet",e.iconTemplate||e._iconTemplate)}}function Fe(t,a){if(t&1&&y(0,"i",7),t&2){let e=p(4);k(e.option("icon")),m("ngClass",e.cx("icon"))}}function Qe(t,a){if(t&1&&c(0,Fe,1,3,"i",11),t&2){let e=p(3);m("ngIf",e.option("icon"))}}function Ne(t,a){}function $e(t,a){t&1&&c(0,Ne,0,0,"ng-template")}function qe(t,a){if(t&1&&c(0,$e,1,0,null,6),t&2){let e=p(3);m("ngTemplateOutlet",e.messageTemplate||e._messageTemplate)("ngTemplateOutletContext",ee(2,Ie,e.confirmation))}}function ze(t,a){if(t&1&&y(0,"span",10),t&2){let e=p(3);m("ngClass",e.cx("message"))("innerHTML",e.option("message"),Z)}}function He(t,a){if(t&1&&c(0,Pe,1,1)(1,Qe,1,1,"i",9)(2,qe,1,4)(3,ze,1,2,"span",10),t&2){let e=p(2);b(e.iconTemplate||e._iconTemplate?0:!e.iconTemplate&&!e._iconTemplate&&!e._messageTemplate&&!e.messageTemplate?1:-1),d(2),b(e.messageTemplate||e._messageTemplate?2:3)}}function Ze(t,a){if(t&1&&c(0,Ae,2,0)(1,He,4,2,"ng-template",null,3,x),t&2){let e=p();b(e.headerTemplate||e._headerTemplate?0:-1)}}function Ge(t,a){t&1&&D(0)}function Je(t,a){if(t&1&&(X(0),c(1,Ge,1,0,"ng-container",8)),t&2){let e=p(2);d(),m("ngTemplateOutlet",e.footerTemplate||e._footerTemplate)}}function Ke(t,a){if(t&1&&y(0,"i"),t&2){let e=p(5);k(e.option("rejectIcon"))}}function Ue(t,a){if(t&1&&c(0,Ke,1,2,"i",15),t&2){let e=p(4);m("ngIf",e.option("rejectIcon"))}}function We(t,a){}function Xe(t,a){t&1&&c(0,We,0,0,"ng-template")}function Ye(t,a){if(t&1){let e=I();l(0,"p-button",13),O("onClick",function(){v(e);let i=p(3);return E(i.onReject())}),c(1,Ue,1,1,"i",14)(2,Xe,1,0,null,8),n()}if(t&2){let e=p(3);m("label",e.rejectButtonLabel)("styleClass",e.getButtonStyleClass("pcRejectButton","rejectButtonStyleClass"))("ariaLabel",e.option("rejectButtonProps","ariaLabel"))("buttonProps",e.getRejectButtonProps()),d(),b(e.rejectIcon&&!e.rejectIconTemplate&&!e._rejectIconTemplate?1:-1),d(),m("ngTemplateOutlet",e.rejectIconTemplate||e._rejectIconTemplate)}}function et(t,a){if(t&1&&y(0,"i"),t&2){let e=p(5);k(e.option("acceptIcon"))}}function tt(t,a){if(t&1&&c(0,et,1,2,"i",15),t&2){let e=p(4);m("ngIf",e.option("acceptIcon"))}}function it(t,a){}function nt(t,a){t&1&&c(0,it,0,0,"ng-template")}function ot(t,a){if(t&1){let e=I();l(0,"p-button",13),O("onClick",function(){v(e);let i=p(3);return E(i.onAccept())}),c(1,tt,1,1,"i",14)(2,nt,1,0,null,8),n()}if(t&2){let e=p(3);m("label",e.acceptButtonLabel)("styleClass",e.getButtonStyleClass("pcAcceptButton","acceptButtonStyleClass"))("ariaLabel",e.option("acceptButtonProps","ariaLabel"))("buttonProps",e.getAcceptButtonProps()),d(),b(e.acceptIcon&&!e._acceptIconTemplate&&!e.acceptIconTemplate?1:-1),d(),m("ngTemplateOutlet",e.acceptIconTemplate||e._acceptIconTemplate)}}function at(t,a){if(t&1&&c(0,Ye,3,6,"p-button",12)(1,ot,3,6,"p-button",12),t&2){let e=p(2);m("ngIf",e.option("rejectVisible")),d(),m("ngIf",e.option("acceptVisible"))}}function lt(t,a){if(t&1&&c(0,Je,2,1)(1,at,2,2),t&2){let e=p();b(e.footerTemplate||e._footerTemplate?0:-1),d(),b(!e.footerTemplate&&!e._footerTemplate?1:-1)}}var st=({dt:t})=>` .p-confirmdialog .p-dialog-content { display: flex; align-items: center; gap: ${t("confirmdialog.content.gap")}; } .p-confirmdialog .p-confirmdialog-icon { color: ${t("confirmdialog.icon.color")}; font-size: ${t("confirmdialog.icon.size")}; width: ${t("confirmdialog.icon.size")}; height: ${t("confirmdialog.icon.size")}; } `,rt={root:"p-confirmdialog",icon:"p-confirmdialog-icon",message:"p-confirmdialog-message",pcRejectButton:"p-confirmdialog-reject-button",pcAcceptButton:"p-confirmdialog-accept-button"},ge=(()=>{class t extends me{name="confirmdialog";theme=st;classes=rt;static \u0275fac=(()=>{let e;return function(i){return(e||(e=z(t)))(i||t)}})();static \u0275prov=N({token:t,factory:t.\u0275fac})}return t})();var ct=R([w({transform:"{{transform}}",opacity:0}),A("{{transition}}",w({transform:"none",opacity:1}))]),pt=R([A("{{transition}}",w({transform:"{{transform}}",opacity:0}))]),mt=(()=>{class t extends _e{confirmationService;zone;header;icon;message;get style(){return this._style}set style(e){this._style=e,this.cd.markForCheck()}styleClass;maskStyleClass;acceptIcon;acceptLabel;closeAriaLabel;acceptAriaLabel;acceptVisible=!0;rejectIcon;rejectLabel;rejectAriaLabel;rejectVisible=!0;acceptButtonStyleClass;rejectButtonStyleClass;closeOnEscape=!0;dismissableMask;blockScroll=!0;rtl=!1;closable=!0;appendTo="body";key;autoZIndex=!0;baseZIndex=0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";focusTrap=!0;defaultFocus="accept";breakpoints;get visible(){return this._visible}set visible(e){this._visible=e,this._visible&&!this.maskVisible&&(this.maskVisible=!0),this.cd.markForCheck()}get position(){return this._position}set position(e){switch(this._position=e,e){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)";break}}draggable=!0;onHide=new S;footer;_componentStyle=q(ge);headerTemplate;footerTemplate;rejectIconTemplate;acceptIconTemplate;messageTemplate;iconTemplate;headlessTemplate;templates;_headerTemplate;_footerTemplate;_rejectIconTemplate;_acceptIconTemplate;_messageTemplate;_iconTemplate;_headlessTemplate;confirmation;_visible;_style;maskVisible;dialog;wrapper;contentContainer;subscription;preWidth;_position="center";transformOptions="scale(0.7)";styleElement;id=F("pn_id_");ariaLabelledBy=this.getAriaLabelledBy();translationSubscription;get containerClass(){return this.cx("root")+" "+this.styleClass||" "}constructor(e,s){super(),this.confirmationService=e,this.zone=s,this.subscription=this.confirmationService.requireConfirmation$.subscribe(i=>{if(!i){this.hide();return}i.key===this.key&&(this.confirmation=i,Object.keys(i).forEach(r=>{this[r]=i[r]}),this.confirmation.accept&&(this.confirmation.acceptEvent=new S,this.confirmation.acceptEvent.subscribe(this.confirmation.accept)),this.confirmation.reject&&(this.confirmation.rejectEvent=new S,this.confirmation.rejectEvent.subscribe(this.confirmation.reject)),this.visible=!0)})}ngOnInit(){super.ngOnInit(),this.breakpoints&&this.createStyle(),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.visible&&this.cd.markForCheck()})}ngAfterContentInit(){this.templates?.forEach(e=>{switch(e.getType()){case"header":this._headerTemplate=e.template;break;case"footer":this._footerTemplate=e.template;break;case"message":this._messageTemplate=e.template;break;case"icon":this._iconTemplate=e.template;break;case"rejecticon":this._rejectIconTemplate=e.template;break;case"accepticon":this._acceptIconTemplate=e.template;break;case"headless":this._headlessTemplate=e.template;break}})}getAriaLabelledBy(){return this.header!==null?F("pn_id_")+"_header":null}option(e,s){let i=this;if(i.hasOwnProperty(e))return s?i[s]:i[e]}getButtonStyleClass(e,s){let i=this.cx(e),_=this.option(s);return[i,_].filter(Boolean).join(" ")}getElementToFocus(){switch(this.option("defaultFocus")){case"accept":return T(this.dialog.el.nativeElement,".p-confirm-dialog-accept");case"reject":return T(this.dialog.el.nativeElement,".p-confirm-dialog-reject");case"close":return T(this.dialog.el.nativeElement,".p-dialog-header-close");case"none":return null;default:return T(this.dialog.el.nativeElement,".p-confirm-dialog-accept")}}createStyle(){if(!this.styleElement){this.styleElement=this.document.createElement("style"),this.styleElement.type="text/css",this.document.head.appendChild(this.styleElement);let e="";for(let s in this.breakpoints)e+=` @media screen and (max-width: ${s}) { .p-dialog[${this.id}] { width: ${this.breakpoints[s]} !important; } } `;this.styleElement.innerHTML=e,se(this.styleElement,"nonce",this.config?.csp()?.nonce)}}close(){this.confirmation?.rejectEvent&&this.confirmation.rejectEvent.emit(C.CANCEL),this.hide(C.CANCEL)}hide(e){this.onHide.emit(e),this.visible=!1,this.unsubscribeConfirmationEvents(),this.confirmation=null}destroyStyle(){this.styleElement&&(this.document.head.removeChild(this.styleElement),this.styleElement=null)}ngOnDestroy(){this.subscription.unsubscribe(),this.unsubscribeConfirmationEvents(),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.destroyStyle(),super.ngOnDestroy()}onVisibleChange(e){e?this.visible=e:this.close()}onAccept(){this.confirmation&&this.confirmation.acceptEvent&&this.confirmation.acceptEvent.emit(),this.hide(C.ACCEPT)}onReject(){this.confirmation&&this.confirmation.rejectEvent&&this.confirmation.rejectEvent.emit(C.REJECT),this.hide(C.REJECT)}unsubscribeConfirmationEvents(){this.confirmation&&(this.confirmation.acceptEvent?.unsubscribe(),this.confirmation.rejectEvent?.unsubscribe())}get acceptButtonLabel(){return this.option("acceptLabel")||this.config.getTranslation(Q.ACCEPT)}get rejectButtonLabel(){return this.option("rejectLabel")||this.config.getTranslation(Q.REJECT)}getAcceptButtonProps(){return this.option("acceptButtonProps")}getRejectButtonProps(){return this.option("rejectButtonProps")}static \u0275fac=function(s){return new(s||t)(M(re),M(H))};static \u0275cmp=j({type:t,selectors:[["p-confirmDialog"],["p-confirmdialog"],["p-confirm-dialog"]],contentQueries:function(s,i,_){if(s&1&&(f(_,ce,5),f(_,Ce,4),f(_,ye,4),f(_,xe,4),f(_,Te,4),f(_,ve,4),f(_,Ee,4),f(_,Se,4),f(_,pe,4)),s&2){let r;g(r=h())&&(i.footer=r.first),g(r=h())&&(i.headerTemplate=r.first),g(r=h())&&(i.footerTemplate=r.first),g(r=h())&&(i.rejectIconTemplate=r.first),g(r=h())&&(i.acceptIconTemplate=r.first),g(r=h())&&(i.messageTemplate=r.first),g(r=h())&&(i.iconTemplate=r.first),g(r=h())&&(i.headlessTemplate=r.first),g(r=h())&&(i.templates=r)}},inputs:{header:"header",icon:"icon",message:"message",style:"style",styleClass:"styleClass",maskStyleClass:"maskStyleClass",acceptIcon:"acceptIcon",acceptLabel:"acceptLabel",closeAriaLabel:"closeAriaLabel",acceptAriaLabel:"acceptAriaLabel",acceptVisible:[2,"acceptVisible","acceptVisible",u],rejectIcon:"rejectIcon",rejectLabel:"rejectLabel",rejectAriaLabel:"rejectAriaLabel",rejectVisible:[2,"rejectVisible","rejectVisible",u],acceptButtonStyleClass:"acceptButtonStyleClass",rejectButtonStyleClass:"rejectButtonStyleClass",closeOnEscape:[2,"closeOnEscape","closeOnEscape",u],dismissableMask:[2,"dismissableMask","dismissableMask",u],blockScroll:[2,"blockScroll","blockScroll",u],rtl:[2,"rtl","rtl",u],closable:[2,"closable","closable",u],appendTo:"appendTo",key:"key",autoZIndex:[2,"autoZIndex","autoZIndex",u],baseZIndex:[2,"baseZIndex","baseZIndex",ie],transitionOptions:"transitionOptions",focusTrap:[2,"focusTrap","focusTrap",u],defaultFocus:"defaultFocus",breakpoints:"breakpoints",visible:"visible",position:"position",draggable:[2,"draggable","draggable",u]},outputs:{onHide:"onHide"},features:[Y([ge]),K,J],ngContentSelectors:ke,decls:6,vars:14,consts:[["dialog",""],["footer",""],["headless",""],["content",""],["header",""],["role","alertdialog",3,"visibleChange","visible","closable","styleClass","modal","header","closeOnEscape","blockScroll","appendTo","position","dismissableMask","draggable"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngClass"],[4,"ngTemplateOutlet"],[3,"ngClass","class"],[3,"ngClass","innerHTML"],[3,"ngClass","class",4,"ngIf"],[3,"label","styleClass","ariaLabel","buttonProps","onClick",4,"ngIf"],[3,"onClick","label","styleClass","ariaLabel","buttonProps"],[3,"class"],[3,"class",4,"ngIf"]],template:function(s,i){if(s&1){let _=I();W(je),l(0,"p-dialog",5,0),O("visibleChange",function(he){return v(_),E(i.onVisibleChange(he))}),c(2,we,2,0)(3,Ze,3,1)(4,lt,2,2,"ng-template",null,1,x),n()}s&2&&(U(i.style),m("visible",i.visible)("closable",i.option("closable"))("styleClass",i.containerClass)("modal",!0)("header",i.option("header"))("closeOnEscape",i.option("closeOnEscape"))("blockScroll",i.option("blockScroll"))("appendTo",i.option("appendTo"))("position",i.position)("dismissableMask",i.dismissableMask)("draggable",i.draggable),d(2),b(i.headlessTemplate||i._headlessTemplate?2:3))},dependencies:[L,ne,oe,ae,de,ue,B],encapsulation:2,data:{animation:[le("animation",[V("void => visible",[P(ct)]),V("visible => void",[P(pt)])])]},changeDetection:0})}return t})(),At=(()=>{class t{static \u0275fac=function(s){return new(s||t)};static \u0275mod=G({type:t});static \u0275inj=$({imports:[mt,B,B]})}return t})();export{fe as a,mt as b,At as c};