@ngxviewbuilder/runtime 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ngxviewbuilder-runtime-avatar-element-DAS1xicD.mjs +1 -0
- package/fesm2022/ngxviewbuilder-runtime-breadcrumbs-element-B9KByh0C.mjs +1 -0
- package/fesm2022/ngxviewbuilder-runtime-icon-element-tddO2k9Y.mjs +1 -0
- package/fesm2022/ngxviewbuilder-runtime-ngxviewbuilder-runtime-vepMpo7v.mjs +49 -0
- package/fesm2022/ngxviewbuilder-runtime-toast-element-C6YQc3QE.mjs +1 -0
- package/fesm2022/ngxviewbuilder-runtime.mjs +1 -1
- package/package.json +1 -1
- package/styles/tokens.css +49 -25
- package/types/ngxviewbuilder-runtime.d.ts +92 -0
- package/fesm2022/ngxviewbuilder-runtime-avatar-element-DdlzDtsP.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-breadcrumbs-element-DUicA66q.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-icon-element-fkPDYkf0.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-ngxviewbuilder-runtime-CY_sp0Pm.mjs +0 -49
- package/fesm2022/ngxviewbuilder-runtime-toast-element-CNuDVfas.mjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NgClass as r}from"@angular/common";import*as o from"@angular/core";import{input as v,signal as p,inject as a,computed as e,ChangeDetectionStrategy as u,Component as m}from"@angular/core";import{c as b,E as h,U as g,S as x,a as l,N as c,D as d}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-vepMpo7v.mjs";class n{model=v.required(...ngDevMode?[{debugName:"model"}]:[]);tid=b(this.model,"nvb-toast","toast");visible=p(true,...ngDevMode?[{debugName:"visible"}]:[]);elementActionService=a(h);uiTranslationService=a(g);hideTimeoutId=null;autoHideStartedAt=0;autoHideDelayMs=0;autoHideRemainingMs=0;isEditor=e(()=>x.isEditor(),...ngDevMode?[{debugName:"isEditor"}]:[]);shellClass=e(()=>{const t=this.resolvePosition();return{[`nvb-toast-shell--${t}`]:true,"nvb-toast-shell--editor":this.isEditor()}},...ngDevMode?[{debugName:"shellClass"}]:[]);variantClass=e(()=>`nvb-toast--${this.resolveVariant()}`,...ngDevMode?[{debugName:"variantClass"}]:[]);iconName=e(()=>{const t=String(this.model()?.icon??"").trim();if(t){return t}switch(this.resolveVariant()){case"success":return"check_circle";case"warning":return"warning";case"error":return"error";default:return"info"}},...ngDevMode?[{debugName:"iconName"}]:[]);showActionButton=e(()=>String(this.model()?.actionText??"").trim().length>0,...ngDevMode?[{debugName:"showActionButton"}]:[]);ngOnInit(){this.visible.set(Boolean(this.model()?.initiallyVisible??true));if(this.isEditor()){this.visible.set(true);return}this.scheduleAutoHide()}ngOnDestroy(){this.clearAutoHide()}onToastClick(t){t.stopPropagation();void this.runActions("click")}onActionClick(t){t.preventDefault();t.stopPropagation();void this.runActions("action")}onDismissClick(t){t.preventDefault();t.stopPropagation();this.visible.set(false);this.clearAutoHide();void this.runActions("dismiss")}pauseAutoHide(){if(this.isEditor()||this.hideTimeoutId===null){return}const t=Date.now()-this.autoHideStartedAt;this.autoHideRemainingMs=Math.max(1e3,this.autoHideDelayMs-t);this.clearAutoHide()}resumeAutoHide(){if(this.isEditor()||!this.visible()||!this.model().autoHide||this.hideTimeoutId!==null){return}this.scheduleAutoHide(this.autoHideRemainingMs||this.resolveAutoHideDelayMs())}resolvedTitle(){const t=String(this.model()?.title??"").trim();return t==="Notification"?this.uiTranslationService.translate("toast.titleDefault","Notification"):t}resolvedDescription(){const t=String(this.model()?.descriptionText??"").trim();return t==="Toast message"?this.uiTranslationService.translate("toast.descriptionDefault","Toast message"):t}dismissLabel(){return this.uiTranslationService.translate("common.dismiss","Dismiss")}toastAriaLive(){return this.resolveVariant()==="info"?"polite":"assertive"}toastRole(){return this.toastAriaLive()==="assertive"?"alert":"status"}scheduleAutoHide(t=this.resolveAutoHideDelayMs()){this.clearAutoHide();if(!this.visible()){return}if(!this.model().autoHide){return}this.autoHideDelayMs=t;this.autoHideRemainingMs=t;this.autoHideStartedAt=Date.now();this.hideTimeoutId=setTimeout(()=>{this.visible.set(false);this.hideTimeoutId=null;void this.runActions("autoHide")},t)}clearAutoHide(){if(this.hideTimeoutId===null){return}clearTimeout(this.hideTimeoutId);this.hideTimeoutId=null}resolveAutoHideDelayMs(){const t=Number(this.model()?.autoHideMs);if(Number.isFinite(t)&&t>=0){return Math.floor(t)}return 7e3}async runActions(t){const i={action:t,value:this.model().value,item:null,row:null};const s=String(this.model().name??"").trim();if(s){i[s]=this.model().value}await this.elementActionService.runActions(this.model(),this.model().events??[],"click",i)}resolveVariant(){const t=String(this.model()?.variant??"info").trim().toLowerCase();if(t==="error"||t==="danger"||t==="risk"){return"error"}if(t==="warning"||t==="warn"){return"warning"}if(t==="success"||t==="ok"){return"success"}if(t==="info"||t==="neutral"){return"info"}return"info"}resolvePosition(){const t=String(this.model()?.position??"top-right").trim().toLowerCase();if(t==="top-left"||t==="top-center"||t==="top-right"||t==="bottom-left"||t==="bottom-center"||t==="bottom-right"){return t}return"top-right"}static ɵfac=o.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.4",ngImport:o,type:n,deps:[],target:o.ɵɵFactoryTarget.Component});static ɵcmp=o.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.4",type:n,isStandalone:true,selector:"toast-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:o,template:"<element-wrapper [model]=\"model()\">\n @if (visible()) {\n <section class=\"nvb-toast-shell\" [ngClass]=\"shellClass()\" [attr.data-testid]=\"tid('root')\">\n <article\n class=\"nvb-toast\"\n [ngClass]=\"variantClass()\"\n [class.nvb-toast--no-icon]=\"!model().showIcon\"\n [attr.role]=\"toastRole()\"\n [attr.aria-live]=\"toastAriaLive()\"\n (click)=\"onToastClick($event)\"\n (mouseenter)=\"pauseAutoHide()\"\n (mouseleave)=\"resumeAutoHide()\"\n (focusin)=\"pauseAutoHide()\"\n (focusout)=\"resumeAutoHide()\"\n >\n @if (model().showIcon) {\n <span class=\"nvb-toast__media\" aria-hidden=\"true\">\n <nvb-icon class=\"nvb-toast__icon\" [name]=\"iconName()\"></nvb-icon>\n </span>\n }\n\n <div class=\"nvb-toast__content\">\n <h4 class=\"nvb-toast__title\">{{ resolvedTitle() | dynamicText: model() }}</h4>\n\n @if (resolvedDescription()) {\n <p class=\"nvb-toast__description\">\n {{ resolvedDescription() | dynamicText: model() }}\n </p>\n }\n </div>\n\n @if (showActionButton()) {\n <button type=\"button\" class=\"nvb-toast__action\" (click)=\"onActionClick($event)\">\n {{ model().actionText | dynamicText: model() }}\n </button>\n }\n\n @if (model().dismissible) {\n <button\n type=\"button\"\n class=\"nvb-toast__dismiss\"\n (click)=\"onDismissClick($event)\"\n [attr.aria-label]=\"dismissLabel()\"\n >\n <nvb-icon name=\"close\"></nvb-icon>\n </button>\n }\n </article>\n </section>\n }\n</element-wrapper>\n",styles:[":host{display:block;width:100%;font-family:var(--nvb-font-family)}.nvb-toast-shell{position:fixed;z-index:2147483500;width:min(360px,100vw - 32px);pointer-events:none;display:grid;gap:16px}.nvb-toast-shell--editor{position:relative;inset:auto;width:min(360px,100%);max-width:100%;margin-top:8px}.nvb-toast-shell--top-left{top:16px;left:16px}.nvb-toast-shell--top-center{top:16px;left:50%;transform:translate(-50%)}.nvb-toast-shell--top-right{top:16px;right:16px}.nvb-toast-shell--bottom-left{bottom:16px;left:16px}.nvb-toast-shell--bottom-center{bottom:16px;left:50%;transform:translate(-50%)}.nvb-toast-shell--bottom-right{bottom:16px;right:16px}.nvb-toast{--nvb-toast-icon-color: var(--nvb-color-primary-600);pointer-events:auto;position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) 24px;gap:4px 12px;align-items:start;min-height:52px;padding:12px;border:1px solid var(--nvb-color-neutral-200);border-radius:var(--nvb-toast-radius, 4px);background:var(--nvb-color-neutral-000);color:var(--nvb-color-neutral-800);box-shadow:0 8px 16px color-mix(in oklab,var(--nvb-color-neutral-950) 14%,transparent),0 0 2px color-mix(in oklab,var(--nvb-color-neutral-950) 12%,transparent);overflow:hidden}.nvb-toast__media{grid-column:1;grid-row:1/span 2;width:20px;height:20px;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;color:var(--nvb-toast-icon-color);flex:0 0 auto}.nvb-toast__icon{font-size:20px;line-height:1}.nvb-toast__content{grid-column:2;min-width:0;display:grid;gap:2px}.nvb-toast--no-icon .nvb-toast__content,.nvb-toast--no-icon .nvb-toast__action{grid-column:1/3}.nvb-toast__title{margin:0;font-size:14px;font-weight:600;line-height:20px;letter-spacing:0;color:var(--nvb-color-neutral-900)}.nvb-toast__description{margin:0;font-size:13px;line-height:18px;color:var(--nvb-color-neutral-600);overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.nvb-toast__action{grid-column:2;justify-self:start;min-height:22px;padding:0;border:0;border-radius:var(--nvb-button-radius, 4px);background:transparent;color:var(--nvb-color-primary-700);font:inherit;font-size:13px;line-height:20px;font-weight:600;cursor:pointer;white-space:nowrap}.nvb-toast__action:hover{color:var(--nvb-color-primary-800);text-decoration:underline;text-underline-offset:2px}.nvb-toast__action:focus-visible,.nvb-toast__dismiss:focus-visible{outline:0;box-shadow:var(--nvb-focus-ring)}.nvb-toast__dismiss{grid-column:3;grid-row:1;width:24px;height:24px;margin:-2px -2px 0 0;border:1px solid transparent;border-radius:var(--nvb-button-radius, 4px);background:transparent;color:var(--nvb-color-neutral-600);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .16s ease,color .16s ease}.nvb-toast__dismiss:hover{background:var(--nvb-color-neutral-100);color:var(--nvb-color-neutral-900)}.nvb-toast--info{--nvb-toast-icon-color: var(--nvb-color-primary-600)}.nvb-toast--success{--nvb-toast-icon-color: var(--nvb-color-success-700)}.nvb-toast--warning{--nvb-toast-icon-color: var(--nvb-color-warning-700)}.nvb-toast--error{--nvb-toast-icon-color: var(--nvb-color-risk-700)}@media(max-width:520px){.nvb-toast-shell{width:min(360px,100vw - 24px)}}\n"],dependencies:[{kind:"component",type:l,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"directive",type:r,selector:"[ngClass]",inputs:["class","ngClass"]},{kind:"component",type:c,selector:"nvb-icon",inputs:["name","svg","ariaLabel"]},{kind:"pipe",type:d,name:"dynamicText"}],changeDetection:o.ChangeDetectionStrategy.OnPush})}o.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.4",ngImport:o,type:n,decorators:[{type:m,args:[{selector:"toast-element",changeDetection:u.OnPush,imports:[l,r,d,c],template:"<element-wrapper [model]=\"model()\">\n @if (visible()) {\n <section class=\"nvb-toast-shell\" [ngClass]=\"shellClass()\" [attr.data-testid]=\"tid('root')\">\n <article\n class=\"nvb-toast\"\n [ngClass]=\"variantClass()\"\n [class.nvb-toast--no-icon]=\"!model().showIcon\"\n [attr.role]=\"toastRole()\"\n [attr.aria-live]=\"toastAriaLive()\"\n (click)=\"onToastClick($event)\"\n (mouseenter)=\"pauseAutoHide()\"\n (mouseleave)=\"resumeAutoHide()\"\n (focusin)=\"pauseAutoHide()\"\n (focusout)=\"resumeAutoHide()\"\n >\n @if (model().showIcon) {\n <span class=\"nvb-toast__media\" aria-hidden=\"true\">\n <nvb-icon class=\"nvb-toast__icon\" [name]=\"iconName()\"></nvb-icon>\n </span>\n }\n\n <div class=\"nvb-toast__content\">\n <h4 class=\"nvb-toast__title\">{{ resolvedTitle() | dynamicText: model() }}</h4>\n\n @if (resolvedDescription()) {\n <p class=\"nvb-toast__description\">\n {{ resolvedDescription() | dynamicText: model() }}\n </p>\n }\n </div>\n\n @if (showActionButton()) {\n <button type=\"button\" class=\"nvb-toast__action\" (click)=\"onActionClick($event)\">\n {{ model().actionText | dynamicText: model() }}\n </button>\n }\n\n @if (model().dismissible) {\n <button\n type=\"button\"\n class=\"nvb-toast__dismiss\"\n (click)=\"onDismissClick($event)\"\n [attr.aria-label]=\"dismissLabel()\"\n >\n <nvb-icon name=\"close\"></nvb-icon>\n </button>\n }\n </article>\n </section>\n }\n</element-wrapper>\n",styles:[":host{display:block;width:100%;font-family:var(--nvb-font-family)}.nvb-toast-shell{position:fixed;z-index:2147483500;width:min(360px,100vw - 32px);pointer-events:none;display:grid;gap:16px}.nvb-toast-shell--editor{position:relative;inset:auto;width:min(360px,100%);max-width:100%;margin-top:8px}.nvb-toast-shell--top-left{top:16px;left:16px}.nvb-toast-shell--top-center{top:16px;left:50%;transform:translate(-50%)}.nvb-toast-shell--top-right{top:16px;right:16px}.nvb-toast-shell--bottom-left{bottom:16px;left:16px}.nvb-toast-shell--bottom-center{bottom:16px;left:50%;transform:translate(-50%)}.nvb-toast-shell--bottom-right{bottom:16px;right:16px}.nvb-toast{--nvb-toast-icon-color: var(--nvb-color-primary-600);pointer-events:auto;position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) 24px;gap:4px 12px;align-items:start;min-height:52px;padding:12px;border:1px solid var(--nvb-color-neutral-200);border-radius:var(--nvb-toast-radius, 4px);background:var(--nvb-color-neutral-000);color:var(--nvb-color-neutral-800);box-shadow:0 8px 16px color-mix(in oklab,var(--nvb-color-neutral-950) 14%,transparent),0 0 2px color-mix(in oklab,var(--nvb-color-neutral-950) 12%,transparent);overflow:hidden}.nvb-toast__media{grid-column:1;grid-row:1/span 2;width:20px;height:20px;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;color:var(--nvb-toast-icon-color);flex:0 0 auto}.nvb-toast__icon{font-size:20px;line-height:1}.nvb-toast__content{grid-column:2;min-width:0;display:grid;gap:2px}.nvb-toast--no-icon .nvb-toast__content,.nvb-toast--no-icon .nvb-toast__action{grid-column:1/3}.nvb-toast__title{margin:0;font-size:14px;font-weight:600;line-height:20px;letter-spacing:0;color:var(--nvb-color-neutral-900)}.nvb-toast__description{margin:0;font-size:13px;line-height:18px;color:var(--nvb-color-neutral-600);overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.nvb-toast__action{grid-column:2;justify-self:start;min-height:22px;padding:0;border:0;border-radius:var(--nvb-button-radius, 4px);background:transparent;color:var(--nvb-color-primary-700);font:inherit;font-size:13px;line-height:20px;font-weight:600;cursor:pointer;white-space:nowrap}.nvb-toast__action:hover{color:var(--nvb-color-primary-800);text-decoration:underline;text-underline-offset:2px}.nvb-toast__action:focus-visible,.nvb-toast__dismiss:focus-visible{outline:0;box-shadow:var(--nvb-focus-ring)}.nvb-toast__dismiss{grid-column:3;grid-row:1;width:24px;height:24px;margin:-2px -2px 0 0;border:1px solid transparent;border-radius:var(--nvb-button-radius, 4px);background:transparent;color:var(--nvb-color-neutral-600);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .16s ease,color .16s ease}.nvb-toast__dismiss:hover{background:var(--nvb-color-neutral-100);color:var(--nvb-color-neutral-900)}.nvb-toast--info{--nvb-toast-icon-color: var(--nvb-color-primary-600)}.nvb-toast--success{--nvb-toast-icon-color: var(--nvb-color-success-700)}.nvb-toast--warning{--nvb-toast-icon-color: var(--nvb-color-warning-700)}.nvb-toast--error{--nvb-toast-icon-color: var(--nvb-color-risk-700)}@media(max-width:520px){.nvb-toast-shell{width:min(360px,100vw - 24px)}}\n"]}]}],propDecorators:{model:[{type:o.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{n as ToastElement};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as s,b as i,c as t,d as o,e as r,f as l,g as n,h as E,B as d,i as c,j as S,k as _,l as u,m as T,n as A,o as m,p as I,C as N,q as L,r as M,s as C,t as R,u as g,v as b,w as B,x as p,y as v,z as O,F as V,G as P,H as D,I as x,J as w,K as U,L as y,O as H,P as G,Q as F,R as X,T as W,V as h,W as Y,X as K,Y as k,Z as z,_ as f,$ as Z,a0 as J,a1 as j,a2 as q,a3 as Q,a4 as $,a5 as ee,a6 as ae,a7 as se,a8 as ie,a9 as te,D as oe,aa as re,ab as le,ac as ne,ad as Ee,ae as de,af as ce,ag as Se,ah as _e,E as ue,ai as Te,aj as Ae,ak as me,al as Ie,am as Ne,an as Le,ao as Me,ap as Ce,aq as Re,ar as ge,as as be,at as Be,au as pe,av as ve,aw as Oe,ax as Ve,ay as Pe,az as De,aA as xe,aB as we,aC as Ue,aD as ye,aE as He,aF as Ge,aG as Fe,aH as Xe,aI as We,aJ as he,aK as Ye,aL as Ke,aM as ke,aN as ze,aO as fe,aP as Ze,aQ as Je,aR as je,aS as qe,aT as Qe,aU as $e,aV as ea,aW as aa,aX as sa,aY as ia,aZ as ta,a_ as oa,a$ as ra,b0 as la,b1 as na,M as Ea,b2 as da,b3 as ca,b4 as Sa,b5 as _a,b6 as ua,b7 as Ta,b8 as Aa,b9 as ma,ba as Ia,bb as Na,bc as La,bd as Ma,be as Ca,bf as Ra,bg as ga,bh as ba,bi as Ba,bj as pa,bk as va,bl as Oa,bm as Va,bn as Pa,bo as Da,bp as xa,bq as wa,br as Ua,bs as ya,bt as Ha,bu as Ga,bv as Fa,bw as Xa,bx as Wa,by as ha,bz as Ya,bA as Ka,bB as ka,bC as za,bD as fa,bE as Za,bF as Ja,bG as ja,bH as qa,bI as Qa,bJ as $a,bK as es,bL as as,bM as ss,bN as is,bO as ts,bP as os,bQ as rs,N as ls,bR as ns,bS as Es,bT as ds,bU as cs,bV as Ss,bW as _s,bX as us,bY as Ts,bZ as As,b_ as ms,b$ as Is,c0 as Ns,c1 as Ls,c2 as Ms,c3 as Cs,c4 as Rs,c5 as gs,c6 as bs,c7 as Bs,c8 as ps,c9 as vs,ca as Os,cb as Vs,cc as Ps,cd as Ds,ce as xs,cf as ws,cg as Us,ch as ys,ci as Hs,cj as Gs,ck as Fs,cl as Xs,cm as Ws,cn as hs,co as Ys,cp as Ks,cq as ks,cr as zs,cs as fs,ct as Zs,cu as Js,cv as js,S as qs,cw as Qs,cx as $s,cy as ei,cz as ai,cA as si,cB as ii,cC as ti,cD as oi,cE as ri,cF as li,cG as ni,cH as Ei,cI as di,cJ as ci,cK as Si,cL as _i,cM as ui,cN as Ti,cO as Ai,cP as mi,cQ as Ii,cR as Ni,cS as Li,cT as Mi,cU as Ci,cV as Ri,cW as gi,cX as bi,cY as Bi,cZ as pi,c_ as vi,c$ as Oi,d0 as Vi,d1 as Pi,d2 as Di,d3 as xi,d4 as wi,d5 as Ui,U as yi,d6 as Hi,d7 as Gi,d8 as Fi,d9 as Xi,da as Wi,db as hi,dc as Yi,dd as Ki,de as ki,df as zi,dg as fi,dh as Zi,di as Ji,dj as ji,dk as qi,dl as Qi,dm as $i,dn as et,dp as at,dq as st,dr as it,ds as tt,dt as ot,du as rt,dv as lt,dw as nt,dx as Et,dy as dt,dz as ct,dA as St,dB as _t,dC as ut,dD as Tt,dE as At,dF as mt,dG as It,dH as Nt,dI as Lt,dJ as Mt,dK as Ct,dL as Rt,dM as gt,dN as bt,dO as Bt,dP as pt,dQ as vt,dR as Ot,dS as Vt,dT as Pt,dU as Dt,dV as xt,dW as wt,dX as Ut,dY as yt,dZ as Ht,d_ as Gt,d$ as Ft,e0 as Xt,e1 as Wt,e2 as ht,e3 as Yt,e4 as Kt,e5 as kt,e6 as zt,e7 as ft,e8 as Zt,e9 as Jt}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-CY_sp0Pm.mjs";export{s as ALIGN_CLASS_MAP,i as ALIGN_CLASS_PREFIX,t as APPLICATION_LOCALE_VALUE,o as AccordionElement,r as AccordionModel,l as ApplicationLocaleService,n as AutocompleteModel,E as AvatarModel,d as BLOCK_TAGS,c as BUILT_IN_STRUCTURE_MIGRATIONS,S as BUILT_IN_TABLE_CELL_ELEMENT_TYPES,_ as BadgeModel,u as BreadcrumbsModel,T as BuilderModel,A as BuilderPageDisplayModeEnum,m as BuilderTabRegistryService,I as ButtonModel,N as COLOR_CLASS_PREFIX,L as CURRENT_SCHEMA_VERSION,M as ChartModel,C as CheckboxInputModel,R as ChoiceModel,g as ColumnFragmentModeEnum,b as ColumnModel,B as ComponentRegistryService,p as ConfirmDialog,v as CreatorStructureService,O as CustomHtmlModel,V as DATA_JSON_CAPABLE_ELEMENT_TYPES,P as DEFAULT_FONT,D as DEFAULT_FONT_CLASS,x as DEFAULT_HIGHLIGHT_COLOR,w as DEFAULT_LINE_HEIGHT_VALUE,U as DEFAULT_MOBILE_BREAKPOINT,y as DEFAULT_SIZE_CLASS,H as DEFAULT_SIZE_VALUE,G as DEFAULT_TABLET_BREAKPOINT,F as DEFAULT_TABLE_COLUMNS,X as DEFAULT_TABLE_ROWS,W as DEFAULT_TEXT_COLOR,h as DataService,Y as DataSourceModel,K as DataSourceService,k as DatePickerModel,z as DateRangeModel,f as DialogDragController,Z as DialogElement,J as DialogModel,j as DividerModel,q as DomInstrumentationService,Q as DragAndDropService,$ as DragAutoScrollService,ee as DynamicPanel,ae as DynamicPanelModel,se as DynamicTableColumnModel,ie as DynamicTableModel,te as DynamicTableRowColumnModel,oe as DynamicTextPipe,re as ELEMENT_ROW_CONTEXT_KEY,le as ELEMENT_ROW_SCOPE_PATH_KEY,ne as EN_UI_DICTIONARY,Ee as EXCLUDE_FROM_DATA_JSON_KEY,de as ElementActionButtonToneEnum,ce as ElementActionButtonVariantEnum,Se as ElementActionDialogOperationEnum,_e as ElementActionResponseModeEnum,ue as ElementActionService,Te as ElementActionSetValueModeEnum,Ae as ElementActionToastPositionEnum,me as ElementActionToastVariantEnum,Ie as ElementActionTriggerEnum,Ne as ElementActionTypeEnum,Le as ElementBaseModel,Me as ElementContentBox,Ce as ElementContentRow,Re as ElementDataSourceUseForEnum,ge as ElementDefaultsService,be as ElementExecutionModeEnum,Be as ElementFocusService,pe as ElementTypesEnum,ve as ElementsService,Oe as EmptyBlockElement,Ve as EmptyBlockModel,Pe as EventService,De as ExpressionService,xe as FONT_CLASS_MAP,we as FONT_CLASS_PREFIX,Ue as FeaturePackRegistryService,ye as FileUploadModel,He as ForgeInitializerService,Ge as HIGHLIGHT_CLASS_PREFIX,Fe as HIGHLIGHT_SWATCHES,Xe as HISTORY_COALESCE_MS,We as HeaderModel,he as HeaderTabEnum,Ye as INDENT_CLASS_PREFIX,Ke as INLINE_TAGS,ke as IconModel,ze as IconSvgService,fe as IframeModel,Ze as ImageModel,Je as LEGACY_LINE_HEIGHT_CLASS_MAP,je as LEGACY_SCHEMA_VERSION,qe as LEGACY_SIZE_CLASS_MAP,Qe as LINE_HEIGHT_CLASS_MAP,$e as LINE_HEIGHT_CLASS_PREFIX,ea as LINE_HEIGHT_OPTION_VALUES,aa as LOCALE_CHOICES,sa as ListBoxModel,ia as ListGridModel,ta as LocalizationService,oa as MANAGED_STRUCTURE_SETTING_KEYS,ra as MARK_TAG_MAP,la as MAX_HISTORY_ENTRIES,na as MAX_INDENT_LEVEL,Ea as MarkupSecurityService,da as MessageCardModel,ca as ModelService,Sa as MultiSelectInputModel,_a as NGX_VIEW_BUILDER_AI_ACTION_TYPES,ua as NGX_VIEW_BUILDER_AI_API_VERSION,Ta as NGX_VIEW_BUILDER_AI_AUTOMATION_ACTION_TYPES,Aa as NGX_VIEW_BUILDER_AI_ROW_CONTAINERS,ma as NGX_VIEW_BUILDER_AI_TAB_CONTAINERS,Ia as NGX_VIEW_BUILDER_AI_TEMPLATES_CAPABILITY,Na as NGX_VIEW_BUILDER_AI_VALIDATOR_TYPES,La as NGX_VIEW_BUILDER_ANY_ELEMENT_TYPE,Ma as NGX_VIEW_BUILDER_BRIDGE_PROTOCOL_VERSION,Ca as NGX_VIEW_BUILDER_PROJECT_LAYER,Ra as NGX_VIEW_BUILDER_UI_TRANSLATIONS,ga as NVB_TEXT_CONTEXT_KEY,ba as NgxViewBuilder,Ba as NgxViewBuilderActionExecutorService,pa as NgxViewBuilderAiApiService,va as NgxViewBuilderAlignEnum,Oa as NgxViewBuilderApiService,Va as NgxViewBuilderAutomationActionTypeEnum,Pa as NgxViewBuilderAutomationService,Da as NgxViewBuilderBuilderTabRenderModeEnum,xa as NgxViewBuilderChromePositionEnum,wa as NgxViewBuilderDataSourceTypeEnum,Ua as NgxViewBuilderDialogCloseReasonEnum,ya as NgxViewBuilderExecutionReasonEnum,Ha as NgxViewBuilderHeadlessService,Ga as NgxViewBuilderInteractionStatusEnum,Fa as NgxViewBuilderMcpBridgeService,Xa as NgxViewBuilderPageNavigationModeEnum,Wa as NgxViewBuilderPreviewModeEnum,ha as NgxViewBuilderProcessService,Ya as NgxViewBuilderRenderModeEnum,Ka as NgxViewBuilderRenderPhaseEnum,ka as NgxViewBuilderRenderer,za as NgxViewBuilderRuleExecutedBranchEnum,fa as NgxViewBuilderRuleRunModeEnum,Za as NgxViewBuilderRulesEngineService,Ja as NgxViewBuilderRuntime,ja as NgxViewBuilderSaveRequestedSourceEnum,qa as NgxViewBuilderTableSettingsSourceEnum,Qa as NgxViewBuilderThemeModeEnum,$a as NgxViewBuilderTriggerEngineService,es as NgxViewBuilderTriggerEventEnum,as as NgxViewBuilderValidator,ss as NgxViewBuilderWebsocketMessageModeEnum,is as NumberInputModel,ts as NumberStepperModel,os as NvbElement,rs as NvbElementContextService,ls as NvbIcon,ns as NvbRichTextEditor,Es as NvbRows,ds as NvbScope,cs as NvbSelect,Ss as NvbStyleOutlet,_s as NvbTab,us as PHONE_COUNTRY_OPTIONS,Ts as PHONE_COUNTRY_PROPERTY_CHOICES,As as PageElement,ms as PageTitleModel,Is as PanelElement,Ns as PanelModel,Ls as PhoneInputModel,Ms as PreviewRendererService,Cs as ProgressBarModel,Rs as ProgressFlowElement,gs as ProgressFlowModel,bs as PropertyModel,Bs as RICH_TEXT_DEFAULT_TOOLBAR_TOOLS,ps as RICH_TEXT_TOOLBAR_ICONS,vs as RICH_TEXT_TOOLBAR_TOOLS,Os as ROOT_BLOCK_TAGS,Vs as RadioInputModel,Ps as RendererService,Ds as RichTextModel,xs as RouterOutletModel,ws as RowModel,Us as RuntimeDynamicPanel,ys as RuntimeVariableSourceTypeEnum,Hs as RuntimeVariablesService,Gs as SIZE_CLASS_MAP,Fs as SIZE_CLASS_PREFIX,Xs as SIZE_OPTION_VALUES,Ws as SPECIAL_CHARACTERS,hs as SelectButtonModel,Ys as SelectInputModel,Ks as SettingsModel,ks as SignaturePadModel,zs as SingleCheckboxModel,fs as SliderModel,Zs as SpacerModel,Js as SplitterElement,js as SplitterModel,qs as StateService,Qs as StatsCardModel,$s as StructureMigrationService,ei as StructureModel,ai as StructureService,si as TABLE_BORDER_CLASS_PREFIX,ii as TABLE_CELL_BACKGROUND_SWATCHES,ti as TABLE_CELL_VALIGN_CLASS_MAP,oi as TABLE_CELL_VALIGN_CLASS_PREFIX,ri as TABLE_CLASS,li as TABLE_PICKER_COLUMNS,ni as TABLE_PICKER_ROWS,Ei as TASK_ITEM_CHECKED_CLASS,di as TASK_ITEM_CLASS,ci as TASK_ITEM_MARKER_WIDTH,Si as TASK_LIST_CLASS,_i as TableCellElementRegistryService,ui as TableColumnAlignEnum,Ti as TableColumnCellActionsDisplayModeEnum,Ai as TableColumnTypeEnum,mi as TableFilterControlTypeEnum,Ii as TableFilterOptionsSourceTypeEnum,Ni as TableInlineEditStartModeEnum,Li as TableInlineEditorTypeEnum,Mi as TableModel,Ci as TableRowActionsDropdownButtonStyleEnum,Ri as TableStatusToneEnum,gi as TabsElement,bi as TabsModel,Bi as TabsProModel,pi as TemplateEngineService,vi as TemplateStorageModeEnum,Oi as TextAreaModel,Vi as TextInputModel,Pi as TimePickerModel,Di as ToastModel,xi as ToggleSwitchModel,wi as TooltipComponent,Ui as UiTranslatePipe,yi as UiTranslationService,Hi as ValidatorService,Gi as ValueChangeTriggerEnum,Fi as VideoModel,Xi as applyDynamicPanelRowNumberingContext,Wi as applyElementRowContext,hi as applyRuntimeNumberingContext,Yi as applyStructureMigrations,Ki as applyViewportBreakpoints,ki as bridgeNgxViewBuilderApiEvents,zi as buildElementRowRuntimeContext,fi as buildFocusKey,Zi as buildResponsiveColumnStyle,Ji as clearStructureMigrationNotice,ji as cloneRecord,qi as cloneValue,Qi as composeCssSize,$i as configureStructureMigrations,et as createUuid,at as describeDragEvent,st as describeElementModel,it as describeEventTarget,tt as describeMouseEvent,ot as elements,rt as getMobileBreakpoint,lt as getRuntimeTextContext,nt as getStructureMigrationConfig,Et as getTabletBreakpoint,dt as getViewportContentWidth,ct as isDataJsonCapableElementType,St as isDragDebugEnabled,_t as isMobileViewport,ut as isMobileWidth,Tt as isPlainRecord,At as isRelativeResponsiveWidth,mt as isTabletViewport,It as isTabletWidth,Nt as lastStructureMigration,Lt as logDragDebug,Mt as logDragDebugThrottled,Ct as migrateStructure,Rt as normalizeBreakpoint,gt as normalizeCssSizeUnit,bt as normalizeResponsiveCssSize,Bt as normalizeStringList,pt as provideNgxViewBuilderExtensions,vt as provideNgxViewBuilderMigrations,Ot as provideNgxViewBuilderProjectLayer,Vt as provideNgxViewBuilderProjectLayers,Pt as provideNgxViewBuilderRuntime,Dt as provideNgxViewBuilderUiTranslations,xt as pruneStructureSettings,wt as readSchemaVersion,Ut as recordStructureMigration,yt as resetStructureMigrationConfig,Ht as resolveAllowedPhoneCountries,Gt as resolveCssSizeSetting,Ft as resolveElementRowContext,Xt as resolveElementRowScope,Wt as resolveElementRowScopedPath,ht as resolveFixedViewport,Yt as resolvePhoneCountry,Kt as resolveResponsiveDisplayWidth,kt as resolveResponsiveWidth,zt as resolveRuntimeTextContextValue,ft as resolveStructureSettings,Zt as setElementRowContext,Jt as setViewportContentWidth};
|
|
1
|
+
import{A as s,b as i,d as t,e as o,f as r,g as l,h as n,i as E,B as d,j as c,k as S,l as _,m as u,n as T,o as A,p as m,q as I,C as N,r as L,s as M,t as C,u as R,v as g,w as b,x as B,y as p,z as v,F as O,G as V,H as P,I as D,J as x,K as w,L as U,O as y,P as H,Q as G,R as F,T as X,V as W,W as h,X as Y,Y as K,Z as k,_ as z,$ as f,a0 as Z,a1 as J,a2 as j,a3 as q,a4 as Q,a5 as $,a6 as ee,a7 as ae,a8 as se,a9 as ie,aa as te,D as oe,ab as re,ac as le,ad as ne,ae as Ee,af as de,ag as ce,ah as Se,ai as _e,E as ue,aj as Te,ak as Ae,al as me,am as Ie,an as Ne,ao as Le,ap as Me,aq as Ce,ar as Re,as as ge,at as be,au as Be,av as pe,aw as ve,ax as Oe,ay as Ve,az as Pe,aA as De,aB as xe,aC as we,aD as Ue,aE as ye,aF as He,aG as Ge,aH as Fe,aI as Xe,aJ as We,aK as he,aL as Ye,aM as Ke,aN as ke,aO as ze,aP as fe,aQ as Ze,aR as Je,aS as je,aT as qe,aU as Qe,aV as $e,aW as ea,aX as aa,aY as sa,aZ as ia,a_ as ta,a$ as oa,b0 as ra,b1 as la,b2 as na,M as Ea,b3 as da,b4 as ca,b5 as Sa,b6 as _a,b7 as ua,b8 as Ta,b9 as Aa,ba as ma,bb as Ia,bc as Na,bd as La,be as Ma,bf as Ca,bg as Ra,bh as ga,bi as ba,bj as Ba,bk as pa,bl as va,bm as Oa,bn as Va,bo as Pa,bp as Da,bq as xa,br as wa,bs as Ua,bt as ya,bu as Ha,bv as Ga,bw as Fa,bx as Xa,by as Wa,bz as ha,bA as Ya,bB as Ka,bC as ka,bD as za,bE as fa,bF as Za,bG as Ja,bH as ja,bI as qa,bJ as Qa,bK as $a,bL as es,bM as as,bN as ss,bO as is,bP as ts,bQ as os,bR as rs,N as ls,bS as ns,bT as Es,bU as ds,bV as cs,bW as Ss,bX as _s,bY as us,bZ as Ts,b_ as As,b$ as ms,c0 as Is,c1 as Ns,c2 as Ls,c3 as Ms,c4 as Cs,c5 as Rs,c6 as gs,c7 as bs,c8 as Bs,c9 as ps,ca as vs,cb as Os,cc as Vs,cd as Ps,ce as Ds,cf as xs,cg as ws,ch as Us,ci as ys,cj as Hs,ck as Gs,cl as Fs,cm as Xs,cn as Ws,co as hs,cp as Ys,cq as Ks,cr as ks,cs as zs,ct as fs,cu as Zs,cv as Js,cw as js,S as qs,cx as Qs,cy as $s,cz as ei,cA as ai,cB as si,cC as ii,cD as ti,cE as oi,cF as ri,cG as li,cH as ni,cI as Ei,cJ as di,cK as ci,cL as Si,cM as _i,cN as ui,cO as Ti,cP as Ai,cQ as mi,cR as Ii,cS as Ni,cT as Li,cU as Mi,cV as Ci,cW as Ri,cX as gi,cY as bi,cZ as Bi,c_ as pi,c$ as vi,d0 as Oi,d1 as Vi,d2 as Pi,d3 as Di,d4 as xi,d5 as wi,d6 as Ui,U as yi,d7 as Hi,d8 as Gi,d9 as Fi,da as Xi,db as Wi,dc as hi,dd as Yi,de as Ki,df as ki,dg as zi,dh as fi,di as Zi,dj as Ji,dk as ji,dl as qi,dm as Qi,dn as $i,dp as et,dq as at,dr as st,ds as it,dt as tt,du as ot,dv as rt,dw as lt,dx as nt,dy as Et,dz as dt,dA as ct,dB as St,dC as _t,dD as ut,dE as Tt,dF as At,dG as mt,dH as It,dI as Nt,dJ as Lt,dK as Mt,dL as Ct,dM as Rt,dN as gt,dO as bt,dP as Bt,dQ as pt,dR as vt,dS as Ot,dT as Vt,dU as Pt,dV as Dt,dW as xt,dX as wt,dY as Ut,dZ as yt,d_ as Ht,d$ as Gt,e0 as Ft,e1 as Xt,e2 as Wt,e3 as ht,e4 as Yt,e5 as Kt,e6 as kt,e7 as zt,e8 as ft,e9 as Zt,ea as Jt}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-vepMpo7v.mjs";export{s as ALIGN_CLASS_MAP,i as ALIGN_CLASS_PREFIX,t as APPLICATION_LOCALE_VALUE,o as AccordionElement,r as AccordionModel,l as ApplicationLocaleService,n as AutocompleteModel,E as AvatarModel,d as BLOCK_TAGS,c as BUILT_IN_STRUCTURE_MIGRATIONS,S as BUILT_IN_TABLE_CELL_ELEMENT_TYPES,_ as BadgeModel,u as BreadcrumbsModel,T as BuilderModel,A as BuilderPageDisplayModeEnum,m as BuilderTabRegistryService,I as ButtonModel,N as COLOR_CLASS_PREFIX,L as CURRENT_SCHEMA_VERSION,M as ChartModel,C as CheckboxInputModel,R as ChoiceModel,g as ColumnFragmentModeEnum,b as ColumnModel,B as ComponentRegistryService,p as ConfirmDialog,v as CreatorStructureService,O as CustomHtmlModel,V as DATA_JSON_CAPABLE_ELEMENT_TYPES,P as DEFAULT_FONT,D as DEFAULT_FONT_CLASS,x as DEFAULT_HIGHLIGHT_COLOR,w as DEFAULT_LINE_HEIGHT_VALUE,U as DEFAULT_MOBILE_BREAKPOINT,y as DEFAULT_SIZE_CLASS,H as DEFAULT_SIZE_VALUE,G as DEFAULT_TABLET_BREAKPOINT,F as DEFAULT_TABLE_COLUMNS,X as DEFAULT_TABLE_ROWS,W as DEFAULT_TEXT_COLOR,h as DataService,Y as DataSourceModel,K as DataSourceService,k as DatePickerModel,z as DateRangeModel,f as DialogDragController,Z as DialogElement,J as DialogModel,j as DividerModel,q as DomInstrumentationService,Q as DragAndDropService,$ as DragAutoScrollService,ee as DynamicPanel,ae as DynamicPanelModel,se as DynamicTableColumnModel,ie as DynamicTableModel,te as DynamicTableRowColumnModel,oe as DynamicTextPipe,re as ELEMENT_ROW_CONTEXT_KEY,le as ELEMENT_ROW_SCOPE_PATH_KEY,ne as EN_UI_DICTIONARY,Ee as EXCLUDE_FROM_DATA_JSON_KEY,de as ElementActionButtonToneEnum,ce as ElementActionButtonVariantEnum,Se as ElementActionDialogOperationEnum,_e as ElementActionResponseModeEnum,ue as ElementActionService,Te as ElementActionSetValueModeEnum,Ae as ElementActionToastPositionEnum,me as ElementActionToastVariantEnum,Ie as ElementActionTriggerEnum,Ne as ElementActionTypeEnum,Le as ElementBaseModel,Me as ElementContentBox,Ce as ElementContentRow,Re as ElementDataSourceUseForEnum,ge as ElementDefaultsService,be as ElementExecutionModeEnum,Be as ElementFocusService,pe as ElementTypesEnum,ve as ElementsService,Oe as EmptyBlockElement,Ve as EmptyBlockModel,Pe as EventService,De as ExpressionService,xe as FONT_CLASS_MAP,we as FONT_CLASS_PREFIX,Ue as FeaturePackRegistryService,ye as FileUploadModel,He as ForgeInitializerService,Ge as HIGHLIGHT_CLASS_PREFIX,Fe as HIGHLIGHT_SWATCHES,Xe as HISTORY_COALESCE_MS,We as HeaderModel,he as HeaderTabEnum,Ye as INDENT_CLASS_PREFIX,Ke as INLINE_TAGS,ke as IconModel,ze as IconSvgService,fe as IframeModel,Ze as ImageModel,Je as LEGACY_LINE_HEIGHT_CLASS_MAP,je as LEGACY_SCHEMA_VERSION,qe as LEGACY_SIZE_CLASS_MAP,Qe as LINE_HEIGHT_CLASS_MAP,$e as LINE_HEIGHT_CLASS_PREFIX,ea as LINE_HEIGHT_OPTION_VALUES,aa as LOCALE_CHOICES,sa as ListBoxModel,ia as ListGridModel,ta as LocalizationService,oa as MANAGED_STRUCTURE_SETTING_KEYS,ra as MARK_TAG_MAP,la as MAX_HISTORY_ENTRIES,na as MAX_INDENT_LEVEL,Ea as MarkupSecurityService,da as MessageCardModel,ca as ModelService,Sa as MultiSelectInputModel,_a as NGX_VIEW_BUILDER_AI_ACTION_TYPES,ua as NGX_VIEW_BUILDER_AI_API_VERSION,Ta as NGX_VIEW_BUILDER_AI_AUTOMATION_ACTION_TYPES,Aa as NGX_VIEW_BUILDER_AI_ROW_CONTAINERS,ma as NGX_VIEW_BUILDER_AI_TAB_CONTAINERS,Ia as NGX_VIEW_BUILDER_AI_TEMPLATES_CAPABILITY,Na as NGX_VIEW_BUILDER_AI_VALIDATOR_TYPES,La as NGX_VIEW_BUILDER_ANY_ELEMENT_TYPE,Ma as NGX_VIEW_BUILDER_BRIDGE_PROTOCOL_VERSION,Ca as NGX_VIEW_BUILDER_PROJECT_LAYER,Ra as NGX_VIEW_BUILDER_UI_TRANSLATIONS,ga as NVB_TEXT_CONTEXT_KEY,ba as NgxViewBuilder,Ba as NgxViewBuilderActionExecutorService,pa as NgxViewBuilderAiApiService,va as NgxViewBuilderAlignEnum,Oa as NgxViewBuilderApiService,Va as NgxViewBuilderAutomationActionTypeEnum,Pa as NgxViewBuilderAutomationService,Da as NgxViewBuilderBuilderTabRenderModeEnum,xa as NgxViewBuilderChromePositionEnum,wa as NgxViewBuilderDataSourceTypeEnum,Ua as NgxViewBuilderDialogCloseReasonEnum,ya as NgxViewBuilderExecutionReasonEnum,Ha as NgxViewBuilderHeadlessService,Ga as NgxViewBuilderInteractionStatusEnum,Fa as NgxViewBuilderMcpBridgeService,Xa as NgxViewBuilderPageNavigationModeEnum,Wa as NgxViewBuilderPreviewModeEnum,ha as NgxViewBuilderProcessService,Ya as NgxViewBuilderRenderModeEnum,Ka as NgxViewBuilderRenderPhaseEnum,ka as NgxViewBuilderRenderer,za as NgxViewBuilderRuleExecutedBranchEnum,fa as NgxViewBuilderRuleRunModeEnum,Za as NgxViewBuilderRulesEngineService,Ja as NgxViewBuilderRuntime,ja as NgxViewBuilderSaveRequestedSourceEnum,qa as NgxViewBuilderTableSettingsSourceEnum,Qa as NgxViewBuilderThemeModeEnum,$a as NgxViewBuilderTriggerEngineService,es as NgxViewBuilderTriggerEventEnum,as as NgxViewBuilderValidator,ss as NgxViewBuilderWebsocketMessageModeEnum,is as NumberInputModel,ts as NumberStepperModel,os as NvbElement,rs as NvbElementContextService,ls as NvbIcon,ns as NvbRichTextEditor,Es as NvbRows,ds as NvbScope,cs as NvbSelect,Ss as NvbStyleOutlet,_s as NvbTab,us as PHONE_COUNTRY_OPTIONS,Ts as PHONE_COUNTRY_PROPERTY_CHOICES,As as PageElement,ms as PageTitleModel,Is as PanelElement,Ns as PanelModel,Ls as PhoneInputModel,Ms as PreviewRendererService,Cs as ProgressBarModel,Rs as ProgressFlowElement,gs as ProgressFlowModel,bs as PropertyModel,Bs as RICH_TEXT_DEFAULT_TOOLBAR_TOOLS,ps as RICH_TEXT_TOOLBAR_ICONS,vs as RICH_TEXT_TOOLBAR_TOOLS,Os as ROOT_BLOCK_TAGS,Vs as RadioInputModel,Ps as RendererService,Ds as RichTextModel,xs as RouterOutletModel,ws as RowModel,Us as RuntimeDynamicPanel,ys as RuntimeVariableSourceTypeEnum,Hs as RuntimeVariablesService,Gs as SIZE_CLASS_MAP,Fs as SIZE_CLASS_PREFIX,Xs as SIZE_OPTION_VALUES,Ws as SPECIAL_CHARACTERS,hs as SelectButtonModel,Ys as SelectInputModel,Ks as SettingsModel,ks as SignaturePadModel,zs as SingleCheckboxModel,fs as SliderModel,Zs as SpacerModel,Js as SplitterElement,js as SplitterModel,qs as StateService,Qs as StatsCardModel,$s as StructureMigrationService,ei as StructureModel,ai as StructureService,si as TABLE_BORDER_CLASS_PREFIX,ii as TABLE_CELL_BACKGROUND_SWATCHES,ti as TABLE_CELL_VALIGN_CLASS_MAP,oi as TABLE_CELL_VALIGN_CLASS_PREFIX,ri as TABLE_CLASS,li as TABLE_PICKER_COLUMNS,ni as TABLE_PICKER_ROWS,Ei as TASK_ITEM_CHECKED_CLASS,di as TASK_ITEM_CLASS,ci as TASK_ITEM_MARKER_WIDTH,Si as TASK_LIST_CLASS,_i as TableCellElementRegistryService,ui as TableColumnAlignEnum,Ti as TableColumnCellActionsDisplayModeEnum,Ai as TableColumnTypeEnum,mi as TableFilterControlTypeEnum,Ii as TableFilterOptionsSourceTypeEnum,Ni as TableInlineEditStartModeEnum,Li as TableInlineEditorTypeEnum,Mi as TableModel,Ci as TableRowActionsDropdownButtonStyleEnum,Ri as TableStatusToneEnum,gi as TabsElement,bi as TabsModel,Bi as TabsProModel,pi as TemplateEngineService,vi as TemplateStorageModeEnum,Oi as TextAreaModel,Vi as TextInputModel,Pi as TimePickerModel,Di as ToastModel,xi as ToggleSwitchModel,wi as TooltipComponent,Ui as UiTranslatePipe,yi as UiTranslationService,Hi as ValidatorService,Gi as ValueChangeTriggerEnum,Fi as VideoModel,Xi as applyDynamicPanelRowNumberingContext,Wi as applyElementRowContext,hi as applyRuntimeNumberingContext,Yi as applyStructureMigrations,Ki as applyViewportBreakpoints,ki as bridgeNgxViewBuilderApiEvents,zi as buildElementRowRuntimeContext,fi as buildFocusKey,Zi as buildResponsiveColumnStyle,Ji as clearStructureMigrationNotice,ji as cloneRecord,qi as cloneValue,Qi as composeCssSize,$i as configureStructureMigrations,et as createUuid,at as describeDragEvent,st as describeElementModel,it as describeEventTarget,tt as describeMouseEvent,ot as elements,rt as getMobileBreakpoint,lt as getRuntimeTextContext,nt as getStructureMigrationConfig,Et as getTabletBreakpoint,dt as getViewportContentWidth,ct as isDataJsonCapableElementType,St as isDragDebugEnabled,_t as isMobileViewport,ut as isMobileWidth,Tt as isPlainRecord,At as isRelativeResponsiveWidth,mt as isTabletViewport,It as isTabletWidth,Nt as lastStructureMigration,Lt as logDragDebug,Mt as logDragDebugThrottled,Ct as migrateStructure,Rt as normalizeBreakpoint,gt as normalizeCssSizeUnit,bt as normalizeResponsiveCssSize,Bt as normalizeStringList,pt as provideNgxViewBuilderExtensions,vt as provideNgxViewBuilderMigrations,Ot as provideNgxViewBuilderProjectLayer,Vt as provideNgxViewBuilderProjectLayers,Pt as provideNgxViewBuilderRuntime,Dt as provideNgxViewBuilderUiTranslations,xt as pruneStructureSettings,wt as readSchemaVersion,Ut as recordStructureMigration,yt as resetStructureMigrationConfig,Ht as resolveAllowedPhoneCountries,Gt as resolveCssSizeSetting,Ft as resolveElementRowContext,Xt as resolveElementRowScope,Wt as resolveElementRowScopedPath,ht as resolveFixedViewport,Yt as resolvePhoneCountry,Kt as resolveResponsiveDisplayWidth,kt as resolveResponsiveWidth,zt as resolveRuntimeTextContextValue,ft as resolveStructureSettings,Zt as setElementRowContext,Jt as setViewportContentWidth};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngxviewbuilder/runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Native Angular runtime for NGX View Builder: renders forms, dashboards, data tables and guided flows defined as JSON.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"homepage": "https://ngxviewbuilder.io",
|
package/styles/tokens.css
CHANGED
|
@@ -151,18 +151,18 @@
|
|
|
151
151
|
--nvb-color-primary-800: oklch(91.21% 0.0518 252.79);
|
|
152
152
|
--nvb-color-primary-900: oklch(95.63% 0.0247 251.98);
|
|
153
153
|
--nvb-color-primary-950: oklch(98.04% 0.0104 251.42);
|
|
154
|
-
--nvb-color-neutral-000: oklch(
|
|
155
|
-
--nvb-color-neutral-050: oklch(
|
|
156
|
-
--nvb-color-neutral-100: oklch(
|
|
157
|
-
--nvb-color-neutral-200: oklch(
|
|
158
|
-
--nvb-color-neutral-300: oklch(
|
|
159
|
-
--nvb-color-neutral-400: oklch(
|
|
160
|
-
--nvb-color-neutral-500: oklch(
|
|
161
|
-
--nvb-color-neutral-600: oklch(
|
|
162
|
-
--nvb-color-neutral-700: oklch(
|
|
163
|
-
--nvb-color-neutral-800: oklch(
|
|
164
|
-
--nvb-color-neutral-900: oklch(
|
|
165
|
-
--nvb-color-neutral-950: oklch(
|
|
154
|
+
--nvb-color-neutral-000: oklch(19.00% 0.0060 286.00);
|
|
155
|
+
--nvb-color-neutral-050: oklch(23.00% 0.0070 286.00);
|
|
156
|
+
--nvb-color-neutral-100: oklch(27.00% 0.0080 286.00);
|
|
157
|
+
--nvb-color-neutral-200: oklch(38.00% 0.0090 286.00);
|
|
158
|
+
--nvb-color-neutral-300: oklch(49.50% 0.0100 286.00);
|
|
159
|
+
--nvb-color-neutral-400: oklch(58.00% 0.0100 286.00);
|
|
160
|
+
--nvb-color-neutral-500: oklch(65.00% 0.0090 286.00);
|
|
161
|
+
--nvb-color-neutral-600: oklch(74.00% 0.0070 286.00);
|
|
162
|
+
--nvb-color-neutral-700: oklch(82.00% 0.0050 286.00);
|
|
163
|
+
--nvb-color-neutral-800: oklch(88.00% 0.0040 286.00);
|
|
164
|
+
--nvb-color-neutral-900: oklch(93.00% 0.0030 286.00);
|
|
165
|
+
--nvb-color-neutral-950: oklch(97.00% 0.0020 286.00);
|
|
166
166
|
--nvb-color-risk-050: oklch(25.26% 0.0866 26);
|
|
167
167
|
--nvb-color-risk-100: oklch(39.96% 0.1348 25.77);
|
|
168
168
|
--nvb-color-risk-200: oklch(44.1% 0.1603 26.89);
|
|
@@ -218,18 +218,18 @@
|
|
|
218
218
|
--nvb-color-info-800: oklch(89.99% 0.0556 231.68);
|
|
219
219
|
--nvb-color-info-900: oklch(95.35% 0.024 236.81);
|
|
220
220
|
--nvb-color-info-950: oklch(97.67% 0.0127 236.62);
|
|
221
|
-
--nvb-color-text-000: oklch(
|
|
222
|
-
--nvb-color-text-050: oklch(
|
|
223
|
-
--nvb-color-text-100: oklch(
|
|
224
|
-
--nvb-color-text-200: oklch(
|
|
225
|
-
--nvb-color-text-300: oklch(
|
|
226
|
-
--nvb-color-text-400: oklch(
|
|
227
|
-
--nvb-color-text-500: oklch(
|
|
228
|
-
--nvb-color-text-600: oklch(
|
|
229
|
-
--nvb-color-text-700: oklch(
|
|
230
|
-
--nvb-color-text-800: oklch(
|
|
231
|
-
--nvb-color-text-900: oklch(
|
|
232
|
-
--nvb-color-text-950: oklch(
|
|
221
|
+
--nvb-color-text-000: oklch(19.00% 0.0060 286.00);
|
|
222
|
+
--nvb-color-text-050: oklch(23.00% 0.0070 286.00);
|
|
223
|
+
--nvb-color-text-100: oklch(27.00% 0.0080 286.00);
|
|
224
|
+
--nvb-color-text-200: oklch(38.00% 0.0090 286.00);
|
|
225
|
+
--nvb-color-text-300: oklch(49.50% 0.0100 286.00);
|
|
226
|
+
--nvb-color-text-400: oklch(58.00% 0.0100 286.00);
|
|
227
|
+
--nvb-color-text-500: oklch(65.00% 0.0090 286.00);
|
|
228
|
+
--nvb-color-text-600: oklch(74.00% 0.0070 286.00);
|
|
229
|
+
--nvb-color-text-700: oklch(82.00% 0.0050 286.00);
|
|
230
|
+
--nvb-color-text-800: oklch(88.00% 0.0040 286.00);
|
|
231
|
+
--nvb-color-text-900: oklch(93.00% 0.0030 286.00);
|
|
232
|
+
--nvb-color-text-950: oklch(97.00% 0.0020 286.00);
|
|
233
233
|
--nvb-radius-sm: 2px;
|
|
234
234
|
--nvb-radius-md: 4px;
|
|
235
235
|
--nvb-radius-lg: 8px;
|
|
@@ -276,13 +276,37 @@
|
|
|
276
276
|
color-scheme: light;
|
|
277
277
|
background-color: var(--nvb-surface, var(--nvb-color-neutral-000));
|
|
278
278
|
color: var(--nvb-color-neutral-800);
|
|
279
|
+
|
|
280
|
+
/* Scrollbars, written in tokens so they flip with the theme like everything else.
|
|
281
|
+
The track is transparent on purpose: every scroller then shows its own panel
|
|
282
|
+
background through it, instead of a second surface colour that has to be kept in
|
|
283
|
+
step with whatever the panel happens to use. Only the thumb is drawn, in the same
|
|
284
|
+
token the control borders use, so it clears 3:1 against the surface and reads as
|
|
285
|
+
something you can grab. `scrollbar-color` is inherited, so this one declaration
|
|
286
|
+
covers every scroller below the root. */
|
|
287
|
+
scrollbar-color: var(--nvb-color-neutral-300) transparent;
|
|
279
288
|
}
|
|
280
289
|
|
|
281
290
|
/* Both declarations above are written in tokens, so the dark theme flips them for free:
|
|
282
291
|
`--nvb-color-neutral-000` becomes the dark surface and `--nvb-color-neutral-800` the light
|
|
283
|
-
text. Only the colour scheme has to be said again, since it is not a token.
|
|
292
|
+
text. Only the colour scheme has to be said again, since it is not a token.
|
|
293
|
+
|
|
294
|
+
The nested selectors matter for the designer, which carries the theme marker on its
|
|
295
|
+
shadow host and puts `.nvb-root` on the layout div one level inside it. Without them
|
|
296
|
+
that inner `.nvb-root` matches the light rule above, re-declares `color-scheme: light`
|
|
297
|
+
over the dark value it inherited, and every browser drawn part below it - scrollbars
|
|
298
|
+
above all - comes out light on a dark panel. The tokens survive that only because the
|
|
299
|
+
designer re-applies them inline; `color-scheme` is not a custom property, so nothing
|
|
300
|
+
repairs it.
|
|
301
|
+
|
|
302
|
+
Deliberately scoped to `:host(...)`, i.e. to the library's own shadow hosts, where the
|
|
303
|
+
same marker also flips the tokens. A bare `[data-theme='dark'] .nvb-root` would catch a
|
|
304
|
+
host application that themes its own page dark without asking for the dark palette, and
|
|
305
|
+
hand it dark scrollbars on light inputs. */
|
|
284
306
|
:host([data-theme='dark']),
|
|
285
307
|
:host(.nvb-dark),
|
|
308
|
+
:host([data-theme='dark']) .nvb-root,
|
|
309
|
+
:host(.nvb-dark) .nvb-root,
|
|
286
310
|
.nvb-root.nvb-dark,
|
|
287
311
|
.nvb-root[data-theme='dark'] {
|
|
288
312
|
color-scheme: dark;
|
|
@@ -402,6 +402,19 @@ interface IElementActionConfig {
|
|
|
402
402
|
navigateTo?: string;
|
|
403
403
|
openInNewTab?: boolean;
|
|
404
404
|
beforeNavigateDataSourceName?: string;
|
|
405
|
+
/**
|
|
406
|
+
* `navigate`: carries the before-navigate data source's response over as Angular
|
|
407
|
+
* Router navigation state instead of (or in addition to) `responseTargetPath`.
|
|
408
|
+
* The target page reads it back via `__route.state` / `{__route.state...}`, with
|
|
409
|
+
* no need for the value to round-trip through the URL.
|
|
410
|
+
*/
|
|
411
|
+
passResponseAsNavigationState?: boolean;
|
|
412
|
+
/**
|
|
413
|
+
* `navigate`: key to nest the response under in navigation state, e.g. `order`
|
|
414
|
+
* exposes it as `__route.state.order`. Leave empty to spread the response object
|
|
415
|
+
* at the state root (`__route.state.<field>`).
|
|
416
|
+
*/
|
|
417
|
+
navigationStateKey?: string;
|
|
405
418
|
dataSourceName?: string;
|
|
406
419
|
/** `sendMessage`: what to push over the websocket source named in `dataSourceName`. */
|
|
407
420
|
messagePayload?: string;
|
|
@@ -3178,6 +3191,13 @@ declare class AccordionModel extends ElementBaseModel {
|
|
|
3178
3191
|
}
|
|
3179
3192
|
|
|
3180
3193
|
declare class DataService {
|
|
3194
|
+
/**
|
|
3195
|
+
* Read for `__language`, never written here. `UiTranslationService` is the one
|
|
3196
|
+
* place the active language lives - `api.setLanguage()`, the `language` input
|
|
3197
|
+
* and `settings.language` all end up there - and it depends on nothing, so
|
|
3198
|
+
* reading it from here cannot cycle.
|
|
3199
|
+
*/
|
|
3200
|
+
private uiTranslationService;
|
|
3181
3201
|
private _data;
|
|
3182
3202
|
private dirtyState;
|
|
3183
3203
|
private baselineSnapshot;
|
|
@@ -3190,6 +3210,8 @@ declare class DataService {
|
|
|
3190
3210
|
getData(): Record<string, unknown>;
|
|
3191
3211
|
getRawData(): Record<string, unknown>;
|
|
3192
3212
|
buildRuntimeContext(additionalContext?: Record<string, unknown> | null, baseData?: Record<string, unknown> | null): Record<string, unknown>;
|
|
3213
|
+
/** The language the view is rendered in, as `api.getLanguage()` reports it. */
|
|
3214
|
+
getActiveLanguage(): string;
|
|
3193
3215
|
setData(data: Record<string, unknown>): void;
|
|
3194
3216
|
setValue(path: string, value: unknown, options?: {
|
|
3195
3217
|
sender?: unknown;
|
|
@@ -4634,6 +4656,13 @@ declare class ElementActionService {
|
|
|
4634
4656
|
private normalizeConditionExpression;
|
|
4635
4657
|
private isInteractionLocked;
|
|
4636
4658
|
private executeNavigate;
|
|
4659
|
+
/**
|
|
4660
|
+
* Turns the before-navigate data source's response into `NavigationExtras.state`,
|
|
4661
|
+
* Angular's built-in way to carry a value into the next route without round-tripping
|
|
4662
|
+
* it through the URL. The target page reads it back via `__route.state`
|
|
4663
|
+
* (see `RuntimeVariablesService`).
|
|
4664
|
+
*/
|
|
4665
|
+
private buildNavigationStateExtras;
|
|
4637
4666
|
private executeBeforeNavigateDataSource;
|
|
4638
4667
|
/**
|
|
4639
4668
|
* Pushes a message into a websocket source that is already connected. The socket stays
|
|
@@ -5873,6 +5902,36 @@ declare class ModelService {
|
|
|
5873
5902
|
registerModel(type: string, modelClass: Type<ElementBaseModel>): void;
|
|
5874
5903
|
registerModels(map: Record<string, Type<ElementBaseModel>>): void;
|
|
5875
5904
|
createModel(type: string, data?: Partial<unknown>, options?: ICreateModelOptions): ElementBaseModel;
|
|
5905
|
+
/**
|
|
5906
|
+
* Strips the live, per-instance members out of a payload that was spread off
|
|
5907
|
+
* another model.
|
|
5908
|
+
*
|
|
5909
|
+
* Every repeater builds its row models by spreading the template model -
|
|
5910
|
+
* `createModel(column.type, { ...column, dataPath, ... })` - and every model
|
|
5911
|
+
* constructor runs `Object.assign(this, data)` *after* its own field
|
|
5912
|
+
* initializers. Whatever the spread carries therefore overwrites the fresh
|
|
5913
|
+
* members the class just made, and the row silently ends up pointing at the
|
|
5914
|
+
* template's:
|
|
5915
|
+
*
|
|
5916
|
+
* - `EventEmitter`s, so `onDataSourceChanged.fire()` for row 2 also runs the
|
|
5917
|
+
* handler every other row registered on that same emitter. One row's option
|
|
5918
|
+
* response then lands in all of them, which is exactly the classifier
|
|
5919
|
+
* bleeding between `dynamicTable` / `dynamicPanel` rows.
|
|
5920
|
+
* - `dataSource` config object, so editing one row's source edits them all.
|
|
5921
|
+
*
|
|
5922
|
+
* Dropping the emitters lets each model keep the one its own field
|
|
5923
|
+
* initializer made; the config objects are copied so a row owns its own.
|
|
5924
|
+
* Keys that are meant to be shared - `parentElement`, `dataService`, the
|
|
5925
|
+
* resolved `dataSource.source` - are passed through untouched.
|
|
5926
|
+
*/
|
|
5927
|
+
private detachFromSourceModel;
|
|
5928
|
+
private isLiveEmitter;
|
|
5929
|
+
/**
|
|
5930
|
+
* A copy the row owns, except for `source`: that one is the resolved
|
|
5931
|
+
* `DataSourceModel` the renderer hangs off the config, and it is shared on
|
|
5932
|
+
* purpose - one definition, many readers.
|
|
5933
|
+
*/
|
|
5934
|
+
private copyElementDataSource;
|
|
5876
5935
|
/**
|
|
5877
5936
|
* The values a type carries straight out of its model class, with no host
|
|
5878
5937
|
* defaults and no structure data mixed in. Cached per type: building one means
|
|
@@ -7744,6 +7803,8 @@ declare class AccordionElement implements OnInit, OnDestroy {
|
|
|
7744
7803
|
readonly itemTemplateScopeId: string;
|
|
7745
7804
|
readonly itemTemplateScopeSelector: string;
|
|
7746
7805
|
model: _angular_core.InputSignal<AccordionModel>;
|
|
7806
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
7807
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
7747
7808
|
column: _angular_core.InputSignal<ColumnModel>;
|
|
7748
7809
|
rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
7749
7810
|
templateContext: _angular_core.InputSignal<Record<string, unknown>>;
|
|
@@ -7813,6 +7874,8 @@ declare class DialogElement implements OnInit, OnDestroy {
|
|
|
7813
7874
|
readonly templateScopeId: string;
|
|
7814
7875
|
readonly templateScopeSelector: string;
|
|
7815
7876
|
model: _angular_core.InputSignal<DialogModel>;
|
|
7877
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
7878
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
7816
7879
|
column: _angular_core.InputSignal<ColumnModel>;
|
|
7817
7880
|
rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
7818
7881
|
templateContext: _angular_core.InputSignal<Record<string, unknown>>;
|
|
@@ -7921,6 +7984,8 @@ declare class DynamicPanel implements OnInit, OnDestroy {
|
|
|
7921
7984
|
readonly templateScopeId: string;
|
|
7922
7985
|
readonly templateScopeSelector: string;
|
|
7923
7986
|
model: _angular_core.InputSignal<ElementBaseModel>;
|
|
7987
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
7988
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
7924
7989
|
column: _angular_core.InputSignal<ColumnModel>;
|
|
7925
7990
|
private dragAutoScrollService;
|
|
7926
7991
|
recursiveData: _angular_core.InputSignal<Record<string, unknown>[]>;
|
|
@@ -8046,6 +8111,8 @@ declare class EmptyBlockElement implements OnInit, OnDestroy {
|
|
|
8046
8111
|
private eventService;
|
|
8047
8112
|
private dragAndDropService;
|
|
8048
8113
|
model: _angular_core.InputSignal<EmptyBlockModel>;
|
|
8114
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
8115
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
8049
8116
|
column: _angular_core.InputSignal<ColumnModel>;
|
|
8050
8117
|
isMobileView: _angular_core.InputSignal<boolean>;
|
|
8051
8118
|
rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
@@ -8125,6 +8192,8 @@ declare class PageElement implements OnInit, OnDestroy {
|
|
|
8125
8192
|
private dragAndDropService;
|
|
8126
8193
|
private readonly elementHoverService;
|
|
8127
8194
|
model: _angular_core.InputSignal<PageElementModel>;
|
|
8195
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
8196
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
8128
8197
|
pageRows: _angular_core.InputSignal<RowModel[]>;
|
|
8129
8198
|
pageIsEmpty: _angular_core.InputSignal<boolean>;
|
|
8130
8199
|
isEditor: _angular_core.InputSignal<boolean>;
|
|
@@ -8157,6 +8226,8 @@ declare class PanelElement implements OnInit, OnDestroy {
|
|
|
8157
8226
|
readonly templateScopeId: string;
|
|
8158
8227
|
readonly templateScopeSelector: string;
|
|
8159
8228
|
model: _angular_core.InputSignal<ElementBaseModel | PanelModel>;
|
|
8229
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
8230
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
8160
8231
|
column: _angular_core.InputSignal<ColumnModel>;
|
|
8161
8232
|
isMobileView: _angular_core.InputSignal<boolean>;
|
|
8162
8233
|
isEmpty: _angular_core.WritableSignal<boolean>;
|
|
@@ -8218,6 +8289,8 @@ declare class ProgressFlowElement implements OnInit, OnDestroy {
|
|
|
8218
8289
|
readonly stepTemplateScopeId: string;
|
|
8219
8290
|
readonly stepTemplateScopeSelector: string;
|
|
8220
8291
|
model: _angular_core.InputSignal<ProgressFlowModel>;
|
|
8292
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
8293
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
8221
8294
|
column: _angular_core.InputSignal<ColumnModel>;
|
|
8222
8295
|
rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
8223
8296
|
templateContext: _angular_core.InputSignal<Record<string, unknown>>;
|
|
@@ -8306,6 +8379,8 @@ declare class ProgressFlowElement implements OnInit, OnDestroy {
|
|
|
8306
8379
|
|
|
8307
8380
|
declare class SplitterElement implements OnInit, OnDestroy {
|
|
8308
8381
|
model: _angular_core.InputSignal<SplitterModel>;
|
|
8382
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
8383
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
8309
8384
|
column: _angular_core.InputSignal<ColumnModel>;
|
|
8310
8385
|
isMobileView: _angular_core.InputSignal<boolean>;
|
|
8311
8386
|
rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
@@ -8368,6 +8443,8 @@ declare class TabsElement implements OnInit, OnDestroy {
|
|
|
8368
8443
|
readonly tabTemplateScopeId: string;
|
|
8369
8444
|
readonly tabTemplateScopeSelector: string;
|
|
8370
8445
|
model: _angular_core.InputSignal<TabsModel>;
|
|
8446
|
+
/** Test ids for this element, namespaced by its data path or name. */
|
|
8447
|
+
protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
|
|
8371
8448
|
column: _angular_core.InputSignal<ColumnModel>;
|
|
8372
8449
|
rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
8373
8450
|
templateContext: _angular_core.InputSignal<Record<string, unknown>>;
|
|
@@ -8939,6 +9016,7 @@ declare class RendererService {
|
|
|
8939
9016
|
}
|
|
8940
9017
|
|
|
8941
9018
|
declare class PreviewRendererService extends RendererService {
|
|
9019
|
+
private readonly uiTranslationService;
|
|
8942
9020
|
private isDataSourceValueWatcherBound;
|
|
8943
9021
|
private elementDataSourceSubscriptions;
|
|
8944
9022
|
stopPreviewDataSources(): void;
|
|
@@ -8947,6 +9025,7 @@ declare class PreviewRendererService extends RendererService {
|
|
|
8947
9025
|
getDataSource(name: string): DataSourceModel | undefined;
|
|
8948
9026
|
private loadElementDataSource;
|
|
8949
9027
|
private bindDataSourceValueWatcher;
|
|
9028
|
+
private reloadElementsWatching;
|
|
8950
9029
|
private isElementUsingDataPath;
|
|
8951
9030
|
private isDataPathMaterialized;
|
|
8952
9031
|
private extractDependenciesFromUnknown;
|
|
@@ -8970,6 +9049,13 @@ interface IRuntimeRouteVariables {
|
|
|
8970
9049
|
queryParams: Record<string, unknown>;
|
|
8971
9050
|
data: Record<string, unknown>;
|
|
8972
9051
|
fragment: string | null;
|
|
9052
|
+
/**
|
|
9053
|
+
* Value passed via Angular Router's `NavigationExtras.state` by the navigation that
|
|
9054
|
+
* landed on this route (e.g. a `navigate` action's `passResponseAsNavigationState`).
|
|
9055
|
+
* Angular stores this in `history.state`, so it survives only for the in-app
|
|
9056
|
+
* navigation that set it - a hard refresh or a direct URL open leaves it empty.
|
|
9057
|
+
*/
|
|
9058
|
+
state: Record<string, unknown>;
|
|
8973
9059
|
}
|
|
8974
9060
|
|
|
8975
9061
|
declare class RuntimeVariablesService {
|
|
@@ -9024,6 +9110,12 @@ declare class RuntimeVariablesService {
|
|
|
9024
9110
|
private isProjectedDataPath;
|
|
9025
9111
|
private buildRouteVariables;
|
|
9026
9112
|
private createEmptyVariables;
|
|
9113
|
+
/**
|
|
9114
|
+
* Reads the state the current navigation was given via Angular Router's
|
|
9115
|
+
* `NavigationExtras.state` (Angular mirrors it into `history.state`). Filters out
|
|
9116
|
+
* Angular's own `navigationId` bookkeeping key so only the caller's payload remains.
|
|
9117
|
+
*/
|
|
9118
|
+
private readNavigationState;
|
|
9027
9119
|
private normalizeMappings;
|
|
9028
9120
|
private normalizeSourceType;
|
|
9029
9121
|
private resolveDataSourceRefreshPaths;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{NgStyle as o}from"@angular/common";import*as n from"@angular/core";import{input as d,signal as s,inject as v,computed as l,ChangeDetectionStrategy as m,Component as u}from"@angular/core";import{E as g,a as p,D as c}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-CY_sp0Pm.mjs";class i{model=d.required(...ngDevMode?[{debugName:"model"}]:[]);previewOpen=s(false,...ngDevMode?[{debugName:"previewOpen"}]:[]);previewSrc=s("",...ngDevMode?[{debugName:"previewSrc"}]:[]);elementActionService=v(g);avatarStyle=l(()=>{const e=Number(this.model()?.size);const a=Number.isFinite(e)&&e>0?Math.floor(e):48;const t=String(this.model()?.shape??"circle").trim().toLowerCase();return{width:`${a}px`,height:`${a}px`,"border-radius":t==="square"?"10px":"999px","background-color":String(this.model()?.backgroundColor??"#dfe6ff").trim()||"#dfe6ff",color:String(this.model()?.textColor??"#1b2d6b").trim()||"#1b2d6b",border:this.model().showBorder?"1px solid var(--nvb-color-neutral-300)":"none"}},...ngDevMode?[{debugName:"avatarStyle"}]:[]);initials=l(()=>{const e=String(this.model()?.nameText??"").trim();if(!e){return"U"}const a=e.split(/\s+/).map(t=>t.trim()).filter(t=>t.length>0);if(!a.length){return"U"}return a.slice(0,2).map(t=>t[0].toUpperCase()).join("")},...ngDevMode?[{debugName:"initials"}]:[]);onAvatarClick(e,a){a.preventDefault();a.stopPropagation();const t={value:e||this.initials(),item:null,row:null};const r=String(this.model().name??"").trim();if(r){t[r]=t["value"]}void this.elementActionService.runActions(this.model(),this.model().events??[],"click",t);if(!this.model().showPreview||!e){return}this.previewSrc.set(e);this.previewOpen.set(true)}closePreview(e){e?.preventDefault();e?.stopPropagation();this.previewOpen.set(false);this.previewSrc.set("")}static ɵfac=n.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.4",ngImport:n,type:i,deps:[],target:n.ɵɵFactoryTarget.Component});static ɵcmp=n.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.4",type:i,isStandalone:true,selector:"avatar-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:n,template:'<element-wrapper [model]="model()">\n @let avatarSrc = model().src | dynamicText: model();\n @let avatarName = model().nameText | dynamicText: model();\n\n <div class="nvb-avatar-wrap" data-testid="avatar-root">\n <button\n type="button"\n class="nvb-avatar"\n [ngStyle]="avatarStyle()"\n (click)="onAvatarClick(avatarSrc, $event)"\n >\n @if (avatarSrc) {\n <img [src]="avatarSrc" [alt]="avatarName" />\n } @else {\n <span>{{ initials() }}</span>\n }\n </button>\n </div>\n\n @if (previewOpen()) {\n <div class="nvb-avatar-preview" (click)="closePreview()">\n <button type="button" class="nvb-avatar-preview__close" (click)="closePreview($event)">\n <span class="material-symbols-outlined">close</span>\n </button>\n <img [src]="previewSrc()" [alt]="avatarName" />\n </div>\n }\n</element-wrapper>\n',styles:[":host{display:block;width:100%}.nvb-avatar-wrap{width:100%;display:flex;justify-content:flex-start;align-items:center}.nvb-avatar{border:none;padding:0;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;font-size:14px;line-height:1}.nvb-avatar img{width:100%;height:100%;object-fit:cover;display:block}.nvb-avatar-preview{position:fixed;inset:0;background:#000000b8;z-index:1300;display:grid;place-items:center;padding:20px}.nvb-avatar-preview img{width:min(300px,100vw - 40px);height:min(300px,100vw - 40px);object-fit:cover;border-radius:14px;box-shadow:0 16px 32px #0000004d;background:#fff}.nvb-avatar-preview__close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;border-radius:8px;background:#ffffff2e;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.nvb-avatar-preview__close span{font-size:20px}\n"],dependencies:[{kind:"component",type:p,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"directive",type:o,selector:"[ngStyle]",inputs:["ngStyle"]},{kind:"pipe",type:c,name:"dynamicText"}],changeDetection:n.ChangeDetectionStrategy.OnPush})}n.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.4",ngImport:n,type:i,decorators:[{type:u,args:[{selector:"avatar-element",changeDetection:m.OnPush,imports:[p,o,c],template:'<element-wrapper [model]="model()">\n @let avatarSrc = model().src | dynamicText: model();\n @let avatarName = model().nameText | dynamicText: model();\n\n <div class="nvb-avatar-wrap" data-testid="avatar-root">\n <button\n type="button"\n class="nvb-avatar"\n [ngStyle]="avatarStyle()"\n (click)="onAvatarClick(avatarSrc, $event)"\n >\n @if (avatarSrc) {\n <img [src]="avatarSrc" [alt]="avatarName" />\n } @else {\n <span>{{ initials() }}</span>\n }\n </button>\n </div>\n\n @if (previewOpen()) {\n <div class="nvb-avatar-preview" (click)="closePreview()">\n <button type="button" class="nvb-avatar-preview__close" (click)="closePreview($event)">\n <span class="material-symbols-outlined">close</span>\n </button>\n <img [src]="previewSrc()" [alt]="avatarName" />\n </div>\n }\n</element-wrapper>\n',styles:[":host{display:block;width:100%}.nvb-avatar-wrap{width:100%;display:flex;justify-content:flex-start;align-items:center}.nvb-avatar{border:none;padding:0;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;font-size:14px;line-height:1}.nvb-avatar img{width:100%;height:100%;object-fit:cover;display:block}.nvb-avatar-preview{position:fixed;inset:0;background:#000000b8;z-index:1300;display:grid;place-items:center;padding:20px}.nvb-avatar-preview img{width:min(300px,100vw - 40px);height:min(300px,100vw - 40px);object-fit:cover;border-radius:14px;box-shadow:0 16px 32px #0000004d;background:#fff}.nvb-avatar-preview__close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;border-radius:8px;background:#ffffff2e;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.nvb-avatar-preview__close span{font-size:20px}\n"]}]}],propDecorators:{model:[{type:n.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{i as AvatarElement};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import*as s from"@angular/core";import{input as y,inject as p,signal as S,computed as v,ChangeDetectionStrategy as x,Component as w}from"@angular/core";import{Router as I,NavigationEnd as _}from"@angular/router";import{get as k}from"lodash-es";import{filter as C}from"rxjs";import{E as T,M as R,U as D,a as f,N as h,D as g}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-CY_sp0Pm.mjs";class d{model=y.required(...ngDevMode?[{debugName:"model"}]:[]);elementActionService=p(T);markupSecurityService=p(R);uiTranslationService=p(D);router=p(I,{optional:true});routeRefresh=S(0,...ngDevMode?[{debugName:"routeRefresh"}]:[]);navigationSubscription=null;ngOnInit(){if(!this.router){return}this.navigationSubscription=this.router.events.pipe(C(r=>r instanceof _)).subscribe(()=>{this.routeRefresh.update(r=>r+1)})}ngOnDestroy(){this.navigationSubscription?.unsubscribe();this.navigationSubscription=null}renderedItems=v(()=>{this.routeRefresh();const r=this.resolveSourceItems();const e=[];if(this.model().showHome){const n=String(this.model()?.homeLabel??"").trim();e.push({label:n||this.uiTranslationService.translate("breadcrumbs.home","Home"),value:String(this.model()?.homeUrl??"/").trim()||"/"})}e.push(...r);const t=Number(this.model()?.maxItems??0);const i=Number.isFinite(t)&&t>0?Math.floor(t):0;if(i>0&&e.length>i&&i>=2){const n=e[0];const a=e.slice(e.length-(i-1));return[n,{label:"...",value:"",ellipsis:true},...a]}return e},...ngDevMode?[{debugName:"renderedItems"}]:[]);separatorIcon=v(()=>{const r=String(this.model()?.separator??"").trim();return r||"chevron_right"},...ngDevMode?[{debugName:"separatorIcon"}]:[]);resolveItemHref(r){return this.markupSecurityService.sanitizeNavigationUrl(String(r??""))}onItemClick(r,e,t){if(r.ellipsis){t.preventDefault();return}const i=Array.isArray(this.model().events)&&this.model().events.length>0;if(i){t.preventDefault()}else{const o=t.currentTarget instanceof HTMLAnchorElement?String(t.currentTarget.getAttribute("href")??"").trim():"";if(o.startsWith("/")&&this.router){t.preventDefault();this.router.navigateByUrl(o).catch(()=>{if(typeof window!=="undefined"&&typeof window.location?.assign==="function"){window.location.assign(o)}});return}}const n={item:r,row:r,index:e,value:r.value};const a=String(this.model().name??"").trim();if(a){n[a]=r.value}void this.elementActionService.runActions(this.model(),this.model().events??[],"click",n)}resolveSourceItems(){if(this.model()?.itemsSource==="route"){return this.buildRouteItems()}return Array.isArray(this.model()?.items)?[...this.model().items]:[]}buildRouteItems(){const r=this.router?.routerState?.snapshot?.root??null;if(!r){return[]}const e=String(this.model()?.routeLabelDataKey??"breadcrumb").trim()||"breadcrumb";const t=this.model()?.routeUsePathFallback!==false;const i=this.model()?.routeIncludeCurrent!==false;const n=this.resolveLeafSnapshot(r);const a=[];const o=[];for(const m of n.pathFromRoot){const c=m.url.map(l=>String(l?.path??"").trim()).filter(Boolean);if(c.length>0){a.push(...c)}const u=this.resolveRouteItem(m,a,e,t);if(u){o.push(u)}}if(!i&&o.length>0){o.pop()}return o}resolveLeafSnapshot(r){let e=r;while(e.firstChild){e=e.firstChild}return e}resolveRouteItem(r,e,t,i){const n=this.resolveRouteBreadcrumbConfig(r,t);if(n?.skip){return null}const a=i?this.resolveFallbackRouteLabel(r):"";const o=this.resolveRouteTemplate(String(n?.label??a??"").trim(),r,e);if(!o){return null}const m=this.resolveRouteTemplate(String(n?.value??"").trim(),r,e);const c=e.length>0?`/${e.join("/")}`:"/";return{label:o,value:m||c}}resolveRouteBreadcrumbConfig(r,e){const t=r.data?.[e];if(t===false||t===null){return{skip:true}}if(typeof t==="string"){const n=t.trim();return n?{label:n}:null}if(!t||typeof t!=="object"||Array.isArray(t)){return null}const i=t;return{label:String(i["label"]??"").trim()||void 0,value:String(i["value"]??"").trim()||void 0,skip:Boolean(i["skip"])}}resolveFallbackRouteLabel(r){const e=String(r.data?.["title"]??"").trim();if(e){return e}const t=r.url.map(n=>this.humanizeSegment(String(n?.path??"").trim())).filter(Boolean).join(" / ");if(t){return t}const i=String(r.routeConfig?.path??"").trim();if(i.startsWith(":")){const n=i.slice(1).split("/")[0];const a=String(r.params?.[n]??"").trim();if(a){return a}}return""}humanizeSegment(r){const e=decodeURIComponent(String(r??"").trim());if(!e){return""}return e.replace(/[-_]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,t=>t.toUpperCase())}resolveRouteTemplate(r,e,t){const i=String(r??"").trim();if(!i){return""}const n=t.length>0?`/${t.join("/")}`:"/";const a=String(e.params?.["id"]??e.paramMap.get("id")??"").trim()||void 0;const o={route:{id:a,url:n,params:e.params??{},queryParams:e.queryParams??{},data:e.data??{},fragment:e.fragment??"",path:String(e.routeConfig?.path??"").trim()},id:a,url:n,params:e.params??{},queryParams:e.queryParams??{},data:e.data??{}};const m=u=>{const l=String(u??"").trim();if(!l){return""}const b=k(o,l);if(b===null||b===void 0){return""}return String(b)};const c=i.replace(/\{\{([^}]+)\}\}/g,(u,l)=>m(l));return c.replace(/\{([^}]+)\}/g,(u,l)=>m(l))}static ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.4",ngImport:s,type:d,deps:[],target:s.ɵɵFactoryTarget.Component});static ɵcmp=s.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.4",type:d,isStandalone:true,selector:"breadcrumbs-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:s,template:'<element-wrapper [model]="model()">\n <nav class="nvb-breadcrumbs" aria-label="Breadcrumbs" data-testid="breadcrumbs-root">\n <ol>\n @for (item of renderedItems(); track $index; let itemIndex = $index; let isLast = $last) {\n <li>\n @if (item.ellipsis) {\n <span class="nvb-breadcrumbs__ellipsis">...</span>\n } @else if (!isLast && item.value) {\n <a\n [attr.href]="resolveItemHref(item.value | dynamicText: model())"\n (click)="onItemClick(item, itemIndex, $event)"\n >\n {{ item.label | dynamicText: model() }}\n </a>\n } @else {\n <span class="nvb-breadcrumbs__current">{{ item.label | dynamicText: model() }}</span>\n }\n\n @if (!isLast) {\n <nvb-icon class="nvb-breadcrumbs__separator" [name]="separatorIcon()"></nvb-icon>\n }\n </li>\n }\n </ol>\n </nav>\n</element-wrapper>\n',styles:[":host{display:block;width:100%}.nvb-breadcrumbs{width:100%}.nvb-breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.nvb-breadcrumbs li{display:inline-flex;align-items:center;gap:6px;min-width:0}.nvb-breadcrumbs a,.nvb-breadcrumbs__current,.nvb-breadcrumbs__ellipsis{font-size:12px;line-height:1.3;text-decoration:none;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nvb-breadcrumbs a{color:var(--nvb-color-primary-700);cursor:pointer}.nvb-breadcrumbs a:hover{text-decoration:underline}.nvb-breadcrumbs__current{color:var(--nvb-color-neutral-700);font-weight:600}.nvb-breadcrumbs__ellipsis{color:var(--nvb-color-neutral-500)}.nvb-breadcrumbs__separator{font-size:14px;color:var(--nvb-color-neutral-500)}\n"],dependencies:[{kind:"component",type:f,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"component",type:h,selector:"nvb-icon",inputs:["name","svg","ariaLabel"]},{kind:"pipe",type:g,name:"dynamicText"}],changeDetection:s.ChangeDetectionStrategy.OnPush})}s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.4",ngImport:s,type:d,decorators:[{type:w,args:[{selector:"breadcrumbs-element",changeDetection:x.OnPush,imports:[f,g,h],template:'<element-wrapper [model]="model()">\n <nav class="nvb-breadcrumbs" aria-label="Breadcrumbs" data-testid="breadcrumbs-root">\n <ol>\n @for (item of renderedItems(); track $index; let itemIndex = $index; let isLast = $last) {\n <li>\n @if (item.ellipsis) {\n <span class="nvb-breadcrumbs__ellipsis">...</span>\n } @else if (!isLast && item.value) {\n <a\n [attr.href]="resolveItemHref(item.value | dynamicText: model())"\n (click)="onItemClick(item, itemIndex, $event)"\n >\n {{ item.label | dynamicText: model() }}\n </a>\n } @else {\n <span class="nvb-breadcrumbs__current">{{ item.label | dynamicText: model() }}</span>\n }\n\n @if (!isLast) {\n <nvb-icon class="nvb-breadcrumbs__separator" [name]="separatorIcon()"></nvb-icon>\n }\n </li>\n }\n </ol>\n </nav>\n</element-wrapper>\n',styles:[":host{display:block;width:100%}.nvb-breadcrumbs{width:100%}.nvb-breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.nvb-breadcrumbs li{display:inline-flex;align-items:center;gap:6px;min-width:0}.nvb-breadcrumbs a,.nvb-breadcrumbs__current,.nvb-breadcrumbs__ellipsis{font-size:12px;line-height:1.3;text-decoration:none;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nvb-breadcrumbs a{color:var(--nvb-color-primary-700);cursor:pointer}.nvb-breadcrumbs a:hover{text-decoration:underline}.nvb-breadcrumbs__current{color:var(--nvb-color-neutral-700);font-weight:600}.nvb-breadcrumbs__ellipsis{color:var(--nvb-color-neutral-500)}.nvb-breadcrumbs__separator{font-size:14px;color:var(--nvb-color-neutral-500)}\n"]}]}],propDecorators:{model:[{type:s.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{d as BreadcrumbsElement};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{NgClass as l,NgStyle as s}from"@angular/common";import*as n from"@angular/core";import{input as p,inject as m,computed as r,ChangeDetectionStrategy as d,Component as v}from"@angular/core";import{E as g,a as c,N as a}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-CY_sp0Pm.mjs";class o{model=p.required(...ngDevMode?[{debugName:"model"}]:[]);elementActionService=m(g);iconName=r(()=>{const e=String(this.model()?.iconName??"").trim();return e||"star"},...ngDevMode?[{debugName:"iconName"}]:[]);iconStyle=r(()=>{const e=this.resolveSize(this.model()?.iconSize,24);const i=String(this.model()?.iconColor??"").trim();return{width:`${e+18}px`,height:`${e+18}px`,color:i||"var(--nvb-color-neutral-700)","font-size":`${e}px`}},...ngDevMode?[{debugName:"iconStyle"}]:[]);previewStyle=r(()=>{const e=this.resolveSize(this.model()?.previewSize,64);const i=String(this.model()?.iconColor??"").trim();return{width:`${e+20}px`,height:`${e+20}px`,color:i||"var(--nvb-color-neutral-700)","font-size":`${e}px`}},...ngDevMode?[{debugName:"previewStyle"}]:[]);onIconClick(e){e.preventDefault();e.stopPropagation();const i={value:this.iconName(),item:null,row:null};const t=String(this.model().name??"").trim();if(t){i[t]=this.iconName()}void this.elementActionService.runActions(this.model(),this.model().events??[],"click",i)}resolveSize(e,i){const t=Number(e);if(!Number.isFinite(t)||t<=0){return i}return Math.floor(t)}static ɵfac=n.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.4",ngImport:n,type:o,deps:[],target:n.ɵɵFactoryTarget.Component});static ɵcmp=n.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.4",type:o,isStandalone:true,selector:"icon-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:n,template:"<element-wrapper [model]=\"model()\">\n <section class=\"nvb-icon-wrap\" data-testid=\"icon-root\">\n <button\n type=\"button\"\n class=\"nvb-icon\"\n [ngClass]=\"{ 'nvb-icon--filled': model().filled }\"\n [ngStyle]=\"iconStyle()\"\n (click)=\"onIconClick($event)\"\n >\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </button>\n\n @if (model().showPreview) {\n <div class=\"nvb-icon__preview\" [ngStyle]=\"previewStyle()\">\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </div>\n }\n </section>\n</element-wrapper>\n",styles:[':host{display:block;width:100%}.nvb-icon-wrap{width:100%;display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.nvb-icon,.nvb-icon__preview{border:1px solid var(--nvb-color-neutral-300);background:var(--nvb-color-neutral-000);border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.nvb-icon{cursor:pointer;min-width:42px;min-height:42px;padding:0}.nvb-icon span,.nvb-icon__preview span{line-height:1}.nvb-icon--filled span{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}\n'],dependencies:[{kind:"component",type:c,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"directive",type:l,selector:"[ngClass]",inputs:["class","ngClass"]},{kind:"directive",type:s,selector:"[ngStyle]",inputs:["ngStyle"]},{kind:"component",type:a,selector:"nvb-icon",inputs:["name","svg","ariaLabel"]}],changeDetection:n.ChangeDetectionStrategy.OnPush})}n.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.4",ngImport:n,type:o,decorators:[{type:v,args:[{selector:"icon-element",changeDetection:d.OnPush,imports:[c,l,s,a],template:"<element-wrapper [model]=\"model()\">\n <section class=\"nvb-icon-wrap\" data-testid=\"icon-root\">\n <button\n type=\"button\"\n class=\"nvb-icon\"\n [ngClass]=\"{ 'nvb-icon--filled': model().filled }\"\n [ngStyle]=\"iconStyle()\"\n (click)=\"onIconClick($event)\"\n >\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </button>\n\n @if (model().showPreview) {\n <div class=\"nvb-icon__preview\" [ngStyle]=\"previewStyle()\">\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </div>\n }\n </section>\n</element-wrapper>\n",styles:[':host{display:block;width:100%}.nvb-icon-wrap{width:100%;display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.nvb-icon,.nvb-icon__preview{border:1px solid var(--nvb-color-neutral-300);background:var(--nvb-color-neutral-000);border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.nvb-icon{cursor:pointer;min-width:42px;min-height:42px;padding:0}.nvb-icon span,.nvb-icon__preview span{line-height:1}.nvb-icon--filled span{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}\n']}]}],propDecorators:{model:[{type:n.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{o as IconElement};
|