@ngxviewbuilder/runtime 0.12.0 → 0.12.1
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-autocomplete-element-D627PmE6.mjs → ngxviewbuilder-runtime-autocomplete-element-D1-b60Yg.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-avatar-element-Bq1dfv2w.mjs → ngxviewbuilder-runtime-avatar-element-BZGgAqHX.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-badge-element-C2f14QNw.mjs → ngxviewbuilder-runtime-badge-element-DwLNvH9z.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-breadcrumbs-element-DUD-zxsq.mjs → ngxviewbuilder-runtime-breadcrumbs-element-lBOlvfwd.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-button-element-DLKWXLDr.mjs → ngxviewbuilder-runtime-button-element-m24BQTuL.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-chart-element-B8SBRRoW.mjs → ngxviewbuilder-runtime-chart-element-BSWuWpXQ.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime-checkbox-element-CuDort0j.mjs +1 -0
- package/fesm2022/ngxviewbuilder-runtime-column-q9jO7OA7.mjs +43 -0
- package/fesm2022/{ngxviewbuilder-runtime-custom-html-element-BBZi5m3e.mjs → ngxviewbuilder-runtime-custom-html-element-B2TQNPbK.mjs} +2 -2
- package/fesm2022/{ngxviewbuilder-runtime-date-range-element-Dh0iamQ0.mjs → ngxviewbuilder-runtime-date-range-element-DYtVuNvd.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-datepicker-element-BzrNzV5m.mjs → ngxviewbuilder-runtime-datepicker-element-Dx9ryU_V.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-divider-element-DaWflvFL.mjs → ngxviewbuilder-runtime-divider-element-D4828e5R.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime-dynamic-text.pipe-BUJ4fCqt.mjs +1 -0
- package/fesm2022/{ngxviewbuilder-runtime-element-wrapper-FxbwPLem.mjs → ngxviewbuilder-runtime-element-wrapper-BUzRnWUH.mjs} +3 -3
- package/fesm2022/{ngxviewbuilder-runtime-file-upload-element-CVmIguAo.mjs → ngxviewbuilder-runtime-file-upload-element-Bx_JJxsl.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-icon-element-D1RfF2C0.mjs → ngxviewbuilder-runtime-icon-element-xkaer6fW.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-iframe-element-DeU-ENc8.mjs → ngxviewbuilder-runtime-iframe-element-DG-YEOXe.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-image-element-9xxf0IfB.mjs → ngxviewbuilder-runtime-image-element-sl9NYRt4.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-list-box-element-BDz4--85.mjs → ngxviewbuilder-runtime-list-box-element-BslR4TlH.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-list-grid-element-BIyp-dce.mjs → ngxviewbuilder-runtime-list-grid-element-vbn5afuD.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-message-card-element-D0JmZyvI.mjs → ngxviewbuilder-runtime-message-card-element-DV1boKqd.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime-multi-select-element-DO_dk2mB.mjs +1 -0
- package/fesm2022/ngxviewbuilder-runtime-number-element-BZouLH-5.mjs +1 -0
- package/fesm2022/{ngxviewbuilder-runtime-number-stepper-element-iBpT-zsi.mjs → ngxviewbuilder-runtime-number-stepper-element-WzMSnzXR.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime-nvb-select-xpsQ0a-_.mjs +1 -0
- package/fesm2022/{ngxviewbuilder-runtime-page-title-element-CYS9yCvk.mjs → ngxviewbuilder-runtime-page-title-element-BgA2xImq.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-phone-input-element-D4rPIZgc.mjs → ngxviewbuilder-runtime-phone-input-element-wJDjqRGH.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-progress-bar-element-D780Bz4H.mjs → ngxviewbuilder-runtime-progress-bar-element-Bdr0kdSH.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime-radio-element-KF9kHkJV.mjs +1 -0
- package/fesm2022/{ngxviewbuilder-runtime-rich-text-element-jeeNhKfo.mjs → ngxviewbuilder-runtime-rich-text-element-CGJRHzNG.mjs} +2 -2
- package/fesm2022/{ngxviewbuilder-runtime-router-outlet-element-DSIY_9ES.mjs → ngxviewbuilder-runtime-router-outlet-element-DcIc0_OQ.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-select-button-element-D3ECf6NN.mjs → ngxviewbuilder-runtime-select-button-element-DM0If-wo.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime-select-element-kOJtgDmJ.mjs +1 -0
- package/fesm2022/{ngxviewbuilder-runtime-signature-pad-element-DNWzJf8n.mjs → ngxviewbuilder-runtime-signature-pad-element-BDSkjOm4.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-single-checkbox-element-CwUV4QeU.mjs → ngxviewbuilder-runtime-single-checkbox-element-CCLuAW3g.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-slider-element-DG3yzEol.mjs → ngxviewbuilder-runtime-slider-element-DA0m8geD.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-spacer-element-DmK0-mBg.mjs → ngxviewbuilder-runtime-spacer-element-D4KgGuYS.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-stats-card-element-BwF1DgRq.mjs → ngxviewbuilder-runtime-stats-card-element-Bwt5GL25.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime-table-element-C0Pcf-Do.mjs +1 -0
- package/fesm2022/ngxviewbuilder-runtime-text-element-CVntVjD5.mjs +1 -0
- package/fesm2022/ngxviewbuilder-runtime-textarea-element-DkNUQ3Xk.mjs +1 -0
- package/fesm2022/{ngxviewbuilder-runtime-time-picker-element-DcaL0iul.mjs → ngxviewbuilder-runtime-time-picker-element-CKVMQjZ2.mjs} +1 -1
- package/fesm2022/{ngxviewbuilder-runtime-toast-element-Dz0k7DJQ.mjs → ngxviewbuilder-runtime-toast-element-C5TyVsu-.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime-toggle-switch-element-NcB3kYta.mjs +1 -0
- package/fesm2022/{ngxviewbuilder-runtime-video-element-Cn45kYTv.mjs → ngxviewbuilder-runtime-video-element-D_5W6_Rh.mjs} +1 -1
- package/fesm2022/ngxviewbuilder-runtime.mjs +1 -1
- package/package.json +1 -1
- package/types/ngxviewbuilder-runtime.d.ts +29 -0
- package/fesm2022/ngxviewbuilder-runtime-checkbox-element-BUc3LIZY.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-column-CQL6_3oR.mjs +0 -43
- package/fesm2022/ngxviewbuilder-runtime-dynamic-text.pipe-DJNHX-1z.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-multi-select-element-kVcNNhEt.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-number-element-DctiWuS1.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-nvb-select-BEN_kxMD.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-radio-element-CMnPn8dr.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-select-element-CL95ygLj.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-table-element-DEQz2d-s.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-text-element-CMGjmapD.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-textarea-element-BXIAOW-5.mjs +0 -1
- package/fesm2022/ngxviewbuilder-runtime-toggle-switch-element-D2X34AZt.mjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as P}from"./ngxviewbuilder-runtime-rolldown-runtime-DpJrqANO.mjs";import{an as D,c as I,g as M,in as m,n as f}from"./ngxviewbuilder-runtime-dynamic-text.pipe-DJNHX-1z.mjs";import{nt as z,r as C,rt as N,t as _}from"./ngxviewbuilder-runtime-element-wrapper-FxbwPLem.mjs";import{t as y}from"./ngxviewbuilder-runtime-nvb-select-BEN_kxMD.mjs";import{t as x}from"./ngxviewbuilder-runtime-nvb-style-outlet-CVovePT_.mjs";import*as s from"@angular/core";import{ChangeDetectionStrategy as R,Component as T,computed as r,effect as S,inject as p,input as H,signal as d,viewChild as v}from"@angular/core";import*as V from"@angular/common";import{CommonModule as k}from"@angular/common";import{get as l}from"lodash-es";import*as g from"@angular/forms";import{FormsModule as w}from"@angular/forms";var E=P({ListGridElement:()=>u});var u=class h{templateScopeId=`nvb-list-grid-template-${Math.random().toString(36).slice(2,11)}`;templateScopeSelector=`[data-nvb-template-scope="${this.templateScopeId}"]`;model=H.required(...ngDevMode?[{debugName:"model"}]:[]);tid=C(this.model,"nvb-list-grid","list-grid");listGridShellRef=v("listGridShellRef",...ngDevMode?[{debugName:"listGridShellRef"}]:[]);stickyHeaderRef=v("stickyHeaderRef",...ngDevMode?[{debugName:"stickyHeaderRef"}]:[]);infiniteSentinelRef=v("infiniteSentinelRef",...ngDevMode?[{debugName:"infiniteSentinelRef"}]:[]);loading=d(false,...ngDevMode?[{debugName:"loading"}]:[]);initialLoadCompleted=d(false,...ngDevMode?[{debugName:"initialLoadCompleted"}]:[]);remoteRows=d([],...ngDevMode?[{debugName:"remoteRows"}]:[]);remoteTotalRecords=d(0,...ngDevMode?[{debugName:"remoteTotalRecords"}]:[]);pageIndex=d(0,...ngDevMode?[{debugName:"pageIndex"}]:[]);quickSearchTerm=d("",...ngDevMode?[{debugName:"quickSearchTerm"}]:[]);sortDirection=d("asc",...ngDevMode?[{debugName:"sortDirection"}]:[]);isEditorView=d(false,...ngDevMode?[{debugName:"isEditorView"}]:[]);configVersion=d(0,...ngDevMode?[{debugName:"configVersion"}]:[]);pageSizeOverride=d(null,...ngDevMode?[{debugName:"pageSizeOverride"}]:[]);stickyHeaderPinned=d(false,...ngDevMode?[{debugName:"stickyHeaderPinned"}]:[]);dataVersion=d(0,...ngDevMode?[{debugName:"dataVersion"}]:[]);stableItemIds=new WeakMap;stableItemIdCounter=0;dataSubscription=null;searchDebounceHandle=null;infiniteScrollObserver=null;propertyChangedHandler=null;stickyHeaderResizeObserver=null;stickyHeaderSyncFrame=null;dataService=p(D);dataSourceService=p(I);elementActionService=p(N);eventService=p(M);templateEngineService=p(z);stickyHeaderGlobalScrollHandler=()=>{this.scheduleStickyHeaderSync()};stickyHeaderObserverEffect=S(()=>{const e=this.stickyHeaderRef()?.nativeElement??null;const t=this.stickyHeaderEnabled();this.syncStickyHeaderObserver(t?e:null)},...ngDevMode?[{debugName:"stickyHeaderObserverEffect"}]:[]);hasDataSource=r(()=>{this.configVersion();return String(this.model().dataSource?.name??"").trim().length>0},...ngDevMode?[{debugName:"hasDataSource"}]:[]);lazyLoadEnabled=r(()=>{this.configVersion();return Boolean(this.model().lazyLoad)},...ngDevMode?[{debugName:"lazyLoadEnabled"}]:[]);paginatorEnabled=r(()=>{this.configVersion();return Boolean(this.model().paginator)},...ngDevMode?[{debugName:"paginatorEnabled"}]:[]);stickyHeaderEnabled=r(()=>{this.configVersion();return Boolean(this.model().stickyHeader)},...ngDevMode?[{debugName:"stickyHeaderEnabled"}]:[]);infinityScrollEnabled=r(()=>{this.configVersion();return Boolean(this.model().infinityScroll)},...ngDevMode?[{debugName:"infinityScrollEnabled"}]:[]);quickSearchEnabled=r(()=>{this.configVersion();return Boolean(this.model().showQuickSearch)},...ngDevMode?[{debugName:"quickSearchEnabled"}]:[]);configuredSortField=r(()=>{this.configVersion();return String(this.model().sortField??"").trim()},...ngDevMode?[{debugName:"configuredSortField"}]:[]);sortControlEnabled=r(()=>{this.configVersion();return Boolean(this.model().showSortControl)},...ngDevMode?[{debugName:"sortControlEnabled"}]:[]);sortAvailable=r(()=>this.configuredSortField().length>0,...ngDevMode?[{debugName:"sortAvailable"}]:[]);pageSize=r(()=>{this.configVersion();const e=this.pageSizeOverride();const t=Number(e??this.model().pageSize??10);if(!Number.isFinite(t)||t<=0)return 10;return Math.floor(t)},...ngDevMode?[{debugName:"pageSize"}]:[]);showPageSizeSelector=r(()=>{this.configVersion();return Boolean(this.model().showPageSizeSelector)},...ngDevMode?[{debugName:"showPageSizeSelector"}]:[]);pageSizeOptions=r(()=>{this.configVersion();const e=this.parsePageSizeOptions(this.model().pageSizeOptions);const t=this.pageSize();if(!e.includes(t))e.push(t);return[...new Set(e)].sort((a,n)=>a-n)},...ngDevMode?[{debugName:"pageSizeOptions"}]:[]);paginatorVariant=r(()=>{this.configVersion();const e=String(this.model().paginatorVariant??"pager").trim().toLowerCase();if(e==="simple"||e==="numbers"||e==="full")return e;return"pager"},...ngDevMode?[{debugName:"paginatorVariant"}]:[]);paginatorStyle=r(()=>{this.configVersion();const e=String(this.model().paginatorStyle??"default").trim().toLowerCase();if(e==="compact"||e==="segmented")return e;return"default"},...ngDevMode?[{debugName:"paginatorStyle"}]:[]);paginatorMaxButtons=r(()=>{this.configVersion();const e=Number(this.model().paginatorMaxButtons??7);return Number.isFinite(e)&&e>0?Math.floor(e):7},...ngDevMode?[{debugName:"paginatorMaxButtons"}]:[]);showNumericPaginator=r(()=>{const e=this.paginatorVariant();return e==="numbers"||e==="pager"||e==="full"},...ngDevMode?[{debugName:"showNumericPaginator"}]:[]);showPrevNextPaginator=r(()=>{const e=this.paginatorVariant();return e==="simple"||e==="pager"||e==="full"},...ngDevMode?[{debugName:"showPrevNextPaginator"}]:[]);showFirstLastPaginator=r(()=>this.paginatorVariant()==="full",...ngDevMode?[{debugName:"showFirstLastPaginator"}]:[]);showPageMeta=r(()=>{this.configVersion();return Boolean(this.model().showRecordCount)},...ngDevMode?[{debugName:"showPageMeta"}]:[]);useIconOnlyPaginatorNav=r(()=>{const e=this.paginatorStyle();return e==="compact"||e==="segmented"||this.paginatorVariant()==="pager"},...ngDevMode?[{debugName:"useIconOnlyPaginatorNav"}]:[]);sourceItems=r(()=>{this.dataVersion();if(this.hasDataSource())return this.remoteRows();return this.resolveItems()},...ngDevMode?[{debugName:"sourceItems"}]:[]);filteredItems=r(()=>{let e=[...this.sourceItems()];if(!this.shouldQueryServer()){const t=String(this.quickSearchTerm()??"").trim().toLowerCase();if(t)e=e.filter(n=>this.templateEngineService.stringifyValue(n).toLowerCase().includes(t));const a=this.configuredSortField();if(a){const n=this.sortDirection()==="desc"?-1:1;e=[...e].sort((i,o)=>{const c=l(i,a);const b=l(o,a);return this.compareSortValues(c,b)*n})}}return e},...ngDevMode?[{debugName:"filteredItems"}]:[]);totalRecords=r(()=>{if(this.shouldQueryServer())return this.remoteTotalRecords();return this.filteredItems().length},...ngDevMode?[{debugName:"totalRecords"}]:[]);totalPages=r(()=>{if(!this.usesPagedView())return 1;const e=this.totalRecords();if(e<=0)return 1;return Math.max(1,Math.ceil(e/this.pageSize()))},...ngDevMode?[{debugName:"totalPages"}]:[]);visiblePageNumbers=r(()=>{if(!this.paginatorEnabled()||this.infinityScrollEnabled()||!this.showNumericPaginator())return[];const e=this.totalPages();const t=this.paginatorMaxButtons();if(e<=t)return Array.from({length:e},(c,b)=>b);const a=this.pageIndex();const n=Math.floor(t/2);const i=Math.max(0,a-n);const o=Math.min(i,Math.max(0,e-t));return Array.from({length:t},(c,b)=>o+b)},...ngDevMode?[{debugName:"visiblePageNumbers"}]:[]);items=r(()=>{const e=this.filteredItems();if(this.infinityScrollEnabled()){if(this.shouldQueryServer())return e;const a=(this.pageIndex()+1)*this.pageSize();return e.slice(0,a)}if(!this.paginatorEnabled()||this.shouldQueryServer())return e;const t=Math.min(this.pageIndex(),Math.max(this.totalPages()-1,0))*this.pageSize();return e.slice(t,t+this.pageSize())},...ngDevMode?[{debugName:"items"}]:[]);normalizedCardTemplate=r(()=>{this.configVersion();return this.normalizeCardTemplate(this.templateEngineService.resolveTemplateContentByName(this.resolveTemplateName(),this.resolveTemplateMarkupFallback()))},...ngDevMode?[{debugName:"normalizedCardTemplate"}]:[]);hasCustomTemplate=r(()=>this.normalizedCardTemplate()!==null,...ngDevMode?[{debugName:"hasCustomTemplate"}]:[]);styleOutletKey=r(()=>{this.configVersion();return`list-grid:${String(this.model()?.name??"").trim()||this.templateScopeId}:template-css`},...ngDevMode?[{debugName:"styleOutletKey"}]:[]);templateCss=r(()=>{const e=this.normalizedCardTemplate();if(!e)return"";return[this.templateEngineService.resolveTemplateCss(e,this.templateScopeSelector),this.templateEngineService.resolveTemplateCss(e,".nvb-list-grid")].map(t=>String(t??"").trim()).filter((t,a,n)=>t.length>0&&n.indexOf(t)===a).join("\n\n")},...ngDevMode?[{debugName:"templateCss"}]:[]);renderedCards=r(()=>{const e=this.normalizedCardTemplate();return this.items().map((t,a)=>{const n=this.resolveAbsoluteItemIndex(a);if(!e)return this.renderDefaultCard(t,n);return this.renderTemplate(e,t,n)})},...ngDevMode?[{debugName:"renderedCards"}]:[]);showTemplatePreview=r(()=>{return this.isEditorView()&&this.hasCustomTemplate()&&this.sourceItems().length===0},...ngDevMode?[{debugName:"showTemplatePreview"}]:[]);previewCards=r(()=>{if(!this.showTemplatePreview())return[];const e=this.normalizedCardTemplate();if(!e)return[];const t=this.resolvePreviewCardCount();return Array.from({length:t},(a,n)=>{return this.renderTemplate(e,this.buildPreviewItem(n),n)})},...ngDevMode?[{debugName:"previewCards"}]:[]);showLoadingSkeleton=r(()=>{return this.loading()&&!this.initialLoadCompleted()&&!this.showTemplatePreview()},...ngDevMode?[{debugName:"showLoadingSkeleton"}]:[]);showPaginatorFooter=r(()=>{if(!this.paginatorEnabled()||this.infinityScrollEnabled())return false;return true},...ngDevMode?[{debugName:"showPaginatorFooter"}]:[]);canLoadMoreInfinity=r(()=>{if(!this.infinityScrollEnabled())return false;return this.pageIndex()<this.totalPages()-1},...ngDevMode?[{debugName:"canLoadMoreInfinity"}]:[]);infiniteSentinelEffect=S(()=>{const e=this.infiniteSentinelRef()?.nativeElement??null;if(!this.infinityScrollEnabled()||!e||typeof IntersectionObserver!=="function"){this.disconnectInfiniteObserver();return}this.disconnectInfiniteObserver();this.infiniteScrollObserver=new IntersectionObserver(t=>{if(t.some(a=>a.isIntersecting))queueMicrotask(()=>this.loadNextInfinityPage())},{root:null,rootMargin:"0px 0px 260px 0px",threshold:0});this.infiniteScrollObserver.observe(e)},...ngDevMode?[{debugName:"infiniteSentinelEffect"}]:[]);ngOnInit(){this.isEditorView.set(m.isEditor()&&!m.isPreview());this.syncSortDirectionFromModel();this.bumpDataVersion();if(typeof document!=="undefined")document.addEventListener("scroll",this.stickyHeaderGlobalScrollHandler,true);if(this.hasDataSource())this.loadRemoteData(true);else this.initialLoadCompleted.set(true);this.propertyChangedHandler=e=>{const t=e&&typeof e==="object"?e["payload"]:void 0;const a=String(this.model()?.name??"").trim();const n=String(t?.["elementName"]??t?.["elementNameOrPath"]??"").trim();if(t&&n&&n!==a)return;this.configVersion.update(i=>i+1);this.handlePropertyChanged(String(t?.["key"]??t?.["propertyKey"]??"").trim())};this.eventService.afterPropertyChanged.add(this.propertyChangedHandler);this.dataService.onDataMutated.add(this.onDataMutatedHandler)}ngOnDestroy(){this.dataSubscription?.unsubscribe();if(this.searchDebounceHandle){clearTimeout(this.searchDebounceHandle);this.searchDebounceHandle=null}this.disconnectInfiniteObserver();this.stopStickyHeaderObserver();if(typeof document!=="undefined")document.removeEventListener("scroll",this.stickyHeaderGlobalScrollHandler,true);if(this.stickyHeaderSyncFrame!==null&&typeof cancelAnimationFrame==="function"){cancelAnimationFrame(this.stickyHeaderSyncFrame);this.stickyHeaderSyncFrame=null}if(this.propertyChangedHandler){this.eventService.afterPropertyChanged.remove(this.propertyChangedHandler);this.propertyChangedHandler=null}this.dataService.onDataMutated.remove(this.onDataMutatedHandler)}syncStickyHeaderObserver(e){this.stopStickyHeaderObserver();if(!e||typeof ResizeObserver!=="function"){this.stickyHeaderPinned.set(false);return}this.syncStickyHeaderPinnedState(e);this.stickyHeaderResizeObserver=new ResizeObserver(()=>{this.syncStickyHeaderPinnedState(e)});this.stickyHeaderResizeObserver.observe(e)}stopStickyHeaderObserver(){this.stickyHeaderResizeObserver?.disconnect();this.stickyHeaderResizeObserver=null;this.stickyHeaderPinned.set(false)}scheduleStickyHeaderSync(){if(this.stickyHeaderSyncFrame!==null)return;if(typeof requestAnimationFrame!=="function"){this.syncStickyHeaderPinnedState();return}this.stickyHeaderSyncFrame=requestAnimationFrame(()=>{this.stickyHeaderSyncFrame=null;this.syncStickyHeaderPinnedState()})}syncStickyHeaderPinnedState(e){const t=e??this.stickyHeaderRef()?.nativeElement??null;if(!this.stickyHeaderEnabled()||!t){this.stickyHeaderPinned.set(false);return}const a=this.listGridShellRef()?.nativeElement??null;const n=Number(t.getBoundingClientRect().top);const i=Number(a?.getBoundingClientRect().bottom??NaN);const o=Number(t.getBoundingClientRect().height);const c=!Number.isFinite(i)||i>Math.max(o+1,1);this.stickyHeaderPinned.set(Number.isFinite(n)&&n<=.5&&c)}layoutStyle(){const e=this.normalizeSize(this.model().gap)??"12px";if(String(this.model().layout??"grid").trim().toLowerCase()==="list")return{display:"grid","grid-template-columns":"1fr",gap:e};const t=Number(this.model()["gridColumns"]??this.model()["columns"]);const a=Number.isFinite(t)&&t>0?Math.floor(t):3;const n=this.resolveResponsiveMinCardWidth(a);return{display:"grid","grid-template-columns":`repeat(auto-fit, minmax(min(100%, ${a>1?`max(${n}, calc((100% - (${Math.max(a-1,0)} * ${e})) / ${a}))`:n}), 1fr))`,gap:e}}resolveResponsiveMinCardWidth(e){const t=this.normalizeSize(this.model().minCardWidth);if(t)return t;if(e>=5)return"260px";if(e===4)return"240px";return"220px"}resolveItemValueAttribute(e,t){const a=e?.["value"]??e?.["id"]??e?.["key"]??t;return String(a??t)}quickSearchPlaceholder(){return String(this.model().quickSearchPlaceholder??"").trim()||"listGrid.search.placeholder"}sortDirectionLabel(){return this.sortDirection()==="desc"?"listGrid.sort.desc":"listGrid.sort.asc"}pageMeta(){const e=this.totalRecords();if(e<=0)return"0 / 0";if(!this.usesPagedView())return`${e} / ${e}`;if(this.infinityScrollEnabled())return`1-${Math.min(this.items().length,e)} / ${e}`;const t=this.pageIndex()*this.pageSize()+1;return`${t}-${Math.min(t+this.items().length-1,e)} / ${e}`}trackItem(e,t){const a=e?.["id"]??e?.["key"]??e?.["name"]??e?.["value"];if(a!==null&&a!==void 0){const o=String(a).trim();if(o)return`key:${o}`}const n=this.stableItemIds.get(e);if(n)return n;const i=`item:${this.stableItemIdCounter++}:${t}`;this.stableItemIds.set(e,i);return i}async onCardClick(e,t,a){const n=String(this.model().name??"").trim();const i={...this.dataService.getData()??{},item:e,row:e,index:t,value:e};const o=this.templateEngineService.applyTemplateFieldMap(i,this.resolveTemplateFieldMap());if(await this.templateEngineService.handleTemplateClickEvent(a,o,this.model()))return;if(n)o[n]=e;this.elementActionService.runActions(this.model(),this.model().events??[],"click",o)}onQuickSearchInput(e){this.quickSearchTerm.set(String(e??""));this.pageIndex.set(0);this.scheduleSearchReload()}applyQuickSearch(){this.pageIndex.set(0);this.scheduleSearchReload(true)}clearQuickSearch(){if(!this.quickSearchTerm())return;this.quickSearchTerm.set("");this.pageIndex.set(0);this.scheduleSearchReload(true)}toggleSortDirection(){if(!this.sortAvailable())return;this.sortDirection.set(this.sortDirection()==="asc"?"desc":"asc");this.pageIndex.set(0);if(this.shouldQueryServer())this.loadRemoteData(true);else this.bumpDataVersion()}firstPage(){this.setPageIndex(0)}previousPage(){this.setPageIndex(this.pageIndex()-1)}nextPage(){this.setPageIndex(this.pageIndex()+1)}lastPage(){this.setPageIndex(this.totalPages()-1)}goToPage(e){this.setPageIndex(e)}setPageSize(e){const t=this.normalizePageSizeValue(e);if(t===this.pageSize())return;this.pageSizeOverride.set(t);this.pageIndex.set(0);if(this.shouldQueryServer()){this.loadRemoteData(true,"replace");return}this.bumpDataVersion()}setPageIndex(e){const t=Math.max(0,Math.min(Math.floor(e),this.totalPages()-1));if(t===this.pageIndex())return;this.pageIndex.set(t);if(this.shouldQueryServer()){this.loadRemoteData(true,"replace");return}this.bumpDataVersion()}loadNextInfinityPage(){if(!this.infinityScrollEnabled()||!this.canLoadMoreInfinity()||this.loading())return;const e=this.pageIndex()+1;this.pageIndex.set(e);if(this.shouldQueryServer()){this.loadRemoteData(true,"append");return}this.bumpDataVersion()}disconnectInfiniteObserver(){this.infiniteScrollObserver?.disconnect();this.infiniteScrollObserver=null}handlePropertyChanged(e){this.syncSortDirectionFromModel();if(this.searchDebounceHandle){clearTimeout(this.searchDebounceHandle);this.searchDebounceHandle=null}if(e==="dataSource"||e==="itemsPath"||e==="totalPath"||e==="lazyLoad"||e==="pageSize"||e==="paginator"||e==="infinityScroll"||e==="sortField"||e==="orderDirection"||e==="dataPath"){if(e==="pageSize")this.pageSizeOverride.set(null);this.pageIndex.set(0)}if(e==="dataSource"&&!this.hasActiveDataSourceName()){this.remoteRows.set([]);this.remoteTotalRecords.set(0);this.loading.set(false);this.initialLoadCompleted.set(true);this.bumpDataVersion();return}if(this.hasActiveDataSourceName()&&(e==="dataSource"||e==="itemsPath"||e==="totalPath"||e==="lazyLoad"||e==="dataPath"||this.shouldQueryServer()&&(e==="pageSize"||e==="paginator"||e==="infinityScroll"||e==="sortField"||e==="orderDirection"||e==="quickSearchParamName"||e==="quickSearchCondition"||e==="quickSearchCaseMode"||e==="searchDebounceMs"))){this.loadRemoteData(true,"replace");return}this.bumpDataVersion()}onDataMutatedHandler=e=>{if(e?.sender===this.model())return;this.bumpDataVersion();const t=String(e?.dataPath??"").trim();if(!t||this.isInternalListGridPath(t))return;if(!this.hasDataSource()){if(this.matchesDataPath(t))this.pageIndex.set(0);return}if(!this.shouldRefreshDataSource(t))return;this.pageIndex.set(0);this.loadRemoteData(true)};bumpDataVersion(){this.dataVersion.update(e=>e+1)}hasActiveDataSourceName(){return String(this.model().dataSource?.name??"").trim().length>0}usesPagedView(){return this.paginatorEnabled()||this.infinityScrollEnabled()}syncSortDirectionFromModel(){this.sortDirection.set(String(this.model().orderDirection??"asc").trim().toLowerCase()==="desc"?"desc":"asc")}shouldQueryServer(){return this.hasDataSource()&&this.lazyLoadEnabled()}scheduleSearchReload(e=false){if(!this.shouldQueryServer())return;if(this.searchDebounceHandle){clearTimeout(this.searchDebounceHandle);this.searchDebounceHandle=null}if(e){this.loadRemoteData(true,"replace");return}const t=Number(this.model()?.searchDebounceMs??260);const a=Number.isFinite(t)&&t>=0?t:260;this.searchDebounceHandle=setTimeout(()=>{this.searchDebounceHandle=null;this.loadRemoteData(true,"replace")},a)}loadRemoteData(e=false,t="replace"){const a=this.model().dataSource;if(!a?.name){this.remoteRows.set([]);this.remoteTotalRecords.set(0);this.initialLoadCompleted.set(true);return}const n=this.buildDataSourceRequestPayload();this.updateListGridRuntimeState(n);this.loading.set(true);this.dataSubscription?.unsubscribe();this.dataSubscription=this.dataSourceService.getData$(a,e,this.model(),this.buildListGridRuntimeContext(n)).subscribe({next:i=>{this.model().setItemsFromSource(i);const o=this.normalizeRows(this.model().items);const c=t==="append"?[...this.remoteRows(),...o]:[...o];this.remoteRows.set(c);this.remoteTotalRecords.set(this.resolveRemoteTotal(i,o,c));this.model().dataSourceLoaded=true;this.initialLoadCompleted.set(true);this.loading.set(false);this.syncRowsToDataPath(c);this.bumpDataVersion()},error:()=>{if(t==="append"&&this.pageIndex()>0){this.pageIndex.update(i=>Math.max(0,i-1));this.model().dataSourceLoaded=true;this.initialLoadCompleted.set(true);this.loading.set(false);this.bumpDataVersion();return}this.remoteRows.set([]);this.remoteTotalRecords.set(0);this.model().dataSourceLoaded=true;this.initialLoadCompleted.set(true);this.loading.set(false);this.syncRowsToDataPath([]);this.bumpDataVersion()}})}buildDataSourceRequestPayload(){return{pagingParams:{cnt:null,orderClause:this.buildOrderClause(),pageSize:this.pageSize(),skipRows:this.usesPagedView()?this.pageIndex()*this.pageSize():0,totalCountUsed:false},params:[],extendedParams:this.buildExtendedParams()}}buildExtendedParams(){const e=String(this.quickSearchTerm()??"").trim();if(!e)return[];return[{paramName:String(this.model()?.quickSearchParamName??"quickSearch").trim()||"quickSearch",paramValue:{condition:String(this.model()?.quickSearchCondition??"%-%").trim()||"%-%",value:e,upperLower:String(this.model()?.quickSearchCaseMode??"caseInsensitiveLatin").trim()||void 0}}]}buildOrderClause(){const e=this.configuredSortField();if(!e)return"";return`${e} ${this.sortDirection()==="desc"?"DESC":"ASC"}`}buildListGridRuntimeContext(e){const t=String(this.model()?.name??"listGrid").trim()||"listGrid";const a=this.dataService.getData()??{};const n=l(a,"__listGrid")??{};const i=l(n,t)??{};return{...a,__listGrid:{...n,[t]:{...i,request:e},request:e}}}updateListGridRuntimeState(e){const t=`__listGrid.${String(this.model()?.name??"listGrid").trim()||"listGrid"}`;const a={sender:this.model()};this.dataService.setValue(`${t}.page`,this.pageIndex()+1,a);this.dataService.setValue(`${t}.size`,this.pageSize(),a);this.dataService.setValue(`${t}.sortField`,this.configuredSortField(),a);this.dataService.setValue(`${t}.sortDirection`,this.sortDirection(),a);this.dataService.setValue(`${t}.quickSearch`,this.quickSearchTerm(),a);this.dataService.setValue(`${t}.request`,e,a);this.dataService.setValue("__listGrid.request",e,a)}syncRowsToDataPath(e){const t=String(this.model()?.dataPath??"").trim();if(!t)return;this.dataService.setValue(t,[...e],{sender:this.model()})}resolveItems(){const e=this.normalizeRows(this.model().items);if(e.length>0)return e;const t=this.normalizeRows(this.model().value);if(t.length>0)return t;const a=String(this.model().dataPath??"").trim();if(!a)return[];const n=this.dataService.getValue(a);return this.resolveRowsFromUnknown(n)}resolveRowsFromUnknown(e){if(Array.isArray(e))return this.normalizeRows(e);const t=String(this.model().itemsPath??"").trim();if(t)return this.normalizeRows(l(e,t));if(!e||typeof e!=="object")return[];const a=e;if(Array.isArray(a["items"]))return this.normalizeRows(a["items"]);if(Array.isArray(a["data"]))return this.normalizeRows(a["data"]);return[]}shouldRefreshDataSource(e){if(this.model().dataSource?.refreshOnChange===false)return false;const t=(Array.isArray(this.model().dataSource?.refreshPaths)?this.model().dataSource?.refreshPaths:[]).map(a=>String(a??"").trim().replace(/^\{/,"").replace(/\}$/,"")).filter(a=>a.length>0);if(t.length===0)return false;return t.some(a=>this.isPathMatch(a,e))}matchesDataPath(e){const t=String(this.model()?.dataPath??"").trim();if(!t)return false;return this.isPathMatch(t,e)}isPathMatch(e,t){const a=String(e??"").trim().replace(/^\{/,"").replace(/\}$/,"");const n=String(t??"").trim();if(!a||!n)return false;return n===a||n.startsWith(`${a}.`)||n.startsWith(`${a}[`)||a.startsWith(`${n}.`)||a.startsWith(`${n}[`)}isInternalListGridPath(e){const t=String(e??"").trim();const a=String(this.model()?.name??"").trim();if(t==="__listGrid.request"||t.startsWith("__listGrid.request."))return true;if(!a)return false;return t===`__listGrid.${a}`||t.startsWith(`__listGrid.${a}.`)}extractTotal(e,t){return this.extractExplicitTotal(e)??t}extractExplicitTotal(e){const t=String(this.model()?.totalPath??"").trim();const a=[];if(t)a.push(l(e,t));a.push(l(e,"total"),l(e,"totalCount"),l(e,"totalRecords"),l(e,"count"),l(e,"cnt"),l(e,"paging.total"),l(e,"paging.totalCount"),l(e,"paging.totalRecords"),l(e,"paging.count"),l(e,"paging.cnt"));for(const n of a){const i=Number(n);if(Number.isFinite(i)&&i>=0)return Math.floor(i)}return null}resolveRemoteTotal(e,t,a){const n=this.extractExplicitTotal(e);if(n!==null)return n;if(!this.shouldQueryServer())return a.length;if(!this.usesPagedView())return a.length;const i=this.pageIndex()*this.pageSize();const o=Math.max(a.length,i+t.length);if(t.length>=this.pageSize())return o+1;return o}parsePageSizeOptions(e){const t=String(e??"10,25,50,100").trim().split(/[,\s;|]+/g).map(a=>Number(a)).filter(a=>Number.isFinite(a)&&a>0).map(a=>Math.floor(a));if(t.length===0)return[10,25,50,100];return[...new Set(t)]}normalizePageSizeValue(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return this.pageSize();return Math.floor(t)}compareSortValues(e,t){if(e===t)return 0;if(e===null||e===void 0||e==="")return-1;if(t===null||t===void 0||t==="")return 1;const a=String(e).trim();const n=String(t).trim();const i=Number(a);const o=Number(n);if(a&&n&&Number.isFinite(i)&&Number.isFinite(o))return i-o;return a.localeCompare(n,void 0,{numeric:true,sensitivity:"base"})}resolveAbsoluteItemIndex(e){if(!this.paginatorEnabled())return e;return this.pageIndex()*this.pageSize()+e}normalizeRows(e){if(!Array.isArray(e))return[];return e.map((t,a)=>this.normalizeItem(t,a))}normalizeItem(e,t){if(e&&typeof e==="object"&&!Array.isArray(e))return e;return{index:t,value:e,label:String(e??"")}}normalizeCardTemplate(e){if(typeof e!=="string")return null;const t=e.trim();if(!t)return null;const a=t.toLowerCase();if(a==="null"||a==="undefined")return null;return t}resolveTemplateName(){const e=this.model();const t=String(e["cardTemplateName"]??"").trim();if(t)return t;const a=String(e["templateName"]??"").trim();if(a)return a;const n=String(e["cardTemplateRef"]??e["templateRef"]??"").trim();if(n)return n;return""}resolveTemplateMarkupFallback(){const e=this.model();const t=String(e["cardTemplate"]??"").trim();if(t)return t;const a=String(e["template"]??"").trim();if(a)return a;const n=String(e["cardTemplateHtml"]??e["templateHtml"]??e["templateMarkup"]??"").trim();if(n)return n;return""}renderTemplate(e,t,a){const n={...this.dataService.getData()??{},item:t,row:t,index:a,value:t};return this.templateEngineService.renderTemplate(e,this.templateEngineService.applyTemplateFieldMap(n,this.resolveTemplateFieldMap()))}resolveTemplateFieldMap(){const e=this.model();const t=e["cardTemplateFieldMap"];if(t&&typeof t==="object"&&!Array.isArray(t))return t;const a=e["templateFieldMap"];return a&&typeof a==="object"&&!Array.isArray(a)?a:null}renderDefaultCard(e,t){return`<pre data-row-index="${t}">${this.templateEngineService.escapeHtml(this.templateEngineService.stringifyValue(e))}</pre>`}resolvePreviewCardCount(){if(String(this.model().layout??"grid").trim().toLowerCase()==="list")return 1;const e=Number(this.model()["gridColumns"]??this.model()["columns"]);if(!Number.isFinite(e)||e<=0)return 2;return Math.max(1,Math.min(Math.floor(e),3))}buildPreviewItem(e){const t=e+1;return{id:t,index:e,label:`Item ${t}`,value:`Value ${t}`,key:`item-${t}`,name:"John",lastname:"Smith",title:`Item ${t}`,subtitle:`Category ${t}`,description:`Preview description ${t}`,text:`Preview text ${t}`,status:"Active"}}normalizeSize(e){const t=String(e??"").trim();if(!t)return null;if(/^-?\d+(\.\d+)?$/.test(t))return`${t}px`;return t}static ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.2.1",ngImport:s,type:h,deps:[],target:s.ɵɵFactoryTarget.Component});static ɵcmp=s.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.2.1",type:h,isStandalone:true,selector:"list-grid-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},viewQueries:[{propertyName:"listGridShellRef",first:true,predicate:["listGridShellRef"],descendants:true,isSignal:true},{propertyName:"stickyHeaderRef",first:true,predicate:["stickyHeaderRef"],descendants:true,isSignal:true},{propertyName:"infiniteSentinelRef",first:true,predicate:["infiniteSentinelRef"],descendants:true,isSignal:true}],ngImport:s,template:"<element-wrapper [model]=\"model()\">\n @if (templateCss()) {\n <nvb-style-outlet\n [cssText]=\"templateCss()\"\n [renderInPlace]=\"true\"\n [styleKey]=\"styleOutletKey()\"\n ></nvb-style-outlet>\n }\n\n <div\n #listGridShellRef\n class=\"nvb-list-grid-shell\"\n [class.nvb-list-grid-shell--sticky-header]=\"stickyHeaderEnabled()\"\n >\n @if (quickSearchEnabled() || sortControlEnabled()) {\n <div\n #stickyHeaderRef\n class=\"nvb-list-grid-sticky-header\"\n [class.nvb-list-grid-sticky-header--enabled]=\"stickyHeaderEnabled()\"\n [class.nvb-list-grid-sticky-header--pinned]=\"stickyHeaderPinned()\"\n >\n <div class=\"nvb-table-toolbar\" [attr.data-testid]=\"tid('toolbar')\">\n <div class=\"nvb-table-toolbar__left\">\n @if (quickSearchEnabled()) {\n <div class=\"nvb-table-quick-search\" [attr.data-testid]=\"tid('search')\">\n <button [attr.data-testid]=\"tid('search-apply')\"\n type=\"button\"\n class=\"nvb-table-quick-search__apply\"\n (click)=\"applyQuickSearch()\"\n [attr.aria-label]=\"'listGrid.search.apply' | uiT: 'Apply search'\"\n >\n <span class=\"material-symbols-outlined\">search</span>\n </button>\n <input\n type=\"text\"\n [value]=\"quickSearchTerm()\"\n [placeholder]=\"quickSearchPlaceholder() | uiT: quickSearchPlaceholder()\"\n (input)=\"onQuickSearchInput($any($event.target).value)\"\n (keydown.enter)=\"applyQuickSearch(); $event.preventDefault()\"\n [attr.data-testid]=\"tid('search-input')\"\n />\n @if (quickSearchTerm()) {\n <button\n type=\"button\"\n class=\"nvb-table-quick-search__clear\"\n (click)=\"clearQuickSearch()\"\n [attr.aria-label]=\"'listGrid.search.clear' | uiT: 'Clear search'\"\n [attr.data-testid]=\"tid('search-clear')\"\n >\n <span class=\"material-symbols-outlined\">close</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"nvb-table-toolbar__right\">\n @if (sortControlEnabled()) {\n <button\n type=\"button\"\n class=\"nvb-table-toolbar__button nvb-list-grid__sort-button\"\n (click)=\"toggleSortDirection()\"\n [disabled]=\"!sortAvailable()\"\n [attr.data-testid]=\"tid('sort-toggle')\"\n >\n <span class=\"material-symbols-outlined\">swap_vert</span>\n <span>{{ 'listGrid.sort' | uiT: 'Rikiuoti' }}</span>\n <span class=\"nvb-list-grid__sort-direction\">\n {{ sortDirectionLabel() | uiT: sortDirectionLabel() }}\n </span>\n </button>\n }\n </div>\n </div>\n </div>\n }\n\n @if (showLoadingSkeleton()) {\n <div\n class=\"nvb-list-grid nvb-list-grid--loading\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-testid]=\"tid('loading')\"\n >\n @for (skeleton of [0, 1, 2]; track skeleton) {\n <div class=\"nvb-list-grid__skeleton\"></div>\n }\n </div>\n } @else if (items().length > 0) {\n <div\n class=\"nvb-list-grid\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [class.nvb-list-grid--busy]=\"loading() && initialLoadCompleted()\"\n [attr.data-testid]=\"tid('root')\"\n >\n @for (item of items(); track trackItem(item, $index); let itemIndex = $index) {\n <article\n class=\"nvb-list-grid__card nvb-select-template-option\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-option-index]=\"itemIndex\"\n [attr.data-value]=\"resolveItemValueAttribute(item, itemIndex)\"\n [innerHTML]=\"renderedCards()[itemIndex]\"\n (click)=\"onCardClick(item, itemIndex, $event)\"\n [attr.data-testid]=\"tid('card', itemIndex)\"\n ></article>\n }\n </div>\n } @else if (previewCards().length > 0) {\n <div\n class=\"nvb-list-grid\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-testid]=\"tid('template-preview')\"\n >\n @for (card of previewCards(); track $index; let itemIndex = $index) {\n <article\n class=\"nvb-list-grid__card nvb-list-grid__card--preview nvb-select-template-option\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-option-index]=\"itemIndex\"\n [attr.data-value]=\"itemIndex\"\n [innerHTML]=\"card\"\n [attr.data-testid]=\"tid('template-preview', itemIndex)\"\n ></article>\n }\n </div>\n } @else {\n <div class=\"nvb-list-grid__empty\" [attr.data-testid]=\"tid('empty')\">\n {{ model().emptyMessage || ('listGrid.empty' | uiT: 'No data to display.') }}\n </div>\n }\n\n @if (infinityScrollEnabled() && canLoadMoreInfinity()) {\n <div\n #infiniteSentinelRef\n class=\"nvb-list-grid__infinite-sentinel\"\n [attr.data-testid]=\"tid('infinite-sentinel')\"\n >\n @if (loading() && initialLoadCompleted()) {\n <span class=\"nvb-list-grid__infinite-loading\">\n {{ 'listGrid.loadingMore' | uiT: 'Kraunama daugiau...' }}\n </span>\n }\n </div>\n }\n\n @if (showPaginatorFooter()) {\n <div\n class=\"nvb-table-paginator\"\n [class.nvb-table-paginator--compact]=\"paginatorStyle() === 'compact'\"\n [class.nvb-table-paginator--segmented]=\"paginatorStyle() === 'segmented'\"\n [attr.data-testid]=\"tid('paginator')\"\n >\n <div class=\"nvb-table-paginator__content\">\n <div class=\"nvb-table-paginator__controls\">\n @if (showFirstLastPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"firstPage()\"\n [disabled]=\"pageIndex() <= 0\"\n [attr.data-testid]=\"tid('page-first')\"\n >\n <span class=\"material-symbols-outlined\">keyboard_double_arrow_left</span>\n </button>\n }\n\n @if (showPrevNextPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"previousPage()\"\n [disabled]=\"pageIndex() <= 0\"\n [attr.data-testid]=\"tid('page-prev')\"\n >\n <span class=\"material-symbols-outlined\">chevron_left</span>\n </button>\n }\n\n @if (showNumericPaginator()) {\n <div class=\"nvb-table-paginator__pages\">\n @for (page of visiblePageNumbers(); track page) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__page\"\n [class.nvb-table-paginator__page--active]=\"page === pageIndex()\"\n (click)=\"goToPage(page)\"\n [disabled]=\"page === pageIndex()\"\n [attr.data-testid]=\"tid('page', page)\"\n >\n {{ page + 1 }}\n </button>\n }\n </div>\n }\n\n @if (showPrevNextPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"nextPage()\"\n [disabled]=\"pageIndex() >= totalPages() - 1\"\n [attr.data-testid]=\"tid('page-next')\"\n >\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </button>\n }\n\n @if (showFirstLastPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"lastPage()\"\n [disabled]=\"pageIndex() >= totalPages() - 1\"\n [attr.data-testid]=\"tid('page-last')\"\n >\n <span class=\"material-symbols-outlined\">keyboard_double_arrow_right</span>\n </button>\n }\n </div>\n\n @if (showPageMeta()) {\n <span class=\"nvb-table-paginator__meta\" [attr.data-testid]=\"tid('record-count')\">\n {{ pageMeta() }}\n </span>\n }\n </div>\n\n @if (showPageSizeSelector()) {\n <div class=\"nvb-table-paginator__size\">\n <nvb-select [testId]=\"tid('size-select')\"\n class=\"nvb-table-paginator__size-select\"\n [ngModel]=\"pageSize()\"\n (ngModelChange)=\"setPageSize($event)\"\n >\n @for (size of pageSizeOptions(); track size) {\n <option [ngValue]=\"size\">{{ size }}</option>\n }\n </nvb-select>\n </div>\n }\n </div>\n }\n </div>\n</element-wrapper>\n",styles:[":host{display:block;width:100%;--nvb-table-control-height: var(--nvb-input-height, 40px);--nvb-table-control-radius: var(--nvb-input-radius, var(--nvb-radius-md));--nvb-table-control-font-size: var(--nvb-input-font-size, 14px);--nvb-table-control-padding-x: var(--nvb-input-padding-x, 12px)}.nvb-list-grid-shell{position:relative;display:flex;flex-direction:column;gap:0}.nvb-list-grid-sticky-header{display:flex;flex-direction:column;gap:0}.nvb-list-grid-sticky-header--enabled{position:sticky;top:0;z-index:38}.nvb-list-grid-sticky-header--enabled.nvb-list-grid-sticky-header--pinned{background:var(--nvb-color-neutral-000);box-shadow:var(--nvb-shadow-8)}.nvb-list-grid{width:100%}.nvb-list-grid--busy{opacity:.7}.nvb-list-grid--loading{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.nvb-list-grid__skeleton{height:96px;border-radius:var(--nvb-card-radius);background:linear-gradient(90deg,var(--nvb-color-neutral-100) 0%,var(--nvb-color-neutral-200) 45%,var(--nvb-color-neutral-100) 100%);background-size:220% 100%;animation:list-grid-loading 1.1s ease-in-out infinite}.nvb-list-grid__card{display:block;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none;transition:none;cursor:pointer}.nvb-list-grid__card-content{display:block;width:100%;height:100%}.nvb-list-grid__card--preview{cursor:default;pointer-events:none}.nvb-list-grid__empty{border:1px dashed var(--nvb-color-neutral-300);border-radius:var(--nvb-card-radius);padding:16px;color:var(--nvb-color-neutral-500);background:var(--nvb-color-neutral-050)}.nvb-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;margin-bottom:16px;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-card-radius);background:var(--nvb-color-neutral-050);flex-wrap:wrap}.nvb-table-toolbar__left,.nvb-table-toolbar__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nvb-table-toolbar__right{justify-content:flex-end;flex:0 0 auto;margin-left:auto}.nvb-table-toolbar__button,.nvb-table-quick-search__apply,.nvb-table-quick-search__clear{font-family:var(--nvb-font-family);font-size:var(--nvb-table-control-font-size);font-weight:var(--nvb-control-font-weight, 500);line-height:1.3;transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease;outline:0}.nvb-table-toolbar__button{border:var(--nvb-control-button-border-width, 1px) solid var(--nvb-control-button-border-color, var(--nvb-color-neutral-300));background:var(--nvb-control-button-bg, var(--nvb-color-neutral-050));color:var(--nvb-control-button-text-color, var(--nvb-color-primary-700));border-radius:var(--nvb-table-control-radius);min-height:var(--nvb-table-control-height);padding:0 var(--nvb-table-control-padding-x);display:inline-flex;align-items:center;gap:6px;cursor:pointer}.nvb-table-toolbar__button:hover{border-color:var(--nvb-control-button-hover-border-color, var(--nvb-color-primary-300));background:var(--nvb-control-button-hover-bg, var(--nvb-color-primary-050));color:var(--nvb-control-button-hover-text-color, var(--nvb-color-primary-800))}.nvb-table-toolbar__button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.nvb-table-toolbar__button span.material-symbols-outlined{font-size:18px}.nvb-table-quick-search{min-width:220px;border:var(--nvb-input-border-width, 1px) solid var(--nvb-input-border-color, var(--nvb-color-neutral-300));background:var(--nvb-input-bg, var(--nvb-color-neutral-000));border-radius:var(--nvb-table-control-radius);min-height:var(--nvb-table-control-height);display:inline-flex;align-items:center;padding:0 6px;gap:4px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.nvb-table-quick-search:focus-within{border-color:var(--nvb-input-focus-border-color, var(--nvb-color-primary-500));box-shadow:var(--nvb-focus-ring)}.nvb-table-quick-search input{border:none;outline:none;background:transparent;width:100%;min-height:var(--nvb-table-control-height);font-family:var(--nvb-font-family);font-size:var(--nvb-table-control-font-size);color:var(--nvb-input-text-color, var(--nvb-color-neutral-700));padding:0 6px}.nvb-table-quick-search input::placeholder{color:var(--nvb-input-placeholder-color, var(--nvb-color-neutral-500))}.nvb-table-quick-search__apply,.nvb-table-quick-search__clear{width:calc(var(--nvb-table-control-height) - 10px);min-width:calc(var(--nvb-table-control-height) - 10px);height:calc(var(--nvb-table-control-height) - 10px);border:1px solid transparent;border-radius:var(--nvb-radius-md);background:transparent;color:var(--nvb-color-neutral-500);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.nvb-table-quick-search__apply span,.nvb-table-quick-search__clear span{font-size:16px}.nvb-table-quick-search__apply:hover,.nvb-table-quick-search__clear:hover{background:var(--nvb-color-neutral-100)}.nvb-table-paginator{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:8px 10px;margin-top:18px;background:var(--nvb-color-neutral-050);border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-radius-lg);flex-wrap:wrap}.nvb-table-paginator__content,.nvb-table-paginator__controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.nvb-table-paginator__size{display:inline-flex;align-items:center;min-width:0;margin-inline-start:auto}.nvb-table-paginator__nav,.nvb-table-paginator__page{border:1px solid var(--nvb-color-neutral-300);background:color-mix(in oklab,var(--nvb-color-neutral-100) 82%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-700);border-radius:var(--nvb-table-control-radius);min-width:var(--nvb-table-control-height);min-height:var(--nvb-table-control-height);padding:0 var(--nvb-table-control-padding-x);font-size:var(--nvb-table-control-font-size);cursor:pointer;transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}.nvb-table-paginator__nav{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.nvb-table-paginator__nav--icon{min-width:var(--nvb-table-control-height);width:var(--nvb-table-control-height);padding:0}.nvb-table-paginator__nav--icon span{font-size:18px;color:inherit}.nvb-table-paginator__pages{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.nvb-table-paginator__size-select{width:88px;min-width:88px}.nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator__page:not(:disabled):hover{border-color:var(--nvb-color-primary-400);background:color-mix(in oklab,var(--nvb-color-primary-500) 12%,var(--nvb-color-neutral-100));color:var(--nvb-color-primary-700)}.nvb-table-paginator__nav:disabled,.nvb-table-paginator__page:disabled{opacity:.55;cursor:not-allowed;background:color-mix(in oklab,var(--nvb-color-neutral-200) 75%,var(--nvb-color-surface-mix-target, white));border-color:color-mix(in oklab,var(--nvb-color-neutral-300) 78%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-500)}.nvb-table-paginator__page--active,.nvb-table-paginator__page--active:disabled{opacity:1;border-color:var(--nvb-color-primary-500);background:color-mix(in oklab,var(--nvb-color-primary-500) 12%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-primary-700);font-weight:600}.nvb-table-paginator__meta{font-size:12px;color:var(--nvb-color-neutral-600)}.nvb-table-paginator--compact{gap:14px;padding:12px 14px;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--compact .nvb-table-paginator__content,.nvb-table-paginator--compact .nvb-table-paginator__controls,.nvb-table-paginator--compact .nvb-table-paginator__pages{gap:6px}.nvb-table-paginator--compact .nvb-table-paginator__nav,.nvb-table-paginator--compact .nvb-table-paginator__page{min-width:34px;min-height:34px;height:34px;padding:0 8px;border:1px solid transparent;border-radius:var(--nvb-radius-full);background:transparent;color:var(--nvb-color-neutral-600);box-shadow:none}.nvb-table-paginator--compact .nvb-table-paginator__nav--icon{width:34px;padding:0}.nvb-table-paginator--compact .nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator--compact .nvb-table-paginator__page:not(:disabled):hover{border-color:color-mix(in oklab,var(--nvb-color-neutral-300) 72%,transparent);background:color-mix(in oklab,var(--nvb-color-neutral-100) 78%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-900)}.nvb-table-paginator--compact .nvb-table-paginator__page--active,.nvb-table-paginator--compact .nvb-table-paginator__page--active:disabled{border-color:var(--nvb-color-neutral-950);background:var(--nvb-color-neutral-950);color:var(--nvb-color-neutral-000);font-weight:700}.nvb-table-paginator--compact .nvb-table-paginator__nav:disabled,.nvb-table-paginator--compact .nvb-table-paginator__page:disabled{opacity:.4;background:transparent;border-color:transparent;color:var(--nvb-color-neutral-400)}.nvb-table-paginator--compact .nvb-table-paginator__size-select{width:92px;min-width:92px}.nvb-table-paginator--segmented{gap:14px;padding:12px 14px;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--segmented .nvb-table-paginator__content{gap:10px}.nvb-table-paginator--segmented .nvb-table-paginator__controls{gap:0;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-radius-lg);overflow:hidden;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--segmented .nvb-table-paginator__pages{gap:0}.nvb-table-paginator--segmented .nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__page{min-width:40px;min-height:40px;height:40px;padding:0 14px;border:none;border-radius:0;background:transparent;color:var(--nvb-color-neutral-700);box-shadow:none}.nvb-table-paginator--segmented .nvb-table-paginator__nav--icon{width:40px;padding:0}.nvb-table-paginator--segmented .nvb-table-paginator__nav+.nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__nav+.nvb-table-paginator__pages,.nvb-table-paginator--segmented .nvb-table-paginator__pages+.nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__pages+.nvb-table-paginator__pages,.nvb-table-paginator--segmented .nvb-table-paginator__page+.nvb-table-paginator__page{border-inline-start:1px solid color-mix(in oklab,var(--nvb-color-neutral-300) 86%,transparent)}.nvb-table-paginator--segmented .nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator--segmented .nvb-table-paginator__page:not(:disabled):hover{background:color-mix(in oklab,var(--nvb-color-primary-500) 10%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-primary-700)}.nvb-table-paginator--segmented .nvb-table-paginator__page--active,.nvb-table-paginator--segmented .nvb-table-paginator__page--active:disabled{background:var(--nvb-color-primary-600);color:var(--nvb-color-neutral-000);font-weight:700}.nvb-table-paginator--segmented .nvb-table-paginator__nav:disabled,.nvb-table-paginator--segmented .nvb-table-paginator__page:disabled{opacity:1;background:transparent;color:var(--nvb-color-neutral-400);border-color:transparent}.nvb-table-paginator--segmented .nvb-table-paginator__size-select{width:92px;min-width:92px}.nvb-list-grid__sort-button{min-width:160px;justify-content:center}.nvb-list-grid__sort-direction{color:var(--nvb-color-neutral-600);font-size:12px}.nvb-list-grid__infinite-sentinel{display:flex;justify-content:center;align-items:center;min-height:24px;margin-top:16px}.nvb-list-grid__infinite-loading{color:var(--nvb-color-neutral-600);font-size:12px}:host ::ng-deep .nvb-list-grid__card-default,:host ::ng-deep .nvb-list-grid__line{all:unset}@media(max-width:640px){.nvb-table-quick-search,.nvb-list-grid__sort-button{width:100%}.nvb-table-toolbar{align-items:stretch}}@keyframes list-grid-loading{0%{background-position:100% 0}to{background-position:-100% 0}}\n"],dependencies:[{kind:"ngmodule",type:k},{kind:"directive",type:V.NgStyle,selector:"[ngStyle]",inputs:["ngStyle"]},{kind:"ngmodule",type:w},{kind:"directive",type:g.NgSelectOption,selector:"option",inputs:["ngValue","value"]},{kind:"directive",type:g.ɵNgSelectMultipleOption,selector:"option",inputs:["ngValue","value"]},{kind:"directive",type:g.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{kind:"directive",type:g.NgModel,selector:"[ngModel]:not([formControlName]):not([formControl])",inputs:["name","disabled","ngModel","ngModelOptions"],outputs:["ngModelChange"],exportAs:["ngModel"]},{kind:"component",type:_,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"component",type:y,selector:"nvb-select",inputs:["value","disabled","required","filterable","filterThreshold","allowCustomValue","placeholder","testId"],outputs:["valueChange","change","focus","blur"]},{kind:"component",type:x,selector:"nvb-style-outlet",inputs:["cssText","renderInPlace","styleKey"]},{kind:"pipe",type:f,name:"uiT"}],changeDetection:s.ChangeDetectionStrategy.OnPush})};s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.2.1",ngImport:s,type:u,decorators:[{type:T,args:[{selector:"list-grid-element",changeDetection:R.OnPush,imports:[k,w,_,y,x,f],template:"<element-wrapper [model]=\"model()\">\n @if (templateCss()) {\n <nvb-style-outlet\n [cssText]=\"templateCss()\"\n [renderInPlace]=\"true\"\n [styleKey]=\"styleOutletKey()\"\n ></nvb-style-outlet>\n }\n\n <div\n #listGridShellRef\n class=\"nvb-list-grid-shell\"\n [class.nvb-list-grid-shell--sticky-header]=\"stickyHeaderEnabled()\"\n >\n @if (quickSearchEnabled() || sortControlEnabled()) {\n <div\n #stickyHeaderRef\n class=\"nvb-list-grid-sticky-header\"\n [class.nvb-list-grid-sticky-header--enabled]=\"stickyHeaderEnabled()\"\n [class.nvb-list-grid-sticky-header--pinned]=\"stickyHeaderPinned()\"\n >\n <div class=\"nvb-table-toolbar\" [attr.data-testid]=\"tid('toolbar')\">\n <div class=\"nvb-table-toolbar__left\">\n @if (quickSearchEnabled()) {\n <div class=\"nvb-table-quick-search\" [attr.data-testid]=\"tid('search')\">\n <button [attr.data-testid]=\"tid('search-apply')\"\n type=\"button\"\n class=\"nvb-table-quick-search__apply\"\n (click)=\"applyQuickSearch()\"\n [attr.aria-label]=\"'listGrid.search.apply' | uiT: 'Apply search'\"\n >\n <span class=\"material-symbols-outlined\">search</span>\n </button>\n <input\n type=\"text\"\n [value]=\"quickSearchTerm()\"\n [placeholder]=\"quickSearchPlaceholder() | uiT: quickSearchPlaceholder()\"\n (input)=\"onQuickSearchInput($any($event.target).value)\"\n (keydown.enter)=\"applyQuickSearch(); $event.preventDefault()\"\n [attr.data-testid]=\"tid('search-input')\"\n />\n @if (quickSearchTerm()) {\n <button\n type=\"button\"\n class=\"nvb-table-quick-search__clear\"\n (click)=\"clearQuickSearch()\"\n [attr.aria-label]=\"'listGrid.search.clear' | uiT: 'Clear search'\"\n [attr.data-testid]=\"tid('search-clear')\"\n >\n <span class=\"material-symbols-outlined\">close</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"nvb-table-toolbar__right\">\n @if (sortControlEnabled()) {\n <button\n type=\"button\"\n class=\"nvb-table-toolbar__button nvb-list-grid__sort-button\"\n (click)=\"toggleSortDirection()\"\n [disabled]=\"!sortAvailable()\"\n [attr.data-testid]=\"tid('sort-toggle')\"\n >\n <span class=\"material-symbols-outlined\">swap_vert</span>\n <span>{{ 'listGrid.sort' | uiT: 'Rikiuoti' }}</span>\n <span class=\"nvb-list-grid__sort-direction\">\n {{ sortDirectionLabel() | uiT: sortDirectionLabel() }}\n </span>\n </button>\n }\n </div>\n </div>\n </div>\n }\n\n @if (showLoadingSkeleton()) {\n <div\n class=\"nvb-list-grid nvb-list-grid--loading\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-testid]=\"tid('loading')\"\n >\n @for (skeleton of [0, 1, 2]; track skeleton) {\n <div class=\"nvb-list-grid__skeleton\"></div>\n }\n </div>\n } @else if (items().length > 0) {\n <div\n class=\"nvb-list-grid\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [class.nvb-list-grid--busy]=\"loading() && initialLoadCompleted()\"\n [attr.data-testid]=\"tid('root')\"\n >\n @for (item of items(); track trackItem(item, $index); let itemIndex = $index) {\n <article\n class=\"nvb-list-grid__card nvb-select-template-option\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-option-index]=\"itemIndex\"\n [attr.data-value]=\"resolveItemValueAttribute(item, itemIndex)\"\n [innerHTML]=\"renderedCards()[itemIndex]\"\n (click)=\"onCardClick(item, itemIndex, $event)\"\n [attr.data-testid]=\"tid('card', itemIndex)\"\n ></article>\n }\n </div>\n } @else if (previewCards().length > 0) {\n <div\n class=\"nvb-list-grid\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-testid]=\"tid('template-preview')\"\n >\n @for (card of previewCards(); track $index; let itemIndex = $index) {\n <article\n class=\"nvb-list-grid__card nvb-list-grid__card--preview nvb-select-template-option\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-option-index]=\"itemIndex\"\n [attr.data-value]=\"itemIndex\"\n [innerHTML]=\"card\"\n [attr.data-testid]=\"tid('template-preview', itemIndex)\"\n ></article>\n }\n </div>\n } @else {\n <div class=\"nvb-list-grid__empty\" [attr.data-testid]=\"tid('empty')\">\n {{ model().emptyMessage || ('listGrid.empty' | uiT: 'No data to display.') }}\n </div>\n }\n\n @if (infinityScrollEnabled() && canLoadMoreInfinity()) {\n <div\n #infiniteSentinelRef\n class=\"nvb-list-grid__infinite-sentinel\"\n [attr.data-testid]=\"tid('infinite-sentinel')\"\n >\n @if (loading() && initialLoadCompleted()) {\n <span class=\"nvb-list-grid__infinite-loading\">\n {{ 'listGrid.loadingMore' | uiT: 'Kraunama daugiau...' }}\n </span>\n }\n </div>\n }\n\n @if (showPaginatorFooter()) {\n <div\n class=\"nvb-table-paginator\"\n [class.nvb-table-paginator--compact]=\"paginatorStyle() === 'compact'\"\n [class.nvb-table-paginator--segmented]=\"paginatorStyle() === 'segmented'\"\n [attr.data-testid]=\"tid('paginator')\"\n >\n <div class=\"nvb-table-paginator__content\">\n <div class=\"nvb-table-paginator__controls\">\n @if (showFirstLastPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"firstPage()\"\n [disabled]=\"pageIndex() <= 0\"\n [attr.data-testid]=\"tid('page-first')\"\n >\n <span class=\"material-symbols-outlined\">keyboard_double_arrow_left</span>\n </button>\n }\n\n @if (showPrevNextPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"previousPage()\"\n [disabled]=\"pageIndex() <= 0\"\n [attr.data-testid]=\"tid('page-prev')\"\n >\n <span class=\"material-symbols-outlined\">chevron_left</span>\n </button>\n }\n\n @if (showNumericPaginator()) {\n <div class=\"nvb-table-paginator__pages\">\n @for (page of visiblePageNumbers(); track page) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__page\"\n [class.nvb-table-paginator__page--active]=\"page === pageIndex()\"\n (click)=\"goToPage(page)\"\n [disabled]=\"page === pageIndex()\"\n [attr.data-testid]=\"tid('page', page)\"\n >\n {{ page + 1 }}\n </button>\n }\n </div>\n }\n\n @if (showPrevNextPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"nextPage()\"\n [disabled]=\"pageIndex() >= totalPages() - 1\"\n [attr.data-testid]=\"tid('page-next')\"\n >\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </button>\n }\n\n @if (showFirstLastPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"lastPage()\"\n [disabled]=\"pageIndex() >= totalPages() - 1\"\n [attr.data-testid]=\"tid('page-last')\"\n >\n <span class=\"material-symbols-outlined\">keyboard_double_arrow_right</span>\n </button>\n }\n </div>\n\n @if (showPageMeta()) {\n <span class=\"nvb-table-paginator__meta\" [attr.data-testid]=\"tid('record-count')\">\n {{ pageMeta() }}\n </span>\n }\n </div>\n\n @if (showPageSizeSelector()) {\n <div class=\"nvb-table-paginator__size\">\n <nvb-select [testId]=\"tid('size-select')\"\n class=\"nvb-table-paginator__size-select\"\n [ngModel]=\"pageSize()\"\n (ngModelChange)=\"setPageSize($event)\"\n >\n @for (size of pageSizeOptions(); track size) {\n <option [ngValue]=\"size\">{{ size }}</option>\n }\n </nvb-select>\n </div>\n }\n </div>\n }\n </div>\n</element-wrapper>\n",styles:[":host{display:block;width:100%;--nvb-table-control-height: var(--nvb-input-height, 40px);--nvb-table-control-radius: var(--nvb-input-radius, var(--nvb-radius-md));--nvb-table-control-font-size: var(--nvb-input-font-size, 14px);--nvb-table-control-padding-x: var(--nvb-input-padding-x, 12px)}.nvb-list-grid-shell{position:relative;display:flex;flex-direction:column;gap:0}.nvb-list-grid-sticky-header{display:flex;flex-direction:column;gap:0}.nvb-list-grid-sticky-header--enabled{position:sticky;top:0;z-index:38}.nvb-list-grid-sticky-header--enabled.nvb-list-grid-sticky-header--pinned{background:var(--nvb-color-neutral-000);box-shadow:var(--nvb-shadow-8)}.nvb-list-grid{width:100%}.nvb-list-grid--busy{opacity:.7}.nvb-list-grid--loading{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.nvb-list-grid__skeleton{height:96px;border-radius:var(--nvb-card-radius);background:linear-gradient(90deg,var(--nvb-color-neutral-100) 0%,var(--nvb-color-neutral-200) 45%,var(--nvb-color-neutral-100) 100%);background-size:220% 100%;animation:list-grid-loading 1.1s ease-in-out infinite}.nvb-list-grid__card{display:block;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none;transition:none;cursor:pointer}.nvb-list-grid__card-content{display:block;width:100%;height:100%}.nvb-list-grid__card--preview{cursor:default;pointer-events:none}.nvb-list-grid__empty{border:1px dashed var(--nvb-color-neutral-300);border-radius:var(--nvb-card-radius);padding:16px;color:var(--nvb-color-neutral-500);background:var(--nvb-color-neutral-050)}.nvb-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;margin-bottom:16px;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-card-radius);background:var(--nvb-color-neutral-050);flex-wrap:wrap}.nvb-table-toolbar__left,.nvb-table-toolbar__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nvb-table-toolbar__right{justify-content:flex-end;flex:0 0 auto;margin-left:auto}.nvb-table-toolbar__button,.nvb-table-quick-search__apply,.nvb-table-quick-search__clear{font-family:var(--nvb-font-family);font-size:var(--nvb-table-control-font-size);font-weight:var(--nvb-control-font-weight, 500);line-height:1.3;transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease;outline:0}.nvb-table-toolbar__button{border:var(--nvb-control-button-border-width, 1px) solid var(--nvb-control-button-border-color, var(--nvb-color-neutral-300));background:var(--nvb-control-button-bg, var(--nvb-color-neutral-050));color:var(--nvb-control-button-text-color, var(--nvb-color-primary-700));border-radius:var(--nvb-table-control-radius);min-height:var(--nvb-table-control-height);padding:0 var(--nvb-table-control-padding-x);display:inline-flex;align-items:center;gap:6px;cursor:pointer}.nvb-table-toolbar__button:hover{border-color:var(--nvb-control-button-hover-border-color, var(--nvb-color-primary-300));background:var(--nvb-control-button-hover-bg, var(--nvb-color-primary-050));color:var(--nvb-control-button-hover-text-color, var(--nvb-color-primary-800))}.nvb-table-toolbar__button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.nvb-table-toolbar__button span.material-symbols-outlined{font-size:18px}.nvb-table-quick-search{min-width:220px;border:var(--nvb-input-border-width, 1px) solid var(--nvb-input-border-color, var(--nvb-color-neutral-300));background:var(--nvb-input-bg, var(--nvb-color-neutral-000));border-radius:var(--nvb-table-control-radius);min-height:var(--nvb-table-control-height);display:inline-flex;align-items:center;padding:0 6px;gap:4px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.nvb-table-quick-search:focus-within{border-color:var(--nvb-input-focus-border-color, var(--nvb-color-primary-500));box-shadow:var(--nvb-focus-ring)}.nvb-table-quick-search input{border:none;outline:none;background:transparent;width:100%;min-height:var(--nvb-table-control-height);font-family:var(--nvb-font-family);font-size:var(--nvb-table-control-font-size);color:var(--nvb-input-text-color, var(--nvb-color-neutral-700));padding:0 6px}.nvb-table-quick-search input::placeholder{color:var(--nvb-input-placeholder-color, var(--nvb-color-neutral-500))}.nvb-table-quick-search__apply,.nvb-table-quick-search__clear{width:calc(var(--nvb-table-control-height) - 10px);min-width:calc(var(--nvb-table-control-height) - 10px);height:calc(var(--nvb-table-control-height) - 10px);border:1px solid transparent;border-radius:var(--nvb-radius-md);background:transparent;color:var(--nvb-color-neutral-500);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.nvb-table-quick-search__apply span,.nvb-table-quick-search__clear span{font-size:16px}.nvb-table-quick-search__apply:hover,.nvb-table-quick-search__clear:hover{background:var(--nvb-color-neutral-100)}.nvb-table-paginator{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:8px 10px;margin-top:18px;background:var(--nvb-color-neutral-050);border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-radius-lg);flex-wrap:wrap}.nvb-table-paginator__content,.nvb-table-paginator__controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.nvb-table-paginator__size{display:inline-flex;align-items:center;min-width:0;margin-inline-start:auto}.nvb-table-paginator__nav,.nvb-table-paginator__page{border:1px solid var(--nvb-color-neutral-300);background:color-mix(in oklab,var(--nvb-color-neutral-100) 82%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-700);border-radius:var(--nvb-table-control-radius);min-width:var(--nvb-table-control-height);min-height:var(--nvb-table-control-height);padding:0 var(--nvb-table-control-padding-x);font-size:var(--nvb-table-control-font-size);cursor:pointer;transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}.nvb-table-paginator__nav{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.nvb-table-paginator__nav--icon{min-width:var(--nvb-table-control-height);width:var(--nvb-table-control-height);padding:0}.nvb-table-paginator__nav--icon span{font-size:18px;color:inherit}.nvb-table-paginator__pages{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.nvb-table-paginator__size-select{width:88px;min-width:88px}.nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator__page:not(:disabled):hover{border-color:var(--nvb-color-primary-400);background:color-mix(in oklab,var(--nvb-color-primary-500) 12%,var(--nvb-color-neutral-100));color:var(--nvb-color-primary-700)}.nvb-table-paginator__nav:disabled,.nvb-table-paginator__page:disabled{opacity:.55;cursor:not-allowed;background:color-mix(in oklab,var(--nvb-color-neutral-200) 75%,var(--nvb-color-surface-mix-target, white));border-color:color-mix(in oklab,var(--nvb-color-neutral-300) 78%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-500)}.nvb-table-paginator__page--active,.nvb-table-paginator__page--active:disabled{opacity:1;border-color:var(--nvb-color-primary-500);background:color-mix(in oklab,var(--nvb-color-primary-500) 12%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-primary-700);font-weight:600}.nvb-table-paginator__meta{font-size:12px;color:var(--nvb-color-neutral-600)}.nvb-table-paginator--compact{gap:14px;padding:12px 14px;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--compact .nvb-table-paginator__content,.nvb-table-paginator--compact .nvb-table-paginator__controls,.nvb-table-paginator--compact .nvb-table-paginator__pages{gap:6px}.nvb-table-paginator--compact .nvb-table-paginator__nav,.nvb-table-paginator--compact .nvb-table-paginator__page{min-width:34px;min-height:34px;height:34px;padding:0 8px;border:1px solid transparent;border-radius:var(--nvb-radius-full);background:transparent;color:var(--nvb-color-neutral-600);box-shadow:none}.nvb-table-paginator--compact .nvb-table-paginator__nav--icon{width:34px;padding:0}.nvb-table-paginator--compact .nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator--compact .nvb-table-paginator__page:not(:disabled):hover{border-color:color-mix(in oklab,var(--nvb-color-neutral-300) 72%,transparent);background:color-mix(in oklab,var(--nvb-color-neutral-100) 78%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-900)}.nvb-table-paginator--compact .nvb-table-paginator__page--active,.nvb-table-paginator--compact .nvb-table-paginator__page--active:disabled{border-color:var(--nvb-color-neutral-950);background:var(--nvb-color-neutral-950);color:var(--nvb-color-neutral-000);font-weight:700}.nvb-table-paginator--compact .nvb-table-paginator__nav:disabled,.nvb-table-paginator--compact .nvb-table-paginator__page:disabled{opacity:.4;background:transparent;border-color:transparent;color:var(--nvb-color-neutral-400)}.nvb-table-paginator--compact .nvb-table-paginator__size-select{width:92px;min-width:92px}.nvb-table-paginator--segmented{gap:14px;padding:12px 14px;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--segmented .nvb-table-paginator__content{gap:10px}.nvb-table-paginator--segmented .nvb-table-paginator__controls{gap:0;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-radius-lg);overflow:hidden;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--segmented .nvb-table-paginator__pages{gap:0}.nvb-table-paginator--segmented .nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__page{min-width:40px;min-height:40px;height:40px;padding:0 14px;border:none;border-radius:0;background:transparent;color:var(--nvb-color-neutral-700);box-shadow:none}.nvb-table-paginator--segmented .nvb-table-paginator__nav--icon{width:40px;padding:0}.nvb-table-paginator--segmented .nvb-table-paginator__nav+.nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__nav+.nvb-table-paginator__pages,.nvb-table-paginator--segmented .nvb-table-paginator__pages+.nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__pages+.nvb-table-paginator__pages,.nvb-table-paginator--segmented .nvb-table-paginator__page+.nvb-table-paginator__page{border-inline-start:1px solid color-mix(in oklab,var(--nvb-color-neutral-300) 86%,transparent)}.nvb-table-paginator--segmented .nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator--segmented .nvb-table-paginator__page:not(:disabled):hover{background:color-mix(in oklab,var(--nvb-color-primary-500) 10%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-primary-700)}.nvb-table-paginator--segmented .nvb-table-paginator__page--active,.nvb-table-paginator--segmented .nvb-table-paginator__page--active:disabled{background:var(--nvb-color-primary-600);color:var(--nvb-color-neutral-000);font-weight:700}.nvb-table-paginator--segmented .nvb-table-paginator__nav:disabled,.nvb-table-paginator--segmented .nvb-table-paginator__page:disabled{opacity:1;background:transparent;color:var(--nvb-color-neutral-400);border-color:transparent}.nvb-table-paginator--segmented .nvb-table-paginator__size-select{width:92px;min-width:92px}.nvb-list-grid__sort-button{min-width:160px;justify-content:center}.nvb-list-grid__sort-direction{color:var(--nvb-color-neutral-600);font-size:12px}.nvb-list-grid__infinite-sentinel{display:flex;justify-content:center;align-items:center;min-height:24px;margin-top:16px}.nvb-list-grid__infinite-loading{color:var(--nvb-color-neutral-600);font-size:12px}:host ::ng-deep .nvb-list-grid__card-default,:host ::ng-deep .nvb-list-grid__line{all:unset}@media(max-width:640px){.nvb-table-quick-search,.nvb-list-grid__sort-button{width:100%}.nvb-table-toolbar{align-items:stretch}}@keyframes list-grid-loading{0%{background-position:100% 0}to{background-position:-100% 0}}\n"]}]}],propDecorators:{model:[{type:s.Input,args:[{isSignal:true,alias:"model",required:true}]}],listGridShellRef:[{type:s.ViewChild,args:["listGridShellRef",{isSignal:true}]}],stickyHeaderRef:[{type:s.ViewChild,args:["stickyHeaderRef",{isSignal:true}]}],infiniteSentinelRef:[{type:s.ViewChild,args:["infiniteSentinelRef",{isSignal:true}]}]}});export{E as n,u as t};
|
|
1
|
+
import{t as P}from"./ngxviewbuilder-runtime-rolldown-runtime-DpJrqANO.mjs";import{an as m,c as D,g as I,n as f,on as M}from"./ngxviewbuilder-runtime-dynamic-text.pipe-BUJ4fCqt.mjs";import{nt as z,r as C,rt as N,t as _}from"./ngxviewbuilder-runtime-element-wrapper-BUzRnWUH.mjs";import{t as y}from"./ngxviewbuilder-runtime-nvb-select-xpsQ0a-_.mjs";import{t as x}from"./ngxviewbuilder-runtime-nvb-style-outlet-CVovePT_.mjs";import*as s from"@angular/core";import{ChangeDetectionStrategy as R,Component as T,computed as r,effect as S,inject as p,input as H,signal as d,viewChild as v}from"@angular/core";import*as V from"@angular/common";import{CommonModule as k}from"@angular/common";import{get as l}from"lodash-es";import*as g from"@angular/forms";import{FormsModule as w}from"@angular/forms";var E=P({ListGridElement:()=>u});var u=class h{templateScopeId=`nvb-list-grid-template-${Math.random().toString(36).slice(2,11)}`;templateScopeSelector=`[data-nvb-template-scope="${this.templateScopeId}"]`;model=H.required(...ngDevMode?[{debugName:"model"}]:[]);tid=C(this.model,"nvb-list-grid","list-grid");listGridShellRef=v("listGridShellRef",...ngDevMode?[{debugName:"listGridShellRef"}]:[]);stickyHeaderRef=v("stickyHeaderRef",...ngDevMode?[{debugName:"stickyHeaderRef"}]:[]);infiniteSentinelRef=v("infiniteSentinelRef",...ngDevMode?[{debugName:"infiniteSentinelRef"}]:[]);loading=d(false,...ngDevMode?[{debugName:"loading"}]:[]);initialLoadCompleted=d(false,...ngDevMode?[{debugName:"initialLoadCompleted"}]:[]);remoteRows=d([],...ngDevMode?[{debugName:"remoteRows"}]:[]);remoteTotalRecords=d(0,...ngDevMode?[{debugName:"remoteTotalRecords"}]:[]);pageIndex=d(0,...ngDevMode?[{debugName:"pageIndex"}]:[]);quickSearchTerm=d("",...ngDevMode?[{debugName:"quickSearchTerm"}]:[]);sortDirection=d("asc",...ngDevMode?[{debugName:"sortDirection"}]:[]);isEditorView=d(false,...ngDevMode?[{debugName:"isEditorView"}]:[]);configVersion=d(0,...ngDevMode?[{debugName:"configVersion"}]:[]);pageSizeOverride=d(null,...ngDevMode?[{debugName:"pageSizeOverride"}]:[]);stickyHeaderPinned=d(false,...ngDevMode?[{debugName:"stickyHeaderPinned"}]:[]);dataVersion=d(0,...ngDevMode?[{debugName:"dataVersion"}]:[]);stableItemIds=new WeakMap;stableItemIdCounter=0;dataSubscription=null;searchDebounceHandle=null;infiniteScrollObserver=null;propertyChangedHandler=null;stickyHeaderResizeObserver=null;stickyHeaderSyncFrame=null;dataService=p(M);dataSourceService=p(D);elementActionService=p(N);eventService=p(I);templateEngineService=p(z);stickyHeaderGlobalScrollHandler=()=>{this.scheduleStickyHeaderSync()};stickyHeaderObserverEffect=S(()=>{const e=this.stickyHeaderRef()?.nativeElement??null;const t=this.stickyHeaderEnabled();this.syncStickyHeaderObserver(t?e:null)},...ngDevMode?[{debugName:"stickyHeaderObserverEffect"}]:[]);hasDataSource=r(()=>{this.configVersion();return String(this.model().dataSource?.name??"").trim().length>0},...ngDevMode?[{debugName:"hasDataSource"}]:[]);lazyLoadEnabled=r(()=>{this.configVersion();return Boolean(this.model().lazyLoad)},...ngDevMode?[{debugName:"lazyLoadEnabled"}]:[]);paginatorEnabled=r(()=>{this.configVersion();return Boolean(this.model().paginator)},...ngDevMode?[{debugName:"paginatorEnabled"}]:[]);stickyHeaderEnabled=r(()=>{this.configVersion();return Boolean(this.model().stickyHeader)},...ngDevMode?[{debugName:"stickyHeaderEnabled"}]:[]);infinityScrollEnabled=r(()=>{this.configVersion();return Boolean(this.model().infinityScroll)},...ngDevMode?[{debugName:"infinityScrollEnabled"}]:[]);quickSearchEnabled=r(()=>{this.configVersion();return Boolean(this.model().showQuickSearch)},...ngDevMode?[{debugName:"quickSearchEnabled"}]:[]);configuredSortField=r(()=>{this.configVersion();return String(this.model().sortField??"").trim()},...ngDevMode?[{debugName:"configuredSortField"}]:[]);sortControlEnabled=r(()=>{this.configVersion();return Boolean(this.model().showSortControl)},...ngDevMode?[{debugName:"sortControlEnabled"}]:[]);sortAvailable=r(()=>this.configuredSortField().length>0,...ngDevMode?[{debugName:"sortAvailable"}]:[]);pageSize=r(()=>{this.configVersion();const e=this.pageSizeOverride();const t=Number(e??this.model().pageSize??10);if(!Number.isFinite(t)||t<=0)return 10;return Math.floor(t)},...ngDevMode?[{debugName:"pageSize"}]:[]);showPageSizeSelector=r(()=>{this.configVersion();return Boolean(this.model().showPageSizeSelector)},...ngDevMode?[{debugName:"showPageSizeSelector"}]:[]);pageSizeOptions=r(()=>{this.configVersion();const e=this.parsePageSizeOptions(this.model().pageSizeOptions);const t=this.pageSize();if(!e.includes(t))e.push(t);return[...new Set(e)].sort((a,n)=>a-n)},...ngDevMode?[{debugName:"pageSizeOptions"}]:[]);paginatorVariant=r(()=>{this.configVersion();const e=String(this.model().paginatorVariant??"pager").trim().toLowerCase();if(e==="simple"||e==="numbers"||e==="full")return e;return"pager"},...ngDevMode?[{debugName:"paginatorVariant"}]:[]);paginatorStyle=r(()=>{this.configVersion();const e=String(this.model().paginatorStyle??"default").trim().toLowerCase();if(e==="compact"||e==="segmented")return e;return"default"},...ngDevMode?[{debugName:"paginatorStyle"}]:[]);paginatorMaxButtons=r(()=>{this.configVersion();const e=Number(this.model().paginatorMaxButtons??7);return Number.isFinite(e)&&e>0?Math.floor(e):7},...ngDevMode?[{debugName:"paginatorMaxButtons"}]:[]);showNumericPaginator=r(()=>{const e=this.paginatorVariant();return e==="numbers"||e==="pager"||e==="full"},...ngDevMode?[{debugName:"showNumericPaginator"}]:[]);showPrevNextPaginator=r(()=>{const e=this.paginatorVariant();return e==="simple"||e==="pager"||e==="full"},...ngDevMode?[{debugName:"showPrevNextPaginator"}]:[]);showFirstLastPaginator=r(()=>this.paginatorVariant()==="full",...ngDevMode?[{debugName:"showFirstLastPaginator"}]:[]);showPageMeta=r(()=>{this.configVersion();return Boolean(this.model().showRecordCount)},...ngDevMode?[{debugName:"showPageMeta"}]:[]);useIconOnlyPaginatorNav=r(()=>{const e=this.paginatorStyle();return e==="compact"||e==="segmented"||this.paginatorVariant()==="pager"},...ngDevMode?[{debugName:"useIconOnlyPaginatorNav"}]:[]);sourceItems=r(()=>{this.dataVersion();if(this.hasDataSource())return this.remoteRows();return this.resolveItems()},...ngDevMode?[{debugName:"sourceItems"}]:[]);filteredItems=r(()=>{let e=[...this.sourceItems()];if(!this.shouldQueryServer()){const t=String(this.quickSearchTerm()??"").trim().toLowerCase();if(t)e=e.filter(n=>this.templateEngineService.stringifyValue(n).toLowerCase().includes(t));const a=this.configuredSortField();if(a){const n=this.sortDirection()==="desc"?-1:1;e=[...e].sort((i,o)=>{const c=l(i,a);const b=l(o,a);return this.compareSortValues(c,b)*n})}}return e},...ngDevMode?[{debugName:"filteredItems"}]:[]);totalRecords=r(()=>{if(this.shouldQueryServer())return this.remoteTotalRecords();return this.filteredItems().length},...ngDevMode?[{debugName:"totalRecords"}]:[]);totalPages=r(()=>{if(!this.usesPagedView())return 1;const e=this.totalRecords();if(e<=0)return 1;return Math.max(1,Math.ceil(e/this.pageSize()))},...ngDevMode?[{debugName:"totalPages"}]:[]);visiblePageNumbers=r(()=>{if(!this.paginatorEnabled()||this.infinityScrollEnabled()||!this.showNumericPaginator())return[];const e=this.totalPages();const t=this.paginatorMaxButtons();if(e<=t)return Array.from({length:e},(c,b)=>b);const a=this.pageIndex();const n=Math.floor(t/2);const i=Math.max(0,a-n);const o=Math.min(i,Math.max(0,e-t));return Array.from({length:t},(c,b)=>o+b)},...ngDevMode?[{debugName:"visiblePageNumbers"}]:[]);items=r(()=>{const e=this.filteredItems();if(this.infinityScrollEnabled()){if(this.shouldQueryServer())return e;const a=(this.pageIndex()+1)*this.pageSize();return e.slice(0,a)}if(!this.paginatorEnabled()||this.shouldQueryServer())return e;const t=Math.min(this.pageIndex(),Math.max(this.totalPages()-1,0))*this.pageSize();return e.slice(t,t+this.pageSize())},...ngDevMode?[{debugName:"items"}]:[]);normalizedCardTemplate=r(()=>{this.configVersion();return this.normalizeCardTemplate(this.templateEngineService.resolveTemplateContentByName(this.resolveTemplateName(),this.resolveTemplateMarkupFallback()))},...ngDevMode?[{debugName:"normalizedCardTemplate"}]:[]);hasCustomTemplate=r(()=>this.normalizedCardTemplate()!==null,...ngDevMode?[{debugName:"hasCustomTemplate"}]:[]);styleOutletKey=r(()=>{this.configVersion();return`list-grid:${String(this.model()?.name??"").trim()||this.templateScopeId}:template-css`},...ngDevMode?[{debugName:"styleOutletKey"}]:[]);templateCss=r(()=>{const e=this.normalizedCardTemplate();if(!e)return"";return[this.templateEngineService.resolveTemplateCss(e,this.templateScopeSelector),this.templateEngineService.resolveTemplateCss(e,".nvb-list-grid")].map(t=>String(t??"").trim()).filter((t,a,n)=>t.length>0&&n.indexOf(t)===a).join("\n\n")},...ngDevMode?[{debugName:"templateCss"}]:[]);renderedCards=r(()=>{const e=this.normalizedCardTemplate();return this.items().map((t,a)=>{const n=this.resolveAbsoluteItemIndex(a);if(!e)return this.renderDefaultCard(t,n);return this.renderTemplate(e,t,n)})},...ngDevMode?[{debugName:"renderedCards"}]:[]);showTemplatePreview=r(()=>{return this.isEditorView()&&this.hasCustomTemplate()&&this.sourceItems().length===0},...ngDevMode?[{debugName:"showTemplatePreview"}]:[]);previewCards=r(()=>{if(!this.showTemplatePreview())return[];const e=this.normalizedCardTemplate();if(!e)return[];const t=this.resolvePreviewCardCount();return Array.from({length:t},(a,n)=>{return this.renderTemplate(e,this.buildPreviewItem(n),n)})},...ngDevMode?[{debugName:"previewCards"}]:[]);showLoadingSkeleton=r(()=>{return this.loading()&&!this.initialLoadCompleted()&&!this.showTemplatePreview()},...ngDevMode?[{debugName:"showLoadingSkeleton"}]:[]);showPaginatorFooter=r(()=>{if(!this.paginatorEnabled()||this.infinityScrollEnabled())return false;return true},...ngDevMode?[{debugName:"showPaginatorFooter"}]:[]);canLoadMoreInfinity=r(()=>{if(!this.infinityScrollEnabled())return false;return this.pageIndex()<this.totalPages()-1},...ngDevMode?[{debugName:"canLoadMoreInfinity"}]:[]);infiniteSentinelEffect=S(()=>{const e=this.infiniteSentinelRef()?.nativeElement??null;if(!this.infinityScrollEnabled()||!e||typeof IntersectionObserver!=="function"){this.disconnectInfiniteObserver();return}this.disconnectInfiniteObserver();this.infiniteScrollObserver=new IntersectionObserver(t=>{if(t.some(a=>a.isIntersecting))queueMicrotask(()=>this.loadNextInfinityPage())},{root:null,rootMargin:"0px 0px 260px 0px",threshold:0});this.infiniteScrollObserver.observe(e)},...ngDevMode?[{debugName:"infiniteSentinelEffect"}]:[]);ngOnInit(){this.isEditorView.set(m.isEditor()&&!m.isPreview());this.syncSortDirectionFromModel();this.bumpDataVersion();if(typeof document!=="undefined")document.addEventListener("scroll",this.stickyHeaderGlobalScrollHandler,true);if(this.hasDataSource())this.loadRemoteData(true);else this.initialLoadCompleted.set(true);this.propertyChangedHandler=e=>{const t=e&&typeof e==="object"?e["payload"]:void 0;const a=String(this.model()?.name??"").trim();const n=String(t?.["elementName"]??t?.["elementNameOrPath"]??"").trim();if(t&&n&&n!==a)return;this.configVersion.update(i=>i+1);this.handlePropertyChanged(String(t?.["key"]??t?.["propertyKey"]??"").trim())};this.eventService.afterPropertyChanged.add(this.propertyChangedHandler);this.dataService.onDataMutated.add(this.onDataMutatedHandler)}ngOnDestroy(){this.dataSubscription?.unsubscribe();if(this.searchDebounceHandle){clearTimeout(this.searchDebounceHandle);this.searchDebounceHandle=null}this.disconnectInfiniteObserver();this.stopStickyHeaderObserver();if(typeof document!=="undefined")document.removeEventListener("scroll",this.stickyHeaderGlobalScrollHandler,true);if(this.stickyHeaderSyncFrame!==null&&typeof cancelAnimationFrame==="function"){cancelAnimationFrame(this.stickyHeaderSyncFrame);this.stickyHeaderSyncFrame=null}if(this.propertyChangedHandler){this.eventService.afterPropertyChanged.remove(this.propertyChangedHandler);this.propertyChangedHandler=null}this.dataService.onDataMutated.remove(this.onDataMutatedHandler)}syncStickyHeaderObserver(e){this.stopStickyHeaderObserver();if(!e||typeof ResizeObserver!=="function"){this.stickyHeaderPinned.set(false);return}this.syncStickyHeaderPinnedState(e);this.stickyHeaderResizeObserver=new ResizeObserver(()=>{this.syncStickyHeaderPinnedState(e)});this.stickyHeaderResizeObserver.observe(e)}stopStickyHeaderObserver(){this.stickyHeaderResizeObserver?.disconnect();this.stickyHeaderResizeObserver=null;this.stickyHeaderPinned.set(false)}scheduleStickyHeaderSync(){if(this.stickyHeaderSyncFrame!==null)return;if(typeof requestAnimationFrame!=="function"){this.syncStickyHeaderPinnedState();return}this.stickyHeaderSyncFrame=requestAnimationFrame(()=>{this.stickyHeaderSyncFrame=null;this.syncStickyHeaderPinnedState()})}syncStickyHeaderPinnedState(e){const t=e??this.stickyHeaderRef()?.nativeElement??null;if(!this.stickyHeaderEnabled()||!t){this.stickyHeaderPinned.set(false);return}const a=this.listGridShellRef()?.nativeElement??null;const n=Number(t.getBoundingClientRect().top);const i=Number(a?.getBoundingClientRect().bottom??NaN);const o=Number(t.getBoundingClientRect().height);const c=!Number.isFinite(i)||i>Math.max(o+1,1);this.stickyHeaderPinned.set(Number.isFinite(n)&&n<=.5&&c)}layoutStyle(){const e=this.normalizeSize(this.model().gap)??"12px";if(String(this.model().layout??"grid").trim().toLowerCase()==="list")return{display:"grid","grid-template-columns":"1fr",gap:e};const t=Number(this.model()["gridColumns"]??this.model()["columns"]);const a=Number.isFinite(t)&&t>0?Math.floor(t):3;const n=this.resolveResponsiveMinCardWidth(a);return{display:"grid","grid-template-columns":`repeat(auto-fit, minmax(min(100%, ${a>1?`max(${n}, calc((100% - (${Math.max(a-1,0)} * ${e})) / ${a}))`:n}), 1fr))`,gap:e}}resolveResponsiveMinCardWidth(e){const t=this.normalizeSize(this.model().minCardWidth);if(t)return t;if(e>=5)return"260px";if(e===4)return"240px";return"220px"}resolveItemValueAttribute(e,t){const a=e?.["value"]??e?.["id"]??e?.["key"]??t;return String(a??t)}quickSearchPlaceholder(){return String(this.model().quickSearchPlaceholder??"").trim()||"listGrid.search.placeholder"}sortDirectionLabel(){return this.sortDirection()==="desc"?"listGrid.sort.desc":"listGrid.sort.asc"}pageMeta(){const e=this.totalRecords();if(e<=0)return"0 / 0";if(!this.usesPagedView())return`${e} / ${e}`;if(this.infinityScrollEnabled())return`1-${Math.min(this.items().length,e)} / ${e}`;const t=this.pageIndex()*this.pageSize()+1;return`${t}-${Math.min(t+this.items().length-1,e)} / ${e}`}trackItem(e,t){const a=e?.["id"]??e?.["key"]??e?.["name"]??e?.["value"];if(a!==null&&a!==void 0){const o=String(a).trim();if(o)return`key:${o}`}const n=this.stableItemIds.get(e);if(n)return n;const i=`item:${this.stableItemIdCounter++}:${t}`;this.stableItemIds.set(e,i);return i}async onCardClick(e,t,a){const n=String(this.model().name??"").trim();const i={...this.dataService.getData()??{},item:e,row:e,index:t,value:e};const o=this.templateEngineService.applyTemplateFieldMap(i,this.resolveTemplateFieldMap());if(await this.templateEngineService.handleTemplateClickEvent(a,o,this.model()))return;if(n)o[n]=e;this.elementActionService.runActions(this.model(),this.model().events??[],"click",o)}onQuickSearchInput(e){this.quickSearchTerm.set(String(e??""));this.pageIndex.set(0);this.scheduleSearchReload()}applyQuickSearch(){this.pageIndex.set(0);this.scheduleSearchReload(true)}clearQuickSearch(){if(!this.quickSearchTerm())return;this.quickSearchTerm.set("");this.pageIndex.set(0);this.scheduleSearchReload(true)}toggleSortDirection(){if(!this.sortAvailable())return;this.sortDirection.set(this.sortDirection()==="asc"?"desc":"asc");this.pageIndex.set(0);if(this.shouldQueryServer())this.loadRemoteData(true);else this.bumpDataVersion()}firstPage(){this.setPageIndex(0)}previousPage(){this.setPageIndex(this.pageIndex()-1)}nextPage(){this.setPageIndex(this.pageIndex()+1)}lastPage(){this.setPageIndex(this.totalPages()-1)}goToPage(e){this.setPageIndex(e)}setPageSize(e){const t=this.normalizePageSizeValue(e);if(t===this.pageSize())return;this.pageSizeOverride.set(t);this.pageIndex.set(0);if(this.shouldQueryServer()){this.loadRemoteData(true,"replace");return}this.bumpDataVersion()}setPageIndex(e){const t=Math.max(0,Math.min(Math.floor(e),this.totalPages()-1));if(t===this.pageIndex())return;this.pageIndex.set(t);if(this.shouldQueryServer()){this.loadRemoteData(true,"replace");return}this.bumpDataVersion()}loadNextInfinityPage(){if(!this.infinityScrollEnabled()||!this.canLoadMoreInfinity()||this.loading())return;const e=this.pageIndex()+1;this.pageIndex.set(e);if(this.shouldQueryServer()){this.loadRemoteData(true,"append");return}this.bumpDataVersion()}disconnectInfiniteObserver(){this.infiniteScrollObserver?.disconnect();this.infiniteScrollObserver=null}handlePropertyChanged(e){this.syncSortDirectionFromModel();if(this.searchDebounceHandle){clearTimeout(this.searchDebounceHandle);this.searchDebounceHandle=null}if(e==="dataSource"||e==="itemsPath"||e==="totalPath"||e==="lazyLoad"||e==="pageSize"||e==="paginator"||e==="infinityScroll"||e==="sortField"||e==="orderDirection"||e==="dataPath"){if(e==="pageSize")this.pageSizeOverride.set(null);this.pageIndex.set(0)}if(e==="dataSource"&&!this.hasActiveDataSourceName()){this.remoteRows.set([]);this.remoteTotalRecords.set(0);this.loading.set(false);this.initialLoadCompleted.set(true);this.bumpDataVersion();return}if(this.hasActiveDataSourceName()&&(e==="dataSource"||e==="itemsPath"||e==="totalPath"||e==="lazyLoad"||e==="dataPath"||this.shouldQueryServer()&&(e==="pageSize"||e==="paginator"||e==="infinityScroll"||e==="sortField"||e==="orderDirection"||e==="quickSearchParamName"||e==="quickSearchCondition"||e==="quickSearchCaseMode"||e==="searchDebounceMs"))){this.loadRemoteData(true,"replace");return}this.bumpDataVersion()}onDataMutatedHandler=e=>{if(e?.sender===this.model())return;this.bumpDataVersion();const t=String(e?.dataPath??"").trim();if(!t||this.isInternalListGridPath(t))return;if(!this.hasDataSource()){if(this.matchesDataPath(t))this.pageIndex.set(0);return}if(!this.shouldRefreshDataSource(t))return;this.pageIndex.set(0);this.loadRemoteData(true)};bumpDataVersion(){this.dataVersion.update(e=>e+1)}hasActiveDataSourceName(){return String(this.model().dataSource?.name??"").trim().length>0}usesPagedView(){return this.paginatorEnabled()||this.infinityScrollEnabled()}syncSortDirectionFromModel(){this.sortDirection.set(String(this.model().orderDirection??"asc").trim().toLowerCase()==="desc"?"desc":"asc")}shouldQueryServer(){return this.hasDataSource()&&this.lazyLoadEnabled()}scheduleSearchReload(e=false){if(!this.shouldQueryServer())return;if(this.searchDebounceHandle){clearTimeout(this.searchDebounceHandle);this.searchDebounceHandle=null}if(e){this.loadRemoteData(true,"replace");return}const t=Number(this.model()?.searchDebounceMs??260);const a=Number.isFinite(t)&&t>=0?t:260;this.searchDebounceHandle=setTimeout(()=>{this.searchDebounceHandle=null;this.loadRemoteData(true,"replace")},a)}loadRemoteData(e=false,t="replace"){const a=this.model().dataSource;if(!a?.name){this.remoteRows.set([]);this.remoteTotalRecords.set(0);this.initialLoadCompleted.set(true);return}const n=this.buildDataSourceRequestPayload();this.updateListGridRuntimeState(n);this.loading.set(true);this.dataSubscription?.unsubscribe();this.dataSubscription=this.dataSourceService.getData$(a,e,this.model(),this.buildListGridRuntimeContext(n)).subscribe({next:i=>{this.model().setItemsFromSource(i);const o=this.normalizeRows(this.model().items);const c=t==="append"?[...this.remoteRows(),...o]:[...o];this.remoteRows.set(c);this.remoteTotalRecords.set(this.resolveRemoteTotal(i,o,c));this.model().dataSourceLoaded=true;this.initialLoadCompleted.set(true);this.loading.set(false);this.syncRowsToDataPath(c);this.bumpDataVersion()},error:()=>{if(t==="append"&&this.pageIndex()>0){this.pageIndex.update(i=>Math.max(0,i-1));this.model().dataSourceLoaded=true;this.initialLoadCompleted.set(true);this.loading.set(false);this.bumpDataVersion();return}this.remoteRows.set([]);this.remoteTotalRecords.set(0);this.model().dataSourceLoaded=true;this.initialLoadCompleted.set(true);this.loading.set(false);this.syncRowsToDataPath([]);this.bumpDataVersion()}})}buildDataSourceRequestPayload(){return{pagingParams:{cnt:null,orderClause:this.buildOrderClause(),pageSize:this.pageSize(),skipRows:this.usesPagedView()?this.pageIndex()*this.pageSize():0,totalCountUsed:false},params:[],extendedParams:this.buildExtendedParams()}}buildExtendedParams(){const e=String(this.quickSearchTerm()??"").trim();if(!e)return[];return[{paramName:String(this.model()?.quickSearchParamName??"quickSearch").trim()||"quickSearch",paramValue:{condition:String(this.model()?.quickSearchCondition??"%-%").trim()||"%-%",value:e,upperLower:String(this.model()?.quickSearchCaseMode??"caseInsensitiveLatin").trim()||void 0}}]}buildOrderClause(){const e=this.configuredSortField();if(!e)return"";return`${e} ${this.sortDirection()==="desc"?"DESC":"ASC"}`}buildListGridRuntimeContext(e){const t=String(this.model()?.name??"listGrid").trim()||"listGrid";const a=this.dataService.getData()??{};const n=l(a,"__listGrid")??{};const i=l(n,t)??{};return{...a,__listGrid:{...n,[t]:{...i,request:e},request:e}}}updateListGridRuntimeState(e){const t=`__listGrid.${String(this.model()?.name??"listGrid").trim()||"listGrid"}`;const a={sender:this.model()};this.dataService.setValue(`${t}.page`,this.pageIndex()+1,a);this.dataService.setValue(`${t}.size`,this.pageSize(),a);this.dataService.setValue(`${t}.sortField`,this.configuredSortField(),a);this.dataService.setValue(`${t}.sortDirection`,this.sortDirection(),a);this.dataService.setValue(`${t}.quickSearch`,this.quickSearchTerm(),a);this.dataService.setValue(`${t}.request`,e,a);this.dataService.setValue("__listGrid.request",e,a)}syncRowsToDataPath(e){const t=String(this.model()?.dataPath??"").trim();if(!t)return;this.dataService.setValue(t,[...e],{sender:this.model()})}resolveItems(){const e=this.normalizeRows(this.model().items);if(e.length>0)return e;const t=this.normalizeRows(this.model().value);if(t.length>0)return t;const a=String(this.model().dataPath??"").trim();if(!a)return[];const n=this.dataService.getValue(a);return this.resolveRowsFromUnknown(n)}resolveRowsFromUnknown(e){if(Array.isArray(e))return this.normalizeRows(e);const t=String(this.model().itemsPath??"").trim();if(t)return this.normalizeRows(l(e,t));if(!e||typeof e!=="object")return[];const a=e;if(Array.isArray(a["items"]))return this.normalizeRows(a["items"]);if(Array.isArray(a["data"]))return this.normalizeRows(a["data"]);return[]}shouldRefreshDataSource(e){if(this.model().dataSource?.refreshOnChange===false)return false;const t=(Array.isArray(this.model().dataSource?.refreshPaths)?this.model().dataSource?.refreshPaths:[]).map(a=>String(a??"").trim().replace(/^\{/,"").replace(/\}$/,"")).filter(a=>a.length>0);if(t.length===0)return false;return t.some(a=>this.isPathMatch(a,e))}matchesDataPath(e){const t=String(this.model()?.dataPath??"").trim();if(!t)return false;return this.isPathMatch(t,e)}isPathMatch(e,t){const a=String(e??"").trim().replace(/^\{/,"").replace(/\}$/,"");const n=String(t??"").trim();if(!a||!n)return false;return n===a||n.startsWith(`${a}.`)||n.startsWith(`${a}[`)||a.startsWith(`${n}.`)||a.startsWith(`${n}[`)}isInternalListGridPath(e){const t=String(e??"").trim();const a=String(this.model()?.name??"").trim();if(t==="__listGrid.request"||t.startsWith("__listGrid.request."))return true;if(!a)return false;return t===`__listGrid.${a}`||t.startsWith(`__listGrid.${a}.`)}extractTotal(e,t){return this.extractExplicitTotal(e)??t}extractExplicitTotal(e){const t=String(this.model()?.totalPath??"").trim();const a=[];if(t)a.push(l(e,t));a.push(l(e,"total"),l(e,"totalCount"),l(e,"totalRecords"),l(e,"count"),l(e,"cnt"),l(e,"paging.total"),l(e,"paging.totalCount"),l(e,"paging.totalRecords"),l(e,"paging.count"),l(e,"paging.cnt"));for(const n of a){const i=Number(n);if(Number.isFinite(i)&&i>=0)return Math.floor(i)}return null}resolveRemoteTotal(e,t,a){const n=this.extractExplicitTotal(e);if(n!==null)return n;if(!this.shouldQueryServer())return a.length;if(!this.usesPagedView())return a.length;const i=this.pageIndex()*this.pageSize();const o=Math.max(a.length,i+t.length);if(t.length>=this.pageSize())return o+1;return o}parsePageSizeOptions(e){const t=String(e??"10,25,50,100").trim().split(/[,\s;|]+/g).map(a=>Number(a)).filter(a=>Number.isFinite(a)&&a>0).map(a=>Math.floor(a));if(t.length===0)return[10,25,50,100];return[...new Set(t)]}normalizePageSizeValue(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return this.pageSize();return Math.floor(t)}compareSortValues(e,t){if(e===t)return 0;if(e===null||e===void 0||e==="")return-1;if(t===null||t===void 0||t==="")return 1;const a=String(e).trim();const n=String(t).trim();const i=Number(a);const o=Number(n);if(a&&n&&Number.isFinite(i)&&Number.isFinite(o))return i-o;return a.localeCompare(n,void 0,{numeric:true,sensitivity:"base"})}resolveAbsoluteItemIndex(e){if(!this.paginatorEnabled())return e;return this.pageIndex()*this.pageSize()+e}normalizeRows(e){if(!Array.isArray(e))return[];return e.map((t,a)=>this.normalizeItem(t,a))}normalizeItem(e,t){if(e&&typeof e==="object"&&!Array.isArray(e))return e;return{index:t,value:e,label:String(e??"")}}normalizeCardTemplate(e){if(typeof e!=="string")return null;const t=e.trim();if(!t)return null;const a=t.toLowerCase();if(a==="null"||a==="undefined")return null;return t}resolveTemplateName(){const e=this.model();const t=String(e["cardTemplateName"]??"").trim();if(t)return t;const a=String(e["templateName"]??"").trim();if(a)return a;const n=String(e["cardTemplateRef"]??e["templateRef"]??"").trim();if(n)return n;return""}resolveTemplateMarkupFallback(){const e=this.model();const t=String(e["cardTemplate"]??"").trim();if(t)return t;const a=String(e["template"]??"").trim();if(a)return a;const n=String(e["cardTemplateHtml"]??e["templateHtml"]??e["templateMarkup"]??"").trim();if(n)return n;return""}renderTemplate(e,t,a){const n={...this.dataService.getData()??{},item:t,row:t,index:a,value:t};return this.templateEngineService.renderTemplate(e,this.templateEngineService.applyTemplateFieldMap(n,this.resolveTemplateFieldMap()))}resolveTemplateFieldMap(){const e=this.model();const t=e["cardTemplateFieldMap"];if(t&&typeof t==="object"&&!Array.isArray(t))return t;const a=e["templateFieldMap"];return a&&typeof a==="object"&&!Array.isArray(a)?a:null}renderDefaultCard(e,t){return`<pre data-row-index="${t}">${this.templateEngineService.escapeHtml(this.templateEngineService.stringifyValue(e))}</pre>`}resolvePreviewCardCount(){if(String(this.model().layout??"grid").trim().toLowerCase()==="list")return 1;const e=Number(this.model()["gridColumns"]??this.model()["columns"]);if(!Number.isFinite(e)||e<=0)return 2;return Math.max(1,Math.min(Math.floor(e),3))}buildPreviewItem(e){const t=e+1;return{id:t,index:e,label:`Item ${t}`,value:`Value ${t}`,key:`item-${t}`,name:"John",lastname:"Smith",title:`Item ${t}`,subtitle:`Category ${t}`,description:`Preview description ${t}`,text:`Preview text ${t}`,status:"Active"}}normalizeSize(e){const t=String(e??"").trim();if(!t)return null;if(/^-?\d+(\.\d+)?$/.test(t))return`${t}px`;return t}static ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.2.1",ngImport:s,type:h,deps:[],target:s.ɵɵFactoryTarget.Component});static ɵcmp=s.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.2.1",type:h,isStandalone:true,selector:"list-grid-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},viewQueries:[{propertyName:"listGridShellRef",first:true,predicate:["listGridShellRef"],descendants:true,isSignal:true},{propertyName:"stickyHeaderRef",first:true,predicate:["stickyHeaderRef"],descendants:true,isSignal:true},{propertyName:"infiniteSentinelRef",first:true,predicate:["infiniteSentinelRef"],descendants:true,isSignal:true}],ngImport:s,template:"<element-wrapper [model]=\"model()\">\n @if (templateCss()) {\n <nvb-style-outlet\n [cssText]=\"templateCss()\"\n [renderInPlace]=\"true\"\n [styleKey]=\"styleOutletKey()\"\n ></nvb-style-outlet>\n }\n\n <div\n #listGridShellRef\n class=\"nvb-list-grid-shell\"\n [class.nvb-list-grid-shell--sticky-header]=\"stickyHeaderEnabled()\"\n >\n @if (quickSearchEnabled() || sortControlEnabled()) {\n <div\n #stickyHeaderRef\n class=\"nvb-list-grid-sticky-header\"\n [class.nvb-list-grid-sticky-header--enabled]=\"stickyHeaderEnabled()\"\n [class.nvb-list-grid-sticky-header--pinned]=\"stickyHeaderPinned()\"\n >\n <div class=\"nvb-table-toolbar\" [attr.data-testid]=\"tid('toolbar')\">\n <div class=\"nvb-table-toolbar__left\">\n @if (quickSearchEnabled()) {\n <div class=\"nvb-table-quick-search\" [attr.data-testid]=\"tid('search')\">\n <button [attr.data-testid]=\"tid('search-apply')\"\n type=\"button\"\n class=\"nvb-table-quick-search__apply\"\n (click)=\"applyQuickSearch()\"\n [attr.aria-label]=\"'listGrid.search.apply' | uiT: 'Apply search'\"\n >\n <span class=\"material-symbols-outlined\">search</span>\n </button>\n <input\n type=\"text\"\n [value]=\"quickSearchTerm()\"\n [placeholder]=\"quickSearchPlaceholder() | uiT: quickSearchPlaceholder()\"\n (input)=\"onQuickSearchInput($any($event.target).value)\"\n (keydown.enter)=\"applyQuickSearch(); $event.preventDefault()\"\n [attr.data-testid]=\"tid('search-input')\"\n />\n @if (quickSearchTerm()) {\n <button\n type=\"button\"\n class=\"nvb-table-quick-search__clear\"\n (click)=\"clearQuickSearch()\"\n [attr.aria-label]=\"'listGrid.search.clear' | uiT: 'Clear search'\"\n [attr.data-testid]=\"tid('search-clear')\"\n >\n <span class=\"material-symbols-outlined\">close</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"nvb-table-toolbar__right\">\n @if (sortControlEnabled()) {\n <button\n type=\"button\"\n class=\"nvb-table-toolbar__button nvb-list-grid__sort-button\"\n (click)=\"toggleSortDirection()\"\n [disabled]=\"!sortAvailable()\"\n [attr.data-testid]=\"tid('sort-toggle')\"\n >\n <span class=\"material-symbols-outlined\">swap_vert</span>\n <span>{{ 'listGrid.sort' | uiT: 'Rikiuoti' }}</span>\n <span class=\"nvb-list-grid__sort-direction\">\n {{ sortDirectionLabel() | uiT: sortDirectionLabel() }}\n </span>\n </button>\n }\n </div>\n </div>\n </div>\n }\n\n @if (showLoadingSkeleton()) {\n <div\n class=\"nvb-list-grid nvb-list-grid--loading\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-testid]=\"tid('loading')\"\n >\n @for (skeleton of [0, 1, 2]; track skeleton) {\n <div class=\"nvb-list-grid__skeleton\"></div>\n }\n </div>\n } @else if (items().length > 0) {\n <div\n class=\"nvb-list-grid\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [class.nvb-list-grid--busy]=\"loading() && initialLoadCompleted()\"\n [attr.data-testid]=\"tid('root')\"\n >\n @for (item of items(); track trackItem(item, $index); let itemIndex = $index) {\n <article\n class=\"nvb-list-grid__card nvb-select-template-option\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-option-index]=\"itemIndex\"\n [attr.data-value]=\"resolveItemValueAttribute(item, itemIndex)\"\n [innerHTML]=\"renderedCards()[itemIndex]\"\n (click)=\"onCardClick(item, itemIndex, $event)\"\n [attr.data-testid]=\"tid('card', itemIndex)\"\n ></article>\n }\n </div>\n } @else if (previewCards().length > 0) {\n <div\n class=\"nvb-list-grid\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-testid]=\"tid('template-preview')\"\n >\n @for (card of previewCards(); track $index; let itemIndex = $index) {\n <article\n class=\"nvb-list-grid__card nvb-list-grid__card--preview nvb-select-template-option\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-option-index]=\"itemIndex\"\n [attr.data-value]=\"itemIndex\"\n [innerHTML]=\"card\"\n [attr.data-testid]=\"tid('template-preview', itemIndex)\"\n ></article>\n }\n </div>\n } @else {\n <div class=\"nvb-list-grid__empty\" [attr.data-testid]=\"tid('empty')\">\n {{ model().emptyMessage || ('listGrid.empty' | uiT: 'No data to display.') }}\n </div>\n }\n\n @if (infinityScrollEnabled() && canLoadMoreInfinity()) {\n <div\n #infiniteSentinelRef\n class=\"nvb-list-grid__infinite-sentinel\"\n [attr.data-testid]=\"tid('infinite-sentinel')\"\n >\n @if (loading() && initialLoadCompleted()) {\n <span class=\"nvb-list-grid__infinite-loading\">\n {{ 'listGrid.loadingMore' | uiT: 'Kraunama daugiau...' }}\n </span>\n }\n </div>\n }\n\n @if (showPaginatorFooter()) {\n <div\n class=\"nvb-table-paginator\"\n [class.nvb-table-paginator--compact]=\"paginatorStyle() === 'compact'\"\n [class.nvb-table-paginator--segmented]=\"paginatorStyle() === 'segmented'\"\n [attr.data-testid]=\"tid('paginator')\"\n >\n <div class=\"nvb-table-paginator__content\">\n <div class=\"nvb-table-paginator__controls\">\n @if (showFirstLastPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"firstPage()\"\n [disabled]=\"pageIndex() <= 0\"\n [attr.data-testid]=\"tid('page-first')\"\n >\n <span class=\"material-symbols-outlined\">keyboard_double_arrow_left</span>\n </button>\n }\n\n @if (showPrevNextPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"previousPage()\"\n [disabled]=\"pageIndex() <= 0\"\n [attr.data-testid]=\"tid('page-prev')\"\n >\n <span class=\"material-symbols-outlined\">chevron_left</span>\n </button>\n }\n\n @if (showNumericPaginator()) {\n <div class=\"nvb-table-paginator__pages\">\n @for (page of visiblePageNumbers(); track page) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__page\"\n [class.nvb-table-paginator__page--active]=\"page === pageIndex()\"\n (click)=\"goToPage(page)\"\n [disabled]=\"page === pageIndex()\"\n [attr.data-testid]=\"tid('page', page)\"\n >\n {{ page + 1 }}\n </button>\n }\n </div>\n }\n\n @if (showPrevNextPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"nextPage()\"\n [disabled]=\"pageIndex() >= totalPages() - 1\"\n [attr.data-testid]=\"tid('page-next')\"\n >\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </button>\n }\n\n @if (showFirstLastPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"lastPage()\"\n [disabled]=\"pageIndex() >= totalPages() - 1\"\n [attr.data-testid]=\"tid('page-last')\"\n >\n <span class=\"material-symbols-outlined\">keyboard_double_arrow_right</span>\n </button>\n }\n </div>\n\n @if (showPageMeta()) {\n <span class=\"nvb-table-paginator__meta\" [attr.data-testid]=\"tid('record-count')\">\n {{ pageMeta() }}\n </span>\n }\n </div>\n\n @if (showPageSizeSelector()) {\n <div class=\"nvb-table-paginator__size\">\n <nvb-select [testId]=\"tid('size-select')\"\n class=\"nvb-table-paginator__size-select\"\n [ngModel]=\"pageSize()\"\n (ngModelChange)=\"setPageSize($event)\"\n >\n @for (size of pageSizeOptions(); track size) {\n <option [ngValue]=\"size\">{{ size }}</option>\n }\n </nvb-select>\n </div>\n }\n </div>\n }\n </div>\n</element-wrapper>\n",styles:[":host{display:block;width:100%;--nvb-table-control-height: var(--nvb-input-height, 40px);--nvb-table-control-radius: var(--nvb-input-radius, var(--nvb-radius-md));--nvb-table-control-font-size: var(--nvb-input-font-size, 14px);--nvb-table-control-padding-x: var(--nvb-input-padding-x, 12px)}.nvb-list-grid-shell{position:relative;display:flex;flex-direction:column;gap:0}.nvb-list-grid-sticky-header{display:flex;flex-direction:column;gap:0}.nvb-list-grid-sticky-header--enabled{position:sticky;top:0;z-index:38}.nvb-list-grid-sticky-header--enabled.nvb-list-grid-sticky-header--pinned{background:var(--nvb-color-neutral-000);box-shadow:var(--nvb-shadow-8)}.nvb-list-grid{width:100%}.nvb-list-grid--busy{opacity:.7}.nvb-list-grid--loading{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.nvb-list-grid__skeleton{height:96px;border-radius:var(--nvb-card-radius);background:linear-gradient(90deg,var(--nvb-color-neutral-100) 0%,var(--nvb-color-neutral-200) 45%,var(--nvb-color-neutral-100) 100%);background-size:220% 100%;animation:list-grid-loading 1.1s ease-in-out infinite}.nvb-list-grid__card{display:block;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none;transition:none;cursor:pointer}.nvb-list-grid__card-content{display:block;width:100%;height:100%}.nvb-list-grid__card--preview{cursor:default;pointer-events:none}.nvb-list-grid__empty{border:1px dashed var(--nvb-color-neutral-300);border-radius:var(--nvb-card-radius);padding:16px;color:var(--nvb-color-neutral-500);background:var(--nvb-color-neutral-050)}.nvb-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;margin-bottom:16px;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-card-radius);background:var(--nvb-color-neutral-050);flex-wrap:wrap}.nvb-table-toolbar__left,.nvb-table-toolbar__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nvb-table-toolbar__right{justify-content:flex-end;flex:0 0 auto;margin-left:auto}.nvb-table-toolbar__button,.nvb-table-quick-search__apply,.nvb-table-quick-search__clear{font-family:var(--nvb-font-family);font-size:var(--nvb-table-control-font-size);font-weight:var(--nvb-control-font-weight, 500);line-height:1.3;transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease;outline:0}.nvb-table-toolbar__button{border:var(--nvb-control-button-border-width, 1px) solid var(--nvb-control-button-border-color, var(--nvb-color-neutral-300));background:var(--nvb-control-button-bg, var(--nvb-color-neutral-050));color:var(--nvb-control-button-text-color, var(--nvb-color-primary-700));border-radius:var(--nvb-table-control-radius);min-height:var(--nvb-table-control-height);padding:0 var(--nvb-table-control-padding-x);display:inline-flex;align-items:center;gap:6px;cursor:pointer}.nvb-table-toolbar__button:hover{border-color:var(--nvb-control-button-hover-border-color, var(--nvb-color-primary-300));background:var(--nvb-control-button-hover-bg, var(--nvb-color-primary-050));color:var(--nvb-control-button-hover-text-color, var(--nvb-color-primary-800))}.nvb-table-toolbar__button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.nvb-table-toolbar__button span.material-symbols-outlined{font-size:18px}.nvb-table-quick-search{min-width:220px;border:var(--nvb-input-border-width, 1px) solid var(--nvb-input-border-color, var(--nvb-color-neutral-300));background:var(--nvb-input-bg, var(--nvb-color-neutral-000));border-radius:var(--nvb-table-control-radius);min-height:var(--nvb-table-control-height);display:inline-flex;align-items:center;padding:0 6px;gap:4px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.nvb-table-quick-search:focus-within{border-color:var(--nvb-input-focus-border-color, var(--nvb-color-primary-500));box-shadow:var(--nvb-focus-ring)}.nvb-table-quick-search input{border:none;outline:none;background:transparent;width:100%;min-height:var(--nvb-table-control-height);font-family:var(--nvb-font-family);font-size:var(--nvb-table-control-font-size);color:var(--nvb-input-text-color, var(--nvb-color-neutral-700));padding:0 6px}.nvb-table-quick-search input::placeholder{color:var(--nvb-input-placeholder-color, var(--nvb-color-neutral-500))}.nvb-table-quick-search__apply,.nvb-table-quick-search__clear{width:calc(var(--nvb-table-control-height) - 10px);min-width:calc(var(--nvb-table-control-height) - 10px);height:calc(var(--nvb-table-control-height) - 10px);border:1px solid transparent;border-radius:var(--nvb-radius-md);background:transparent;color:var(--nvb-color-neutral-500);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.nvb-table-quick-search__apply span,.nvb-table-quick-search__clear span{font-size:16px}.nvb-table-quick-search__apply:hover,.nvb-table-quick-search__clear:hover{background:var(--nvb-color-neutral-100)}.nvb-table-paginator{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:8px 10px;margin-top:18px;background:var(--nvb-color-neutral-050);border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-radius-lg);flex-wrap:wrap}.nvb-table-paginator__content,.nvb-table-paginator__controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.nvb-table-paginator__size{display:inline-flex;align-items:center;min-width:0;margin-inline-start:auto}.nvb-table-paginator__nav,.nvb-table-paginator__page{border:1px solid var(--nvb-color-neutral-300);background:color-mix(in oklab,var(--nvb-color-neutral-100) 82%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-700);border-radius:var(--nvb-table-control-radius);min-width:var(--nvb-table-control-height);min-height:var(--nvb-table-control-height);padding:0 var(--nvb-table-control-padding-x);font-size:var(--nvb-table-control-font-size);cursor:pointer;transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}.nvb-table-paginator__nav{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.nvb-table-paginator__nav--icon{min-width:var(--nvb-table-control-height);width:var(--nvb-table-control-height);padding:0}.nvb-table-paginator__nav--icon span{font-size:18px;color:inherit}.nvb-table-paginator__pages{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.nvb-table-paginator__size-select{width:88px;min-width:88px}.nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator__page:not(:disabled):hover{border-color:var(--nvb-color-primary-400);background:color-mix(in oklab,var(--nvb-color-primary-500) 12%,var(--nvb-color-neutral-100));color:var(--nvb-color-primary-700)}.nvb-table-paginator__nav:disabled,.nvb-table-paginator__page:disabled{opacity:.55;cursor:not-allowed;background:color-mix(in oklab,var(--nvb-color-neutral-200) 75%,var(--nvb-color-surface-mix-target, white));border-color:color-mix(in oklab,var(--nvb-color-neutral-300) 78%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-500)}.nvb-table-paginator__page--active,.nvb-table-paginator__page--active:disabled{opacity:1;border-color:var(--nvb-color-primary-500);background:color-mix(in oklab,var(--nvb-color-primary-500) 12%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-primary-700);font-weight:600}.nvb-table-paginator__meta{font-size:12px;color:var(--nvb-color-neutral-600)}.nvb-table-paginator--compact{gap:14px;padding:12px 14px;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--compact .nvb-table-paginator__content,.nvb-table-paginator--compact .nvb-table-paginator__controls,.nvb-table-paginator--compact .nvb-table-paginator__pages{gap:6px}.nvb-table-paginator--compact .nvb-table-paginator__nav,.nvb-table-paginator--compact .nvb-table-paginator__page{min-width:34px;min-height:34px;height:34px;padding:0 8px;border:1px solid transparent;border-radius:var(--nvb-radius-full);background:transparent;color:var(--nvb-color-neutral-600);box-shadow:none}.nvb-table-paginator--compact .nvb-table-paginator__nav--icon{width:34px;padding:0}.nvb-table-paginator--compact .nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator--compact .nvb-table-paginator__page:not(:disabled):hover{border-color:color-mix(in oklab,var(--nvb-color-neutral-300) 72%,transparent);background:color-mix(in oklab,var(--nvb-color-neutral-100) 78%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-900)}.nvb-table-paginator--compact .nvb-table-paginator__page--active,.nvb-table-paginator--compact .nvb-table-paginator__page--active:disabled{border-color:var(--nvb-color-neutral-950);background:var(--nvb-color-neutral-950);color:var(--nvb-color-neutral-000);font-weight:700}.nvb-table-paginator--compact .nvb-table-paginator__nav:disabled,.nvb-table-paginator--compact .nvb-table-paginator__page:disabled{opacity:.4;background:transparent;border-color:transparent;color:var(--nvb-color-neutral-400)}.nvb-table-paginator--compact .nvb-table-paginator__size-select{width:92px;min-width:92px}.nvb-table-paginator--segmented{gap:14px;padding:12px 14px;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--segmented .nvb-table-paginator__content{gap:10px}.nvb-table-paginator--segmented .nvb-table-paginator__controls{gap:0;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-radius-lg);overflow:hidden;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--segmented .nvb-table-paginator__pages{gap:0}.nvb-table-paginator--segmented .nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__page{min-width:40px;min-height:40px;height:40px;padding:0 14px;border:none;border-radius:0;background:transparent;color:var(--nvb-color-neutral-700);box-shadow:none}.nvb-table-paginator--segmented .nvb-table-paginator__nav--icon{width:40px;padding:0}.nvb-table-paginator--segmented .nvb-table-paginator__nav+.nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__nav+.nvb-table-paginator__pages,.nvb-table-paginator--segmented .nvb-table-paginator__pages+.nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__pages+.nvb-table-paginator__pages,.nvb-table-paginator--segmented .nvb-table-paginator__page+.nvb-table-paginator__page{border-inline-start:1px solid color-mix(in oklab,var(--nvb-color-neutral-300) 86%,transparent)}.nvb-table-paginator--segmented .nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator--segmented .nvb-table-paginator__page:not(:disabled):hover{background:color-mix(in oklab,var(--nvb-color-primary-500) 10%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-primary-700)}.nvb-table-paginator--segmented .nvb-table-paginator__page--active,.nvb-table-paginator--segmented .nvb-table-paginator__page--active:disabled{background:var(--nvb-color-primary-600);color:var(--nvb-color-neutral-000);font-weight:700}.nvb-table-paginator--segmented .nvb-table-paginator__nav:disabled,.nvb-table-paginator--segmented .nvb-table-paginator__page:disabled{opacity:1;background:transparent;color:var(--nvb-color-neutral-400);border-color:transparent}.nvb-table-paginator--segmented .nvb-table-paginator__size-select{width:92px;min-width:92px}.nvb-list-grid__sort-button{min-width:160px;justify-content:center}.nvb-list-grid__sort-direction{color:var(--nvb-color-neutral-600);font-size:12px}.nvb-list-grid__infinite-sentinel{display:flex;justify-content:center;align-items:center;min-height:24px;margin-top:16px}.nvb-list-grid__infinite-loading{color:var(--nvb-color-neutral-600);font-size:12px}:host ::ng-deep .nvb-list-grid__card-default,:host ::ng-deep .nvb-list-grid__line{all:unset}@media(max-width:640px){.nvb-table-quick-search,.nvb-list-grid__sort-button{width:100%}.nvb-table-toolbar{align-items:stretch}}@keyframes list-grid-loading{0%{background-position:100% 0}to{background-position:-100% 0}}\n"],dependencies:[{kind:"ngmodule",type:k},{kind:"directive",type:V.NgStyle,selector:"[ngStyle]",inputs:["ngStyle"]},{kind:"ngmodule",type:w},{kind:"directive",type:g.NgSelectOption,selector:"option",inputs:["ngValue","value"]},{kind:"directive",type:g.ɵNgSelectMultipleOption,selector:"option",inputs:["ngValue","value"]},{kind:"directive",type:g.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{kind:"directive",type:g.NgModel,selector:"[ngModel]:not([formControlName]):not([formControl])",inputs:["name","disabled","ngModel","ngModelOptions"],outputs:["ngModelChange"],exportAs:["ngModel"]},{kind:"component",type:_,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"component",type:y,selector:"nvb-select",inputs:["value","disabled","required","filterable","filterThreshold","allowCustomValue","placeholder","testId"],outputs:["valueChange","change","focus","blur"]},{kind:"component",type:x,selector:"nvb-style-outlet",inputs:["cssText","renderInPlace","styleKey"]},{kind:"pipe",type:f,name:"uiT"}],changeDetection:s.ChangeDetectionStrategy.OnPush})};s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.2.1",ngImport:s,type:u,decorators:[{type:T,args:[{selector:"list-grid-element",changeDetection:R.OnPush,imports:[k,w,_,y,x,f],template:"<element-wrapper [model]=\"model()\">\n @if (templateCss()) {\n <nvb-style-outlet\n [cssText]=\"templateCss()\"\n [renderInPlace]=\"true\"\n [styleKey]=\"styleOutletKey()\"\n ></nvb-style-outlet>\n }\n\n <div\n #listGridShellRef\n class=\"nvb-list-grid-shell\"\n [class.nvb-list-grid-shell--sticky-header]=\"stickyHeaderEnabled()\"\n >\n @if (quickSearchEnabled() || sortControlEnabled()) {\n <div\n #stickyHeaderRef\n class=\"nvb-list-grid-sticky-header\"\n [class.nvb-list-grid-sticky-header--enabled]=\"stickyHeaderEnabled()\"\n [class.nvb-list-grid-sticky-header--pinned]=\"stickyHeaderPinned()\"\n >\n <div class=\"nvb-table-toolbar\" [attr.data-testid]=\"tid('toolbar')\">\n <div class=\"nvb-table-toolbar__left\">\n @if (quickSearchEnabled()) {\n <div class=\"nvb-table-quick-search\" [attr.data-testid]=\"tid('search')\">\n <button [attr.data-testid]=\"tid('search-apply')\"\n type=\"button\"\n class=\"nvb-table-quick-search__apply\"\n (click)=\"applyQuickSearch()\"\n [attr.aria-label]=\"'listGrid.search.apply' | uiT: 'Apply search'\"\n >\n <span class=\"material-symbols-outlined\">search</span>\n </button>\n <input\n type=\"text\"\n [value]=\"quickSearchTerm()\"\n [placeholder]=\"quickSearchPlaceholder() | uiT: quickSearchPlaceholder()\"\n (input)=\"onQuickSearchInput($any($event.target).value)\"\n (keydown.enter)=\"applyQuickSearch(); $event.preventDefault()\"\n [attr.data-testid]=\"tid('search-input')\"\n />\n @if (quickSearchTerm()) {\n <button\n type=\"button\"\n class=\"nvb-table-quick-search__clear\"\n (click)=\"clearQuickSearch()\"\n [attr.aria-label]=\"'listGrid.search.clear' | uiT: 'Clear search'\"\n [attr.data-testid]=\"tid('search-clear')\"\n >\n <span class=\"material-symbols-outlined\">close</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"nvb-table-toolbar__right\">\n @if (sortControlEnabled()) {\n <button\n type=\"button\"\n class=\"nvb-table-toolbar__button nvb-list-grid__sort-button\"\n (click)=\"toggleSortDirection()\"\n [disabled]=\"!sortAvailable()\"\n [attr.data-testid]=\"tid('sort-toggle')\"\n >\n <span class=\"material-symbols-outlined\">swap_vert</span>\n <span>{{ 'listGrid.sort' | uiT: 'Rikiuoti' }}</span>\n <span class=\"nvb-list-grid__sort-direction\">\n {{ sortDirectionLabel() | uiT: sortDirectionLabel() }}\n </span>\n </button>\n }\n </div>\n </div>\n </div>\n }\n\n @if (showLoadingSkeleton()) {\n <div\n class=\"nvb-list-grid nvb-list-grid--loading\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-testid]=\"tid('loading')\"\n >\n @for (skeleton of [0, 1, 2]; track skeleton) {\n <div class=\"nvb-list-grid__skeleton\"></div>\n }\n </div>\n } @else if (items().length > 0) {\n <div\n class=\"nvb-list-grid\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [class.nvb-list-grid--busy]=\"loading() && initialLoadCompleted()\"\n [attr.data-testid]=\"tid('root')\"\n >\n @for (item of items(); track trackItem(item, $index); let itemIndex = $index) {\n <article\n class=\"nvb-list-grid__card nvb-select-template-option\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-option-index]=\"itemIndex\"\n [attr.data-value]=\"resolveItemValueAttribute(item, itemIndex)\"\n [innerHTML]=\"renderedCards()[itemIndex]\"\n (click)=\"onCardClick(item, itemIndex, $event)\"\n [attr.data-testid]=\"tid('card', itemIndex)\"\n ></article>\n }\n </div>\n } @else if (previewCards().length > 0) {\n <div\n class=\"nvb-list-grid\"\n [ngStyle]=\"layoutStyle()\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-testid]=\"tid('template-preview')\"\n >\n @for (card of previewCards(); track $index; let itemIndex = $index) {\n <article\n class=\"nvb-list-grid__card nvb-list-grid__card--preview nvb-select-template-option\"\n [attr.data-nvb-template-scope]=\"templateScopeId\"\n [attr.data-option-index]=\"itemIndex\"\n [attr.data-value]=\"itemIndex\"\n [innerHTML]=\"card\"\n [attr.data-testid]=\"tid('template-preview', itemIndex)\"\n ></article>\n }\n </div>\n } @else {\n <div class=\"nvb-list-grid__empty\" [attr.data-testid]=\"tid('empty')\">\n {{ model().emptyMessage || ('listGrid.empty' | uiT: 'No data to display.') }}\n </div>\n }\n\n @if (infinityScrollEnabled() && canLoadMoreInfinity()) {\n <div\n #infiniteSentinelRef\n class=\"nvb-list-grid__infinite-sentinel\"\n [attr.data-testid]=\"tid('infinite-sentinel')\"\n >\n @if (loading() && initialLoadCompleted()) {\n <span class=\"nvb-list-grid__infinite-loading\">\n {{ 'listGrid.loadingMore' | uiT: 'Kraunama daugiau...' }}\n </span>\n }\n </div>\n }\n\n @if (showPaginatorFooter()) {\n <div\n class=\"nvb-table-paginator\"\n [class.nvb-table-paginator--compact]=\"paginatorStyle() === 'compact'\"\n [class.nvb-table-paginator--segmented]=\"paginatorStyle() === 'segmented'\"\n [attr.data-testid]=\"tid('paginator')\"\n >\n <div class=\"nvb-table-paginator__content\">\n <div class=\"nvb-table-paginator__controls\">\n @if (showFirstLastPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"firstPage()\"\n [disabled]=\"pageIndex() <= 0\"\n [attr.data-testid]=\"tid('page-first')\"\n >\n <span class=\"material-symbols-outlined\">keyboard_double_arrow_left</span>\n </button>\n }\n\n @if (showPrevNextPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"previousPage()\"\n [disabled]=\"pageIndex() <= 0\"\n [attr.data-testid]=\"tid('page-prev')\"\n >\n <span class=\"material-symbols-outlined\">chevron_left</span>\n </button>\n }\n\n @if (showNumericPaginator()) {\n <div class=\"nvb-table-paginator__pages\">\n @for (page of visiblePageNumbers(); track page) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__page\"\n [class.nvb-table-paginator__page--active]=\"page === pageIndex()\"\n (click)=\"goToPage(page)\"\n [disabled]=\"page === pageIndex()\"\n [attr.data-testid]=\"tid('page', page)\"\n >\n {{ page + 1 }}\n </button>\n }\n </div>\n }\n\n @if (showPrevNextPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"nextPage()\"\n [disabled]=\"pageIndex() >= totalPages() - 1\"\n [attr.data-testid]=\"tid('page-next')\"\n >\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </button>\n }\n\n @if (showFirstLastPaginator()) {\n <button\n type=\"button\"\n class=\"nvb-table-paginator__nav nvb-table-paginator__nav--icon\"\n (click)=\"lastPage()\"\n [disabled]=\"pageIndex() >= totalPages() - 1\"\n [attr.data-testid]=\"tid('page-last')\"\n >\n <span class=\"material-symbols-outlined\">keyboard_double_arrow_right</span>\n </button>\n }\n </div>\n\n @if (showPageMeta()) {\n <span class=\"nvb-table-paginator__meta\" [attr.data-testid]=\"tid('record-count')\">\n {{ pageMeta() }}\n </span>\n }\n </div>\n\n @if (showPageSizeSelector()) {\n <div class=\"nvb-table-paginator__size\">\n <nvb-select [testId]=\"tid('size-select')\"\n class=\"nvb-table-paginator__size-select\"\n [ngModel]=\"pageSize()\"\n (ngModelChange)=\"setPageSize($event)\"\n >\n @for (size of pageSizeOptions(); track size) {\n <option [ngValue]=\"size\">{{ size }}</option>\n }\n </nvb-select>\n </div>\n }\n </div>\n }\n </div>\n</element-wrapper>\n",styles:[":host{display:block;width:100%;--nvb-table-control-height: var(--nvb-input-height, 40px);--nvb-table-control-radius: var(--nvb-input-radius, var(--nvb-radius-md));--nvb-table-control-font-size: var(--nvb-input-font-size, 14px);--nvb-table-control-padding-x: var(--nvb-input-padding-x, 12px)}.nvb-list-grid-shell{position:relative;display:flex;flex-direction:column;gap:0}.nvb-list-grid-sticky-header{display:flex;flex-direction:column;gap:0}.nvb-list-grid-sticky-header--enabled{position:sticky;top:0;z-index:38}.nvb-list-grid-sticky-header--enabled.nvb-list-grid-sticky-header--pinned{background:var(--nvb-color-neutral-000);box-shadow:var(--nvb-shadow-8)}.nvb-list-grid{width:100%}.nvb-list-grid--busy{opacity:.7}.nvb-list-grid--loading{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.nvb-list-grid__skeleton{height:96px;border-radius:var(--nvb-card-radius);background:linear-gradient(90deg,var(--nvb-color-neutral-100) 0%,var(--nvb-color-neutral-200) 45%,var(--nvb-color-neutral-100) 100%);background-size:220% 100%;animation:list-grid-loading 1.1s ease-in-out infinite}.nvb-list-grid__card{display:block;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none;transition:none;cursor:pointer}.nvb-list-grid__card-content{display:block;width:100%;height:100%}.nvb-list-grid__card--preview{cursor:default;pointer-events:none}.nvb-list-grid__empty{border:1px dashed var(--nvb-color-neutral-300);border-radius:var(--nvb-card-radius);padding:16px;color:var(--nvb-color-neutral-500);background:var(--nvb-color-neutral-050)}.nvb-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;margin-bottom:16px;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-card-radius);background:var(--nvb-color-neutral-050);flex-wrap:wrap}.nvb-table-toolbar__left,.nvb-table-toolbar__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nvb-table-toolbar__right{justify-content:flex-end;flex:0 0 auto;margin-left:auto}.nvb-table-toolbar__button,.nvb-table-quick-search__apply,.nvb-table-quick-search__clear{font-family:var(--nvb-font-family);font-size:var(--nvb-table-control-font-size);font-weight:var(--nvb-control-font-weight, 500);line-height:1.3;transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease;outline:0}.nvb-table-toolbar__button{border:var(--nvb-control-button-border-width, 1px) solid var(--nvb-control-button-border-color, var(--nvb-color-neutral-300));background:var(--nvb-control-button-bg, var(--nvb-color-neutral-050));color:var(--nvb-control-button-text-color, var(--nvb-color-primary-700));border-radius:var(--nvb-table-control-radius);min-height:var(--nvb-table-control-height);padding:0 var(--nvb-table-control-padding-x);display:inline-flex;align-items:center;gap:6px;cursor:pointer}.nvb-table-toolbar__button:hover{border-color:var(--nvb-control-button-hover-border-color, var(--nvb-color-primary-300));background:var(--nvb-control-button-hover-bg, var(--nvb-color-primary-050));color:var(--nvb-control-button-hover-text-color, var(--nvb-color-primary-800))}.nvb-table-toolbar__button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.nvb-table-toolbar__button span.material-symbols-outlined{font-size:18px}.nvb-table-quick-search{min-width:220px;border:var(--nvb-input-border-width, 1px) solid var(--nvb-input-border-color, var(--nvb-color-neutral-300));background:var(--nvb-input-bg, var(--nvb-color-neutral-000));border-radius:var(--nvb-table-control-radius);min-height:var(--nvb-table-control-height);display:inline-flex;align-items:center;padding:0 6px;gap:4px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.nvb-table-quick-search:focus-within{border-color:var(--nvb-input-focus-border-color, var(--nvb-color-primary-500));box-shadow:var(--nvb-focus-ring)}.nvb-table-quick-search input{border:none;outline:none;background:transparent;width:100%;min-height:var(--nvb-table-control-height);font-family:var(--nvb-font-family);font-size:var(--nvb-table-control-font-size);color:var(--nvb-input-text-color, var(--nvb-color-neutral-700));padding:0 6px}.nvb-table-quick-search input::placeholder{color:var(--nvb-input-placeholder-color, var(--nvb-color-neutral-500))}.nvb-table-quick-search__apply,.nvb-table-quick-search__clear{width:calc(var(--nvb-table-control-height) - 10px);min-width:calc(var(--nvb-table-control-height) - 10px);height:calc(var(--nvb-table-control-height) - 10px);border:1px solid transparent;border-radius:var(--nvb-radius-md);background:transparent;color:var(--nvb-color-neutral-500);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.nvb-table-quick-search__apply span,.nvb-table-quick-search__clear span{font-size:16px}.nvb-table-quick-search__apply:hover,.nvb-table-quick-search__clear:hover{background:var(--nvb-color-neutral-100)}.nvb-table-paginator{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:8px 10px;margin-top:18px;background:var(--nvb-color-neutral-050);border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-radius-lg);flex-wrap:wrap}.nvb-table-paginator__content,.nvb-table-paginator__controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.nvb-table-paginator__size{display:inline-flex;align-items:center;min-width:0;margin-inline-start:auto}.nvb-table-paginator__nav,.nvb-table-paginator__page{border:1px solid var(--nvb-color-neutral-300);background:color-mix(in oklab,var(--nvb-color-neutral-100) 82%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-700);border-radius:var(--nvb-table-control-radius);min-width:var(--nvb-table-control-height);min-height:var(--nvb-table-control-height);padding:0 var(--nvb-table-control-padding-x);font-size:var(--nvb-table-control-font-size);cursor:pointer;transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}.nvb-table-paginator__nav{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.nvb-table-paginator__nav--icon{min-width:var(--nvb-table-control-height);width:var(--nvb-table-control-height);padding:0}.nvb-table-paginator__nav--icon span{font-size:18px;color:inherit}.nvb-table-paginator__pages{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.nvb-table-paginator__size-select{width:88px;min-width:88px}.nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator__page:not(:disabled):hover{border-color:var(--nvb-color-primary-400);background:color-mix(in oklab,var(--nvb-color-primary-500) 12%,var(--nvb-color-neutral-100));color:var(--nvb-color-primary-700)}.nvb-table-paginator__nav:disabled,.nvb-table-paginator__page:disabled{opacity:.55;cursor:not-allowed;background:color-mix(in oklab,var(--nvb-color-neutral-200) 75%,var(--nvb-color-surface-mix-target, white));border-color:color-mix(in oklab,var(--nvb-color-neutral-300) 78%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-500)}.nvb-table-paginator__page--active,.nvb-table-paginator__page--active:disabled{opacity:1;border-color:var(--nvb-color-primary-500);background:color-mix(in oklab,var(--nvb-color-primary-500) 12%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-primary-700);font-weight:600}.nvb-table-paginator__meta{font-size:12px;color:var(--nvb-color-neutral-600)}.nvb-table-paginator--compact{gap:14px;padding:12px 14px;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--compact .nvb-table-paginator__content,.nvb-table-paginator--compact .nvb-table-paginator__controls,.nvb-table-paginator--compact .nvb-table-paginator__pages{gap:6px}.nvb-table-paginator--compact .nvb-table-paginator__nav,.nvb-table-paginator--compact .nvb-table-paginator__page{min-width:34px;min-height:34px;height:34px;padding:0 8px;border:1px solid transparent;border-radius:var(--nvb-radius-full);background:transparent;color:var(--nvb-color-neutral-600);box-shadow:none}.nvb-table-paginator--compact .nvb-table-paginator__nav--icon{width:34px;padding:0}.nvb-table-paginator--compact .nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator--compact .nvb-table-paginator__page:not(:disabled):hover{border-color:color-mix(in oklab,var(--nvb-color-neutral-300) 72%,transparent);background:color-mix(in oklab,var(--nvb-color-neutral-100) 78%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-neutral-900)}.nvb-table-paginator--compact .nvb-table-paginator__page--active,.nvb-table-paginator--compact .nvb-table-paginator__page--active:disabled{border-color:var(--nvb-color-neutral-950);background:var(--nvb-color-neutral-950);color:var(--nvb-color-neutral-000);font-weight:700}.nvb-table-paginator--compact .nvb-table-paginator__nav:disabled,.nvb-table-paginator--compact .nvb-table-paginator__page:disabled{opacity:.4;background:transparent;border-color:transparent;color:var(--nvb-color-neutral-400)}.nvb-table-paginator--compact .nvb-table-paginator__size-select{width:92px;min-width:92px}.nvb-table-paginator--segmented{gap:14px;padding:12px 14px;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--segmented .nvb-table-paginator__content{gap:10px}.nvb-table-paginator--segmented .nvb-table-paginator__controls{gap:0;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-radius-lg);overflow:hidden;background:var(--nvb-color-neutral-000)}.nvb-table-paginator--segmented .nvb-table-paginator__pages{gap:0}.nvb-table-paginator--segmented .nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__page{min-width:40px;min-height:40px;height:40px;padding:0 14px;border:none;border-radius:0;background:transparent;color:var(--nvb-color-neutral-700);box-shadow:none}.nvb-table-paginator--segmented .nvb-table-paginator__nav--icon{width:40px;padding:0}.nvb-table-paginator--segmented .nvb-table-paginator__nav+.nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__nav+.nvb-table-paginator__pages,.nvb-table-paginator--segmented .nvb-table-paginator__pages+.nvb-table-paginator__nav,.nvb-table-paginator--segmented .nvb-table-paginator__pages+.nvb-table-paginator__pages,.nvb-table-paginator--segmented .nvb-table-paginator__page+.nvb-table-paginator__page{border-inline-start:1px solid color-mix(in oklab,var(--nvb-color-neutral-300) 86%,transparent)}.nvb-table-paginator--segmented .nvb-table-paginator__nav:not(:disabled):hover,.nvb-table-paginator--segmented .nvb-table-paginator__page:not(:disabled):hover{background:color-mix(in oklab,var(--nvb-color-primary-500) 10%,var(--nvb-color-surface-mix-target, white));color:var(--nvb-color-primary-700)}.nvb-table-paginator--segmented .nvb-table-paginator__page--active,.nvb-table-paginator--segmented .nvb-table-paginator__page--active:disabled{background:var(--nvb-color-primary-600);color:var(--nvb-color-neutral-000);font-weight:700}.nvb-table-paginator--segmented .nvb-table-paginator__nav:disabled,.nvb-table-paginator--segmented .nvb-table-paginator__page:disabled{opacity:1;background:transparent;color:var(--nvb-color-neutral-400);border-color:transparent}.nvb-table-paginator--segmented .nvb-table-paginator__size-select{width:92px;min-width:92px}.nvb-list-grid__sort-button{min-width:160px;justify-content:center}.nvb-list-grid__sort-direction{color:var(--nvb-color-neutral-600);font-size:12px}.nvb-list-grid__infinite-sentinel{display:flex;justify-content:center;align-items:center;min-height:24px;margin-top:16px}.nvb-list-grid__infinite-loading{color:var(--nvb-color-neutral-600);font-size:12px}:host ::ng-deep .nvb-list-grid__card-default,:host ::ng-deep .nvb-list-grid__line{all:unset}@media(max-width:640px){.nvb-table-quick-search,.nvb-list-grid__sort-button{width:100%}.nvb-table-toolbar{align-items:stretch}}@keyframes list-grid-loading{0%{background-position:100% 0}to{background-position:-100% 0}}\n"]}]}],propDecorators:{model:[{type:s.Input,args:[{isSignal:true,alias:"model",required:true}]}],listGridShellRef:[{type:s.ViewChild,args:["listGridShellRef",{isSignal:true}]}],stickyHeaderRef:[{type:s.ViewChild,args:["stickyHeaderRef",{isSignal:true}]}],infiniteSentinelRef:[{type:s.ViewChild,args:["infiniteSentinelRef",{isSignal:true}]}]}});export{E as n,u as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as m}from"./ngxviewbuilder-runtime-rolldown-runtime-DpJrqANO.mjs";import{d as g,in as p,on as u,t as l}from"./ngxviewbuilder-runtime-dynamic-text.pipe-DJNHX-1z.mjs";import{o as d,r as _,rt as x,t as b}from"./ngxviewbuilder-runtime-element-wrapper-FxbwPLem.mjs";import*as r from"@angular/core";import{ChangeDetectionStrategy as h,Component as f,computed as t,inject as i,input as k,signal as y}from"@angular/core";import{NgClass as v}from"@angular/common";var w=m({MessageCardElement:()=>o});var o=class c{model=k.required(...ngDevMode?[{debugName:"model"}]:[]);tid=_(this.model,"nvb-message-card","message-card");visible=y(true,...ngDevMode?[{debugName:"visible"}]:[]);elementActionService=i(x);expressionService=i(g);uiTranslationService=i(u);variantClass=t(()=>`nvb-message-card--${this.resolveVariant()}`,...ngDevMode?[{debugName:"variantClass"}]:[]);cardClasses=t(()=>{const e=String(this.model()?.appearance??"soft");return{[this.variantClass()]:true,[`nvb-message-card--appearance-${e==="card"||e==="accent"?e:"soft"}`]:true,"nvb-message-card--actions-inline":this.model()?.actionsLayout==="inline","nvb-message-card--dismissible":Boolean(this.model()?.dismissible),"nvb-message-card--no-icon":!this.model()?.showIcon}},...ngDevMode?[{debugName:"cardClasses"}]:[]);iconName=t(()=>{const e=String(this.model()?.icon??"").trim();if(e)return e;switch(this.resolveVariant()){case"primary":return"bolt";case"success":return"check_circle";case"warn":return"warning";case"risk":return"error";case"neutral":return"info_outline";default:return"info"}},...ngDevMode?[{debugName:"iconName"}]:[]);buttonActions=t(()=>(Array.isArray(this.model()?.events)?this.model().events:[]).filter(e=>String(e?.trigger??"click").trim().toLowerCase()==="click"&&String(e?.label??"").trim().length>0).map((e,n)=>this.normalizeButtonAction(e,n)),...ngDevMode?[{debugName:"buttonActions"}]:[]);ngOnInit(){this.visible.set(Boolean(this.model()?.initiallyVisible??true));if(p.isEditor())this.visible.set(true)}onActionClick(e,n){e.preventDefault();e.stopPropagation();const a=this.buildRuntimeContext("click");this.elementActionService.runAction(this.model(),n,a)}onDismiss(e){e.preventDefault();e.stopPropagation();if(this.model().dismissible)this.visible.set(false);this.elementActionService.runActions(this.model(),this.model().events??[],"click",this.buildRuntimeContext("dismiss"))}resolvedTitle(){const e=String(this.model()?.title??"").trim();return e==="Information"?this.uiTranslationService.translate("messageCard.titleDefault","Information"):e}resolvedDescription(){const e=String(this.model()?.descriptionText??"").trim();return e==="Message details"?this.uiTranslationService.translate("messageCard.descriptionDefault","Message details"):e}dismissLabel(){return this.uiTranslationService.translate("common.dismiss","Dismiss")}messageAriaLive(){const e=this.resolveVariant();return e==="risk"||e==="warn"?"assertive":"polite"}messageRole(){return this.messageAriaLive()==="assertive"?"alert":"status"}resolveActionButtonClass(e,n=0){const a=this.normalizeActionButtonVariant(e?.buttonVariant);const s=String(e?.buttonTone??"accent");return{"nvb-message-card__button--accent":s==="accent","nvb-message-card__button--filled":a==="filled","nvb-message-card__button--outlined":a==="outlined","nvb-message-card__button--text":a==="text","nvb-message-card__button--primary":s==="primary","nvb-message-card__button--risk":s==="risk","nvb-message-card__button--neutral":s==="neutral"}}buildRuntimeContext(e){const n={action:e,value:this.model().value,item:null,row:null};const a=String(this.model().name??"").trim();if(a)n[a]=this.model().value;return n}resolveVariant(){const e=this.resolveConditionalVariant()||this.resolveExpressionValue(this.model()?.variantExpression)||String(this.model()?.variant??"info");const n=String(e).trim().toLowerCase();if(n==="neutral")return"neutral";if(n==="success")return"success";if(n==="warn"||n==="warning")return"warn";if(n==="risk"||n==="danger"||n==="error")return"risk";if(n==="primary")return"primary";return"info"}resolveConditionalVariant(){if(String(this.model()?.variantMode??"static").trim().toLowerCase()!=="conditional")return"";const e=Array.isArray(this.model()?.variantRules)?this.model().variantRules:[];for(const n of e){const a=String(n?.condition??"").trim();if(!a)continue;if(Boolean(this.expressionService.evaluateInlineExpression(a,this.model())))return String(n?.variant??"").trim()}return""}resolveExpressionValue(e){const n=String(e??"").trim();if(!n)return"";const a=this.expressionService.evaluateInlineExpression(n,this.model());return String(a??"").trim()}normalizeButtonAction(e,n){const a=String(e?.buttonVariant??"").trim().length>0;const s=String(e?.buttonTone??"").trim().length>0;return{...e,label:String(e?.label??"").trim(),trigger:"click",buttonVariant:a?this.normalizeActionButtonVariant(e?.buttonVariant):n===0?"filled":"outlined",buttonTone:s?this.normalizeActionButtonTone(e?.buttonTone):n===0?"accent":"neutral"}}normalizeActionButtonVariant(e){const n=String(e??"").trim().toLowerCase();if(n==="filled"||n==="solid")return"filled";if(n==="text")return"text";return"outlined"}normalizeActionButtonTone(e){const n=String(e??"").trim().toLowerCase();if(n==="primary")return"primary";if(n==="risk"||n==="danger"||n==="error")return"risk";return"neutral"}static ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.2.1",ngImport:r,type:c,deps:[],target:r.ɵɵFactoryTarget.Component});static ɵcmp=r.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.2.1",type:c,isStandalone:true,selector:"message-card-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:r,template:"<element-wrapper [model]=\"model()\">\n @if (visible()) {\n <article\n class=\"nvb-message-card\"\n [ngClass]=\"cardClasses()\"\n [attr.data-testid]=\"tid('root')\"\n [attr.role]=\"messageRole()\"\n [attr.aria-live]=\"messageAriaLive()\"\n >\n @if (model().showIcon) {\n <span class=\"nvb-message-card__icon\" aria-hidden=\"true\">\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </span>\n }\n\n <div class=\"nvb-message-card__body\">\n <div class=\"nvb-message-card__text\">\n @if (resolvedTitle()) {\n <h4 class=\"nvb-message-card__title\">{{ resolvedTitle() | dynamicText: model() }}</h4>\n }\n <!-- No whitespace inside: the description keeps line breaks (pre-line) and the\n template's own indentation used to push it right of the title. -->\n @if (resolvedDescription()) {\n <p class=\"nvb-message-card__description\">{{ resolvedDescription() | dynamicText: model() }}</p>\n }\n </div>\n\n @if (buttonActions().length) {\n <div class=\"nvb-message-card__actions\" [attr.data-testid]=\"tid('actions')\">\n @for (action of buttonActions(); track action.id || $index) {\n <button\n type=\"button\"\n class=\"nvb-message-card__button\"\n [ngClass]=\"resolveActionButtonClass(action, $index)\"\n (click)=\"onActionClick($event, action)\"\n [attr.data-testid]=\"tid('action', $index)\"\n >\n @if (action.icon) {\n <nvb-icon [name]=\"action.icon\"></nvb-icon>\n }\n <span>{{ action.label | dynamicText: model() }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n @if (model().dismissible) {\n <button\n type=\"button\"\n class=\"nvb-message-card__dismiss\"\n (click)=\"onDismiss($event)\"\n [attr.aria-label]=\"dismissLabel()\"\n [attr.title]=\"dismissLabel()\"\n [attr.data-testid]=\"tid('dismiss')\"\n >\n <nvb-icon name=\"close\"></nvb-icon>\n </button>\n }\n </article>\n }\n</element-wrapper>\n",styles:['@charset "UTF-8";:host{display:block;width:100%;container-type:inline-size;container-name:nvb-message}.nvb-message-card{--nvb-message-accent: var(--nvb-color-primary-600);--nvb-message-tint: var(--nvb-color-primary-500);--nvb-message-bg: var(--nvb-color-neutral-000);--nvb-message-border: var(--nvb-color-neutral-200);position:relative;width:100%;box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--nvb-message-border);border-radius:var(--nvb-radius-md, var(--nvb-radius-lg));background:var(--nvb-message-bg);color:var(--nvb-color-neutral-700)}.nvb-message-card--no-icon{grid-template-columns:minmax(0,1fr)}.nvb-message-card--dismissible{padding-right:44px}.nvb-message-card__icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--nvb-message-accent)}.nvb-message-card__icon nvb-icon{width:20px;height:20px;display:inline-flex}.nvb-message-card__body{min-width:0;display:flex;flex-direction:column;gap:10px}.nvb-message-card__text{min-width:0;display:flex;flex-direction:column;gap:2px}.nvb-message-card__title{margin:0;color:var(--nvb-color-neutral-900);font-size:14px;line-height:20px;font-weight:600}.nvb-message-card__description{margin:0;font-size:13px;line-height:1.5;color:var(--nvb-color-neutral-600);white-space:pre-line;overflow-wrap:anywhere}.nvb-message-card--appearance-soft .nvb-message-card__icon,.nvb-message-card--appearance-accent .nvb-message-card__icon{margin-top:0}.nvb-message-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.nvb-message-card__button{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-button-radius, var(--nvb-radius-md));background:var(--nvb-color-neutral-000);color:var(--nvb-color-neutral-800);font:inherit;font-size:12px;line-height:18px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.nvb-message-card__button nvb-icon{width:14px;height:14px;display:inline-flex}.nvb-message-card__button:hover{background:var(--nvb-color-neutral-050)}.nvb-message-card__button:focus-visible,.nvb-message-card__dismiss:focus-visible{outline:0;box-shadow:var(--nvb-focus-ring)}.nvb-message-card__button--filled{color:var(--nvb-color-neutral-000)}.nvb-message-card__button--filled.nvb-message-card__button--accent{background:var(--nvb-message-accent);border-color:var(--nvb-message-accent)}.nvb-message-card__button--filled.nvb-message-card__button--primary{background:var(--nvb-color-primary-600);border-color:var(--nvb-color-primary-600)}.nvb-message-card__button--filled.nvb-message-card__button--risk{background:var(--nvb-color-risk-600);border-color:var(--nvb-color-risk-600)}.nvb-message-card__button--filled.nvb-message-card__button--neutral{background:var(--nvb-color-neutral-800);border-color:var(--nvb-color-neutral-800)}.nvb-message-card__button--filled:hover{background:color-mix(in oklab,var(--nvb-message-accent) 88%,var(--nvb-color-neutral-950))}.nvb-message-card__button--filled.nvb-message-card__button--primary:hover{background:var(--nvb-color-primary-700)}.nvb-message-card__button--filled.nvb-message-card__button--risk:hover{background:var(--nvb-color-risk-700)}.nvb-message-card__button--filled.nvb-message-card__button--neutral:hover{background:var(--nvb-color-neutral-900)}.nvb-message-card__button--outlined.nvb-message-card__button--accent,.nvb-message-card__button--text.nvb-message-card__button--accent{color:var(--nvb-message-accent)}.nvb-message-card__button--outlined.nvb-message-card__button--primary,.nvb-message-card__button--text.nvb-message-card__button--primary{color:var(--nvb-color-primary-700)}.nvb-message-card__button--outlined.nvb-message-card__button--risk,.nvb-message-card__button--text.nvb-message-card__button--risk{color:var(--nvb-color-risk-700)}.nvb-message-card__button--outlined.nvb-message-card__button--risk{border-color:color-mix(in oklab,var(--nvb-color-risk-500) 45%,var(--nvb-color-neutral-300))}.nvb-message-card__button--text{border-color:transparent;background:transparent;padding-inline:6px}.nvb-message-card__button--text:first-child{margin-left:-6px}.nvb-message-card__button--text:hover{background:color-mix(in oklab,var(--nvb-message-tint) 10%,transparent)}.nvb-message-card__dismiss{position:absolute;top:8px;right:8px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--nvb-control-radius, var(--nvb-radius-md));background:transparent;color:var(--nvb-color-neutral-500);cursor:pointer}.nvb-message-card__dismiss nvb-icon{width:16px;height:16px;display:inline-flex}.nvb-message-card__dismiss:hover{background:color-mix(in oklab,var(--nvb-color-neutral-900) 7%,transparent);color:var(--nvb-color-neutral-800)}.nvb-message-card--appearance-soft{--nvb-message-bg: color-mix(in oklab, var(--nvb-message-tint) 7%, var(--nvb-color-neutral-000));--nvb-message-border: color-mix(in oklab, var(--nvb-message-tint) 26%, var(--nvb-color-neutral-200))}.nvb-message-card--appearance-card{grid-template-columns:minmax(0,1fr);row-gap:14px;padding:18px;border-color:var(--nvb-color-neutral-200);background:var(--nvb-color-neutral-000);box-shadow:var(--nvb-shadow-2, 0 1px 2px rgba(0, 0, 0, .06))}.nvb-message-card--appearance-card.nvb-message-card--dismissible{padding-right:18px}.nvb-message-card--appearance-card .nvb-message-card__icon{width:36px;height:36px;border-radius:var(--nvb-radius-lg);background:color-mix(in oklab,var(--nvb-message-tint) 12%,var(--nvb-color-neutral-000))}.nvb-message-card--appearance-card .nvb-message-card__title{font-size:15px;line-height:22px}.nvb-message-card--appearance-card .nvb-message-card__text{gap:4px}.nvb-message-card--appearance-card .nvb-message-card__body{gap:14px}.nvb-message-card--appearance-accent{padding:2px 0 2px 14px;border:0;border-left:3px solid var(--nvb-message-accent);border-radius:0;background:transparent}.nvb-message-card--appearance-accent.nvb-message-card--dismissible{padding-right:36px}.nvb-message-card--appearance-accent .nvb-message-card__dismiss{top:-2px;right:0}@container nvb-message (min-width: 560px){.nvb-message-card--actions-inline .nvb-message-card__body{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.nvb-message-card--actions-inline .nvb-message-card__actions{flex-wrap:nowrap;flex-shrink:0}}.nvb-message-card--info,.nvb-message-card--primary{--nvb-message-accent: var(--nvb-color-primary-600);--nvb-message-tint: var(--nvb-color-primary-500)}.nvb-message-card--neutral{--nvb-message-accent: var(--nvb-color-neutral-600);--nvb-message-tint: var(--nvb-color-neutral-500)}.nvb-message-card--success{--nvb-message-accent: var(--nvb-color-success-700);--nvb-message-tint: var(--nvb-color-success-500)}.nvb-message-card--warn,.nvb-message-card--warning{--nvb-message-accent: var(--nvb-color-warning-700);--nvb-message-tint: var(--nvb-color-warning-500)}.nvb-message-card--risk,.nvb-message-card--error{--nvb-message-accent: var(--nvb-color-risk-700);--nvb-message-tint: var(--nvb-color-risk-500)}.nvb-message-card--neutral.nvb-message-card--appearance-soft{--nvb-message-bg: var(--nvb-color-neutral-000);--nvb-message-border: var(--nvb-color-neutral-200)}@media(prefers-reduced-motion:reduce){.nvb-message-card__button{transition:none}}\n'],dependencies:[{kind:"component",type:b,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"directive",type:v,selector:"[ngClass]",inputs:["class","ngClass"]},{kind:"component",type:d,selector:"nvb-icon",inputs:["name","svg","ariaLabel"]},{kind:"pipe",type:l,name:"dynamicText"}],changeDetection:r.ChangeDetectionStrategy.OnPush})};r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.2.1",ngImport:r,type:o,decorators:[{type:f,args:[{selector:"message-card-element",changeDetection:h.OnPush,imports:[b,v,l,d],template:"<element-wrapper [model]=\"model()\">\n @if (visible()) {\n <article\n class=\"nvb-message-card\"\n [ngClass]=\"cardClasses()\"\n [attr.data-testid]=\"tid('root')\"\n [attr.role]=\"messageRole()\"\n [attr.aria-live]=\"messageAriaLive()\"\n >\n @if (model().showIcon) {\n <span class=\"nvb-message-card__icon\" aria-hidden=\"true\">\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </span>\n }\n\n <div class=\"nvb-message-card__body\">\n <div class=\"nvb-message-card__text\">\n @if (resolvedTitle()) {\n <h4 class=\"nvb-message-card__title\">{{ resolvedTitle() | dynamicText: model() }}</h4>\n }\n <!-- No whitespace inside: the description keeps line breaks (pre-line) and the\n template's own indentation used to push it right of the title. -->\n @if (resolvedDescription()) {\n <p class=\"nvb-message-card__description\">{{ resolvedDescription() | dynamicText: model() }}</p>\n }\n </div>\n\n @if (buttonActions().length) {\n <div class=\"nvb-message-card__actions\" [attr.data-testid]=\"tid('actions')\">\n @for (action of buttonActions(); track action.id || $index) {\n <button\n type=\"button\"\n class=\"nvb-message-card__button\"\n [ngClass]=\"resolveActionButtonClass(action, $index)\"\n (click)=\"onActionClick($event, action)\"\n [attr.data-testid]=\"tid('action', $index)\"\n >\n @if (action.icon) {\n <nvb-icon [name]=\"action.icon\"></nvb-icon>\n }\n <span>{{ action.label | dynamicText: model() }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n @if (model().dismissible) {\n <button\n type=\"button\"\n class=\"nvb-message-card__dismiss\"\n (click)=\"onDismiss($event)\"\n [attr.aria-label]=\"dismissLabel()\"\n [attr.title]=\"dismissLabel()\"\n [attr.data-testid]=\"tid('dismiss')\"\n >\n <nvb-icon name=\"close\"></nvb-icon>\n </button>\n }\n </article>\n }\n</element-wrapper>\n",styles:['@charset "UTF-8";:host{display:block;width:100%;container-type:inline-size;container-name:nvb-message}.nvb-message-card{--nvb-message-accent: var(--nvb-color-primary-600);--nvb-message-tint: var(--nvb-color-primary-500);--nvb-message-bg: var(--nvb-color-neutral-000);--nvb-message-border: var(--nvb-color-neutral-200);position:relative;width:100%;box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--nvb-message-border);border-radius:var(--nvb-radius-md, var(--nvb-radius-lg));background:var(--nvb-message-bg);color:var(--nvb-color-neutral-700)}.nvb-message-card--no-icon{grid-template-columns:minmax(0,1fr)}.nvb-message-card--dismissible{padding-right:44px}.nvb-message-card__icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--nvb-message-accent)}.nvb-message-card__icon nvb-icon{width:20px;height:20px;display:inline-flex}.nvb-message-card__body{min-width:0;display:flex;flex-direction:column;gap:10px}.nvb-message-card__text{min-width:0;display:flex;flex-direction:column;gap:2px}.nvb-message-card__title{margin:0;color:var(--nvb-color-neutral-900);font-size:14px;line-height:20px;font-weight:600}.nvb-message-card__description{margin:0;font-size:13px;line-height:1.5;color:var(--nvb-color-neutral-600);white-space:pre-line;overflow-wrap:anywhere}.nvb-message-card--appearance-soft .nvb-message-card__icon,.nvb-message-card--appearance-accent .nvb-message-card__icon{margin-top:0}.nvb-message-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.nvb-message-card__button{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-button-radius, var(--nvb-radius-md));background:var(--nvb-color-neutral-000);color:var(--nvb-color-neutral-800);font:inherit;font-size:12px;line-height:18px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.nvb-message-card__button nvb-icon{width:14px;height:14px;display:inline-flex}.nvb-message-card__button:hover{background:var(--nvb-color-neutral-050)}.nvb-message-card__button:focus-visible,.nvb-message-card__dismiss:focus-visible{outline:0;box-shadow:var(--nvb-focus-ring)}.nvb-message-card__button--filled{color:var(--nvb-color-neutral-000)}.nvb-message-card__button--filled.nvb-message-card__button--accent{background:var(--nvb-message-accent);border-color:var(--nvb-message-accent)}.nvb-message-card__button--filled.nvb-message-card__button--primary{background:var(--nvb-color-primary-600);border-color:var(--nvb-color-primary-600)}.nvb-message-card__button--filled.nvb-message-card__button--risk{background:var(--nvb-color-risk-600);border-color:var(--nvb-color-risk-600)}.nvb-message-card__button--filled.nvb-message-card__button--neutral{background:var(--nvb-color-neutral-800);border-color:var(--nvb-color-neutral-800)}.nvb-message-card__button--filled:hover{background:color-mix(in oklab,var(--nvb-message-accent) 88%,var(--nvb-color-neutral-950))}.nvb-message-card__button--filled.nvb-message-card__button--primary:hover{background:var(--nvb-color-primary-700)}.nvb-message-card__button--filled.nvb-message-card__button--risk:hover{background:var(--nvb-color-risk-700)}.nvb-message-card__button--filled.nvb-message-card__button--neutral:hover{background:var(--nvb-color-neutral-900)}.nvb-message-card__button--outlined.nvb-message-card__button--accent,.nvb-message-card__button--text.nvb-message-card__button--accent{color:var(--nvb-message-accent)}.nvb-message-card__button--outlined.nvb-message-card__button--primary,.nvb-message-card__button--text.nvb-message-card__button--primary{color:var(--nvb-color-primary-700)}.nvb-message-card__button--outlined.nvb-message-card__button--risk,.nvb-message-card__button--text.nvb-message-card__button--risk{color:var(--nvb-color-risk-700)}.nvb-message-card__button--outlined.nvb-message-card__button--risk{border-color:color-mix(in oklab,var(--nvb-color-risk-500) 45%,var(--nvb-color-neutral-300))}.nvb-message-card__button--text{border-color:transparent;background:transparent;padding-inline:6px}.nvb-message-card__button--text:first-child{margin-left:-6px}.nvb-message-card__button--text:hover{background:color-mix(in oklab,var(--nvb-message-tint) 10%,transparent)}.nvb-message-card__dismiss{position:absolute;top:8px;right:8px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--nvb-control-radius, var(--nvb-radius-md));background:transparent;color:var(--nvb-color-neutral-500);cursor:pointer}.nvb-message-card__dismiss nvb-icon{width:16px;height:16px;display:inline-flex}.nvb-message-card__dismiss:hover{background:color-mix(in oklab,var(--nvb-color-neutral-900) 7%,transparent);color:var(--nvb-color-neutral-800)}.nvb-message-card--appearance-soft{--nvb-message-bg: color-mix(in oklab, var(--nvb-message-tint) 7%, var(--nvb-color-neutral-000));--nvb-message-border: color-mix(in oklab, var(--nvb-message-tint) 26%, var(--nvb-color-neutral-200))}.nvb-message-card--appearance-card{grid-template-columns:minmax(0,1fr);row-gap:14px;padding:18px;border-color:var(--nvb-color-neutral-200);background:var(--nvb-color-neutral-000);box-shadow:var(--nvb-shadow-2, 0 1px 2px rgba(0, 0, 0, .06))}.nvb-message-card--appearance-card.nvb-message-card--dismissible{padding-right:18px}.nvb-message-card--appearance-card .nvb-message-card__icon{width:36px;height:36px;border-radius:var(--nvb-radius-lg);background:color-mix(in oklab,var(--nvb-message-tint) 12%,var(--nvb-color-neutral-000))}.nvb-message-card--appearance-card .nvb-message-card__title{font-size:15px;line-height:22px}.nvb-message-card--appearance-card .nvb-message-card__text{gap:4px}.nvb-message-card--appearance-card .nvb-message-card__body{gap:14px}.nvb-message-card--appearance-accent{padding:2px 0 2px 14px;border:0;border-left:3px solid var(--nvb-message-accent);border-radius:0;background:transparent}.nvb-message-card--appearance-accent.nvb-message-card--dismissible{padding-right:36px}.nvb-message-card--appearance-accent .nvb-message-card__dismiss{top:-2px;right:0}@container nvb-message (min-width: 560px){.nvb-message-card--actions-inline .nvb-message-card__body{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.nvb-message-card--actions-inline .nvb-message-card__actions{flex-wrap:nowrap;flex-shrink:0}}.nvb-message-card--info,.nvb-message-card--primary{--nvb-message-accent: var(--nvb-color-primary-600);--nvb-message-tint: var(--nvb-color-primary-500)}.nvb-message-card--neutral{--nvb-message-accent: var(--nvb-color-neutral-600);--nvb-message-tint: var(--nvb-color-neutral-500)}.nvb-message-card--success{--nvb-message-accent: var(--nvb-color-success-700);--nvb-message-tint: var(--nvb-color-success-500)}.nvb-message-card--warn,.nvb-message-card--warning{--nvb-message-accent: var(--nvb-color-warning-700);--nvb-message-tint: var(--nvb-color-warning-500)}.nvb-message-card--risk,.nvb-message-card--error{--nvb-message-accent: var(--nvb-color-risk-700);--nvb-message-tint: var(--nvb-color-risk-500)}.nvb-message-card--neutral.nvb-message-card--appearance-soft{--nvb-message-bg: var(--nvb-color-neutral-000);--nvb-message-border: var(--nvb-color-neutral-200)}@media(prefers-reduced-motion:reduce){.nvb-message-card__button{transition:none}}\n']}]}],propDecorators:{model:[{type:r.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{w as n,o as t};
|
|
1
|
+
import{t as m}from"./ngxviewbuilder-runtime-rolldown-runtime-DpJrqANO.mjs";import{an as g,d as p,sn as u,t as l}from"./ngxviewbuilder-runtime-dynamic-text.pipe-BUJ4fCqt.mjs";import{o as d,r as _,rt as x,t as b}from"./ngxviewbuilder-runtime-element-wrapper-BUzRnWUH.mjs";import*as r from"@angular/core";import{ChangeDetectionStrategy as h,Component as f,computed as t,inject as i,input as k,signal as y}from"@angular/core";import{NgClass as v}from"@angular/common";var w=m({MessageCardElement:()=>o});var o=class c{model=k.required(...ngDevMode?[{debugName:"model"}]:[]);tid=_(this.model,"nvb-message-card","message-card");visible=y(true,...ngDevMode?[{debugName:"visible"}]:[]);elementActionService=i(x);expressionService=i(p);uiTranslationService=i(u);variantClass=t(()=>`nvb-message-card--${this.resolveVariant()}`,...ngDevMode?[{debugName:"variantClass"}]:[]);cardClasses=t(()=>{const e=String(this.model()?.appearance??"soft");return{[this.variantClass()]:true,[`nvb-message-card--appearance-${e==="card"||e==="accent"?e:"soft"}`]:true,"nvb-message-card--actions-inline":this.model()?.actionsLayout==="inline","nvb-message-card--dismissible":Boolean(this.model()?.dismissible),"nvb-message-card--no-icon":!this.model()?.showIcon}},...ngDevMode?[{debugName:"cardClasses"}]:[]);iconName=t(()=>{const e=String(this.model()?.icon??"").trim();if(e)return e;switch(this.resolveVariant()){case"primary":return"bolt";case"success":return"check_circle";case"warn":return"warning";case"risk":return"error";case"neutral":return"info_outline";default:return"info"}},...ngDevMode?[{debugName:"iconName"}]:[]);buttonActions=t(()=>(Array.isArray(this.model()?.events)?this.model().events:[]).filter(e=>String(e?.trigger??"click").trim().toLowerCase()==="click"&&String(e?.label??"").trim().length>0).map((e,n)=>this.normalizeButtonAction(e,n)),...ngDevMode?[{debugName:"buttonActions"}]:[]);ngOnInit(){this.visible.set(Boolean(this.model()?.initiallyVisible??true));if(g.isEditor())this.visible.set(true)}onActionClick(e,n){e.preventDefault();e.stopPropagation();const a=this.buildRuntimeContext("click");this.elementActionService.runAction(this.model(),n,a)}onDismiss(e){e.preventDefault();e.stopPropagation();if(this.model().dismissible)this.visible.set(false);this.elementActionService.runActions(this.model(),this.model().events??[],"click",this.buildRuntimeContext("dismiss"))}resolvedTitle(){const e=String(this.model()?.title??"").trim();return e==="Information"?this.uiTranslationService.translate("messageCard.titleDefault","Information"):e}resolvedDescription(){const e=String(this.model()?.descriptionText??"").trim();return e==="Message details"?this.uiTranslationService.translate("messageCard.descriptionDefault","Message details"):e}dismissLabel(){return this.uiTranslationService.translate("common.dismiss","Dismiss")}messageAriaLive(){const e=this.resolveVariant();return e==="risk"||e==="warn"?"assertive":"polite"}messageRole(){return this.messageAriaLive()==="assertive"?"alert":"status"}resolveActionButtonClass(e,n=0){const a=this.normalizeActionButtonVariant(e?.buttonVariant);const s=String(e?.buttonTone??"accent");return{"nvb-message-card__button--accent":s==="accent","nvb-message-card__button--filled":a==="filled","nvb-message-card__button--outlined":a==="outlined","nvb-message-card__button--text":a==="text","nvb-message-card__button--primary":s==="primary","nvb-message-card__button--risk":s==="risk","nvb-message-card__button--neutral":s==="neutral"}}buildRuntimeContext(e){const n={action:e,value:this.model().value,item:null,row:null};const a=String(this.model().name??"").trim();if(a)n[a]=this.model().value;return n}resolveVariant(){const e=this.resolveConditionalVariant()||this.resolveExpressionValue(this.model()?.variantExpression)||String(this.model()?.variant??"info");const n=String(e).trim().toLowerCase();if(n==="neutral")return"neutral";if(n==="success")return"success";if(n==="warn"||n==="warning")return"warn";if(n==="risk"||n==="danger"||n==="error")return"risk";if(n==="primary")return"primary";return"info"}resolveConditionalVariant(){if(String(this.model()?.variantMode??"static").trim().toLowerCase()!=="conditional")return"";const e=Array.isArray(this.model()?.variantRules)?this.model().variantRules:[];for(const n of e){const a=String(n?.condition??"").trim();if(!a)continue;if(Boolean(this.expressionService.evaluateInlineExpression(a,this.model())))return String(n?.variant??"").trim()}return""}resolveExpressionValue(e){const n=String(e??"").trim();if(!n)return"";const a=this.expressionService.evaluateInlineExpression(n,this.model());return String(a??"").trim()}normalizeButtonAction(e,n){const a=String(e?.buttonVariant??"").trim().length>0;const s=String(e?.buttonTone??"").trim().length>0;return{...e,label:String(e?.label??"").trim(),trigger:"click",buttonVariant:a?this.normalizeActionButtonVariant(e?.buttonVariant):n===0?"filled":"outlined",buttonTone:s?this.normalizeActionButtonTone(e?.buttonTone):n===0?"accent":"neutral"}}normalizeActionButtonVariant(e){const n=String(e??"").trim().toLowerCase();if(n==="filled"||n==="solid")return"filled";if(n==="text")return"text";return"outlined"}normalizeActionButtonTone(e){const n=String(e??"").trim().toLowerCase();if(n==="primary")return"primary";if(n==="risk"||n==="danger"||n==="error")return"risk";return"neutral"}static ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.2.1",ngImport:r,type:c,deps:[],target:r.ɵɵFactoryTarget.Component});static ɵcmp=r.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.2.1",type:c,isStandalone:true,selector:"message-card-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:r,template:"<element-wrapper [model]=\"model()\">\n @if (visible()) {\n <article\n class=\"nvb-message-card\"\n [ngClass]=\"cardClasses()\"\n [attr.data-testid]=\"tid('root')\"\n [attr.role]=\"messageRole()\"\n [attr.aria-live]=\"messageAriaLive()\"\n >\n @if (model().showIcon) {\n <span class=\"nvb-message-card__icon\" aria-hidden=\"true\">\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </span>\n }\n\n <div class=\"nvb-message-card__body\">\n <div class=\"nvb-message-card__text\">\n @if (resolvedTitle()) {\n <h4 class=\"nvb-message-card__title\">{{ resolvedTitle() | dynamicText: model() }}</h4>\n }\n <!-- No whitespace inside: the description keeps line breaks (pre-line) and the\n template's own indentation used to push it right of the title. -->\n @if (resolvedDescription()) {\n <p class=\"nvb-message-card__description\">{{ resolvedDescription() | dynamicText: model() }}</p>\n }\n </div>\n\n @if (buttonActions().length) {\n <div class=\"nvb-message-card__actions\" [attr.data-testid]=\"tid('actions')\">\n @for (action of buttonActions(); track action.id || $index) {\n <button\n type=\"button\"\n class=\"nvb-message-card__button\"\n [ngClass]=\"resolveActionButtonClass(action, $index)\"\n (click)=\"onActionClick($event, action)\"\n [attr.data-testid]=\"tid('action', $index)\"\n >\n @if (action.icon) {\n <nvb-icon [name]=\"action.icon\"></nvb-icon>\n }\n <span>{{ action.label | dynamicText: model() }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n @if (model().dismissible) {\n <button\n type=\"button\"\n class=\"nvb-message-card__dismiss\"\n (click)=\"onDismiss($event)\"\n [attr.aria-label]=\"dismissLabel()\"\n [attr.title]=\"dismissLabel()\"\n [attr.data-testid]=\"tid('dismiss')\"\n >\n <nvb-icon name=\"close\"></nvb-icon>\n </button>\n }\n </article>\n }\n</element-wrapper>\n",styles:['@charset "UTF-8";:host{display:block;width:100%;container-type:inline-size;container-name:nvb-message}.nvb-message-card{--nvb-message-accent: var(--nvb-color-primary-600);--nvb-message-tint: var(--nvb-color-primary-500);--nvb-message-bg: var(--nvb-color-neutral-000);--nvb-message-border: var(--nvb-color-neutral-200);position:relative;width:100%;box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--nvb-message-border);border-radius:var(--nvb-radius-md, var(--nvb-radius-lg));background:var(--nvb-message-bg);color:var(--nvb-color-neutral-700)}.nvb-message-card--no-icon{grid-template-columns:minmax(0,1fr)}.nvb-message-card--dismissible{padding-right:44px}.nvb-message-card__icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--nvb-message-accent)}.nvb-message-card__icon nvb-icon{width:20px;height:20px;display:inline-flex}.nvb-message-card__body{min-width:0;display:flex;flex-direction:column;gap:10px}.nvb-message-card__text{min-width:0;display:flex;flex-direction:column;gap:2px}.nvb-message-card__title{margin:0;color:var(--nvb-color-neutral-900);font-size:14px;line-height:20px;font-weight:600}.nvb-message-card__description{margin:0;font-size:13px;line-height:1.5;color:var(--nvb-color-neutral-600);white-space:pre-line;overflow-wrap:anywhere}.nvb-message-card--appearance-soft .nvb-message-card__icon,.nvb-message-card--appearance-accent .nvb-message-card__icon{margin-top:0}.nvb-message-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.nvb-message-card__button{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-button-radius, var(--nvb-radius-md));background:var(--nvb-color-neutral-000);color:var(--nvb-color-neutral-800);font:inherit;font-size:12px;line-height:18px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.nvb-message-card__button nvb-icon{width:14px;height:14px;display:inline-flex}.nvb-message-card__button:hover{background:var(--nvb-color-neutral-050)}.nvb-message-card__button:focus-visible,.nvb-message-card__dismiss:focus-visible{outline:0;box-shadow:var(--nvb-focus-ring)}.nvb-message-card__button--filled{color:var(--nvb-color-neutral-000)}.nvb-message-card__button--filled.nvb-message-card__button--accent{background:var(--nvb-message-accent);border-color:var(--nvb-message-accent)}.nvb-message-card__button--filled.nvb-message-card__button--primary{background:var(--nvb-color-primary-600);border-color:var(--nvb-color-primary-600)}.nvb-message-card__button--filled.nvb-message-card__button--risk{background:var(--nvb-color-risk-600);border-color:var(--nvb-color-risk-600)}.nvb-message-card__button--filled.nvb-message-card__button--neutral{background:var(--nvb-color-neutral-800);border-color:var(--nvb-color-neutral-800)}.nvb-message-card__button--filled:hover{background:color-mix(in oklab,var(--nvb-message-accent) 88%,var(--nvb-color-neutral-950))}.nvb-message-card__button--filled.nvb-message-card__button--primary:hover{background:var(--nvb-color-primary-700)}.nvb-message-card__button--filled.nvb-message-card__button--risk:hover{background:var(--nvb-color-risk-700)}.nvb-message-card__button--filled.nvb-message-card__button--neutral:hover{background:var(--nvb-color-neutral-900)}.nvb-message-card__button--outlined.nvb-message-card__button--accent,.nvb-message-card__button--text.nvb-message-card__button--accent{color:var(--nvb-message-accent)}.nvb-message-card__button--outlined.nvb-message-card__button--primary,.nvb-message-card__button--text.nvb-message-card__button--primary{color:var(--nvb-color-primary-700)}.nvb-message-card__button--outlined.nvb-message-card__button--risk,.nvb-message-card__button--text.nvb-message-card__button--risk{color:var(--nvb-color-risk-700)}.nvb-message-card__button--outlined.nvb-message-card__button--risk{border-color:color-mix(in oklab,var(--nvb-color-risk-500) 45%,var(--nvb-color-neutral-300))}.nvb-message-card__button--text{border-color:transparent;background:transparent;padding-inline:6px}.nvb-message-card__button--text:first-child{margin-left:-6px}.nvb-message-card__button--text:hover{background:color-mix(in oklab,var(--nvb-message-tint) 10%,transparent)}.nvb-message-card__dismiss{position:absolute;top:8px;right:8px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--nvb-control-radius, var(--nvb-radius-md));background:transparent;color:var(--nvb-color-neutral-500);cursor:pointer}.nvb-message-card__dismiss nvb-icon{width:16px;height:16px;display:inline-flex}.nvb-message-card__dismiss:hover{background:color-mix(in oklab,var(--nvb-color-neutral-900) 7%,transparent);color:var(--nvb-color-neutral-800)}.nvb-message-card--appearance-soft{--nvb-message-bg: color-mix(in oklab, var(--nvb-message-tint) 7%, var(--nvb-color-neutral-000));--nvb-message-border: color-mix(in oklab, var(--nvb-message-tint) 26%, var(--nvb-color-neutral-200))}.nvb-message-card--appearance-card{grid-template-columns:minmax(0,1fr);row-gap:14px;padding:18px;border-color:var(--nvb-color-neutral-200);background:var(--nvb-color-neutral-000);box-shadow:var(--nvb-shadow-2, 0 1px 2px rgba(0, 0, 0, .06))}.nvb-message-card--appearance-card.nvb-message-card--dismissible{padding-right:18px}.nvb-message-card--appearance-card .nvb-message-card__icon{width:36px;height:36px;border-radius:var(--nvb-radius-lg);background:color-mix(in oklab,var(--nvb-message-tint) 12%,var(--nvb-color-neutral-000))}.nvb-message-card--appearance-card .nvb-message-card__title{font-size:15px;line-height:22px}.nvb-message-card--appearance-card .nvb-message-card__text{gap:4px}.nvb-message-card--appearance-card .nvb-message-card__body{gap:14px}.nvb-message-card--appearance-accent{padding:2px 0 2px 14px;border:0;border-left:3px solid var(--nvb-message-accent);border-radius:0;background:transparent}.nvb-message-card--appearance-accent.nvb-message-card--dismissible{padding-right:36px}.nvb-message-card--appearance-accent .nvb-message-card__dismiss{top:-2px;right:0}@container nvb-message (min-width: 560px){.nvb-message-card--actions-inline .nvb-message-card__body{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.nvb-message-card--actions-inline .nvb-message-card__actions{flex-wrap:nowrap;flex-shrink:0}}.nvb-message-card--info,.nvb-message-card--primary{--nvb-message-accent: var(--nvb-color-primary-600);--nvb-message-tint: var(--nvb-color-primary-500)}.nvb-message-card--neutral{--nvb-message-accent: var(--nvb-color-neutral-600);--nvb-message-tint: var(--nvb-color-neutral-500)}.nvb-message-card--success{--nvb-message-accent: var(--nvb-color-success-700);--nvb-message-tint: var(--nvb-color-success-500)}.nvb-message-card--warn,.nvb-message-card--warning{--nvb-message-accent: var(--nvb-color-warning-700);--nvb-message-tint: var(--nvb-color-warning-500)}.nvb-message-card--risk,.nvb-message-card--error{--nvb-message-accent: var(--nvb-color-risk-700);--nvb-message-tint: var(--nvb-color-risk-500)}.nvb-message-card--neutral.nvb-message-card--appearance-soft{--nvb-message-bg: var(--nvb-color-neutral-000);--nvb-message-border: var(--nvb-color-neutral-200)}@media(prefers-reduced-motion:reduce){.nvb-message-card__button{transition:none}}\n'],dependencies:[{kind:"component",type:b,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"directive",type:v,selector:"[ngClass]",inputs:["class","ngClass"]},{kind:"component",type:d,selector:"nvb-icon",inputs:["name","svg","ariaLabel"]},{kind:"pipe",type:l,name:"dynamicText"}],changeDetection:r.ChangeDetectionStrategy.OnPush})};r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.2.1",ngImport:r,type:o,decorators:[{type:f,args:[{selector:"message-card-element",changeDetection:h.OnPush,imports:[b,v,l,d],template:"<element-wrapper [model]=\"model()\">\n @if (visible()) {\n <article\n class=\"nvb-message-card\"\n [ngClass]=\"cardClasses()\"\n [attr.data-testid]=\"tid('root')\"\n [attr.role]=\"messageRole()\"\n [attr.aria-live]=\"messageAriaLive()\"\n >\n @if (model().showIcon) {\n <span class=\"nvb-message-card__icon\" aria-hidden=\"true\">\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </span>\n }\n\n <div class=\"nvb-message-card__body\">\n <div class=\"nvb-message-card__text\">\n @if (resolvedTitle()) {\n <h4 class=\"nvb-message-card__title\">{{ resolvedTitle() | dynamicText: model() }}</h4>\n }\n <!-- No whitespace inside: the description keeps line breaks (pre-line) and the\n template's own indentation used to push it right of the title. -->\n @if (resolvedDescription()) {\n <p class=\"nvb-message-card__description\">{{ resolvedDescription() | dynamicText: model() }}</p>\n }\n </div>\n\n @if (buttonActions().length) {\n <div class=\"nvb-message-card__actions\" [attr.data-testid]=\"tid('actions')\">\n @for (action of buttonActions(); track action.id || $index) {\n <button\n type=\"button\"\n class=\"nvb-message-card__button\"\n [ngClass]=\"resolveActionButtonClass(action, $index)\"\n (click)=\"onActionClick($event, action)\"\n [attr.data-testid]=\"tid('action', $index)\"\n >\n @if (action.icon) {\n <nvb-icon [name]=\"action.icon\"></nvb-icon>\n }\n <span>{{ action.label | dynamicText: model() }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n @if (model().dismissible) {\n <button\n type=\"button\"\n class=\"nvb-message-card__dismiss\"\n (click)=\"onDismiss($event)\"\n [attr.aria-label]=\"dismissLabel()\"\n [attr.title]=\"dismissLabel()\"\n [attr.data-testid]=\"tid('dismiss')\"\n >\n <nvb-icon name=\"close\"></nvb-icon>\n </button>\n }\n </article>\n }\n</element-wrapper>\n",styles:['@charset "UTF-8";:host{display:block;width:100%;container-type:inline-size;container-name:nvb-message}.nvb-message-card{--nvb-message-accent: var(--nvb-color-primary-600);--nvb-message-tint: var(--nvb-color-primary-500);--nvb-message-bg: var(--nvb-color-neutral-000);--nvb-message-border: var(--nvb-color-neutral-200);position:relative;width:100%;box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--nvb-message-border);border-radius:var(--nvb-radius-md, var(--nvb-radius-lg));background:var(--nvb-message-bg);color:var(--nvb-color-neutral-700)}.nvb-message-card--no-icon{grid-template-columns:minmax(0,1fr)}.nvb-message-card--dismissible{padding-right:44px}.nvb-message-card__icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--nvb-message-accent)}.nvb-message-card__icon nvb-icon{width:20px;height:20px;display:inline-flex}.nvb-message-card__body{min-width:0;display:flex;flex-direction:column;gap:10px}.nvb-message-card__text{min-width:0;display:flex;flex-direction:column;gap:2px}.nvb-message-card__title{margin:0;color:var(--nvb-color-neutral-900);font-size:14px;line-height:20px;font-weight:600}.nvb-message-card__description{margin:0;font-size:13px;line-height:1.5;color:var(--nvb-color-neutral-600);white-space:pre-line;overflow-wrap:anywhere}.nvb-message-card--appearance-soft .nvb-message-card__icon,.nvb-message-card--appearance-accent .nvb-message-card__icon{margin-top:0}.nvb-message-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.nvb-message-card__button{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid var(--nvb-color-neutral-300);border-radius:var(--nvb-button-radius, var(--nvb-radius-md));background:var(--nvb-color-neutral-000);color:var(--nvb-color-neutral-800);font:inherit;font-size:12px;line-height:18px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.nvb-message-card__button nvb-icon{width:14px;height:14px;display:inline-flex}.nvb-message-card__button:hover{background:var(--nvb-color-neutral-050)}.nvb-message-card__button:focus-visible,.nvb-message-card__dismiss:focus-visible{outline:0;box-shadow:var(--nvb-focus-ring)}.nvb-message-card__button--filled{color:var(--nvb-color-neutral-000)}.nvb-message-card__button--filled.nvb-message-card__button--accent{background:var(--nvb-message-accent);border-color:var(--nvb-message-accent)}.nvb-message-card__button--filled.nvb-message-card__button--primary{background:var(--nvb-color-primary-600);border-color:var(--nvb-color-primary-600)}.nvb-message-card__button--filled.nvb-message-card__button--risk{background:var(--nvb-color-risk-600);border-color:var(--nvb-color-risk-600)}.nvb-message-card__button--filled.nvb-message-card__button--neutral{background:var(--nvb-color-neutral-800);border-color:var(--nvb-color-neutral-800)}.nvb-message-card__button--filled:hover{background:color-mix(in oklab,var(--nvb-message-accent) 88%,var(--nvb-color-neutral-950))}.nvb-message-card__button--filled.nvb-message-card__button--primary:hover{background:var(--nvb-color-primary-700)}.nvb-message-card__button--filled.nvb-message-card__button--risk:hover{background:var(--nvb-color-risk-700)}.nvb-message-card__button--filled.nvb-message-card__button--neutral:hover{background:var(--nvb-color-neutral-900)}.nvb-message-card__button--outlined.nvb-message-card__button--accent,.nvb-message-card__button--text.nvb-message-card__button--accent{color:var(--nvb-message-accent)}.nvb-message-card__button--outlined.nvb-message-card__button--primary,.nvb-message-card__button--text.nvb-message-card__button--primary{color:var(--nvb-color-primary-700)}.nvb-message-card__button--outlined.nvb-message-card__button--risk,.nvb-message-card__button--text.nvb-message-card__button--risk{color:var(--nvb-color-risk-700)}.nvb-message-card__button--outlined.nvb-message-card__button--risk{border-color:color-mix(in oklab,var(--nvb-color-risk-500) 45%,var(--nvb-color-neutral-300))}.nvb-message-card__button--text{border-color:transparent;background:transparent;padding-inline:6px}.nvb-message-card__button--text:first-child{margin-left:-6px}.nvb-message-card__button--text:hover{background:color-mix(in oklab,var(--nvb-message-tint) 10%,transparent)}.nvb-message-card__dismiss{position:absolute;top:8px;right:8px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--nvb-control-radius, var(--nvb-radius-md));background:transparent;color:var(--nvb-color-neutral-500);cursor:pointer}.nvb-message-card__dismiss nvb-icon{width:16px;height:16px;display:inline-flex}.nvb-message-card__dismiss:hover{background:color-mix(in oklab,var(--nvb-color-neutral-900) 7%,transparent);color:var(--nvb-color-neutral-800)}.nvb-message-card--appearance-soft{--nvb-message-bg: color-mix(in oklab, var(--nvb-message-tint) 7%, var(--nvb-color-neutral-000));--nvb-message-border: color-mix(in oklab, var(--nvb-message-tint) 26%, var(--nvb-color-neutral-200))}.nvb-message-card--appearance-card{grid-template-columns:minmax(0,1fr);row-gap:14px;padding:18px;border-color:var(--nvb-color-neutral-200);background:var(--nvb-color-neutral-000);box-shadow:var(--nvb-shadow-2, 0 1px 2px rgba(0, 0, 0, .06))}.nvb-message-card--appearance-card.nvb-message-card--dismissible{padding-right:18px}.nvb-message-card--appearance-card .nvb-message-card__icon{width:36px;height:36px;border-radius:var(--nvb-radius-lg);background:color-mix(in oklab,var(--nvb-message-tint) 12%,var(--nvb-color-neutral-000))}.nvb-message-card--appearance-card .nvb-message-card__title{font-size:15px;line-height:22px}.nvb-message-card--appearance-card .nvb-message-card__text{gap:4px}.nvb-message-card--appearance-card .nvb-message-card__body{gap:14px}.nvb-message-card--appearance-accent{padding:2px 0 2px 14px;border:0;border-left:3px solid var(--nvb-message-accent);border-radius:0;background:transparent}.nvb-message-card--appearance-accent.nvb-message-card--dismissible{padding-right:36px}.nvb-message-card--appearance-accent .nvb-message-card__dismiss{top:-2px;right:0}@container nvb-message (min-width: 560px){.nvb-message-card--actions-inline .nvb-message-card__body{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.nvb-message-card--actions-inline .nvb-message-card__actions{flex-wrap:nowrap;flex-shrink:0}}.nvb-message-card--info,.nvb-message-card--primary{--nvb-message-accent: var(--nvb-color-primary-600);--nvb-message-tint: var(--nvb-color-primary-500)}.nvb-message-card--neutral{--nvb-message-accent: var(--nvb-color-neutral-600);--nvb-message-tint: var(--nvb-color-neutral-500)}.nvb-message-card--success{--nvb-message-accent: var(--nvb-color-success-700);--nvb-message-tint: var(--nvb-color-success-500)}.nvb-message-card--warn,.nvb-message-card--warning{--nvb-message-accent: var(--nvb-color-warning-700);--nvb-message-tint: var(--nvb-color-warning-500)}.nvb-message-card--risk,.nvb-message-card--error{--nvb-message-accent: var(--nvb-color-risk-700);--nvb-message-tint: var(--nvb-color-risk-500)}.nvb-message-card--neutral.nvb-message-card--appearance-soft{--nvb-message-bg: var(--nvb-color-neutral-000);--nvb-message-border: var(--nvb-color-neutral-200)}@media(prefers-reduced-motion:reduce){.nvb-message-card__button{transition:none}}\n']}]}],propDecorators:{model:[{type:r.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{w as n,o as t};
|