@eclipse-scout/core 22.0.26 → 22.0.33
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/dist/eclipse-scout-core-b11dde8e4ac1367f5a06.min.js +2 -0
- package/dist/eclipse-scout-core-b11dde8e4ac1367f5a06.min.js.map +1 -0
- package/dist/eclipse-scout-core-theme-dark-0d9d468e5722f73f5075.min.css +1 -0
- package/dist/eclipse-scout-core-theme-dark.css +1 -0
- package/dist/eclipse-scout-core-theme-dark.css.map +1 -1
- package/dist/eclipse-scout-core-theme-db0af3fa95956b820bfc.min.css +1 -0
- package/dist/eclipse-scout-core-theme.css +1 -0
- package/dist/eclipse-scout-core-theme.css.map +1 -1
- package/dist/eclipse-scout-core.js +43 -10
- package/dist/eclipse-scout-core.js.map +1 -1
- package/dist/file-list +4 -4
- package/package.json +3 -3
- package/src/desktop/outline/Outline.less +1 -0
- package/src/desktop/outline/OutlineLayout.js +1 -1
- package/src/desktop/outline/PageLayout.js +5 -2
- package/src/layout/graphics.js +15 -1
- package/src/tree/Tree.js +9 -5
- package/dist/eclipse-scout-core-a56958ac9954d00cc62a.min.js +0 -2
- package/dist/eclipse-scout-core-a56958ac9954d00cc62a.min.js.map +0 -1
- package/dist/eclipse-scout-core-theme-dark-fd0e080c10f65e67b68b.min.css +0 -1
- package/dist/eclipse-scout-core-theme-f3a61fbc12acf8e27fcc.min.css +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";var e={n:t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},d:(t,i)=>{for(var s in i)e.o(i,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:i[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{AbortKeyStroke:()=>on,AbstractCompactTreeControlKeyStroke:()=>Gd,AbstractGrid:()=>Pr,AbstractLayout:()=>_r,AbstractTableNavigationKeyStroke:()=>Zh,AbstractTreeNavigationKeyStroke:()=>kd,Accordion:()=>an,AccordionAdapter:()=>hn,AccordionField:()=>Fu,AccordionFieldAdapter:()=>Eu,AccordionLayout:()=>dn,Action:()=>vo,ActionAdapter:()=>To,ActionExecKeyStroke:()=>So,ActionKeyStroke:()=>xo,AggregateTableControl:()=>Wh,AggregateTableControlAdapter:()=>zh,AjaxCall:()=>Ts,AjaxError:()=>Ss,AlphanumericSortingStringColumn:()=>Ph,App:()=>E,AppLinkKeyStroke:()=>Qd,AutoLeafPageWithNodes:()=>i_,BackgroundJobPollingStatus:()=>Us,BackgroundJobPollingSupport:()=>Ks,BasicField:()=>cu,BasicFieldAdapter:()=>pu,BeanColumn:()=>Fh,BeanField:()=>Du,BeanFieldAdapter:()=>Au,BeanTile:()=>Mg,BeanTileAdapter:()=>kg,BenchColumn:()=>vm,BenchColumnLayoutData:()=>Sm,BenchRowLayoutData:()=>Tm,BooleanColumn:()=>Eh,Box:()=>Po,BoxButtons:()=>un,BreadcrumbBar:()=>L_,BreadcrumbBarAdapter:()=>O_,BreadcrumbBarField:()=>N_,BreadcrumbBarFieldAdapter:()=>H_,BreadcrumbBarLayout:()=>B_,BreadcrumbItem:()=>k_,BreadcrumbItemAdapter:()=>I_,BrowserField:()=>$u,BrowserFieldAdapter:()=>Ru,BrowserFieldLayout:()=>Mu,BusyIndicator:()=>qs,Button:()=>Iu,ButtonAdapter:()=>Bu,ButtonAdapterMenu:()=>El,ButtonKeyStroke:()=>Ou,ButtonLayout:()=>Lu,ButtonTile:()=>Qg,CachedElement:()=>Ni,Calculator:()=>Ac,Calendar:()=>Wl,CalendarAdapter:()=>zl,CalendarComponent:()=>Gl,CalendarComponentAdapter:()=>Ul,CalendarField:()=>Nu,CalendarFieldAdapter:()=>Hu,CalendarLayout:()=>ql,CalendarListComponent:()=>Kl,CalendarModeMenu:()=>jl,CalendarModesMenu:()=>Yl,Call:()=>_e,CancelMenu:()=>$a,Carousel:()=>cn,CarouselField:()=>Vu,CarouselLayout:()=>pn,Cell:()=>gn,CellEditorCancelEditKeyStroke:()=>Yh,CellEditorCompleteEditKeyStroke:()=>Xh,CellEditorPopup:()=>qh,CellEditorPopupLayout:()=>jh,CellEditorTabKeyStroke:()=>Jh,CheckBoxField:()=>Wu,CheckBoxFieldAdapter:()=>zu,CheckBoxToggleKeyStroke:()=>Gu,ClickActiveElementKeyStroke:()=>sn,ClipboardField:()=>Ku,ClipboardFieldAdapter:()=>qu,CloseKeyStroke:()=>nn,CloseMenu:()=>Ra,Code:()=>ks,CodeLookupCall:()=>Gs,CodeType:()=>Is,CollapseHandle:()=>mn,ColorField:()=>ju,ColorFieldAdapter:()=>Yu,Column:()=>Sh,ColumnLayout:()=>Ir,ColumnOptimalWidthMeasurer:()=>xh,ColumnUserFilter:()=>md,ComboMenu:()=>fl,ComboMenuAdapter:()=>bl,CompactBean:()=>Ah,CompactColumn:()=>Dh,CompactLine:()=>$h,CompactLineBlock:()=>Rh,CompactTree:()=>Wd,CompactTreeDownKeyStroke:()=>Kd,CompactTreeLeftKeyStroke:()=>qd,CompactTreeNode:()=>zd,CompactTreeRightKeyStroke:()=>jd,CompactTreeUpKeyStroke:()=>Ud,Composite:()=>Z,CompositeField:()=>au,CompositeFieldAdapter:()=>hu,CompositeTile:()=>Ag,ContextMenuKeyStroke:()=>tn,ContextMenuPopup:()=>yl,ContextMenuPopupLayout:()=>wl,CopyKeyStroke:()=>Pu,DateColumn:()=>Mh,DateColumnUserFilter:()=>_d,DateField:()=>Zu,DateFieldAdapter:()=>Qu,DateFormat:()=>eo,DateFormatPatternDefinition:()=>Qn,DateFormatPatternType:()=>Zn,DatePicker:()=>zo,DatePickerPopup:()=>Go,DatePickerPopupLayout:()=>Uo,DatePickerTouchPopup:()=>Ko,DatePickerTouchPopupLayout:()=>qo,DatePredictionFailedStatus:()=>Xu,DateRange:()=>Xl,DateTimeCompositeLayout:()=>ec,DecimalFormat:()=>to,DefaultStatus:()=>Li,DeferredGlassPaneTarget:()=>vn,Desktop:()=>lm,DesktopAdapter:()=>am,DesktopBench:()=>wm,DesktopFormController:()=>T_,DesktopHeader:()=>Pm,DesktopHeaderLayout:()=>Em,DesktopLayout:()=>dm,DesktopLogo:()=>hm,DesktopNavigation:()=>Am,DesktopNavigationHandle:()=>$m,DesktopNavigationLayout:()=>Rm,DesktopNotification:()=>Lm,DesktopNotificationAdapter:()=>Bm,DesktopResponsiveHandler:()=>Va,DesktopTab:()=>um,DesktopTabArea:()=>pm,DesktopTabAreaLayout:()=>cm,DesktopTabBoxController:()=>gm,DesktopTabSelectKeyStroke:()=>mm,DesktopToolBox:()=>Vm,DetailTableTreeFilter:()=>s_,Device:()=>Qe,DialogLayout:()=>La,Dimension:()=>sr,DisableBrowserF5ReloadKeyStroke:()=>_m,DisableBrowserTabSwitchingKeyStroke:()=>xm,DoubleClickSupport:()=>et,DragAndDropHandler:()=>tt,EllipsisMenu:()=>cl,EnlargeNavigationKeyStroke:()=>km,ErrorHandler:()=>I,Event:()=>ht,EventDelegator:()=>Te,EventSupport:()=>dt,Extension:()=>B,FieldStatus:()=>eu,FileChooser:()=>na,FileChooserAdapter:()=>oa,FileChooserButton:()=>tc,FileChooserButtonAdapter:()=>ic,FileChooserController:()=>la,FileChooserField:()=>sc,FileChooserFieldAdapter:()=>rc,FileChooserFieldBrowseKeyStroke:()=>nc,FileChooserFieldDeleteKeyStroke:()=>oc,FileInput:()=>aa,FilterFieldsGroupBox:()=>S_,FilterSupport:()=>q,FlexboxLayout:()=>Nr,FlexboxLayoutData:()=>Hr,FocusAdjacentElementKeyStroke:()=>rn,FocusContext:()=>fn,FocusFilterFieldKeyStroke:()=>K,FocusManager:()=>_n,FocusRule:()=>wn,Form:()=>Ta,FormAdapter:()=>Sa,FormController:()=>wu,FormField:()=>iu,FormFieldAdapter:()=>su,FormFieldLayout:()=>ru,FormFieldMenu:()=>Dl,FormFieldMenuAdapter:()=>Al,FormFieldTile:()=>Jg,FormFieldTileAdapter:()=>Zg,FormGrid:()=>xa,FormLayout:()=>Pa,FormLifecycle:()=>Aa,FormMenu:()=>Ea,FormMenuActionKeyStroke:()=>Fa,FormMenuAdapter:()=>Da,FormTableControl:()=>Gh,FormTableControlAdapter:()=>Uh,FormTableControlLayout:()=>Kh,GlassPane:()=>Cn,GlassPaneRenderer:()=>Tn,GridData:()=>lu,Group:()=>jo,GroupAdapter:()=>Yo,GroupBox:()=>ac,GroupBoxAdapter:()=>dc,GroupBoxGridConfig:()=>hc,GroupBoxLayout:()=>uc,GroupBoxMenuItemsOrder:()=>cc,GroupBoxResponsiveHandler:()=>Ha,GroupLayout:()=>Xo,GroupToggleCollapseKeyStroke:()=>Jo,HAlign:()=>ns,HeaderTabBoxController:()=>Fm,HierarchicalLookupResultBuilder:()=>Ms,HorizontalGrid:()=>Fr,HorizontalGridMatrix:()=>Mr,HtmlComponent:()=>fr,HtmlEncoder:()=>Vi,HtmlEnvironment:()=>mr,HtmlField:()=>pc,HtmlFieldAdapter:()=>gc,HtmlTile:()=>$g,HtmlTileAdapter:()=>Rg,IFrame:()=>Sn,Icon:()=>Zo,IconColumn:()=>kh,IconDesc:()=>el,Image:()=>tl,ImageField:()=>mc,ImageFieldAdapter:()=>_c,ImageFieldLayout:()=>fc,ImageLayout:()=>il,InputFieldKeyStrokeContext:()=>Qr,Insets:()=>rr,IntegerField:()=>Rc,JsFormAdapter:()=>Ga,Key:()=>qr,KeyStroke:()=>U,KeyStrokeContext:()=>Zr,KeyStrokeManager:()=>Jr,KeyTableFilter:()=>Cd,Label:()=>Fo,LabelAdapter:()=>Eo,LabelField:()=>bc,LabelFieldAdapter:()=>yc,LayoutConstants:()=>br,LayoutValidator:()=>yr,LazyNodeFilter:()=>Rd,Lifecycle:()=>Zl,ListBox:()=>wc,ListBoxAdapter:()=>Cc,ListBoxLayout:()=>vc,LoadingSupport:()=>z,Locale:()=>Ys,LogicalGrid:()=>wr,LogicalGridConfig:()=>Cr,LogicalGridData:()=>vr,LogicalGridLayout:()=>Tr,LogicalGridLayoutConfig:()=>Sr,LogicalGridLayoutInfo:()=>xr,LogicalGridMatrix:()=>Dr,LogicalGridMatrixCell:()=>Ar,LogicalGridMatrixCursor:()=>Rr,LoginApp:()=>A_,LoginBox:()=>$_,LogoutApp:()=>R_,LogoutBox:()=>M_,LookupBox:()=>fu,LookupBoxLayout:()=>bu,LookupCall:()=>xs,LookupFieldAdapter:()=>xc,LookupRow:()=>Ps,MaxLengthHandler:()=>Mt,Menu:()=>ul,MenuAdapter:()=>pl,MenuBar:()=>kl,MenuBarBox:()=>Nl,MenuBarBoxLayout:()=>Hl,MenuBarLayout:()=>Il,MenuBarLeftKeyStroke:()=>Ll,MenuBarPopup:()=>Ol,MenuBarRightKeyStroke:()=>Bl,MenuBox:()=>$l,MenuBoxLayout:()=>Rl,MenuDestinations:()=>hl,MenuExecByNumberKeyStroke:()=>Tl,MenuExecKeyStroke:()=>ml,MenuItemsOrder:()=>_l,MenuKeyStroke:()=>gl,MenuNavigationDownKeyStroke:()=>Sl,MenuNavigationExecKeyStroke:()=>vl,MenuNavigationKeyStroke:()=>Cl,MenuNavigationUpKeyStroke:()=>xl,MessageBox:()=>Cu,MessageBoxAdapter:()=>vu,MessageBoxController:()=>Tu,MessageBoxLayout:()=>xu,MessageBoxes:()=>Su,MobilePopup:()=>Ho,MobilePopupAdapter:()=>Vo,MobilePopupLayout:()=>Wo,Mode:()=>ya,ModeAdapter:()=>wa,ModeSelector:()=>Ca,ModeSelectorField:()=>Pc,ModeSelectorFieldAdapter:()=>Fc,ModeSelectorLayout:()=>va,ModelAdapter:()=>j,NavigateButton:()=>__,NavigateDownButton:()=>f_,NavigateUpButton:()=>b_,Notification:()=>sl,NotificationAdapter:()=>rl,NullLayout:()=>Lr,NullLogger:()=>ii,NullWidget:()=>Q,NullWidgetAdapter:()=>ee,NumberColumn:()=>Ih,NumberColumnUserFilter:()=>fd,NumberField:()=>Ec,NumberFieldAdapter:()=>Dc,ObjectFactory:()=>H,OfflineDesktopNotification:()=>Om,OkMenu:()=>Ma,OpenUriHandler:()=>bm,Outline:()=>r_,OutlineAdapter:()=>n_,OutlineKeyStrokeContext:()=>y_,OutlineLayout:()=>l_,OutlineMediator:()=>o_,OutlineNavigateToTopKeyStroke:()=>w_,OutlineOverview:()=>C_,OutlineTileField:()=>d_,OutlineTileFieldAdapter:()=>u_,OutlineViewButton:()=>a_,OutlineViewButtonAdapter:()=>h_,Page:()=>Xm,PageLayout:()=>c_,PageTileButton:()=>Qm,PageTileGrid:()=>e_,PageTileGridSelectKeyStroke:()=>t_,PageWithNodes:()=>Jm,PageWithTable:()=>Zm,ParsingFailedStatus:()=>Bi,PlaceholderField:()=>Mc,PlaceholderFieldAdapter:()=>kc,PlaceholderTile:()=>Xg,PlainTextEncoder:()=>Hi,Planner:()=>ea,PlannerAdapter:()=>ta,PlannerField:()=>Ic,PlannerFieldAdapter:()=>Lc,PlannerHeader:()=>ia,PlannerLayout:()=>sa,PlannerMenuItemsOrder:()=>ra,Point:()=>nr,Popup:()=>Ao,PopupAdapter:()=>$o,PopupBlockerDesktopNotification:()=>Hm,PopupBlockerHandler:()=>Nm,PopupLayout:()=>Ro,PopupManager:()=>Mo,PopupManagerAdapter:()=>ko,PopupWindow:()=>fm,PrepopulatedLookupCall:()=>Rs,PromiseCreator:()=>$i,PropertyChangeEventFilter:()=>Xs,ProposalChooser:()=>pp,ProposalChooserLayout:()=>gp,ProposalField:()=>dp,ProposalFieldAdapter:()=>up,ProposalTreeNode:()=>cp,QueryBy:()=>As,RadioButton:()=>Bc,RadioButtonAdapter:()=>Nc,RadioButtonGroup:()=>Vc,RadioButtonGroupAdapter:()=>Wc,RadioButtonGroupGridConfig:()=>zc,RadioButtonGroupLayout:()=>Gc,RadioButtonGroupLeftOrUpKeyStroke:()=>Uc,RadioButtonGroupRightOrDownKeyStroke:()=>Kc,RadioButtonKeyStroke:()=>qc,RadioButtonLayout:()=>Oc,Range:()=>Mi,RangeKeyStroke:()=>en,Reconnector:()=>Js,Rectangle:()=>or,RemoteApp:()=>L,RemoteEvent:()=>js,RemoteLookupCall:()=>Es,RemoteLookupRequest:()=>Ds,RemoteTileFilter:()=>qg,ResetMenu:()=>ka,Resizable:()=>P_,ResponseQueue:()=>Zs,ResponsiveHandler:()=>Na,ResponsiveManager:()=>Oa,RestLookupCall:()=>Fs,RoundingMode:()=>bi,Route:()=>ha,RowLayout:()=>Br,SaveMenu:()=>Ia,Scrollbar:()=>xn,SearchOutline:()=>p_,SearchOutlineAdapter:()=>g_,SearchOutlineLayout:()=>m_,SequenceBox:()=>jc,SequenceBoxAdapter:()=>Jc,SequenceBoxGridConfig:()=>Yc,SequenceBoxLayout:()=>Xc,Session:()=>er,ShrinkNavigationKeyStroke:()=>Mm,SimpleLoadingSupport:()=>G,SimpleTab:()=>sm,SimpleTabArea:()=>rm,SimpleTabAreaLayout:()=>nm,SimpleTabBox:()=>Wr,SimpleTabBoxController:()=>Vr,SimpleTabBoxLayout:()=>zr,SimpleTabViewContentLayout:()=>Gr,SingleLayout:()=>Or,Slider:()=>_a,SliderAdapter:()=>fa,SliderField:()=>Zc,SliderLayout:()=>ba,SmartColumn:()=>Lh,SmartField:()=>ep,SmartFieldAdapter:()=>tp,SmartFieldCancelKeyStroke:()=>sp,SmartFieldLayout:()=>ip,SmartFieldMultiline:()=>lp,SmartFieldMultilineAdapter:()=>ap,SmartFieldMultilineLayout:()=>hp,SmartFieldPopup:()=>rp,SmartFieldPopupLayout:()=>op,SmartFieldTouchPopup:()=>np,SplitBox:()=>wp,SplitBoxAdapter:()=>Cp,SplitBoxCollapseKeyStroke:()=>vp,SplitBoxFirstCollapseKeyStroke:()=>Tp,SplitBoxLayout:()=>xp,SplitBoxSecondCollapseKeyStroke:()=>Sp,Splitter:()=>Jn,StaticLookupCall:()=>$s,Status:()=>Ii,StatusMenuMapping:()=>nu,StatusMenuMappingAdapter:()=>ou,StringField:()=>Fp,StringFieldAdapter:()=>Dp,StringFieldCtrlEnterKeyStroke:()=>$p,StringFieldEnterKeyStroke:()=>Ap,StringFieldLayout:()=>Ep,SubCloseKeyStroke:()=>Pl,Switch:()=>mg,Tab:()=>Op,TabArea:()=>Np,TabAreaLayout:()=>Hp,TabAreaLeftKeyStroke:()=>Mp,TabAreaRightKeyStroke:()=>kp,TabBox:()=>Rp,TabBoxAdapter:()=>Ip,TabBoxHeader:()=>Bp,TabBoxHeaderLayout:()=>Lp,TabBoxLayout:()=>Vp,TabItem:()=>Wp,TabItemAdapter:()=>zp,TabItemKeyStroke:()=>ln,TabItemLayout:()=>Gp,Table:()=>Ka,TableAdapter:()=>qa,TableCompactHandler:()=>ja,TableControl:()=>Nh,TableControlActionKeyStroke:()=>Bh,TableControlAdapter:()=>Hh,TableControlAdapterMenu:()=>Vh,TableControlCloseKeyStroke:()=>Qh,TableCopyKeyStroke:()=>ed,TableField:()=>Up,TableFieldAdapter:()=>Kp,TableFilter:()=>pd,TableFooter:()=>Za,TableFooterLayout:()=>Qa,TableHeader:()=>sh,TableHeaderMenu:()=>nh,TableHeaderMenuButton:()=>ah,TableHeaderMenuGroup:()=>lh,TableHeaderMenuLayout:()=>oh,TableInfoFilterTooltip:()=>eh,TableInfoLoadTooltip:()=>th,TableInfoSelectionTooltip:()=>ih,TableLayout:()=>hh,TableLayoutResetter:()=>_p,TableMatrix:()=>Ja,TableNavigationCollapseKeyStroke:()=>td,TableNavigationDownKeyStroke:()=>ad,TableNavigationEndKeyStroke:()=>dd,TableNavigationExpandKeyStroke:()=>id,TableNavigationHomeKeyStroke:()=>hd,TableNavigationPageDownKeyStroke:()=>cd,TableNavigationPageUpKeyStroke:()=>ud,TableNavigationUpKeyStroke:()=>ld,TableProposalChooser:()=>mp,TableRefreshKeyStroke:()=>nd,TableRow:()=>Ya,TableRowDetail:()=>ph,TableRowTileMapping:()=>gh,TableRowTileMappingAdapter:()=>mh,TableSelectAllKeyStroke:()=>sd,TableSelectionHandler:()=>dh,TableStartCellEditKeyStroke:()=>rd,TableTextUserFilter:()=>yd,TableTileGridMediator:()=>uh,TableTileGridMediatorAdapter:()=>ch,TableToggleRowKeyStroke:()=>od,TableTooltip:()=>_h,TableUpdateBuffer:()=>fh,TableUserFilter:()=>gd,TagBar:()=>_g,TagBarLayout:()=>fg,TagBarOverflowPopup:()=>bg,TagBarOverflowPopupLayout:()=>yg,TagChooserPopup:()=>qp,TagChooserPopupLayout:()=>jp,TagField:()=>Yp,TagFieldAdapter:()=>Xp,TagFieldContainerLayout:()=>ig,TagFieldDeleteKeyStroke:()=>Zp,TagFieldEnterKeyStroke:()=>Jp,TagFieldLayout:()=>tg,TagFieldNavigationKeyStroke:()=>Qp,TagFieldOpenPopupKeyStroke:()=>eg,TextColumnUserFilter:()=>bd,TextMap:()=>io,TextTableFilter:()=>vd,Tile:()=>wg,TileAccordion:()=>Ig,TileAccordionAdapter:()=>Lg,TileAccordionLayout:()=>Bg,TileAccordionSelectionHandler:()=>Og,TileAdapter:()=>Cg,TileButton:()=>em,TileField:()=>sg,TileFieldAdapter:()=>rg,TileGrid:()=>Tg,TileGridAdapter:()=>Sg,TileGridGridConfig:()=>xg,TileGridLayout:()=>Pg,TileGridLayoutConfig:()=>Fg,TileGridSelectAllKeyStroke:()=>Hg,TileGridSelectDownKeyStroke:()=>zg,TileGridSelectFirstKeyStroke:()=>Ug,TileGridSelectKeyStroke:()=>Ng,TileGridSelectLastKeyStroke:()=>Kg,TileGridSelectLeftKeyStroke:()=>Vg,TileGridSelectRightKeyStroke:()=>Wg,TileGridSelectUpKeyStroke:()=>Gg,TileGridSelectionHandler:()=>Eg,TileHtmlField:()=>tm,TileOutlineOverview:()=>v_,TileOverviewForm:()=>Wa,TileOverviewFormAdapter:()=>za,TileTableField:()=>im,TileTableHeaderBox:()=>D_,TileTableHeaderGroupByLookupCall:()=>bh,TileTableHeaderSortByLookupCall:()=>yh,TileTableHierarchyFilter:()=>wd,TileTextFilter:()=>Dg,TimePicker:()=>Td,TimePickerPopup:()=>Sd,TimePickerPopupLayout:()=>xd,TimePickerTouchPopup:()=>Pd,Tooltip:()=>_o,TooltipSupport:()=>fo,TouchPopup:()=>Io,TouchPopupLayout:()=>Lo,Tree:()=>Ed,TreeAdapter:()=>Dd,TreeBox:()=>ng,TreeBoxAdapter:()=>og,TreeBoxLayout:()=>lg,TreeBreadcrumbFilter:()=>Md,TreeCollapseAllKeyStroke:()=>Nd,TreeCollapseOrDrillUpKeyStroke:()=>Hd,TreeExpandOrDrillDownKeyStroke:()=>Vd,TreeField:()=>ag,TreeFieldAdapter:()=>hg,TreeLayout:()=>$d,TreeLayoutResetter:()=>bp,TreeNavigationDownKeyStroke:()=>Bd,TreeNavigationEndKeyStroke:()=>Od,TreeNavigationUpKeyStroke:()=>Ld,TreeNode:()=>Ad,TreeProposalChooser:()=>fp,TreeSet:()=>is,TreeSpaceKeyStroke:()=>Id,TreeVisitResult:()=>yu,TypeDescriptor:()=>O,URL:()=>ss,UnsavedFormChangesForm:()=>F_,UnsavedFormsLookupCall:()=>E_,UserAgent:()=>tr,ValidationFailedStatus:()=>Oi,ValueField:()=>du,ValueFieldAdapter:()=>uu,VerticalGridMatrix:()=>kr,VerticalSmartGrid:()=>Er,ViewButton:()=>zm,ViewButtonActionKeyStroke:()=>Wm,ViewButtonAdapter:()=>Gm,ViewButtonBox:()=>Um,ViewMenuOpenKeyStroke:()=>Km,ViewMenuPopup:()=>qm,ViewMenuPopupEnterKeyStroke:()=>jm,ViewMenuTab:()=>Ym,ViewportScroller:()=>fs,VirtualKeyStrokeEvent:()=>Xr,VirtualScrolling:()=>Xn,Widget:()=>Y,WidgetEventTypeFilter:()=>ir,WidgetField:()=>gu,WidgetFieldAdapter:()=>mu,WidgetFieldLayout:()=>_u,WidgetPopup:()=>Bo,WidgetPopupAdapter:()=>Oo,WidgetPopupLayout:()=>No,WidgetSupport:()=>W,WidgetTile:()=>jg,WidgetTileAdapter:()=>Yg,WidgetTooltip:()=>wo,WizardProgressField:()=>dg,WizardProgressFieldAdapter:()=>ug,WizardProgressFieldLayout:()=>cg,WrappedFormField:()=>pg,WrappedFormFieldAdapter:()=>gg,YearPanel:()=>Jl,aggregation:()=>hs,ajax:()=>vs,arrays:()=>me,clipboard:()=>ye,codes:()=>zs,colorSchemes:()=>ve,comparators:()=>vh,cookies:()=>ms,dates:()=>Le,default:()=>J_,defaultValues:()=>We,dragAndDrop:()=>at,events:()=>Ye,fields:()=>Zd,files:()=>Xe,filters:()=>rs,focusUtils:()=>yn,fonts:()=>bt,graphics:()=>pr,icons:()=>Ct,inspector:()=>vt,keyStrokeModifier:()=>Yr,keys:()=>Kr,locales:()=>Rt,logging:()=>ti,lookupField:()=>Sc,menuNavigationKeyStrokes:()=>Fl,menus:()=>al,mimeTypes:()=>di,models:()=>pi,numbers:()=>fi,objects:()=>Ai,promises:()=>Ri,router:()=>ma,scout:()=>x,scrollbars:()=>Yn,strings:()=>qt,styles:()=>ts,texts:()=>mo,tooltips:()=>yo,webstorage:()=>gs,widgets:()=>J});var i={};e.r(i),e.d(i,{adapter:()=>y,addObjectFactories:()=>T,assertInstance:()=>c,assertParameter:()=>h,assertProperty:()=>d,assertValue:()=>u,cloneShallow:()=>S,create:()=>g,default:()=>x,exportAdapter:()=>C,getSession:()=>w,installGlobalMouseDownInterceptor:()=>_,installSyntheticActiveStateHandler:()=>f,isOneOf:()=>p,nvl:()=>a,prepareDOM:()=>m,reloadPage:()=>v,widget:()=>b});var s={};e.r(s),e.d(s,{AbortKeyStroke:()=>on,AbstractCompactTreeControlKeyStroke:()=>Gd,AbstractGrid:()=>Pr,AbstractLayout:()=>_r,AbstractTableNavigationKeyStroke:()=>Zh,AbstractTreeNavigationKeyStroke:()=>kd,Accordion:()=>an,AccordionAdapter:()=>hn,AccordionField:()=>Fu,AccordionFieldAdapter:()=>Eu,AccordionLayout:()=>dn,Action:()=>vo,ActionAdapter:()=>To,ActionExecKeyStroke:()=>So,ActionKeyStroke:()=>xo,AggregateTableControl:()=>Wh,AggregateTableControlAdapter:()=>zh,AjaxCall:()=>Ts,AjaxError:()=>Ss,AlphanumericSortingStringColumn:()=>Ph,App:()=>E,AppLinkKeyStroke:()=>Qd,AutoLeafPageWithNodes:()=>i_,BackgroundJobPollingStatus:()=>Us,BackgroundJobPollingSupport:()=>Ks,BasicField:()=>cu,BasicFieldAdapter:()=>pu,BeanColumn:()=>Fh,BeanField:()=>Du,BeanFieldAdapter:()=>Au,BeanTile:()=>Mg,BeanTileAdapter:()=>kg,BenchColumn:()=>vm,BenchColumnLayoutData:()=>Sm,BenchRowLayoutData:()=>Tm,BooleanColumn:()=>Eh,Box:()=>Po,BoxButtons:()=>un,BreadcrumbBar:()=>L_,BreadcrumbBarAdapter:()=>O_,BreadcrumbBarField:()=>N_,BreadcrumbBarFieldAdapter:()=>H_,BreadcrumbBarLayout:()=>B_,BreadcrumbItem:()=>k_,BreadcrumbItemAdapter:()=>I_,BrowserField:()=>$u,BrowserFieldAdapter:()=>Ru,BrowserFieldLayout:()=>Mu,BusyIndicator:()=>qs,Button:()=>Iu,ButtonAdapter:()=>Bu,ButtonAdapterMenu:()=>El,ButtonKeyStroke:()=>Ou,ButtonLayout:()=>Lu,ButtonTile:()=>Qg,CachedElement:()=>Ni,Calculator:()=>Ac,Calendar:()=>Wl,CalendarAdapter:()=>zl,CalendarComponent:()=>Gl,CalendarComponentAdapter:()=>Ul,CalendarField:()=>Nu,CalendarFieldAdapter:()=>Hu,CalendarLayout:()=>ql,CalendarListComponent:()=>Kl,CalendarModeMenu:()=>jl,CalendarModesMenu:()=>Yl,Call:()=>_e,CancelMenu:()=>$a,Carousel:()=>cn,CarouselField:()=>Vu,CarouselLayout:()=>pn,Cell:()=>gn,CellEditorCancelEditKeyStroke:()=>Yh,CellEditorCompleteEditKeyStroke:()=>Xh,CellEditorPopup:()=>qh,CellEditorPopupLayout:()=>jh,CellEditorTabKeyStroke:()=>Jh,CheckBoxField:()=>Wu,CheckBoxFieldAdapter:()=>zu,CheckBoxToggleKeyStroke:()=>Gu,ClickActiveElementKeyStroke:()=>sn,ClipboardField:()=>Ku,ClipboardFieldAdapter:()=>qu,CloseKeyStroke:()=>nn,CloseMenu:()=>Ra,Code:()=>ks,CodeLookupCall:()=>Gs,CodeType:()=>Is,CollapseHandle:()=>mn,ColorField:()=>ju,ColorFieldAdapter:()=>Yu,Column:()=>Sh,ColumnLayout:()=>Ir,ColumnOptimalWidthMeasurer:()=>xh,ColumnUserFilter:()=>md,ComboMenu:()=>fl,ComboMenuAdapter:()=>bl,CompactBean:()=>Ah,CompactColumn:()=>Dh,CompactLine:()=>$h,CompactLineBlock:()=>Rh,CompactTree:()=>Wd,CompactTreeDownKeyStroke:()=>Kd,CompactTreeLeftKeyStroke:()=>qd,CompactTreeNode:()=>zd,CompactTreeRightKeyStroke:()=>jd,CompactTreeUpKeyStroke:()=>Ud,Composite:()=>Z,CompositeField:()=>au,CompositeFieldAdapter:()=>hu,CompositeTile:()=>Ag,ContextMenuKeyStroke:()=>tn,ContextMenuPopup:()=>yl,ContextMenuPopupLayout:()=>wl,CopyKeyStroke:()=>Pu,DateColumn:()=>Mh,DateColumnUserFilter:()=>_d,DateField:()=>Zu,DateFieldAdapter:()=>Qu,DateFormat:()=>eo,DateFormatPatternDefinition:()=>Qn,DateFormatPatternType:()=>Zn,DatePicker:()=>zo,DatePickerPopup:()=>Go,DatePickerPopupLayout:()=>Uo,DatePickerTouchPopup:()=>Ko,DatePickerTouchPopupLayout:()=>qo,DatePredictionFailedStatus:()=>Xu,DateRange:()=>Xl,DateTimeCompositeLayout:()=>ec,DecimalFormat:()=>to,DefaultStatus:()=>Li,DeferredGlassPaneTarget:()=>vn,Desktop:()=>lm,DesktopAdapter:()=>am,DesktopBench:()=>wm,DesktopFormController:()=>T_,DesktopHeader:()=>Pm,DesktopHeaderLayout:()=>Em,DesktopLayout:()=>dm,DesktopLogo:()=>hm,DesktopNavigation:()=>Am,DesktopNavigationHandle:()=>$m,DesktopNavigationLayout:()=>Rm,DesktopNotification:()=>Lm,DesktopNotificationAdapter:()=>Bm,DesktopResponsiveHandler:()=>Va,DesktopTab:()=>um,DesktopTabArea:()=>pm,DesktopTabAreaLayout:()=>cm,DesktopTabBoxController:()=>gm,DesktopTabSelectKeyStroke:()=>mm,DesktopToolBox:()=>Vm,DetailTableTreeFilter:()=>s_,Device:()=>Qe,DialogLayout:()=>La,Dimension:()=>sr,DisableBrowserF5ReloadKeyStroke:()=>_m,DisableBrowserTabSwitchingKeyStroke:()=>xm,DoubleClickSupport:()=>et,DragAndDropHandler:()=>tt,EllipsisMenu:()=>cl,EnlargeNavigationKeyStroke:()=>km,ErrorHandler:()=>I,Event:()=>ht,EventDelegator:()=>Te,EventSupport:()=>dt,Extension:()=>B,FieldStatus:()=>eu,FileChooser:()=>na,FileChooserAdapter:()=>oa,FileChooserButton:()=>tc,FileChooserButtonAdapter:()=>ic,FileChooserController:()=>la,FileChooserField:()=>sc,FileChooserFieldAdapter:()=>rc,FileChooserFieldBrowseKeyStroke:()=>nc,FileChooserFieldDeleteKeyStroke:()=>oc,FileInput:()=>aa,FilterFieldsGroupBox:()=>S_,FilterSupport:()=>q,FlexboxLayout:()=>Nr,FlexboxLayoutData:()=>Hr,FocusAdjacentElementKeyStroke:()=>rn,FocusContext:()=>fn,FocusFilterFieldKeyStroke:()=>K,FocusManager:()=>_n,FocusRule:()=>wn,Form:()=>Ta,FormAdapter:()=>Sa,FormController:()=>wu,FormField:()=>iu,FormFieldAdapter:()=>su,FormFieldLayout:()=>ru,FormFieldMenu:()=>Dl,FormFieldMenuAdapter:()=>Al,FormFieldTile:()=>Jg,FormFieldTileAdapter:()=>Zg,FormGrid:()=>xa,FormLayout:()=>Pa,FormLifecycle:()=>Aa,FormMenu:()=>Ea,FormMenuActionKeyStroke:()=>Fa,FormMenuAdapter:()=>Da,FormTableControl:()=>Gh,FormTableControlAdapter:()=>Uh,FormTableControlLayout:()=>Kh,GlassPane:()=>Cn,GlassPaneRenderer:()=>Tn,GridData:()=>lu,Group:()=>jo,GroupAdapter:()=>Yo,GroupBox:()=>ac,GroupBoxAdapter:()=>dc,GroupBoxGridConfig:()=>hc,GroupBoxLayout:()=>uc,GroupBoxMenuItemsOrder:()=>cc,GroupBoxResponsiveHandler:()=>Ha,GroupLayout:()=>Xo,GroupToggleCollapseKeyStroke:()=>Jo,HAlign:()=>ns,HeaderTabBoxController:()=>Fm,HierarchicalLookupResultBuilder:()=>Ms,HorizontalGrid:()=>Fr,HorizontalGridMatrix:()=>Mr,HtmlComponent:()=>fr,HtmlEncoder:()=>Vi,HtmlEnvironment:()=>mr,HtmlField:()=>pc,HtmlFieldAdapter:()=>gc,HtmlTile:()=>$g,HtmlTileAdapter:()=>Rg,IFrame:()=>Sn,Icon:()=>Zo,IconColumn:()=>kh,IconDesc:()=>el,Image:()=>tl,ImageField:()=>mc,ImageFieldAdapter:()=>_c,ImageFieldLayout:()=>fc,ImageLayout:()=>il,InputFieldKeyStrokeContext:()=>Qr,Insets:()=>rr,IntegerField:()=>Rc,JsFormAdapter:()=>Ga,Key:()=>qr,KeyStroke:()=>U,KeyStrokeContext:()=>Zr,KeyStrokeManager:()=>Jr,KeyTableFilter:()=>Cd,Label:()=>Fo,LabelAdapter:()=>Eo,LabelField:()=>bc,LabelFieldAdapter:()=>yc,LayoutConstants:()=>br,LayoutValidator:()=>yr,LazyNodeFilter:()=>Rd,Lifecycle:()=>Zl,ListBox:()=>wc,ListBoxAdapter:()=>Cc,ListBoxLayout:()=>vc,LoadingSupport:()=>z,Locale:()=>Ys,LogicalGrid:()=>wr,LogicalGridConfig:()=>Cr,LogicalGridData:()=>vr,LogicalGridLayout:()=>Tr,LogicalGridLayoutConfig:()=>Sr,LogicalGridLayoutInfo:()=>xr,LogicalGridMatrix:()=>Dr,LogicalGridMatrixCell:()=>Ar,LogicalGridMatrixCursor:()=>Rr,LoginApp:()=>A_,LoginBox:()=>$_,LogoutApp:()=>R_,LogoutBox:()=>M_,LookupBox:()=>fu,LookupBoxLayout:()=>bu,LookupCall:()=>xs,LookupFieldAdapter:()=>xc,LookupRow:()=>Ps,MaxLengthHandler:()=>Mt,Menu:()=>ul,MenuAdapter:()=>pl,MenuBar:()=>kl,MenuBarBox:()=>Nl,MenuBarBoxLayout:()=>Hl,MenuBarLayout:()=>Il,MenuBarLeftKeyStroke:()=>Ll,MenuBarPopup:()=>Ol,MenuBarRightKeyStroke:()=>Bl,MenuBox:()=>$l,MenuBoxLayout:()=>Rl,MenuDestinations:()=>hl,MenuExecByNumberKeyStroke:()=>Tl,MenuExecKeyStroke:()=>ml,MenuItemsOrder:()=>_l,MenuKeyStroke:()=>gl,MenuNavigationDownKeyStroke:()=>Sl,MenuNavigationExecKeyStroke:()=>vl,MenuNavigationKeyStroke:()=>Cl,MenuNavigationUpKeyStroke:()=>xl,MessageBox:()=>Cu,MessageBoxAdapter:()=>vu,MessageBoxController:()=>Tu,MessageBoxLayout:()=>xu,MessageBoxes:()=>Su,MobilePopup:()=>Ho,MobilePopupAdapter:()=>Vo,MobilePopupLayout:()=>Wo,Mode:()=>ya,ModeAdapter:()=>wa,ModeSelector:()=>Ca,ModeSelectorField:()=>Pc,ModeSelectorFieldAdapter:()=>Fc,ModeSelectorLayout:()=>va,ModelAdapter:()=>j,NavigateButton:()=>__,NavigateDownButton:()=>f_,NavigateUpButton:()=>b_,Notification:()=>sl,NotificationAdapter:()=>rl,NullLayout:()=>Lr,NullLogger:()=>ii,NullWidget:()=>Q,NullWidgetAdapter:()=>ee,NumberColumn:()=>Ih,NumberColumnUserFilter:()=>fd,NumberField:()=>Ec,NumberFieldAdapter:()=>Dc,ObjectFactory:()=>H,OfflineDesktopNotification:()=>Om,OkMenu:()=>Ma,OpenUriHandler:()=>bm,Outline:()=>r_,OutlineAdapter:()=>n_,OutlineKeyStrokeContext:()=>y_,OutlineLayout:()=>l_,OutlineMediator:()=>o_,OutlineNavigateToTopKeyStroke:()=>w_,OutlineOverview:()=>C_,OutlineTileField:()=>d_,OutlineTileFieldAdapter:()=>u_,OutlineViewButton:()=>a_,OutlineViewButtonAdapter:()=>h_,Page:()=>Xm,PageLayout:()=>c_,PageTileButton:()=>Qm,PageTileGrid:()=>e_,PageTileGridSelectKeyStroke:()=>t_,PageWithNodes:()=>Jm,PageWithTable:()=>Zm,ParsingFailedStatus:()=>Bi,PlaceholderField:()=>Mc,PlaceholderFieldAdapter:()=>kc,PlaceholderTile:()=>Xg,PlainTextEncoder:()=>Hi,Planner:()=>ea,PlannerAdapter:()=>ta,PlannerField:()=>Ic,PlannerFieldAdapter:()=>Lc,PlannerHeader:()=>ia,PlannerLayout:()=>sa,PlannerMenuItemsOrder:()=>ra,Point:()=>nr,Popup:()=>Ao,PopupAdapter:()=>$o,PopupBlockerDesktopNotification:()=>Hm,PopupBlockerHandler:()=>Nm,PopupLayout:()=>Ro,PopupManager:()=>Mo,PopupManagerAdapter:()=>ko,PopupWindow:()=>fm,PrepopulatedLookupCall:()=>Rs,PromiseCreator:()=>$i,PropertyChangeEventFilter:()=>Xs,ProposalChooser:()=>pp,ProposalChooserLayout:()=>gp,ProposalField:()=>dp,ProposalFieldAdapter:()=>up,ProposalTreeNode:()=>cp,QueryBy:()=>As,RadioButton:()=>Bc,RadioButtonAdapter:()=>Nc,RadioButtonGroup:()=>Vc,RadioButtonGroupAdapter:()=>Wc,RadioButtonGroupGridConfig:()=>zc,RadioButtonGroupLayout:()=>Gc,RadioButtonGroupLeftOrUpKeyStroke:()=>Uc,RadioButtonGroupRightOrDownKeyStroke:()=>Kc,RadioButtonKeyStroke:()=>qc,RadioButtonLayout:()=>Oc,Range:()=>Mi,RangeKeyStroke:()=>en,Reconnector:()=>Js,Rectangle:()=>or,RemoteApp:()=>L,RemoteEvent:()=>js,RemoteLookupCall:()=>Es,RemoteLookupRequest:()=>Ds,RemoteTileFilter:()=>qg,ResetMenu:()=>ka,Resizable:()=>P_,ResponseQueue:()=>Zs,ResponsiveHandler:()=>Na,ResponsiveManager:()=>Oa,RestLookupCall:()=>Fs,RoundingMode:()=>bi,Route:()=>ha,RowLayout:()=>Br,SaveMenu:()=>Ia,Scrollbar:()=>xn,SearchOutline:()=>p_,SearchOutlineAdapter:()=>g_,SearchOutlineLayout:()=>m_,SequenceBox:()=>jc,SequenceBoxAdapter:()=>Jc,SequenceBoxGridConfig:()=>Yc,SequenceBoxLayout:()=>Xc,Session:()=>er,ShrinkNavigationKeyStroke:()=>Mm,SimpleLoadingSupport:()=>G,SimpleTab:()=>sm,SimpleTabArea:()=>rm,SimpleTabAreaLayout:()=>nm,SimpleTabBox:()=>Wr,SimpleTabBoxController:()=>Vr,SimpleTabBoxLayout:()=>zr,SimpleTabViewContentLayout:()=>Gr,SingleLayout:()=>Or,Slider:()=>_a,SliderAdapter:()=>fa,SliderField:()=>Zc,SliderLayout:()=>ba,SmartColumn:()=>Lh,SmartField:()=>ep,SmartFieldAdapter:()=>tp,SmartFieldCancelKeyStroke:()=>sp,SmartFieldLayout:()=>ip,SmartFieldMultiline:()=>lp,SmartFieldMultilineAdapter:()=>ap,SmartFieldMultilineLayout:()=>hp,SmartFieldPopup:()=>rp,SmartFieldPopupLayout:()=>op,SmartFieldTouchPopup:()=>np,SplitBox:()=>wp,SplitBoxAdapter:()=>Cp,SplitBoxCollapseKeyStroke:()=>vp,SplitBoxFirstCollapseKeyStroke:()=>Tp,SplitBoxLayout:()=>xp,SplitBoxSecondCollapseKeyStroke:()=>Sp,Splitter:()=>Jn,StaticLookupCall:()=>$s,Status:()=>Ii,StatusMenuMapping:()=>nu,StatusMenuMappingAdapter:()=>ou,StringField:()=>Fp,StringFieldAdapter:()=>Dp,StringFieldCtrlEnterKeyStroke:()=>$p,StringFieldEnterKeyStroke:()=>Ap,StringFieldLayout:()=>Ep,SubCloseKeyStroke:()=>Pl,Switch:()=>mg,Tab:()=>Op,TabArea:()=>Np,TabAreaLayout:()=>Hp,TabAreaLeftKeyStroke:()=>Mp,TabAreaRightKeyStroke:()=>kp,TabBox:()=>Rp,TabBoxAdapter:()=>Ip,TabBoxHeader:()=>Bp,TabBoxHeaderLayout:()=>Lp,TabBoxLayout:()=>Vp,TabItem:()=>Wp,TabItemAdapter:()=>zp,TabItemKeyStroke:()=>ln,TabItemLayout:()=>Gp,Table:()=>Ka,TableAdapter:()=>qa,TableCompactHandler:()=>ja,TableControl:()=>Nh,TableControlActionKeyStroke:()=>Bh,TableControlAdapter:()=>Hh,TableControlAdapterMenu:()=>Vh,TableControlCloseKeyStroke:()=>Qh,TableCopyKeyStroke:()=>ed,TableField:()=>Up,TableFieldAdapter:()=>Kp,TableFilter:()=>pd,TableFooter:()=>Za,TableFooterLayout:()=>Qa,TableHeader:()=>sh,TableHeaderMenu:()=>nh,TableHeaderMenuButton:()=>ah,TableHeaderMenuGroup:()=>lh,TableHeaderMenuLayout:()=>oh,TableInfoFilterTooltip:()=>eh,TableInfoLoadTooltip:()=>th,TableInfoSelectionTooltip:()=>ih,TableLayout:()=>hh,TableLayoutResetter:()=>_p,TableMatrix:()=>Ja,TableNavigationCollapseKeyStroke:()=>td,TableNavigationDownKeyStroke:()=>ad,TableNavigationEndKeyStroke:()=>dd,TableNavigationExpandKeyStroke:()=>id,TableNavigationHomeKeyStroke:()=>hd,TableNavigationPageDownKeyStroke:()=>cd,TableNavigationPageUpKeyStroke:()=>ud,TableNavigationUpKeyStroke:()=>ld,TableProposalChooser:()=>mp,TableRefreshKeyStroke:()=>nd,TableRow:()=>Ya,TableRowDetail:()=>ph,TableRowTileMapping:()=>gh,TableRowTileMappingAdapter:()=>mh,TableSelectAllKeyStroke:()=>sd,TableSelectionHandler:()=>dh,TableStartCellEditKeyStroke:()=>rd,TableTextUserFilter:()=>yd,TableTileGridMediator:()=>uh,TableTileGridMediatorAdapter:()=>ch,TableToggleRowKeyStroke:()=>od,TableTooltip:()=>_h,TableUpdateBuffer:()=>fh,TableUserFilter:()=>gd,TagBar:()=>_g,TagBarLayout:()=>fg,TagBarOverflowPopup:()=>bg,TagBarOverflowPopupLayout:()=>yg,TagChooserPopup:()=>qp,TagChooserPopupLayout:()=>jp,TagField:()=>Yp,TagFieldAdapter:()=>Xp,TagFieldContainerLayout:()=>ig,TagFieldDeleteKeyStroke:()=>Zp,TagFieldEnterKeyStroke:()=>Jp,TagFieldLayout:()=>tg,TagFieldNavigationKeyStroke:()=>Qp,TagFieldOpenPopupKeyStroke:()=>eg,TextColumnUserFilter:()=>bd,TextMap:()=>io,TextTableFilter:()=>vd,Tile:()=>wg,TileAccordion:()=>Ig,TileAccordionAdapter:()=>Lg,TileAccordionLayout:()=>Bg,TileAccordionSelectionHandler:()=>Og,TileAdapter:()=>Cg,TileButton:()=>em,TileField:()=>sg,TileFieldAdapter:()=>rg,TileGrid:()=>Tg,TileGridAdapter:()=>Sg,TileGridGridConfig:()=>xg,TileGridLayout:()=>Pg,TileGridLayoutConfig:()=>Fg,TileGridSelectAllKeyStroke:()=>Hg,TileGridSelectDownKeyStroke:()=>zg,TileGridSelectFirstKeyStroke:()=>Ug,TileGridSelectKeyStroke:()=>Ng,TileGridSelectLastKeyStroke:()=>Kg,TileGridSelectLeftKeyStroke:()=>Vg,TileGridSelectRightKeyStroke:()=>Wg,TileGridSelectUpKeyStroke:()=>Gg,TileGridSelectionHandler:()=>Eg,TileHtmlField:()=>tm,TileOutlineOverview:()=>v_,TileOverviewForm:()=>Wa,TileOverviewFormAdapter:()=>za,TileTableField:()=>im,TileTableHeaderBox:()=>D_,TileTableHeaderGroupByLookupCall:()=>bh,TileTableHeaderSortByLookupCall:()=>yh,TileTableHierarchyFilter:()=>wd,TileTextFilter:()=>Dg,TimePicker:()=>Td,TimePickerPopup:()=>Sd,TimePickerPopupLayout:()=>xd,TimePickerTouchPopup:()=>Pd,Tooltip:()=>_o,TooltipSupport:()=>fo,TouchPopup:()=>Io,TouchPopupLayout:()=>Lo,Tree:()=>Ed,TreeAdapter:()=>Dd,TreeBox:()=>ng,TreeBoxAdapter:()=>og,TreeBoxLayout:()=>lg,TreeBreadcrumbFilter:()=>Md,TreeCollapseAllKeyStroke:()=>Nd,TreeCollapseOrDrillUpKeyStroke:()=>Hd,TreeExpandOrDrillDownKeyStroke:()=>Vd,TreeField:()=>ag,TreeFieldAdapter:()=>hg,TreeLayout:()=>$d,TreeLayoutResetter:()=>bp,TreeNavigationDownKeyStroke:()=>Bd,TreeNavigationEndKeyStroke:()=>Od,TreeNavigationUpKeyStroke:()=>Ld,TreeNode:()=>Ad,TreeProposalChooser:()=>fp,TreeSet:()=>is,TreeSpaceKeyStroke:()=>Id,TreeVisitResult:()=>yu,TypeDescriptor:()=>O,URL:()=>ss,UnsavedFormChangesForm:()=>F_,UnsavedFormsLookupCall:()=>E_,UserAgent:()=>tr,ValidationFailedStatus:()=>Oi,ValueField:()=>du,ValueFieldAdapter:()=>uu,VerticalGridMatrix:()=>kr,VerticalSmartGrid:()=>Er,ViewButton:()=>zm,ViewButtonActionKeyStroke:()=>Wm,ViewButtonAdapter:()=>Gm,ViewButtonBox:()=>Um,ViewMenuOpenKeyStroke:()=>Km,ViewMenuPopup:()=>qm,ViewMenuPopupEnterKeyStroke:()=>jm,ViewMenuTab:()=>Ym,ViewportScroller:()=>fs,VirtualKeyStrokeEvent:()=>Xr,VirtualScrolling:()=>Xn,Widget:()=>Y,WidgetEventTypeFilter:()=>ir,WidgetField:()=>gu,WidgetFieldAdapter:()=>mu,WidgetFieldLayout:()=>_u,WidgetPopup:()=>Bo,WidgetPopupAdapter:()=>Oo,WidgetPopupLayout:()=>No,WidgetSupport:()=>W,WidgetTile:()=>jg,WidgetTileAdapter:()=>Yg,WidgetTooltip:()=>wo,WizardProgressField:()=>dg,WizardProgressFieldAdapter:()=>ug,WizardProgressFieldLayout:()=>cg,WrappedFormField:()=>pg,WrappedFormFieldAdapter:()=>gg,YearPanel:()=>Jl,aggregation:()=>hs,ajax:()=>vs,arrays:()=>me,clipboard:()=>ye,codes:()=>zs,colorSchemes:()=>ve,comparators:()=>vh,cookies:()=>ms,dates:()=>Le,default:()=>J_,defaultValues:()=>We,dragAndDrop:()=>at,events:()=>Ye,fields:()=>Zd,files:()=>Xe,filters:()=>rs,focusUtils:()=>yn,fonts:()=>bt,graphics:()=>pr,icons:()=>Ct,inspector:()=>vt,keyStrokeModifier:()=>Yr,keys:()=>Kr,locales:()=>Rt,logging:()=>ti,lookupField:()=>Sc,menuNavigationKeyStrokes:()=>Fl,menus:()=>al,mimeTypes:()=>di,models:()=>pi,numbers:()=>fi,objects:()=>Ai,promises:()=>Ri,router:()=>ma,scout:()=>x,scrollbars:()=>Yn,strings:()=>qt,styles:()=>ts,texts:()=>mo,tooltips:()=>yo,webstorage:()=>gs,widgets:()=>J});const r=jQuery;var n=e.n(r);let o=null,l={};function a(){let e;for(let t=0;t<arguments.length&&(e=t<0||arguments.length<=t?void 0:arguments[t],null==e);t++);return e}function h(e,t,i){if(Ai.isNullOrUndefined(t))throw new Error("Missing required parameter '"+e+"'");if(i&&!(t instanceof i))throw new Error("Parameter '"+e+"' has wrong type");return t}function d(e,t,i){let s=e[t];if(Ai.isNullOrUndefined(s))throw new Error("Missing required property '"+t+"'");if(i&&!(s instanceof i))throw new Error("Property '"+t+"' has wrong type");return s}function u(e,t){if(Ai.isNullOrUndefined(e))throw new Error(t||"Missing value");return e}function c(e,t,i){if(!(e instanceof t))throw new Error(i||"Value has wrong type");return e}function p(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];if(0===i.length)return!1;let r=i;return 1===i.length&&Array.isArray(i[0])&&(r=i[0]),-1!==r.indexOf(e)}function g(e,t,i){return H.get().create(e,t,i)}function m(e){if(e=e||document,n()("noscript",e).remove(),n()("scout-text",e).remove(),n()("scout-version",e).remove(),n()("body",e).addDeviceClass(),Qe.get().browser===Qe.Browser.CHROME){let t='<meta name="google" content="notranslate" />',i=n()("head > title",e);0===i.length?n()("head",e).append(t):i.after(t)}}function _(e){e.addEventListener("mousedown",(e=>{du.invokeValueFieldAboutToBlurByMouseDown(e.target||e.srcElement)}),!0)}function f(e){Qe.get().requiresSyntheticActiveState()&&(o=[],n()(e).on("mousedown",(e=>{let t=n()(e.target);for(;t.length;)o.push(t.addClass("active")),t=t.parent()})).on("mouseup",(()=>{o.forEach((e=>{e.removeClass("active")})),o=[]})))}function b(e,t){if(Ai.isNullOrUndefined(e))return null;let i=e;if("string"==typeof e||"number"==typeof e){let i=scout.getSession(t);if(i)return e=qt.asString(e),i.root.widget(e)}return J.get(i)}function y(e,t){if(Ai.isNullOrUndefined(e))return null;let i=scout.getSession(t);return i&&i.modelAdapterRegistry?i.modelAdapterRegistry[e]:null}function w(e){let t=E.get().sessions;if(!t)return null;if(Ai.isNullOrUndefined(e))return t[0];for(let i=0;i<t.length;i++){let s=t[i];if(s.partId==e)return s}return null}function C(e,t){let i=scout.getSession(t);if(i&&i.modelAdapterRegistry){let t=i.getModelAdapter(e);if(!t)return null;let r=s(e);return function e(t,r){let n,o;t.widget._widgetProperties.forEach((t=>{let l=r[t];if(l)if(Array.isArray(l)){let a=[];l.forEach((t=>{n=i.getModelAdapter(t),o=s(t),e(n,o),a.push(o)})),r[t]=a}else n=i.getModelAdapter(l),o=s(l),e(n,o),r[t]=o})),r=t.exportAdapterData(r)}(t,r),r.type="model",r}function s(e){let t=i.getAdapterData(e);return t=n().extend(!0,{},t),t}}function v(e){function t(){a(e.clearBody,!0)&&n()("body").html(""),e.redirectUrl?window.location.href=e.redirectUrl:window.location.reload()}(e=e||{}).schedule?setTimeout(t):t()}function T(e){l=n().extend(l,e)}function S(e,t,i){h("template",e);let s=Object.create(Object.getPrototypeOf(e));if(Object.getOwnPropertyNames(e).forEach((t=>{s[t]=e[t]})),t)for(let e in t)s[e]=t[e];return a(i,!0)&&(s.id=H.get().createUniqueId()),void 0===s.cloneOf&&(s.cloneOf=e),s}const x={nvl:a,assertParameter:h,assertProperty:d,assertValue:u,assertInstance:c,isOneOf:p,create:g,prepareDOM:m,installGlobalMouseDownInterceptor:_,installSyntheticActiveStateHandler:f,widget:b,adapter:y,getSession:w,exportAdapter:C,reloadPage:v,addObjectFactories:T,objectFactories:l,cloneShallow:S};let P=null,F=[];class E{static addListener(e,t){let i={type:e,func:t};return P?P.events.addListener(i):F.push(i),i}static get(){return P}constructor(){this.events=this._createEventSupport(),this.initialized=!1,this.sessions=[],this._loadingTimeoutId=null,F.forEach((function(e){this.addListener(e)}),this),F=[],P=this,this.errorHandler=this._createErrorHandler()}init(e){return e=e||{},this._prepare(e).then(this._bootstrap.bind(this,e.bootstrap)).then(this._init.bind(this,e)).then(this._initDone.bind(this,e)).catch(this._fail.bind(this,e))}_prepare(e){return this._prepareLogging(e).done((()=>{this._prepareEssentials(e),this._prepareDone(e)}))}_prepareEssentials(e){H.get().init()}_prepareDone(e){this.trigger("prepare",{options:e}),n().log.isDebugEnabled()&&n().log.debug("App prepared")}_prepareLogging(e){return ti.bootstrap()}_bootstrap(e){e=e||{};let t=[];return this._doBootstrap(e).forEach((e=>{Array.isArray(e)?t.concat(e):e&&t.push(e)})),n().promiseAll(t).done(this._bootstrapDone.bind(this,e)).catch(this._bootstrapFail.bind(this,e))}_doBootstrap(e){return[Qe.get().bootstrap(),bt.bootstrap(e.fonts),Rt.bootstrap(e.localesUrl),mo.bootstrap(e.textsUrl),zs.bootstrap(e.codesUrl)]}_bootstrapDone(e){gs.removeItemFromSessionStorage("scout:timeoutPageReload"),this.trigger("bootstrap",{options:e}),n().log.isDebugEnabled()&&n().log.debug("App bootstrapped")}_bootstrapFail(e,t,i,s,r){if(n().log.isInfoEnabled()&&n().log.info("App bootstrap failed"),n().isJqXHR(t)){if(this._isSessionTimeoutStatus(t.status)){let e=r?r.url:"";return void this._handleBootstrapTimeoutError(t,e)}}else if(Ai.isPlainObject(t)&&t.error&&t.error.code===er.JsonResponseError.SESSION_TIMEOUT)return void this._handleBootstrapTimeoutError(t.error,t.url);let o=Ai.argumentsToArray(arguments).slice(1);return n().rejectedPromise(...o)}_isSessionTimeoutStatus(e){return 401===e}_handleBootstrapTimeoutError(e,t){if(n().log.isInfoEnabled()&&n().log.info("Timeout error for resource "+t+". Reloading page..."),gs.getItemFromSessionStorage("scout:timeoutPageReload"))throw n().log.isWarnEnabled()&&n().log.warn("Prevented automatic reload, startup will likely fail",e,t),gs.removeItemFromSessionStorage("scout:timeoutPageReload"),new Error("Resource "+t+" could not be loaded due to a session timeout, even after a page reload");gs.setItemToSessionStorage("scout:timeoutPageReload",!0),x.reloadPage()}_init(e){e=e||{},this.setLoading(!0);let t=this._checkBrowserCompatibility(e);return t?(this.setLoading(!1),t.then((e=>this._init(e)))):(this._initVersion(e),this._prepareDOM(),this._installErrorHandler(),this._installGlobalMouseDownInterceptor(),this._installSyntheticActiveStateHandler(),this._ajaxSetup(),this._installExtensions(),this._load(e).then(this._loadSessions.bind(this,e.session)))}_load(e){return n().resolvedPromise()}_checkBrowserCompatibility(e){let t=Qe.get();if(n().log.isInfoEnabled()&&n().log.info("Detected browser "+t.browser+" version "+t.browserVersion),!x.nvl(e.checkBrowserCompatibility,!0)||t.isSupportedBrowser())return;let i=n().Deferred(),s=Ai.valueCopy(e);return s.checkBrowserCompatibility=!1,n()(".scout").each((function(){let e=n()(this).appendDiv();e.load("unsupported-browser.html",(()=>{e.find("button").on("click",(()=>{e.remove(),i.resolve(s)}))}))})),i.promise()}setLoading(e){e?this._loadingTimeoutId=setTimeout((()=>{this.sessions.some((e=>e.desktop&&e.desktop.rendered))||this._renderLoading()}),200):(clearTimeout(this._loadingTimeoutId),this._loadingTimeoutId=null,this._removeLoading())}_renderLoading(){let e=n()("body"),t=e.children(".application-loading-root");t.length||(t=e.appendDiv("application-loading-root").addClass("application-loading-root").fadeIn()),this._renderLoadingElement(t,"application-loading01"),this._renderLoadingElement(t,"application-loading02"),this._renderLoadingElement(t,"application-loading03")}_renderLoadingElement(e,t){e.children("."+t).length||e.appendDiv(t).hide().fadeIn()}_removeLoading(){let e=n()("body").children(".application-loading-root");e.css("opacity",e.css("opacity")),e.oneAnimationEnd((()=>e.remove())),"1"===e.css("opacity")?e.addClass("fadeout and-more"):e.addClass("fadeout"),Qe.get().supportsCssAnimation()||e.remove()}_initVersion(e){this.version=x.nvl(this.version,e.version,n()("scout-version").data("value"))}_prepareDOM(){x.prepareDOM(document)}_installGlobalMouseDownInterceptor(){x.installGlobalMouseDownInterceptor(document)}_installSyntheticActiveStateHandler(){x.installSyntheticActiveStateHandler(document)}_installErrorHandler(){window.onerror=this.errorHandler.windowErrorHandler}_createErrorHandler(){return x.create("ErrorHandler")}_ajaxSetup(){let e=this._ajaxDefaults();e&&n().ajaxSetup(e)}_ajaxDefaults(){return{beforeSend:this._beforeAjaxCall.bind(this)}}_beforeAjaxCall(e){e.setRequestHeader("X-Scout-Correlation-Id",fi.correlationId()),e.setRequestHeader("X-Requested-With","XMLHttpRequest")}_loadSessions(e){e=e||{};let t=[];return n()(".scout").each(((i,s)=>{let r=n()(s);e.portletPartId=e.portletPartId||r.data("partid")||"0";let o=this._loadSession(r,e);t.push(o)})),n().promiseAll(t)}_loadSession(e,t){t.locale=t.locale||this._loadLocale(),t.$entryPoint=e;let i=this._createSession(t);this.sessions.push(i);let s=this._createDesktop(i.root);return this._triggerDesktopReady(s),i.render((()=>{i._renderDesktop(),i.layoutValidator.validate(),i.focusManager.validateFocus(),i.ready=!0,this._triggerSessionReady(i),n().log.isInfoEnabled()&&n().log.info("Session initialized. Detected "+Qe.get())})),n().resolvedPromise()}_triggerDesktopReady(e){this.trigger("desktopReady",{desktop:e})}_triggerSessionReady(e){this.trigger("sessionReady",{session:e})}_createSession(e){return x.create("Session",e,{ensureUniqueId:!1})}_createDesktop(e){return x.create("Desktop",{parent:e})}_loadLocale(){return Rt.getNavigatorLocale()}_initDone(e){this.initialized=!0,this.setLoading(!1),this.trigger("init",{options:e}),n().log.isInfoEnabled()&&n().log.info("App initialized")}_fail(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r<i;r++)s[r-2]=arguments[r];return n().log.error("App initialization failed."),this.setLoading(!1),this.errorHandler.handle(t,...s).then((e=>{let i=n()("body").appendDiv("startup-error");return i.appendDiv("startup-error-title").text("The application could not be started"),e.message&&i.appendDiv("startup-error-message").text(e.message),n().rejectedPromise(t,...s)}))}_installExtensions(){}_createEventSupport(){return new dt}trigger(e,t){(t=t||{}).source=this,this.events.trigger(e,t)}one(e,t){this.events.one(e,t)}on(e,t){return this.events.on(e,t)}off(e,t){this.events.off(e,t)}addListener(e){this.events.addListener(e)}removeListener(e){this.events.removeListener(e)}when(e){return this.events.when(e)}}const D=sourceMappedStackTrace;var A,R,M,k=e.n(D);class I{constructor(){this.logError=!0,this.displayError=!0,this.sendError=!1,this.windowErrorHandler=this._onWindowError.bind(this)}init(e){n().extend(this,e)}_onWindowError(e,t,i,s,r){try{if(this._isIgnorableScriptError(e,t,i,s,r))return void this.handleErrorInfo({log:"Ignoring error. Message: ".concat(e),level:ti.Level.INFO});if(r instanceof Error)return void this.handle(r).catch((e=>{console.error("Error in global JavaScript error handler",e)}));let n="J00",o=e+" at "+t+":"+i+"\n(Code "+n+")";this.handleErrorInfo({code:n,message:e,log:o})}catch(s){throw new Error("Error in global JavaScript error handler: "+s.message+" (original error: "+e+" at "+t+":"+i+")")}}_isIgnorableScriptError(e,t,i,s,r){return e&&e.toLowerCase().indexOf("script error")>-1&&!t&&!i&&!s&&!r}handle(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];let r=e;return e&&0===i.length&&("[object Arguments]"===String(e)?(r=e[0],i=[...e].slice(1)):Array.isArray(e)&&(r=e[0],i=e.slice(1))),this.analyzeError(r,...i).then(this.handleErrorInfo.bind(this))}analyzeError(e){let t={code:null,message:null,stack:null,mappedStack:null,debugInfo:null,log:null,error:e};for(var i=arguments.length,s=new Array(i>1?i-1:0),r=1;r<i;r++)s[r-1]=arguments[r];return this._analyzeError(t,...s)}_analyzeError(e){let t=e.error;if(t instanceof Error)return this.mapStack(t.stack).catch((t=>(e.mappingError=t.message+"\n"+t.error.message+"\n"+t.error.stack,null))).then((t=>(e.mappedStack=t,this._analyzeRegularError(e),e)));if(n().isJqXHR(t)||Array.isArray(t)&&n().isJqXHR(t[0])||t instanceof Ss){for(var i=arguments.length,s=new Array(i>1?i-1:0),r=1;r<i;r++)s[r-1]=arguments[r];return this._analyzeAjaxError(e,...s),n().resolvedPromise(e)}return t?(this._analyzeOtherError(e),n().resolvedPromise(e)):(this._analyzeNoError(e),n().resolvedPromise(e))}_analyzeRegularError(e){let t=e.error;e.code=this.getJsErrorCode(t),e.message=String(t.message||t),t.stack&&(e.stack=String(t.stack)),t.debugInfo&&(e.debugInfo=t.debugInfo);let i=e.mappedStack||e.stack,s=[];i&&-1!==i.indexOf(e.message)||s.push(e.message),i&&s.push(i),e.mappingError&&s.push(e.mappingError),e.debugInfo&&s.push("----- Additional debug information: -----\n"+e.debugInfo),e.log=me.format(s,"\n")}_analyzeAjaxError(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];let r,n,o,l=e.error;l instanceof Ss?(r=l.jqXHR,n=l.errorThrown,o=l.requestOptions):(r=(i=me.ensure(l).concat(i))[0],n=i[2],o=i[3]);let a=o?qt.join(" ",o.type,o.url):"",h=r.status?qt.join(" ",r.status,n):"Connection error";e.code="X"+(r.status||"0"),e.message="AJAX call"+qt.box(' "',a,'"')+" failed"+qt.box(" [",h,"]"),e.log=e.message,r.responseText&&(e.debugInfo="Response text:\n"+r.responseText,e.log+="\n"+e.debugInfo)}_analyzeOtherError(e){let t=e.error,i="string"==typeof t||"number"==typeof t?String(t):null;if(e.code="P4",e.message=i||"Unexpected error",!i)try{i=JSON.stringify(t)}catch(e){i=String(t)}e.log="Unexpected error: "+i}_analyzeNoError(e){e.code="P3",e.message="Unknown error",e.log="Unexpected error (no reason provided)"}mapStack(e){let t=n().Deferred();try{k().mapStackTrace(e,(e=>{t.resolve(me.format(e,"\n"))}))}catch(e){return n().rejectedPromise({message:"Exception mapping failed",error:e})}return t.promise()}handleErrorInfo(e){if(e.level=x.nvl(e.level,ti.Level.ERROR),this.logError&&e.log&&this._logErrorInfo(e),E.get().sessions.length>0){let t=E.get().sessions[0];this.displayError&&e.level===ti.Level.ERROR&&this._showMessageBox(t,e.message,e.code,e.log),this.sendError&&this._sendErrorMessage(t,e.log,e.level)}return e}_logErrorInfo(e){switch(e.level){case ti.Level.TRACE:n().log.trace(e.log);break;case ti.Level.DEBUG:n().log.debug(e.log);break;case ti.Level.INFO:n().log.info(e.log);break;case ti.Level.WARN:n().log.warn(e.log);break;default:n().log.error(e.log)}let t=I.CONSOLE_OUTPUT;n().log instanceof ii&&(t=!1),t&&window&&window.console&&(e.level===ti.Level.ERROR&&window.console.error?window.console.error(e.log):e.level===ti.Level.WARN&&window.console.warn?window.console.warn(e.log):window.console.log&&window.console.log(e.log))}getJsErrorCode(e){if(e){if("EvalError"===e.name)return"E1";if("InternalError"===e.name)return"I2";if("RangeError"===e.name)return"A3";if("ReferenceError"===e.name)return"R4";if("SyntaxError"===e.name)return"S5";if("TypeError"===e.name)return"T6";if("URIError"===e.name)return"U7"}return"J0"}_showMessageBox(e,t,i,s){let r={header:e.optText("ui.UnexpectedProblem","Internal UI Error"),body:qt.join("\n\n",e.optText("ui.InternalUiErrorMsg",t," ("+e.optText("ui.ErrorCodeX","Code "+i,i)+")"),e.optText("ui.UiInconsistentMsg","")),yesButtonText:e.optText("ui.Reload","Reload"),yesButtonAction:x.reloadPage,hiddenText:s,iconId:Ct.SLIPPERY};e.inDevelopmentMode&&(r.noButtonText=e.optText("ui.Ignore","Ignore")),e.showFatalMessage(r,i)}_sendErrorMessage(e,t,i){e.sendLogRequest(t,i)}}M=!0,(R="CONSOLE_OUTPUT")in(A=I)?Object.defineProperty(A,R,{value:M,enumerable:!0,configurable:!0,writable:!0}):A[R]=M;class L extends E{constructor(){super(),this.remote=!0}_doBootstrap(e){return super._doBootstrap(e).concat([this._doBootstrapDefaultValues()])}_doBootstrapDefaultValues(){We.bootstrap()}_createErrorHandler(){return x.create("ErrorHandler",{sendError:!0})}_loadSession(e,t){(t=t||{}).$entryPoint=e;let i=this._createSession(t);return E.get().sessions.push(i),i.start()}_fail(e,t){n().log.error("App initialization failed",t),this.setLoading(!1);for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r<i;r++)s[r-2]=arguments[r];return n().rejectedPromise(t,...s)}}class B{extend(e,t){let i=e[t],s=this;e[t]=function(){return s.extended=this,s.next=i.bind(this),s[t](...arguments)}}static install(e){e.forEach((e=>{x.create(e)}))}}class O{constructor(e,t,i){this.typeDescriptor=e,this.objectType=t,this.modelVariant=i}createInstance(e){let t,i,s,r=window.scout;if(this.modelVariant?(s=this.modelVariant.name+this.objectType.name,i=this.modelVariant.namespaces):(s=this.objectType.name,i=this.objectType.namespaces),i.length)for(r=window,t=0;t<i.length;t++)if(r=r[i[t]],!r)throw this.error('Could not resolve namespace "'+i[t]+'"');if(!r[s]){if(e.variantLenient&&this.modelVariant){return new O(this.typeDescriptor,this.objectType,null).createInstance(e)}throw this.error('Could not find "'+s+'" in namespace "'+i.join(".")+'"')}return new r[s](e.model)}error(e){return new Error('Failed to create object for objectType "'+this.typeDescriptor+'": '+e)}static newInstance(e,t){return O.parse(e).createInstance(t)}static parse(e){let t=null,i=null;if(qt.contains(e,H.MODEL_VARIANT_SEPARATOR)){let r=e.split(H.MODEL_VARIANT_SEPARATOR);t=s(r[0]),i=s(r[1]),me.empty(i.namespaces)&&!me.empty(t.namespaces)&&(i.namespaces=t.namespaces)}else t=s(e);return new O(e,t,i);function s(e){let t=[];if(qt.contains(e,H.NAMESPACE_SEPARATOR)){let i=e.split(H.NAMESPACE_SEPARATOR);t=i.slice(0,i.length-1),e=me.last(i)}return function(e,t){return{name:e,namespaces:x.nvl(t,[]),toString:()=>{let i=t.slice();return i.push(e),qt.join(H.NAMESPACE_SEPARATOR,i)}}}(e,t)}}}function N(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class H{constructor(){this.uniqueIdSeqNo=0,this._registry={}}_createObjectByType(e,t){if("string"!=typeof e)throw new Error("missing or invalid object type");t=t||{};let i=this._registry[e];if(i){let s=i(t.model);if(!s)throw new Error('Failed to create object for objectType "'+e+'": Factory function did not return a valid object');return s}return O.newInstance(e,t)}create(e,t,i){if("string"==typeof e)i=i||{};else{if(!Ai.isPlainObject(e))throw new Error("Invalid arguments");if(i=t||{},!(t=e).objectType)throw new Error('Missing mandatory property "objectType" on model');e=t.objectType}i.model=t;let s=this._createObjectByType(e,i);return Ai.isFunction(s.init)&&(t&&(void 0===t.id&&x.nvl(i.ensureUniqueId,!0)&&(t.id=this.createUniqueId()),t.objectType=e),s.init(t)),void 0===s.id&&x.nvl(i.ensureUniqueId,!0)&&(s.id=this.createUniqueId()),void 0===s.objectType&&(s.objectType=e),s}createUniqueId(){return"ui"+(++this.uniqueIdSeqNo).toString()}register(e,t){n().log.isDebugEnabled()&&n().log.debug("(ObjectFactory) registered create-function for objectType "+e),this._registry[e]=t}unregister(e){n().log.isDebugEnabled()&&n().log.debug("(ObjectFactory) unregistered objectType "+e),delete this._registry[e]}get(e){return this._registry[e]}init(){for(let e in x.objectFactories)x.objectFactories.hasOwnProperty(e)&&this.register(e,x.objectFactories[e])}static get(){return V}static _set(e){V=e}}N(H,"NAMESPACE_SEPARATOR","."),N(H,"MODEL_VARIANT_SEPARATOR",":");let V=new H;class W{constructor(e){x.assertParameter("widget",e.widget),this.widget=e.widget,this.options$Container=e.$container}_ensure$Container(){Ai.isFunction(this.options$Container)?this.$container=this.options$Container():this.options$Container?this.$container=this.options$Container:this.$container=this.widget.$container}}class z extends W{constructor(e){super(e),this.loadingIndicatorDelay=x.nvl(e.loadingIndicatorDelay,250),this._$loadingIndicator=null,this._loadingIndicatorTimeoutId=null}setLoadingIndicatorDelay(e){this.loadingIndicatorDelay=e}_ensure$Container(){Ai.isFunction(this.options$Container)?this.$container=this.options$Container():this.options$Container?this.$container=this.options$Container:this.$container=this.widget.$container}renderLoading(){clearTimeout(this._loadingIndicatorTimeoutId),this._ensure$Container(),this.widget.isLoading()?this.loadingIndicatorDelay&&!this.widget.rendering?this._loadingIndicatorTimeoutId=setTimeout(this._renderLoadingIndicator.bind(this),this.loadingIndicatorDelay):this._renderLoadingIndicator():this._removeLoadingIndicator()}_renderLoadingIndicator(){this._$loadingIndicator||!this.widget.rendered&&!this.widget.rendering||(this.$container.addClass("loading"),this._$loadingIndicator=this.$container.appendDiv("loading-indicator"))}_removeLoadingIndicator(){this._$loadingIndicator&&(this._$loadingIndicator.css("opacity",this._$loadingIndicator.css("opacity")),this._$loadingIndicator.addClass("animate-remove"),this._$loadingIndicator.oneAnimationEnd((()=>{this.remove(),this.widget.rendered&&(this.$container.removeClass("loading"),this.widget.invalidateLayoutTree())})))}remove(){this._$loadingIndicator&&(this._$loadingIndicator.remove(),this._$loadingIndicator=null)}}class G extends z{constructor(e){super(e)}_renderLoadingIndicator(){(this.widget.rendered||this.widget.rendering)&&this.$container.addClass("loading")}_removeLoadingIndicator(){(this.widget.rendered||this.widget.rendering)&&this.$container.removeClass("loading")}}class U{constructor(){this.field=null,this.which=[],this.ctrl=!1,this.inheritAccessibility=!0,this.alt=!1,this.shift=!1,this.preventDefault=!0,this.stopPropagation=!1,this.stopImmediatePropagation=!1,this.keyStrokeMode=U.Mode.DOWN,this.repeatable=!1,this._handleExecuted=!1,this.keyStrokeFirePolicy=vo.KeyStrokeFirePolicy.ACCESSIBLE_ONLY,this.enabledByFilter=!0,this.renderingHints={render:()=>!this.field||void 0===this.field.rendered||this.field.rendered,gap:4,offset:4,hAlign:ns.LEFT,text:null,$drawingArea:(e,t)=>e},this.invokeAcceptInputOnActiveValueField=!1,this.preventInvokeAcceptInputOnActiveValueField=!1}parseAndSetKeyStroke(e){this.alt=!1,this.ctrl=!1,this.shift=!1,this.which=[],e&&n().extend(this,U.parseKeyStroke(e))}accept(e){return!!this._isEnabled()&&(!!this._accept(e)&&(this._applyPropagationFlags(e),e.type===this.keyStrokeMode))}handle(e){throw new Error("keystroke event not handled: "+e)}invokeHandle(e){if(this.repeatable)this.handle(e);else if(!this._handleExecuted&&(this.handle(e),e.type===U.Mode.DOWN)){this._handleExecuted=!0;let t=n()(e.target).window(),i=this,s={handleEvent:function(e){i._handleExecuted=!1,t[0].removeEventListener("keyup",this,!0)}};t[0].addEventListener("keyup",s,!0)}}_isEnabled(){if(this.field){if(void 0!==this.field.visible&&!this.field.visible)return!1;if(!this.inheritAccessibility)return!0;if(void 0!==this.field.enabledComputed)return this.field.enabledComputed;if(void 0!==this.field.enabled)return this.field.enabled}return!0}_accept(e){return U.acceptEvent(this,e)}_applyPropagationFlags(e){this.stopPropagation&&e.stopPropagation(),this.stopImmediatePropagation&&e.stopImmediatePropagation(),this.preventDefault&&e.preventDefault()}keys(){return this.which.map((function(e){return new qr(this,e)}),this)}renderKeyBox(e,t){if(!(e=this.renderingHints.$drawingArea(e,t))||!e.length)return null;let i=this._renderKeyBox(e,t.which);return this._postRenderKeyBox(e,i),e}_renderKeyBox(e,t){let i=n()(".key-box",e),s=this.renderingHints.text||Kr.codesToKeys[Kr.fromBrowser(t)],r=this.renderingHints.hAlign===ns.RIGHT?"right":"left",o=this.renderingHints.offset;if(i=i.filter((function(){return"right"===r?n()(this).hasClass("right"):!n()(this).hasClass("right")})),i.length>0){let t=i.first();o=this.renderingHints.hAlign===ns.RIGHT?e.outerWidth()-t.position().left+this.renderingHints.gap:t.position().left+this.renderingHints.gap+t.outerWidth()}this.shift&&(s="Shift "+s),this.alt&&(s="Alt "+s),this.ctrl&&(s="Ctrl "+s);let l=e.css("position");if("absolute"===l||"relative"===l||"static"===l&&i.length>0)return h.call(this,o);let a=e.position();if(a)return h.call(this,a.left+o);function h(t){return e.prependDiv("key-box",s).css(r,t+"px").toggleClass("disabled",!this.enabledByFilter).addClass(r)}n().log.warn("(keys#drawSingleKeyBoxItem) pos is undefined. $parent="+e)}_postRenderKeyBox(e){}removeKeyBox(e){e&&(n()(".key-box",e).remove(),n()(".key-box-additional",e).remove())}static parseKeyStroke(e){if(!e)return null;let t={alt:!1,ctrl:!1,shift:!1,which:[]};return e.split("-").forEach((e=>{if("alternate"===e||"alt"===e)t.alt=!0;else if("control"===e||"ctrl"===e)t.ctrl=!0;else if("shift"===e)t.shift=!0;else{let i=Kr[e.toUpperCase()];t.which=i&&[i]}})),t}static acceptEvent(e,t){return!!e&&(U.acceptModifiers(e,t)&&x.isOneOf(t.which,e.which))}static acceptModifiers(e,t){return U._acceptModifier(e.ctrl,t.ctrlKey||t.metaKey)&&U._acceptModifier(e.alt,t.altKey)&&U._acceptModifier(e.shift,t.shiftKey)}static _acceptModifier(e,t){return void 0===e||void 0===t||e===t}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(U,"Mode",{UP:"keyup",DOWN:"keydown"});class K extends U{constructor(e){super(),this.field=e,this.renderingHints.$drawingArea=(e,t)=>t._$filterInput,this.virtualKeyStrokeWhich="a-Z;a-z;0-9",this.preventDefault=!1,this.keyStrokeMode=U.Mode.DOWN,this.stopPropagation=!0,this.inheritAccessibility=!1}_accept(e){if(!this._isKeyStrokeInRange(e))return!1;let t=this.field.$container.data("filter-field");return!!(t&&t.length&&t.is(":focusable"))&&(this.field.$container.activeElement()[0]!==t[0]&&(e._$filterInput=t,this._isKeyStrokeInRange(e),!0))}handle(e){let t=e._$filterInput;if(this.field.session.focusManager.requestFocus(t)){t.focus();let e=x.nvl(t.val(),"").length;t[0].setSelectionRange(e,e)}}keys(){return[new qr(this,this.virtualKeyStrokeWhich)]}renderKeyBox(e,t){let i=t._$filterInput,s=i.position().left+i.cssMarginLeft()+4;return i.beforeDiv("key-box char","a - z").toggleClass("disabled",!this.enabledByFilter).cssLeft(s),i.parent()}_isKeyStrokeInRange(e){return e.which===this.virtualKeyStrokeWhich||!(e.altKey|e.ctrlKey)&&(e.which>=Kr.a&&e.which<=Kr.z||e.which>=Kr.A&&e.which<=Kr.Z||e.which>=Kr[0]&&e.which<=Kr[9]||e.which>=Kr.NUMPAD_0&&e.which<=Kr.NUMPAD_9)}}class q extends W{constructor(e){super(e),e.filterElements?this._filterElements=e.filterElements:(this._filterElements=this._filter.bind(this),x.assertParameter("getElementsForFiltering",e.getElementsForFiltering),this._getElementsForFiltering=e.getElementsForFiltering),this._getElementText=e.getElementText||(e=>$(e).text()),e.createTextFilter?(x.assertParameter("updateTextFilterText",e.updateTextFilterText),this._createTextFilter=e.createTextFilter,this._updateTextFilterText=e.updateTextFilterText):(this._createTextFilter=this._createDefaultTextFilter.bind(this),this._updateTextFilterText=this._updateDefaultTextFilterText.bind(this)),this._filterField=null,this._filterFieldDisplayTextChangedHandler=this._onFilterFieldDisplayTextChanged.bind(this),this._focusInHandler=this._onFocusIn.bind(this),this._focusOutHandler=this._onFocusOut.bind(this),this._focusFilterFieldKeyStroke=null,this._cancelFilterFieldKeyStroke=null,this._exitFilterFieldKeyStroke=null,this._textFilter=null}_createDefaultTextFilter(){return{acceptedText:null,accept:e=>{if(qt.empty(this._textFilter.acceptedText)||!this.widget.isTextFilterFieldVisible())return!0;let t=this._getElementText(e);return!qt.empty(t)&&qt.contains(t.toLowerCase(),this._textFilter.acceptedText.toLowerCase())}}}_updateDefaultTextFilterText(e,t){return!Ai.equals(e.acceptedText,t)&&(e.acceptedText=t,!0)}renderFilterField(){this.widget.isTextFilterFieldVisible()?this._renderFilterField():this._removeFilterField()}_renderFilterField(){this._ensure$Container(),this._filterField=x.create("StringField",{parent:this.widget,label:this.widget.session.text("ui.Filter"),labelVisible:!1,inheritAccessibility:!1,cssClass:"filter-field empty",fieldStyle:iu.FieldStyle.CLASSIC,statusVisible:!1,clearable:du.Clearable.ALWAYS,updateDisplayTextOnModify:!0,preventInitialFocus:!0}),this._filterField.render(this.$container),this._filterField.$field.attr("tabIndex",-1),this.widget.rendered?this._updateFilterFieldBackgroundColor():this.widget.session.layoutValidator.schedulePostValidateFunction(this._updateFilterFieldBackgroundColor.bind(this)),this._textFilter=this._createTextFilter(),this._textFilter.synthetic=!0,this.addFilter(this._textFilter),this._filterField.on("propertyChange:displayText",this._filterFieldDisplayTextChangedHandler),this.widget.$container.on("focusin",this._focusInHandler),this.widget.$container.on("focusout",this._focusOutHandler),this.widget.$container.data("filter-field",this._filterField.$field),this._focusFilterFieldKeyStroke=new K(this.widget),this.widget.keyStrokeContext.registerKeyStroke(this._focusFilterFieldKeyStroke),this._cancelFilterFieldKeyStroke=new U,this._cancelFilterFieldKeyStroke.field=this._filterField,this._cancelFilterFieldKeyStroke.which=[Kr.ESC],this._cancelFilterFieldKeyStroke.stopPropagation=!0,this._cancelFilterFieldKeyStroke.renderingHints.hAlign=ns.RIGHT,this._cancelFilterFieldKeyStroke.handle=this._cancelFilterField.bind(this),this._filterField.keyStrokeContext.registerKeyStroke(this._cancelFilterFieldKeyStroke),this._exitFilterFieldKeyStroke=new U,this._exitFilterFieldKeyStroke.field=this._filterField,this._exitFilterFieldKeyStroke.which=[Kr.ENTER],this._exitFilterFieldKeyStroke.stopPropagation=!0,this._exitFilterFieldKeyStroke.renderingHints.hAlign=ns.RIGHT,this._exitFilterFieldKeyStroke.handle=this._exitFilterField.bind(this),this._filterField.keyStrokeContext.registerKeyStroke(this._exitFilterFieldKeyStroke)}_updateFilterFieldBackgroundColor(){if(!this._filterField||!this._filterField.rendered)return;let e=ts.getFirstOpaqueBackgroundColor(this._filterField.$container),t=$.extend(!0,{red:0,green:0,blue:0,alpha:1},ts.rgb(e)),i="rgba("+t.red+", "+t.green+", "+t.blue+", 0.5)",s="rgba("+t.red+", "+t.green+", "+t.blue+", 0.8)";this._filterField.$container.css("--filter-field-background-color",e),this._filterField.$container.css("--filter-field-transparent-50-background-color",i),this._filterField.$container.css("--filter-field-transparent-80-background-color",s)}_onFilterFieldDisplayTextChanged(e){this._filterField&&this._filterField.rendered&&this._filterField.$container.toggleClass("empty",!e.newValue),this._updateTextFilterText(this._textFilter,e.newValue)&&this.filter()}_onFocusIn(e){this._updateFocusInsideWidget(e.target)}_onFocusOut(e){this._updateFocusInsideWidget(e.relatedTarget)}_updateFocusInsideWidget(e){let t=this.widget.$container.isOrHas(e);return this._filterField&&this._filterField.rendered&&this._filterField.$container.toggleClass("focus-inside-widget",t),t}_exitFilterField(){this.widget.focus()}_cancelFilterField(){this._resetFilterField(),this._exitFilterField()}_resetFilterField(){this._filterField&&this._filterField.setValue(null)}_removeFilterField(){this._filterField&&(this.widget.$container.off("focusin",this._focusInHandler),this.widget.$container.off("focusout",this._focusOutHandler),this.widget.keyStrokeContext.unregisterKeyStroke(this._focusFilterFieldKeyStroke),this._focusFilterFieldKeyStroke=null,this._resetFilterField(),this._filterField.destroy(),this._filterField=null,this.removeFilter(this._textFilter),this._textFilter=null)}remove(){this._removeFilterField()}addFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=me.ensure(e),s=this._getFilters().slice(),r=s.slice();if(i.forEach((e=>{this._hasFilter(s,e)||s.push(e)})),s.length===this._getFilters().length)return[];this._setFilters(s,t);let n=this._getFilters().slice();return me.removeAll(n,r),n}removeFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=me.ensure(e),s=this._getFilters().slice(),r=s.slice(),n=!1;if(i.forEach((e=>{e=this._findFilter(s,e),n=me.remove(s,e)||n})),!n)return[];this._setFilters(s,t);let o=this._getFilters().slice();return me.removeAll(r,o),r}setFilters(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e=me.ensure(e),this._addSyntheticFilters(e),this._getFilters().length===e.length&&e.every((e=>this._hasFilter(this._getFilters(),e))))return{filtersAdded:[],filtersRemoved:[]};let i=this._getFilters().slice();this._setFilters(e,t);let s=this._getFilters().filter((e=>!this._findFilter(i,e))),r=i.filter((e=>!this._findFilter(this._getFilters(),e)));return{filtersAdded:s,filtersRemoved:r}}_setFilters(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.widget.setProperty("filters",e.map((e=>Ai.isFunction(e)?this._createFilterByFunction(e):e))),t&&this.filter()}_addSyntheticFilters(e){this._getFilters().filter((e=>e.synthetic)).forEach((t=>this._addSyntheticFilter(e,t))),this._addSyntheticFilter(e,this._textFilter)}_addSyntheticFilter(e,t){t&&!this._hasFilter(e,t)&&e.push(t)}_getFilters(){return this.widget.filters}_findFilter(e,t){return Ai.isFunction(t)?this._getFilterCreatedByFunction(e,t):me.find(e,(e=>Ai.equals(e,t)))}_getFilterCreatedByFunction(e,t){return me.find(e,(e=>e.createdByFunction&&e.accept===t))}_hasFilter(e,t){return!!this._findFilter(e,t)}_createFilterByFunction(e){return{createdByFunction:!0,accept:e}}filter(){let e=this._filterElements();if(e&&(me.ensure(e.newlyHidden).length||me.ensure(e.newlyShown).length)){this.widget.filteredElementsDirty=!0;let t={};this._filterField&&(t.textFilterText=this._filterField.displayText),this.widget.updateFilteredElements(e,t)}return e}_filter(){return this.applyFilters(this._getElementsForFiltering(),!0)}applyFilters(e,t){if(0===this._getFilters().length&&!x.nvl(t,!1))return;let i=[],s=[];return e.forEach((e=>{this.applyFiltersForElement(e)&&(e.filterAccepted?i.push(e):s.push(e))})),{newlyHidden:s,newlyShown:i}}applyFiltersForElement(e){if(this.elementAcceptedByFilters(e)){if(!e.filterAccepted)return e.setFilterAccepted(!0),!0}else if(e.filterAccepted)return e.setFilterAccepted(!1),!0;return!1}elementAcceptedByFilters(e){return this._getFilters().every((t=>t.accept(e)))}}class j{constructor(){this.id=null,this.objectType=null,this.initialized=!1,this.attached=!1,this.destroyed=!1,this.widget=null,this._enabledBeforeOffline=!0,this._remoteProperties=[],this._widgetListener=null,this._propertyChangeEventFilter=new Xs,this._widgetEventTypeFilter=new ir,this.events=new dt,this.session=null}init(e){this._init(e),this.initialized=!0}_init(e){x.assertParameter("id",e.id),x.assertParameter("session",e.session),n().extend(this,e),this.session.registerModelAdapter(this)}destroy(){this._detachWidget(),this.widget.destroy(),this.widget=null,this.session.unregisterModelAdapter(this),this.destroyed=!0}createWidget(e,t){let i=this._initModel(e,t);return this.widget=this._createWidget(i),this._attachWidget(),this._postCreateWidget(),this.widget}_postCreateWidget(){}_initModel(e,t){let i=this.session.adapterExportEnabled;return e=n().extend(i,{},e),We.applyTo(e),e.parent=t,e.owner=t,e.modelAdapter=this,e.global&&(e.owner=this.session.getModelAdapter("1").widget),this._initProperties(e),e}_initProperties(e){}_createWidget(e){let t=x.create(e);return t._addCloneProperties(["modelClass","classId"]),t}_attachWidget(){this._widgetListener||(this._widgetListener={func:this._onWidgetEventInternal.bind(this)},this.widget.addListener(this._widgetListener),this.attached=!0,this.events.trigger("attach"))}_detachWidget(){this._widgetListener&&(this.widget.removeListener(this._widgetListener),this._widgetListener=null,this.attached=!1,this.events.trigger("detach"))}goOffline(){this.widget.visitChildren((e=>{e.modelAdapter&&e.modelAdapter._goOffline()}))}_goOffline(){}goOnline(){this.widget.visitChildren((e=>{e.modelAdapter&&e.modelAdapter._goOnline()}))}_goOnline(){}isRemoteProperty(e){return this._remoteProperties.indexOf(e)>-1}_addRemoteProperties(e){this._addProperties("_remoteProperties",e)}_removeRemoteProperties(e){this._removeProperties("_remoteProperties",e)}_addProperties(e,t){Array.isArray(t)?this[e]=this[e].concat(t):this[e].push(t)}_removeProperties(e,t){t=me.ensure(t),me.removeAll(this[e],t)}_send(e,t,i){let s={};arguments.length>2&&(null!==i&&"object"==typeof i?s=i:(s.delay=arguments[2],s.coalesce=arguments[3],s.showBusyIndicator=arguments[4])),i=s;let r=new js(this.id,e,t);void 0!==i.coalesce&&(r.coalesce=i.coalesce),void 0!==i.showBusyIndicator&&(r.showBusyIndicator=i.showBusyIndicator),void 0!==i.newRequest&&(r.newRequest=i.newRequest),this.session.sendEvent(r,i.delay)}_sendProperty(e,t){let i={};i[e]=t,this._send("property",i)}addFilterForWidgetEvent(e){this._widgetEventTypeFilter.addFilter(e)}addFilterForWidgetEventType(e){this._widgetEventTypeFilter.addFilterForEventType(e)}addFilterForProperties(e){this._propertyChangeEventFilter.addFilterForProperties(e)}addFilterForPropertyName(e){this._propertyChangeEventFilter.addFilterForPropertyName(e)}_isPropertyChangeEventFiltered(e,t){return t instanceof Y&&(t=t.id),this._propertyChangeEventFilter.filter(e,t)}_isWidgetEventFiltered(e){return this._widgetEventTypeFilter.filter(e)}resetEventFilters(){this._propertyChangeEventFilter.reset(),this._widgetEventTypeFilter.reset()}_onWidgetPropertyChange(e){let t=e.propertyName,i=e.newValue;this._isPropertyChangeEventFiltered(t,i)||this.isRemoteProperty(t)&&(i=this._prepareRemoteProperty(t,i),this._callSendProperty(t,i))}_prepareRemoteProperty(e,t){return t&&this.widget.isWidgetProperty(e)?Array.isArray(t)?t.map((e=>e.modelAdapter.id)):t.modelAdapter.id:t}_callSendProperty(e,t){let i="_send"+qt.toUpperCaseFirstLetter(e);this[i]?this[i](t):this._sendProperty(e,t)}_onWidgetDestroy(){this.destroy()}_onWidgetEventInternal(e){this._isWidgetEventFiltered(e)||this._onWidgetEvent(e)}_onWidgetEvent(e){"destroy"===e.type?this._onWidgetDestroy(e):"propertyChange"===e.type&&this._onWidgetPropertyChange(e)}_syncPropertiesOnPropertyChange(e){this._orderPropertyNamesOnSync(e).forEach((function(t){let i=e[t],s="_sync"+qt.toUpperCaseFirstLetter(t);this[s]?this[s](i):this.widget.callSetter(t,i)}),this)}_orderPropertyNamesOnSync(e){return Object.keys(e)}_createPropertySortFunc(e){return(t,i)=>{let s=e.indexOf(t),r=e.indexOf(i);return s>-1&&r>-1?s-r:s>-1?-1:r>-1?1:vh.TEXT.compare(t,i)}}onModelEvent(e){e&&("property"===e.type?this.onModelPropertyChange(e):this.onModelAction(e))}onModelPropertyChange(e){this.addFilterForProperties(e.properties),this._syncPropertiesOnPropertyChange(e.properties)}onModelAction(e){"scrollToTop"===e.type?this.widget.scrollToTop({animate:e.animate}):"reveal"===e.type?this.widget.reveal({animate:e.animate}):n().log.warn('Model action "'+e.type+'" is not supported by model-adapter '+this.objectType)}toString(){return"ModelAdapter[objectType="+this.objectType+" id="+this.id+"]"}exportAdapterData(e){let t=e.modelClass;if(t){let i=Math.max(0,t.lastIndexOf("$")+1,t.lastIndexOf(".")+1);e.id=t.substring(i)}return delete e.owner,delete e.classId,delete e.modelClass,e}static modifyWidgetPrototype(){E.get().remote&&Ai.replacePrototypeFunction(Y,"_createChild",(function(e){return e instanceof Y?e:this.modelAdapter&&"string"==typeof e?this.session.getOrCreateWidget(e,this):this._createChildOrig(e)}),!0)}}E.addListener("bootstrap",j.modifyWidgetPrototype);class Y{constructor(){this.id=null,this.objectType=null,this.session=null,this.owner=null,this.parent=null,this.children=[],this.initialized=!1,this.cloneOf=null,this.rendering=!1,this.removing=!1,this.removalPending=!1,this._rendered=!1,this.attached=!1,this.destroyed=!1,this.destroying=!1,this.enabled=!0,this.enabledComputed=!0,this.inheritAccessibility=!0,this.disabledStyle=Y.DisabledStyle.DEFAULT,this.visible=!0,this.focused=!1,this.loading=!1,this.cssClass=null,this.scrollTop=null,this.scrollLeft=null,this.$parent=null,this.$container=null,this.htmlComp=null,this.animateRemoval=!1,this.animateRemovalClass="animate-remove",this._widgetProperties=[],this._cloneProperties=["visible","enabled","inheritAccessibility","cssClass"],this.eventDelegators=[],this._preserveOnPropertyChangeProperties=[],this._postRenderActions=[],this._focusInListener=this._onFocusIn.bind(this),this._parentDestroyHandler=this._onParentDestroy.bind(this),this._parentRemovingWhileAnimatingHandler=this._onParentRemovingWhileAnimating.bind(this),this._scrollHandler=this._onScroll.bind(this),this.events=this._createEventSupport(),this.events.registerSubTypePredicate("propertyChange",((e,t)=>e.propertyName===t)),this.loadingSupport=this._createLoadingSupport(),this.keyStrokeContext=this._createKeyStrokeContext(),this.logicalGrid=null,this.trackFocus=!1,this._$lastFocusedElement=null,this._storedFocusedWidget=null,this._glassPaneContributions=[]}init(e){let t=this._jsonModel();t&&(e=n().extend({},t,e)),e=e||{},e=this._prepareModel(e),this._init(e),this._initKeyStrokeContext(),this.recomputeEnabled(),this.initialized=!0,this.trigger("init")}_prepareModel(e){return e}_init(e){if(!e.parent)throw new Error("Parent expected: "+this);if(this.setOwner(e.owner||e.parent),this.setParent(e.parent),this.session=e.session||this.parent.session,!this.session)throw new Error("Session expected: "+this);this._eachProperty(e,((e,t,i)=>{void 0!==t&&(i&&(t=this._prepareWidgetProperty(e,t)),this._initProperty(e,t))})),this._setCssClass(this.cssClass),this._setLogicalGrid(this.logicalGrid),this._setEnabled(this.enabled)}_initProperty(e,t){this[e]=t}_jsonModel(){}_createChildren(e){if(!e)return null;if(!Array.isArray(e))return this._createChild(e);let t=[];return e.forEach((function(e,i){t[i]=this._createChild(e)}),this),t}_createChild(e){if(e instanceof Y)return e;if("string"==typeof e){let t=this.widget(e);if(!t)throw new Error("Referenced widget not found: "+e);return t}return e.parent=this,x.create(e)}_initKeyStrokeContext(){this.keyStrokeContext&&(this.keyStrokeContext.$scopeTarget=()=>this.$container,this.keyStrokeContext.$bindTarget=()=>this.$container)}destroy(){if(!this.destroyed){if(this.destroying=!0,this._rendered&&(this.animateRemoval||this._isRemovalPrevented()))return this.one("remove",(()=>{this.destroy()})),void this.remove();this._destroyChildren(this.children.slice().reverse()),this.remove(),this._destroy(),this.owner._removeChild(this),this.owner=null,this.parent._removeChild(this),this.parent.off("destroy",this._parentDestroyHandler),this.parent=null,this.destroying=!1,this.destroyed=!0,this.trigger("destroy")}}_destroy(){}_destroyChildren(e){e&&(e=me.ensure(e)).forEach((function(e,t){this._destroyChild(e)}),this)}_destroyChild(e){e.owner===this&&e.destroy()}render(e){if(n().log.isTraceEnabled()&&n().log.trace("Rendering widget: "+this),!this.initialized)throw new Error("Not initialized: "+this);if(this._rendered)throw new Error("Already rendered: "+this);if(this.destroyed)throw new Error("Widget is destroyed: "+this);this.rendering=!0,this.$parent=e||this.parent.$container,this._render(),this._renderProperties(),this._renderInspectorInfo(),this._linkWithDOM(),this.session.keyStrokeManager.installKeyStrokeContext(this.keyStrokeContext),this.rendering=!1,this.rendered=!0,this.attached=!0,this.trigger("render"),this.restoreFocus(),this._postRender()}_render(){}get rendered(){return this._rendered&&!this.isRemovalPending()}set rendered(e){this._rendered=e}_renderProperties(){this._renderCssClass(),this._renderEnabled(),this._renderVisible(),this._renderTrackFocus(),this._renderFocused(),this._renderLoading(),this._renderScrollTop(),this._renderScrollLeft()}_postRender(){let e=this._postRenderActions;this._postRenderActions=[],e.forEach((e=>{e()}))}remove(){this._rendered&&!this._isRemovalPrevented()&&(this.animateRemoval?this._removeAnimated():this._removeInternal())}removeImmediately(){this._removeInternal()}_isRemovalPrevented(){return this.isRemovalPending()}_isRemovalPending(){return this.isRemovalPending()}isRemovalPending(){if(this.removalPending)return!0;let e=this.parent;if(!e||e.removing||e.rendering)return!1;for(;e;){if(e.removalPending)return!0;e=e.parent}return!1}_removeInternal(){this._rendered&&(n().log.isTraceEnabled()&&n().log.trace("Removing widget: "+this),this.removing=!0,this.removalPending=!1,this.trigger("removing"),this.$container&&this.$container.off("focusin",this._focusInListener),this._$lastFocusedElement&&(this._storedFocusedWidget=x.widget(this._$lastFocusedElement),this._$lastFocusedElement=null),this.children.slice().reverse().forEach((function(e){e.parent===this&&e.remove()}),this),this._rendered&&(this._cleanup(),this._remove(),this.$parent=null,this.rendered=!1,this.attached=!1,this.removing=!1,this.trigger("remove")))}_removeAnimated(){let e=this._animateRemovalWhileRemovingParent();this.parent.removing&&!e||!Qe.get().supportsCssAnimation()||!this.$container||this.$container.isDisplayNone()?this._removeInternal():(this.session.desktop.removePopupsFor(this),this.removalPending=!0,setTimeout((()=>{if(this._rendered){if(!this.animateRemovalClass)throw new Error("Missing animate removal class. Cannot remove animated.");this.$container.isVisible()&&this.$container.isEveryParentVisible()&&this.$container.isAttached()?(this.$container.addClass(this.animateRemovalClass),this.$container.oneAnimationEnd((()=>{this._removeInternal()}))):this._removeInternal()}})),e||this.parent.one("removing",this._parentRemovingWhileAnimatingHandler))}_animateRemovalWhileRemovingParent(){return!1}_onParentRemovingWhileAnimating(){this._removeInternal()}_renderInspectorInfo(){this.session.inspector&&vt.applyInfo(this)}_linkWithDOM(){this.$container&&this.$container.data("widget",this)}_cleanup(){this.parent.off("removing",this._parentRemovingWhileAnimatingHandler),this.session.keyStrokeManager.uninstallKeyStrokeContext(this.keyStrokeContext),this.loadingSupport&&this.loadingSupport.remove(),this._uninstallScrollbars(),this.$container&&this.session.layoutValidator.cleanupInvalidComponents(this.$container)}_remove(){this.$container&&(this.$container.remove(),this.$container=null)}setOwner(e){x.assertParameter("owner",e),e!==this.owner&&(this.owner&&this.owner._removeChild(this),this.owner=e,this.owner._addChild(this))}setParent(e){if(x.assertParameter("parent",e),e===this.parent)return;if(this.rendered&&!e.rendered&&(n().log.isInfoEnabled()&&n().log.info("rendered child "+this+" is added to not rendered parent "+e+". Removing child.",new Error("origin")),this.remove()),this.parent){if(this.parent.isRemovalPending())return void this.parent.one("remove",(()=>{this.setParent(e)}));this.parent.off("destroy",this._parentDestroyHandler),this.parent.off("removing",this._parentRemovingWhileAnimatingHandler),this.parent!==this.owner&&this.parent._removeChild(this)}let t=this.parent;this.parent=e,this.parent._addChild(this),this.trigger("hierarchyChange",{oldParent:t,parent:e}),this.initialized&&this.recomputeEnabled(this.parent.enabledComputed),this.parent.one("destroy",this._parentDestroyHandler)}_addChild(e){n().log.isTraceEnabled()&&n().log.trace("addChild("+e+") to "+this),me.pushSet(this.children,e)}_removeChild(e){n().log.isTraceEnabled()&&n().log.trace("removeChild("+e+") from "+this),me.remove(this.children,e)}ancestors(){let e=[],t=this.parent;for(;t;)e.push(t),t=t.parent;return e}isOrHas(e){return e===this||this.has(e)}has(e){for(;e;){if(e.parent===this)return!0;e=e.parent}return!1}getForm(){return Ta.findForm(this)}findNonWrappedForm(){return Ta.findNonWrappedForm(this)}findDesktop(){return this.session.desktop?this.session.desktop:this.findParent((e=>e instanceof lm))}setEnabled(e,t,i){this.setProperty("enabled",e),e&&t&&this.parent&&this.parent.setEnabled(!0,!0,!1),i&&this.visitChildren((t=>{t.setEnabled(e)}))}_setEnabled(e){this._setProperty("enabled",e),this.initialized&&this.recomputeEnabled()}recomputeEnabled(e){void 0===e&&(e=!0,this.parent&&this.parent.initialized&&void 0!==this.parent.enabledComputed&&(e=this.parent.enabledComputed));let t=this._computeEnabled(this.inheritAccessibility,e);this._updateEnabledComputed(t)}_updateEnabledComputed(e,t){if(this.enabledComputed===e&&void 0===t)return;this.setProperty("enabledComputed",e),this.rendered&&this._renderEnabled();let i=x.nvl(t,e);this._childrenForEnabledComputed().forEach((e=>{e.inheritAccessibility&&e.recomputeEnabled(i)}))}_childrenForEnabledComputed(){return this.children}_computeEnabled(e,t){return this.enabled&&(!e||t)}_renderEnabled(){this.$container&&(this.$container.setEnabled(this.enabledComputed),this._renderDisabledStyle())}setInheritAccessibility(e){this.setProperty("inheritAccessibility",e)}_setInheritAccessibility(e){this._setProperty("inheritAccessibility",e),this.initialized&&this.recomputeEnabled()}setDisabledStyle(e){this.setProperty("disabledStyle",e),this.children.forEach((t=>{t.setDisabledStyle(e)}))}_renderDisabledStyle(){this._renderDisabledStyleInternal(this.$container)}_renderDisabledStyleInternal(e){e&&(this.enabledComputed?e.removeClass("read-only"):e.toggleClass("read-only",this.disabledStyle===Y.DisabledStyle.READ_ONLY))}setVisible(e){this.setProperty("visible",e)}isVisible(){return this.visible}_renderVisible(){this.$container&&(this.$container.setVisible(this.isVisible()),this.invalidateParentLogicalGrid())}isEveryParentVisible(){let e=this.parent;for(;e;){if(!e.isVisible())return!1;e=e.parent}return!0}setFocused(e){this.setProperty("focused",e)}_renderFocused(){this.$container&&this.$container.toggleClass("focused",this.focused)}_setCssClass(e){this.rendered&&this._removeCssClass(),this._setProperty("cssClass",e)}_removeCssClass(){this.$container&&this.$container.removeClass(this.cssClass)}_renderCssClass(){this.$container&&(this.$container.addClass(this.cssClass),this.htmlComp&&this.invalidateLayoutTree())}setCssClass(e){this.setProperty("cssClass",e)}addCssClass(e){let t=this.cssClassAsArray();Y.cssClassAsArray(e).forEach((e=>{t.indexOf(e)>=0||t.push(e)}),this),this.setProperty("cssClass",me.format(t," "))}removeCssClass(e){let t=this.cssClassAsArray(),i=Y.cssClassAsArray(e);me.removeAll(t,i)&&this.setProperty("cssClass",me.format(t," "))}toggleCssClass(e,t){t?this.addCssClass(e):this.removeCssClass(e)}cssClassAsArray(){return Y.cssClassAsArray(this.cssClass)}_createLoadingSupport(){return null}setLoading(e){this.setProperty("loading",e)}isLoading(){return this.loading}_renderLoading(){this.loadingSupport&&this.loadingSupport.renderLoading()}pack(){if(this.rendered&&!this.removing){if(!this.htmlComp)throw new Error("Function expects a htmlComp property");this.htmlComp.pack()}}invalidateLayout(){if(this.rendered&&!this.removing){if(!this.htmlComp)throw new Error("Function expects a htmlComp property");this.htmlComp.invalidateLayout()}}validateLayout(){if(this.rendered&&!this.removing){if(!this.htmlComp)throw new Error("Function expects a htmlComp property");this.htmlComp.validateLayout()}}revalidateLayout(){if(this.rendered&&!this.removing){if(!this.htmlComp)throw new Error("Function expects a htmlComp property");this.htmlComp.revalidateLayout()}}invalidateLayoutTree(e){if(this.rendered&&!this.removing){if(!this.htmlComp)throw new Error("Function expects a htmlComp property");this.htmlComp.invalidateLayoutTree(e)}}validateLayoutTree(){if(this.rendered&&!this.removing){if(!this.htmlComp)throw new Error("Function expects a htmlComp property");this.htmlComp.validateLayoutTree()}}revalidateLayoutTree(e){if(this.rendered&&!this.removing){if(!this.htmlComp)throw new Error("Function expects a htmlComp property");this.htmlComp.revalidateLayoutTree(e)}}setLayoutData(e){if(this.rendered){if(!this.htmlComp)throw new Error("Function expects a htmlComp property");this.htmlComp.layoutData=e}}validateLogicalGrid(){this.logicalGrid&&this.logicalGrid.validate(this)}invalidateLogicalGrid(e){this.initialized&&this.logicalGrid&&(this.logicalGrid.setDirty(!0),x.nvl(e,!0)&&this.invalidateLayoutTree())}invalidateParentLogicalGrid(e){if(this.parent.invalidateLogicalGrid(!1),this.rendered&&this.htmlComp&&x.nvl(e,!0)){let e=this.htmlComp.getParent();e&&e.invalidateLayoutTree()}}revalidateLogicalGrid(e){this.invalidateLogicalGrid(e),this.validateLogicalGrid()}setLogicalGrid(e){this.setProperty("logicalGrid",e)}_setLogicalGrid(e){"string"==typeof e&&(e=x.create(e)),this._setProperty("logicalGrid",e),this.invalidateLogicalGrid()}_createEventSupport(){return new dt}trigger(e,t){(t=t||{}).source=this,this.events.trigger(e,t)}one(e,t){this.events.one(e,t)}on(e,t){return this.events.on(e,t)}off(e,t){this.events.off(e,t)}addListener(e){this.events.addListener(e)}removeListener(e){this.events.removeListener(e)}when(e){return this.events.when(e)}entryPoint(){let e=x.nvl(this.$container,this.parent.$container);if(!e||!e.length)throw new Error("Cannot resolve entryPoint, $element.length is 0 or undefined");return e.entryPoint()}window(e){let t=this.$container||this.$parent;return t?t.window(e):e?null:n()(null)}document(e){let t=this.$container||this.$parent;return t?t.document(e):e?null:n()(null)}attach(){!this.attached&&this.rendered&&(this._attach(),this._installFocusContext(),this.restoreFocus(),this.attached=!0,this._postAttach(),this._onAttach(),this._triggerChildrenOnAttach(this))}_attach(){}_postAttach(){}_triggerChildrenOnAttach(e){this.children.forEach((t=>{t._onAttach(),t._triggerChildrenOnAttach(e)}))}_onAttach(){this.rendered&&this._renderOnAttach()}_renderOnAttach(){this._renderScrollTop(),this._renderScrollLeft()}detach(){this.rendering&&this._postRenderActions.push(this.detach.bind(this)),this.attached&&this.rendered&&(this._beforeDetach(),this._onDetach(),this._triggerChildrenOnDetach(this),this._detach(),this.attached=!1)}_beforeDetach(e){if(!this.$container)return;let t=this.$container.document(!0).activeElement,i=this.$container.isOrHas(t),s=this.session.focusManager;s.isFocusContextInstalled(this.$container)?this._uninstallFocusContext():i&&s.validateFocus(rs.outsideFilter(this.$container))}_triggerChildrenOnDetach(){this.children.forEach((e=>{e._onDetach(),e._triggerChildrenOnDetach(parent)}))}_onDetach(){this.rendered&&this._renderOnDetach()}_renderOnDetach(){}_detach(){}_uninstallFocusContext(){}_installFocusContext(){}_createKeyStrokeContext(){return null}updateKeyStrokes(e,t){this.unregisterKeyStrokes(t),this.registerKeyStrokes(e)}registerKeyStrokes(e){this.keyStrokeContext.registerKeyStrokes(e)}unregisterKeyStrokes(e){this.keyStrokeContext.unregisterKeyStrokes(e)}triggerPropertyChange(e,t,i){x.assertParameter("propertyName",e);let s=new ht({propertyName:e,oldValue:t,newValue:i});return this.trigger("propertyChange",s),s}_setProperty(e,t){x.assertParameter("propertyName",e);let i=this[e];return!Ai.equals(i,t)&&(this[e]=t,!this.triggerPropertyChange(e,i,t).defaultPrevented||(this[e]=i,!1))}setProperty(e,t){return!Ai.equals(this[e],t)&&(t=this._prepareProperty(e,t),this.rendered&&this._callRemoveProperty(e),this._callSetProperty(e,t),this.rendered&&this._callRenderProperty(e),!0)}_prepareProperty(e,t){return this.isWidgetProperty(e)?this._prepareWidgetProperty(e,t):t}_prepareWidgetProperty(e,t){t=this._createChildren(t);let i=this[e];return i&&Array.isArray(t)&&(i=me.diff(i,t)),this.isPreserveOnPropertyChangeProperty(e)||(this._destroyChildren(i),this.link(t)),t}_callRemoveProperty(e){if(!this.isWidgetProperty(e))return;if(this.isPreserveOnPropertyChangeProperty(e))return;let t=this[e];if(!t)return;let i="_remove"+qt.toUpperCaseFirstLetter(e);this[i]?this[i]():this._internalRemoveWidgets(t)}_internalRemoveWidgets(e){(e=me.ensure(e)).forEach((e=>{e.remove()}))}_callSetProperty(e,t){let i="_set"+qt.toUpperCaseFirstLetter(e);this[i]?this[i](t):this._setProperty(e,t)}_callRenderProperty(e){let t="_render"+qt.toUpperCaseFirstLetter(e);this[t]&&this[t]()}link(e){e&&(e=me.ensure(e)).forEach((function(e,t){e.setParent(this)}),this)}glassPaneTargets(e){let t=e=>me.flatMap(this._glassPaneContributions,(t=>{let i=t(e);return i?me.ensure(i):[]})).concat(this._glassPaneTargets(e));return this.rendered?t(e):vn.createFor(this,t.bind(this,e))}_glassPaneTargets(e){return[this.$container].concat(this.session.desktop.getPopupsFor(this).filter((t=>!e.has(t))).reduce(((e,t)=>e.concat(t.glassPaneTargets())),[]))}addGlassPaneContribution(e){this._glassPaneContributions.push(e),this.trigger("glassPaneContributionAdded",{contribution:e})}removeGlassPaneContribution(e){me.remove(this._glassPaneContributions,e),this.trigger("glassPaneContributionRemoved",{contribution:e})}toString(){let e="";return e+="id="+this.id,e+=" objectType="+this.objectType,e+=" rendered="+this.rendered,this.$container&&(e+=" $container="+pr.debugOutput(this.$container)),"Widget["+e.trim()+"]"}ancestorsToString(e){let t="",i=this.ancestors();return e=x.nvl(e,-1),i.some(((s,r)=>e>-1&&r>=e||(r>0&&r<i.length-1&&(t+="\n"),t+=s.toString(),!1))),t}resolveTextKeys(e){e.forEach((function(e){mo.resolveTextProperty(this,e)}),this)}resolveIconIds(e){e.forEach((function(e){Ct.resolveIconProperty(this,e)}),this)}resolveConsts(e){e.forEach((function(e){Ai.resolveConstProperty(this,e)}),this)}_addWidgetProperties(e){this._addProperties("_widgetProperties",e)}isWidgetProperty(e){return this._widgetProperties.indexOf(e)>-1}_addCloneProperties(e){this._addProperties("_cloneProperties",e)}isCloneProperty(e){return this._cloneProperties.indexOf(e)>-1}_addPreserveOnPropertyChangeProperties(e){this._addProperties("_preserveOnPropertyChangeProperties",e)}isPreserveOnPropertyChangeProperty(e){return this._preserveOnPropertyChangeProperties.indexOf(e)>-1}_addProperties(e,t){(t=me.ensure(t)).forEach((function(t){if(this[e].indexOf(t)>-1)throw new Error(e+" already contains the property "+t);this[e].push(t)}),this)}_eachProperty(e,t){let i,s,r;for(i in e)this._widgetProperties.indexOf(i)>-1||(s=e[i],t(i,s));for(r=0;r<this._widgetProperties.length;r++)i=this._widgetProperties[r],s=e[i],void 0!==s&&t(i,s,!0)}_removeWidgetProperties(e){Array.isArray(e)?me.removeAll(this._widgetProperties,e):me.remove(this._widgetProperties,e)}cloneAndMirror(e){return this.clone(e,{delegateAllPropertiesToClone:!0})}original(){let e=this;for(;e.cloneOf;)e=e.cloneOf;return e}clone(e,t){let i,s;return e=e||{},t=t||{},s=Ai.extractProperties(this,e,this._cloneProperties),i=x.create(this.objectType,s),i.cloneOf=this,this._mirror(i,t),this.logicalGrid?i.setLogicalGrid(this.logicalGrid.objectType):i.setLogicalGrid(null),i}_deepCloneProperties(e,t,i){if(!t)return e;(t=me.ensure(t)).forEach((t=>{let s=this[t],r=null;if(void 0===s)throw new Error("Property '"+t+"' is undefined. Deep copy not possible.");r=this._widgetProperties.indexOf(t)>-1?Array.isArray(s)?s.map((t=>t.clone({parent:e},i))):s.clone({parent:e},i):Array.isArray(s)?s.map((e=>e)):s,e[t]=r}))}mirror(e,t){if(!(t=t||this.cloneOf))throw new Error("No target for mirroring.");this._mirror(t,e)}_mirror(e,t){let i=me.find(this.eventDelegators,(t=>t.clone===e));if(i)throw new Error("_mirror can only be called on not mirrored widgets. call unmirror first.");t=t||{},i={clone:e,originalToClone:Te.create(this,e,{delegateProperties:t.delegatePropertiesToClone,delegateAllProperties:t.delegateAllPropertiesToClone}),cloneToOriginal:Te.create(e,this,{delegateProperties:t.delegatePropertiesToOriginal,delegateAllProperties:t.delegateAllPropertiesToOriginal,excludeProperties:t.excludePropertiesToOriginal,delegateEvents:t.delegateEventsToOriginal})},this.eventDelegators.push(i),e.one("destroy",(()=>{this._unmirror(e)}))}unmirror(e){if(!(e=e||this.cloneOf))throw new Error("No target for unmirroring.");this._unmirror(e)}_unmirror(e){let t=me.findIndex(this.eventDelegators,(t=>t.clone===e)),i=t>-1?this.eventDelegators.splice(t,1)[0]:null;i&&(i.originalToClone&&i.originalToClone.destroy(),i.cloneToOriginal&&i.cloneToOriginal.destroy())}_onParentDestroy(e){this.destroyed||this.setParent(this.owner)}callSetter(e,t){let i="set"+qt.toUpperCaseFirstLetter(e);this[i]?this[i](t):this.setProperty(e,t)}widget(e){return t(this)?this:this.findChild(t);function t(t){if(t.id===e)return t}}nearestWidget(e,t){if(this.id===e)return this;let i=this.children.slice();for(;i.length;){let s=i.shift();if(s.id===e)return s;if(t)for(let e=0;e<s.children.length;e++){let t=s.children[e];t.parent===s&&i.push(t)}}return null}findParent(e){let t=this.parent;for(;t;){if(e(t))return t;t=t.parent}return t}findChild(e){let t=null;return this.visitChildren((i=>{if(e(i))return t=i,!0})),t}setTrackFocus(e){this.setProperty("trackFocus",e)}_renderTrackFocus(){this.$container&&(this.trackFocus?this.$container.on("focusin",this._focusInListener):this.$container.off("focusin",this._focusInListener))}restoreFocus(){this._$lastFocusedElement?this.session.focusManager.requestFocus(this._$lastFocusedElement):this._storedFocusedWidget&&(this._storedFocusedWidget.focus(),this._storedFocusedWidget=null)}_onFocusIn(e){if(this.rendering)return;let t=n()(e.target);this.$container.has(t)&&(this._$lastFocusedElement=t)}focus(e){return this.rendered?this.session.focusManager.requestFocus(this.getFocusableElement(),null,e):(this.session.layoutValidator.schedulePostValidateFunction(this.focus.bind(this,e)),!1)}focusAndPreventDefault(e){return!!this.focus()&&(e.preventDefault(),!0)}isFocused(){return this.rendered&&yn.isActiveElement(this.getFocusableElement())}isFocusable(e){if(!this.rendered||!this.visible)return!1;let t=this.getFocusableElement();if(!t)return!1;let i=n().ensure(t);return!!i.is(":focusable")&&(!x.nvl(e,!0)||i.is(":tabbable"))}getFocusableElement(){return this.rendered&&this.$container?this.$container[0]:null}_installScrollbars(e){let t=this.get$Scrollable();if(!t)throw new Error("Scrollable is not defined, cannot install scrollbars");if(t.data("scrollable"))return;e=e||{};let i={parent:this};e=n().extend({},i,e),Yn.install(t,e),t.on("scroll",this._scrollHandler)}_uninstallScrollbars(){let e=this.get$Scrollable();e&&e.data("scrollable")&&(Yn.uninstall(e,this.session),e.off("scroll",this._scrollHandler),this.removing||(0===e[0].scrollTop&&(this.scrollTop=null),0===e[0].scrollLeft&&(this.scrollLeft=null)))}_onScroll(){let e=this.get$Scrollable();this._setProperty("scrollTop",e[0].scrollTop),this._setProperty("scrollLeft",e[0].scrollLeft)}setScrollTop(e){this.getDelegateScrollable()?this.getDelegateScrollable().setScrollTop(e):this.setProperty("scrollTop",e)}_renderScrollTop(){let e=this.get$Scrollable();e&&null!==this.scrollTop&&(this.rendering||this.htmlComp&&!this.htmlComp.layouted&&!this.htmlComp.layouting?this.session.layoutValidator.schedulePostValidateFunction(this._renderScrollTop.bind(this)):Yn.scrollTop(e,this.scrollTop))}setScrollLeft(e){this.getDelegateScrollable()?this.getDelegateScrollable().setScrollLeft(e):this.setProperty("scrollLeft",e)}_renderScrollLeft(){let e=this.get$Scrollable();e&&null!==this.scrollLeft&&(this.rendering||this.htmlComp&&!this.htmlComp.layouted&&!this.htmlComp.layouting?this.session.layoutValidator.schedulePostValidateFunction(this._renderScrollLeft.bind(this)):Yn.scrollLeft(e,this.scrollLeft))}get$Scrollable(){return this.$container}hasScrollShadow(e){return Yn.hasScrollShadow(this.get$Scrollable(),e)}getDelegateScrollable(){return null}scrollToTop(e){if(this.getDelegateScrollable())return void this.getDelegateScrollable().scrollToTop();let t=this.get$Scrollable();t&&(this.rendered?Yn.scrollTop(t,0,e):this.session.layoutValidator.schedulePostValidateFunction(this.scrollToTop.bind(this)))}scrollToBottom(e){if(this.getDelegateScrollable())return void this.getDelegateScrollable().scrollToBottom();let t=this.get$Scrollable();t&&(this.rendered?Yn.scrollToBottom(t,e):this.session.layoutValidator.schedulePostValidateFunction(this.scrollToBottom.bind(this)))}reveal(e){if(!this.rendered)return;let t=this.$container.scrollParent();0!==t.length&&Yn.scrollTo(t,this.$container,e)}visitChildren(e){for(let t=0;t<this.children.length;t++){let i=this.children[t];if(i.parent===this){let t=e(i);if(!0===t||t===yu.TERMINATE)return yu.TERMINATE;if(t!==yu.SKIP_SUBTREE&&(t=i.visitChildren(e),!0===t||t===yu.TERMINATE))return yu.TERMINATE}}}isAttachedAndRendered(){return(this.rendered||this.rendering)&&this.$container.isAttached()}static cssClassAsArray(e){let t=[],i=e||"";return i=i.trim(),i.length>0&&(t=i.split(" ")),t}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Y,"DisabledStyle",{DEFAULT:0,READ_ONLY:1});let X=0;const J={createUniqueId:function(e){return(e=e||"sc")+X++},findFirstFocusableWidget:function(e,t,i){return!t||t.rendered&&t.visible?me.find(e,(e=>e.isFocusable(i))):null},get:function(e){for(e=n().ensure(e);e&&e.length>0;){let t=e.data("widget");if(t)return t;e=e.parent()}return null},uniqueIdSeqNo:X,updateFirstLastMarker:function(e){e.filter(((e,t,i)=>e.rendered&&e.isVisible())).forEach(((e,t,i)=>{e.$container.toggleClass("first",0===t),e.$container.toggleClass("last",t===i.length-1)}))},preserveAndSetProperty:function(e,t,i,s){null===i[s]&&(i[s]=t()),e()},resetProperty:function(e,t,i){null!=t[i]&&(e(t[i]),t[i]=null)}};class Z extends Y{constructor(){super(),this.widgets=[],this._addWidgetProperties(["widgets"])}_render(){this.$container=this.$parent.appendDiv(),this.htmlComp=fr.install(this.$container,this.session)}_renderProperties(){super._renderProperties(),this._renderWidgets()}setWidgets(e){this.setProperty("widgets",e)}_renderWidgets(){this.widgets.forEach((e=>{e.render()}),this),this.invalidateLayoutTree()}}class Q extends Y{constructor(){super(),this._addWidgetProperties(["childWidget"])}setChildWidget(e){this.setProperty("childWidget",e)}}class ee extends j{constructor(){super()}}function te(e){return null==e?[]:Array.isArray(e)?e:[e]}function ie(e,t){let i=!1;if(!t||0===t.length)return!1;for(let s=e.length-1;s>=0;s--)t.indexOf(e[s])>-1&&(e.splice(s,1),i=!0);return i}function se(e,t,i){re(e,[t],i)}function re(e,t,i){t=te(t),e.splice(...[i,0].concat(t))}function ne(e,t){return e=te(e),(t=te(t)).every((t=>e.indexOf(t)>=0))}function oe(e){return!Array.isArray(e)||0===e.length}function le(e,t){t=te(t),e.push(...t)}function ae(e,t,i){if(!e||!t)return-1;for(let s=0;s<e.length;s++)if(t.call(i,e[s],s,e))return s;return-1}function he(e,t,i){let s=de(e,t,i);return-1===s?null:e[s]}function de(e,t,i){if(!e||!i||t>=e.length)return-1;t<0&&(t=0);for(let s=t;s<e.length;s++){if(i(e[s],s))return s}return-1}function ue(e,t,i){let s=ce(e,t,i);return-1===s?null:e[s]}function ce(e,t,i){if(!e||!i||t<0)return-1;t>=e.length&&(t=e.length-1);for(let s=t;s>=0;s--){if(i(e[s],s))return s}return-1}function pe(e,t,i){if(!e||0===e.length)return"";let s="";for(let r=0;r<e.length;r++){let n=e[r];t&&r>0&&r<e.length&&(s+=t),i&&(n=qt.encode(n)),s+=n}return s}function ge(e,t){for(let i=0;i<e.length;i++)if(e[i][0]===t[0])return i}const me={$indexOf:ge,$remove:function(e,t){let i=ge(e,t);i>=0&&e.splice(i,1)},clear:function(e){return Array.isArray(e)?e.splice(0,e.length):[]},contains:function(e,t){return-1!==(e=te(e)).indexOf(t)},containsAll:ne,containsAny:function(e,t){return e=te(e),(t=te(t)).some((t=>e.indexOf(t)>=0))},diff:function(e,t){let i=e.slice();return ie(i,t),i},eachSibling:function(e,t,i){if(e&&i)for(let s=0;s<e.length;s++){let r=e[s];r!==t&&i(r,s)}},empty:oe,ensure:te,equals:function(e,t){if(e===t)return!0;if(!(e&&0!==e.length||t&&0!==t.length))return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0},equalsIgnoreOrder:function(e,t){return e===t||(!(e&&0!==e.length||t&&0!==t.length)||!(!e||!t)&&(e.length===t.length&&ne(e,t)))},find:function(e,t,i){let s=ae(e,t,i);return-1===s?null:e[s]},findFrom:function(e,t,i,s){return s?ue(e,t,i):he(e,t,i)},findFromForward:he,findFromReverse:ue,findIndex:ae,findIndexFrom:function(e,t,i,s){return s?ce(e,t,i):de(e,t,i)},findIndexFromForward:de,findIndexFromReverse:ce,first:function(e){return Array.isArray(e)?e[0]:e},flatMap:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e,i=[];return te(e).forEach((e=>{le(i,t(e))})),i},flattenRec:function e(t,i){return te(t).reduce(((t,s)=>(t.push(s),s&&i&&(t=t.concat(e(i(s),i))),t)),[])},format:pe,formatEncoded:function(e,t){return pe(e,t,!0)},greater:function(e,t){let i=0,s=0;return e&&(i=e.length),t&&(s=t.length),i>s},hasElements:function(e){return!oe(e)},init:function(e,t){let i=[];for(let s=0;s<e;s++)i[s]=t;return i},insert:se,insertAll:re,insertSorted:function(e,t,i){let s=0,r=e.length-1;for(;s<=r;){let n=s+Math.floor((r-s)/2),o=i(e[n],t);if(o<0)s=n+1;else{if(!(o>0)){for(s=n+1;s<e.length&&0===i(e[s],t);)s++;break}r=n-1}}e.splice(s,0,t)},insertBefore:function(e,t,i,s){let r=ae(e,i,s);-1===r?e.unshift(t):se(e,t,r)},insertAfter:function(e,t,i){let s=ae(e,i);-1===s?e.push(t):se(e,t,s+1)},last:function(e){return Array.isArray(e)?e[e.length-1]:e},length:function(e){return Array.isArray(e)?e.length:0},max:function(e){if(null==e)return Math.max(e);let t=e.filter(Ai.isNumber);return Math.max(...t)},min:function(e){if(null==e)return Math.min(e);let t=e.filter(Ai.isNumber);return Math.min(...t)},move:function(e,t,i){let s=e.splice(t,1)[0];se(e,s,i)},nullIfEmpty:function(e){return oe(e)?null:e},pushAll:le,pushIfDefined:function(e){if(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];le(e,i.filter((e=>null!=e)))}},pushSet:function(e,t){t&&-1===e.indexOf(t)&&e.push(t)},remove:function(e,t){if(e){let i=e.indexOf(t);if(-1!==i)return e.splice(i,1),!0}return!1},removeAll:ie,replace:function(e,t,i){let s=e.indexOf(t);return-1!==s&&(e[s]=i),s},toMap:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e=>e;return Ai.createMap(te(e).reduce(((e,s)=>(e[t(s)]=i(s),e)),{}))},union:function(e,t){let i=[],s={};return e=te(e),t=te(t),e.forEach((e=>{let t=e;"object"==typeof e&&(t=e.id),s[t]=e,i.push(e)})),t.forEach((e=>{let t=e;"object"==typeof e&&(t=e.id),t in s||i.push(e)})),i},randomElement:function(e){if(e){if(!Array.isArray(e))return e;if(e.length)return e[Math.floor(Math.random()*e.length)]}}};class _e{constructor(){this.retryIntervals=[],this.minCallDuration=500,this.callCounter=0,this.deferred=n().Deferred(),this.aborted=!1,this.pendingCall=null,this.type=null,this.name=null,this.uniqueName=null,this.logPrefix="",this.result=null}init(e){n().extend(this,e),"number"==typeof this.maxRetries?this.retryIntervals=me.init(this.maxRetries,0):(this.retryIntervals=this.retryIntervals?this.retryIntervals.slice():[],this.maxRetries=this.retryIntervals.length),this.uniqueName=x.nvl(this.type,"call")+"-"+_e.GLOBAL_SEQ+++qt.box(" ",this.name,""),this.initialized=!0}_checkInitialized(){if(!this.initialized)throw new Error("Not initialized")}_updateLogPrefix(){this.logPrefix=this.callCounter+"/"+(this.maxRetries+1)+" ["+this.uniqueName+"] "}_resolve(){n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"[RESOLVE]"),this.deferred.resolve(...me.ensure(this.result))}_reject(){n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"[REJECT]"),this.deferred.reject(...me.ensure(this.result))}_setResult(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.result=t}call(){return this._checkInitialized(),this._call(),this.deferred.promise()}abort(){this._checkInitialized(),this._abort()}_call(){if(this.aborted)throw new Error("Call is aborted");this.callTimeoutId=null,this.callStartTimestamp=Date.now(),this.callCounter++,this._updateLogPrefix(),this.pendingCall=this._callImpl().always((()=>{this.pendingCall=null})).done(this._setResultDone.bind(this)).done(this._onCallDone.bind(this)).fail(this._setResultFail.bind(this)).fail(this._onCallFail.bind(this))}_callImpl(){throw new Error("Missing implementation: _callImpl()")}_setResultDone(){this._setResult(...arguments)}_setResultFail(){this._setResult(...arguments)}_onCallDone(){this._resolve()}_onCallFail(){if(this.aborted)return n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"Call aborted"),void this._reject();let e=this._nextRetryImpl(...arguments);if("number"!=typeof e)return n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"No retries remaining"),void this._reject();let t=Date.now()-this.callStartTimestamp,i=e+Math.max(this.minCallDuration-t,0);n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"Try again in "+i+" ms..."),this.callTimeoutId=setTimeout(this._call.bind(this),i)}_nextRetryImpl(){return!!this.retryIntervals.length&&this.retryIntervals.shift()}_abort(){if(this.aborted=!0,this.callTimeoutId)return n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"Cancelled scheduled retry"),clearTimeout(this.callTimeoutId),this.callTimeoutId=null,void this._reject();this._abortImpl()}_abortImpl(){this.pendingCall&&"function"==typeof this.pendingCall.abort&&this.pendingCall.abort()}}function fe(e){return new Ii({message:e.text("ui.CopyToClipboardSuccessStatus"),severity:Ii.Severity.INFO})}function be(e,t){x.assertParameter("parent",e),x.create("DesktopNotification",{parent:e,closable:!1,duration:1234,status:t||fe(e.session)}).show()}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(_e,"GLOBAL_SEQ",0);const ye={copyText:function(e){x.assertParameter("options",e),e.parent&&!e.session&&(e.session=e.parent.session),x.assertProperty(e,"session");let t=function(e){if(navigator.clipboard)return navigator.clipboard.writeText(e.text);let t=e.parent&&e.parent.rendered?e.parent.document(!0):document,i=t.createElement("textarea");i.style.position="fixed",i.style.opacity="0.0",i.value=e.text,t.body.appendChild(i);let s=n()(i);e.session.focusManager.installFocusContext(s,wn.AUTO),i.select();let r=n().Deferred();try{t.execCommand("copy")?r.resolve():r.reject()}catch(e){r.reject(e)}finally{e.session.focusManager.uninstallFocusContext(s),t.body.removeChild(i)}return r.promise()}(e);return e.parent&&x.nvl(e.showNotification,!0)?(function(e,t){let i=fe(e.parent.session);t.catch((()=>{var t;t=e.parent.session,i=new Ii({message:t.text("ui.CopyToClipboardFailedStatus"),severity:Ii.Severity.WARNING})})).then((()=>{be(e.parent,i)}))}(e,t),null):t},showNotification:be},we={DEFAULT:"default",ALTERNATIVE:"alternative",RAINBOW:"rainbow"};function Ce(e,t){let i={};return e&&"object"==typeof e?i=e:"string"==typeof e&&(qt.startsWith(e,we.DEFAULT)?i.scheme=we.DEFAULT:qt.startsWith(e,we.ALTERNATIVE)?i.scheme=we.ALTERNATIVE:qt.startsWith(e,we.RAINBOW)?i.scheme=we.RAINBOW:i.scheme=qt.removeSuffix(e,"-inverted"),i.inverted=qt.endsWith(e,"-inverted")),Ai.isNullOrUndefined(t)||(i.tile=t),i}const ve={ColorSchemeId:we,ensureColorScheme:Ce,toggleColorSchemeClasses:function(e,t){e&&t&&(t=Ce(t),e.toggleClass("color-alternative",t.scheme===ve.ColorSchemeId.ALTERNATIVE),e.toggleClass("color-rainbow",t.scheme===ve.ColorSchemeId.RAINBOW),e.toggleClass("inverted",!!t.inverted),e.toggleClass("tile",!!t.tile))},getCssClasses:function(e){let t=[];return e?((e=Ce(e)).scheme===ve.ColorSchemeId.ALTERNATIVE?t.push("color-alternative"):e.scheme===ve.ColorSchemeId.RAINBOW?t.push("color-rainbow"):e.scheme&&t.push(e.scheme),e.inverted&&t.push("inverted"),e.tile&&t.push("tile"),t):t}};class Te{constructor(e,t,i){i=i||{},this.source=e,this.target=t,this.callSetter=x.nvl(i.callSetter,!0),this.delegateProperties=i.delegateProperties||[],this.excludeProperties=i.excludeProperties||[],this.delegateEvents=i.delegateEvents||[],this.delegateAllProperties=!!i.delegateAllProperties,this.delegateAllEvents=!!i.delegateAllEvents,this._mirrorListener=null,this._destroyHandler=null,this._installSourceListener()}destroy(){this._uninstallSourceListener()}_installSourceListener(){if(this._mirrorListener)throw new Error("source listeners already installed.");this._mirrorListener={func:this._onSourceEvent.bind(this)},this.source.events.addListener(this._mirrorListener),this._destroyHandler=this._uninstallSourceListener.bind(this),this.source.on("destroy",this._destroyHandler),this.target.on("destroy",this._destroyHandler)}_uninstallSourceListener(){this._mirrorListener&&(this.source.events.removeListener(this._mirrorListener),this._mirrorListener=null),this._destroyHandler&&(this.source.off("destroy",this._destroyHandler),this.target.off("destroy",this._destroyHandler),this._destroyHandler=null)}_onSourceEvent(e){"propertyChange"===e.type?this._onSourcePropertyChange(e):(this.delegateAllEvents||this.delegateEvents.indexOf(e.type)>-1)&&this.target.trigger(e.type,e)}_onSourcePropertyChange(e){if(!(this.excludeProperties.indexOf(e.propertyName)>-1)&&(this.delegateAllProperties||this.delegateProperties.indexOf(e.propertyName)>-1)){if(Te.equalsProperty(e.propertyName,this.target,e.newValue))return;this.callSetter?this.target.callSetter(e.propertyName,e.newValue):this.target.trigger(e.type,e)}}static equalsProperty(e,t,i){let s=t[e];return Array.isArray(i)&&Array.isArray(s)?me.equals(i,s):Ai.equals(s,i)}static create(e,t,i){return i.delegateProperties&&i.delegateProperties.length>0||i.delegateEvents&&i.delegateEvents.length>0||i.delegateAllProperties||i.delegateAllEvents?new Te(e,t,i):null}}function Se(e,t,i,s){let r=new Date(e.getTime());return t&&(r.setFullYear(e.getFullYear()+t),De(r,e)!==12*t&&r.setDate(0)),i&&(r.setMonth(e.getMonth()+i),De(r,e)!==i+12*t&&r.setDate(0)),s&&r.setDate(e.getDate()+s),r}function xe(e,t){let i=t-e.getDay();return i<=0&&(i+=7),Se(e,0,0,i)}function Pe(e,t){let i=t-e.getDay();return i>=0&&(i-=7),Se(e,0,0,i)}function Fe(e,t,i){return i>0?xe(e,t):Pe(e,t)}function Ee(e,t){return Fe(e,1,t)}function De(e,t){let i=e.getMonth(),s=t.getMonth(),r=e.getFullYear(),n=t.getFullYear(),o=i-s;return r===n?o:12*(r-n)+o}function Ae(e,t){if(!e||"number"!=typeof t)return;let i=new Date(e.valueOf());return 4!==i.getDay()&&(i.getDay()<t&&i.setDate(i.getDate()-7),i.setDate(i.getDate()-i.getDay()+4)),i}function $e(e,t){if(!e||"number"!=typeof t)return;let i=new Date(e.valueOf());return i.getDay()!==t&&i.setDate(i.getDate()-(i.getDay()+7-t)%7),i}function Re(e){if(!e)return null;let t,i="1970",s="01",r="01",n="00",o="00",l="00",a="000",h=!1,d=/^\+?(\d{4,5})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})\.(\d{3})(Z?)$/.exec(e);if(null!==d)i=d[1],s=d[2],r=d[3],n=d[4],o=d[5],l=d[6],a=d[7],h="Z"===d[8];else if(d=/^\+?(\d{4,5})-(\d{2})-(\d{2})(Z?)$/.exec(e),null!==d)i=d[1],s=d[2],r=d[3],h="Z"===d[4];else{if(d=/^(\d{2}):(\d{2}):(\d{2})\.(\d{3})(Z?)$/.exec(e),null===d)throw new Error("Unparsable date: "+e);n=d[1],o=d[2],l=d[3],a=d[4],h="Z"===d[5]}return h?(t=new Date(Date.UTC(i,s-1,r,n,o,l,a)),i<100&&t.setUTCFullYear(i)):(t=new Date(i,s-1,r,n,o,l,a),i<100&&t.setFullYear(i)),t}function Me(e,t,i,s){if(!e)return null;let r,n,o;void 0===i&&(i=!0),void 0===s&&(s=!0),t?(r=a(e)+"-"+qt.padZeroLeft(e.getUTCMonth()+1,2)+"-"+qt.padZeroLeft(e.getUTCDate(),2),n=qt.padZeroLeft(e.getUTCHours(),2)+":"+qt.padZeroLeft(e.getUTCMinutes(),2)+":"+qt.padZeroLeft(e.getUTCSeconds(),2)+"."+qt.padZeroLeft(e.getUTCMilliseconds(),3),o="Z"):(r=a(e)+"-"+qt.padZeroLeft(e.getMonth()+1,2)+"-"+qt.padZeroLeft(e.getDate(),2),n=qt.padZeroLeft(e.getHours(),2)+":"+qt.padZeroLeft(e.getMinutes(),2)+":"+qt.padZeroLeft(e.getSeconds(),2)+"."+qt.padZeroLeft(e.getMilliseconds(),3),o="");let l="";return i&&(l+=r,s&&(l+=" ")),s&&(l+=n),l+=o,l;function a(e){let t=e.getFullYear();return t>9999?"+"+t:qt.padZeroLeft(t,4)}}function ke(e,t){if(!e&&!t)return 0;if(!e)return-1;if(!t)return 1;let i=e.getTime()-t.getTime();return i<-1?-1:i>1?1:i}function Ie(e,t){return e&&(x.nvl(t,!0)&&(e=new Date(e.getTime())),e.setHours(0,0,0,0)),e}const Le={ceil:function(e,t,i){let s,r,n=x.nvl(t,30);return e&&(x.nvl(i,!0)&&(e=new Date(e.getTime())),e.setSeconds(0,0),r=parseInt((e.getMinutes()+n)/n)*n,s=e.getHours(),r>=60&&(s++,r=0),s>23&&(s=0,e.setDate(e.getDate()+1)),e.setHours(s,r)),e},combineDateTime:function(e,t){let i=new Date;return i.setHours(0,0,0,0),i.setFullYear(1970,0,1),e&&i.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),t&&(i.setHours(x.nvl(t.getHours(),0)),i.setMinutes(x.nvl(t.getMinutes(),0)),i.setSeconds(x.nvl(t.getSeconds(),0)),i.setMilliseconds(x.nvl(t.getMilliseconds(),0))),i},compare:ke,compareDays:function(e,t){return(Ie(e)-Ie(t)-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5},compareMonths:De,create:function(e){if(e){let t,i=/^(\d{4,5})(?:-(\d{2})(?:-(\d{2})(?: (\d{2})(?::(\d{2})(?::(\d{2})(?:\.(\d{3}))?(Z?))?)?)?)?)?/.exec(e);if(null===i)throw new Error("Unparsable date: "+e);return t="Z"===i[8]?new Date(Date.UTC(i[1],(i[2]||1)-1,i[3]||1,i[4]||0,i[5]||0,i[6]||0,i[7]||0)):new Date(i[1],(i[2]||1)-1,i[3]||1,i[4]||0,i[5]||0,i[6]||0,i[7]||0),t}},ensure:function(e){return e?e instanceof Date?e:Re(e):e},ensureMonday:function(e,t){return 1===e.getDay()?e:Ee(e,t)},equals:function(e,t){return 0===ke(e,t)},firstDayOfWeek:$e,format:function(e,t,i){return new eo(t,i).format(e)},formatDateTime:function(e,t){return new eo(t,t.dateFormatPatternDefault+" "+t.timeFormatPatternDefault).format(e)},isLeapYear:function(e){return null!=e&&29===new Date(e,1,29).getDate()},isSameDay:function(e,t){return!(!e||!t)&&(e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate())},isSameMonth:function(e,t){return!(!e||!t)&&0===De(e,t)},isSameTime:function(e,t){return!(!e||!t)&&(e.getHours()===t.getHours()&&e.getMinutes()===t.getMinutes()&&e.getSeconds()===t.getSeconds())},newDate:function(){return new Date},orderWeekdays:function(e,t){let i=[];for(let s=0;s<7;s++)i[s]=e[(s+t)%7];return i},parseJsonDate:Re,shift:Se,shiftTime:function(e,t,i,s,r){let n=new Date(e.getTime());return t&&n.setHours(e.getHours()+t),i&&n.setMinutes(e.getMinutes()+i),s&&n.setSeconds(e.getSeconds()+s),r&&n.setMilliseconds(e.getMilliseconds()+r),n},shiftToNextDayOfType:xe,shiftToNextDayAndDate:function(e,t,i){let s=new Date(e.getTime());for(i<s.getDate()&&s.setMonth(s.getMonth()+1),s.setDate(i);s.getDay()!==t||s.getDate()!==i;)s=Se(s,0,1,0),s.setDate(i);return s},shiftToNextOrPrevDayOfType:Fe,shiftToNextOrPrevMonday:Ee,shiftToPreviousDayOfType:Pe,timestamp:function(e,t){let i=e||new Date;return t?qt.padZeroLeft(i.getUTCFullYear(),4)+qt.padZeroLeft(i.getUTCMonth()+1,2)+qt.padZeroLeft(i.getUTCDate(),2)+qt.padZeroLeft(i.getUTCHours(),2)+qt.padZeroLeft(i.getUTCMinutes(),2)+qt.padZeroLeft(i.getUTCSeconds(),2)+qt.padZeroLeft(i.getUTCMilliseconds(),3):qt.padZeroLeft(i.getFullYear(),4)+qt.padZeroLeft(i.getMonth()+1,2)+qt.padZeroLeft(i.getDate(),2)+qt.padZeroLeft(i.getHours(),2)+qt.padZeroLeft(i.getMinutes(),2)+qt.padZeroLeft(i.getSeconds(),2)+qt.padZeroLeft(i.getMilliseconds(),3)},toJsonDate:Me,toJsonDateRange:function(e){return{from:Me(e.from),to:Me(e.to)}},trunc:Ie,weekInYear:function(e,t){if(!e)return;let i=1;"object"==typeof t?void 0!==t.symbols&&void 0!==t.symbols.firstDayOfWeek?i=t.symbols.firstDayOfWeek:void 0!==t.decimalFormatSymbols&&void 0!==t.decimalFormatSymbols.firstDayOfWeek&&(i=t.decimalFormatSymbols.firstDayOfWeek):"number"==typeof t&&(i=t);let s=Ae(e,i),r=new Date(s.getFullYear(),0,4),n=$e(r,i);e.getTime()<n.getTime()&&(r=new Date(s.getFullYear()-1,0,4));let o=Ae(r,i),l=(s.getTime()-o.getTime())/864e5;return 1+Math.round(l/7)}};let Be={},Oe={};function Ne(e){Oe={},Be=e.defaults||{},He(e.objectTypeHierarchy||{},void 0,Oe),Object.keys(Be).forEach((e=>{Oe[e]||(Oe[e]=[e])}),this)}function He(e,t,i){if(e){if(!i)throw new Error("Argument 'targetMap' must not be null");Object.keys(e).forEach((s=>{let r=[s];if(t&&(r=r.concat(t)),"object"==typeof e[s]&&He(e[s],r,i),i[s])throw new Error("Object type '"+s+"' has ambiguous parent object types.");i[s]=r}),this)}}function Ve(e,t){void 0!==e&&void 0!==t&&Object.keys(t).forEach((i=>{let s=i;if(qt.startsWith(i,"~")&&(s=i.substring(1)),void 0===e[s])e[s]=Ai.valueCopy(t[s]);else if(Ai.isPlainObject(e[s])&&Ai.isPlainObject(t[i]))Ve(e[s],t[i]);else if(Array.isArray(e[s])&&Ai.isPlainObject(t[i])){let r=e[s];for(let e=0;e<r.length;e++)Ai.isPlainObject(r[e])&&Ve(r[e],t[i])}}),this)}const We={applyTo:function e(t,i){if(Array.isArray(t))for(let s=0;s<t.length;s++)e(t[s],i);else"object"==typeof t&&(i=i||t.objectType)&&function(e,t){let i=Oe[t];if(!i){t=O.parse(t).objectType.toString(),i=Oe[t]}if(!i)return;for(let t=0;t<i.length;t++){let s=i[t];Ve(e,Be[s])}}(t,i)},bootstrap:function(e){return e=e||{},e=n().extend({},{url:"defaultValues"},e),n().ajaxJson(e.url).done(Ne.bind(this))},init:Ne};function ze(e,t){return Ke(e,"touchstart","mousedown",t)}function Ge(e,t){return Ke(e,"touchmove","mousemove",t)}function Ue(e,t){return Ke(e,"touchend touchcancel","mouseup",t)}function Ke(e,t,i,s){return(s=s||"")&&(s="."+s),e?t+s:i+s}function qe(e){return e&&qt.startsWith(e.type,"touch")}function je(e,t){if("function"!=typeof Event)return;let i=new t.constructor(t.type,t);e.dispatchEvent(i)||t.preventDefault()}const Ye={addPropagationListener:function(e,t,i,s){(i=me.ensure(i)).forEach((i=>{e.addEventListener(i,(e=>{s&&!s(e)||je(t,e)}))}))},fixTouchEvent:function(e){if(qe(e)){let t=e.touches||(e.originalEvent?e.originalEvent.touches:null),i=t?t[0]:null;i&&(e.pageX=Math.round(i.pageX),e.pageY=Math.round(i.pageY))}},isTouchEvent:qe,onScrollStartEndDuringTouch:function(e,t,i){let s,r=!1,n=!1,o=e=>{r||(t(),r=!0),clearTimeout(s),a()},l=e=>{n=!0,a()};function a(){clearTimeout(s),s=setTimeout((()=>{n&&(e.off("scroll",o),e.document().off("touchend touchcancel",l),i())}),50)}e.on("scroll",o),e.document().one("touchend touchcancel",l)},pageX:function(e){return Ai.isNullOrUndefined(e.pageX)?e.originalEvent.touches[0].pageX:e.pageX},pageY:function(e){return Ai.isNullOrUndefined(e.pageY)?e.originalEvent.touches[0].pageY:e.pageY},passiveOptions:function(){let e=!1;return Qe.get().supportsPassiveEventListener()&&(e={passive:!0}),e},propagateEvent:je,touchOrMouse:Ke,touchdown:ze,touchendcancel:Ue,touchmove:Ge,onSwipe:function(e,t,i,s,r){let n=e.window(),o=Qe.get().supportsOnlyTouch();e.on("touchmove",(e=>e.preventDefault())),e.on("remove",(e=>n.off("."+t))),e.on(ze(o),(l=>{let a=e.position().left;if(!(!i||!!i({originalEvent:l,originalLeft:a,deltaX:0,newLeft:a,direction:0})))return;let h=!0,d=Ye.pageX(l),u=a,c=0;n.on(Ge(o,t),(e=>{let t=Ye.pageX(e)-d,i=a+t;if(i!==u&&(c=Math.sign(i-u)),s){let r=s({originalEvent:e,originalLeft:a,deltaX:t,newLeft:i,direction:c});u="number"==typeof r?r:i}else u=i})),n.on(Ue(o,t),(e=>{h&&(h=!1,n.off("."+t),r&&r({originalEvent:e,originalLeft:a,deltaX:u-a,newLeft:u,direction:c}))}))}))}};const Xe={fileListToArray:function(e){let t=[];for(let i=0;i<e.length;i++)t.push(e[i]);return t},validateMaximumUploadSize:function(e,t){return 0===(e=me.ensure(e)).length||null==t||e.reduce(((e,t)=>e+t.size),0)<=t}};function Je(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}let Ze;class Qe{constructor(e){this.userAgent=e.userAgent,this.features={},this.system=Qe.System.UNKNOWN,this.type=Qe.Type.DESKTOP,this.browser=Qe.Browser.UNKNOWN,this.browserVersion=0,this.scrollbarWidth=0,this.userAgent&&(this._parseSystem(),this._parseSystemVersion(),this._parseBrowser(),this._parseBrowserVersion())}bootstrap(){return this.scrollbarWidth=this._detectScrollbarWidth(),this.type=this._detectType(this.userAgent),this.isIos()&&this._installActiveHandler(),this._needsIPhoneRotationHack()&&this._fixIPhoneRotationBug(),[]}_loadScriptDeferred(e,t){return n().injectScript(e).done(t)}_installActiveHandler(){document.addEventListener("touchstart",(()=>{}),!1)}_needsIPhoneRotationHack(){return n().log.isDebugEnabled()&&n().log.debug("Activating iPhone rotation workaround."),this.isIphone()&&!this.isStandalone()&&"hidden"===n()(document.body).css("overflow")}_fixIPhoneRotationBug(){n().log.isDebugEnabled()&&n().log.debug("Enabling iPhone rotation workaround.");let e=this.orientation(),t=0,i=document.documentElement;function s(){setTimeout((()=>{i.scrollTop=0,++t<8&&s()}),50)}window.addEventListener("resize",(i=>{let r=Qe.get().orientation();e!==r&&(e=r,t=0,s())}))}orientation(){return window.innerHeight>window.innerWidth?"portrait":"landscape"}hasOnScreenKeyboard(){return this.supportsFeature("_onScreenKeyboard",(()=>this.isIos()||this.isAndroid()||this.isWindowsTabletMode()))}isScrollWidthIncludingPadding(){return this.isInternetExplorer()||this.isFirefox()||this.isEdge()}isCustomEllipsisTooltipPossible(){return this.browser!==Qe.Browser.SAFARI}isIos(){return Qe.System.IOS===this.system}isEdge(){return Qe.Browser.EDGE===this.browser}cssClassForEdge(){return this.isEdge()?"ms-edge":""}cssClassForIphone(){return this.isIphone()?"iphone":""}isIphone(){return this.userAgent.indexOf("iPhone")>-1}isInternetExplorer(){return Qe.Browser.INTERNET_EXPLORER===this.browser}isFirefox(){return Qe.Browser.FIREFOX===this.browser}isChrome(){return Qe.Browser.CHROME===this.browser}isIosPlatform(){return/iPad|iPhone|iPod/.test(navigator.platform)}isAndroid(){return Qe.System.ANDROID===this.system}isWindowsTabletMode(){return Qe.System.WINDOWS===this.system&&this.systemVersion>=10&&0===this.scrollbarWidth}isStandalone(){return!!window.navigator.standalone}isSupportedBrowser(e,t){e=x.nvl(e,this.browser),t=x.nvl(t,this.browserVersion);let i=Qe.Browser;return e===i.CHROME&&t>=71||e===i.FIREFOX&&t>=69||e===i.SAFARI&&t>=12.1}_detectType(e){return Qe.System.ANDROID===this.system?e.indexOf("Mobile")>-1?Qe.Type.MOBILE:Qe.Type.TABLET:Qe.System.IOS===this.system?e.indexOf("iPad")>-1?Qe.Type.TABLET:Qe.Type.MOBILE:this.isWindowsTabletMode()?Qe.Type.TABLET:Qe.Type.DESKTOP}_parseSystem(){let e=this.userAgent;e.indexOf("iPhone")>-1||e.indexOf("iPad")>-1?this.system=Qe.System.IOS:e.indexOf("Android")>-1?this.system=Qe.System.ANDROID:e.indexOf("Windows")>-1&&(this.system=Qe.System.WINDOWS)}_parseSystemVersion(){let e,t=Qe.System,i=this.userAgent;this.system===t.IOS?(e=/ OS ([0-9]+\.?[0-9]*)/,i=i.replace(/_/g,".")):this.system===t.WINDOWS&&(e=/Windows NT ([0-9]+\.?[0-9]*)/),e&&(this.systemVersion=this._parseVersion(i,e))}_parseBrowser(){let e=this.userAgent;e.indexOf("Firefox")>-1?this.browser=Qe.Browser.FIREFOX:e.indexOf("MSIE")>-1||e.indexOf("Trident")>-1?this.browser=Qe.Browser.INTERNET_EXPLORER:e.indexOf("Edge")>-1?this.browser=Qe.Browser.EDGE:e.indexOf("Chrome")>-1?this.browser=Qe.Browser.CHROME:e.indexOf("Safari")>-1&&(this.browser=Qe.Browser.SAFARI)}_parseBrowserVersion(){let e,t=Qe.Browser,i=this.userAgent;if(this.browser===t.INTERNET_EXPLORER)e=i.indexOf("MSIE")>-1?/MSIE ([0-9]+\.?[0-9]*)/:/rv:([0-9]+\.?[0-9]*)/;else if(this.browser===t.EDGE)e=/Edge\/([0-9]+\.?[0-9]*)/;else if(this.browser===t.SAFARI){if(this.isIos()&&i.indexOf("Version/")<0)return void(this.browserVersion=this.systemVersion);e=/Version\/([0-9]+\.?[0-9]*)/}else this.browser===t.FIREFOX?e=/Firefox\/([0-9]+\.?[0-9]*)/:this.browser===t.CHROME&&(e=/Chrome\/([0-9]+\.?[0-9]*)/);e&&(this.browserVersion=this._parseVersion(i,e))}_parseVersion(e,t){let i=t.exec(e);if(Array.isArray(i)&&2===i.length)return parseFloat(i[1])}supportsFeature(e,t){return void 0===this.features[e]&&(this.features[e]=t(e)),this.features[e]}supportsOnlyTouch(){return this.supportsFeature("_onlyTouch",this.hasOnScreenKeyboard.bind(this))}supportsTouch(){return this.supportsFeature("_touch",(e=>"ontouchstart"in window||window.TouchEvent||window.DocumentTouch&&document instanceof window.DocumentTouch))}supportsFile(){return!!window.File}supportsFileConstructor(){return"function"==typeof File}supportsCssAnimation(){return this.supportsCssProperty("animation")}supportsHistoryApi(){return!(!window.history||!window.history.pushState)}supportsCssGradient(){return this.supportsFeature("gradient",this.checkCssValue.bind(this,"backgroundImage","linear-gradient(to left, #000 0%, #000 50%, transparent 50%, transparent 100% )",(e=>(e+"").indexOf("gradient")>0)))}supportsInternationalization(){return window.Intl&&"object"==typeof window.Intl}supportsDownloadInSameWindow(){return Qe.Browser.FIREFOX!==this.browser}supportsWebcam(){return this.supportsFeature("_webcam",(e=>{let t=Ai.optProperty(navigator,"mediaDevices","getUserMedia");return Ai.isFunction(t)}))}supportsMicrotask(){return"function"==typeof queueMicrotask}supportsIntersectionObserver(){return"function"==typeof IntersectionObserver}hasPrettyScrollbars(){return this.supportsFeature("_prettyScrollbars",(e=>0===this.scrollbarWidth))}canHideScrollbars(){return this.supportsFeature("_canHideScrollbars",(e=>0===this._detectScrollbarWidth("hybrid-scrollable")))}supportsCopyFromDisabledInputFields(){return Qe.Browser.FIREFOX!==this.browser}loosesFocusIfPseudoElementIsRemoved(){return Qe.Browser.FIREFOX===this.browser}supportsCssProperty(e){return this.supportsFeature(e,(e=>{if(void 0!==document.body.style[e])return!0;e=e.charAt(0).toUpperCase()+e.slice(1);for(let t=0;t<Qe.VENDOR_PREFIXES.length;t++)if(void 0!==document.body.style[Qe.VENDOR_PREFIXES[t]+e])return!0;return!1}))}supportsGeolocation(){return!!navigator.geolocation}requiresSyntheticActiveState(){return this.isFirefox()}supportsPassiveEventListener(){return this.supportsFeature("_passiveEventListener",(e=>{let t=!1;try{let e=Object.defineProperty({},"passive",{get:()=>(t=!0,!1)});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){t=!1}return t}))}checkCssValue(e,t,i){if(void 0===document.body.style[e])return!1;let s=document.createElement("div");if(s.style[e]=t,i(s.style[e]))return!0;e=e.charAt(0).toUpperCase()+e.slice(1);for(let r=0;r<Qe.VENDOR_PREFIXES.length;r++){let n=Qe.VENDOR_PREFIXES[r]+e;if(void 0!==document.body.style[n]&&(s.style[n]=t,i(s.style[n])))return!0}return!1}hasTableCellZoomBug(){return this.browser===Qe.Browser.CHROME}_detectScrollbarWidth(e){let t=n()("body").appendDiv(e).attr("id","MeasureScrollbar").css("width",50).css("height",50).css("overflow-y","scroll"),i=t[0],s=i.offsetWidth-i.clientWidth;return t.remove(),s}toString(){return"scout.Device[system="+this.system+" browser="+this.browser+" browserVersion="+this.browserVersion+" type="+this.type+" scrollbarWidth="+this.scrollbarWidth+" features="+JSON.stringify(this.features)+"]"}static get(){return Ze}}Je(Qe,"VENDOR_PREFIXES",["Webkit","Moz","O","ms","Khtml"]),Je(Qe,"Browser",{UNKNOWN:"Unknown",FIREFOX:"Firefox",CHROME:"Chrome",INTERNET_EXPLORER:"InternetExplorer",EDGE:"Edge",SAFARI:"Safari"}),Je(Qe,"System",{UNKNOWN:"Unknown",IOS:"IOS",ANDROID:"ANDROID",WINDOWS:"WINDOWS"}),Je(Qe,"Type",{DESKTOP:"DESKTOP",TABLET:"TABLET",MOBILE:"MOBILE"}),E.addListener("prepare",(()=>{Ze||(Ze=x.create("Device",{userAgent:navigator.userAgent}))}));class et{constructor(e){e=e||{},this._lastPosX=null,this._lastPosY=null,this._lastTimestamp=null,this._maxDoubleClickInterval=e.maxDoubleClickInterval||500,this._maxDoubleClickDistance=e.maxDoubleClickDistance||10,this._doubleClicked=!1}mousedown(e){if(e&&"mousedown"===e.type){let t=x.nvl(e.pageX,0),i=x.nvl(e.pageY,0),s=Date.now(),r=!1;if(void 0!==this._lastTimestamp){if(s-this._lastTimestamp<=this._maxDoubleClickInterval){Math.max(Math.abs(t-this._lastPosX),Math.abs(i-this._lastPosY))<=this._maxDoubleClickDistance&&(r=!0)}}this._lastPosX=t,this._lastPosY=i,this._lastTimestamp=s,this._doubleClicked=r}}doubleClicked(){return this._doubleClicked}}class tt{constructor(e){e=e||{},this.additionalDropProperties=null,this.allowedTypes=null,this.dropMaximumSize=null,this.target=null,this.onDrop=null,this.validateFiles=null,n().extend(this,e),this.supportedScoutTypes=me.ensure(e.supportedScoutTypes),this._onDragEnterHandler=this._onDragEnter.bind(this),this._onDragOverHandler=this._onDragOver.bind(this),this._onDropHandler=this._onDrop.bind(this)}install(e,t){if(this.$element)throw new Error("Already installed.");this.selector=t,this.$element=e,this.$element.on("dragenter",this.selector,this._onDragEnterHandler).on("dragover",this.selector,this._onDragOverHandler).on("drop",this.selector,this._onDropHandler)}uninstall(){this.$element.off("dragenter",this.selector,this._onDragEnterHandler).off("dragover",this.selector,this._onDragOverHandler).off("drop",this.selector,this._onDropHandler),this.$element=null,this.selector=null}_onDragEnter(e){this._onDragEnterOrOver(e)}_onDragOver(e){this._onDragEnterOrOver(e)}_onDragEnterOrOver(e){e.originalEvent.dataTransfer.dropEffect="copy",at.verifyDataTransferTypesScoutTypes(e,this.supportedScoutTypes,this.dropType())}_onDrop(e){if(this.supportedScoutTypes.indexOf(at.SCOUT_TYPES.FILE_TRANSFER)>=0&&(this.dropType()&at.SCOUT_TYPES.FILE_TRANSFER)===at.SCOUT_TYPES.FILE_TRANSFER&&at.dataTransferTypesContainsScoutTypes(e.originalEvent.dataTransfer,at.SCOUT_TYPES.FILE_TRANSFER)){if(!(this.onDrop&&e.originalEvent.dataTransfer.files instanceof FileList))return;let t=Xe.fileListToArray(e.originalEvent.dataTransfer.files);if(me.empty(t))return;try{this.validateFiles(t,this._validateFiles.bind(this))}catch(e){return void this._validationFailed(e)}e.stopPropagation(),e.preventDefault(),this.onDrop({originalEvent:e,files:t})}}_validateFiles(e){if(!this.dropMaximumSize)return;let t=this.dropMaximumSize();if(!Xe.validateMaximumUploadSize(e,t))throw{title:this.target.session.text("ui.FileSizeLimitTitle"),message:this.target.session.text("ui.FileSizeLimit",t/1024/1024)}}_validationFailed(e){n().log.isDebugEnabled()&&n().log.debug("File validation failed",e);let t="",i="Invalid files";return e&&(t=e.title||t,i=e.message||i),Su.createOk(this.target).withSeverity(Ii.Severity.ERROR).withHeader(t).withBody(i).buildAndOpen()}uploadFiles(e){e&&e.originalEvent&&e.files.length>=1&&this.target.session.uploadFiles(this.target,e.files,this.additionalDropProperties?this.additionalDropProperties(e.originalEvent):void 0,this.dropMaximumSize?this.dropMaximumSize():void 0,this.allowedTypes?this.allowedTypes():void 0)}}const it={FILE_TRANSFER:1,JAVA_ELEMENT_TRANSFER:2,TEXT_TRANSFER:4,IMAGE_TRANSFER:8};function st(e){let t=[];return(e=me.ensure(e)).indexOf(it.FILE_TRANSFER)>=0&&t.push("Files"),t}function rt(e,t){return!!nt(e.originalEvent.dataTransfer,t)&&(e.stopPropagation(),e.preventDefault(),!0)}function nt(e,t){if(t=me.ensure(t),e&&e.types){if(Array.isArray(e.types)&&me.containsAny(e.types,t))return!0;if(e.types.contains)return t.some((t=>e.types.contains(t)))}return!1}function ot(e){return e&&e.target?new tt(e):null}function lt(e){e&&e.dragAndDropHandler&&(e.dragAndDropHandler.uninstall(),e.dragAndDropHandler=null)}const at={DEFAULT_DROP_MAXIMUM_SIZE:52428800,SCOUT_TYPES:it,dataTransferTypesContains:nt,dataTransferTypesContainsScoutTypes:function(e,t){return nt(e,st(t=me.ensure(t)))},handler:ot,installOrUninstallDragAndDropHandler:function(e){var t;e.target&&((e=$.extend({},{target:t=e.target,supportedScoutTypes:at.SCOUT_TYPES.FILE_TRANSFER,validateFiles:(e,t)=>t(e),onDrop:e=>{},dropType:()=>at.SCOUT_TYPES.FILE_TRANSFER,dropMaximumSize:()=>t.dropMaximumSize,doInstall:()=>t.enabledComputed,container:()=>t.$container,additionalDropProperties:e=>{}},e)).doInstall()?function(e){if(e.target.dragAndDropHandler)return;if(e.target.dragAndDropHandler=ot(e),!e.target.dragAndDropHandler)return;let t=e.container();if(!t)return;e.target.dragAndDropHandler.install(t,e.selector)}(e):lt(e.target))},scoutTypeToDragTypeMapping:st,uninstallDragAndDropHandler:lt,verifyDataTransferTypes:rt,verifyDataTransferTypesScoutTypes:function(e,t,i){t=me.ensure(t);let s=[];void 0!==i?t.forEach((e=>{(i&e)===e&&me.pushAll(s,st(t))})):s=st(t),Array.isArray(s)&&s.length>0&&rt(e,s)}};class ht{constructor(e){this.defaultPrevented=!1,n().extend(this,e)}preventDefault(){this.defaultPrevented=!0}}class dt{constructor(){this._eventListeners=[],this._subTypePredicates=Ai.createMap()}_assertFunc(e){if(!e)throw new Error("Missing callback function")}on(e,t,i){this._assertFunc(t);let s={type:e,func:t,origFunc:i};return this.addListener(s),s}one(e,t){this._assertFunc(t);let i=s=>{this.off(e,i),t(s)};return this.on(e,i,t)}off(e,t){if(e||t)for(let i=this._eventListeners.length-1;i>=0;i--){let s=this._eventListeners[i],r=t===s.func||t===s.origFunc,n=e===s.type,o=!1;o=t&&e?r&&n:t?r:n,o&&this._eventListeners.splice(i,1)}}when(e){let t=n().Deferred();return this.one(e,t.resolve.bind(t)),t.promise()}addListener(e){this._eventListeners.push(e)}removeListener(e){me.remove(this._eventListeners,e)}count(e,t){let i=0;return this._eventListeners.forEach((s=>{e&&e!==s.type||t&&t!==s.func||i++})),i}trigger(e,t){(t=t||{}).type=e;let i=this._eventListeners.slice();for(let e=0;e<i.length;e++){let s=i[e];s.type&&!this._typeMatches(t,s.type)||s.func(t)}}_typeMatches(e,t){let i=e.type,s=t.split(" ");for(let t=0;t<s.length;t++){if(i===s[t])return!0;if(this._subTypeMatches(e,s[t]))return!0}return!1}_subTypeMatches(e,t){if(t.indexOf(":")<0)return!1;let i=t.split(":"),s=i[0],r=i[1],n=this._subTypePredicates[s];return n?n(e,r):void 0}registerSubTypePredicate(e,t){x.assertParameter("type",e),x.assertParameter("predicate",t),this._subTypePredicates[e]=t}}let ut=n().Deferred(),ct=!0;const pt="monospace",gt="ABC abc 123 .,_ LlIi1 oO0 !#@ ";function mt(e){let t=(e=e||{}).fonts||[];if(Array.isArray(t)||(t=[t]),!e.onComplete)return;let i=[];if(t.forEach((t=>{if("string"==typeof t){let e=qt.splitMax(t,"|",3).map((e=>e.trim()));t={family:e[0],style:e[1],testString:e[2]}}t.family=t.family||"",t.style=t.style||"",t.testString=t.testString||e.testString||gt;let s=t.testFonts||e.testFonts||pt,r=n()("body").appendDiv("font-preloader").text(t.testString).css("display","block").css("visibility","hidden").css("position","absolute").css("top",0).css("left",0).css("width","auto").css("height","auto").css("margin",0).css("padding",0).css("white-space","nowrap").css("line-height","normal").css("font-variant","normal").css("font-size","20em").css("font-family",s),o=_t(r);if(r.data("original-size",o),r.data("font-family",t.family),r.css("font-family","'"+t.family+"',"+s),t.style){let e=(r.attr("style")||"").trim(),i=(";"===e.substr(-1)?"":";")+(e?" ":"");r.attr("style",e+i+t.style)}_t(r)!==o?r.remove():i.push(r)})),0===i.length)return void a(!0);let s,r,o=a,l=x.nvl(e.timeout,12e3);function a(t){e.onComplete(t,i.map((e=>e.data("font-family"))))}l&&l>=0&&(r=setTimeout((()=>{clearTimeout(s),a(!1)}),l),o=()=>{clearTimeout(r),a(!0)}),function e(t,r){let n=i.length;for(;n--;){let e=i[n];_t(e)!==e.data("original-size")&&(i.splice(n,1),e.remove())}if(0===i.length)return void r(!0);s=setTimeout((()=>{t<1e3&&(t*=1.2),e(t,r)}),t)}(50,o)}function _t(e){let t=pr.size(e,{exact:!0});return t.width+"x"+t.height}function ft(){let e=[],t=document.styleSheets;for(let i=0;i<t.length;i++){let s,r=t[i];try{s=r.cssRules}catch(e){n().log.info("Skipped automatic font detection for style sheet "+r.href+' (access blocked by browser). Use the bootstrap argument "fonts" to manually list fonts to pre-load.');continue}for(let t=0;t<r.cssRules.length;t++){let i=r.cssRules[t];if(i.type===window.CSSRule.FONT_FACE_RULE){let t=i.style,s=t.getPropertyValue("font-family"),r=t.getPropertyValue("font-weight"),n=t.getPropertyValue("font-style"),o=t.getPropertyValue("font-variant"),l=t.getPropertyValue("font-stretch");if(s){s=s.replace(/^["']|["']$/g,"");let t=[];r&&"normal"!==r&&t.push("font-weight:"+r),n&&"normal"!==n&&t.push("font-style:"+n),o&&"normal"!==o&&t.push("font-variant:"+o),l&&"normal"!==l&&t.push("font-stretch:"+l);let i={family:s};t.length&&(i.style=t.join(";")),e.push(i)}}}}return e}const bt={TEST_FONTS:pt,TEST_STRING:gt,TEST_TIMEOUT:12e3,autoDetectFonts:ft,bootstrap:function(e){return 0===(e=e||ft()).length?(ct=!0,n().resolvedPromise()):(ct=!1,mt({fonts:e,onComplete:(e,t)=>{!e&&t&&t.length&&n().log.warn("Timeout occurred while pre-loading the following fonts:\n\n- "+t.join("\n- ")+'\n\nRendering will now continue, but font measurements may be inaccurate. To prevent unnecessary startup delays and layout problems, check the @font-face definitions and the referenced "src" URLs or programmatically add additional font-specific characters to TEST_STRING before calling app.init().'),ct=!0,ut.resolve()}}),n().resolvedPromise())},loadingComplete:ct,measureSize:_t,preload:mt,preloader:function(){return ut.promise()}},yt=/\${iconId:([a-zA-Z0-9_.]*)}/;function wt(e){let t,i,s=yt.exec(e);return s&&2===s.length&&(t=s[1],i=t.split("."),1===i.length?e=scout.icons[i]:2===i.length?e=window[i[0]].icons[i[1]]:n().log.warn("Invalid iconId: "+e)),e}const Ct={TABLE_SORT_ASC:"font:↑",TABLE_SORT_DESC:"font:↓",EXCLAMATION_MARK_BOLD:"font:",EXCLAMATION_MARK_CIRCLE:"font:",INFO:"font:",FILE:"font:",CALENDAR:"font:",CHECKED_BOLD:"font:",CLOCK:"font:",GROUP:"font:",GROUP_PLUS:"font:",ANGLE_DOUBLE_LEFT:"font:",ANGLE_DOUBLE_RIGHT:"font:",ANGLE_LEFT:"font:",ANGLE_RIGHT:"font:",ANGLE_DOWN:"font:",ANGLE_UP:"font:",LONG_ARROW_DOWN:"font:",LONG_ARROW_UP:"font:",LONG_ARROW_DOWN_PLUS:"font:",LONG_ARROW_UP_PLUS:"font:",MINUS:"font:",PLUS:"font:",LIST:"font:",TARGET:"font:",WORLD:"font:",CHART:"font:",GEAR:"font:",STAR:"font:",STAR_MARKED:"font:",STAR_BOLD:"font:",STAR_SOLID:"font:",PERSON_SOLID:"font:",SEARCH:"font:",FOLDER:"font:",SUM:"font:",AVG:"font:",MAX:"font:",MAX_BOLD:"font:",MIN:"font:",MIN_BOLD:"font:",EXPAND_ALL:"font:",COLLAPSE_ALL:"font:",COLLAPSE:"font:",ELLIPSIS_V:"font:",SLIPPERY:"font:",HOURGLASS:"font:",REMOVE:"font:",REMOVE_BOLD:"font:",PENCIL:"font:",PENCIL_UNDERLINE_SOLID:"font:",ROTATE_LEFT:"font:",ROTATE_RIGHT:"font:",DIAGRAM_AREA:"font:",DIAGRAM_BAR:"font:",DIAGRAM_BARS_HORIZONTAL:"font:",DIAGRAM_BARS_VERTICAL:"font:",DIAGRAM_DOUGHNUT:"font:",DIAGRAM_LINE:"font:",DIAGRAM_LINE_ANGULAR:"font:",DIAGRAM_LINE_SMOOTH:"font:",DIAGRAM_PIE:"font:",DIAGRAM_RADAR:"font:",DIAGRAM_SCATTER:"font:",CHEVRON_LEFT_BOLD:"font:",CHEVRON_RIGHT_BOLD:"font:",CHEVRON_UP_BOLD:"font:",CHEVRON_DOWN_BOLD:"font:",ARROW_RIGHT_BOLD:"font:",PLUS_BOLD:"font:",MINUS_BOLD:"font:",SQUARE_BOLD:"font:",CARET_DOWN:"font:",CARET_UP:"font:",CARET_LEFT:"font:",CARET_RIGHT:"font:",ANGLE_LEFT_BOLD:"font:",ANGLE_RIGHT_BOLD:"font:",ANGLE_UP_BOLD:"font:",ANGLE_DOWN_BOLD:"font:",CIRCLE_BOLD:"font:",LONG_ARROW_DOWN_BOLD:"font:",LONG_ARROW_UP_BOLD:"font:",LONG_ARROW_LEFT_BOLD:"font:",LONG_ARROW_RIGHT_BOLD:"font:",parseIconId:function(e){let t=new el;if(qt.startsWith(e,"font:"))if(t.iconType=el.IconType.FONT_ICON,e=e.substr(5),1===qt.countCodePoints(e))t.font=el.DEFAULT_FONT,t.iconCharacter=e;else{let i=e.split(" ");t.font=i[0],t.iconCharacter=i[1]}else t.iconType=el.IconType.BITMAP,t.iconUrl=e;return t},resolveIconId:wt,resolveIconProperty:function(e,t){let i=e[t=t||"iconId"],s=wt(i);s!==i&&(e[t]=s)}};const vt={applyInfo:function(e,t){e&&(t=t||e.$container)&&(t.toggleAttr("data-id",!!e.id,e.id),t.toggleAttr("data-modelclass",!!e.modelClass,e.modelClass),t.toggleAttr("data-classid",!!e.classId,e.classId))}};let Tt={};function St(e,t){if(t&&t.error)throw{error:t.error,url:e};xt(t)}function xt(e){e.forEach((e=>{Tt[e.languageTag]=new Ys(e)}),this)}function Pt(e){return Tt[e]}function Ft(e){let t;return mo.createOrderedLanguageTags(e).some((e=>(t=Pt(e),!!t)),this),t||null}function Et(){return navigator.language||navigator.userLanguage}function Dt(){return Ai.values(Tt)}function At(e){return x.assertParameter("language",e),me.find(Dt(),(t=>{if(t.language===e)return t}),this)}function $t(e){return e?e.split("-"):[]}const Rt={bootstrap:function(e){return(e?n().ajaxJson(e):n().resolvedPromise([])).then(St.bind(this,e))},findFirstForLanguage:At,get:Ft,getAll:Dt,getAllLanguageTags:function(){return Object.keys(Tt)},getNavigatorLanguage:Et,getNavigatorLocale:function(){let e=Et();if(!e)return n().log.warn("Browser returned no language. Using default locale."),new Ys;let t=Ft(e);return t||(n().log.isInfoEnabled()&&n().log.info("Locale for languageTag "+e+" not found. Trying to load best match."),t=At($t(e)[0]),t||(n().log.isInfoEnabled()&&n().log.info("Still no matching locale for languageTag "+e+" found. Using default locale."),new Ys))},has:function(e,t){return(t=x.nvl(t,!1))?!!Pt(e):!!Ft(e)},init:xt,localesMap:Tt,splitLanguageTag:$t};class Mt{constructor(e){u((e=e||{}).target,"target is mandatory"),this.$textInputField=null,this.onInputFieldPaste=this._onInputFieldPaste.bind(this),n().extend(this,e)}install(e){this.uninstall(),e&&(e.is("input:text")||e.is("textarea"))&&e&&(this.$textInputField=e,this.$textInputField.on("paste",this.onInputFieldPaste))}uninstall(){this.$textInputField&&this.$textInputField.off("paste",this.onInputFieldPaste)}render(){if(!this.$textInputField||Ai.isNullOrUndefined(this.target.maxLength))return;this.$textInputField.attr("maxlength",this.target.maxLength);let e=this.$textInputField.val();e.length>this.target.maxLength&&this.$textInputField.val(e.slice(0,this.target.maxLength)),this.target.rendering||this.target.parseAndSetValue(this.target._readDisplayText())}_onInputFieldPaste(e){if(!this.$textInputField||Ai.isNullOrUndefined(this.target.maxLength))return;let t=this.$textInputField.val().length-this._getSelectionSize();this._getClipboardData(e,(e=>{e&&t+e.length>this.target.maxLength&&this._showNotification("ui.PastedTextTooLong")}))}_getSelectionSize(){let e=x.nvl(this.$textInputField[0].selectionStart,null),t=x.nvl(this.$textInputField[0].selectionEnd,null);return null===e||null===t?0:t-e}_getClipboardData(e,t){let i=e.originalEvent.clipboardData||this.target.$container.window(!0).clipboardData;if(i){if(i.items&&i.items.length){let e=me.find(i.items,(e=>"text/plain"===e.type));return void(e&&e.getAsString(t))}i.getData&&t(i.getData("Text"))}}_showNotification(e){x.create("DesktopNotification",{parent:this.target,severity:Ii.Severity.WARNING,message:this.target.session.text(e)}).show()}}let kt=null,It=null;function Lt(e){return null!=e&&("string"==typeof(e=Wt(e))&&0!==e.length&&!/^\s*$/.test(e))}function Bt(e){return!Lt(e)}function Ot(e,t){if(null==e)return e;if("number"!=typeof t||t<1)return"";let i="";for(let s=0;s<t;s++)i+=e;return i}function Nt(e,t){return null!=e&&null!=t&&(e=Wt(e),0===(t=Wt(t)).length||0!==e.length&&e.substr(0,t.length)===t)}function Ht(e,t){return null!=e&&null!=t&&(e=Wt(e),0===(t=Wt(t)).length||0!==e.length&&e.substr(-t.length)===t)}function Vt(e){return kt||(kt=new Vi),kt.encode(e)}function Wt(e){return null==e||"string"==typeof e||e instanceof String?e:String(e)}function zt(e){return(e=Wt(e))?e.substring(0,1).toUpperCase()+e.substring(1):e}function Gt(e){return(e=Wt(e))?e.substring(0,1).toLowerCase()+e.substring(1):e}function Ut(e){return Bt(e)?null:e}function Kt(e,t,i){return e=Ut(e),t=Ut(t),!e&&!t||!(!e||!t)&&(i?e.toLowerCase()===t.toLowerCase():e===t)}const qt={asString:Wt,box:function(e,t,i){e=Wt(e),t=Wt(t),i=Wt(i);let s="";return Lt(t)&&(e&&(s+=e),s+=t,i&&(s+=i)),s},contains:function(e,t){return!!e&&e.indexOf(t)>-1},count:function(e,t){return e&&null!=t?(e=Wt(e),t=Wt(t),e.split(t).length-1):0},countCodePoints:function(e){return e.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length},empty:Bt,encode:Vt,endsWith:Ht,equals:Kt,equalsIgnoreCase:function(e,t){return Kt(e,t,!0)},hasText:Lt,insertAt:function(e,t,i){return e?(e=Wt(e),(t=Wt(t))&&("number"==typeof i||i instanceof Number)&&i>=0?e.substr(0,i)+t+e.substr(i):e):e},join:function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];let r=i;i[0]&&Ai.isArray(i[0])&&(r=i[0]),e=Wt(e);let n="";for(let t=0;t<r.length;t++){let i=Wt(r[t]);i&&(n&&e&&(n+=e),n+=i)}return n},length:function(e){return(e=Wt(e))?e.length:0},lowercaseFirstLetter:function(e){return Gt(e)},nl2br:function(e,t){return e?(e=Wt(e),(t=x.nvl(t,!0))&&(e=Vt(e)),e.replace(/\n/g,"<br>").replace(/\r/g,"")):e},nullIfEmpty:Ut,nvl:function(e){if(arguments.length>1)throw new Error("strings.nvl only accepts one argument. Use scout.nvl if you need to handle multiple arguments");return x.nvl(e,"")},padZeroLeft:function(e,t){return null==(e=Wt(e))||"number"!=typeof t||t<1||(e+"").length>=t?e:(Ot("0",t)+e).slice(-t)},plainText:function(e,t){return It||(It=new Hi),It.encode(e,t)},quote:function(e){return null==e?e:(e=Wt(e)).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},removePrefix:function(e,t){let i=e;return Nt(e,t)&&(i=e.substring(t.length)),i},removeSuffix:function(e,t){let i=e;return Ht(e,t)&&(i=e.substring(0,e.length-t.length)),i},repeat:Ot,splitMax:function(e,t,i){if(null==e)return[];e=Wt(e),t=Wt(t),i=Number(i);let s=e.split(t);if(isNaN(i)||i<=0||i>=s.length)return s;let r=s.slice(0,i-1),n=s.slice(i-1).join(t);return r.push(n),r},startsWith:Nt,toLowerCase:function(e){return(e=Wt(e))?e.toLowerCase():e},toLowerCaseFirstLetter:Gt,toUpperCase:function(e){return(e=Wt(e))?e.toUpperCase():e},toUpperCaseFirstLetter:zt,trim:function(e){return(e=Wt(e))?e.trim():e},truncateText:function(e,t,i){if(e&&t&&i&&t>0&&i(e).width>t){if(i(e=e.trim()).width<=t)return e;let s=e.length,r=0;for(;r+1<s;){let n=Math.round((s+r)/2);i(e.slice(0,n)+"...").width>t?s=n:r=n}return e.slice(0,r).trim()+"..."}return e},uppercaseFirstLetter:function(e){return zt(e)}},jt={TRACE:"trace",DEBUG:"debug",INFO:"info",WARN:"warn",ERROR:"error",FATAL:"fatal"},Yt=jt.TRACE;let Xt=!1,Jt=[];function Zt(e,t){e=x.nvl(e,Yt),log4javascript.setShowStackTraces(true);let i=log4javascript.getDefaultLogger();i.setLevel(Qt(e)),n().log=i,Xt=!0,t?i.getEffectiveAppenders().forEach((e=>{e.setUseDocumentWrite(!1)})):i.removeAllAppenders(),Jt.forEach((e=>{ei(e.factoryName,e.options)}),this),Jt=[]}function Qt(e){if(e)switch(e=e.toLowerCase()){case jt.TRACE:return log4javascript.Level.TRACE;case jt.DEBUG:return log4javascript.Level.DEBUG;case jt.INFO:return log4javascript.Level.INFO;case jt.WARN:return log4javascript.Level.WARN;case jt.ERROR:return log4javascript.Level.ERROR;case jt.FATAL:return log4javascript.Level.FATAL}}function ei(e,t){if(!Xt)return void Jt.push({factoryName:e,options:t});let i=x.create(e,t);n().log.addAppender(i.create())}const ti={DEFAULT_LEVEL:Yt,Level:jt,addAppender:ei,bootstrap:function(e){let t=new ss,i=t.getParameter("logging"),s=t.getParameter("logLevel"),r=!(!(e=x.nvl(e,{})).enabled&&!i),o=!(!e.showPopup&&!i),l=qt.nvl(e.resourceUrl);return n().log=new ii,r?window.log4javascript?(Zt(s,o),n().resolvedPromise()):n().injectScript(l+"log4javascript-1.4.9/log4javascript.js").done(Zt.bind(this,s,o)):n().resolvedPromise()},initLog4Javascript:Zt,initialized:Xt,parseLevel:Qt,showStackTraces:true};class ii{constructor(){}trace(){}debug(){}info(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("info",t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("warn",t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("error",t)}fatal(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("fatal",t)}isEnabledFor(){return!1}isTraceEnabled(){return!1}isDebugEnabled(){return!1}isInfoEnabled(){return!1}isWarnEnabled(){return!1}isErrorEnabled(){return!1}isFatalEnabled(){return!1}_log(e,t){let i,s=Ai.optProperty(window,"console");if(!s)return;i="fatal"===e?"error":e;let r=s[i];if(r){t.length>0&&(t[0]=this._formatTime()+" ["+e.toUpperCase()+"] "+t[0]);try{r.apply(s,t)}catch(e){}}}_formatTime(){let e=new Date;return qt.padZeroLeft(e.getHours(),2)+":"+qt.padZeroLeft(e.getMinutes(),2)+":"+qt.padZeroLeft(e.getSeconds(),2)+"."+qt.padZeroLeft(e.getMilliseconds(),3)}}const si="text/plain",ri="text/html",ni="text/css",oi="text/javascript",li="application/json",ai="application/javascript",hi="application/zip";const di={APPLICATION_JAVASCRIPT:ai,APPLICATION_JSON:li,APPLICATION_ZIP:hi,IMAGE_GIF:"image/gif",IMAGE_JPEG:"image/jpeg",IMAGE_JPG:"image/jpg",IMAGE_PNG:"image/png",JAVASCRIPT:"application/javascript",JSON:"application/json",TEXT_CSS:ni,TEXT_HTML:ri,TEXT_JAVASCRIPT:oi,TEXT_PLAIN:si,ZIP:"application/zip",isJavaScript:function(e){return x.isOneOf(e,oi,ai)},isTextMimeType:function(e){return x.isOneOf(e,si,ri,ni,oi,ai,li)}};let ui={};function ci(e){return function(e,t){let i=ui[e];if(!i)throw new Error("No model map entry found for id '"+e+"'");if(x.nvl(i.type,"model")!==t)throw new Error("Model '"+e+"' is not of type '"+t+"'");return n().extend(!0,{},i)}(e,"extension")}const pi={init:function(e){ui=e},extend:function(e,t){return"string"==typeof e&&(e=ci(e)),"function"==typeof e&&(e=e()),x.assertParameter("extensions",e.extensions),e.extensions.forEach((i=>{let s,r=x.assertParameter("operation",i.operation),o=x.assertParameter("target",i.target);if(s=o.root?t:Ai.findChildObjectByKey(t,"id",o.id),!s)throw new Error("Extension target not found: [extension: "+e.id+", target: "+o.id+"]");if("appendTo"===r)n().extend(s,i.extension);else if("insert"===r){s[o.property]=s[o.property]||[];let e=s[o.property],t=me.ensure(i.extension);!function(e,t){let i=e.before||e.after;i&&e.groupWithTarget&&t.forEach((e=>{e.groupedWith=i}))}(o,t);let r=function(e,t){let i=t.length;e.before?(i=me.findIndex(t,(t=>t.id===e.before||t.groupedWith===e.before)),-1===i&&(i=t.length)):e.after&&(i=me.findIndex(t,(t=>t.id===e.after||t.groupedWith===e.after)),-1===i?i=t.length:i++);n().isNumeric(e.index)&&(i=e.index);return i}(o,e);me.insertAll(e,t,r)}})),t},get:function(e,t){let i=e();return t&&(i.parent=t),i},getExtension:ci,modelMap:ui};let gi=1;function mi(e,t){if(null==e||!t)return e;let i=e?e<0?-1:1:0,s=Math.abs(t);e=Math.abs(e);let r,n=qt.asString(e);return-1!==n.indexOf("e")&&(n=e.toFixed(20)),t<0?(n=qt.repeat("0",s)+n,r=n.split(".",2),n=1===r.length?n.substr(0,n.length-s)+"."+n.substr(n.length-s):r[0].substr(0,r[0].length-s)+"."+r[0].substr(r[0].length-s)+r[1]):t>0&&(n+=qt.repeat("0",s),r=n.split(".",2),2===r.length&&(n=r[0]+r[1].substr(0,s)+"."+r[1].substr(s))),n=n.replace(/^0*(\d)/g,"$1"),Number(n)*i}function _i(e){return"number"==typeof e&&!isNaN(e)}const fi={correlationId:function(e){e=e||11;let t="abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ",i="23456789",s="";for(let r=0;r<e;r++)s+=(r+1)%3==0?i[Math.floor(Math.random()*i.length)]:t[Math.floor(Math.random()*t.length)];return s+"/"+gi++},ensure:function(e){return Ai.isNullOrUndefined(e)?e:Number(e)},isNumber:_i,isInteger:function(e){return _i(e)&&isFinite(e)&&Math.floor(e)===e},randomId:function(e){e=e||8;let t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",i="";for(let s=0;s<e;s++)i+=t[Math.floor(Math.random()*t.length)];return i},round:function(e,t,i){if(null==e)return e;switch(e=mi(e,i=i||0),t){case bi.UP:e=e<0?-Math.ceil(Math.abs(e)):Math.ceil(e);break;case bi.DOWN:e=e<0?-Math.floor(Math.abs(e)):Math.floor(e);break;case bi.CEILING:e=Math.ceil(e);break;case bi.FLOOR:e=Math.floor(e);break;case bi.HALF_DOWN:e=e<0?Math.round(e):-Math.round(-e);break;default:e=e<0?-Math.round(Math.abs(e)):Math.round(e)}return mi(e,-i)},shiftDecimalPoint:mi,toBase62:function(e){if(void 0===e)return;let t,i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".split(""),s="";for(;e>=1;)t=Math.floor(e/62),s=i[e-62*t]+s,e=t;return s}},bi={UP:"UP",DOWN:"DOWN",CEILING:"CEILING",FLOOR:"FLOOR",HALF_UP:"HALF_UP",HALF_DOWN:"HALF_DOWN",HALF_EVEN:"HALF_EVEN",UNNECESSARY:"UNNECESSARY"},yi=/\${const:([^}]*)}/;function wi(e){return"object"==typeof e&&!vi(e)&&!Array.isArray(e)}function Ci(e){return"string"==typeof e||e instanceof String}function vi(e){return null==e}function Ti(e){return n().isFunction(e)}function Si(e){return Array.isArray(e)}function xi(e,t){let i=[];if(e){"function"!=typeof e.hasOwnProperty&&(t=!0);for(let s in e)(t||e.hasOwnProperty(s))&&i.push(e[s])}return i}function Pi(e,t){return e===t||!!(e&&t&&e.equals&&t.equals)&&e.equals(t)}function Fi(e,t){let i=e[t];if(!i||"function"!=typeof i)throw new Error("Function '"+t+"' does not exist on object. Check if it has been renamed or moved. Object: "+e);return i}function Ei(e){return e?Array.prototype.slice.call(e):[]}function Di(e,t){if(!Ci(e))return e;let i=yi.exec(e);if(i&&2===i.length){let s=i[1].split("."),r=t||window;for(let t=0;t<s.length;t++)if(r=r[s[t]],void 0===r)return window.console.log("Failed to resolve constant '"+i[1]+"', object is undefined"),e;return r}return e}const Ai={CONST_REGEX:yi,argumentsToArray:Ei,checkFunctionOverrides:function(){let e=["ModelAdapter.init","ModelAdapter._init","Calendar.init"],t=["Legend:","[!] Function includes super call, and parent function uses arguments"," ~ Function includes super call, but parent function does not use arguments"," Function does not include super call","","Wrong number of arguments:"],i=["Different argument names:"];for(let n in x){if(!x.hasOwnProperty(n))continue;let o=x[n];if("function"==typeof o&&o.parent)for(let l in o.prototype){if(!o.prototype.hasOwnProperty(l))continue;let a=o.prototype[l];if("constructor"===l||!o.prototype.hasOwnProperty(l)||"function"!=typeof a)continue;let h=s(a),d=o.parent;for(;d;){let o=d.prototype[l];if(d.prototype.hasOwnProperty(l)&&"function"==typeof o){let d=s(o),u=!1;for(let e=0;e<d.length;e++)if(h.length<e||h[e]!==d[e]){u=!0;break}let c=n+"."+l;if(u&&-1===e.indexOf(c)){let e=c+"("+h.join(", ")+") does not correctly override "+r(o)+"."+l+"("+d.join(", ")+")",s=null!==a.toString().match(new RegExp("scout."+qt.quote(n)+".parent.prototype."+qt.quote(l)+".call\\(")),u=!1;if(s)for(let e=0;e<d.length;e++){let t=o.toString().match(new RegExp("[^.\\w]"+qt.quote(d[e])+"[^\\w]","g"));if(null!==t&&t.length>1){u=!0;break}}e=(s?u?"[!]":" ~ ":" ")+" "+e,h.length!==d.length?t.push(e):i.push(e)}}d=d.parent}}}return t.push(""),t.concat(i);function s(e){if("function"!=typeof e)throw new Error("Argument is not a function: "+e);let t=e.toString().replace(/\/\*.*?\*\/|\/\/.*$/gm,"").match(/^function[^(]*\((.*?)\)/m),i=[];return null!==t&&t[1].split(",").forEach(((e,t)=>{(e=e.trim()).length>0&&i.push(e)})),i}function r(e){for(let t in x){if(!x.hasOwnProperty(t))continue;let i=x[t];if("function"==typeof i)for(let s in i.prototype){if(!i.prototype.hasOwnProperty(s))continue;let r=i.prototype[s];if("constructor"!==s&&i.prototype.hasOwnProperty(s)&&"function"==typeof r&&r===e)return t}}return""}},copyOwnProperties:function(e,t,i){let s;for(s in i=me.ensure(i),e)!Object.prototype.hasOwnProperty.call(e,s)||0!==i.length&&-1===i.indexOf(s)||(t[s]=e[s]);return t},copyProperties:function(e,t,i){let s;for(s in i=me.ensure(i),e)0!==i.length&&-1===i.indexOf(s)||(t[s]=e[s]);return t},countOwnProperties:function(e){if(!Object.getPrototypeOf(e))return Object.keys(e).length;let t=0;for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&t++;return t},createMap:function(e){let t=Object.create(null);return e&&n().extend(t,e),t},ensureValidKey:function(e){return void 0===e?"undefined":Ci(e)?e:JSON.stringify(e)},equals:Pi,equalsRecursive:function e(t,i){let s;if(wi(t)&&wi(i)){if(Ti(t.equals)&&Ti(i.equals))return t.equals(i);let r=Object.keys(t),n=Object.keys(i);if(!me.equalsIgnoreOrder(r,n))return!1;for(s=0;s<r.length;s++)if(!e(t[r[s]],i[r[s]]))return!1;return!0}if(Si(t)&&Si(i)){if(t.length!==i.length)return!1;for(s=0;s<t.length;s++)if(!e(t[s],i[s]))return!1;return!0}return t===i},extractProperties:function(e,t,i){return i.forEach((i=>{void 0===t[i]&&(t[i]=e[i])})),t},findChildObjectByKey:function e(t,i,s){if(null==t||"object"!=typeof t)return null;if(t[i]===s)return t;let r;if(Array.isArray(t))for(let n=0;n<t.length;n++)if(r=e(t[n],i,s),r)return r;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&(r=e(t[n],i,s),r))return r;return null},getByPath:function(e,t){x.assertParameter("object",e,Object),x.assertParameter("path",t);const i="(\\w+)(?:\\[((?:\\w|\\.|-)+)\\])?";if(!new RegExp("^"+i+"(?:\\."+i+")*$").test(t))throw new Error('Malformed path expression "'+t+'"');const s=new RegExp(i);let r="",n=e;return t.split(/\.(?![^[]*])/).forEach((e=>{if(vi(n))throw new Error('Value selected by matched path "'+r+'" is null or undefined. Further traversal not possible.');let t=s.exec(e),i=t[1],o=t[2],l=0===r.length?"root level of the provided object.":'matched path "'+r+'".';if(!n.hasOwnProperty(i))throw new Error('Property "'+i+'" does not exist at the '+l);let a=n[i];if(o){if(!Array.isArray(a))throw new Error('Path element "'+e+'" contains array filter but property "'+i+'" does not contain an array at the '+l);let t=a.filter((e=>e.id===o));if(0===t.length)throw new Error('No object found with id property "'+o+'" in array property "'+i+'" at the '+l);if(t.length>1)throw new Error('More than one object found with id property "'+o+'" in array property "'+i+'" at the '+l);n=t[0]}else n=a;r&&(r+="."),r+=e})),n},forEachArgument:function(e,t){return Ei(e).forEach(t)},isArray:Si,isEmpty:function(e){return!!vi(e)||(wi(e)?0===Object.keys(e).length:void 0)},isFunction:Ti,isNullOrUndefined:vi,isNumber:function(e){return null!==e&&!isNaN(e)&&isFinite(e)&&!isNaN(parseFloat(e))},isPlainObject:wi,isString:Ci,isPromise:function(e){return!!e&&"object"==typeof e&&"function"==typeof e.then},keyByValue:function(e,t){return Object.keys(e)[xi(e).indexOf(t)]},mandatoryFunction:Fi,optProperty:function(e){if(!e)return null;for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];let r=i.length;if(0===r)return e;if(1===r)return e[i[0]];for(let t=0;t<r-1;t++)if(!(e=e[i[t]]))return null;return e[i[r-1]]},propertiesEquals:function(e,t,i){let s,r;for(s=0;s<i.length;s++)if(r=i[s],!Pi(e[r],t[r]))return!1;return!0},replacePrototypeFunction:function(e,t,i,s){let r=e.prototype;Fi(r,t),s&&(r[t+"Orig"]=r[t]),r[t]=i},resolveConst:Di,resolveConstProperty:function(e,t){x.assertProperty(t,"property"),x.assertProperty(t,"constType");let i=e[t.property],s=Di(i,t.constType);i!==s&&(e[t.property]=s)},someOwnProperties:function(e,t){return me.ensure(t).some((t=>Object.prototype.hasOwnProperty.call(e,t)))},someProperties:function(e,t){return me.ensure(t).some((t=>t in e))},valueCopy:function e(t){if(null==t||"object"!=typeof t)return t;let i;if(Array.isArray(t)){i=[];for(let s=0;s<t.length;s++)i[s]=e(t[s]);return i}i={};for(let s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s]=e(t[s]));return i},values:xi};class $i{constructor(e){this.results=[],this.error=null,this.items=e,this.currentItem=0,this.aborted=!1}hasNext(){return!this.error&&!this.aborted&&this.currentItem<this.items.length}next(){var e=this;let t=this.currentItem;return this.createPromise().done((function(){for(var i=arguments.length,s=new Array(i),r=0;r<i;r++)s[r]=arguments[r];e._addResults.apply(e,[t,s])})).fail(function(){this.error=arguments.length>0?arguments:new Error("Promise execution failed")}.bind(this))}createPromise(){if(this.currentItem>=this.items.length)throw new Error("items out of bounds");let e=this._createPromise();return this.currentItem++,e}_createPromise(){return this.items[this.currentItem]()}_addResults(e,t){0===t.length?t=void 0:1===t.length&&(t=t[0]),this.results[e]=t}abort(){this.aborted=!0}}const Ri={groupwise:function(e,t){let i=n().Deferred();return o(t),i.promise();function s(){setTimeout(o.bind(this,t))}function r(){i.reject.apply(i,t.error)}function o(t){if(t.hasNext()){let i=[];for(;i.length<e&&t.hasNext();)i.push(t.next());n().promiseAll(i,!0).done(s).fail(r)}else i.resolve.apply(i,t.results)}},oneByOne:function(e){let t=n().Deferred();return r(e),t.promise();function i(){setTimeout(r.bind(this,e))}function s(){t.reject.apply(t,e.error)}function r(e){e.hasNext()?e.next().done(i).fail(s):t.resolve.apply(t,e.results)}},parallel:function(e,t,i){i=i||0;let s=n().Deferred(),r=0;return a(t),s.promise();function o(){r--,setTimeout(a.bind(this,t),i)}function l(){s.reject.apply(s,t.error)}function a(t){if("pending"===s.state()){for(;t.hasNext()&&r<e;)r++,t.next().done(o).fail(l);0===r&&s.resolve.apply(s,[t.results])}}}};class Mi{constructor(e,t){this.from=e,this.to=t}equals(e){return this.from===e.from&&this.to===e.to}subtract(e){if(0===e.size())return[new Mi(this.from,this.to)];if(this.from>=e.from&&this.to<=e.to)return[new Mi(0,0)];if(e.from>=this.from&&e.to<=this.to){let t=new Mi(this.from,e.from),i=new Mi(e.to,this.to);return 0===t.size()?[i]:0===i.size()?[t]:[t,i]}return e.from>this.from&&e.from<this.to?[new Mi(this.from,e.from)]:this.from>e.from&&this.from<e.to?[new Mi(e.to,this.to)]:[new Mi(this.from,this.to)]}subtractAll(e){let t=e.shift(),i=[this],s=[];for(;t;)i.forEach(r.bind(t)),i=s,s=[],t=e.shift();function r(e){me.pushAll(s,e.subtract(t))}return i=i.filter((e=>e.size()>0)),0===i.length&&i.push(new Mi(0,0)),i}shrink(e){return 0===e.size()?new Mi(this.from,this.to):this.from>=e.from&&this.to<=e.to?new Mi(0,0):e.from>=this.from&&e.to<=this.to?new Mi(this.from,e.to):e.from>=this.from&&e.from<this.to?new Mi(this.from,e.from):this.from>e.from&&this.from<e.to?new Mi(e.to,this.to):e.to<this.from?new Mi(this.from-e.size()-1,this.to-e.size()-1):new Mi(this.from,this.to)}union(e){if(this.to<e.from||e.to<this.from){let t=new Mi(this.from,this.to),i=new Mi(e.from,e.to);return 0===t.size()?[i]:0===i.size()?[t]:[t,i]}return[new Mi(Math.min(this.from,e.from),Math.max(this.to,e.to))]}add(e){if(this.to<e.from||e.to<this.from){let t=new Mi(this.from,this.to),i=new Mi(e.from,e.to);if(0===t.size())return i;if(0===i.size())return t;throw new Error("Range to add has to border on the existing range. "+this+", "+e)}return new Mi(Math.min(this.from,e.from),Math.max(this.to,e.to))}intersect(e){return this.to<=e.from||e.to<=this.from?new Mi(0,0):new Mi(Math.max(this.from,e.from),Math.min(this.to,e.to))}size(){return this.to-this.from}contains(e){return this.from<=e&&e<this.to}toString(){return"scout.Range[from="+(null===this.from?"null":this.from)+" to="+(null===this.to?"null":this.to)+"]"}}function ki(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Ii{constructor(e){this.message=null,this.severity=Ii.Severity.ERROR,this.iconId=null,this.code=0,this.children=null,this.deletable=!0,n().extend(this,e),"string"==typeof this.severity&&(this.severity=Ii.Severity[this.severity.toUpperCase()]),e&&e.children&&Array.isArray(e.children)&&(this.children=e.children.map((e=>Ii.ensure(e))))}cssClass(){return Ii.cssClassForSeverity(this.severity)}isValid(){return this.severity===Ii.Severity.OK||this.severity===Ii.Severity.INFO}isError(){return this.severity===Ii.Severity.ERROR}isWarning(){return this.severity===Ii.Severity.WARNING}isInfo(){return this.severity===Ii.Severity.INFO}isOk(){return this.severity===Ii.Severity.OK}asFlatList(){return Ii.asFlatList(this)}clone(){let e=n().extend({},this);return new Ii(e)}equals(e){return e instanceof Ii&&(!!Ai.equalsRecursive(this.children,e.children)&&Ai.propertiesEquals(this,e,["severity","message","invalidDate","invalidTime"]))}containsStatus(e){return this.containsStatusByPredicate((t=>t instanceof e))}containsStatusByPredicate(e){return this.asFlatList().some(e)}addStatus(e){this.hasChildren()?this.children.push(e):this.children=[e],this._updateProperties()}removeAllStatus(e){this.removeAllStatusByPredicate((t=>t instanceof e))}removeAllStatusByPredicate(e){this.hasChildren()&&(this.children.forEach((t=>{t.removeAllStatusByPredicate(e)})),this.children=this.children.filter((t=>!t.deletable||!e(t))),this._updateProperties())}_updateProperties(){if(!this.hasChildren())return this.message=null,this.severity=Ii.Severity.OK,void(this.code=0);let e=this.asFlatList().sort(((e,t)=>{return i(t)-i(e);function i(e){let t=1;return e instanceof Bi?t=4:e instanceof Oi&&(t=2),t*e.severity}}))[0];this.message=e.message,this.severity=e.severity,this.code=e.code}hasChildren(){return!!(this.children&&this.children.length>0)}ensureChildren(){if(Ai.isArray(this.children))return this.clone();let e=this.clone();return e.children=[this],e._updateProperties(),e}static clone(e){return e?e.clone():null}static cssClassForSeverity(e){let t,i=Ii.Severity;switch(e){case i.OK:t="ok";break;case i.INFO:t="info";break;case i.WARNING:t="warning";break;case i.ERROR:t="error"}return t}static animateStatusMessage(e,t){if(qt.endsWith(t,"...")){let i=e.makeSpan("ellipsis");for(let t=0;t<3;t++)i.append(e.makeSpan("animate-dot delay-"+t,"."));t=t.substring(0,t.length-3),e.empty().text(t).append(i)}else e.text(t)}static ensure(e){return e?e instanceof Ii?e:(e.objectType||(e.objectType="Status"),H.get().create(e)):e}static ok(e){return new Ii(Ii.ensureModel(e,Ii.Severity.OK))}static info(e){return new Ii(Ii.ensureModel(e,Ii.Severity.INFO))}static warning(e){return new Ii(Ii.ensureModel(e,Ii.Severity.WARNING))}static error(e){return new Ii(Ii.ensureModel(e,Ii.Severity.ERROR))}static ensureModel(e,t){return e="string"==typeof e?{message:e}:e||{},n().extend({},e,{severity:t})}static asFlatList(e){if(!e)return[];let t=[];return e.hasChildren()?e.children.forEach((e=>{me.pushAll(t,Ii.asFlatList(e))})):t.push(e),t}static classForName(e){return{Status:Ii,DefaultStatus:Li,ParsingFailedStatus:Bi,ValidationFailedStatus:Oi}[e]}}ki(Ii,"Severity",{OK:1,INFO:256,WARNING:65536,ERROR:16777216}),ki(Ii,"SEVERITY_CSS_CLASSES","error warning info ok");class Li extends Ii{constructor(e){super(e)}static error(e){return new Li(Ii.ensureModel(e,Ii.Severity.ERROR))}static warning(e){return new Li(Ii.ensureModel(e,Ii.Severity.WARNING))}static info(e){return new Li(Ii.ensureModel(e,Ii.Severity.INFO))}}class Bi extends Ii{constructor(e){super(e)}static error(e){return new Bi(Ii.ensureModel(e,Ii.Severity.ERROR))}}class Oi extends Ii{constructor(e){super(e)}}class Ni{constructor(e){this.tagName=e,this.cachedElement=null}get(){return this.cachedElement||(this.cachedElement=document.createElement(this.tagName)),this.cachedElement}}class Hi{constructor(){this.cache=new Ni("textarea")}encode(e,t){if(t=t||{},!e)return e;e=(e=(e=qt.asString(e)).replace(/<br>|<br\/>|<\/p>|<p\/>|<\/div>|<\/li>|<\/tr>/gi,"\n")).replace(/<\/td>/gi," "),t.removeFontIcons&&(e=e.replace(/<span\s+class="[^"]*font-icon[^"]*">[^<]*<\/span>/gim,"")),e=(e=(e=e.replace(/<[^>]+>/gi,"")).replace(/^[ ]+/gm,"")).replace(/[ ]+$/gm,""),t.compact&&(e=e.replace(/\n{3,}/gm,"\n\n")),t.trim&&(e=e.trim());let i=this.cache.get();return i.innerHTML=e,i.value}}class Vi{constructor(){this.cache=new Ni("div")}encode(e){if(!e)return e;let t=this.cache.get();return t.textContent=e,t.innerHTML}}let Wi={},zi=null;function Gi(e,t,i){let s=zi;s||(s=window.document.createElement("div"),s.style.display="none",window.document.body.appendChild(s),zi=s);let r=s.style.cssText;i=n().extend(!0,{},i,{display:""}),Object.keys(i).sort().forEach((e=>{s.style[e]=i[e]}));let o=s.style.cssText;s.style.display="none";let l=s.style.cssText;s.style.cssText=r;let a=me.ensure(e),h=o?[...a,o]:a,d=Wi[h];t=(t=me.ensure(t)).map((e=>({name:e,nameCamelCase:e.replace(/-(.)/g,((e,t)=>t.toUpperCase()))}))),d||(d={},Ui(h,d));let u=t.filter((e=>!(e.nameCamelCase in d)));if(0===u.length)return d;s.className=a[0];for(let e=1;e<a.length;e++){let t=s.children[0];t||(t=window.document.createElement("div"),t.style.display="none",s.appendChild(t)),s=t,s.className=a[e]}s.style.cssText=l;let c=window.getComputedStyle(s);u.forEach((e=>{d[e.nameCamelCase]=c[e.name]})),s.style.cssText=r,s=zi;do{s.className="",s=s.children[0]}while(s);return d}function Ui(e,t){Wi[e]=t}const Ki={red:0,green:0,blue:0},qi={red:255,green:255,blue:255};function ji(e){if(!e)return;let t=e.replace(/\s/g,"").match(/^rgba?\((\d+),(\d+),(\d+),?(\d+(\.\d+)?)?/i);return null!==t?{red:parseInt(t[1],10),green:parseInt(t[2],10),blue:parseInt(t[3],10),alpha:parseFloat(x.nvl(t[4],1))}:void 0}function Yi(e,t,i,s){if("string"==typeof e&&(e=ji(e)),"string"==typeof i&&(i=ji(i)),e||i)return t=x.nvl(t,0),s=x.nvl(s,0),e||(e=Ki,t=0),i||(i=Ki,s=0),0===t&&0===s?"rgb(0,0,0)":"rgb("+fi.round((t*e.red+s*i.red)/(t+s))+","+fi.round((t*e.green+s*i.green)/(t+s))+","+fi.round((t*e.blue+s*i.blue)/(t+s))+")"}function Xi(e){let t={};if(qt.hasText(e)){let i=e.split(/[-_,/.;]/);for(let e=0;e<i.length;e++){let s=i[e].toUpperCase();"NULL"===s||"0"===s||"PLAIN"===s||("BOLD"===s?t.bold=!0:"ITALIC"===s?t.italic=!0:/^\d+$/.test(s)?t.size=s:"NULL"!==s&&(t.name=i[e]))}}return t}function Ji(e){if(!e)return"";let t="";return/^[A-Fa-f0-9]{3}([A-Fa-f0-9]{3})?$/.test(e)?t="#"+e:/^[A-Za-z0-9().,%-]+$/.test(e)&&(t=e),t}function Zi(e,t,i){i=i||"";let s="";if(e){s=Ji(e[qt.toLowerCaseFirstLetter(i+"ForegroundColor")])}t&&t.css("color",s);let r="";return s&&(r+="color: "+s+"; "),r}function Qi(e,t,i){i=i||"";let s="";if(e){s=Ji(e[qt.toLowerCaseFirstLetter(i+"BackgroundColor")])}t&&t.css("background-color",s);let r="";return s&&(r+="background-color: "+s+"; "),r}function es(e,t,i){i=i||"";let s="",r="",n="",o="";if(e){let t=Xi(e[qt.toLowerCaseFirstLetter(i+"Font")]);t.bold&&(s="bold"),t.italic&&(r="italic"),t.size&&(n=t.size+"pt"),t.name&&(o=t.name)}t&&t.css("font-weight",s).css("font-style",r).css("font-size",n).css("font-family",o);let l="";return s&&(l+="font-weight: "+s+"; "),r&&(l+="font-style: "+r+"; "),n&&(l+="font-size: "+n+"; "),o&&(l+="font-family: "+o+"; "),l}const ts={RGB_BLACK:Ki,RGB_WHITE:qi,clearCache:function(){Wi={}},darkerColor:function(e,t){let i=ji(e);if(i)return t=x.nvl(t,.2),Yi(Ki,t,i,1-t)},get:Gi,getFirstOpaqueBackgroundColor:function(e){if(!e)return;let t=e.document(!0);for(;e&&e.length&&t!==e[0];){let t=e.css("background-color"),i=ji(t);if(i&&1===i.alpha)return t;e=e.parent()}},getSize:function(e,t,i,s){let r=Gi(e,t)[i];return"auto"===r?s:n().pxToNumber(r)},hexToRgb:function(e){if(!e)return;let t=0,i=0,s=0,r=255;return 4!==e.length&&5!==e.length||(t="0x"+e[1]+e[1],i="0x"+e[2]+e[2],s="0x"+e[3]+e[3],5===e.length&&(r="0x"+e[4]+e[4])),7!==e.length&&9!==e.length||(t="0x"+e[1]+e[2],i="0x"+e[3]+e[4],s="0x"+e[5]+e[6],9===e.length&&(r="0x"+e[7]+e[8])),r=+(r/255).toFixed(3),"rgba("+ +t+","+ +i+","+ +s+","+r+")"},legacyBackgroundColor:Qi,legacyFont:es,legacyForegroundColor:Zi,legacyStyle:function(e,t,i){let s="";return s+=Zi(e,t,i),s+=Qi(e,t,i),s+=es(e,t,i),s},lighterColor:function(e,t){let i=ji(e);if(i)return t=x.nvl(t,.2),Yi(qi,t,i,1-t)},mergeRgbColors:Yi,modelToCssColor:Ji,parseFontSpec:Xi,put:Ui,rgb:ji,styleMap:Wi,_getElement:function(){return zi}};class is{constructor(){this.array=[],this.properties=Ai.createMap(),this.comparator=vh.ALPHANUMERIC}add(e){this.contains(e)||(this.array.push(e),this.array.sort(((e,t)=>this.comparator.compare(e,t))),this.properties[e]=!0)}size(){return this.array.length}contains(e){return e in this.properties}last(){return this.array[this.array.length-1]}}class ss{constructor(e){void 0===e&&(e=window.location.href);let t=/^([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/.exec(e||"");this.baseUrlRaw=t[1],this.queryPartRaw=t[2],this.hashPartRaw=t[3],this.parameterMap=ss._parse(this.queryPartRaw)}hasParameter(e){return this.parameterMap.hasOwnProperty(e)}getParameter(e){if("string"!=typeof e)throw new Error("Illegal argument type: "+e);let t=this.parameterMap[e];return Array.isArray(t)?t.sort(ss._sorter):t}removeParameter(e){if("string"!=typeof e)throw new Error("Illegal argument type: "+e);return delete this.parameterMap[e],this}setParameter(e,t){if("string"!=typeof e)throw new Error("Illegal argument type: "+e);if(""!==e)return this.parameterMap[e]=t,this}addParameter(e,t){if("string"!=typeof e)throw new Error("Illegal argument type: "+e);if(""!==e)return ss._addToMap(this.parameterMap,e,t),this}toString(e){let t=this.baseUrlRaw;if(Object.keys(this.parameterMap).length){let i=(e=e||{}).sorter||ss._sorter;if(e.alwaysFirst||e.alwaysLast){e.alwaysFirst=me.ensure(e.alwaysFirst),e.alwaysLast=me.ensure(e.alwaysLast);let t=i;i=(i,s)=>{let r=e.alwaysFirst.indexOf(i),n=e.alwaysFirst.indexOf(s),o=e.alwaysLast.indexOf(i),l=e.alwaysLast.indexOf(s);return-1!==r?-1===n?-1:r-n:-1!==n?1:-1!==o?-1===l?1:o-l:-1!==l?-1:t(i,s)}}let s=Object.keys(this.parameterMap).sort(i).map((e=>{let t=this.getParameter(e);return Array.isArray(t)?t.map(((i,s)=>ss._formatQueryParam(e,t[s]))).join("&"):ss._formatQueryParam(e,t)})).join("&");t+="?"+s}return this.hashPartRaw&&(t+="#"+this.hashPartRaw),t}clone(){return new ss(this.toString())}static _sorter(e,t){return null===e?-1:null===t?1:e.toString().localeCompare(t)}static _formatQueryParam(e,t){let i=encodeURIComponent(e);return null!=t&&(i+="="+encodeURIComponent(t)),i}static _addToMap(e,t,i){if(void 0===e)throw new Error("Argument 'map' must not be null");if(void 0===t)throw new Error("Argument 'key' must not be null");if(t in e){let s=e[t];Array.isArray(s)?s.push(i):e[t]=[s,i]}else e[t]=i}static _parse(e){let t,i,s,r=(e||"").replace(/\+/g," "),n=/([^&=]+)(=?)([^&]*)/g,o={};for(;t=n.exec(r);)i=decodeURIComponent(t[1]),s=decodeURIComponent(t[3]),""===s&&"="!==t[2]&&(s=null),ss._addToMap(o,i,s);return o}}const rs={ensure:function(e){return e?Array.isArray(e)?e:[e]:[]},notSameFilter:function(e){return e=e instanceof n()?e[0]:e,function(){return this!==e}},outsideFilter:function(e){return e=e instanceof n()?e[0]:e,function(){return this!==e&&!n().contains(e,this)}},returnFalse:function(){return!1},returnTrue:function(){return!0}},ns={LEFT:"left",RIGHT:"right",CENTER:"center"};let os=Ct.SUM;let ls=Ct.AVG;let as=Ct.MIN_BOLD;const hs={avgFinish:function(e){if(e.count&&e.count>0)return 1*e.sum/e.count},avgStart:function(){return{sum:0,count:0}},avgStep:function(e,t){return"number"==typeof t&&(e.sum+=t,e.count+=1),e},avgSymbol:ls,maxFinish:function(e){return e},maxStart:function(){return null},maxStep:function(e,t){return"number"==typeof t&&("number"==typeof e?t>e&&(e=t):e=t),e},maxSymbol:Ct.MAX_BOLD,minFinish:function(e){return e},minStart:function(){return null},minStep:function(e,t){return"number"==typeof t&&("number"==typeof e?t<e&&(e=t):e=t),e},minSymbol:as,sumFinish:function(e){return e},sumStart:function(){return null},sumStep:function(e,t){return"number"==typeof t&&(e=(e||0)+t),e},sumSymbol:os};function ds(e,t){if(e)try{return e.getItem(t)}catch(e){n().log.error('Error while reading "'+t+'" from web storage: '+e)}}function us(e,t,i){if(e)try{return e.setItem(t,i)}catch(e){n().log.error('Error while storing "'+t+'" in web storage: '+e)}}function cs(e,t){if(e)try{return e.removeItem(t)}catch(e){n().log.error('Error while removing "'+t+'" from web storage: '+e)}}function ps(e){if(e)try{return e.clear()}catch(e){n().log.error("Error while clearing web storage: "+e)}}const gs={clear:ps,clearSessionStorage:function(){try{return ps(sessionStorage)}catch(e){n().log.error("Error while clearing session storage: "+e)}},clearLocalStorage:function(){try{return ps(localStorage)}catch(e){n().log.error("Error while clearing local storage: "+e)}},getItem:ds,getItemFromSessionStorage:function(e){try{return ds(sessionStorage,e)}catch(t){n().log.error('Error while reading "'+e+'" from session storage: '+t)}},getItemFromLocalStorage:function(e){try{return ds(localStorage,e)}catch(t){n().log.error('Error while reading "'+e+'" from local storage: '+t)}},removeItem:cs,removeItemFromSessionStorage:function(e){try{return cs(sessionStorage,e)}catch(t){n().log.error('Error while removing "'+e+'" from session storage: '+t)}},removeItemFromLocalStorage:function(e){try{return cs(localStorage,e)}catch(t){n().log.error('Error while removing "'+e+'" from local storage: '+t)}},setItem:us,setItemToSessionStorage:function(e,t){try{return us(sessionStorage,e,t)}catch(t){n().log.error('Error while storing "'+e+'" in session storage: '+t)}},setItemToLocalStorage:function(e,t){try{return us(localStorage,e,t)}catch(t){n().log.error('Error while storing "'+e+'" in local storage: '+t)}}};const ms={get:function(e,t){let i=e+"=",s=(t=t||document).cookie.split(";");for(let e=0;e<s.length;e++){let t=s[e].trim();if(0===t.indexOf(i))return t.substring(i.length)}return null},set:function(e,t,i,s){let r=e+"="+(t=x.nvl(t,""));if((i=x.nvl(i,-1))>-1){let e=new Date;e.setTime(e.getTime()+1e3*i),r+=";max-age="+i+";expires="+e}s&&(r+=";path="+s),document.cookie=r}};function _s(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class fs{constructor(e){this.viewportWidth=0,this.viewportHeight=0,this.e=30,this.f=-30,this.initialDelay=500,this.active=()=>!0,this.scroll=(e,t)=>{},$.extend(this,e),this.dx=0,this.dy=0,this.started=!1,this.moved=!1,this._timeoutId=null}_tick(){if(!this.active())return;this.started&&(this.dx||this.dy)&&(this.scroll(this.dx,this.dy),this.moved=!0);let e=this.moved?16:this.initialDelay;this._timeoutId=setTimeout((()=>this._tick()),e)}start(){clearTimeout(this._timeoutId),this._tick(),this.started=!0}stop(){clearTimeout(this._timeoutId),this._timeoutId=null,this.started=!1,this.moved=!1,this.dx=0,this.dy=0}update(e){let t=this.e,i=this.f,s=Math.floor((t+i)/2),r=t,n=this.viewportWidth-t,o=t,l=this.viewportHeight-t;const a=fs.SPEED_FACTOR_SLOW,h=fs.SPEED_FACTOR_MEDIUM,d=fs.SPEED_FACTOR_FAST;let u=0,c=0,p=0,g=0;e.x<r?(p=-(r-e.x),u=e.x>s?a:e.x>i?h:d):e.x>n&&(p=e.x-n,u=e.x>this.viewportWidth-i?d:e.x>this.viewportWidth-s?h:a),e.y<o?(g=-(o-e.y),c=e.y>s?a:e.y>i?h:d):e.y>l&&(g=e.y-l,c=e.y>this.viewportHeight-i?d:e.y>this.viewportHeight-s?h:a);let m=Math.abs(p),_=Math.abs(g),f=Math.max(m,_);if(0===f)return void this.stop();let b=1+Math.floor(m*u),y=1+Math.floor(_*c);this.dx=Math.sign(p)*b,this.dy=Math.sign(g)*y,this.started||this.start(),!this.moved&&f>t&&this.start()}}function bs(e){return ws(e).call()}function ys(e){return Cs(e).call()}function ws(e){return Cs(n().extend({},{type:"POST",dataType:"json",contentType:"application/json; charset=UTF-8"},e))}function Cs(e){let t=n().extend({},{cache:!1},e);return x.create("AjaxCall",{ajaxOptions:t},{ensureUniqueId:!1})}_s(fs,"SPEED_FACTOR_SLOW",.05),_s(fs,"SPEED_FACTOR_MEDIUM",.1),_s(fs,"SPEED_FACTOR_FAST",.2);const vs={createCall:Cs,createCallJson:ws,call:ys,callJson:bs,get:function(e,t){return ys(n().extend({},{url:e,type:"GET"},t))},getJson:function(e,t){return bs(n().extend({},{url:e,type:"GET"},t))},post:function(e,t,i){return ys(n().extend({},{url:e,type:"POST",data:t},i))},postJson:function(e,t,i){return t&&"string"!=typeof t&&(t=JSON.stringify(t)),bs(n().extend({},{url:e,type:"POST",data:t},i))},put:function(e,t,i){return ys(n().extend({},{url:e,type:"PUT",data:t},i))},putJson:function(e,t,i){return t&&"string"!=typeof t&&(t=JSON.stringify(t)),bs(n().extend({},{url:e,type:"PUT",data:t},i))},remove:function(e,t){return ys(n().extend({},{url:e,type:"DELETE"},t))},removeJson:function(e,t){return bs(n().extend({},{url:e,type:"DELETE"},t))}};class Ts extends _e{constructor(){super(),this.type="ajax",this.ajaxOptions=null}init(e){if(!e)throw new Error('Missing argument "model"');if(!e.ajaxOptions)throw new Error('Missing model property "ajaxOptions"');e.name||(e.name=e.ajaxOptions.url),super.init(e)}_callImpl(){return 1!==this.callCounter&&(this.ajaxOptions.url=new ss(this.ajaxOptions.url).setParameter("retry",this.callCounter-1).toString({alwaysLast:["retry"]})),n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+(1===this.callCounter?"--- ":"")+this.ajaxOptions.type+' "'+this.ajaxOptions.url+'"'+(1===this.callCounter?" ---":"")),n().ajax(this.ajaxOptions)}_setResultFail(e,t,i){this._setResult(new Ss({jqXHR:e,textStatus:t,errorThrown:i,requestOptions:this.ajaxOptions}))}_onCallDone(e,t,i){n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"AJAX success"),super._onCallDone(e,t,i)}_onCallFail(e,t,i){n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"AJAX fail: type="+t+", httpStatus="+e.status+(i?' "'+i+'"':"")),super._onCallFail(e,t,i)}_nextRetryImpl(e,t,i){return Ts.isOfflineError(e,t,i,this.request)?super._nextRetryImpl():(n().log.isTraceEnabled()&&n().log.trace(this.logPrefix+"Unexpected HTTP error"),!1)}static isOfflineError(e,t,i,s){return!e.status||e.status>=12e3||502===e.status||503===e.status||504===e.status}}class Ss{constructor(e){this.jqXHR=null,this.textStatus=null,this.errorThrown=null,this.requestOptions=null,n().extend(this,e)}}class xs{constructor(){this.session=null,this.hierarchical=!1,this.loadIncremental=!1,this.batch=!1,this.queryBy=null,this.searchText=null,this.key=null,this.keys=null,this.parentKey=null,this.active=null,this.maxRowCount=100}init(e){x.assertParameter("session",e.session),this._init(e)}_init(e){n().extend(this,e)}setLoadIncremental(e){this.loadIncremental=e}setHierarchical(e){this.hierarchical=e}setBatch(e){this.batch=e}setMaxRowCount(e){this.maxRowCount=e}textByKey(e){return Ai.isNullOrUndefined(e)?n().resolvedPromise(""):this._textByKey(e)}_textByKey(e){return this.cloneForKey(e).execute().then((e=>{let t=xs.firstLookupRow(e);return t?t.text:""}))}textsByKeys(e){return me.empty(e)?n().resolvedPromise({}):this._textsByKeys(e)}_textsByKeys(e){return this.cloneForKeys(e).execute().then((e=>{if(!e||!Ai.isArray(e.lookupRows))return{};const t={};return e.lookupRows.forEach((e=>{t[Ai.ensureValidKey(e.key)]=e.text})),t}))}getAll(){return this.queryBy=As.ALL,this._getAll()}_getAll(){throw new Error("getAll() not implemented")}getByText(e){return this.queryBy=As.TEXT,this.searchText=e,this._getByText(e)}_getByText(e){throw new Error("getByText() not implemented")}getByKey(e){return this.queryBy=As.KEY,this.key=e,this._getByKey(e)}_getByKey(e){throw new Error("getByKey() not implemented")}getByKeys(e){return this.queryBy=As.KEYS,this.keys=e,this._getByKeys(e)}_getByKeys(e){throw new Error("getByKeys() not implemented")}getByRec(e){return this.queryBy=As.REC,this.parentKey=e,Ai.isNullOrUndefined(e)?this._emptyRecResult(e):this._getByRec(e)}_emptyRecResult(e){return n().resolvedPromise({queryBy:As.REC,rec:e,lookupRows:[]})}_getByRec(e){throw new Error("getByRec() not implemented")}execute(){if(As.KEY===this.queryBy)return this._getByKey(this.key);if(As.ALL===this.queryBy)return this._getAll();if(As.KEYS===this.queryBy)return this._getByKeys(this.keys);if(As.TEXT===this.queryBy)return this._getByText(this.searchText);if(As.REC===this.queryBy)return Ai.isNullOrUndefined(this.parentKey)?this._emptyRecResult(this.parentKey):this._getByRec(this.parentKey);throw new Error("cannot execute a non-clone LookupCall. Use one of the cloneFor*-methods before executing.")}clone(e){return x.cloneShallow(this,e,!0)}cloneForAll(){return this.clone({queryBy:As.ALL})}cloneForText(e){return this.clone({queryBy:As.TEXT,searchText:e})}cloneForKey(e){return this.clone({queryBy:As.KEY,key:e})}cloneForKeys(e){return this.clone({queryBy:As.KEYS,keys:e})}cloneForRec(e){return this.clone({queryBy:As.REC,parentKey:e})}abort(){}static ensure(e,t){return e instanceof xs||(Ai.isPlainObject(e)?(e.session=t,e=x.create(e)):"string"==typeof e&&(e=x.create(e,{session:t}))),e}static firstLookupRow(e){return e&&Ai.isArray(e.lookupRows)?0===e.lookupRows.length?null:e.lookupRows[0]:null}}class Ps{constructor(){this.key=null,this.text=null,this.parentKey=null,this.enabled=!0,this.active=!0,this.additionalTableRowData=null,this.cssClass=null,this.iconId=null,this.tooltipText=null,this.backgroundColor=null,this.foregroundColor=null,this.font=null}init(e){n().extend(this,e)}setKey(e){this.key=e}setText(e){this.text=e}setParentKey(e){this.parentKey=e}setCssClass(e){this.cssClass=e}setAdditionalTableRowData(e){this.additionalTableRowData=e}setIconId(e){this.iconId=e}setTooltipText(e){this.tooltipText=e}setBackgroundColor(e){this.backgroundColor=e}setForegroundColor(e){this.foregroundColor=e}setFont(e){this.font=e}equals(e){return Ai.propertiesEquals(this,e,Object.keys(this))}toString(){return"scout.LookupRow[key="+this.key+" text="+this.text+"]"}}class Fs extends xs{constructor(){super(),this.resourceUrl=null,this.maxTextLength=null,this.restriction=null,this._restriction=null,this._ajaxCall=null,this._deferred=null,this.batch=!0}addRestriction(e,t){this._restriction||(this._restriction={}),this._restriction[e]=t}_addRestrictionIfAbsent(e,t){this.restriction&&!Ai.isNullOrUndefined(this.restriction[e])||this.addRestriction(e,t)}_getAll(){return this._call()}_getByText(e){return this.addRestriction("text",e),this._call()}_getByKey(e){return this.addRestriction("ids",me.ensure(e)),this._call()}_getByKeys(e){return this.addRestriction("ids",me.ensure(e)),this._call()}cloneForAll(){let e=super.cloneForAll();return e._addRestrictionIfAbsent("active",!0),e._addRestrictionIfAbsent("maxRowCount",this.maxRowCount),e}cloneForText(e){let t=super.cloneForText(e);return t._addRestrictionIfAbsent("active",!0),t._addRestrictionIfAbsent("maxRowCount",this.maxRowCount),t}cloneForRec(e){let t=super.cloneForRec(e);return t._addRestrictionIfAbsent("active",!0),t._addRestrictionIfAbsent("maxRowCount",this.maxRowCount),t}_acceptLookupRow(e){return!0}_createLookupRowFromDo(e){let t=n().extend({},e);if(t.key=t.id,delete t.id,t.parentKey=t.parentId,delete t.parentId,delete t._type,this.maxTextLength){let e=t.text;e.length>this.maxTextLength&&(t.text=e.substr(0,this.maxTextLength)+"...",t.tooltipText=e)}return x.create("LookupRow",t,{ensureUniqueId:!1})}_call(){return this._deferred=n().Deferred(),this._ajaxCall=this._createAjaxCall(),this._ajaxCall.call().then(((e,t,i)=>{let s=me.ensure(e?e.rows:null).filter(this._acceptLookupRow.bind(this)).map(this._createLookupRowFromDo.bind(this));this._deferred.resolve({queryBy:this.queryBy,text:this.searchText,key:this.key,lookupRows:s})})).catch((e=>{this._deferred.resolve({queryBy:this.queryBy,text:this.searchText,key:this.key,lookupRows:[],exception:this.session.text("ErrorWhileLoadingData")})})),this._deferred.promise()}abort(){this._deferred.reject({canceled:!0}),this._ajaxCall.abort(),super.abort()}_getCallUrl(){return this.resourceUrl}_getRestrictionForAjaxCall(){if(!this.restriction&&!this._restriction)return null;let e=e=>"function"==typeof e?e(this):e,t={},i=n().extend({},this.restriction,this._restriction);return Object.keys(i).forEach((s=>{let r,n=i[s];Array.isArray(n)?(r=n.map(e).filter(Boolean),r=r.length?r:null):r=e(n),Ai.isNullOrUndefined(r)||(t[s]=r)})),t}_createAjaxCall(){let e=this._getCallUrl(),t=this._getRestrictionForAjaxCall(),i={type:"POST",data:t?JSON.stringify(t):null,dataType:"json",contentType:"application/json; charset=UTF-8",cache:!1,url:e,timeout:0};return x.create("AjaxCall",{ajaxOptions:i,name:"RestLookupCall",retryIntervals:[100,500,500,500]},{ensureUniqueId:!1})}}class Es extends xs{constructor(e){super(),this.adapter=e,this.deferred=null}_getAll(){return this._newDeferred(new Ds(As.ALL)),this.adapter.sendLookup(As.ALL),this.deferred.promise()}_getByText(e){return this._newDeferred(new Ds(As.TEXT,e)),this.adapter.sendLookup(As.TEXT,e),this.deferred.promise()}_getByKey(e){return this._newDeferred(new Ds(As.KEY,e)),this.adapter.sendLookup(As.KEY,e),this.deferred.promise()}_getByRec(e){return this._newDeferred(new Ds(As.REC,e)),this.adapter.sendLookup(As.REC,e),this.deferred.promise()}resolveLookup(e){if(!this._belongsToLatestRequest(e))return void(n().log.isTraceEnabled()&&n().log.trace("(RemoteLookupCall#resolveLookup) ignore lookupResult. Does not belong to latest request",Ai.optProperty(this.deferred,"requestParameter")));let t=me.ensure(e.lookupRows).map((e=>x.create("LookupRow",e)));e.lookupRows=t,this.deferred.resolve(e)}_belongsToLatestRequest(e){if(!this.deferred)return!1;let t=e.queryBy.toLowerCase(),i=e[t],s=new Ds(e.queryBy,i);return this.deferred.requestParameter.equals(s)}_newDeferred(e){this.deferred&&this.deferred.reject({canceled:!0}),this.deferred=n().Deferred(),this.deferred.requestParameter=e}}class Ds{constructor(e,t){if(!As.hasOwnProperty(e))throw new Error("Invalid enum value");this.requestType=e,this.requestData=t}equals(e){return!!(e&&e instanceof Ds)&&Ai.propertiesEquals(this,e,["requestType","requestData"])}}const As={ALL:"ALL",TEXT:"TEXT",KEY:"KEY",KEYS:"KEYS",REC:"REC"};class $s extends xs{constructor(){super(),this.delay=0,this.data=null,this.active=!0}_init(e){super._init(e),this.data||(this.data=this._data())}refreshData(e){this.data=void 0===e?this._data():e}_getAll(){let e=n().Deferred();return setTimeout(this._queryByAll.bind(this,e),this.delay),e.promise()}_queryByAll(e){e.resolve({queryBy:As.ALL,lookupRows:this._lookupRowsByAll()})}_lookupRowsByAll(){return this.data.slice(0,this.maxRowCount).map(this._dataToLookupRow,this).filter(this._filterActiveLookupRow,this)}_filterActiveLookupRow(e){return!!Ai.isNullOrUndefined(this.active)||this.active===x.nvl(e.active,!0)}_getByText(e){let t=n().Deferred();return setTimeout(this._queryByText.bind(this,t,e),this.delay),t.promise()}_queryByText(e,t){let i=this._lookupRowsByText(t);this.hierarchical||e.resolve({queryBy:As.TEXT,text:t,lookupRows:i});let s,r=new Ms(this);s=this.loadIncremental?n().resolvedPromise(i):r.addChildLookupRows(i),s.then((e=>r.addParentLookupRows(e))).done((i=>{e.resolve({queryBy:As.TEXT,text:t,lookupRows:i})})).fail((e=>{throw e}))}_lookupRowsByText(e){return this.data.filter((t=>qt.startsWith(t[1].toLowerCase(),e.toLowerCase()))).map(this._dataToLookupRow,this).filter(this._filterActiveLookupRow,this)}_getByKey(e){let t=n().Deferred();return setTimeout(this._queryByKey.bind(this,t,e),this.delay),t.promise()}_queryByKey(e,t){let i=this._lookupRowByKey(t);i?e.resolve({queryBy:As.KEY,lookupRows:[i]}):e.reject()}_lookupRowByKey(e){let t=me.find(this.data,(t=>t[0]===e));return t?this._dataToLookupRow(t):null}_getByRec(e){let t=n().Deferred();return setTimeout(this._queryByRec.bind(this,t,e),this.delay),t.promise()}_queryByRec(e,t){e.resolve({queryBy:As.REC,rec:t,lookupRows:this._lookupRowsByRec(t)})}_lookupRowsByRec(e){return this.data.reduce(((t,i)=>(i[2]===e&&t.push(this._dataToLookupRow(i)),t)),[]).filter(this._filterActiveLookupRow,this)}setDelay(e){this.delay=e}_dataToLookupRow(e){return x.create("LookupRow",{key:e[0],text:e[1],parentKey:e[2]})}_data(){return[]}}class Rs extends xs{constructor(){super(),this.lookupRows=[]}setLookupRows(e){this.lookupRows=me.ensure(e)}_filterActiveLookupRow(e){return!!x.nvl(e.active,!0)}_getAll(){let e=n().Deferred();return setTimeout(this._queryByAll.bind(this,e)),e.promise()}_queryByAll(e){e.resolve({queryBy:As.ALL,lookupRows:this._lookupRowsByAll()})}_lookupRowsByAll(){return this.lookupRows.filter(this._filterActiveLookupRow,this).slice(0,this.maxRowCount)}_getByText(e){let t=n().Deferred();return setTimeout(this._queryByText.bind(this,t,e)),t.promise()}_queryByText(e,t){e.resolve({queryBy:As.TEXT,text:t,lookupRows:this._lookupRowsByText(t)})}_lookupRowsByText(e){let t=String(x.nvl(e,"")).trim().toLowerCase();return this.lookupRows.filter((e=>qt.startsWith(x.nvl(e.text,"").toLowerCase(),t))).filter(this._filterActiveLookupRow,this).slice(0,this.maxRowCount)}_getByKey(e){let t=n().Deferred();return setTimeout(this._queryByKey.bind(this,t,e)),t.promise()}_queryByKey(e,t){let i=this._lookupRowByKey(t);i?e.resolve({queryBy:As.KEY,lookupRows:[i]}):e.reject()}_lookupRowByKey(e){return me.find(this.lookupRows,(t=>t.key===e))}_getByRec(e){let t=n().Deferred();return setTimeout(this._queryByRec.bind(this,t,e)),t.promise()}_queryByRec(e,t){e.resolve({queryBy:As.REC,rec:t,lookupRows:this._lookupRowsByRec(t)})}_lookupRowsByRec(e){return this.lookupRows.reduce(((t,i)=>(i.parentKey===e&&t.push(i),t)),[]).filter(this._filterActiveLookupRow,this).slice(0,this.maxRowCount)}}class Ms{constructor(e){x.assertParameter("lookupCall",e),this.lookupCall=e,this._lookupRowMap={}}addParentLookupRows(e){this._fillMap(e);let t=e.map(this._addParent.bind(this));return n().promiseAll(t).then((()=>Ai.values(this._lookupRowMap)))}_addParent(e){let t=e.parentKey;return t?this._lookupRowMap.hasOwnProperty(t)?(e=this._lookupRowMap[t],this._addParent(e)):this.lookupCall.cloneForKey(t).execute().then((e=>{let t=xs.firstLookupRow(e);return this._lookupRowMap[t.key]=t,this._addParent(t)})):n().resolvedPromise()}_fillMap(e){e.forEach((e=>{this._lookupRowMap[e.key]=e}))}addChildLookupRows(e){this._fillMap(e);let t=e.map(this._addChildren.bind(this));return n().promiseAll(t).then((()=>Ai.values(this._lookupRowMap)))}_addChildren(e){return this.lookupCall.cloneForRec(e.key).execute().then((e=>{if(e.lookupRows.length)return this.addChildLookupRows(e.lookupRows)}))}}class ks{constructor(){this.active,this.id,this.parent,this.children=[],this.sortCode}init(e){if(x.assertParameter("id",e.id),this.active=e.active,this.id=e.id,this.sortCode=e.sortCode,this._text=e.text,this.modelClass=e.modelClass,e.texts){if(this._text)throw new Error("Either set texts or text property, not both.");let t=zs.registerTexts(this,e.texts);this._text=mo.buildKey(t)}}text(e){let t=e;return"object"==typeof e&&(t=e.languageTag),mo.resolveText(this._text,t)}visitChildren(e){for(let t=0;t<this.children.length;t++){let i=this.children[t],s=e(i);if(!0===s||s===yu.TERMINATE)return yu.TERMINATE;if(s!==yu.SKIP_SUBTREE&&(s=i.visitChildren(e),!0===s||s===yu.TERMINATE))return yu.TERMINATE}}}class Is{constructor(){this.id,this.codes=[],this.codeMap={}}init(e){if(x.assertParameter("id",e.id),this.id=e.id,this.modelClass=e.modelClass,e.codes)for(let t=0;t<e.codes.length;t++)this._initCode(e.codes[t])}_initCode(e,t){let i=x.create(e);if(this.add(i,t),e.children)for(let t=0;t<e.children.length;t++)this._initCode(e.children[t],i)}add(e,t){this.codes.push(e),this.codeMap[e.id]=e,t&&(t.children.push(e),e.parent=t)}get(e){let t=this.optGet(e);if(!t)throw new Error("No code found for id="+e);return t}optGet(e){return this.codeMap[e]}getCodes(e){if(e){let e=[];for(let t=0;t<this.codes.length;t++)this.codes[t].parent||e.push(this.codes[t]);return e}return this.codes}visit(e){let t=this.codes.filter((e=>!e.parent));for(let i=0;i<t.length;i++){let s=t[i],r=e(s);if(!0===r||r===yu.TERMINATE)return yu.TERMINATE;if(r!==yu.SKIP_SUBTREE&&(r=s.visitChildren(e),!0===r||r===yu.TERMINATE))return yu.TERMINATE}}static ensure(e){return e?e instanceof Is?e:x.create("CodeType",e):e}}let Ls={};function Bs(e,t){if(t&&t.error)throw{error:t.error,url:e};Os(t)}function Os(e){e=e||{},Object.keys(e).forEach((t=>{Ns(e[t])}),this)}function Ns(e){(e=me.ensure(e)).forEach((e=>{e=Is.ensure(e),Ls[e.id]=e}),this)}function Hs(e,t){let i,s;if(2===t.length)i=t[0],s=t[1];else{let e=t[0].split(" ");if(2!==e.length)throw new Error('Invalid string. Must have format "[CodeType.id] [Code.id]"');i=e[0],s=e[1]}return x.assertParameter("codeTypeId",i),x.assertParameter("codeId",s),Vs(i)[e](s)}function Vs(e,t){let i=Ls[e];if(!t&&!i)throw new Error("No CodeType found for id="+e);return i}function Ws(e){return"__code."+e.id}const zs={add:Ns,bootstrap:function(e){return(e?n().ajaxJson(e):n().resolvedPromise({})).then(Bs.bind(this,e))},codeType:Vs,defaultLanguage:"en",generateTextKey:Ws,get:function(e,t){return Hs("get",Ai.argumentsToArray(arguments))},init:Os,optGet:function(e,t){return Hs("optGet",Ai.argumentsToArray(arguments))},registerTexts:function(e,t){let i=Ws(e);mo.get("default").remove(i);for(let e in t){let s=t[e];e&&"en"===e&&(e="default"),mo.get(e).add(i,s)}return i},registry:Ls,remove:function(e){(e=me.ensure(e)).forEach((e=>{let t;t="string"==typeof e?e:e.id,delete Ls[t]}),this)}};class Gs extends $s{constructor(){super(),this.codeType=null}_lookupRowByKey(e){let t=zs.codeType(this.codeType,!0);return t?this._createLookupRow(t.optGet(e)):null}_lookupRowsByAll(){return this._collectLookupRows()}_lookupRowsByText(e){return this._collectLookupRows((t=>{let i=t.text||"";return qt.startsWith(i.toLowerCase(),e.toLowerCase())}))}_lookupRowsByRec(e){return this._collectLookupRows((t=>t.parentKey===e))}_collectLookupRows(e){let t=zs.codeType(this.codeType,!0);if(!t)return[];let i=[];return t.visit((t=>{let s=this._createLookupRow(t);e&&!e(s)||i.push(s)})),i}_createLookupRow(e){return e?x.create("LookupRow",{key:e.id,text:e.text(this.session.locale),parentKey:e.parent&&e.parent.id}):null}}const Us={STOPPED:"stopped",RUNNING:"running",FAILURE:"failure"};class Ks{constructor(e){this.enabled=!!e,this.status=Us.STOPPED}setFailed(){this.status=Us.FAILURE}setRunning(){this.status=Us.RUNNING}setStopped(){this.status=Us.STOPPED}isFailed(){return this.status===Us.FAILURE}isRunning(){return this.status===Us.RUNNING}isStopped(){return this.status===Us.STOPPED}}class qs extends Y{constructor(){super(),this.cancellable=!0,this.showTimeout=2500,this.label=null,this.details=null,this.cancelButton=null,this.boxButtons=null,this.inheritAccessibility=!1,this.$content=null,this.$buttons=null,this.$label=null,this.$details=null,this._addWidgetProperties(["boxButtons","cancelButton"])}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new sn(this,[Kr.SPACE,Kr.ENTER]),new nn(this,(()=>this.cancelButton?this.cancelButton.$container:null))])}_init(e){super._init(e),this.label=x.nvl(this.label,this.session.text("ui.PleaseWait_")),this.cancellable&&(this.boxButtons=x.create("BoxButtons",{parent:this}),this.cancelButton=this.boxButtons.addButton({text:this.session.text("Cancel")}),this.cancelButton.one("action",(e=>this._onCancelClick(e))))}render(e){e=e||this.entryPoint(),super.render(e)}_render(){this.$container=this.$parent.appendDiv("busyindicator invisible");let e=this.$container.appendDiv("drag-handle");this.$container.draggable(e),this.$content=this.$container.appendDiv("busyindicator-content"),this.$label=this.$content.appendDiv("busyindicator-label"),this.$details=this.$content.appendDiv("busyindicator-details"),this.cancellable?(this.boxButtons.render(),this.$buttons=this.boxButtons.$container,this.$buttons.addClass("busyindicator-buttons")):this.$content.addClass("no-buttons"),this._renderLabel(),this._renderDetails(),this.$container.addClass("calc-helper"),this.$container.css("min-width",this.$container.width()),this.$container.removeClass("calc-helper"),this._position(),this._busyIndicatorTimeoutId=setTimeout((()=>{this.$container.removeClass("invisible").addClassForAnimation("animate-open"),this.session.focusManager.validateFocus()}),this.showTimeout),this._glassPaneRenderer=new Tn(this),this._glassPaneRenderer.renderGlassPanes(),this._glassPaneRenderer.eachGlassPane((e=>{e.addClass("busy")}))}_postRender(){super._postRender(),this.session.focusManager.installFocusContext(this.$container,wn.AUTO)}_remove(){clearTimeout(this._busyIndicatorTimeoutId),this._glassPaneRenderer.eachGlassPane((e=>{e.removeClass("busy")})),this._glassPaneRenderer.removeGlassPanes(),this.session.focusManager.uninstallFocusContext(this.$container),super._remove()}setLabel(e){this.setProperty("label",e)}_renderLabel(){this.$label.text(this.label||"")}setDetails(e){this.setProperty("details",e)}_renderDetails(){this.$details.html(qt.nl2br(this.details)).setVisible(!!this.details)}_position(){this.$container.cssMarginLeft(-this.$container.outerWidth()/2)}close(){this.cancelButton&&this.cancelButton.$container&&this.session.focusManager.requestFocus(this.cancelButton.$container)&&(this.cancelButton.$container.focus(),this.cancelButton.doAction())}_onCancelClick(e){this.trigger("cancel",e)}cancelled(){this.rendered&&(this.$label.addClass("cancelled"),this.$buttons&&this.$buttons.remove(),this.$content.addClass("no-buttons"))}}class js{constructor(e,t,i){x.assertParameter("target",e),x.assertParameter("type",t),n().extend(this,i),this.target=e,this.type=t}}class Ys{constructor(e){e=x.nvl(e,Ys.DEFAULT),this.languageTag=e.languageTag;let t=Rt.splitLanguageTag(this.languageTag);this.language=t[0],this.country=t[1],this.displayLanguage=e.displayLanguage,this.displayCountry=e.displayCountry,this.decimalFormatPatternDefault=e.decimalFormatPatternDefault,this.decimalFormatSymbols=e.decimalFormatSymbols,this.decimalFormatPatternDefault&&this.decimalFormatSymbols&&(this.decimalFormat=new to(e)),this.dateFormatPatternDefault=e.dateFormatPatternDefault,this.dateFormatSymbols=e.dateFormatSymbols,this.timeFormatPatternDefault=e.timeFormatPatternDefault,this.dateFormatPatternDefault&&this.dateFormatSymbols&&(this.dateFormat=new eo(e))}static ensure(e){return e?e instanceof Ys?e:new Ys(e):e}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Ys,"DEFAULT",{languageTag:"en-US",decimalFormatPatternDefault:"#,##0.###",dateFormatPatternDefault:"MM/dd/yyyy",timeFormatPatternDefault:"h:mm a",decimalFormatSymbols:{decimalSeparator:".",groupingSeparator:",",minusSign:"-"},dateFormatSymbols:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],am:"AM",pm:"PM"}});class Xs{constructor(){this._filterProperties={},this._propertiesFilter=this._propertiesFilter.bind(this),this.filters=[this._propertiesFilter]}addFilterForProperties(e){Ai.copyProperties(e,this._filterProperties)}addFilter(e){this.filters.push(e)}filter(e,t){return this.filters.some((i=>i(e,t)))}addFilterForPropertyName(e){this.filters.push(((t,i)=>t===e))}_propertiesFilter(e,t){if(!this._filterProperties.hasOwnProperty(e))return!1;let i=this._filterProperties[e];return Ai.equals(i,t)}reset(){this._filterProperties={},this.filters=[this._propertiesFilter]}}class Js{constructor(e){this.session=e,this.started=!1,this.initialDelay=1e3,this.interval=3e3,this.minPingDuration=1e3}start(){this.started||(n().log.isTraceEnabled()&&n().log.trace("[ajax reconnector] start"),this.started=!0,this._schedulePing(this.initialDelay))}stop(){this.started=!1}_schedulePing(e){n().log.isTraceEnabled()&&n().log.trace("[ajax reconnector] schedule ping() in "+e+" ms"),setTimeout(this._ping.bind(this),e)}_ping(){this.session.onReconnecting();let e=this.session.defaultAjaxOptions({ping:!0});n().log.isTraceEnabled()&&n().log.trace("[ajax reconnector] "+e.type+' "'+e.url+'"'),this.pingStartTimestamp=Date.now(),n().ajax(e).done(this._onPingDone.bind(this)).fail(this._onPingFail.bind(this))}_onPingDone(e,t,i){n().log.isTraceEnabled()&&n().log.trace("[ajax reconnector] ping success -> connection re-established!"),this.session.onReconnectingSucceeded(),this.stop()}_onPingFail(e,t,i){let s=function(){n().log.isTraceEnabled()&&n().log.trace("[ajax reconnector] ping failed"),this.session.onReconnectingFailed(),this._schedulePing(this.interval)}.bind(this),r=Date.now()-this.pingStartTimestamp;r<this.minPingDuration?setTimeout(s,this.minPingDuration-r):s()}}class Zs{constructor(e){this.session=e,this.queue=[],this.lastProcessedSequenceNo=0,this.nextExpectedSequenceNo=1,this.force=!1,this.forceTimeoutId=null}add(e){let t=e&&e["#"];if(!(t&&t<=this.lastProcessedSequenceNo))if(t&&e.combined&&(this.lastProcessedSequenceNo=Math.max(t-1,this.lastProcessedSequenceNo),this.nextExpectedSequenceNo=Math.max(t,this.nextExpectedSequenceNo)),t&&0!==this.queue.length){let i=[],s=e;for(let r=0;r<this.queue.length;r++){let n=this.queue[r];n["#"]&&(s&&n["#"]>t&&(i.push(e),s=null),n["#"]<=this.lastProcessedSequenceNo)||i.push(n)}s&&i.push(s),this.queue=i}else this.queue.push(e)}process(e){e&&this.add(e);let t=!0,i=!1,s=[];for(let r=0;r<this.queue.length;r++){let n=this.queue[r],o=n["#"];if(o&&(!this.nextExpectedSequenceNo||this.force||i||(i=this.nextExpectedSequenceNo!==o),i)){s.push(n);continue}let l=this.session.processJsonResponseInternal(n);e&&n===e&&(t=l),o&&(this.lastProcessedSequenceNo=o,this.nextExpectedSequenceNo=o+1)}return this.queue=s,this._checkTimeout(),t}size(){return this.queue.length}_checkTimeout(){0===this.queue.length?(clearTimeout(this.forceTimeoutId),this.forceTimeoutId=null):this.forceTimeoutId||(this.forceTimeoutId=setTimeout((()=>{try{let e="[";for(let t=0;t<this.queue.length;t++)t>0&&(e+=", "),e+=qt.box("#",this.queue[t]["#"])||"<none>";e+="]",this.session.sendLogRequest("Expected response #"+this.nextExpectedSequenceNo+" still missing after "+Zs.FORCE_TIMEOUT+" ms. Forcing response queue to process "+this.size()+" elements: "+e)}catch(e){}this.force=!0;try{this.process()}finally{this.force=!1,this.forceTimeoutId=null}}),Zs.FORCE_TIMEOUT))}prepareRequest(e){e["#ACK"]=this.lastProcessedSequenceNo}prepareHttpRequest(e){e.headers=e.headers||{},e.headers["X-Scout-#ACK"]=this.lastProcessedSequenceNo}}function Qs(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Zs,"FORCE_TIMEOUT",1e4);class er{constructor(){this.$entryPoint=null,this.partId=0,this.url=new ss,this.userAgent=new tr({deviceType:Qe.get().type,touch:Qe.get().supportsOnlyTouch(),standalone:Qe.get().isStandalone()}),this.locale=new Ys,this.textMap=new io,this.ready=!1,this.unloading=!1,this.unloaded=!1,this.loggedOut=!1,this.inspector=!1,this.persistent=!1,this.inDevelopmentMode=!1,this.desktop=null,this.layoutValidator=new yr,this.focusManager=null,this.keyStrokeManager=null,this.uiSessionId=null,this.clientSessionId=this._getClientSessionIdFromStorage(),this.forceNewClientSession=!1,this.remoteUrl="json",this.unloadUrl="unload",this.modelAdapterRegistry={},this.ajaxCalls=[],this.asyncEvents=[],this.responseQueue=new Zs(this),this.requestsPendingCounter=0,this.suppressErrors=!1,this.requestTimeoutCancel=5e3,this.requestTimeoutPoll=75e3,this.requestTimeoutPing=5e3,this.backgroundJobPollingSupport=new Ks(!0),this.reconnector=new Js(this),this.processingEvents=!1,this.adapterExportEnabled=!1,this._adapterDataCache={},this._busy=!1,this._busyIndicator=null,this._busyIndicatorTimeoutId=null,this._deferred=null,this._fatalMessagesOnScreen={},this._retryRequest=null,this._queuedRequest=null,this.requestSequenceNo=0,this.rootAdapter=new j,this.rootAdapter.init({session:this,id:"1",objectType:"RootAdapter"});let e=new Q;e.session=this,e.initialized=!0,this.root=this.rootAdapter.createWidget({session:this,id:"1",objectType:"NullWidget"},e),this.events=this._createEventSupport()}init(e){let t=e||{};if(!t.$entryPoint)throw new Error("$entryPoint is not defined");this.$entryPoint=t.$entryPoint,this.partId=x.nvl(t.portletPartId,this.partId),this.forceNewClientSession=x.nvl(this.url.getParameter("forceNewClientSession"),t.forceNewClientSession),this.forceNewClientSession?this.clientSessionId=null:this.clientSessionId=x.nvl(t.clientSessionId,this.clientSessionId),this.userAgent=x.nvl(t.userAgent,this.userAgent),this.suppressErrors=x.nvl(t.suppressErrors,this.suppressErrors),t.locale&&(this.locale=Ys.ensure(t.locale),this.textMap=mo.get(this.locale.languageTag)),!1===t.backgroundJobPollingEnabled&&(this.backgroundJobPollingSupport.enabled=!1),n().extend(this.reconnector,t.reconnectorOptions),this.ajaxCallOptions=t.ajaxCallOptions,"true"!==this.url.getParameter("debug")&&"true"!==this.url.getParameter("inspector")||(this.inspector=!0),"true"===this.url.getParameter("adapterExportEnabled")&&(this.adapterExportEnabled=!0),this.focusManager=new _n({session:this,active:t.focusManagerActive}),this.keyStrokeManager=x.create("KeyStrokeManager",{session:this})}_throwError(e){if(!this.suppressErrors)throw new Error(e)}unregisterModelAdapter(e){delete this.modelAdapterRegistry[e.id]}registerModelAdapter(e){if(void 0===e.id)throw new Error("modelAdapter.id must be defined");this.modelAdapterRegistry[e.id]=e}getModelAdapter(e){return this.modelAdapterRegistry[e]}getWidget(e){if(!e)return null;if("string"!=typeof e)throw new Error("typeof adapterId must be string");let t=this.getModelAdapter(e);return t?t.widget:null}getOrCreateWidget(e,t,i){if(!e)return null;if("string"!=typeof e)throw new Error("typeof adapterId must be string");let s=this.getWidget(e);if(s)return s;let r=this._getAdapterData(e);if(!r){if(x.nvl(i,!0))throw new Error("no adapterData found for adapterId="+e);return null}return this.createModelAdapter(r).createWidget(r,t)}createModelAdapter(e){let t=e.objectType,i={},s=O.parse(t);s.modelVariant?(t=s.objectType.toString()+"Adapter"+H.MODEL_VARIANT_SEPARATOR+s.modelVariant.toString(),i.variantLenient=!0):t=s.objectType.toString()+"Adapter";let r={id:e.id,session:this},o=x.create(t,r,i);return n().log.isTraceEnabled()&&n().log.trace("created new adapter "+o),o}sendEvent(e,t){t=t||0,this.asyncEvents=this._coalesceEvents(this.asyncEvents,e),this.asyncEvents.push(e),this._asyncDelay=Math.min(t,x.nvl(this._asyncDelay,t)),clearTimeout(this._sendTimeoutId),this._sendTimeoutId=setTimeout((()=>{this._sendTimeoutId=null,this._asyncDelay=null,this.areRequestsPending()||this._sendNow()}),this._asyncDelay)}_sendStartupRequest(){let e=this._newRequest({startup:!0});this.partId&&(e.partId=this.partId),this.clientSessionId&&(e.clientSessionId=this.clientSessionId),E.get().version&&(e.version=E.get().version),e.userAgent=this.userAgent,e.sessionStartupParams=this._createSessionStartupParams();let t=this.defaultAjaxOptions(e);return n().ajax(t).catch(function(t,i,s){this._processErrorResponse(t,i,s,e);for(var r=arguments.length,o=new Array(r>3?r-3:0),l=3;l<r;l++)o[l-3]=arguments[l];return n().rejectedPromise(t,i,s,...o)}.bind(this)).then(function(e){if(this._processStartupResponse(e),e.error)return n().rejectedPromise(e)}.bind(this))}_createSessionStartupParams(){let e={url:this.url.baseUrlRaw,geolocationServiceAvailable:Qe.get().supportsGeolocation()},t=this.url.parameterMap;for(let i in t)e[i]=t[i];return e}_processStartupResponse(e){if(e.error)return void this._processErrorJsonResponse(e.error);if(gs.removeItemFromSessionStorage("scout:versionMismatch"),!e.startupData)throw new Error("Missing startupData");if(this.persistent=e.startupData.persistent,this.inDevelopmentMode=!!e.startupData.inDevelopmentMode,this.clientSessionId=e.startupData.clientSessionId,this._storeClientSessionIdInStorage(this.clientSessionId),this.uiSessionId=e.startupData.uiSessionId,n()(window).on("beforeunload."+this.uiSessionId,this._onWindowBeforeUnload.bind(this)).on("unload."+this.uiSessionId,this._onWindowUnload.bind(this)),e.startupData.reloadPage)return void x.reloadPage();e.startupData.inspector&&(this.inspector=!0),this.requestTimeoutPoll=1e3*(e.startupData.pollingInterval+15),this.modelAdapterRegistry[this.uiSessionId]=this,e.adapterData&&this._copyAdapterData(e.adapterData),this.locale=new Ys(e.startupData.locale),this.textMap=mo.get(this.locale.languageTag),this.textMap.addAll(e.startupData.textMap);let t=this._getAdapterData(e.startupData.clientSession);this.desktop=this.getOrCreateWidget(t.desktop,this.rootAdapter.widget),E.get()._triggerDesktopReady(this.desktop);let i=function(){if(this._renderDesktop(),e.events){this.processingEvents=!0;try{this._processEvents(e.events)}finally{this.processingEvents=!1}}this.layoutValidator.validate(),this.focusManager.validateFocus(),this._resumeBackgroundJobPolling(),this.ready=!0,E.get()._triggerSessionReady(this),n().log.isInfoEnabled()&&n().log.info("Session initialized. Detected "+Qe.get()),n().log.isDebugEnabled()&&(n().log.isDebugEnabled()&&n().log.debug("size of _adapterDataCache after session has been initialized: "+Ai.countOwnProperties(this._adapterDataCache)),n().log.isDebugEnabled()&&n().log.debug("size of modelAdapterRegistry after session has been initialized: "+Ai.countOwnProperties(this.modelAdapterRegistry)))}.bind(this);this.render(i)}_storeClientSessionIdInStorage(e){let t="scout:clientSessionId";gs.removeItemFromSessionStorage(t),gs.removeItemFromLocalStorage(t),this.persistent?gs.setItemToLocalStorage(t,e):gs.setItemToSessionStorage(t,e)}_getClientSessionIdFromStorage(){let e="scout:clientSessionId",t=gs.getItemFromSessionStorage(e);return t||(t=gs.getItemFromLocalStorage(e)),t}render(e){bt.loadingComplete?e():bt.preloader().then(e)}_sendUnloadRequest(){let e=this._newRequest({unload:!0,showBusyIndicator:!1});this._sendRequest(e)}_sendNow(){if(0===this.asyncEvents.length)return;let e=[];this.asyncEvents.some(((t,i)=>!!(t.newRequest&&e.length>0)||(e.push(t),!1)));let t=this._newRequest({events:e});t.showBusyIndicator=t.events.some((e=>x.nvl(e.showBusyIndicator,!0))),this.responseQueue.prepareRequest(t),this._sendRequest(t),this.asyncEvents=this.asyncEvents.slice(e.length)}_coalesceEvents(e,t){if(!t.coalesce)return e;let i=n().negate(t.coalesce).bind(t);return e.filter(i)}_sendRequest(e){if(!e)return;if(this.loggedOut)return;if(this.offline&&!e.unload)return void this._handleSendWhenOffline(e);if(e.unload&&navigator.sendBeacon)return void navigator.sendBeacon(this.unloadUrl+"/"+this.uiSessionId,"");let t=this.defaultAjaxOptions(e),i=x.nvl(e.showBusyIndicator,!0);e.unload&&(t.async=!1),this._performUserAjaxRequest(t,i,e)}_handleSendWhenOffline(e){e.events&&(this._queuedRequest?this._queuedRequest.events?(e.events.forEach((e=>{this._queuedRequest.events=this._coalesceEvents(this._queuedRequest.events,e)})),this._queuedRequest.events=this._queuedRequest.events.concat(e.events)):this._queuedRequest.events=e.events:this._queuedRequest=e,this.layoutValidator.validate())}defaultAjaxOptions(e){e=e||this._newRequest();let t={type:"POST",dataType:"json",contentType:"application/json; charset=UTF-8",cache:!1,url:this._decorateUrl(this.remoteUrl,e),data:this._requestToJson(e),timeout:0};return e.cancel&&(t.timeout=this.requestTimeoutCancel),e.ping&&(t.timeout=this.requestTimeoutPing),e.pollForBackgroundJobs&&(t.timeout=this.requestTimeoutPoll),t}_decorateUrl(e,t){let i=null;return t.unload?i="unload":t.pollForBackgroundJobs?i="poll":t.ping?i="ping":t.cancel?i="cancel":t.log?i="log":t.syncResponseQueue&&(i="sync"),i&&(e=new ss(e).addParameter(i).toString()),e}_getRequestName(e,t){if(e){if(e.unload)return"unload";if(e.pollForBackgroundJobs)return"pollForBackgroundJobs";if(e.ping)return"ping";if(e.cancel)return"cancel";if(e.log)return"log";if(e.syncResponseQueue)return"syncResponseQueue"}return t}_requestToJson(e){return JSON.stringify(e,(function(t,i){return this===e&&"showBusyIndicator"===t||this instanceof js&&x.isOneOf(t,"showBusyIndicator","coalesce","newRequest")?void 0:i}))}_callAjax(e){let t=x.create("AjaxCall",n().extend({retryIntervals:[100,500,500,500]},e,this.ajaxCallOptions),{ensureUniqueId:!1});return this.registerAjaxCall(t),t.call().always(this.unregisterAjaxCall.bind(this,t))}_performUserAjaxRequest(e,t,i){t&&this.setBusy(!0),this.setRequestPending(!0);let s=null,r=!1;this._callAjax({ajaxOptions:e,request:i,name:this._getRequestName(i,"user request")}).done(function(e){try{t&&!this.areBusyIndicatedEventsQueued()&&this.setBusy(!1),r=this.responseQueue.process(e)}catch(e){s=s||e}}.bind(this)).fail(function(e){try{t&&this.setBusy(!1),this._processErrorResponse(e.jqXHR,e.textStatus,e.errorThrown,i)}catch(e){s=s||e}}.bind(this)).always(function(e,t,i){if(this.setRequestPending(!1),r){if(this._resumeBackgroundJobPolling(),this._fireRequestFinished(e),this._retryRequest){let e=this._retryRequest;this._retryRequest=null,this.responseQueue.prepareRequest(e),this._sendRequest(e)}else if(this._queuedRequest){let e=this._queuedRequest;this._queuedRequest=null,this.responseQueue.prepareRequest(e),this._sendRequest(e)}this._sendTimeoutId||this._sendNow()}else this.setBusy(!1);if(this.layoutValidator.validate(),s)throw s}.bind(this))}registerAjaxCall(e){this.ajaxCalls.push(e)}unregisterAjaxCall(e){me.remove(this.ajaxCalls,e)}interruptAllAjaxCalls(){this.ajaxCalls.slice().forEach((e=>{e.pendingCall&&e.pendingCall.abort()}))}abortAllAjaxCalls(){this.ajaxCalls.slice().forEach((e=>{e.abort()}))}_resumeBackgroundJobPolling(){this.backgroundJobPollingSupport.enabled&&this.backgroundJobPollingSupport.status!==Us.RUNNING&&(n().log.isInfoEnabled()&&n().log.info("Resume background jobs polling request, status was="+this.backgroundJobPollingSupport.status),this._pollForBackgroundJobs())}_pollForBackgroundJobs(){this.backgroundJobPollingSupport.setRunning();let e=this._newRequest({pollForBackgroundJobs:!0});this.responseQueue.prepareRequest(e);let t=this.defaultAjaxOptions(e);this._callAjax({ajaxOptions:t,request:e,name:this._getRequestName(e,"request")}).done(function(e){if(e.error)n().log.warn("Polling request failed. Interrupt polling until the next user-initiated request succeeds"),this.backgroundJobPollingSupport.setFailed(),this.areRequestsPending()?this.responseQueue.add(e):this.responseQueue.process(e);else if(e.sessionTerminated)n().log.info("Session terminated, stopped polling for background jobs"),this.backgroundJobPollingSupport.setStopped(),!this.loggedOut&&e.redirectUrl&&this.logout(e.redirectUrl);else try{this.areRequestsPending()?this.responseQueue.add(e):(this.responseQueue.process(e),this.layoutValidator.validate()),setTimeout(this._pollForBackgroundJobs.bind(this))}catch(e){throw this.backgroundJobPollingSupport.setFailed(),e}}.bind(this)).fail(function(t){this.backgroundJobPollingSupport.setFailed(),this._processErrorResponse(t.jqXHR,t.textStatus,t.errorThrown,e)}.bind(this))}processJsonResponseInternal(e){let t=!1;return e.error?this._processErrorJsonResponse(e.error):(this._processSuccessResponse(e),t=!0),t}_processSuccessResponse(e){if(e.adapterData&&this._copyAdapterData(e.adapterData),e.events){this.processingEvents=!0;try{this._processEvents(e.events)}finally{this.processingEvents=!1}}if(n().log.isDebugEnabled()){let e=Ai.countOwnProperties(this._adapterDataCache);n().log.trace("size of _adapterDataCache after response has been processed: "+e),e=Ai.countOwnProperties(this.modelAdapterRegistry),n().log.trace("size of modelAdapterRegistry after response has been processed: "+e)}}_copyAdapterData(e){let t,i=0;for(t in e)this._adapterDataCache[t]=e[t],i++;i>0&&n().log.isTraceEnabled()&&n().log.trace("Stored "+i+" properties in adapterDataCache")}_processErrorResponse(e,t,i,s){if(n().log.error("errorResponse: status="+e.status+", textStatus="+t+", errorThrown="+i),Ts.isOfflineError(e,t,i,s)){if(this.ready)return this.goOffline(),void(!s||s.pollForBackgroundJobs||this._retryRequest||(this._retryRequest=s));i=i||this.optText("ui.ConnectionInterrupted","Connection interrupted")}let r={header:this.optText("ui.NetworkError","Network error"),body:qt.join(" ",e.status||"",i),yesButtonText:this.optText("ui.Reload","Reload"),yesButtonAction:()=>x.reloadPage(),iconId:Ct.SLIPPERY};this.showFatalMessage(r,e.status+".net")}_processErrorJsonResponse(e){if(e.code===er.JsonResponseError.VERSION_MISMATCH){if(!gs.getItemFromSessionStorage("scout:versionMismatch"))return gs.setItemToSessionStorage("scout:versionMismatch","yes"),void x.reloadPage();gs.removeItemFromSessionStorage("scout:versionMismatch")}if(this.loggedOut)return;let t={header:this.optText("ui.ServerError","Server error")+" ("+this.optText("ui.ErrorCodeX","Code "+e.code,e.code)+")",body:e.message,yesButtonText:this.optText("ui.Reload","Reload"),yesButtonAction:()=>{x.reloadPage()}};e.code===er.JsonResponseError.STARTUP_FAILED?(t.header=e.message,t.body=null,t.yesButtonText="Retry",t.iconId=Ct.SLIPPERY):e.code===er.JsonResponseError.SESSION_TIMEOUT?(t.header=this.optText("ui.SessionTimeout",t.header),t.body=this.optText("ui.SessionExpiredMsg",t.body),t.iconId=Ct.HOURGLASS):e.code===er.JsonResponseError.UI_PROCESSING?(t.header=this.optText("ui.UnexpectedProblem",t.header),t.body=qt.join("\n\n",this.optText("ui.InternalProcessingErrorMsg",t.body," ("+this.optText("ui.ErrorCodeX","Code 20","20")+")"),this.optText("ui.UiInconsistentMsg","")),t.iconId=Ct.SLIPPERY,this.inDevelopmentMode&&(t.noButtonText=this.optText("ui.Ignore","Ignore"))):e.code===er.JsonResponseError.UNSAFE_UPLOAD?(t.header=this.optText("ui.UnsafeUpload",t.header),t.body=this.optText("ui.UnsafeUploadMsg",t.body),t.yesButtonText=this.optText("ui.Ok","Ok"),t.yesButtonAction=()=>{}):e.code===er.JsonResponseError.REJECTED_UPLOAD&&(t.header=this.optText("ui.RejectedUpload",t.header),t.body=this.optText("ui.RejectedUploadMsg",t.body),t.yesButtonText=this.optText("ui.Ok","Ok"),t.yesButtonAction=()=>{}),this.showFatalMessage(t,e.code)}_fireRequestFinished(e){if(this._deferred){if(e.events)for(let t=0;t<e.events.length;t++)this._deferredEventTypes.push(e.events[t].type);0===this.requestsPendingCounter&&(this._deferred.resolve(this._deferredEventTypes),this._deferred=null,this._deferredEventTypes=null)}}showFatalMessage(e,t){if(t){if(this._fatalMessagesOnScreen[t])return;this._fatalMessagesOnScreen[t]=!0}e=e||{};let i={session:this,parent:this.desktop||new Q,iconId:e.iconId,severity:x.nvl(e.severity,Ii.Severity.ERROR),header:e.header,body:e.body,hiddenText:e.hiddenText,yesButtonText:e.yesButtonText,noButtonText:e.noButtonText,cancelButtonText:e.cancelButtonText},s=x.create("MessageBox",i),r=e.entryPoint||this.$entryPoint;s.on("action",(i=>{delete this._fatalMessagesOnScreen[t],s.destroy();let r=i.option;"yes"===r&&e.yesButtonAction?e.yesButtonAction.apply(this):"no"===r&&e.noButtonAction?e.noButtonAction.apply(this):"cancel"===r&&e.cancelButtonAction&&e.cancelButtonAction.apply(this)})),s.render(r)}uploadFiles(e,t,i,s,r){let o=new FormData,l=[];if(i&&n().each(i,((e,t)=>{o.append(e,t)})),n().each(t,((e,t)=>{if(!r||0===r.length||x.isOneOf(t.type,r)){let e=x.nvl(t.scoutName,t.name,er.EMPTY_UPLOAD_FILENAME);o.append("files",t,e),l.push(t)}})),s=x.nvl(s,aa.DEFAULT_MAXIMUM_UPLOAD_SIZE),!Xe.validateMaximumUploadSize(l,s)){let e={header:this.text("ui.FileSizeLimitTitle"),body:this.text("ui.FileSizeLimit",s/1024/1024),yesButtonText:this.optText("Ok","Ok")};return this.showFatalMessage(e),!1}let a={type:"POST",url:"upload/"+this.uiSessionId+"/"+e.id,cache:!1,processData:!1,contentType:!1,data:o};o.polyfill&&o.applyToAjaxOptions(a),this.responseQueue.prepareHttpRequest(a);let h=!this.areRequestsPending();return this._performUserAjaxRequest(a,h),!0}goOffline(){this.offline||(this.offline=!0,this.abortAllAjaxCalls(),setTimeout((()=>{this.unloading||this.unloaded||(this.rootAdapter.goOffline(),this.reconnector.start())}),100))}goOnline(){this.offline=!1,this.rootAdapter.goOnline();let e=this._newRequest({syncResponseQueue:!0});this.responseQueue.prepareRequest(e),this._sendRequest(e)}onReconnecting(){this.desktop&&this.desktop.onReconnecting()}onReconnectingSucceeded(){this.desktop&&this.desktop.onReconnectingSucceeded(),this.goOnline()}onReconnectingFailed(){this.desktop&&this.desktop.onReconnectingFailed()}listen(){return this._deferred||(this._deferred=n().Deferred(),this._deferredEventTypes=[]),this._deferred}onRequestsDone(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];this.areRequestsPending()||this.areEventsQueued()?this.listen().done((function(){e.apply(this,i)})):e.apply(this,i)}onEventsProcessed(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];function r(){e.apply(this,i)}this.processingEvents?this.one("eventsProcessed",r):r()}areEventsQueued(){return this.asyncEvents.length>0}areBusyIndicatedEventsQueued(){return this.asyncEvents.some((e=>x.nvl(e.showBusyIndicator,!0)))}areResponsesQueued(){return this.responseQueue.size()>0}areRequestsPending(){return this.requestsPendingCounter>0}setRequestPending(e){e?this.requestsPendingCounter++:this.requestsPendingCounter--,this.inspector&&this.$entryPoint.toggleAttr("data-request-pending",e,"true")}setBusy(e){e?(this._busy||this._renderBusy(),this._busy=!0):(this._busy&&this._removeBusy(),this._busy=!1)}_renderBusy(){null!==this._busyIndicatorTimeoutId&&void 0!==this._busyIndicatorTimeoutId||(this._busyIndicatorTimeoutId=setTimeout((()=>{this._busyIndicator||this.desktop&&this.desktop.rendered&&(this._busyIndicator=x.create("BusyIndicator",{parent:this.desktop}),this._busyIndicator.on("cancel",this._onCancelProcessing.bind(this)),this._busyIndicator.render(this.$entryPoint))}),500))}_removeBusy(){clearTimeout(this._busyIndicatorTimeoutId),this._busyIndicatorTimeoutId=null,this._busyIndicator&&(this._busyIndicator.destroy(),this._busyIndicator=null)}_onCancelProcessing(e){let t=this._busyIndicator;t&&(t.off("cancel"),setTimeout((()=>{t.cancelled()}),100),this._sendCancelRequest())}_sendCancelRequest(){let e=this._newRequest({cancel:!0,showBusyIndicator:!1});this._sendRequest(e)}sendLogRequest(e,t){let i=this._newRequest({log:!0,message:e,level:x.nvl(t,ti.Level.ERROR)});this.currentEvent&&(i.event={target:this.currentEvent.target,type:this.currentEvent.type}),n().ajax(this.defaultAjaxOptions(i))}_newRequest(e){let t=n().extend({uiSessionId:this.uiSessionId},e);return t.log||t.syncResponseQueue||(t["#"]=this.requestSequenceNo++),t}_processEvents(e){let t=0;for(;t<e.length;){let i=e[t];this.currentEvent=i;let s=this.getModelAdapter(i.target);s?(e.splice(t,1),t=0,n().log.isDebugEnabled()&&n().log.debug("Processing event '"+i.type+"' for adapter with ID "+i.target),s.onModelEvent(i),s.resetEventFilters()):(n().log.isDebugEnabled()&&n().log.debug("Postponing '"+i.type+"' for adapter with ID "+i.target),t++)}if(this.currentEvent=null,e.length)throw new Error("Could not resolve event targets: ["+e.map((e=>{let t="target: "+e.target+", type: "+e.type;return e.properties&&(t+=", properties: "+Object.keys(e.properties)),'"'+t+'"'}),this).join(", ")+"]");this.trigger("eventsProcessed")}start(){return n().log.isInfoEnabled()&&n().log.info("Session starting..."),this._sendStartupRequest()}onModelEvent(e){"localeChanged"===e.type?this._onLocaleChanged(e):"logout"===e.type?this._onLogout(e):"disposeAdapter"===e.type?this._onDisposeAdapter(e):"reloadPage"===e.type?this._onReloadPage(e):n().log.warn('Model action "'+e.type+'" is not supported by UI session')}resetEventFilters(){}_onLocaleChanged(e){let t=new Ys(e.locale),i=new io(e.textMap);this.switchLocale(t,i)}switchLocale(e,t){x.assertParameter("locale",e,Ys),this.locale=e,this.textMap=mo.get(e.languageTag),t&&Ai.copyOwnProperties(t,this.textMap),this.trigger("localeSwitch",{locale:this.locale})}_renderDesktop(){this.desktop.render(this.$entryPoint),this.desktop.invalidateLayoutTree(!1)}_onLogout(e){this.logout(e.redirectUrl)}logout(e){if(this.loggedOut=!0,this.forceNewClientSession)this.desktop.$container.window(!0).close();else{let t=new ss;t.removeParameter("dl"),t.removeParameter("i"),gs.setItemToSessionStorage("scout:loginUrl",t.toString()),setTimeout((()=>{x.reloadPage({redirectUrl:e})}))}}_onDisposeAdapter(e){let t=this.getModelAdapter(e.adapter);t&&t.destroy()}_onReloadPage(e){x.reloadPage({clearBody:!1})}_onWindowBeforeUnload(){n().log.isInfoEnabled()&&n().log.info("Session before unloading..."),this.unloading=!0,setTimeout((()=>{this.unloading=!1}),200)}_onWindowUnload(){n().log.isInfoEnabled()&&n().log.info("Session unloading..."),this.unloaded=!0,this.desktop&&this.desktop.formController&&this.desktop.formController.closePopupWindows(),this.loggedOut||this._sendUnloadRequest(),this.loggedOut&&this.persistent&&gs.removeItemFromLocalStorage("scout:clientSessionId")}_getAdapterData(e){let t=this._adapterDataCache[e];return!this.adapterExportEnabled&&delete this._adapterDataCache[e],t}getAdapterData(e){return this._adapterDataCache[e]}text(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];return this.textMap.get(e,...i)}optText(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r<i;r++)s[r-2]=arguments[r];return this.textMap.optGet(e,t,...s)}textExists(e){return this.textMap.exists(e)}_createEventSupport(){return new dt}trigger(e,t){(t=t||{}).source=this,this.events.trigger(e,t)}one(e,t){this.events.one(e,t)}on(e,t){return this.events.on(e,t)}off(e,t){this.events.off(e,t)}addListener(e){this.events.addListener(e)}removeListener(e){this.events.removeListener(e)}when(e){return this.events.when(e)}}Qs(er,"JsonResponseError",{STARTUP_FAILED:5,SESSION_TIMEOUT:10,UI_PROCESSING:20,UNSAFE_UPLOAD:30,REJECTED_UPLOAD:31,VERSION_MISMATCH:40}),Qs(er,"EMPTY_UPLOAD_FILENAME","*empty*");class tr{constructor(e){if(!(e=e||{}).deviceType)throw new Error("deviceType needs to be defined");this.deviceType=e.deviceType,this.touch=x.nvl(e.touch,!1),this.standalone=x.nvl(e.standalone,!1)}}class ir{constructor(){this.filters=[]}addFilter(e){this.filters.push(e)}addFilterForEventType(e){this.filters.push((t=>t.type===e))}filter(e){return this.filters.some((t=>t(e)))}reset(){this.filters=[]}}class sr{constructor(e,t){e instanceof sr?(this.width=e.width,this.height=e.height):(this.width=e||0,this.height=t||0)}toString(){return"Dimension[width="+this.width+" height="+this.height+"]"}equals(e){return!!e&&(this.width===e.width&&this.height===e.height)}clone(){return new sr(this.width,this.height)}subtract(e){return new sr(this.width-e.horizontal(),this.height-e.vertical())}add(e){return new sr(this.width+e.horizontal(),this.height+e.vertical())}floor(){return new sr(Math.floor(this.width),Math.floor(this.height))}ceil(){return new sr(Math.ceil(this.width),Math.ceil(this.height))}}class rr{constructor(e,t,i,s){e instanceof rr?(this.top=e.top,this.right=e.right,this.bottom=e.bottom,this.left=e.left):(this.top=e||0,this.right=t||0,this.bottom=i||0,this.left=s||0)}toString(){return"Insets[top="+this.top+" right="+this.right+" bottom="+this.bottom+" left="+this.left+"]"}equals(e){return this.top===e.top&&this.right===e.right&&this.bottom===e.bottom&&this.left===e.left}clone(){return new rr(this.top,this.right,this.bottom,this.left)}horizontal(){return this.right+this.left}vertical(){return this.top+this.bottom}floor(){return new rr(Math.floor(this.top),Math.floor(this.right),Math.floor(this.bottom),Math.floor(this.left))}ceil(){return new rr(Math.ceil(this.top),Math.ceil(this.right),Math.ceil(this.bottom),Math.ceil(this.left))}}class nr{constructor(e,t){e instanceof nr?(this.x=e.x,this.y=e.y):(this.x=e||0,this.y=t||0)}toString(){return"Point[x="+this.x+" y="+this.y+"]"}equals(e){return!!e&&(this.x===e.x&&this.y===e.y)}clone(){return new nr(this.x,this.y)}add(e){return new nr(this.x+e.x,this.y+e.y)}subtract(e){return new nr(this.x-e.x,this.y-e.y)}floor(){return new nr(Math.floor(this.x),Math.floor(this.y))}ceil(){return new nr(Math.ceil(this.x),Math.ceil(this.y))}}class or{constructor(e,t,i,s){e instanceof or?(this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height):(this.x=e||0,this.y=t||0,this.width=i||0,this.height=s||0)}toString(){return"Rectangle[x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+"]"}equals(e){return!!e&&(this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height)}clone(){return new or(this.x,this.y,this.width,this.height)}center(){return new nr(this.x+this.width/2,this.y+this.height/2)}right(){return this.x+this.width}bottom(){return this.y+this.height}contains(e,t){return t>=this.y&&t<this.y+this.height&&e>=this.x&&e<this.x+this.width}intersects(e){return!!e&&(e.width>0&&e.height>0&&this.width>0&&this.height>0&&e.x<this.right()&&e.right()>this.x&&e.y<this.bottom()&&e.bottom()>this.y)}subtract(e){return new or(this.x+e.left,this.y+e.top,this.width-e.horizontal(),this.height-e.vertical())}subtractFromDimension(e){return new scout.Rectangle(this.x,this.y,this.width-e.horizontal(),this.height-e.vertical())}translate(e,t){return new or(this.x+e,this.y+t,this.width,this.height)}point(){return new nr(this.x,this.y)}dimension(){return new sr(this.width,this.height)}union(e){let t=this.width,i=this.height;if(t<0||i<0)return new or(e.x,e.y,e.width,e.height);let s=e.width,r=e.height;if(s<0||r<0)return new or(this.x,this.y,this.width,this.height);let n=this.x,o=this.y;t+=n,i+=o;let l=e.x,a=e.y;return s+=l,r+=a,n>l&&(n=l),o>a&&(o=a),t<s&&(t=s),i<r&&(i=r),t-=n,i-=o,t>Number.MAX_VALUE&&(t=Number.MAX_VALUE),i>Number.MAX_VALUE&&(i=Number.MAX_VALUE),new or(n,o,t,i)}floor(){return new or(Math.floor(this.x),Math.floor(this.y),Math.floor(this.width),Math.floor(this.height))}ceil(){return new or(Math.ceil(this.x),Math.ceil(this.y),Math.ceil(this.width),Math.ceil(this.height))}}function lr(e,t){if(!e[0]||e.isDisplayNone())return new sr(0,0);t="boolean"==typeof t?{includeMargin:t}:t||{};let i={includeMargin:!1,useCssSize:!1,widthHint:void 0,heightHint:void 0,restoreScrollPositions:!0};if((t=n().extend({},i,t)).animateClasses&&t.animateClasses.length>0)return hr(e,t);let s=e.attr("style"),r=e.scrollLeft(),o=e.scrollTop();t.restoreScrollPositions&&Yn.storeScrollPositions(e);let l={width:t.useCssSize?"":x.nvl(t.widthHint,"auto"),height:t.useCssSize?"":x.nvl(t.heightHint,"auto")};e.css(l);let a=e[0].getBoundingClientRect(),h=new sr(a.width,a.height);return t.includeMargin&&(h.width+=e.cssMarginX(),h.height+=e.cssMarginY()),e.attrOrRemove("style",s),e.scrollLeft(r),e.scrollTop(o),t.restoreScrollPositions&&Yn.restoreScrollPositions(e),ar(h,t)}function ar(e,t){return x.nvl(t.exact,!1)||(e.width=Math.ceil(e.width),e.height=Math.ceil(e.height)),e}function hr(e,t){let i=me.ensure(t.animateClasses);if(i=i.filter((t=>e.hasClass(t))),(t=n().extend({},t)).animateClasses=null,0===i.length)return lr(e,t);i=me.format(i," ");let s=e.clone().removeClass(i).appendTo(e.parent()),r=lr(s,t);return s.remove(),r}function dr(e,t){if(!e[0]||e.isDisplayNone())return new sr(0,0);t="boolean"==typeof t?{includeMargin:t}:t||{};let i=e[0].getBoundingClientRect(),s=new sr(i.width,i.height);return x.nvl(t.includeMargin,!1)&&(s.width+=e.cssMarginX(),s.height+=e.cssMarginY()),x.nvl(t.exact,!1)||(s.width=Math.ceil(s.width),s.height=Math.ceil(s.height)),s}function ur(e,t){t="boolean"==typeof t?{includeMargin:t}:t||{};let i,s=["top","right","bottom","left"],r=[0,0,0,0],n=x.nvl(t.includeMargin,!1),o=x.nvl(t.includePadding,!0),l=x.nvl(t.includeBorder,!0);for(i=0;i<s.length;i++)n&&(r[i]+=e.cssPxValue("margin-"+s[i])),o&&(r[i]+=e.cssPxValue("padding-"+s[i])),l&&(r[i]+=e.cssPxValue("border-"+s[i]+"-width"));return new rr(r[0],r[1],r[2],r[3])}function cr(e,t,i){let s=dr(e,i);return new or(t.left,t.top,s.width,s.height)}const pr={borders:function(e){return ur(e,{includeMargin:!1,includePadding:!1,includeBorder:!0})},bounds:function(e,t){return cr(e,e.position(),t)},cssBounds:function(e){return new or(e.cssLeft(),e.cssTop(),e.cssWidth(),e.cssHeight())},cssMaxSize:function(e){return new sr(e.cssMaxWidth(),e.cssMaxHeight())},cssMinSize:function(e){return new sr(e.cssMinWidth(),e.cssMinHeight())},cssSize:function(e){return new sr(e.cssWidth(),e.cssHeight())},debugOutput:function(e){if(!e)return"$comp is undefined";if(0===(e=n().ensure(e)).length)return"$comp doesn\t match any elements";let t="";if(e.attr("id")&&(t+="id="+e.attr("id")),e.attr("class")&&(t+=" class="+e.attr("class")),e.attr("data-modelclass")&&(t+=" data-modelclass="+e.attr("data-modelclass")),0===t.length){let i=x.nvl(e.html(),"");i.length>30&&(i=i.substring(0,30)+"..."),t=i}return e.isAttached()||(t+=" attached=false"),"Element["+t.trim()+"]"},exactPrefSize:ar,insets:ur,location:function(e){return new nr(e.cssLeft(),e.cssTop())},margins:function(e){return ur(e,{includeMargin:!0,includePadding:!1,includeBorder:!1})},offset:function(e){let t=e.offset();return new nr(t.left,t.top)},offsetBounds:function(e,t){return cr(e,e.offset(),t)},paddings:function(e){return ur(e,{includeMargin:!1,includePadding:!0,includeBorder:!1})},position:function(e){let t=e.position();return new nr(t.left,t.top)},prefSize:lr,prefSizeWithoutAnimation:hr,setBounds:function(e,t,i,s,r){let n=t instanceof or?t:new or(t,i,s,r);e.cssLeft(n.x).cssTop(n.y).cssWidth(n.width).cssHeight(n.height)},setLocation:function(e,t,i){let s=t instanceof nr?t:new nr(t,i);e.cssLeft(s.x).cssTop(s.y)},setMargins:function(e,t){e.css({marginLeft:t.left,marginRight:t.right,marginTop:t.top,marginBottom:t.bottom})},setSize:function(e,t,i){let s=t instanceof sr?t:new sr(t,i);e.cssWidth(s.width).cssHeight(s.height)},size:dr};let gr;class mr{constructor(){this.formRowHeight=30,this.formRowGap=10,this.formColumnWidth=420,this.formColumnGap=32,this.smallColumnGap=4,this.fieldLabelWidth=140,this.fieldMandatoryIndicatorWidth=8,this.fieldStatusWidth=20,this.events=new dt}init(e){e=e?" "+e:"",this.formRowHeight=ts.getSize("html-env-logical-grid-row"+e,"height","height",this.formRowHeight),this.formRowGap=ts.getSize("html-env-logical-grid-row"+e,"margin-bottom","marginBottom",this.formRowGap),this.formColumnWidth=ts.getSize("html-env-logical-grid-column"+e,"width","width",this.formColumnWidth),this.formColumnGap=ts.getSize("html-env-logical-grid-column"+e,"margin-right","marginRight",this.formColumnGap),this.smallColumnGap=ts.getSize("html-env-logical-grid-column"+e,"margin-left","marginLeft",this.smallColumnGap),this.fieldLabelWidth=ts.getSize("html-env-field-label"+e,"width","width",this.fieldLabelWidth),this.fieldMandatoryIndicatorWidth=ts.getSize("html-env-field-mandatory-indicator"+e,"width","width",this.fieldMandatoryIndicatorWidth),this.fieldStatusWidth=ts.getSize("html-env-field-status"+e,"width","width",this.fieldStatusWidth);let t={source:this};this.events.trigger("propertyChange",t)}on(e,t){return this.events.on(e,t)}off(e,t){return this.events.off(e,t)}static get(){return gr}}E.addListener("prepare",(()=>{gr||(gr=x.create("HtmlEnvironment"),gr.init())}));class _r{constructor(){this.animateClasses=[]}invalidate(){}layout(e){}_revertSizeHintsAdjustments(e,t){let i=fr.get(e);t.widthHint&&(t.widthHint+=i.insets().horizontal()),t.heightHint&&(t.heightHint+=i.insets().vertical())}preferredLayoutSize(e,t){return t=n().extend({},t),this.animateClasses.length>0&&(t.animateClasses=this.animateClasses),this._revertSizeHintsAdjustments(e,t),pr.prefSize(e,t)}}class fr{constructor(e,t){if(!t)throw new Error("session must be defined for "+this.debug());this.$comp=e,this.layout=new Lr,this.layoutData=null,this.valid=!1,this.validateRoot=!1,this.layouted=!1,this.layouting=!1,this.suppressInvalidate=!1,this.suppressValidate=!1,this.pixelBasedSizing=!0,this.sizeCached=null,this.prefSizeCached={},this.session=t,this.scrollable=!1}getParent(){let e=this.$comp.parent();return 0===e.length?null:fr.optGet(e)}isDescendantOf(e){let t=this.$comp.parent();for(;t.length>0;){if(fr.optGet(t)===e)return!0;t=t.parent()}return!1}availableSize(e){e=e||{};let t=this.size({exact:e.exact});if(this.scrollable){let e=this.prefSize({widthHint:t.width,removeMarginFromHints:!1});e.height>t.height&&(t.height=e.height)}return t}invalidateLayout(e){this.valid=!1,this.prefSizeCached={},this.layout&&this.layout.invalidate(e)}validateLayout(){if(!this.layout)throw new Error("Called layout() but component has no layout");return!!this.valid||!this.suppressValidate&&(!this.layouting&&(!!this._checkValidationPossible()&&(this.layouting=!0,this.layout.layout(this.$comp),this.layouting=!1,this.layouted=!0,this.sizeCached=this.size({exact:!0}),this.valid=!0,!0)))}_checkValidationPossible(){if(!this.isAttachedAndVisible())return!1;if(this.$comp.hasAnimationClass())return this._validateLayoutAfterAnimation(this.$comp),!1;let e=this.getParent();if(!e||!e.layouting){let e=!0,t=null;if(this.$comp.parents().each((function(){let i=n()(this);return i.isVisible()?!i.hasAnimationClass()||(t=i,!1):(e=!1,!1)})),!e)return!1;if(t)return this._validateLayoutAfterAnimation(t),!1}return!0}_validateLayoutAfterAnimation(e){e.oneAnimationEnd(this.validateLayout.bind(this))}revalidateLayout(){this.invalidateLayout(),this.validateLayout()}invalidateLayoutTree(e){this.suppressInvalidate||(x.nvl(e,!0)?this.session.layoutValidator.invalidateTree(this):(this.invalidateLayout(),this.session.layoutValidator.invalidate(this)))}validateLayoutTree(){this.suppressValidate||this.session.layoutValidator.validate()}revalidateLayoutTree(e){this.suppressInvalidate||(this.invalidateLayoutTree(e),this.validateLayoutTree())}isValidateRoot(){return!!this.validateRoot||!(!this.layoutData||!this.layoutData.isValidateRoot)&&this.layoutData.isValidateRoot()}setLayout(e){this.layout=e,e.cssClass&&this.$comp.addClass(e.cssClass)}prefSize(e){if(!this.isVisible())return new sr(0,0);e="boolean"==typeof e?{includeMargin:e}:n().extend({},e);let t=x.nvl(e.includeMargin,!1);if(e.includeMargin=null,!this.layout)throw new Error("Called prefSize() but component has no layout");let i=this.computePrefSizeKey(e),s=this.prefSizeCached[i];if(!n().isEmptyObject(s))return n().log.isTraceEnabled()&&n().log.trace("(HtmlComponent#prefSize) "+this.debug()+" widthHint="+e.widthHint+" heightHint="+e.heightHint+" prefSizeCached="+s),t&&(s=s.add(this.margins())),s.clone();let r=this.cssMinSize(),o=this.cssMaxSize();(e.widthHint||e.heightHint)&&this._adjustSizeHintsForPrefSize(e,r,o);let l=this.layout.preferredLayoutSize(this.$comp,e);return this._adjustPrefSizeWithMinMaxSize(l,r,o),this.prefSizeCached[i]=l,n().log.isTraceEnabled()&&n().log.trace("(HtmlComponent#prefSize) "+this.debug()+" widthHint="+e.widthHint+" heightHint="+e.heightHint+" prefSize="+l),t&&(l=l.add(this.margins())),l.clone()}computePrefSizeKey(e){return"wHint"+x.nvl(e.widthHint,"-1")+"hHint"+x.nvl(e.heightHint,"-1")+"wOnly"+x.nvl(e.widthOnly,"-1")}_adjustSizeHintsForPrefSize(e,t,i){let s=x.nvl(e.removeMarginFromHints,!0),r=x.nvl(e.removeInsetsFromHints,!0);if(e.removeMarginFromHints=null,e.removeInsetsFromHints=null,!e.widthHint&&!e.heightHint)return;let n=s?this.margins():new rr,o=r?this.insets():new rr;e.widthHint&&(e.widthHint-=n.horizontal(),e.widthHint=Math.max(e.widthHint,t.width),e.widthHint=Math.min(e.widthHint,i.width),e.widthHint-=o.horizontal()),e.heightHint&&(e.heightHint-=n.vertical(),e.heightHint=Math.max(e.heightHint,t.height),e.heightHint=Math.min(e.heightHint,i.height),e.heightHint-=o.vertical())}_adjustPrefSizeWithMinMaxSize(e,t,i){t=t||this.cssMinSize(),i=i||this.cssMaxSize(),e.height=Math.max(e.height,t.height),e.height=Math.min(e.height,i.height),e.width=Math.max(e.width,t.width),e.width=Math.min(e.width,i.width)}insets(e){return pr.insets(this.$comp,e)}margins(){return pr.margins(this.$comp)}borders(){return pr.borders(this.$comp)}cssMinSize(){return pr.cssMinSize(this.$comp)}cssMaxSize(){return pr.cssMaxSize(this.$comp)}size(e){return pr.size(this.$comp,e)}setSize(e){if(!this.isAttachedAndVisible())return;let t=this.sizeCached;e.equals(t)||this.invalidateLayout(),this.pixelBasedSizing&&pr.setSize(this.$comp,e),this.validateLayout()}bounds(e){return pr.bounds(this.$comp,e)}position(){return pr.position(this.$comp)}offsetBounds(e){return pr.offsetBounds(this.$comp,e)}offset(){return pr.offset(this.$comp)}setLocation(e){pr.setLocation(this.$comp,e)}location(){return pr.location(this.$comp)}setBounds(e){if(!this.isAttachedAndVisible())return;let t=this.sizeCached;e.dimension().equals(t)||this.invalidateLayout(),this.pixelBasedSizing&&pr.setBounds(this.$comp,e),this.validateLayout()}pack(){let e=this.prefSize();this.setSize(e)}isAttached(){return this.$comp.isAttached()&&this.$comp.window(!0)}isVisible(){return this.$comp.isVisible()}isAttachedAndVisible(){return this.isAttached()&&this.isVisible()}debug(){return pr.debugOutput(this.$comp)}static install(e,t){if(!e)throw new Error('Missing argument "$comp"');if(!t)throw new Error('Missing argument "session"');let i=new fr(e,t);return e.data("htmlComponent",i),i}static get(e){let t=this.optGet(e);if(!t){let t="";throw e&&(t="\nClass: "+e.attr("class"),t+="\nId: "+e.attr("id"),t+="\nAttached: "+e.isAttached()),new Error('data "htmlComponent" is undefined.'+t)}return t}static optGet(e){return e&&e.data("htmlComponent")}}const br={MIN:0,PREF:1,MAX:2,EPS:1e-6};class yr{constructor(){this._invalidComponents=[],this._validateTimeoutId=null,this._postValidateFunctions=[],this._suppressValidate=!1}invalidateTree(e){let t,i=e,s=e;for(;i;){if((e=i).invalidateLayout(s),e.isValidateRoot()){t=e;break}i=e.getParent()}i||(t=e),this.invalidate(t)}invalidate(e){let t=0;this._invalidComponents.indexOf(e)>=0||(this._invalidComponents.forEach(((i,s)=>{i.isDescendantOf(e)||t++}),this),me.insert(this._invalidComponents,e,t)),this._scheduleValidation()}_scheduleValidation(){null===this._validateTimeoutId&&(Qe.get().supportsMicrotask()?(this._validateTimeoutId=!0,queueMicrotask((()=>{if(this._validateTimeoutId)try{this.validate()}catch(e){E.get().errorHandler.handle(e)}}))):this._validateTimeoutId=setTimeout((()=>this.validate())))}validate(){Qe.get().supportsMicrotask()||clearTimeout(this._validateTimeoutId),this._validateTimeoutId=null,this._suppressValidate||(this._invalidComponents.slice().forEach((function(e){e.validateLayout()&&me.remove(this._invalidComponents,e)}),this),this._postValidateFunctions.slice().forEach((function(e){e(),me.remove(this._postValidateFunctions,e)}),this))}suppressValidate(){this._suppressValidate=!0}unsuppressValidate(){this._suppressValidate=!1,this._scheduleValidation()}cleanupInvalidComponents(e){this._invalidComponents.slice().forEach((function(t){t.$comp.closest(e).length>0&&me.remove(this._invalidComponents,t)}),this)}schedulePostValidateFunction(e){e&&this._postValidateFunctions.push(e)}}class wr{constructor(e){e=e||{},this.dirty=!0,this.gridConfig=e.gridConfig||null,this._setGridConfig(this.gridConfig)}setDirty(e){this.dirty=e}setGridConfig(e){this._setGridConfig(e)}_setGridConfig(e){!e||e instanceof Cr||(e=x.create("LogicalGridConfig",e)),this.gridConfig=e}validate(e){this.dirty&&(this._validate(e),this.setDirty(!1))}}class Cr{constructor(){this.widget=null}setWidget(e){this.widget=e}getGridColumnCount(){return this.widget.gridColumnCount}getGridWidgets(){return this.widget.widgets}}class vr{constructor(e){this.gridx=0,this.gridy=0,this.gridw=1,this.gridh=1,this.weightx=0,this.weighty=0,this.useUiWidth=!1,this.useUiHeight=!1,this.widthHint=0,this.heightHint=0,this.horizontalAlignment=-1,this.verticalAlignment=-1,this.fillHorizontal=!0,this.fillVertical=!0,e instanceof vr?Ai.copyProperties(e,this):e instanceof Y&&(this.widget=e)}validate(){if(!this.widget)return;let e=this.widget.gridData;this.gridx=e.x,this.gridy=e.y,this.gridw=e.w,this.gridh=e.h,this.weightx=e.weightX,this.weighty=e.weightY,this.weightx<0&&(this.weightx=Math.max(1,this.gridw)),this.weighty<0&&(this.weighty=this._inheritWeightY()),this.useUiWidth=e.useUiWidth,this.useUiHeight=e.useUiHeight,this.horizontalAlignment=e.horizontalAlignment,this.verticalAlignment=e.verticalAlignment,this.fillHorizontal=e.fillHorizontal,this.fillVertical=e.fillVertical,this.widthHint=e.widthInPixel,this.heightHint=e.heightInPixel,this.widget.labelVisible&&this.widget.$label&&this.widget.labelPosition===iu.LabelPosition.TOP?this.logicalRowHeightAddition=pr.prefSize(this.widget.$label,!0).height:this.logicalRowHeightAddition=0}_inheritWeightY(){let e=this._inheritWeightYRec(this.widget);if(null===e){let t=this.widget.gridData;e=t.weightY>=0?t.weightY:t.h>=2?t.h:0}return e}_inheritWeightYRec(e){let t=!1,i=0;if(e.validateLogicalGrid(),e instanceof au){let s,r,n,o=e.getFields();for(s=0;s<o.length;s++)if(n=o[s],n.isVisible()){let e=n.gridData;e.weightY<0?(r=this._inheritWeightYRec(n),null!==r&&(t=!0,i+=r)):(t=!0,i+=e.weightY)}}else i=e.gridData.h>=2?e.gridData.h:0,t=!0;return t?i:null}isValidateRoot(){return!this.useUiHeight&&!this.useUiWidth&&this.fillVertical&&this.fillHorizontal}}class Tr extends _r{constructor(e,t){super(),this.cssClass="logical-grid-layout",this.validityBasedOnContainerSize=new sr,this.valid=!1,this.widget=e,this.info=null,this._initDefaults(),this.layoutConfig=Sr.ensure(t||{}),this.layoutConfig.applyToLayout(this),this.htmlPropertyChangeHandler=this._onHtmlEnvironmentPropertyChange.bind(this),mr.get().on("propertyChange",this.htmlPropertyChangeHandler),this.widget.one("remove",(()=>{mr.get().off("propertyChange",this.htmlPropertyChangeHandler)}))}_initDefaults(){let e=mr.get();this.hgap=e.formColumnGap,this.vgap=e.formRowGap,this.columnWidth=e.formColumnWidth,this.rowHeight=e.formRowHeight,this.minWidth=0}_onHtmlEnvironmentPropertyChange(){this._initDefaults(),this.layoutConfig.applyToLayout(this),this.widget.invalidateLayoutTree(),this.widget.invalidateLogicalGrid()}validateLayout(e,t){let i=[],s=[];function r(e){this._validateGridData(e)&&(i.push(e.$comp),s.push(e.layoutData))}this.widget.logicalGrid?(this.widget.validateLogicalGrid(),this.widget.logicalGrid.gridConfig.getGridWidgets().forEach((function(e){e.rendered&&(e.htmlComp?r.call(this,e.htmlComp):n().log.isWarnEnabled()&&n().log.warn("(LogicalGridLayout#validateLayout) no htmlComp found, widget cannot be layouted. Widget: "+e))}),this)):e.children().each(((e,t)=>{let i=n()(t),s=fr.optGet(i);s&&r.call(this,s)})),this.info=new xr({$components:i,cons:s,hgap:this.hgap,vgap:this.vgap,rowHeight:this.rowHeight,columnWidth:this.columnWidth,widthHint:t.widthHint,heightHint:t.heightHint,widthOnly:t.widthOnly}),n().log.isTraceEnabled()&&n().log.trace("(LogicalGridLayout#validateLayout) $container="+fr.get(e).debug())}_validateGridData(e){let t=e.$comp,i=t.data("widget");if(i?i.isVisible():t.isVisible())return e.layoutData.validate(),!0}layout(e){this._layout(e)}_layout(e){let t=fr.get(e),i=t.availableSize(),s=t.insets();this.validateLayout(e,{widthHint:i.width-s.horizontal(),heightHint:i.height-s.vertical()}),this.minWidth>0&&i.width<this.minWidth&&(i.width=this.minWidth),n().log.isTraceEnabled()&&n().log.trace("(LogicalGridLayout#layout) container "+t.debug()+" size="+i+" insets="+s);let r,o,l,a,h,d,u,c,p,g,m=this._layoutCellBounds(i,s);for(d=0;d<this.info.$components.length;d++)h=this.info.$components[d],u=fr.get(h),c=this.info.gridDatas[d],r=m[c.gridy][c.gridx],o=m[c.gridy+c.gridh-1][c.gridx+c.gridw-1],l=r.union(o),g=u.margins(),l.width-=g.horizontal(),l.height-=g.vertical(),c.fillHorizontal&&c.fillVertical||(a=this.info.compSize[d],!c.fillHorizontal&&a.width<l.width&&(p=l.width-a.width,l.width=a.width,0===c.horizontalAlignment?l.x+=Math.ceil(p/2):c.horizontalAlignment>0&&(l.x+=p)),!c.fillVertical&&a.height<l.height&&(p=l.height-a.height,0===c.heightHint?l.height=a.height:l.height=c.heightHint,0===c.verticalAlignment?l.y+=Math.ceil(p/2):c.verticalAlignment>0&&(l.y+=p))),n().log.isTraceEnabled()&&n().log.trace("(LogicalGridLayout#layout) comp="+u.debug()+" bounds="+l),u.setBounds(l)}_layoutCellBounds(e,t){return this.info.layoutCellBounds(e,t)}preferredLayoutSize(e,t){this.validateLayout(e,t);let i,s,r,n=br.PREF,o=new sr,l=0;for(i=0;i<this.info.cols;i++)s=this.info.width[i][n],l>0&&(o.width+=this.hgap),o.width+=s,l++;for(l=0,i=0;i<this.info.rows;i++)r=this.info.height[i][n],l>0&&(o.height+=this.vgap),o.height+=r,l++;let a=fr.get(e).insets();return o.width+=a.horizontal(),o.height+=a.vertical(),o}}class Sr{constructor(e){this._extend(e)}_extend(e){(e=e||{}).hgap>-1&&(this.hgap=e.hgap),e.vgap>-1&&(this.vgap=e.vgap),e.columnWidth>-1&&(this.columnWidth=e.columnWidth),e.rowHeight>-1&&(this.rowHeight=e.rowHeight),e.minWidth>-1&&(this.minWidth=e.minWidth)}clone(){return new Sr(this)}applyToLayout(e){e.layoutConfig=this,null!==this.hgap&&void 0!==this.hgap&&(e.hgap=this.hgap),null!==this.vgap&&void 0!==this.vgap&&(e.vgap=this.vgap),null!==this.columnWidth&&void 0!==this.columnWidth&&(e.columnWidth=this.columnWidth),null!==this.rowHeight&&void 0!==this.rowHeight&&(e.rowHeight=this.rowHeight),null!==this.minWidth&&void 0!==this.minWidth&&(e.minWidth=this.minWidth)}static ensure(e){return e?e instanceof Sr?e:new Sr(e):e}}class xr{constructor(e){let t,i,s,r;for(this.gridDatas=[],this.$components=null,this.cols=0,this.compSize=[],this.rows=0,this.width=[],this.widthHints=[],this.height=[],this.weightX=[],this.weightY=[],this.hgap=0,this.vgap=0,this.rowHeight=0,this.columnWidth=0,this.cellBounds=[],this.widthHint=null,this.widthOnly=!1,n().extend(this,e),t=0;t<this.cons.length;t++)this.gridDatas[t]=new vr(this.cons[t]);if(0===this.$components.length)return;let o=new is,l=new is;for(t=0;t<this.gridDatas.length;t++){for(i=this.gridDatas[t],i.gridx<0&&(i.gridx=0),i.gridy<0&&(i.gridy=0),i.gridw<1&&(i.gridw=1),i.gridh<1&&(i.gridh=1),s=i.gridx;s<i.gridx+i.gridw;s++)o.add(s);for(r=i.gridy;r<i.gridy+i.gridh;r++)l.add(r)}for(s=o.last();s>=0;s--)if(!o.contains(s))for(t=0;t<this.gridDatas.length;t++)i=this.gridDatas[t],i.gridx>s&&i.gridx--;for(r=l.last();r>=0;r--)if(!l.contains(r))for(t=0;t<this.gridDatas.length;t++)i=this.gridDatas[t],i.gridy>r&&i.gridy--;this.cols=o.size(),this.rows=l.size(),n().log.isTraceEnabled()&&n().log.trace("(LogicalGridLayoutInfo#CTOR) $components.length="+this.$components.length+" usedCols="+this.cols+" usedRows="+this.rows),this._initializeInfo()}_initializeInfo(){let e=this.$components.length,t=[];for(let i=0;i<e;i++){let e=this.$components[i],s=this.gridDatas[i];s.gridx<0&&(s.gridx=0),s.gridy<0&&(s.gridy=0),s.gridw<1&&(s.gridw=1),s.gridh<1&&(s.gridh=1),s.gridx>=this.cols&&(s.gridx=this.cols-1),s.gridy>=this.rows&&(s.gridy=this.rows-1),s.gridx+s.gridw-1>=this.cols&&(s.gridw=this.cols-s.gridx),s.gridy+s.gridh>=this.rows&&(s.gridh=this.rows-s.gridy);let r=new sr(0,0);s.widthHint>0?r.width=s.widthHint:!s.useUiWidth&&s.fillHorizontal||(r=this.uiSizeInPixel(e,s)),s.heightHint>0?r.height=s.heightHint:!s.useUiHeight&&s.fillVertical||t.push({cons:s,$comp:e,index:i}),this.compSize[i]=r}if(this._initializeColumns(),this.widthOnly)this.height=me.init(this.rows,[0,0,0]);else{if(this.widthHint&&t.length>0){let e=Math.max(0,(this.cols-1)*this.hgap);this.widthHints=this.layoutSizes(this.widthHint-e,this.width,this.weightX)}t.forEach((function(e){let t=e.$comp,i=e.cons,s=this.widthHintForGridData(i);i.fillHorizontal||(s=Math.min(s,this.compSize[e.index].width)),this.compSize[e.index]=this.uiSizeInPixel(t,i,{widthHint:s})}),this),this._initializeRows()}}_initializeColumns(){let e,t,i,s,r,n=this.compSize,o=n.length,l=me.init(this.cols,0),a=me.init(this.cols,!1);for(e=0;e<o;e++)if(r=this.gridDatas[e],1===r.gridw)for(s=r.widthHint>0?r.widthHint:r.useUiWidth?n[e].width:this.logicalWidthInPixel(r),s=Math.floor(s),t=r.gridx;t<r.gridx+r.gridw&&t<this.cols;t++)l[t]=Math.max(l[t],s),0===r.weightx&&(a[t]=!0);for(e=0;e<o;e++)if(r=this.gridDatas[e],r.gridw>1){let i,s=r.gridw,o=0;for(t=r.gridx;t<r.gridx+r.gridw&&t<this.cols;t++)a[t]||(o+=l[t]);if(i=r.widthHint>0?r.widthHint-o-(s-1)*this.hgap:r.useUiWidth?n[e].width-o-(s-1)*this.hgap:this.logicalWidthInPixel(r)-o-(s-1)*this.hgap,i>0){let e=Math.floor((i+o)/s),n=(i+o)%s,h=-1;for(t=r.gridx;t<r.gridx+r.gridw&&t<this.cols;t++)h=t,a[t]||(l[t]=Math.max(e,l[t])),0===r.weightx&&(a[t]=!0);h>-1&&(l[h]+=n)}}let h=br;for(e=0;e<this.cols;e++)this.width[e]=[],a[e]?(this.width[e][h.MIN]=l[e],this.width[e][h.PREF]=l[e],this.width[e][h.MAX]=l[e]):(this.width[e][h.MIN]=0,this.width[e][h.PREF]=l[e],this.width[e][h.MAX]=10240);for(e=0;e<this.cols;e++)if(a[e])this.weightX[e]=0;else{let t=0,s=0;for(i=0;i<o;i++)r=this.gridDatas[i],r.weightx>0&&r.gridx<=e&&e<=r.gridx+r.gridw-1&&(t+=r.weightx/r.gridw,s++);this.weightX[e]=s>0?t/s:0}let d=0;for(e=0;e<this.cols;e++)d+=this.weightX[e];if(d>=1e-6){let t=1/d;for(e=0;e<this.cols;e++)this.weightX[e]=this.weightX[e]*t}}_initializeRows(){let e,t,i,s,r,n=this.compSize,o=n.length,l=me.init(this.rows,0),a=me.init(this.rows,!1);for(e=0;e<o;e++)if(r=this.gridDatas[e],1===r.gridh)for(s=r.heightHint>0?r.heightHint:r.useUiHeight?n[e].height:this.logicalHeightInPixel(r),s=Math.floor(s),t=r.gridy;t<r.gridy+r.gridh&&t<this.rows;t++)l[t]=Math.max(l[t],s),0===r.weighty&&(a[t]=!0);for(e=0;e<o;e++)if(r=this.gridDatas[e],r.gridh>1){let i,s=r.gridh,o=0;for(t=r.gridy;t<r.gridy+r.gridh&&t<this.rows;t++)a[t]||(o+=l[t]);if(i=r.heightHint>0?r.heightHint-o-(s-1)*this.vgap:r.useUiHeight?n[e].height-o-(s-1)*this.vgap:this.logicalHeightInPixel(r)-o-(s-1)*this.vgap,i>0){let e=Math.floor((i+o)/s),n=(i+o)%s,h=-1;for(t=r.gridy;t<r.gridy+r.gridh&&t<this.rows;t++)h=t,a[t]||(l[t]=Math.max(e,l[t])),0===r.weighty&&(a[t]=!0);h>-1&&(l[h]+=n)}}let h=br;for(e=0;e<this.rows;e++)this.height[e]=[],a[e]?(this.height[e][h.MIN]=l[e],this.height[e][h.PREF]=l[e],this.height[e][h.MAX]=l[e]):(this.height[e][h.MIN]=0,this.height[e][h.PREF]=l[e],this.height[e][h.MAX]=10240);for(e=0;e<this.rows;e++)if(a[e])this.weightY[e]=0;else{let t=0,s=0;for(i=0;i<o;i++)r=this.gridDatas[i],r.weighty>0&&r.gridy<=e&&e<=r.gridy+r.gridh-1&&(t+=r.weighty/r.gridh,s++);this.weightY[e]=s>0?t/s:0}let d=0;for(e=0;e<this.rows;e++)d+=this.weightY[e];if(d>=1e-6){let t=1/d;for(e=0;e<this.rows;e++)this.weightY[e]=this.weightY[e]*t}}layoutCellBounds(e,t){let i=this.layoutSizes(e.width-t.horizontal()-Math.max(0,(this.cols-1)*this.hgap),this.width,this.weightX),s=this.layoutSizes(e.height-t.vertical()-Math.max(0,(this.rows-1)*this.vgap),this.height,this.weightY);this.cellBounds=me.init(this.rows,null);let r,n,o,l=t.top;for(r=0;r<this.rows;r++){for(n=t.left,this.cellBounds[r]=me.init(this.cols,null),o=0;o<this.cols;o++)this.cellBounds[r][o]=new or(n,l,i[o],s[r]),n+=i[o],n+=this.hgap;l+=s[r],l+=this.vgap}return this.cellBounds}layoutSizes(e,t,i){let s,r=me.init(t.length,0);if(e<=0){for(s=0;s<t.length;s++)r[s]=t[s][br.MIN];return r}let n=0,o=me.init(i.length,0),l=0;for(s=0;s<t.length;s++)r[s]=t[s][br.PREF],n+=r[s],o[s]=i[s],o[s]<br.EPS&&(t[s][br.MAX]>t[s][br.MIN]?o[s]=1:o[s]=0),l+=o[s];if(l>0)for(s=0;s<o.length;s++)o[s]=o[s]/l;let a=e-n;if(Math.abs(a)>0){let e,i=me.init(o.length,0);if(a>0)for(e=!0;a>0&&e;)for(e=!1,s=0;s<r.length&&a>0;s++)o[s]>0&&r[s]<t[s][br.MAX]&&(e=!0,i[s]+=o[s],i[s]>0&&(i[s]-=1,r[s]+=1,a-=1));else for(e=!0;a<0&&e;)for(e=!1,s=0;s<r.length&&a<0;s++)o[s]>0&&r[s]>t[s][br.MIN]&&(e=!0,i[s]+=o[s],i[s]>0&&(i[s]-=1,r[s]-=1,a+=1))}return r}logicalWidthInPixel(e){let t=e.gridw;return this.columnWidth*t+this.hgap*Math.max(0,t-1)}logicalHeightInPixel(e){let t=e.gridh,i=e.logicalRowHeightAddition||0;return this.rowHeight*t+this.vgap*Math.max(0,t-1)+i}uiSizeInPixel(e,t,i){let s=fr.get(e);return s.prefSize(i).add(s.margins())}widthHintForGridData(e){if(0===this.widthHints.length)return null;let t=(e.gridw-1)*this.hgap;for(let i=e.gridx;i<e.gridx+e.gridw;i++)t+=this.widthHints[i];return t}}class Pr extends wr{constructor(e){super(e),this.gridRows=0,this.gridColumns=0}_validate(e){this.gridRows=0,this.gridConfig.setWidget(e),this.gridColumns=this.gridConfig.getGridColumnCount();let t=0,i=0,s=[];this.gridConfig.getGridWidgets().forEach((e=>{if(e.isVisible()){s.push(e);let r=e.gridDataHints;r&&r.x>=0&&r.y>=0?t++:i++}else{let t=lu.createFromHints(e,1);e.gridData=t}})),t>0&&0===i?this.layoutAllStatic(s):this.layoutAllDynamic(s)}layoutAllStatic(e){let t=[];e.forEach((e=>{t.push(lu.createFromHints(e,1))}));let i=t.reduce(((e,t)=>{let i=t.x+t.w;return i>e?i:e}),1),s=t.reduce(((e,t)=>{let i=t.y+t.h;return i>e?i:e}),0);e.forEach((e=>{e.gridData=lu.createFromHints(e,i)})),this.gridRows=s,this.gridColumns=i}layoutAllDynamic(e){}getGridColumnCount(){return this.gridColumns}getGridRowCount(){return this.gridRows}static getGridDataFromHints(e,t){let i=lu.createFromHints(e,t);return i.w=Math.min(t,i.w),i}}class Fr extends Pr{constructor(e){super(e)}layoutAllDynamic(e){let t=new Mr(this.getGridColumnCount());t.computeGridData(e),this.gridRows=t.getRowCount()}}class Er extends Pr{constructor(e){super(e)}layoutAllDynamic(e){let t=0;e.forEach((e=>{let i=Pr.getGridDataFromHints(e,this.getGridColumnCount());t+=i.w*i.h}));let i=Math.floor((t+this.getGridColumnCount()-1)/this.getGridColumnCount()),s=new kr(this.getGridColumnCount(),i);for(;!s.computeGridData(e);)s.resetAll(this.getGridColumnCount(),++i);e.forEach((e=>{e.gridData=s.getGridData(e)})),this.gridRows=s.getRowCount()}}class Dr{constructor(e){this._cursor=e,this._assignedCells=[]}getColumnCount(){return this._cursor.columnCount}getRowCount(){return this._cursor.rowCount}_setAssignedCell(e,t){this._assignedCells[e.x]||(this._assignedCells[e.x]=[]),this._assignedCells[e.x][e.y]=t}_getAssignedCell(e){return this._assignedCells[e.x]?this._assignedCells[e.x][e.y]:null}_nextFree(e,t){if(!this._cursor.increment())return!1;let i=this._cursor.currentIndex();return!!this._isAllCellFree(i.x,i.y,e,t)||(this._getAssignedCell(i)||this._setAssignedCell(i,new Ar),this._nextFree(e,t))}_isAllCellFree(e,t,i,s){return!(e+i>this._cursor.startX+this._cursor.columnCount||t+s>this._cursor.startY+this._cursor.rowCount)&&this._assignedCells.slice(e,e+i).every((e=>(e||[]).slice(t,t+s).every((e=>!e))))}toString(){let e="----Group Box Grid Matrix [orientation="+this._cursor.orientation+", columnCount="+this.getColumnCount()+", rowCount="+this.getRowCount()+"]--------------\n",t=new Rr(0,0,this.getColumnCount(),this.getRowCount(),this._cursor.orientation);for(;t.increment();){let i=this._getAssignedCell(t.currentIndex());e+="cell["+t.currentIndex().x+", "+t.currentIndex().y+"] ",i?i.widget?e+=i.widget+(i.widget?", ["+i.widget.label+"]":""):e+="Placeholder":e+="NULL",e+="\n"}return e}}class Ar{constructor(e,t){this.widget=e,this.data=t}isEmpty(){return!this.widget}}function $r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Rr{constructor(e,t,i,s,r){this.startX=e,this.startY=t,this.columnCount=i,this.rowCount=s,this.orientation=r,this.reset()}reset(){this._currentIndex={x:-1,y:-1}}currentIndex(){return{x:this._currentIndex.x,y:this._currentIndex.y}}increment(){return this._currentIndex.x<0||this._currentIndex.y<0?(this._currentIndex.x=this.startX,this._currentIndex.y=this.startY):this.orientation===Rr.HORIZONTAL?(this._currentIndex.x++,this._currentIndex.x>=this.startX+this.columnCount&&(this._currentIndex.x=this.startX,this._currentIndex.y++)):(this._currentIndex.y++,this._currentIndex.y>=this.startY+this.rowCount&&(this._currentIndex.y=this.startY,this._currentIndex.x++)),!(this._currentIndex.x>=this.startX+this.columnCount||this._currentIndex.y>=this.startY+this.rowCount)}decrement(){return!(this._currentIndex.x<0||this._currentIndex.y<0)&&(this._currentIndex.x>=this.startX+this.columnCount||this._currentIndex.y>=this.startY+this.rowCount?(this._currentIndex.x=this.startX+this.columnCount-1,this._currentIndex.y=this.startY+this.rowCount-1):this.orientation===Rr.HORIZONTAL?(this._currentIndex.x--,this._currentIndex.x<this.startX&&(this._currentIndex.x=this.startX+this.columnCount-1,this._currentIndex.y--)):(this._currentIndex.y--,this._currentIndex.y<this.startY&&(this._currentIndex.y=this.startY+this.rowCount-1,this._currentIndex.x--)),!(this._currentIndex.x<this.startX||this._currentIndex.y<this.startY))}toString(){let e=[];return e.push("MatrixCursor ["),e.push("orientation="+this.orientation),e.push(", startX="+this.startX),e.push(", startY="+this.startY),e.push(", columnCount="+this.columnCount),e.push(", currentIndex="+this._currentIndex.x+", "+this._currentIndex.y),e.push("]"),e.join("")}}$r(Rr,"HORIZONTAL",0),$r(Rr,"VERTICAL",1);class Mr extends Dr{constructor(e){super(new Rr(0,0,e,Number.MAX_SAFE_INTEGER,Rr.HORIZONTAL)),this.rowCount=0}computeGridData(e){return e.forEach((e=>{let t=lu.createFromHints(e,this.getColumnCount()),i=new lu(t);i.w=Math.min(t.w,this.getColumnCount()),this._add(e,t,i),e.gridData=i})),this._cursor.rowCount=this.rowCount,!0}_add(e,t,i){this._nextFree(i.w,i.h);let s=this._cursor.currentIndex();if(i.w<=this.getColumnCount()-s.x){i.x=s.x,i.y=s.y;for(let t=s.x;t<s.x+i.w;t++)for(let r=s.y;r<s.y+i.h;r++)this._setAssignedCell({x:t,y:r},new Ar(e,i));this.rowCount=s.y+i.h}else this._setAssignedCell(this._cursor.currentIndex(),new Ar),this._add(e,t,i)}}class kr extends Dr{constructor(e,t,i,s){super(new Rr(i||0,s||0,e,t,Rr.VERTICAL)),this._widgets=[],this._widgetGridDatas=[]}resetAll(e,t){this._widgetGridDatas=[],this._assignedCells=[],this._widgetIndexes=[],this._cursor=new Rr(this._cursor.startX,this._cursor.startY,e,t,Rr.VERTICAL)}computeGridData(e){return this._widgets=e,e.every(((e,t)=>(this._widgetGridDatas[t]=Pr.getGridDataFromHints(e,this._cursor.columnCount),this._add(e,this._widgetGridDatas[t]))))}getGridData(e){return this._widgetGridDatas[this._widgets.indexOf(e)]}_addAssignedCells(e){e.forEach(((e,t)=>{e&&e.forEach(((e,i)=>{e&&this._setAssignedCell({x:t,y:i},e)}))}))}_getAssignedCells(){return this._assignedCells}_add(e,t){let i=this._cursor.currentIndex();if(t.w>1){let e=i.x,s=i.y;for(;e+t.w>this._cursor.startX+this._cursor.columnCount;)e--,s=this._cursor.rowCount-1;this._reorganizeGridAbove(e,s,t.w)}if(!this._nextFree(t.w,t.h))return!1;i=this._cursor.currentIndex(),t.x=i.x,t.y=i.y;for(let s=i.x;s<i.x+t.w;s++)for(let r=i.y;r<i.y+t.h;r++)this._setAssignedCell({x:s,y:r},new Ar(e,t));return!0}_reorganizeGridAbove(e,t,i){let s=[],r=[],n=(e,t,i)=>{r[e]||(r[e]=[]),r[e][t]=i},o={x:e,y:0,w:i,h:t+1},l=t,a=0,h=!0;for(let r=t;r>=0&&h;r--)for(let t=e;t<e+i&&h;t++){let e={x:t,y:r},i=this._getAssignedCell(e);if(i&&!i.isEmpty()){let t=i.data;this._horizontalMatchesOrOverlaps(o,t)?h=!1:this._horizontalOverlapsOnSide(o,t)?(n(e.x,e.y,i),a++,l=Math.min(e.y,l)):(this._setAssignedCell(e,null),d=i.widget,-1===s.indexOf(d)&&s.push(d),a++,l=Math.min(e.y,l))}}var d;if(0===s.length)return;s.sort(((e,t)=>this._widgets.indexOf(e)<this._widgets.indexOf(t)?-1:1)),o.y=l;let u=new kr(o.w,Math.floor((a+o.w-1)/o.w),o.x,o.y);for(u._addAssignedCells(r);!u.computeGridData(s);)u.resetAll(u.getColumnCount(),u.getRowCount()+1);this._cursor.reset(),this._addAssignedCells(u._getAssignedCells()),u._widgetGridDatas.forEach(((e,t)=>{this._widgetGridDatas[this._widgets.indexOf(u._widgets[t])]=e}))}_horizontalMatchesOrOverlaps(e,t){return e.x>=t.x&&e.x+e.w<=t.x+t.w}_horizontalOverlapsOnSide(e,t){return e.x>t.x||e.x+e.w<t.x+t.w}}class Ir extends _r{constructor(e){super(),e=e||{},this.stretch=x.nvl(e.stretch,!0),this.useCssWidth=x.nvl(e.useCssWidth,!1)}_getChildren(e){return e.children()}layout(e){let t=fr.get(e),i=t.availableSize().subtract(t.insets());this._getChildren(e).each(((e,t)=>{let s=n()(t),r=fr.optGet(s);if(!r||!s.isVisible())return;let o=r.prefSize({useCssSize:!0});this.stretch&&(o.height=i.height-r.margins().vertical()),r.layoutData&&r.layoutData.widthHint&&(o.width=r.layoutData.widthHint),this.useCssWidth?(r.$comp.cssHeight(o.height),r.revalidateLayout()):r.setSize(o)}))}preferredLayoutSize(e,t){let i=new sr,s=fr.get(e),r={useCssSize:!0};return this._getChildren(e).each(((e,t)=>{let s=n()(t),o=fr.optGet(s);if(!o||!s.isVisible())return;let l=o.prefSize(r);o.layoutData&&o.layoutData.widthHint&&(l.width=o.layoutData.widthHint),l=l.add(o.margins()),i.width=i.width+l.width,i.height=Math.max(i.height,l.height)})),i=i.add(s.insets()),i}}class Lr extends _r{constructor(){super()}layout(e){e.children().each((function(){let e=fr.optGet(n()(this));e&&e.revalidateLayout()}))}}class Br extends _r{constructor(e){super(),e=e||{},this.pixelBasedSizing=x.nvl(e.pixelBasedSizing,!0),this.stretch=x.nvl(e.stretch,!0)}_getChildren(e){return e.children()}layout(e){let t=fr.get(e),i=t.availableSize().subtract(t.insets());this._getChildren(e).each(((e,t)=>{let s=n()(t),r=fr.optGet(s);if(!r||!s.isVisible())return;if(!this.pixelBasedSizing)return void r.validateLayout();let o=r.prefSize({widthHint:i.width});this.stretch&&(o.width=i.width-r.margins().horizontal()),r.setSize(o)}))}preferredLayoutSize(e,t){let i=new sr,s=fr.get(e),r=0;return this._getChildren(e).each(((e,s)=>{let o=n()(s),l=fr.optGet(o);if(!l||!o.isVisible())return;let a=l.prefSize(t).add(l.margins());r=Math.max(a.width,r),i.height+=a.height,i.width=r})),i=i.add(s.insets()),i}}class Or extends _r{constructor(e,t){super(),this._htmlChild=e,t=t||{},this.exact=scout.nvl(t.exact,!1)}layout(e){let t=fr.get(e),i=t.availableSize({exact:this.exact}).subtract(t.insets()),s=this._htmlChild;s||(s=this._getHtmlSingleChild(e)),s&&s.setSize(i)}preferredLayoutSize(e,t){let i=this._htmlChild;return i||(i=this._getHtmlSingleChild(e)),i?i.prefSize(t).add(pr.insets(e)):new sr(1,1)}_getHtmlSingleChild(e){let t=null;return e.children().each(((e,i)=>{let s=fr.optGet(n()(i));if(s)return t=s,!1})),t}}class Nr extends _r{constructor(e,t){super(),this.childrenLayoutDatas=[],this.cacheKey=null,this.setCacheKey(t),e===Nr.Direction.ROW?(this.preferredLayoutSize=this.preferredLayoutSizeRow,this._getDimensionValue=this._getWidth,this._layoutFromLayoutData=this._layoutFromLayoutDataRow):(this.preferredLayoutSize=this.preferredLayoutSizeColumn,this._getDimensionValue=this._getHeight,this._layoutFromLayoutData=this._layoutFromLayoutDataColumn)}setCacheKey(e){this.cacheKey=e,this.cacheKey&&this.cacheKey.length>0&&this.cacheKey.unshift("scout.flexboxLayout")}_readCache(e){if(!this.cacheKey||0===this.cacheKey.length||e<2)return;let t,i=this.cacheKey.slice(),s=gs.getItemFromLocalStorage(i[0]),r=1;for(i.push(""+e),s&&(t=JSON.parse(s));t&&r<i.length;)t=t[i[r]],r++;return t}_writeCache(e,t){if(!this.cacheKey||0===this.cacheKey.length||e<2)return;let i,s,r=this.cacheKey.slice(),n=gs.getItemFromLocalStorage(r[0]),o=1;for(r.push(""+e),i=n?JSON.parse(n):{},s=i;o<r.length-1;)s[r[o]]||(s[r[o]]={}),s=s[r[o]],o++;s[r[o]]=t,gs.setItemToLocalStorage(r[0],JSON.stringify(i))}_computeCacheKey(e){if(this.cacheKey&&!(e<2))return this.cacheKey+"-"+e}layout(e){let t,i=this._getChildren(e),s=fr.get(e),r=s.availableSize({exact:!0});r=r.subtract(s.insets()),t=i.filter((e=>e.layoutData.diff))[0],t?this._layoutDelta(i,t,r):this._layoutComponents(i,r)}_getChildren(e){let t=[];return e.children().each((function(){let e=fr.optGet(n()(this));e&&t.push(e)})),t=t.sort(((e,t)=>(e.layoutData.order||0)-(t.layoutData.order||0))),t}reset(){this.childrenLayoutDatas.forEach((e=>{e.sizePx=0,e.initialPx=0,e.diff=null})),this.childrenLayoutDatas=[]}_layoutDelta(e,t,i){this.ensureInitialValues(e,i);let s,r,n=t.layoutData.diff,o=e.slice(0,e.indexOf(t)).reverse(),l=e.slice(e.indexOf(t)+1);function a(e,t,i){return e.reduce(((e,t)=>(0!==e&&(e=t.layoutData.acceptDelta(e,i)),e)),t)}s=a(o,n,!1),r=-a(l,-n,!1),n=Math.sign(n)*Math.min(Math.abs(n-s),Math.abs(n-r)),0!==n&&(a(o,n,!0),a(l,-n,!0)),this._layoutFromLayoutDataWithCache(e,i)}_layoutComponents(e,t){let i=this.ensureInitialValues(e,t);i<0?this._adjust(e,i,(e=>e.shrink)):i>0&&this._adjust(e,i,(e=>e.grow)),this._layoutFromLayoutDataWithCache(e,t)}_adjust(e,t,i){let s,r,n=e.map((e=>e.layoutData)).filter((e=>0===e.acceptDelta(Math.sign(t))));n.length<1||(s=n.reduce(((e,t)=>e+i(t)),0),r=t/s,t=n.reduce(((e,t)=>t.acceptDelta(r*i(t),!0)),t),Math.abs(t)>.2&&this._adjust(e,t,i))}_getPreferredSize(e){let t;return t=e.prefSize({useCssSize:!0}).add(e.margins()),t}ensureInitialValues(e,t){let i=this._getDimensionValue(t),s=0,r=0,n=e.map((e=>e.layoutData)),o=this._readCache(e.length)||[];e.forEach(((e,t)=>{let i=e.layoutData;i.sizePx?s+=i.sizePx:i.initial<0?(i.initialPx=this._getDimensionValue(this._getPreferredSize(e)),s+=i.initialPx):i.relative?r+=i.initial:(i.initialPx=i.initial,s+=i.initialPx)}));let l=(i-s)/r;return n.filter((e=>e.relative&&e.initial>-1&&!e.sizePx)).reduce(((e,t)=>(t.initialPx=Math.max(30,l*t.initial),e-t.initialPx)),i-s),n.reduce(((e,t,s)=>(t.sizePx||(o[s]?t.sizePx=t.validate(Math.round(i*o[s])):t.sizePx=t.initialPx),this.childrenLayoutDatas.push(t),e-t.sizePx)),i)}_layoutFromLayoutDataWithCache(e,t){this._cacheSizes(e,t),this._layoutFromLayoutData(e,t)}_cacheSizes(e,t){let i,s=this._getDimensionValue(t);i=e.map((e=>e.layoutData.sizePx/s)),this._writeCache(e.length,i)}preferredLayoutSizeColumn(e,t){return this._getChildren(e).reduce(((e,t)=>{let i=this._getPreferredSize(t);return e.width=Math.max(i.width,e.width),e.height+=i.height,e}),new sr(0,0))}preferredLayoutSizeRow(e,t){return this._getChildren(e).reduce(((e,t)=>{let i=this._getPreferredSize(t);return e.height=Math.max(i.height,e.height),e.width+=i.width,e}),new sr(0,0))}_getWidth(e){return e.width}_getHeight(e){return e.height}_layoutFromLayoutDataRow(e,t){e.reduce(((e,i)=>{let s=i.margins(),r=i.insets(),n=i.layoutData.sizePx,o=new or(e-r.left-s.left,0,n+r.left+r.right,t.height);return i.setBounds(o),e+n}),0)}_layoutFromLayoutDataColumn(e,t){e.reduce(((e,i)=>{let s=i.margins(),r=i.insets(),n=i.layoutData.sizePx,o=new or(0,e-r.top-s.top,t.width,n+r.top+r.bottom);return i.setBounds(o),e+n}),0)}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Nr,"Direction",{COLUMN:0,ROW:1});class Hr{constructor(e){this._prepare(),this.relative=!0,this.grow=1,this.shrink=1,this.initial=1,this.order=0,n().extend(this,e),this.sizePx,this.initialPx,this.delta}_prepare(){}withOrder(e){return this.order=e,this}acceptDelta(e,t){return e>0?this._grow(e,t):this._shrink(e,t)}validate(e){return 0===this.grow&&(e=Math.min(this.initialPx,e)),0===this.shrink&&(e=Math.max(this.initialPx,e)),e}_grow(e,t){let i=0,s=0;return this.grow>0?i=e:this.initialPx>this.sizePx&&(i=this.initialPx-this.sizePx),s=Math.min(e,i),t&&(this.sizePx=this.sizePx+s),e-s}_shrink(e,t){let i=0,s=0;return this.shrink>0?i=20-this.sizePx:this.initialPx<this.sizePx&&(i=this.initialPx-this.sizePx),s=Math.max(e,i),t&&(this.sizePx=this.sizePx+s),e-s}static fixed(e){let t=new Hr;return t.relative=!1,t.initial=e||-1,t.grow=0,t.shrink=0,t}}class Vr{constructor(e,t){this.tabBox=null,this._viewAddHandler=this._onViewAdd.bind(this),this._viewRemoveHandler=this._onViewRemove.bind(this),this._viewActivateHandler=this._onViewActivate.bind(this),this._viewDeactivateHandler=this._onViewDeactivate.bind(this),this.tabArea=null,this._viewTabSelectHandler=this._onViewTabSelect.bind(this)}init(e){n().extend(this,e)}install(e,t){this.uninstall(),this.tabBox=x.assertParameter("tabBox",e),this.tabArea=x.nvl(t,this.tabBox.tabArea),this.tabArea||(this.tabArea=this.createTabArea()),this._installListeners()}uninstall(){this._uninstallListeners()}_installListeners(){this.tabBox.on("viewAdd",this._viewAddHandler),this.tabBox.on("viewRemove",this._viewRemoveHandler),this.tabBox.on("viewActivate",this._viewActivateHandler),this.tabBox.on("viewDeactivate",this._viewDeactivateHandler),this.tabArea.on("tabSelect",this._viewTabSelectHandler)}_uninstallListeners(){this.tabBox&&(this.tabBox.off("viewAdd",this._viewAddHandler),this.tabBox.off("viewRemove",this._viewRemoveHandler),this.tabBox.off("viewActivate",this._viewActivateHandler),this.tabBox.off("viewDeactivate",this._viewDeactivateHandler)),this.tabArea&&this.tabArea.off("tabSelect",this._viewTabSelectHandler)}createTabArea(){return x.create("SimpleTabArea",{parent:this.tabBox})}_onViewAdd(e){let t,i,s=e.view,r=e.siblingView;Vr.hasViewTab(s)&&(t=this._getTab(s),!t&&this._shouldCreateTabForView(s)&&(i=this._getTab(r),t=this._createTab(s),this.tabArea.addTab(t,i)))}_shouldCreateTabForView(e){return!0}_onViewRemove(e){let t=e.view;if(!t)return;let i=this._getTab(t);i&&this.tabArea.destroyTab(i)}_onViewActivate(e){let t=this._getTab(e.view);this.tabArea.selectTab(t)}_onViewDeactivate(e){let t=this._getTab(e.view);this.tabArea.deselectTab(t)}_onViewTabSelect(e){if(!e.viewTab)return;let t=e.viewTab.view;this.tabBox.activateView(t)}_createTab(e){return x.create("SimpleTab",{parent:this.tabArea,view:e})}_getTab(e){if(!e)return;let t=null;return this.tabArea.getTabs().some((i=>i.view===e&&(t=i,!0))),t}getTabs(){return this.tabArea.getTabs()}static hasViewTab(e){return Ai.someProperties(e,["title","subTitle","iconId"])}}class Wr extends Y{constructor(){super(),this._addWidgetProperties(["tabArea"]),this.tabArea=null,this.viewStack=[],this.currentView=null,this.controller=null,this._removeViewInProgress=0}_init(e){super._init(e),this.cssClass=e.cssClass,this.controller||(this.controller=x.create("SimpleTabBoxController")),this.controller.install(this,this.tabArea),this.tabArea=this.controller.tabArea,this._viewDestroyedHandler=this._onViewDestroyed.bind(this)}_keyStrokeBindTarget(){return this.$container}_render(){this.$container=this.$parent.appendDiv("simple-tab-box"),this.cssClass&&this.$container.addClass(this.cssClass),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new zr(this)),this.htmlComp.layoutData=this.layoutData,this.$viewContent=this.$container.appendDiv("tab-content"),this.viewContent=fr.install(this.$viewContent,this.session),this.viewContent.setLayout(new Gr(this))}_renderProperties(){super._renderProperties(),this._renderTabArea(),this._renderView(this.currentView)}_renderTabArea(){this.tabArea.render(),this.$tabArea=this.tabArea.$container,this.$tabArea.insertBefore(this.$viewContent)}_renderView(e){e&&(e.rendered||(e.render(this.$viewContent),e.$container.addClass("view"),e.validateRoot=!0))}postRender(){this.viewStack.length>0&&!this.currentView&&this.activateView(this.viewStack[this.viewStack.length-1])}activateView(e){e!==this.currentView&&(this.currentView&&(this.currentView.detach(),this.trigger("viewDeactivate",{view:this.currentView}),this.currentView=null),this.rendered&&this._renderView(e),e&&!e.attached&&e.attach(),this.currentView=e,this.trigger("viewActivate",{view:e}),this.rendered&&this.viewContent.invalidateLayoutTree())}setLayoutData(e){super.setLayoutData(e),this.layoutData=e}getLayoutData(){return this.layoutData}addView(e,t){let i=x.nvl(t,!0),s=this._addToViewStack(e,i);e.setTrackFocus(!0),e.setParent(this),this.trigger("viewAdd",{view:e,siblingView:s}),i&&this.activateView(e)}_addToViewStack(e,t){let i,s=this.viewStack.indexOf(e);if(s>-1)return this.viewStack[s-1];if(!Vr.hasViewTab(e))return this.viewStack.unshift(e),this._addDestroyListener(e),i;if(!this.currentView||!t)return i=this.viewStack[this.viewStack.length-1],this.viewStack.push(e),this._addDestroyListener(e),i;let r=this.viewStack.indexOf(this.currentView);return i=this.viewStack[r],this.viewStack.splice(r+1,0,e),i}_addDestroyListener(e){e.one("destroy",this._viewDestroyedHandler)}_removeDestroyListener(e){e.off("destroy",this._viewDestroyedHandler)}_onViewDestroyed(e){let t=e.source;me.remove(this.viewStack,t),this.currentView===t&&(this.rendered&&t.remove(),this.currentView=null)}removeView(e,t){if(!e)return;e.setTrackFocus(!1),t=x.nvl(t,!0);let i,s=this.viewStack.indexOf(e);this.currentView===e?this.currentView=null:t=!1,s>-1&&(t&&(s-1>=0?i=this.viewStack[s-1]:s+1<this.viewStack.length&&(i=this.viewStack[s+1])),this.viewStack.splice(s,1),e.rendered&&(this._removeViewInProgress++,e.remove(),this._removeViewInProgress--),this.trigger("viewRemove",{view:e}),0===this._removeViewInProgress&&(i&&this.activateView(i),this.rendered&&this.viewContent.invalidateLayoutTree()))}getController(){return this.controller}viewCount(){return this.viewStack.length}hasViews(){return this.viewStack.length>0}hasView(e){return this.viewStack.filter((t=>t===e)).length>0}getViews(e){return this.viewStack.filter((t=>!e||e===t.displayViewId))}}class zr extends _r{constructor(e){super(),this.tabBox=e}layout(e){let t,i,s,r=fr.get(e),n=fr.get(this.tabBox.$viewContent);t=r.availableSize({exact:!0}).subtract(r.insets()),s=this._layoutTabArea(t),i=t.subtract(n.margins()),i.height-=s.height,n.setSize(i)}_layoutTabArea(e){if(!this.tabBox.rendered)return new sr(0,0);let t=fr.get(this.tabBox.$tabArea),i=t.prefSize(),s=t.margins(),r=new sr(e.width,i.height+s.top+s.bottom);return t.setSize(r),r}preferredLayoutSize(e,t){t=t||{};let i=fr.get(e),s=fr.get(this.tabBox.$viewContent),r=fr.get(this.tabBox.$tabArea),n=new sr,o=new sr;return t.heightHint=null,r.isVisible()&&(n=r.prefSize().add(r.margins())),o=s.prefSize(t).add(i.insets()).add(s.margins()),new sr(Math.max(n.width,o.width),o.height+n.height)}}class Gr extends _r{constructor(e){super(),this.tabBox=e}layout(e){let t=this.tabBox.currentView;if(!t||!t.rendered||!t.htmlComp)return;let i=fr.get(e),s=i.availableSize({exact:!0}).subtract(i.insets()).subtract(t.htmlComp.margins());t.htmlComp.setSize(s)}preferredLayoutSize(e){let t=this.tabBox.currentView;if(!t||!t.rendered||!t.htmlComp)return new sr;let i=fr.get(e);return t.htmlComp.prefSize().add(i.insets()).add(t.htmlComp.margins())}}const Ur={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,ESCAPE:27,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,SPACE:32,PRINT_SCREEN:44,INSERT:45,DELETE:46,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,WIN_LEFT:91,WIN_RIGHT:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,MULTIPLY:106,ADD:107,SUBTRACT:109,DECIMAL_POINT:110,DIVIDE:111,NUM_LOCK:144,SCROLL_LOCK:145,SEMICOLON:186,DASH:189,COMMA:188,POINT:190,FORWARD_SLASH:191,OPEN_BRACKET:219,BACK_SLASH:220,CLOSE_BRACKET:221,SINGLE_QUOTE:222,ANGULAR_BRACKET:226,codesToKeys:{8:"Backspace",9:"Tab",13:"Enter",16:"SHIFT",17:"CTRL",18:"ALT",19:"PAUSE",20:"Caps lock",27:"Esc",33:"Page up",34:"Page down",35:"End",36:"Home",37:"Left",38:"UP",39:"Right",40:"Down",32:"Space",44:"Print screen",45:"Insert",46:"Delete",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",91:"WIN_LEFT",92:"WIN_RIGHT",93:"SELECT",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",96:"NUMPAD_0",97:"NUMPAD_1",98:"NUMPAD_2",99:"NUMPAD_3",100:"NUMPAD_4",101:"NUMPAD_5",102:"NUMPAD_6",103:"NUMPAD_7",104:"NUMPAD_8",105:"NUMPAD_9",106:"MULTIPLY",107:"+",109:"SUBTRACT",110:"DECIMAL_POINT",111:"/",144:"Num lock",145:"Scroll lock",186:"ü",189:"-",188:",",190:".",191:"§",219:"'",220:"ä",221:"^",222:"ö",226:"<"},browserMap:{[Qe.Browser.FIREFOX]:{226:60},[Qe.Browser.SAFARI]:{226:188,ctrl:{226:192}}},browserMapReverse:{},forBrowser:(e,t)=>Ur.mapKey(Ur.browserMap,e,t),fromBrowser:e=>Ur.mapKey(Ur.browserMapReverse,e),mapKey:(e,t,i)=>{let s=e[Qe.get().browser];return s&&i&&(s=s[i]),s&&s.hasOwnProperty(t)?s[t]:t}};for(let e in Ur.browserMap){let t={},i=Ur.browserMap[e];for(let e in i){t[i[e]]=parseInt(e,10)}Ur.browserMapReverse[e]=t}const Kr=Ur;class qr{constructor(e,t){this.keyStroke=e,this.which=t,this.ctrl=e.ctrl,this.alt=e.alt,this.shift=e.shift,this.keyStrokeMode=e.keyStrokeMode}render(e,t){return this.$drawingArea=this.keyStroke.renderKeyBox(e,t),!!this.$drawingArea}remove(){this.keyStroke.removeKeyBox(this.$drawingArea),this.$drawingArea=null}toKeyStrokeString(){let e="";this.ctrl&&(e+="Ctrl-"),this.alt&&(e+="Alt-"),this.shift&&(e+="Shift-");let t=Kr.codesToKeys[this.which];return void 0===t&&(t=this.which),e+=t,e}}function jr(e,t,i){if(!((i&e)>0))return(t&e)>0}const Yr={ALT:16,ALT_UNDEFINED:32,CTRL:1,CTRL_UNDEFINED:2,NONE:0,SHIFT:4,SHIFT_UNDEFINED:8,isAlt:function(e){return jr(e,16,32)},isCtrl:function(e){return jr(e,1,2)},isShift:function(e){return jr(e,4,8)},toModifierBitMask:function(e){let t=0;return t|=e.ctrlKey?1:0,t|=e.altKey?16:0,t|=e.shiftKey?4:0,t}};class Xr{constructor(e,t,i,s,r,n){this.which=e,this.ctrlKey=t,this.metaKey=!1,this.altKey=i,this.shiftKey=s,this.target=n,this.type=r,this._propagationStopped=!1,this._immediatePropagationStopped=!1,this._defaultPrevented=!1}stopPropagation(){this._propagationStopped=!0}stopImmediatePropagation(){this._immediatePropagationStopped=!0}preventDefault(){this._defaultPrevented=!0}isPropagationStopped(){return this._propagationStopped}isImmediatePropagationStopped(){return this._immediatePropagationStopped}isDefaultPrevented(){return this._defaultPrevented}isAnyPropagationStopped(){return this._propagationStopped||this._immediatePropagationStopped}}class Jr{constructor(){this.session=null,this.helpKeyStroke=U.parseKeyStroke("F1"),this.swallowF1=!0,this._helpRendered=!1,this._renderedKeys=[],this.events=this._createEventSupport(),this.filters=[]}init(e){this.session=e.session,this.installTopLevelKeyStrokeHandlers(this.session.$entryPoint)}installTopLevelKeyStrokeHandlers(e){let t=e.window(!0),i=e=>e.which!==Kr.F1,s=e=>e.which!==Kr.BACKSPACE;this.swallowF1&&e.keydown(i).keyup(i),e.keydown(s).keyup(s),"onhelp"in t&&(t.onhelp=rs.returnFalse)}installKeyStrokeContext(e){if(e&&!e._handler){if(!e.$getBindTarget())throw new Error("missing bind-target for KeyStrokeContext: "+e);e._handler=this._onKeyEvent.bind(this,e),e._handler.$target=e.$getBindTarget(),e._handler.$target.on("keydown",e._handler),e._handler.$target.on("keyup",e._handler)}}uninstallKeyStrokeContext(e){e&&e._handler&&(e._handler.$target.off("keydown",e._handler),e._handler.$target.off("keyup",e._handler),e._handler.$target=null,e._handler=null)}_renderKeys(e,t){let i=t.originalEvent.keyStrokeContexts||[],s=[];e.keyStrokes.filter((e=>{let t=e.renderingHints.render;return"function"==typeof t?t.call(e):t})).forEach((function(r){r.enabledByFilter=this._filter(r);let n=(r.field?r.field.$container:null)||e.$getScopeTarget();r.keys().forEach((function(o){let l=new Xr(o.which,o.ctrl,o.alt,o.shift,o.keyStrokeMode,t.target);s.indexOf(o.toKeyStrokeString())<0&&e.accept(l)&&r.accept(l)&&!this._isPreventedByDescendantContext(o,t.target,i)&&(o.render(n,l)&&this._renderedKeys.push(o),l.isImmediatePropagationStopped()&&s.push(o.toKeyStrokeString()))}),this)}),this),i.push(e),t.originalEvent.keyStrokeContexts=i}_isPreventedByDescendantContext(e,t,i){let s=new Xr(e.which,e.ctrl,e.alt,e.shift,e.keyStrokeMode,t);return i.some((function(e){return e.accept(s),!!s.isAnyPropagationStopped()||e.keyStrokes.some((e=>(e.accept(s),s.isAnyPropagationStopped())),this)}),this)}_handleKeyStrokeEvent(e,t){if(!e.accept(t))return;if(e.keyStrokes.length<1)return;t.which>=96&&t.which<=105&&(t.which=t.which-48),e.keyStrokes.slice().some((function(i){return!!i.accept(t)&&(this.invokeAcceptInputOnActiveValueField(i,e)&&du.invokeValueFieldAcceptInput(t.target),!this._filter(i)||(this.trigger("keyStroke",{keyStroke:i,keyStrokeContext:e}),i.invokeHandle(t),t.isImmediatePropagationStopped()))}),this)}_filter(e){for(let t=0;t<this.filters.length;t++)if(!this.filters[t].filter(e))return!1;return!0}invokeAcceptInputOnActiveValueField(e,t){return!e.preventInvokeAcceptInputOnActiveValueField&&(e.invokeAcceptInputOnActiveValueField||t.invokeAcceptInputOnActiveValueField)}_isHelpKeyStroke(e){return U.acceptEvent(this.helpKeyStroke,e)}_installHelpDisposeListener(e){let t,i=n()(e.currentTarget),s=i.window(),r=i.entryPoint();return t=function(){r.off("keyup",t),s.off("blur",t),this._helpRendered=!1,this._renderedKeys.forEach((e=>{e.remove()})),this._renderedKeys=[]}.bind(this),r.on("keyup",t),s.on("blur",t),!1}_onKeyEvent(e,t){if(this.session.focusManager.isElementCovertByGlassPane(e.$getScopeTarget())){let t=n().grep(e.keyStrokes,(e=>e.keyStrokeFirePolicy===vo.KeyStrokeFirePolicy.ALWAYS));if(0===t.length)return;(e=e.clone()).keyStrokes=t}this._isHelpKeyStroke(t)?!t.originalEvent.renderingHelp&&this._helpRendered||(t.originalEvent.renderingHelp=!0,this._helpRendered=!0,this._installHelpDisposeListener(t),this._renderKeys(e,t)):this._handleKeyStrokeEvent(e,t)}addFilter(e){me.pushSet(this.filters,e)}removeFilter(e){me.remove(this.filters,e)}_createEventSupport(){return new dt}trigger(e,t){(t=t||{}).source=this,this.events.trigger(e,t)}one(e,t){this.events.one(e,t)}on(e,t){return this.events.on(e,t)}off(e,t){this.events.off(e,t)}addListener(e){this.events.addListener(e)}removeListener(e){this.events.removeListener(e)}}class Zr{constructor(e){this.$bindTarget=null,this.$scopeTarget=null,this.keyStrokes=[],this.stopPropagationInterceptors=[],this._stopPropagationKeys={},this.invokeAcceptInputOnActiveValueField=!1,e=e||{},n().extend(this,e)}registerStopPropagationKeys(e,t){this._stopPropagationKeys[e]=this._stopPropagationKeys[e]||[],me.pushAll(this._stopPropagationKeys[e],t)}unregisterStopPropagationKeys(e,t){this._stopPropagationKeys[e]&&me.removeAll(this._stopPropagationKeys[e],t)}registerStopPropagationInterceptor(e){this.stopPropagationInterceptors.push(e)}accept(e){return!!this._accept(e)&&(this._applyPropagationFlags(e),!0)}_applyPropagationFlags(e){let t=Yr.toModifierBitMask(e),i=this._stopPropagationKeys[t];i&&x.isOneOf(e.which,i)&&e.stopPropagation(),this.stopPropagationInterceptors.forEach((t=>{t(e)}),this)}_accept(e){return!0}registerKeyStroke(e){this.registerKeyStrokes(e)}registerKeyStrokes(e){me.ensure(e).map(this._resolveKeyStroke,this).filter((function(e){return-1===this.keyStrokes.indexOf(e)}),this).forEach((function(e){this.keyStrokes.push(e),e.field&&!e.destroyListener&&(e.destroyListener=function(t){this.unregisterKeyStroke(e),e.destroyListener=null}.bind(this),e.field.one("destroy",e.destroyListener))}),this)}unregisterKeyStroke(e){this.unregisterKeyStrokes(e)}unregisterKeyStrokes(e){me.ensure(e).map(this._resolveKeyStroke,this).forEach((function(e){me.remove(this.keyStrokes,e)&&e.field&&e.destroyListener&&(e.field.off("destroy",e.destroyListener),e.destroyListener=null)}),this)}_resolveKeyStroke(e){if(e instanceof U)return e;if(e instanceof vo)return e.actionKeyStroke;throw new Error("unsupported keystroke: "+e)}$getBindTarget(){return"function"==typeof this.$bindTarget?this.$bindTarget():this.$bindTarget}$getScopeTarget(){return"function"==typeof this.$scopeTarget?this.$scopeTarget():this.$scopeTarget}clone(){return new Zr(Ai.copyOwnProperties(this,{}))}}class Qr extends Zr{constructor(e){super(),this.invokeAcceptInputOnActiveValueField=!0;let t=[Kr.RIGHT,Kr.LEFT,Kr.HOME,Kr.END];this.registerStopPropagationKeys(Yr.CTRL,[Kr.A,Kr.C,Kr.Y,Kr.V,Kr.Z,Kr.BACKSPACE].concat(t)),this.registerStopPropagationKeys(Yr.CTRL|Yr.SHIFT,t),this.registerStopPropagationKeys(Yr.SHIFT,t),this.registerStopPropagationKeys(Yr.NONE,[Kr.SEMICOLON,Kr.DASH,Kr.COMMA,Kr.POINT,Kr.FORWARD_SLASH,Kr.OPEN_BRACKET,Kr.BACK_SLASH,Kr.CLOSE_BRACKET,Kr.SINGLE_QUOTE,Kr.MULTIPLY,Kr.ADD,Kr.SUBTRACT,Kr.DECIMAL_POINT,Kr.DIVIDE,Kr.NUMPAD_0,Kr.NUMPAD_1,Kr.NUMPAD_2,Kr.NUMPAD_3,Kr.NUMPAD_4,Kr.NUMPAD_5,Kr.NUMPAD_6,Kr.NUMPAD_7,Kr.NUMPAD_8,Kr.NUMPAD_9,Kr.MULTIPLY,Kr.BACKSPACE,Kr.DELETE,Kr.SPACE].concat(t)),this.setMultiline(e)}setMultiline(e){let t=[Kr.UP,Kr.DOWN];e?(this.registerStopPropagationKeys(Yr.CTRL,t),this.registerStopPropagationKeys(Yr.CTRL|Yr.SHIFT,t),this.registerStopPropagationKeys(Yr.SHIFT,t),this.registerStopPropagationKeys(Yr.NONE,t)):(this.unregisterStopPropagationKeys(Yr.CTRL,t),this.unregisterStopPropagationKeys(Yr.CTRL|Yr.SHIFT,t),this.unregisterStopPropagationKeys(Yr.SHIFT,t),this.unregisterStopPropagationKeys(Yr.NONE,t))}_applyPropagationFlags(e){super._applyPropagationFlags(e),e.isPropagationStopped()||this._isInputField(e.target)&&(this._isLetterKeyStroke(e)||this._isNumberKeyStroke(e))&&e.stopPropagation()}_isInputField(e){if(e&&e.isContentEditable)return!0;let t=n()(e);return t.is("input:text")||t.is("input:file")||t.is("textarea")}_isNumberKeyStroke(e){return!e.ctrlKey&&e.which>=Kr[0]&&e.which<=Kr[9]}_isLetterKeyStroke(e){return!e.ctrlKey&&e.which>=Kr.A&&e.which<=Kr.Z}}class en extends U{constructor(){super(),this.ranges=[]}registerRange(e,t){this.ranges.push({from:e,to:t})}_accept(e){return(e.ctrlKey||e.metaKey)===this.ctrl&&e.altKey===this.alt&&e.shiftKey===this.shift&&this.ranges.some((function(t){return e.which>=this._getRangeFrom(t)&&e.which<=this._getRangeTo(t)}),this)}keys(){let e=[];return this.ranges.forEach((function(t){let i=this._getRangeFrom(t),s=this._getRangeTo(t);for(let t=i;t<=s;t++)e.push(new qr(this,t))}),this),e}_getRangeFrom(e){return"function"==typeof e.from?e.from():e.from}_getRangeTo(e){return"function"==typeof e.to?e.to():e.to}}class tn extends U{constructor(e,t,i){super(),this._contextFunction=t,this._bindObject=i||this,this.field=e,this.renderingHints.render=!1,this.which=[Kr.SELECT],this.ctrl=!1,this.shift=!1,this.stopPropagation=!0,this.inheritAccessibility=!1}handle(e){this._contextFunction.call(this._bindObject,e)}}class sn extends U{constructor(e,t){super(),this.field=e,this.which=t,this.stopPropagation=!0,this.renderingHints.render=!0,this.renderingHints.$drawingArea=(e,t)=>t._$activeElement}_accept(e){return!!super._accept(e)&&(e._$activeElement=this.field.$container.activeElement(),!0)}handle(e){e._$activeElement.trigger({type:"click",which:1})}}class rn extends U{constructor(e,t){super(),this.session=e,this.field=t,this.which=[Kr.LEFT,Kr.RIGHT],this.renderingHints.render=!1,this.stopPropagation=!0,this.keyStrokeMode=U.Mode.DOWN}handle(e){let t=this.field.$container.activeElement(!0),i=this.field.$container.find(":focusable");switch(e.which){case Kr.RIGHT:this._handleNext(t,i);break;case Kr.LEFT:this._handlePrevious(t,i)}}_handleNext(e,t){let i;i=e===t.last()[0]?t.first():$(t[t.index(e)+1]),this.session.focusManager.requestFocus(i),i.addClass("keyboard-navigation")}_handlePrevious(e,t){let i;i=e===t.first()[0]?t.last():$(t[t.index(e)-1]),this.session.focusManager.requestFocus(i),i.addClass("keyboard-navigation")}}class nn extends U{constructor(e,t){super(),this.field=e,this.which=[Kr.ESC],this.renderingHints.render=!0,this.stopPropagation=!0,this.renderingHints={render:!!t,$drawingArea:t},this.inheritAccessibility=!1}handle(e){this.field.close()}}class on extends nn{constructor(e,t){super(e,t)}handle(e){this.field.abort()}}class ln extends U{constructor(e,t){super(),this.field=t,this.parseAndSetKeyStroke(e),this.renderingHints.offset=16,this.renderingHints.hAlign=ns.RIGHT,this.renderingHints.render=()=>{let e=this.field.getTab();return e&&e.rendered},this.renderingHints.$drawingArea=(e,t)=>this.field.getTab().$container,this.inheritAccessibility=!1}handle(e){this.field.select()}}class an extends Y{constructor(){super(),this.comparator=null,this.collapseStyle=null,this.exclusiveExpand=!0,this.groups=[],this.scrollable=!0,this.$container=null,this.htmlComp=null,this._addWidgetProperties(["groups"]),this._groupPropertyChangeHandler=this._onGroupPropertyChange.bind(this)}_init(e){super._init(e),this._initGroups(this.groups),this._setExclusiveExpand(this.exclusiveExpand)}_createLoadingSupport(){return new z({widget:this})}_render(){this.$container=this.$parent.appendDiv("accordion"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout())}_createLayout(){return new dn}_renderProperties(){super._renderProperties(),this._renderScrollable(),this._renderGroups()}insertGroup(e){this.insertGroups([e])}insertGroups(e){e=me.ensure(e),this.setGroups(this.groups.concat(e))}deleteGroup(e){this.deleteGroups([e])}deleteGroups(e){e=me.ensure(e);let t=this.groups.slice();me.removeAll(t,e),this.setGroups(t)}deleteAllGroups(){this.setGroups([])}_initGroups(e){this.groups.forEach((function(e){this._initGroup(e)}),this)}setGroups(e){if(e=me.ensure(e),Ai.equals(this.groups,e))return;e=this._createChildren(e);let t=me.diff(this.groups,e),i=me.diff(e,this.groups);this._deleteGroups(t),this._insertGroups(i),this._sort(e),this._updateGroupOrder(e),this._setProperty("groups",e),i.length>0&&this._updateExclusiveExpand(),this.rendered&&(this._updateFirstLastMarker(),this.invalidateLayoutTree())}_insertGroups(e){e.forEach((function(e){this._insertGroup(e)}),this)}_insertGroup(e){this._initGroup(e),this.rendered&&this._renderGroup(e)}_initGroup(e){e.setParent(this),e.on("propertyChange",this._groupPropertyChangeHandler),null!==this.collapseStyle&&e.setCollapseStyle(this.collapseStyle),this.setProperty("collapseStyle",e.collapseStyle)}_renderGroup(e){e.render()}_deleteGroups(e){e.forEach((function(e){this._deleteGroup(e)}),this)}_deleteGroup(e){e.off("propertyChange",this._groupPropertyChangeHandler),e.owner===this?e.destroy():this.rendered&&e.remove()}_renderGroups(){this.groups.forEach((function(e){this._renderGroup(e)}),this),this._updateFirstLastMarker(),this.invalidateLayoutTree()}setComparator(e){this.comparator!==e&&(this.comparator=e)}sort(){let e=this.groups.slice();this._sort(e),this._updateGroupOrder(e),this._setProperty("groups",e)}_sort(e){null!==this.comparator&&e.sort(this.comparator)}_updateGroupOrder(e){if(!this.rendered)return;let t=!1;e.forEach((function(e,i){(this.groups[i]!==e||t)&&(t=!0,e.$container.appendTo(this.$container))}),this)}_updateFirstLastMarker(){J.updateFirstLastMarker(this.groups)}setScrollable(e){this.setProperty("scrollable",e)}_renderScrollable(){this.scrollable?this._installScrollbars({axis:"y"}):this._uninstallScrollbars(),this.$container.toggleClass("scrollable",this.scrollable),this.invalidateLayoutTree()}getFocusableElement(){let e=J.findFirstFocusableWidget(this.groups,this);return e?e.getFocusableElement():null}setExclusiveExpand(e){this.setProperty("exclusiveExpand",e)}_setExclusiveExpand(e){this._setProperty("exclusiveExpand",e),this._updateExclusiveExpand()}_updateExclusiveExpand(){if(!this.exclusiveExpand)return;let e=me.find(this.groups,(e=>e.visible&&!e.collapsed));this._collapseOthers(e)}setCollapseStyle(e){this.groups.forEach((t=>{t.setCollapseStyle(e)})),this.setProperty("collapseStyle",e)}_collapseOthers(e){e&&e.collapsible&&this.groups.forEach((t=>{t!==e&&t.collapsible&&t.setCollapsed(!0)}))}_onGroupPropertyChange(e){"collapsed"===e.propertyName?this._onGroupCollapsedChange(e):"visible"===e.propertyName&&this._updateFirstLastMarker()}_onGroupCollapsedChange(e){!e.newValue&&this.exclusiveExpand&&this._collapseOthers(e.source)}}class hn extends j{constructor(){super()}}class dn extends Br{_getChildren(e){return e.children(".group")}layout(e){super.layout(e),Yn.update(e,!0)}}class un extends Y{constructor(){super(),this._addWidgetProperties(["buttons"]),this._addPreserveOnPropertyChangeProperties(["defaultButtonIndex"]),this.$container=null,this.buttons=[],this.defaultButtonIndex=0}_render(){this.$container=this.$parent.appendDiv("box-buttons")}_renderProperties(){super._renderProperties(),this._renderButtons(),this._renderDefaultButtonIndex()}_renderButtons(){this.buttons.filter((e=>!e.rendered)).forEach((e=>{e.render(),e.$container.unfocusable().addClass("button box-button")}),this)}_renderDefaultButtonIndex(){for(let e=0;e<this.buttons.length;e++){let t=this.buttons[e];t.$container.toggleClass("default",t.isVisible()&&t.enabledComputed&&this.isDefaultButtonIndex(e))}}isDefaultButtonIndex(e){return e===this.defaultButtonIndex}addButton(e,t){(e=e||{}).parent=this,e.tabbable=!0,e.actionStyle=vo.ActionStyle.BUTTON,e.preventDoubleClick=!0;let i=x.create("Action",e,t);return this.buttons.push(i),i}setDefaultButtonIndex(e){this.setProperty("defaultButtonIndex",e)}buttonCount(){return this.buttons.length}}class cn extends Y{constructor(){super(),this._addWidgetProperties(["widgets"]),this.statusEnabled=!0,this.statusItemHtml="•",this.currentItem=0,this.moveThreshold=.25,this.widgets=[],this.$carouselFilmstrip,this.$carouselItems=[],this.$carouselStatus,this.$carouselStatusItems=[],this.positionX=0}_init(e){super._init(e),this._setGridData(this.gridData),this.widgets=me.ensure(this.widgets)}_setGridData(e){this._setProperty("gridData",new lu(e))}_render(){this.$container=this.$parent.appendDiv("carousel"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new pn(this)),this.$carouselFilmstrip=this.$container.appendDiv("carousel-filmstrip"),this._registerCarouselFilmstripEventListeners(),this.htmlCompFilmstrip=fr.install(this.$carouselFilmstrip,this.session)}_remove(){this._removeStatus(),super._remove()}_renderProperties(){super._renderProperties(),this._renderWidgets(),this._renderCurrentItem(),this._renderStatusEnabled()}setStatusEnabled(e){this.setProperty("statusEnabled",e)}_renderStatusEnabled(){this.statusEnabled?(this._renderStatus(),this._renderStatusItems(),this._renderCurrentStatusItem()):this._removeStatus(),this.invalidateLayoutTree()}_renderStatus(){this.$carouselStatus||(this.$carouselStatus=this.$container.appendDiv("carousel-status"),this.htmlCompStatus=fr.install(this.$carouselStatus,this.session))}_removeStatus(){this.$carouselStatus&&(this.$carouselStatus.remove(),this.$carouselStatus=null)}_renderStatusItems(){this.$carouselStatus&&(this.$carouselStatusItems=[],this.$carouselStatus.empty(),this.$carouselItems.forEach((()=>{let e=this.$carouselStatus.appendDiv("status-item");e.html(this.statusItemHtml),this.$carouselStatusItems.push(e)})))}_renderCurrentStatusItem(){this.$carouselStatus&&this.$carouselStatusItems.forEach(((e,t)=>{e.toggleClass("current-item",t===this.currentItem)}))}recalcTransformation(){this.positionX=this.currentItem*this.$container.width()*-1,this.$carouselFilmstrip.css({transform:"translateX("+this.positionX+"px)"})}setCurrentItem(e){this.setProperty("currentItem",e)}_renderCurrentItem(){this._renderItemsInternal(void 0,!1),this._renderCurrentStatusItem(),this.invalidateLayoutTree()}_renderItemsInternal(e,t){e=e||this.currentItem,t||this.widgets.forEach(((t,i)=>{t.rendered&&(i<e-1||i>e+1)&&t.remove()}),this);for(let t=Math.max(e-1,0);t<Math.min(e+2,this.widgets.length);t++){let e=this.widgets[t];e.rendered||(e.render(this.$carouselItems[t]),e.htmlComp.revalidateLayout())}}setWidgets(e){this.setProperty("widgets",e)}_renderWidgets(){this.$carouselFilmstrip.empty(),this.$carouselItems=this.widgets.map((function(e){let t=this.$carouselFilmstrip.appendDiv("carousel-item");return fr.install(t,this.session).setLayout(new Or),e.cssClassAsArray().forEach((e=>{t.addClass(e+"-carousel-item")})),t}),this),this._renderStatusItems(),this.setCurrentItem(0)}_registerCarouselFilmstripEventListeners(){let e=this.$carouselFilmstrip.window();this.$carouselFilmstrip.on("mousedown touchstart",(t=>{let i=Ye.pageX(t),s=this.positionX,r=this.$container.width()-this.$carouselFilmstrip.width(),n=this.$container.width();e.on("mousemove.carouselDrag touchmove.carouselDrag",(e=>{let t=Ye.pageX(e),o=s+(t-i);if(o!==this.positionX&&o<=0&&o>=r){this.$carouselFilmstrip.css({transform:"translateX("+o+"px)"}),this.positionX=o;let e=o/n*-1;this._renderItemsInternal(o<s?Math.floor(e):Math.ceil(e),!0)}})),e.on("mouseup.carouselDrag touchend.carouselDrag touchcancel.carouselDrag",(t=>{e.off(".carouselDrag");let i=this.positionX%n,r=this.currentItem;this.positionX<s&&i/n<0-this.moveThreshold?r=Math.ceil(this.positionX/n*-1):this.positionX>s&&i/n>=this.moveThreshold-1&&(r=Math.floor(this.positionX/n*-1)),this.setCurrentItem(r),0!==i&&(this.positionX=r*n*-1,this.recalcTransformation())}))}))}}class pn extends _r{constructor(e){super(),this.carousel=e}layout(e){this.carousel.recalcTransformation();let t=this.carousel.htmlComp.availableSize().subtract(this.carousel.htmlComp.insets()).subtract(this.carousel.htmlCompFilmstrip.margins()),i=this.carousel.htmlComp.availableSize().subtract(this.carousel.htmlComp.insets()).subtract(this.carousel.htmlCompFilmstrip.margins());if(this.carousel.statusEnabled&&this.carousel.htmlCompStatus){let e=this.carousel.htmlCompStatus.size().add(this.carousel.htmlCompStatus.margins());t.height-=e.height,i.height-=e.height}let s=this.carousel.$carouselItems;t.width=s.length*t.width,this.carousel.htmlCompFilmstrip.setSize(t),s.forEach((e=>{fr.get(e).setSize(i)}))}preferredLayoutSize(e){let t=this.carousel.currentItem,i=new sr(1,1);return t<this.carousel.$carouselItems.length&&t>=0&&(i=fr.get(this.carousel.$carouselItems[t]).prefSize()),i.height+=this.carousel.htmlCompStatus.size().height,i}}class gn{constructor(){this.cssClass=null,this.editable=null,this.errorStatus=null,this.horizontalAlignment=null,this.htmlEnabled=null,this.iconId=null,this.mandatory=null,this._cachedEncodedText=null,this.text=null,this.value=null,this.tooltipText=null,this.sortCode=null}init(e){this._init(e)}_init(e){n().extend(this,e)}update(e){this.setText(e.text),n().extend(this,e)}setEditable(e){this.editable=e}setMandatory(e){this.mandatory=e}setHorizontalAlignment(e){this.horizontalAlignment=e}setValue(e){this.value=e}setErrorStatus(e){this.errorStatus=e}setText(e){let t=this.text;this.text=e,t!==this.text&&(this._cachedEncodedText=null)}setIconId(e){this.iconId=e}encodedText(){return this._cachedEncodedText||(this._cachedEncodedText=qt.encode(this.text)),this._cachedEncodedText}setCssClass(e){this.cssClass=e}setSortCode(e){this.sortCode=e}}class mn extends Y{constructor(){super(),this.leftVisible=!0,this.rightVisible=!0,this.horizontalAlignment=mn.HorizontalAlignment.LEFT}_render(){this.$container=this.$parent.appendDiv("collapse-handle"),this.$container.on("mousedown",this._onMouseDown.bind(this)),this.$left=this.$container.appendDiv("collapse-handle-body left"),this.$right=this.$container.appendDiv("collapse-handle-body right")}_renderProperties(){super._renderProperties(),this._renderLeftVisible(),this._renderRightVisible(),this._renderHorizontalAlignment()}setHorizontalAlignment(e){this.setProperty("horizontalAlignment",e)}_renderHorizontalAlignment(){this.$container.removeClass("left-aligned right-aligned"),this.horizontalAlignment===mn.HorizontalAlignment.LEFT?this.$container.addClass("left-aligned"):this.horizontalAlignment===mn.HorizontalAlignment.RIGHT&&this.$container.addClass("right-aligned")}setLeftVisible(e){this.setProperty("leftVisible",e)}_renderLeftVisible(){this.$left.setVisible(this.leftVisible),this._updateVisibilityClasses()}setRightVisible(e){this.setProperty("rightVisible",e)}_renderRightVisible(){this.$right.setVisible(this.rightVisible),this._updateVisibilityClasses()}_updateVisibilityClasses(){let e=this.leftVisible&&this.rightVisible;this.$container.toggleClass("both-visible",e),this.$left.toggleClass("both-visible",e),this.$right.toggleClass("both-visible",e),this.$container.toggleClass("one-visible",(this.leftVisible||this.rightVisible)&&!e)}_onLeftMouseDown(e){this.trigger("action",{left:!0})}_onRightMouseDown(e){this.trigger("action",{right:!0})}_onMouseDown(e){let t=e.target;this.$left.isOrHas(t)?this.trigger("action",{left:!0}):this.$right.isOrHas(t)?this.trigger("action",{right:!0}):this.$container.hasClass("one-visible")&&this.trigger("action",{left:this.leftVisible,right:this.rightVisible})}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(mn,"HorizontalAlignment",{LEFT:"left",RIGHT:"right"});class _n{constructor(e){let t={active:!Qe.get().supportsOnlyTouch(),restrictedFocusGain:!Qe.get().supportsOnlyTouch(),session:null};if(n().extend(this,t,e),!this.session)throw new Error("Session expected");this._focusContexts=[],this._glassPaneTargets=[],this._glassPaneDisplayParents=[],this._glassPaneRenderers=[];let i=this.session.$entryPoint,s=i.data("partid")||"0";i.attr("tabindex",s),this.restrictedFocusGain&&this.installTopLevelMouseHandlers(i),this.installFocusContext(i,wn.AUTO)}installTopLevelMouseHandlers(e){e.on("mousedown",(e=>(this._acceptFocusChangeOnMouseDown(n()(e.target))||e.preventDefault(),!0)))}activate(e){this.active!==e&&(this.active=e,n().log.isDebugEnabled()&&n().log.isDebugEnabled()&&n().log.debug("Focus manager active: "+this.active),this.active&&this.validateFocus())}installFocusContext(e,t){let i=this.evaluateFocusRule(e,t),s=new fn(e,this);return wn.PREPARE!==t&&s.ready(),this._pushIfAbsendElseMoveTop(s),i&&s.validateAndSetFocus(i),s}evaluateFocusRule(e,t){let i;return i=!t||x.isOneOf(t,wn.AUTO,wn.PREPARE)?this.findFirstFocusableElement(e):t===wn.NONE?null:t,i}uninstallFocusContext(e,t){t=n().extend({},{preventScroll:!0},t);let i=this.getFocusContext(e);if(!i)return;let s=rs.outsideFilter(i.$container);me.remove(this._focusContexts,i),i.dispose();let r=this._findActiveContext();r&&r.validateAndSetFocus(r.lastValidFocusedElement,s,t)}isFocusContextInstalled(e){return!!this.getFocusContext(e)}activateFocusContext(e){let t=e;e instanceof fn||(t=this.getFocusContext(e)),t&&!this.isElementCovertByGlassPane(t.$container)&&(this._pushIfAbsendElseMoveTop(t),this.validateFocus())}isElementCovertByGlassPane(e,t){let i=this._glassPaneTargets;return t&&(i=this._glassPaneTargets.filter(t)),!!i.length&&(this._glassPaneDisplayParents.indexOf(x.widget(e))>=0||i.some((t=>0!==n()(e).closest(t).length)))}registerGlassPaneTarget(e){this._glassPaneTargets.push(e),this.validateFocus()}registerGlassPaneDisplayParent(e){this._glassPaneDisplayParents.push(e)}registerGlassPaneRenderer(e){this._glassPaneRenderers.push(e)}unregisterGlassPaneTarget(e){me.$remove(this._glassPaneTargets,e),this.validateFocus()}unregisterGlassPaneDisplayParent(e){me.remove(this._glassPaneDisplayParents,e)}unregisterGlassPaneRenderer(e){me.remove(this._glassPaneRenderers,e)}rerenderGlassPanes(){this._glassPaneRenderers.slice().forEach((e=>{e.removeGlassPanes(),e.renderGlassPanes()}))}validateFocus(e){let t=this._findActiveContext();t&&t.validateFocus(e)}requestFocusIfReady(e,t){return this.requestFocus(e,t,{onlyIfReady:!0})}requestFocus(e,t,i){if(i="boolean"==typeof i?{onlyIfReady:i}:i||{},!(e=e instanceof n()?e[0]:e))return!1;let s=this._findFocusContextFor(e);if(s){if(x.nvl(i.onlyIfReady,!1)&&!s.prepared)return!1;s.validateAndSetFocus(e,t,i)}return yn.isActiveElement(e)}findFirstFocusableElement(e,t){let i,s,r,o,l,a,h,d,u,c=e.entryPoint(),p=e.find(":focusable").addBack(":focusable").not(c).filter(t||rs.returnTrue);for(o=0;o<p.length;o++)if(l=p[o],a=n()(l),!this.isElementCovertByGlassPane(l)&&!(a.is(".prevent-initial-focus")||a.closest(".prevent-initial-focus").length>0))if(i||a.hasClass("button")||a.hasClass("menu-item")||(i=l),!s&&a.is(".default")&&(s=l),h=a.parents(".menubar"),d=a.parents(".tab-box-header"),u=a.parents(".box-buttons"),(h.length>0||d.length>0||u.length>0)&&!r&&(a.hasClass("button")||a.hasClass("menu-item")))r=l;else if(!h.length&&!d.length&&!u.length&&"function"==typeof l.focus)return l;if(s)return s;if(r){if(r!==i&&i){let e=n()(r).parents(".tab-box-header"),t=n()(i);if(n()(i).parents(".tab-box-header").length>0&&e.length>0&&t.is(".tab-item"))return i}return r}return i}_findActiveContext(){return me.last(this._focusContexts)}getFocusContext(e){return me.find(this._focusContexts,(t=>t.$container===e))}_findFocusContextFor(e){e=n().ensure(e);let t=null,i=Number.MAX_VALUE;return this._focusContexts.forEach((s=>{if(!s.$container.isOrHas(e))return;e.parentsUntil(s.$container).length<i&&(t=s)})),t}_acceptFocusChangeOnMouseDown(e){return!e.hasClass("glasspane")&&(!this.isElementCovertByGlassPane(e)&&(!!yn.isFocusableByMouse(e)&&(!!e.is(":focusable")||(!!yn.isSelectableText(e)||!!yn.containsParentFocusableByMouse(e,e.entryPoint())))))}_pushIfAbsendElseMoveTop(e){me.remove(this._focusContexts,e),this._focusContexts.push(e)}}class fn{constructor(e,t){this.$container=e,this.focusManager=t,this.lastValidFocusedElement=null,this.focusedElement=null,this.prepared=!1,this._keyDownListener=this._onKeyDown.bind(this),this._focusInListener=this._onFocusIn.bind(this),this._focusOutListener=this._onFocusOut.bind(this),this._unfocusableListener=this._onUnfocusable.bind(this),this._removeListener=this._onRemove.bind(this)}ready(){this.prepared||(this.$container.on("keydown",this._keyDownListener).on("focusin",this._focusInListener).on("focusout",this._focusOutListener).on("hide disable",this._unfocusableListener),this.prepared=!0,this.lastValidFocusedElement&&this.restoreFocus())}dispose(){this.prepared&&(this.$container.off("keydown",this._keyDownListener).off("focusin",this._focusInListener).off("focusout",this._focusOutListener).off("hide disable",this._unfocusableListener),n()(this.focusedElement).off("remove",this._removeListener))}_onKeyDown(e){if(e.which===Kr.TAB){let t,i=this.$container.activeElement(!0),s=this.$container.find(":tabbable:visible"),r=s.first()[0],o=s.last()[0],l=s.index(i);if(e.shiftKey?!o||i!==r&&i!==this.$container[0]?l>0&&(t=s.get(l-1)):(n().suppressEvent(e),this.validateAndSetFocus(o),t=o):!r||i!==o&&i!==this.$container[0]?l<s.length-1&&(t=s.get(l+1)):(n().suppressEvent(e),this.validateAndSetFocus(r),t=r),!t)return;let a=n()(t);a.addClass("keyboard-navigation");let h=pr.offsetBounds(a),d=a.scrollParent();Yn.isLocationInView(new nr(h.x,h.y),d)||Yn.scrollTo(d,a)}}_onFocusIn(e){n()(e.target).on("remove",this._removeListener),this.focusedElement=e.target,e.target!==this.$container.entryPoint(!0)&&(this.focusManager._pushIfAbsendElseMoveTop(this),this.validateAndSetFocus(e.target),e.stopPropagation())}_onFocusOut(e){n()(e.target).off("remove",this._removeListener),n()(this.focusedElement).removeClass("keyboard-navigation"),this.focusedElement=null,e.stopPropagation()}_onRemove(e){this.validateAndSetFocus(null,rs.notSameFilter(e.target)),e.stopPropagation()}_onUnfocusable(e){n()(e.target).isOrHas(this.lastValidFocusedElement)&&(this.validateAndSetFocus(null,rs.notSameFilter(e.target)),e.stopPropagation())}validateAndSetFocus(e,t,i){e&&!n().contains(this.$container[0],e)&&(e=null);let s=null;s=e&&(!t||t.call(e))?e:this.focusManager.findFirstFocusableElement(this.$container,t),this.lastValidFocusedElement=s,this._focus(s,i)}validateFocus(e){this.validateAndSetFocus(this.lastValidFocusedElement,e)}restoreFocus(){this.lastValidFocusedElement&&this._focus(this.lastValidFocusedElement)}_focus(e,t){if(t=t||{},this.focusManager.active&&this.prepared){if(this.focusManager.isElementCovertByGlassPane(e)){let t=this.$container.activeElement(!0);if(e&&(!t||!this.focusManager.isElementCovertByGlassPane(t)))return!1;e=null}(e=e||this.$container.entryPoint(!0)).focus||(e=this.$container.entryPoint(!0)),yn.isActiveElement(e)||(e.focus({preventScroll:scout.nvl(t.preventScroll,!1)}),n().log.isDebugEnabled()&&n().log.debug("Focus set to "+pr.debugOutput(e)))}}}function bn(e){let t=n()(e);return!t.hasClass("unfocusable")&&!t.closest(".unfocusable").length}const yn={containsParentFocusableByMouse:function(e,t){return n()(e).parents(":focusable").not(t).filter((function(){return bn(this)})).length>0},isActiveElement:function(e){if(!e)return!1;let t;return e instanceof n()?(t=e.activeElement(!0),e=e[0]):t=(e instanceof Document?e:e.ownerDocument).activeElement,t===e},isFocusableByMouse:bn,isSelectableText:function(e){let t=n()(e),i=t;for(;"auto"===i.css("user-select");)if(i=i.parent(),i.is("body"))return!1;return"none"!==i.css("user-select")&&(!!t.is("input[disabled][type=text], textarea[disabled]")||t.text().trim().length>0)}},wn={AUTO:"auto",NONE:"none",PREPARE:"prepare"};class Cn extends Y{constructor(){super()}_render(){this.$container=this.$parent.appendDiv("glasspane").on("mousedown",this._onMouseDown.bind(this)),this.$parent.addClass("glasspane-parent"),"static"===this.$parent.css("position")&&this.$parent.css("position","relative"),this.session.focusManager.registerGlassPaneTarget(this.$parent)}_remove(){this.$parent.removeClass("glasspane-parent"),this.session.focusManager.unregisterGlassPaneTarget(this.$parent),super._remove()}_onMouseDown(e){n().suppressEvent(e)}}class vn{constructor(){this.$glassPaneTargets=null,this.glassPaneRenderer=null}ready(e){this.$glassPaneTargets=e,this.renderWhenReady()}rendererReady(e){this.glassPaneRenderer=e,this.renderWhenReady()}removeGlassPaneRenderer(e){this.glassPaneRenderer===e&&(this.glassPaneRenderer=null)}renderWhenReady(){this.glassPaneRenderer&&this.$glassPaneTargets&&this.$glassPaneTargets.length>0&&this.$glassPaneTargets.forEach((e=>{this.glassPaneRenderer.renderGlassPane(e)}))}static createFor(e,t){if(e.rendered)throw new Error("Don't call this function if widget is already rendered.");let i=new vn,s=e=>{let s=t();i.ready(s)};return e.one("render",s),e.one("destroy",(()=>{e.off("render",s)})),[i]}}class Tn{constructor(e,t){this._widget=e,this.session=e.session,this._enabled=x.nvl(t,!0),this._$glassPanes=[],this._deferredGlassPanes=[],this._resolvedDisplayParent=null,this._registeredDisplayParent=null,this._displayParentRenderHandler=this._onDisplayParentRender.bind(this),this._glassPaneRemoveHandler=this._onGlassPaneRemove.bind(this),this._glassPaneRendererRegistered=!1}renderGlassPanes(){this.findGlassPaneTargets().forEach((function(e){e instanceof vn?(e.rendererReady(this),this._deferredGlassPanes.push(e)):this.renderGlassPane(e)}),this),this._glassPaneRendererRegistered||(this.session.focusManager.registerGlassPaneRenderer(this),this._glassPaneRendererRegistered=!0)}renderGlassPane(e){if(e=n().ensure(e),this._widget.$container&&this._widget.$container[0]===e[0])return;if(this._$glassPanes.some((t=>t.parent()[0]===e[0])))return;let t=e.appendDiv("glasspane").on("mousedown",this._onMouseDown.bind(this));this._adjustGlassPaneSize(t,e);let i=t.window(!0);i&&i.popupWindow&&t.addClass("dark"),this._$glassPanes.push(t),this.session.focusManager.registerGlassPaneTarget(e),t.one("remove",this._glassPaneRemoveHandler),this._registerDisplayParent()}_adjustGlassPaneSize(e,t){let i=-t.cssBorderTopWidth(),s=-t.cssBorderBottomWidth(),r=-t.cssBorderLeftWidth(),o=-t.cssBorderRightWidth();t.children().each(((e,t)=>{let l=n()(t);i=Math.min(i,(l.cssTop()||0)+(l.cssMarginTop()||0)),s=Math.min(s,(l.cssBottom()||0)+(l.cssMarginBottom()||0)),r=Math.min(r,(l.cssLeft()||0)+(l.cssMarginLeft()||0)),o=Math.min(o,(l.cssRight()||0)+(l.cssMarginRight()||0))})),e.cssTop(i).cssBottom(s).cssLeft(r).cssRight(o)}removeGlassPanes(){this._$glassPanes.slice().forEach((function(e){this._removeGlassPane(e)}),this),this._deferredGlassPanes.forEach((function(e){e.removeGlassPaneRenderer(this)}),this),this._deferredGlassPanes=[],this._unregisterDisplayParent(),this.session.focusManager.unregisterGlassPaneRenderer(this),this._glassPaneRendererRegistered=!1}_removeGlassPane(e){let t=e.parent();e.off("remove",this._glassPaneRemoveHandler),e.remove(),me.$remove(this._$glassPanes,e),t.removeClass("glasspane-parent"),this.session.focusManager.unregisterGlassPaneTarget(t)}eachGlassPane(e){this._$glassPanes.forEach((t=>{e(t)}))}findGlassPaneTargets(){if(!this._enabled)return[];let e=this._resolveDisplayParent();return e&&e.glassPaneTargets?e.glassPaneTargets(this._widget):[]}_resolveDisplayParent(){return this._resolvedDisplayParent||(this._resolvedDisplayParent=this._widget.displayParent||this.session.desktop),this._resolvedDisplayParent}_registerDisplayParent(){this._resolvedDisplayParent||this._resolveDisplayParent(),this._resolvedDisplayParent&&(this._registeredDisplayParent||(this.session.focusManager.registerGlassPaneDisplayParent(this._resolvedDisplayParent),this._registeredDisplayParent=this._resolvedDisplayParent,this._registeredDisplayParent.on("render",this._displayParentRenderHandler)))}_unregisterDisplayParent(){this._registeredDisplayParent&&(this.session.focusManager.unregisterGlassPaneDisplayParent(this._registeredDisplayParent),this._registeredDisplayParent.off("render",this._displayParentRenderHandler),this._registeredDisplayParent=null)}_onMouseDown(e){let t=null,i=this._resolveDisplayParent();if(i._onGlassPaneMouseDown&&i._onGlassPaneMouseDown(this._widget,n()(e.target)),this._widget instanceof Ta&&this._widget.isView()){let e=this.session.desktop.bench.getViewTab(this._widget);e&&(t=e.$container,t.isVisible()||(t=t.siblings(".overflow-tab-item")))}else this._widget.$container&&(t=this._widget.$container);if(t){let e=this._widget.$container.children(".glasspane");e.length?e.trigger("mousedown"):t.addClassForAnimation("animate-modality-highlight",{classesToRemove:"animate-modality-highlight animate-open"})}n().suppressEvent(e)}_onDisplayParentRender(e){this.renderGlassPanes()}_onGlassPaneRemove(e){let t=n()(e.target);this._removeGlassPane(t)}}class Sn extends Y{constructor(){super(),this.location=null,this.sandboxEnabled=!0,this.sandboxPermissions=null,this.scrollBarEnabled=!0,this.trackLocation=!1,this.wrapIframe=Qe.get().isIosPlatform(),this.$iframe=null}_render(){let e="iframe "+Qe.get().cssClassForIphone();this.session.layoutValidator.suppressValidate(),this.wrapIframe?(this.$container=this.$parent.appendDiv("iframe-wrapper"),this.$iframe=this.$container.appendElement("<iframe>",e)):(this.$iframe=this.$parent.appendElement("<iframe>",e),this.$container=this.$iframe),this.session.layoutValidator.unsuppressValidate(),this.htmlComp=fr.install(this.$container,this.session),this.$iframe.on("load",this._onLoad.bind(this))}_renderProperties(){super._renderProperties(),this._renderScrollBarEnabled(),this._renderSandboxEnabled(),this._renderLocation()}setLocation(e){this.setProperty("location",e)}_renderLocation(){let e=this.location||"about:blank";this.$iframe.attr("src",e)}setTrackLocation(e){this.setProperty("trackLocation",e)}_contentDocument(){return this.$iframe&&this.$iframe[0]?this.$iframe[0].contentDocument:null}_onLoad(e){this.rendered&&(this.trackLocation&&this._updateLocation(),this._propagateKeyEvents())}_updateLocation(){let e=this._contentDocument();if(!e)return;let t=e.location.href;"about:blank"===t&&(t=null),this._setProperty("location",t)}_propagateKeyEvents(){let e=this._contentDocument();if(!e)return;let t=this.wrapIframe?this.$container[0]:this.$parent[0];t&&Ye.addPropagationListener(e,t,["keydown","keyup","keypress"],(e=>e.which!==Kr.TAB))}setScrollBarEnabled(e){this.setProperty("scrollBarEnabled",e)}_renderScrollBarEnabled(){this.$container.toggleClass("no-scrolling",!this.scrollBarEnabled),this.$iframe.attr("scrolling",this.scrollBarEnabled?"yes":"no"),this.rendered&&this._renderLocation()}setSandboxEnabled(e){this.setProperty("sandboxEnabled",e)}_renderSandboxEnabled(){this.sandboxEnabled?this._renderSandboxPermissions():(this.$iframe.removeAttr("sandbox"),this.$iframe.removeAttr("security")),this.rendered&&this._renderLocation()}setSandboxPermissions(e){this.setProperty("sandboxPermissions",e)}_renderSandboxPermissions(){this.sandboxEnabled&&(this.$iframe.attr("sandbox",x.nvl(this.sandboxPermissions,"")),this.rendered&&this._renderLocation())}postMessage(e,t){this.rendered&&this.$iframe[0].contentWindow.postMessage(e,t)}}class xn extends Y{constructor(){super(),this.$container=null,this.$thumb=null,this.$thumbHandle=null,this.axis="y",this.borderless=!1,this.mouseWheelNeedsShift=!1,this._scrollSize=null,this._offsetSize=null,this._dim="Height",this._dir="top",this._dirReverse="bottom",this._scrollDir="scrollTop",this._thumbClipping=new rr(0,0,0,0),this._onScrollHandler=this._onScroll.bind(this),this._onScrollWheelHandler=this._onScrollWheel.bind(this),this._onScrollbarMouseDownHandler=this._onScrollbarMouseDown.bind(this),this._onTouchStartHandler=this._onTouchStart.bind(this),this._onThumbMouseDownHandler=this._onThumbMouseDown.bind(this),this._onDocumentMousemoveHandler=this._onDocumentMousemove.bind(this),this._onDocumentMouseUpHandler=this._onDocumentMouseUp.bind(this),this._onAncestorScrollOrResizeHandler=this.update.bind(this),this._fixScrollbarHandler=this._fixScrollbar.bind(this),this._unfixScrollbarHandler=this._unfixScrollbar.bind(this)}_render(){this._ensureParentPosition(),this.$container=this.$parent.appendDiv("scrollbar").addClass(this.axis+"-axis"),this._$thumb=this.$container.appendDiv("scrollbar-thumb").addClass(this.axis+"-axis"),this._$thumbHandle=this._$thumb.appendDiv("scrollbar-thumb-handle").addClass(this.axis+"-axis"),this.borderless&&this.$container.addClass("borderless"),this._dim="x"===this.axis?"Width":"Height",this._dir="x"===this.axis?"left":"top",this._dirReverse="x"===this.axis?"right":"bottom",this._scrollDir="x"===this.axis?"scrollLeft":"scrollTop";let e=this.$parent.data("scrollbars");if(!e)throw new Error('Data "scrollbars" missing in '+pr.debugOutput(this.$parent)+"\nAncestors: "+this.ancestorsToString(1));this.$parent.on("DOMMouseScroll mousewheel",this._onScrollWheelHandler).on("scroll",this._onScrollHandler).onPassive("touchstart",this._onTouchStartHandler),e.forEach((e=>{e.on("scrollStart",this._fixScrollbarHandler),e.on("scrollEnd",this._unfixScrollbarHandler)})),this.$container.on("mousedown",this._onScrollbarMouseDownHandler),this._$thumb.on("mousedown",this._onThumbMouseDownHandler),this._$ancestors=this.$container.parents("div").on("scroll resize",this._onAncestorScrollOrResizeHandler)}_remove(){let e=this.$parent.data("scrollbars");this.$parent.off("DOMMouseScroll mousewheel",this._onScrollWheelHandler).off("scroll",this._onScrollHandler).offPassive("touchstart",this._onTouchStartHandler),e.forEach((e=>{e.off("scrollStart",this._fixScrollbarHandler),e.off("scrollEnd",this._unfixScrollbarHandler)})),this.$container.off("mousedown",this._onScrollbarMouseDownHandler),this._$thumb.off("mousedown","",this._onThumbMouseDownHandler),this._$ancestors.off("scroll resize",this._onAncestorScrollOrResizeHandler),this._$ancestors=null,super._remove()}_renderOnAttach(){super._renderOnAttach(),this._ensureParentPosition()}_ensureParentPosition(){if(this.$parent&&this.$parent.isAttached()){let e=this.$parent.css("position");x.isOneOf(e,"relative","absolute")||this.$parent.css("position","relative")}}scroll(e){let t=Math.max(0,this.$parent[this._scrollDir]());this._scrollToAbsolutePoint(t+e)}_scrollToAbsolutePoint(e){let t=Math.min(this._scrollSize-this._offsetSize+1,Math.max(0,Math.round(e)));this.$parent[this._scrollDir](t)}update(){if(!this.rendered)return;let e=this.$container["cssMargin"+this.axis.toUpperCase()](),t=this.$parent[this._scrollDir](),i=this.$parent.scrollLeft(),s=this.$parent.scrollTop();this.reset(),this._offsetSize=this.$parent[0]["offset"+this._dim],this._scrollSize=this.$parent[0]["scroll"+this._dim];let r=Math.max(this._offsetSize*this._offsetSize/this._scrollSize-e,25),n=this._offsetSize-r-e;this._$thumb.css(this._dim.toLowerCase(),r);let o=t/(this._scrollSize-this._offsetSize)*n;this._$thumb.css(this._dir,o);this._offsetSize+1>=this._scrollSize?this.$container.css("display","none"):(this.$container.css("display",""),this._isContainerTooSmallForThumb()?this._$thumb.addClass("container-too-small-for-thumb"):this._$thumb.removeClass("container-too-small-for-thumb")),this._clipWhenOverlappingAncestor(),this.$container.cssRight(-1*i),this.$container.cssBottom(-1*s)}_resetClipping(){"y"===this.axis?this._$thumb.css("width","").css("left",""):this._$thumb.css("height","").css("top",""),this._$thumb.removeClass("clipped-left clipped-right clipped-top clipped-bottom"),this._thumbClipping=new rr(0,0,0,0)}_clipWhenOverlappingAncestor(){if(this._resetClipping(),"fixed"===this.$container.css("position")){let e=pr.offsetBounds(this._$thumb),t=e.width,i=e.height,s=e.x+e.width,r=e.y+e.height,o=0,l=0,a=s,h=r;this.$container.parents("div").each((function(){let e=n()(this),t=pr.offsetBounds(e);if("visible"!==e.css("overflow-x")){t.x>o&&(o=t.x);let e=t.x+t.width;e<a&&(a=e)}if("visible"!==e.css("overflow-y")){t.y>l&&(l=t.y);let e=t.y+t.height;e<h&&(h=e)}}));let d=0,u=0,c=0,p=0;o>e.x&&(d=o-e.x,t-=d,this._$thumb.css("width",t).css("left",pr.bounds(this._$thumb).x+d).addClass("clipped-left")),l>e.y&&(c=l-e.y,i-=c,this._$thumb.css("height",i).css("top",pr.bounds(this._$thumb).y+c).addClass("clipped-top")),s>a&&(u=s-a,this._$thumb.css("width",t-u).addClass("clipped-right")),r>h&&(p=r-h,this._$thumb.css("height",i-p).addClass("clipped-bottom")),this._thumbClipping=new rr(c,u,p,d)}}reset(){this._$thumb.css(this._dim.toLowerCase(),0),this.$container.cssRight(0),this.$container.cssBottom(0)}_onScroll(e){this.update()}_onTouchStart(e){Ye.onScrollStartEndDuringTouch(this.$parent,(()=>{this.rendered&&this.$container.css("opacity",0)}),(()=>{this.rendered&&this.$container.css("opacity","")}))}_onScrollWheel(e){if(!this.$container.isVisible())return!0;if(e.ctrlKey)return!0;if(this.mouseWheelNeedsShift!==e.shiftKey)return!0;let t=(e=e.originalEvent||this.$container.window(!0).event.originalEvent).wheelDelta?-e.wheelDelta/2:20*e.detail;return this.notifyBeforeScroll(),this.scroll(t),this.notifyAfterScroll(),!1}_onScrollbarMouseDown(e){this.notifyBeforeScroll();let t,i=this.$container[this._dim.toLowerCase()](),s=this.$container.offset()[this._dir],r=("x"===this.axis?e.pageX:e.pageY)-s;if(this._isContainerTooSmallForThumb())t=Math.min(1,Math.max(0,r/i)),this._scrollToAbsolutePoint(t*this._scrollSize-Math.round(this._offsetSize/2));else{let e=this._$thumb["outer"+this._dim](!0),s=Math.round(e/2),n=1/(i-Math.round(e/2)-s)*(r-s);t=Math.min(1,Math.max(0,n)),this._scrollToAbsolutePoint(t*(this._scrollSize-this._offsetSize))}this.notifyAfterScroll()}_onThumbMouseDown(e){if(this._isContainerTooSmallForThumb())return!0;this.notifyBeforeScroll();let t=("x"===this.axis?this._thumbClipping.horizontal():this._thumbClipping.vertical())+this._$thumb["outer"+this._dim](!0),i="x"===this.axis?this._thumbClipping.left:this._thumbClipping.top,s=this._$thumb.offset()[this._dir]+Math.floor(t/2)-i,r=Math.round(("x"===this.axis?e.pageX:e.pageY)-s);return this._$thumb.addClass("scrollbar-thumb-move"),this._$thumb.document().on("mousemove",{thumbCenterOffset:r},this._onDocumentMousemoveHandler).one("mouseup",this._onDocumentMouseUpHandler),!1}_onDocumentMousemove(e){if(!this.rendered)return;let t=e.data.thumbCenterOffset,i=("x"===this.axis?this._thumbClipping.horizontal():this._thumbClipping.vertical())+this._$thumb["outer"+this._dim](!0),s=this.$container[this._dim.toLowerCase()]()-i,r=this.$container.offset()[this._dir]+i/2,n=Math.min(s,Math.max(0,("x"===this.axis?e.pageX:e.pageY)-r-t)),o=Math.min(1,Math.max(0,n/s))*(this._scrollSize-this._offsetSize);this._scrollToAbsolutePoint(o)}_onDocumentMouseUp(e){return n()(e.currentTarget).off("mousemove",this._onDocumentMousemoveHandler),this.rendered&&this._$thumb.removeClass("scrollbar-thumb-move"),this.notifyAfterScroll(),!1}notifyBeforeScroll(){this.trigger("scrollStart")}notifyAfterScroll(){this.trigger("scrollEnd")}_fixScrollbar(){Yn.fix(this.$container),this.update()}_unfixScrollbar(){Yn.unfix(this.$container,null,!0),this.update()}_isContainerTooSmallForThumb(){return this._$thumb["outer"+this._dim](!0)>=this.$container[this._dim.toLowerCase()]()}}let Pn,Fn,En={};function Dn(e){if(e)return En[e]||[];let t=[];return Ai.values(En).forEach((e=>{me.pushAll(t,e)})),t}function An(e,t){if(En[e]){if(En[e].indexOf(t)>-1)return;En[e].push(t)}else En[e]=[t];n().log.isTraceEnabled()&&n().log.trace("Scrollable added: "+t.attr("class")+". New length: "+En[e].length)}function $n(e,t){let i=0;if(!En[e])throw new Error("scrollable could not be removed. Potential memory leak. "+t.attr("class"));if(i=En[e].length,me.$remove(En[e],t),n().log.isTraceEnabled()&&n().log.trace("Scrollable removed: "+t.attr("class")+". New length: "+En[e].length),i===En[e].length)throw new Error("scrollable could not be removed. Potential memory leak. "+t.attr("class"))}function Rn(e,t){Qe.get().isIos()?setTimeout(Mn.bind(this,e,t)):Mn(e,t)}function Mn(e,t){n().log.isTraceEnabled()&&n().log.trace("use native scrollbars for container "+pr.debugOutput(e)),"x"===t.axis?e.css("overflow-x","auto").css("overflow-y","hidden"):"y"===t.axis?e.css("overflow-x","hidden").css("overflow-y","auto"):e.css("overflow","auto"),e.css("-webkit-overflow-scrolling","touch")}function kn(e,t,i){if(!Qe.get().supportsIntersectionObserver())return;let s=function(e){let t=e.scrollShadow;if(!t)return[];"string"==typeof t&&(t=t.split(" "));if(t=t.slice(),t.indexOf("none")>-1)return[];me.containsAny(t,["y","x","top","right","bottom","left"])||("both"!==e.axis&&"y"!==e.axis||t.push("y"),"both"!==e.axis&&"x"!==e.axis||t.push("x"));t.indexOf("y")>-1&&(t.push("top"),t.push("bottom"));t.indexOf("x")>-1&&(t.push("left"),t.push("right"));return me.removeAll(t,["all","y","x","auto","none"]),t}(i);if(0===s.length)return;let r=e.afterDiv("scroll-shadow");r.toggleClass("large",s.indexOf("large")>-1),r.toggleClass("gradient",s.indexOf("gradient")>-1),r.data("scroll-shadow-parent",e),e.data("scroll-shadow",r),e.data("scroll-shadow-style",s),e.data("scroll-shadow-customizer",i.scrollShadowCustomizer);let n=()=>function(e){let t=e.findUp((e=>e.hasAnimationClass()));if(t.length>0)return void t.oneAnimationEnd((()=>Ln(e)));Ln(e)}(e);e.data("scroll-shadow-handler",n),e.on("scroll",n),Ln(e),function(e){if(Pn)return;Pn=new MutationObserver(Bn),Pn.observe(e.$entryPoint[0],{subtree:!0,childList:!0})}(t),function(){if(Fn)return;Fn=new IntersectionObserver(((e,t)=>{e.forEach((e=>{Nn(e.target,e.intersectionRatio>0)}))}))}(),Fn.observe(e[0]);let o=e[0],l=e=>{e.target===o&&Nn(o,"show"===e.type)};e.data("scroll-shadow-visible-listener",l),e.on("hide show",l)}function In(e,t){let i=e.data("scroll-shadow");i&&(i.remove(),e.removeData("scroll-shadow")),e.removeData("scroll-shadow-style"),e.removeData("scroll-shadow-customizer");let s=e.data("scroll-shadow-handler");s&&(e.off("scroll",s),e.removeData("scroll-shadow-handler")),Fn&&Fn.unobserve(e[0]);let r=e.data("scroll-shadow-visible-listener");r&&e.off("hide show",r);let n=En[t];n&&n.some((e=>e.data("scroll-shadow")))||(function(){if(!Pn)return;Pn.disconnect(),Pn=null}(),function(){if(!Fn)return;Fn.disconnect(),Fn=null}())}function Ln(e){let t=e.data("scroll-shadow");if(!t)return;let i=e[0].scrollTop,s=e[0].scrollLeft,r=d(i),n=u(i,e[0].scrollHeight,e[0].offsetHeight),o=d(s),l=u(s,e[0].scrollWidth,e[0].offsetWidth),a=e.data("scroll-shadow-style");t.toggleClass("top",!r&&a.indexOf("top")>-1),t.toggleClass("bottom",!n&&a.indexOf("bottom")>-1),t.toggleClass("left",!o&&a.indexOf("left")>-1),t.toggleClass("right",!l&&a.indexOf("right")>-1),pr.setBounds(t,pr.bounds(e,{exact:!0}).subtract(function(e){return new rr(e.cssPxValue("--scroll-shadow-inset-top"),e.cssPxValue("--scroll-shadow-inset-right"),e.cssPxValue("--scroll-shadow-inset-bottom"),e.cssPxValue("--scroll-shadow-inset-left"))}(t))),pr.setMargins(t,pr.margins(e)),t.css("border-radius",e.css("border-radius"));let h=e.data("scroll-shadow-customizer");function d(e){return 0===e}function u(e,t,i){return e+1>=t-i}h&&h(e,t)}function Bn(e,t){e.forEach(On)}function On(e){for(let t=0;t<e.addedNodes.length;t++){let i=e.addedNodes[t],s=n()(i);if(s.data("scrollable")){let e=s.data("scroll-shadow");e&&e.insertAfter(s)}}}function Nn(e,t){let i=n()(e),s=i.data("scroll-shadow");s&&s.setVisible(i.isVisible())}function Hn(e,t){n().log.isTraceEnabled()&&n().log.trace("installing JS-scrollbars for container "+pr.debugOutput(e));let i,s=me.ensure(e.data("scrollbars"));if(s.forEach((e=>{e.destroy()})),s=[],"both"===t.axis){let e=n().extend({},t);e.axis="y",i=x.create("Scrollbar",n().extend({},e)),s.push(i),e.axis="x",e.mouseWheelNeedsShift=!0,i=x.create("Scrollbar",n().extend({},e)),s.push(i)}else i=x.create("Scrollbar",n().extend({},t)),s.push(i);e.data("scrollbars",s),s.forEach((t=>{t.render(e),t.update()}))}function Vn(e,t){if(!e||!e.data("scrollable"))return;Ln(e);let i=e.data("scrollbars");i?t?Wn(i):e.data("scrollbarUpdatePending")||(setTimeout((()=>{Wn(i),e.removeData("scrollbarUpdatePending")}),0),e.data("scrollbarUpdatePending",!0)):Qe.get().isIos()&&function(e){if(e.data("scrollbarUpdatePending"))return;function t(){let t=pr.size(e).subtract(pr.insets(e,{includePadding:!1,includeBorder:!0}));e[0].scrollHeight===t.height&&e[0].scrollWidth===t.width?e.css("-webkit-overflow-scrolling",""):e.css("-webkit-overflow-scrolling","touch")}setTimeout((()=>{t(),e.removeData("scrollbarUpdatePending")})),e.data("scrollbarUpdatePending",!0)}(e)}function Wn(e){e.forEach((e=>{e.rendered&&e.reset()})),e.forEach((e=>{e.rendered&&e.update()}))}function zn(e){return n().extend({},{animate:!1,stop:!0},e)}function Gn(e,t,i){i=zn(i);let s=Kn(e,"y");if(s&&s.notifyBeforeScroll(),i.stop&&e.stop("scroll"),!i.animate)return e.scrollTop(t),void(s&&s.notifyAfterScroll());!function(e,t){e.animate({scrollTop:t},{queue:"scroll"}).dequeue("scroll")}(e,t),e.promise("scroll").always((()=>{s&&s.notifyAfterScroll()}))}function Un(e,t,i){i=zn(i);let s=Kn(e,"x");if(s&&s.notifyBeforeScroll(),i.stop&&e.stop("scroll"),!i.animate)return e.scrollLeft(t),void(s&&s.notifyAfterScroll());!function(e,t){e.animate({scrollLeft:t},{queue:"scroll"}).dequeue("scroll")}(e,t),e.promise("scroll").always((()=>{s&&s.notifyAfterScroll()}))}function Kn(e,t){let i=e.data("scrollbars")||[];return me.find(i,(e=>e.axis===t))}function qn(e){e.css({position:"absolute",left:"",top:"",width:"",height:""})}function jn(e,t,i,s){let r=0;return e.forEach((e=>{e.height?r+=e.height:r+=s,i(e)&&t(e).length>0&&(r+=jn(t(e),t,i,s))})),r}const Yn={ensureExpansionVisible:function(e){let t=e.isExpanded(e.element),i=e.getChildren(e.element),s=e.$element.position().top,r=e.element.height,n=e.$scrollable.scrollTop();if(t){if(t&&i.length>0){let t=e.$scrollable.height(),o=s+(jn(i,e.getChildren,e.isExpanded,e.defaultChildHeight)+1.5*r),l=n+Math.min(o-t,s-r);l>n&&Gn(e.$scrollable,l,{animate:!0,stop:!1})}}else if(s<r){let t=Math.max(n-(r-s),0);Gn(e.$scrollable,t,{animate:!0})}if(i.length>0){let t=Math.max(e.element.level-3,0)*e.nodePaddingLevel;Un(e.$scrollable,t,{animate:!0,stop:!1})}},fix:function(e){if(!e.isVisible()||"fixed"===e.css("position"))return;let t=e[0].getBoundingClientRect();e.css("position","fixed").cssLeft(t.left-e.cssMarginLeft()).cssTop(t.top-e.cssMarginTop()).cssWidth(t.width).cssHeight(t.height)},getScrollables:Dn,install:function(e,t){(t=zn(t)).axis=t.axis||"both",t.scrollShadow=t.scrollShadow||"auto";let i=x.nvl(t.nativeScrollbars,Qe.get().hasPrettyScrollbars()),s=x.nvl(t.hybridScrollbars,Qe.get().canHideScrollbars());i?Rn(e,t):s?(e.addClass("hybrid-scrollable"),Rn(e,t),Hn(e,t)):(e.css("overflow","hidden"),Hn(e,t));let r=fr.optGet(e);r&&(r.scrollable=!0),e.data("scrollable",!0);let n=t.session||t.parent.session;return An(n,e),t.scrollShadow&&kn(e,n,t),e},installScrollShadow:kn,isHybridScrolling:function(e){return e.hasClass("hybrid-scrollable")},isJsScrolling:function(e){return!!e.data("scrollbars")},isLocationInView:function(e,t){return!t||0===t.length||t.toArray().every((t=>pr.offsetBounds(n()(t)).contains(e.x,e.y)))},isNativeScrolling:function(e){return x.isOneOf("auto",e.css("overflow"),e.css("overflow-x"),e.css("overflow-y"))},hasScrollShadow:function(e,t){if(!e)return!1;let i=e.data("scroll-shadow");return!!i&&(!t||i.hasClass(t))},offScroll:function(e){let t=e.$scrollParents;if(!t)throw new Error("$scrollParents are not defined");for(let i=0;i<t.length;i++){t[i].off("scroll",e)}},onScroll:function(e,t){t.$scrollParents=[],e.scrollParents().each((function(){let e=n()(this);e.on("scroll",t),t.$scrollParents.push(e)}))},opacity:function(e,t){if(!e||!e.data("scrollable"))return;let i=e.data("scrollbars");i&&i.forEach((e=>{e.rendered&&e.$container.css("opacity",t)}))},pushScrollable:An,removeScrollable:$n,reset:function(e){let t=e.data("scrollbars");t&&t.forEach((e=>{e.reset()}))},restoreScrollPositions:function(e,t){let i,s,r=Dn(t);r&&r.forEach((t=>{e.isOrHas(t[0])&&(i=t.data("scrollTop"),i&&(t.scrollTop(i),t.removeData("scrollTop")),s=t.data("scrollLeft"),s&&(t.scrollLeft(s),t.removeData("scrollLeft")),Vn(t),n().log.isTraceEnabled()&&n().log.trace("Restored scroll position for "+t.attr("class")+". Top: "+i+". Left: "+s))}))},scrollHorizontalTo:function(e,t,i){let s,r=e.width(),n=pr.bounds(t,!0),o=n.x,l=n.width;o<0?Un(e,e.scrollLeft()+o,i):o+l>r&&(s=Math.ceil(e.scrollLeft()+o+l-r),Un(e,s,i))},scrollLeft:Un,scrollTo:function(e,t,i){let s,r=(i="string"==typeof i?{align:i}:zn(i)).align?i.align.toLowerCase():void 0,n=x.nvl(i.scrollOffsetUp,"center"===r?0:4),o=x.nvl(i.scrollOffsetDown,"center"===r?0:8),l=e.height(),a=pr.offsetBounds(t),h=pr.offsetBounds(e),d=a.y-h.y,u=a.height,c=d-n,p=d+u+o;if(r||(r=c<0?"top":p>l?"bottom":void 0),"center"===r)s=e.scrollTop()+c-Math.max(0,(l-u)/2);else if("top"===r)s=e.scrollTop()+c;else if("bottom"===r){s=Math.ceil(e.scrollTop()+p-l);let t=c-(s-e.scrollTop());t<0&&(s+=t)}void 0!==s&&Gn(e,s,i)},scrollToBottom:function(e,t){Gn(e,e[0].scrollHeight-e[0].offsetHeight,t)},scrollTop:Gn,scrollbar:Kn,setVisible:function(e,t){if(!e||!e.data("scrollable"))return;let i=e.data("scrollbars");i&&i.forEach((e=>{e.rendered&&e.$container.setVisible(t)}))},storeScrollPositions:function(e,t){let i,s,r=Dn(t);r&&r.forEach((t=>{e.isOrHas(t[0])&&(i=t.scrollTop(),t.data("scrollTop",i),s=t.scrollLeft(),t.data("scrollLeft",t.scrollLeft()),n().log.isTraceEnabled()&&n().log.trace("Stored scroll position for "+t.attr("class")+". Top: "+i+". Left: "+s))}))},unfix:function(e,t,i){if(clearTimeout(t),!i)return setTimeout((()=>{qn(e)}),50);qn(e)},uninstall:function(e,t){if(!e.data("scrollable"))return;let i=e.data("scrollbars");i&&i.forEach((e=>{e.destroy()})),$n(t,e),e.removeData("scrollable"),e.css("overflow",""),e.removeClass("hybrid-scrollable"),e.removeData("scrollbars");let s=fr.optGet(e);s&&(s.scrollable=!1),In(e,t)},uninstallScrollShadow:In,update:Vn};class Xn{constructor(e){this.enabled=!0,this.minRowHeight=0,this.scrollHandler=null,this.viewRangeSize=new Mi,this.widget=null,this.$scrollable=null,n().extend(this,e)}setEnabled(e){this.enabled=e}set$Scrollable(e){this.$scrollable!==e&&(this.$scrollable=e)}setMinRowHeight(e){if(this.minRowHeight!==e){if(!fi.isNumber(e))throw new Error("minRowHeight is not a number: "+e);this.minRowHeight=e,this.widget.rendered&&this.setViewRangeSize(this.calculateViewRangeSize())}}setViewRangeSize(e,t){this.viewRangeSize!==e&&(this.viewRangeSize=e,this.widget.rendered&&x.nvl(t,!0)&&this._renderViewPort())}calculateViewRangeSize(){if(!this.enabled||0===this.$scrollable.length)return this.rowCount();if(0===this.minRowHeight)throw new Error("Cannot calculate view range with rowHeight = 0");return 2*Math.ceil(this.$scrollable.height()/this.minRowHeight)}calculateCurrentViewRange(){if(!this.enabled)return this.maxViewRange();if(0===this.viewRangeSize)return new Mi(0,0);let e;if(0===this.$scrollable.length)return this.maxViewRange();let t=this.$scrollable[0].scrollTop,i=this.$scrollable[0].scrollHeight-this.$scrollable[0].clientHeight,s=this.widget.$container[0].getBoundingClientRect(),r=this.$scrollable[0].getBoundingClientRect();return s.height>0&&(s.bottom<r.top||s.top>r.bottom)?new Mi(0,0):(e=0===i?0:this._rowIndexAtScrollTop(t),this.calculateViewRangeForRowIndex(e))}maxViewRange(){return new Mi(0,this.rowCount())}calculateViewRangeForRowIndex(e){if(!this.enabled)return this.maxViewRange();let t,i=new Mi,s=Math.floor(this.viewRangeSize/4);return i.from=Math.max(e-s,0),i.to=Math.min(i.from+this.viewRangeSize,this.rowCount()),t=this.viewRangeSize-i.size(),t>0&&(i.from=Math.max(i.to-this.viewRangeSize,0)),i}_rowIndexAtScrollTop(e){let t=0,i=this.rowCount(),s=i-1;this.widget.$container[0]!==this.$scrollable[0]&&(t=e+(this.widget.$container.offset().top-this.$scrollable.offset().top));for(let r=0;r<i;r++)if(t+=this.rowHeight(r),e<t){s=r;break}return s}rowHeight(e){throw new Error("Function has to be provided by widget")}rowCount(){throw new Error("Function has to be provided by widget")}_renderViewPort(){let e=this.calculateCurrentViewRange();this._renderViewRange(e)}_renderViewRangeForRowIndex(e){let t=this.calculateViewRangeForRowIndex(e);this._renderViewRange(t)}_renderViewRange(e){throw new Error("Function has to be provided by widget")}}class Jn extends Y{constructor(){super(),this.splitHorizontal=!0,this.$anchor=null,this.$root=null,this.position=null,this.orientation="top",this.layoutData=null,this._cursorOffset=0,this._mouseDownHandler=this._onMouseDown.bind(this),this._$window=null,this._$body=null}_init(e){super._init(e),this.setPosition(this.position)}_render(){this.$container=this.$parent.appendDiv("splitter").addClass(this.splitHorizontal?"x-axis":"y-axis"),this.htmlComp=fr.install(this.$container,this.session),this._$window=this.$parent.window(),this._$body=this.$parent.body()}_renderProperties(){super._renderProperties(),this._renderPosition()}_renderEnabled(){super._renderEnabled(),this.enabledComputed?this.$container.on("mousedown",this._mouseDownHandler):this.$container.off("mousedown",this._mouseDownHandler)}_renderVisible(){super._renderVisible(),this.initialized&&this._renderPosition()}setLayoutData(e){super.setLayoutData(e),this.layoutData=e}getLayoutData(){return this.layoutData}setPosition(e){return n().isNumeric(e)||(e=this._derivePositionFromAnchor()),e!==this.position&&this._setPosition(e),e}_derivePositionFromAnchor(){if(!this.$anchor)return null;let e=pr.offsetBounds(this.$anchor,{exact:!0});return this.splitHorizontal?e.x+e.width:e.y+e.height}_setPosition(e){if(!n().isNumeric(e))return;if(e===this.position)return;this.position=e;let t={position:e};this.trigger("positionChange",t),this.rendered&&this._renderPosition()}_renderPosition(){if(null===this.position||!this.visible)return;let e=pr.size(this.$container,!0);if(this.splitHorizontal){let t=this.position-e.width/2;"right"===this.orientation?this.$container.cssRight(t):this.$container.cssLeft(t)}else{let t=this.position-e.height/2;"bottom"===this.orientation?this.$container.cssBottom(t):this.$container.cssTop(t)}}_onMouseDown(e){let t=pr.margins(this.$container),i=pr.offsetBounds(this.$container);i.x-=t.left,i.y-=t.top,i.width+=t.horizontal(),i.height+=t.vertical();let s=i.center();this._$window.on("mousemove.splitter",this._onMouseMove.bind(this)).one("mouseup",this._onMouseUp.bind(this)),this._$body.addClass(this.splitHorizontal?"col-resize":"row-resize"),n()("iframe").addClass("dragging-in-progress"),this._cursorOffset={left:s.x-e.pageX,top:s.y-e.pageY},this.trigger("moveStart",{position:this._getSplitterPosition(e)}),e.preventDefault()}_getSplitterPosition(e){let t=pr.offsetBounds(this.$root||this.$parent);if(this.splitHorizontal){let i=e.pageX+this._cursorOffset.left-t.x;return"right"===this.orientation?t.width-i:i}let i=e.pageY+this._cursorOffset.top-t.y;return"bottom"===this.orientation?t.height-i:i}_onMouseMove(e){let t={position:this._getSplitterPosition(e),defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0},setPosition:function(e){this.position=e}};this.trigger("move",t),t.defaultPrevented||this._setPosition(t.position)}_onMouseUp(e){this._$window.off("mousemove.splitter"),this._$body.removeClass(this.splitHorizontal?"col-resize":"row-resize"),n()("iframe").removeClass("dragging-in-progress"),this.trigger("moveEnd",{position:this.position})}}const Zn={YEAR:"year",MONTH:"month",WEEK_IN_YEAR:"week_in_year",DAY_IN_MONTH:"day_in_month",WEEKDAY:"weekday",HOUR_24:"hour_24",HOUR_12:"hour_12",AM_PM:"am_pm",MINUTE:"minute",SECOND:"second",MILLISECOND:"millisecond",TIMEZONE:"timezone"};class Qn{constructor(e){e=e||{},this.type=e.type,this.terms=e.terms,this.dateFormat=e.dateFormat,this.formatFunction=e.formatFunction&&e.formatFunction.bind(this),this.parseRegExp=e.parseRegExp,this.applyMatchFunction=e.applyMatchFunction&&e.applyMatchFunction.bind(this),this.parseFunction=e.parseFunction&&e.parseFunction.bind(this)}createFormatFunction(e){return function(t){if(this.formatFunction){let i=this.formatFunction(t,e);void 0!==i&&(t.formattedString+=i)}}.bind(this)}createParseFunction(e){return function(t){let i,s,r,n=!1;return this.parseRegExp&&(i=this.parseRegExp.exec(t.inputString),i&&(this.applyMatchFunction&&this.applyMatchFunction(t,i[1],e),r=i[1],t.inputString=i[2],n=!0)),!n&&this.parseFunction&&(r=this.parseFunction(t,e),null!==r&&(n=!0)),n&&(s=this.terms[0],this.terms.length>1&&this.terms.some((e=>e.length===r.length&&(s=e,!0))),t.parsedPattern+=s),n}.bind(this)}accept(e){if(e)for(let t=0;t<this.terms.length;t++)if(e===this.terms[t])return this.terms[t];return null}}class eo{constructor(e,t,i){i=i||{},this.locale=e,x.assertParameter("locale",this.locale),this.pattern=t||e.dateFormatPatternDefault,x.assertParameter("pattern",this.pattern),this.symbols=e.dateFormatSymbols,this.symbols.firstDayOfWeek=1,this.symbols.weekdaysOrdered=Le.orderWeekdays(this.symbols.weekdays,this.symbols.firstDayOfWeek),this.symbols.weekdaysShortOrdered=Le.orderWeekdays(this.symbols.weekdaysShort,this.symbols.firstDayOfWeek),this.symbols.monthsToNumber,this.symbols.monthsShortToNumber,this.lenient=x.nvl(i.lenient,!0),this._terms=[],this._formatFunctions=[],this._parseFunctions=[],this._analyzeFunctions=[],this._patternDefinitions=[new Qn({type:Zn.YEAR,terms:["yyyy"],dateFormat:this,formatFunction:(e,t)=>{let i=e.inputDate.getFullYear(),s=Math.max(4,i.toString().length);return qt.padZeroLeft(e.inputDate.getFullYear(),s).slice(-s)},parseRegExp:/^(\d{4})(.*)$/,applyMatchFunction:(e,t,i)=>{e.matchInfo.year=t,e.dateInfo.year=Number(t)}}),new Qn({type:Zn.YEAR,terms:["yyy","yy","y"],dateFormat:this,formatFunction:(e,t)=>{let i=String(e.inputDate.getFullYear()),s=e.exactLength?t.length:2;return 1===s?i.slice(-s):qt.padZeroLeft(i,s).slice(-s)},parseRegExp:/^(\d{1,3})(.*)$/,applyMatchFunction:(e,t,i)=>{if(3===t.length)return e.dateInfo.year=Number(t),void(e.matchInfo.year=t);let s=(e.startDate||new Date).getFullYear(),r=Number(qt.padZeroLeft(s,4).substr(0,2)+qt.padZeroLeft(t,2)),n=r-s;n<=-50?r+=100:n>50&&(r-=100),e.dateInfo.year=r,e.matchInfo.year=t}}),new Qn({type:Zn.MONTH,terms:["MMMM"],dateFormat:this,formatFunction:function(e,t){return this.dateFormat.symbols.months[e.inputDate.getMonth()]},parseFunction:function(e,t){let i,s,r,n;for(i=0;i<this.dateFormat.symbols.months.length;i++)if(s=this.dateFormat.symbols.months[i],s&&(r=new RegExp("^("+qt.quote(s)+")(.*)$","i"),n=r.exec(e.inputString),n))return e.dateInfo.month=i,e.matchInfo.month=n[1],e.inputString=n[2],n[1];if(e.analyze)for(i=0;i<this.dateFormat.symbols.months.length;i++)if(s=this.dateFormat.symbols.months[i],r=new RegExp("^("+qt.quote(e.inputString)+")(.*)$","i"),n=r.exec(s),n)return e.dateInfo.month=i,e.matchInfo.month=s,e.inputString="",n[1];return null}}),new Qn({type:Zn.MONTH,terms:["MMM"],dateFormat:this,formatFunction:function(e,t){return this.dateFormat.symbols.monthsShort[e.inputDate.getMonth()]},parseFunction:function(e,t){let i,s,r,n;for(i=0;i<this.dateFormat.symbols.monthsShort.length;i++)if(s=this.dateFormat.symbols.monthsShort[i],s&&(r=new RegExp("^("+qt.quote(s)+")(.*)$","i"),n=r.exec(e.inputString),n))return e.dateInfo.month=i,e.matchInfo.month=n[1],e.inputString=n[2],n[1];if(e.analyze)for(i=0;i<this.dateFormat.symbols.monthsShort.length;i++)if(s=this.dateFormat.symbols.monthsShort[i],r=new RegExp("^("+qt.quote(e.inputString)+")(.*)$","i"),n=r.exec(s),n)return e.dateInfo.month=i,e.matchInfo.month=s,e.inputString="",n[1];return null}}),new Qn({type:Zn.MONTH,terms:["MM"],dateFormat:this,formatFunction:(e,t)=>qt.padZeroLeft(e.inputDate.getMonth()+1,2),parseRegExp:/^(\d{2})(.*)$/,applyMatchFunction:(e,t,i)=>{let s=Number(t);e.dateInfo.month=s-1,e.matchInfo.month=t},parseFunction:function(e,t){if(e.analyze&&"0"===e.inputString){let t=this.dateFormat._dateInfoToDate(e.dateInfo);if(!t)return null;let i=t.getMonth();return i>=9&&(i=0,void 0===e.dateInfo.year?e.dateInfo.year=Number(t.getFullYear())+1:e.dateInfo.year=e.dateInfo.year+1),e.dateInfo.month=i,e.matchInfo.month=qt.padZeroLeft(String(i+1),2),e.inputString="","0"}return null}}),new Qn({type:Zn.MONTH,terms:["M"],dateFormat:this,formatFunction:(e,t)=>String(e.inputDate.getMonth()+1),parseRegExp:/^(\d{1,2})(.*)$/,applyMatchFunction:(e,t,i)=>{let s=Number(t);e.dateInfo.month=s-1,e.matchInfo.month=t}}),new Qn({type:Zn.WEEK_IN_YEAR,terms:["ww"],dateFormat:this,formatFunction:(e,t)=>qt.padZeroLeft(Le.weekInYear(e.inputDate),2),parseRegExp:/^(\d{2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.matchInfo.week=t,e.hints.weekInYear=Number(t)}}),new Qn({type:Zn.WEEK_IN_YEAR,terms:["w"],dateFormat:this,formatFunction:(e,t)=>String(Le.weekInYear(e.inputDate)),parseRegExp:/^(\d{1,2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.matchInfo.week=t,e.hints.weekInYear=Number(t)}}),new Qn({type:Zn.DAY_IN_MONTH,terms:["dd"],dateFormat:this,formatFunction:(e,t)=>qt.padZeroLeft(e.inputDate.getDate(),2),parseRegExp:/^(\d{2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.day=Number(t),e.matchInfo.day=t},parseFunction:(e,t)=>e.analyze&&"0"===e.inputString?(e.dateInfo.day=1,e.matchInfo.day="01",e.inputString="","0"):null}),new Qn({type:Zn.DAY_IN_MONTH,terms:["d"],dateFormat:this,formatFunction:(e,t)=>String(e.inputDate.getDate()),parseRegExp:/^(\d{1,2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.day=Number(t),e.matchInfo.day=t}}),new Qn({type:Zn.WEEKDAY,terms:["EEEE"],dateFormat:this,formatFunction:function(e,t){return this.dateFormat.symbols.weekdays[e.inputDate.getDay()]},parseFunction:function(e,t){let i,s,r,n;for(i=0;i<this.dateFormat.symbols.weekdays.length;i++)if(s=this.dateFormat.symbols.weekdays[i],s&&(r=new RegExp("^("+qt.quote(s)+")(.*)$","i"),n=r.exec(e.inputString),n))return e.matchInfo.weekday=n[1],e.hints.weekday=i,e.inputString=n[2],n[1];if(e.analyze)for(i=0;i<this.dateFormat.symbols.weekdays.length;i++)if(s=this.dateFormat.symbols.weekdays[i],r=new RegExp("^("+qt.quote(e.inputString)+")(.*)$","i"),n=r.exec(s),n)return e.matchInfo.weekday=s,e.hints.weekday=i,e.inputString="",n[1];return null}}),new Qn({type:Zn.WEEKDAY,terms:["EEE","EE","E"],dateFormat:this,formatFunction:function(e,t){return this.dateFormat.symbols.weekdaysShort[e.inputDate.getDay()]},parseFunction:function(e,t){let i,s,r,n;for(i=0;i<this.dateFormat.symbols.weekdaysShort.length;i++)if(s=this.dateFormat.symbols.weekdaysShort[i],s&&(r=new RegExp("^("+qt.quote(s)+")(.*)$","i"),n=r.exec(e.inputString),n))return e.matchInfo.weekday=n[1],e.hints.weekday=i,e.inputString=n[2],n[1];if(e.analyze)for(i=0;i<this.dateFormat.symbols.weekdaysShort.length;i++)if(s=this.dateFormat.symbols.weekdaysShort[i],r=new RegExp("^("+qt.quote(e.inputString)+")(.*)$","i"),n=r.exec(s),n)return e.matchInfo.weekday=s,e.hints.weekday=i,e.inputString="",n[1];return null}}),new Qn({type:Zn.HOUR_24,terms:["HH"],dateFormat:this,formatFunction:(e,t)=>qt.padZeroLeft(e.inputDate.getHours(),2),parseRegExp:/^(\d{2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.hours=Number(t),e.matchInfo.hours=t}}),new Qn({type:Zn.HOUR_24,terms:["H"],dateFormat:this,formatFunction:(e,t)=>String(e.inputDate.getHours()),parseRegExp:/^(\d{1,2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.hours=Number(t),e.matchInfo.hours=t}}),new Qn({type:Zn.HOUR_12,terms:["hh"],dateFormat:this,formatFunction:(e,t)=>e.inputDate.getHours()%12==0?"12":qt.padZeroLeft(e.inputDate.getHours()%12,2),parseRegExp:/^(10|11|12|0[1-9])(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.hours=Number(t)+(e.hints.pm?12:0),e.matchInfo.hours=t},parseFunction:(e,t)=>e.analyze&&"0"===e.inputString?(e.dateInfo.hours=1,e.matchInfo.hours="01",e.inputString="",e.inputString):null}),new Qn({type:Zn.HOUR_12,terms:["h"],dateFormat:this,formatFunction:(e,t)=>e.inputDate.getHours()%12==0?"12":String(e.inputDate.getHours()%12),parseRegExp:/^(10|11|12|0?[1-9])(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.hours=Number(t)+(e.hints.pm?12:0),e.matchInfo.hours=t}}),new Qn({type:Zn.AM_PM,terms:["a"],dateFormat:this,formatFunction:function(e,t){return e.inputDate.getHours()<12?this.dateFormat.symbols.am:this.dateFormat.symbols.pm},parseFunction:function(e,t){let i=new RegExp("^("+qt.quote(this.dateFormat.symbols.am)+")(.*)$","i"),s=i.exec(e.inputString);if(e.matchInfo.ampm=null,s)return e.matchInfo.ampm=s[1],e.inputString=s[2],e.hints.am=!0,e.dateInfo.hours=e.dateInfo.hours%12,s[1];if(i=new RegExp("^("+qt.quote(this.dateFormat.symbols.pm)+")(.*)$","i"),s=i.exec(e.inputString),s)return e.matchInfo.ampm=s[1],e.inputString=s[2],e.hints.pm=!0,e.dateInfo.hours=e.dateInfo.hours%12+12,s[1];if(e.analyze){if(i=new RegExp("^("+qt.quote(e.inputString)+")(.*)$","i"),s=i.exec(this.dateFormat.symbols.am),s)return e.matchInfo.ampm=this.dateFormat.symbols.am,e.inputString="",e.hints.am=!0,e.dateInfo.hours=e.dateInfo.hours%12,s[1];if(s=i.exec(this.dateFormat.symbols.pm),s)return e.matchInfo.ampm=this.dateFormat.symbols.pm,e.inputString="",e.hints.pm=!0,e.dateInfo.hours=e.dateInfo.hours%12+12,s[1]}return null}}),new Qn({type:Zn.MINUTE,terms:["mm"],dateFormat:this,formatFunction:(e,t)=>qt.padZeroLeft(e.inputDate.getMinutes(),2),parseRegExp:/^(\d{2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.minutes=Number(t),e.matchInfo.minutes=t},parseFunction:(e,t)=>{if(e.analyze&&x.isOneOf(e.inputString,"0","1","2","3","4","5")){let t=e.inputString+"0";return e.dateInfo.minutes=Number(t),e.matchInfo.minutes=t,e.inputString="",e.inputString}return null}}),new Qn({type:Zn.MINUTE,terms:["m"],dateFormat:this,formatFunction:(e,t)=>String(e.inputDate.getMinutes()),parseRegExp:/^(\d{1,2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.minutes=Number(t),e.matchInfo.minutes=t}}),new Qn({type:Zn.SECOND,terms:["ss"],dateFormat:this,formatFunction:(e,t)=>qt.padZeroLeft(e.inputDate.getSeconds(),2),parseRegExp:/^(\d{2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.seconds=Number(t),e.matchInfo.seconds=t}}),new Qn({type:Zn.SECOND,terms:["s"],dateFormat:this,formatFunction:(e,t)=>String(e.inputDate.getSeconds()),parseRegExp:/^(\d{1,2})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.seconds=Number(t),e.matchInfo.seconds=t}}),new Qn({type:Zn.MILLISECOND,terms:["SSS"],dateFormat:this,formatFunction:(e,t)=>qt.padZeroLeft(e.inputDate.getMilliseconds(),3),parseRegExp:/^(\d{3})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.milliseconds=Number(t),e.matchInfo.milliseconds=t}}),new Qn({type:Zn.MILLISECOND,terms:["S"],dateFormat:this,formatFunction:(e,t)=>String(e.inputDate.getMilliseconds()),parseRegExp:/^(\d{1,3})(.*)$/,applyMatchFunction:(e,t,i)=>{e.dateInfo.milliseconds=Number(t),e.matchInfo.milliseconds=t}}),new Qn({type:Zn.TIMEZONE,terms:["Z"],dateFormat:this,formatFunction:(e,t)=>{let i=Math.abs(e.inputDate.getTimezoneOffset());return(i!==e.inputDate.getTimezoneOffset()?"-":"+")+qt.padZeroLeft(Math.floor(i/60),2)+qt.padZeroLeft(i%60,2)},parseRegExp:/^([+|-]\d{4})(.*)$/,applyMatchFunction:(e,t,i)=>{let s=60*Number(t.substr(1,2))+Number(t.substr(3,2));"-"===t.charAt(0)&&(s*=-1),e.dateInfo.timezone=s,e.matchInfo.timezone=t}})],this._patternLibrary={};for(let e=0;e<this._patternDefinitions.length;e++){let t=this._patternDefinitions[e],i=t.type;i&&(this._patternLibrary[i]||(this._patternLibrary[i]=[]),this._patternLibrary[i].push(t))}this._compile()}_compile(){let e,t,i,s,r,n,o,l,a;for(r=/(.)\1*/g;n=r.exec(this.pattern);){for(o=n[0],this._terms.push(o),l=!1,e=0;e<this._patternDefinitions.length;e++){s=this._patternDefinitions[e];let r=s.accept(o);if(r){if(this._formatFunctions.push(s.createFormatFunction(r)),this._parseFunctions.push(s.createParseFunction(r)),a=[s.createParseFunction(r)],this.lenient)for(i=this._patternLibrary[s.type],t=0;t<i.length;t++)i[t]!==s&&a.push(i[t].createParseFunction(r));this._analyzeFunctions.push(a),l=!0;break}}if(!l){this._formatFunctions.push(this._createConstantStringFormatFunction(o));let e=this._createConstantStringParseFunction(o);this._parseFunctions.push(e),this._analyzeFunctions.push([e])}}}_createConstantStringFormatFunction(e){return t=>{t.formattedString+=e}}_createConstantStringParseFunction(e){return t=>qt.startsWith(t.inputString,e)?(t.inputString=t.inputString.substr(e.length),t.parsedPattern+=e,!0):t.analyze}format(e,t){if(!e)return"";let i=this._createFormatContext(e);i.exactLength=x.nvl(t,!1);for(let e=0;e<this._formatFunctions.length;e++){(0,this._formatFunctions[e])(i)}return i.formattedString}analyze(e,t){let i=this._createAnalyzeInfo(e);if(!e)return i;let s=this._createParseContext(e);s.analyze=!0,s.startDate=t;let r="";for(let e=0;e<this._terms.length;e++)if(s.inputString.length>0){let t=this._analyzeFunctions[e],n=!1;for(let e=0;e<t.length;e++){if((0,t[e])(s)){n=!0;break}}if(!n)return i.error=!0,i;r=s.parsedPattern}else s.parsedPattern+=this._terms[e];if(s.inputString.length>0)return i.error=!0,i;t=this._prepareStartDate(t);let n=s.hints.weekday,o=s.dateInfo.day;void 0!==n&&(t=void 0!==o&&o<=31?Le.shiftToNextDayAndDate(t,n,o):Le.shiftToNextDayOfType(t,n));let l=this._dateInfoToDate(s.dateInfo,t,s.hints);return i.dateInfo=s.dateInfo,i.matchInfo=s.matchInfo,i.hints=s.hints,i.parsedPattern=s.parsedPattern,i.matchedPattern=r,i.predictedDate=l,i.error=!l,i}parse(e,t){if(!e)return null;let i=this._createParseContext(e);i.startDate=t;for(let e=0;e<this._parseFunctions.length;e++){if(!(0,this._parseFunctions[e])(i))return null;if(0===i.inputString.length)break}if(i.inputString.length>0)return null;let s=this._dateInfoToDate(i.dateInfo,t);return s?void 0!==i.hints.weekday&&s.getDay()!==i.hints.weekday?null:s:null}_dateInfoToDate(e,t,i){if(!e)return null;t=this._prepareStartDate(t);let s=new Date(1970,0,1),r=x.nvl(e.day,t.getDate()),n=x.nvl(e.month,t.getMonth()),o=x.nvl(e.year,t.getFullYear());if(e.day&&!e.month)if(31===e.day){let e=[0,2,4,6,7,9,11];x.isOneOf(n,e)||(n+=1)}else e.day>=29&&1===n&&(e.day>29||!Le.isLeapYear(o))&&(n+=1);if(!e.day&&e.month){let i=Le.shift(new Date(o,e.month+1,1),0,0,-1);r=Math.min(i.getDate(),t.getDate())}return s.setFullYear(o,n,r),s.setHours(x.nvl(e.hours,t.getHours()),x.nvl(e.minutes,t.getMinutes()),x.nvl(e.seconds,t.getSeconds()),x.nvl(e.milliseconds,t.getMilliseconds())),l(s.getFullYear(),e.year)&&l(s.getMonth(),e.month)&&l(s.getDate(),e.day)&&l(s.getHours(),e.hours)&&l(s.getMinutes(),e.minutes)&&l(s.getSeconds(),e.seconds)&&l(s.getMilliseconds(),e.milliseconds)&&l(s.getDay(),Ai.optProperty(i,"weekday"))?(fi.isNumber(e.timezone)&&s.setMinutes(s.getMinutes()-s.getTimezoneOffset()+e.timezone),s):null;function l(e,t){return Ai.isNullOrUndefined(t)||t===e}}_prepareStartDate(e){return e?new Date(e.getTime()):Le.trunc(new Date)}_createFormatContext(e){return{inputDate:e,formattedString:"",exactLength:!1}}_createParseContext(e){return{inputString:e,dateInfo:{},matchInfo:{},hints:{},parsedPattern:"",analyze:!1,startDate:null}}_createAnalyzeInfo(e){return{inputString:e,dateInfo:{},matchInfo:{},hints:{},parsedPattern:"",matchedPattern:"",predictedDate:null,error:!1}}static ensure(e,t){return t?t instanceof eo?t:new eo(e,t):t}}class to{constructor(e,t){this.positivePrefix="",this.positiveSuffix="",this.negativePrefix=e.decimalFormatSymbols.minusSign,this.negativeSuffix="",this.groupingChar=e.decimalFormatSymbols.groupingSeparator,this.lenientGroupingChars="'´`’· ",this.groupLength=0,this.decimalSeparatorChar=e.decimalFormatSymbols.decimalSeparator,this.zeroBefore=1,this.zeroAfter=0,this.allAfter=0,"string"==typeof t&&(this.pattern=t),t=t||{},this.pattern=this.pattern||t.pattern||e.decimalFormatPatternDefault,this.multiplier=t.multiplier||1,this.roundingMode=t.roundingMode||bi.HALF_UP;let i=to.PATTERN_SYMBOLS,s=this.pattern.split(i.patternSeparator),r=l(s[0]);if(this.positivePrefix=r.prefix,this.positiveSuffix=r.suffix,s.length>1){let e=l(s[1]);this.negativePrefix=e.prefix,this.negativeSuffix=e.suffix,this.pattern=s[0]}else-1!==this.positivePrefix.indexOf(i.minusSign)||-1!==this.positiveSuffix.indexOf(i.minusSign)?(this.negativePrefix=this.positivePrefix.replace(i.minusSign,e.decimalFormatSymbols.minusSign),this.negativeSuffix=this.positiveSuffix.replace(i.minusSign,e.decimalFormatSymbols.minusSign),this.positivePrefix=this.positivePrefix.replace(i.minusSign,""),this.positiveSuffix=this.positiveSuffix.replace(i.minusSign,"")):(this.negativePrefix=this.positivePrefix+this.negativePrefix,this.negativeSuffix=this.negativeSuffix+this.positiveSuffix);let n=this.pattern.indexOf(i.decimalSeparator);-1===n&&(n=this.pattern.length);let o=this.pattern.lastIndexOf(i.groupingSeparator,n);function l(e){let t={prefix:"",suffix:""},s=i.digit+i.zeroDigit+i.decimalSeparator+i.groupingSeparator,r=new RegExp("^(.*?)["+s+"].*$"),n=r.exec(e);return null!==n&&(t.prefix=n[1].replace(new RegExp("'([^']+)'","g"),"$1")),r=new RegExp("^.*["+s+"](.*?)$"),n=r.exec(e),null!==n&&(t.suffix=n[1].replace(new RegExp("'([^']+)'","g"),"$1")),t}o>0&&(this.groupLength=n-o-1),this.pattern=this.pattern.replace(new RegExp("["+i.groupingSeparator+"]","g"),""),s=this.pattern.split(i.decimalSeparator),this.zeroBefore=qt.count(s[0],i.zeroDigit),s.length>1&&(this.zeroAfter=qt.count(s[1],i.zeroDigit),this.allAfter=this.zeroAfter+qt.count(s[1],i.digit))}parse(e,t){if(qt.empty(e))return null;let i=this.normalize(e),s=(t=t||Number)(i);if(isNaN(s))throw new Error(e+" is not a number (NaN)");return 1!==this.multiplier&&(s/=this.multiplier),s}format(e,t){if(t=x.nvl(t,!0),null==e)return null;let i=this.positivePrefix,s=this.positiveSuffix;t&&1!==this.multiplier&&(e*=this.multiplier),e=this.round(e);let r="";if(this.allAfter){r=e.toFixed(this.allAfter).split(".")[1];for(let e=r.length-1;e>this.zeroAfter-1&&"0"===r[e];e--)r=r.slice(0,-1);r&&(r=this.decimalSeparatorChar+r)}e<0&&(i=this.negativePrefix,s=this.negativeSuffix,e=-e);let n=Math.floor(e);if(n=0===n?"":String(n),n=qt.padZeroLeft(n,this.zeroBefore),this.groupLength)for(let e=n.length-this.groupLength;e>0;e-=this.groupLength)n=n.substr(0,e)+this.groupingChar+n.substr(e);return i+n+r+s}round(e,t){return t=x.nvl(t,!0),null==e?null:(t&&1!==this.multiplier&&(e*=this.multiplier),e=fi.round(e,this.roundingMode,this.allAfter),t&&1!==this.multiplier&&(e/=this.multiplier),e)}normalize(e){return e?e.replace(new RegExp("["+this.groupingChar+this.lenientGroupingChars+"]","g"),"").replace(new RegExp("["+this.decimalSeparatorChar+"]","g"),".").replace(/\s/g,""):e}static ensure(e,t){return t?t instanceof to?t:new to(e,t):t}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(to,"PATTERN_SYMBOLS",{digit:"#",zeroDigit:"0",decimalSeparator:".",groupingSeparator:",",minusSign:"-",patternSeparator:";"});class io{constructor(e){this.map=e||{}}get(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];if(!this._exists(e))return this.parent?this.parent.get(e,...i):"[undefined text: "+e+"]";let r=i.length,n=this.map[e];if(0===r)return n;for(let e=0;e<r;e++)n=n.replace(new RegExp("\\{"+e+"\\}","g"),i[e]);return n}optGet(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r<i;r++)s[r-2]=arguments[r];return this._exists(e)?this.get(e,...s):this.parent?this.parent.optGet(e,t,...s):t}exists(e){return!!this._exists(e)||!!this.parent&&this.parent.exists(e)}_exists(e){return this.map.hasOwnProperty(e)}add(e,t){this.map[e]=t}addAll(e){e&&(e instanceof io&&(e=e.map),Ai.copyOwnProperties(e,this.map))}setParent(e){this.parent=e}remove(e){delete this.map[e]}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(io,"TEXT_KEY_REGEX",/\${textKey:([a-zA-Z0-9.]*)}/);const so=/\${textKey:([^}]*)}/;let ro={};function no(e,t){if(t&&t.error)throw{error:t.error,url:e};oo(t)}function oo(e){Object.keys(e).forEach((t=>{ho(t).addAll(e[t])}),this)}function lo(e){let t;ao(e).forEach((e=>{let i=uo(e);i||(i=new io,co(e,i)),t&&t.setParent(i),t=i}),this)}function ao(e){let t=[],i=e.lastIndexOf("-");for(t.push(e);i>=0;)e=e.substring(0,i),t.push(e),i=e.lastIndexOf("-");return"default"!==e&&t.push("default"),t}function ho(e){let t=uo(e);if(t)return t;if(lo(e),t=uo(e),!t)throw new Error("Texts missing for the language tag "+e);return t}function uo(e){return ro[e]}function co(e,t){ro[e]=t}function po(e){let t=so.exec(e);return t&&2===t.length?t[1]:e}function go(e,t){let i=po(e);return i!==e?ho(t).get(i):e}const mo={TEXT_KEY_REGEX:so,bootstrap:function(e){if(!e)return n().resolvedPromise({});let t=[];return me.ensure(e).forEach((e=>t.push(n().ajaxJson(e).then(no.bind(this,e))))),n().promiseAll(t)},buildKey:function(e){return"${textKey:"+e+"}"},createOrderedLanguageTags:ao,get:ho,init:oo,link:lo,put:co,readFromDOM:function(){let e={};return n()("scout-text").each((function(){let t=n()(this).data("key"),i=n()(this).data("value");e[t]=i})),e},resolveKey:po,resolveText:go,resolveTextProperty:function(e,t,i){t=t||"text",i=e.session||i;let s=e[t],r=go(s,i.locale.languageTag);r!==s&&(e[t]=r)},textsByLocale:ro};class _o extends Y{constructor(){super(),this.text=null,this.severity=Ii.Severity.INFO,this.arrowPosition=16,this.arrowPositionUnit="px",this.windowPaddingX=10,this.windowPaddingY=5,this.origin=null,this.originRelativeToParent=!1,this.$anchor=null,this.autoRemove=!0,this.tooltipPosition="top",this.tooltipDirection="right",this.scrollType="position",this.htmlEnabled=!1,this.$arrow=null,this.$content=null,this.menus=[],this._addWidgetProperties(["menus"]),this._openLater=!1}render(e){let t=e||this.entryPoint();if(!t||!t.length||!t.isAttached())return this._openLater=!0,void(this.$parent=t);super.render(t)}_render(){this.$container=this.$parent.appendDiv("tooltip").data("tooltip",this),this.cssClass&&this.$container.addClass(this.cssClass),this.$arrow=this.$container.appendDiv("tooltip-arrow"),this.$content=this.$container.appendDiv("tooltip-content"),this._renderText(),this._renderSeverity(),this._renderMenus(),this.autoRemove&&(this._mouseDownHandler=this._onDocumentMouseDown.bind(this),this.$container.document(!0).addEventListener("mousedown",this._mouseDownHandler,!0),this._keydownHandler=this._onDocumentKeyDown.bind(this),this.$container.document().on("keydown",this._keydownHandler)),this.$anchor&&this.scrollType&&(this._anchorScrollHandler=this._onAnchorScroll.bind(this),Yn.onScroll(this.$anchor,this._anchorScrollHandler)),this.dialog=null;let e=this.parent;for(;e;){if(e instanceof Ta&&e.isDialog()){this.dialog=e;break}e=e.parent}this.dialog&&(this._moveHandler=this.position.bind(this),this.dialog.on("move",this._moveHandler))}_postRender(){super._postRender(),this.position()}_remove(){this._mouseDownHandler&&(this.$container.document(!0).removeEventListener("mousedown",this._mouseDownHandler,!0),this._mouseDownHandler=null),this._keydownHandler&&(this.$container.document().off("keydown",this._keydownHandler),this._keydownHandler=null),this._anchorScrollHandler&&(Yn.offScroll(this._anchorScrollHandler),this._anchorScrollHandler=null),this._moveHandler&&(this.dialog&&this.dialog.off("move",this._moveHandler),this._moveHandler=null),this.dialog=null,this.$menus=null,super._remove()}_onAttach(){super._onAttach(),this._openLater&&!this.rendered&&(this._openLater=!1,this.render())}_renderOnDetach(){this._openLater=!0,this.remove(),super._onDetach()}_isRemovalPrevented(){return this.removalPending}setText(e){this.setProperty("text",e)}setSeverity(e){this.setProperty("severity",e)}_renderText(){let e=this.text||"";this.htmlEnabled?this.$content.html(e):this.$content.html(qt.nl2br(e)),this.$content.setVisible(!!e),this.$container.toggleClass("no-text",!e),this.rendering||this.position()}_renderSeverity(){this.$container.removeClass(Ii.SEVERITY_CSS_CLASSES),this.$container.addClass(Ii.cssClassForSeverity(this.severity))}setMenus(e){e=me.ensure(e),this.setProperty("menus",e)}_renderMenus(){let e=0,t=this.menus;t.length>0&&!this.$menus?this.$menus=this.$container.appendDiv("tooltip-menus"):0===t.length&&this.$menus&&(this.$menus.remove(),this.$menus=null),t.forEach((function(t){let i=0;t.render(this.$menus),t.iconId&&(i=t.get$Icon().outerWidth(!0),e=Math.max(i,e))}),this),e>0&&t.forEach((t=>{t.iconId?t.$text.cssPaddingLeft(e-t.get$Icon().outerWidth(!0)):t.$text.cssPaddingLeft(e)}),this),this.$container.toggleClass("has-menus",t.length>0),this.rendering||(this.$container.cssLeft("").cssTop(""),this.position())}position(){let e,t,i,s,r,n,o,l,a,h,d,u,c;if(this.origin?(a=this.origin,o=a.x):(a=pr.offsetBounds(this.$anchor),o=a.x+a.width/2),l=a.y,this.$anchor&&(c=Yn.isLocationInView(a,this.$anchor.scrollParent()),this.$container.setVisible(c)),!this.originRelativeToParent){let e=this.$parent.offset();o-=e.left,l-=e.top}i=7,s=4,d=this.$container.outerHeight(),h=this.$container.outerWidth(),u=this.arrowPosition,"%"===this.arrowPositionUnit&&(u=h*this.arrowPosition/100),"left"===this.tooltipDirection&&(u=h-u),e=l-d-4,t=o-u,r=t+h+this.windowPaddingX-this.$parent.width(),n=e-this.windowPaddingY,r>0&&(t-=r,u=o-t),t<this.windowPaddingX&&(t=this.windowPaddingX,u=o-this.windowPaddingX),this.$arrow.removeClass("arrow-top arrow-bottom"),"bottom"===this.tooltipPosition||n<0?(this.$arrow.addClass("arrow-top"),e=l+a.height+4):this.$arrow.addClass("arrow-bottom"),u=Math.min(u,this.$container.outerWidth()-7),u=Math.max(u,7),this.$arrow.cssLeft(u-this.$arrow.cssBorderLeftWidth()),this.$container.cssLeft(t).cssTop(e),this.menus.forEach((e=>{e.popup&&e.popup.position()}),this)}_onAnchorScroll(e){this.rendered&&("position"===this.scrollType?this.position():"remove"===this.scrollType&&this.destroy())}_onDocumentMouseDown(e){if(!this.rendered)return!1;this._isMouseDownOutside(e)&&this._onMouseDownOutside(e)}_isMouseDownOutside(e){let t=n()(e.target),i=x.widget(t);return!this.isOrHas(i)&&this.$anchor&&!this.$anchor.isOrHas(t[0])&&!this.session.focusManager.isElementCovertByGlassPane(this.$container[0])}_onMouseDownOutside(){this.destroy()}_onDocumentKeyDown(e){x.isOneOf(e.which,Kr.CTRL,Kr.SHIFT,Kr.ALT,Kr.NUM_LOCK,Kr.CAPS_LOCK,Kr.SCROLL_LOCK,Kr.WIN_LEFT,Kr.WIN_RIGHT,Kr.SELECT,Kr.PAUSE,Kr.PRINT_SCREEN)||this.destroy()}}class fo{constructor(e){let t={selector:null,delay:yo.DEFAULT_TOOLTIP_DELAY,text:void 0,nativeTooltip:!1};e=n().extend({},t,e),this._options=e,this._mouseEnterHandler=this._onMouseEnter.bind(this),this._mouseLeaveHandler=this._onMouseLeave.bind(this),this._tooltip=null,this._tooltipTimeoutId=null}install(e){e.data("tooltipSupport")||e.on("mouseenter",this._options.selector,this._mouseEnterHandler).on("mouseleave",this._options.selector,this._mouseLeaveHandler).data("tooltipSupport",this)}uninstall(e){e.removeData("tooltipSupport").off("mouseleave",this._options.selector,this._mouseLeaveHandler).off("mouseenter",this._options.selector,this._mouseEnterHandler),this._destroyTooltip()}update(e,t){n().extend(this._options,t),this._tooltip&&this._showTooltip(e)}cancel(e){clearTimeout(this._tooltipTimeoutId)}close(){this._destroyTooltip()}_onMouseEnter(e){let t=n()(e.currentTarget);if(this._options.nativeTooltip){let e=this._text(t);t.attr("title",e)}else clearTimeout(this._tooltipTimeoutId),this._tooltipTimeoutId=setTimeout(this._showTooltip.bind(this,t),this._options.delay)}_onMouseLeave(e){this._destroyTooltip()}_destroyTooltip(){clearTimeout(this._tooltipTimeoutId),this._tooltip&&(this._tooltip.destroy(),this._tooltip=null)}_text(e){let t=this._options.text||e.data("tooltipText");return n().isFunction(t)&&(t=t(e)),t}_htmlEnabled(e){let t=this._options.htmlEnabled||e.data("htmlEnabled");return n().isFunction(t)&&(t=t(e)),x.nvl(t,!1)}_showTooltip(e){if(!e||!e.isAttached())return;let t=this._text(e);if(!t)return;let i=this._htmlEnabled(e);if(this._tooltip&&this._tooltip.rendered)this._tooltip.setText(t),this._tooltip.setSeverity(this._options.severity),this._tooltip.setMenus(this._options.menus);else{let s=n().extend({},this._options,{$anchor:this._options.$anchor||e,text:t,htmlEnabled:i});this._tooltip=x.create("Tooltip",s),this._tooltip.render(s.$parent)}}}function bo(e,t){let i=e.data("tooltipSupport");i?i.update(e,t):(i=new fo(t),i.install(e))}const yo={DEFAULT_TOOLTIP_DELAY:600,LONG_TOOLTIP_DELAY:1e3,cancel:function(e){let t=e.data("tooltipSupport");t&&t.cancel(e)},close:function(e){let t=e.data("tooltipSupport");t&&t.close()},find:function(e){let t,i,s,r=[];for(t=n()(".tooltip",e.document(!0)),i=0;i<t.length;i++)s=t.eq(i).data("tooltip"),e.has(s.$anchor).length>0&&r.push(s);return r},install:bo,installForEllipsis:function(e,t){let i={text:e=>{if(e.isContentTruncated())return e.text()},nativeTooltip:!Qe.get().isCustomEllipsisTooltipPossible()};bo(e,t=n().extend({},i,t))},uninstall:function(e){let t=e.data("tooltipSupport");t&&t.uninstall(e)},update:function(e,t){let i=e.data("tooltipSupport");i&&i.update(e,t)}};class wo extends _o{constructor(){super(),this.$widgetContainer=null,this.widget=null,this._addWidgetProperties(["widget"]),this.keyStrokeStopPropagationInterceptor=e=>{x.isOneOf(e.which,Kr.ESC,Kr.ENTER)||e.stopPropagation()},this.withFocusContext=!0,this.initialFocus=()=>wn.AUTO,this.focusableContainer=!1}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeStopPropagationInterceptor&&this.keyStrokeContext.registerStopPropagationInterceptor(this.keyStrokeStopPropagationInterceptor)}_render(){super._render(),this.$container.addClass("widget-tooltip"),this.$widgetContainer=this.$container.appendDiv("tooltip-widget-container")}_renderProperties(){super._renderProperties(),this._renderWidget()}_remove(){this._removeWidget(),super._remove()}setWidget(e){this.setProperty("widget",e)}_renderWidget(){this.widget&&(this.widget.render(this.$widgetContainer),this.widget.$container.addClass("widget"),this.widget.pack()),this.$widgetContainer.setVisible(!!this.widget),this.rendering||this.position(),this.withFocusContext&&this.widget&&this.session.focusManager.installFocusContext(this.$widgetContainer,this.initialFocus())}_removeWidget(){this.widget&&(this.session.focusManager.uninstallFocusContext(this.$widgetContainer),this.widget.remove())}}function Co(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class vo extends Y{constructor(){super(),this.actionStyle=vo.ActionStyle.DEFAULT,this.compact=!1,this.iconId=null,this.horizontalAlignment=-1,this.keyStroke=null,this.keyStrokeFirePolicy=vo.KeyStrokeFirePolicy.ACCESSIBLE_ONLY,this.selected=!1,this.preventDoubleClick=!1,this.tabbable=!1,this.text=null,this.textPosition=vo.TextPosition.DEFAULT,this.htmlEnabled=!1,this.textVisible=!0,this.toggleAction=!1,this.tooltipText=null,this.showTooltipWhenSelected=!0,this._doubleClickSupport=new et,this._addCloneProperties(["actionStyle","horizontalAlignment","iconId","selected","preventDoubleClick","tabbable","text","textPosition","htmlEnabled","tooltipText","toggleAction"])}_createKeyStrokeContext(){return new Zr}_init(e){super._init(e),this.actionKeyStroke=this._createActionKeyStroke(),this.resolveConsts([{property:"actionStyle",constType:vo.ActionStyle},{property:"textPosition",constType:vo.TextPosition},{property:"keyStrokeFirePolicy",constType:vo.KeyStrokeFirePolicy}]),this.resolveTextKeys(["text","tooltipText"]),this.resolveIconIds(["iconId"]),this._setKeyStroke(this.keyStroke)}_render(){this.$container=this.$parent.appendDiv("action").on("mousedown",(e=>this._doubleClickSupport.mousedown(e))).on("click",this._onClick.bind(this)),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout())}_createLayout(){return new Lr}_renderProperties(){super._renderProperties(),this._renderText(),this._renderTextPosition(),this._renderIconId(),this._renderTooltipText(),this._renderKeyStroke(),this._renderSelected(),this._renderTabbable(),this._renderCompact()}_remove(){this._removeText(),this._removeIconId(),super._remove()}setText(e){this.setProperty("text",e)}_renderText(){let e=this.text||"";e&&this.textVisible?(this.$text||(this.$text=this.$container.appendSpan("content text"),fr.install(this.$text,this.session)),this.htmlEnabled?this.$text.html(e):this.$text.text(e)):this._removeText()}_removeText(){this.$text&&(this.$text.remove(),this.$text=null)}setTextPosition(e){this.setProperty("textPosition",e)}_renderTextPosition(){this.$container.toggleClass("bottom-text",this.textPosition===vo.TextPosition.BOTTOM),this.invalidateLayoutTree()}setHtmlEnabled(e){this.setProperty("htmlEnabled",e)}_renderHtmlEnabled(){this._renderText()}setIconId(e){this.setProperty("iconId",e)}_renderIconId(){let e=this.iconId||"";e?this.icon?this.icon.setIconDesc(e):(this.icon=x.create("Icon",{parent:this,iconDesc:e,prepend:!0}),this.icon.one("destroy",(()=>{this.icon=null})),this.icon.render()):this._removeIconId()}get$Icon(){return this.icon?this.icon.$container:n()()}_removeIconId(){this.icon&&this.icon.destroy()}_renderEnabled(){super._renderEnabled(),this.rendered&&(this._updateTooltip(),this._renderTabbable())}setTooltipText(e){this.setProperty("tooltipText",e)}_renderTooltipText(){this._updateTooltip()}_updateTooltip(){this._shouldInstallTooltip()?yo.install(this.$container,this._configureTooltip()):yo.uninstall(this.$container)}_shouldInstallTooltip(){let e=this.tooltipText&&this.enabledComputed;return!this.showTooltipWhenSelected&&this.selected&&(e=!1),e}_renderTabbable(){this.$container.setTabbable(this.tabbable&&this.enabledComputed&&!Qe.get().supportsOnlyTouch())}_renderCompact(){this.$container.toggleClass("compact",this.compact),this.invalidateLayoutTree()}setTooltipPosition(e){this.setProperty("tooltipPosition",e)}_configureTooltip(){return{parent:this,text:this.tooltipText,$anchor:this.$container,arrowPosition:50,arrowPositionUnit:"%",tooltipPosition:this.tooltipPosition}}doAction(){return!!this.prepareDoAction()&&(this.isToggleAction()&&this.setSelected(!this.selected),this._doAction(),!0)}toggle(){this.isToggleAction()&&this.setSelected(!this.selected)}setToggleAction(e){this.setProperty("toggleAction",e)}isToggleAction(){return this.toggleAction}prepareDoAction(){return!(!this.enabledComputed||!this.visible)}_doAction(){this.trigger("action")}setSelected(e){this.setProperty("selected",e)}_renderSelected(){this.$container.toggleClass("selected",this.selected),this.rendered&&this._updateTooltip()}setKeyStroke(e){this.setProperty("keyStroke",e)}_setKeyStroke(e){this.actionKeyStroke.parseAndSetKeyStroke(e),this._setProperty("keyStroke",e)}_renderKeyStroke(){let e=this.keyStroke;void 0===e?this.$container.removeAttr("data-shortcut"):this.$container.attr("data-shortcut",e)}setTabbable(e){this.setProperty("tabbable",e)}setTextVisible(e){this.textVisible!==e&&(this._setProperty("textVisible",e),this.rendered&&this._renderText())}setCompact(e){this.compact!==e&&(this.compact=e,this.rendered&&this._renderCompact())}setHorizontalAlignment(e){this.setProperty("horizontalAlignment",e)}_createActionKeyStroke(){return new xo(this)}setPreventDoubleClick(e){this.setProperty("preventDoubleClick",e)}_allowMouseEvent(e){return 1===e.which&&("click"!==e.type||!this.preventDoubleClick||!this._doubleClickSupport.doubleClicked())}_onClick(e){this._allowMouseEvent(e)&&(yo.cancel(this.$container),this.doAction())}setActionStyle(e){this.setProperty("actionStyle",e)}}Co(vo,"ActionStyle",{DEFAULT:0,BUTTON:1}),Co(vo,"TextPosition",{DEFAULT:"default",BOTTOM:"bottom"}),Co(vo,"KeyStrokeFirePolicy",{ACCESSIBLE_ONLY:0,ALWAYS:1});class To extends j{constructor(){super(),this._addRemoteProperties(["selected"])}_goOffline(){this._enabledBeforeOffline=this.widget.enabled,this.widget.setEnabled(!1)}_goOnline(){this.widget.setEnabled(this._enabledBeforeOffline)}_onWidgetAction(e){this.widget.isToggleAction()||this._send("action")}_onWidgetEvent(e){"action"===e.type?this._onWidgetAction(e):super._onWidgetEvent(e)}}class So extends U{constructor(e){super(),this.field=e,this.which=[Kr.SPACE,Kr.ENTER],this.stopPropagation=!0}handle(e){this.field.doAction()}}class xo extends U{constructor(e){super(),this.field=e,this.parseAndSetKeyStroke(e.keyStroke),this.keyStrokeFirePolicy=e.keyStrokeFirePolicy,this.stopPropagation=!0,this.stopImmediatePropagation=!0}_isEnabled(){return!!this.which.length&&super._isEnabled()}handle(e){this.field.doAction()}}class Po{constructor(){this.$parent=null}render(e){this.$parent=e,this._render(),this.rendered=!0}remove(){this.$container.remove(),this.$container=null,this.rendered=!1}_render(){this.$backgroundElements=n()("<div>").addClass("box-background-elements").appendTo(this.$parent),n()("<div>").addClass("box-background-element-1").appendTo(this.$backgroundElements),n()("<div>").addClass("box-background-element-2").appendTo(this.$backgroundElements),n()("<div>").addClass("box-background-element-3").appendTo(this.$backgroundElements),this.$container=n()("<div>").addClass("box").appendTo(this.$parent),this.$wrapper=n()("<div>").addClass("wrapper").appendTo(this.$container),this.$content=n()("<div>").addClass("box-content").appendTo(this.$wrapper),this.logoUrl&&(this.$header=this.$content.appendDiv("header"),this.$logo=n()("<img>").addClass("logo").attr("src",this.logoUrl).appendTo(this.$header))}}class Fo extends Y{constructor(){super(),this.value=null,this.htmlEnabled=!1,this.scrollable=!1}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke(new Qd(this,this._onAppLinkAction))}_init(e){super._init(e),this.resolveTextKeys(["value"])}_render(){this.$container=this.$parent.appendDiv(),this.htmlComp=fr.install(this.$container,this.session)}_renderProperties(){super._renderProperties(),this._renderValue(),this._renderScrollable()}setValue(e){this.setProperty("value",e)}_renderValue(){let e=this.value||"";this.htmlEnabled?(this.$container.html(e),this.$container.find(".app-link").on("click",this._onAppLinkAction.bind(this)),this.$container.find("img").on("load",this._onImageLoad.bind(this)).on("error",this._onImageError.bind(this))):this.$container.html(qt.nl2br(e)),this.rendered&&(this._uninstallScrollbars(),this._renderScrollable()),this.invalidateLayoutTree()}setHtmlEnabled(e){this.setProperty("htmlEnabled",e)}_renderHtmlEnabled(){this._renderValue()}setScrollable(e){this.setProperty("scrollable",e)}_renderScrollable(){this.scrollable?this._installScrollbars():this._uninstallScrollbars()}_onAppLinkAction(e){let t=n()(e.delegateTarget).data("ref");this.triggerAppLinkAction(t)}triggerAppLinkAction(e){this.trigger("appLinkAction",{ref:e})}_onImageLoad(e){this.invalidateLayoutTree()}_onImageError(e){this.invalidateLayoutTree()}}class Eo extends j{constructor(){super()}_onWidgetAppLinkAction(e){this._send("appLinkAction",{ref:e.ref})}_onWidgetEvent(e){"appLinkAction"===e.type?this._onWidgetAppLinkAction(e):super._onWidgetEvent(e)}}function Do(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Ao extends Y{constructor(){super(),this._documentMouseDownHandler=null,this._anchorScrollHandler=null,this._anchorLocationChangeHandler=null,this._popupOpenHandler=null,this._glassPaneRenderer=null,this.anchorBounds=null,this.animateOpening=!1,this.animateResize=!1,this.anchor=null,this.$anchor=null,this.windowPaddingX=10,this.windowPaddingY=5,this.withGlassPane=!1,this.withFocusContext=!0,this.initialFocus=()=>wn.AUTO,this.focusableContainer=!1,this.horizontalAlignment=Ao.Alignment.LEFTEDGE,this.verticalAlignment=Ao.Alignment.BOTTOM,this.calculatedHorizontalAlignment=this.horizontalAlignment,this.calculatedVerticalAlignment=this.verticalAlignment,this.horizontalSwitch=!1,this.verticalSwitch=!0,this.trimWidth=!1,this.trimHeight=!0,this.scrollType="remove",this.windowResizeType=null,this.boundToAnchor=!0,this.withArrow=!1,this.closeOnAnchorMouseDown=!0,this.closeOnMouseDownOutside=!0,this.closeOnOtherPopupOpen=!0,this._openLater=!1,this.$arrow=null,this.$arrowOverlay=null,this._windowResizeHandler=this._onWindowResize.bind(this),this._anchorRenderHandler=this._onAnchorRender.bind(this),this._addWidgetProperties(["anchor"]),this._addPreserveOnPropertyChangeProperties(["anchor"])}_init(e){super._init(e),e.location&&(this.anchorBounds=new or(e.location.x,e.location.y,0,0)),this.withGlassPane&&(this._glassPaneRenderer=new Tn(this)),this._setAnchor(this.anchor)}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke(this._createCloseKeyStroke())}_createCloseKeyStroke(){return new nn(this)}_createLayout(){return new Ro(this)}_openWithoutParent(){this.parent.destroyed||(this.parent.rendered||this.parent.rendering?this.open(this._getDefaultOpen$Parent()):this.parent.one("render",(()=>{this.session.layoutValidator.schedulePostValidateFunction((()=>{this.destroyed||this.rendered||this.open()}))})))}_getDefaultOpen$Parent(){return this.parent.entryPoint()}open(e){e?(this._triggerPopupOpenEvent(),this._open(e),this._openLater||(this.animateOpening?(this.$container.addClass("before-animate-open"),setTimeout((()=>{this.rendered&&!this.removing&&(this.$container.removeClass("before-animate-open"),this.validateFocus(),this.$container.addClassForAnimation("animate-open"))}))):this.validateFocus())):this._openWithoutParent()}validateFocus(){if(!this.withFocusContext)return;let e=this.session.focusManager.getFocusContext(this.$container);e.ready(),e.lastValidFocusedElement||this._requestInitialFocus()}_requestInitialFocus(){let e=this.session.focusManager.evaluateFocusRule(this.$container,this.initialFocus());e&&this.session.focusManager.requestFocus(e)}_open(e){this.render(e),this._openLater||(this.revalidateLayout(),this.position())}render(e){let t=e||this.entryPoint();t&&t.length&&t.isAttached()?super.render(t):this._openLater=!0}_render(){this.$container=this.$parent.appendDiv("popup"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.validateRoot=!0,this.htmlComp.setLayout(this._createLayout()),this.$container.window().on("resize",this._windowResizeHandler)}_renderProperties(){super._renderProperties(),this._renderAnchor(),this._renderWithArrow(),this._renderWithFocusContext(),this._renderWithGlassPane()}_postRender(){super._postRender(),this._attachCloseHandlers(),this._attachAnchorHandlers(),this._handleGlassPanes()}_onAttach(){if(super._onAttach(),this._openLater&&!this.rendered){this._openLater=!1;let e=this.animateOpening;this.animateOpening=!1,this.open(),this.animateOpening=e}}_renderOnDetach(){this._openLater=!0,super.removeImmediately(),super._renderOnDetach()}remove(){let e=this.animateRemoval;this.boundToAnchor&&this.$anchor&&!this._isAnchorInView()&&(this.animateRemoval=!1),super.remove(),this.animateRemoval=e}_remove(){this.$container.window().off("resize",this._windowResizeHandler),this._glassPaneRenderer&&this._glassPaneRenderer.removeGlassPanes(),this.withFocusContext&&this.session.focusManager.uninstallFocusContext(this.$container),this.$arrow&&(this.$arrow.remove(),this.$arrow=null),this.anchor&&this.anchor.one("render",this._anchorRenderHandler),this._detachAnchorHandlers(),this._detachCloseHandlers(),super._remove()}_destroy(){this.anchor&&this.anchor.off("render",this._anchorRenderHandler),super._destroy()}_renderWithFocusContext(){this.withFocusContext&&(this.focusableContainer&&this.$container.attr("tabindex",-1),this.session.focusManager.installFocusContext(this.$container,wn.PREPARE))}_renderWithGlassPane(){this._glassPaneRenderer&&this._glassPaneRenderer.renderGlassPanes()}setWithArrow(e){this.setProperty("withArrow",e)}_renderWithArrow(){this.$arrow&&(this.$arrow.remove(),this.$arrow=null),this.$arrowOverlay&&(this.$arrowOverlay.remove(),this.$arrowOverlay=null),this.withArrow&&(this.$arrowOverlay=this.$container.prependDiv("popup-arrow-overlay"),this.$arrow=this.$container.prependDiv("popup-arrow"),this._updateArrowClass()),this.$container.toggleClass("with-arrow",this.withArrow),this.invalidateLayoutTree()}_updateArrowClass(e,t){this.$arrow&&(this.$arrow.removeClass(this._alignClasses()),this.$arrow.addClass(this._computeArrowPositionClass(e,t)))}_computeArrowPositionClass(e,t){let i=Ao.Alignment,s="";switch(t=t||this.horizontalAlignment,e=e||this.verticalAlignment,t){case i.LEFT:s=i.RIGHT;break;case i.RIGHT:s=i.LEFT;break;default:s=t}switch(e){case i.BOTTOM:s+=" "+i.TOP;break;case i.TOP:s+=" "+i.BOTTOM;break;default:s+=" "+e}return s}_animateRemovalWhileRemovingParent(){return!this.$anchor||J.get(this.$anchor)!==this.parent}_isRemovalPrevented(){return this.removalPending}close(){if(this.destroyed||this.destroying)return;let e=new ht;this.trigger("close",e),e.defaultPrevented||this.destroy()}_attachCloseHandlers(){this.closeOnMouseDownOutside&&(this._documentMouseDownHandler=this._onDocumentMouseDown.bind(this),this.$container.document(!0).addEventListener("mousedown",this._documentMouseDownHandler,!0)),this.closeOnOtherPopupOpen&&(this._popupOpenHandler=this._onPopupOpen.bind(this),this.session.desktop.on("popupOpen",this._popupOpenHandler))}_attachAnchorHandlers(){if(!this.$anchor||!this.boundToAnchor||!this.scrollType)return;this._anchorScrollHandler=this._onAnchorScroll.bind(this),Yn.onScroll(this.$anchor,this._anchorScrollHandler);let e=x.widget(this.$anchor);e&&(this._anchorLocationChangeHandler=this._onAnchorLocationChange.bind(this),e.on("locationChange",this._anchorLocationChangeHandler))}_detachAnchorHandlers(){if(this._anchorScrollHandler&&(Yn.offScroll(this._anchorScrollHandler),this._anchorScrollHandler=null),this._anchorLocationChangeHandler){let e=x.widget(this.$anchor);e&&(e.off("locationChange",this._anchorLocationChangeHandler),this._anchorLocationChangeHandler=null)}}_detachCloseHandlers(){this._popupOpenHandler&&(this.session.desktop.off("popupOpen",this._popupOpenHandler),this._popupOpenHandler=null),this._documentMouseDownHandler&&(this.$container.document(!0).removeEventListener("mousedown",this._documentMouseDownHandler,!0),this._documentMouseDownHandler=null)}_onDocumentMouseDown(e){this._rendered&&this._isMouseDownOutside(e)&&this._onMouseDownOutside(e)}_isMouseDownOutside(e){let t,i=n()(e.target);return!(!this.closeOnAnchorMouseDown&&this._isMouseDownOnAnchor(e))&&(t=x.widget(i),!this.isOrHas(t)&&!this.session.focusManager.isElementCovertByGlassPane(this.$container[0]))}_isMouseDownOnAnchor(e){return!!this.$anchor&&this.$anchor.isOrHas(e.target)}_onMouseDownOutside(e){this.close()}_onAnchorScroll(e){this.rendered&&this._handleAnchorPositionChange()}_handleAnchorPositionChange(e){x.isOneOf(this.scrollType,"position","layoutAndPosition")&&this.isOpeningAnimationRunning()||("position"===this.scrollType?this.position():"layoutAndPosition"===this.scrollType?(this.revalidateLayout(),this.position()):"remove"===this.scrollType&&this.close())}isOpeningAnimationRunning(){return this.rendered&&this.animateOpening&&this.$container.hasClass("animate-open")}_onAnchorLocationChange(e){this._handleAnchorPositionChange()}_onPopupOpen(e){let t=!this.isOrHas(e.popup)&&!e.popup.isOrHas(this);this.rendered&&(t=t&&!this.session.focusManager.isElementCovertByGlassPane(this.$container[0])),t&&this.close()}setHorizontalAlignment(e){this.setProperty("horizontalAlignment",e)}_renderHorizontalAlignment(){this._updateArrowClass(),this.invalidateLayoutTree()}setVerticalAlignment(e){this.setProperty("verticalAlignment",e)}_renderVerticalAlignment(){this._updateArrowClass(),this.invalidateLayoutTree()}setHorizontalSwitch(e){this.setProperty("horizontalSwitch",e)}_renderHorizontalSwitch(){this.invalidateLayoutTree()}setVerticalSwitch(e){this.setProperty("verticalSwitch",e)}_renderVerticalSwitch(){this.invalidateLayoutTree()}setTrimWidth(e){this.setProperty("trimWidth",e)}_renderTrimWidth(){this.invalidateLayoutTree()}setTrimHeight(e){this.setProperty("trimHeight",e)}_renderTrimHeight(){this.invalidateLayoutTree()}prefLocation(e,t){return this.boundToAnchor&&(this.anchorBounds||this.$anchor)?this._prefLocationWithAnchor(e,t):this._prefLocationWithoutAnchor()}_prefLocationWithoutAnchor(){return La.positionContainerInWindow(this.$container)}_prefLocationWithAnchor(e,t){let i=this.$container;t=t||this.horizontalAlignment,e=e||this.verticalAlignment;let s=this.getAnchorBounds(),r=pr.size(i,{exact:!0}),n=pr.margins(i),o=Ao.Alignment,l=null;this.$arrow&&(this._updateArrowClass(e,t),pr.setMargins(this.$arrow,new rr),l=pr.bounds(this.$arrow)),i.removeClass(this._alignClasses()),i.addClass(e+" "+t);let a=r.width+n.horizontal(),h=r.width,d=s.x;t===o.LEFT?d-=a:t===o.LEFTEDGE?this.withArrow?d+=s.width/2-l.center().x-n.left:d=s.x-n.left:t===o.CENTER?d+=s.width/2-h/2-n.left:t===o.RIGHT?d+=s.width:t===o.RIGHTEDGE&&(this.withArrow?d+=s.width/2-l.center().x-n.right:d=s.x+s.width-h-n.right);let u=r.height+n.vertical(),c=r.height,p=s.y;e===o.TOP?p-=u:e===o.TOPEDGE?this.withArrow?p+=s.height/2-l.center().y-n.top:p=s.y-n.top:e===o.CENTER?p+=s.height/2-c/2-n.top:e===o.BOTTOM?p+=s.height:e===o.BOTTOMEDGE&&(this.withArrow?p+=s.height/2-l.center().y-n.bottom:p=s.y+s.height-c-n.bottom);let g=this.$parent.offset();return d-=g.left,p-=g.top,new nr(d,p)}_alignClasses(){let e=Ao.Alignment;return qt.join(" ",e.LEFT,e.LEFTEDGE,e.CENTER,e.RIGHT,e.RIGHTEDGE,e.TOP,e.TOPEDGE,e.CENTER,e.BOTTOM,e.BOTTOMEDGE)}getAnchorBounds(){let e=this.anchorBounds;if(!this.$anchor)return e;let t=pr.offsetBounds(this.$anchor,{exact:!0});return e?(e.x||(e.x=t.x,e.width=t.width),e.y||(e.y=t.y,e.height=t.height)):e=t,e}getWindowSize(){let e=this.$parent.window();return new sr(e.width(),e.height())}overlap(e,t){let i=this.$container;if(!i||!e)return null;t=x.nvl(t,!0);let s=pr.size(i,{exact:!0,includeMargin:t}),r=s.width,n=s.height,o=new or(e.x,e.y,r,n),l=pr.offsetBounds(i.entryPoint(),!0),a=o.right()+this.windowPaddingX-l.width;a<0&&(a=Math.min(o.x-this.windowPaddingX-l.x,0));let h=o.bottom()+this.windowPaddingY-l.height;return h<0&&(h=Math.min(o.y-this.windowPaddingY-l.y,0)),new nr(a,h)}adjustLocation(e,t){this.calculatedVerticalAlignment=this.verticalAlignment,this.calculatedHorizontalAlignment=this.horizontalAlignment;let i=this.overlap(e);if(this.$arrow&&(this._updateArrowClass(this.calculatedVerticalAlignment,this.calculatedHorizontalAlignment),pr.setMargins(this.$arrow,new rr)),e=e.clone(),Math.abs(i.y)>=1){x.nvl(t,this.verticalSwitch)?(this.calculatedVerticalAlignment=Ao.SwitchRule[this.calculatedVerticalAlignment],e.y=this.prefLocation(this.calculatedVerticalAlignment).y):e.y-=i.y}if(Math.abs(i.x)>=1){x.nvl(t,this.horizontalSwitch)?(this.calculatedHorizontalAlignment=Ao.SwitchRule[this.calculatedHorizontalAlignment],e.x=this.prefLocation(this.calculatedVerticalAlignment,this.calculatedHorizontalAlignment).x):e.x-=i.x}return this.$arrow&&(0!==i.y&&(this.$arrow.hasClass(Ao.Alignment.LEFT)||this.$arrow.hasClass(Ao.Alignment.RIGHT))&&(i.y>0?this.$arrow.cssMarginTop(i.y):this.$arrow.cssMarginBottom(-i.y)),0!==i.x&&(this.$arrow.hasClass(Ao.Alignment.TOP)||this.$arrow.hasClass(Ao.Alignment.BOTTOM))&&(i.x>0?this.$arrow.cssMarginLeft(i.x):this.$arrow.cssMarginRight(-i.x))),e}position(e){this.rendered&&(this._validateVisibility(),this._position(e))}_position(e){let t=this.prefLocation();t&&(t=this.adjustLocation(t,e),this.setLocation(t))}setLocation(e){this.rendered&&(this.$container.css("left",e.x).css("top",e.y),this._triggerLocationChange())}_validateVisibility(){if(!this.boundToAnchor||!this.$anchor)return;let e=this._isAnchorInView(),t=this.$container.hasClass("invisible")===e&&e;if(this.$container.toggleClass("invisible",!e),t){let e=this.animateResize;this.animateResize=!1,this.revalidateLayout(),this.animateResize=e,this.withFocusContext&&this.session.focusManager.validateFocus()}}_isAnchorInView(){if(!this.boundToAnchor||!this.$anchor)return;let e=this.getAnchorBounds();return Yn.isLocationInView(e.center(),this.$anchor.scrollParents())}_triggerLocationChange(){this.trigger("locationChange")}_triggerPopupOpenEvent(){this.session.desktop.trigger("popupOpen",{popup:this})}belongsTo(e){return this.$anchor[0]===e[0]}set$Anchor(e){this.$anchor&&this._detachAnchorHandlers(),this.setProperty("$anchor",e),this.rendered&&(this._attachAnchorHandlers(),this.revalidateLayout(),this.animateResize||this.position())}isOpen(){return this.rendered}ensureOpen(){this.isOpen()||this.open()}setAnchor(e){this.setProperty("anchor",e)}_setAnchor(e){e&&this.setParent(e),this._setProperty("anchor",e)}_onAnchorRender(){this.session.layoutValidator.schedulePostValidateFunction((()=>{if(this.rendered||this.destroyed)return;if(this.anchor&&!this.anchor.rendered)return void this.anchor.one("render",this._anchorRenderHandler);let e=this.animateOpening;this.animateOpening=!1,this.open(),this.animateOpening=e}))}_renderAnchor(){this.anchor&&this.set$Anchor(this.anchor.$container)}_onWindowResize(){this.rendered&&("position"===this.windowResizeType?this.position():"layoutAndPosition"===this.windowResizeType?(this.revalidateLayoutTree(!1),this.position()):"remove"===this.windowResizeType&&this.close())}_handleGlassPanes(){this.session.focusManager.isElementCovertByGlassPane(this.parent.$container)&&this.session.focusManager.rerenderGlassPanes()}}Do(Ao,"Alignment",{LEFT:"left",LEFTEDGE:"leftedge",TOP:"top",TOPEDGE:"topedge",CENTER:"center",RIGHT:"right",RIGHTEDGE:"rightedge",BOTTOM:"bottom",BOTTOMEDGE:"bottomedge"}),Do(Ao,"SwitchRule",{}),(()=>{let e=Ao.SwitchRule,t=Ao.Alignment;e[t.LEFT]=t.RIGHT,e[t.LEFTEDGE]=t.RIGHTEDGE,e[t.TOP]=t.BOTTOM,e[t.TOPEDGE]=t.BOTTOMEDGE,e[t.CENTER]=t.CENTER,e[t.RIGHT]=t.LEFT,e[t.RIGHTEDGE]=t.LEFTEDGE,e[t.BOTTOM]=t.TOP,e[t.BOTTOMEDGE]=t.TOPEDGE})();class $o extends j{constructor(){super()}_onWidgetClose(e){e.preventDefault(),this._send("close")}_onWidgetEvent(e){"close"===e.type?this._onWidgetClose(e):super._onWidgetEvent(e)}}class Ro extends _r{constructor(e){super(),this.popup=e,this.doubleCalcPrefSize=!0,this.autoPosition=!0,this.autoSize=!0,this.resizeAnimationRunning=!1,this.resizeAnimationDuration=null,this._autoPositionOrig=null}layout(e){if(this.popup.isOpeningAnimationRunning())return void this.popup.$container.oneAnimationEnd(this.layout.bind(this,e));if(this.popup.removalPending||this.popup.removing||!this.popup.rendered)return;if(!this.autoSize)return void this._setSize(this.popup.htmlComp.size({exact:!0}));let t=this.popup.htmlComp,i=pr.bounds(t.$comp),s=this.preferredLayoutSize(e,{exact:!0,onlyWidth:this.doubleCalcPrefSize});s=this.adjustSize(s),this.doubleCalcPrefSize&&(s=this.preferredLayoutSize(e,{exact:!0,widthHint:s.width-t.insets().horizontal()}),s=this.adjustSize(s)),this._setSize(s),t.layouted&&this.popup.animateResize&&this._resizeAnimated(i,s)}_resizeAnimated(e,t){this._position();let i=this.popup.htmlComp,s=i.$comp.position(),r=new or(s.left,s.top,Math.ceil(t.width),Math.ceil(t.height));e.equals(r)||(this.resizeAnimationRunning=!0,i.$comp.stop(!0).cssHeight(e.height).cssWidth(e.width).cssLeft(e.x).cssTop(e.y).animate({height:t.height,width:t.width,left:s.left,top:s.top},{duration:this.resizeAnimationDuration,complete:()=>{this.resizeAnimationRunning=!1,this.popup.rendered&&this._position()}}))}_position(e){this.autoPosition&&this.popup.position(e)}_setSize(e){pr.setSize(this.popup.htmlComp.$comp,e)}adjustSize(e){return this.popup.htmlComp._adjustPrefSizeWithMinMaxSize(e),this.popup.boundToAnchor&&(this.popup.anchorBounds||this.popup.$anchor)?this._adjustSizeWithAnchor(e):this._adjustSize(e)}_adjustSize(e){let t=new sr,i=this._calcMaxSize();return t.width=Math.min(i.width,e.width),t.height=Math.min(i.height,e.height),t}_calcMaxSize(){let e,t,i=this.popup.htmlComp,s=this.popup.windowPaddingX,r=this.popup.windowPaddingY,n=i.margins(),o=this.popup.getWindowSize();return e=o.width-n.horizontal()-s,t=o.height-n.vertical()-r,new sr(e,t)}_adjustSizeWithAnchor(e){let t=new sr,i=this._calcMaxSizeAroundAnchor(),s=this._calcMaxSize(),r=Ao.Alignment,n=this.popup.horizontalAlignment,o=this.popup.verticalAlignment;return t.width=e.width,this.popup.trimWidth&&(this.popup.horizontalSwitch?e.width>i.right&&e.width>i.left&&(t.width=Math.max(i.right,i.left)):n===r.RIGHT?t.width=Math.min(t.width,i.right):n===r.LEFT?t.width=Math.min(t.width,i.left):t.width=Math.min(t.width,s.width)),t.height=e.height,this.popup.trimHeight&&(this.popup.verticalSwitch?e.height>i.bottom&&e.height>i.top&&(t.height=Math.max(i.bottom,i.top)):o===r.BOTTOM?t.height=Math.min(t.height,i.bottom):o===r.TOP?t.height=Math.min(t.height,i.top):t.height=Math.min(t.height,s.height)),o!==r.CENTER&&n!==r.CENTER||(n===r.CENTER&&(t.width=Math.min(s.width,e.width)),o===r.CENTER&&(t.height=Math.min(s.height,e.height))),t}_calcMaxSizeAroundAnchor(){let e,t,i,s,r=this.popup.htmlComp,n=this.popup.windowPaddingX,o=this.popup.windowPaddingY,l=r.margins(),a=this.popup.getAnchorBounds(),h=this.popup.getWindowSize(),d=this.popup.horizontalAlignment,u=this.popup.verticalAlignment,c=Ao.Alignment;return x.isOneOf(d,c.LEFTEDGE,c.RIGHTEDGE)?(t=h.width-a.x-l.horizontal()-n,e=a.right()-l.horizontal()-n):(t=h.width-a.right()-l.horizontal()-n,e=a.x-l.horizontal()-n),x.isOneOf(u,c.BOTTOMEDGE,c.TOPEDGE)?(i=h.height-a.y-l.vertical()-o,s=a.bottom()-l.vertical()-o):(i=h.height-a.bottom()-l.vertical()-o,s=a.y-l.vertical()-o),new rr(s,t,i,e)}disableAutoPosition(){null===this._autoPositionOrig&&(this._autoPositionOrig=this.autoPosition,this.autoPosition=!1)}resetAutoPosition(){this.autoPosition=this._autoPositionOrig,this._autoPositionOrig=null}}class Mo extends Y{constructor(){super(),this.popups=[],this._addWidgetProperties(["popups"]),this._addPreserveOnPropertyChangeProperties(["popups"])}_init(e){super._init(e),this.session.layoutValidator.schedulePostValidateFunction((()=>{this._openPopups(this.popups)}))}setPopups(e){this.setProperty("popups",e)}_setPopups(e){this._openPopups(me.diff(e,this.popups)),this._destroyPopups(me.diff(this.popups,e)),this._setProperty("popups",e),this.popups.forEach((e=>{e.parent instanceof scout.PopupManager&&e.setParent(this.session.desktop)}))}_openPopups(e){e.forEach((e=>{e.open()}))}_destroyPopups(e){e.forEach((e=>{e.destroy()}))}}class ko extends j{constructor(){super()}}class Io extends Ao{constructor(){super(),this._touchField=null,this._touchFieldTooltip=null,this._field=null,this._widget=null,this._$widgetContainer=null,this._widgetContainerHtmlComp=null,this.windowPaddingX=0,this.windowPaddingY=0,this.withGlassPane=!0,this._touchFieldPropertyChangeListener=this._onTouchFieldPropertyChange.bind(this)}_init(e){super._init(e),this._touchField=e.field,this._touchField._tooltip()&&this._touchField._tooltip().rendered&&(this._touchFieldTooltip=this._touchField._tooltip(),this._touchFieldTooltip.remove()),this._field=this._touchField.clone(this._fieldOverrides()),this._touchField.on("propertyChange",this._touchFieldPropertyChangeListener),this._initWidget(e),this.doneAction=x.create("Menu",{parent:this,text:this.session.text("ui.Done")}),this.doneAction.on("action",this._onCloseIconClick.bind(this))}_destroy(){this._touchField.off("propertyChange",this._touchFieldPropertyChangeListener),this._touchFieldTooltip&&!this._touchFieldTooltip.destroyed&&this._touchFieldTooltip.render(this._touchField._$tooltipParent()),super._destroy()}_fieldOverrides(){return{parent:this,labelVisible:!1,fieldStyle:iu.FieldStyle.CLASSIC,popup:this,statusVisible:!1,menusVisible:!1,embedded:!0,touchMode:!1,clearable:du.Clearable.ALWAYS}}_initWidget(e){}_createLayout(){return new Lo(this)}prefLocation(e,t){let i=this.htmlComp.prefSize(),s=this.$container.window().width(),r=Math.max(this.windowPaddingX,(s-i.width)/2);return new nr(r,0)}_render(){this.$container=this.$parent.appendDiv("popup touch-popup"),this.$body=this.$container.appendDiv("body"),this.htmlBody=fr.install(this.$body,this.session),this.htmlBody.setLayout(new Br),this._$header=this.$body.appendDiv("touch-popup-header"),fr.install(this._$header,this.session),this._$header.appendDiv("touch-popup-title").textOrNbsp(this._touchField.label,"empty"),this.doneAction.render(this._$header),this._$widgetContainer=this.$body.appendDiv("touch-popup-widget-container"),this._widgetContainerHtmlComp=fr.install(this._$widgetContainer,this.session),this._widgetContainerHtmlComp.setLayout(new Or),this._field.render(),this._field.$container.insertBefore(this._$widgetContainer),this._field.$container.addClass("touch-popup-field"),this._widget&&this._widget.render(this._$widgetContainer),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.validateRoot=!0,this.htmlComp.setLayout(this._createLayout())}_handleGlassPanes(){super._handleGlassPanes(),this._glassPaneRenderer&&this._glassPaneRenderer.eachGlassPane((e=>e.addClass("dark")))}_onTouchFieldPropertyChange(e){"errorStatus"===e.propertyName?this._field.setErrorStatus(e.newValue):"lookupRow"===e.propertyName&&this._field.setLookupRow(e.newValue)}_acceptInput(){let e=this._field.acceptInput();e?e.always(this.close.bind(this)):this.close()}_onCloseIconClick(e){this._acceptInput()}}class Lo extends Ro{constructor(e){super(e),this.doubleCalcPrefSize=!1}_setSize(e){super._setSize(e);let t=this.popup.htmlComp,i=this.popup.htmlBody,s=e.subtract(t.insets());i.setSize(s.subtract(i.margins()))}preferredLayoutSize(e,t){let i=this.popup.htmlComp,s=this.popup.htmlBody,r=s.prefSize(t).add(i.insets());return r.width=mr.get().formColumnWidth,r.add(s.margins())}}class Bo extends Ao{constructor(){super(),this.animateOpening=!0,this.animateResize=!0,this.animateRemoval=!0,this.closable=!1,this.closeAction=null,this.movable=!1,this.resizable=!1,this.resizeModes=null,this.minSize=null,this.widget=null,this.windowPaddingX=0,this.windowPaddingY=0,this.windowResizeType="layoutAndPosition",this.$dragHandle=null,this.$actions=null,this._moveHandler=this._onMove.bind(this),this._resizeHandler=this._onResize.bind(this),this._autoPositionOrig=null,this._addWidgetProperties(["widget"])}_createLayout(){return new No(this)}_init(e){super._init(e),this._setClosable(this.closable)}_render(){super._render(),this.$container.addClass("widget-popup")}_renderProperties(){super._renderProperties(),this._renderWidget(),this._renderClosable(),this._renderMovable(),this._renderResizable()}_remove(){this.$dragHandle=null,this.$actions=null,super._remove()}setWidget(e){this.setProperty("widget",e)}_renderWidget(){this.widget&&(this.widget.render(),this.widget.$container.addClass("popup-widget"),this.invalidateLayoutTree())}setClosable(e){this.setProperty("closable",e)}_setClosable(e){if(this._setProperty("closable",e),this.closable){if(this.closeAction)return;this.closeAction=this._createCloseAction(),this.closeAction.on("action",this._onCloseAction.bind(this))}else{if(!this.closeAction)return;this.closeAction.destroy(),this.closeAction=null}}_createCloseAction(){return x.create("Action",{parent:this,cssClass:"close-action menu-item",iconId:Ct.REMOVE})}_renderClosable(){this.closeAction?(this.$actions||(this.$actions=this.$container.appendDiv("actions")),this.closeAction.render(this.$actions)):this.$actions&&0===this.$actions.children().length&&(this.$actions.remove(),this.$actions=null)}_onCloseAction(){this.close()}setResizable(e){this.setProperty("resizable",e)}_renderResizable(){this.resizable?this.$container.resizable({modes:this._determineResizeModes(),$parent:this.$container,boundaries:this._calculateResizeBoundaries()}).on("resize",this._resizeHandler):(this.$container.unresizable().off("resize",this._resizeHandler),this.invalidateLayoutTree())}_calculateResizeBoundaries(){let e=new rr;if(!this.$arrow)return e;let t=this._getAnchorMiddlePoint();if(!t)return e;let i=pr.size(this.$arrow);return this._isVerticallyAligned()?(e.top=t.y-i.height,e.bottom=t.y+i.height):(e.left=t.x-i.width,e.right=t.x+i.width),e}_determineResizeModes(){return!this.$arrow||this.resizeModes?this.resizeModes:this.calculatedVerticalAlignment===Ao.Alignment.TOP?[P_.MODES.WEST,P_.MODES.EAST,P_.MODES.NORTH]:this.calculatedVerticalAlignment===Ao.Alignment.BOTTOM?[P_.MODES.WEST,P_.MODES.EAST,P_.MODES.SOUTH]:this.calculatedHorizontalAlignment===Ao.Alignment.LEFT?[P_.MODES.NORTH,P_.MODES.SOUTH,P_.MODES.WEST]:this.calculatedHorizontalAlignment===Ao.Alignment.RIGHT?[P_.MODES.NORTH,P_.MODES.SOUTH,P_.MODES.EAST]:this.resizeModes}_onResize(e){let t=this.htmlComp.layout.autoSize;return this.htmlComp.layout.autoSize=!1,this.htmlComp.revalidateLayout(),this.htmlComp.layout.autoSize=t,this._updateArrowPosition(),!1}position(e){if(this.rendered&&(super.position(e),this.resizable)){let e=this.$container.data("resizable");e.setBoundaries(this._calculateResizeBoundaries()),e.setModes(this._determineResizeModes()),this._updateArrowPosition()}}_updateArrowClass(e,t){super._updateArrowClass(e,t),this.$arrow&&(this.$arrow.cssLeft(null),this.$arrow.cssTop(null))}_updateArrowPosition(){if(!this.$arrow)return;let e=this._getAnchorMiddlePoint();if(!e)return;this.$arrow.removeClass("leftedge rightedge topedge bottomedge");let t=pr.size(this.$arrow),i=pr.margins(this.$arrow);if(this._isVerticallyAligned()){let s=i.top+i.bottom;this.$arrow.cssTop(e.y-(s+this.$container.position().top+t.height/2))}else{let s=i.left+i.right;this.$arrow.cssLeft(e.x-(s+this.$container.position().left+t.width/2))}}_getAnchorMiddlePoint(){let e=this.getAnchorBounds();return e?e.center():null}_isVerticallyAligned(){return x.isOneOf(this.calculatedHorizontalAlignment,Ao.Alignment.LEFT,Ao.Alignment.RIGHT)}setMovable(e){this.setProperty("movable",e)}_renderMovable(){if(this.movable){if(this.$dragHandle)return;this.$dragHandle=this.$container.prependDiv("drag-handle"),this.$container.draggable(this.$dragHandle,n().throttle(this._moveHandler,1e3/60))}else{if(!this.$dragHandle)return;this.$container.undraggable(this.$dragHandle),this.$dragHandle.remove(),this.$dragHandle=null,this.htmlComp.layout.autoPosition=this._autoPositionOrig,this._autoPositionOrig=null,this.invalidateLayoutTree()}}_onMove(e){null===this._autoPositionOrig&&(this._autoPositionOrig=this.htmlComp.layout.autoPosition,this.htmlComp.layout.autoPosition=!1),this.trigger("move",e)}set$Anchor(e){this._autoPositionOrig&&e&&this.$anchor!==e&&(this.htmlComp.layout.autoPosition=this._autoPositionOrig,this._autoPositionOrig=null),super.set$Anchor(e)}}class Oo extends $o{constructor(){super()}}class No extends Ro{constructor(e){super(e)}_setSize(e){super._setSize(e);let t=this.popup.htmlComp,i=this.popup.widget.htmlComp,s=e.subtract(t.insets());i.setSize(s.subtract(i.margins()))}preferredLayoutSize(e,t){let i=this.popup.htmlComp,s=this.popup.widget.htmlComp;return s.prefSize(t).add(i.insets()).add(s.margins())}}class Ho extends Bo{constructor(){super(),this.boundToAnchor=!1,this.closable=!0,this.title=null,this.withGlassPane=!0}_createLayout(){return new Wo(this)}_createCloseAction(){return x.create("Action",{parent:this,cssClass:"closer",iconId:Ct.REMOVE_BOLD})}prefLocation(e,t){let i=this.htmlComp.prefSize(),s=this.$container.window().height(),r=Math.max(s-i.height,0);return new nr(0,r)}_render(){this.$container=this.$parent.appendDiv("popup mobile-popup"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.validateRoot=!0,this.htmlComp.setLayout(this._createLayout()),this.$header=this.$container.appendDiv("mobile-popup-header"),this.$title=this.$header.appendDiv("title")}_renderProperties(){super._renderProperties(),this._renderTitle()}_renderWidget(){super._renderWidget(),this.widget&&this.widget.$container.addClass("mobile-popup-widget")}_renderClosable(){this.closeAction&&this.closeAction.render(this.$header),this.$header.setVisible(this.title||this.closable)}_renderTitle(){this.$title.textOrNbsp(this.title),this.$header.setVisible(this.title||this.closable)}}class Vo extends Oo{}class Wo extends Ro{constructor(e){super(e),this.doubleCalcPrefSize=!1}layout(e){super.layout(e);let t=this.popup.htmlComp,i=t.size(),s=this.popup.widget.htmlComp,r=0,n=this.popup.$header,o=0;i=i.subtract(t.insets()),o=pr.prefSize(n,!0),pr.setLocation(n,new nr(0,0)),r=i.clone(),r.height-=o.height,s.setLocation(new nr(0,o.height)),s.setSize(r.subtract(s.margins()))}preferredLayoutSize(e){let t=this.popup.$container.window();return new sr(t.width(),t.height())}}class zo extends Y{constructor(){super(),this.preselectedDate=null,this.selectedDate=null,this.dateFormat=null,this.viewDate=null,this.allowedDates=null,this.currentMonth=null,this.$scrollable=null,this.months=[],this._showWeekendSeparator=!0}_init(e){super._init(e),this._setDateFormat(this.dateFormat),this._showWeekendSeparator=1===this.dateFormat.symbols.firstDayOfWeek}_render(){this.$container=this.$parent.appendDiv("date-picker").toggleClass("touch-only",Qe.get().supportsOnlyTouch()),this.htmlComp=fr.install(this.$container,this.session),this._$header=this._append$Header(),this._$header.find(".date-picker-left-y, .date-picker-left-m, .date-picker-right-m, .date-picker-right-y").mousedown(this._onNavigationMouseDown.bind(this)),this.$container.appendDiv("date-picker-separator"),this.$scrollable=this.$container.appendDiv("date-picker-scrollable"),this._registerSwipeHandlers()}_setDateFormat(e){e||(e=this.session.locale.dateFormatPatternDefault),e=eo.ensure(this.session.locale,e),this._setProperty("dateFormat",e)}prependMonth(e){let t=this.months.slice();me.insert(t,e,0),this.setMonths(t)}appendMonth(e){let t=this.months.slice();t.push(e),this.setMonths(t)}resetMonths(e){e=e||this.viewDate;let t=Le.shift(e,0,-1,0),i=Le.shift(e,0,1,0);this.setMonths([t,e,i])}setMonths(e){e=(e=me.ensure(e)).map((function(e){let t=e;e instanceof Date||(t=e.viewDate);let i=this._findMonthByViewDate(t);return i||{rendered:!1,viewDate:t,$container:void 0}}),this),this.rendered&&this.months.forEach((t=>{e.indexOf(t)<0&&t.rendered&&t.$container.remove()}),this),this.setProperty("months",e)}_renderMonths(){this.months.forEach((function(e){e.rendered?this._layoutWeekendSeparator(e):(this._renderMonth(e),this.currentMonth&&Le.compare(e.viewDate,this.currentMonth.viewDate)<0&&e.$container.insertBefore(this.currentMonth.$container))}),this);let e=this.months.length*this._boxWidth;this.$scrollable.width(e),this.currentMonth&&this.$scrollable.cssLeft(this._scrollableLeftForMonth(this.currentMonth))}_findMonthByViewDate(e){return me.find(this.months,(t=>0===Le.compareMonths(t.viewDate,e)))}_scrollableLeftForMonth(e){let t=pr.insets(this.$scrollable),i=pr.margins(e.$container);return-1*(e.$container.position().left-i.left-t.left)}_renderMonth(e){if(e.rendered)return;let t=this.$parent.makeDiv("date-picker-month-box");this._showWeekendSeparator&&(e.$weekendSeparator=t.appendDiv("date-picker-weekend-separator")),this._build$DateBox(e.viewDate).appendTo(t),t.on("DOMMouseScroll mousewheel",this._onMouseWheel.bind(this)).appendTo(this.$scrollable),this._boxWidth||(this._boxWidth=t.width()),t.width(this._boxWidth),e.$container=t,e.rendered=!0}setViewDate(e,t){Ai.equals(this.viewDate,e)||(this._setProperty("viewDate",e),this.rendered&&this._renderViewDate(t))}_renderViewDate(e){let t=this._findMonthByViewDate(this.viewDate),i=this._scrollableLeftForMonth(t);this.currentMonth||this.revalidateLayoutTree(),this.currentMonth=t,this._updateHeader(this.viewDate),(e=x.nvl(e,!0))?this.$scrollable.stop(!0).animate({left:i},300,(()=>{this.resetMonths()})):(this.$scrollable.cssLeft(i),this.resetMonths())}_layoutWeekendSeparators(){this.months.forEach((e=>this._layoutWeekendSeparator(e)))}_layoutWeekendSeparator(e){if(!e.$weekendSeparator)return;let t=this.$container.find(".date-picker-weekdays").first().children();if(t.length<6)return;let i=t.eq(4),s=t.eq(5),r=pr.position(i).x+pr.size(i,{includeMargin:!0}).width,n=pr.position(s).x-r,o=e.$weekendSeparator.cssBorderWidthX(),l=Math.floor(r+n/2-o);e.$weekendSeparator.cssLeft(l)}preselectDate(e,t){this.showDate(e,t),e&&this.setSelectedDate(null),this.setPreselectedDate(e)}setPreselectedDate(e){this.setProperty("preselectedDate",e)}_renderPreselectedDate(){if(!this.currentMonth)return;this.currentMonth.$container.find(".date-picker-day").each(((e,t)=>{let i=n()(t);i.removeClass("preselected"),Le.isSameDay(this.preselectedDate,i.data("date"))&&i.addClass("preselected")}))}selectDate(e,t){this.showDate(e,t),e&&this.setPreselectedDate(null),this.setSelectedDate(e)}setSelectedDate(e){this.setProperty("selectedDate",e)}_renderSelectedDate(){if(!this.currentMonth)return;this.currentMonth.$container.find(".date-picker-day").each(((e,t)=>{let i=n()(t);i.removeClass("selected"),Le.isSameDay(this.selectedDate,i.data("date"))&&i.addClass("selected")}))}showDate(e,t){let i=0;this.viewDate&&(i=Le.compareMonths(e,this.viewDate)),this.currentMonth&&i?i<0?this.prependMonth(e):this.appendMonth(e):this.currentMonth?this.resetMonths(e):this.setMonths([e]),this.setViewDate(e,t)}shiftViewDate(e,t,i){let s=this.viewDate;s=Le.shift(s,e,t,i),this.showDate(s)}shiftSelectedDate(e,t,i){let s=this.preselectedDate;this.selectedDate&&(s=this.allowedDates?this._findNextAllowedDate(e,t,i):Le.shift(this.selectedDate,e,t,i)),s&&this.selectDate(s,!0)}_findNextAllowedDate(e,t,i){let s,r,n=e+t+i>0?1:-1,o=this.selectedDate||Le.trunc(new Date);if(0!==e?o=Le.shift(o,e,0,0):0!==t&&(o=Le.shift(o,0,t,0)),1===n){for(s=0;s<this.allowedDates.length;s++)if(r=this.allowedDates[s],Le.compare(o,r)<0)return r}else if(-1===n)for(s=this.allowedDates.length-1;s>=0;s--)if(r=this.allowedDates[s],Le.compare(o,r)>0)return r;return null}_isDateAllowed(e){if(!this.allowedDates||0===this.allowedDates.length)return!0;let t,i=e.getTime();return this.allowedDates.some((e=>(t=e.getTime(),t===i)))}_build$DateBox(e){let t,i,s,r,n,o,l,a=new Date,h=new Date(e),d=this.$container.makeDiv("date-picker-month").data("viewDate",e),u=d.appendDiv("date-picker-weekdays");this.dateFormat.symbols.weekdaysShortOrdered.map((e=>e.length>2?e.substr(0,2):e)).forEach((e=>u.appendDiv("date-picker-weekday",e.toUpperCase())));for(let t=0;t<42;t++){h.setDate(h.getDate()-1);let t=new Date(h.getYear(),e.getMonth(),0).getDate()-h.getDate();if(0===h.getDay()&&h.getMonth()!==e.getMonth()&&t>1)break}for(i=0;i<42;i++)i%7==0&&(l=d.appendDiv("date-picker-week")),h.setDate(h.getDate()+1),n=h.getDate(),6===h.getDay()||0===h.getDay()?(t=h.getMonth()!==e.getMonth()?" date-picker-out-weekend":" date-picker-weekend",this._showWeekendSeparator&&6===h.getDay()&&(t+=" date-picker-day-weekend-separator")):t=h.getMonth()!==e.getMonth()?" date-picker-out":"",Le.isSameDay(h,a)&&(t+=" date-picker-now"),Le.isSameDay(this.selectedDate,h)&&(t+=" selected"),Le.isSameDay(this.preselectedDate,h)&&(t+=" preselected"),n>9&&n<20&&(t+=" ten"),r=this._isDateAllowed(h),r||(t+=" disabled"),s=n<=9?"0"+n:n,o=l.appendDiv("date-picker-day"+t).data("dayInMonth",n).data("date",new Date(h)),o.appendSpan("text",s),r&&o.on("click",this._onDayClick.bind(this));return d}_append$Header(){return this.$container.appendElement('<div class="date-picker-header"> <div class="date-picker-left-y" data-shift="-12"></div> <div class="date-picker-left-m" data-shift="-1"></div> <div class="date-picker-right-y" data-shift="12"></div> <div class="date-picker-right-m" data-shift="1"></div> <div class="date-picker-header-month"> </div></div>').toggleClass("touch",this.touch)}_updateHeader(e){this._$header.find(".date-picker-header-month").text(this._createHeaderText(e))}_createHeaderText(e){return this.dateFormat.symbols.months[e.getMonth()]+" "+e.getFullYear()}_registerSwipeHandlers(){let e,t;Ye.onSwipe(this.$scrollable,"datepickerDrag",(i=>(this.$scrollable.stop(!0),e=Le.shift(this.viewDate,0,-1,0),t=Le.shift(this.viewDate,0,1,0),this.setMonths([e,this.viewDate,t]),this.swiped=!1,!0)),(e=>{let t=this.$container.width()-this.$scrollable.outerWidth(),i=Math.max(Math.min(e.newLeft,0),t);return i!==e.originalLeft&&this.$scrollable.cssLeft(i),i}),(i=>{let s=this.viewDate;i.deltaX<-5?s=t:i.deltaX>5&&(s=e),this.viewDate!==s&&(this.swiped=!0,this.setViewDate(s))}))}_onNavigationMouseDown(e){let t=n()(e.currentTarget).data("shift");this.shiftViewDate(0,t,0)}_onDayClick(e){if(this.swiped)return;let t=n()(e.currentTarget).data("date");this.selectDate(t),this.trigger("dateSelect",{date:t})}_onMouseWheel(e){let t=((e=e.originalEvent||this.$container.window(!0).event.originalEvent).wheelDelta?e.wheelDelta/10:3*-e.detail)>=0?-1:1;this.shiftViewDate(0,t,0),e.preventDefault()}}class Go extends Ao{constructor(){super(),this.windowPaddingX=0,this.windowPaddingY=0}_init(e){e.scrollType=e.scrollType||"layoutAndPosition",e.withFocusContext=!1,super._init(e),this.picker=x.create("DatePicker",{parent:this,dateFormat:e.dateFormat,allowedDates:e.allowedDates})}_createLayout(){return new Uo(this)}_render(){this.$container=this.$parent.appendDiv("popup date-picker-popup"),this.$container.toggleClass("alternative",this.field.fieldStyle===iu.FieldStyle.ALTERNATIVE),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout()),this.htmlComp.validateRoot=!0,this.picker.render()}getDatePicker(){return this.picker}_isMouseDownOnAnchor(e){return this.field.$dateField.isOrHas(e.target)||this.field.$dateFieldIcon.isOrHas(e.target)||this.field.$dateClearIcon&&this.field.$dateClearIcon.isOrHas(e.target)}}class Uo extends Ro{constructor(e){super(),this.popup=e,this.doubleCalcPrefSize=!1}layout(e){let t,i=this.popup.htmlComp,s=this.popup.picker.htmlComp;super.layout(e),t=i.size().subtract(i.insets()).subtract(s.margins()),s.setSize(t),this.popup.htmlComp.layouted&&this.popup.position(),this.popup.getDatePicker()._layoutWeekendSeparators()}preferredLayoutSize(e){let t,i=this.popup.htmlComp,s=this.popup.picker.htmlComp;return t=s.prefSize().add(i.insets()).add(s.margins()),t}}class Ko extends Io{constructor(){super()}_init(e){super._init(e),this._field.on("acceptInput",this._onFieldAcceptInput.bind(this)),this.addCssClass("date-picker-touch-popup")}_initWidget(e){this._widget=x.create("DatePicker",{parent:this,dateFormat:e.dateFormat,allowedDates:e.allowedDates})}_render(){super._render(),this._field.$container.addClass("date")}_onMouseDownOutside(){this._acceptInput()}getDatePicker(){return this._widget}_createLayout(){return new qo(this)}_onFieldAcceptInput(e){this._touchField.setDisplayText(e.displayText),this._touchField.setErrorStatus(e.errorStatus),!!e.errorStatus&&e.errorStatus.containsStatus(Bi)||this._touchField.setValue(e.value),this._touchField._triggerAcceptInput()}_acceptInput(){this._field.acceptDate(),this.close()}}class qo extends Lo{constructor(e){super(e)}layout(e){super.layout(e),this.popup.getDatePicker()._layoutWeekendSeparators()}}class jo extends Y{constructor(){super(),this.bodyAnimating=!1,this.collapsed=!1,this.collapsible=!0,this.title=null,this.titleHtmlEnabled=!1,this.titleSuffix=null,this.header=null,this.headerFocusable=!1,this.headerVisible=!0,this.body=null,this.$container=null,this.$header=null,this.$footer=null,this.$collapseIcon=null,this.$collapseBorderLeft=null,this.$collapseBorderRight=null,this.collapseStyle=jo.CollapseStyle.LEFT,this.htmlComp=null,this.htmlHeader=null,this.htmlFooter=null,this.iconId=null,this.icon=null,this._addWidgetProperties(["header"]),this._addWidgetProperties(["body"])}_init(e){super._init(e),this.resolveTextKeys(["title","titleSuffix"]),this.resolveIconIds(["iconId"]),this._setBody(this.body),this._setHeader(this.header)}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.$bindTarget=function(){return this.$header}.bind(this),this.keyStrokeContext.registerKeyStroke([new Jo(this)])}_render(){this.$container=this.$parent.appendDiv("group"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Xo(this)),this._renderHeader(),this.$collapseIcon=this.$header.appendDiv("group-collapse-icon"),this.$footer=this.$container.appendDiv("group-footer"),this.$collapseBorderLeft=this.$footer.appendDiv("group-collapse-border"),this.$collapseBorderRight=this.$footer.appendDiv("group-collapse-border"),this.htmlFooter=fr.install(this.$footer,this.session),this.$footer.on("mousedown",this._onFooterMouseDown.bind(this))}_renderProperties(){super._renderProperties(),this._renderIconId(),this._renderTitle(),this._renderTitleSuffix(),this._renderHeaderVisible(),this._renderHeaderFocusable(),this._renderCollapsed(),this._renderCollapseStyle(),this._renderCollapsible()}_remove(){this.$header=null,this.$title=null,this.$titleSuffix=null,this.$footer=null,this.$collapseIcon=null,this.$collapseBorderLeft=null,this.$collapseBorderRight=null,this._removeIconId(),super._remove()}_renderEnabled(){super._renderEnabled(),this.$header.setTabbable(this.enabledComputed)}setIconId(e){this.setProperty("iconId",e)}_renderIconId(){let e=this.iconId||"";return e?this.icon?(this.icon.setIconDesc(e),void this._updateIconStyle()):(this.icon=x.create("Icon",{parent:this,iconDesc:e,prepend:!0}),this.icon.one("destroy",(()=>{this.icon=null})),this.icon.render(this.$header),void this._updateIconStyle()):(this._removeIconId(),void this._updateIconStyle())}_updateIconStyle(){let e=!!this.title;this.get$Icon().toggleClass("with-title",e),this.get$Icon().addClass("group-icon"),this._renderCollapseStyle()}get$Icon(){return this.icon?this.icon.$container:n()()}_removeIconId(){this.icon&&this.icon.destroy()}setHeader(e){this.setProperty("header",e)}_setHeader(e){this._setProperty("header",e)}setHeaderFocusable(e){this.setProperty("headerFocusable",e)}_renderHeaderFocusable(){this.$header.toggleClass("unfocusable",!this.headerFocusable)}setTitle(e){this.setProperty("title",e)}_renderTitle(){this.$title&&(this.titleHtmlEnabled?this.$title.htmlOrNbsp(this.title):this.$title.textOrNbsp(this.title),this._updateIconStyle())}setTitleSuffix(e){this.setProperty("titleSuffix",e)}_renderTitleSuffix(){this.$titleSuffix&&this.$titleSuffix.text(this.titleSuffix||"")}setHeaderVisible(e){this.setProperty("headerVisible",e)}_renderHeaderVisible(){this.$header.setVisible(this.headerVisible),this._renderCollapsible(),this.invalidateLayoutTree()}setBody(e){this.setProperty("body",e)}_setBody(e){e||(e=x.create("Widget",{parent:this,_render:function(){this.$container=this.$parent.appendDiv("group"),this.htmlComp=fr.install(this.$container,this.session)}})),this._setProperty("body",e)}_createLoadingSupport(){return new z({widget:this,$container:function(){return this.$header}.bind(this)})}_renderHeader(){this.$header&&(this.$header.remove(),this._removeIconId()),this.header?(this.header.render(),this.$header=this.header.$container.addClass("group-header").addClass("custom-header-widget").prependTo(this.$container),this.htmlHeader=this.header.htmlComp):(this.$header=this.$container.prependDiv("group-header").unfocusable().addClass("prevent-initial-focus"),this.$title=this.$header.appendDiv("group-title"),this.$titleSuffix=this.$header.appendDiv("group-title-suffix"),yo.installForEllipsis(this.$title,{parent:this}),this.htmlHeader=fr.install(this.$header,this.session),this.rendering||(this._renderIconId(),this._renderTitle(),this._renderTitleSuffix())),this.$header.on("mousedown",this._onHeaderMouseDown.bind(this)),this.invalidateLayoutTree()}_renderBody(){this.body.render(),this.body.$container.insertAfter(this.$header),this.body.$container.addClass("group-body"),this.body.invalidateLayoutTree()}getFocusableElement(){return!!this.rendered&&this.$header}toggleCollapse(){this.setCollapsed(!this.collapsed&&this.collapsible)}setCollapsed(e){this.setProperty("collapsed",e)}_renderCollapsed(){this.$container.toggleClass("collapsed",this.collapsed),this.$collapseIcon.toggleClass("collapsed",this.collapsed),this.collapsed||this.bodyAnimating||this._renderBody(),this.rendered?this.resizeBody():this.collapsed&&this.body.remove(),this.invalidateLayoutTree()}setCollapsible(e){this.setProperty("collapsible",e)}_renderCollapsible(){this.$container.toggleClass("collapsible",this.collapsible),this.$header.toggleClass("disabled",!this.collapsible),this.$footer.setVisible(this.collapseStyle===jo.CollapseStyle.BOTTOM&&(this.headerVisible||this.collapsible)),this.$collapseIcon.setVisible(this.collapsible),this.invalidateLayoutTree()}setCollapseStyle(e){this.setProperty("collapseStyle",e)}_renderCollapseStyle(){if(this.$header.toggleClass("collapse-right",this.collapseStyle===jo.CollapseStyle.RIGHT),this.$container.toggleClass("collapse-bottom",this.collapseStyle===jo.CollapseStyle.BOTTOM),this.collapseStyle!==jo.CollapseStyle.RIGHT||this.header)if(this.collapseStyle!==jo.CollapseStyle.LEFT||this.header){if(this.collapseStyle===jo.CollapseStyle.BOTTOM){let e=this.body.$container?this.body.$container:this.$header;this.$footer.insertAfter(e),this.$collapseIcon.insertAfter(this.$collapseBorderLeft)}}else this.$collapseIcon.prependTo(this.$header);else this.$collapseIcon.appendTo(this.$header);this._renderCollapsible(),this.invalidateLayoutTree()}_onHeaderMouseDown(e){!this.collapsible||this.header&&this.collapseStyle===jo.CollapseStyle.BOTTOM||this.setCollapsed(!this.collapsed&&this.collapsible)}_onFooterMouseDown(e){this.collapsible&&this.setCollapsed(!this.collapsed&&this.collapsible)}resizeBody(){this.animateToggleCollapse().done((()=>{this.bodyAnimating||(this.collapsed&&this.body.remove(),this.invalidateLayoutTree())}))}animateToggleCollapse(e){let t,i,s,r=pr.cssSize(this.body.$container),n=pr.margins(this.body.$container),o=pr.paddings(this.body.$container);return this.collapsed?(t=0,i=new rr,s=new rr):(t=this.body.htmlComp.prefSize({widthHint:r.width}).height,this.body.htmlComp.setSize(new sr(this.body.$container.outerWidth(),t)),this.bodyAnimating?(this.body.$container.cssMarginY("").cssPaddingY(""),i=pr.margins(this.body.$container),s=pr.paddings(this.body.$container)):(r.height=0,n=new rr,o=new rr,i=pr.margins(this.body.$container),s=pr.paddings(this.body.$container))),this.bodyAnimating=!0,this.collapsed&&this.$container.addClass("collapsing"),this.body.$container.stop(!0).cssHeight(r.height).cssMarginTop(n.top).cssMarginBottom(n.bottom).cssPaddingTop(o.top).cssPaddingBottom(o.bottom).animate({height:t,marginTop:i.top,marginBottom:i.bottom,paddingTop:s.top,paddingBottom:s.bottom},{duration:350,progress:function(){this.trigger("bodyHeightChange"),this.revalidateLayoutTree()}.bind(this),complete:function(){this.bodyAnimating=!1,this.body.rendered&&(this.body.$container.cssMarginY(""),this.body.$container.cssPaddingY("")),this.rendered&&this.$container.removeClass("collapsing"),this.trigger("bodyHeightChangeDone")}.bind(this)}).promise()}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(jo,"CollapseStyle",{LEFT:"left",RIGHT:"right",BOTTOM:"bottom"});class Yo extends j{constructor(){super(),this._addRemoteProperties(["collapsed"])}}class Xo extends _r{constructor(e){super(),this.group=e}layout(e){let t=this.group.htmlComp,i=t.availableSize().subtract(t.insets()),s=this.group.htmlHeader,r=s.prefSize({widthHint:i.width});r.width=i.width,r=r.subtract(s.margins()),s.setSize(r);let n=this.group.htmlFooter;if(n.isVisible()){let e=n.prefSize({includeMargin:!1,useCssSize:!0});e.width=i.width,n.setSize(e.subtract(n.margins()))}if(this.group.collapsed||this.group.bodyAnimating||!this.group.body.rendered||!this.group.body.isVisible())return;let o=this.group.body.htmlComp,l=i.subtract(o.margins());l.height-=r.height,n.isVisible()&&(l.height-=n.prefSize(!0).height),o.setSize(l)}invalidate(e){this.group.body.htmlComp&&this.group.bodyAnimating&&e&&e.isDescendantOf(this.group.htmlComp)&&(this.group.body.$container.stop(),this.group.resizeBody())}preferredLayoutSize(e,t){let i;t=t||{};let s=this.group.htmlComp,r=this.group.htmlHeader,n=this.group.body.htmlComp,o=this.group.htmlFooter;return t.heightHint=null,i=this.group.bodyAnimating?n.size(!0):!this.group.collapsed&&this.group.body.rendered&&this.group.body.isVisible()?n.prefSize(t).add(n.margins()):new sr(0,0),i=i.add(s.insets({includeMargin:!0})),i.height+=r.prefSize(t).add(r.margins()).height,o.isVisible()&&(i.height+=o.prefSize({includeMargin:!0,useCssSize:!0}).height),i}}class Jo extends U{constructor(e){super(e),this.field=e,this.which=[Kr.SPACE]}handle(e){this.field.toggleCollapse()}}class Zo extends Y{constructor(){super(),this.autoFit=!1,this.iconDesc=null,this.image=null,this.prepend=!1}_init(e){super._init(e),this._setIconDesc(this.iconDesc)}_render(){this._renderIconDesc()}setIconDesc(e){this.setProperty("iconDesc",e)}_setIconDesc(e){e=el.ensure(e),this._setProperty("iconDesc",e)}_renderIconDesc(){this._removeFontIcon(),this._removeImageIcon(),!this.iconDesc||this.iconDesc.isFontIcon()?this._renderFontIcon():this._renderImageIcon(),this.rendering||this._renderProperties(),this.invalidateLayoutTree()}_renderFontIcon(){this.$container=this.$parent.appendIcon(this.iconDesc),this.prepend&&this.$container.prependTo(this.$parent),this.htmlComp=fr.install(this.$container,this.session)}_removeFontIcon(){this.$container&&(this.$container.remove(),this.$container=null)}_renderImageIcon(){this.image||(this.image=x.create("Image",{parent:this,imageUrl:this.iconDesc.iconUrl,cssClass:"icon image-icon",autoFit:this.autoFit,prepend:this.prepend}),this.image.render(this.$parent),this.image.one("destroy",(()=>{this.image=null})),this.image.on("load error",(e=>{this.trigger(e.type,e)})),this.$container=this.image.$container,this.htmlComp=this.image.htmlComp)}_removeImageIcon(){this.image&&(this.image.destroy(),this.image=null)}setAutoFit(e){this.setProperty("autoFit",e),this.image&&this.image.setAutoFit(e)}}function Qo(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class el{constructor(){this.iconType=null,this.font=null,this.iconCharacter=null,this.iconUrl=null}cssClass(){return this.isFontIcon()&&this.font!==el.DEFAULT_FONT?"font-"+this.font:""}appendCssClass(e){let t=this.cssClass();return t.length>0?e+" "+t:e}isFontIcon(){return this.iconType===el.IconType.FONT_ICON}isBitmap(){return this.iconType===el.IconType.BITMAP}static ensure(e){return e?e instanceof el?e:Ct.parseIconId(e):e}}Qo(el,"IconType",{FONT_ICON:0,BITMAP:1}),Qo(el,"DEFAULT_FONT","scoutIcons");class tl extends Y{constructor(){super(),this.autoFit=!1,this.imageUrl=null,this.prepend=!1}_render(){this.$container=this.$parent.makeElement("<img>","image").addDeviceClass().on("load",this._onImageLoad.bind(this)).on("error",this._onImageError.bind(this)),this.prepend?this.$container.prependTo(this.$parent):this.$container.appendTo(this.$parent),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new il(this)),this.htmlComp.pixelBasedSizing=!1}_renderProperties(){super._renderProperties(),this._renderImageUrl(),this._renderAutoFit()}_remove(){super._remove(),this.htmlComp=null}setImageUrl(e){this.setProperty("imageUrl",e)}_renderImageUrl(){this.$container.attr("src",this.imageUrl),this.imageUrl||this.$container.addClass("empty").removeClass("broken")}setAutoFit(e){this.setProperty("autoFit",e)}_renderAutoFit(){this.$container.toggleClass("autofit",this.autoFit)}_onImageLoad(e){this.rendered&&(this._ensureImageLayout(),this.$container.removeClass("empty broken"),this.invalidateLayoutTree(),this.trigger("load"))}_ensureImageLayout(){Qe.get().isChrome()&&(this.$container.addClass("chrome-fix"),setTimeout((()=>{this.rendered&&this.$container.removeClass("chrome-fix")})))}_onImageError(e){this.rendered&&(this.$container.addClass("empty broken"),this.invalidateLayoutTree(),this.trigger("error"))}}class il extends _r{constructor(e){super(),this.image=e}preferredLayoutSize(e,t){let i=e[0];if(i&&i.complete&&i.naturalWidth>0&&i.naturalHeight>0){let e=i.naturalHeight,s=i.naturalWidth;return t.widthHint>0&&t.widthHint<i.naturalWidth?(e=t.widthHint/i.naturalWidth*i.naturalHeight,s=t.widthHint):t.heightHint>0&&t.heightHint<i.naturalHeight&&(e=t.heightHint,s=t.heightHint/i.naturalHeight*i.naturalWidth),new sr(s,e)}return super.preferredLayoutSize(e,t)}}class sl extends Y{constructor(){super(),this.status=Ii.info(),this.closable=!1,this.htmlEnabled=!1,this._icon=null}_init(e){super._init(e),(e.severity||e.message||e.iconId)&&(this.status=new Ii({severity:x.nvl(e.severity,this.status.severity),message:x.nvl(e.message,this.status.message),iconId:x.nvl(e.iconId,this.status.iconId)})),mo.resolveTextProperty(this.status,"message",this.session),this._setStatus(this.status)}_render(){this.$container=this.$parent.appendDiv("notification"),this.$content=this.$container.appendDiv("notification-content"),this.$messageText=this.$content.appendDiv("notification-message"),this.htmlComp=fr.install(this.$container,this.session)}_remove(){super._remove(),this._removeCloser(),this._removeIcon()}_renderProperties(){super._renderProperties(),this._renderStatus(),this._renderClosable()}setStatus(e){this.setProperty("status",e)}_setStatus(e){this.rendered&&this._removeStatus(),e=Ii.ensure(e),this._setProperty("status",e)}_removeStatus(){this.status&&this.$container.removeClass(this.status.cssClass())}_renderStatus(){this.status&&(this.$container.addClass(this.status.cssClass()),this._renderIconId()),this._renderMessage()}_renderMessage(){let e=this.status.message||"";this.htmlEnabled?(this.$messageText.html(e),this.$messageText.find(".app-link").on("click",this._onAppLinkAction.bind(this))):this.$messageText.html(qt.nl2br(e)),this.invalidateLayoutTree()}setIconId(e){this.status||(this.status=Ii.info()),this.status.iconId=e,this.rendered&&this._renderStatus()}_renderIconId(){let e=this.status&&!!this.status.iconId;this.$container.toggleClass("has-icon",e),this.$container.toggleClass("no-icon",!e),e?this._renderIcon():this._removeIcon()}_renderIcon(){this._icon?this._icon.setIconDesc(this.status.iconId):(this._icon=x.create("Icon",{parent:this,iconDesc:this.status.iconId,prepend:!0}),this._icon.one("destroy",(()=>{this._icon=null})),this._icon.render(),this._icon.$container.addClass("notification-icon"))}_removeIcon(){this._icon&&this._icon.destroy()}setClosable(e){this.setProperty("closable",e)}_renderClosable(){this.$container.toggleClass("closable",this.closable),this.$content.toggleClass("closable",this.closable),this.closable?this._renderCloser():this._removeCloser()}_removeCloser(){this.$closer&&(this.$closer.remove(),this.$closer=null)}_renderCloser(){this.$closer||(this.$closer=this.$content.appendDiv("closer").on("click",this._onCloseIconClick.bind(this)))}_onCloseIconClick(){this._removing||this.trigger("close")}_onAppLinkAction(e){let t=n()(e.delegateTarget).data("ref");this.triggerAppLinkAction(t)}triggerAppLinkAction(e){this.trigger("appLinkAction",{ref:e})}}class rl extends j{constructor(){super()}_onWidgetClose(e){this._send("close",{ref:e.ref})}_onWidgetAppLinkAction(e){this._send("appLinkAction",{ref:e.ref})}_onWidgetEvent(e){"close"===e.type?this._onWidgetClose(e):"appLinkAction"===e.type?this._onWidgetAppLinkAction(e):super._onWidgetEvent(e)}}function nl(e,t,i,s,r){if(!e)return;t=me.ensure(t),r=me.ensure(r);let n=[],o=0;return e.forEach((e=>{let l=e.childActions;if(l.length>0){if(l=nl(l,t,i,s,r),0===l.length)return void ol(e,s,!0)}else if(!ll(e,t)||0!==r.length&&ll(e,r))return void ol(e,s,!0);!i||e.visible?(e.separator&&o++,ol(e,s,!1),n.push(e)):ol(e,s,!0)})),o===n.length?[]:n}function ol(e,t,i){t&&(e.excludedByFilter=i)}function ll(e,t){if(!t||0===t.length)return!1;if(!e.menuTypes)return!1;for(let i=0;i<t.length;i++)if(e.menuTypes.indexOf(t[i])>-1)return!0}const al={checkType:function(e,t){if(t=me.ensure(t),e.childActions.length>0){return nl(e.childActions,t).length>0}return ll(e,t)},createEllipsisMenu:function(e){return x.create("EllipsisMenu",e)},filter:nl,filterAccordingToSelection:function(e,t,i,s,r,n,o){let l=[];s===hl.MENU_BAR?l=[e+".EmptySpace",e+".SingleSelection",e+".MultiSelection"]:s===hl.CONTEXT_MENU?l=[e+".SingleSelection",e+".MultiSelection"]:s===hl.HEADER&&(l=[e+".Header"]),l.indexOf(e+".SingleSelection")>-1&&1!==t&&me.remove(l,e+".SingleSelection"),l.indexOf(e+".MultiSelection")>-1&&t<=1&&me.remove(l,e+".MultiSelection"),o=me.ensure(o);let a=[];return e+=".",o.forEach((t=>{t.slice(0,e.length)!==e&&(t=e+t),a.push(t)}),this),nl(i,l,r,n,a)},moveMenuIntoEllipsis:function(e,t){e.remove(),e._setOverflown(!0),e.overflowMenu=t;let i=t.childActions.slice();i.unshift(e),t.setChildActions(i)},removeMenuFromEllipsis:function(e,t){e._setOverflown(!1),e.overflowMenu=null,e.rendered||e.render(t)},updateSeparatorVisibility:function(e){if(0===(e=(e=me.ensure(e)).filter((e=>e.visible||e.separator))).length)return;let t=!1,i=!1;e.forEach(((s,r)=>{s.ellipsis||(s.separator?(i=e[r+1]&&!e[r+1].separator&&!e[r+1].ellipsis,t&&i?void 0!==s.visibleOrig&&(s.setVisible(s.visibleOrig),s.visibleOrig=void 0):void 0===s.visibleOrig&&(s.visibleOrig=s.visible,s.setVisible(!1))):t=!0)}))}},hl={MENU_BAR:1,CONTEXT_MENU:2,HEADER:3};function dl(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class ul extends vo{constructor(){super(),this.childActions=[],this.defaultMenu=null,this.excludedByFilter=!1,this.menuTypes=[],this.menuStyle=ul.MenuStyle.NONE,this.overflown=!1,this.parentMenu=null,this.popup=null,this.popupHorizontalAlignment=void 0,this.popupVerticalAlignment=void 0,this.stackable=!0,this.separator=!1,this.shrinkable=!1,this.subMenuVisibility=ul.SubMenuVisibility.DEFAULT,this.menuFilter=null,this.$submenuIcon=null,this.$subMenuBody=null,this._addCloneProperties(["defaultMenu","menuTypes","overflow","stackable","separator","shrinkable","parentMenu","menuFilter","subMenuVisibility"]),this._addWidgetProperties("childActions")}_init(e){super._init(e),this._setChildActions(this.childActions)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke(new ml(this))}_render(){this.separator?this._renderSeparator():this._renderItem(),this.$container.unfocusable(),this.htmlComp=fr.install(this.$container,this.session)}_renderProperties(){super._renderProperties(),this._renderOverflown(),this._renderMenuStyle(),this._renderActionStyle(),this._updateIconAndTextStyle()}_remove(){super._remove(),this.$submenuIcon=null,this.$subMenuBody=null}_renderSeparator(){this.$container=this.$parent.appendDiv("menu-separator")}_renderItem(){this.$container=this.$parent.appendDiv("menu-item"),this.uiCssClass&&this.$container.addClass(this.uiCssClass);let e=this._onMouseEvent.bind(this);this.$container.on("mousedown",e).on("contextmenu",e).on("click",e),this._renderSubMenuIcon()}_renderActionStyle(){this.$container.toggleClass("menu-button",this.isButton()&&!this.overflown)}_renderSelected(){this._doActionTogglesSubMenu()||(super._renderSelected(),this.parent instanceof yl&&this.parent.updateNextToSelected()),this.selected?this._doActionTogglesSubMenu()?this._renderSubMenuItems(this,this.childActions):this._doActionTogglesPopup()&&this._openPopup():this._doActionTogglesSubMenu()&&this.rendered?this._removeSubMenuItems(this):(this._closePopup(),this._closeSubMenues()),this.$container.toggleClass("has-popup",this._doActionTogglesSubMenu()||this._doActionTogglesPopup())}_closeSubMenues(){this.childActions.forEach((e=>{e._doActionTogglesPopup()&&(e._closeSubMenues(),e.setSelected(!1))}))}_removeSubMenuItems(e){this.parent instanceof yl?this.parent.removeSubMenuItems(e,!0):this.parent instanceof ul&&this.parent._removeSubMenuItems(e)}_renderSubMenuItems(e,t){let i=this.parent;if(i instanceof yl){i.renderSubMenuItems(e,t,!0);let s=t=>e.setSelected(!1),r=t=>{!1===t.newValue&&(i.off("destroy",s),e.off("propertyChange:selected",r))};i.one("destroy",s),e.on("propertyChange:selected",r)}else i instanceof ul&&i._renderSubMenuItems(e,t)}_togglesSubMenu(){return!0}_doActionTogglesSubMenu(){return!!this.childActions.length&&(this.parent instanceof yl||this.parent instanceof ul&&this.parent._togglesSubMenu())}_getSubMenuLevel(){return this.parent instanceof yl?0:super._getSubMenuLevel()+1}_onMouseEvent(e){"mousedown"===e.type&&this._doubleClickSupport.mousedown(e),this._allowMouseEvent(e)&&(yo.cancel(this.$container),"mousedown"===e.type&&this._doActionTogglesPopup()?this.doAction():"click"!==e.type&&"contextmenu"!==e.type||this._doActionTogglesPopup()||this.doAction())}_doActionTogglesPopup(){return this.childActions.length>0}_renderChildActions(){this.rendering||this._renderSubMenuIcon()}setSubMenuVisibility(e){this.setProperty("subMenuVisibility",e)}_renderSubMenuVisibility(){this._renderSubMenuIcon()}_renderSubMenuIcon(){let e=!1;if(this.childActions.length>0)switch(this.subMenuVisibility){case ul.SubMenuVisibility.DEFAULT:e=this._hasText();break;case ul.SubMenuVisibility.TEXT_OR_ICON:e=this._hasText()||this.iconId;break;case ul.SubMenuVisibility.ALWAYS:e=!0;break;case ul.SubMenuVisibility.NEVER:e=!1}if(e){if(!this.$submenuIcon){let e=Ct.parseIconId(ul.SUBMENU_ICON);this.$submenuIcon=this.$container.appendSpan("submenu-icon").text(e.iconCharacter),this.invalidateLayoutTree()}}else this.$submenuIcon&&(this.$submenuIcon.remove(),this.$submenuIcon=null,this.invalidateLayoutTree());this.rendering||(this._renderTextPosition(),this._updateIconAndTextStyle())}_renderText(){super._renderText(),this.$container.toggleClass("has-text",qt.hasText(this.text)&&this.textVisible),this.rendering||this._renderSubMenuIcon(),this.invalidateLayoutTree()}_renderTextPosition(){super._renderTextPosition();let e=this.$container;this.textPosition===vo.TextPosition.BOTTOM&&this.$text&&this.iconId&&(e=this.$text),this.$submenuIcon&&this.$submenuIcon.appendTo(e)}_renderIconId(){super._renderIconId(),this.$container.toggleClass("has-icon",!!this.iconId),this.rendering||this._renderSubMenuIcon(),this.invalidateLayoutTree()}isTabTarget(){return this.enabledComputed&&this.visible&&!this.overflown&&(this.isButton()||!this.separator)&&(!this.parentMenu||this.parentMenu.visible&&!this.parentMenu.overflown)}recomputeEnabled(e){let t,i;void 0===e&&(e=this._getInheritedAccessibility()),this.enabled&&this.inheritAccessibility&&!e&&this.childActions.length>0?(t=this._hasAccessibleChildMenu(),i=!!t&&e):(t=this._computeEnabled(this.inheritAccessibility,e),i=t),this._updateEnabledComputed(t,i)}_getInheritedAccessibility(){let e=this,t=e;for(;e;){if(!e.inheritAccessibility)return e.enabled;t=e,e=e.parentMenu}let i=t.parent;return!i||!i.initialized||void 0===i.enabledComputed||i.enabledComputed}_findRootMenu(){let e,t=this;for(;t;)e=t,t=t.parentMenu;return e}_hasAccessibleChildMenu(){let e=!1;return this.visitChildMenus((t=>!t.inheritAccessibility&&t.enabled&&t.visible?(e=!0,yu.TERMINATE):yu.CONTINUE)),e}visitChildMenus(e){for(let t=0;t<this.childActions.length;t++){let i=this.childActions[t];if(i instanceof ul){let t=e(i);if(!0===t||t===yu.TERMINATE)return yu.TERMINATE;if(t!==yu.SKIP_SUBTREE&&(t=i.visitChildMenus(e),!0===t||t===yu.TERMINATE))return yu.TERMINATE}}}_hasText(){return qt.hasText(this.text)&&this.textVisible}_updateIconAndTextStyle(){let e=this._hasText(),t=!(!e||!this.iconId),i=!!this.iconId,s=!!this.$submenuIcon,r=i&&!s||!i&&s;this.$container.toggleClass("menu-textandicon",t),this.$container.toggleClass("menu-icononly",!e&&r)}_closePopup(){this.popup&&!this.popup.isRemovalPending()&&this.popup.close()}_canOpenPopup(){return this.popup&&this.popup.isRemovalPending()&&this.popup.removeImmediately(),!this.popup&&!!this._doActionTogglesPopup()}_openPopup(){this._canOpenPopup()&&(this.popup=this._createPopup(),this.popup.open(),this.popup.one("destroy",(e=>{this.popup=null})),this.popup.on("close",(e=>{this.setSelected(!1)})),this.uiCssClass&&this.popup.$container.addClass(this.uiCssClass))}_createPopup(e){let t={parent:this,menu:this,menuFilter:this.menuFilter,horizontalAlignment:this.popupHorizontalAlignment,verticalAlignment:this.popupVerticalAlignment};return x.create("MenuBarPopup",t)}_createActionKeyStroke(){return new gl(this)}isToggleAction(){return this.childActions.length>0||this.toggleAction}isButton(){return vo.ActionStyle.BUTTON===this.actionStyle}addChildActions(e){this.insertChildActions(e)}insertChildAction(e){this.insertChildActions([e])}insertChildActions(e){0!==(e=me.ensure(e)).length&&this.setChildActions(this.childActions.concat(e))}deleteChildAction(e){this.deleteChildActions([e])}deleteChildActions(e){if(0===(e=me.ensure(e)).length)return;let t=this.childActions.slice();me.removeAll(t,e),this.setChildActions(t)}setChildActions(e){this.setProperty("childActions",e)}_setChildActions(e){this.childActions.forEach((e=>{e.parentMenu=null})),this._setProperty("childActions",e),this.childActions.forEach((e=>{e.parentMenu=this})),this.initialized&&this.recomputeEnabled()}_setInheritAccessibility(e){this._setProperty("inheritAccessibility",e)&&this._recomputeEnabledInMenuHierarchy()}_setEnabled(e){this._setProperty("enabled",e)&&this._recomputeEnabledInMenuHierarchy()}_setVisible(e){this._setProperty("visible",e)&&this._recomputeEnabledInMenuHierarchy()}_recomputeEnabledInMenuHierarchy(){if(!this.initialized)return;let e=this._findRootMenu();e.recomputeEnabled(),e!==this&&this.recomputeEnabled()}setSelected(e){e!==this.selected&&(super.setSelected(e),(this._doActionTogglesSubMenu()||this._doActionTogglesPopup())&&this.overflowMenu&&!this.overflowMenu.selected&&this._handleSelectedInEllipsis())}_handleSelectedInEllipsis(){this.selected&&this.overflowMenu.setSelected(!0)}setStackable(e){this.setProperty("stackable",e)}_renderStackable(){this.invalidateLayoutTree()}setShrinkable(e){this.setProperty("shrinkable",e)}_renderShrinkable(){this.invalidateLayoutTree()}_setOverflown(e){this.overflown!==e&&(this._setProperty("overflown",e),this.rendered&&this._renderOverflown())}_renderOverflown(){this.$container.toggleClass("overflown",this.overflown),this._renderActionStyle()}setMenuStyle(e){this.setProperty("menuStyle",e)}_renderMenuStyle(){this.$container.toggleClass("default",this.menuStyle===ul.MenuStyle.DEFAULT)}setDefaultMenu(e){this.setProperty("defaultMenu",e)}setMenuFilter(e){this.setProperty("menuFilter",e),this.childActions.forEach((t=>{t.setMenuFilter(e)}))}clone(e,t){let i=super.clone(e,t);return this._deepCloneProperties(i,"childActions",t),i._setChildActions(i.childActions),i}focus(){let e=new ht({source:this});return this.trigger("focus",e),!e.defaultPrevented&&super.focus()}}dl(ul,"SUBMENU_ICON",Ct.ANGLE_DOWN_BOLD),dl(ul,"MenuStyle",{NONE:0,DEFAULT:1}),dl(ul,"SubMenuVisibility",{DEFAULT:"default",TEXT_OR_ICON:"textOrIcon",ALWAYS:"always",NEVER:"never"});class cl extends ul{constructor(){super(),this.hidden=!0,this.ellipsis=!0,this.stackable=!1,this.horizontalAlignment=1,this.iconId=Ct.ELLIPSIS_V,this.tabbable=!1,this.rightAligned=!1,this._addPreserveOnPropertyChangeProperties(["childActions"])}_render(){super._render(),this.$container.addClass("ellipsis")}setChildActions(e){super.setChildActions(e),e&&e.forEach((e=>{e.setSelected(!1)}))}_renderProperties(){super._renderProperties(),this._renderHidden()}setHidden(e){this.setProperty("hidden",e)}_renderHidden(){this.$container.setVisible(!this.hidden)}isTabTarget(){return super.isTabTarget()&&!this.hidden}_childrenForEnabledComputed(){return this.childActions}}class pl extends To{constructor(){super()}}class gl extends xo{constructor(e){super(e)}_isEnabled(){return!this.field.excludedByFilter&&super._isEnabled()}}class ml extends So{constructor(e){super(e),this.renderingHints.offset=16}}class _l{constructor(e,t){this.session=e,this.objectType=t,this.emptySpaceTypes=["EmptySpace"],this.selectionTypes=["SingleSelection","MultiSelection"]}order(e){let t=[],i=[],s=[],r=[],n=!1,o=!1;return e.forEach((function(e){e.createdBy!==this&&(e.isButton()?t.push(e):1===e.horizontalAlignment?r.push(e):al.checkType(e,this._menuTypes(this.emptySpaceTypes))?(e.visible&&(n=!0),i.push(e)):al.checkType(e,this._menuTypes(this.selectionTypes))&&(e.visible&&(o=!0),s.push(e)))}),this),n&&o&&i.push(this._createSeparator()),{left:t.concat(i,s),right:r,all:t.concat(i,s).concat(r)}}_menuTypes(e){let t,i=[];for(e=e||[],t=0;t<e.length;t++)i.push(this.objectType+"."+e[t]);return i}_createSeparator(){return x.create("Menu",{parent:this.menuBar,createdBy:this,separator:!0})}}class fl extends ul{constructor(){super(),this._childVisibleChangeHandler=this._onChildVisibleChange.bind(this)}_render(){this.$container=this.$parent.appendDiv("menu-item combo-menu"),this.uiCssClass&&this.$container.addClass(this.uiCssClass),this.$container.unfocusable(),this.htmlComp=fr.install(this.$container,this.session)}_renderProperties(){super._renderProperties(),this._renderChildActions()}_setChildActions(e){this.childActions.forEach((e=>e.off("propertyChange:visible",this._childVisibleChangeHandler))),super._setChildActions(e),this.childActions.forEach((e=>e.on("propertyChange:visible",this._childVisibleChangeHandler)))}_renderChildActions(){super._renderChildActions(),this.childActions.forEach((e=>{e.addCssClass("combo-menu-child"),e.render()})),J.updateFirstLastMarker(this.childActions)}_togglesSubMenu(){return!1}_onChildVisibleChange(e){this.rendered&&J.updateFirstLastMarker(this.childActions)}_doActionTogglesPopup(){return!1}isToggleAction(){return!1}isTabTarget(){return!1}}class bl extends pl{constructor(){super()}}class yl extends Ao{constructor(){super(),this.animateOpening=!0,this.animateRemoval=!0,this.menuItems=[],this.cloneMenuItems=!0,this.bodyAnimating=!1,this._toggleSubMenuQueue=[],this.animationDuration=300}_init(e){e.focusableContainer=!0,!1===e.cloneMenuItems&&this._addWidgetProperties("menuItems"),super._init(e)}_initKeyStrokeContext(){super._initKeyStrokeContext(),Fl.registerKeyStrokes(this.keyStrokeContext,this,"menu-item")}_createLayout(){return new wl(this)}_createBodyLayout(){return new Br({pixelBasedSizing:!1})}_render(){super._render(),this.$container.addClass("context-menu-popup"),this._renderBody(),this._installScrollbars(),this._renderMenuItems()}_remove(){this._toggleSubMenuQueue=[],super._remove()}_renderBody(){this.$body=this.$container.appendDiv("context-menu"),fr.install(this.$body,this.session).setLayout(this._createBodyLayout())}_installScrollbars(e){super._installScrollbars({axis:"y",scrollShadow:"none"})}_checkRemoveSubMenuItemsPossible(e,t){if(!this.rendered&&!this.rendering)return!1;let i=this.isOpeningAnimationRunning(),s=this.htmlComp.layout.resizeAnimationRunning;return!(this.bodyAnimating||i||s)||(this._toggleSubMenuQueue.push(this.removeSubMenuItems.bind(this,e,t)),i&&this.$container.oneAnimationEnd((()=>this._processSubMenuQueue())),!1)}removeSubMenuItems(e,t){if(!this._checkRemoveSubMenuItemsPossible(e,t))return!1;this.$body=e.__originalParent.$subMenuBody,this.$body.insertBefore(e.$subMenuBody),e.__originalParent._doActionTogglesSubMenu&&e.__originalParent._doActionTogglesSubMenu();let i=this.htmlComp.bounds();this._adjustTextAlignment(),fr.get(this.$body).invalidateLayoutTree(),this.validateLayoutTree(),this.position(),t&&this._animateRemoveSubmenuItems(e,i)}_animateRemoveSubmenuItems(e,t){let i=e.$placeHolder.position(),s=this.htmlComp.insets(),r=this.htmlComp.bounds(),n=fr.get(e.$subMenuBody).bounds(),o=fr.get(this.$body).bounds(),l=new or(0,s.top,n.width,n.height),a=new or(0,s.top+i.top,o.width,e.$container.cssHeight());this.bodyAnimating=!0,this.$container.addClass("animating"),this.htmlComp.layout.disableAutoPosition(),this._animateResizePopup(this.htmlComp.$comp,t,r),this._animateTextOffset(e.$subMenuBody,e.$subMenuBody.data("text-offset")),e.$subMenuBody.cssWidthAnimated(l.width,a.width,{duration:this.animationDuration,progress:this.revalidateLayout.bind(this),complete:()=>this._completeAnimateRemoveSubMenuItems(e),queue:!1}).cssHeightAnimated(l.height,a.height,{duration:this.animationDuration,queue:!1}).cssTopAnimated(l.y,a.y,{duration:this.animationDuration,queue:!1}),this.$body.cssWidthAnimated(n.width,o.width,{duration:this.animationDuration,queue:!1}).cssHeightAnimated(n.height,o.height,{duration:this.animationDuration,queue:!1})}_completeAnimateRemoveSubMenuItems(e){this.bodyAnimating=!1,this.rendered&&e.$container&&(this.$container.removeClass("animating"),e.$placeHolder.replaceWith(e.$container),e.$container.toggleClass("expanded",!1),this._updateFirstLastClass(),this.updateNextToSelected("menu-item",e.$container),e.$subMenuBody.detach(),this._processSubMenuQueue())}_processSubMenuQueue(){let e=this._toggleSubMenuQueue.shift();e&&e()}_checkRenderSubMenuItemsPossible(e,t,i,s){if(!this.session.desktop.rendered&&!s)return this.initialSubMenusToRender={parentMenu:e,menus:t},!1;if(!this.rendered&&!this.rendering)return!1;let r=this.isOpeningAnimationRunning(),n=this.htmlComp.layout.resizeAnimationRunning;return!(this.bodyAnimating||r||n)||(this._toggleSubMenuQueue.push(this.renderSubMenuItems.bind(this,e,t,i,s)),r&&this.$container.oneAnimationEnd((()=>this._processSubMenuQueue())),!1)}renderSubMenuItems(e,t,i,s){if(!this._checkRenderSubMenuItemsPossible(e,t,i,s))return!1;let r=this.htmlComp.bounds(),n=this.$body;e.__originalParent.$subMenuBody=n,this.$body.find(".menu-item").removeClass("next-to-selected"),e.$subMenuBody?this.$body=e.$subMenuBody:(this._renderBody(),e.$subMenuBody=this.$body,this._renderMenuItems(t,s));let o=e.$container.prev(),l=e.$container.position();e.$placeHolder=e.$container.clone(),fr.install(e.$placeHolder,this.session),o.length?e.$placeHolder.insertAfter(o):n.prepend(e.$placeHolder),this.$body.insertAfter(n),this.$body.prepend(e.$container),e.$container.toggleClass("expanded"),this._adjustTextAlignment(),fr.get(this.$body).invalidateLayoutTree(),this.validateLayoutTree(),this.position(),this.updateNextToSelected(),i?this._animateRenderSubMenuItems(e,r,l):(n.detach(),this._updateFirstLastClass())}_animateRenderSubMenuItems(e,t,i){let s=e.__originalParent.$subMenuBody,r=this.htmlComp.bounds(),n=this.htmlComp.insets(),o=pr.bounds(s),l=fr.get(this.$body).bounds(),a=new or(0,n.top+i.top,o.width,e.$container.cssHeight()),h=new or(0,n.top,l.width,l.height);this.bodyAnimating=!0,this.$container.addClass("animating"),this.htmlComp.layout.disableAutoPosition(),this._animateResizePopup(this.htmlComp.$comp,t,r),this._animateTextOffset(this.$body,s.data("text-offset")),this.$body.cssWidthAnimated(a.width,h.width,{duration:this.animationDuration,progress:this.revalidateLayout.bind(this),complete:()=>this._completeAnimateRenderSubMenuItems(s),queue:!1}).cssHeightAnimated(a.height,h.height,{duration:this.animationDuration,queue:!1}).cssTopAnimated(a.y,h.y,{duration:this.animationDuration,queue:!1}),s.cssWidthAnimated(o.width,h.width,{duration:this.animationDuration,queue:!1}).cssHeightAnimated(o.height,h.height,{duration:this.animationDuration,queue:!1})}_completeAnimateRenderSubMenuItems(e){this.bodyAnimating=!1,this.rendered&&(this.$container.removeClass("animating"),e&&(e.detach(),this.$body.cssTop(""),this._updateFirstLastClass()),this.htmlComp.layout.resetAutoPosition(),this._processSubMenuQueue())}_animateResizePopup(e,t,i){let s={duration:this.animationDuration,queue:!1};e.cssTopAnimated(t.y,i.y,s).cssLeftAnimated(t.x,i.x,s).cssWidthAnimated(t.width,i.width,s).cssHeightAnimated(t.height,i.height,s)}_animateTextOffset(e,t,i){i=scout.nvl(i,this.$body.data("text-offset")),this.$visibleMenuItems(e).each(((e,s)=>{let r=n()(s),o=r.children(".text"),l=this._calcTextPaddingLeft(r,t),a=this._calcTextPaddingLeft(r,i);o.cssAnimated({paddingLeft:l},{paddingLeft:a},{duration:this.animationDuration})}))}_renderMenuItems(e,t){e=e||this._getMenuItems(),this.menuFilter&&(e=this.menuFilter(e,hl.CONTEXT_MENU)),e&&0!==e.length&&(e.forEach((function(e){if(e.separator)return;let t=e.parent;(this.cloneMenuItems&&!e.cloneOf||!this.has(e))&&((e=e.clone({parent:this,textPosition:vo.TextPosition.DEFAULT},{delegateEventsToOriginal:["acceptInput","action","click"],delegateAllPropertiesToClone:!0,delegateAllPropertiesToOriginal:!0,excludePropertiesToOriginal:["selected","logicalGrid","tabbable"]})).setTabbable(!1),this._attachCloneMenuListeners(e)),e.__originalParent||(e.__originalParent=t),e.render(this.$body),e.$container.removeClass("menu-button"),this._attachMenuListeners(e)}),this),this._handleInitialSubMenus(t),this._updateFirstLastClass(),this._adjustTextAlignment())}_attachCloneMenuListeners(e){e.on("propertyChange",this._onCloneMenuPropertyChange.bind(this)),e.childActions.forEach(this._attachCloneMenuListeners.bind(this))}_onCloneMenuPropertyChange(e){if("selected"===e.propertyName){e.source.cloneOf.triggerPropertyChange("selected",e.oldValue,e.newValue)}}_handleInitialSubMenus(e){if(e)return;let t;for(;this.initialSubMenusToRender;)t=this.initialSubMenusToRender,this.initialSubMenusToRender=void 0,this.renderSubMenuItems(t.parentMenu,t.menus,!1,!0)}_attachMenuListeners(e){let t=this._onMenuItemAction.bind(this),i=this._onMenuItemPropertyChange.bind(this);e.on("action",t),e.on("propertyChange",i),this.one("remove",(()=>{e.off("action",t),e.off("propertyChange",i)}))}updateMenuItems(e){e=me.ensure(e),me.equals(this.menuItems,e)||this.close()}_getMenuItems(){return this.menuItems}$menuItems(){return this.$body.children(".menu-item")}$visibleMenuItems(e){return(e=e||this.$body).children(".menu-item:visible")}_updateFirstLastClass(e){let t,i;this.$body.children(".menu-item").each((function(){let e=n()(this);e.removeClass("first last"),e.isVisible()&&(t||(t=e),i=e)})),t&&t.addClass("first"),i&&i.addClass("last")}updateNextToSelected(e,t){e=e||"menu-item";let i=this.$body.find("."+e);t=t||this.$body.find("."+e+".selected"),i.removeClass("next-to-selected"),t.hasClass("selected")&&t.nextAll(":visible").first().addClass("next-to-selected")}_onMenuItemAction(e){e.source.isToggleAction()||this.close()}_onMenuItemPropertyChange(e){this.rendered&&("visible"===e.propertyName?this._updateFirstLastClass():"selected"===e.propertyName&&this._deselectSiblings(e.source),this.position())}_deselectSiblings(e){e.$container.siblings(".menu-item").each(((e,t)=>{n()(t).select(!1)}),this)}_adjustTextAlignment(e){e=e||this.$body;let t=this.$visibleMenuItems(e),i=this._calcTextOffset(t);e.data("text-offset",i),this._updateTextOffset(i,t)}_calcTextOffset(e){let t=0;return(e=e||this.$visibleMenuItems()).each(((e,i)=>{let s=n()(i).children(".icon"),r=0;s.length>0&&(r=s.outerWidth(!0)),t=Math.max(t,r)})),t}_updateTextOffset(e,t){(t=t||this.$visibleMenuItems()).each(((t,i)=>{let s=n()(i);s.children(".text").css("padding-left",this._calcTextPaddingLeft(s,e));let r=fr.optGet(s);r&&r.invalidateLayout()}))}_calcTextPaddingLeft(e,t){let i=e.children(".icon"),s=0;return i.length>0&&(s=i.outerWidth(!0)),t-s}}class wl extends Ro{constructor(e){super(e)}_setSize(e){if(this.popup.bodyAnimating)return void Yn.update(this.popup.get$Scrollable());super._setSize(e),Yn.update(this.popup.get$Scrollable()),fr.get(this.popup.$body).pack()}invalidate(e){this.popup.bodyAnimating&&e&&e.isDescendantOf(this.popup.htmlComp)&&this.popup._toggleSubMenuQueue.unshift((()=>{if(!this.popup.rendered)return;let e=this.popup.$body.data("text-offset");this.popup._adjustTextAlignment(),this.popup.animateResize=!0,this.resizeAnimationDuration=this.popup.animationDuration,this.popup.revalidateLayoutTree(),this.popup.animateResize=!1,this.popup._animateTextOffset(this.popup.$body,e),this.popup.$container.promise().done((()=>this.popup._processSubMenuQueue()))}))}preferredLayoutSize(e,t){let i,s=this.popup.htmlComp,r=fr.get(this.popup.$body);if(this.popup.bodyAnimating)i=pr.size(this.popup.$body,t);else{let e=this.popup.$container.attr("style"),s=this.popup.$body.siblings(".context-menu");s.addClass("hidden"),this.popup.$body.css({width:"auto",height:"auto"}),r=fr.get(this.popup.$body),i=r.prefSize(t),s.removeClass("hidden"),this.popup.$container.attr("style",e)}return i.add(s.insets()).add(r.margins())}}class Cl extends U{constructor(e){super(),this.field=e,this.inheritAccessibility=!1}_accept(e){let t=super._accept(e);return!(!t||this.field.bodyAnimating)&&t}_changeSelection(e,t){0!==t.length&&(t.select(!0).focus(),this.field.updateNextToSelected&&this.field.updateNextToSelected(this._menuItemClass,t),e.length>0&&e.select(!1))}}class vl extends Cl{constructor(e,t){super(e),this._menuItemClass=t,this.stopImmediatePropagation=!0,this.which=[Kr.ENTER,Kr.SPACE],this.renderingHints.render=!1}handle(e){let t=Fl._findMenuItems(this.field,this._menuItemClass).$selected;t.length>0&&t.data("widget").doAction()}}class Tl extends vl{constructor(e,t){super(e,t),this._menuItemClass=t,this.which=[Kr[1],Kr[2],Kr[3],Kr[4],Kr[5],Kr[6],Kr[7],Kr[8],Kr[9]],this.renderingHints.render=!0,this.renderingHints.hAlign=ns.RIGHT,this.renderingHints.$drawingArea=(e,t)=>t.$menuItem}_accept(e){if(!super._accept(e))return!1;let t=Fl._findMenuItems(this.field,this._menuItemClass),i=Kr.codesToKeys[e.which];return e.$menuItem=t.$allVisible.eq(i-1),e.$menuItem.length>0}handle(e){e.$menuItem.data("widget").doAction()}}class Sl extends Cl{constructor(e,t){super(e),this._menuItemClass=t,this.which=[Kr.DOWN],this.renderingHints.render=!1}handle(e){let t=Fl._findMenuItems(this.field,this._menuItemClass);t.$selected.length>0?this._changeSelection(t.$selected,t.$selected.nextAll(":visible").first()):this._changeSelection(t.$selected,t.$allVisible.first())}}class xl extends Cl{constructor(e,t){super(e),this._menuItemClass=t,this.which=[Kr.UP],this.renderingHints.render=!1}handle(e){let t=Fl._findMenuItems(this.field,this._menuItemClass);t.$selected.length>0?this._changeSelection(t.$selected,t.$selected.prevAll(":visible").first()):this._changeSelection(t.$selected,t.$allVisible.last())}}class Pl extends vl{constructor(e,t){super(e,t),this._menuItemClass=t,this.which=[Kr.BACKSPACE],this.renderingHints.render=!0,this.renderingHints.$drawingArea=(e,t)=>t.$menuItem}_accept(e){if(!super._accept(e))return!1;let t=Fl._findMenuItems(this.field,this._menuItemClass+".expanded");return t.$all.length>0&&(e.$menuItem=t.$all,!0)}handle(e){e.$menuItem.data("widget").doAction()}}const Fl={registerKeyStrokes:function(e,t,i){e.registerKeyStroke([new xl(t,i),new Sl(t,i),new vl(t,i),new Tl(t,i),new Pl(t,i)])},_findMenuItems:function(e,t){return{$all:e.$body.find("."+t),$allVisible:e.$body.find("."+t+":visible"),$selected:e.$body.find("."+t+".selected")}}};class El extends ul{constructor(){super(),this._removeWidgetProperties("childActions"),this._buttonPropertyChangeHandler=this._onButtonPropertyChange.bind(this),this._buttonDestroyHandler=this._onButtonDestroy.bind(this),this._addCloneProperties(["button"]),this.button=null,this.menubar=null}_init(e){if(super._init(e),!this.button)throw new Error("Cannot adapt to undefined button");this.button.adaptedBy=this,this._installListeners()}_destroy(){super._destroy(),delete this.button.adaptedBy}_installListeners(){this.button.on("propertyChange",this._buttonPropertyChangeHandler),this.button.on("destroy",this._buttonDestroyHandler)}_uninstallListeners(){this.button.off("propertyChange",this._buttonPropertyChangeHandler),this.button.off("destroy",this._buttonDestroyHandler)}_render(){super._render(),this.$container.attr("data-buttonadapter",this.button.id)}_onButtonPropertyChange(e){let t={};t[e.propertyName]=e.newValue,t=El.adaptButtonProperties(t);for(let e in t)this.setProperty(e,t[e])}_onButtonDestroy(e){this.destroy(),this._uninstallListeners()}doAction(){if(this.childActions.length>0)return super.doAction();let e=this.button.doAction();return e&&(this.isToggleAction()&&this.setSelected(!this.selected),this._doAction()),e}focus(){return this.rendered?(this.menubar.setTabbableMenu(this),this.session.focusManager.requestFocus(this.getFocusableElement())):(this.session.layoutValidator.schedulePostValidateFunction(this.focus.bind(this)),!1)}static adaptButtonProperties(e,t){t=t||{},["visible","selected","tooltipText","keyStroke","keyStrokes","cssClass","modelClass","classId","iconId","preventDoubleClick","enabled","inheritAccessibility","stackable","shrinkable"].forEach((i=>{t[i]=e[i]})),t.text=e.label,t.textPosition=function(e){if(void 0===e)return;if(e===Iu.LabelPosition.BOTTOM)return vo.TextPosition.BOTTOM;return vo.TextPosition.DEFAULT}(e.labelPosition),t.horizontalAlignment=e.gridData?e.gridData.horizontalAlignment:void 0,t.actionStyle=function(e){if(void 0===e)return;if(e===Iu.DisplayStyle.LINK)return vo.ActionStyle.DEFAULT;return vo.ActionStyle.BUTTON}(e.displayStyle),t.toggleAction=e.displayStyle===Iu.DisplayStyle.TOGGLE,t.childActions=e.menus,void 0===t.defaultMenu&&(t.defaultMenu=e.defaultButton);for(let e in t)void 0===t[e]&&delete t[e];return t}}class Dl extends ul{constructor(){super(),this._addWidgetProperties("field")}_render(){this.$container=this.$parent.appendDiv("menu-item"),this.$container.addClass("form-field-menu"),this.uiCssClass&&this.$container.addClass(this.uiCssClass),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Ir({stretch:!1}))}_renderProperties(){super._renderProperties(),this._renderField()}_renderText(e){super._renderText(e),this.field&&this.field.rendered&&this.$text&&this.field.$container.insertAfter(this.$text)}setField(e){this.setProperty("field",e)}_renderField(){if(this.field){this.field.gridData=lu.createFromHints(this.field,1),this.field.render(this.$container);let e=new vr(this.field);e.validate(),this.field.setLayoutData(e),this.field.$container.addClass("content")}}_removeField(){this.field&&this.field.remove()}clone(e,t){let i=super.clone(e,t);return this._deepCloneProperties(i,["field"],t),i}isTabTarget(){return!1}_renderOverflown(){super._renderOverflown(),this.field._hideStatusMessage()}}class Al extends pl{constructor(){super()}_postCreateWidget(){super._postCreateWidget(),this.widget.field&&(this.widget.field.gridDataHints=new lu(this.widget.field.gridData))}}class $l extends Y{constructor(e){super(),this.compact=!1,this.menus=[],this._addWidgetProperties("menus")}_init(e){super._init(e),this.menus=e.menus||[],this.uiMenuCssClass=e.uiMenuCssClass||"",this.uiMenuCssClass+=" menu-box-item",this._initMenus(this.menus)}_initMenus(e){e.forEach(this._initMenu.bind(this))}_initMenu(e){e.uiCssClass=this.uiMenuCssClass}_render(){this.$container=this.$parent.appendDiv("menu-box"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Rl(this))}_renderProperties(){super._renderProperties(),this._renderMenus(),this._renderCompact()}setMenus(e){this.setProperty("menus",e)}_renderMenus(){this.menus.forEach((e=>{e.render()}),this),this.invalidateLayoutTree()}_removeMenus(){this.menus.forEach((e=>{e.remove()})),this.invalidateLayoutTree()}setCompact(e){this.setProperty("compact",e)}_renderCompact(){this.$container.toggleClass("compact",this.compact),this.invalidateLayoutTree()}}class Rl extends _r{constructor(e){super(),this.menuBox=e,this.firstMenu=null,this.lastMenu=null}layout(e){let t=this.menuBox.htmlComp.size(),i=this.visibleMenus(),s=0;this.menuBox.session.layoutValidator.schedulePostValidateFunction((()=>{i.forEach((e=>{e.popup&&e.popup.position()}))})),this.updateFirstAndLastMenuMarker(i),this.undoCollapse(i),this.undoCompact(i),this.undoShrink(i),s=this.actualPrefSize(i).width,s<=t.width||(this.compact(i),s=this.actualPrefSize(i).width,s<=t.width||(this.shrink(i),s=this.actualPrefSize(i).width,s<=t.width||this.collapse(i,t,s)))}preferredLayoutSize(e){let t=this.visibleMenus();return this.updateFirstAndLastMenuMarker(t),this.undoCollapse(t),this.undoCompact(t),this.undoShrink(t),this.actualPrefSize()}compact(e){void 0===this.menuBox.compactOrig&&(this.menuBox.compactOrig=this.menuBox.compact,this.menuBox.htmlComp.suppressInvalidate=!0,this.menuBox.setCompact(!0),this.menuBox.htmlComp.suppressInvalidate=!1),this.compactMenus(e)}undoCompact(e){void 0!==this.menuBox.compactOrig&&(this.menuBox.htmlComp.suppressInvalidate=!0,this.menuBox.setCompact(this.menuBox.compactOrig),this.menuBox.htmlComp.suppressInvalidate=!1,this.menuBox.compactOrig=void 0),this.undoCompactMenus(e)}compactMenus(e){(e=e||this.visibleMenus()).forEach((e=>{void 0===e.compactOrig&&(e.compactOrig=e.compact,e.htmlComp.suppressInvalidate=!0,e.setCompact(!0),e.htmlComp.suppressInvalidate=!1)})),this._ellipsis&&this._ellipsis.setCompact(!0)}undoCompactMenus(e){(e=e||this.visibleMenus()).forEach((e=>{void 0!==e.compactOrig&&(e.htmlComp.suppressInvalidate=!0,e.setCompact(e.compactOrig),e.htmlComp.suppressInvalidate=!1,e.compactOrig=void 0)})),this._ellipsis&&this._ellipsis.setCompact(!1)}shrink(e){this.shrinkMenus(e)}shrinkMenus(e){(e=e||this.visibleMenus()).forEach((e=>{void 0===e.textVisibleOrig&&e.iconId&&(e.textVisibleOrig=e.textVisible,e.htmlComp.suppressInvalidate=!0,e.setTextVisible(!1),e.htmlComp.suppressInvalidate=!1)}))}undoShrink(e){this.undoShrinkMenus(e)}undoShrinkMenus(e){(e=e||this.visibleMenus()).forEach((e=>{void 0!==e.textVisibleOrig&&(e.htmlComp.suppressInvalidate=!0,e.setTextVisible(e.textVisibleOrig),e.htmlComp.suppressInvalidate=!1,e.textVisibleOrig=void 0)}))}collapse(e,t,i){this._createAndRenderEllipsis(this.menuBox.$container);let s=this._moveOverflowMenusIntoEllipsis(t,i);this.updateFirstAndLastMenuMarker(s)}undoCollapse(e){e=e||this.visibleMenus(),this._destroyEllipsis(),this._removeMenusFromEllipsis(e)}_createAndRenderEllipsis(e){let t=al.createEllipsisMenu({parent:this.menuBox,hidden:!1,compact:this.menuBox.compact});t.uiCssClass=this.menuBox.uiMenuCssClass,t.render(e),this._ellipsis=t}_destroyEllipsis(){this._ellipsis&&(this._ellipsis.destroy(),this._ellipsis=null)}_moveOverflowMenusIntoEllipsis(e,t){let i=[this._ellipsis],s=pr.size(this._ellipsis.$container,!0);return t+=s.width,this.visibleMenus().slice().reverse().forEach((s=>{if(t>e.width){let e=pr.size(s.$container,!0);t-=e.width,al.moveMenuIntoEllipsis(s,this._ellipsis)}else i.unshift(s)})),i}_removeMenusFromEllipsis(e){(e=e||this.visibleMenus()).forEach((e=>al.removeMenuFromEllipsis(e,this.menuBox.$container)))}actualPrefSize(e){e=e||this.visibleMenus();let t=this._menusWidth(e),i=pr.prefSize(this.menuBox.$container);return i.width=t+this.menuBox.htmlComp.insets().horizontal(),i}_menusWidth(e){let t=0,i=e=>pr.size(e.htmlComp.$comp,{includeMargin:!0,exact:!0});return(e=e||this.visibleMenus()).forEach((e=>{e.rendered&&(t+=i(e).width)})),this._ellipsis&&(t+=i(this._ellipsis).width),t}compactPrefSize(e){return e=e||this.visibleMenus(),this.updateFirstAndLastMenuMarker(e),this.undoCollapse(e),this.undoShrink(e),this.compact(e),this.actualPrefSize()}shrinkPrefSize(e){return e=e||this.visibleMenus(),this.updateFirstAndLastMenuMarker(e),this.undoCollapse(e),this.compact(e),this.shrink(e),this.actualPrefSize()}visibleMenus(){return this.menuBox.menus.filter((e=>e.visible))}updateFirstAndLastMenuMarker(e){let t=null,i=null;(e||[]).forEach((e=>{e.rendered&&(t||(t=e),i=e)})),t===this.firstMenu&&i===this.lastMenu||(this.firstMenu&&this.firstMenu.rendered&&this.firstMenu.$container.removeClass("first"),this.lastMenu&&this.lastMenu.rendered&&this.lastMenu.$container.removeClass("last"),this.firstMenu=t,this.lastMenu=i,this.firstMenu&&this.firstMenu.$container.addClass("first"),this.lastMenu&&this.lastMenu.$container.addClass("last"))}}function Ml(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class kl extends Y{constructor(){super(),this.menuSorter=null,this.menuFilter=null,this.position=kl.Position.TOP,this.tabbable=!0,this.menuboxLeft=null,this.menuboxRight=null,this.menuItems=[],this.orderedMenuItems={left:[],right:[],all:[]},this.defaultMenu=null,this.visible=!1,this.ellipsisPosition=kl.EllipsisPosition.RIGHT,this._menuItemPropertyChangeHandler=this._onMenuItemPropertyChange.bind(this),this._focusHandler=this._onMenuItemFocus.bind(this),this.hiddenByUi=!1,this._addWidgetProperties("menuItems")}_init(e){super._init(e),this.menuSorter=e.menuOrder||new cc,this.menuSorter.menuBar=this,e.menuFilter&&(this.menuFilter=(t,i,s,r)=>e.menuFilter(t,hl.MENU_BAR,s,r)),this.menuboxLeft=x.create("MenuBarBox",{parent:this,cssClass:"left",tooltipPosition:this._oppositePosition()}),this.menuboxRight=x.create("MenuBarBox",{parent:this,cssClass:"right",tooltipPosition:this._oppositePosition()}),this._setMenuItems(me.ensure(this.menuItems)),this.updateVisibility()}_destroy(){super._destroy(),this._detachMenuHandlers()}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new Ll(this),new Bl(this)])}_render(){this.$container=this.$parent.appendDiv("menubar"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Il(this)),this.menuboxRight.render(this.$container),this.menuboxLeft.render(this.$container)}_renderProperties(){super._renderProperties(),this._renderMenuItems(),this._renderPosition()}setPosition(e){this.setProperty("position",e)}_setPosition(e){this._setProperty("position",e),this.menuboxLeft.setTooltipPosition(this._oppositePosition()),this.menuboxRight.setTooltipPosition(this._oppositePosition())}_renderPosition(){this.$container.toggleClass("bottom",this.position===kl.Position.BOTTOM)}_oppositePosition(){return this.position===kl.Position.TOP?kl.Position.BOTTOM:kl.Position.TOP}setEllipsisPosition(e){this.setProperty("ellipsisPosition",e)}_setChildMenuFilters(){this.orderedMenuItems.all.forEach((function(e){e.setMenuFilter(this.menuFilter)}),this)}_attachMenuHandlers(){this.orderedMenuItems.all.forEach((function(e){0===e.events.count("propertyChange",this._menuItemPropertyChangeHandler)&&e.on("propertyChange",this._menuItemPropertyChangeHandler),0===e.events.count("focus",this._focusHandler)&&e.on("focus",this._focusHandler)}),this)}_detachMenuHandlers(){this.orderedMenuItems.all.forEach((e=>{e.off("propertyChange",this._menuItemPropertyChangeHandler),e.off("focus",this._focusHandler)}))}setMenuItems(e){if(e=me.ensure(e),me.equals(this.menuItems,e))return this.menuboxRight.link(this.menuboxRight.menuItems),void this.menuboxLeft.link(this.menuboxLeft.menuItems);this.setProperty("menuItems",e)}_setMenuItems(e,t){this._detachMenuHandlers(),this.orderedMenuItems=this._createOrderedMenus(e),t?(this.menuboxRight.setMenuItems(this.orderedMenuItems.right),this.menuboxLeft.setMenuItems(this.orderedMenuItems.left)):(this.menuboxLeft.setMenuItems(this.orderedMenuItems.left),this.menuboxRight.setMenuItems(this.orderedMenuItems.right)),this._setChildMenuFilters(),this._attachMenuHandlers(),this.updateVisibility(),this.updateDefaultMenu(),this._setProperty("menuItems",e)}_renderMenuItems(){J.updateFirstLastMarker(this.menuItems),this.updateLeftOfButtonMarker(),this.invalidateLayoutTree()}_removeMenuItems(){}_createOrderedMenus(e){let t,i=this.menuSorter.order(e,this),s=-1;if(i.right.forEach((e=>{e.rightAligned=!0})),i.all.length>0){if(this._ellipsis&&(this._ellipsis.setChildActions([]),this._ellipsis.destroy()),t=x.create("EllipsisMenu",{parent:this,cssClass:"overflow-menu-item"}),this._ellipsis=t,this.ellipsisPosition===kl.EllipsisPosition.RIGHT){let e=this._getFirstStackableIndexPosition(i.right.slice().reverse());e>-1?(s=i.right.length-e,t.rightAligned=!0,i.right.splice(s,0,t)):(e=this._getFirstStackableIndexPosition(i.left.slice().reverse()),e>-1&&(s=i.left.length-e,i.left.splice(s,0,t)))}else s=this._getFirstStackableIndexPosition(i.left),s>-1?i.left.splice(s,0,t):(s=this._getFirstStackableIndexPosition(i.right),s>-1&&(t.rightAligned=!0,i.right.splice(s,0,t)));i.all=i.left.concat(i.right)}return i}_getFirstStackableIndexPosition(e){let t=-1;return e.some(((e,i)=>!(!e.stackable||!e.visible)&&(t=i,!0)),this),t}_updateTabbableMenu(){this.tabbable&&(this.defaultMenu&&this.defaultMenu.isTabTarget()?this.setTabbableMenu(this.defaultMenu):this.setTabbableMenu(me.find(this.orderedMenuItems.all,(e=>e.isTabTarget()))))}setTabbableMenu(e){this.tabbable&&e!==this.tabbableMenu&&(this.tabbableMenu&&this.tabbableMenu.setTabbable(!1),this.tabbableMenu=e,e&&e.setTabbable(!0))}setHiddenByUi(e){this.setProperty("hiddenByUi",e)}updateVisibility(){al.updateSeparatorVisibility(this.orderedMenuItems.left),al.updateSeparatorVisibility(this.orderedMenuItems.right),this.setVisible(!this.hiddenByUi&&this.orderedMenuItems.all.some((e=>e.visible&&!e.ellipsis)))}updateDefaultMenu(e){let t=null;for(let e=0;e<this.orderedMenuItems.all.length;e++){let i=this.orderedMenuItems.all[e];if(i.visible&&i.enabled&&!1!==i.defaultMenu){if(i.defaultMenu){t=i;break}!t&&this._isDefaultKeyStroke(i.actionKeyStroke)&&(t=i)}}this.setDefaultMenu(t),x.nvl(e,!0)&&this._updateTabbableMenu()}_isDefaultKeyStroke(e){return x.isOneOf(Kr.ENTER,e.which)&&!e.ctrl&&!e.alt&&!e.shift}setDefaultMenu(e){this.setProperty("defaultMenu",e)}_setDefaultMenu(e){this.defaultMenu&&this.defaultMenu.setMenuStyle(ul.MenuStyle.NONE),e&&e.setMenuStyle(ul.MenuStyle.DEFAULT),this._setProperty("defaultMenu",e)}updateLeftOfButtonMarker(){this._updateLeftOfButtonMarker(this.orderedMenuItems.left),this._updateLeftOfButtonMarker(this.orderedMenuItems.right)}_updateLeftOfButtonMarker(e){let t,i;e=e.filter((e=>e.visible&&e.rendered));for(let s=0;s<e.length;s++)t=e[s],t.$container.removeClass("left-of-button"),s>0&&t.isButton()&&(i=e[s-1],i.$container.addClass("left-of-button"))}_onMenuItemPropertyChange(e){if("overflown"!==e.propertyName&&"enabledComputed"!==e.propertyName&&"visible"!==e.propertyName&&"hidden"!==e.propertyName||this.tabbableMenu&&e.source!==this.tabbableMenu||this._updateTabbableMenu(),"overflown"!==e.propertyName&&"hidden"!==e.propertyName||this.defaultMenu&&e.source!==this.defaultMenu||this.updateDefaultMenu(),"horizontalAlignment"===e.propertyName&&this.reorderMenus(e.newValue<=0),"visible"===e.propertyName){let t=this.visible;this.updateVisibility(),!t&&this.visible&&this.revalidateLayout(),e.source.separator||this.reorderMenus()}"keyStroke"!==e.propertyName&&"enabledComputed"!==e.propertyName&&"defaultMenu"!==e.propertyName&&"visible"!==e.propertyName||this.updateDefaultMenu()}_onMenuItemFocus(e){this.setTabbableMenu(e.source)}reorderMenus(e){let t=this.menuItems;this._setMenuItems(t,e),this.rendered&&this.updateLeftOfButtonMarker()}_allMenusAsFlatList(){return me.flatMap(this.orderedMenuItems.all,(e=>e instanceof fl?e.childActions:[e]))}}Ml(kl,"EllipsisPosition",{LEFT:"left",RIGHT:"right"}),Ml(kl,"Position",{TOP:"top",BOTTOM:"bottom"});class Il extends _r{constructor(e){super(),this._menuBar=e,this._overflowMenuItems=[],this._ellipsis=null,this.collapsed=!1}layout(e){let t=this._menuBar.orderedMenuItems.left.concat(this._menuBar.orderedMenuItems.right),i=this.visibleMenuItems(),s=fr.get(e),r=me.find(t,(e=>e.ellipsis));this._setFirstLastMenuMarker(i),this.preferredLayoutSize(e,{widthHint:s.availableSize().width,undo:!1}),r&&this._overflowMenuItems.length>0&&r.setHidden(!1),i.forEach((e=>e._setOverflown(!1))),this._overflowMenuItems.forEach((e=>e._setOverflown(!0))),r&&0===this._overflowMenuItems.length&&r.setHidden(!0),this._overflowMenuItems=this._overflowMenuItems.filter((e=>!e.separator)),r&&(r._closePopup(),r.setChildActions(this._overflowMenuItems)),i.forEach((e=>e.validateLayout())),i.forEach((e=>{e.popup&&e.popup.position()}))}preferredLayoutSize(e,t){if(this._overflowMenuItems=[],!this._menuBar.isVisible())return new sr(0,0);let i=this.visibleMenuItems(),s=i.filter((e=>{let t=e.overflown;return e._setOverflown(!1),t})),r=i.filter((e=>{let t=!e.textVisible;return this.undoShrink([e]),t})),n=[...i],o=fr.get(e),l=new sr(0,0),a=Number.MAX_VALUE;return(0===t.widthHint||t.widthHint)&&(a=t.widthHint-o.insets().horizontal()),a<=0?l=this._minSize(i):(l=this._prefSize(i),l.width>a&&this.shrink(i),l=this._prefSizeWithOverflow(i,a)),x.nvl(t.undo,!0)&&(this.undoOverflow(s),this.undoShrink(n),this.shrink(r)),l.add(o.insets())}_prefSizeWithOverflow(e,t){let i=[];e.forEach(((e,t)=>{e.stackable&&i.push(t)}));let s=-1;this._setFirstLastMenuMarker(e);let r=this._prefSize(e);for(;r.width>t&&i.length>0;)s=this._menuBar.ellipsisPosition===kl.EllipsisPosition.RIGHT?i.splice(-1)[0]:i.splice(0,1)[0]-this._overflowMenuItems.length,this._overflowMenuItems.splice(0,0,e[s]),e.splice(s,1),this._setFirstLastMenuMarker(e),r=this._prefSize(e);return r}_minSize(e){let t=e.filter((e=>!e.stackable));return this.shrink(e),this._setFirstLastMenuMarker(t,!0),this._prefSize(t,!0)}_prefSize(e,t){let i=new sr(0,0);return t=x.nvl(t,this._overflowMenuItems.length>0),this._setFirstLastMenuMarker(e,t),e.forEach((e=>{let s=new sr(0,0);e.ellipsis?t&&(s=this._menuItemSize(e)):s=this._menuItemSize(e),i.height=Math.max(i.height,s.height),i.width+=s.width})),i}_menuItemSize(e){let t=e.$container.attr("class");e.$container.removeClass("overflown"),e.$container.removeClass("hidden"),e.htmlComp.invalidateLayout();let i=e.htmlComp.prefSize({useCssSize:!0,exact:!0}).add(pr.margins(e.$container));return e.$container.attrOrRemove("class",t),i}_setFirstLastMenuMarker(e,t){let i=e;t=x.nvl(t,this._overflowMenuItems.length>0),this._menuBar.orderedMenuItems.all.forEach((e=>{e.$container.removeClass("first last")})),t||(i=i.filter((e=>!e.ellipsis))),i.length>0&&(i[0].$container.addClass("first"),i[i.length-1].$container.addClass("last"))}undoOverflow(e){e.forEach((e=>{e._setOverflown(!0)}))}shrink(e){e.forEach((e=>{void 0===e.textVisibleOrig&&e.shrinkable&&e.icon&&(e.textVisibleOrig=e.textVisible,e.htmlComp.suppressInvalidate=!0,e.setTextVisible(!1),e.htmlComp.suppressInvalidate=!1)}),this)}undoShrink(e){e.forEach((e=>{void 0!==e.textVisibleOrig&&(e.htmlComp.suppressInvalidate=!0,e.setTextVisible(e.textVisibleOrig),e.htmlComp.suppressInvalidate=!1,e.textVisibleOrig=void 0)}),this)}visibleMenuItems(){return this._menuBar.orderedMenuItems.all.filter((e=>e.visible),this)}static size(e,t){let i=e.prefSize({widthHint:t.width});return i.width=t.width,i=i.subtract(e.margins()),i}}class Ll extends U{constructor(e){super(),this.field=e,this.which=[Kr.LEFT],this.renderingHints.render=!1,this.stopPropagation=!0,this.keyStrokeMode=U.Mode.DOWN,this.inheritAccessibility=!1}handle(e){let t,i,s,r=this.field._allMenusAsFlatList(),n=this.field.$container.find(":focus");for(t=0;t<r.length;t++){if(i=r[t],n[0]===i.$container[0]){s&&(this.field.setTabbableMenu(s),s.focus());break}i.isTabTarget()&&(s=i)}}}class Bl extends U{constructor(e){super(),this.field=e,this.which=[Kr.RIGHT],this.renderingHints.render=!1,this.stopPropagation=!0,this.keyStrokeMode=U.Mode.DOWN,this.inheritAccessibility=!1}handle(e){let t,i,s=this.field._allMenusAsFlatList(),r=this.field.$container.find(":focus"),n=!1;for(t=0;t<s.length;t++){if(i=s[t],n&&i.isTabTarget()){this.field.setTabbableMenu(i),i.focus();break}r[0]===i.$container[0]&&(n=!0)}}}class Ol extends yl{constructor(){super(),this.menu=null,this.windowPaddingX=0,this.windowPaddingY=0}_init(e){e.anchor=e.menu,e.closeOnAnchorMouseDown=!1,super._init(e)}_render(){super._render(),this.$container.addClass("menu-bar-popup")}_getMenuItems(){return this.menu.childActions||this.menu.menus}}class Nl extends Y{constructor(){super(),this.menuItems=[],this.tooltipPosition=kl.Position.TOP,this._addWidgetProperties("menuItems")}_render(){this.$container=this.$parent.appendDiv("menubar-box"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Hl(this))}_renderProperties(){super._renderProperties(),this._renderMenuItems()}_remove(){this._removeMenuItems(),super._remove()}setMenuItems(e){e=me.ensure(e),me.equals(this.menuItems,e)||this.setProperty("menuItems",e)}_setMenuItems(e){this._setProperty("menuItems",e),this._updateTooltipPosition()}_removeMenuItems(){this.menuItems.forEach((e=>e.remove()))}_renderMenuItems(){this.menuItems.forEach((e=>{e.render(this.$container),e.$container.addClass("menubar-item")})),this.rendering||this.invalidateLayoutTree()}_renderVisible(){super._renderVisible(),this.revalidateLayout()}_onMenuItemPropertyChange(e){"visible"===e.propertyName&&this.setVisible(this.menuItems.some((e=>e.visible&&!e.ellipsis)))}setTooltipPosition(e){this.setProperty("tooltipPosition",e)}_setTooltipPosition(e){this._setProperty("tooltipPosition",e),this._updateTooltipPosition()}_updateTooltipPosition(){this.menuItems.forEach((e=>e.setTooltipPosition(this.tooltipPosition)))}}class Hl extends _r{constructor(e){super(),this.menubox=e}layout(e){}preferredLayoutSize(e,t){let i=null;return this.menubox.menuItems.filter((e=>!e.overflown&&e.isVisible())).reduce(((e,t)=>(i=t.htmlComp.prefSize({useCssSize:!0,includeMargin:!0}),e.height=Math.max(e.height,i.height),e.width=Math.max(e.width,i.width),e)),new sr)}}function Vl(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Wl extends Y{constructor(){super(),this.monthViewNumberOfWeeks=6,this.numberOfHourDivisions=this.getConfiguredNumberOfHourDivisions(),this.heightPerDivision=this.getConfiguredHeightPerDivision(),this.startHour=this.getConfiguredStartHour(),this.heightPerHour=this.numberOfHourDivisions*this.heightPerDivision,this.heightPerDay=24*this.heightPerHour,this.spaceBeforeScrollTop=15,this.workDayIndices=[1,2,3,4,5],this.components=[],this.displayMode,this.displayCondensed=!1,this.loadInProgress=!1,this.selectedDate=null,this.showDisplayModeSelection=!0,this.title=null,this.useOverflowCells=!0,this.viewRange=null,this.calendarToggleListWidth=270,this.calendarToggleYearWidth=215,this.$container=null,this.$header=null,this.$range=null,this.$commands=null,this.$grids=null,this.$grid=null,this.$topGrid=null,this.$list=null,this.$progress=null,this._showYearPanel=!1,this._showListPanel=!1,this._exactRange=null,this._listComponents=[],this.menuInjectionTarget=null,this._menuInjectionTargetMenusChangedHandler=null,this._moveData=null,this._mouseMoveHandler=this._onMouseMove.bind(this),this._mouseUpHandler=this._onMouseUp.bind(this),this._addWidgetProperties(["components","menus","selectedComponent"]),this._addPreserveOnPropertyChangeProperties(["selectedComponent"])}init(e,t,i){super.init(e,t,i)}getConfiguredNumberOfHourDivisions(){return 2}getConfiguredHeightPerDivision(){return 30}getConfiguredStartHour(){return 6}_isDay(){return this.displayMode===Wl.DisplayMode.DAY}_isWeek(){return this.displayMode===Wl.DisplayMode.WEEK}_isMonth(){return this.displayMode===Wl.DisplayMode.MONTH}_isWorkWeek(){return this.displayMode===Wl.DisplayMode.WORK_WEEK}_createKeyStrokeContext(){return new Zr}_init(e){super._init(e),this._yearPanel=x.create("YearPanel",{parent:this}),this._yearPanel.on("dateSelect",this._onYearPanelDateSelect.bind(this)),this.modesMenu=x.create("CalendarModesMenu",{parent:this,visible:!1,displayMode:this.displayMode}),this._setSelectedDate(e.selectedDate),this._setDisplayMode(e.displayMode),this._setMenuInjectionTarget(e.menuInjectionTarget),this._exactRange=this._calcExactRange(),this._yearPanel.setViewRange(this._exactRange),this.viewRange=this._calcViewRange()}setSelectedDate(e){this.setProperty("selectedDate",e)}_setSelectedDate(e){e=Le.ensure(e),this._setProperty("selectedDate",e),this._yearPanel.selectDate(this.selectedDate)}_renderSelectedDate(){this._updateModel(!0,!1)}setDisplayMode(e){if(Ai.equals(this.displayMode,e))return;let t=this.displayMode;this._setDisplayMode(e),this.rendered&&this._renderDisplayMode(t)}_setDisplayMode(e){if(this._setProperty("displayMode",e),this._yearPanel.setDisplayMode(this.displayMode),this.modesMenu.setDisplayMode(e),this._isWorkWeek()){let e=this._dateParts(this.selectedDate,!0);e.day>4&&this.setSelectedDate(new Date(e.year,e.month,e.date-e.day+4))}}_renderDisplayMode(e){this.rendering||(this._updateModel(!1,!0),e!==Wl.DisplayMode.MONTH&&this.displayMode!==Wl.DisplayMode.MONTH||(this._renderComponents(),this.needsScrollToStartHour=!0))}_setViewRange(e){e=Xl.ensure(e),this._setProperty("viewRange",e)}_setMenus(e){if(this._checkMenuInjectionTarget(this.menuInjectionTarget)){let t=this._removeInjectedMenus(this.menuInjectionTarget,this.menus);this.menuInjectionTarget.setMenus(e.concat(t))}this._setProperty("menus",e)}_setMenuInjectionTarget(e){if(Ai.isString(e)&&(e=x.widget(e)),this._checkMenuInjectionTarget(this.menuInjectionTarget)){e.off("propertyChange:menus",this._menuInjectionTargetMenusChangedHandler);let t=this._removeInjectedMenus(this.menuInjectionTarget,this.menus);this.menuInjectionTarget.setMenus(t)}this._checkMenuInjectionTarget(e)&&(e.setMenus(this.menus.concat(e.menus)),this._menuInjectionTargetMenusChangedHandler=e.on("propertyChange:menus",(e=>{this.menuInjectionTarget.menus.some((e=>this.menus.includes(e)))||this.menuInjectionTarget.setMenus(this.menus.concat(this.menuInjectionTarget.menus))}))),this._setProperty("menuInjectionTarget",e)}_checkMenuInjectionTarget(e){return e instanceof ac}_removeInjectedMenus(e,t){return e.menus.filter((e=>!t.includes(e)))}_render(){this.$container=this.$parent.appendDiv("calendar");let e=new ql(this);this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(e);let t=Qe.get().type===Qe.Type.MOBILE;this.$header=this.$container.appendDiv("calendar-header"),this.$header.toggleClass("mobile",t),this.$headerRow1=this.$header.appendDiv("calendar-header-row first"),this.$headerRow2=this.$header.appendDiv("calendar-header-row last"),this._yearPanel.render(),this.$grids=this.$container.appendDiv("calendar-grids"),this.$topGrid=this.$grids.appendDiv("calendar-top-grid"),this.$topGrid.toggleClass("mobile",t),this.$grid=this.$grids.appendDiv("calendar-grid"),this.$grid.toggleClass("mobile",t),this.$list=this.$container.appendDiv("calendar-list-container").appendDiv("calendar-list"),this.$listTitle=this.$list.appendDiv("calendar-list-title"),this.$range=this.$headerRow1.appendDiv("calendar-range"),this.$range.appendDiv("calendar-previous").click(this._onPreviousClick.bind(this)),this.$range.appendDiv("calendar-today",this.session.text("ui.CalendarToday")).click(this._onTodayClick.bind(this)),this.$range.appendDiv("calendar-next").click(this._onNextClick.bind(this)),this.$title=this.$headerRow1.appendDiv("calendar-title"),this.$select=this.$title.appendDiv("calendar-select"),this.$progress=this.$title.appendDiv("busyindicator-label"),this.$commands=this.$headerRow1.appendDiv("calendar-commands"),this.$commands.appendDiv("calendar-mode first",this.session.text("ui.CalendarDay")).attr("data-mode",Wl.DisplayMode.DAY).click(this._onDisplayModeClick.bind(this)),this.$commands.appendDiv("calendar-mode",this.session.text("ui.CalendarWorkWeek")).attr("data-mode",Wl.DisplayMode.WORK_WEEK).click(this._onDisplayModeClick.bind(this)),this.$commands.appendDiv("calendar-mode",this.session.text("ui.CalendarWeek")).attr("data-mode",Wl.DisplayMode.WEEK).click(this._onDisplayModeClick.bind(this)),this.$commands.appendDiv("calendar-mode last",this.session.text("ui.CalendarMonth")).attr("data-mode",Wl.DisplayMode.MONTH).click(this._onDisplayModeClick.bind(this)),this.modesMenu.render(this.$commands),this.$commands.appendDiv("calendar-toggle-year").click(this._onYearClick.bind(this)),this.$commands.appendDiv("calendar-toggle-list").click(this._onListClick.bind(this));let i=this.$topGrid.appendDiv("calendar-week-header");i.appendDiv("calendar-week-name");for(let e=0;e<7;e++)i.appendDiv("calendar-day-name").data("day",e);this.$topGrid.appendDiv("calendar-week-task").attr("data-axis-name",this.session.text("ui.CalendarDay"));let s=this.$topGrid.appendDiv("calendar-week-allday-container");s.appendDiv("calendar-week-name");let r=this._onDayContextMenu.bind(this);for(let e=0;e<7;e++)s.appendDiv("calendar-day").addClass("calendar-scrollable-components").data("day",e).on("contextmenu",r);for(let e=1;e<7;e++){let t=this.$grid.appendDiv("calendar-week");for(let i=0;i<8;i++){let s=t.appendDiv();e>0&&0===i?s.addClass("calendar-week-name"):e>0&&i>0&&s.addClass("calendar-day").data("day",i).data("week",e).on("contextmenu",r)}}let n=this._onDayMouseDown.bind(this,!0);this.$grid.find(".calendar-day").on("mousedown",n);let o=this._onDayMouseDown.bind(this,!1);this.$topGrid.find(".calendar-day").on("mousedown",o),this.$window=this.$container.window(),this.$container.on("mousedown touchstart",this._onMouseDown.bind(this)),this._updateScreen(!1,!1)}_renderProperties(){super._renderProperties(),this._renderComponents(),this._renderSelectedComponent(),this._renderLoadInProgress(),this._renderDisplayMode()}_renderComponents(){this.components.sort(this._sortFromTo),this.components.forEach((e=>e.remove())),this.components.forEach((e=>e.render())),this._arrangeComponents(),this._updateListPanel()}_renderSelectedComponent(){this.selectedComponent&&this.selectedComponent.setSelected(!0)}_renderLoadInProgress(){this.$progress.setVisible(this.loadInProgress)}updateScrollPosition(e){this.rendered?this._updateScrollPosition(!0,e):this.session.layoutValidator.schedulePostValidateFunction(this._updateScrollPosition.bind(this,!0,e))}_updateScrollPosition(e,t){if(this._isMonth())this._scrollToSelectedComponent(t);else if(this.selectedComponent)if(this.selectedComponent.fullDay)this._scrollToSelectedComponent(t),e&&this._scrollToInitialTime(t);else{let e=Le.parseJsonDate(this.selectedComponent.fromDate,this.selectedComponent),i=this._dayPosition(e.getHours(),e.getMinutes())/100,s=this.heightPerDay*i;Yn.scrollTop(this.$grid,s-this.spaceBeforeScrollTop,{animate:t})}else e&&this._scrollToInitialTime(t)}_scrollToSelectedComponent(e){this.selectedComponent&&this.selectedComponent._$parts[0]&&this.selectedComponent._$parts[0].parent()&&this.selectedComponent._$parts[0].isVisible()&&Yn.scrollTo(this.selectedComponent._$parts[0].parent(),this.selectedComponent._$parts[0],{animate:e})}_scrollToInitialTime(e){if(this.needsScrollToStartHour=!1,!this._isMonth())if(this.selectedComponent&&!this.selectedComponent.fullDay){let t=Le.parseJsonDate(this.selectedComponent.fromDate),i=this._dayPosition(t.getHours(),t.getMinutes())/100,s=this.heightPerDay*i;Yn.scrollTop(this.$grid,s-this.spaceBeforeScrollTop,{animate:e})}else{let t=this.heightPerHour*this.startHour;Yn.scrollTop(this.$grid,t-this.spaceBeforeScrollTop,{animate:e})}}_onPreviousClick(e){this._navigateDate(Wl.Direction.BACKWARD)}_onNextClick(e){this._navigateDate(Wl.Direction.FORWARD)}_dateParts(e,t){let i={year:e.getFullYear(),month:e.getMonth(),date:e.getDate(),day:e.getDay()};return t&&(i.day=(e.getDay()+6)%7),i}_navigateDate(e){this.selectedDate=this._calcSelectedDate(e),this._updateModel(!0,!1)}_calcSelectedDate(e){let t=this._dateParts(this.selectedDate),i=e,s=7*e,r=e;return this._isDay()?new Date(t.year,t.month,t.date+i):this._isWeek()||this._isWorkWeek()?new Date(t.year,t.month,t.date+s):this._isMonth()?Le.shift(this.selectedDate,0,r,0):void 0}_updateModel(e,t){this._exactRange=this._calcExactRange(),this._yearPanel.setViewRange(this._exactRange),this.viewRange=this._calcViewRange(),this.trigger("modelChange"),this._updateScreen(e,t)}_calcExactRange(){let e,t,i=this._dateParts(this.selectedDate,!0);if(this._isDay())e=new Date(i.year,i.month,i.date),t=new Date(i.year,i.month,i.date+1);else if(this._isWeek())e=new Date(i.year,i.month,i.date-i.day),t=new Date(i.year,i.month,i.date-i.day+6);else if(this._isMonth())e=new Date(i.year,i.month,1),t=new Date(i.year,i.month+1,0);else{if(!this._isWorkWeek())throw new Error("invalid value for displayMode");e=new Date(i.year,i.month,i.date-i.day),t=new Date(i.year,i.month,i.date-i.day+4)}return new Xl(e,t)}_calcViewRange(){let e=function(e){let t,i=new Date(e.valueOf());for(t=0;t<42;t++)if(i.setDate(i.getDate()-1),1===i.getDay()&&i.getMonth()!==e.getMonth())return i;throw new Error("failed to calc viewFrom date")}(this._exactRange.from),t=function(e){let t,i=new Date(e.valueOf());for(t=0;t<42;t++)i.setDate(i.getDate()+1);return i}(e);return new Xl(e,t)}_onTodayClick(e){this.selectedDate=new Date,this._updateModel(!0,!1)}_onDisplayModeClick(e){let t=n()(e.target).data("mode");this.setDisplayMode(t)}_onYearClick(e){this._showYearPanel=!this._showYearPanel,this._updateScreen(!0,!0)}_onListClick(e){this._showListPanel=!this._showListPanel,this._updateScreen(!1,!0)}_onDayMouseDown(e,t){let i=new Date(n()(t.delegateTarget).data("date"));if(e&&(this._isDay()||this._isWeek()||this._isWorkWeek())){let e=Math.floor(t.originalEvent.layerY/this.heightPerDivision)/this.numberOfHourDivisions*60*60;e<86400&&i.setSeconds(e)}this._setSelection(i,null,!1)}_setSelection(e,t,i){let s=!1;0!==Le.compareDays(this.selectedDate,e)&&(s=!0,n()(".calendar-day",this.$container).each(((t,i)=>{let s=n()(i),r=s.data("date");r&&0!==Le.compareDays(r,this.selectedDate)?0===Le.compareDays(r,e)&&s.select(!0):s.select(!1)})),this.selectedDate=e),this.selectedComponent!==t&&(s=!0,this.selectedComponent&&this.selectedComponent.setSelected(!1),t&&t.setSelected(!0),this.selectedComponent=t),s&&(this.trigger("selectionChange"),this._updateListPanel(),i&&this._updateScrollPosition(!1,!0)),this._showYearPanel&&this._yearPanel.selectDate(this.selectedDate)}_updateScreen(e,t){n().log.isInfoEnabled()&&n().log.info("(Calendar#_updateScreen)"),n()(".calendar-mode",this.$commands).select(!1),n()('[data-mode="'+this.displayMode+'"]',this.$commands).select(!0),n()(".selected",this.$grid).select(!1),this.layoutLabel(),this.layoutSize(t),this.layoutAxis(),this._showYearPanel&&this._yearPanel.selectDate(this.selectedDate),this._updateListPanel(),this._updateScrollbars(this.$grid,t),e&&!this._isMonth()&&this._updateTopGrid()}layoutSize(e){n()("div",this.$container).removeData(["new-width","new-height"]),this._isMonth()?(this.$topGrid.addClass("calendar-top-grid-short"),this.$grid.removeClass("calendar-grid-short")):(this.$topGrid.removeClass("calendar-top-grid-short"),this.$grid.addClass("calendar-grid-short"));let t=n()(".selected",this.$grid),i=n()(".selected",this.$topGrid),s=this.$container.width(),r=this.$grid.height(),o=s-(this.$grid.innerWidth()-this.$grid.width());n()(".calendar-toggle-year",this.$commands).select(this._showYearPanel),this._showYearPanel?(this._yearPanel.$container.data("new-width",this.calendarToggleYearWidth),o-=this.calendarToggleYearWidth,s-=this.calendarToggleYearWidth):this._yearPanel.$container.data("new-width",0),n()(".calendar-toggle-list",this.$commands).select(this._showListPanel),this._showListPanel?(this.$list.parent().data("new-width",this.calendarToggleListWidth),o-=this.calendarToggleListWidth,s-=this.calendarToggleListWidth):this.$list.parent().data("new-width",0),this.$grids.data("new-width",s);let l=n()(),a=n()(".calendar-week",this.$grid);if(this._isDay()||this._isWeek()||this._isWorkWeek()){a.removeClass("calendar-week-noborder");let e=t.parent();l=a.not(e),l.data("new-height",0),l.removeClass("invisible"),e.data("new-height",this.heightPerDay),e.addClass("calendar-week-noborder"),e.removeClass("hidden invisible"),n()(".calendar-day",e).data("new-height",this.heightPerDay),n()(".calendar-week-name",this.$grid).addClass("invisible"),n()(".calendar-week-allday-container",this.$topGrid).removeClass("hidden"),n()(".calendar-week-task",this.$topGrid).removeClass("hidden")}else{let e=r/this.monthViewNumberOfWeeks;a.removeClass("calendar-week-noborder invisible hidden"),a.eq(0).addClass("calendar-week-noborder"),a.data("new-height",e),n()(".calendar-day",this.$grid).data("new-height",e);let t=n()(".calendar-week-name",this.$grid);t.removeClass("hidden invisible"),t.data("new-height",e),n()(".calendar-week-allday-container",this.$topGrid).addClass("hidden"),n()(".calendar-week-task",this.$topGrid).addClass("hidden")}let h=o-45;if(this._isDay())n()(".calendar-day-name, .calendar-day",this.$topGrid).data("new-width",0),n()(".calendar-day",this.$grid).data("new-width",0),n()(".calendar-day-name:nth-child("+(i.index()+1)+")",this.$topGrid).data("new-width",h),n()(".calendar-day:nth-child("+(i.index()+1)+")",this.$topGrid).data("new-width",h),n()(".calendar-day:nth-child("+(t.index()+1)+")",this.$grid).data("new-width",h),this.widthPerDivision=h;else if(this._isWorkWeek()){this.$topGrid.find(".calendar-day-name").data("new-width",0),this.$grids.find(".calendar-day").data("new-width",0);let e=Math.round(h/this.workDayIndices.length);this.$topGrid.find(".calendar-day-name").slice(0,5).data("new-width",e),this.$topGrid.find(".calendar-day").slice(0,5).data("new-width",e),n()(".calendar-day:nth-child(-n+6)",this.$grid).data("new-width",e),this.widthPerDivision=e}else if(this._isMonth()||this._isWeek()){let e=Math.round(h/7);this.$grids.find(".calendar-day").data("new-width",e),this.$topGrid.find(".calendar-day-name").data("new-width",e),this.widthPerDivision=e}this._isMonth()&&n()(".component-month",this.$grid).each((function(){let e=n()(this),t=e.closest(".calendar-day");e.toggleClass("compact",t.data("new-width")<Gl.MONTH_COMPACT_THRESHOLD)})),n()("div",this.$container).each(((t,i)=>{let s=n()(i),r=s.data("new-width"),o=s.data("new-height");if(s.stop(!1,!0),void 0!==r&&r!==s.outerWidth())if(e){let t={complete:()=>this._afterLayout(s,e)};s[0]===this.$grids[0]&&(t.progress=()=>this._afterLayout(s,e)),s.animate({width:r},t)}else s.css("width",r),this._afterLayout(s,e);void 0!==o&&o!==s.outerHeight()&&(o>0&&s.removeClass("hidden"),e?s.animateAVCSD("height",o,(()=>{0===o&&s.addClass("hidden"),this._afterLayout(s,e)})):(s.css("height",o),0===o&&s.addClass("hidden"),this._afterLayout(s,e)))}))}_afterLayout(e,t){this._updateScrollbars(e,t),this._updateWeekdayNames()}_updateWeekdayNames(){let e,t=this.$topGrid.width();this._isDay()?t/=1:this._isWorkWeek()?t/=this.workDayIndices.length:(this._isWeek()||this._isMonth())&&(t/=7),e=t>90?this.session.locale.dateFormat.symbols.weekdaysOrdered:this.session.locale.dateFormat.symbols.weekdaysShortOrdered,n()(".calendar-day-name",this.$topGrid).each((function(t){n()(this).attr("data-day-name",e[t])}))}_updateScrollbars(e,t){n()(".calendar-scrollable-components",e).each(((e,t)=>{Yn.update(n()(t),!0)})),this.updateScrollPosition(t)}_uninstallComponentScrollbars(e){e.find(".calendar-scrollable-components").each(((e,t)=>{Yn.uninstall(n()(t),this.session)}))}_updateTopGrid(){n()(".calendar-component",this.$topGrid).each(((e,t)=>{let i=n()(t).data("component");i&&i.remove()}));let e=this.components.filter((e=>e.fullDay));e.forEach((e=>e.remove())),e.forEach((e=>e.render())),this._updateScrollbars(this.$topGrid,!1)}layoutYearPanel(){this._showYearPanel&&(Yn.update(this._yearPanel.$yearList),this._yearPanel._scrollYear())}layoutLabel(){let e,t,i,s=this._exactRange.from,r=this._exactRange.to;if(this._isDay())e=this._format(s,"d. MMMM yyyy");else if(this._isWorkWeek()||this._isWeek()){let t=this.session.text("ui.to");e=s.getMonth()===r.getMonth()?qt.join(" ",this._format(s,"d."),t,this._format(r,"d. MMMM yyyy")):s.getFullYear()===r.getFullYear()?qt.join(" ",this._format(s,"d. MMMM"),t,this._format(r,"d. MMMM yyyy")):qt.join(" ",this._format(s,"d. MMMM yyyy"),t,this._format(r,"d. MMMM yyyy"))}else this._isMonth()&&(e=this._format(s,"MMMM yyyy"));this.$select.text(e),t=n()(".calendar-day",this.$grid);let o,l,a,h=this._exactRange.from.getMonth(),d=new Date(this.viewRange.from.valueOf());for(o=0;o<this.monthViewNumberOfWeeks;o++)for(l=0;l<7;l++)a="",a=-1===this.workDayIndices.indexOf(d.getDay())?d.getMonth()!==h?" weekend-out":" weekend":d.getMonth()!==h?" out":"",Le.isSameDay(d,new Date)&&(a+=" now"),Le.isSameDay(d,this.selectedDate)&&(a+=" selected"),this._isMonth()||(a+=" calendar-no-label"),d.getDate()>9&&d.getDate()<20&&(a+=" center-nice"),e=this._format(d,"dd"),t.eq(7*o+l).removeClass("weekend-out weekend out selected now calendar-no-label").addClass(a).attr("data-day-name",e).data("date",new Date(d.valueOf())),d.setDate(d.getDate()+1);if(!this._isMonth()){i=n()(".calendar-day",this.$topGrid);let t=new Date(this._exactRange.from.valueOf());for(d=Le.firstDayOfWeek(t,1),l=0;l<7;l++)a="",a=-1===this.workDayIndices.indexOf(d.getDay())?d.getMonth()!==h?" weekend-out":" weekend":d.getMonth()!==h?" out":"",Le.isSameDay(d,new Date)&&(a+=" now"),Le.isSameDay(d,this.selectedDate)&&(a+=" selected"),e=this._format(d,"dd"),i.eq(l).removeClass("weekend-out weekend out selected now").addClass(a).attr("data-day-name",e).data("date",new Date(d.valueOf())),d.setDate(d.getDate()+1)}}layoutAxis(){let e;n()(".calendar-week-axis, .calendar-week-task",this.$grid).remove();let t=this.session;if(n()(".calendar-week-name",this.$container).each((function(i){i>0&&(e=n()(this),e.text(t.text("ui.CW",Le.weekInYear(e.next().data("date")))))})),!this._isMonth()){let e=n()(".calendar-week",this.$grid);for(let t=0;t<24;t++){let i=("00"+t).slice(-2),s=t*this.heightPerHour;e.appendDiv("calendar-week-axis hour"+(0===t?" first":"")).attr("data-axis-name",i+":00").css("top",s+"px");for(let t=1;t<this.numberOfHourDivisions;t++)s+=this.heightPerDivision,e.appendDiv("calendar-week-axis").attr("data-axis-name","").css("top",s+"px")}}}_onYearPanelDateSelect(e){this.selectedDate=e.date,this._updateModel(!0,!1)}_updateListPanel(){this._showListPanel&&(this._listComponents.forEach((e=>{e.remove()})),this._listComponents=[],this._renderListPanel())}_remove(){this._uninstallComponentScrollbars(this.$grid),this._uninstallComponentScrollbars(this.$topGrid),this.$window.off("mousemove touchmove",this._mouseMoveHandler).off("mouseup touchend touchcancel",this._mouseUpHandler),this._moveData=null,super._remove()}_renderListPanel(){let e,t=[];function i(e){let t=Le.trunc(this.selectedDate);return Le.compare(t,e.coveredDaysRange.from)>=0&&Le.compare(t,e.coveredDaysRange.to)<=0}this.$listTitle.text(this._format(this.selectedDate,"d. MMMM yyyy")),this.components.forEach((e=>{i.call(this,e)&&t.push(e)})),t.forEach((t=>{e=new Kl(this.selectedDate,t),e.render(this.$list),this._listComponents.push(e)}))}_selectedComponentChanged(e,t,i){this._setSelection(t,e,i)}_onDayContextMenu(e){this._showContextMenu(e,"Calendar.EmptySpace")}_showContextMenu(e,t){e.preventDefault(),e.stopPropagation();let i=function(e,t){if(!this.rendered||!this.attached)return;let i=al.filter(this.menus,[t],!0),s=n()(e.currentTarget);0!==i.length&&x.create("ContextMenuPopup",{parent:this,menuItems:i,location:{x:e.pageX,y:e.pageY},$anchor:s}).open()}.bind(this);this.session.onRequestsDone(i,e,t)}_arrangeComponents(){let e,t,i,s,r,o,l,a,h=n()(".calendar-day",this.$grid);for(e=0;e<h.length;e++){if(i=h.eq(e),r=i.children(".calendar-component:not(.component-task)"),s=i.children(".calendar-component"),a=i.data("date"),o=i.children(".calendar-scrollable-components"),o.length>0&&(Yn.uninstall(o,this.session),o.remove()),this._isMonth()&&s.length>0){for(o=i.appendDiv("calendar-scrollable-components"),t=0;t<s.length;t++){let e=s.eq(t);(this._isMonth()||e.hasClass("component-task"))&&o.append(e)}Yn.install(o,{parent:this,session:this.session,axis:"y"})}this._isMonth()&&r.length>2?i.addClass("many-items"):!this._isMonth()&&r.length>1&&(l=this._getComponents(r),this._arrange(l,a),this._arrangeComponentSetPlacement(r,a))}this._isMonth()?(this._uninstallScrollbars(),this._uninstallComponentScrollbars(this.$topGrid),this.$grid.removeClass("calendar-scrollable-components")):(this.$grid.addClass("calendar-scrollable-components"),this._installScrollbars({parent:this,session:this.session,axis:"y"}),this.$topGrid.find(".calendar-scrollable-components").each(((e,t)=>{let i=n()(t);i.data("scrollable")?Yn.update(i):Yn.install(i,{parent:this,session:this.session,axis:"y",scrollShadow:"none"})})))}_getComponents(e){let t,i,s=[];for(t=0;t<e.length;t++)i=e.eq(t),s.push(i.data("component"));return s}_sort(e){e.sort(this._sortFromTo)}_arrange(e,t){let i,s,r,n,o,l=[];for(this._sort(e),i=0;i<e.length;i++)r=e[i],r.stack||(r.stack={}),r.stack[t]={};for(i=0;i<e.length;i++)for(r=e[i],n=r.getPartDayPosition(t),l.length>0&&this._allEndBefore(l,n.from,t)&&(l=[]),o=this._findReplacableColumn(l,n.from,t),o>=0?(l[o]=r,r.stack[t].x=o):(l.push(r),r.stack[t].x=l.length-1),s=0;s<l.length;s++)l[s].stack[t].w=l.length}_allEndBefore(e,t,i){let s;for(s=0;s<e.length;s++)if(!this._endsBefore(e[s],t,i))return!1;return!0}_findReplacableColumn(e,t,i){let s;for(s=0;s<e.length;s++)if(this._endsBefore(e[s],t,i))return s;return-1}_endsBefore(e,t,i){return e.getPartDayPosition(i).to<=t}_arrangeComponentSetPlacement(e,t){let i,s,r;for(i=0;i<e.length;i++)s=e.eq(i),r=s.data("component").stack[t],s.css("width",100/r.w+"%").css("left",100*r.x/r.w+"%")}get$Scrollable(){return this.$grid}_onMouseDown(e){if(this._moveData)return;let t=this._getCalendarComponentForMouseEvent(e);!t||!t.draggable||!this._isMonth()&&t.fullDay||t._$parts.length>1||3!==e.which&&(this.$window.off("mousemove touchmove",this._mouseMoveHandler).off("mouseup touchend touchcancel",this._mouseUpHandler).on("mousemove touchmove",this._mouseMoveHandler).on("mouseup touchend touchcancel",this._mouseUpHandler),this._moveData=this._newMoveData(e),this._onComponentMouseDown(e,t),this._moveData.onMove=this._onComponentMouseMove.bind(this),this._moveData.onUp=this._onComponentMouseUp.bind(this))}_onMouseMove(e){Ye.fixTouchEvent(e),this._moveData.event=e,this._moveData.currentCursorPosition=new nr(e.pageX-this._moveData.containerOffset.left+this._moveData.containerScrollPosition.x,e.pageY-this._moveData.containerOffset.top+this._moveData.containerScrollPosition.y),this._scrollViewportWhileDragging(e),this._moveData.onMove&&!this._moveData.cancelled&&this._moveData.onMove(e)}_scrollViewportWhileDragging(e,t){if(!this._moveData||"pan"===this._moveData.mode||this._moveData.cancelled)return;this._moveData.viewportScroller||(this._moveData.viewportScroller=x.create("ViewportScroller",n().extend({viewportWidth:this.$grid.width(),viewportHeight:this.$grid.height(),active:()=>!!this._moveData,scroll:(e,t)=>{let i=this.get$Scrollable().scrollTop()+t;Yn.scrollTop(this.get$Scrollable(),i),this._moveData.containerScrollPosition=new nr(this.get$Scrollable().scrollLeft(),this.get$Scrollable().scrollTop())}})));let i=this._moveData.currentCursorPosition.subtract(this._moveData.containerScrollPosition);this._moveData.viewportScroller.update(i)}_onMouseUp(e){this.$window.off("mousemove touchmove",this._mouseMoveHandler).off("mouseup touchend touchcancel",this._mouseUpHandler),Ye.fixTouchEvent(e),this._moveData.event=e,this._moveData.onUp&&!this._moveData.cancelled&&this._moveData.onUp(e),this._moveData=null}_onComponentMouseDown(e,t){this._moveData.component=t,this._moveData.logicalX=t._$parts[0].closest(".calendar-day").data().day,this._moveData.logicalY=Math.round(t._$parts[0].position().top)/this.heightPerDivision,this._isMonth()&&(this._moveData.logicalY=t._$parts[0].closest(".calendar-day").data().week),e.preventDefault()}_onComponentMouseMove(e){this._moveData.rafId||(this._moveData.rafId=requestAnimationFrame(this._whileComponentMove.bind(this)))}_onComponentMouseUp(e){this._endComponentMove()}_whileComponentMove(){this._moveData.rafId=null;let e=new nr(this._moveData.currentCursorPosition.x-this._moveData.startCursorPosition.x,this._moveData.currentCursorPosition.y-this._moveData.startCursorPosition.y);if(!this._moveData.moving){if(Math.abs(e.x)<7&&Math.abs(e.y)<7)return;this._moveData.moving=!0}let t=this.toLogicalPosition(e),i=this._isMonth()?1:0,s=this._isWorkWeek()?this.workDayIndices.length:7,r=this._isMonth()?this.monthViewNumberOfWeeks:24*this.numberOfHourDivisions-Math.ceil(this._moveData.component.getLengthInHoursDecimal()*this.numberOfHourDivisions);!function(e){let n=e.x,o=e.y;n<1?t.x-=n-1:n>s&&(t.x-=n-s),o<i?t.y-=o-i:o>r&&(t.y-=o-r)}(new nr(this._moveData.logicalX,this._moveData.logicalY).add(t)),this._moveData.distance=t;let n=new nr(this._moveData.logicalX,this._moveData.logicalY).add(this._moveData.distance);this._setComponentLogicalPosition(this._moveData.component,n)}_endComponentMove(){this._moveData.rafId&&(cancelAnimationFrame(this._moveData.rafId),this._moveData.rafId=null);let e=this._moveData.component;if(this._moveData.distance){let t=!1,i=new nr(this._moveData.logicalX,this._moveData.logicalY).add(this._moveData.distance),s=i.x-this._moveData.logicalX,r=i.y-this._moveData.logicalY;if(t=t||!!s||!!r,t){let t=Le.parseJsonDate(e.toDate),i=Le.parseJsonDate(e.fromDate),n=s;if(this._isMonth())n+=7*r;else{let e=this._hourMinuteByDivision(r);i=Le.shiftTime(i,e.hour,e.minute),t=Le.shiftTime(t,e.hour,e.minute)}i=Le.shift(i,0,0,n),t=Le.shift(t,0,0,n),e.fromDate=this._format(i,"yyyy-MM-dd HH:mm:ss.SSS"),e.toDate=this._format(t,"yyyy-MM-dd HH:mm:ss.SSS"),e.coveredDaysRange=new Mi(Le.trunc(i),Le.trunc(t)),this._renderComponents(),this.trigger("componentMove",{component:e})}}}_setComponentLogicalPosition(e,t,i){let s;s=t instanceof nr?t:new nr(t,i);let r=e._$parts[0].closest(".calendar-day").data("day"),o=e._$parts[0].closest(".calendar-day").data("week");if(e.rendered)if(this._isMonth()){if(r!==s.x||o!==s.y){let t=n()(".calendar-week:not(.hidden) > .calendar-day").filter((function(){return n()(this).data("day")===s.x&&n()(this).data("week")===s.y})),i=t.find(".calendar-scrollable-components");t=i.length>0?i:t,e._$parts[0].detach().appendTo(t)}}else{r!==s.x&&e._$parts[0].detach().appendTo(n()(".calendar-week:not(.hidden) > .calendar-day").filter((function(){return n()(this).data("day")===s.x})));let t=this._dayPositionByDivision(s.y)+"%";e._$parts[0].css("top",t)}}_getCalendarComponentForMouseEvent(e){let t=n()(e.target);for(t=n().ensure(t);t&&t.length>0;){let e=t.data("component");if(e)return e;t=t.parent()}return null}_newMoveData(e){let t={};return t.event=e,t.cancel=()=>{t.cancelled=!0},t.unitX=this.widthPerDivision,t.unitY=this.heightPerDivision,this._isMonth()&&(t.unitY=n()(e.target).closest(".calendar-day").height()),t.containerOffset=this.$grid.offset(),t.containerScrollPosition=new nr(this.get$Scrollable().scrollLeft(),this.get$Scrollable().scrollTop()),t.startCursorPosition=new nr(e.pageX-t.containerOffset.left+t.containerScrollPosition.x,e.pageY-t.containerOffset.top+t.containerScrollPosition.y),t.currentCursorPosition=t.startCursorPosition,t}toLogicalPosition(e,t,i){let s;return e instanceof nr?(s=e,i=t):s=new nr(e,t),this._isDay()&&(s.x=0),new nr(fi.round(s.x/this._moveData.unitX,i),fi.round(s.y/this._moveData.unitY,i))}_hourMinuteByDivision(e){e/=this.numberOfHourDivisions;let t=Math.floor(e),i=e-t,s=1/60;return i=s*Math.round(i/s),{hour:t,minute:Math.floor(60*i)}}_dayPositionByDivision(e){let t=this._hourMinuteByDivision(e);return this._dayPosition(t.hour,t.minute)}_dayPosition(e,t){let i;return i=e<0?0:100/1440*(60*e+t),Math.round(100*i)/100}_hourToNumber(e){let t=e.split(":");return parseFloat(t[0])+parseFloat(t[1])/60}_format(e,t){return Le.format(e,this.session.locale,t)}_sortFromTo(e,t){let i=Le.parseJsonDate(e.fromDate),s=Le.parseJsonDate(t.fromDate),r=Le.compare(i,s);if(0!==r)return r;let n=Le.parseJsonDate(e.toDate),o=Le.parseJsonDate(t.toDate),l=Le.compare(n,o);if(0!==l)return l;let a=e.item&&e.item.subject?e.item.subject:"",h=t.item&&t.item.subject?t.item.subject:"";return a.localeCompare(h)}}Vl(Wl,"DisplayMode",{DAY:1,WEEK:2,MONTH:3,WORK_WEEK:4}),Vl(Wl,"Direction",{BACKWARD:-1,FORWARD:1});class zl extends j{constructor(){super()}_postCreateWidget(){this._sendViewRangeChange()}_onWidgetEvent(e){"viewRangeChange"===e.type?this._sendViewRangeChange():"modelChange"===e.type?this._sendModelChange():"selectionChange"===e.type?this._sendSelectionChange():"componentMove"===e.type?this._sendComponentMove(e):super._onWidgetEvent(e)}_jsonViewRange(){return Le.toJsonDateRange(this.widget.viewRange)}_jsonSelectedDate(){return Le.toJsonDate(this.widget.selectedDate)}_sendViewRangeChange(){this._send("viewRangeChange",{viewRange:this._jsonViewRange()})}_sendModelChange(){let e={viewRange:this._jsonViewRange(),selectedDate:this._jsonSelectedDate(),displayMode:this.widget.displayMode};this._send("modelChange",e)}_sendSelectionChange(){let e=this.widget.selectedComponent?this.widget.selectedComponent.id:null;this._send("selectionChange",{date:this._jsonSelectedDate(),componentId:e})}_sendComponentMove(e){this._send("componentMove",{componentId:e.component.id,fromDate:e.component.fromDate,toDate:e.component.toDate})}}class Gl extends Y{constructor(){super(),this.selected=!1,this.fullDay=!1,this.item=null,this._$parts=[]}_init(e){super._init(e),this._syncCoveredDaysRange(this.coveredDaysRange)}_syncCoveredDaysRange(e){e&&(this.coveredDaysRange=new Mi(Le.parseJsonDate(e.from),Le.parseJsonDate(e.to)))}_remove(){this._$parts.forEach((e=>{e.remove()})),this._$parts=[],super._remove()}_startLoopDay(){return Le.compare(this.coveredDaysRange.from,this.parent.viewRange.from)>0?this.coveredDaysRange.from:this.parent.viewRange.from}_render(){let e,t,i;if(!this.coveredDaysRange)return;let s=this._startLoopDay(),r=Le.parseJsonDate(this.toDate),o=Le.parseJsonDate(this.fromDate),l=this.coveredDaysRange.to;if(!this.fullDay){let e=Le.trunc(r);Le.isSameDay(o,r)||0!==Le.compare(r,e)||(r=Le.shiftTime(r,0,0,0,-1),l=Le.shift(l,0,0,-1))}r=Le.toJsonDate(r);let a=Le.shift(l,0,0,1);if(!(Le.compare(s,a)>0))for(;!(Le.isSameDay(s,a)||(e=s,s=Le.shift(s,0,0,1),Le.compare(e,this.parent.viewRange.to)>0));)if(t=this.fullDay&&!this.parent._isMonth()?this._findDayInGrid(e,this.parent.$topGrid):this._findDayInGrid(e,this.parent.$grid),t)if(i=t.appendDiv("calendar-component"),i.addClass(this.item.cssClass).data("component",this).data("partDay",e).mouseup(this._onMouseUp.bind(this)).on("contextmenu",this._onContextMenu.bind(this)),i.appendDiv("calendar-component-leftcolorborder"),i.appendDiv("content",this.item.subject),this._$parts.push(i),this.parent._isMonth()){let e=t.data("new-width")||t.width();i.addClass("component-month").toggleClass("compact",e<Gl.MONTH_COMPACT_THRESHOLD)}else if(this.fullDay){let e=n()(".component-task",t).length;this._arrangeTask(30+26*e),i.addClass("component-task")}else{let t=Le.parseJsonDate(this.fromDate),s=Le.parseJsonDate(r),n=this._getHours(this.fromDate),o=this._getHours(r);i.addClass("component-day"),Le.isSameDay(Le.trunc(this.coveredDaysRange.from),Le.trunc(l))?this._partPosition(i,n,o):Le.isSameDay(e,t)?this._partPosition(i,n,25).addClass("component-open-bottom"):Le.isSameDay(e,s)?this._partPosition(i,0,o).addClass("component-open-top"):this._partPosition(i,0,25).addClass("component-open-top").addClass("component-open-bottom")}}_getHours(e){let t=Le.parseJsonDate(e);return t.getHours()+t.getMinutes()/60}getLengthInHoursDecimal(){return(Le.parseJsonDate(this.toDate,!0)-Le.parseJsonDate(this.fromDate,!0))/36e5}_findDayInGrid(e,t){return t.find(".calendar-day").filter((function(t,i){return Le.isSameDay(n()(this).data("date"),e)})).eq(0)}_isTask(){return!this.parent._isMonth()&&this.fullDay}_arrangeTask(e){this._$parts.forEach((t=>{t.css("top",e+"px")}))}_isDayPart(){return!this.parent._isMonth()&&!this.fullDay}_getHourRange(e){let t=new Mi(this._getHours(this.fromDate),this._getHours(this.toDate)),i=new Mi(Le.parseJsonDate(this.fromDate),Le.parseJsonDate(this.toDate));return Le.isSameDay(e,i.from)&&Le.isSameDay(e,i.to)?new Mi(t.from,t.to):Le.isSameDay(e,i.from)?new Mi(t.from,24):Le.isSameDay(e,i.to)?new Mi(0,t.to):new Mi(0,24)}getPartDayPosition(e){return this._getDisplayDayPosition(this._getHourRange(e))}_getDisplayDayPosition(e){let t=new Mi(this.parent._dayPosition(e.from,0),this.parent._dayPosition(e.to,0)),i=Math.round(1e4/24/this.parent.numberOfHourDivisions)/100;return t.size()<i?new Mi(t.from,t.from+i):t}_partPosition(e,t,i){let s=25===i?23:0;i=Math.min(24,i);let r=new Mi(t,i),n=this._getDisplayDayPosition(r);return s=Math.round(100/1920*s*100)/100,e.css("top",n.from+"%").css("height",n.to-n.from-s+"%")}_renderProperties(){super._renderProperties(),this._renderSelected()}_renderSelected(){this._$parts.forEach((function(e){e.toggleClass("comp-selected",this.selected)}),this)}setSelected(e){this.setProperty("selected",e)}updateSelectedComponent(e,t){this.parent._selectedComponentChanged(this,e.data("partDay"),t)}_onMouseUp(e){if(this.parent._moveData&&this.parent._moveData.moving)return;let t=n()(e.delegateTarget);if(this.updateSelectedComponent(t,!1),0===e.button){x.create("WidgetPopup",{parent:this.parent,$anchor:t,closeOnAnchorMouseDown:!0,closeOnMouseDownOutside:!0,closeOnOtherPopupOpen:!0,horizontalAlignment:Ao.Alignment.LEFT,verticalAlignment:Ao.Alignment.CENTER,trimWidth:!1,trimHeight:!1,horizontalSwitch:!0,verticalSwitch:!0,withArrow:!0,cssClass:"tooltip",scrollType:"remove",location:{y:e.originalEvent.clientY},widget:{objectType:"Label",htmlEnabled:!0,cssClass:"tooltip-content",value:this._description()}}).open()}}_onContextMenu(e){this.parent._showContextMenu(e,"Calendar.CalendarComponent")}_format(e,t){return Le.format(e,this.session.locale,t)}_description(){let e=[],t=null,i="",s=Le.parseJsonDate(this.fromDate),r=Le.parseJsonDate(this.toDate);return qt.hasText(this.item.subject)&&e.push({text:qt.encode(this.item.subject),cssClass:"calendar-component-title"}),this.fullDay||(t=Le.isSameDay(s,r)?this.session.text("ui.FromXToY",this._format(s,"HH:mm"),this._format(r,"HH:mm")):this.session.text("ui.FromXToY",this._format(s,"EEEE HH:mm "),this._format(r,"EEEE HH:mm"))),qt.hasText(t)&&e.push({text:t,cssClass:"calendar-component-intro"}),qt.hasText(this.item.description)&&e.push({text:qt.nl2br(this.item.description)}),e.forEach((e=>{i+=(e.cssClass?'<span class="'+e.cssClass+'">'+e.text+"</span>":e.text)+"<br/>"})),i}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Gl,"MONTH_COMPACT_THRESHOLD",100);class Ul extends j{constructor(){super()}}class Kl{constructor(e,t){this.partDay=e,this.source=t,this.$container=null,this._selectedListener=t.on("selected",(e=>{this.$container.toggleClass("comp-selected",e.selected)})),this._removeListener=t.on("remove",this.remove.bind(this))}render(e){let t=this.source;this.$container=e.appendDiv("calendar-component").data("partDay",this.partDay).addClass(t.item.cssClass).toggleClass("comp-selected",t._selected).mousedown(this._onMouseDown.bind(this,t)).on("contextmenu",t._onContextMenu.bind(t)),this.$container.appendDiv("calendar-component-leftcolorborder"),this.$container.appendDiv("content").html(t._description())}_onMouseDown(e,t){t.preventDefault();let i=$(t.delegateTarget);e.updateSelectedComponent(i,!0)}remove(){this.source.removeListener(this._selectedListener),this.source.removeListener(this._removeListener),this.$container.remove()}}class ql extends _r{constructor(e){super(),this.calendar=e,this.stacked=!1,this.compacted=!1,this.compactWidth=550}layout(e){let t=0,i=0,s=this.calendar._yearPanel.$container,r=this.calendar.$grids,n=this.calendar.$header;t+=e.cssMarginTop()+e.cssMarginBottom(),e.css("height","calc(100% - "+t+"px)"),this.undoCompact(),this.undoStack(),n[0].scrollWidth>e.width()&&this.stack(),(e.width()<this.compactWidth||n[0].scrollWidth>e.width())&&this.compact(),i=n.outerHeight(!0),s.css("height","calc(100% - "+(i+s.cssMarginY())+"px)"),r.css("height","calc(100% - "+(i+r.cssMarginY())+"px)"),this.calendar.layoutSize(),this.calendar.layoutYearPanel()}compact(){if(this.compacted)return;let e=this.calendar.$headerRow2;this.calendar.$title.appendTo(this.calendar.$headerRow2),e.show(),this.compacted=!0}undoCompact(){if(!this.compacted)return;let e=this.calendar.$headerRow2;this.calendar.$title.insertBefore(this.calendar.$commands),e.hide(),this.compacted=!1}stack(){this.stacked||(this.calendar.$commands.children(".calendar-mode").hide(),this.calendar.modesMenu.setVisible(!0),this.stacked=!0)}undoStack(){this.stacked&&(this.calendar.$commands.children(".calendar-mode").show(),this.calendar.modesMenu.setVisible(!1),this.stacked=!1)}}class jl extends ul{constructor(){super()}doAction(){return!!this.prepareDoAction()&&(this.setSelected(!0),this.parentMenu.setSelected(!1),!0)}}class Yl extends ul{constructor(){super(),this.cssClass="calendar-mode-menu",this.displayMode}_init(e){super._init(e),this.calendar=this.parent;let t=[];t.push(x.create("CalendarModeMenu",{parent:this,displayMode:Wl.DisplayMode.DAY,text:this.session.text("ui.CalendarDay")})),t.push(x.create("CalendarModeMenu",{parent:this,displayMode:Wl.DisplayMode.WORK_WEEK,text:this.session.text("ui.CalendarWorkWeek")})),t.push(x.create("CalendarModeMenu",{parent:this,displayMode:Wl.DisplayMode.WEEK,text:this.session.text("ui.CalendarWeek")})),t.push(x.create("CalendarModeMenu",{parent:this,displayMode:Wl.DisplayMode.MONTH,text:this.session.text("ui.CalendarMonth")})),this.addChildActions(t),this.childActions.forEach((function(e){e.on("propertyChange",this._onMenuPropertyChange.bind(this))}),this),this._setDisplayMode(this.displayMode)}setDisplayMode(e){this.setProperty("displayMode",e)}_setDisplayMode(e){this._setProperty("displayMode",e);let t=this.getMenuForMode(this.displayMode);t.setSelected(!0),this.setText(t.text)}getMenuForMode(e){return me.find(this.childActions,(t=>t.displayMode===e))}_onMenuPropertyChange(e){if("selected"===e.propertyName){if(e.newValue){let t=e.source.displayMode;this.setDisplayMode(t),this.calendar.setDisplayMode(t),this.childActions.forEach((t=>{t!==e.source&&t.setSelected(!1)}),this)}}}}class Xl{constructor(e,t){this.from=e,this.to=t}equals(e){return!!e&&(Le.equals(this.from,e.from)&&Le.equals(this.to,e.to))}toString(){return"scout.DateRange[from="+(null===this.from?"null":this.from.toUTCString())+" to="+(null===this.to?"null":this.to.toUTCString())+"]"}static ensure(e){return e?e instanceof Xl?e:new Xl(Le.ensure(e.from),Le.ensure(e.to)):e}}class Jl extends Y{constructor(){super(),this.$yearTitle,this.$yearList,this.selectedDate,this.displayMode,this.alwaysSelectFirstDay}_init(e){super._init(e),this.alwaysSelectFirstDay=e.alwaysSelectFirstDay}_render(){this.$container=this.$parent.appendDiv("year-panel-container"),this.$yearTitle=this.$container.appendDiv("year-panel-title"),this.$yearList=this.$container.appendDiv("year-panel-list")}renderContent(){this.removeContent(),this._drawYear(),this._installScrollbars({axis:"y"}),this.yearRendered=!0,this._colorYear()}get$Scrollable(){return this.$yearList}removeContent(){this._uninstallScrollbars(),this.$yearList.empty(),this.yearRendered=!1}_remove(){this.removeContent(),super._remove()}_drawYear(){let e,t,i,s,r,o,l=this.selectedDate.getFullYear();for(this.$yearTitle.data("year",l).empty(),this.$yearTitle.appendDiv("year-title-item",l-1).data("year-diff",-1).click(this._onYearClick.bind(this)),this.$yearTitle.appendDiv("year-title-item selected",l),this.$yearTitle.appendDiv("year-title-item",l+1).data("year-diff",1).click(this._onYearClick.bind(this)),t=0;t<12;t++)for(e=new Date(l,t,1),i=this.$yearList.appendDiv("year-month").attr("data-title",this._format(e,"MMMM")),s=1;s<=31&&(r=new Date(l,t,s),r.getMonth()===t);s++)o=i.appendDiv("year-day",s).data("date",r),0!==r.getDay()&&6!==r.getDay()||o.addClass("weekend"),1===s&&o.css("margin-left",(r.getDay()+6)%7*o.outerWidth());n()(".year-day",this.$yearList).click(this._onYearDayClick.bind(this)).hover(this._onYearHoverIn.bind(this),this._onYearHoverOut.bind(this)),Yn.update(this.$yearList)}_colorYear(){if(!this.yearRendered)return;n()(".year-day.year-range, .year-day.year-range-day",this.$yearList).removeClass("year-range year-range-day");let e,t,i=this;n()(".year-day",this.$yearList).each((function(){e=n()(this),t=e.data("date"),i.displayMode!==Wl.DisplayMode.DAY&&t>=i.viewRange.from&&t<i.viewRange.to&&e.addClass("year-range"),Le.isSameDay(t,i.selectedDate)&&e.addClass("year-range-day")})),this._scrollYear()}_scrollYear(){let e,t,i,s=n()(".year-range-day",this.$yearList),r=s.parent(),o=s.parent().parent();r[0]&&(e=r[0].offsetTop,t=r.outerHeight()/2,i=o.outerHeight()/2,this.$yearList.animateAVCSD("scrollTop",e+t-i))}_format(e,t){return Le.format(e,this.session.locale,t)}selectDate(e){this.selectedDate=e,this.rendered&&(e&&e.getFullYear()===this.$yearTitle.data("year")||this.renderContent(),this._colorYear())}setDisplayMode(e){e!==this.displayMode&&(this._setProperty("displayMode",e),this.rendered&&this._colorYear())}setViewRange(e){e!==this.viewRange&&(this._setProperty("viewRange",e),this.rendered&&this._colorYear())}_onYearClick(e){let t,i,s,r=ea.DisplayMode,o=n()(e.target).data("year-diff"),l=this.selectedDate.getFullYear(),a=this.selectedDate.getMonth(),h=this.selectedDate.getDate(),d=new Date(l+o,a,h);this.alwaysSelectFirstDay&&(x.isOneOf(this.displayMode,r.WEEK,r.WORK_WEEK,r.CALENDAR_WEEK)?(t=Le.weekInYear(this.selectedDate),i=Le.weekInYear(d),s=t-i,d=Le.shift(d,0,0,7*s),d=Le.shiftToNextOrPrevMonday(d,0)):x.isOneOf(this.displayMode,r.MONTH,r.YEAR)&&(d=new Date(l+o,a,1))),this.selectedDate=d,this.trigger("dateSelect",{date:this.selectedDate})}_onYearDayClick(e){this.selectedDate=n()(".year-hover-day",this.$yearList).data("date"),this.selectedDate&&this.trigger("dateSelect",{date:this.selectedDate})}_onYearHoverIn(e){let t,i,s,r,o=n()(e.target).data("date"),l=o.getFullYear(),a=o.getMonth(),h=o.getDate(),d=(o.getDay()+6)%7;this.displayMode===Wl.DisplayMode.DAY?(t=new Date(l,a,h),i=new Date(l,a,h)):this.displayMode===Wl.DisplayMode.WEEK?(t=new Date(l,a,h-d),i=new Date(l,a,h-d+6)):this.displayMode===Wl.DisplayMode.WORK_WEEK?(t=new Date(l,a,h-d),i=new Date(l,a,h-d+4),o>i&&(o=i)):this.displayMode===Wl.DisplayMode.MONTH?(t=new Date(l,a,1),i=new Date(l,a+1,0)):this.displayMode===ea.DisplayMode.YEAR?(t=new Date(l,a,1),i=t):(t=new Date(l,a,h-d),i=t),this.alwaysSelectFirstDay&&(o=t),n()(".year-day",this.$yearList).each((function(){s=n()(this),r=s.data("date"),r>=t&&r<=i?s.addClass("year-hover"):s.removeClass("year-hover"),Le.isSameDay(o,r)&&s.addClass("year-hover-day")}))}_onYearHoverOut(e){n()(".year-day.year-hover, .year-day.year-hover-day",this.$yearList).removeClass("year-hover year-hover-day")}}class Zl{constructor(){this.widget=null,this.validationFailedTextKey=null,this.validationFailedText=null,this.emptyMandatoryElementsTextKey=null,this.emptyMandatoryElementsText=null,this.invalidElementsTextKey=null,this.invalidElementsText=null,this.saveChangesQuestionTextKey=null,this.askIfNeedSave=!0,this.askIfNeedSaveText=null,this.events=new dt,this.handlers={load:this._defaultLoad.bind(this),save:this._defaultSave.bind(this)}}init(e){x.assertParameter("widget",e.widget),n().extend(this,e),Ai.isNullOrUndefined(this.validationFailedText)&&(this.validationFailedText=this.session().text(this.validationFailedTextKey)),Ai.isNullOrUndefined(this.emptyMandatoryElementsText)&&(this.emptyMandatoryElementsText=this.session().text(this.emptyMandatoryElementsTextKey)),Ai.isNullOrUndefined(this.invalidElementsText)&&(this.invalidElementsText=this.session().text(this.invalidElementsTextKey)),Ai.isNullOrUndefined(this.askIfNeedSaveText)&&(this.askIfNeedSaveText=this.session().text(this.saveChangesQuestionTextKey))}load(){return this._load().then((()=>{this.markAsSaved(),this.events.trigger("postLoad")}))}_load(){return this.handlers.load().then((e=>{this.events.trigger("load")}))}_defaultLoad(){return n().resolvedPromise()}ok(){return this._whenInvalid(this._validate).then((e=>{if(!e)return this.requiresSave()?this._whenInvalid(this._save).then((e=>{if(!e)return this.markAsSaved(),this.close()})):this.close()}))}cancel(){return this.requiresSave()&&this.askIfNeedSave?this._showYesNoCancelMessageBox(this.askIfNeedSaveText,this.ok.bind(this),this.close.bind(this)):this.close()}reset(){return this._reset(),this.load().then((()=>{this.events.trigger("reset")}))}close(){return this._close()}_close(){return this.events.trigger("close"),n().resolvedPromise()}save(){return this._whenInvalid(this._validate).then((e=>{if(!e&&this.requiresSave())return this._whenInvalid(this._save).then((e=>{e||this.markAsSaved()}))}))}_save(){return this.handlers.save().then((e=>(this.events.trigger("save"),e)))}_defaultSave(){return n().resolvedPromise()}markAsSaved(){}requiresSave(){return!1}setAskIfNeedSave(e){this.askIfNeedSave=e}_whenInvalid(e){return e.call(this).then((e=>e&&e.severity!==Ii.Severity.OK?this._showStatusMessageBox(e):n().resolvedPromise(!1))).catch((e=>this._showStatusMessageBox(function(e){if(e instanceof Ii)return e;if("string"==typeof e)return Ii.error({message:e});return Ii.error({message:e.message})}(e))))}_showYesNoCancelMessageBox(e,t,i){return Su.createYesNoCancel(this.widget).withHeader(e).buildAndOpen().then((e=>e===Cu.Buttons.YES?t():e===Cu.Buttons.NO?i():n().resolvedPromise()))}_showStatusMessageBox(e){return Su.createOk(this.widget).withSeverity(e.severity).withHeader(this.validationFailedText).withBody(e.message,!0).buildAndOpen().then((()=>{let t=e.severity===Ii.Severity.ERROR;return n().resolvedPromise(t)}))}_validate(){let e=this._validateElements();return e.isValid()&&(e=this._validateWidget()),n().resolvedPromise(e)}_validateElements(){let e=this._invalidElements(),t=new Ii;return 0===e.missingElements.length&&0===e.invalidElements.length?t.severity=Ii.Severity.OK:(t.severity=Ii.Severity.ERROR,t.message=this._createInvalidElementsMessageHtml(e.missingElements,e.invalidElements),this._revealInvalidElement(me.first(e.missingElements)||me.first(e.invalidElements))),t}_revealInvalidElement(e){}_validateWidget(){return Ii.ok()}_invalidElements(){return{missingElements:[],invalidElements:[]}}_createInvalidElementsMessageHtml(e,t){let i=n()("<div>"),s=e.length>0,r=t.length>0;return s&&o.call(this,i,this.emptyMandatoryElementsText,e,this._missingElementText),s&&r&&i.appendElement("<br>"),r&&o.call(this,i,this.invalidElementsText,t,this._invalidElementText),i.html();function o(e,t,i,s){e.appendDiv().text(t);let r=e.appendElement("<ul>");i.forEach((function(e){r.appendElement("<li>").text(s.call(this,e))}),this)}}_invalidElementText(e){return""}_missingElementText(e){return""}session(){return this.widget.session}handle(e,t){if(-1===["load","save"].indexOf(e))throw new Error("Cannot register handler for unsupported type '"+e+"'");this.handlers[e]=t}on(e,t){return this.events.on(e,t)}off(e,t){return this.events.off(e,t)}}function Ql(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class ea extends Y{constructor(){super(),this.activityMap=[],this.activitySelectable=!1,this.availableDisplayModes=[],this.displayMode=null,this.displayModeOptions={},this.headerVisible=!0,this.label=null,this.resources=[],this.resourceMap=[],this.selectionMode=ea.SelectionMode.MULTI_RANGE,this.selectionRange=new Xl,this.selectedResources=[],this.viewRange={},this.selectedActivity=null,this._resourceTitleWidth=20,this._rangeSelectionStarted=!1,this.startRow=null,this.lastRow=null,this.$container=null,this.$range=null,this.$modes=null,this.$grid=null,this.transformLeft=e=>e,this.transformWidth=(e,t)=>t-e,this.yearPanelVisible=!1,this._addWidgetProperties(["menus"])}_createKeyStrokeContext(){return new Zr}_init(e){super._init(e),this._yearPanel=x.create("YearPanel",{parent:this,alwaysSelectFirstDay:!0}),this._yearPanel.on("dateSelect",this._onYearPanelDateSelect.bind(this)),this._header=x.create("PlannerHeader",{parent:this}),this._header.on("todayClick",this._onTodayClick.bind(this)),this._header.on("yearClick",this._onYearClick.bind(this)),this._header.on("previousClick",this._onPreviousClick.bind(this)),this._header.on("nextClick",this._onNextClick.bind(this)),this._header.on("displayModeClick",this._onDisplayModeClick.bind(this)),this.menuBar=x.create("MenuBar",{parent:this,position:kl.Position.BOTTOM,menuOrder:new ra(this.session,"Planner"),cssClass:"bounded"});for(let e=0;e<this.resources.length;e++)this._initResource(this.resources[e]);this._setDisplayMode(this.displayMode),this._setAvailableDisplayModes(this.availableDisplayModes),this._setViewRange(this.viewRange),this._setSelectedResources(this.selectedResources),this._setSelectedActivity(this.selectedActivity),this._setSelectionRange(this.selectionRange),this._setMenus(this.menus),this._setDisplayModeOptions(this.displayModeOptions),this._tooltipSupport=new fo({parent:this,arrowPosition:50})}_initResource(e){We.applyTo(e,"Resource"),e.activities.forEach((function(e){this._initActivity(e)}),this),this.resourceMap[e.id]=e}_initActivity(e){e.beginTime=Le.parseJsonDate(e.beginTime),e.endTime=Le.parseJsonDate(e.endTime),We.applyTo(e,"Activity"),this.activityMap[e.id]=e}_render(){this.$container=this.$parent.appendDiv("planner");let e=new sa(this);this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(e),this._header.render(),this._yearPanel.render(),this.$grid=this.$container.appendDiv("planner-grid").on("mousedown",".resource-cells",this._onCellMouseDown.bind(this)).on("mousedown",".resource-title",this._onResourceTitleMouseDown.bind(this)).on("contextmenu",".resource-title",this._onResourceTitleContextMenu.bind(this)).on("contextmenu",".planner-activity",this._onActivityContextMenu.bind(this)),this.$scale=this.$container.appendDiv("planner-scale"),this.menuBar.render(),yo.install(this.$grid,{parent:this,selector:".planner-activity",text:function(e){if(this._activityById(e.attr("data-id")))return this._activityById(e.attr("data-id")).tooltipText}.bind(this)}),this._installScrollbars(),this._gridScrollHandler=this._onGridScroll.bind(this),this.$grid.on("scroll",this._gridScrollHandler)}_renderProperties(){super._renderProperties(),this._renderViewRange(),this._renderHeaderVisible(),this._renderYearPanelVisible(!1),this._renderResources(),this._renderSelectedActivity(),this._renderSelectedResources(),setTimeout(this._renderSelectionRange.bind(this))}get$Scrollable(){return this.$grid}_onPreviousClick(e){this._navigateDate(ea.Direction.BACKWARD)}_onNextClick(e){this._navigateDate(ea.Direction.FORWARD)}_navigateDate(e){let t=new Xl(this.viewRange.from,this.viewRange.to),i=ea.DisplayMode;this.displayMode===i.DAY?(t.from=Le.shift(this.viewRange.from,0,0,e),t.to=Le.shift(this.viewRange.to,0,0,e)):x.isOneOf(this.displayMode,i.WEEK,i.WORK_WEEK)?(t.from=Le.shift(this.viewRange.from,0,0,7*e),t.from=Le.ensureMonday(t.from,-1*e),t.to=Le.shift(this.viewRange.to,0,0,7*e)):this.displayMode===i.MONTH||this.displayMode===i.CALENDAR_WEEK?(t.from=Le.shift(this.viewRange.from,0,e,0),t.from=Le.ensureMonday(t.from,-1*e),t.to=Le.shift(this.viewRange.to,0,e,0)):this.displayMode===i.YEAR&&(t.from=Le.shift(this.viewRange.from,0,3*e,0),t.to=Le.shift(this.viewRange.to,0,3*e,0)),this.setViewRange(t)}_onTodayClick(e){let t=this._today(),i=t.getFullYear(),s=t.getMonth(),r=t.getDate(),n=(t.getDay()+6)%7,o=ea.DisplayMode;t=this.displayMode===o.DAY?new Date(i,s,r):this.displayMode===o.YEAR?new Date(i,s,1):new Date(i,s,r-n),this.setViewRangeFrom(t)}_today(){return new Date}_onDisplayModeClick(e){let t=e.displayMode;this.setDisplayMode(t)}_onYearClick(e){this.setYearPanelVisible(!this.yearPanelVisible)}_onYearPanelDateSelect(e){this.setViewRangeFrom(e.date)}_onResourceTitleMouseDown(e){let t=n()(e.target).parent();t.isSelected()&&(3===e.which||1===e.which&&e.ctrlKey)||(this.startRow=t.data("resource"),this.lastRow=this.startRow,this._select())}_onResourceTitleContextMenu(e){this._showContextMenu(e,"Planner.Resource")}_onRangeSelectorContextMenu(e){this._showContextMenu(e,"Planner.Range")}_onActivityContextMenu(e){this._showContextMenu(e,"Planner.Activity")}_showContextMenu(e,t){e.preventDefault(),e.stopPropagation();let i=function(e,t){if(!this.rendered||!this.attached)return;let i=this._filterMenus([t],!0),s=n()(e.currentTarget);0!==i.length&&x.create("ContextMenuPopup",{parent:this,menuItems:i,location:{x:e.pageX,y:e.pageY},$anchor:s}).open()}.bind(this);this.session.onRequestsDone(i,e,t)}_onGridScroll(){this._reconcileScrollPos()}_reconcileScrollPos(){let e=this.$grid.scrollLeft();this.$scale.scrollLeft(e)}_renderRange(){if(!this.viewRange.from||!this.viewRange.to)return;let e,t=new Date(this.viewRange.to.valueOf()-1),i=this.session.text("ui.to"),s=ea.DisplayMode;e=Le.isSameDay(this.viewRange.from,t)?this._dateFormat(this.viewRange.from,"d. MMMM yyyy"):this.viewRange.from.getMonth()===t.getMonth()&&this.viewRange.from.getFullYear()===t.getFullYear()?qt.join(" ",this._dateFormat(this.viewRange.from,"d."),i,this._dateFormat(t,"d. MMMM yyyy")):this.viewRange.from.getFullYear()===t.getFullYear()?this.displayMode===s.YEAR?qt.join(" ",this._dateFormat(this.viewRange.from,"MMMM"),i,this._dateFormat(t,"MMMM yyyy")):qt.join(" ",this._dateFormat(this.viewRange.from,"d. MMMM"),i,this._dateFormat(t,"d. MMMM yyyy")):this.displayMode===s.YEAR?qt.join(" ",this._dateFormat(this.viewRange.from,"MMMM yyyy"),i,this._dateFormat(t,"MMMM yyyy")):qt.join(" ",this._dateFormat(this.viewRange.from,"d. MMMM yyyy"),i,this._dateFormat(t,"d. MMMM yyyy")),n()(".planner-select",this._header.$range).text(e)}_renderScale(){if(!this.viewRange.from||!this.viewRange.to)return;let e,t=this,i=ea.DisplayMode;this.$scale.empty(),this.$grid.children(".planner-small-scale-item-line").remove(),this.$grid.children(".planner-large-scale-item-line").remove(),this.$scaleTitle=this.$scale.appendDiv("planner-scale-title"),this._renderLabel(),this.$timeline=this.$scale.appendDiv("timeline"),this.$timelineLarge=this.$timeline.appendDiv("timeline-large"),this.$timelineSmall=this.$timeline.appendDiv("timeline-small"),this.displayMode===i.DAY?this._renderDayScale():x.isOneOf(this.displayMode,i.WORK_WEEK,i.WEEK)?this._renderWeekScale():this.displayMode===i.MONTH?this._renderMonthScale():this.displayMode===i.CALENDAR_WEEK?this._renderCalendarWeekScale():this.displayMode===i.YEAR&&this._renderYearScale();let s=this.$timelineSmall.children(".scale-item"),r=this.$timelineLarge.children(".scale-item");if(e=100/s.length,r.each((function(){let i=n()(this),s=t.$grid.prependDiv("planner-large-scale-item-line");i.css("width",i.data("count")*e+"%").data("scale-item-line",s),i.prependDiv("planner-large-scale-item-line").css("left",0)})),s.each((function(i){let s=n()(this);if(s.css("width",e+"%"),!s.data("first")){let e=t.$grid.prependDiv("planner-small-scale-item-line");s.data("scale-item-line",e),s.prependDiv("planner-small-scale-item-line").css("left",0)}})),this.beginScale=this.$timelineSmall.children().first().data("date-from").valueOf(),this.endScale=this.$timelineSmall.children().last().data("date-to").valueOf(),x.isOneOf(this.displayMode,i.WORK_WEEK,i.WEEK)){let e=this.displayModeOptions[this.displayMode],t=(e.interval,e.firstHourOfDay),i=e.lastHourOfDay;this.transformLeft=(o=this.viewRange.from,l=this.viewRange.to,a=t,h=i,e=>{e=new Date(e),o=new Date(o);let t=(l=new Date(l))-o,i=Le.compareDays(e,o),s=Le.compareDays(l,o),r=36e5*i*24,n=24/(h-a+1),d=i/s;return e.getHours()<a?100*(n/t+d):e.getHours()>h?(d=(i+1)/s,100*(n/t+d)):100*((e.valueOf()-(o.valueOf()+36e5*a)-r)*n/t+d)}),this.transformWidth=((e,t,i,s,r)=>function(r,n){let o=t-e,l=new Mi(new Date(r),new Date(n)),a=this._findHiddenRangesInWeekMode();return l.subtractAll(a).reduce(((e,t)=>e+t.size()),0)*(24/(s-i+1))/o*100})(this.viewRange.from,this.viewRange.to,t,i)}else this.transformLeft=((e,t)=>i=>(i-e)/(t-e)*100)(this.beginScale,this.endScale),this.transformWidth=((e,t)=>(i,s)=>(s-i)/(t-e)*100)(this.beginScale,this.endScale);var o,l,a,h}_findHiddenRangesInWeekMode(){if(!x.isOneOf(this.displayMode,ea.DisplayMode.WORK_WEEK,ea.DisplayMode.WEEK))return[];let e,t=[],i=this.displayModeOptions[this.displayMode],s=i.firstHourOfDay,r=i.lastHourOfDay,n=new Date(this.viewRange.from.valueOf());for(;n<this.viewRange.to;)e=new Mi(new Date(n.valueOf()),Le.shiftTime(n,s)),e.size()>0&&t.push(e),e=new Mi(Le.shiftTime(n,r+1),Le.shiftTime(n,24)),e.size()>0&&t.push(e),n.setHours(0),n.setMinutes(0),n.setDate(n.getDate()+1);return t}_renderDayScale(){let e,t,i,s=!0,r=new Date(this.viewRange.from.valueOf()),n=this.displayModeOptions[this.displayMode],o=n.interval,l=n.labelPeriod,a=n.firstHourOfDay,h=n.lastHourOfDay;for(o=Math.min(o,60*(h-a+1));r<this.viewRange.to;)r.getHours()>=a&&r.getHours()<=h?(e=!1,(0===r.getMinutes()||s)&&(t=this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"HH")).data("count",0),e=!0),i=this.$timelineSmall.appendDiv("scale-item",this._dateFormat(r,":mm")).data("date-from",new Date(r.valueOf())),r.getMinutes()%(o*l)!=0&&i.addClass("label-invisible"),r=Le.shiftTime(r,0,o,0),this._incrementTimelineScaleItems(t,i,r,e),s=!1):r=Le.shiftTime(r,0,o,0)}_renderWeekScale(){let e,t,i,s=!0,r=new Date(this.viewRange.from.valueOf()),n=this.displayModeOptions[this.displayMode],o=n.interval,l=n.labelPeriod,a=n.firstHourOfDay,h=n.lastHourOfDay;for(o=Math.min(o,60*(h-a+1));r<this.viewRange.to;)e=!1,r.getHours()<a&&r.setHours(a),(r.getHours()===a&&0===r.getMinutes()||s)&&(t=0===r.getMonth()||s?this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"d. MMMM yyyy")).data("count",0):1===r.getDate()?this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"d. MMMM")).data("count",0):this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"d.")).data("count",0),e=!0),i=this.$timelineSmall.appendDiv("scale-item",this._dateFormat(r,"HH:mm")).data("date-from",new Date(r.valueOf())),(60*(r.getHours()-a)+r.getMinutes())%(o*l)!=0&&i.addClass("label-invisible"),r=Le.shiftTime(r,0,o,0,0),this._incrementTimelineScaleItems(t,i,r,e),s=!1,r.getHours()>h&&(r.setHours(0),r.setMinutes(0),r.setDate(r.getDate()+1))}_renderMonthScale(){let e,t,i,s=!0,r=new Date(this.viewRange.from.valueOf()),n=this.displayModeOptions[this.displayMode].labelPeriod;for(;r<this.viewRange.to;)e=!1,(1===r.getDate()||s)&&(t=0===r.getMonth()||s?this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"MMMM yyyy")).data("count",0):this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"MMMM")).data("count",0),e=!0),i=this.$timelineSmall.appendDiv("scale-item",this._dateFormat(r,"dd")).data("date-from",new Date(r.valueOf())),r.getDate()%n!=0&&i.addClass("label-invisible"),r=Le.shift(r,0,0,1),this._incrementTimelineScaleItems(t,i,r,e),s=!1}_renderCalendarWeekScale(){let e,t,i,s=!0,r=new Date(this.viewRange.from.valueOf()),n=this.displayModeOptions[this.displayMode].labelPeriod;for(;r<this.viewRange.to;)e=!1,(r.getDate()<8||!0===s)&&(0===r.getMonth()||!0===s?r.getDate()>11?(t=this.$timelineLarge.appendDiv("scale-item").html(" ").data("count",0),s=2):(t=this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"MMMM yyyy")).data("count",0),s=!1):2===s?(t=this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"MMMM yyyy")).data("count",0),s=!1):t=this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"MMMM")).data("count",0),e=!0),i=this.$timelineSmall.appendDiv("scale-item",Le.weekInYear(r)).data("date-from",new Date(r.valueOf())).data("tooltipText",this._scaleTooltipText.bind(this)),this._tooltipSupport.install(i),Le.weekInYear(r)%n!=0&&i.addClass("label-invisible"),r.setDate(r.getDate()+7),this._incrementTimelineScaleItems(t,i,r,e)}_renderYearScale(){let e,t,i,s=!0,r=new Date(this.viewRange.from.valueOf()),n=this.displayModeOptions[this.displayMode].labelPeriod;for(;r<this.viewRange.to;)e=!1,(0===r.getMonth()||s)&&(t=this.$timelineLarge.appendDiv("scale-item",this._dateFormat(r,"yyyy")).data("count",0),e=!0),i=this.$timelineSmall.appendDiv("scale-item",this._dateFormat(r,"MMMM")).data("date-from",new Date(r.valueOf())),r.getMonth()%n!=0&&i.addClass("label-invisible"),r=Le.shift(r,0,1,0),this._incrementTimelineScaleItems(t,i,r,e),s=!1}_incrementTimelineScaleItems(e,t,i,s){e.data("count",e.data("count")+1),t.data("date-to",new Date(i.valueOf())).data("first",s)}_scaleTooltipText(e){let t=" "+this.session.text("ui.to")+" ",i=new Date(e.data("date-from").valueOf()),s=new Date(e.data("date-to").valueOf()-1);return i.getMonth()===s.getMonth()?this._dateFormat(i,"d.")+t+this._dateFormat(s,"d. MMMM yyyy"):i.getFullYear()===s.getFullYear()?this._dateFormat(i,"d. MMMM")+t+this._dateFormat(s,"d. MMMM yyyy"):this._dateFormat(i,"d. MMMM yyyy")+t+this._dateFormat(s,"d. MMMM yyyy")}_removeAllResources(){this.resources.forEach((e=>{e.$resource.remove()}))}_renderResources(e){let t,i,s="";for(e=e||this.resources,t=0;t<e.length;t++)i=e[t],s+=this._buildResourceHtml(i,this.$grid);n()(s).appendTo(this.$grid),this.$grid.children(".planner-resource").each(((e,t)=>{let s=n()(t);i=this._resourceById(s.attr("data-id")),this._linkResource(s,i),this._linkActivitiesForResource(i)}))}_linkResource(e,t){e.data("resource",t),t.$resource=e,t.$cells=e.children(".resource-cells")}_linkActivity(e,t){e.data("activity",t),t.$activity=e}_rerenderActivities(e){(e=e||this.resources).forEach((function(e){this._removeActivitiesForResource(e),this._renderActivititesForResource(e)}),this)}_buildResourceHtml(e){let t='<div class="planner-resource" data-id="'+e.id+'">';return t+='<div class="resource-title">'+qt.encode(e.resourceCell.text||"")+"</div>",t+='<div class="resource-cells">'+this._buildActivitiesHtml(e)+"</div>",t+="</div>",t}_renderActivititesForResource(e){e.$cells.html(this._buildActivitiesHtml(e)),this._linkActivitiesForResource(e)}_linkActivitiesForResource(e){e.$cells.children(".planner-activity").each(((e,t)=>{let i=n()(t),s=this._activityById(i.attr("data-id"));this._linkActivity(i,s)}))}_buildActivitiesHtml(e){let t="";return e.activities.forEach((function(e){e.beginTime.valueOf()>=this.endScale||e.endTime.valueOf()<=this.beginScale||(t+=this._buildActivityHtml(e))}),this),t}_removeActivitiesForResource(e){e.activities.forEach((e=>{e.$activity&&(e.$activity.remove(),e.$activity=null)}),this)}_buildActivityHtml(e){let t=100-Math.min(100*e.level,100),i=ts.modelToCssColor(e.backgroundColor),s=ts.modelToCssColor(e.foregroundColor),r=ts.modelToCssColor(e.levelColor),n=e.beginTime.valueOf(),o=e.endTime.valueOf();n=Math.max(n,this.beginScale),o=Math.min(o,this.endScale);let l="planner-activity"+(e.cssClass?" "+e.cssClass:""),a="left: calc("+this.transformLeft(n)+"% + 2px);";a+=" width: calc("+this.transformWidth(n,o)+"% - 4px);",r&&(a+=" background-color: "+r+";",a+=" border-color: "+r+";"),!r&&i&&(a+=" background-color: "+i+";",a+=" border-color: "+i+";"),s&&(a+=" color: "+s+";");let h="planner-activity-level"+(e.cssClass?" "+e.cssClass:""),d=ts.get(h,"background-color").backgroundColor;a+=" background-image: linear-gradient(to bottom, "+d+" 0%, "+d+" "+t+"%, transparent "+t+"%, transparent 100% );";let u="<div";return u+=' class="'+l+'"',u+=' style="'+a+'"',u+=' data-id="'+e.id+'"',u+=">"+qt.encode(e.text||"")+"</div>",u}_onCellMouseDown(e){let t,i,s=n()(e.target),r=ea.SelectionMode,o=3===e.which||1===e.which&&e.ctrlKey;this.activitySelectable?(!o&&this.$selector&&this.$selector.hide(),t=this.$grid.elementFromPoint(e.pageX,e.pageY),!o&&this.$selector&&this.$selector.show(),t.hasClass("planner-activity")?(i=t.parent().parent(),this.selectResources([i.data("resource")]),this.selectActivity(t.data("activity")),this.selectRange(new Xl)):this.selectActivity(null)):this.selectActivity(null),this.selectionMode!==r.NONE&&(s.hasClass("selector")&&o||(this.selectedActivity||this._startRangeSelection(e.pageX,e.pageY),this._cellMousemoveHandler=this._onCellMousemove.bind(this,e),s.document().on("mousemove",this._cellMousemoveHandler).one("mouseup",this._onDocumentMouseUp.bind(this))))}_startRangeSelection(e,t){this.startRow=this._findRow(t),this.lastRow=this.startRow,this.startRange=this._findScale(e),this.lastRange=this.startRange,this._select(!0),this._rangeSelectionStarted=!0}_prepareRangeSelectionByMousemove(e,t){let i=e.pageX-t.pageX,s=e.pageY-t.pageY,r=ea.RANGE_SELECTION_MOVE_THRESHOLD;if(Math.abs(i)>=r)return!0;let n=this._findRow(e.pageY),o=this._findRow(t.pageY);return Math.abs(s)>=r&&this.selectionMode===ea.SelectionMode.MULTI_RANGE&&n!==o}_onCellMousemove(e,t){if(this.selectedActivity&&!this._rangeSelectionStarted){if(!this._prepareRangeSelectionByMousemove(e,t))return;this._startRangeSelection(e.pageX,e.pageY)}let i=this._findRow(t.pageY);i&&(this.lastRow=i);let s=this._findScale(t.pageX);s&&(this.lastRange=s),this._select(!0)}_onResizeMouseDown(e){let t,i=n()(e.target);return this.startRow=this.selectedResources[0],this.lastRow=this.selectedResources[this.selectedResources.length-1],this.startRange=x.nvl(this._findScaleByFromDate(this.selectionRange.from),new Mi(this.selectionRange.from.getTime(),this.selectionRange.from.getTime())),this.lastRange=x.nvl(this._findScaleByToDate(this.selectionRange.to),new Mi(this.selectionRange.to.getTime(),this.selectionRange.to.getTime())),i.hasClass("selector-resize-left")&&(t=this.startRange,this.startRange=this.lastRange,this.lastRange=t),i.body().addClass("col-resize"),this._resizeMousemoveHandler=this._onResizeMousemove.bind(this),i.document().on("mousemove",this._resizeMousemoveHandler).one("mouseup",this._onDocumentMouseUp.bind(this)),!1}_onResizeMousemove(e){if(!this.rendered)return;let t=this._findScale(e.pageX);t&&(this.lastRange=t),this._select(!0)}_onDocumentMouseUp(e){let t=n()(e.target);t.body().removeClass("col-resize"),this._cellMousemoveHandler&&(t.document().off("mousemove",this._documentMousemoveHandler),this._cellMousemoveHandler=null),this._resizeMousemoveHandler&&(t.document().off("mousemove",this._resizeMousemoveHandler),this._resizeMousemoveHandler=null),this._rangeSelectionStarted&&(this._rangeSelectionStarted=!1,this.rendered&&this._select())}_select(e){if(!this.startRow||!this.lastRow)return;let t=!(!this.startRange||!this.lastRange),i=this.startRow.$resource,s=this.lastRow.$resource;this.selectionMode===ea.SelectionMode.SINGLE_RANGE&&(this.lastRow=this.startRow,s=this.startRow.$resource);let r=i[0].offsetTop<=s[0].offsetTop?i:s,o=i[0].offsetTop>s[0].offsetTop?i:s,l=n()(".planner-resource",this.$grid).toArray(),a=r[0].offsetTop,h=o[0].offsetTop;for(let e=l.length-1;e>=0;e--){let t=l[e];(t.offsetTop<a&&t.offsetTop<h||t.offsetTop>a&&t.offsetTop>h)&&l.splice(e,1)}if(this.selectResources(l.map((e=>n()(e).data("resource"))),!e),this.selectActivity(null),t){let t=Math.min(this.lastRange.from,this.startRange.from),i=Math.max(this.lastRange.to,this.startRange.to),s=new Xl(new Date(t),new Date(i));s=this._adjustSelectionRange(s),this.selectRange(s,!e)}}_adjustSelectionRange(e){let t=e.from.getTime(),i=e.to.getTime(),s=0,r=this.displayModeOptions[this.displayMode];r.interval>0&&r.minSelectionIntervalCount>0&&(s=r.minSelectionIntervalCount*r.interval*6e4);let n=r.lastHourOfDay,o=Le.shiftTime(Le.trunc(e.from),n+1),l=this._visibleViewRange();return this.lastRange.from<this.startRange.from?i-s>=l.from.getTime()?t=Math.min(t,i-s):(t=l.from.getTime(),i=Math.max(i,Math.min(t+s,l.to.getTime()))):t+s<=l.to.getTime()?(i=Math.max(i,Math.max(t+s,l.from.getTime())),i>=o.getTime()&&new Mi(t,i).size()===s&&(i=o.getTime(),t=Math.min(t,i-s))):(i=l.to.getTime(),t=Math.min(t,i-s)),new Xl(new Date(t),new Date(i))}_findRow(e){let t,i=pr.offsetBounds(this.$grid),s=i.x+10;return e=Math.min(Math.max(e,0),i.y+i.height-1),t=this.$container.elementFromPoint(s,e,".planner-resource"),t.length>0?t.data("resource"):null}_findScale(e){let t,i=pr.offsetBounds(this.$grid),s=this.$scale.offset().top+.75*this.$scale.height();return e=Math.min(Math.max(e,0),i.x+i.width-1),t=this.$container.elementFromPoint(e,s,".scale-item"),t.length>0?new Xl(t.data("date-from").valueOf(),t.data("date-to").valueOf()):null}_findScaleByFromDate(e){return this._findScaleByFunction(((t,i)=>{if(n()(i).data("date-from").getTime()===e.getTime())return!0}))}_findScaleByToDate(e){return this._findScaleByFunction(((t,i)=>{if(n()(i).data("date-to").getTime()===e.getTime())return!0}))}_findScaleByFunction(e){let t=this.$timelineSmall.children(".scale-item").filter(e);return t.length?new Xl(t.data("date-from").valueOf(),t.data("date-to").valueOf()):null}_visibleViewRange(){let e=this.$timelineSmall.children(".scale-item");return new Mi(e.first().data("date-from"),e.last().data("date-to"))}_dateFormat(e,t){let i=new Date(e.valueOf());return new eo(this.session.locale,t).format(i)}_renderViewRange(){this._renderRange(),this._renderScale(),this.invalidateLayoutTree()}_renderHeaderVisible(){this._header.setVisible(this.headerVisible),this.invalidateLayoutTree()}_renderYearPanelVisible(e){let t;this.yearPanelVisible&&this._yearPanel.renderContent(),n()(".calendar-toggle-year",this.$modes).select(this.yearPanelVisible),t=this.yearPanelVisible?210:0,this._yearPanel.$container.animate({width:t},{duration:e?500:0,progress:this._onYearPanelWidthChange.bind(this),complete:this._afterYearPanelWidthChange.bind(this)})}_onYearPanelWidthChange(){if(!this._yearPanel.$container)return;let e=this._yearPanel.$container.outerWidth();this.$grid.css("width","calc(100% - "+e+"px)"),this.$scale.css("width","calc(100% - "+e+"px)"),this.revalidateLayout()}_afterYearPanelWidthChange(){this.yearPanelVisible||this._yearPanel.removeContent()}_setMenus(e){this.updateKeyStrokes(e,this.menus),this._setProperty("menus",e),this._updateMenuBar()}_updateMenuBar(){let e=this._filterMenus(["Planner.EmptySpace","Planner.Resource","Planner.Activity","Planner.Range"],!1,!0);this.menuBar.setMenuItems(e)}_removeMenus(){}_filterMenus(e,t,i){return(e=e||[]).indexOf("Planner.Resource")>-1&&0===this.selectedResources.length&&me.remove(e,"Planner.Resource"),e.indexOf("Planner.Activity")>-1&&!this.selectedActivity&&me.remove(e,"Planner.Activity"),e.indexOf("Planner.Range")>-1&&!this.selectionRange.from&&!this.selectionRange.to&&me.remove(e,"Planner.Range"),al.filter(this.menus,e,t,i)}setDisplayModeOptions(e){this.setProperty("displayModeOptions",e)}_setDisplayModeOptions(e){e&&this._adjustHours(e),this.displayModeOptions=e}_adjustHours(e){function t(e){return e<0?0:e>23?23:e}Ai.values(e).forEach((e=>{e.firstHourOfDay&&(e.firstHourOfDay=t(e.firstHourOfDay)),e.lastHourOfDay&&(e.lastHourOfDay=t(e.lastHourOfDay))}))}_renderDisplayModeOptions(){this._renderRange(),this._renderScale(),this._rerenderActivities(),this._select(),this.invalidateLayoutTree()}_renderAvailableDisplayModes(){}_renderDisplayMode(){}_setViewRange(e){e=Xl.ensure(e),this._setProperty("viewRange",e),this._yearPanel.setViewRange(this.viewRange),this._yearPanel.selectDate(this.viewRange.from)}_setDisplayMode(e){this._setProperty("displayMode",e),this._yearPanel.setDisplayMode(this.displayMode),this._header.setDisplayMode(this.displayMode)}_setAvailableDisplayModes(e){this._setProperty("availableDisplayModes",e),this._header.setAvailableDisplayModes(this.availableDisplayModes)}_setSelectionRange(e){e=Xl.ensure(e),this._setProperty("selectionRange",e),this.session.onRequestsDone(this._updateMenuBar.bind(this))}_setSelectedResources(e){"string"==typeof e[0]&&(e=this._resourcesByIds(e)),this.rendered&&this._removeSelectedResources(),this._setProperty("selectedResources",e),this.session.onRequestsDone(this._updateMenuBar.bind(this))}_removeSelectedResources(){this.selectedResources.forEach((e=>{e.$resource.select(!1)}))}_renderSelectedResources(){this.selectedResources.forEach((e=>{e.$resource.select(!0)}))}_renderActivitySelectable(){this.selectedActivity&&this.selectedActivity.$activity&&this.selectedActivity.$activity.toggleClass("selected",this.activitySelectable)}_renderSelectionMode(){this.selectionMode===ea.SelectionMode.NONE?this.$selector&&(this.$selector.remove(),this.$highlight.remove()):this._renderSelectionRange()}_renderSelectionRange(){let e,t,i=this.selectionRange.from,s=this.selectionRange.to,r=this.selectedResources[0],n=this.selectedResources[this.selectedResources.length-1];if(this.$selector&&(this.$selector.remove(),this.$highlight.remove()),!(r&&n&&this.selectionRange.from&&this.selectionRange.to))return;e=r.$resource,t=n.$resource,i=Math.max(i,this.beginScale),s=Math.min(s,this.endScale);let o=e[0].offsetTop<=t[0].offsetTop?e:t;this.$selector=o.children(".resource-cells").appendDiv("selector"),this.$selector.cssHeight(e.outerHeight()+Math.abs(t[0].offsetTop-e[0].offsetTop));let l=this.$selector.appendDiv("selector-resize-left").mousedown(this._onResizeMouseDown.bind(this)),a=this.$selector.appendDiv("selector-resize-right").mousedown(this._onResizeMouseDown.bind(this));this.$selector.css("left","calc("+this.transformLeft(i)+"% - "+l.cssWidth()+"px)").css("width","calc("+this.transformWidth(i,s)+"% + "+(l.cssWidth()+a.cssWidth())+"px)").on("contextmenu",this._onRangeSelectorContextMenu.bind(this)),this.$highlight=this.$timelineSmall.prependDiv("highlight");let h=this.$selector.cssLeft()+l.cssWidth()+this.$scaleTitle.cssWidth(),d=this.$selector.cssWidth()-(l.cssWidth()+a.cssWidth());this.$highlight.cssLeft(h).cssWidth(d)}_setSelectedActivity(e){"string"==typeof e&&(e=this._activityById(e)),this.rendered&&this._removeSelectedActivity(),this._setProperty("selectedActivity",e),this.session.onRequestsDone(this._updateMenuBar.bind(this))}_removeSelectedActivity(){this.selectedActivity&&this.selectedActivity.$activity&&this.selectedActivity.$activity.removeClass("selected")}_renderSelectedActivity(){this.selectedActivity&&this.selectedActivity.$activity&&this.selectedActivity.$activity.addClass("selected")}_renderLabel(){let e=this.label||"";this.$scaleTitle&&this.$scaleTitle.text(e)}_resourcesByIds(e){return e.map(this._resourceById.bind(this))}_activityById(e){return this.activityMap[e]}_resourceById(e){return this.resourceMap[e]}setDisplayMode(e){this.setProperty("displayMode",e),this.startRange=null,this.lastRange=null}layoutYearPanel(){this.yearPanelVisible&&(Yn.update(this._yearPanel.$yearList),this._yearPanel._scrollYear())}setYearPanelVisible(e){this.yearPanelVisible!==e&&(this._setProperty("yearPanelVisible",e),this.rendered&&this._renderYearPanelVisible(!0))}setViewRangeFrom(e){let t=Le.compareDays(this.viewRange.to,this.viewRange.from),i=new Xl(this.viewRange.from,this.viewRange.to);i.from=e,i.to=Le.shift(e,0,0,t),this.setViewRange(i)}setViewRange(e){this.viewRange!==e&&(this._setViewRange(e),this.rendered&&(this._renderViewRange(),this._rerenderActivities(),this._renderSelectedActivity(),this.validateLayoutTree(),this._reconcileScrollPos()))}selectRange(e){e&&e.equals(this.selectionRange)||this.setProperty("selectionRange",e)}selectActivity(e){this.setProperty("selectedActivity",e)}selectResources(e){me.equals(e,this.selectedResources)||(e=(e=me.ensure(e)).slice(),this.setProperty("selectedResources",e),this.trigger("resourcesSelected",{resources:e}),this.rendered&&this._renderSelectionRange())}deselectResources(e){let t=!1;e=me.ensure(e);let i=this.selectedResources.slice();return me.removeAll(i,e)&&(this.selectResources(i),t=!0),t}insertResources(e){e.forEach((e=>{this._initResource(e),this.resources.push(e)})),this.rendered&&(this._renderResources(e),this.invalidateLayoutTree())}deleteResources(e){this.deselectResources(e)&&this.selectRange(new Xl),e.forEach((e=>{me.remove(this.resources,e),delete this.resourceMap[e.id],e.activities.forEach((e=>{delete this.activityMap[e.id]})),this.rendered&&(e.$resource.remove(),delete e.$resource)})),this.invalidateLayoutTree()}deleteAllResources(){this.rendered&&(this._removeAllResources(),this.invalidateLayoutTree()),this.resources=[],this.resourceMap={},this.activityMap={},this.selectResources([]),this.selectRange(new Xl)}updateResources(e){e.forEach((e=>{let t=this.resourceMap[e.id];if(!t)throw new Error("Update event received for non existing resource. ResourceId: "+e.id);if(this._initResource(e),me.replace(this.resources,t,e),me.replace(this.selectedResources,t,e),this.rendered&&t.$resource){let i=n()(this._buildResourceHtml(e));t.$resource.replaceWith(i),i.css("min-width",t.$resource.css("min-width")),this._linkResource(i,e),this._linkActivitiesForResource(e)}}))}}Ql(ea,"Direction",{BACKWARD:-1,FORWARD:1}),Ql(ea,"DisplayMode",{DAY:1,WEEK:2,MONTH:3,WORK_WEEK:4,CALENDAR_WEEK:5,YEAR:6}),Ql(ea,"SelectionMode",{NONE:0,SINGLE_RANGE:1,MULTI_RANGE:2}),Ql(ea,"RANGE_SELECTION_MOVE_THRESHOLD",10);class ta extends j{constructor(){super(),this._addRemoteProperties(["displayMode","viewRange","selectionRange","selectedActivity"])}_orderPropertyNamesOnSync(e){return Object.keys(e).sort(this._createPropertySortFunc(ta.PROPERTIES_ORDER))}_sendViewRange(e){this._send("property",{viewRange:Le.toJsonDateRange(e)})}_sendSelectedActivity(){let e=null;this.widget.selectedActivity&&(e=this.widget.selectedActivity.id),this._send("property",{selectedActivity:e})}_sendSelectionRange(){let e=Le.toJsonDateRange(this.widget.selectionRange);this._send("property",{selectionRange:e})}_onWidgetResourcesSelected(e){this._sendResourcesSelected()}_sendResourcesSelected(){let e=this.widget.selectedResources.map((e=>e.id));this._send("resourcesSelected",{resourceIds:e})}_onWidgetEvent(e){"resourcesSelected"===e.type?this._onWidgetResourcesSelected(e):super._onWidgetEvent(e)}_onResourcesInserted(e){this.widget.insertResources(e)}_onResourcesDeleted(e){let t=this.widget._resourcesByIds(e);this.addFilterForWidgetEventType("resourcesSelected"),this.addFilterForProperties({selectionRange:new Xl}),this.widget.deleteResources(t)}_onAllResourcesDeleted(){this.addFilterForWidgetEventType("resourcesSelected"),this.addFilterForProperties({selectionRange:new Xl}),this.widget.deleteAllResources()}_onResourcesSelected(e){let t=this.widget._resourcesByIds(e);this.addFilterForWidgetEventType("resourcesSelected"),this.widget.selectResources(t,!1)}_onResourcesUpdated(e){this.widget.updateResources(e)}onModelAction(e){"resourcesInserted"===e.type?this._onResourcesInserted(e.resources):"resourcesDeleted"===e.type?this._onResourcesDeleted(e.resourceIds):"allResourcesDeleted"===e.type?this._onAllResourcesDeleted():"resourcesSelected"===e.type?this._onResourcesSelected(e.resourceIds):"resourcesUpdated"===e.type?this._onResourcesUpdated(e.resources):super.onModelAction(e)}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(ta,"PROPERTIES_ORDER",["displayMode","viewRange"]);class ia extends Y{constructor(){super(),this.availableDisplayModes=[]}_render(){this.$container=this.$parent.appendDiv("planner-header"),this.$range=this.$container.appendDiv("planner-range"),this.$range.appendDiv("planner-previous").on("click",this._onPreviousClick.bind(this)),this.$range.appendDiv("planner-today",this.session.text("ui.CalendarToday")).on("click",this._onTodayClick.bind(this)),this.$range.appendDiv("planner-next").on("click",this._onNextClick.bind(this)),this.$range.appendDiv("planner-select"),this.$commands=this.$container.appendDiv("planner-commands"),this._renderAvailableDisplayModes(),this._renderDisplayMode()}setAvailableDisplayModes(e){this.setProperty("availableDisplayModes",e)}_renderAvailableDisplayModes(){let e=ea.DisplayMode;this.$commands.empty(),this.availableDisplayModes.length>1&&(this.availableDisplayModes.indexOf(e.DAY)>-1&&this.$commands.appendDiv("planner-mode",this.session.text("ui.CalendarDay")).attr("data-mode",e.DAY).on("click",this._onDisplayModeClick.bind(this)),this.availableDisplayModes.indexOf(e.WORK_WEEK)>-1&&this.$commands.appendDiv("planner-mode",this.session.text("ui.CalendarWorkWeek")).attr("data-mode",e.WORK_WEEK).on("click",this._onDisplayModeClick.bind(this)),this.availableDisplayModes.indexOf(e.WEEK)>-1&&this.$commands.appendDiv("planner-mode",this.session.text("ui.CalendarWeek")).attr("data-mode",e.WEEK).on("click",this._onDisplayModeClick.bind(this)),this.availableDisplayModes.indexOf(e.MONTH)>-1&&this.$commands.appendDiv("planner-mode",this.session.text("ui.CalendarMonth")).attr("data-mode",e.MONTH).on("click",this._onDisplayModeClick.bind(this)),this.availableDisplayModes.indexOf(e.CALENDAR_WEEK)>-1&&this.$commands.appendDiv("planner-mode",this.session.text("ui.CalendarCalendarWeek")).attr("data-mode",e.CALENDAR_WEEK).on("click",this._onDisplayModeClick.bind(this)),this.availableDisplayModes.indexOf(e.YEAR)>-1&&this.$commands.appendDiv("planner-mode",this.session.text("ui.CalendarYear")).attr("data-mode",e.YEAR).on("click",this._onDisplayModeClick.bind(this)));let t=this.$commands.children(".planner-mode");t.first().addClass("first"),t.last().addClass("last"),1===t.length&&(t.first().addClass("disabled"),t.off("click")),this.$commands.appendDiv("planner-toggle-year").on("click",this._onYearClick.bind(this))}setDisplayMode(e){this.setProperty("displayMode",e)}_renderDisplayMode(){n()(".planner-mode",this.$commands).select(!1),n()('[data-mode="'+this.displayMode+'"]',this.$commands).select(!0)}_onTodayClick(e){this.trigger("todayClick")}_onNextClick(e){this.trigger("nextClick")}_onPreviousClick(e){this.trigger("previousClick")}_onYearClick(e){this.trigger("yearClick")}_onDisplayModeClick(e){let t=n()(e.target).data("mode");this.setDisplayMode(t),this.trigger("displayModeClick",{displayMode:this.displayMode})}}class sa extends _r{constructor(e){super(),this.planner=e}layout(e){let t,i=this.planner._header.$container,s=this.planner.$scale,r=this.planner.$grid,n=this.planner.menuBar,o=this.planner._yearPanel.$container,l=0,a=0,h=0,d=0,u=0,c=fr.get(n.$container),p=this.planner.htmlComp,g=p.availableSize().subtract(p.insets());n.$container.isVisible()&&(t=Il.size(c,g),c.setSize(t),l=t.height,"top"===n.position&&(u+=l)),i.isVisible()&&(u+=pr.size(i).height),s.css("top",u),d+=u+pr.size(s).height,r.css("top",d),h=u+o.cssMarginY(),a=d+r.cssMarginY(),n.$container.isVisible()&&"bottom"===n.position&&(h+=l,a+=l),o.css("height","calc(100% - "+h+"px)"),r.css("height","calc(100% - "+a+"px)"),this._updateMinWidth(),this._layoutScaleLines(),Yn.update(this.planner.$grid,!0),this.planner.layoutYearPanel()}_updateMinWidth(){let e=this._minWidth(),t=this.planner.$scaleTitle,i=this.planner.$timeline;i&&(i.css("min-width",e),e+=t.outerWidth(!0),this.planner.resources.forEach((t=>{t.$resource.css("min-width",e)})))}_layoutScaleLines(){let e,t,i,s,r=this.planner.$timelineSmall,o=this.planner.$timelineLarge;r&&(t=r.children(".scale-item"),i=o.children(".scale-item"),i.each((function(){n()(this).data("scale-item-line").cssHeight(0)})),t.each((function(){let e=n()(this).data("scale-item-line");e&&e.cssHeight(0)})),Yn.reset(this.planner.$grid),e=this.planner.$grid[0].scrollHeight,s=this.planner.$scale[0].scrollLeft,i.each((function(){let t=n()(this);t.data("scale-item-line").cssLeft(s+t.position().left).cssHeight(e)})),t.each((function(){let t=n()(this),i=t.data("scale-item-line");i&&i.cssLeft(s+t.position().left).cssHeight(e)})))}_minWidth(){let e=this.planner.$timelineLarge.children(".scale-item"),t=this.planner.$timelineSmall.children(".scale-item"),i=e.length,s=t.length,r=ea.DisplayMode,n=s*pr.insets(t,{includeBorder:!1}).horizontal();return this.planner.displayMode===r.DAY?Math.max(n,52*i):x.isOneOf(this.planner.displayMode,r.WORK_WEEK,r.WEEK)?Math.max(n,160*i):this.planner.displayMode===r.MONTH||this.planner.displayMode===r.CALENDAR_WEEK?Math.max(n,23*s):this.planner.displayMode===r.YEAR?Math.max(n,90*s):void 0}}class ra extends _l{constructor(e,t){super(e,t),this.selectionTypes=["Resource","Activity","Range"]}}class na extends Y{constructor(){super(),this.displayParent=null,this.files=[],this._glassPaneRenderer=null,this.maximumUploadSize=aa.DEFAULT_MAXIMUM_UPLOAD_SIZE,this.boxButtons=null,this.uploadButton=null,this.cancelButton=null,this.inheritAccessibility=!1,this._addWidgetProperties(["boxButtons","uploadButton","cancelButton"])}_init(e){if(super._init(e),this._setDisplayParent(this.displayParent),this._glassPaneRenderer=new Tn(this),this.fileInput=x.create("FileInput",{parent:this,acceptTypes:this.acceptTypes,maximumUploadSize:this.maximumUploadSize,multiSelect:this.multiSelect,visible:!Qe.get().supportsFile()}),this.fileInput.on("change",this._onFileChange.bind(this)),this.boxButtons=x.create("BoxButtons",{parent:this}),!this.fileInput.legacy){this.boxButtons.addButton({text:this.session.text("ui.Browse")}).on("action",(e=>this._onAddFileButtonClicked(e)))}this.uploadButton=this.boxButtons.addButton({text:this.session.text("ui.Upload"),enabled:!1}),this.uploadButton.on("action",(e=>this._onUploadButtonClicked(e))),this.cancelButton=this.boxButtons.addButton({text:this.session.text("Cancel")}),this.cancelButton.on("action",(e=>this._onCancelButtonClicked(e)))}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new rn(this.session,this),new sn(this,[Kr.SPACE,Kr.ENTER]),new nn(this,(()=>this.cancelButton?this.cancelButton.$container:null))])}_render(){this.$container=this.$parent.appendDiv("file-chooser").on("mousedown",this._onMouseDown.bind(this));let e=this.$container.appendDiv("drag-handle");this.$container.draggable(e),this.$content=this.$container.appendDiv("file-chooser-content"),this.$title=this.$content.appendDiv("file-chooser-title").text(this.session.text(this.multiSelect?"ui.ChooseFiles":"ui.ChooseFile")),this.fileInput.render(this.$content),this.fileInput.legacy||(this.$content.appendDiv("file-chooser-label").text(this.session.text("ui.FileChooserHint")),this.$files=this.$content.appendElement("<ul>","file-chooser-files"),this._installScrollbars()),this.boxButtons.render(),this.boxButtons.$container.addClass("file-chooser-buttons"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Pa(this)),this.$container.addClassForAnimation("animate-open"),this.$container.addClass("calc-helper");let t=this.$container.windowSize(),i=Math.min(this.$container.width(),t.width);this.$container.css("min-width",i),this.$container.css("max-width",i),this.$container.removeClass("calc-helper"),this._glassPaneRenderer.renderGlassPanes(),this._position()}_renderProperties(){super._renderProperties(),this.fileInput.legacy&&this.setFiles([]),this._renderFiles()}_renderEnabled(){super._renderEnabled(),this._installOrUninstallDragAndDropHandler()}_postRender(){super._postRender(),this._installFocusContext()}_remove(){this._glassPaneRenderer.removeGlassPanes(),at.uninstallDragAndDropHandler(this),this._uninstallFocusContext(),super._remove()}_installFocusContext(){this.session.focusManager.installFocusContext(this.$container,wn.AUTO)}_uninstallFocusContext(){this.session.focusManager.uninstallFocusContext(this.$container)}get$Scrollable(){return this.$files}_position(){this.$container.cssMarginLeft(-this.$container.outerWidth()/2)}setDisplayParent(e){this.setProperty("displayParent",e)}_setDisplayParent(e){this._setProperty("displayParent",e),e&&this.setParent(this.findDesktop().computeParentForDisplayParent(e))}setMaximumUploadSize(e){this.setProperty("maximumUploadSize",e),this.fileInput.setMaximumUploadSize(e)}open(){this.setDisplayParent(this.displayParent||this.session.desktop),this.displayParent.fileChooserController.registerAndRender(this)}close(){this.rendered?this.cancelButton&&this.cancelButton.$container&&this.session.focusManager.requestFocus(this.cancelButton.$container)&&this.cancelButton.doAction():this.cancel()}cancel(){let e=new ht;this.trigger("cancel",e),e.defaultPrevented||this._close()}_close(){this.displayParent&&this.displayParent.fileChooserController.unregisterAndRemove(this),this.destroy()}_installOrUninstallDragAndDropHandler(){at.installOrUninstallDragAndDropHandler({target:this,onDrop:e=>this.addFiles(e.files),dropMaximumSize:()=>this.maximumUploadSize,validateFiles:(e,t)=>{}})}browse(){this.fileInput.browse()}setAcceptTypes(e){this.setProperty("acceptTypes",e),this.fileInput.setAcceptTypes(e)}setMultiSelect(e){this.setProperty("multiSelect",e),this.fileInput.setMultiSelect(e)}addFiles(e){e instanceof FileList&&(e=Xe.fileListToArray(e)),0!==(e=me.ensure(e)).length&&(!this.multiSelect||this.fileInput.legacy?(e=[e[0]],this.setFiles([e[0]])):(e=e.slice(),me.insertAll(e,this.files,0),this.setFiles(e)))}removeFile(e){let t=this.files.slice();me.remove(t,e),this.setFiles(t),this.fileInput.clear()}setFiles(e){e instanceof FileList&&(e=Xe.fileListToArray(e)),e=me.ensure(e);try{this.fileInput.validateMaximumUploadSize(e)}catch(e){return void Su.createOk(this).withHeader(this.session.text("ui.FileSizeLimitTitle")).withBody(e).withSeverity(Ii.Severity.ERROR).buildAndOpen()}this.setProperty("files",e)}_renderFiles(){let e=this.files;this.fileInput.legacy||(this.$files.empty(),e.forEach((function(e){let t=this.$files.appendElement("<li>","file",e.name);t.append(" ");let i=t.appendSpan("remove").on("click",this.removeFile.bind(this,e)),s=t.makeElement("<a>","remove-link",this.session.text("Remove"));i.append(s)}),this),Yn.update(this.$files)),this.uploadButton.setEnabled(e.length>0)}_onUploadButtonClicked(e){this.trigger("upload")}_onCancelButtonClicked(e){this.cancel()}_onAddFileButtonClicked(e){this.browse()}_onFileChange(e){this.addFiles(e.files)}_onMouseDown(e,t){let i=this.findParent((e=>e instanceof Ta&&e.isDialog()));i&&i.activate()}_attach(){this.$parent.append(this.$container),super._attach()}_detach(){this.$container.detach(),super._detach()}}class oa extends j{constructor(){super()}_onWidgetCancel(e){e.preventDefault(),this._send("cancel")}_onWidgetEvent(e){"cancel"===e.type?this._onWidgetCancel(e):"upload"===e.type?this._onUpload(e):super._onWidgetEvent(e)}_onUpload(e){this.widget.rendered&&this.widget.uploadButton.setEnabled(!1),0!==this.widget.files.length&&(this.widget.fileInput.legacy?this.widget.fileInput.upload():this.session.uploadFiles(this,this.widget.files,void 0,this.widget.maximumUploadSize),this.session.listen().done((()=>{this.widget&&this.widget.rendered&&this.widget.uploadButton.setEnabled(!0)})))}}class la{constructor(e,t){this.displayParent=e,this.session=t}registerAndRender(e){x.assertProperty(e,"displayParent"),this.displayParent.fileChoosers.push(e),this._render(e)}unregisterAndRemove(e){e&&(me.remove(this.displayParent.fileChoosers,e),this._remove(e))}remove(){this.displayParent.fileChoosers.forEach(this._remove.bind(this))}render(){this.displayParent.fileChoosers.forEach((e=>{e.setDisplayParent(this.displayParent),this._render(e)}))}_render(e){if(e.displayParent||e._setProperty("displayParent",this.displayParent),this.displayParent.acceptView){if(!this.displayParent.acceptView(e))return}else if(!this.acceptView(e))return;if(e.rendered)return;let t;t=this.displayParent instanceof Ta&&this.displayParent.isPopupWindow()?this.displayParent.popupWindow.$container:this.session.desktop.$container,e.setTrackFocus(!0),e.render(t),this.displayParent.inFront()||e.detach()}_remove(e){e.remove()}attach(){this.displayParent.fileChoosers.forEach((e=>{e.attach()}),this)}detach(){this.displayParent.fileChoosers.forEach((e=>{e.detach()}),this)}acceptView(e){return this.displayParent.rendered}}class aa extends Y{constructor(){super(),this.acceptTypes=null,this.maximumUploadSize=aa.DEFAULT_MAXIMUM_UPLOAD_SIZE,this.multiSelect=!1,this.files=[],this.legacyFileUploadUrl=null,this.text=null}_init(e){super._init(e),this.uploadController=e.uploadController||e.parent;let t=new ss(e.legacyFileUploadUrl||"upload/"+this.session.uiSessionId+"/"+this.uploadController.id);t.setParameter("legacy",!0),this.legacyFileUploadUrl=t.toString(),this.legacy=!Qe.get().supportsFile()}_initKeyStrokeContext(){this.keyStrokeContext=this._createKeyStrokeContext(),super._initKeyStrokeContext()}_createKeyStrokeContext(){if(this.legacy)return new Qr}_render(){this.$fileInput=this.$parent.makeElement("<input>").attr("type","file").on("change",this._onFileChange.bind(this)),this.legacy?this._renderLegacyMode():(this.$container=this.$parent.appendDiv("file-input input-field"),this.$fileInput.appendTo(this.$container),this.$container.on("mousedown",this._onMouseDown.bind(this)),this.$text=this.$container.appendDiv("file-input-text")),this.legacy&&this.clear()}_renderLegacyMode(){this.$legacyFormTarget=this.$fileInput.appendElement("<iframe>").attr("name","legacyFileUpload"+this.uploadController.id).on("load",(()=>{try{let e=this.$legacyFormTarget.contents().text();if(qt.hasText(e)){let t=n().parseJSON(e);this.session.responseQueue.process(t)}}finally{this.session.setBusy(!1)}})),this.$fileInput.attr("name","file").addClass("legacy-upload-file-input"),this.$legacyForm=this.$parent.appendElement("<form>","legacy-upload-form").attr("action",this.legacyFileUploadUrl).attr("enctype","multipart/form-data").attr("method","post").attr("target","legacyFileUpload"+this.uploadController.id).append(this.$fileInput),this.$container=this.$legacyForm}_renderProperties(){super._renderProperties(),this._renderText(),this._renderAcceptTypes(),this._renderMultiSelect()}_renderEnabled(){super._renderEnabled(),this._installOrUninstallDragAndDropHandler(),this.legacy?this.$fileInput.setEnabled(this.enabledComputed):this.$container.setTabbable(this.enabledComputed)}setText(e){this.setProperty("text",e)}_renderText(){if(this.legacy)return;let e=this.text||"";this.$text.text(e)}setAcceptTypes(e){this.setProperty("acceptTypes",e)}_renderAcceptTypes(){let e=this.acceptTypes||"";this.$fileInput.attr("accept",e)}setMultiSelect(e){this.setProperty("multiSelect",e)}_renderMultiSelect(){this.$fileInput.prop("multiple",this.multiSelect)}setMaximumUploadSize(e){this.setProperty("maximumUploadSize",e)}_remove(){at.uninstallDragAndDropHandler(this),super._remove()}_installOrUninstallDragAndDropHandler(){at.installOrUninstallDragAndDropHandler({target:this,onDrop:e=>{e.files.length>=1&&this._setFiles(e.files)},dropMaximumSize:()=>this.maximumUploadSize,validateFiles:(e,t)=>{}})}clear(){this._setFiles([]),this.setText(null),this.rendered&&this.$fileInput.val(null)}_setFiles(e){if(e instanceof FileList&&(e=Xe.fileListToArray(e)),e=me.ensure(e),me.equals(this.files,e))return;let t="";e.length>0&&(t=this.legacy?e[0]:e[0].name),this.files=e,this.setText(t),this.trigger("change",{files:e})}upload(){return 0===this.files.length||(this.legacy?(this.session.setBusy(!0),this.$legacyForm[0].submit(),!0):this.session.uploadFiles(this.uploadController,this.files,void 0,this.maximumUploadSize))}browse(){this.$fileInput.click()}_onFileChange(e){let t=[];this.legacy?this.$fileInput[0].value&&t.push(this.$fileInput[0].value):t=this.$fileInput[0].files,t.length&&this._setFiles(t)}_onMouseDown(){this.enabled&&this.browse()}static fileListToArray(e){return Xe.fileListToArray(e)}validateMaximumUploadSize(e){if(!Xe.validateMaximumUploadSize(e,this.maximumUploadSize))throw this.session.text("ui.FileSizeLimit",this.maximumUploadSize/1024/1024)}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(aa,"DEFAULT_MAXIMUM_UPLOAD_SIZE",52428800);class ha{constructor(){this.location=null}matches(e){return!1}activate(e){this.location=e}deactivate(){}}let da=[],ua=new dt,ca=null,pa=null;function ga(e){if(!e){e=new RegExp("[^/]*$").exec(document.location.href)[0]}(qt.empty(e)||"/"===e)&&(e=pa);let t,i=null;for(t=0;t<da.length;t++)if(i=da[t],i.matches(e))return i===ca&&i.location===e?void(n().log.isDebugEnabled()&&n().log.debug("Route has not changed - do not activate route")):(ca&&ca.deactivate(),ca=i,ca.activate(e),window.location.replace(e),n().log.isInfoEnabled()&&n().log.info("router: activated route for location=",e),void ua.trigger("routeChange",{route:i}));n().log.warn("router: no route registered for location=",e)}const ma={activate:ga,currentRoute:ca,defaultLocation:pa,events:ua,on:function(e,t){ua.on(e,t)},prepare:function(e,t){qt.startsWith(t,"#")||(t="#"+t),e.attr("href",t).on("mousedown",(e=>(ga(t),!1)))},register:function(e){da.push(e)},routes:da,setDefaultLocation:function(e){pa="#"+e},updateLocation:function(e){let t="#"+e;window.location.replace(t)}};window.addEventListener("popstate",(e=>(ma.activate(null),!1)));class _a extends Y{constructor(){super(),this.value=null,this.minValue=null,this.maxValue=null,this.step=null,this.$sliderInput=null,this.$sliderValue=null}_init(e){super._init(e),this.value=e.value,this.minValue=e.minValue,this.maxValue=e.maxValue,this.step=e.step}_render(){this.$container=this.$parent.appendDiv("slider"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new ba(this)),this.$sliderInput=this.$container.appendElement("<input>","slider-input").attr("type","range").on("change",this._onValueChange.bind(this)).addClass(Qe.get().cssClassForEdge()),this.$sliderValue=this.$container.appendSpan("slider-value",this.value)}_renderProperties(){super._renderProperties(),this._renderValue(),this._renderMinValue(),this._renderMaxValue(),this._renderStep()}_remove(){super._remove(),this.$sliderInput=null,this.$sliderValue=null}_renderValue(){let e=x.nvl(this.value,0);this.$sliderInput.val(e),this.$sliderValue.text(e)}_renderMinValue(){this.minValue?this.$sliderInput.attr("min",this.minValue):this.$sliderInput.removeAttr("min")}_renderMaxValue(){this.maxValue?this.$sliderInput.attr("max",this.maxValue):this.$sliderInput.removeAttr("max")}_renderStep(){this.step?this.$sliderInput.attr("step",this.step):this.$sliderInput.removeAttr("step")}_onValueChange(e){let t=Number(this.$sliderInput.val());Ai.isNumber(t)||(t=x.nvl(this.maxValue,this.minValue,0)),this.setValue(t)}setValue(e){this.setProperty("value",e)}}class fa extends j{constructor(){super(),this._addRemoteProperties(["value"])}}class ba extends _r{constructor(e){super(),this.slider=e}layout(e){let t=pr.size(e);this.slider.$sliderInput.css("height",t.height),this.slider.$sliderValue.css("height",t.height)}}class ya extends vo{constructor(){super(),this.selected=!1,this.ref=null}_init(e){e.owner=e.parent,super._init(e)}_render(){super._render(),this.$container.addClass("button mode")}_renderProperties(){super._renderProperties(),this._renderSelected()}setSelected(e){this.setProperty("selected",e)}_renderSelected(){this.$container.select(this.selected)}doAction(){return!!this.prepareDoAction()&&(this.selected||this.setSelected(!0),!0)}toggle(){this.selected||this.setSelected(!0)}_renderIconId(){super._renderIconId(),this._updateLabelAndIconStyle(),this.invalidateLayoutTree()}_renderText(){super._renderText(),this._updateLabelAndIconStyle(),this.invalidateLayoutTree()}_updateLabelAndIconStyle(){let e=!!this.text;this.get$Icon().toggleClass("with-label",e)}}class wa extends To{constructor(){super()}}class Ca extends Y{constructor(){super(),this._addWidgetProperties(["modes","selectedMode"]),this._addPreserveOnPropertyChangeProperties(["selectedMode"]),this.modes=[],this.selectedMode=null,this.$slider=null,this._isModeChanging=!1,this._modePropertyChangeHandler=this._onModePropertyChange.bind(this)}_init(e){super._init(e),this._setModes(this.modes),this._setSelectedMode(this.selectedMode)}_render(){this.$container=this.$parent.appendDiv("mode-selector"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new va(this))}_renderProperties(){super._renderProperties(),this._renderSlider(),this._renderModes()}setModes(e){this.setProperty("modes",e)}_setModes(e){this.modes.forEach((function(e){e.off("propertyChange",this._modePropertyChangeHandler)}),this),this._setProperty("modes",me.ensure(e)),this.modes.forEach((function(e){e.on("propertyChange",this._modePropertyChangeHandler),e.selected&&this.setSelectedMode(e)}),this)}_renderSlider(){this.$slider=this.$container.appendDiv("mode-slider")}_renderModes(){this.modes.forEach((e=>{e.render(),this._registerDragHandlers(e.$container)})),this._updateMarkers()}setSelectedMode(e){this.setProperty("selectedMode",e)}_setSelectedMode(e){this._isModeChanging=!0,this.selectedMode&&this.selectedMode!==e&&this.selectedMode.setSelected(!1),e&&!e.selected&&e.setSelected(!0),this._setProperty("selectedMode",e),this._isModeChanging=!1,this._updateMarkers()}_onModePropertyChange(e){"selected"!==e.propertyName||this._isModeChanging?"visible"===e.propertyName?this._updateMarkers():"enabled"===e.propertyName&&this._updateSlider():this.setSelectedMode(e.newValue?e.source:null)}_updateMarkers(){let e=[],t=-1;this.modes.forEach((i=>{i.rendered&&(i.$container.removeClass("first last after-selected"),i.isVisible()&&(e.push(i),i.selected&&(t=e.length-1)))})),e.length&&(e[0].$container.addClass("first"),e[e.length-1].$container.addClass("last"),t>=0&&t<e.length-1&&e[t+1].$container.addClass("after-selected")),this._updateSlider()}_updateSlider(){if(!this.$slider)return;let e=0,t=0;this.selectedMode&&this.selectedMode.$container&&(e=pr.position(this.selectedMode.$container).x,t=pr.size(this.selectedMode.$container,{exact:!0}).width),this.$slider.cssLeft(e),this.$slider.cssWidth(t),this.$slider.setVisible(this.selectedMode&&this.selectedMode.$container&&this.selectedMode.enabled)}_registerDragHandlers(e){let t="mode-selector-dragging";Ye.onSwipe(e,t,(t=>this.enabledComputed&&this.selectedMode&&this.selectedMode.$container===e&&this.modes.filter((e=>e.isVisible()&&e.enabled)).length>1),(i=>{let s=this.$container.width()-e.outerWidth(),r=Math.max(Math.min(i.newLeft,s),0);return this.$container.children().addClass(t),r!==i.originalLeft&&this.$slider.cssLeft(r),r}),(e=>{this.$container.children().removeClass(t);let i=this._computeNewSelectedMode(e);i&&i!==this.selectedMode&&i.enabled?this.setSelectedMode(i):this._updateSlider()}))}_computeNewSelectedMode(e){return 0===e.direction||Math.abs(e.deltaX)<=5?this.selectedMode:e.direction<0?this._findModeByPos(e.newLeft):this._findModeByPos(e.newLeft+this.$slider.width())}_findModeByPos(e){let t=this.modes.filter((e=>e.isVisible()));for(let i=t.length-1;i>=0;i--){let s=t[i],r=Math.floor(pr.position(s.$container).x);if(e>=r){if(e<=r+pr.size(s.$container).width)return s}}return null}findModeById(e){return me.find(this.modes,(t=>t.id===e))}findModeByRef(e){return me.find(this.modes,(t=>t.ref===e))}selectModeById(e){this.setSelectedMode(this.findModeById(e))}selectModeByRef(e){this.setSelectedMode(this.findModeByRef(e))}}class va extends _r{constructor(e){super(),this.modeSelector=e}layout(e){super.layout(e),this.modeSelector.$slider&&this.modeSelector.$slider.setVisible(!1),this.modeSelector._updateSlider()}preferredLayoutSize(e,t){let i=super.preferredLayoutSize(e,t),s=this.modeSelector.$container.attr("style");this.modeSelector.$container.css({width:"auto",height:"auto"});let r=0;return this.modeSelector.modes.filter((e=>e.rendered)).forEach((e=>{let t=e.$container.attr("style");e.$container.css("flex","none");let i=e.htmlComp.prefSize().width;i>r&&(r=i),e.$container.attrOrRemove("style",t)})),this.modeSelector.$container.attrOrRemove("style",s),i.width=r*this.modeSelector.modes.length+this.modeSelector.htmlComp.insets().horizontal(),i}}class Ta extends Y{constructor(){super(),this._addWidgetProperties(["rootGroupBox","views","dialogs","initialFocus","messageBoxes","fileChoosers"]),this._addPreserveOnPropertyChangeProperties(["initialFocus"]),this.animateOpening=!0,this.askIfNeedSave=!0,this.askIfNeedSaveText=null,this.data={},this.displayViewId=null,this.displayHint=Ta.DisplayHint.DIALOG,this.displayParent=null,this.maximized=!1,this.headerVisible=null,this.modal=!0,this.logicalGrid=x.create("FormGrid"),this.dialogs=[],this.views=[],this.messageBoxes=[],this.fileChoosers=[],this.focusedElement=null,this.closable=!0,this.cacheBounds=!1,this.cacheBoundsKey=null,this.resizable=!0,this.movable=!0,this.rootGroupBox=null,this.saveNeeded=!1,this.saveNeededVisible=!1,this.formController=null,this.messageBoxController=null,this.fileChooserController=null,this.closeKeyStroke=null,this.showOnOpen=!0,this._glassPaneRenderer=null,this._preMaximizedBounds=null,this._resizeHandler=this._onResize.bind(this),this._windowResizeHandler=this._onWindowResize.bind(this),this.renderInitialFocusEnabled=!0,this.$statusIcons=[],this.$header=null,this.$statusContainer=null,this.$close=null,this.$saveNeeded=null,this.$icon=null,this.$title=null,this.$subTitle=null,this.$dragHandle=null}_init(e){super._init(e),this.resolveTextKeys(["title","askIfNeedSaveText"]),this.resolveIconIds(["iconId"]),this._setDisplayParent(this.displayParent),this._setViews(this.views),this.formController=x.create("FormController",{displayParent:this,session:this.session}),this.messageBoxController=new Tu(this,this.session),this.fileChooserController=new la(this,this.session),this._setRootGroupBox(this.rootGroupBox),this._setStatus(this.status),this.cacheBoundsKey=x.nvl(e.cacheBoundsKey,this.objectType),this._installLifecycle(),this._setClosable(this.closable)}_createKeyStrokeContext(){return new Zr}_render(){this._renderForm()}_renderProperties(){super._renderProperties(),this._renderMaximized(),this._renderMovable(),this._renderResizable(),this._renderHeaderVisible(),this._renderCssClass(),this._renderModal(),this._installFocusContext(),this.renderInitialFocusEnabled&&this.renderInitialFocus()}_postRender(){super._postRender(),this.formController.render(),this.messageBoxController.render(),this.fileChooserController.render(),this._glassPaneRenderer&&this._glassPaneRenderer.renderGlassPanes()}_destroy(){super._destroy(),this._glassPaneRenderer&&(this._glassPaneRenderer=null)}_remove(){this.formController.remove(),this.messageBoxController.remove(),this.fileChooserController.remove(),this._glassPaneRenderer&&(this._glassPaneRenderer.removeGlassPanes(),this._glassPaneRenderer=null),this._uninstallFocusContext(),this._removeHeader(),this.$dragHandle=null,super._remove()}_renderForm(){let e;this.$container=this.$parent.appendDiv("form").data("model",this),this.uiCssClass&&this.$container.addClass(this.uiCssClass),this.htmlComp=fr.install(this.$container,this.session),this.isDialog()?(this.$container.addClass("dialog"),e=new La(this),this.htmlComp.validateRoot=!0,this.$container[0].addEventListener("mousedown",this._onDialogMouseDown.bind(this),!0)):e=new Pa(this),this.htmlComp.setLayout(e),this.rootGroupBox.render()}_renderFocusedElement(){this.focusedElement&&(this.focusedElement.focus(),this.focusedElement=null)}setModal(e){this.setProperty("modal",e)}_renderModal(){this.parent instanceof pg||(this.modal&&!this._glassPaneRenderer?(this._glassPaneRenderer=new Tn(this),this._glassPaneRenderer.renderGlassPanes()):!this.modal&&this._glassPaneRenderer&&(this._glassPaneRenderer.removeGlassPanes(),this._glassPaneRenderer=null))}_installLifecycle(){this.lifecycle=this._createLifecycle(),this.lifecycle.handle("load",this._onLifecycleLoad.bind(this)),this.lifecycle.handle("save",this._onLifecycleSave.bind(this)),this.lifecycle.on("postLoad",this._onLifecyclePostLoad.bind(this)),this.lifecycle.on("reset",this._onLifecycleReset.bind(this)),this.lifecycle.on("close",this._onLifecycleClose.bind(this))}_createLifecycle(){return x.create("FormLifecycle",{widget:this,askIfNeedSave:this.askIfNeedSave,askIfNeedSaveText:this.askIfNeedSaveText})}open(){return this.load().then((()=>{this.destroyed||this.showOnOpen&&this.show()}))}load(){return this.lifecycle.load()}whenLoad(){return this.when("load")}_onLifecycleLoad(){try{return this._load().then((e=>{this.destroyed||(this.setData(e),this.importData(),this.trigger("load"))})).catch((e=>this._handleLoadError(e)))}catch(e){return this._handleLoadError(e)}}_handleLoadError(e){throw this.destroy(),e}_load(){return n().resolvedPromise().then((()=>this.data))}whenPostLoad(){return this.when("postLoad")}_onLifecyclePostLoad(){return this._postLoad().then((()=>{this.trigger("postLoad")}))}_postLoad(){return n().resolvedPromise()}setData(e){this.setProperty("data",e)}importData(){}exportData(){return null}ok(){return this.lifecycle.ok()}save(){return this.lifecycle.save()}whenSave(){return this.when("save")}_onLifecycleSave(){let e=this.exportData();return this._save(e).then((t=>(this.setData(e),this.trigger("save"),t)))}_validate(){return Ii.ok()}_save(e){return n().resolvedPromise()}reset(){this.lifecycle.reset()}whenReset(){return this.when("reset")}_onLifecycleReset(){this.trigger("reset")}cancel(){return this.lifecycle.cancel()}whenCancel(){return this.when("cancel")}close(){return this.lifecycle.close()}whenClose(){return this.when("close")}_onLifecycleClose(){let e=new ht;this.trigger("close",e),e.defaultPrevented||this._close()}_close(){this.hide(),this.destroy()}abort(){let e=new ht;this.trigger("abort",e),e.defaultPrevented||this._abort()}whenAbort(){return this.when("abort")}_abort(){this.rootGroupBox.controls.concat(this.rootGroupBox.menus).filter((e=>{let t=e.enabled;return void 0!==e.enabledComputed&&(t=e.enabledComputed),e.visible&&t&&e.systemType&&e.systemType!==Iu.SystemType.NONE})).some((e=>e.systemType===Iu.SystemType.CLOSE))?this.close():this.cancel(),this._afterAbort()}_afterAbort(){!this.destroyed&&this.isShown()&&this.activate()}revealInvalidField(e){e&&this._revealInvalidField(e)}_revealInvalidField(e){let t=this._createRevealInvalidFieldEvent(e);this.trigger("revealInvalidField",t),t.defaultPrevented||e.reveal()}_createRevealInvalidFieldEvent(e){return new ht({validationResult:e})}_createCloseKeyStroke(){return new on(this,(()=>this.$close))}_setClosable(e){this._setProperty("closable",e),this.closable?(this.closeKeyStroke=this._createCloseKeyStroke(),this.keyStrokeContext.registerKeyStroke(this.closeKeyStroke)):this.keyStrokeContext.unregisterKeyStroke(this.closeKeyStroke)}setClosable(e){this.setProperty("closable",e)}_renderClosable(){if(this.$header)if(this.$container.toggleClass("closable"),this.closable){if(this.$close)return;this.$close=this.$statusContainer.appendDiv("status closer").on("click",this._onCloseIconClick.bind(this))}else{if(!this.$close)return;this.$close.remove(),this.$close=null}}_onCloseIconClick(){this.abort()}setResizable(e){this.setProperty("resizable",e)}_renderResizable(){this.resizable&&this.isDialog()&&!this.maximized?this.$container.resizable().on("resize",this._resizeHandler):this.$container.unresizable().off("resize",this._resizeHandler)}_onResize(e){let t=this.htmlComp.layout.autoSize;return this.htmlComp.layout.autoSize=!1,this.htmlComp.revalidateLayout(),this.htmlComp.layout.autoSize=t,this.updateCacheBounds(),!1}setMovable(e){this.setProperty("movable",e)}_renderMovable(){if(this.movable&&this.isDialog()&&!this.maximized){if(this.$dragHandle)return;this.$dragHandle=this.$container.prependDiv("drag-handle"),this.$container.draggable(this.$dragHandle,n().throttle(this._onMove.bind(this),1e3/60))}else{if(!this.$dragHandle)return;this.$container.undraggable(this.$dragHandle),this.$dragHandle.remove(),this.$dragHandle=null}}_onDialogMouseDown(){this.activate()}activate(){this.session.desktop.activateForm(this)}show(){this.session.desktop.showForm(this)}hide(){this.session.desktop.hideForm(this)}isShown(){return this.session.desktop.isFormShown(this)}_renderHeader(){this.$header=this.$container.prependDiv("header"),this.$statusContainer=this.$header.appendDiv("status-container"),this.$icon=this.$header.appendDiv("icon-container"),this.$title=this.$header.appendDiv("title"),yo.installForEllipsis(this.$title,{parent:this}),this.$subTitle=this.$header.appendDiv("sub-title"),yo.installForEllipsis(this.$subTitle,{parent:this}),this._renderTitle(),this._renderSubTitle(),this._renderIconId(),this._renderStatus(),this._renderClosable(),this._renderSaveNeeded()}_removeHeader(){this.$title&&yo.uninstall(this.$title),this.$subTitle&&yo.uninstall(this.$subTitle),this.$header&&(this.$header.remove(),this.$header=null),this.$title=null,this.$subTitle=null,this.$statusContainer=null,this.$icon=null,this.$close=null,this.$saveNeeded=null}_setRootGroupBox(e){this._setProperty("rootGroupBox",e),this.rootGroupBox&&(this.rootGroupBox.setMainBox(!0),(this.isDialog()||this.parent instanceof pg)&&this.rootGroupBox.setMenuBarPosition(ac.MenuBarPosition.BOTTOM))}_renderSaveNeeded(){if(this.$header){if(this.saveNeeded&&this.saveNeededVisible){if(this.$container.addClass("save-needed"),this.$saveNeeded)return;this.$close?this.$saveNeeded=this.$close.beforeDiv("status save-needer"):this.$saveNeeded=this.$statusContainer.appendDiv("status save-needer")}else{if(this.$container.removeClass("save-needed"),!this.$saveNeeded)return;this.$saveNeeded.remove(),this.$saveNeeded=null}this.invalidateLayoutTree()}}setAskIfNeedSave(e){this.setProperty("askIfNeedSave",e),this.lifecycle&&this.lifecycle.setAskIfNeedSave(e)}setDisplayViewId(e){this.setProperty("displayViewId",e)}setDisplayHint(e){this.setProperty("displayHint",e)}setSaveNeededVisible(e){this.setProperty("saveNeededVisible",e)}_renderSaveNeededVisible(){this._renderSaveNeeded()}_renderCssClass(e,t){e=e||this.cssClass,this.$container.removeClass(t),this.$container.addClass(e),this.invalidateLayoutTree()}setStatus(e){this.setProperty("status",e)}_setStatus(e){e=Ii.ensure(e),this._setProperty("status",e)}_renderStatus(){if(this.$header){if(this.$statusIcons.forEach((e=>{e.remove()})),this.$statusIcons=[],this.status){let e;this.status.asFlatList().forEach((t=>{e=this._renderSingleStatus(t,e),e&&this.$statusIcons.push(e)}))}this.invalidateLayoutTree()}}_renderSingleStatus(e,t){if(e&&e.iconId){let t=this.$statusContainer.appendIcon(e.iconId,"status");return e.cssClass()&&t.addClass(e.cssClass()),t.prependTo(this.$statusContainer),t}return t}setShowOnOpen(e){this.setProperty("showOnOpen",e)}_updateTitleForWindow(){let e=qt.join(" - ",this.title,this.subTitle),t=this.session.desktop.title;this.popupWindow.title(e||t)}_updateTitleForDom(){let e=this.title;if(!e&&this.closable&&(e=qt.plainText(" ")),e||this.subTitle){let s=t(this.$container,"title-box");e?t(s,"title").text(e).icon(this.iconId):i(s,"title"),qt.hasText(e)?t(s,"sub-title").text(this.subTitle):i(s,"sub-title")}else i(this.$container,"title-box");function t(e,t){let i=e.children("."+t);return 0===i.length&&(i=this.$parent.appendDiv(t)),i}function i(e,t){e.children("."+t).remove()}}isDialog(){return this.displayHint===Ta.DisplayHint.DIALOG}isPopupWindow(){return this.displayHint===Ta.DisplayHint.POPUP_WINDOW}isView(){return this.displayHint===Ta.DisplayHint.VIEW}_onMove(e){this.trigger("move",e),this.updateCacheBounds()}moveTo(e){this.$container.cssPosition(e),this.trigger("move",{left:e.x,top:e.y}),this.updateCacheBounds()}position(){let e,t=this.prefBounds();e=t?t.point():La.positionContainerInWindow(this.$container),this.moveTo(e)}updateCacheBounds(){this.cacheBounds&&!this.maximized&&this.storeCacheBounds(this.htmlComp.bounds())}appendTo(e){this.$container.appendTo(e)}setHeaderVisible(e){this.setProperty("headerVisible",e)}_renderHeaderVisible(){let e=null===this.headerVisible?this.isDialog():this.headerVisible;e&&!this.$header?this._renderHeader():!e&&this.$header&&this._removeHeader();let t=this.$header&&this.$header.hasClass("no-title");this.$container.toggleClass("header-visible",e&&!t),this.invalidateLayoutTree()}setTitle(e){this.setProperty("title",e)}_renderTitle(){this.$header&&(this.$title.text(this.title),this.$header.toggleClass("no-title",!this.title&&!this.subTitle)),this.isPopupWindow()&&this._updateTitleForWindow(),this.invalidateLayoutTree()}setSubTitle(e){this.setProperty("subTitle",e)}_renderSubTitle(){this.$header&&(this.$subTitle.text(this.subTitle),this.$header.toggleClass("no-title",!this.title&&!this.subTitle)),this.isPopupWindow()&&this._updateTitleForWindow(),this.invalidateLayoutTree()}setIconId(e){this.setProperty("iconId",e)}_renderIconId(){this.$header&&(this.$icon.icon(this.iconId),this.invalidateLayoutTree())}_setViews(e){e&&e.forEach((e=>{e.setDisplayParent(this)})),this._setProperty("views",e)}setDisabledStyle(e){this.rootGroupBox.setDisabledStyle(e)}setDisplayParent(e){this.setProperty("displayParent",e)}_setDisplayParent(e){e instanceof Ta&&e.parent instanceof pg&&e.isView()&&(e=Ta.findNonWrappedForm(e)),this._setProperty("displayParent",e),e&&this.setParent(this.findDesktop().computeParentForDisplayParent(e))}setMaximized(e){this.setProperty("maximized",e)}_renderMaximized(){this.isDialog()&&(this.maximized&&this.htmlComp.layouted&&(this._preMaximizedBounds=this.htmlComp.bounds()),this._maximize(),this.maximized||(this._preMaximizedBounds=null),this.maximized?this.$container.window().on("resize",this._windowResizeHandler):this.$container.window().off("resize",this._windowResizeHandler),this.rendered&&(this._renderMovable(),this._renderResizable()))}_onWindowResize(){this.maximized&&this._maximize()}_maximize(){if(!this.rendered)return;let e=this.htmlComp.layout.shrinkEnabled;this.htmlComp.layout.shrinkEnabled=!0,this.revalidateLayoutTree(),this.position(),this.htmlComp.layout.shrinkEnabled=e}prefBounds(){return this.maximized?null:this._preMaximizedBounds?this._preMaximizedBounds:this.cacheBounds?this.readCacheBounds():null}_attach(){this.$parent.append(this.$container),this.isView()&&this.invalidateLayoutTree(!1),!this.isView()&&!this.isDialog()||this.detailForm||this.session.desktop._setFormActivated(this),super._attach()}_postAttach(){this.formController.attachDialogs(),this.messageBoxController.attach(),this.fileChooserController.attach(),super._attach()}_detach(){this.formController.detachDialogs(),this.messageBoxController.detach(),this.fileChooserController.detach(),this.$container.detach(),super._detach()}renderInitialFocus(){let e=!1;if(this.initialFocus)e=this.initialFocus.focus();else if(!this.$container.isOrHas(this.$container.activeElement())){let t=this.session.focusManager;e=t.requestFocusIfReady(t.findFirstFocusableElement(this.$container))}if(e){let e=this.$container.activeElement().scrollParent();e.scrollTop(0),e.scrollLeft(0)}}_initialFocusElement(){let e;return this.initialFocus&&(e=this.initialFocus.getFocusableElement()),e||(e=this.session.focusManager.findFirstFocusableElement(this.$container)),e}_installFocusContext(){(this.isDialog()||this.isPopupWindow())&&this.session.focusManager.installFocusContext(this.$container,wn.NONE)}_uninstallFocusContext(){(this.isDialog()||this.isPopupWindow())&&this.session.focusManager.uninstallFocusContext(this.$container)}touch(){this.rootGroupBox.touch()}inFront(){return this.rendered&&this.attached}visitFields(e){this.rootGroupBox.visitFields(e)}visitDisplayChildren(e,t){t||(t=e=>!0);let i=i=>{e(i),i instanceof Ta&&i.visitDisplayChildren(e,t)};this.dialogs.filter(t).forEach(i,this),this.messageBoxes.filter(t).forEach(i,this),this.fileChoosers.filter(t).forEach(i,this)}storeCacheBounds(e){if(this.cacheBounds){let t="scout:formBounds:"+this.cacheBoundsKey;gs.setItemToLocalStorage(t,JSON.stringify(e))}}readCacheBounds(){if(!this.cacheBounds)return null;let e="scout:formBounds:"+this.cacheBoundsKey,t=gs.getItemFromLocalStorage(e);return t?(t=JSON.parse(t),new or(t.x,t.y,t.width,t.height)):null}static findForm(e){let t=e.parent;for(;t&&!(t instanceof Ta);)t=t.parent;return t}static findNonWrappedForm(e){if(!e)return null;let t=null;return e.findParent((e=>{if(e instanceof Ta)return t=e,!(t.parent instanceof pg)})),t}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Ta,"DisplayHint",{DIALOG:"dialog",POPUP_WINDOW:"popupWindow",VIEW:"view"});class Sa extends j{constructor(){super()}_initModel(e,t){return(e=super._initModel(e,t)).logicalGrid=null,e}_onWidgetEvent(e){"abort"===e.type?this._onWidgetAbort(e):"close"===e.type?this._onWidgetClose(e):super._onWidgetEvent(e)}_onWidgetAbort(e){e.preventDefault(),this._send("formClosing"),this.session.onRequestsDone((()=>{this.widget&&this.widget._afterAbort()}))}_onWidgetClose(e){this._send("close")}onModelAction(e){"requestFocus"===e.type?this._onRequestFocus(e):"requestInput"===e.type?this._onRequestInput(e):super.onModelAction(e)}_onRequestFocus(e){this.session.getOrCreateWidget(e.formField,this.widget).focus()}_onRequestInput(e){this.session.getOrCreateWidget(e.formField,this.widget).requestInput()}}class xa extends wr{constructor(){super()}_validate(e){e.rootGroupBox.gridData=lu.createFromHints(e.rootGroupBox)}}class Pa extends _r{constructor(e){super(),this.form=e}layout(e){let t,i=fr.get(e),s=this._htmlRootGroupBox();this.form.validateLogicalGrid(),t=i.availableSize().subtract(i.insets()).subtract(s.margins()),t.height-=this._headerHeight(),n().log.isTraceEnabled()&&n().log.trace("(FormLayout#layout) rootGbSize="+t),s.setSize(t)}preferredLayoutSize(e,t){t=t||{};let i,s=fr.get(e),r=this._htmlRootGroupBox();this.form.validateLogicalGrid();let n=this._headerHeight();return t.heightHint&&(t.heightHint-=n),i=r.prefSize(t).add(s.insets()).add(r.margins()),i.height+=n,i}_htmlRootGroupBox(){let e=this.form.$container.children(".root-group-box");return fr.get(e)}_headerHeight(){return this.form.$header&&"absolute"!==this.form.$header.css("position")?pr.prefSize(this.form.$header,!0).height:0}}class Fa extends xo{constructor(e){super(e)}handle(e){this.field.toggle()}_postRenderKeyBox(e){if(this.field.iconId){let t=e.find(".icon").width()/2-e.find(".key-box").outerWidth()/2+e.cssPaddingLeft();e.find(".key-box").cssLeft(t)}}}class Ea extends ul{constructor(){super(),this.form=null,this.toggleAction=!0,this.popupStyle=null,this.popupClosable=!1,this.popupMovable=!1,this.popupResizable=!1,this._addWidgetProperties("form"),this._formDestroyHandler=this._onFormDestroy.bind(this)}_init(e){super._init(e),this.popupStyle||(this.session.userAgent.deviceType===Qe.Type.MOBILE?this.popupStyle=Ea.PopupStyle.MOBILE:this.popupStyle=Ea.PopupStyle.DEFAULT),this._setSelected(this.selected),this._setForm(this.form)}_renderForm(){this.rendered&&this._renderSelected()}clone(e,t){return(e=e||{}).form=this.form,super.clone(e,t)}setForm(e){this.setProperty("form",e)}_setForm(e){this.form&&this.form.off("destroy",this._formDestroyHandler),this._setProperty("form",e),this.form&&(this._adaptForm(this.form),this.form.one("destroy",this._formDestroyHandler))}_adaptForm(e){e.setDisplayHint(Ta.DisplayHint.VIEW),e.setModal(!1),e.setClosable(!1)}_onFormDestroy(e){this.popup&&this.popup.destroying||this.setSelected(!1),this.setForm(null);let t=this.findParent((e=>e instanceof yl));!t||t.destroying||t.removing||t.close()}_setSelected(e){this._setProperty("selected",e),this.popupStyle===Ea.PopupStyle.MOBILE&&this._doActionTogglesPopup()&&(this.selected?this._openPopup():this._closePopup())}_renderSelected(){super._renderSelected(),this.$container.addClass("has-popup")}_canOpenPopup(){return this._closeOtherPopupsForSameMenu(),super._canOpenPopup()}_closeOtherPopupsForSameMenu(){this._findOtherPopupsForSameMenu().forEach((e=>{if(e.isRemovalPending())e.removeImmediately();else if(e._rendered){let t=e.animateRemoval;e.animateRemoval=!1,e.close(),e.animateRemoval=t}}))}_findOtherPopupsForSameMenu(){return this.session.desktop.getPopups().filter((e=>e!==this.popup&&!e.has(this)&&this._popupBelongsToMenu(e)))}_popupBelongsToMenu(e){return e.parent.original()===this.original()||!!e.findChild((e=>e.original()===this.original()))}_createPopup(){return this.form.rootGroupBox.setMenuBarPosition(ac.MenuBarPosition.BOTTOM),this.popupStyle===Ea.PopupStyle.MOBILE?x.create("MobilePopup",{parent:this.session.desktop,widget:this.form,title:this.form.title}):x.create("WidgetPopup",{parent:this,widget:this.form,anchor:this,closeOnAnchorMouseDown:!1,cssClass:"form-menu-popup",horizontalAlignment:this.popupHorizontalAlignment,verticalAlignment:this.popupVerticalAlignment,closable:this.popupClosable,movable:this.popupMovable,resizable:this.popupResizable})}_doActionTogglesPopup(){return!!this.form}_handleSelectedInEllipsis(){this.popupStyle!==Ea.PopupStyle.MOBILE&&super._handleSelectedInEllipsis()}_createActionKeyStroke(){return new Fa(this)}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Ea,"PopupStyle",{DEFAULT:"default",MOBILE:"mobile"});class Da extends pl{constructor(){super()}}class Aa extends Zl{constructor(){super(),this.validationFailedTextKey="FormValidationFailedTitle",this.emptyMandatoryElementsTextKey="FormEmptyMandatoryFieldsMessage",this.invalidElementsTextKey="FormInvalidFieldsMessage",this.saveChangesQuestionTextKey="FormSaveChangesQuestion"}init(e){x.assertParameter("widget",e.widget,Ta),super.init(e)}_reset(){this.widget.visitFields((e=>{e instanceof du&&e.resetValue()}))}_invalidElements(){let e=[],t=[];return this.widget.visitFields((i=>{let s=i.getValidationResult();s.valid||(s.validByErrorStatus?s.validByMandatory||e.push(s):t.push(s))})),{missingElements:e,invalidElements:t}}_invalidElementText(e){return qt.plainText(e.label)}_missingElementText(e){return qt.plainText(e.label)}_validateWidget(){return this.widget._validate()}_revealInvalidElement(e){this.widget.revealInvalidField(e)}markAsSaved(){this.widget.visitFields((e=>{e.markAsSaved()}))}requiresSave(){let e=!1;return this.widget.visitFields((t=>{t.updateRequiresSave(),t.requiresSave&&(e=!0)})),e}}class $a extends ul{constructor(){super(),this.actionStyle=vo.ActionStyle.BUTTON,this.keyStroke="esc",this.systemType=Iu.SystemType.CANCEL,this.inheritAccessibility=!1,this.preventDoubleClick=!0}_init(e){super._init(e),this.text=x.nvl(this.text,this.session.text("CancelButton"))}_doAction(){let e=this.getForm(),t=new ht;this.trigger("action",t),t.defaultPrevented||e.cancel()}}class Ra extends ul{constructor(){super(),this.actionStyle=vo.ActionStyle.BUTTON,this.keyStroke="esc",this.systemType=Iu.SystemType.CLOSE,this.inheritAccessibility=!1,this.preventDoubleClick=!0}_init(e){super._init(e),this.text=x.nvl(this.text,this.session.text("CloseButton"))}_doAction(){let e=this.getForm(),t=new ht;this.trigger("action",t),t.defaultPrevented||e.close()}}class Ma extends ul{constructor(){super(),this.actionStyle=vo.ActionStyle.BUTTON,this.keyStroke="enter",this.systemType=Iu.SystemType.OK,this.preventDoubleClick=!0}_init(e){super._init(e),this.text=x.nvl(this.text,this.session.text("OkButton"))}_doAction(){let e=this.getForm(),t=new ht;this.trigger("action",t),t.defaultPrevented||e.ok()}}class ka extends ul{constructor(){super(),this.actionStyle=vo.ActionStyle.BUTTON,this.systemType=Iu.SystemType.RESET,this.preventDoubleClick=!0}_init(e){super._init(e),this.text=x.nvl(this.text,this.session.text("ResetButton"))}_doAction(){let e=this.getForm(),t=new ht;this.trigger("action",t),t.defaultPrevented||e.reset()}}class Ia extends ul{constructor(){super(),this.actionStyle=vo.ActionStyle.BUTTON,this.keyStroke="enter",this.systemType=Iu.SystemType.SAVE,this.preventDoubleClick=!0}_init(e){super._init(e),this.text=x.nvl(this.text,this.session.text("SaveButton"))}_doAction(){let e=this.getForm(),t=new ht;this.trigger("action",t),t.defaultPrevented||e.save()}}class La extends Pa{constructor(e){super(e),this.autoSize=!0,this.shrinkEnabled=!1}layout(e){if(!this.autoSize)return void super.layout(e);let t,i=this.form.htmlComp,s=this.form.prefBounds(),r=i.margins(),n=e.windowSize();t=s||i.bounds();let o=this._calcSize(e,t,s);e.toggleClass("full-width",this.form.maximized||0===t.x&&0===r.horizontal()&&n.width===o.width).toggleClass("full-height",this.form.maximized||0===t.y&&0===r.vertical()&&n.height===o.height),i.layouted&&!this.shrinkEnabled&&(o.width=Math.max(o.width,t.width),o.height=Math.max(o.height,t.height)),pr.setSize(e,o),super.layout(e)}_calcSize(e,t,i){let s,r=this.form.htmlComp.margins(),n=e.windowSize();return this.form.maximized?n:(i&&(s=i.dimension(),t=i,s=La.fitContainerInWindow(n,t.point(),s,r),i.dimension().width===s.width)||(s=this.preferredLayoutSize(e,{widthOnly:!0}),s=La.fitContainerInWindow(n,t.point(),s,r),s=this.preferredLayoutSize(e,{widthHint:s.width}).ceil(),s=La.fitContainerInWindow(n,t.point(),s,r)),s)}static fitContainerInWindow(e,t,i,s){let r=e.width-s.horizontal()-t.x,n=e.height-s.vertical()-t.y,o=new sr;return o.width=Math.min(r,i.width),o.height=Math.min(n,i.height),o}static positionContainerInWindow(e){let t=e.windowSize(),i=fr.get(e).size(!0),s=(t.width-i.width)/2,r=(t.height-i.height)/2;return r-=r/5,s=Math.floor(s),r=Math.floor(r),new nr(s,r)}}let Ba;class Oa{constructor(){this.active=!0,this.globalState=null,this._responsiveHandlers=[]}init(){}destroy(){this._responsiveHandlers.forEach((e=>{e.destroy()}))}setActive(e){this.active=e}setGlobalState(e){this.globalState=e}handleResponsive(e,t){if(!this.active)return!1;if(!e.responsiveHandler||!e.responsiveHandler.active())return!1;let i,s=e.responsiveHandler.state;return this.globalState?i=this.globalState:t<e.responsiveHandler.getCompactThreshold()&&e.responsiveHandler.acceptState(Oa.ResponsiveState.COMPACT)?i=Oa.ResponsiveState.COMPACT:(s===Oa.ResponsiveState.COMPACT&&e.responsiveHandler.transform(Oa.ResponsiveState.CONDENSED),i=t<e.responsiveHandler.getCondensedThreshold()&&e.responsiveHandler.acceptState(Oa.ResponsiveState.CONDENSED)?Oa.ResponsiveState.CONDENSED:Oa.ResponsiveState.NORMAL),e.responsiveHandler.transform(i)}reset(e,t){if(this.active)return!!(e.responsiveHandler&&e.responsiveHandler.active()||t)&&void e.responsiveHandler.transform(Oa.ResponsiveState.NORMAL,t)}registerHandler(e,t){e.responsiveHandler&&e.responsiveHandler.destroy(),e.responsiveHandler=t}unregisterHandler(e){e.responsiveHandler&&(e.responsiveHandler.destroy(),e.responsiveHandler=null)}static get(){return Ba}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Oa,"ResponsiveState",{NORMAL:"normal",CONDENSED:"condensed",COMPACT:"compact"}),E.addListener("prepare",(()=>{Ba||(Ba=x.create("ResponsiveManager"),Ba.init())}));class Na{constructor(){this.widget=null,this.compactThreshold=-1,this.condensedThreshold=-1,this.oldState=Oa.ResponsiveState.NORMAL,this.state=Oa.ResponsiveState.NORMAL,this.allowedStates=[Oa.ResponsiveState.NORMAL,Oa.ResponsiveState.COMPACT],this.transformations=Ai.createMap(),this.enabledTransformations=Ai.createMap(),this._destroyHandler=this._onDestroy.bind(this)}init(e){n().extend(this,e),this.widget.one("destroy",this._destroyHandler)}destroy(){this.widget.off("destroy",this._destroyHandler)}getCompactThreshold(){return this.compactThreshold}getCondensedThreshold(){return this.condensedThreshold}active(){return!0}setAllowedStates(e){this.allowedStates=e}acceptState(e){return me.containsAny(this.allowedStates,e)}_registerTransformation(e,t){this.transformations[e]=t.bind(this)}_enableTransformation(e,t){let i=this.enabledTransformations[e];i||(i=[],this.enabledTransformations[e]=i),i.push(t)}_disableTransformation(e,t){me.remove(this.enabledTransformations[e],t)}_storeFieldProperty(e,t,i){e._setProperty("responsive-"+t,i)}_hasFieldProperty(e,t){return e.hasOwnProperty("responsive-"+t)}_getFieldProperty(e,t){return e["responsive-"+t]}transform(e,t){if(this.state===e&&!t)return!1;let i,s;return this.oldState=this.state,this.state=e,this.oldState!==this.state?(i=this.enabledTransformations[this.oldState]||[],s=this.enabledTransformations[this.state]||[]):(i=[],this.state!==Oa.ResponsiveState.NORMAL&&me.pushAll(i,this.enabledTransformations[Oa.ResponsiveState.NORMAL]),this.state!==Oa.ResponsiveState.CONDENSED&&me.pushAll(i,this.enabledTransformations[Oa.ResponsiveState.CONDENSED]),this.state!==Oa.ResponsiveState.COMPACT&&me.pushAll(i,this.enabledTransformations[Oa.ResponsiveState.COMPACT]),s=this.enabledTransformations[this.state]||[]),this._transformationsToApply=me.diff(s,i),this._transformationsToReset=me.diff(i,s),this._transform(),!0}_transform(){this._transformWidget(this.widget)}_transformWidget(e){this._transformationsToApply.forEach((t=>{this.transformations[t](e,!0)})),this._transformationsToReset.forEach((t=>{this.transformations[t](e,!1)}))}_onDestroy(e){this.destroy()}}class Ha extends Na{constructor(){super(),this._initDefaults(),this.allowedStates=[Oa.ResponsiveState.NORMAL,Oa.ResponsiveState.CONDENSED,Oa.ResponsiveState.COMPACT],this._formFieldAddedHandler=this._onFormFieldAdded.bind(this),this._compositeFields=[],this._htmlPropertyChangeHandler=this._onHtmlEnvironmentPropertyChange.bind(this)}_initDefaults(){this.compactThreshold=mr.get().formColumnWidth}_onHtmlEnvironmentPropertyChange(){this._initDefaults()}init(e){super.init(e);let t=Ha.TransformationType,i=Oa.ResponsiveState;this._registerTransformation(t.LABEL_POSITION_ON_FIELD,this._transformLabelPositionOnField),this._registerTransformation(t.LABEL_POSITION_ON_TOP,this._transformLabelPositionOnTop),this._registerTransformation(t.LABEL_VISIBILITY,this._transformLabelVisibility),this._registerTransformation(t.STATUS_POSITION_ON_TOP,this._transformStatusPosition),this._registerTransformation(t.STATUS_VISIBILITY,this._transformStatusVisibility),this._registerTransformation(t.VERTICAL_ALIGNMENT,this._transformVerticalAlignment),this._registerTransformation(t.GRID_COLUMN_COUNT,this._transformGridColumnCount),this._registerTransformation(t.HIDE_PLACE_HOLDER_FIELD,this._transformHidePlaceHolderField),this._registerTransformation(t.FIELD_SCALABLE,this._transformFieldScalable),this._registerTransformation(t.RADIO_BUTTON_GROUP_USE_UI_HEIGHT,this._transformRadioButtonGroupUseUiHeight),this._enableTransformation(i.CONDENSED,t.LABEL_POSITION_ON_TOP),this._enableTransformation(i.CONDENSED,t.LABEL_VISIBILITY),this._enableTransformation(i.CONDENSED,t.VERTICAL_ALIGNMENT),this._enableTransformation(i.CONDENSED,t.RADIO_BUTTON_GROUP_USE_UI_HEIGHT),this._enableTransformation(i.COMPACT,t.LABEL_POSITION_ON_TOP),this._enableTransformation(i.COMPACT,t.LABEL_VISIBILITY),this._enableTransformation(i.COMPACT,t.STATUS_POSITION_ON_TOP),this._enableTransformation(i.COMPACT,t.STATUS_VISIBILITY),this._enableTransformation(i.COMPACT,t.VERTICAL_ALIGNMENT),this._enableTransformation(i.COMPACT,t.GRID_COLUMN_COUNT),this._enableTransformation(i.COMPACT,t.HIDE_PLACE_HOLDER_FIELD),this._enableTransformation(i.COMPACT,t.FIELD_SCALABLE),this._enableTransformation(i.COMPACT,t.RADIO_BUTTON_GROUP_USE_UI_HEIGHT),mr.get().on("propertyChange",this._htmlPropertyChangeHandler),this.widget.visitFields((e=>{e instanceof au&&(e.on("propertyChange",this._formFieldAddedHandler),this._compositeFields.push(e))}))}destroy(){super.destroy(),this._compositeFields.forEach((e=>{e.off("propertyChange",this._formFieldAddedHandler)})),mr.get().off("propertyChange",this._htmlPropertyChangeHandler)}active(){return this.widget.responsive}getCondensedThreshold(){return this.condensedThreshold>0?this.condensedThreshold:this.widget.htmlComp.prefSize({widthOnly:!0}).width}_transform(){this.widget.visitFields(this._transformWidget.bind(this))}_transformWidget(e){if(e!==this.widget&&e instanceof ac&&null!==e.responsive)return yu.SKIP_SUBTREE;if(!(e instanceof iu))return;let t;e.htmlComp&&(e.htmlComp.suppressValidate=!0,t=e.htmlComp.getParent(),t&&(t.suppressValidate=!0)),super._transformWidget(e),e.htmlComp&&(e.htmlComp.suppressValidate=!1),t&&(t.suppressValidate=!1)}_transformLabelPositionOnField(e,t){e.parent instanceof jc||e instanceof Wu||e instanceof bc||(t?(this._storeFieldProperty(e,"labelPosition",e.labelPosition),e.setLabelPosition(iu.LabelPosition.ON_FIELD)):this._hasFieldProperty(e,"labelPosition")&&e.setLabelPosition(this._getFieldProperty(e,"labelPosition")))}_transformLabelPositionOnTop(e,t){e.parent instanceof jc||e instanceof Wu||e instanceof bc||e.labelPosition===iu.LabelPosition.ON_FIELD||(t?(this._storeFieldProperty(e,"labelPosition",e.labelPosition),e.setLabelPosition(iu.LabelPosition.TOP)):this._hasFieldProperty(e,"labelPosition")&&e.setLabelPosition(this._getFieldProperty(e,"labelPosition")))}_transformLabelVisibility(e,t){e instanceof Wu&&(t?(this._storeFieldProperty(e,"labelVisible",e.labelVisible),e.setLabelVisible(!1)):this._hasFieldProperty(e,"labelVisible")&&e.setLabelVisible(this._getFieldProperty(e,"labelVisible")))}getGridData(e){return new lu(e.gridDataHints)}setGridData(e,t){e.setGridDataHints(t)}_transformStatusPosition(e,t){t?(this._storeFieldProperty(e,"statusPosition",e.statusPosition),e.setStatusPosition(iu.StatusPosition.TOP)):this._hasFieldProperty(e,"statusPosition")&&e.setStatusPosition(this._getFieldProperty(e,"statusPosition"))}_transformStatusVisibility(e,t){t?(this._storeFieldProperty(e,"statusVisible",e.statusVisible),e.setStatusVisible(!1)):this._hasFieldProperty(e,"statusVisible")&&e.setStatusVisible(this._getFieldProperty(e,"statusVisible"))}_transformVerticalAlignment(e,t){let i=e instanceof Iu&&e.displayStyle===Iu.DisplayStyle.DEFAULT,s=e instanceof Wu,r=e.labelPosition===iu.LabelPosition.ON_FIELD&&e.gridData&&1===e.gridData.h;if(!(i||s||r)||!e.gridData)return;let n=this.getGridData(e);t?(this._storeFieldProperty(e,"fillVertical",n.fillVertical),this._storeFieldProperty(e,"verticalAlignment",n.verticalAlignment),n.fillVertical=!1,n.verticalAlignment=1):(this._hasFieldProperty(e,"fillVertical")&&(n.fillVertical=this._getFieldProperty(e,"fillVertical")),this._hasFieldProperty(e,"verticalAlignment")&&(n.verticalAlignment=this._getFieldProperty(e,"verticalAlignment"))),this.setGridData(e,n)}_transformGridColumnCount(e,t){e instanceof ac&&(t?(this._storeFieldProperty(e,"gridColumnCount",e.gridColumnCount),e.setGridColumnCount(1)):this._hasFieldProperty(e,"gridColumnCount")&&e.setGridColumnCount(this._getFieldProperty(e,"gridColumnCount")))}_transformHidePlaceHolderField(e,t){e instanceof Mc&&(t?(this._storeFieldProperty(e,"visible",e.visible),e.setVisible(!1)):this._hasFieldProperty(e,"visible")&&e.setVisible(this._getFieldProperty(e,"visible")))}_transformFieldScalable(e,t){if(e.parent instanceof jc)return;let i=this.getGridData(e);t&&0===i.weightX?(this._storeFieldProperty(e,"weightX",i.weightX),i.weightX=1):t||this._hasFieldProperty(e,"weightX")&&(i.weightX=this._getFieldProperty(e,"weightX")),this.setGridData(e,i)}_transformRadioButtonGroupUseUiHeight(e,t){if(!(e instanceof Vc))return;let i=this.getGridData(e);t&&!i.useUiHeight?(this._storeFieldProperty(e,"useUiHeight",i.useUiHeight),i.useUiHeight=!0):t||this._hasFieldProperty(e,"useUiHeight")&&(i.useUiHeight=this._getFieldProperty(e,"useUiHeight")),this.setGridData(e,i)}_onFormFieldAdded(e){if(this.state!==Oa.ResponsiveState.NORMAL&&("fields"===e.propertyName||"tabItems"===e.propertyName)){me.diff(e.newValue,e.oldValue).forEach((e=>{e.visitFields(this._transformWidget.bind(this))}))}}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Ha,"TransformationType",{LABEL_POSITION_ON_FIELD:"labelPositionOnField",LABEL_POSITION_ON_TOP:"labelPositionOnTop",LABEL_VISIBILITY:"labelVisibility",STATUS_POSITION_ON_TOP:"statusPositionOnTop",STATUS_VISIBILITY:"statusVisibility",VERTICAL_ALIGNMENT:"verticalAlignment",GRID_COLUMN_COUNT:"gridColumnCount",HIDE_PLACE_HOLDER_FIELD:"hidePlaceHolderField",FIELD_SCALABLE:"fieldScalable",RADIO_BUTTON_GROUP_USE_UI_HEIGHT:"radioButtonGroupUseUiHeight"});class Va extends Na{constructor(){super(),this.compactThreshold=500,this.allowedStates=[Oa.ResponsiveState.NORMAL,Oa.ResponsiveState.COMPACT]}init(e){super.init(e),this._registerTransformation("navigationVisible",this._transformNavigationVisible),this._enableTransformation(Oa.ResponsiveState.COMPACT,"navigationVisible")}_transformNavigationVisible(e,t){t?(this._storeFieldProperty(e,"navigationVisible",e.navigationVisible),e.setNavigationVisible(!1)):this._hasFieldProperty(e,"navigationVisible")&&e.setNavigationVisible(this._getFieldProperty(e,"navigationVisible"))}}class Wa extends Ta{constructor(){super(),this.outline=null,this.nodes=null,this.tileOverviewTitle=null,this.scrollable=!0,this._addWidgetProperties(["pageTileGrid"]),this.$content=null,this.$title=null,this._desktopNavigationVisibilityChangeHandler=this._onDesktopNavigationVisibilityChange.bind(this)}_init(e){super._init(e),this.pageTileGrid||(this.pageTileGrid=this._createPageTileGrid()),this.addCssClass("dimmed-background")}_renderForm(){super._renderForm(),this.htmlComp.setLayout(new Br),this.$content=this.$container.appendDiv("tile-overview-content"),this.contentHtmlComp=fr.install(this.$content,this.session),this.contentHtmlComp.setLayout(new Br({stretch:this.outline.compact})),this.$title=this.$content.appendDiv("tile-overview-title").text(this.tileOverviewTitle),fr.install(this.$title,this.session),this.$title.cssMaxHeight(this.$title.cssHeight()),this._updateTitle(!1),this.findDesktop().on("propertyChange:navigationVisible",this._desktopNavigationVisibilityChangeHandler)}_remove(){this.$content=null,this.$title=null,this.findDesktop().off("propertyChange:navigationVisible",this._desktopNavigationVisibilityChangeHandler),super._remove()}_renderProperties(){super._renderProperties(),this.pageTileGrid.rendered&&(this.pageTileGrid=this._createPageTileGrid()),this._renderPageTileGrid(),this._renderScrollable()}_renderPageTileGrid(){this.pageTileGrid.render(this.$content)}_createPageTileGrid(){return scout.create("PageTileGrid",{parent:this,outline:this.outline,nodes:this.nodes})}setScrollable(e){this.setProperty("scrollable",e)}_renderScrollable(){this.scrollable?this._installScrollbars({axis:"y"}):this._uninstallScrollbars()}setPage(e){this.outline=e.getOutline(),this.nodes=e.childNodes,this.tileOverviewTitle=e.text,this.setScrollable(!this.outline.compact),this.pageTileGrid.setCompact(this.outline.compact),this.pageTileGrid.setOutline(this.outline),this.pageTileGrid.setPage(e),this.pageTileGrid.setNodes(this.nodes)}_updateTitle(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.$title&&(this.$title.toggleClass("animated",e),this.$title.toggleClass("removed",this.findDesktop().navigationVisible))}_onDesktopNavigationVisibilityChange(e){this._updateTitle()}}class za extends Sa{constructor(){super()}}class Ga extends Sa{constructor(){super()}_initModel(e,t){if(!(e=super._initModel(e,t)).jsFormObjectType||!e.jsFormObjectType.length)throw new Error("jsFormObjectType not set");let i={parent:e.parent,owner:e.owner,objectType:e.jsFormObjectType,displayParent:e.displayParent,data:e.inputData};return e.jsFormModel&&(i=$.extend(!0,{},e.jsFormModel,i)),i}_createWidget(e){let t=super._createWidget(e);return t.showOnOpen=!1,t.open(),t}_onWidgetEvent(e){"save"===e.type?this._onWidgetSave(e):super._onWidgetEvent(e)}_onWidgetSave(e){this._send("save",{outputData:this.widget.data})}_onWidgetClose(e){e.preventDefault(),this._send("formClosing")}_onWidgetAbort(e){}}function Ua(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Ka extends Y{constructor(){super(),this.autoResizeColumns=!1,this.columnAddable=!1,this.columnLayoutDirty=!1,this.columns=[],this.contextColumn=null,this.checkable=!1,this.checkableStyle=Ka.CheckableStyle.CHECKBOX,this.cellEditorPopup=null,this.compact=!1,this.compactHandler=x.create("TableCompactHandler",{table:this}),this.compactColumn=null,this.dropType=0,this.dropMaximumSize=at.DEFAULT_DROP_MAXIMUM_SIZE,this.groupingStyle=Ka.GroupingStyle.TOP,this.header=null,this.headerEnabled=!0,this.headerVisible=!0,this.headerMenusEnabled=!0,this.hasReloadHandler=!1,this.hierarchical=!1,this.hierarchicalStyle=Ka.HierarchicalStyle.DEFAULT,this.keyStrokes=[],this.menus=[],this.menuBar=null,this.menuBarVisible=!0,this.contextMenu=null,this.multiCheck=!0,this.multiSelect=!0,this.multilineText=!1,this.scrollToSelection=!1,this.scrollTop=0,this.selectedRows=[],this.sortEnabled=!0,this.tableControls=[],this.tableStatusVisible=!1,this.tableTileGridMediator=null,this.tileMode=!1,this.tileTableHeader=null,this.footer=null,this.footerVisible=!1,this.filters=[],this.rows=[],this.rootRows=[],this.visibleRows=[],this.estimatedRowCount=0,this.maxRowCount=0,this.truncatedCellTooltipEnabled=null,this.visibleRowsMap={},this.rowLevelPadding=0,this.rowsMap={},this.rowHeight=0,this.rowWidth=0,this.rowInsets=new rr,this.rowMargins=new rr,this.rowIconVisible=!1,this.rowIconColumnWidth=Sh.NARROW_MIN_WIDTH,this.staticMenus=[],this.selectionHandler=new dh(this),this.tooltips=[],this._filteredRows=[],this.tableNodeColumn=null,this._maxLevel=0,this._aggregateRows=[],this._animationRowLimit=25,this._blockLoadThreshold=25,this.updateBuffer=new fh(this),this.viewRangeSize=10,this.viewRangeDirty=!1,this.viewRangeRendered=new Mi(0,0),this.virtual=!0,this.textFilterEnabled=!0,this.filterSupport=this._createFilterSupport(),this.filteredElementsDirty=!1,this._doubleClickSupport=new et,this._permanentHeadSortColumns=[],this._permanentTailSortColumns=[],this._filterMenusHandler=this._filterMenus.bind(this),this._popupOpenHandler=this._onDesktopPopupOpen.bind(this),this._rerenderViewPortAfterAttach=!1,this._renderViewPortAfterAttach=!1,this._postAttachActions=[],this._desktopPropertyChangeHandler=this._onDesktopPropertyChange.bind(this),this._addWidgetProperties(["tableControls","menus","keyStrokes","staticMenus","tileTableHeader","tableTileGridMediator"]),this.$data=null,this.$emptyData=null,this.$fillBefore=null,this.$fillAfter=null}_init(e){super._init(e),this.resolveConsts([{property:"hierarchicalStyle",constType:Ka.HierarchicalStyle},{property:"checkableStyle",constType:Ka.CheckableStyle},{property:"groupingStyle",constType:Ka.GroupingStyle}]),this._initColumns(),this.rows.forEach((function(e,t){this.rows[t]=this._initRow(e)}),this),this.setFilters(this.filters),this._updateRowStructure({updateTree:!0}),this.menuBar=this._createMenuBar(),this.menuBar.on("propertyChange:visible",(()=>this._refreshMenuBarClasses())),this._setSelectedRows(this.selectedRows),this._setKeyStrokes(this.keyStrokes),this._setMenus(this.menus),this._setTableControls(this.tableControls),this._setTableStatus(this.tableStatus),this._calculateValuesForBackgroundEffect(),this._group(),this._setTileMode(this.tileMode),this._setTileTableHeader(this.tileTableHeader)}_initRow(e){return e instanceof Ya||(e.parent=this,e=x.create("TableRow",e)),this.rowsMap[e.id]=e,this.trigger("rowInit",{row:e}),e}_initColumns(){this.columns=this.columns.map((function(e,t){let i=e;return i.session=this.session,i instanceof Sh?i._setTable(this):(i.table=this,i=x.create(i)),i.index<0&&(i.index=t),i.checkable&&(this.checkableColumn=i),i}),this),this._setCheckable(this.checkable),this.rowIconVisible&&this._insertRowIconColumn(),this._setCompact(this.compact),this._calculateTableNodeColumn(),this._setHeadAndTailSortColumns(),this.columnLayoutDirty=!0}_destroy(){this._destroyColumns(),super._destroy()}_destroyColumns(){this.columns.forEach((e=>{e.destroy()})),this.checkableColumn=null,this.compactColumn=null,this.rowIconColumn=null,this.columns=[]}_calculateTableNodeColumn(){let e=this.visibleColumns().filter((e=>e.nodeColumnCandidate)),t=me.first(e);this.tableNodeColumn&&this.tableNodeColumn!==t&&(this.tableNodeColumn.minWidth=this.tableNodeColumn._initialMinWidth),this.tableNodeColumn=t,this.tableNodeColumn&&(this.tableNodeColumn._initialMinWidth=this.tableNodeColumn.minWidth,this.tableNodeColumn.minWidth=this.rowLevelPadding*this._maxLevel+this.tableNodeColumn.tableNodeLevel0CellPadding+8,this.tableNodeColumn.minWidth>this.tableNodeColumn.width&&(this._isDataRendered()?this.resizeColumn(this.tableNodeColumn,this.tableNodeColumn.minWidth):this.tableNodeColumn.width=this.tableNodeColumn.minWidth))}_createLoadingSupport(){return new z({widget:this,$container:()=>this.$container.hasClass("knight-rider-loading")?this.$container:this.$data})}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this._initTableKeyStrokeContext()}_initTableKeyStrokeContext(){this.keyStrokeContext.registerKeyStroke([new ld(this),new ad(this),new ud(this),new cd(this),new hd(this),new dd(this),new td(this),new id(this),new rd(this),new sd(this),new nd(this),new od(this),new ed(this),new tn(this,this.showContextMenu,this),new Qd(this,this.handleAppLinkAction)])}_insertBooleanColumn(){if(this.checkableStyle===Ka.CheckableStyle.TABLE_ROW)return;let e=x.create("BooleanColumn",{session:this.session,fixedWidth:!0,fixedPosition:!0,guiOnly:!0,nodeColumnCandidate:!1,headerMenuEnabled:!1,showSeparator:!1,width:Sh.NARROW_MIN_WIDTH,table:this});me.insert(this.columns,e,0),this.checkableColumn=e}_insertRowIconColumn(){let e=0,t=x.create("IconColumn",{session:this.session,fixedWidth:!0,fixedPosition:!0,guiOnly:!0,nodeColumnCandidate:!1,headerMenuEnabled:!1,showSeparator:!1,width:this.rowIconColumnWidth,table:this});this.columns[0]===this.checkableColumn&&(e=1),me.insert(this.columns,t,e),this.rowIconColumn=t}handleAppLinkAction(e){let t=n()(e.target),i=this._columnAtX(t.offset().left),s=t.findUp((e=>e.hasClass("table-row")),this.$container).data("row");this._triggerAppLinkAction(i,s,t.data("ref"),t)}_isDataRendered(){return this.rendered&&null!==this.$data}_render(){this.$container=this.$parent.appendDiv("table").addDeviceClass(),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new hh(this)),this.uiCssClass&&this.$container.addClass(this.uiCssClass),this.tileMode?this._renderTileMode():this._renderData(),this.session.desktop.on("popupOpen",this._popupOpenHandler),this.session.desktop.on("propertyChange",this._desktopPropertyChangeHandler)}_renderData(){this.$data=this.$container.appendDiv("table-data"),this.$data.on("mousedown",".table-row",this._onRowMouseDown.bind(this)).on("mouseup",".table-row",this._onRowMouseUp.bind(this)).on("dblclick",".table-row",this._onRowDoubleClick.bind(this)).on("contextmenu",(e=>{e.preventDefault()})),this._installScrollbars({axis:"both"}),this._installImageListeners(),this._installCellTooltipSupport(),this._calculateRowInsets(),this._updateRowWidth(),this._updateRowHeight(),this._renderViewport(),this.scrollToSelection&&this.revealSelection()}_renderProperties(){super._renderProperties(),this._renderTableHeader(),this._renderMenuBarVisible(),this._renderFooterVisible(),this._renderCheckableStyle(),this._renderHierarchicalStyle(),this._renderTextFilterEnabled()}_setCssClass(e){super._setCssClass(e);let t=["table-row-level-padding"];this.cssClass&&t.push(this.cssClass),this.setRowLevelPadding(ts.getSize(t.reduce(((e,t)=>e+" "+t),""),"width","width",15))}_removeData(){this._removeAggregateRows(),this._uninstallImageListeners(),this._uninstallCellTooltipSupport(),this._uninstallScrollbars(),this._removeRows(),this.$fillBefore=null,this.$fillAfter=null,this.$data.remove(),this.$data=null,this.$emptyData=null}_remove(){this.session.desktop.off("propertyChange",this._desktopPropertyChangeHandler),this.session.desktop.off("popupOpen",this._popupOpenHandler),at.uninstallDragAndDropHandler(this),this.header=null,this.$data&&this._removeData(),this.filterSupport.remove(),super._remove()}setRowLevelPadding(e){this.setProperty("rowLevelPadding",e)}_renderRowLevelPadding(){this._rerenderViewport()}setTableControls(e){this.setProperty("tableControls",e)}_renderTableControls(){this.footer&&this.footer._renderControls()}_setTableControls(e){let t;for(t=0;t<this.tableControls.length;t++)this.keyStrokeContext.unregisterKeyStroke(this.tableControls[t]);for(this._setProperty("tableControls",e),t=0;t<this.tableControls.length;t++)this.keyStrokeContext.registerKeyStroke(this.tableControls[t]);this._updateFooterVisibility(),this.tableControls.forEach((function(e){e.tableFooter=this.footer}),this)}_onImageLoadOrError(e){let t=n()(e.target);if("in-progress"===t.data("measure"))return;t.toggleClass("broken","error"===e.type);let i=t.closest(".table-row"),s=i.data("row");if(!s)return;let r=s.height;s.height=this._measureRowHeight(i),r!==s.height&&this.invalidateLayoutTree()}_onRowMouseDown(e){this._doubleClickSupport.mousedown(e),this._$mouseDownRow=n()(e.currentTarget),this._mouseDownRowId=this._$mouseDownRow.data("row").id,this._mouseDownColumn=this._columnAtX(e.pageX),this._$mouseDownRow.window().one("mouseup",(()=>{this._$mouseDownRow=null,this._mouseDownRowId=null,this._mouseDownColumn=null})),this.setContextColumn(this._columnAtX(e.pageX)),this.selectionHandler.onMouseDown(e);let t=3===e.which,i=this._$mouseDownRow.data("row"),s=n()(e.target);if(this._isRowControl(s)&&(i.expanded?this.collapseRow(i):this.expandRow(i)),!x.isOneOf(this.checkableStyle,Ka.CheckableStyle.TABLE_ROW,Ka.CheckableStyle.CHECKBOX_TABLE_ROW)||t&&i.checked||n()(e.target).is(".table-row-control")||s.hasClass("checkable")||s.parent().hasClass("checkable")||this.checkRow(i,!i.checked),t)return this.showContextMenu({pageX:e.pageX,pageY:e.pageY}),!1}_isRowControl(e){return e.hasClass("table-row-control")||e.parent().hasClass("table-row-control")}_onRowMouseUp(e){let t,i,s,r,o=e.which;if(this._doubleClickSupport.doubleClicked())return;if(i=n()(e.currentTarget),this.selectionHandler.onMouseUp(e,i),!this._$mouseDownRow||this._mouseDownRowId!==i.data("row").id)return;if(t=i,s=this._columnAtX(e.pageX),s!==this._mouseDownColumn)return;let l=n()(e.target);if(this._isRowControl(l))return;let a=t.data("row");1===o&&(s.onMouseUp(e,t),r=this._find$AppLink(e)),r?this._triggerAppLinkAction(s,a,r.data("ref"),r):this._triggerRowClick(e,a,o,s)}_onRowDoubleClick(e){let t=n()(e.currentTarget),i=this._columnAtX(e.pageX);this.doRowAction(t.data("row"),i)}showContextMenu(e){this.session.onRequestsDone(this._showContextMenu.bind(this,e))}_showContextMenu(e){if(e=e||{},!this._isDataRendered()||!this.attached)return;if(0===this.selectedRows.length)return;let t=this._filterMenusForContextMenu();if(0===t.length)return;let i=x.nvl(e.pageX,null),s=x.nvl(e.pageY,null);if(null===i||null===s){let e=this.isRowSelectedAndVisible(this.selectionHandler.lastActionRow)?this.selectionHandler.lastActionRow:this.getLastSelectedAndVisibleRow();if(null!==e){let t=e.$row,r=t.offset(),n=pr.offsetBounds(this.$data);r.left+=this.$data.scrollLeft(),i=r.left+10,s=r.top+t.outerHeight()/2,s=Math.min(Math.max(s,n.y+1),n.bottom()-1)}else i=this.$data.offset().left+10,s=this.$data.offset().top+10}this.contextMenu&&this.contextMenu.close(),this.contextMenu=x.create("ContextMenuPopup",{parent:this,menuItems:t,location:{x:i,y:s},$anchor:this.$data,menuFilter:this._filterMenusHandler}),this.contextMenu.open()}isRowSelectedAndVisible(e){return!(!this.isRowSelected(e)||!e.$row)&&pr.offsetBounds(e.$row).intersects(pr.offsetBounds(this.$data))}getLastSelectedAndVisibleRow(){for(let e=this.viewRangeRendered.to;e>=this.viewRangeRendered.from;e--)if(this.isRowSelectedAndVisible(this.rows[e]))return this.rows[e];return null}onColumnVisibilityChanged(){this.columnLayoutDirty=!0,this._calculateTableNodeColumn(),this.trigger("columnStructureChanged"),this._isDataRendered()&&(this._updateRowWidth(),this._redraw(),this.invalidateLayoutTree())}_onScroll(){let e=this.$data[0].scrollTop,t=this.$data[0].scrollLeft;this.scrollTop!==e&&this._renderViewport(),this.scrollTop=e,this.scrollLeft=t}_renderTableStatus(){this.trigger("statusChanged")}setContextColumn(e){this.setProperty("contextColumn",e)}_hasVisibleTableControls(){return this.tableControls.some((e=>e.visible))}hasAggregateTableControl(){return this.tableControls.some((e=>e instanceof Wh))}_createHeader(){return x.create("TableHeader",{parent:this,table:this,enabled:this.headerEnabled,headerMenusEnabled:this.headerMenusEnabled})}_createFooter(){return x.create("TableFooter",{parent:this,table:this})}_installCellTooltipSupport(){yo.install(this.$data,{parent:this,selector:".table-cell",text:this._cellTooltipText.bind(this),htmlEnabled:this._isAggregatedTooltip.bind(this),arrowPosition:50,arrowPositionUnit:"%",nativeTooltip:!Qe.get().isCustomEllipsisTooltipPossible()})}_uninstallCellTooltipSupport(){yo.uninstall(this.$data)}_cellTooltipText(e){let t,i,s=e.parent(),r=this.columnFor$Cell(e,s),n=s.data("row");if(n&&(t=this.cell(r,n),i=t.tooltipText),i)return i;if(this._isAggregatedTooltip(e)&&e.text().trim()){let t=e.children(".text"),i=e.children(".table-cell-icon"),s=i.length&&!i.isVisible();if(t.length&&t.isContentTruncated()||s){let t=e.clone();return t.children(".table-cell-icon").setVisible(!0),"rtl"===e.css("direction")?qt.join("",t.children().get().map((e=>e.outerHTML)).reverse()):t.html()}}return this._isTruncatedCellTooltipEnabled(r)&&e.isContentTruncated()?qt.plainText(e.html(),{trim:!0,removeFontIcons:!0}):void 0}setTruncatedCellTooltipEnabled(e){this.setProperty("truncatedCellTooltipEnabled",e)}_isTruncatedCellTooltipEnabled(e){return null===this.truncatedCellTooltipEnabled?!this.headerVisible||!this.headerEnabled||e.fixedWidth:this.truncatedCellTooltipEnabled}_isAggregatedTooltip(e){let t=e.parent();return t.data("aggregateRow")||t.hasClass("table-aggregate")}reload(e){this.hasReloadHandler&&(this._removeRows(),this._isDataRendered()&&(this._removeAggregateRows(),this._renderFiller()),this._triggerReload(e))}setLoading(e){!e&&this.updateBuffer.isBuffering()||super.setLoading(e)}exportToClipboard(){this._triggerClipboardExport()}_exportToClipboard(){ye.copyText({parent:this,text:this._selectedRowsToText()})}_selectedRowsToText(){let e=this.visibleColumns();return this.selectedRows.map((t=>e.map((e=>{let i,s=e.cell(t);return i=e instanceof Eh?s.value?"X":"":s.htmlEnabled?qt.plainText(s.text):s.text,this._unwrapText(i)})).join("\t"))).join("\n")}_unwrapText(e){return qt.nvl(e).split(/[\n\r]/).map((e=>e.replace(/\t/g," "))).map((e=>e.trim())).filter((e=>!!e.length)).join(" ")}setMultiSelect(e){this.setProperty("multiSelect",e)}toggleSelection(){this.selectedRows.length===this.visibleRows.length?this.deselectAll():this.selectAll()}selectAll(){this.selectRows(this.visibleRows)}deselectAll(){this.selectRows([])}checkAll(e,t){let i=n().extend(t,{checked:e});this.checkRows(this.visibleRows,i)}uncheckAll(e){this.checkAll(!1,e)}updateScrollbars(){Yn.update(this.$data)}_sort(e){let t=this._sortColumns();return!!this._isSortingPossible(t)&&(this.clearAggregateRows(e),!t.length||(t=me.union(t,this.columns),this._sortImpl(t),this._triggerRowOrderChanged(),this._isDataRendered()&&this._renderRowOrderChanges(),this._group(e),!0))}_isSortingPossible(e){return e.every((e=>e.isSortingPossible()))}_sortColumns(){let e=[];for(let t=0;t<this.columns.length;t++){let i=this.columns[t],s=i.sortIndex;s>=0&&(e[s]=i)}return e}_sortImpl(e){let t=(t,i)=>{for(let s=0;s<e.length;s++){let r=e[s],n=r.compare(t,i);if(r.sortActive&&!r.sortAscending&&(n=-n),0!==n)return n}return 0};if(this.hierarchical){this._sortHierarchical(t);let e=[];this.visitRows((t=>{e.push(t)})),this.rows=e}else this.rows.sort(t),this.rootRows=this.rows;this._updateRowStructure({filteredRows:!0,applyFilters:!1,visibleRows:!0})}visitRows(e,t,i){i=x.nvl(i,0),(t=t||this.rootRows).forEach((function(t){e(t,i),this.visitRows(e,t.childRows,i+1)}),this)}_sortHierarchical(e,t){(t=t||this.rootRows).sort(e),t.forEach((function(t){this._sortHierarchical(e,t.childRows)}),this)}_renderRowOrderChanges(){let e,t=this.$rows(),i={};t.length===this.visibleRows.length&&t.each(((t,s)=>{let r=!1,o=n()(s),l=o.data("row");if(this._insertedRows)for(let e=0;e<this._insertedRows.length;e++)if(this._insertedRows[e].id===l.id){r=!0;break}r||(e=!0,i[l.id]=o.offset().top)})),this._rerenderViewport(),this._order$AggregateRows(),this.scrollToSelection&&this.revealSelection(),e&&(t=this.$rows(),t.each(((e,t)=>{let s=n()(t),r=s.data("row"),o=i[r.id];void 0!==o&&s.css("top",o-s.offset().top).animate({top:0},{progress:function(){this._triggerRowOrderChanged(r,!0),this.updateScrollbars()}.bind(this)})})))}setSortEnabled(e){this.setProperty("sortEnabled",e)}sort(e,t,i,s){let r,n,o;o=!(i=x.nvl(i,!1)),(s=x.nvl(s,!1))?this._removeSortColumn(e):this._addSortColumn(e,t,i),this.header&&this.header.onSortingChanged(),n=this._sort(o),r={column:e,sortAscending:e.sortAscending},s&&(r.sortingRemoved=!0),i&&(r.multiSort=!0),n||(r.sortingRequested=!0,this._animateAggregateRows=o),this.trigger("sort",r)}_addSortColumn(e,t,i){let s,r;t=x.nvl(t,e.sortAscending?"asc":"desc"),i=x.nvl(i,!0),this._updateSortIndexForColumn(e,i),i||(s=this._groupedColumns().length,r=this._sortColumns().length,1===r&&1===s||(e.grouped=!1)),e.sortAscending="asc"===t,e.sortActive=!0}_updateSortIndexForColumn(e,t){let i,s=-1;t?e.sortActive&&-1!==e.sortIndex||(s=Math.max(-1,me.max(this.columns.map((e=>void 0===e.sortIndex||e.initialAlwaysIncludeSortAtEnd?-1:e.sortIndex)))),e.sortIndex=s+1,this._permanentTailSortColumns.forEach((e=>{e.sortIndex++}))):(e.initialAlwaysIncludeSortAtBegin||e.initialAlwaysIncludeSortAtEnd||(e.sortIndex=this._permanentHeadSortColumns.length),me.eachSibling(this.columns,e,(e=>{e.sortActive&&this._removeSortColumnInternal(e)})),i=e.initialAlwaysIncludeSortAtBegin||e.initialAlwaysIncludeSortAtEnd?0:1,this._permanentTailSortColumns.forEach((function(e,t){e.sortIndex=this._permanentHeadSortColumns.length+i+t}),this))}_removeSortColumn(e){e.initialAlwaysIncludeSortAtBegin||e.initialAlwaysIncludeSortAtEnd||(me.eachSibling(this.columns,e,(t=>{t.sortIndex>e.sortIndex&&(t.sortIndex=t.sortIndex-1)})),this._removeSortColumnInternal(e))}_removeSortColumnInternal(e){e.initialAlwaysIncludeSortAtBegin||e.initialAlwaysIncludeSortAtEnd||(e.sortActive=!1,e.grouped=!1,e.sortIndex=-1)}isGroupingPossible(e){let t=!0;return!this.hierarchical&&(!!this.sortEnabled&&(!(!this._permanentHeadSortColumns||0!==this._permanentHeadSortColumns.length)||(e.initialAlwaysIncludeSortAtBegin?(t=!0,me.eachSibling(this._permanentHeadSortColumns,e,(i=>{i.sortIndex<e.sortIndex&&(t=t&&i.grouped)})),t):!e.initialAlwaysIncludeSortAtEnd&&(this._permanentHeadSortColumns.forEach((e=>{t=t&&e.grouped})),t))))}isAggregationPossible(e){return e instanceof Ih&&(!e.grouped&&(!(!e.allowedAggregationFunctions||e.allowedAggregationFunctions.length<=1)&&(this.isGrouped()||this.hasAggregateTableControl())))}changeAggregation(e,t){this.changeAggregations([e],[t])}changeAggregations(e,t){e.forEach((function(e,i){let s=t[i];e.aggregationFunction!==s&&(e.setAggregationFunction(s),this._triggerAggregationFunctionChanged(e))}),this),this._group()}_addGroupColumn(e,t,i){let s=-1;this.isGroupingPossible(e)&&(t=x.nvl(t,e.sortAscending?"asc":"desc"),i=x.nvl(i,!0),e.initialAlwaysIncludeSortAtBegin||e.initialAlwaysIncludeSortAtEnd?e.initialAlwaysIncludeSortAtBegin&&(e.grouped=!0):(i?(s=Math.max(-1,me.max(this.columns.map((e=>void 0===e.sortIndex||e.initialAlwaysIncludeSortAtEnd||!e.grouped?-1:e.sortIndex)))),e.sortActive?(me.eachSibling(this.columns,e,(t=>{t.sortActive&&!t.initialAlwaysIncludeSortAtBegin&&!t.initialAlwaysIncludeSortAtEnd&&t.sortIndex>s&&t.sortIndex<e.sortIndex&&t.sortIndex++})),e.sortIndex=s+1):(e.sortIndex=s+1,me.eachSibling(this.columns,e,(e=>{e.sortActive&&!e.initialAlwaysIncludeSortAtBegin&&!e.initialAlwaysIncludeSortAtEnd&&e.sortIndex>s&&e.sortIndex++})),this._permanentTailSortColumns.forEach((e=>{e.sortIndex++})))):(s=this._permanentHeadSortColumns.length,e.sortActive?(me.eachSibling(this.columns,e,(t=>{t.sortActive&&!t.initialAlwaysIncludeSortAtBegin&&!t.initialAlwaysIncludeSortAtEnd&&t.sortIndex>=s&&t.sortIndex<e.sortIndex&&t.sortIndex++})),e.sortIndex=s):(me.eachSibling(this.columns,e,(e=>{e.sortActive&&!e.initialAlwaysIncludeSortAtBegin&&!e.initialAlwaysIncludeSortAtEnd&&e.sortIndex>=s&&e.sortIndex++})),e.sortIndex=s,this._permanentTailSortColumns.forEach((e=>{e.sortIndex++}))),me.eachSibling(this.columns,e,(e=>{e.sortActive&&!e.initialAlwaysIncludeSortAtBegin&&!e.initialAlwaysIncludeSortAtEnd&&e.sortIndex>=s&&(e.grouped=!1)}))),e.sortAscending="asc"===t,e.sortActive=!0),e.grouped=!0)}_removeGroupColumn(e){e.grouped=!1,e.initialAlwaysIncludeSortAtBegin&&this.columns.forEach((t=>{t.sortIndex>=e.sortIndex&&(t.grouped=!1)})),this._removeSortColumn(e)}_buildRowDiv(e){let t=this.rowWidth,i="table-row";e.cssClass&&(i+=" "+e.cssClass),e.enabled||(i+=" disabled"),e.checked&&this.checkableStyle===Ka.CheckableStyle.TABLE_ROW&&(i+=" checked"),e.filterAccepted||(i+=" filter-not-accepted"),me.empty(e.childRows)&&(i+=" leaf");let s,r,n='<div class="'+i+'" style="width: '+t+'px">';for(s=0;s<this.columns.length;s++)r=this.columns[s],r.isVisible()&&(n+=r.buildCellForRow(e));return n+="</div>",n}_calculateRowInsets(){let e=this.$data.appendDiv("table-row");this.rowMargins=pr.margins(e),this.rowBorders=pr.borders(e),e.remove()}_updateRowWidth(){this.rowWidth=this.visibleColumns().reduce(((e,t)=>this.autoResizeColumns?e+t.width:e+t._realWidthIfAvailable()),this.rowBorders.horizontal())}_updateRealColumnWidths(e){if(!Qe.get().hasTableCellZoomBug())return!1;let t=!1;return e=e||this.$rows().eq(0),this.visibleColumns().forEach((function(i,s){this._updateRealColumnWidth(i,s,e)&&(t=!0)}),this),t}_updateRealColumnWidth(e,t,i){if(!Qe.get().hasTableCellZoomBug())return!1;i=i||this.$rows().eq(0);let s=this.$cell(x.nvl(t,e),i);if(0===s.length&&null!==e._realWidth)return e._realWidth=null,!0;let r=pr.size(s,{exact:!0}).width;return r!==e._realWidth&&(e._realWidth=r,!0)}_updateRowHeight(){let e=this.$data.appendDiv("table-row"),t=this._build$AggregateRow().appendTo(this.$data);e.appendDiv("table-cell").html(" "),t.appendDiv("table-cell table-aggregate-cell").appendSpan("text").html(" "),this.rowHeight=this._measureRowHeight(e),this.aggregateRowHeight=this._measureRowHeight(t),e.remove(),t.remove()}_updateRowHeights(){this.rows.forEach((e=>{e.$row?e.height=this._measureRowHeight(e.$row):e.height=null})),this._aggregateRows.forEach((e=>{e.$row?e.height=this._measureRowHeight(e.$row):e.height=null}))}_renderRowsInRange(e){let t,i="",s=0,r=!1,o=this.visibleRows;if(0===o.length)return;let l=new Mi(0,this.rows.length);if(e=l.intersect(e),this.viewRangeRendered.size()>0&&!e.intersect(this.viewRangeRendered).equals(new Mi(0,0)))throw new Error("New range must not intersect with existing.");e.to<=this.viewRangeRendered.from&&(r=!0);let a=this.viewRangeRendered.union(e);if(2===a.length)throw new Error("Can only prepend or append rows to the existing range. Existing: "+this.viewRangeRendered+". New: "+a);this.viewRangeRendered=a[0],this._removeEmptyData();for(let t=e.from;t<e.to;t++){let e=o[t];i+=this._buildRowDiv(e),s++}t=this.$data.makeElement(i),t=r?this.$fillBefore?t.insertAfter(this.$fillBefore):t.prependTo(this.$data):this.$fillAfter?t.insertBefore(this.$fillAfter):t.appendTo(this.$data),t.each(((t,i)=>{let r=n()(i);this.viewRangeRendered.size()===s&&this._updateRealColumnWidths(r)&&(this._updateRowWidth(),this.header&&this.header.rendered&&this.header.resizeHeaderItems()),r.cssWidth(this.rowWidth);let l=o[e.from+t];Ka.linkRowToDiv(l,r),this._installRow(l)})),n().log.isTraceEnabled()&&(n().log.trace(s+" new rows rendered from "+e),n().log.trace(this._rowsRenderedInfo()))}_rowsRenderedInfo(){return this.$rows().length+" rows rendered "+("("+this.viewRangeRendered+")")}moveRowToTop(e){let t=this.rows.indexOf(e);this.moveRow(t,0)}moveRowToBottom(e){let t=this.rows.indexOf(e);this.moveRow(t,this.rows.length-1)}moveRowUp(e){let t=this.rows.indexOf(e),i=t-1;if(this.hierarchical){let t=this.rows.filter((t=>e.parentRow===t.parentRow),this),s=t.indexOf(e),r=t[s-1];i=r?this.rows.indexOf(r):0}this.moveRow(t,i)}moveRowDown(e){let t=this.rows.indexOf(e),i=t+1;if(this.hierarchical){let t=this.rows.filter((t=>e.parentRow===t.parentRow),this),s=t.indexOf(e),r=t[s+1];i=r?this.rows.indexOf(r):this.rows.length}this.moveRow(t,i)}moveVisibleRowUp(e){let t,i,s=this.rows.indexOf(e),r=this.visibleRows.indexOf(e);if(this.hierarchical){let s=this.visibleRows.filter((t=>e.parentRow===t.parentRow),this);if(t=s[s.indexOf(e)-1],!t)return;i=this.rows.indexOf(t)}else{if(t=this.visibleRows[r-1],!t)return;i=this.rows.indexOf(t)}this.moveRow(s,i)}moveVisibleRowDown(e){let t,i,s=this.rows.indexOf(e),r=this.visibleRows.indexOf(e);if(this.hierarchical){let s=this.visibleRows.filter((t=>e.parentRow===t.parentRow),this);if(t=s[s.indexOf(e)+1],!t)return;i=this.rows.indexOf(t)}else{if(t=this.visibleRows[r+1],!t)return;i=this.rows.indexOf(t)}this.moveRow(s,i)}moveRow(e,t){let i=this.rows.length;e=Math.max(e,0),e=Math.min(e,i-1),t=Math.max(t,0),e!==(t=Math.min(t,i-1))&&(me.move(this.rows,e,t),this.updateRowOrder(this.rows))}_removeRowsInRange(e){let t,i,s=0,r=this.visibleRows;e=new Mi(0,r.length).intersect(e);let o=this.viewRangeRendered.subtract(e);if(2===o.length)throw new Error("Can only remove rows at the beginning or end of the existing range. "+this.viewRangeRendered+". New: "+o);for(this.viewRangeRendered=o[0],i=e.from;i<e.to;i++)t=r[i],this._removeRow(t),s++;n().log.isTraceEnabled()&&(n().log.trace(s+" rows removed from "+e+"."),n().log.trace(this._rowsRenderedInfo()))}removeAllRows(){this._isDataRendered()&&this.$rows().each(((e,t)=>{let i=n()(t),s=i.data("row");i.hasClass("hiding")||this._removeRow(s)})),this.viewRangeRendered=new Mi(0,0)}_removeRows(e){if(!e)return void this.removeAllRows();let t=this.isAttachedAndRendered();(e=me.ensure(e)).forEach((e=>{let i=this.visibleRows.indexOf(e);if(-1===i)return;let s=Boolean(e.$row),r=this.viewRangeRendered.contains(i);if(t){if(!s&&r)throw new Error("Inconsistency found while removing row. Row is undefined but inside rendered view range. RowIndex: "+i);if(s&&!r)throw new Error("Inconsistency found while removing row. Row is rendered but not inside rendered view range. RowIndex: "+i)}this._removeRow(e),(r||i<this.viewRangeRendered.from)&&(i<this.viewRangeRendered.from?(this.viewRangeRendered.from--,this.viewRangeRendered.to--):i<=this.viewRangeRendered.to&&this.viewRangeRendered.to--)}))}_removeRow(e){let t=e.$row;t&&(this._destroyTooltipsForRow(e),this._destroyCellEditorForRow(e),t.hasClass("hiding")||(t.remove(),e.$row=null))}_showRow(e){let t=e.$row;t&&(t.is(".showing")||(t.hide(),t.addClass("showing"),t.removeClass("hiding"),t.stop().slideDown({duration:250,complete:function(){t.removeClass("showing"),this.updateScrollbars()}.bind(this)})))}_hideRow(e){let t=e.$row;t&&(t.is(".hiding")||(t.addClass("hiding"),t.removeClass("showing"),t.stop().slideUp({duration:250,complete:function(){e.$row&&(t.remove(),t[0]===e.$row[0]&&(e.$row=null),this.updateScrollbars())}.bind(this)})))}_installRow(e){if(e.height=this._measureRowHeight(e.$row),e.hasError&&this._showCellErrorForRow(e),this.cellEditorPopup&&!this.cellEditorPopup.rendered&&this.cellEditorPopup.row.id===e.id){let t=this.cellEditorPopup.cell.field;this.startCellEdit(this.cellEditorPopup.column,e,t)}}_calcRowLevelPadding(e){return e?this._calcRowLevelPadding(e.parentRow)+this.rowLevelPadding:-this.rowLevelPadding}_showCellErrorForRow(e){let t=this.$cellsForRow(e.$row),i=this;t.each((function(t){let s=n()(this),r=i.cellByCellIndex(t,e);r.errorStatus&&i._showCellError(e,s,r.errorStatus)}))}_showCellError(e,t,i){let s,r;r={parent:this,text:i.message,autoRemove:!1,$anchor:t,table:this},s=x.create("TableTooltip",r),s.render(),s.row=e,this.tooltips.push(s)}_columnAtX(e){let t=0,i=this.$data.offset().left+this.rowBorders.left+this.rowMargins.left,s=this.$data.scrollLeft();if(e<i)return this.columns[0];i-=s;let r=this.visibleColumns(),n=me.find(r,(s=>{if(t=i+s.width,e>=i&&e<t)return!0;i=t}));return n||(n=r[r.length-1]),n}_find$AppLink(e){let t=n()(e.target),i=n()(e.delegateTarget),s=t.findUp((e=>e.hasClass("app-link")),i);return s.length>0?s:null}_filterMenus(e,t,i,s,r){return al.filterAccordingToSelection("Table",this.selectedRows.length,e,t,i,s,r)}_filterMenusForContextMenu(){return this._filterMenus(this.menus,hl.CONTEXT_MENU,!0,!1,["Header"])}setStaticMenus(e){this.setProperty("staticMenus",e),this._updateMenuBar()}_removeMenus(){}notifyRowSelectionFinished(){this._triggerRowsSelectedPending&&(this._triggerRowsSelected(),this._triggerRowsSelectedPending=!1),this.session.onRequestsDone(this._updateMenuBar.bind(this))}_triggerRowClick(e,t,i,s){let r={originalEvent:e,row:t,mouseButton:i,column:s};this.trigger("rowClick",r)}_triggerRowAction(e,t){this.trigger("rowAction",{row:e,column:t})}focusCell(e,t){let i=this.cell(e,t);this.enabledComputed&&t.enabled&&i.editable&&this.prepareCellEdit(e,t)}prepareCellEdit(e,t,i){let s=n().resolvedPromise();return this.cellEditorPopup&&(s=this.cellEditorPopup.waitForCompleteCellEdit()),s.then(this.prepareCellEditInternal.bind(this,e,t,i))}prepareCellEditInternal(e,t,i){let s=new ht({column:e,row:t});if(this.openFieldPopupOnCellEdit=x.nvl(i,!1),this.trigger("prepareCellEdit",s),!s.defaultPrevented){this.selectRow(t);let i=e.createEditor(t);this.startCellEdit(e,t,i)}}cell(e,t){return e===this.rowIconColumn?x.create("Cell",{iconId:t.iconId,cssClass:qt.join(" ","row-icon-cell",t.cssClass)}):e===this.checkableColumn?x.create("Cell",{value:t.checked,editable:!0,cssClass:t.cssClass}):e===this.compactColumn?x.create("Cell",{text:t.compactValue,htmlEnabled:!0}):t.cells[e.index]}cellByCellIndex(e,t){return this.cell(this.columns[e],t)}cellValue(e,t){let i=this.cell(e,t);return i?void 0!==i.value?i.value:"":i}cellText(e,t){let i=this.cell(e,t);return i&&i.text||""}nextEditableCellPos(e,t,i){let s,r,n,o,l,a=this.columns.indexOf(e);return r=a+1,i&&(r=a-1),s=this.nextEditableCellPosForRow(r,t,i),s||(l=function(e){return!!e.$row&&(r=0,i&&(r=this.columns.length-1),s=this.nextEditableCellPosForRow(r,e,i),!!s||void 0)}.bind(this),n=this.rows.indexOf(t),o=n+1,i&&(o=n-1),me.findFrom(this.rows,o,l,i),s)}nextEditableCellPosForRow(e,t,i){let s,r,n;if(n=function(e){return!(!e.isVisible()||e.guiOnly)&&(s=this.cell(e,t),this.enabledComputed&&t.enabled&&s.editable)}.bind(this),r=me.findFrom(this.columns,e,n,i),r)return{column:r,row:t}}clearAggregateRows(e){this._aggregateRows.forEach((e=>{e.prevRow&&(e.prevRow.aggregateRowAfter=null),e.nextRow&&(e.nextRow.aggregateRowBefore=null)}),this),this._isDataRendered()&&(this._removeAggregateRows(e),this._renderSelection()),this._aggregateRows=[]}_forEachVisibleColumn(e,t,i){let s;this.visibleColumns().forEach(((r,n)=>{r[e]?(i&&(s=r.cellValueOrTextForCalculation(i)),t[n]=r[e](t[n],s)):t[n]=void 0}))}_group(e){let t,i,s,r,n,o=this._groupedColumns(),l=this.groupingStyle===Ka.GroupingStyle.TOP,a=[];this.clearAggregateRows(),o.length&&(t=this.visibleRows,this._forEachVisibleColumn("aggrStart",a),t.forEach(((e,h)=>{r||(r=e),this._forEachVisibleColumn("aggrStep",a,e),i=t[h+1],s=h===t.length-1||this._isNewGroup(o,e,i),s&&(this._forEachVisibleColumn("aggrFinish",a),this._addAggregateRow(a,l?n:e,l?r:i),this._forEachVisibleColumn("aggrStart",a),r=null,n=e)})),this._isDataRendered()&&(this._renderAggregateRows(e),this._renderSelection()))}_isNewGroup(e,t,i){let s,r,n,o=!1;if(!i)return!0;for(s=0;s<e.length;s++)if(r=e[s],n=r&&r.cellTextForGrouping&&"function"==typeof r.cellTextForGrouping,o=o||n&&r.cellTextForGrouping(t)!==r.cellTextForGrouping(i),o=o||!n&&this.cellText(r,t)!==this.cellText(r,i),o)return!0;return!1}_groupedColumns(){return this.columns.filter((e=>e.grouped))}_addAggregateRow(e,t,i){let s={contents:e.slice(),prevRow:t,nextRow:i};this._aggregateRows.push(s),t&&(t.aggregateRowAfter=s),i&&(i.aggregateRowBefore=s)}_removeAggregateRows(e){0!==this._aggregateRows.length&&((e=x.nvl(e,!1))?this._aggregateRows.forEach((function(e,t){this._hideRow(e)}),this):(this._aggregateRows.forEach((function(e){this._removeRow(e)}),this),this.updateScrollbars()))}_renderAggregateRows(e){let t=this.groupingStyle===Ka.GroupingStyle.TOP,i=t?"insertBefore":"insertAfter";e=x.nvl(e,!1),this._aggregateRows.forEach((function(s,r){if(s.$row)return;let o=t?s.nextRow:s.prevRow;if(!o||!o.$row)return;let l=this._build$AggregateRow(s);l[i](o.$row).width(this.rowWidth),this.visibleColumns().map((e=>n()(e.buildCellForAggregateRow(s)).appendTo(l))).forEach((e=>this._resizeAggregateCell(e))),s.height=this._measureRowHeight(l),s.$row=l,e&&this._showRow(s)}),this)}_build$AggregateRow(e){let t=this.groupingStyle===Ka.GroupingStyle.TOP,i=this.$container.makeDiv("table-aggregate-row").data("aggregateRow",e);return i.toggleClass("grouping-style-top",t),i.toggleClass("grouping-style-bottom",!t),i}groupColumn(e,t,i,s){let r,n;t=x.nvl(t,!1),(s=x.nvl(s,!1))&&this._removeGroupColumn(e),this.isGroupingPossible(e)&&(s||this._addGroupColumn(e,i,t),this.header&&this.header.onSortingChanged(),n=this._sort(!0),r={column:e,groupAscending:e.sortAscending},s&&(r.groupingRemoved=!0),t&&(r.multiGroup=!0),n||(r.groupingRequested=!0,this._animateAggregateRows=!0),this.trigger("group",r))}removeColumnGrouping(e){e&&this.groupColumn(e,!1,"asc",!0)}removeAllColumnGroupings(){this.columns.filter((e=>e.grouped)).forEach(this.removeColumnGrouping.bind(this))}isGrouped(){return this.columns.some((e=>e.grouped))}setColumnBackgroundEffect(e,t){e.setBackgroundEffect(t)}_updateBackgroundEffect(){this.columns.forEach((e=>{e.backgroundEffect&&e.updateBackgroundEffect()}),this)}_calculateValuesForBackgroundEffect(){this.columns.forEach((e=>{e.backgroundEffect&&e.calculateMinMaxValues()}),this)}_markAutoOptimizeWidthColumnsAsDirty(){this.columns.forEach((e=>{e.autoOptimizeWidthRequired=!0}))}_markAutoOptimizeWidthColumnsAsDirtyIfNeeded(e,t,i){let s,r=!1;for(s=e.length-1;s>=0;s--){let n=e[s];this.cellValue(n,t)!==this.cellValue(n,i)&&(n.autoOptimizeWidthRequired=!0,e.splice(s,1),r=!0)}return r}setMultiCheck(e){this.setProperty("multiCheck",e)}checkedRows(){return this.rows.filter((e=>e.checked))}checkRow(e,t,i){let s=n().extend(i,{checked:t});this.checkRows([e],s)}checkRows(e,t){let i=n().extend({checked:!0,checkOnlyEnabled:!0},t),s=[];!this.checkable||!this.enabledComputed&&i.checkOnlyEnabled||((e=me.ensure(e)).forEach((function(e){if((e.enabled||!i.checkOnlyEnabled)&&e.checked!==i.checked){if(!this.multiCheck&&i.checked)for(let e=0;e<this.rows.length;e++)this.rows[e].checked&&(this.rows[e].checked=!1,s.push(this.rows[e]));e.checked=i.checked,s.push(e)}}),this),this._isDataRendered()&&s.forEach((function(e){this._renderRowChecked(e)}),this),this._triggerRowsChecked(s))}uncheckRow(e,t){this.uncheckRows([e],t)}uncheckRows(e,t){let i=n().extend({checked:!1},t);this.checkRows(e,i)}isTableNodeColumn(e){return this.hierarchical&&this.tableNodeColumn===e}collapseRow(e){this.collapseRows(me.ensure(e))}collapseAll(){this.expandRowsInternal(this.rootRows,!1,!0)}expandAll(){this.expandRowsInternal(this.rootRows,!0,!0)}collapseRows(e,t){this.expandRowsInternal(e,!1,t)}expandRow(e,t){this.expandRows(me.ensure(e))}expandRows(e,t){this.expandRowsInternal(e,!0,t)}expandRowsInternal(e,t,i){let s=[],r=[];e=e||this.rootRows,t=x.nvl(t,!0),(i=x.nvl(i,!1))?this.visitRows((e=>{e.expanded!==t&&(e.expanded=t,s.push(e),e.$row&&r.push(e))}),e):s=e.filter((e=>{let i=e.expanded!==t;return i&&e.$row&&r.push(e),e.expanded=t,i})),0!==s.length&&(this._updateRowStructure({visibleRows:!0}),this._triggerRowsExpanded(s),this._isDataRendered()&&(this._renderRowDelta(),r.forEach((e=>{e.animateExpansion()})),e[0].$row&&Yn.ensureExpansionVisible({element:e[0],$element:e[0].$row,$scrollable:this.get$Scrollable(),isExpanded:e=>e.expanded,getChildren:e=>e.childRows,defaultChildHeight:this.rowHeight})))}doRowAction(e,t){1===this.selectedRows.length&&this.selectedRows[0]===e&&(t=t||this.columns[0],e&&t&&this._triggerRowAction(e,t))}insertRow(e){this.insertRows([e])}insertRows(e){if(0===(e=me.ensure(e)).length)return;let t=0===this.rows.length;e.forEach((function(t,i){(t=this._initRow(t)).status=Ya.Status.INSERTED,e[i]=t,this.rows.push(t)}),this),this.filterSupport.applyFilters(e),this._updateRowStructure({updateTree:!0,filteredRows:!0,applyFilters:!1,visibleRows:!0}),this._filterCount()>0&&e.some((e=>e.filterAccepted))&&this._triggerFilter(),this._calculateValuesForBackgroundEffect(),this._markAutoOptimizeWidthColumnsAsDirty(),this._triggerRowsInserted(e),this._sortAfterInsert(t),this._isDataRendered()&&(this.hierarchical&&this._renderRowOrderChanges(),this._insertedRows?me.pushAll(this._insertedRows,e):(this._insertedRows=e,setTimeout((()=>{this._insertedRows=null}),0)),this.viewRangeDirty=!0,this._renderViewport(),this.invalidateLayoutTree())}_sortAfterInsert(e){this._sort()}deleteRow(e){this.deleteRows([e])}deleteRows(e){if(0===(e=me.ensure(e)).length)return;let t,i,s=[];this.visitRows((e=>{this.rowsMap[e.id]&&(s.push(e),this._isDataRendered()&&(this.cellEditorPopup&&this.cellEditorPopup.row.id===e.id&&this.cellEditorPopup.cancelEdit(),this._removeRows(e),t=!0),me.remove(this.rows,e),me.remove(this.visibleRows,e),this._filterCount()>0&&me.remove(this._filteredRows,e)&&(i=!0),delete this.rowsMap[e.id],this.selectionHandler.lastActionRow===e&&this.selectionHandler.clearLastSelectedRowMarker())}),e),this.deselectRows(s),this._updateRowStructure({updateTree:!0,filteredRows:!0,applyFilters:!1,visibleRows:!0}),i&&this._triggerFilter(),this._group(),this._updateBackgroundEffect(),this._markAutoOptimizeWidthColumnsAsDirty(),this._triggerRowsDeleted(e),t&&(this._renderViewport(),this._renderRangeMarkers(),this._renderFiller(),this._renderEmptyData(),this.invalidateLayoutTree())}deleteAllRows(){let e=this._filterCount()>0&&this._filteredRows.length>0,t=this.rows;this._isDataRendered()&&(this.cellEditorPopup&&this.cellEditorPopup.cancelEdit(),this.selectionHandler.clearLastSelectedRowMarker(),this._removeRows()),this.rows=[],this.rowsMap={},this._filteredRows=[],this.deselectAll(),this._updateRowStructure({updateTree:!0,filteredRows:!0,applyFilters:!1,visibleRows:!0}),e&&this._triggerFilter(),this._markAutoOptimizeWidthColumnsAsDirty(),this._group(),this._updateBackgroundEffect(),this._triggerAllRowsDeleted(t),this._isDataRendered()&&(this._renderFiller(),this._renderViewport(),this._renderEmptyData(),this.invalidateLayoutTree())}updateRow(e){this.updateRows([e])}updateRows(e){if(0===(e=me.ensure(e)).length)return;if(this.updateBuffer.isBuffering())return void this.updateBuffer.buffer(e);let t,i,s,r=this.columns.filter((e=>e.autoOptimizeWidth&&!e.autoOptimizeWidthRequired)),n={};this.rows.forEach(((e,t)=>{n[e.id]=t}),this);let o={},l=!1;e=e.map((function(e){let a=e.parentRow,h=this.rowsMap[e.id];if(o[e.id]=h,!h)throw new Error("Update event received for non existing row. RowId: "+e.id);return e.parentRow&&!Ai.isNullOrUndefined(e.parentRow.id)&&(a=e.parentRow.id),l=l||x.nvl(h._parentRowId,null)!==x.nvl(a,null),i=i||h.expanded!==x.nvl(e.expanded,!1),(e=this._initRow(e)).status===Ya.Status.NON_CHANGED&&e.cells.some(((t,i)=>{let s=h.cells[i];return(!s||s.value!==t.value)&&(e.status=Ya.Status.UPDATED,!0)})),this.selectionHandler.lastActionRow===h&&(this.selectionHandler.lastActionRow=e),me.replace(this.selectedRows,h,e),this.rows[n[e.id]]=e,e.filterAccepted=h.filterAccepted,this._filterCount()>0&&(t=this._applyFiltersForRow(e)||t),s=this._markAutoOptimizeWidthColumnsAsDirtyIfNeeded(r,h,e),e}),this),this._updateRowStructure({updateTree:!0,filteredRows:!0,applyFilters:!1,visibleRows:!0}),this._triggerRowsUpdated(e),this._isDataRendered()&&(this._renderUpdateRows(e,o),l&&this._renderRowOrderChanges()),t&&this._triggerFilter(),(t||i)&&this._renderRowDelta(),this._sortAfterUpdate(),this._updateBackgroundEffect(),this.invalidateLayoutTree()}_renderUpdateRows(e,t){e.forEach((function(e){let i,s=t[e.id];s.$row&&!s.$row.hasClass("hiding")&&(i=n()(this._buildRowDiv(e)),i.copyCssClasses(s.$row,Ka.SELECTION_CLASSES+" first last"),s.$row.replaceWith(i),Ka.linkRowToDiv(e,i),this._destroyTooltipsForRow(e),this._destroyCellEditorForRow(e),this._installRow(e),s.$row.hasClass("showing")&&s.$row.outerHeight()<e.$row.outerHeight()/3&&this._showRow(e))}),this)}_sortAfterUpdate(){this._sort()}isHierarchical(){return this.hierarchical}_setHierarchical(e){this.hierarchical!==e&&(e&&this.removeAllColumnGroupings(),this._setProperty("hierarchical",e))}updateRowOrder(e){if((e=me.ensure(e)).length!==this.rows.length)throw new Error("Row order may not be updated because lengths of the arrays differ.");this.rows=e.slice(),this._updateRowStructure({updateTree:!0,filteredRows:!0,applyFilters:!1,visibleRows:!0}),this.clearAggregateRows(this._animateAggregateRows),this._isDataRendered()&&this._renderRowOrderChanges(),this._triggerRowOrderChanged(),this._group(this._animateAggregateRows),this._animateAggregateRows=!1}_destroyTooltipsForRow(e){for(let t=this.tooltips.length-1;t>=0;t--)this.tooltips[t].row.id===e.id&&(this.tooltips[t].destroy(),this.tooltips.splice(t,1))}_destroyCellEditorForRow(e){this.cellEditorPopup&&this.cellEditorPopup.rendered&&this.cellEditorPopup.row.id===e.id&&this.cellEditorPopup.destroy()}startCellEdit(e,t,i){if(i.destroyed)return;if(!this._isDataRendered())return void this._postRenderActions.push(this.startCellEdit.bind(this,e,t,i));if(!this.$container.isAttached())return void this._postAttachActions.push(this.startCellEdit.bind(this,e,t,i));this.trigger("startCellEdit",{column:e,row:t,field:i}),this.ensureRowRendered(t);let s=e.startCellEdit(t,i);return this.cellEditorPopup=s,this.$container.toggleClass("has-cell-editor-popup",!!s),s}endCellEdit(e,t){this.cellEditorPopup?this._destroyCellEditorPopup(this._updateCellFromEditor.bind(this,this.cellEditorPopup,e,t)):e.destroy()}_updateCellFromEditor(e,t,i){if(i=x.nvl(i,!1)){e.column.updateCellFromEditor(e.row,t)}t.destroy()}completeCellEdit(){let e=this.cellEditorPopup.cell.field,t=new ht({field:e,row:this.cellEditorPopup.row,column:this.cellEditorPopup.column,cell:this.cellEditorPopup.cell});if(this.trigger("completeCellEdit",t),!t.defaultPrevented)return this.endCellEdit(e,!0)}cancelCellEdit(){let e=this.cellEditorPopup.cell.field,t=new ht({field:e,row:this.cellEditorPopup.row,column:this.cellEditorPopup.column,cell:this.cellEditorPopup.cell});this.trigger("cancelCellEdit",t),t.defaultPrevented||this.endCellEdit(e)}scrollTo(e,t){0!==this.viewRangeRendered.size()&&(this.ensureRowRendered(e),e.$row&&Yn.scrollTo(this.$data,e.$row,t))}scrollPageUp(){let e=Math.max(0,this.$data[0].scrollTop-this.$data.height());this.setScrollTop(e)}scrollPageDown(){let e=Math.min(this.$data[0].scrollHeight,this.$data[0].scrollTop+this.$data.height());this.setScrollTop(e)}setScrollTop(e){this.setProperty("scrollTop",e),this._isDataRendered()&&this._renderViewport()}_renderScrollTop(){this.rendering||Yn.scrollTop(this.get$Scrollable(),this.scrollTop)}get$Scrollable(){return this.$data?this.$data:this.$container}setScrollToSelection(e){this.setProperty("scrollToSelection",e)}revealSelection(){this._isDataRendered()?this.selectedRows.length>0&&this.scrollTo(this.selectedRows[0]):this.session.layoutValidator.schedulePostValidateFunction(this.revealSelection.bind(this))}revealChecked(){let e=me.find(this.rows,(e=>!0===e.checked));e&&this.scrollTo(e)}_rowById(e){return this.rowsMap[e]}_rowsByIds(e){return e.map(this._rowById.bind(this))}_rowsToIds(e){return e.map((e=>e.id))}hasRow(e){return Boolean(this.rowsMap[e.id])}_renderSelection(e){e=me.ensure(e||this.selectedRows);let t=(e,t,i)=>{let s=e.hasClass(i);return t&&!s?(e.addClass(i),!0):!(t||!s)&&(e.removeClass(i),!0)};this._renderNoRowsSelectedMarker();for(let i=0;i<e.length;i++){let s=e[i];if(!s.$row)continue;let r=-1!==this.selectedRows.indexOf(s),n=this.visibleRows,o=n.indexOf(s)-1,l=o>=0&&-1!==this.selectedRows.indexOf(n[o]),a=n.indexOf(s)+1,h=a<n.length&&-1!==this.selectedRows.indexOf(n[a]);r&&l&&s.aggregateRowBefore&&(l=!1),r&&h&&s.aggregateRowAfter&&(h=!1);let d=0+t(s.$row,r,"selected")+t(s.$row,r&&!l&&h,"select-top")+t(s.$row,r&&l&&!h,"select-bottom")+t(s.$row,r&&!l&&!h,"select-single")+t(s.$row,r&&l&&h,"select-middle");d&&l&&-1===e.indexOf(n[o])&&e.push(n[o]),d&&h&&-1===e.indexOf(n[a])&&e.push(n[a])}this.cellEditorPopup&&this.cellEditorPopup.rendered&&this.selectedRows.indexOf(this.cellEditorPopup.row)>-1&&(this.cellEditorPopup.position(),this.cellEditorPopup.pack())}_removeSelection(){this.$container.addClass("no-rows-selected"),this.selectedRows.forEach((e=>{e.$row&&(e.$row.select(!1),e.$row.toggleClass(Ka.SELECTION_CLASSES,!1))}),this)}_renderNoRowsSelectedMarker(){this.$container.toggleClass("no-rows-selected",0===this.selectedRows.length)}addRowToSelection(e,t){this.selectedRows.indexOf(e)>-1||(t=void 0===t||t,this.selectedRows.push(e),e.$row&&this._isDataRendered()&&(e.$row.select(!0),this._renderSelection(e),this.scrollToSelection&&this.revealSelection()),this._triggerRowsSelectedPending=!0,t||this.notifyRowSelectionFinished())}removeRowFromSelection(e,t){t=void 0===t||t,me.remove(this.selectedRows,e)&&(this._isDataRendered()&&this._renderSelection(e),t?this._triggerRowsSelectedPending=!0:this._triggerRowsSelected())}selectRow(e,t){this.selectRows(e,t)}selectRows(e,t){e=me.ensure(e).filter((function(e){return Boolean(this.visibleRowsMap[e.id])}),this),me.equalsIgnoreOrder(e,this.selectedRows)||(this._isDataRendered()&&this._removeSelection(),!this.multiSelect&&e.length>1&&(e=[e[0]]),this.selectedRows=e,this._triggerRowsSelected(t),this._updateMenuBar(),this._isDataRendered()&&(this._renderSelection(),this.scrollToSelection&&this.revealSelection()))}deselectRow(e){this.deselectRows(e)}deselectRows(e){e=me.ensure(e);let t=this.selectedRows.slice();me.removeAll(t,e)&&this.selectRows(t)}isRowSelected(e){return this.selectedRows.indexOf(e)>-1}_filterCount(){return this.filters.length}filteredRows(){return this._filteredRows}$rows(e){let t=".table-row";return e&&(t+=", .table-aggregate-row"),this.$data.find(t)}$aggregateRows(){return this.$data.find(".table-aggregate-row")}selectedRow(){return this.selectedRows.length>0?this.selectedRows[0]:null}$selectedRows(){return this.$data?this.$data.find(".selected"):n()()}$cellsForColIndex(e,t){let i=".table-row > div:nth-of-type("+e+")";return t&&(i+=", .table-aggregate-row > div:nth-of-type("+e+")"),this.$data.find(i)}$cellsForRow(e){return e.children(".table-cell")}$cell(e,t){let i=e;return"number"!=typeof e&&(i=this.visibleColumns().indexOf(e)),t.children(".table-cell").eq(i)}columnById(e){return me.find(this.columns,(t=>t.id===e))}columnFor$Cell(e,t){t=t||e.parent();let i=this.$cellsForRow(t).index(e);return this.visibleColumns()[i]}columnsByIds(e){return e.map(this.columnById.bind(this))}getVisibleRows(){return this.visibleRows}_updateRowStructure(e){let t=x.nvl(e.updateTree,!1),i=x.nvl(e.filteredRows,t),s=x.nvl(e.applyFilters,i),r=x.nvl(e.filtersChanged,!1),n=x.nvl(e.visibleRows,i);t&&this._rebuildTreeStructure(),i&&this._updateFilteredRows(s,r),n&&this._updateVisibleRows()}_rebuildTreeStructure(){let e=!1;if(this.rows.forEach((t=>{t.childRows=[],e=e||!Ai.isNullOrUndefined(t.parentRow)}),this),!e)return this.rootRows=this.rows,void this._setHierarchical(e);this._setHierarchical(e),this.rootRows=[],this.rows.forEach((function(e){let t;if(Ai.isNullOrUndefined(e.parentRow))return e.parentRow=null,e._parentRowId=null,void this.rootRows.push(e);if(t=Ai.isNullOrUndefined(e.parentRow.id)?this.rowsMap[e.parentRow]:this.rowsMap[e.parentRow.id],!t)throw new Error("Parent row of "+e+" can not be resolved.");e.parentRow=t,e._parentRowId=t.id,t.childRows.push(e)}),this),this._maxLevel=0,this.rows=[],this.visitRows(((e,t)=>{e.hierarchyLevel=t,this._maxLevel=Math.max(t,this._maxLevel),this.rows.push(e)})),this._calculateTableNodeColumn()}_updateFilteredRows(e,t){t=Boolean(t),e=x.nvl(e,!0),this._filteredRows=this.rows.filter((function(i){return e&&(t=this._applyFiltersForRow(i)||t),i.filterAccepted}),this),t&&this._triggerFilter()}_updateVisibleRows(){this.visibleRows=this._computeVisibleRows(),this.visibleRowsMap=this.visibleRows.reduce(((e,t)=>(e[t.id]=t,e)),{}),this.initialized&&this.deselectRows(this.selectedRows.filter((function(e){return!this.visibleRowsMap[e.id]}),this))}_computeVisibleRows(e){let t=[];return(e=e||this.rootRows).forEach((function(e){let i=this._computeVisibleRows(e.childRows);(e.filterAccepted||i.length>0)&&t.push(e),e._expandable=i.length>0,e.expanded&&(t=t.concat(i))}),this),t}visibleChildRows(e){return e.childRows.filter((function(e){return Boolean(this.visibleRowsMap[e.id])}),this)}_renderRowDelta(){if(!this._isDataRendered())return;let e=[],t=[];this.$rows().each(((i,s)=>{let r=n()(s).data("row");this.visibleRows.indexOf(r)<0?(r.$row.detach(),t.push(r)):e.push(r)})),this._rerenderViewport(),t.forEach((function(e){e.$row.insertAfter(this.$fillBefore)}),this),this._order$Rows().insertAfter(this.$fillBefore),this._order$AggregateRows(),t.forEach((function(e){this._hideRow(e)}),this),this.$rows().each(((t,i)=>{let s=n()(i),r=s.data("row");s.hasClass("hiding")||e.indexOf(r)<0&&this._showRow(r)})),this._renderScrollTop(),this._renderEmptyData()}_order$Rows(e){return(e=e||this.$rows()).sort(((e,t)=>{let i=n()(e),s=n()(t),r=i.data("row"),o=s.data("row");return this.rows.indexOf(r)-this.rows.indexOf(o)}))}_order$AggregateRows(e){(e=e||this.$aggregateRows()).each(((e,t)=>{let i=n()(t),s=i.data("aggregateRow");s&&s.prevRow&&i.insertAfter(s.prevRow.$row)}))}_applyFiltersForRow(e){return this.filterSupport.applyFiltersForElement(e)}filteredBy(){let e=[];return this.filters.forEach((t=>{"function"==typeof t.createLabel&&e.push(t.createLabel())})),e}resetUserFilter(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.filters.filter((e=>e instanceof gd)).forEach((t=>this.removeFilter(t,e))),this._triggerFilterReset()}hasUserFilter(){return this.filters.filter((e=>e instanceof gd)).length>0}resizeToFit(e,t){if(e.fixedWidth)return;let i=e.calculateOptimalWidth();Ai.isPlainObject(i)?i.always(this._resizeToFit.bind(this,e,t)):this._resizeToFit(e,t,i)}_resizeToFit(e,t,i){-1!==i&&(t&&t>0&&i>t&&(i=t),e.width!==i&&this.resizeColumn(e,i),e.autoOptimizeWidthRequired=!1,this._triggerColumnResizedToFit(e))}addFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e instanceof gd){let t=this.getFilter(e.createKey());this.filterSupport.removeFilter(t,!1)}let i=this.filterSupport.addFilter(e,t);i&&i.length&&this.trigger("filterAdded",{filter:i[0]})}removeFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.filterSupport.removeFilter(e,t);i&&i.length&&this.trigger("filterRemoved",{filter:i[0]})}removeFilterByKey(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.removeFilter(this.getFilter(e),t)}getFilter(e){return me.find(this.filters,(t=>t instanceof gd&&Ai.equals(t.createKey(),e)))}setFilters(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.resetUserFilter(!1),e=e.map((e=>this._ensureFilter(e)));let i=this.filterSupport.setFilters(e,t);i.filtersAdded.forEach((e=>this.trigger("filterAdded",{filter:e}))),i.filtersRemoved.forEach((e=>this.trigger("filtersRemoved",{filter:e})))}_ensureFilter(e){return e instanceof gd||!e.objectType?e:(e.column&&(e.column=this.columnById(e.column)),e.table=this,e.session=this.session,x.create(e))}filter(){this.filterSupport.filter()}_filter(e){this._updateRowStructure(n().extend({},e,{filteredRows:!0})),this._renderRowDelta(),this._group(),this.revealSelection()}_createFilterSupport(){return new q({widget:this,$container:()=>this.$container,getElementsForFiltering:()=>this.rows,createTextFilter:()=>x.create("TableTextUserFilter",{session:this.session,table:this}),updateTextFilterText:(e,t)=>!Ai.equals(e.text,t)&&(e.text=t,!0)})}setTextFilterEnabled(e){this.setProperty("textFilterEnabled",e)}isTextFilterFieldVisible(){return this.textFilterEnabled&&!this.footerVisible}_renderTextFilterEnabled(){this.filterSupport.renderFilterField()}updateFilteredElements(e,t){this.filteredElementsDirty&&(this._filter({filteredRows:!0,applyFilters:!1,filtersChanged:!0}),this.filteredElementsDirty=!1)}resizeColumn(e,t){if(e.fixedWidth)return;t=Math.floor(t),e.width=t;let i=this.visibleColumns().indexOf(e);if(-1!==i){let s=i+1;this.$cellsForColIndex(s,!0).css("min-width",t).css("max-width",t),this._updateRealColumnWidth(e),this._updateRowWidth(),this.$rows(!0).css("width",this.rowWidth),this._updateRowHeights(),this._renderFiller(),this._renderViewport(),this.updateScrollbars(),this._renderEmptyData()}this._aggregateRows.forEach((t=>{t.$row&&this._resizeAggregateCell(this.$cell(e,t.$row))}),this),this._triggerColumnResized(e)}_resizeAggregateCell(e){let t=this._getAggrCellRange(e);this._updateAggrCell(t[0]),t.length>1&&this._updateAggrCell(t[t.length-1])}_getAggrCellRange(e){let t,i=[],s=e.parent(),r=this.visibleColumns(),n=e,o=e=>!e.hasClass("empty");if(o(e))t=e.hasClass("halign-right")?-1:1;else{t=1;for(let t=r.indexOf(this.columnFor$Cell(e))-1;t>=0&&(n=this.$cell(r[t],s),!o(n));t--);}i.push(n);for(let e=r.indexOf(this.columnFor$Cell(n))+t;e>=0&&e<r.length;e+=t){let t=this.$cell(r[e],s);if(i.push(t),o(t))break}return i}_updateAggrCell(e){let t=e.children(".text");if(!t||!t.length||e.hasClass("empty"))return;let i=e.children(".table-cell-icon").first(),s=this._getAggrCellWidth(e,i);s=this._updateAggrIconVisibility(i,t,s),t.cssMaxWidth(s)}_getWidthWithMarginCached(e){if(!e||!e.length)return 0;let t="widthWithMargin",i=e.data(t);if(i)return i;let s=e.isVisible();s||e.setVisible(!0);let r=pr.size(e,{includeMargin:!0}).width;return s||e.setVisible(!1),e.data(t,r),r}_getAggrCellWidth(e,t){let i=e.cssMaxWidth()-e.cssPaddingX();t&&t.length&&t.isVisible()&&(i-=this._getWidthWithMarginCached(t));let s=this._getAggrCellRange(e);for(let t=1;t<s.length;t++){let r=s[t];if(!r.hasClass("empty")){if(e.hasClass("halign-right")^r.hasClass("halign-right")){let t=r.cssMaxWidth()-(r.children().toArray().map((e=>n()(e))).filter((e=>e.isVisible())).map((e=>pr.size(e,{includeMargin:!0}).width)).reduce(((e,t)=>e+t),0)+e.cssPaddingLeft());r.hasClass("halign-center")&&(t/=2),i+=t}break}i+=r.cssMaxWidth()}return Math.max(0,i)}_updateAggrIconVisibility(e,t,i){if(!e||!e.length)return i;let s=e.isVisible(),r=this._getWidthWithMarginCached(e),n=i-this._getWidthWithMarginCached(t)+(s?r:0)>r;return n===s?i:(e.setVisible(n),i+(n?-r:r))}moveColumn(e,t,i,s){i=this._considerFixedPositionColumns(t,i);let r=this.visibleColumns(),n=r[i],o=this.columns.indexOf(n);me.remove(this.columns,e),me.insert(this.columns,e,o),r=this.visibleColumns(),i=r.indexOf(e),this._calculateTableNodeColumn(),this._triggerColumnMoved(e,t,i,s),this._aggregateRows.forEach((e=>{me.move(e.contents,t,i)})),this._isDataRendered()&&this._rerenderViewport()}_considerFixedPositionColumns(e,t){let i=-1;return t>e?(i=me.findIndexFrom(this.visibleColumns(),e,(e=>e.fixedPosition)),i>-1&&(t=Math.min(t,i-1))):(i=me.findIndexFromReverse(this.visibleColumns(),e,(e=>e.fixedPosition)),i>-1&&(t=Math.max(t,i+1))),t}_renderColumnOrderChanges(e){let t,i,s,r,o,l,a,h=this;this.header&&this.header.onOrderChanged(e),this.$rows(!0).each((function(){for(a=n()(this),r=n()(),l=a.children(),i=0;i<h.columns.length;i++){for(t=h.columns[i],s=0;s<e.length;s++)if(e[s]===t){o=l[s];break}r.push(o)}a.prepend(r)}))}_triggerRowsInserted(e){this.trigger("rowsInserted",{rows:e})}_triggerRowsDeleted(e){this.trigger("rowsDeleted",{rows:e})}_triggerRowsUpdated(e){this.trigger("rowsUpdated",{rows:e})}_triggerAllRowsDeleted(e){this.trigger("allRowsDeleted",{rows:e})}_triggerRowsSelected(e){this.trigger("rowsSelected",{debounce:e})}_triggerRowsChecked(e){this.trigger("rowsChecked",{rows:e})}_triggerRowsExpanded(e){this.trigger("rowsExpanded",{rows:e})}_triggerFilter(){this.trigger("filter")}_triggerFilterReset(){this.trigger("filterReset")}_triggerAppLinkAction(e,t,i,s){this.trigger("appLinkAction",{column:e,row:t,ref:i,$appLink:s})}_triggerReload(e){this.trigger("reload",{reloadReason:e})}_triggerClipboardExport(){let e=new ht;this.trigger("clipboardExport",e),e.defaultPrevented||this._exportToClipboard()}_triggerRowOrderChanged(e,t){let i={row:e,animating:t};this.trigger("rowOrderChanged",i)}_triggerColumnResized(e){let t={column:e};this.trigger("columnResized",t)}_triggerColumnResizedToFit(e){let t={column:e};this.trigger("columnResizedToFit",t)}_triggerColumnMoved(e,t,i,s){let r={column:e,oldPos:t,newPos:i,dragged:s};this.trigger("columnMoved",r)}_triggerAggregationFunctionChanged(e){let t={column:e};this.trigger("aggregationFunctionChanged",t)}setHeaderVisible(e){this.setProperty("headerVisible",e)}_renderHeaderVisible(){this._renderTableHeader()}setHeaderEnabled(e){this.setProperty("headerEnabled",e)}_renderHeaderEnabled(){this._removeTableHeader(),this._renderTableHeader()}setHeaderMenusEnabled(e){this.setProperty("headerMenusEnabled",e),this.header&&this.header.setHeaderMenusEnabled(this.headerMenusEnabled)}hasPermanentHeadOrTailSortColumns(){return 0!==this._permanentHeadSortColumns.length||0!==this._permanentTailSortColumns.length}_setHeadAndTailSortColumns(){let e=this.columns.filter((e=>e.sortIndex>=0));e.sort(((e,t)=>e.sortIndex-t.sortIndex)),this._permanentHeadSortColumns=[],this._permanentTailSortColumns=[],e.forEach((function(e){e.initialAlwaysIncludeSortAtBegin?this._permanentHeadSortColumns.push(e):e.initialAlwaysIncludeSortAtEnd&&this._permanentTailSortColumns.push(e)}),this)}setTileMode(e){this.setProperty("tileMode",e)}_setTileMode(e){e&&(this._ensureMediator(),this.tileTableHeader||this._setTileTableHeader(this._createTileTableHeader()),this.tableTileGridMediator.loadTiles(),this.tableTileGridMediator.activate()),this._setProperty("tileMode",e),!e&&this.tableTileGridMediator&&this.tableTileGridMediator.deactivate()}_ensureMediator(){this.tableTileGridMediator||(this.tableTileGridMediator=x.create("TableTileGridMediator",{parent:this,gridColumnCount:6}))}_renderTileMode(){this.tableTileGridMediator&&this.tableTileGridMediator.renderTileMode()}createTiles(e){return e.map((function(e){let t=this.createTileForRow(e);return this._adaptTile(t),t.rowId=e.id,t}),this)}_adaptTile(e){e.gridDataHints={weightX:0}}createTileForRow(e){throw new Error("Not implemented")}_setTileTableHeader(e){e&&e.addCssClass("tile-table-header"),this._setProperty("tileTableHeader",e)}_createTileTableHeader(){return x.create("TileTableHeaderBox",{parent:this})}setRowIconVisible(e){this.setProperty("rowIconVisible",e)}_setRowIconVisible(e){this._setProperty("rowIconVisible",e);let t=this.rowIconColumn;this.rowIconVisible&&!t?(this._insertRowIconColumn(),this._calculateTableNodeColumn(),this.trigger("columnStructureChanged")):!this.rowIconVisible&&t&&(t.destroy(),me.remove(this.columns,t),this.rowIconColumn=null,this._calculateTableNodeColumn(),this.trigger("columnStructureChanged"))}_renderRowIconVisible(){this.columnLayoutDirty=!0,this._updateRowWidth(),this._redraw(),this.invalidateLayoutTree()}_renderRowIconColumnWidth(){this.rowIconVisible&&this._renderRowIconVisible()}setRowIconColumnWidth(e){this.setProperty("rowIconColumnWidth",e)}_setRowIconColumnWidth(e){this._setProperty("rowIconColumnWidth",e);let t=this.rowIconColumn;t&&(t.width=e)}_setSelectedRows(e){"string"==typeof e[0]&&(e=this._rowsByIds(e)),this._setProperty("selectedRows",e)}setMenus(e){this.setProperty("menus",e)}_setMenus(e,t){this.updateKeyStrokes(e,t),this._setProperty("menus",e),this._updateMenuBar(),this.header&&this.header.updateMenuBar()}setMenuBarVisible(e){this.setProperty("menuBarVisible",e)}_setMenuBarVisible(e){this._setProperty("menuBarVisible",e),this._updateMenuBar()}_renderMenuBarVisible(){this.menuBarVisible?(this.menuBar.render(),this._refreshMenuBarPosition()):this.menuBar.remove(),this._updateMenuBar(),this.invalidateLayoutTree()}_refreshMenuBarPosition(){this.$container.removeClass("menubar-top"),this.$container.removeClass("menubar-bottom"),this.menuBarVisible&&this.menuBar.rendered&&(this.menuBar.position===kl.Position.TOP?(this.menuBar.$container.prependTo(this.$container),this.$container.addClass("menubar-top")):(this.menuBar.$container.appendTo(this.$container),this.$container.addClass("menubar-bottom")))}_createMenuBar(){return x.create("MenuBar",{parent:this,position:kl.Position.BOTTOM,menuOrder:new _l(this.session,"Table"),menuFilter:this._filterMenusHandler,cssClass:"bounded"})}_updateMenuBar(){if(this.menuBarVisible){let e=["Header"],t=this._filterMenus(this.menus,hl.MENU_BAR,!1,!0,e);t=this.staticMenus.concat(t),this.menuBar.setMenuItems(t)}else this.menuBar.setMenuItems([]);if(this._refreshMenuBarClasses(),this.contextMenu){let e=this._filterMenus(this.menus,hl.CONTEXT_MENU,!0,!1,["Header"]);this.contextMenu.updateMenuItems(e)}}_refreshMenuBarClasses(){this.$container&&(this.$container.toggleClass("has-menubar",this.menuBar&&this.menuBar.visible),this.$container.toggleClass("menubar-top",this.menuBar&&this.menuBar.position===kl.Position.TOP),this.$container.toggleClass("menubar-bottom",this.menuBar&&this.menuBar.position!==kl.Position.TOP))}_setKeyStrokes(e){this.updateKeyStrokes(e,this.keyStrokes),this._setProperty("keyStrokes",e)}setTableStatus(e){this.setProperty("tableStatus",e)}_setTableStatus(e){e=Ii.ensure(e),this._setProperty("tableStatus",e)}setTableStatusVisible(e){this.setProperty("tableStatusVisible",e),this._updateFooterVisibility()}_updateFooterVisibility(){this.setFooterVisible(this.tableStatusVisible||this._hasVisibleTableControls())}setHierarchicalStyle(e){this.setProperty("hierarchicalStyle",e)}_renderHierarchicalStyle(){this.$container.toggleClass("structured",Ka.HierarchicalStyle.STRUCTURED===this.hierarchicalStyle)}setFooterVisible(e){this._setProperty("footerVisible",e),e&&!this.footer&&(this.footer=this._createFooter()),this.tableControls.forEach((function(e){e.tableFooter=this.footer}),this),this.rendered&&this._renderFooterVisible(),!e&&this.footer&&(this.footer.destroy(),this.footer=null)}_renderBackgroundEffect(){this.columns.forEach((e=>{e.backgroundEffect&&e._renderBackgroundEffect()}),this)}_renderRowChecked(e){if(!this.checkable)return;if(!e.$row)return;let t;if(this.checkableStyle===Ka.CheckableStyle.TABLE_ROW)t=e.$row;else{if(!this.checkableColumn)throw new Error("checkableColumn not set");t=this.checkableColumn.$checkBox(e.$row)}t.toggleClass("checked",e.checked)}setCheckable(e){this.setProperty("checkable",e)}_setCheckable(e){this._setProperty("checkable",e),this._updateCheckableColumn()}_updateCheckableColumn(){let e=this.checkableColumn,t=this.checkable&&x.isOneOf(this.checkableStyle,Ka.CheckableStyle.CHECKBOX,Ka.CheckableStyle.CHECKBOX_TABLE_ROW);t&&!e?(this._insertBooleanColumn(),this._calculateTableNodeColumn(),this.trigger("columnStructureChanged")):!t&&e&&e.guiOnly&&(e.destroy(),me.remove(this.columns,e),this.checkableColumn=null,this._calculateTableNodeColumn(),this.trigger("columnStructureChanged"))}_renderCheckable(){this.columnLayoutDirty=!0,this._updateRowWidth(),this._redraw(),this.invalidateLayoutTree()}setCheckableStyle(e){this.setProperty("checkableStyle",e)}_setCheckableStyle(e){this._setProperty("checkableStyle",e),this._updateCheckableColumn()}_renderCheckableStyle(){this.$container.toggleClass("checkable",x.isOneOf(this.checkableStyle,Ka.CheckableStyle.TABLE_ROW,Ka.CheckableStyle.CHECKBOX_TABLE_ROW)),this.$container.toggleClass("table-row-check",this.checkableStyle===Ka.CheckableStyle.TABLE_ROW),this._isDataRendered()&&(this._updateRowWidth(),this._redraw(),this.invalidateLayoutTree())}setCompact(e){this.setProperty("compact",e)}_setCompact(e){this._setProperty("compact",e),this._updateCompactColumn(),this.compactHandler&&this.compactHandler.handle(this.compact)}_updateCompactColumn(){let e=this.compactColumn;return this.compact&&!e?(this._insertCompactColumn(),!0):!(this.compact||!e)&&(e.destroy(),me.remove(this.columns,e),this.compactColumn=null,!0)}_insertCompactColumn(){let e=x.create("CompactColumn",{session:this.session,table:this,guiOnly:!0,headerMenuEnabled:!1});this.columns.push(e),this.compactColumn=e}_renderCompact(){this.columnLayoutDirty=!0,this._updateRowWidth(),this._redraw(),this.invalidateLayoutTree()}setGroupingStyle(e){this.setProperty("groupingStyle",e)}_setGroupingStyle(e){this._setProperty("groupingStyle",e),this._group()}_renderGroupingStyle(){this._rerenderViewport()}_redraw(){this._isDataRendered()&&(this._rerenderHeaderColumns(),this._rerenderViewport())}_rerenderHeaderColumns(){this.header&&(this.header.rerenderColumns(),this.invalidateLayoutTree())}_renderTableHeader(){if(this.tileMode)return;let e=!1;this.headerVisible&&!this.header?(this.header=this._createHeader(),this.header.render(),this._renderEmptyData(),e=!0):!this.headerVisible&&this.header&&(this._removeTableHeader(),this._removeEmptyData(),e=!0),this.$container.toggleClass("header-invisible",!this.header),e&&this.invalidateLayoutTree()}_removeTableHeader(){this.header&&(this.header.destroy(),this.header=null)}_renderEmptyData(){!this.header||this.visibleRows.length>0||(this.$emptyData||(this.$emptyData=this.$data.appendDiv().html(" ")),this.$emptyData.css("min-width",this.rowWidth).css("max-width",this.rowWidth),this.updateScrollbars())}_removeEmptyData(){this.header&&0===this.visibleRows.length||this.$emptyData&&(this.$emptyData.remove(),this.$emptyData=null,this.updateScrollbars())}_renderFooterVisible(){this.footer&&(this.footerVisible?this._renderFooter():this._removeFooter(),this.invalidateLayoutTree(),this.filterSupport.renderFilterField())}_renderFooter(){this.footer.rendered||this.footer.render()}_removeFooter(){this.footer.rendered&&this.footer.remove()}_renderEnabled(){super._renderEnabled(),this._installOrUninstallDragAndDropHandler();let e=this.enabledComputed;this.tileMode||this.$data.setEnabled(e),this.$container.setTabbableOrFocusable(e)}_renderDisabledStyle(){super._renderDisabledStyle(),this._renderDisabledStyleInternal(this.$data)}setAutoResizeColumns(e){this.setProperty("autoResizeColumns",e)}_renderAutoResizeColumns(){!this.autoResizeColumns&&Qe.get().hasTableCellZoomBug()&&this.visibleColumns().forEach(((e,t)=>{e._realWidth=null})),this.columnLayoutDirty=!0,this.invalidateLayoutTree()}setMultilineText(e){this.setProperty("multilineText",e)}_renderMultilineText(){this._markAutoOptimizeWidthColumnsAsDirty(),this._redraw(),this.invalidateLayoutTree()}setDropType(e){this.setProperty("dropType",e)}_renderDropType(){this._installOrUninstallDragAndDropHandler()}setDropMaximumSize(e){this.setProperty("dropMaximumSize",e)}_installOrUninstallDragAndDropHandler(){at.installOrUninstallDragAndDropHandler({target:this,doInstall:()=>this.dropType&&this.enabledComputed,selector:".table-data,.table-row",onDrop:e=>this.trigger("drop",e),dropType:()=>this.dropType,additionalDropProperties:e=>{let t=n()(e.currentTarget),i={rowId:""};if(t.hasClass("table-row")){let e=t.data("row");i.rowId=e.id}return i}})}_installImageListeners(){this._imageLoadListener=this._onImageLoadOrError.bind(this),this.$data[0].addEventListener("load",this._imageLoadListener,!0),this.$data[0].addEventListener("error",this._imageLoadListener,!0)}_uninstallImageListeners(){this.$data[0].removeEventListener("load",this._imageLoadListener,!0),this.$data[0].removeEventListener("error",this._imageLoadListener,!0)}calculateViewRangeSize(){if(this._updateRowHeight(),0===this.rowHeight)throw new Error("Cannot calculate view range with rowHeight = 0");return 2*Math.ceil(this.$data.outerHeight()/this.rowHeight)}setViewRangeSize(e){this.viewRangeSize!==e&&(this._setProperty("viewRangeSize",e),this._isDataRendered()&&this._renderViewport())}_calculateCurrentViewRange(){let e,t=this.$data[0].scrollTop;return e=0===this.$data[0].scrollHeight-this.$data[0].clientHeight?0:this._rowIndexAtScrollTop(t),this._calculateViewRangeForRowIndex(e)}_rowIndexAtScrollTop(e){let t=0,i=-1;return this.visibleRows.some(((s,r)=>(t+=this._heightForRow(s),e<t&&(i=r,!0)))),i}_heightForRow(e){let t=0,i=e.aggregateRowBefore;return this.groupingStyle===Ka.GroupingStyle.BOTTOM&&(i=e.aggregateRowAfter),t=e.height?e.height:this.rowHeight,i&&(i.height?t+=i.height:t+=this.aggregateRowHeight),t}_measureRowHeight(e){return pr.size(e,{includeMargin:!0,exact:!0}).height}_calculateViewRangeForRowIndex(e){if(!this.virtual)return new Mi(0,this.visibleRows.length);let t,i=new Mi,s=Math.floor(this.viewRangeSize/4);return i.from=Math.max(e-s,0),i.to=Math.min(i.from+this.viewRangeSize,this.visibleRows.length),t=this.viewRangeSize-i.size(),t>0&&(i.from=Math.max(i.to-this.viewRangeSize,0)),i}_renderViewport(){if(!this.isAttachedAndRendered())return void(this._renderViewPortAfterAttach=!0);if(this._renderViewportBlocked)return;if(0===this.visibleColumns().length)return;if(!this.$container.isEveryParentVisible())return void this.invalidateLayoutTree();let e=this._calculateCurrentViewRange();this._renderViewRange(e),this._renderLastRowAtBottomMarker(),this._renderNoRowsSelectedMarker()}_rerenderViewport(){this.isAttachedAndRendered()?(this._removeRows(),this._removeAggregateRows(),this._renderFiller(),this._renderViewport()):this._rerenderViewPortAfterAttach=!0}_renderViewRangeForRowIndex(e){let t=this._calculateViewRangeForRowIndex(e);this._renderViewRange(t)}_renderViewRange(e){if(e.from===this.viewRangeRendered.from&&e.to===this.viewRangeRendered.to&&!this.viewRangeDirty)return;this._removeRangeMarkers();let t=e.subtract(this.viewRangeRendered);if(this.viewRangeRendered.subtract(e).forEach((e=>{this._removeRowsInRange(e)})),t.forEach((e=>{this._renderRowsInRange(e)})),this.viewRangeRendered.size()>0){let e=this.visibleRows,t=e[this.viewRangeRendered.from],i=e[this.viewRangeRendered.to-1];if(!t.$row||!i.$row)throw new Error("Rows not rendered as expected. "+this.viewRangeRendered+". First: "+pr.debugOutput(t.$row)+". Last: "+pr.debugOutput(i.$row)+". Length: visibleRows="+this.visibleRows.length+" rows="+this.rows.length)}this._renderRangeMarkers(),this._removeAggregateRows(),this._renderAggregateRows(),this._renderFiller(),this._renderEmptyData(),this._renderBackgroundEffect(),this._renderSelection(),this.viewRangeDirty=!1}_renderLastRowAtBottomMarker(){if(this.$rows().is(":animated"))return;let e=this._lastVisibleRow();e&&e.$row?this.$data.toggleClass("last-row-at-bottom",Math.ceil(pr.offsetBounds(e.$row).bottom())>=pr.offsetBounds(this.$data).bottom()):this.$data.removeClass("last-row-at-bottom")}_lastVisibleRow(){return this.visibleRows[this.visibleRows.length-1]}_removeRangeMarkers(){this._modifyRangeMarkers("removeClass")}_renderRangeMarkers(){this._modifyRangeMarkers("addClass")}_modifyRangeMarkers(e){if(0===this.viewRangeRendered.size())return;let t=this.visibleRows;function i(t,i){t&&t.$row&&t.$row[e](i)}i(t[this.viewRangeRendered.from],"first"),i(t[this.viewRangeRendered.to-1],"last")}ensureRowRendered(e){if(e.$row)return;let t=this.visibleRows.indexOf(e);t<0||this._renderViewRangeForRowIndex(t)}_renderFiller(){this.$fillBefore||(this.$fillBefore=this.$data.prependDiv("table-data-fill"),this._applyFillerStyle(this.$fillBefore));let e=this._calculateFillerHeight(new Mi(0,this.viewRangeRendered.from));this.$fillBefore.cssHeight(e),this.$fillBefore.cssWidth(this.rowWidth),n().log.isTraceEnabled()&&n().log.trace("FillBefore height: "+e),this.$fillAfter||(this.$fillAfter=this.$data.appendDiv("table-data-fill"),this._applyFillerStyle(this.$fillAfter));let t=this._calculateFillerHeight(new Mi(this.viewRangeRendered.to,this.visibleRows.length));this.$fillAfter.cssHeight(t),this.$fillAfter.cssWidth(this.rowWidth),n().log.isTraceEnabled()&&n().log.trace("FillAfter height: "+t)}_applyFillerStyle(e){let t=e.css("background-color"),i=(100*(1-1/this.rowHeight)).toFixed(2)+"%";e.css({background:"linear-gradient(to bottom, transparent, transparent "+i+", "+t+" "+i+", "+t+")",backgroundSize:"100% "+this.rowHeight+"px",backgroundColor:"transparent"})}_calculateFillerHeight(e){let t=0;for(let i=e.from;i<e.to;i++){let e=this.visibleRows[i];t+=this._heightForRow(e)}return t}containsAggregatedNumberColumn(){return!!this.initialized&&this.visibleColumns().some((e=>e instanceof Ih&&"none"!==e.aggregationFunction))}updateColumnStructure(e){this._destroyColumns(),this.columns=e,this._initColumns(),this.trigger("columnStructureChanged"),this._isDataRendered()&&(this._updateRowWidth(),this.$rows(!0).css("width",this.rowWidth),this._rerenderHeaderColumns(),this._renderEmptyData())}updateColumnOrder(e){let t,i,s,r;if(e.length!==this.columns.length)throw new Error("Column order may not be updated because lengths of the arrays differ.");for(r=this.columns.slice(),t=0;t<e.length;t++){if(i=e[t],s=me.findIndex(this.columns,(e=>e.id===i.id)),s<0)throw new Error("Column with id "+i.id+"not found.");s!==t&&me.move(this.columns,s,t)}this._isDataRendered()&&this._renderColumnOrderChanges(r)}updateColumnHeaders(e){let t,i;for(let s=0;s<e.length;s++)t=this.columnById(e[s].id),i=n().extend(i,t),t.text=e[s].text,t.headerTooltipText=e[s].headerTooltipText,t.headerTooltipHtmlEnabled=e[s].headerTooltipHtmlEnabled,t.headerCssClass=e[s].headerCssClass,t.headerHtmlEnabled=e[s].headerHtmlEnabled,t.headerBackgroundColor=e[s].headerBackgroundColor,t.headerForegroundColor=e[s].headerForegroundColor,t.headerFont=e[s].headerFont,t.headerIconId=e[s].headerIconId,t.sortActive=e[s].sortActive,t.sortAscending=e[s].sortAscending,t.grouped&&!e[s].grouped&&this._removeGroupColumn(t),t.grouped=e[s].grouped,t.sortActive||-1===t.sortIndex?t.grouped&&t.sortActive&&-1===t.sortIndex?this._addGroupColumn(t):t.sortActive&&-1===t.sortIndex?this._addSortColumn(t):t.sortIndex=e[s].sortIndex:this._removeSortColumn(t),this._isDataRendered()&&this.header&&this.header.updateHeader(t,i)}_attach(){this.$parent.append(this.$container),super._attach()}_postAttach(){this._rerenderViewportAfterAttach();let e=this.htmlComp.getParent();this.htmlComp.setSize(e.size()),super._postAttach()}_renderOnAttach(){super._renderOnAttach(),this._rerenderViewportAfterAttach(),this._renderViewportAfterAttach();let e=this._postAttachActions;this._postAttachActions=[],e.forEach((e=>e()))}_rerenderViewportAfterAttach(){this._rerenderViewPortAfterAttach&&(this._rerenderViewport(),this._rerenderViewPortAfterAttach=!1,this._renderViewPortAfterAttach=!1)}_renderViewportAfterAttach(){this._renderViewPortAfterAttach&&(this._renderViewport(),this._renderViewPortAfterAttach=!1)}_detach(){this.$container.detach(),super._detach()}_destroyCellEditorPopup(e){if(!this.cellEditorPopup)return;let t=()=>{this.cellEditorPopup.destroy(),this.cellEditorPopup=null,this.$container&&this.$container.removeClass("has-cell-editor-popup"),e&&e()},i=this.cellEditorPopup.waitForCompleteCellEdit();"resolved"===i.state()?t():i.then(t)}setVirtual(e){this._setProperty("virtual",e)}setCellValue(e,t,i){e.setCellValue(t,i)}setCellText(e,t,i){e.setCellText(t,i)}setCellErrorStatus(e,t,i){e.setCellErrorStatus(t,i)}visibleColumns(e){return this.filterColumns((e=>e.isVisible()),e)}displayableColumns(e){return this.filterColumns((e=>e.displayable),e)}filterColumns(e,t){return t=x.nvl(t,!0),this.columns.filter((i=>e(i)&&(t||!i.guiOnly)))}_onDesktopPopupOpen(e){let t=e.popup;this.isFocusable(!1)&&this.has(t)&&t instanceof yl&&(this.$container.addClass("focused"),t.one("destroy",(()=>{this._isDataRendered()&&this.$container.removeClass("focused")})))}_onDesktopPropertyChange(e){"dense"===e.propertyName&&this.menuBar.invalidateLayoutTree()}markRowsAsNonChanged(e){me.ensure(e||this.rows).forEach((e=>{e.status=Ya.Status.NON_CHANGED}))}static parseHorizontalAlignment(e){return e>0?"right":0===e?"center":"left"}static linkRowToDiv(e,t){e&&(e.$row=t),t&&t.data("row",e)}}Ua(Ka,"HierarchicalStyle",{DEFAULT:"default",STRUCTURED:"structured"}),Ua(Ka,"GroupingStyle",{TOP:"top",BOTTOM:"bottom"}),Ua(Ka,"CheckableStyle",{CHECKBOX:"checkbox",TABLE_ROW:"tableRow",CHECKBOX_TABLE_ROW:"checkbox_table_row"}),Ua(Ka,"ReloadReason",{UNSPECIFIED:"unspecified",SEARCH:"search",OVERRIDE_ROW_LIMIT:"overrideRowLimit",RESET_ROW_LIMIT:"resetRowLimit",ORGANIZE_COLUMNS:"organizeColumns",DATA_CHANGED_TRIGGER:"dataChangedTrigger"}),Ua(Ka,"SELECTION_CLASSES","select-middle select-top select-bottom select-single selected");class qa extends j{constructor(){super(),this._addRemoteProperties(["contextColumn"])}_initProperties(e){super._initProperties(e),e.compactHandler=null}_postCreateWidget(){this.widget.hasUserFilter()&&this._onWidgetFilter()}_sendRowsSelected(e,t){let i={rowIds:e};this._send("rowsSelected",i,{delay:t?250:0,coalesce:function(e){return this.target===e.target&&this.type===e.type}})}_sendRowClick(e,t,i){let s={rowId:e,columnId:i,mouseButton:t};this._send("rowClick",s)}_onWidgetRowsSelected(e){let t=this.widget._rowsToIds(this.widget.selectedRows);this._sendRowsSelected(t,e.debounce)}_onWidgetRowClick(e){let t;void 0!==e.column&&(t=e.column.id),this._sendRowClick(e.row.id,e.mouseButton,t)}_onWidgetFilterAdded(e){let t=e.filter;t instanceof gd&&!(t instanceof md&&t.column.guiOnly)&&this._send("filterAdded",t.createFilterAddedEventData())}_onWidgetFilterRemoved(e){let t=e.filter;t instanceof gd&&!(t instanceof md&&t.column.guiOnly)&&this._send("filterRemoved",t.createFilterRemovedEventData())}_onWidgetColumnResized(e){this._sendColumnResized(e.column)}_sendColumnResized(e){if(e.fixedWidth||e.guiOnly||this.widget.autoResizeColumns)return;let t={columnId:e.id,width:e.width};this._send("columnResized",t,{delay:750,coalesce:function(e){return this.target===e.target&&this.type===e.type&&this.columnId===e.columnId},showBusyIndicator:!1})}_onWidgetAggregationFunctionChanged(e){this._sendAggregationFunctionChanged(e.column)}_sendAggregationFunctionChanged(e){if(e.guiOnly)return;let t={columnId:e.id,aggregationFunction:e.aggregationFunction};this._send("aggregationFunctionChanged",t)}_onWidgetColumnBackgroundEffectChanged(e){this._sendColumnBackgroundEffectChanged(e.column)}_sendColumnBackgroundEffectChanged(e){if(e.guiOnly)return;let t={columnId:e.id,backgroundEffect:e.backgroundEffect};this._send("columnBackgroundEffectChanged",t)}_onWidgetColumnOrganizeAction(e){this._send("columnOrganizeAction",{action:e.action,columnId:e.column.id})}_onWidgetColumnMoved(e){let t=e.newPos;this.widget.columns.forEach(((e,i)=>{e.guiOnly&&t--})),this._sendColumnMoved(e.column,t)}_sendColumnMoved(e,t){if(e.guiOnly)return;let i={columnId:e.id,index:t};this._send("columnMoved",i)}_onWidgetPrepareCellEdit(e){e.preventDefault(),this._sendPrepareCellEdit(e.row,e.column)}_sendPrepareCellEdit(e,t){if(t.guiOnly)return;let i={rowId:e.id,columnId:t.id};this._send("prepareCellEdit",i)}_onWidgetCompleteCellEdit(e){e.preventDefault(),this._sendCompleteCellEdit()}_sendCompleteCellEdit(){this._send("completeCellEdit")}_onWidgetCancelCellEdit(e){e.preventDefault(),this._sendCancelCellEdit()}_sendCancelCellEdit(){this._send("cancelCellEdit")}_onWidgetRowsChecked(e){this._sendRowsChecked(e.rows)}_sendRowsChecked(e){let t={rows:[]};for(let i=0;i<e.length;i++)t.rows.push({rowId:e[i].id,checked:e[i].checked});this._send("rowsChecked",t)}_onWidgetRowsExpanded(e){this._sendRowsExpanded(e.rows)}_sendRowsExpanded(e){let t={rows:e.map((e=>({rowId:e.id,expanded:e.expanded})))};this._send("rowsExpanded",t)}_onWidgetFilter(e){let t=this.widget._rowsToIds(this.widget.filteredRows());this._sendFilter(t)}_sendFilter(e){let t={};e.length===this.widget.rows.length?t.remove=!0:t.rowIds=e,this._send("filter",t,{delay:250,coalesce:function(e){return this.target===e.target&&this.type===e.type&&this.remove===e.remove},showBusyIndicator:!1})}_onWidgetSort(e){e.column.guiOnly||this._send("sort",{columnId:e.column.id,sortAscending:e.sortAscending,sortingRemoved:e.sortingRemoved,multiSort:e.multiSort,sortingRequested:e.sortingRequested})}_onWidgetGroup(e){e.column.guiOnly||this._send("group",{columnId:e.column.id,groupAscending:e.groupAscending,groupingRemoved:e.groupingRemoved,multiGroup:e.multiGroup,groupingRequested:e.groupingRequested})}_onWidgetRowAction(e){this._sendRowAction(e.row,e.column)}_sendRowAction(e,t){t.guiOnly&&(t=me.find(this.columns,(e=>!e.guiOnly)));let i=t?t.id:null;this._send("rowAction",{rowId:e.id,columnId:i})}_onWidgetAppLinkAction(e){this._sendAppLinkAction(e.column,e.ref)}_sendAppLinkAction(e,t){this._send("appLinkAction",{columnId:e.id,ref:t})}_sendContextColumn(e){e.guiOnly&&(e=null,this.widget.contextColumn=null);let t=null;e&&(t=e.id),this._send("property",{contextColumn:t})}_onWidgetReload(e){let t={reloadReason:e.reloadReason};this._send("reload",t)}_onWidgetExportToClipboard(e){this._send("clipboardExport"),e.preventDefault()}_onWidgetEvent(e){"rowsSelected"===e.type?this._onWidgetRowsSelected(e):"rowsChecked"===e.type?this._onWidgetRowsChecked(e):"rowsExpanded"===e.type?this._onWidgetRowsExpanded(e):"filter"===e.type?this._onWidgetFilter(e):"sort"===e.type?this._onWidgetSort(e):"group"===e.type?this._onWidgetGroup(e):"rowClick"===e.type?this._onWidgetRowClick(e):"rowAction"===e.type?this._onWidgetRowAction(e):"prepareCellEdit"===e.type?this._onWidgetPrepareCellEdit(e):"completeCellEdit"===e.type?this._onWidgetCompleteCellEdit(e):"cancelCellEdit"===e.type?this._onWidgetCancelCellEdit(e):"appLinkAction"===e.type?this._onWidgetAppLinkAction(e):"clipboardExport"===e.type?this._onWidgetExportToClipboard(e):"reload"===e.type?this._onWidgetReload(e):"filterAdded"===e.type?this._onWidgetFilterAdded(e):"filterRemoved"===e.type?this._onWidgetFilterRemoved(e):"columnResized"===e.type?this._onWidgetColumnResized(e):"columnMoved"===e.type?this._onWidgetColumnMoved(e):"columnBackgroundEffectChanged"===e.type?this._onWidgetColumnBackgroundEffectChanged(e):"columnOrganizeAction"===e.type?this._onWidgetColumnOrganizeAction(e):"aggregationFunctionChanged"===e.type?this._onWidgetAggregationFunctionChanged(e):"drop"===e.type&&this.widget.dragAndDropHandler?this.widget.dragAndDropHandler.uploadFiles(e):super._onWidgetEvent(e)}_onRowsInserted(e){this.widget.insertRows(e),this._rebuildingTable=!1}_onRowsDeleted(e){let t=this.widget._rowsByIds(e);this.addFilterForWidgetEventType("rowsSelected"),this.widget.deleteRows(t)}_onAllRowsDeleted(){this.addFilterForWidgetEventType("rowsSelected"),this.widget.deleteAllRows()}_onRowsUpdated(e){this.widget.updateRows(e)}_onRowsSelected(e){let t=this.widget._rowsByIds(e);this.addFilterForWidgetEventType("rowsSelected"),this.widget.selectRows(t),this.widget.selectionHandler.clearLastSelectedRowMarker()}_onRowsChecked(e){let t=[],i=[];e.forEach((function(e){let s=this.widget._rowById(e.id);e.checked?t.push(s):i.push(s)}),this),this.addFilterForWidgetEventType("rowsChecked"),this.widget.checkRows(t,{checked:!0,checkOnlyEnabled:!1}),this.widget.uncheckRows(i,{checkOnlyEnabled:!1})}_onRowsExpanded(e){let t=[],i=[];e.forEach((function(e){let s=this.widget._rowById(e.id);e.expanded?t.push(s):i.push(s)}),this),this.addFilterForWidgetEventType("rowsExpanded"),this.widget.expandRows(t),this.widget.collapseRows(i)}_onRowOrderChanged(e){let t=this.widget._rowsByIds(e);this.widget.updateRowOrder(t)}_onColumnStructureChanged(e){this._rebuildingTable=!0,this.widget.updateColumnStructure(e)}_onColumnOrderChanged(e){let t=this.widget.columnsByIds(e);this.widget.updateColumnOrder(t)}_onColumnHeadersUpdated(e){e.forEach((e=>{We.applyTo(e)})),this.widget.updateColumnHeaders(e),this.widget.tileMode&&this.widget.tableTileGridMediator&&(this.widget.tableTileGridMediator._onTableGroup(),this.widget.updateRowOrder(this.widget.rows))}_onStartCellEdit(e,t,i){let s=this.widget.columnById(e),r=this.widget._rowById(t),n=this.session.getOrCreateWidget(i,this.widget);this.widget.startCellEdit(s,r,n)}_onEndCellEdit(e){let t=this.session.getModelAdapter(e);if(!t)throw new Error("Field adapter could not be resolved. Id: "+e);this.widget.endCellEdit(t.widget)}_onRequestFocus(){this.widget.focus()}_onScrollToSelection(){this.widget.revealSelection()}_onColumnBackgroundEffectChanged(e){e.eventParts.forEach((function(e){let t=this.widget.columnById(e.columnId),i=e.backgroundEffect;this.addFilterForWidgetEvent((e=>"columnBackgroundEffectChanged"===e.type&&e.column.id===t.id&&e.column.backgroundEffect===i)),t.setBackgroundEffect(i)}),this)}_onRequestFocusInCell(e){let t=this.widget._rowById(e.rowId),i=this.widget.columnById(e.columnId);this.widget.focusCell(i,t)}_onAggregationFunctionChanged(e){let t=[],i=[];e.eventParts.forEach((function(e){let s=e.aggregationFunction,r=this.widget.columnById(e.columnId);this.addFilterForWidgetEvent((e=>"aggregationFunctionChanged"===e.type&&e.column.id===r.id&&e.column.aggregationFunction===s)),t.push(r),i.push(s)}),this),this.widget.changeAggregations(t,i)}_onFiltersChanged(e){this.addFilterForWidgetEventType("filterAdded"),this.addFilterForWidgetEventType("filterRemoved"),this.widget.setFilters(e),this._rebuildingTable||this.widget.filter()}onModelAction(e){"rowsInserted"===e.type?this._onRowsInserted(e.rows):"rowsDeleted"===e.type?this._onRowsDeleted(e.rowIds):"allRowsDeleted"===e.type?this._onAllRowsDeleted():"rowsSelected"===e.type?this._onRowsSelected(e.rowIds):"rowOrderChanged"===e.type?this._onRowOrderChanged(e.rowIds):"rowsUpdated"===e.type?this._onRowsUpdated(e.rows):"filtersChanged"===e.type?this._onFiltersChanged(e.filters):"rowsChecked"===e.type?this._onRowsChecked(e.rows):"rowsExpanded"===e.type?this._onRowsExpanded(e.rows):"columnStructureChanged"===e.type?this._onColumnStructureChanged(e.columns):"columnOrderChanged"===e.type?this._onColumnOrderChanged(e.columnIds):"columnHeadersUpdated"===e.type?this._onColumnHeadersUpdated(e.columns):"startCellEdit"===e.type?this._onStartCellEdit(e.columnId,e.rowId,e.fieldId):"endCellEdit"===e.type?this._onEndCellEdit(e.fieldId):"requestFocus"===e.type?this._onRequestFocus():"scrollToSelection"===e.type?this._onScrollToSelection():"aggregationFunctionChanged"===e.type?this._onAggregationFunctionChanged(e):"columnBackgroundEffectChanged"===e.type?this._onColumnBackgroundEffectChanged(e):"requestFocusInCell"===e.type?this._onRequestFocusInCell(e):super.onModelAction(e)}exportAdapterData(e){return delete(e=super.exportAdapterData(e)).selectedRows,e.rows=[],e.columns.forEach((e=>{delete e.classId,delete e.modelClass})),e}static modifyTablePrototype(){E.get().remote&&(Ai.replacePrototypeFunction(Ka,"_sortAfterInsert",(function(e){this.modelAdapter?e&&this._group():this._sortAfterInsertOrig(e)}),!0),Ai.replacePrototypeFunction(Ka,"_sortAfterUpdate",(function(){this.modelAdapter?this._group():this._sortAfterUpdateOrig()}),!0),Ai.replacePrototypeFunction(Ka,"_isSortingPossible",(function(e){if(this.modelAdapter){return x.nvl(this.uiSortPossible,!0)&&this._isSortingPossibleOrig(e)}return this._isSortingPossibleOrig(e)}),!0),Ai.replacePrototypeFunction(Ka,"sort",(function(e,t,i,s){this.modelAdapter&&e.guiOnly||this.sortOrig(e,t,i,s)}),!0),Ai.replacePrototypeFunction(Ka,"_createTileTableHeader",(function(){if(!this.modelAdapter)return this._createTileTableHeaderOrig()}),!0),Ai.replacePrototypeFunction(Ka,"createTiles",(function(e){if(!this.modelAdapter)return this.createTilesOrig(e)}),!0))}static modifyColumnPrototype(){E.get().remote&&(Ai.replacePrototypeFunction(Sh,"init",(function(e){e.table&&e.table.modelAdapter&&(e=n().extend({},e),We.applyTo(e)),this.initOrig(e)}),!0),Ai.replacePrototypeFunction(Sh,"_ensureCell",(function(e){if(this.table.modelAdapter){let t;return Ai.isPlainObject(e)?(t=e,t.value=this._parseValue(t.value),t.text&&void 0===t.value&&!t.errorStatus&&(t.value=this._parseValue(t.text)),void 0===t.value&&(t.value=null)):t={value:this._parseValue(e)},We.applyTo(t,"Cell"),x.create("Cell",t)}return this._ensureCellOrig(e)}),!0),Ai.replacePrototypeFunction(Sh,"isSortingPossible",(function(){if(this.table.modelAdapter){return x.nvl(this.uiSortPossible,!0)&&this.installComparator()}return this.isSortingPossibleOrig()}),!0))}static modifyBooleanColumnPrototype(){E.get().remote&&Ai.replacePrototypeFunction(Eh,"_toggleCellValue",(function(e,t){this.table.modelAdapter||this._toggleCellValueOrig(e,t)}),!0)}}E.addListener("bootstrap",qa.modifyTablePrototype),E.addListener("bootstrap",qa.modifyColumnPrototype),E.addListener("bootstrap",qa.modifyBooleanColumnPrototype);class ja{constructor(e){this.table=null,this.useOnlyVisibleColumns=!0,this.maxContentLines=3,this._oldStates=Ai.createMap(),this._updateHandler=null}init(e){$.extend(this,e)}setUseOnlyVisibleColumns(e){this.useOnlyVisibleColumns=e}setMaxContentLines(e){this.maxContentLines=e}handle(e){e?(this._compactColumns(!0),this._attachTableHandler()):(this._detachTableHandler(),this._compactColumns(!1)),this._adjustTable(e),e&&this.updateValues(this.table.rows)}_adjustTable(e){e?(this._cacheAndSetProperty("headerVisible",(()=>this.table.headerVisible),(()=>this.table.setHeaderVisible(!1))),this._cacheAndSetProperty("autoResizeColumns",(()=>this.table.autoResizeColumns),(()=>this.table.setAutoResizeColumns(!0)))):(this._resetProperty("headerVisible",(e=>this.table.setHeaderVisible(e))),this._resetProperty("autoResizeColumns",(e=>this.table.setAutoResizeColumns(e))))}_cacheAndSetProperty(e,t,i){Ai.isNullOrUndefined(this._oldStates[e])&&(this._oldStates[e]=t()),i()}_resetProperty(e,t){Ai.isNullOrUndefined(this._oldStates[e])||(t(this._oldStates[e]),delete this._oldStates[e])}_compactColumns(e){this.table.displayableColumns(!1).forEach((t=>t.setCompacted(e,!1))),this.table.onColumnVisibilityChanged()}_attachTableHandler(){null==this._updateHandler&&(this._updateHandler=this._onTableEvent.bind(this),this.table.on("rowsInserted rowsUpdated columnStructureChanged",this._updateHandler))}_detachTableHandler(){null!=this._updateHandler&&(this.table.off("rowsInserted rowsUpdated columnStructureChanged",this._updateHandler),this._updateHandler=null)}updateValues(e){if(0===e.length)return;let t=this._getColumns();e.forEach((e=>this._updateValue(t,e)))}_updateValue(e,t){t.setCompactValue(this.buildValue(e,t))}buildValue(e,t){return this._buildValue(this._createBean(e,t))}_createBean(e,t){let i=new Ah;return this._processColumns(e,t,i),this._postProcessBean(i),i}_processColumns(e,t,i){e.forEach(((e,s)=>this._processColumn(e,s,t,i)))}_getColumns(){return this.table.filterColumns((e=>this._acceptColumn(e)))}_acceptColumn(e){return!e.guiOnly&&(!this.useOnlyVisibleColumns||e.visible&&e.displayable)}_processColumn(e,t,i,s){this._updateBean(s,e,t,i)}_updateBean(e,t,i,s){this._acceptColumnForTitle(t,i)?e.setTitleLine(this._createCompactLine(t,i,s)):this._acceptColumnForTitleSuffix(t,i)?e.setTitleSuffixLine(this._createCompactLine(t,i,s)):this._acceptColumnForSubtitle(t,i)?e.setSubtitleLine(this._createCompactLine(t,i,s)):e.addContentLine(this._createCompactLine(t,i,s))}_acceptColumnForTitle(e,t){return 0===t}_acceptColumnForSubtitle(e,t){return 1===t}_acceptColumnForTitleSuffix(e,t){return!1}_createCompactLine(e,t,i){let s;this._showLabel(e,t,i)&&(s=e.headerCell());let r=e.cell(i),n=new $h(s,r);return this._adaptCompactLine(n,e,s,r),n}_showLabel(e,t,i){return!this._acceptColumnForTitle(e,t)&&!this._acceptColumnForSubtitle(e,t)&&!this._acceptColumnForTitleSuffix(e,t)}_adaptCompactLine(e,t,i,s){if(t instanceof Eh){let t="",i=s.value;i?t="X":null===i&&(t="?"),e.textBlock.setText(t)}}_postProcessBean(e){e.transform({maxContentLines:this.maxContentLines}),!e.title||e.subtitle||e.titleSuffix||e.content||(e.setContent(e.title),e.setTitle(""))}_buildValue(e){let t=e.title+e.titleSuffix+e.subTitle?" has-header":"",i=e.moreContent?'<div class="compact-cell-more"><span class="more-link link">'.concat(this.table.session.text("More"),"</span></div>"):"";return'\n<div class="compact-cell-header">\n <div class="compact-cell-title">\n <span class="left">'.concat(e.title,'</span>\n <span class="right">').concat(e.titleSuffix,'</span>\n </div>\n <div class="compact-cell-subtitle">').concat(e.subtitle,'</div>\n</div>\n<div class="compact-cell-content').concat(t,'">').concat(e.content,'</div>\n<div class="compact-cell-more-content hidden').concat(t,'">').concat(e.moreContent,"</div>\n ").concat(i)}_onTableEvent(e){let t=e.rows;"columnStructureChanged"===e.type&&(t=this.table.rows),this.updateValues(t)}}class Ya{constructor(){this.$row=null,this.aggregateRowAfter=null,this.cells=[],this.checked=!1,this.compactValue=null,this.enabled=!0,this.filterAccepted=!0,this.height=null,this.hasError=!1,this.id=null,this.initialized=!1,this.parentRow=null,this.parent=null,this.childRows=[],this.expanded=!1,this.status=Ya.Status.NON_CHANGED,this.hierarchyLevel=0}init(e){this._init(e),this.initialized=!0}_init(e){if(!e.parent)throw new Error("missing property 'parent'");n().extend(this,e),We.applyTo(this),this._initCells()}_initCells(){this.getTable().columns.forEach((function(e){if(!e.guiOnly){let t=this.cells[e.index];t=e.initCell(t,this),this.cells[e.index]=t}}),this)}animateExpansion(){let e,t=this.$row;t&&(e=t.find(".table-row-control"),this.expanded?e.addClassForAnimation("expand-rotate"):e.addClassForAnimation("collapse-rotate"))}hasFilterAcceptedChildren(){return this.childRows.some((e=>e.filterAccepted||e.hasFilterAcceptedChildren()))}getTable(){return this.parent}setCompactValue(e){this.compactValue=e}setFilterAccepted(e){this.filterAccepted=e}}function Xa(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Ya,"Status",{NON_CHANGED:"nonChanged",INSERTED:"inserted",UPDATED:"updated"});class Ja{constructor(e,t){this.session=t,this.locale=t.locale,this._allData=[],this._allAxis=[],this._rows=e.rows,this._table=e}addData(e,t){let i=[],s=this.locale;return this._allData.push(i),i.column=e,i.format=e=>s.decimalFormat.format(e),t===Ja.NumberGroup.COUNT?(i.norm=e=>1,i.group=e=>e.length):t===Ja.NumberGroup.SUM?(i.norm=e=>isNaN(e)||null===e||""===e?null:parseFloat(e),i.group=e=>e.reduce(((e,t)=>e+t))):t===Ja.NumberGroup.AVG&&(i.norm=e=>isNaN(e)||null===e||""===e?null:parseFloat(e),i.group=e=>{let t=e.reduce(((e,t)=>e+t)),i=e.reduce(((e,t)=>null===t?e:e+1),0);return 0===i?null:t/i}),i}addAxis(e,t){let i=[],s=this.locale,r=this.session,n=this.session.text.bind(this.session),o=n("ui.EmptyCell");return this._allAxis.push(i),i.column=e,i.normTable=[],i.sortCodeMap={},i.add=e=>{-1===i.indexOf(e)&&i.push(e)},i.reorder=()=>{i.sort(((e,t)=>{if(null===e)return 1;if(null===t)return-1;let s=i.sortCodeMap[e],r=i.sortCodeMap[t];return Ai.isNullOrUndefined(s)&&Ai.isNullOrUndefined(r)?e-t:vh.NUMERIC.compare(s,r)}))},i.norm=e=>{if(null===e||""===e)return null;let t=i.normTable.indexOf(e);return-1===t?i.normTable.push(e)-1:t},i.format=e=>null===e?o:i.normTable[e],i.deterministicKeyToKey=e=>i.norm(e),i.keyToDeterministicKey=e=>null===e?e:i.format(e),i.normDeterministic=e=>i.keyToDeterministicKey(i.norm(e)),e instanceof Mh?(t===Ja.DateGroup.NONE?(i.norm=e=>null===e||""===e?null:e.getTime(),i.format=t=>{if(null===t)return null;let i=e.format;return i=i?eo.ensure(s,i):s.dateFormat,i.format(new Date(t))}):t===Ja.DateGroup.YEAR?(i.norm=e=>null===e||""===e?null:e.getFullYear(),i.format=e=>null===e?o:String(e)):t===Ja.DateGroup.MONTH?(i.norm=e=>null===e||""===e?null:e.getMonth(),i.format=e=>null===e?o:s.dateFormatSymbols.months[e]):t===Ja.DateGroup.WEEKDAY?(i.norm=e=>null===e||""===e?null:(e.getDay()+7-s.dateFormatSymbols.firstDayOfWeek)%7,i.format=e=>null===e?o:s.dateFormatSymbols.weekdaysOrdered[e]):t===Ja.DateGroup.DATE&&(i.norm=e=>null===e||""===e?null:Le.trunc(e).getTime(),i.format=e=>null===e?o:Le.format(new Date(e),s,s.dateFormatPatternDefault)),i.deterministicKeyToKey=e=>e,i.keyToDeterministicKey=e=>e,i.normDeterministic=e=>i.norm(e)):e instanceof Ih?(i.norm=e=>isNaN(e)||null===e||""===e?null:parseFloat(e),i.format=t=>isNaN(t)||null===t?o:e.decimalFormat.format(t),i.deterministicKeyToKey=e=>e,i.keyToDeterministicKey=e=>e,i.normDeterministic=e=>i.norm(e)):e instanceof Eh?(i.norm=t=>e.triStateEnabled&&null===t?-1:!0===t?1:0,i.format=e=>-1===e?n("ui.BooleanColumnGroupingMixed"):0===e?n("ui.BooleanColumnGroupingFalse"):1===e?n("ui.BooleanColumnGroupingTrue"):void 0,i.deterministicKeyToKey=e=>e,i.keyToDeterministicKey=e=>e,i.normDeterministic=e=>i.norm(e)):e instanceof kh?(i.textIsIcon=!0,i.deterministicKeyToKey=e=>e,i.keyToDeterministicKey=e=>e,i.normDeterministic=e=>i.norm(e)):i.reorder=()=>{let e=vh.TEXT;e.install(r),i.sort(((t,s)=>{if(null===t)return 1;if(null===s)return-1;let r=i.sortCodeMap[t],n=i.sortCodeMap[s];return Ai.isNullOrUndefined(r)&&Ai.isNullOrUndefined(n)?e.compare(i.format(t),i.format(s)):vh.NUMERIC.compare(r,n)}))},i}calculate(){let e,t,i,s,r,n,o,l={},a=0;for(e=0;e<this._rows.length;e++){let h=this._rows[e],d=[];for(i=0;i<this._allAxis.length;i++){let e=this._allAxis[i].column;r=e.cellValueOrTextForCalculation(h),o=this._allAxis[i].norm(r),void 0!==o&&(this._allAxis[i].add(o),null!==e.cell(h).sortCode&&(this._allAxis[i].sortCodeMap[o]=e.cell(h).sortCode),d.push(o))}d=JSON.stringify(d);let u=[];for(t=0;t<this._allData.length;t++)s=this._table.cellValue(this._allData[t].column,h),n=this._allData[t].norm(s),void 0!==n&&u.push(n);l[d]?l[d].push(u):(l[d]=[u],a++)}for(t=0;t<this._allData.length;t++){for(i in s=this._allData[t],s.total=0,s.min=null,s.max=null,l)if(l.hasOwnProperty(i)){let e=l[i],r=[];for(let i=0;i<e.length;i++)r.push(e[i][t]);let n=this._allData[t].group(r);if(l[i][t]=n,s.total+=n,null===n)continue;(n<s.min||null===s.min)&&(s.min=n),(n>s.max||null===s.min)&&(s.max=n)}0===x.nvl(s.max,0)&&(s.max=.1);let e=Math.ceil(Math.log(s.max)/Math.LN10)-1;s.max=Math.ceil(s.max/Math.pow(10,e))*Math.pow(10,e),s.max=4*Math.ceil(s.max/4)}for(i=0;i<this._allAxis.length;i++)r=this._allAxis[i],r.min=me.min(r),r.max=me.max(r),-1!==r.indexOf(null)&&(r.max=r.max+1),r.reorder();return l.getValue=e=>(e=JSON.stringify(e),l.hasOwnProperty(e)?l[e]:null),l.length=a,l}columnCount(e){let t,i,s,r,n,o=this.columns(e),l=[],a=0;for(t=0;t<o.length;t++){for(i=o[t],l.push([i,[]]),s=0;s<this._rows.length;s++)r=this._rows[s],n=i.cellValueOrTextForCalculation(r),-1===l[a][1].indexOf(n)&&l[a][1].push(n);l[a][1]=l[a][1].length,a++}return l}isEmpty(){return 0===this._rows.length||0===this.columns().length}columns(e){return e=x.nvl(e,!0),this._table.visibleColumns().filter((t=>!t.guiOnly&&!(e&&t instanceof Ih)))}isMatrixValid(){return 0===this._table.rows.length||this.columns(!1).length===this._table.rows[0].cells.length}}Xa(Ja,"DateGroup",{NONE:0,YEAR:256,MONTH:257,WEEKDAY:258,DATE:259}),Xa(Ja,"NumberGroup",{COUNT:-1,SUM:1,AVG:2});class Za extends Y{constructor(){super(),this._compactStyle=!1,this.animating=!1,this.open=!1,this.resizing=!1,this.table=null,this._tableRowsChangedHandler=this._onTableRowsChanged.bind(this),this._tableFilterHandler=this._onTableFilter.bind(this),this._tableFilterAddedHandler=this._onTableFilterAdded.bind(this),this._tableFilterRemovedHandler=this._onTableFilterRemoved.bind(this),this._tableRowsSelectedHandler=this._onTableRowsSelected.bind(this),this._tableStatusChangedHandler=this._onTableStatusChanged.bind(this),this._tablePropertyChangeHandler=this._onTablePropertyChange.bind(this)}_init(e){super._init(e),this.searchFieldKeyStrokeContext=new Qr,this.searchFieldKeyStrokeContext.$bindTarget=function(){return this._$textFilter}.bind(this),this.searchFieldKeyStrokeContext.$scopeTarget=function(){return this._$textFilter}.bind(this),this._focusFilterFieldKeyStroke=null}_render(){let e,t;this.$container=this.$parent.appendDiv("table-footer"),this._$window=this.$parent.window(),this._$body=this.$parent.body(),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Qa(this)),this.$controlContainer=this.$container.appendDiv("table-control-container").hide(),this.$controlContent=this.$controlContainer.appendDiv("table-control-content"),this._$controls=this.$container.appendDiv("table-controls"),this._$info=this.$container.appendDiv("table-info"),t=this._$info.appendDiv("table-filter"),this._$textFilter=Zd.makeTextField(this.$container,"table-text-filter").appendTo(t).on("input","",this._createOnFilterFieldInputFunction().bind(this)).placeholder(this.session.text("ui.FilterBy_")),this.table.$container.data("filter-field",this._$textFilter),this._focusFilterFieldKeyStroke=new K(this.table),this.table.keyStrokeContext.registerKeyStroke(this._focusFilterFieldKeyStroke),e=this.table.getFilter(yd.TYPE),e&&this._$textFilter.val(e.text),this.$clearIcon=t.appendSpan("clear-icon unfocusable action text-field-icon").on("mousedown",this._onDeleteFilterMouseDown.bind(this)),this._$infoLoad=this._$info.appendDiv("table-info-item table-info-load").on("click","",this._onInfoLoadClick.bind(this)),this._$infoFilter=this._$info.appendDiv("table-info-item table-info-filter").on("click","",this._onInfoFilterClick.bind(this)),this._$infoSelection=this._$info.appendDiv("table-info-item table-info-selection").on("click","",this._onInfoSelectionClick.bind(this)),this._$infoTableStatus=this._$info.appendDiv("table-info-item table-info-status").on("mousedown",this._onStatusMouseDown.bind(this)),this._$infoTableStatusIcon=this._$infoTableStatus.appendSpan("icon font-icon"),this._renderControls(),this._renderInfo(),this._updateInfoVisibility(),this.table.on("rowsInserted",this._tableRowsChangedHandler),this.table.on("rowsDeleted",this._tableRowsChangedHandler),this.table.on("allRowsDeleted",this._tableRowsChangedHandler),this.table.on("filter",this._tableFilterHandler),this.table.on("filterAdded",this._tableFilterAddedHandler),this.table.on("filterRemoved",this._tableFilterRemovedHandler),this.table.on("rowsSelected",this._tableRowsSelectedHandler),this.table.on("statusChanged",this._tableStatusChangedHandler),this.table.on("propertyChange",this._tablePropertyChangeHandler),this.session.keyStrokeManager.installKeyStrokeContext(this.searchFieldKeyStrokeContext)}getFocusableElement(){return this._$textFilter}_renderProperties(){this._updateHasFilterText()}_remove(){this.session.keyStrokeManager.uninstallKeyStrokeContext(this.searchFieldKeyStrokeContext),this._hideTableStatusTooltip(),this.$resizer=null,this.$controlContainer.stop(!1,!0),this.animating=!1,this.open=!1,this.table.keyStrokeContext.unregisterKeyStroke(this._focusFilterFieldKeyStroke),this._focusFilterFieldKeyStroke=null,this.table.off("rowsInserted",this._tableRowsChangedHandler),this.table.off("rowsDeleted",this._tableRowsChangedHandler),this.table.off("allRowsDeleted",this._tableRowsChangedHandler),this.table.off("filter",this._tableFilterHandler),this.table.off("filterAdded",this._tableFilterAddedHandler),this.table.off("filterRemoved",this._tableFilterRemovedHandler),this.table.off("rowsSelected",this._tableRowsSelectedHandler),this.table.off("statusChanged",this._tableStatusChangedHandler),this.table.off("propertyChange",this._tablePropertyChangeHandler),super._remove()}_renderResizerVisible(){this.selectedControl.resizerVisible?(this._renderResizer(),this.$controlContainer.addClass("has-resizer")):this.$resizer&&(this.$resizer.remove(),this.$resizer=null,this.$controlContainer.removeClass("has-resizer"))}_renderResizer(){this.$resizer||(this.$resizer=this.$controlContainer.prependDiv("table-control-resize").on("mousedown","",function(e){let t=this.$controlContainer.height(),i=Math.floor(e.pageY);return this._$window.on("mousemove.tablefooter",function(e){if(!this.rendered)return;let s=Math.floor(e.pageY)-i,r=this.table.$container.height()-this.table.footer.$container.height(),n=Math.min(t-s,r);this.$controlContainer.height(n);let o=pr.insets(this.$controlContainer);this.$controlContent.outerHeight(n-o.vertical()),this._revalidateTableLayout()}.bind(this)).one("mouseup",function(){this.selectedControl&&this.rendered&&this.$controlContainer.height()<100&&this.selectedControl.setSelected(!1);this._$window.off("mousemove.tablefooter"),this._$body.removeClass("row-resize"),this.resizing=!1}.bind(this)),this._$body.addClass("row-resize"),this.resizing=!0,!1}.bind(this)))}_renderControls(){let e=this.table.tableControls;e?e.forEach((e=>{e.setParent(this),e.render(this._$controls)})):this._$controls.empty()}_renderInfo(){this._renderInfoLoad(),this._renderInfoTableStatus(),this._renderInfoFilter(),this._renderInfoSelection()}_renderInfoLoad(){let e=this._$infoLoad,t=this.table.rows.length,i=this.table.estimatedRowCount,s=this.table.maxRowCount;e.empty(),this._compactStyle?(t<=1?e.appendSpan().text(this.session.text("ui.NumRowLoadedMin")):e.appendSpan().text(this.session.text("ui.NumRowsLoadedMin")),e.appendSpan("table-info-button").text(this.computeCountInfo(t))):(t<=1?e.appendSpan().text(this.session.text("ui.NumRowLoaded",this.computeCountInfo(t))):i&&i>t?e.appendSpan().text(this.session.text("ui.NumRowsLoaded",this.computeCountInfo(t,i))):e.appendSpan().text(this.session.text("ui.NumRowsLoaded",this.computeCountInfo(t))),this.table.hasReloadHandler&&(i&&s&&t<i&&t<s?i<s?e.appendSpan("table-info-button").text(this.session.text("ui.LoadAllData")).appendTo(e):e.appendSpan("table-info-button").text(this.session.text("ui.LoadNData",this.computeCountInfo(s))).appendTo(e):e.appendSpan("table-info-button").text(this.session.text("ui.ReloadData")).appendTo(e))),e.setEnabled(this.table.hasReloadHandler),this.htmlComp.layouting||this.invalidateLayoutTree(!1)}_renderInfoFilter(){let e=this._$infoFilter,t=this.table.filteredRows().length,i=this.table.filteredBy().join(", ");e.empty(),this._compactStyle?(t<=1?e.appendSpan().text(this.session.text("ui.NumRowFilteredMin")):e.appendSpan().text(this.session.text("ui.NumRowsFilteredMin")),e.appendSpan("table-info-button").text(this.computeCountInfo(t))):(i?t<=1?e.appendSpan().text(this.session.text("ui.NumRowFilteredBy",this.computeCountInfo(t),i)):e.appendSpan().text(this.session.text("ui.NumRowsFilteredBy",this.computeCountInfo(t),i)):t<=1?e.appendSpan().text(this.session.text("ui.NumRowFiltered",this.computeCountInfo(t))):e.appendSpan().text(this.session.text("ui.NumRowsFiltered",this.computeCountInfo(t))),this.table.hasUserFilter()&&e.appendSpan("table-info-button").text(this.session.text("ui.RemoveFilter")).appendTo(e)),this.htmlComp.layouting||this.invalidateLayoutTree(!1)}_renderInfoSelection(){let e=this._$infoSelection,t=this.table.filteredRows().length,i=this.table.selectedRows.length,s=t>0&&t===i;e.empty(),this._compactStyle?(i<=1?e.appendSpan().text(this.session.text("ui.NumRowSelectedMin")):e.appendSpan().text(this.session.text("ui.NumRowsSelectedMin")),e.appendSpan("table-info-button").text(this.computeCountInfo(i))):(i<=1?e.appendSpan().text(this.session.text("ui.NumRowSelected",this.computeCountInfo(i))):e.appendSpan().text(this.session.text("ui.NumRowsSelected",this.computeCountInfo(i))),e.appendSpan("table-info-button").text(this.session.text(s?"ui.SelectNone":"ui.SelectAll")).appendTo(e)),this.htmlComp.layouting||this.invalidateLayoutTree(!1)}_renderInfoTableStatus(){let e=this._$infoTableStatus,t=this.table.tableStatus;e.removeClass(Ii.SEVERITY_CSS_CLASSES),t&&e.addClass(t.cssClass()),this.htmlComp.layouting||this.invalidateLayoutTree(!1)}_updateInfoVisibility(){this._updateInfoFilterVisibility(),this._updateInfoSelectionVisibility(),this._updateInfoTableStatusVisibility()}_updateInfoFilterVisibility(){let e=this.table.filteredBy().length>0;this._setInfoVisible(this._$infoFilter,e)}_updateInfoSelectionVisibility(){let e=this.table.multiSelect;this._setInfoVisible(this._$infoSelection,e)}_updateInfoTableStatusVisibility(){if(this.table.tableStatus){let e=null;x.isOneOf(this.table.tableStatus.uiState,"user-hidden","auto-hidden")||(this._$infoTableStatus.addClass("tooltip-active"),e=function(){this.table.tableStatus&&!x.isOneOf(this.table.tableStatus.uiState,"user-hidden","auto-hidden")&&this._showTableStatusTooltip()}.bind(this)),this._setInfoVisible(this._$infoTableStatus,!0,e)}else this._hideTableStatusTooltip(),this._setInfoVisible(this._$infoTableStatus,!1)}_setInfoVisible(e,t,i){if(!(e.isVisible()!==t||t&&e.hasClass("hiding")))return void(i&&i());if(this.rendered)if(t){let t={progress:this.revalidateLayout.bind(this),complete:()=>{i&&i()}};e.data("animationComplete",t.complete),""===e[0].style.width&&e.cssWidth(0),e.stop().removeClass("hiding").setVisible(!0).widthToContent(t)}else e.addClass("hiding"),e.stop().animate({width:0},{progress:this.revalidateLayout.bind(this),complete:()=>{e.removeClass("hiding"),e.setVisible(!1)}});else e.setVisible(t)}_toggleTableInfoTooltip(e,t){this._tableInfoTooltip?this._tableInfoTooltip.destroy():(this._tableInfoTooltip=x.create(t,{parent:this,tableFooter:this,arrowPosition:50,arrowPositionUnit:"%",$anchor:e}),this._tableInfoTooltip.one("destroy",(()=>{this._tableInfoTooltip=null})),this._tableInfoTooltip.render())}computeCountInfo(e,t){return e=x.nvl(e,0),t?this.session.text("ui.TableRowCount",this.session.text("ui.CountOfApproxTotal",this.session.locale.decimalFormat.format(e),this.session.locale.decimalFormat.format(t))):0===e?this._compactStyle?this.session.text("ui.TableRowCount",0):this.session.text("ui.TableRowCount0"):1===e?this.session.text("ui.TableRowCount1"):this.session.text("ui.TableRowCount",this.session.locale.decimalFormat.format(e))}_revalidateTableLayout(){this.table.htmlComp.revalidateLayoutTree()}openControlContainer(e){this.open;let t=this.$controlContent.data("control");this.animating&&t!==e&&t.onControlContainerClosed(),this.animating=!0,this.open=!0;let i=this.computeControlContainerHeight(this.table,e),s=pr.insets(this.$controlContainer);this.$controlContent.outerHeight(i-s.vertical()),""===this.$controlContainer[0].style.height&&this.$controlContainer.outerHeight(0),this.$controlContainer.outerHeight()>i&&this.table.invalidateLayoutTree(),this.$controlContainer.stop(!0).show().delay(1).animate({height:i},{duration:this.rendered?e.animateDuration:0,complete:function(){this.animating=!1,e.onControlContainerOpened(),this.table.invalidateLayoutTree()}.bind(this)})}closeControlContainer(e,t){if(!this.open)return;t=n().extend({},{animate:!0},t),this.open=!1,this.animating=!0,this.table.invalidateLayoutTree();let i=function(){this.animating=!1,this.$controlContainer.hide(),e.onControlContainerClosed()}.bind(this);t.animate?this.$controlContainer.stop(!0).show().animate({height:0},{duration:e.animateDuration,complete:i}):i()}computeControlContainerHeight(e,t,i){let s,r=0,n=0,o=pr.size(e.$container).height,l=0,a=pr.margins(x.nvl(e.$data,e.$container)),h=a.top+a.bottom,d=e.menuBar,u=e.footer,c=e.htmlComp,p=c.availableSize().subtract(c.insets());if(u){if(e.menuBarVisible&&d.visible){let e=fr.get(d.$container);r=Il.size(e,p).height}return n=pr.size(u.$container).height,u.open&&(u.animating?l=t.height:(l=pr.size(u.$controlContainer).height,!u.resizing&&i&&(l=Math.max(t.height,l)))),this.table.htmlComp.layouted&&(s=o-(h+r+n),l=Math.min(l,s)),l}}_hideTableStatusTooltip(){clearTimeout(this._autoHideTableStatusTooltipTimeoutId),this._tableStatusTooltip&&this._tableStatusTooltip.destroy()}_showTableStatusTooltip(){if(this._tableStatusTooltip&&(this._tableStatusTooltip.destroy(),this._tableStatusTooltip=null),!this.rendered&&!this.rendering)return;let e=this.table.tableStatus,t=e?e.message:null;if(qt.empty(t))return;let i={parent:this,text:t,severity:e.severity,autoRemove:!e.isError(),$anchor:this._$infoTableStatusIcon};this._tableStatusTooltip=x.create("Tooltip",i),this._tableStatusTooltip.one("destroy",(()=>{this._tableStatusTooltip=null})),this._tableStatusTooltip.render(),this._$infoTableStatus.addClass("tooltip-active"),this._tableStatusTooltip.on("remove",(()=>{this._$infoTableStatus.removeClass("tooltip-active"),clearTimeout(this._autoHideTableStatusTooltipTimeoutId),this.table.tableStatus&&!this.table.tableStatus.isError()&&(this.table.tableStatus.uiState="auto-hidden")})),clearTimeout(this._autoHideTableStatusTooltipTimeoutId),e.isError()||e.isWarning()||e.uiState||(this.table.tableStatus.uiState="auto-hidden",this._autoHideTableStatusTooltipTimeoutId=setTimeout((()=>{this._hideTableStatusTooltip()}),5e3))}_updateHasFilterText(){this._$textFilter.toggleClass("has-text",!!this._$textFilter.val())}onControlSelected(e){let t=this.selectedControl;this.selectedControl=e,e&&(this._renderResizerVisible(),t&&t.height!==e.height&&this.openControlContainer(e))}_onStatusMouseDown(e){this._tableStatusTooltip?(this._hideTableStatusTooltip(),this.table.tableStatus.uiState="user-hidden"):(this._showTableStatusTooltip(),this._tableStatusTooltip.rendered&&(this.table.tableStatus.uiState="user-shown"))}_createOnFilterFieldInputFunction(){let e=n().debounce(this._applyFilter.bind(this));return function(t){this._updateHasFilterText(),e()}}_onDeleteFilterMouseDown(e){this._$textFilter.val(""),this._updateHasFilterText(),this._applyFilter(),e.preventDefault()}_applyFilter(e){let t,i=this._$textFilter.val();this.filterText!==i&&(this.filterText=i,i?(t=x.create("TableTextUserFilter",{session:this.session,table:this.table}),t.text=i,this.table.addFilter(t)):this.table.removeFilterByKey(yd.TYPE))}_onInfoLoadClick(){if(this._$infoLoad.isEnabled())if(this._compactStyle)this._toggleTableInfoTooltip(this._$infoLoad,"TableInfoLoadTooltip");else{let e=this.table.rows.length,t=this.table.estimatedRowCount,i=this.table.maxRowCount;t&&i&&e<t&&e<i?this.table.reload(Ka.ReloadReason.OVERRIDE_ROW_LIMIT):this.table.reload()}}_onInfoFilterClick(){this._compactStyle?this._toggleTableInfoTooltip(this._$infoFilter,"TableInfoFilterTooltip"):this.table.resetUserFilter()}_onInfoSelectionClick(){this._compactStyle?this._toggleTableInfoTooltip(this._$infoSelection,"TableInfoSelectionTooltip"):this.table.toggleSelection()}_onTableRowsChanged(e){this._renderInfoLoad()}_onTableFilter(e){this._renderInfoFilter(),this._updateInfoFilterVisibility(),this._renderInfoSelection()}_onTableFilterAdded(e){if(this._renderInfoFilter(),this._updateInfoFilterVisibility(),e.filter.filterType===yd.TYPE){this._$textFilter.val()!==e.filter.text&&(this._$textFilter.val(e.filter.text),this._updateHasFilterText(),this._applyFilter())}}_onTableFilterRemoved(e){this._renderInfoFilter(),this._updateInfoFilterVisibility(),e.filter.filterType===yd.TYPE&&(this._$textFilter.val(""),this._updateHasFilterText(),this._applyFilter())}_onTableRowsSelected(e){this._renderInfoSelection()}_onTableStatusChanged(e){this._renderInfoTableStatus(),this._updateInfoTableStatusVisibility()}_onTablePropertyChange(e){"multiSelect"===e.propertyName&&this._updateInfoSelectionVisibility()}}class Qa extends _r{constructor(e){super(),this._tableFooter=e}layout(e){let t,i=this._tableFooter._$controls,s=this._tableFooter._$info,r=s.find(".table-info-item"),o=pr.size(e).width,l=pr.size(i,!0).width,a=pr.size(s,!0).width;r.each((function(){let e=n()(this);e.isVisible()&&!e.hasClass("hiding")&&(e.data("oldWidth",e.outerWidth()),e.css("width","auto"))})),s.css("max-width",""),this._tableFooter._compactStyle&&(this._tableFooter._compactStyle=!1,this._tableFooter._renderInfo()),a=pr.size(s,!0).width,l+a<=o&&(this._tableFooter._tableInfoTooltip&&this._tableFooter._tableInfoTooltip.destroy(),t=!0),t||(this._tableFooter._compactStyle=!0,this._tableFooter._renderInfo(),a=pr.size(s,!0).width,l+a<=o&&(t=!0),s.css("max-width",Math.max(o-l-s.cssMarginX(),0)));let h=this._tableFooter.htmlComp.layouted;this._setInfoItemsSize(r,h),this._tableFooter._tableStatusTooltip&&this._tableFooter._tableStatusTooltip.rendered&&this._tableFooter._tableStatusTooltip.position(),this._tableFooter._tableInfoTooltip&&this._tableFooter._tableInfoTooltip.rendered&&this._tableFooter._tableInfoTooltip.position(),this._tableFooter.table.tableControls.forEach((e=>{e.revalidateLayout()}))}_setInfoItemsSize(e,t){e.each((function(){let e=n()(this);if(e.isVisible()&&!e.hasClass("hiding")){let i=e.data("animationComplete");t?(e.stop().cssWidthAnimated(e.data("oldWidth"),e.outerWidth(),{complete:i}),e.removeData("oldWidth")):e.cssWidth(e.outerWidth())}}))}}class eh extends _o{constructor(){super()}_init(e){super._init(e),this.tableFooter=e.tableFooter;let t=scout.create("Menu",{parent:this,text:this.session.text("ui.RemoveFilter")});t.on("action",this._onRemoveFilterClick.bind(this)),this.setMenus(t)}_renderText(){let e=this.tableFooter.table,t=e.filteredRows().length,i=e.filteredBy().join(", ");this.$content.appendSpan().text(this.session.text("ui.NumRowsFilteredBy",this.tableFooter.computeCountInfo(t),i))}_onRemoveFilterClick(){this.tableFooter.table.resetUserFilter(),this.destroy()}}class th extends _o{constructor(){super()}_init(e){super._init(e),this.tableFooter=e.tableFooter;let t=scout.create("Menu",{parent:this,text:this.session.text("ui.ReloadData")});t.on("action",this._onReloadClick.bind(this)),this.setMenus(t)}_renderText(){let e=this.tableFooter.table.rows.length;this.$content.text(this.session.text("ui.NumRowsLoaded",this.tableFooter.computeCountInfo(e)))}_onReloadClick(){this.tableFooter.table.reload(),this.destroy()}}class ih extends _o{constructor(){super()}_init(e){super._init(e),this.tableFooter=e.tableFooter;let t=scout.create("Menu",{parent:this,text:this.session.text("ui.SelectNone")});t.on("action",this._onSelectNoneClick.bind(this));let i=scout.create("Menu",{parent:this,text:this.session.text("ui.SelectAll")});i.on("action",this._onSelectAllClick.bind(this)),this.setMenus([t,i])}_renderText(){let e=this.tableFooter.table.selectedRows.length;this.$content.text(this.session.text("ui.NumRowsSelected",this.tableFooter.computeCountInfo(e)))}_onSelectNoneClick(){this.tableFooter.table.deselectAll(),this.destroy()}_onSelectAllClick(){this.tableFooter.table.selectAll(),this.destroy()}}class sh extends Y{constructor(){super(),this.dragging=!1,this.headerMenusEnabled=!0,this.table=null,this._tableDataScrollHandler=this._onTableDataScroll.bind(this),this._tableAddFilterRemovedHandler=this._onTableAddFilterRemoved.bind(this),this._tableColumnResizedHandler=this._onTableColumnResized.bind(this),this._tableColumnMovedHandler=this._onTableColumnMoved.bind(this),this._renderedColumns=[]}_init(e){super._init(e),this.menuBar=x.create("MenuBar",{parent:this,tabbable:!1,position:kl.Position.BOTTOM,menuOrder:new cc}),this.menuBar.on("propertyChange",this._onMenuBarPropertyChange.bind(this)),this.updateMenuBar()}_render(){this.$container=this.table.$data.beforeDiv("table-header").cssBorderLeftWidth(this.table.rowBorders.left||""),this.$filler=this.$container.appendDiv("table-header-item filler").css("visibility","hidden"),this.$menuBarContainer=this.$container.appendDiv("menubar-container").setVisible(this.menuBar.visible),this.menuBar.render(this.$menuBarContainer),this._$window=this.$container.window(),this._$body=this.$container.body(),this._renderColumns(),this.table.$data.on("scroll",this._tableDataScrollHandler),this.table.on("filterAdded",this._tableAddFilterRemovedHandler),this.table.on("filterRemoved",this._tableAddFilterRemovedHandler),this.table.on("columnResized",this._tableColumnResizedHandler),this.table.on("columnMoved",this._tableColumnMovedHandler)}_remove(){this.table.$data.off("scroll",this._tableDataScrollHandler),this.table.off("filterAdded",this._tableAddFilterRemovedHandler),this.table.off("filterRemoved",this._tableAddFilterRemovedHandler),this.table.off("columnResized",this._tableColumnResizedHandler),this.table.off("columnMoved",this._tableColumnMovedHandler),this._removeColumns(),super._remove()}rerenderColumns(){this._removeColumns(),this._renderColumns()}_renderColumns(){let e=this._visibleColumns();e.forEach(this._renderColumn,this),0===e.length&&this.$filler.css("visibility","visible").html(" ").addClass("empty"),this._reconcileScrollPos()}_renderColumn(e,t){let i=e._realWidthIfAvailable(),s=0===t,r=t===this._visibleColumns().length-1,n=this.$filler.beforeDiv("table-header-item").setEnabled(this.enabled).data("column",e);i-=pr.margins(n).horizontal(),n.cssMinWidth(i).cssMaxWidth(i),n.appendSpan("table-header-item-text"),this.enabled&&n.on("click",this._onHeaderItemClick.bind(this)).on("mousedown",this._onHeaderItemMouseDown.bind(this)),this.session.inspector&&vt.applyInfo(e,n),s&&n.addClass("first"),r&&n.addClass("last"),e.$header=n,this._installHeaderItemTooltip(e),this._decorateHeader(e);let o=e.showSeparator;if(r&&!this.enabled&&(o=!1),o){let t=this.$filler.beforeDiv("table-header-resize");e.fixedWidth||!this.enabled?t.setEnabled(!1):t.on("mousedown","",this._onSeparatorMouseDown.bind(this)).on("dblclick",this._onSeparatorDblclick.bind(this)),e.$separator=t}this._renderedColumns.push(e)}_removeColumns(){this._renderedColumns.slice().forEach(this._removeColumn,this)}_removeColumn(e){e.$header&&(e.$header.remove(),e.$header=null),e.$separator&&(e.$separator.remove(),e.$separator=null),me.remove(this._renderedColumns,e)}resizeHeaderItem(e){if(!e)return;if(!e.$header)return;let t,i,s=e.$header,r=e._realWidthIfAvailable(),n=pr.margins(s),o=this.menuBar.visible?this.$menuBarContainer.outerWidth(!0):0,l=this._visibleColumns(),a=l.indexOf(e)===l.length-1;if(r-=n.horizontal(),a&&o>0&&(t=this.$container.width()-this.table.rowWidth+pr.insets(this.$container).right,t<o)){i=o,e.$separator&&(i+=e.$separator.width()),t>0&&(i-=t);let s=r;r=Math.max(r-i,e.minWidth),this.$filler.cssWidth(s-r)}s.cssMinWidth(r).cssMaxWidth(r)}resizeHeaderItems(){this._visibleColumns().forEach(this.resizeHeaderItem.bind(this))}_reconcileScrollPos(){let e=this.table.get$Scrollable().scrollLeft(),t=this._lastVisibleColumn();this.resizeHeaderItem(t),this.$container.scrollLeft(e),this.$menuBarContainer.cssRight(-1*e)}_arrangeHeaderItems(e){let t=this;e.each((function(){n()(this).css("left",n()(this).data("old-pos")-n()(this).offset().left).animate({left:0},{progress:function(e,i,s){let r=n()(this);r.isSelected()&&(Yn.scrollHorizontalTo(t.table.$data,r),t.tableHeaderMenu&&t.tableHeaderMenu.rendered&&t.tableHeaderMenu.position())}})}))}_installHeaderItemTooltip(e){yo.install(e.$header,{parent:this,text:this._headerItemTooltipText.bind(this),arrowPosition:50,arrowPositionUnit:"%",nativeTooltip:!Qe.get().isCustomEllipsisTooltipPossible(),htmlEnabled:this._headerItemTooltipHtmlEnabled.bind(this)})}_installHeaderItemTooltips(){this._visibleColumns().forEach(this._installHeaderItemTooltip,this)}_uninstallHeaderItemTooltip(e){yo.uninstall(e.$header)}_uninstallHeaderItemTooltips(){this._visibleColumns().forEach(this._uninstallHeaderItemTooltip,this)}_headerItemTooltipText(e){let t=e.data("column");if(t&&qt.hasText(t.headerTooltipText))return t.headerTooltipText;let i=e.children(".table-header-item-text");if(i.isContentTruncated()||e.width()+e.position().left>e.parent().width()){let e=qt.plainText(i.html(),{trim:!0});if(qt.hasText(e))return e}return null}_headerItemTooltipHtmlEnabled(e){return e.data("column").headerTooltipHtmlEnabled}setHeaderMenusEnabled(e){this.setProperty("headerMenusEnabled",e)}_renderHeaderMenusEnabled(){this._visibleColumns().forEach((function(e){this._decorateHeader(e)}),this)}openHeaderMenu(e){this.tableHeaderMenu&&this.closeHeaderMenu(),this.tableHeaderMenu=e.createTableHeaderMenu(this),this.tableHeaderMenu.open(),e.trigger("headerMenuOpen",{menu:this.tableHeaderMenu}),this.tableHeaderMenu.one("destroy",(()=>{e.trigger("headerMenuClose",{menu:this.tableHeaderMenu})}))}closeHeaderMenu(){this.tableHeaderMenu.destroy(),this.tableHeaderMenu=null}onColumnActionsChanged(e){this.tableHeaderMenu&&this.tableHeaderMenu.onColumnActionsChanged(e)}findHeaderItems(){return this.$container.find(".table-header-item:not(.filler)")}updateHeader(e,t){e.isVisible()&&this._decorateHeader(e,t)}_decorateHeader(e,t){this._renderColumnCssClass(e,t),this._renderColumnText(e),this._renderColumnIconId(e),this._renderColumnState(e),this._renderColumnLegacyStyle(e),this._renderColumnHeaderMenuEnabled(e),this._renderColumnHorizontalAlignment(e)}_renderColumnCssClass(e,t){let i=e.$header;t&&i.removeClass(t.headerCssClass),i.addClass(e.headerCssClass)}_renderColumnText(e){let t=e.text,i=e.$header.children(".table-header-item-text");e.headerHtmlEnabled||(t=qt.nl2br(t)),i.htmlOrNbsp(t,"empty"),this._updateColumnIconAndTextStyle(e)}_renderColumnIconId(e){e.$header.icon(e.headerIconId),this._updateColumnIconAndTextStyle(e)}_renderColumnHorizontalAlignment(e){e.$header.removeClass("halign-left halign-center halign-right"),e.$header.addClass("halign-"+Ka.parseHorizontalAlignment(e.horizontalAlignment))}_updateColumnIconAndTextStyle(e){let t=e.$header.data("$icon"),i=e.$header.children(".table-header-item-text");t&&t.toggleClass("with-text",!!e.text),i.setVisible(!(t&&" "===i.html())),e.$header.toggleClass("table-header-item-icon-only",!(!e.headerIconId||e.text))}_renderColumnLegacyStyle(e){ts.legacyStyle(e,e.$header,"header")}_renderColumnHeaderMenuEnabled(e){e.$header.toggleClass("disabled",!this._isHeaderMenuEnabled(e)||!this.enabled)}_renderColumnState(e){let t,i,s=e.$header,r=this.table.getFilter(e.id);if(s.children(".table-header-item-state").remove(),i=s.appendSpan("table-header-item-state"),i.empty(),s.removeClass("sort-asc sort-desc sorted group-asc group-desc grouped filtered"),i.removeClass("sort-asc sort-desc sorted group-asc group-desc grouped filtered"),e.sortActive&&(t=e.sortAscending?"asc":"desc",e.grouped&&s.addClass("group-"+t),s.addClass("sorted sort-"+t),i.addClass("sorted sort-"+t)),e.grouped||r){let t=i.appendDiv("left");e.grouped&&(s.addClass("grouped"),i.addClass("grouped"),t.appendDiv().text("G")),r&&(s.addClass("filtered"),i.addClass("filtered"),t.appendDiv().text("F"))}i.appendDiv("right"),this._adjustColumnMinWidth(e)}_adjustColumnMinWidth(e){let t=this.table.getFilter(e.id);e.sortActive||e.grouped||t?(e.minWidth<Sh.DEFAULT_MIN_WIDTH&&(e.__minWidthWithoutState=e.minWidth,e.__widthWithoutState=e.width,e.minWidth=Sh.DEFAULT_MIN_WIDTH),e.width<e.minWidth&&this.table.resizeColumn(e,e.minWidth)):Ai.isNullOrUndefined(e.__minWidthWithoutState)||(e.minWidth=e.__minWidthWithoutState,e.width===Sh.DEFAULT_MIN_WIDTH&&this.table.resizeColumn(e,e.__widthWithoutState),e.__minWidthWithoutState=null,e.__widthWithoutState=null)}updateMenuBar(){let e=this.table._filterMenus(this.table.menus,hl.HEADER);this.menuBar.setHiddenByUi(!this.enabled),this.menuBar.setMenuItems(e)}_onTableColumnResized(e){let t=e.column,i=this._lastVisibleColumn();this.resizeHeaderItem(t),i!==t&&this.resizeHeaderItem(i)}onSortingChanged(){this._visibleColumns().forEach(this._renderColumnState,this)}_onTableColumnMoved(e){let t=e.column,i=e.oldPos,s=e.newPos,r=t.$header,o=this.findHeaderItems(),l=o.eq(i),a=l.next(".table-header-resize"),h=this._visibleColumns(),d=h.length-1;o.each((function(){n()(this).data("old-pos",n()(this).offset().left)})),s<i?o.eq(s).before(l):(o.eq(s).after(l),l.before(l.next(".table-header-resize"))),l.after(a),o.length>0&&(o.eq(0).removeClass("first"),o.eq(o.length-1).removeClass("last")),h.length>0&&(h[0].$header.addClass("first"),h[d].$header.addClass("last")),i!==d&&s!==d||h.forEach((e=>{this.resizeHeaderItem(e)})),e.dragged?r.css("left",parseInt(r.css("left"),0)+r.data("old-pos")-r.offset().left).addClass("releasing").animateAVCSD("left",0,(()=>r.removeClass("releasing"))):this._arrangeHeaderItems(o)}_visibleColumns(){return this.table.visibleColumns()}_lastVisibleColumn(){return me.last(this._visibleColumns())}onOrderChanged(e){let t,i,s=this.findHeaderItems();s.each((function(){n()(this).data("old-pos",n()(this).offset().left)})),this._visibleColumns().forEach((function(e){t=e.$header,i=t.next(".table-header-resize"),this.$container.append(t),this.$container.append(i)}),this),this.$container.append(this.$filler),this._arrangeHeaderItems(s)}_isHeaderMenuEnabled(e){return!(!e.headerMenuEnabled||!this.headerMenusEnabled)}_onHeaderItemClick(e){let t=n()(e.currentTarget),i=t.data("column");return this.dragging||this.columnMoved?(this.dragging=!1,this.columnMoved=!1):this.table.sortEnabled&&(e.shiftKey||e.ctrlKey||!this._isHeaderMenuEnabled(i))?(this.table.removeColumnGrouping(),this.table.sort(i,t.hasClass("sort-asc")?"desc":"asc",e.shiftKey)):this.tableHeaderMenu&&this.tableHeaderMenu.isOpenFor(t)?this.closeHeaderMenu():this._isHeaderMenuEnabled(i)&&this.openHeaderMenu(i),!1}_onHeaderItemMouseDown(e){if(e.button>0)return;let t=0,i=this,s=Math.floor(e.pageX),r=n()(e.currentTarget),o=r.data("column"),l=this._visibleColumns().indexOf(o),a=l,h=r.outerWidth(),d=r.siblings(".table-header-item:not(.filler)");function u(e){let t=e.html(),i=e.html("<span>"+t+"</span>").find("span:first").width();return e.html(t),i}function c(e){return e.hasClass("halign-right")?e.offset().left+e.outerWidth()-u(e)/2:e.offset().left+u(e)/2}o.fixedPosition||(this.dragging=!1,this.columnMoved=!1,this._$window.on("mousemove.tableheader","",(function(e){if(t=Math.floor(e.pageX)-s,-2<t&&t<2)return;i.dragging=!0,r.addClass("moving"),i.$container&&i.$container.addClass("moving"),r.css("left",t);let o=c(r);d.each((function(e){let t=n()(this),i=c(t);o<i&&e<l?t.css("left",h):o>i&&e>=l?t.css("left",-h):t.css("left",0)})),i.tableHeaderMenu&&(i.tableHeaderMenu.destroy(),i.tableHeaderMenu=null);i.rendered&&i._uninstallHeaderItemTooltips()})).one("mouseup","",(function(e){if(i._$window&&i._$window.off("mousemove.tableheader"),!i.dragging)return!0;(t<0?d:n()(d.get().reverse())).each((function(e){if("0px"!==n()(this).css("left"))return a=i._visibleColumns().indexOf(n()(this).data("column")),!1})),a>-1&&l!==a?(i.table.moveColumn(r.data("column"),l,a,!0),i.dragging=!1,i.columnMoved=!0):(r.addClass("releasing"),r.animateAVCSD("left","",(()=>{i.dragging=!1,r.removeClass("releasing")})));d.each((function(){n()(this).css("left","")})),r.removeClass("moving"),i.$container&&i.$container.removeClass("moving"),i.rendered&&i._installHeaderItemTooltips()})))}_onSeparatorDblclick(e){if(!(e.button>0))if(e.shiftKey)this._visibleColumns().forEach((function(e){this.table.resizeToFit(e)}),this);else{let t=n()(e.target).prev().data("column");this.table.resizeToFit(t)}}_onSeparatorMouseDown(e){if(e.button>0)return;let t=Math.floor(e.pageX),i=n()(e.target).prev().data("column"),s=this,r=i.width,o=this.$container.appendDiv("table-column-resize-helper").css("width",this.table.rowWidth+this.table.rowBorders.horizontal()),l=this.table.$data.appendDiv("table-column-resize-helper").css("width",this.table.rowWidth);this._$window.on("mousemove.tableheader",(function(e){let n=Math.floor(e.pageX)-t,o=r+n;o=Math.max(o,i.minWidth),s.rendered&&o!==i.width&&s.table.resizeColumn(i,o)})).one("mouseup",(function(e){o.remove(),l.remove(),s._$window&&s._$window.off("mousemove.tableheader"),s._$body&&s._$body.removeClass("col-resize"),s.table.rendered&&i.width!==r&&s.table.resizeColumn(i,i.width)})),this._$body.addClass("col-resize"),e.preventDefault()}_onTableDataScroll(){Yn.fix(this.$menuBarContainer),this._reconcileScrollPos(),this._fixTimeout=Yn.unfix(this.$menuBarContainer,this._fixTimeout)}_onMenuBarPropertyChange(e){this.rendered&&"visible"===e.propertyName&&this.$menuBarContainer.setVisible(e.newValue)}_onTableAddFilterRemoved(e){let t=e.filter.column;e.filter.filterType===md.TYPE&&t.$header&&this._renderColumnState(t)}}function rh(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class nh extends Ao{constructor(){super(),this.column=null,this.tableHeader=null,this.table=null,this.filter=null,this.filterCheckedMode=nh.CheckedMode.ALL,this.filterSortMode=nh.SortMode.ALPHABETICALLY,this.hasFilterTable=!1,this.hasFilterFields=!1,this.animateOpening=!0,this.animateRemoval=!0,this.focusableContainer=!0,this.leftGroups=[],this.moveGroup=null,this.toBeginButton=null,this.forwardButton=null,this.backwardButton=null,this.toEndButton=null,this.sortingGroup=null,this.sortDescButton=null,this.sortAscAddButton=null,this.sortDescAddButton=null,this.columnActionsGroup=null,this.addColumnButton=null,this.removeColumnButton=null,this.modifyColumnButton=null,this.groupButton=null,this.groupAddButton=null,this.barChartButton=null,this.colorGradient1Button=null,this.colorGradient2Button=null,this.$rightGroups=[],this.$headerItem=null,this.$columnActions=null,this.$columnFilters=null,this.$filterTableGroup=null,this.$filterToggleChecked=null,this.$filterTableGroupTitle=null,this.$filterSortOrder=null,this.$filterFieldsGroup=null,this._onColumnMovedHandler=this._onColumnMoved.bind(this),this._tableHeaderScrollHandler=this._onAnchorScroll.bind(this),this.on("locationChange",this._onLocationChange.bind(this)),this.inheritAccessibility=!1}_init(e){e.scrollType=e.scrollType||"none",super._init(e),this.tableHeader=e.tableHeader,this.column=e.column,this.table=this.tableHeader.table,this.$headerItem=this.$anchor,this.table.on("columnMoved",this._onColumnMovedHandler),this.filter=this.table.getFilter(this.column.id),this.filter||(this.filter=this.column.createFilter()),this.filter.calculate(),this.filter.on("filterFieldsChanged",this._updateFilterTable.bind(this)),this._updateFilterTableCheckedMode(),this.hasFilterTable=this.filter.availableValues.length>0,this.hasFilterFields=this.filter.hasFilterFields,this.hasFilterTable&&(this._tableFilterHandler=this._onFilterTableChanged.bind(this),this.table.on("filterAdded",this._tableFilterHandler),this.table.on("filterRemoved",this._tableFilterHandler),this._filterTableRowsCheckedHandler=this._onFilterTableRowsChecked.bind(this))}_createLayout(){return new oh(this)}_render(){if(this.leftGroups=[],this.$rightGroups=[],this.$headerItem.select(!0),this.$container=this.$parent.appendDiv("popup table-header-menu"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout()),this.$body=this.$container.appendDiv("table-header-menu-body"),fr.install(this.$body,this.session),this._installScrollbars({axis:"y",scrollShadow:"none"}),this.$columnActions=this.$body.appendDiv("table-header-menu-actions"),this.hasFilterTable||this.hasFilterFields){this.$columnFilters=this.$body.appendDiv("table-header-menu-filters"),fr.install(this.$columnFilters,this.session).setLayout(new Br)}this.tableHeader.$container.on("scroll",this._tableHeaderScrollHandler),this.table.visibleColumns().filter((e=>!e.fixedPosition)).length>1&&!this.column.fixedPosition&&this.leftGroups.push(this._renderMovingGroup()),this.table.sortEnabled&&this.leftGroups.push(this._renderSortingGroup()),this._isColumnActionsGroupVisible()&&this.leftGroups.push(this._renderColumnActionsGroup()),(this.table.isGroupingPossible(this.column)||this.column.grouped)&&this.leftGroups.push(this._renderGroupingGroup()),this.leftGroups.push(this._renderHierarchyGruop()),this.table.isAggregationPossible(this.column)&&this.leftGroups.push(this._renderAggregationGroup()),this.column instanceof Ih&&this.leftGroups.push(this._renderColoringGroup()),this.hasFilterTable&&this.$rightGroups.push(this._renderFilterTable()),this.hasFilterFields&&this.$rightGroups.push(this._renderFilterFields()),this._onColumnMoved(),this.table.enabled&&this.table.$container.addClass("focused")}validateFocus(){this.filterFieldsGroupBox&&this.filterFieldsGroupBox.focus(),super.validateFocus()}get$Scrollable(){return this.$body}_updateFirstLast(){function e(e){e.forEach(((e,i,s)=>{t(e,"first",0===i),t(e,"last",i===s.length-1)}),this)}function t(e,t,i){(e instanceof lh?e.$container:e).toggleClass(t,i)}e(this.leftGroups.filter((e=>e.isVisible()))),e(this.$rightGroups)}_remove(){this.filterTable&&this.filterTable.off("rowsChecked",this._filterTableRowsCheckedHandler),this.tableHeader.rendered&&this.tableHeader.$container.off("scroll",this._tableHeaderScrollHandler),this.$headerItem.select(!1),this.table.off("columnMoved",this._onColumnMovedHandler),this.table.off("filterAdded",this._tableFilterHandler),this.table.off("filterRemoved",this._tableFilterHandler),super._remove(),this.table.rendered&&this.table.$container.removeClass("focused")}_renderMovingGroup(){let e=this.table,t=this.column,i=e.visibleColumns().indexOf(t);return this.moveGroup=x.create("TableHeaderMenuGroup",{parent:this,textKey:"ui.Move",cssClass:"first"}),this.toBeginButton=x.create("TableHeaderMenuButton",{parent:this.moveGroup,text:"${textKey:ui.toBegin}",cssClass:"move move-top"}),this.toBeginButton.on("action",(()=>{e.moveColumn(t,i,0),i=e.visibleColumns().indexOf(t)})),this.forwardButton=x.create("TableHeaderMenuButton",{parent:this.moveGroup,text:"${textKey:ui.forward}",cssClass:"move move-up"}),this.forwardButton.on("action",(()=>{e.moveColumn(t,i,Math.max(i-1,0)),i=e.visibleColumns().indexOf(t)})),this.backwardButton=x.create("TableHeaderMenuButton",{parent:this.moveGroup,text:"${textKey:ui.backward}",cssClass:"move move-down"}),this.backwardButton.on("action",(()=>{e.moveColumn(t,i,Math.min(i+1,e.header.findHeaderItems().length-1)),i=e.visibleColumns().indexOf(t)})),this.toEndButton=x.create("TableHeaderMenuButton",{parent:this.moveGroup,text:"${textKey:ui.toEnd}",cssClass:"move move-bottom"}),this.toEndButton.on("action",(()=>{e.moveColumn(t,i,e.header.findHeaderItems().length-1),i=e.visibleColumns().indexOf(t)})),this.moveGroup.render(this.$columnActions),this.moveGroup}_onColumnMoved(){let e=this.table,t=this.column;if(this.moveGroup){let i=e.visibleColumns(),s=e.visibleColumns().indexOf(t),r=i[s-1]&&!i[s-1].fixedPosition,n=i[s+1]&&!i[s+1].fixedPosition;this.toBeginButton.setEnabled(r),this.forwardButton.setEnabled(r),this.backwardButton.setEnabled(n),this.toEndButton.setEnabled(n)}this.hierarchyGroup.setVisible(this.table.isTableNodeColumn(t)),this._updateFirstLast()}_isColumnActionsGroupVisible(){return this.table.columnAddable||this.column.removable||this.column.modifiable}_renderColumnActionsGroup(){let e=this.column,t=this;return this.columnActionsGroup=x.create("TableHeaderMenuGroup",{parent:this,textKey:"ui.Column"}),this.addColumnButton=x.create("TableHeaderMenuButton",{parent:this.columnActionsGroup,text:"${textKey:ui.addColumn}",cssClass:"add-column",visible:this.table.columnAddable}),this.addColumnButton.on("action",i.bind(this,"add")),this.removeColumnButton=x.create("TableHeaderMenuButton",{parent:this.columnActionsGroup,text:"${textKey:ui.removeColumn}",cssClass:"remove-column",visible:this.column.removable}),this.removeColumnButton.on("action",i.bind(this,"remove")),this.modifyColumnButton=x.create("TableHeaderMenuButton",{parent:this.columnActionsGroup,text:"${textKey:ui.changeColumn}",cssClass:"change-column",visible:this.column.modifiable}),this.modifyColumnButton.on("action",i.bind(this,"modify")),this.columnActionsGroup.render(this.$columnActions),this.columnActionsGroup;function i(i){t.close(),this.table.trigger("columnOrganizeAction",{action:i,column:e})}}onColumnActionsChanged(e){this.addColumnButton.setVisible(e.addVisible),this.removeColumnButton.setVisible(e.removeVisible),this.modifyColumnButton.setVisible(e.modifyVisible);let t=this.columnActionsGroup.children.some((e=>e.visible));this.columnActionsGroup.setVisible(t)}_renderSortingGroup(){let e=this.table,t=this.column,i=this;return this.sortingGroup=x.create("TableHeaderMenuGroup",{parent:this,textKey:"ColumnSorting"}),e.hasPermanentHeadOrTailSortColumns()||(this.sortAscButton=x.create("TableHeaderMenuButton",{parent:this.sortingGroup,text:"${textKey:ui.ascending}",cssClass:"sort sort-asc",direction:"asc",toggleAction:!0}),this.sortAscButton.on("action",s.bind(this.sortAscButton)),this.sortDescButton=x.create("TableHeaderMenuButton",{parent:this.sortingGroup,text:"${textKey:ui.descending}",cssClass:"sort sort-desc",direction:"desc",toggleAction:!0}),this.sortDescButton.on("action",s.bind(this.sortDescButton))),this.sortAscAddButton=x.create("TableHeaderMenuButton",{parent:this.sortingGroup,text:"${textKey:ui.ascendingAdditionally}",cssClass:"sort sort-asc-add",direction:"asc",toggleAction:!0}),this.sortAscAddButton.on("action",r.bind(this.sortAscAddButton)),this.sortDescAddButton=x.create("TableHeaderMenuButton",{parent:this.sortingGroup,text:"${textKey:ui.descendingAdditionally}",cssClass:"sort sort-desc-add",direction:"desc",toggleAction:!0}),this.sortDescAddButton.on("action",r.bind(this.sortDescAddButton)),this._updateSortingSelectedState(),this.sortingGroup.render(this.$columnActions),this.sortingGroup;function s(){i.close(),n(this.direction,!1,!this.selected)}function r(){i.close(),n(this.direction,!0,!this.selected)}function n(s,r,n){e.sort(t,s,r,n),i._updateSortingSelectedState()}}_updateSortingSelectedState(){if(!this.table.sortEnabled)return;let e,t=!1,i=this._sortColumnCount();this.sortingGroup.children.forEach((e=>{e.setSelected(!1)})),1!==i||this.table.hasPermanentHeadOrTailSortColumns()?(i>1||this.table.hasPermanentHeadOrTailSortColumns())&&(t=!0,this.column.sortActive&&(this.column.sortAscending?this.sortAscAddButton.setSelected(!0):this.sortDescAddButton.setSelected(!0),e=this.column.sortIndex+1,this.sortAscAddButton.setIconId(e),this.sortDescAddButton.setIconId(e))):this.column.sortActive?this.column.sortAscending?this.sortAscButton.setSelected(!0):this.sortDescButton.setSelected(!0):t=!0,this.sortAscAddButton.setVisible(t),this.sortDescAddButton.setVisible(t)}_renderGroupingGroup(){let e=this,t=this.table,i=this.column,s=this._groupColumnCount(),r=x.create("TableHeaderMenuGroup",{parent:this,textKey:"ui.Grouping"});return this.groupButton=x.create("TableHeaderMenuButton",{parent:r,text:"${textKey:ui.groupingApply}",cssClass:"group",additional:!1,toggleAction:!0}),this.groupButton.on("action",n.bind(this.groupButton)),this.groupAddButton=x.create("TableHeaderMenuButton",{parent:r,text:"${textKey:ui.additionally}",cssClass:"group-add",additional:!0,toggleAction:!0}),this.groupAddButton.on("action",n.bind(this.groupAddButton)),0===s?this.groupAddButton.setVisible(!1):1===s&&this.column.grouped?(this.groupButton.setSelected(!0),this.groupAddButton.setVisible(!1)):s>1&&this.groupAddButton.setVisible(!0),t.hasPermanentHeadOrTailSortColumns()&&s>0&&(this.groupButton.setVisible(!1),this.groupAddButton.setVisible(!0)),this.column.grouped&&(1===s?this.groupAddButton.setSelected(!0):s>1&&(this.groupAddButton.setSelected(!0),this.groupAddButton.setIconId(this.column.sortIndex+1))),r.render(this.$columnActions),r;function n(){let s=i.sortIndex>=0&&!i.sortAscending?"desc":"asc";e.close(),t.groupColumn(i,this.additional,s,!this.selected)}}_renderHierarchyGruop(){let e=this.table,t=this;return this.hierarchyGroup=x.create("TableHeaderMenuGroup",{parent:this,textKey:"ui.Hierarchy",visible:this.table.isTableNodeColumn(this.column)}),x.create("TableHeaderMenuButton",{parent:this.hierarchyGroup,text:"${textKey:ui.CollapseAll}",cssClass:"hierarchy-collapse-all",enabled:!!me.find(e.rows,(e=>e.expanded&&!me.empty(e.childRows)))}).on("action",(()=>{t.close(),e.collapseAll()})),x.create("TableHeaderMenuButton",{parent:this.hierarchyGroup,text:"${textKey:ui.ExpandAll}",cssClass:"hierarchy-expand-all",enabled:!!me.find(e.rows,(e=>!e.expanded&&!me.empty(e.childRows)))}).on("action",(()=>{t.close(),e.expandAll()})),this.hierarchyGroup.render(this.$columnActions),this.hierarchyGroup}_renderAggregationGroup(){let e=this.table,t=this.column,i=t.aggregationFunction,s=this,r=x.create("TableHeaderMenuGroup",{parent:this,textKey:"ui.Aggregation"}),n=me.ensure(t.allowedAggregationFunctions),o=-1!==n.indexOf("none");return l("${textKey:ui.Sum}","sum"),l("${textKey:ui.Average}","avg"),l("${textKey:ui.Minimum}","min"),l("${textKey:ui.Maximum}","max"),r.children.forEach((e=>{e.setSelected(e.aggregation===i)})),r.render(this.$columnActions),r;function l(e,t){if(-1!==n.indexOf(t)){let i=x.create("TableHeaderMenuButton",{parent:r,text:e,cssClass:"aggregation-function "+t,aggregation:t,toggleAction:o});i.on("action",a.bind(i))}}function a(){s.close(),e.changeAggregation(t,this.aggregation===i?"none":this.aggregation)}}_renderColoringGroup(){let e=this.table,t=this.column,i=this,s=t.backgroundEffect,r=x.create("TableHeaderMenuGroup",{parent:this,textKey:"ui.Coloring"});return this.colorGradient1Button=x.create("TableHeaderMenuButton",{parent:r,text:"${textKey:ui.fromRedToGreen}",cssClass:"color color-gradient1",backgroundEffect:"colorGradient1",toggleAction:!0}),this.colorGradient1Button.on("action",n.bind(this.colorGradient1Button)),this.colorGradient2Button=x.create("TableHeaderMenuButton",{parent:r,text:"${textKey:ui.fromGreenToRed}",cssClass:"color color-gradient2",backgroundEffect:"colorGradient2",toggleAction:!0}),this.colorGradient2Button.on("action",n.bind(this.colorGradient2Button)),Qe.get().supportsCssGradient()&&(this.barChartButton=x.create("TableHeaderMenuButton",{parent:r,text:"${textKey:ui.withBarChart}",cssClass:"color color-bar-chart",backgroundEffect:"barChart",toggleAction:!0}),this.barChartButton.on("action",n.bind(this.barChartButton))),r.children.forEach((e=>{e.setSelected(e.backgroundEffect===s)})),r.render(this.$columnActions),r;function n(){i.close(),e.setColumnBackgroundEffect(t,this.selected?this.backgroundEffect:null)}}_renderFilterTable(){let e;this.$filterTableGroup=this.$columnFilters.appendDiv("table-header-menu-group first"),fr.install(this.$filterTableGroup,this.session).setLayout(new Br),e=this.$filterTableGroup.appendDiv("table-header-menu-filter-actions"),this.$filterSortOrder=e.appendDiv("link table-header-menu-toggle-sort-order").on("click",this._onSortModeClick.bind(this)).addClass(this.filterSortMode.cssClass),this.$filterToggleChecked=e.appendDiv("link table-header-menu-filter-toggle-checked").text(this.session.text(this.filterCheckedMode.text)).on("click",this._onFilterCheckedModeClick.bind(this)),this.$filterTableGroupTitle=this.$filterTableGroup.appendDiv("table-header-menu-group-text").text(this._filterByText()),fr.install(this.$filterTableGroupTitle,this.session),this.filterTable=this._createFilterTable(),this.filterTable.on("rowsChecked",this._filterTableRowsCheckedHandler);let t,i=[];return this.filter.availableValues.forEach((function(e){t={cells:[x.create("Cell",{text:"NumberColumn"===this.filter.column.objectType?e.text:null,value:"NumberColumn"===this.filter.column.objectType?e.key:e.text,iconId:e.iconId,htmlEnabled:e.htmlEnabled,cssClass:e.cssClass}),e.count,null===e.key?1:0],checked:this.filter.selectedValues.indexOf(e.key)>-1,dataMap:{filterValue:e}},i.push(t)}),this),this.filterTable.insertRows(i),this.filterTable.render(this.$filterTableGroup),setTimeout(this.filterTable.revealChecked.bind(this.filterTable)),this.$filterTableGroup}_createFilterTable(){let e="Column";return"NumberColumn"===this.column.objectType&&(e=this.column.objectType),x.create("Table",{parent:this,headerVisible:!1,multiSelect:!1,autoResizeColumns:!0,checkable:!0,cssClass:"table-header-menu-filter-table",checkableStyle:Ka.CheckableStyle.TABLE_ROW,columns:[{objectType:e,text:"filter-value",width:120,sortActive:!0,sortIndex:1,horizontalAlignment:-1},{objectType:"NumberColumn",text:"aggregate-count",cssClass:"table-header-menu-filter-number-column",width:50,minWidth:32,autoOptimizeWidth:!0},{objectType:"NumberColumn",displayable:!1,sortActive:!0,sortIndex:0}]})}_filterByText(){let e=this.session.text("ui.Filter"),t=this.filter.selectedValues.length,i=this.filter.availableValues.length;return t&&i?e+=" "+this.session.text("ui.FilterInfoXOfY",t,i):i&&(e+=" "+this.session.text("ui.FilterInfoCount",i)),e}_onFilterCheckedModeClick(){let e=nh.CheckedMode,t=this.filterCheckedMode.checkAll;this.filter.selectedValues=[],this.filterCheckedMode===e.ALL?(this.filterCheckedMode=e.NONE,this.filter.availableValues.forEach((function(e){this.filter.selectedValues.push(e.key)}),this)):this.filterCheckedMode=e.ALL,this.filterTable.checkAll(t),this._updateFilterTableActions()}_onSortModeClick(){let e=nh.SortMode;this.filterSortMode===e.ALPHABETICALLY?(this.filterTable.sort(this.filterTable.columns[1],"desc"),this.filterSortMode=e.AMOUNT):(this.filterTable.sort(this.filterTable.columns[2],"asc"),this.filterTable.sort(this.filterTable.columns[0],"asc",!0),this.filterSortMode=e.ALPHABETICALLY),this._updateFilterTableActions()}_updateFilterTable(){this.filter.filterActive()?this.table.addFilter(this.filter):this.table.removeFilterByKey(this.column.id)}_updateFilterTableActions(){this.$filterToggleChecked.text(this.session.text(this.filterCheckedMode.text));let e=nh.SortMode,t=this.filterSortMode===nh.SortMode.ALPHABETICALLY;this.$filterSortOrder.toggleClass(e.ALPHABETICALLY.cssClass,t),this.$filterSortOrder.toggleClass(e.AMOUNT.cssClass,!t)}_renderFilterFields(){this.filterFieldsGroupBox=x.create("GroupBox:FilterFields",{parent:this,column:this.column,filter:this.filter}),this.$filterFieldsGroup=this.$columnFilters.appendDiv("table-header-menu-group");let e=fr.install(this.$filterFieldsGroup,this.session);e.setLayout(new Br);let t=this.$filterFieldsGroup.appendDiv("table-header-menu-group-text").text(this.filter.filterFieldsTitle());return e=fr.install(t,this.session),this.filterFieldsGroupBox.render(this.$filterFieldsGroup),this.$filterFieldsGroup}isOpenFor(e){return this.rendered&&this.belongsTo(e)}_countColumns(e){return this.table.visibleColumns().reduce(((t,i)=>t+(i[e]?1:0)),0)}_sortColumnCount(){return this._countColumns("sortActive")}_groupColumnCount(){return this._countColumns("grouped")}_renderCompact(){this.$body.toggleClass("compact",this.compact),this.invalidateLayoutTree()}setCompact(e){this.setProperty("compact",e)}_onLocationChange(e){let t,i,s=Yn.isLocationInView,r=pr.offsetBounds(this.$headerItem),n=this.tableHeader.$container;this.$container.setVisible(!0),i=pr.offsetBounds(this.$container),t=s(new nr(r.x,r.y),n),t||(t=s(new nr(r.x+r.width,r.y+r.height),n),t=t&&s(new nr(i.x+i.width,i.y),n)),this.$container.setVisible(t)}_onAnchorScroll(e){this.position()}_onFilterTableRowsChecked(e){this.filter.selectedValues=[],this.filterTable.rows.forEach((function(e){e.checked&&this.filter.selectedValues.push(e.dataMap.filterValue.key)}),this),this._updateFilterTable()}_onFilterTableChanged(){this.$filterTableGroupTitle.text(this._filterByText()),this._updateFilterTableCheckedMode(),this._updateFilterTableActions()}_updateFilterTableCheckedMode(){0===this.filter.selectedValues.length?this.filterCheckedMode=nh.CheckedMode.ALL:this.filterCheckedMode=nh.CheckedMode.NONE}_onMouseDownOutside(e){this.$headerItem.isOrHas(e.target)||this.close()}}rh(nh,"CheckedMode",{ALL:{checkAll:!0,text:"ui.SelectAllFilter"},NONE:{checkAll:!1,text:"ui.SelectNoneFilter"}}),rh(nh,"SortMode",{ALPHABETICALLY:{text:"ui.SortAlphabeticallyFilter",cssClass:"table-header-menu-toggle-sort-order-alphabetically"},AMOUNT:{text:"ui.SortByAmountFilter",cssClass:"table-header-menu-toggle-sort-order-amount"}});class oh extends Ro{constructor(e){super(e),this.popup=e,this.doubleCalcPrefSize=!1}layout(e){if(super.layout(e),!this.popup.hasFilterFields&&!this.popup.hasFilterTable)return;let t,i,s=this.popup.$columnFilters,r=pr.insets(s),n=pr.margins(s),o=new sr;if(this.popup.$body.hasClass("compact")?i=fr.get(s).prefSize():(i=this.preferredLayoutSize(e).subtract(pr.insets(e)),i=i.subtract(n)),i.width=s.cssWidth(),s.cssHeight(i.height),this.popup.hasFilterFields){let e=this.popup.$filterFieldsGroup;fr.get(e.find(".form-field")).setSize(new sr(i.width-r.horizontal(),this._filterFieldsGroupBoxHeight())),o=pr.size(e,!0)}if(this.popup.hasFilterTable){let e,t=this.popup.$filterTableGroup,s=pr.insets(t),n=this.popup.filterTable.htmlComp;e=i.height-r.vertical(),e-=o.height,e-=this._groupTitleHeight(t),e-=s.vertical(),e=Math.min(e,oh.TABLE_MAX_HEIGHT),n.setSize(new sr(i.width-r.horizontal(),e))}this._setMaxWidth(),t=pr.size(this.popup.$columnActions),this._setMaxWidth(t.width)}_adjustSizeWithAnchor(e){let t,i=this.popup.htmlComp,s=this.popup.windowPaddingX,r=i.margins(),n=i.offsetBounds();t=this.popup.$container.window().width()-r.horizontal()-n.x-s;let o=n.width>t;return o&&(this.popup.$body.addClass("compact",o),e=this.preferredLayoutSize(this.popup.$container)),super._adjustSizeWithAnchor(e)}_groupTitleHeight(e){return pr.size(e.find(".table-header-menu-group-text"),!0).height}_filterFieldsGroupBoxHeight(){return this.popup.filterFieldsGroupBox.htmlComp.prefSize().height}preferredLayoutSize(e,t){let i,s,r,n=0,o=0,l=pr.insets(e),a=this._getMaxWidth();if(this._setMaxWidth(),o=pr.size(this.popup.$columnActions,!0).height,this.popup.hasFilterTable){let e,t=this.popup.$filterTableGroup,i=this.popup.filterTable.htmlComp.size(!0).height,s=pr.insets(t);i=Math.min(i,oh.TABLE_MAX_HEIGHT),e=i,e+=this._groupTitleHeight(t),e+=s.vertical(),n+=e}if(this.popup.hasFilterFields){let e,t=this.popup.$filterFieldsGroup,i=pr.insets(t);e=this._filterFieldsGroupBoxHeight(),e+=this._groupTitleHeight(t),e+=i.vertical(),n+=e}return(this.popup.hasFilterFields||this.popup.hasFilterTable)&&(s=pr.margins(this.popup.$columnFilters),r=pr.insets(this.popup.$columnFilters),n+=s.vertical(),n+=r.vertical()),i=pr.prefSize(e),this.popup.$body.hasClass("compact")?i.height=o+n+l.vertical():i.height=Math.max(o,n)+l.vertical(),this._setMaxWidth(a),i}_getMaxWidth(){return this.popup.$columnActions.css("max-width")}_setMaxWidth(e){this.popup.$columnActions.css("max-width",e||"")}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(oh,"TABLE_MAX_HEIGHT",330);class lh extends Y{constructor(){super(),this.text=null,this.textKey=null,this.visible=!0,this.last=!1}_init(e){super._init(e),this.text=x.nvl(this.text,this.session.text(this.textKey))}_render(){this.$container=this.$parent.appendDiv("table-header-menu-group buttons"),this.$text=this.$container.appendDiv("table-header-menu-group-text"),this.cssClass&&this.$container.addClass(this.cssClass),this._renderText(),this.children.forEach((e=>{e.render()}),this),J.updateFirstLastMarker(this.children)}appendText(e){this.text=this.session.text(this.textKey)+" "+e,this.rendered&&this._renderText()}resetText(){this.text=this.session.text(this.textKey),this.rendered&&this._renderText()}_renderText(){this.$text.text(this.text)}setLast(e){this.setProperty("last",e)}_renderLast(){this.$container.toggleClass("last",this.last)}}class ah extends vo{constructor(){super(),this.textVisible=!1,this.tabbable=!0}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new So(this)])}_render(){super._render(),this.$container=this.$container.addClass("table-header-menu-command button").unfocusable().on("mouseenter",this._onMouseOver.bind(this)).on("mouseleave",this._onMouseOut.bind(this)),this.$icon=this.$container.appendSpan("icon font-icon")}_renderProperties(){super._renderProperties(),this._renderToggleAction()}_onMouseOver(){let e=this.selected?this.session.text("ui.remove"):this.text;this.parent.appendText(e)}_onMouseOut(){this.parent.resetText()}_renderToggleAction(){this.$container.toggleClass("togglable",this.toggleAction)}_renderIconId(){this.iconId?this.$icon.attr("data-icon",this.iconId):this.$icon.removeAttr("data-icon")}}class hh extends _r{constructor(e){super(),this.table=e,this._dataHeightPositive=!1}layout(e){let t,i=0,s=0,r=0,n=0,o=0,l=this.table.tableTileGridMediator?this.table.tableTileGridMediator.tileAccordion:null,a=this.table.$data,h=pr.margins(x.nvl(a,this.table.$container)),d=h.top+h.bottom,u=this.table.menuBar,c=this.table.footer,p=this.table.header,g=this.table.tileTableHeader,m=this.table.visibleColumns(),_=m[m.length-1],f=this.table.htmlComp,b=f.availableSize({exact:!0}).subtract(f.insets());if(this.table.menuBarVisible&&u.visible){let e=fr.get(u.$container),t=Il.size(e,b);e.setSize(t),i=t.height}if(e.css("--menubar-height",i+"px"),p&&(r=pr.size(p.$container).height,p.menuBar&&p.menuBar.validateLayout()),c&&(s=pr.size(c.$container).height,o=c.computeControlContainerHeight(this.table,c.selectedControl,!this._dataHeightPositive),t=pr.insets(c.$controlContainer),c.animating||(c.$controlContainer.cssHeight(o),c.$controlContent.outerHeight(o-t.vertical()),c.revalidateLayout())),g&&g.visible){let e=g.htmlComp.prefSize({widthHint:b.width});e.width=b.width,e=e.subtract(g.htmlComp.margins()),g.htmlComp.setSize(e),n=e.height}let y=d+i+o+s+r+n,w=b.height-y;e.css("--controls-height",y+"px"),a?(a.css("height","calc(100% - "+y+"px)"),this._dataHeightPositive=a.height()>0):l&&l.htmlComp&&(l.htmlComp.setSize(new sr(b.width,w)),Yn.update(l.$container),this._dataHeightPositive=w>0),this.table.tileMode||(this._layoutColumns(),p&&p.resizeHeaderItem(_),this.table.setViewRangeSize(this.table.calculateViewRangeSize()),f.layouted||this.table._renderScrollTop(),this.table._renderViewport(),f.layouted||this.table._renderScrollTop(),this.table.tooltips.forEach((e=>{e.rendered&&e.position()})),this.table.cellEditorPopup&&this.table.cellEditorPopup.rendered&&(this.table.cellEditorPopup.position(),this.table.cellEditorPopup.pack()),this.table.updateScrollbars())}_layoutColumns(e){this._autoOptimizeColumnsWidths();let t=this.table.htmlComp,i=this.table.columnLayoutDirty||!t.sizeCached;if(!i){let s=e||t.size().width;i=t.sizeCached.width!==s}i&&(this.table.autoResizeColumns&&this._autoResizeColumns(e),this._updateRealColumnWidths(),this.table.columnLayoutDirty=!1)}_updateRealColumnWidths(){this.table._updateRealColumnWidths()&&(this.table._updateRowWidth(),this.table.header&&this.table.header.rendered&&this.table.header.resizeHeaderItems(),this.table.$rows(!0).css("width",this.table.rowWidth))}_autoOptimizeColumnsWidths(){this.table.visibleColumns().forEach((function(e){e.autoOptimizeWidth&&e.autoOptimizeWidthRequired&&this.table.resizeToFit(e,e.autoOptimizeMaxWidth)}),this)}_autoResizeColumns(e){let t,i,s=[],r=0,n=0,o=e||this.table.$data.width(),l=Math.floor(o-(this.table.rowBorders.horizontal()+this.table.rowMargins.horizontal()));if(this.table.visibleColumns().forEach((e=>{e.fixedWidth||e.autoOptimizeWidth?l-=e.width:(s.push(e),r+=e.width,n+=e.initialWidth)})),l===r)return;let a=l,h=s.filter((e=>{let r=Math.max(e.minWidth,e.initialWidth);return i=0===n?1/s.length:e.initialWidth/n,t=Math.floor(i*a),t<r&&(t=r,a=Math.max(a-t,0),!0)}));h.forEach(((e,i)=>{let r=Math.max(e.minWidth,e.initialWidth);me.remove(s,e),t=r,n-=e.initialWidth,i===h.length-1&&a>0&&0===s.length&&(t+=a,a=0),t!==e.width&&this.table.resizeColumn(e,t)})),l=a,s.forEach(((e,r)=>{i=0===n?1/s.length:e.initialWidth/n,t=Math.floor(i*l),a-=t,r===s.length-1&&a>0&&(t+=a,a=0),t!==e.width&&this.table.resizeColumn(e,t)}))}preferredLayoutSize(e,t){return this.table.tileMode?(new Br).preferredLayoutSize(e,t):(this._layoutColumns(t.widthHint),this.table._renderViewport(),super.preferredLayoutSize(e,t))}}class dh{constructor(e){this.table=e,this.mouseMoveSelectionEnabled=!0,this._mouseDown=!1,this.lastActionRow=null,this.mouseOverHandler=null,this.select=!0,this.counterDebug=0,this.fromIndex=-1,this.toIndex=-1,this._prevSelectedRowIndex=-1,this._maxSelectedRowIndex=-1}clearLastSelectedRowMarker(){this.lastActionRow=null}onMouseDown(e){let t=n()(e.currentTarget),i=t.data("row"),s=t.isSelected(),r=this.table.visibleRows;if(this._mouseDown=!0,this.select=!0,this.table.multiSelect&&e.shiftKey){if(this.table.selectedRows.indexOf(i)>-1)return;if(0===this.table.selectedRows.length&&(this.lastActionRow=i),!this.lastActionRow){let e=r.indexOf(i),t=this.table.selectedRows[0],s=this.table.selectedRows[this.table.selectedRows.length-1];e<=(r.indexOf(t)+r.indexOf(s))/2?this.lastActionRow=t:this.lastActionRow=s,this._maxSelectedRowIndex=r.indexOf(s),this._prevSelectedRowIndex=r.indexOf(this.lastActionRow)}this.fromIndex=r.indexOf(this.lastActionRow)}else e.ctrlKey?this.select=!s:(!s||this.table.selectedRows.length>1&&3!==e.which)&&(this.table._removeSelection(),this.table.selectedRows=[]);this.fromIndex<0&&(this.fromIndex=r.indexOf(i)),3===e.which&&s||(this.toIndex=r.indexOf(i),this.handleSelection(e),this.table.notifyRowSelectionFinished()),this.mouseMoveSelectionEnabled&&3!==e.which&&(this.table.$data.off("mouseover",this.mouseOverHandler),this.mouseOverHandler=this.onMouseOver.bind(this),this.table.$data.on("mouseover",".table-row",this.mouseOverHandler)),t.window().one("mouseup.selectionHandler",this.onMouseUp.bind(this)),this.lastActionRow=i}onMouseOver(e){let t=n()(e.currentTarget).data("row"),i=this.table.visibleRows;this.toIndex=i.indexOf(t),this.handleSelection(e),this.lastActionRow=t}handleSelection(e){let t,i=this.table.visibleRows;if(this.table.multiSelect){let s=this.toIndex,r=s<this._prevSelectedRowIndex,n=s>this._prevSelectedRowIndex,o=this._prevSelectedRowIndex<this.fromIndex,l=this._prevSelectedRowIndex>this.fromIndex;if(!e.ctrlKey){if(r&&l?t=i.slice(s+1,this._maxSelectedRowIndex+1):n&&o&&(t=i.slice(this._maxSelectedRowIndex,s)),t&&e.shiftKey){let e=this.getMinMaxSelectionIndizes();t=t.reduce(((t,s)=>{let r=i.indexOf(s);return x.isOneOf(r,e[0],e[1])&&t.push(s),t}),[])}t&&t.forEach((function(e){this.table.removeRowFromSelection(e,!0)}),this)}this._maxSelectedRowIndex=r?Math.min(this._maxSelectedRowIndex,s):n?Math.max(this._maxSelectedRowIndex,s):s,this._prevSelectedRowIndex=s}else this.select&&(this.table._removeSelection(),this.table.selectedRows=[]),this.fromIndex=this.toIndex;this._selectRange(this.fromIndex,this.toIndex,this.select)}_selectRange(e,t,i){let s=this.table.visibleRows,r=Math.min(e,t),n=Math.max(e,t)+1,o=s.slice(r,n);i?o.forEach((function(e){this.table.addRowToSelection(e,!0)}),this):o.forEach((function(e){this.table.removeRowFromSelection(e,!0)}),this)}getMinMaxSelectionIndizes(){let e=this.table.selectedRows,t=this.table.visibleRows;if(!e||0===e.length)return[-1,-1];let i=-1,s=-1;return e.forEach((e=>{let r=t.indexOf(e);(-1===i||r<i)&&(i=r),(-1===s||r>s)&&(s=r)})),[i,s]}onMouseUp(e){this._mouseDown&&this.table.rendered&&(this._mouseDown=!1,this.table.$data.off("mouseover",this.mouseOverHandler),this.fromIndex=-1,this.toIndex=-1,this.select=!0,this.table.notifyRowSelectionFinished())}}class uh extends Y{constructor(){super(),this.table=null,this.tileAccordion=null,this._tileGridListener=null,this._tableListener=null,this._destroyHandler=null,this.tiles=[],this.tileMappings=[],this.tilesMap={},this.groups={},this.groupForTileMap={},this.tableState={},this._tileAccordionPropertyChangeHandler=this._onTileAccordionPropertyChange.bind(this),this._tileAccordionActionHandler=this._onTileAccordionAction.bind(this),this._tileAccordionClickHandler=this._onTileAccordionClick.bind(this),this._tableFilterAddedHandler=this._onTableFilterAdded.bind(this),this._tableFilterRemovedHandler=this._onTableFilterRemoved.bind(this),this._tableFilterHandler=this._onTableFilter.bind(this),this._tableGroupHandler=this._onTableGroup.bind(this),this._tableRowsSelectedHandler=this._onTableRowsSelected.bind(this),this._tableRowsInsertedHandler=this._onTableRowsInserted.bind(this),this._tableRowsDeletedHandler=this._onTableRowsDeleted.bind(this),this._tableAllRowsDeletedHandler=this._onTableAllRowsDeleted.bind(this),this._tableRowOrderChangedHandler=this._onTableRowOrderChangedHandler.bind(this),this._destroyHandler=this._uninstallListeners.bind(this),this.exclusiveExpand=!1,this.gridColumnCount=null,this.tileGridLayoutConfig=null,this.withPlaceholders=null,this._addWidgetProperties(["tileAccordion","tiles","tileMappings"])}init(e){super._init(e),this.table=this.parent,this.tileAccordion||(this.tileAccordion=this._createTileAccordion(),this._installListeners()),this.tableState.headerVisible=this.table.headerVisible,this._setTiles(this.tiles),this._setTileMappings(this.tileMappings)}_installListeners(){this.tileAccordion.on("propertyChange",this._tileAccordionPropertyChangeHandler),this.tileAccordion.on("tileAction",this._tileAccordionActionHandler),this.tileAccordion.on("tileClick",this._tileAccordionClickHandler),this.table.on("filterAdded",this._tableFilterAddedHandler),this.table.on("filterRemoved",this._tableFilterRemovedHandler),this.table.on("filter",this._tableFilterHandler),this.table.on("group",this._tableGroupHandler),this.table.on("rowsSelected",this._tableRowsSelectedHandler),this.table.on("rowsInserted",this._tableRowsInsertedHandler),this.table.on("rowsDeleted",this._tableRowsDeletedHandler),this.table.on("allRowsDeleted",this._tableAllRowsDeletedHandler),this.table.on("rowOrderChanged",this._tableRowOrderChangedHandler),this.tileAccordion.on("destroy",this._destroyHandler),this.table.on("destroy",this._destroyHandler)}_uninstallListeners(){this.tileAccordion.off("propertyChange",this._tileAccordionPropertyChangeHandler),this.tileAccordion.off("tileAction",this._tileAccordionActionHandler),this.tileAccordion.off("tileClick",this._tileAccordionClickHandler),this.table.off("filterAdded",this._tableFilterAddedHandler),this.table.off("filterRemoved",this._tableFilterRemovedHandler),this.table.off("filter",this._tableFilterHandler),this.table.off("group",this._tableGroupHandler),this.table.off("rowsSelected",this._tableRowsSelectedHandler),this.table.off("rowsInserted",this._tableRowsInsertedHandler),this.table.off("rowsDeleted",this._tableRowsDeletedHandler),this.table.off("allRowsDeleted",this._tableAllRowsDeletedHandler),this.table.off("rowOrderChanged",this._tableRowOrderChangedHandler),this.tileAccordion.off("destroy",this._destroyHandler),this.table.off("destroy",this._destroyHandler)}setGridColumnCount(e){this.setProperty("gridColumnCount",e),this.tileAccordion&&this.tileAccordion.setGridColumnCount(e)}setTileGridLayoutConfig(e){this.setProperty("tileGridLayoutConfig",e),this.tileAccordion&&this.tileAccordion.setTileGridLayoutConfig(e)}setWithPlaceholders(e){this.setProperty("withPlaceholders",e),this.tileAccordion&&this.tileAccordion.setWithPlaceholders(e)}_setTileMappings(e){if(this._setProperty("tileMappings",e),!e)return;let t=e.map(this.resolveMapping,this);this._setTiles(t)}setTiles(e){this.setProperty("tiles",e)}_setTiles(e){this._isUpdatingTiles=!0,me.removeAll(this.tiles,e),this.reset(),this._setTilesInternal(e),this._isUpdatingTiles=!1}_setTilesInternal(e){e.some((function(e){return void 0===this.table.rowsMap[e.rowId]}),this)?this.table.initialized?this.table.one("rowsInserted",this._setTilesInternal.bind(this,e)):this.table.one("init",this._setTilesInternal.bind(this,e)):(this._refreshTilesMap(e),this._initGroups(e),this._setProperty("tiles",e),this.tileAccordion.setTiles(this.tiles),this._updateGroupVisibility(),this._syncSelectionFromTableToTile())}loadTiles(){let e=this.table.rows.filter((e=>!e.parentRow)),t=this.table.createTiles(e);t&&this.setTiles(t)}resolveMapping(e){let t=e.tile;return t.rowId=e.tableRow,t.setParent(this),t.setOwner(this),t}_refreshTilesMap(e){e||(e=this.tiles,this.tilesMap={}),e.forEach((function(e){this.tilesMap[e.rowId]=e}),this)}getTilesForRows(e){return e.map((function(e){return this.tilesMap[e.id]}),this).filter((e=>!!e))}_initGroups(e){let t=me.find(this.table.columns,(e=>e.grouped&&0===e.sortIndex));e.forEach((function(e){let i=this.table.rowsMap[e.rowId],s=t?t.cellTextForGrouping(i):"default";s=x.nvl(s,""),this.groupForTileMap[i.id]=s;let r=this.tileAccordion.getGroupById(s);r||(r=this._createTileGroup(s,t,i),this._adaptTileGrid(r.body),this.tileAccordion.insertGroup(r)),e.parent=r}),this)}_adaptTileGrid(e){Ai.mandatoryFunction(e,"_showContextMenu");let t=e._showContextMenu;e._showContextMenu=function(i){Ai.mandatoryFunction(this.table,"_filterMenusForContextMenu"),i.menuItems=this.table._filterMenusForContextMenu(),x.assertProperty(this.table,"_filterMenusHandler"),i.menuFilter=this.table._filterMenusHandler,t.call(e,i)}.bind(this),e.keyStrokeContext.$bindTarget=this.table.keyStrokeContext.$bindTarget}_createTileAccordion(){return x.create("TileAccordion",{parent:this.table,virtual:!0,selectable:!0,multiselect:this.table.multiSelect,exclusiveExpand:this.exclusiveExpand,gridColumnCount:this.gridColumnCount,tileGridLayoutConfig:this.tileGridLayoutConfig,withPlaceholders:this.withPlaceholders})}_createTileGroup(e,t,i){let s,r,n;if(t){s=t.htmlEnabled;let e=t.createAggrGroupCell(i);r=e.text,n=e.iconId}return x.create("Group",{parent:this.tileAccordion,id:e,headerVisible:"default"!==e,title:r,titleHtmlEnabled:s,iconId:n,body:{objectType:"TileGrid",scrollable:!1}})}activate(){this.tableState.headerVisible=this.table.headerVisible,this.table.setHeaderVisible(!1),this.table.tileTableHeader&&this.table.tileTableHeader.setVisible(!0),this.table.tableControls.forEach((function(e){e instanceof Wh&&(this.tableState.aggregateTableControlSelected=e.selected,e.setSelected(!1,{closeWhenUnselected:!0,animate:!1}),e.setVisible(!1))}),this),this.tableState.loadingSupportContainer=this.table.loadingSupport.options$Container,this.table.loadingSupport.options$Container=function(){return this.tileAccordion.$container}.bind(this),null!==me.find(this.table.rows,(e=>e.parentRow))&&(this._tableHierarchyFilter=x.create("TileTableHierarchyFilter",{table:this.table}),this.table.addFilter(this._tableHierarchyFilter)),this._syncFiltersFromTableToTile(),this._syncScrollTopFromTableToTile()}deactivate(){this.table.tableControls.forEach((e=>{e instanceof Wh&&e.setVisible(!0)}),this),this.table._setProperty("headerVisible",this.tableState.headerVisible),this.table.tileTableHeader&&this.table.tileTableHeader.setVisible(!1),this.tableState.loadingSupportContainer&&(this.table.loadingSupport.options$Container=this.tableState.loadingSupportContainer),this._tableHierarchyFilter&&(this.table.removeFilter(this._tableHierarchyFilter),this._tableHierarchyFilter=null),this._syncScrollTopFromTileGridToTable(),this.reset()}reset(){this.tilesMap={},this.groups={},this.groupForTileMap={},this.tileAccordion.deleteAllTiles(),this.tileAccordion.deleteAllGroups(),this.tiles.forEach((e=>{e.destroy()}))}renderTileMode(){this.table.tileMode?(this.table.$data&&this.table._removeData(),this._renderTileTableHeader(),this._renderTileAccordion()):(this._removeTileTableHeader(),this._removeTileAccordion(),this.table._renderData(),this.table._renderTableHeader(),this.tableState.aggregateTableControlSelected&&me.find(this.table.tableControls,(e=>e instanceof Wh)).setSelected(!0)),this.table._refreshMenuBarPosition()}destroy(){this.tiles.forEach((e=>{e.destroy()})),this.tileAccordion.destroy(),this.tileAccordion=null}insertTiles(e){0!==(e=me.ensure(e)).length&&this.setTiles(this.tiles.concat(e))}deleteTiles(e){e||(e=this.tiles.slice()),me.removeAll(this.tiles,e),e.forEach((function(e){delete this.tilesMap[e.rowId],delete this.groupForTileMap[e.rowId];let t=this.tileAccordion.getGroupByTile(e);t&&1===t.body.tiles.length&&this.tileAccordion.deleteGroup(t),e.destroy()}),this),this.tileAccordion.deleteTiles(e)}_onTileAccordionPropertyChange(e){this.table.tileMode&&("selectedTiles"===e.propertyName&&(this._syncSelectionFromTileGridToTable(e.source.getSelectedTiles()),this.tileAccordion.rendered&&this.tileAccordion.$container.document(!0).getSelection().removeAllRanges()),"filteredTiles"===e.propertyName&&this._updateGroupVisibility())}_onTileAccordionAction(e){this.table.tileMode&&this.table.doRowAction(this.table.rowsMap[e.tile.rowId])}_onTileAccordionClick(e){this.table.tileMode&&this.table._triggerRowClick(e,this.table.rowsMap[e.tile.rowId],e.mouseButton)}_onTableRowsSelected(e){this.table.tileMode&&this._syncSelectionFromTableToTile()}_onTableRowsInserted(e){this.table.tileMode&&this.insertTiles(this.table.createTiles(e.rows))}_onTableRowsDeleted(e){this.table.tileMode&&this.deleteTiles(this.getTilesForRows(e.rows))}_onTableAllRowsDeleted(e){this.table.tileMode&&this.deleteTiles()}_onTableRowOrderChangedHandler(e){this.table.tileMode&&!n().isEmptyObject(this.tilesMap)&&(this.tiles=this.table.rows.map((function(e){return this.tilesMap[e.id]}),this),this.tileAccordion.setTiles(this.tiles))}_onTableGroup(e){this.table.tileMode&&(this.tileAccordion.deleteAllGroups(),this._initGroups(this.tiles),this.tileAccordion.setTiles(this.tiles))}_onTableFilterAdded(e){this.table.tileMode&&this._addFilter(e.filter)}_onTableFilterRemoved(e){this.table.tileMode&&this.tileAccordion.removeFilter(e.filter.tileFilter)}_addFilter(e){let t={table:this.table,accept:function(t){let i=this.table.rowsMap[t.rowId];return!!i&&e.accept(i)}};e.tileFilter&&this.tileAccordion.removeFilter(e.tileFilter,!1),e.tileFilter=t,this.tileAccordion.addFilter(t)}_onTableFilter(e){this.table.tileMode&&this.tileAccordion.filter()}_syncSelectionFromTableToTile(){this.tileAccordion&&this.tileAccordion.selectTiles(this.getTilesForRows(this.table.selectedRows))}_syncSelectionFromTileGridToTable(e){if(!this._isUpdatingTiles){let t=e.map((function(e){return this.table.rowsMap[e.rowId]}),this).filter((e=>Boolean(e)));this.table.selectRows(t)}}_updateGroupVisibility(){this.tileAccordion.groups.forEach((e=>{let t=e.body.filters.length>0&&0===e.body.filteredTiles.length;e.setVisible(!t),e.setTitleSuffix(e.body.filteredTiles.length)}))}_syncScrollTopFromTableToTile(){let e=this.table._rowIndexAtScrollTop(this.table.scrollTop);if(e<=0)return;let t=this.tilesMap[this.table.rows[e].id];if(!t)return;this.tileAccordion.scrollTop=null;let i={align:"top"};t.rendered?t.reveal(i):this.table.session.layoutValidator.schedulePostValidateFunction(t.reveal.bind(t,i))}_syncScrollTopFromTileGridToTable(){let e=this.tileAccordion._tileAtScrollTop(this.tileAccordion.scrollTop);if(e){let t={align:"top"};this.table._isDataRendered()?this.table.scrollTo(this.table.rowsMap[e.rowId],t):this.table.session.layoutValidator.schedulePostValidateFunction(this.table.scrollTo.bind(this.table,this.table.rowsMap[e.rowId],t))}}_syncFiltersFromTableToTile(){this.tileAccordion&&(this.tileAccordion.setFilters([]),this.table.filters.forEach((e=>this._addFilter(e))))}_renderTileTableHeader(){this.table.tileTableHeader&&this.table.tileTableHeader.render()}_removeTileTableHeader(){this.table.tileTableHeader&&this.table.tileTableHeader.remove()}_renderTileAccordion(){this.tileAccordion.rendered||this.tileAccordion.render()}_removeTileAccordion(){this.tileAccordion.rendered&&this.tileAccordion.remove()}}class ch extends j{constructor(){super()}static modifyTableTileGridMediator(){E.get().remote&&(Ai.replacePrototypeFunction(uh,"loadTiles",(function(){if(!this.modelAdapter)return this.loadTilesOrig()}),!0),Ai.replacePrototypeFunction(uh,"_onTableRowsInserted",(function(e){if(!this.modelAdapter)return this._onTableRowsInsertedOrig(e)}),!0),Ai.replacePrototypeFunction(uh,"_onTableRowsDeleted",(function(e){if(!this.modelAdapter)return this._onTableRowsDeletedOrig(e)}),!0),Ai.replacePrototypeFunction(uh,"_onTableAllRowsDeleted",(function(e){if(!this.modelAdapter)return this._onTableAllRowsDeletedOrig(e)}),!0))}}E.addListener("bootstrap",ch.modifyTableTileGridMediator);class ph extends Y{constructor(){super(),this.table=null,this.page=null,this.row=null,this._tableRowsUpdatedHandler=this._onTableRowsUpdated.bind(this),this._tableRowsInsertedHandler=this._onTableRowsInserted.bind(this)}_init(e){super._init(e),this.row=this.page.row,this.table.on("rowsUpdated",this._tableRowsUpdatedHandler),this.table.on("rowsInserted",this._tableRowsInsertedHandler)}_destroy(){this.table.off("rowsUpdated",this._tableRowsUpdatedHandler),this.table.off("rowsInserted",this._tableRowsInsertedHandler),super._destroy()}_render(){this.$container=this.$parent.appendDiv("table-row-detail"),this.htmlComp=fr.install(this.$container,this.session),this._renderRow()}_renderRow(){this.table.visibleColumns().forEach(this._renderCell.bind(this)),this.invalidateLayoutTree()}_renderCell(e){let t,i=this.table.cell(e,this.row);if(qt.empty(i.text)&&!i.iconId)return;t=e.headerHtmlEnabled?qt.plainText(e.text):e.text,qt.empty(t)&&(t=e.headerTooltipHtmlEnabled?qt.plainText(e.headerTooltipText):e.headerTooltipText);let s=e.cellTextForRowDetail(this.row),r=this.$container.appendDiv("table-row-detail-field");qt.empty(t)||r.appendSpan("table-row-detail-name").text(t+": ");let n=i.iconId,o=!qt.empty(s);if(n){r.appendIcon(n,"table-row-detail-icon").toggleClass("with-text",o)}o&&r.appendSpan("table-row-detail-value").html(s)}_refreshRow(){this.$container.empty(),this._renderRow()}_onTableRowsUpdated(e){if(!this.rendered)return;let t=me.find(e.rows,(e=>e.id===this.row.id));t&&(this.row=t,this._refreshRow())}_onTableRowsInserted(e){this.rendered&&(e.source.rows.indexOf(this.page.row)<0||(this.row=this.page.row,this._refreshRow()))}}class gh extends Y{constructor(){super(),this.tableRow=null,this.tile=null,this._addWidgetProperties(["tile"])}}class mh extends j{constructor(){super()}}class _h extends _o{constructor(){super()}_init(e){super._init(e),this.table=e.table}_render(){super._render(),this._rowOrderChangedFunc=function(e){e.animating?e.row===this.row&&this.position():this.position()}.bind(this),this.table.on("rowOrderChanged",this._rowOrderChangedFunc)}_remove(){super._remove(),this.table.off("rowOrderChanged",this._rowOrderChangedFunc)}}class fh{constructor(e){this._rowMap={},this.promises=[],this.table=e}pushPromise(e){this.promises.push(e),this.table._renderViewportBlocked=!0,this.table.setLoading(!0);let t=function(){me.remove(this.promises,e),0===this.promises.length&&this.process()}.bind(this);e.then(t,t)}isBuffering(){return this.promises.length>0}buffer(e){(e=me.ensure(e)).forEach((function(e){this._rowMap[e.id]=e}),this)}process(){if(this.table.destroyed)return;let e=Ai.values(this._rowMap);this.table.updateRows(e),this._rowMap={},this.table.setLoading(!1),this.table._renderViewportBlocked=!1,this.table._isDataRendered()&&this.table._renderViewport()}}class bh extends $s{constructor(){super(),this.table=null}_init(e){super._init(e)}_data(){let e=[];return e.push([null,this.session.text("NoGrouping"),"BOLD"]),this.table.visibleColumns().forEach((function(t){this.table.isGroupingPossible(t)&&e.push([t,x.nvl(t.text,t.headerTooltipText)])}),this),e}_dataToLookupRow(e){return x.create("LookupRow",{key:e[0],text:e[1],font:e[2]})}}class yh extends $s{constructor(){super(),this.table=null}_init(e){super._init(e)}_data(){let e=[];return this.table.visibleColumns().forEach((function(t){t.isSortingPossible()&&(e.push([{column:t,asc:!0},x.nvl(t.text,t.headerTooltipText)+" ("+this.session.text("ui.ascending")+")",Ct.LONG_ARROW_UP_BOLD]),e.push([{column:t,asc:!1},x.nvl(t.text,t.headerTooltipText)+" ("+this.session.text("ui.descending")+")",Ct.LONG_ARROW_DOWN_BOLD]))}),this),e}_dataToLookupRow(e){return x.create("LookupRow",{key:e[0],text:e[1],iconId:e[2]})}}const wh={collator:null,installed:!1,install:function(e){return this.installed||(Qe.get().supportsInternationalization()?(this.collator=new window.Intl.Collator(e.locale.languageTag),n().log.isInfoEnabled()&&n().log.info("(comparators.TEXT#install) Browser supports i18n - installed Intl.Collator, can sort in Browser")):n().log.isInfoEnabled()&&n().log.info("(comparators.TEXT#install) Browser doesn't support i18n. Must sort on server"),this.installed=!0),!!this.collator},compare:function(e,t){return e||t?e?t?this.collator?this.collator.compare(e,t):e<t?-1:e>t?1:0:1:-1:0},compareIgnoreCase:function(e,t){return e||(e=null),t||(t=null),e===t?0:null===e?-1:null===t?1:this.compare(e.toLowerCase(),t.toLowerCase())}},Ch={install:e=>!0,compare:(e,t)=>Ai.isNullOrUndefined(e)&&Ai.isNullOrUndefined(t)?0:Ai.isNullOrUndefined(e)?-1:Ai.isNullOrUndefined(t)?1:e<t?-1:e>t?1:0};const vh={ALPHANUMERIC:{collator:null,installed:!1,install:function(e){return wh.install(e),this.collator=wh.collator,!!this.collator&&Ch.install(e)},compare:function(e,t){return this._compare(e,t,!1)},compareIgnoreCase:function(e,t){return this._compare(e,t,!0)},_compare:(e,t,i)=>{if(!e&&!t)return 0;if(!e)return-1;if(!t)return 1;let s="(([0-9]+)|([^0-9]+))",r=new RegExp(s,"g"),n=new RegExp(s,"g"),o=r.exec(e),l=n.exec(t);for(;o&&l;){let s=parseInt(o[1],0),a=parseInt(l[1],0);if(isNaN(s)||isNaN(a)){let e=i?wh.compareIgnoreCase(o[1],l[1]):wh.compare(o[1],l[1]);if(0!==e)return e}else{let e=Ch.compare(s,a);if(0!==e)return e}o=r.exec(e),l=n.exec(t)}return o||l?o?1:-1:0}},NUMERIC:Ch,TEXT:wh,compare:function(e){let t=0;for(var i=arguments.length,s=new Array(i>1?i-1:0),r=1;r<i;r++)s[r-1]=arguments[r];return s.some((i=>{if(2!==i.length)throw new Error("The pair must have exactly 2 elements");return t=e(i[0],i[1]),0!==t})),t}};function Th(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Sh{constructor(){this.autoOptimizeWidth=!1,this.autoOptimizeWidthRequired=!1,this.autoOptimizeMaxWidth=-1,this.cssClass=null,this.compacted=!1,this.editable=!1,this.removable=!1,this.modifiable=!1,this.fixedWidth=!1,this.fixedPosition=!1,this.grouped=!1,this.headerCssClass=null,this.headerIconId=null,this.headerHtmlEnabled=!1,this.headerTooltipText=null,this.headerTooltipHtmlEnabled=!1,this.horizontalAlignment=-1,this.htmlEnabled=!1,this.index=-1,this.initialized=!1,this.mandatory=!1,this.optimalWidthMeasurer=new xh(this),this.sortActive=!1,this.sortAscending=!0,this.sortIndex=-1,this.summary=!1,this.type="text",this.width=60,this.initialWidth=void 0,this.minWidth=Sh.DEFAULT_MIN_WIDTH,this.showSeparator=!0,this.table=null,this.tableNodeColumn=!1,this.maxLength=4e3,this.text=null,this.textWrap=!1,this.filterType="TextColumnUserFilter",this.comparator=vh.TEXT,this.displayable=!0,this.visible=!0,this.textBased=!0,this.headerMenuEnabled=!0,this.tableNodeLevel0CellPadding=28,this.expandableIconLevel0CellPadding=13,this.nodeColumnCandidate=!0,this.events=this._createEventSupport(),this._tableColumnsChangedHandler=this._onTableColumnsChanged.bind(this),this._realWidth=null,this.$header=null,this.$separator=null}init(e){this.session=e.session,n().extend(this,e),void 0===this.initialWidth&&(this.initialWidth=x.nvl(this.width,0)),this._init(e),this.initialized=!0}_init(e){mo.resolveTextProperty(this,"text"),mo.resolveTextProperty(this,"headerTooltipText"),Ct.resolveIconProperty(this,"headerIconId"),this._setTable(this.table),this._setDisplayable(this.displayable),this._setAutoOptimizeWidth(this.autoOptimizeWidth)}destroy(){this._destroy(),this._setTable(null)}_destroy(){}_setTable(e){this.table&&this.table.off("columnMoved columnStructureChanged",this._tableColumnsChangedHandler),this.table=e,this.table&&this.table.on("columnMoved columnStructureChanged",this._tableColumnsChangedHandler)}initCell(e,t){let i=this._ensureCell(e);return this._initCell(i),Ai.isNullOrUndefined(i.text)&&this._updateCellText(t,i),i}_ensureCell(e){let t;return e instanceof gn?(t=e,t.value=this._parseValue(t.value)):t=x.create("Cell",{value:this._parseValue(e)}),t}_parseValue(e){return e}_updateCellText(e,t){let i=t.value;if(!e)return;let s=this._formatValue(i,e);s&&"function"==typeof s.promise?this.setCellTextDeferred(s,e,t):this.setCellText(e,s,t)}_formatValue(e,t){return x.nvl(e,"")}_initCell(e){return e.cssClass=x.nvl(e.cssClass,this.cssClass),e.editable=x.nvl(e.editable,this.editable),e.horizontalAlignment=x.nvl(e.horizontalAlignment,this.horizontalAlignment),e.htmlEnabled=x.nvl(e.htmlEnabled,this.htmlEnabled),e.mandatory=x.nvl(e.mandatory,this.mandatory),e}buildCellForRow(e){let t=this.cell(e);return this.buildCell(t,e)}buildCellForAggregateRow(e){let t;if(this.grouped){let i=this.table.groupingStyle===Ka.GroupingStyle.TOP?e.nextRow:e.prevRow;t=this.createAggrGroupCell(i)}else{let i=e.contents[this.table.columns.indexOf(this)];t=this.createAggrValueCell(i)}return this.buildCell(t,{})}buildCell(e,t){x.assertParameter("cell",e,gn);let i=this.table.isTableNodeColumn(this),s=0;i&&(s=this.table._calcRowLevelPadding(t));let r,n=this._text(e),o=this._icon(e.iconId,!!n)||"",l=this._cellCssClass(e,i),a=this._cellStyle(e,i,s);return e.errorStatus&&(t.hasError=!0),n||o?r=e.flowsLeft?n+o:o+n:(r=" ",l=qt.join(" ",l,"empty")),i&&t._expandable&&(this.tableNodeColumn=!0,r=this._expandIcon(t.expanded,s)+r,t.expanded&&(l+=" expanded")),this._buildCell(e,r,a,l)}_buildCell(e,t,i,s){return'<div class="'+s+'" style="'+i+'">'+t+"</div>"}_expandIcon(e,t){let i="table-row-control";return e&&(i+=" expanded"),'<div class="'+i+'" style="'+("padding-left: "+(t+this.expandableIconLevel0CellPadding)+"px")+'"></div>'}_icon(e,t){let i,s;if(e)return i="table-cell-icon",t&&(i+=" with-text"),s=Ct.parseIconId(e),s.isFontIcon()?(i+=" font-icon",'<span class="'+s.appendCssClass(i)+'">'+s.iconCharacter+"</span>"):(i+=" image-icon",'<img class="'+i+'" src="'+s.iconUrl+'">')}_text(e){let t=e.text||"";return e.htmlEnabled||(t=e.encodedText()||"",this.table.multilineText&&(t=qt.nl2br(t,!1)),t&&(t='<span class="text">'+t+"</span>")),t}_cellCssClass(e,t){let i="table-cell";e.mandatory&&(i+=" mandatory"),this.table.multilineText&&this.textWrap||(i+=" white-space-nowrap"),e.editable&&(i+=" editable"),e.errorStatus&&(i+=" has-error"),e.iconId&&!e.text&&(i+=" icon-only"),i+=" halign-"+Ka.parseHorizontalAlignment(e.horizontalAlignment);let s=this.table.visibleColumns(),r=s.indexOf(this);return 0===r&&(i+=" first"),r===s.length-1&&(i+=" last"),t&&(i+=" table-node"),e.cssClass&&(i+=" "+e.cssClass),i}_cellStyle(e,t,i){let s,r=this.width;return 0===r?"display: none;":(s="min-width: "+r+"px; max-width: "+r+"px; ",t&&(s+=" padding-left: "+(this.tableNodeLevel0CellPadding+i)+"px; "),s+=ts.legacyStyle(e),s)}onMouseUp(e,t){let i=t.data("row"),s=this.cell(i);this.isCellEditable(i,s,e)&&this.table.prepareCellEdit(this,i,!0)}isCellEditable(e,t,i){return this.table.enabledComputed&&e.enabled&&t.editable&&!i.ctrlKey&&!i.shiftKey}startCellEdit(e,t){let i,s=e.$row,r=this.cell(e),n=this.table.$cell(this,s);return r.field=t,r.field.gridData.horizontalAlignment=r.horizontalAlignment,i=this._createEditorPopup(e,r),i.$anchor=n,i.open(this.table.$data),i}_createEditorPopup(e,t){return x.create("CellEditorPopup",{parent:this.table,column:this,row:e,cell:t})}cell(e){return this.table.cell(this,e)}headerCell(){return x.create("Cell",{value:this.text,text:this.text,iconId:this.headerIconId,cssClass:this.headerCssClass,tooltipText:this.headerTooltipText,htmlEnabled:this.headerHtmlEnabled})}selectedCell(){let e=this.table.selectedRow();return this.table.cell(this,e)}cellValueOrText(e){return this.textBased?this.table.cellText(this,e):this.table.cellValue(this,e)}cellValue(e){return this.table.cellValue(this,e)}cellText(e){return this.table.cellText(this,e)}cellValueOrTextForCalculation(e){let t=this.cell(e),i=this.cellValueOrText(e);return Ai.isNullOrUndefined(i)?null:this._preprocessValueOrTextForCalculation(i,t)}_preprocessValueOrTextForCalculation(e,t){return"string"==typeof e?this._preprocessTextForCalculation(e,t.htmlEnabled):e}_preprocessTextForCalculation(e,t){return this._preprocessText(e,{removeHtmlTags:t,removeNewlines:!0,trim:!0})}cellTextForGrouping(e){let t=this.cell(e);return this._preprocessTextForGrouping(t.text,t.htmlEnabled)}_preprocessTextForGrouping(e,t){return this._preprocessText(e,{removeHtmlTags:t,trim:!0})}cellTextForTextFilter(e){let t=this.cell(e);return this._preprocessTextForTextFilter(t.text,t.htmlEnabled)}_preprocessTextForTextFilter(e,t){return this._preprocessText(e,{removeHtmlTags:t})}cellTextForRowDetail(e){let t=this.cell(e);return this._preprocessText(this._text(t),{removeHtmlTags:t.htmlEnabled})}_preprocessText(e,t){return null==e||((t=t||{}).removeHtmlTags&&(e=qt.plainText(e)),t.removeNewlines&&(e=e.replace("\n"," ")),t.trim&&(e=e.trim())),e}setCellValue(e,t){let i=this.cell(e);this._setCellValue(e,t,i),this._updateCellText(e,i)}_setCellValue(e,t,i){t=this._parseValue(t),i.value!==t&&e.status===Ya.Status.NON_CHANGED&&(e.status=Ya.Status.UPDATED),i.setValue(t)}setCellTextDeferred(e,t,i){e.done((e=>{this.setCellText(t,e,i)})).fail((e=>{this.setCellText(t,"",i),n().log.error("Could not resolve cell text for value "+i.value,e)})),this.table.updateBuffer.pushPromise(e)}setCellText(e,t,i){i||(i=this.cell(e)),i.text!==t&&(i.setText(t),e.initialized&&this.table&&this.table.updateRow(e))}setCellErrorStatus(e,t,i){i||(i=this.cell(e)),i.setErrorStatus(t)}setCellIconId(e,t){let i=this.cell(e);i.iconId!==t&&(i.setIconId(t),e.initialized&&this.table.updateRow(e))}setHorizontalAlignment(e){this.horizontalAlignment!==e&&(this.horizontalAlignment=e,this.table.rows.forEach((t=>{this.cell(t).setHorizontalAlignment(e)})),this.table.updateRows(this.table.rows),this.table.header&&this.table.header.updateHeader(this))}setEditable(e){this.editable!==e&&(this.editable=e,this.table.rows.forEach((t=>{this.cell(t).setEditable(e)})),this.table.updateRows(this.table.rows))}setMandatory(e){this.mandatory!==e&&(this.mandatory=e,this.table.rows.forEach((t=>{this.cell(t).setMandatory(e)})),this.table.updateRows(this.table.rows))}setCssClass(e){this.cssClass!==e&&(this.cssClass=e,this.table.rows.forEach((function(t){this.cell(t).setCssClass(e)}),this),this.table.updateRows(this.table.rows))}setWidth(e){this.width!==e&&this.table.resizeColumn(this,e)}createAggrGroupCell(e){let t=this.cell(e);return this.initCell(x.create("Cell",{value:t.value,text:this.cellTextForGrouping(e),iconId:t.iconId,horizontalAlignment:this.horizontalAlignment,htmlEnabled:!1,cssClass:"table-aggregate-cell"+(t.cssClass?" "+t.cssClass:""),backgroundColor:"inherit",flowsLeft:this.horizontalAlignment>0}))}createAggrValueCell(e){return this.createAggrEmptyCell()}createAggrEmptyCell(){return this.initCell(x.create("Cell",{empty:!0,cssClass:"table-aggregate-cell"}))}calculateOptimalWidth(){return this.optimalWidthMeasurer.measure()}createFilter(e){return x.create(this.filterType,{session:this.session,table:this.table,column:this})}createTableHeaderMenu(e){let t=this.$header;return x.create("TableHeaderMenu",{parent:e,column:t.data("column"),tableHeader:e,$anchor:t})}createEditor(e){let t=this._createEditor(e),i=this.cell(e);this._initEditorField(t,i),t.setLabelVisible(!1),t.setFieldStyle(iu.FieldStyle.CLASSIC);let s=new lu(t.gridDataHints);return s.horizontalAlignment=i.horizontalAlignment,t.setGridDataHints(s),t}_initEditorField(e,t){t.errorStatus?this._updateEditorFromInvalidCell(e,t):this._updateEditorFromValidCell(e,t)}_updateEditorFromValidCell(e,t){e.setValue(t.value)}_updateEditorFromInvalidCell(e,t){e.setErrorStatus(t.errorStatus),e.setDisplayText(t.text)}_createEditor(){return x.create("StringField",{parent:this.table,maxLength:this.maxLength,multilineText:this.table.multilineText,wrapText:this.textWrap})}updateCellFromEditor(e,t){t.errorStatus?this._updateCellFromInvalidEditor(e,t):this._updateCellFromValidEditor(e,t)}_updateCellFromInvalidEditor(e,t){this.setCellErrorStatus(e,t.errorStatus),this.setCellText(e,t.displayText)}_updateCellFromValidEditor(e,t){this.setCellErrorStatus(e,null),this.setCellValue(e,t.value)}installComparator(){return this.comparator.install(this.session)}isSortingPossible(){return this.installComparator(),!0}compare(e,t){let i=this.table.cell(this,e),s=this.table.cell(this,t);if(null!==i.sortCode||null!==s.sortCode)return vh.NUMERIC.compare(i.sortCode,s.sortCode);let r=this.cellValueOrText(e),n=this.cellValueOrText(t);return this.comparator.compare(r,n)}isVisible(){return this.displayable&&this.visible&&!this.compacted}setVisible(e,t){this.visible!==e&&this._setVisible(e,t)}_setVisible(e,t){this.visible=e,x.nvl(t,this.initialized)&&this.table.onColumnVisibilityChanged()}setDisplayable(e,t){this.displayable!==e&&this._setDisplayable(e,t)}_setDisplayable(e,t){this.displayable=e,x.nvl(t,this.initialized)&&this.table.onColumnVisibilityChanged()}setCompacted(e,t){this.compacted!==e&&this._setCompacted(e,t)}_setCompacted(e,t){this.compacted=e,x.nvl(t,this.initialized)&&this.table.onColumnVisibilityChanged()}setAutoOptimizeWidth(e){this.autoOptimizeWidth!==e&&this._setAutoOptimizeWidth(e)}_setAutoOptimizeWidth(e){this.autoOptimizeWidth=e,this.autoOptimizeWidthRequired=e,this.initialized&&(this.table.columnLayoutDirty=!0,this.table.invalidateLayoutTree())}setMaxLength(e){this.maxLength=e}setText(e){this.text!==e&&(this.text=e,this.table.header&&this.table.header.updateHeader(this))}setHeaderIconId(e){this.headerIconId!==e&&(this.headerIconId=e,this.table.header&&this.table.header.updateHeader(this))}setHeaderCssClass(e){if(this.headerCssClass===e)return;let t=n().extend({},this);this.headerCssClass=e,this.table.header&&this.table.header.updateHeader(this,t)}setHeaderHtmlEnabled(e){this.headerHtmlEnabled!==e&&(this.headerHtmlEnabled=e,this.table.header&&this.table.header.updateHeader(this))}setHeaderTooltipText(e){this.headerTooltipText=e}setHeaderTooltipHtmlEnabled(e){this.headerTooltipHtmlEnabled=e}setTextWrap(e){this.textWrap!==e&&(this.textWrap=e,this.table.rendered&&this.table.multilineText&&(this.autoOptimizeWidthRequired=!0,this.table._redraw(),this.table.invalidateLayoutTree()))}isContentValid(e){let t=this.cell(e),i=!t.errorStatus||t.errorStatus.severity!==Ii.Severity.ERROR,s=!t.mandatory||this._hasCellValue(t);return{valid:i&&s,validByErrorStatus:i,validByMandatory:s}}_hasCellValue(e){return!!e.value}_onTableColumnsChanged(e){0===this.table.visibleColumns().indexOf(this)?(this.tableNodeLevel0CellPadding=28,this.expandableIconLevel0CellPadding=13):(this.tableNodeLevel0CellPadding=23,this.expandableIconLevel0CellPadding=8)}_realWidthIfAvailable(){return this._realWidth||this.width}_createEventSupport(){return new dt}trigger(e,t){(t=t||{}).source=this,this.events.trigger(e,t)}one(e,t){this.events.one(e,t)}on(e,t){return this.events.on(e,t)}off(e,t){this.events.off(e,t)}addListener(e){this.events.addListener(e)}removeListener(e){this.events.removeListener(e)}when(e){return this.events.when(e)}}Th(Sh,"DEFAULT_MIN_WIDTH",60),Th(Sh,"SMALL_MIN_WIDTH",38),Th(Sh,"NARROW_MIN_WIDTH",34);class xh{constructor(e){this.column=e,this.table=null,this.$measurement=null,this.deferred=null,this.imageCount=0,this.completeImageCount=0,this._imageLoadOrErrorHandler=this._onImageLoadOrError.bind(this),this._columnCellContents={}}measure(e){if(n().log.isDebugEnabled()&&n().log.debug("Optimal width measuring started for column "+this.column.id),this.table=this.column.table,this.$measurement&&(n().log.isDebugEnabled()&&n().log.debug("Optimal width measuring aborted for column "+this.column.id),this._resolve(-1)),this.$measurement=this.table.$data.makeDiv("hidden"),this.imageCount=0,this.completeImageCount=0,this._appendElements(),this.table.$data.append(this.$measurement),this.completeImageCount>=this.imageCount){let e=this._measure();return n().log.isDebugEnabled()&&n().log.debug("Optimal width measuring done (sync) for column "+this.column.id+": "+e),this.remove(),e}return n().log.isDebugEnabled()&&n().log.debug("Not all images loaded, deferring measurement for column "+this.column.id+". Images complete: "+this.completeImageCount+"/"+this.imageCount),this.$measurement[0].addEventListener("load",this._imageLoadOrErrorHandler,!0),this.$measurement[0].addEventListener("error",this._imageLoadOrErrorHandler,!0),this.deferred=n().Deferred(),this.deferred.promise()}remove(){this.$measurement&&(this.$measurement[0].removeEventListener("load",this._imageLoadOrErrorHandler,!0),this.$measurement[0].removeEventListener("error",this._imageLoadOrErrorHandler,!0),this.$measurement.remove(),this.$measurement=null)}_measure(){let e=this.column.minWidth,t=0;return this.$measurement.addClass("invisible").removeClass("hidden").children().each((function(){this.dataset.overlap&&(t=Math.max(t,parseInt(this.dataset.overlap,10))),e=Math.max(e,pr.size(n()(this),!0).width)})),e+t}_resolve(e){this.remove(),this.deferred&&(this.deferred.resolve(e),this.deferred=null)}_appendElements(){this._appendHeader(),this._appendRows(),this._appendAggregateRows()}_appendHeader(){this.column.$header&&this._appendToMeasurement(this.column.$header.clone())}_appendRows(){this.table.rows.forEach(this._appendRow.bind(this)),this._columnCellContents={}}_appendRow(e){let t=this.column.buildCellForRow(e);this._columnCellContents[t]||(this._columnCellContents[t]=!0,this._appendToMeasurement(n()(t)))}_appendAggregateRows(){this.table._aggregateRows.forEach(this._appendAggregateRow.bind(this))}_appendAggregateRow(e){this._appendToMeasurement(this._build$CellForAggregateRow(e))}_build$CellForAggregateRow(e){let t=this.table.visibleColumns(),i=t.indexOf(this.column),s=this.table._build$AggregateRow(e);s.appendTo(this.table.$data),t.map((t=>t.buildCellForAggregateRow(e))).forEach((e=>n()(e).appendTo(s)));let r=s.children().eq(i),o=this._getAggregateOverlap(r);return o>0&&(r[0].dataset.overlap=o+""),s.detach(),r}_getAggregateOverlap(e){if(!e||!e.length||e.hasClass("empty"))return 0;let t=this.table._getAggrCellRange(e);if(t.length<2)return 0;let i=t[t.length-1];if(i.hasClass("empty")||e.hasClass("halign-right")===i.hasClass("halign-right"))return 0;let s=i.children(".text");if(!s||!s.length)return 0;let r=pr.size(s).width-i.cssMaxWidth()+i.cssPaddingLeft();if(r<=0)return 0;for(let e=t.length-1;e>0;e--){let i=t[e];i.hasClass("empty")&&(r-=i.cssMaxWidth())}return Math.max(0,r)}_appendToMeasurement(e){e.find("img").each(((e,t)=>{let i=n()(t);i.data("measure","in-progress"),t.complete&&(i.data("complete",t.complete),this.completeImageCount++),this.imageCount++})),e.css({minWidth:"",maxWidth:""}).appendTo(this.$measurement)}_onImageLoadOrError(e){if(!n()(e.target).data("complete")&&(this.completeImageCount++,n().log.isTraceEnabled()&&n().log.trace("Images complete (async) "+this.completeImageCount+"/"+this.imageCount,e.target.src),this.completeImageCount>=this.imageCount)){let e=this._measure();n().log.isDebugEnabled()&&n().log.debug("Optimal width measuring done (async) for column "+this.column.id+": "+e),this._resolve(e)}}}class Ph extends Sh{constructor(){super(),this.comparator=vh.ALPHANUMERIC}}class Fh extends Sh{constructor(){super()}buildCellForRow(e){let t=this.cell(e),i=this._cellCssClass(t),s=this._cellStyle(t),r=n()(super._buildCell(t,"",s,i)),o=this.table.cellValue(this,e);return t.errorStatus&&(e.hasError=!0),this._renderValue(r,o),r[0].outerHTML}_renderValue(e,t){}_plainTextForRow(e){let t=this.table.cell(this,e);if(!t.plainText){let i=this.buildCellForRow(e);t.plainText=qt.plainText(i)}return t.plainText}cellValueOrTextForCalculation(e){let t=this._plainTextForRow(e);return this._preprocessTextForCalculation(t)}cellTextForGrouping(e){let t=this._plainTextForRow(e);return this._preprocessTextForGrouping(t)}cellTextForTextFilter(e){let t=this._plainTextForRow(e);return this._preprocessTextForTextFilter(t)}compare(e,t){let i=this._plainTextForRow(e),s=this._plainTextForRow(t);return this.comparator.compareIgnoreCase(i,s)}}class Eh extends Sh{constructor(){super(),this.comparator=vh.NUMERIC,this.filterType="ColumnUserFilter",this.horizontalAlignment=0,this.minWidth=Sh.SMALL_MIN_WIDTH,this.triStateEnabled=!1,this.textBased=!1}_formatValue(e,t){return this.triStateEnabled&&null===e?"?":e?"X":""}buildCell(e,t){let i,s,r,n="",o=t.enabled,l=this.table.isTableNodeColumn(this),a=0;return l&&(a=this.table._calcRowLevelPadding(t)),e.empty?super.buildCell(e,t):(o=o&&e.editable,s=this._cellCssClass(e,l),i=this._cellStyle(e,l,a),o||(s+=" disabled"),r="check-box",!0===e.value&&(r+=" checked"),this.triStateEnabled&&!0!==e.value&&!1!==e.value&&(r+=" undefined"),o||(r+=" disabled"),l&&t._expandable&&(this.tableNodeColumn=!0,n=this._expandIcon(t.expanded,a)+n,t.expanded&&(s+=" expanded")),n=n+'<div class="'+r+'"></div>',this._buildCell(e,n,i,s))}$checkBox(e){return this.table.$cell(this,e).children(".check-box")}_cellCssClass(e,t){let i=super._cellCssClass(e);return i=i.replace(" editable",""),i+=" checkable",t&&(i+=" table-node"),i}onMouseUp(e,t){let i=t.data("row"),s=this.cell(i);this.table.checkableColumn===this?this.table.checkRow(i,!i.checked):this.isCellEditable(i,s,e)&&this._toggleCellValue(i,s)}_toggleCellValue(e,t){this.triStateEnabled?!1===t.value?this.setCellValue(e,!0):!0===t.value?this.setCellValue(e,null):null===t.value&&this.setCellValue(e,!1):this.setCellValue(e,!t.value)}_createEditor(e){return x.create("CheckBoxField",{parent:this.table,triStateEnabled:this.triStateEnabled})}cellTextForGrouping(e){let t=this.cell(e);return this.triStateEnabled&&null===t.value?this.session.text("ui.BooleanColumnGroupingMixed"):!0===t.value?this.session.text("ui.BooleanColumnGroupingTrue"):this.session.text("ui.BooleanColumnGroupingFalse")}setTriStateEnabled(e){this.triStateEnabled!==e&&(this.triStateEnabled=e,this.table.rows.forEach((e=>this._updateCellText(e,this.cell(e)))))}}class Dh extends Sh{constructor(){super(),this.cssClass="compact-cell",this.htmlEnabled=!0,this.width=120,this.textWrap=!0}_onMoreLinkAction(e,t){let i=this.table.$cell(this,e).find(".compact-cell-more-content"),s=!i.isVisible();i.setVisible(s),t.setVisible(!s),this.table.invalidateLayoutTree()}onMouseUp(e,t){let i=$(e.target),s=$(e.delegateTarget),r=i.findUp((e=>e.hasClass("more-link")),s);r.length>0&&this._onMoreLinkAction(t,r)}}class Ah{constructor(){this.title="",this.titleSuffix="",this.subtitle="",this.content="",this.moreContent="",this.contentLines=[]}setTitle(e){this.title=scout.nvl(e,"")}setTitleLine(e){this.titleLine=e}setTitleSuffix(e){this.titleSuffix=scout.nvl(e,"")}setTitleSuffixLine(e){this.titleSuffixLine=e}setSubtitle(e){this.subtitle=scout.nvl(e,"")}setSubtitleLine(e){this.subtitleLine=e}addContentLine(e){this.contentLines.push(e)}setContent(e){this.content=scout.nvl(e,"")}setMoreContent(e){this.moreContent=scout.nvl(e,"")}transform(e){let t=scout.nvl(e.removeEmptyContentLines,!0),i=scout.nvl(e.maxContentLines,1e3);this.titleLine&&this.setTitle(this.titleLine.build()),this.titleSuffixLine&&this.setTitleSuffix(this.titleSuffixLine.build()),this.subtitleLine&&this.setSubtitle(this.subtitleLine.build());let s=[];t&&(s=this.contentLines.filter((e=>!!e.build()))),i+1===s.length&&i++;let r=Math.min(s.length,i),n=qt.join("\n",...s.slice(0,r).map((e=>e.build())));if(n&&this.setContent(n),r<s.length){let e=qt.join("\n",...s.slice(r,s.length).map((e=>e.build())));this.setMoreContent(e)}}}class $h{constructor(e,t){this.labelBlock=null,this.textBlock=null,e instanceof gn?this.setLabelBlock(this.convertHeaderCellToBlock(e)):this.setLabelBlock(new Rh(e)),t instanceof gn?this.setTextBlock(this.convertCellToBlock(t)):this.setTextBlock(new Rh(t))}convertHeaderCellToBlock(e){return this.convertCellToBlock(e)}convertCellToBlock(e){let t=new Rh;return null!=e&&(t.setText(e.text),t.setIcon(e.iconId),t.setEncodeHtmlEnabled(!e.htmlEnabled)),t}setLabelBlock(e){scout.assertParameter("block",e),this.labelBlock=e}setTextBlock(e){scout.assertParameter("block",e),this.textBlock=e}build(){let e=this.labelBlock.build();e&&(e+=": ");let t=this.textBlock.build();return t?'\n<div class="compact-cell-line">\n <span class="compact-cell-line-label">'.concat(e,'</span>\n <span class="compact-cell-line-value">').concat(t,"</span>\n</div>"):""}}class Rh{constructor(e,t){this.text="",this.icon="",this._processedText=null,this.encodeHtmlEnabled=!0,this.nlToBrEnabled=!1,this.htmlToPlainTextEnabled=!1,this.setText(e),this.setIcon(t)}setText(e){this.text=x.nvl(e,"")}processedText(){return null==this._processedText&&(this._processedText=this.processText()),this._processedText}setIcon(e){this.icon=x.nvl(e,"")}setEncodeHtmlEnabled(e){this.encodeHtmlEnabled!==e&&(this._processedText=null),this.encodeHtmlEnabled=e}setNlToBrEnabled(e){this.nlToBrEnabled!==e&&(this._processedText=null),this.nlToBrEnabled=e}setHtmlToPlainTextEnabled(e){this.htmlToPlainTextEnabled!==e&&(this._processedText=null),this.htmlToPlainTextEnabled=e}processText(){let e=this.text;return this.htmlToPlainTextEnabled?(this.nlToBrEnabled&&(e=qt.nl2br(e,!1)),e=qt.plainText(e)):this.encodeHtmlEnabled&&(e=qt.encode(e)),this.nlToBrEnabled&&(e=qt.nl2br(e,!1)),e}build(){return this.icon?$("<div>").appendIcon(this.icon).addClass(this.processedText()?" with-text":"").parent()[0].innerHTML+this.processedText():this.processedText()}}class Mh extends Sh{constructor(){super(),this.format,this.groupFormat="yyyy",this.hasDate=!0,this.hasTime=!1,this.filterType="DateColumnUserFilter",this.comparator=vh.NUMERIC,this.textBased=!1}_init(e){super._init(e),this._setFormat(this.format),this._setGroupFormat(this.groupFormat)}setFormat(e){this.format!==e&&(this._setFormat(e),this.initialized&&this.table.rows.forEach((e=>{this._updateCellText(e,this.cell(e))})))}_setFormat(e){e||(e=this._getDefaultFormat(this.session.locale)),e=eo.ensure(this.session.locale,e),this.format=e}setGroupFormat(e){this.groupFormat!==e&&(this._setGroupFormat(e),this.initialized&&this.table.rows.forEach((e=>{this._updateCellText(e,this.cell(e))})))}_setGroupFormat(e){e||(e=this._getDefaultFormat(this.session.locale)),e=eo.ensure(this.session.locale,e),this.groupFormat=e}_formatValue(e,t){return this.format.format(e)}_parseValue(e){return Le.ensure(e)}_getDefaultFormat(e){return this.hasDate&&this.hasTime?e.dateFormatPatternDefault+" "+e.timeFormatPatternDefault:this.hasDate?e.dateFormatPatternDefault:e.timeFormatPatternDefault}cellTextForGrouping(e){let t=this.table.cellValue(this,e);return this.groupFormat.format(t)}_createEditor(){return x.create("DateField",{parent:this.table,hasDate:this.hasDate,hasTime:this.hasTime})}}class kh extends Sh{constructor(){super(),this.minWidth=Sh.NARROW_MIN_WIDTH,this.filterType="ColumnUserFilter",this.textBased=!1}_initCell(e){return super._initCell(e),e.text=null,e.iconId=e.value||e.iconId,e}_formatValue(e,t){return null}setCellValue(e,t){super.setCellValue(e,t),this.setCellIconId(e,this.cell(e).value)}cellTextForGrouping(e){return this.table.cell(this,e).value}createAggrGroupCell(e){let t=super.createAggrGroupCell(e);return t.text=null,t}}class Ih extends Sh{constructor(){super(),this.aggregationFunction="sum",this.backgroundEffect=null,this.decimalFormat=null,this.minValue=null,this.maxValue=null,this.calcMinValue=null,this.calcMaxValue=null,this.horizontalAlignment=1,this.filterType="NumberColumnUserFilter",this.comparator=vh.NUMERIC,this.textBased=!1,this.allowedAggregationFunctions=["sum","avg","min","max","none"]}_init(e){super._init(e),this._setDecimalFormat(this.decimalFormat),this.setAggregationFunction(this.aggregationFunction)}setDecimalFormat(e){this.decimalFormat!==e&&(this._setDecimalFormat(e),this.initialized&&this.table.rows.forEach((e=>{this._updateCellText(e,this.cell(e))})))}_setDecimalFormat(e){e||(e=this._getDefaultFormat(this.session.locale)),this.decimalFormat=to.ensure(this.session.locale,e)}_getDefaultFormat(e){return e.decimalFormatPatternDefault}_formatValue(e,t){return this.decimalFormat.format(e)}_parseValue(e){return fi.ensure(e)}setAggregationFunction(e){if(this.aggregationFunction=e,"sum"===e)this.aggrStart=hs.sumStart,this.aggrStep=hs.sumStep,this.aggrFinish=hs.sumFinish,this.aggrSymbol=hs.sumSymbol;else if("avg"===e)this.aggrStart=hs.avgStart,this.aggrStep=hs.avgStep,this.aggrFinish=hs.avgFinish,this.aggrSymbol=hs.avgSymbol;else if("min"===e)this.aggrStart=hs.minStart,this.aggrStep=hs.minStep,this.aggrFinish=hs.minFinish,this.aggrSymbol=hs.minSymbol;else if("max"===e)this.aggrStart=hs.maxStart,this.aggrStep=hs.maxStep,this.aggrFinish=hs.maxFinish,this.aggrSymbol=hs.maxSymbol;else if("none"===e){let e=()=>{};this.aggrStart=e,this.aggrStep=e,this.aggrFinish=e,this.aggrSymbol=void 0}}createAggrValueCell(e){let t=this._formatValue(e);return x.create("Cell",{text:t,iconId:t?this.aggrSymbol:null,horizontalAlignment:this.horizontalAlignment,cssClass:"table-aggregate-cell "+this.aggregationFunction,flowsLeft:this.horizontalAlignment>0})}_cellStyle(e,t,i){let s=super._cellStyle(e,t,i);if(!this.backgroundEffect||void 0===e.value||qt.contains(e.cssClass,"table-aggregate-cell"))return s;this.backgroundEffectFunc||(this.backgroundEffectFunc=this._resolveBackgroundEffectFunc());let r=this.backgroundEffectFunc(this._preprocessValueOrTextForCalculation(e.value));return r.backgroundColor&&(s+="background-color: "+r.backgroundColor+";"),r.backgroundImage&&(s+="background-image: "+r.backgroundImage+";"),s}_preprocessValueOrTextForCalculation(e){return this.decimalFormat.round(e)}setBackgroundEffect(e){this.backgroundEffect!==e&&(this.backgroundEffect=e,this.backgroundEffectFunc=this._resolveBackgroundEffectFunc(),this.table.trigger("columnBackgroundEffectChanged",{column:this}),!this.backgroundEffect||null!==this.calcMinValue&&null!==this.calcMaxValue||this.calculateMinMaxValues(),this.backgroundEffect||(this.calcMinValue=null,this.calcMaxValue=null),this.table.rendered&&this._renderBackgroundEffect())}updateBackgroundEffect(){this.calculateMinMaxValues(),this.table.rendered&&this._renderBackgroundEffect()}_resolveBackgroundEffectFunc(){let e=this.backgroundEffect;return"colorGradient1"===e?this._colorGradient1.bind(this):"colorGradient2"===e?this._colorGradient2.bind(this):"barChart"===e?this._barChart.bind(this):null!==e?(n().log.warn("Unsupported backgroundEffect: "+e),()=>({})):void 0}_renderBackgroundEffect(){this.table.visibleRows.forEach((function(e){if(!e.$row)return;let t=this.cell(e),i=this.table.$cell(this,e.$row);void 0!==t.value&&(i[0].style.cssText=this._cellStyle(t))}),this)}calculateMinMaxValues(){let e,t,i,s,r=this.table.rows;for(let n=0;n<r.length;n++)e=r[n],s=this.cellValueOrTextForCalculation(e),(s<t||void 0===t)&&(t=s),(s>i||void 0===i)&&(i=s);this.calcMinValue=x.nvl(t,null),this.calcMaxValue=x.nvl(i,null)}_colorGradient1(e){let t=ts.get("column-background-effect-gradient1-start","backgroundColor"),i=ts.get("column-background-effect-gradient1-end","backgroundColor"),s=ts.rgb(t.backgroundColor),r=ts.rgb(i.backgroundColor);return this._colorGradient(e,s,r)}_colorGradient2(e){let t=ts.get("column-background-effect-gradient2-start","backgroundColor"),i=ts.get("column-background-effect-gradient2-end","backgroundColor"),s=ts.rgb(t.backgroundColor),r=ts.rgb(i.backgroundColor);return this._colorGradient(e,s,r)}_colorGradient(e,t,i){let s=(e-this.calcMinValue)/(this.calcMaxValue-this.calcMinValue);return{backgroundColor:"rgb("+Math.ceil(t.red-s*(t.red-i.red))+","+Math.ceil(t.green-s*(t.green-i.green))+", "+Math.ceil(t.blue-s*(t.blue-i.blue))+")"}}_barChart(e){let t=Math.ceil((e-this.calcMinValue)/(this.calcMaxValue-this.calcMinValue)*100)+"",i=ts.get("column-background-effect-bar-chart","backgroundColor").backgroundColor;return{backgroundImage:"linear-gradient(to left, "+i+" 0%, "+i+" "+t+"%, transparent "+t+"%, transparent 100% )"}}_createEditor(){return x.create("NumberField",{parent:this.table,maxValue:this.maxValue,minValue:this.minValue,decimalFormat:this.decimalFormat})}_hasCellValue(e){return!Ai.isNullOrUndefined(e.value)}}class Lh extends Sh{constructor(){super(),this.codeType=null,this.lookupCall=null,this.browseHierarchy=!1,this.browseMaxRowCount=ep.DEFAULT_BROWSE_MAX_COUNT,this.browseAutoExpandAll=!0,this.browseLoadIncremental=!1,this.activeFilterEnabled=!1,this._lookupCallBatchContext=null}_init(e){super._init(e),this._setLookupCall(this.lookupCall),this._setCodeType(this.codeType)}_initCell(e){return super._initCell(e),e.sortCode=this._calculateCellSortCode(e),e}_calculateCellSortCode(e){if(!this.codeType)return null;let t=zs.get(this.codeType,e.value);return t?t.sortCode:null}_updateAllCellSortCodes(){this.table.rows.map((e=>this.cell(e))).forEach((e=>e.setSortCode(this._calculateCellSortCode(e))))}setLookupCall(e){this.lookupCall!==e&&(this._setLookupCall(e),this._updateAllCellSortCodes())}_setLookupCall(e){this.lookupCall=xs.ensure(e,this.session)}setCodeType(e){this.codeType!==e&&(this._setCodeType(e),this._updateAllCellSortCodes())}_setCodeType(e){this.codeType=e,e&&(this.lookupCall=x.create("CodeLookupCall",{session:this.session,codeType:e}))}setBrowseHierarchy(e){this.browseHierarchy=e}setBrowseMaxRowCount(e){this.browseMaxRowCount=e}setBrowseAutoExpandAll(e){this.browseAutoExpandAll=e}setBrowseLoadIncremental(e){this.browseLoadIncremental=e}setActiveFilterEnabled(e){this.activeFilterEnabled=e}_formatValue(e,t){if(!this.lookupCall)return qt.nvl(e)+"";if(this.lookupCall.batch)return this._batchFormatValue(e);let i=this.lookupCall.clone();return this.trigger("prepareLookupCall",{lookupCall:i,row:t}),i.textByKey(e)}_batchFormatValue(e){if(Ai.isNullOrUndefined(e))return $.resolvedPromise("");let t=this._lookupCallBatchContext;if(!t){const e=$.Deferred();t={keySet:new Set,result:e.promise()},this._lookupCallBatchContext=t,setTimeout((()=>{this._lookupCallBatchContext=null;let i=this.lookupCall.clone();this.trigger("prepareLookupCall",{lookupCall:i}),i.textsByKeys([...t.keySet]).then((t=>e.resolve(t))).catch((t=>e.reject(t)))}))}return t.keySet.add(e),t.result.then((t=>t[Ai.ensureValidKey(e)]||""))}_updateEditorFromValidCell(e,t){if(Ai.isNullOrUndefined(t.value))return void e.setValue(null);let i=new Ps;i.key=t.value,i.text=t.text,e.setLookupRow(i)}_createEditor(e){let t=x.create("SmartField",{parent:this.table,codeType:this.codeType,lookupCall:this.lookupCall?this.lookupCall.clone():null,browseHierarchy:this.browseHierarchy,browseMaxRowCount:this.browseMaxRowCount,browseAutoExpandAll:this.browseAutoExpandAll,browseLoadIncremental:this.browseLoadIncremental,activeFilterEnabled:this.activeFilterEnabled});return t.on("prepareLookupCall",(t=>{this.trigger("prepareLookupCall",{lookupCall:t.lookupCall,row:e})})),t.on("lookupCallDone",(e=>{this.trigger("lookupCallDone",{result:e.result})})),t}_updateCellFromValidEditor(e,t){this.setCellErrorStatus(e,null);let i=this.cell(e),s=i.text,r=t.displayText;i.setText(r),this._setCellValue(e,t.value,i),e.initialized&&s!==r&&i.text===r&&this.table.updateRow(e),this._updateCellText(e,i)}_hasCellValue(e){let t=e.value;return Ai.isNumber(t)?!Ai.isNullOrUndefined(t):!!t}_setCellValue(e,t,i){super._setCellValue(e,t,i),i.setSortCode(this._calculateCellSortCode(i))}}class Bh extends xo{constructor(e){super(e),this.renderingHints.offset=6}handle(e){this.field.toggle()}_postRenderKeyBox(e){if(this.field.iconId){let t=e.find(".icon").width()/2-e.find(".key-box").outerWidth()/2+e.cssPaddingLeft();e.find(".key-box").cssLeft(t)}}}function Oh(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Nh extends vo{constructor(){super(),this.tableFooter=null,this.contentRendered=!1,this.height=null,this.animateDuration=null,this.resizerVisible=!0,this.toggleAction=!0,this.showTooltipWhenSelected=!1}_init(e){this.parent=e.parent,this.table=this.getTable(),super._init(e),this.denseClass=this.session.desktop.dense?" dense":"",Nh.CONTAINER_SIZE=ts.getSize("table-control-container"+this.denseClass,"height","height",Nh.CONTAINER_SIZE),this.height=Nh.CONTAINER_SIZE,this.animateDuration=Nh.CONTAINER_ANIMATE_DURATION,this._setSelected(this.selected)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.tableControlKeyStrokeContext=this._createKeyStrokeContextForTableControl()}_createKeyStrokeContextForTableControl(){let e=new Zr;return e.$scopeTarget=()=>this.tableFooter.$controlContent,e.$bindTarget=()=>this.tableFooter.$controlContent,e.registerKeyStroke(new Qh(this)),e}_createLayout(){return new Lr}_render(){let e="table-control ";this.cssClass&&(e+=this.cssClass+"-table-control"),this.$container=this.$parent.appendDiv(e).on("mousedown",this._onMouseDown.bind(this)).data("control",this),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout())}remove(){this.removeContent(),super.remove()}_renderContent(e){}_removeContent(){}removeContent(){this.contentRendered&&(this._removeContent(),this.cssClass&&(this.tableFooter.$controlContainer.removeClass(this.cssClass+"-table-control-container"),this.tableFooter.$controlContent.removeClass(this.cssClass+"-table-control-content")),this.session.keyStrokeManager.uninstallKeyStrokeContext(this.tableControlKeyStrokeContext),this.contentRendered=!1)}renderContent(){(this.contentRendered||this.isContentAvailable())&&(this.tableFooter.open||this.tableFooter.openControlContainer(this),this.contentRendered||(this.cssClass&&(this.tableFooter.$controlContainer.addClass(this.cssClass+"-table-control-container"),this.tableFooter.$controlContent.addClass(this.cssClass+"-table-control-content")),this.tableFooter.$controlContent.data("control",this),this._renderContent(this.tableFooter.$controlContent),this.session.keyStrokeManager.installKeyStrokeContext(this.tableControlKeyStrokeContext),this.htmlComp&&this.htmlComp.invalidateLayoutTree(!1),this.contentRendered=!0))}get$Scrollable(){return this.$contentContainer}_renderSelected(e,t){e=x.nvl(e,this.selected),t=$.extend({},{closeWhenUnselected:!0},t),this.$container.select(e),e?(this.tableFooter.onControlSelected(this),this.renderContent()):this.rendered&&(t.closeWhenUnselected&&this===this.tableFooter.selectedControl?(this.tableFooter.onControlSelected(null),this.tableFooter.closeControlContainer(this,t)):this.removeContent()),this._updateTooltip()}isContentAvailable(){return!0}toggle(){this.enabledComputed&&(this.tableFooter.selectedControl===this?this.setSelected(!1):this.setSelected(!0))}setSelected(e,t){e&&!this.visible||e!==this.selected&&(this.tableFooter&&this.tableFooter.selectedControl&&this.tableFooter.selectedControl!==this&&this.tableFooter.selectedControl.setSelected(!1,{closeWhenUnselected:!1}),this._setSelected(e),t=$.extend({},{closeWhenUnselected:!0},t),this.rendered?this._renderSelected(e,t):t.closeWhenUnselected&&this.tableFooter&&this===this.tableFooter.selectedControl&&!e&&this.tableFooter.onControlSelected(null))}_setSelected(e){this._setProperty("selected",e)}_configureTooltip(){let e=super._configureTooltip();return e.cssClass="table-control-tooltip",e}_onMouseDown(){this.toggle()}onControlContainerOpened(){}onControlContainerClosed(){this.removeContent()}_createActionKeyStroke(){return new Bh(this)}getTable(){let e=this.parent;for(;e;){if(e instanceof Ka)return e;e=e.parent}return null}}Oh(Nh,"CONTAINER_SIZE",345),Oh(Nh,"CONTAINER_ANIMATE_DURATION",350);class Hh extends To{constructor(){super()}_goOffline(){this.widget.isContentAvailable()||(this._enabledBeforeOffline=this.widget.enabled,this.widget.setEnabled(!1))}_goOnline(){this.widget.isContentAvailable()||this.widget.setEnabled(this._enabledBeforeOffline)}}class Vh extends Ea{constructor(){super(),this.tableControl=null,this._tableControlPropertyChangeHandler=this._onTableControlPropertyChange.bind(this),this._tableControlDestroyHandler=this._onTableControlDestroy.bind(this),this._addCloneProperties(["tableControl"])}_init(e){if(super._init(e),!this.tableControl)throw new Error("Cannot adapt to undefined tableControl");this._installListeners()}_destroy(){this._uninstallListeners(),super._destroy()}_installListeners(){this.tableControl.on("propertyChange",this._tableControlPropertyChangeHandler),this.tableControl.on("destroy",this._tableControlDestroyHandler)}_uninstallListeners(){this.tableControl.off("propertyChange",this._tableControlPropertyChangeHandler),this.tableControl.off("destroy",this._tableControlDestroyHandler)}_render(){super._render(),this.$container.attr("data-tableControlAdapter",this.tableControl.id)}_onTableControlPropertyChange(e){let t={};t[e.propertyName]=e.newValue,t=Vh.adaptTableControlProperties(t);for(let e in t)this.setProperty(e,t[e])}_onTableControlDestroy(e){this.destroy(),this._uninstallListeners()}doAction(){return this.tableControl.doAction()}setSelected(e){this.tableControl.setSelected(e)}static adaptTableControlProperties(e,t){t=t||{},["text","iconId","enabled","visible","selected","tooltipText","keyStroke","keyStrokes","modelClass","classId","form"].forEach((i=>{t[i]=e[i]}));for(let e in t)void 0===t[e]&&delete t[e];return t}}class Wh extends Nh{constructor(){super(),this._tableDataScrollHandler=this._onTableDataScroll.bind(this),this._tableColumnResizedHandler=this._onTableColumnResized.bind(this),this._tableColumnMovedHandler=this._onTableColumnMoved.bind(this),this._tableColumnStructureChangedHandler=this._onTableColumnStructureChanged.bind(this),this._tableChangedHandler=this._onTableChanged.bind(this),this._aggregationFunctionChangedHandler=this._onAggregationFunctionChanged.bind(this),this.animateDuration=Wh.CONTAINER_ANIMATE_DURATION,this.aggregateRow=[],this.cssClass="aggregate",this.height=0,this.iconId=Ct.SUM,this.tooltipText="${textKey:ui.Total}",this.resizerVisible=!1}_init(e){super._init(e),this.table.on("columnStructureChanged",this._tableColumnStructureChangedHandler),this.table.on("aggregationFunctionChanged",this._aggregationFunctionChangedHandler)}_destroy(){super._destroy(),this.table.off("columnStructureChanged",this._tableColumnStructureChangedHandler),this.table.off("aggregationFunctionChanged",this._aggregationFunctionChangedHandler)}_render(){super._render(),this._updateEnabledAndSelectedState(),this.height=this.table.rowHeight+pr.insets(this.table.footer.$controlContainer).vertical()}_renderContent(e){this.$contentContainer=e.appendDiv("table-aggregate"),this._aggregate(),this._renderAggregate(),this._reconcileScrollPos(),this.table.$data.on("scroll",this._tableDataScrollHandler),this.table.on("columnResized",this._tableColumnResizedHandler),this.table.on("columnMoved",this._tableColumnMovedHandler),this.table.on("rowsSelected rowsInserted rowsUpdated rowsDeleted filter group allRowsDeleted",this._tableChangedHandler)}_removeContent(){this.$contentContainer.remove(),this.table.$data.off("scroll",this._tableDataScrollHandler),this.table.off("columnResized",this._tableColumnResizedHandler),this.table.off("columnMoved",this._tableColumnMovedHandler),this.table.off("rowsSelected rowsInserted rowsUpdated rowsDeleted filter group allRowsDeleted",this._tableChangedHandler)}_renderAggregate(){let e=[];this.table.visibleColumns().forEach((function(t,i){let s,r,o;s=this.aggregateRow[i];let l=null==s||t.grouped;r=l?t.createAggrEmptyCell():t.createAggrValueCell(s),o=n()(t.buildCell(r,{})),l||e.push(o),this._installCellTooltip(o),this.aggregateRow.selection&&o.addClass("selection"),o.appendTo(this.$contentContainer)}),this),this.aggregateRow.selection&&this.$contentContainer.addClass("selection"),e.forEach((e=>this.table._resizeAggregateCell(e)))}_rerenderAggregate(){this.$contentContainer.empty(),this._renderAggregate(),this._reconcileScrollPos()}_installCellTooltip(e){yo.install(e,{parent:this,text:this.table._cellTooltipText.bind(this.table),htmlEnabled:!0,arrowPosition:50,arrowPositionUnit:"%",nativeTooltip:!Qe.get().isCustomEllipsisTooltipPossible()})}_aggregate(){let e,t=[],i=this.table.selectedRows;i.length>1?(e=i,t.selection=!0):e=this.table.filteredRows(),this.table._forEachVisibleColumn("aggrStart",t),e.forEach((function(e){this.table._forEachVisibleColumn("aggrStep",t,e)}),this),this.table._forEachVisibleColumn("aggrFinish",t),this.aggregateRow=t,this.contentRendered&&this.selected&&this._rerenderAggregate()}_reconcileScrollPos(){let e=this.table.$data.scrollLeft();this.$contentContainer.scrollLeft(e)}_updateEnabledAndSelectedState(e){if(!this.initialized)return;let t=this.table.containsAggregatedNumberColumn();t?e&&!this.table.isGrouped()&&this.setSelected(!0):this.selected&&this.setSelected(!1),this.setEnabled(t)}_setEnabled(e){super._setEnabled(e),this._updateEnabledAndSelectedState()}_setSelected(e){this._setProperty("selected",e),this._updateEnabledAndSelectedState()}_onTableDataScroll(){this._reconcileScrollPos()}_onTableChanged(){this._aggregate()}_onAggregationFunctionChanged(){this._updateEnabledAndSelectedState(!0),this.contentRendered&&this.selected&&this._aggregate()}_onTableColumnResized(){this._rerenderAggregate()}_onTableColumnMoved(e){me.move(this.aggregateRow,e.oldPos,e.newPos),this._rerenderAggregate()}_onTableColumnStructureChanged(){this._updateEnabledAndSelectedState(),this.contentRendered&&this.selected&&this._aggregate()}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Wh,"CONTAINER_ANIMATE_DURATION",200);class zh extends Hh{constructor(){super()}static modifyAggregateTableControlPrototype(){E.get().remote&&Ai.replacePrototypeFunction(Wh,"_onTableColumnStructureChanged",(function(e){this.modelAdapter?this._updateEnabledAndSelectedState():this._onTableColumnStructureChangedOrig()}),!0)}}E.addListener("bootstrap",zh.modifyAggregateTableControlPrototype);class Gh extends Nh{constructor(){super(),this._addWidgetProperties("form"),this._formDestroyedHandler=this._onFormDestroyed.bind(this)}_init(e){super._init(e),this._setForm(this.form)}_createLayout(){return new Kh(this)}_renderContent(e){this.form.renderInitialFocusEnabled=!1,this.form.render(e);let t=this.form.rootGroupBox;t.controls[0]instanceof Rp&&t.controls[0].$container.addClass("in-table-control"),this.form.$container.height(e.height()),this.form.$container.width(e.width()),this.form.htmlComp.validateRoot=!0,this.form.htmlComp.validateLayout()}_removeContent(){this.form&&this.form.remove()}_removeForm(){this.removeContent()}_renderForm(e){this.renderContent()}isContentAvailable(){return!!this.form}_setForm(e){this.form&&this.form.off("destroy",this._formDestroyedHandler),e&&(e.on("destroy",this._formDestroyedHandler),this._adaptForm(e)),this._setProperty("form",e)}_adaptForm(e){e.rootGroupBox.setMenuBarPosition(ac.MenuBarPosition.BOTTOM),e.setDisplayHint(Ta.DisplayHint.VIEW),e.setModal(!1),e.setAskIfNeedSave(!1),e.setClosable(!1)}onControlContainerOpened(){this.form&&this.form.rendered&&this.form.renderInitialFocus()}_onFormDestroyed(e){this._removeForm(),this._setForm(null)}}class Uh extends Hh{constructor(){super()}}class Kh extends _r{constructor(e){super(),this.control=e}layout(e){if(!this.control.contentRendered||!this.control.form)return;let t=this.control.form,i=t.htmlComp,s=pr.size(this.control.tableFooter.$controlContent).subtract(i.margins());if(i.setSize(s),t.rootGroupBox.controls[0]instanceof Rp){let e=t.rootGroupBox.controls[0].selectedTab;e&&e.scrollable&&document.activeElement&&e.$body.has(document.activeElement)&&Yn.scrollTo(e.$body,n()(document.activeElement))}}}class qh extends Ao{constructor(){super(),this.table=null,this.column=null,this.row=null,this.cell=null,this._pendingCompleteCellEdit=null,this._keyStrokeHandler=this._onKeyStroke.bind(this)}_init(e){e.scrollType=e.scrollType||"position",super._init(e),this.table=e.column.table,this.link(this.cell.field)}_createLayout(){return new jh(this)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new Xh(this),new Jh(this)])}_createCloseKeyStroke(){return new Yh(this)}_open(e,t){this.render(e,t),this.position(),this.pack()}_getDefaultOpen$Parent(){return this.table.$data}_render(){super._render();let e="",t=this.table.visibleColumns(),i=t.indexOf(this.column);0===i?e="first":i===t.length-1&&(e="last"),this.$container.addClass("cell-editor-popup "+e).data("popup",this);let s=this.cell.field;s.mode=iu.Mode.CELLEDITOR,s.render(),s.prepareForCellEdit({cssClass:e}),this.$anchor.css("visibility","hidden"),this._rowOrderChangedFunc=e=>{e.animating?e.row===this.row&&this.position():this.position()},this.table.on("rowOrderChanged",this._rowOrderChangedFunc),this.table.enabled&&this.table.$container.addClass("focused"),this.session.keyStrokeManager.on("keyStroke",this._keyStrokeHandler)}_alignWithSelection(){let e=this._rowSelectionBounds().y;e<0&&(this.$container.cssMarginTop(e),this.$container.addClass("overflow-top"))}_rowSelectionBounds(){let e=new or,t=getComputedStyle(this.row.$row[0],":after");return t&&(e=new or(n().pxToNumber(t.left),n().pxToNumber(t.top),n().pxToNumber(t.width),n().pxToNumber(t.height))),e}_postRender(){super._postRender();let e=this.cell.field;e.onCellEditorRendered&&e.onCellEditorRendered({openFieldPopup:this.table.openFieldPopupOnCellEdit,cellEditorPopup:this})}_remove(){super._remove(),this.session.keyStrokeManager.off("keyStroke",this._keyStrokeHandler),this.table.off("rowOrderChanged",this._rowOrderChangedFunc),this.table.rendered&&this.table.$container.removeClass("focused"),this.$anchor.css("visibility","")}position(){let e=this.table.$data,t=this.row.$row,i=this.$anchor,s=e.cssPaddingLeft()+t.cssMarginLeft()+t.cssBorderLeftWidth();this._alignWithSelection();let r=pr.bounds(i),n=pr.bounds(t);this.setLocation(new nr(s+r.x,e.scrollTop()+n.y))}completeEdit(e){if(this._pendingCompleteCellEdit)return this._pendingCompleteCellEdit;let t=this.cell.field.acceptInput();return t&&x.nvl(e,!0)?this._pendingCompleteCellEdit=t.then((()=>{this.table.completeCellEdit()})):(this._pendingCompleteCellEdit=n().resolvedPromise(),this.table.completeCellEdit()),this._pendingCompleteCellEdit.then((()=>{this._pendingCompleteCellEdit=n().resolvedPromise()})),this._pendingCompleteCellEdit}isCompleteCellEditRequested(){return!!this._pendingCompleteCellEdit}cancelEdit(){this.table.cancelCellEdit(),this.remove()}_onMouseDownOutside(e){let t=n()(e.target).closest(".table-row",this.table.$container[0]);this.completeEdit(),t.length>0&&!t.isAttached()&&this._propagateMouseDownToTableRow(e)}_propagateMouseDownToTableRow(e){let t=this.table.$container.document(!0),i=n()(t.elementFromPoint(e.pageX,e.pageY));0!==i.closest(".table-row",this.table.$container[0]).length&&Ye.propagateEvent(i[0],e)}_onKeyStroke(e){this._invokeCompleteEditBeforeKeyStroke(e)&&this.completeEdit(!1)}_invokeCompleteEditBeforeKeyStroke(e){return!!this.session.keyStrokeManager.invokeAcceptInputOnActiveValueField(e.keyStroke,e.keyStrokeContext)&&!this.$container.isOrHas(e.keyStrokeContext.$getScopeTarget())}waitForCompleteCellEdit(){return this._pendingCompleteCellEdit?this._pendingCompleteCellEdit.promise():n().resolvedPromise()}}class jh extends _r{constructor(e){super(),this.cellEditorPopup=e,this._field=e.cell.field,this._htmlContainer=e.htmlComp}layout(e){let t,i=this._field.htmlComp;t=this._htmlContainer.availableSize({exact:!0}).subtract(this._htmlContainer.insets()).subtract(i.margins()),i.setSize(t)}preferredLayoutSize(e){let t,i,s,r=this.cellEditorPopup.row.$row,n=this.cellEditorPopup.$anchor;t=pr.bounds(n,{exact:!0}),i=pr.bounds(r,{exact:!0}),s=this.cellEditorPopup.$container.cssMarginLeft(),s<0&&(t.width=t.width+-s);let o=this.cellEditorPopup._rowSelectionBounds().height;return o&&(this._htmlContainer.$comp.toggleClass("overflow-bottom",o>i.height&&0===this._htmlContainer.$comp.cssMarginTop()),i.height=o),new sr(t.width,i.height)}}class Yh extends U{constructor(e){super(),this.field=e,this.which=[Kr.ESC],this.stopPropagation=!0}handle(e){this.field.cancelEdit()}}class Xh extends U{constructor(e){super(),this.field=e,this.which=[Kr.ENTER],this.stopPropagation=!0}handle(e){this.field.completeEdit()}}class Jh extends U{constructor(e){super(),this.field=e,this.which=[Kr.TAB],this.shift=void 0}_accept(e){return super._accept(e)&&!this.field.isCompleteCellEditRequested()}handle(e){let t,i=e.shiftKey,s=this.field.table,r=this.field.column,n=this.field.row;this.field.completeEdit().then((()=>{t=s.nextEditableCellPos(r,n,i),t&&s.prepareCellEdit(t.column,t.row)}))}}class Zh extends U{constructor(e){super(),this.repeatable=!0,this.field=e,this.shift=!!e.multiSelect&&void 0,this.stopPropagation=!0,this.keyStrokeMode=U.Mode.DOWN,this.inheritAccessibility=!1}_accept(e){if(!super._accept(e))return!1;if(!this.field.visibleRows.length)return this._applyPropagationFlags(e),!1;let t=this.field.$container.activeElement(),i=t[0].tagName.toLowerCase(),s=this.field.$container.data("filter-field");return!!(s&&t[0]===s[0]||"textarea"!==i&&"input"!==i||e.originalEvent&&(!e.originalEvent||e.originalEvent.smartFieldEvent))&&(this.field.$container.addClass("keyboard-navigation"),!0)}_viewportInfo(){let e,t,i,s,r,n=this.field,o={},l=n.visibleRows;return 0===l.length||(e=pr.offsetBounds(n.$data),t=pr.insets(n.$data),i=n.$data.cssMarginTop(),e=e.subtract(t),i<0&&(e.y-=Math.abs(i),e.height+=Math.abs(i)),s=this._findFirstRowInViewport(n,e),r=this._findLastRowInViewport(n,l.indexOf(s),e),o.firstRow=s,o.lastRow=r),o}firstRowAfterSelection(){let e=this.field.$selectedRows();if(!e.length)return;let t=this.field.visibleRows,i=e.last().data("row");return t[this.field.filteredRows().indexOf(i)+1]}firstRowBeforeSelection(){let e=this.field.$selectedRows();if(!e.length)return;let t=this.field.visibleRows,i=e.first().data("row");return t[this.field.visibleRows.indexOf(i)-1]}_findLastSelectedRowBefore(e,t){let i,s=e.visibleRows;return 0===t?s[t]:(i=me.findFromReverse(s,t,((t,i)=>{let r=s[i-1];return!!r&&!e.isRowSelected(r)})),i||(i=s[0]),i)}_findLastSelectedRowAfter(e,t){let i,s=e.visibleRows;return t===s.length-1?s[t]:(i=me.findFrom(s,t,((t,i)=>{let r=s[i+1];return!!r&&!e.isRowSelected(r)})),i||(i=s[s.length-1]),i)}_findFirstRowInViewport(e,t){let i=e.visibleRows;return me.find(i,((e,i)=>{let s,r,n=e.$row;return!!e.$row&&(s=n.offset(),r=e.$row.cssMarginTop(),r<0&&(s.top+=Math.abs(r)),t.contains(s.left,s.top))}))}_findLastRowInViewport(e,t,i){let s=e.visibleRows;return t===s.length-1?s[t]:me.findFromForward(s,t,((e,t)=>{let r,n,o=s[t+1];return!o||(n=o.$row,!n||(r=pr.offsetBounds(n),!i.contains(r.x,r.y+r.height-1)))}))}_isEnabled(){return!this.field.tileMode}}class Qh extends U{constructor(e){super(),this.field=e,this.which=[Kr.ESC],this.stopPropagation=!0,this.renderingHints.render=!1}handle(e){this.field.toggle()}}class ed extends U{constructor(e){super(),this.field=e,this.which=[Kr.C],this.ctrl=!0,this.renderingHints.render=!1,this.inheritAccessibility=!1}handle(e){this.field.exportToClipboard()}}class td extends Zh{constructor(e){super(e),this.field=e,this.which=[Kr.SUBTRACT,Kr.LEFT],this.renderingHints.text="-",this.renderingHints.$drawingArea=(e,t)=>{let i=this.field.selectedRows[0];if(i)return i.$row}}_accept(e){let t=super._accept(e),i=this.field.selectedRows[0];return!!t&&(!!i&&(!(!i.expanded||!i._expandable)||!!i.parentRow))}handle(e){let t=this.field,i=this.field.selectedRows[0];if(!i)return;let s=!1;i.expanded&&i._expandable?(t.collapseRow(i),s=!0):i.parentRow&&(t.selectRow(i.parentRow),t.selectionHandler.lastActionRow=i.parentRow,s=!0),s&&!t.isFocused()&&t.focus()}}class id extends Zh{constructor(e){super(e),this.field=e,this.which=[Kr.ADD,Kr.RIGHT],this.renderingHints.text="+",this.renderingHints.$drawingArea=(e,t)=>{let i=this.field.selectedRows[0];if(i)return i.$row}}_accept(e){let t=super._accept(e),i=this.field.selectedRows[0];return!!t&&(!!i&&i._expandable)}handle(e){let t,i=this.field,s=this.field.selectedRows[0];s&&s._expandable&&(s.expanded?(t=this.field.visibleChildRows(s),i.selectRow(t[0]),i.selectionHandler.lastActionRow=t[0]):i.expandRow(s),i.isFocused()||i.focus())}}class sd extends U{constructor(e){super(),this.field=e,this.ctrl=!0,this.which=[Kr.A],this.renderingHints.offset=14,this.renderingHints.$drawingArea=(e,t)=>this.field.footer?this.field.footer._$infoSelection.find(".table-info-button"):null,this.inheritAccessibility=!1}handle(e){let t=this.field;t.toggleSelection(),t.selectionHandler.lastActionRow=null}}class rd extends U{constructor(e){super(),this.field=e,this.ctrl=!0,this.which=[Kr.ENTER],this.stopPropagation=!0,this.renderingHints.$drawingArea=(e,t)=>{let i=t._editPosition,s=this.field.visibleColumns().indexOf(i.column);return 0===s?i.row.$row:this.field.$cell(s,i.row.$row)}}_accept(e){if(!super._accept(e))return!1;if(this.field.cellEditorPopup)return!1;let t=this.field.selectedRows;if(!t.length)return!1;let i=this.field.nextEditableCellPosForRow(0,t[0]);return!!i&&(e._editPosition=i,!0)}handle(e){let t=e._editPosition;this.field.prepareCellEdit(t.column,t.row,!0)}}class nd extends U{constructor(e){super(),this.field=e,this.which=[Kr.F5],this.renderingHints.offset=14,this.renderingHints.$drawingArea=(e,t)=>this.field.footer?this.field.footer._$infoLoad.find(".table-info-button"):null}_accept(e){return super._accept(e)&&this.field.hasReloadHandler}handle(e){this.field.reload()}}class od extends U{constructor(e){super(),this.field=e,this.which=[Kr.SPACE],this.stopPropagation=!0,this.renderingHints.render=!1}_accept(e){return super._accept(e)&&this.field.checkable&&this.field.selectedRows.length}handle(e){let t=this.field.selectedRows.filter((e=>e.enabled)),i=t.some((e=>!e.checked));t.forEach((function(e){this.field.checkRow(e,i)}),this)}}class ld extends Zh{constructor(e){super(e),this.which=[Kr.UP],this.renderingHints.text="↑",this.renderingHints.$drawingArea=(e,t)=>{let i=this.firstRowBeforeSelection();if(i)return i.$row}}handle(e){let t,i,s=this.field,r=s.visibleRows,n=s.selectedRows,o=s.selectionHandler.lastActionRow,l=-1,a=-1;if(o&&(l=r.indexOf(o)),r.length>1&&(n.length>0||l>-1)){if(l<0&&(o=r.length===n.length?me.last(r):me.first(n),l=r.indexOf(o)),0===l)return;if(a=l-1,i=r[a],t=[i],e.shiftKey)if(s.isRowSelected(i)){t=[],me.pushAll(t,n);let e=s.selectionHandler.getMinMaxSelectionIndizes();x.isOneOf(l,e[0],e[1])&&me.remove(t,o)}else t=me.union(t,n),i=this._findLastSelectedRowBefore(s,a)}else t=[me.last(r)],i=t[0];s.selectionHandler.lastActionRow=i,s.selectRows(t,!0),s.scrollTo(i),s.isFocused()||s.focus()}}class ad extends Zh{constructor(e){super(e),this.which=[Kr.DOWN],this.renderingHints.text="↓",this.renderingHints.$drawingArea=(e,t)=>{let i=this.firstRowAfterSelection();if(i)return i.$row}}handle(e){let t,i,s=this.field,r=s.visibleRows,n=s.selectedRows,o=s.selectionHandler.lastActionRow,l=-1,a=-1;if(o&&(l=r.indexOf(o)),r.length>1&&(n.length>0||l>-1)){if(l<0&&(o=r.length===n.length?me.first(r):me.last(n),l=r.indexOf(o)),l===r.length-1)return;if(a=l+1,i=r[a],t=[i],e.shiftKey)if(s.isRowSelected(i)){t=[],me.pushAll(t,n);let e=s.selectionHandler.getMinMaxSelectionIndizes();x.isOneOf(l,e[0],e[1])&&me.remove(t,o)}else t=me.union(n,t),i=this._findLastSelectedRowAfter(s,a)}else t=[me.first(r)],i=t[0];s.selectionHandler.lastActionRow=i,s.selectRows(t,!0),s.scrollTo(i),s.isFocused()||s.focus()}}class hd extends Zh{constructor(e){super(e),this.which=[Kr.HOME],this.renderingHints.text="Home",this.renderingHints.$drawingArea=(e,t)=>{let i=this._viewportInfo();if(i.firstRow)return i.firstRow.$row}}handle(e){let t=this.field,i=t.visibleRows,s=me.first(i),r=t.selectedRows,n=[],o=t.selectionHandler.lastActionRow,l=-1;e.shiftKey&&r.length>0?(o&&(l=i.indexOf(o)),l<0&&(o=me.first(r),l=i.indexOf(o)),n=i.slice(0,l),n=me.union(n,r)):n=s,t.selectionHandler.lastActionRow=s,t.selectRows(n),t.scrollTo(s),t.isFocused()||t.focus()}}class dd extends Zh{constructor(e){super(e),this.which=[Kr.END],this.renderingHints.text="End",this.renderingHints.$drawingArea=(e,t)=>{let i=this._viewportInfo();if(i.lastRow)return i.lastRow.$row}}handle(e){let t=this.field,i=t.visibleRows,s=me.last(i),r=t.selectedRows,n=[],o=t.selectionHandler.lastActionRow,l=-1;e.shiftKey&&r.length>0?(o&&(l=i.indexOf(o)),l<0&&(o=me.last(r),l=i.indexOf(o)),n=i.slice(l+1,i.length),n=me.union(r,n)):n=s,t.selectionHandler.lastActionRow=s,t.selectRows(n),t.scrollTo(s),t.isFocused()||t.focus()}}class ud extends Zh{constructor(e){super(e),this.which=[Kr.PAGE_UP],this.renderingHints.text="PgUp",this.renderingHints.$drawingArea=(e,t)=>{let i=this._viewportInfo();if(i.firstRow)return i.firstRow.$row}}handle(e){let t,i=this.field,s=this._viewportInfo(),r=i.visibleRows,n=i.selectedRows,o=me.first(n),l=i.selectionHandler.lastActionRow,a=-1;(s.firstRow||(i.scrollPageUp(),s=this._viewportInfo(),s.firstRow))&&(l&&(a=r.indexOf(l)),a<0&&(l=o,a=r.indexOf(l)),(!(n.length>0&&l===s.firstRow)||n.length>1&&!e.shiftKey||(i.scrollPageUp(),s=this._viewportInfo(),s.firstRow))&&(e.shiftKey&&n.length>0?(t=r.slice(r.indexOf(s.firstRow),a),t=me.union(n,t)):t=[s.firstRow],i.selectionHandler.lastActionRow=s.firstRow,i.selectRows(t,!0),i.isFocused()||i.focus()))}}class cd extends Zh{constructor(e){super(e),this.which=[Kr.PAGE_DOWN],this.renderingHints.text="PgDn",this.renderingHints.$drawingArea=(e,t)=>{let i=this._viewportInfo();if(i.lastRow)return i.lastRow.$row}}handle(e){let t,i=this.field,s=this._viewportInfo(),r=i.visibleRows,n=i.selectedRows,o=me.last(n),l=i.selectionHandler.lastActionRow,a=-1;(s.lastRow||(i.scrollPageDown(),s=this._viewportInfo(),s.lastRow))&&(l&&(a=r.indexOf(l)),a<0&&(l=o,a=r.indexOf(l)),(!(n.length>0&&l===s.lastRow)||n.length>1&&!e.shiftKey||(i.scrollPageDown(),s=this._viewportInfo(),s.lastRow))&&(e.shiftKey&&n.length>0?(t=r.slice(a+1,r.indexOf(s.lastRow)+1),t=me.union(n,t)):t=[s.lastRow],i.selectionHandler.lastActionRow=s.lastRow,i.selectRows(t,!0),i.isFocused()||i.focus()))}}class pd{constructor(){}accept(e){}}class gd extends pd{constructor(){super()}init(e){if(this.session=e.session,!this.session)throw new Error("Session expected: "+this);this._init(e)}_init(e){n().extend(this,e)}createFilterAddedEventData(){return{filterType:this.filterType}}createFilterRemovedEventData(){return{filterType:this.filterType}}createKey(){return this.filterType}createLabel(){return""}accept(e){}equals(e){return e instanceof gd&&Ai.equals(this.createKey(),e.createKey())}}class md extends gd{constructor(){super(),this.filterType=md.TYPE,this.events=new dt,this.hasFilterFields=!1,this.availableValues=[],this.selectedValues=[]}axisGroup(){return Ja.NumberGroup.COUNT}calculate(){let e,t;this.matrix=new Ja(this.table,this.session),this.matrix.addData(this.column,Ja.NumberGroup.COUNT),this.xAxis=this.matrix.addAxis(this.column,this.axisGroup());let i,s,r,n,o=this.matrix.calculate();this.selectedValues.forEach((function(i){e=!1,this.xAxis.some((t=>this.xAxis.keyToDeterministicKey(t)===i&&(e=!0,!0)),this),e||(this.xAxis.push(this.xAxis.deterministicKeyToKey(i)),t=!0)}),this),t&&this.xAxis.reorder(),this.availableValues=[],this.xAxis.forEach((function(e){s=this.xAxis.keyToDeterministicKey(e),i=this.xAxis.format(e),n=null,null!==e&&this.xAxis.textIsIcon&&(n=i,i=null),r=o.getValue([e]),this.availableValues.push({key:s,text:i,iconId:n,htmlEnabled:!1,cssClass:null,count:r?r[0]:0})}),this)}createFilterAddedEventData(){let e=super.createFilterAddedEventData();return e.columnId=this.column.id,e.selectedValues=this.selectedValues,e}createFilterRemovedEventData(){let e=super.createFilterRemovedEventData();return e.columnId=this.column.id,e}createLabel(){if(this.column.headerHtmlEnabled){return qt.plainText(this.column.text).replace(/\n/g," ")}return this.column.text||""}createKey(){return this.column.id}accept(e){this.xAxis||this.calculate();let t=!0,i=!0,s=this.column.cellValueOrTextForCalculation(e),r=this.xAxis.normDeterministic(s);return this.tableFilterActive()&&(t=this.selectedValues.indexOf(r)>-1),this.fieldsFilterActive()&&(i=this.acceptByFields(s,r,e)),t&&i}filterActive(){return this.tableFilterActive()||this.fieldsFilterActive()}tableFilterActive(){return this.selectedValues.length>0}triggerFilterFieldsChanged(e){this.events.trigger("filterFieldsChanged",e)}on(e,t){this.events.on(e,t)}off(e,t){this.events.off(e,t)}acceptByFields(e,t,i){return!0}fieldsFilterActive(){return!1}addFilterFields(e){}modifyFilterFields(){}filterFieldsTitle(){return null}createComparator(){return vh.NUMERIC}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(md,"TYPE","column");class _d extends md{constructor(){super(),this.dateFrom=null,this.dateFromField=null,this.dateTo=null,this.dateToField=null,this.hasFilterFields=!0}_init(e){super._init(e),this.dateFrom=Le.parseJsonDate(this.dateFrom),this.dateTo=Le.parseJsonDate(this.dateTo)}axisGroup(){return this.column.hasDate?Ja.DateGroup.YEAR:Ja.DateGroup.NONE}createFilterAddedEventData(){let e=super.createFilterAddedEventData();return e.dateFrom=Le.toJsonDate(this.dateFrom),e.dateTo=Le.toJsonDate(this.dateTo),e}fieldsFilterActive(){return this.dateFrom||this.dateTo}acceptByFields(e,t,i){if(!e)return!1;let s=e.valueOf(),r=this.dateFrom?this.dateFrom.valueOf():null,n=this.dateTo?Le.shift(this.dateTo,0,0,1).valueOf()-1:null;if(r&&n)return s>=r&&s<=n;if(r)return s>=r;if(n)return s<=n;throw new Error("illegal state")}filterFieldsTitle(){return this.session.text("ui.DateRange")}addFilterFields(e){this.dateFromField=e.addFilterField("DateField","ui.from"),this.dateFromField.setValue(this.dateFrom),this.dateFromField.on("propertyChange",this._onPropertyChange.bind(this)),this.dateToField=e.addFilterField("DateField","ui.to"),this.dateToField.setValue(this.dateTo),this.dateToField.on("propertyChange",this._onPropertyChange.bind(this))}_onPropertyChange(e){"value"===e.propertyName&&(this.dateFrom=this.dateFromField.value,this.dateTo=this.dateToField.value,n().log.isDebugEnabled()&&n().log.debug("(DateColumnUserFilter#_onAcceptInput) dateFrom="+this.dateFrom+" dateTo="+this.dateTo),this.triggerFilterFieldsChanged(e))}modifyFilterFields(){this.dateFromField.$field.on("input","",n().debounce(this._onInput.bind(this))),this.dateToField.$field.on("input","",n().debounce(this._onInput.bind(this)))}_onInput(e){this.dateFromField.rendered&&(this.dateFrom=this.dateFromField.value,this.dateTo=this.dateToField.value,this.triggerFilterFieldsChanged(e))}}class fd extends md{constructor(){super(),this.numberFrom=null,this.numberFromField=null,this.numberTo=null,this.numberToField=null,this.hasFilterFields=!0}createFilterAddedEventData(){let e=super.createFilterAddedEventData();return e.numberFrom=this.numberFrom,e.numberTo=this.numberTo,e}fieldsFilterActive(){return Ai.isNumber(this.numberFrom)||Ai.isNumber(this.numberTo)}acceptByFields(e,t,i){let s=Ai.isNumber(this.numberFrom),r=Ai.isNumber(this.numberTo);return s&&r?t>=this.numberFrom&&t<=this.numberTo:s?t>=this.numberFrom:r?t<=this.numberTo:void 0}filterFieldsTitle(){return this.session.text("ui.NumberRange")}addFilterFields(e){this.numberFromField=e.addFilterField("NumberField","ui.from"),this.numberFromField.decimalFormat=this.column.decimalFormat,this.numberFromField.setValue(this.numberFrom),this.numberFromField.on("propertyChange",this._onPropertyChange.bind(this)),this.numberToField=e.addFilterField("NumberField","ui.to"),this.numberToField.decimalFormat=this.column.decimalFormat,this.numberToField.setValue(this.numberTo),this.numberToField.on("propertyChange",this._onPropertyChange.bind(this))}_onPropertyChange(e){"value"===e.propertyName&&(this.numberFrom=this.numberFromField.value,this.numberTo=this.numberToField.value,n().log.isDebugEnabled()&&n().log.debug("(NumberColumnUserFilter#_onPropertyChange) numberFrom="+this.numberFrom+" numberTo="+this.numberTo),this.triggerFilterFieldsChanged(e))}}class bd extends md{constructor(){super(),this.freeText=null,this.freeTextField=null,this.hasFilterFields=!0}createFilterAddedEventData(){let e=super.createFilterAddedEventData();return e.freeText=this.freeText,e}fieldsFilterActive(){return qt.hasText(this.freeText)}acceptByFields(e,t,i){let s=qt.nvl(this.freeText).toLowerCase();return qt.nvl(this.column.cellTextForTextFilter(i)).toLowerCase().indexOf(s)>-1}filterFieldsTitle(){return this.session.text("ui.FreeText")}addFilterFields(e){this.freeTextField=x.create("StringField",{parent:e,labelVisible:!1,statusVisible:!1,maxLength:100,displayText:this.freeText,updateDisplayTextOnModify:!0}),this.freeTextField.on("acceptInput",this._onAcceptInput.bind(this)),e.addField0(this.freeTextField)}_onAcceptInput(e){this.freeText=this.freeTextField.$field.val().trim(),n().log.isDebugEnabled()&&n().log.debug("(TextColumnUserFilter#_onAcceptInput) freeText="+this.freeText),this.triggerFilterFieldsChanged(e)}modifyFilterFields(){this.freeTextField.removeMandatoryIndicator()}}class yd extends gd{constructor(){super(),this.filterType=yd.TYPE}createFilterAddedEventData(){let e=super.createFilterAddedEventData();return e.text=this.text,e}createLabel(){return this.text}accept(e){let t=this.table.visibleColumns().reduce(((t,i)=>t+i.cellTextForTextFilter(e)+" "),""),i=scout.nvl(this.text,"");return i!==this._cachedText&&(this._cachedText=i,this._cachedTextLowerCase=i.toLowerCase()),t=t.trim().toLowerCase(),t.indexOf(this._cachedTextLowerCase)>-1}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(yd,"TYPE","text");class wd extends pd{constructor(e){super(),n().extend(this,e)}accept(e){return!e.parentRow}createLabel(){return this.table.session.text("ui.TileView")}}class Cd extends pd{constructor(e){super(),this.acceptedKeys=[],this.keySupplier=e||(e=>e.lookupRow&&e.lookupRow.key),this.active=!0,this.alwaysAcceptedRowIds=[]}accept(e){if(!this.active||me.empty(this.acceptedKeys)||-1!==this.alwaysAcceptedRowIds.indexOf(e.id))return!0;let t=this.keySupplier(e);return-1!==this.acceptedKeys.indexOf(t)}setAcceptedKeys(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.acceptedKeys=me.ensure(t)}setActive(e){this.active=e}setAlwaysAcceptedRowIds(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.alwaysAcceptedRowIds=t}}class vd extends pd{constructor(e){super(),this.acceptedText=null,this.textSupplier=e||(e=>e.lookupRow&&e.lookupRow.text),this.active=!0,this.alwaysAcceptedRowIds=[]}accept(e){if(!this.active||qt.empty(this.acceptedText)||-1!==this.alwaysAcceptedRowIds.indexOf(e.id))return!0;let t=this.textSupplier(e);return!qt.empty(t)&&qt.contains(t.toLowerCase(),this.acceptedText.toLowerCase())}setAcceptedText(e){this.acceptedText=e}setActive(e){this.active=e}setAlwaysAcceptedRowIds(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.alwaysAcceptedRowIds=t}}class Td extends Y{constructor(){super(),this.preselectedTime=null,this.selectedTime=null,this.resolution=null,this.$scrollable=null}_init(e){super._init(e),this.resolution=e.timeResolution}_render(){this.$container=this.$parent.appendDiv("time-picker").toggleClass("touch-only",Qe.get().supportsOnlyTouch()),this.$parent.appendDiv("time-picker-separator"),this.htmlComp=fr.install(this.$container,this.session),this._renderTimeSelection(),this._installScrollbars()}_renderTimeSelection(){let e,t,i,s=Le.trunc(new Date),r=Le.ceil(new Date,this.resolution),n=0,o=this.$parent.makeDiv("day-table");for(e=0;e<24;e++){s.setMinutes(0),n=s.getHours(),t=o.appendDiv("hour-row");let e=t.appendDiv("cell hours").data("time",new Date(s)).on("click",this._onTimeClick.bind(this));for(r.getHours()===s.getHours()&&e.addClass("now"),e.appendSpan("text").text(Le.format(s,this.session.locale,"HH"));n===s.getHours();)i=t.appendDiv("cell minutes").data("time",new Date(s)).on("click",this._onTimeClick.bind(this)),i.appendSpan("text").text(Le.format(s,this.session.locale,"mm")),Le.isSameTime(r,s)&&i.addClass("now"),s.setMinutes(s.getMinutes()+this.resolution)}return o.appendTo(this.$container),o}_installScrollbars(e){this._uninstallScrollbars(),super._installScrollbars({axis:"y"})}_scrollTo(e){e&&(this.parent instanceof Pd?setTimeout((()=>{this.rendered&&Yn.scrollTo(this.$container,e,"center")})):Yn.scrollTo(this.$container,e,"center"))}preselectTime(e){e&&this.setSelectedTime(null),this.setPreselectedTime(e)}setPreselectedTime(e){this.setProperty("preselectedTime",e)}_renderPreselectedTime(){let e;this.$container.find(".cell").each(((t,i)=>{let s=n()(i),r=s.data("time");s.removeClass("preselected"),this.preselectedTime&&(s.hasClass("hours")&&this.preselectedTime.getHours()===r.getHours()||s.hasClass("minutes")&&Le.isSameTime(this.preselectedTime,r))&&(s.addClass("preselected"),e=s)})),this._scrollTo(e)}selectTime(e){e&&this.setPreselectedTime(null),this.setSelectedTime(e)}setSelectedTime(e){this.setProperty("selectedTime",e)}_renderSelectedTime(){let e;this.$container.find(".cell").each(((t,i)=>{let s=n()(i),r=s.data("time");s.removeClass("selected"),this.selectedTime&&(s.hasClass("hours")&&this.selectedTime.getHours()===r.getHours()||s.hasClass("minutes")&&Le.isSameTime(this.selectedTime,r))&&(s.addClass("selected"),e=s)})),this._scrollTo(e)}shiftViewDate(e,t,i){let s=this.viewDate;s=Le.shift(s,e,t,i),this.showDate(s)}shiftSelectedTime(e,t,i){let s=this.preselectedTime;this.selectedTime&&(s=Le.shiftTime(this.selectedTime,e,t*this.resolution,i)),s&&this.selectTime(this._snapToTimeGrid(s))}_snapToTimeGrid(e){if(!e)return e;let t=e.getMinutes();return t=parseInt(t/this.resolution)*this.resolution,e.setMinutes(t),e}_findNextAllowedDate(e,t,i){let s,r,n=e+t+i>0?1:-1,o=this.selectedDate||Le.trunc(new Date);if(0!==e?o=Le.shift(o,e,0,0):0!==t&&(o=Le.shift(o,0,t,0)),1===n){for(s=0;s<this.allowedDates.length;s++)if(r=this.allowedDates[s],Le.compare(o,r)<0)return r}else if(-1===n)for(s=this.allowedDates.length-1;s>=0;s--)if(r=this.allowedDates[s],Le.compare(o,r)>0)return r;return null}_onNavigationMouseDown(e){let t=n()(e.currentTarget).data("shift");this.shiftViewDate(0,t,0)}_onTimeClick(e){let t=n()(e.currentTarget),i=new Date(t.data("time"));this.selectTime(i),this.trigger("timeSelect",{time:i})}_onMouseWheel(e){let t=((e=e.originalEvent||this.$container.window(!0).event.originalEvent).wheelDelta?e.wheelDelta/10:3*-e.detail)>=0?-1:1;this.shiftViewDate(0,t,0),e.preventDefault()}}class Sd extends Ao{constructor(){super(),this.windowPaddingX=0,this.windowPaddingY=0}_init(e){e.scrollType=e.scrollType||"layoutAndPosition",e.withFocusContext=!1,super._init(e),this.picker=x.create("TimePicker",{parent:this,timeResolution:e.timeResolution})}_createLayout(){return new xd(this)}_render(){this.$container=this.$parent.appendDiv("popup time-picker-popup"),this.$container.toggleClass("alternative",this.field.fieldStyle===iu.FieldStyle.ALTERNATIVE),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout()),this.htmlComp.validateRoot=!0,this.picker.render()}getTimePicker(){return this.picker}_isMouseDownOnAnchor(e){return this.field.$timeField.isOrHas(e.target)||this.field.$timeFieldIcon.isOrHas(e.target)||this.field.$timeClearIcon&&this.field.$timeClearIcon.isOrHas(e.target)}}class xd extends Ro{constructor(e){super(),this.popup=e,this.doubleCalcPrefSize=!1}layout(e){let t,i=this.popup.htmlComp,s=this.popup.picker.htmlComp;super.layout(e),t=i.size().subtract(i.insets()).subtract(s.margins()),s.setSize(t),this.popup.htmlComp.layouted&&this.popup.position()}preferredLayoutSize(e){let t,i=this.popup.htmlComp,s=this.popup.picker.htmlComp;return t=s.prefSize().add(i.insets()).add(s.margins()),t}}class Pd extends Io{constructor(){super()}_init(e){super._init(e),this._field.on("acceptInput",this._onFieldAcceptInput.bind(this)),this.addCssClass("time-picker-touch-popup")}_initWidget(e){this._widget=x.create("TimePicker",{parent:this,timeResolution:e.timeResolution})}_render(){super._render(),this._field.$container.addClass("time")}getTimePicker(){return this._widget}_onFieldAcceptInput(e){this._touchField.setDisplayText(e.displayText),this._touchField.setErrorStatus(e.errorStatus),!!e.errorStatus&&e.errorStatus.containsStatus(Bi)||this._touchField.setValue(e.value),this._touchField._triggerAcceptInput()}_acceptInput(){this._field.acceptTime(),this.close()}}function Fd(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Ed extends Y{constructor(){super(),this.toggleBreadcrumbStyleEnabled=!1,this.breadcrumbTogglingThreshold=null,this.autoCheckChildren=!1,this.checkable=!1,this.checkableStyle=Ed.CheckableStyle.CHECKBOX_TREE_NODE,this.displayStyle=Ed.DisplayStyle.DEFAULT,this.dropType=0,this.dropMaximumSize=at.DEFAULT_DROP_MAXIMUM_SIZE,this.lazyExpandingEnabled=!0,this.menus=[],this.contextMenu=null,this.menuBar=null,this.keyStrokes=[],this.multiCheck=!0,this.nodes=[],this.nodesMap={},this.nodePaddingLevelCheckable=23,this.nodePaddingLevelNotCheckable=18,this.nodePaddingLeft=null,this.nodeCheckBoxPaddingLeft=29,this.nodeControlPaddingLeft=null,this.nodePaddingLevel=this.nodePaddingLevelNotCheckable,this.scrollToSelection=!1,this.scrollTop=0,this.scrollTopHistory=[],this.selectedNodes=[],this.prevSelectedNode=null,this.filters=[],this.textFilterEnabled=!0,this.filterSupport=this._createFilterSupport(),this.filteredElementsDirty=!1,this.filterAnimated=!0,this.checkedNodes=[],this.groupedNodes={},this.visibleNodesFlat=[],this.visibleNodesMap={},this._addWidgetProperties(["menus","keyStrokes"]),this._additionalContainerClasses="",this._doubleClickSupport=new et,this._$animationWrapper=null,this._$expandAnimationWrappers=[],this._filterMenusHandler=this._filterMenus.bind(this),this._popupOpenHandler=this._onDesktopPopupOpen.bind(this),this._inSelectionPathList={},this.viewRangeRendered=new Mi(0,0),this.viewRangeSize=20,this.startAnimationFunc=function(){this.runningAnimations++}.bind(this),this.runningAnimations=0,this.runningAnimationsFinishFunc=function(){this.runningAnimations--,this.runningAnimations<=0&&(this.runningAnimations=0,this._renderViewportBlocked=!1,this.invalidateLayoutTree())}.bind(this),this.nodeHeight=0,this.nodeWidth=0,this.maxNodeWidth=0,this.nodeWidthDirty=!1,this.$data=null,this._scrolldirections="both",this.requestFocusOnNodeControlMouseDown=!0,this._$mouseDownNode=null}_init(e){super._init(e),this.setFilters(this.filters,!1),this.addFilter(new Rd(this),!1),this.breadcrumbFilter=new Md(this),this.displayStyle===Ed.DisplayStyle.BREADCRUMB&&this.addFilter(this.breadcrumbFilter,!1),this.initialTraversing=!0,this._setCheckable(this.checkable),this._ensureTreeNodes(this.nodes),this._initNodes(this.nodes),this.initialTraversing=!1,this.menuBar=x.create("MenuBar",{parent:this,position:kl.Position.BOTTOM,menuOrder:new _l(this.session,"Tree"),menuFilter:this._filterMenusHandler,cssClass:"bounded"}),this._updateItemPath(!0),this._setDisplayStyle(this.displayStyle),this._setKeyStrokes(this.keyStrokes),this._setMenus(this.menus)}_initNodes(e,t){e||(e=this.nodes),Ed.visitNodes(this._initTreeNode.bind(this),e,t),"string"==typeof this.selectedNodes[0]&&(this.selectedNodes=this._nodesByIds(this.selectedNodes)),this._updateSelectionPath(),e.forEach((e=>this.applyFiltersForNode(e))),Ed.visitNodes(((e,t)=>this._addToVisibleFlatList(e,!1)),e,t)}_ensureTreeNodes(e){let t,i;for(t=0;t<e.length;t++)i=e[t],i.childNodeIndex=x.nvl(i.childNodeIndex,t),i instanceof Ad||(e[t]=this._createTreeNode(i))}_createTreeNode(e){return(e=x.nvl(e,{})).parent=this,x.create("TreeNode",e)}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this._initTreeKeyStrokeContext()}_initTreeKeyStrokeContext(){let e=Yr.NONE;this.keyStrokeContext.registerKeyStroke([new Id(this),new Ld(this,e),new Bd(this,e),new Nd(this,e),new Hd(this,e),new Od(this,e),new Vd(this,e)])}_setMenus(e){this.updateKeyStrokes(e,this.menus),this._setProperty("menus",e),this._updateMenuBar()}_updateMenuBar(){let e=this._filterMenus(this.menus,hl.MENU_BAR,!1,!0);this.menuBar.setMenuItems(e);let t=this._filterMenus(this.menus,hl.CONTEXT_MENU,!0);this.contextMenu&&this.contextMenu.updateMenuItems(t)}_setKeyStrokes(e){this.updateKeyStrokes(e,this.keyStrokes),this._setProperty("keyStrokes",e)}_resetTreeNode(e,t){e.reset()}isSelectedNode(e){return this.selectedNodes.indexOf(e)>-1}_updateSelectionPath(){let e=this.selectedNodes[0];if(!e)return;this._inSelectionPathList[e.id]=!0,e.childNodes.forEach((e=>{this._inSelectionPathList[e.id]=!0}));let t=e.parentNode;for(;t;)this._inSelectionPathList[t.id]=!0,t=t.parentNode}_initTreeNode(e,t){this.nodesMap[e.id]=e,t&&(e.parentNode=t,e.level=e.parentNode.level+1),e.checked&&this.checkedNodes.push(e),this._initTreeNodeInternal(e,t),this._updateMarkChildrenChecked(e,!0,e.checked),e.initialized=!0}_applyNodeDefaultValues(e){We.applyTo(e,"TreeNode")}_initTreeNodeInternal(e,t){this._applyNodeDefaultValues(e)}_destroy(){super._destroy(),this.visitNodes(this._destroyTreeNode.bind(this)),this.nodes=[]}_destroyTreeNode(e){delete this.nodesMap[e.id],this._removeFromFlatList(e,!1),e.destroy(),this._onNodeDeleted&&this._onNodeDeleted(e)}visitNodes(e,t){return Ed.visitNodes(e,this.nodes,t)}_render(){this.$container=this.$parent.appendDiv("tree"),this._additionalContainerClasses&&this.$container.addClass(this._additionalContainerClasses);let e=new $d(this);this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(e),this._renderData(),this.menuBar.render(),this.session.desktop.on("popupOpen",this._popupOpenHandler),this._renderCheckableStyle()}_renderData(){this.$data=this.$container.appendDiv("tree-data").on("contextmenu",this._onContextMenu.bind(this)).on("mousedown",".tree-node",this._onNodeMouseDown.bind(this)).on("mouseup",".tree-node",this._onNodeMouseUp.bind(this)).on("dblclick",".tree-node",this._onNodeDoubleClick.bind(this)).on("mousedown",".tree-node-control",this._onNodeControlMouseDown.bind(this)).on("mouseup",".tree-node-control",this._onNodeControlMouseUp.bind(this)).on("dblclick",".tree-node-control",this._onNodeControlDoubleClick.bind(this)),fr.install(this.$data,this.session),this.isHorizontalScrollingEnabled()&&this.$data.toggleClass("scrollable-tree",!0),this._installScrollbars({axis:this._scrolldirections}),this._installNodeTooltipSupport(),this._updateNodeDimensions(),this._renderDisplayStyle(),this._renderViewport()}_renderProperties(){super._renderProperties(),this._renderTextFilterEnabled()}_postRender(){super._postRender(),this._renderSelection()}_remove(){this.session.desktop.off("popupOpen",this._popupOpenHandler),this.filterSupport.remove(),this._$animationWrapper&&this._$animationWrapper.stop(!1,!0),this.visitNodes(this._resetTreeNode.bind(this)),at.uninstallDragAndDropHandler(this),this._uninstallNodeTooltipSupport(),this.$fillBefore=null,this.$fillAfter=null,this.$data=null,this.viewRangeRendered=new Mi(0,0),super._remove()}isHorizontalScrollingEnabled(){return"both"===this._scrolldirections||"x"===this._scrolldirections}isTreeNodeCheckEnabled(){return this.checkableStyle===Ed.CheckableStyle.CHECKBOX_TREE_NODE}_onScroll(){let e=this.scrollToSelection;this.scrollToSelection=!1;let t=this.$data[0].scrollTop,i=this.$data[0].scrollLeft;this.scrollTop!==t&&this._renderViewport(),this.scrollTop=t,this.scrollLeft=i,this.scrollToSelection=e}setScrollTop(e){this.setProperty("scrollTop",e),this.rendered&&(this._renderViewport(),this._renderScrollTop())}_renderScrollTop(){this.rendering||Yn.scrollTop(this.$data,this.scrollTop)}get$Scrollable(){return this.$data}_renderViewport(){if(this.runningAnimations>0||this._renderViewportBlocked)return;if(!this.$container.isEveryParentVisible())return;let e=this._calculateCurrentViewRange();this._renderViewRange(e)}_calculateCurrentViewRange(){let e,t=this.$data[0].scrollTop;return e=0===this.$data[0].scrollHeight-this.$data[0].clientHeight&&this.visibleNodesFlat.length>0?this.visibleNodesFlat[0]:this._nodeAtScrollTop(t),this._calculateViewRangeForNode(e)}_rerenderViewport(){this._renderViewportBlocked||(this._removeRenderedNodes(),this._renderFiller(),this._updateDomNodeWidth(),this._renderViewport())}_removeRenderedNodes(){this.$data.find(".tree-node").each(((e,t)=>{let i=n()(t),s=i.data("node");i.hasClass("hiding")||this._removeNode(s)})),this.viewRangeRendered=new Mi(0,0)}_renderViewRangeForNode(e){let t=this._calculateViewRangeForNode(e);this._renderViewRange(t)}_renderNodesInRange(e){let t=!1,i=this.visibleNodesFlat;if(0===i.length)return;if(e=new Mi(0,i.length).intersect(e),this.viewRangeRendered.size()>0&&!e.intersect(this.viewRangeRendered).equals(new Mi(0,0)))throw new Error("New range must not intersect with existing.");e.to<=this.viewRangeRendered.from&&(t=!0);let s=this.viewRangeRendered.union(e);if(2===s.length)throw new Error("Can only prepend or append rows to the existing range. Existing: "+this.viewRangeRendered+". New: "+s);this.viewRangeRendered=s[0];let r=this.ensureRangeVisible(e);n().log.isTraceEnabled()&&n().log.trace(r+" new nodes rendered from "+e)}ensureRangeVisible(e){let t=this.visibleNodesFlat,i=[];for(let s=e.from;s<e.to;s++){let e=t[s];e.attached||i.push(e)}return this._insertNodesInDOM(i),i.length}_renderFiller(){this.$fillBefore||(this.$fillBefore=this.$data.prependDiv("tree-data-fill"));let e=this._calculateFillerDimension(new Mi(0,this.viewRangeRendered.from));this.$fillBefore.cssHeight(e.height),this.isHorizontalScrollingEnabled()&&(this.$fillBefore.cssWidth(e.width),this.maxNodeWidth=Math.max(e.width,this.maxNodeWidth)),n().log.isTraceEnabled()&&n().log.trace("FillBefore height: "+e.height),this.$fillAfter||(this.$fillAfter=this.$data.appendDiv("tree-data-fill"));let t={height:0,width:0};t=this._calculateFillerDimension(new Mi(this.viewRangeRendered.to,this.visibleNodesFlat.length)),this.$fillAfter.cssHeight(t.height),this.isHorizontalScrollingEnabled()&&(this.$fillAfter.cssWidth(t.width),this.maxNodeWidth=Math.max(t.width,this.maxNodeWidth)),n().log.isTraceEnabled()&&n().log.trace("FillAfter height: "+t.height)}_calculateFillerDimension(e){let t=0;this.rendered&&(t=this.$data.width());let i={height:0,width:Math.max(t,this.maxNodeWidth)};for(let t=e.from;t<e.to;t++){let e=this.visibleNodesFlat[t];i.height+=this._heightForNode(e),i.width=Math.max(i.width,this._widthForNode(e))}return i}_removeNodesInRange(e){let t,i,s,r,o=0,l=this.visibleNodesFlat;t=l[(e=new Mi(0,l.length).intersect(e)).from],i=l[e.to];let a=this.viewRangeRendered.subtract(e);if(2===a.length)throw new Error("Can only remove nodes at the beginning or end of the existing range. "+this.viewRangeRendered+". New: "+a);for(this.viewRangeRendered=a[0],r=e.from;r<e.to;r++)s=l[r],this._removeNode(s),o++;n().log.isTraceEnabled()&&n().log.trace(o+" nodes removed from "+e+".")}_removeNode(e){let t=e.$node;t&&(t.hasClass("hiding")||(t.detach(),e.attached=!1))}_renderViewRange(e){if(e.from!==this.viewRangeRendered.from||e.to!==this.viewRangeRendered.to||this.viewRangeDirty){if(this.viewRangeDirty)this.viewRangeRendered=e,this.ensureRangeVisible(e);else{let t=e.subtract(this.viewRangeRendered),i=this.viewRangeRendered.subtract(e),s=new Mi(0,this.visibleNodesFlat.length);i.forEach((t=>{this._removeNodesInRange(t),s.to<t.to&&(this.viewRangeRendered=e)})),t.forEach((e=>{this._renderNodesInRange(e)}))}if(this.viewRangeRendered.size()>0){let e=this.visibleNodesFlat,t=e[this.viewRangeRendered.from],i=e[this.viewRangeRendered.to-1];if(this.viewRangeDirty){let e=t.$node.prevAll(".tree-node"),s=i.$node.nextAll(".tree-node");this._cleanupNodes(e),this._cleanupNodes(s)}if(!t.attached||!i.attached)throw new Error("Nodes not rendered as expected. "+this.viewRangeRendered+". First: "+pr.debugOutput(t.$node)+". Last: "+pr.debugOutput(i.$node)+". Length: visibleNodesFlat="+this.visibleNodesFlat.length+" nodes="+this.nodes.length+" nodesMap="+Object.keys(this.nodesMap).length)}this._postRenderViewRange(),this.viewRangeDirty=!1}else this.nodeWidthDirty&&(this._renderFiller(),this._updateDomNodeWidth())}_postRenderViewRange(){this._renderFiller(),this._updateDomNodeWidth(),this._renderSelection()}_visibleNodesInViewRange(){return this.visibleNodesFlat.slice(this.viewRangeRendered.from,this.viewRangeRendered.to)}_updateDomNodeWidth(){if(!this.isHorizontalScrollingEnabled())return;if(!this.rendered||!this.nodeWidthDirty)return;let e=this._visibleNodesInViewRange(),t=this.maxNodeWidth;t=e.reduce(((e,t)=>Math.max(t.width,e)),x.nvl(t,0)),e.forEach((e=>{e.$node.cssWidth(t)})),this.nodeWidthDirty=!1}_cleanupNodes(e){for(let t=0;t<e.length;t++)this._removeNode(e.eq(t).data("node"))}_nodeAtScrollTop(e){let t,i=0;this.visibleNodesFlat.some(((s,r)=>(i+=this._heightForNode(s),e<i&&(t=s,!0))));let s=this.visibleNodesFlat.length;return!t&&s>0&&(t=this.visibleNodesFlat[s-1]),t}_heightForNode(e){let t=0;return t=e.height?e.height:this.nodeHeight,t}_widthForNode(e){let t=0;return t=e.width?e.width:this.nodeWidth,t}_calculateViewRangeForNode(e){let t,i=new Mi,s=Math.floor(this.viewRangeSize/Ed.VIEW_RANGE_DIVISOR),r=this.visibleNodesFlat.indexOf(e);return i.from=Math.max(r-s,0),i.to=Math.min(i.from+this.viewRangeSize,this.visibleNodesFlat.length),e&&-1!==r?(t=this.viewRangeSize-i.size(),t>0&&(i.from=Math.max(i.to-this.viewRangeSize,0)),i):i}calculateViewRangeSize(){if(this._updateNodeDimensions(),0===this.nodeHeight)throw new Error("Cannot calculate view range with nodeHeight = 0");let e=Ed.VIEW_RANGE_DIVISOR/2,t=Math.ceil(this.$data.outerHeight()/this.nodeHeight)*e;return Math.max(Ed.VIEW_RANGE_DIVISOR,t)}setViewRangeSize(e){this.viewRangeSize!==e&&(this._setProperty("viewRangeSize",e),this.rendered&&this._renderViewport())}_updateNodeDimensions(){let e=this._createTreeNode(),t=this._renderNode(e).appendTo(this.$data);if(this.nodeHeight=t.outerHeight(!0),this.isHorizontalScrollingEnabled()){let e=this.nodeWidth;this.nodeWidth=t.outerWidth(!0),e!==this.nodeWidth&&(this.viewRangeDirty=!0)}e.reset()}updateNodeHeights(){this.visibleNodesFlat.forEach((e=>{e.attached?e.height=e.$node.outerHeight(!0):e.height=null}))}removeAllNodes(){this._removeNodes(this.nodes)}_removeNodes(e,t){0!==e.length&&(e.forEach((function(e){this._removeFromFlatList(e,!0),e.childNodes.length>0&&this._removeNodes(e.childNodes,e),e.$node&&(this._$animationWrapper&&this._$animationWrapper.find(e.$node).length>0&&this._$animationWrapper.stop(!1,!0),e.reset())}),this),me.ensure(t).forEach((e=>{e&&e.$node&&0===e.childNodes.length&&e.$node.removeClass("expanded lazy")})),this.rendered&&(this.viewRangeDirty=!0,this.invalidateLayoutTree()))}_renderNode(e){let t=this._computeNodePaddingLeft(e);return e.render(this.$container,t,this.checkable,this.enabledComputed),e.$node}_removeMenus(){}_filterMenus(e,t,i,s){return al.filterAccordingToSelection("Tree",this.selectedNodes.length,e,t,i,s)}_renderEnabled(){super._renderEnabled(),this._installOrUninstallDragAndDropHandler();let e=this.enabledComputed;this.$data.setEnabled(e),this.$container.setTabbableOrFocusable(e)}_renderDisabledStyle(){super._renderDisabledStyle(),this._renderDisabledStyleInternal(this.$data)}setCheckable(e){this.setProperty("checkable",e)}_setCheckable(e){this._setProperty("checkable",e),this._updateNodePaddingLevel()}_updateNodePaddingLevel(){this.isBreadcrumbStyleActive()?this.nodePaddingLevel=0:this.checkable?this.nodePaddingLevel=this.nodePaddingLevelCheckable:this.nodePaddingLevel=this.nodePaddingLevelNotCheckable}setCheckableStyle(e){this.setProperty("checkableStyle",e)}_renderCheckable(){let e=e=>Boolean(e.$node),t=i=>{let s=i.$node,r=s.children(".tree-node-control"),n=s.children(".tree-node-checkbox");i._updateControl(r,this),this.checkable?0===n.length&&i._renderCheckbox():n.remove(),s.cssPaddingLeft(this._computeNodePaddingLeft(i)),i.childNodes&&i.childNodes.filter(e).forEach(t)};this.nodes.filter(e).forEach(t)}_renderDisplayStyle(){this.$container.toggleClass("breadcrumb",this.isBreadcrumbStyleActive()),this.nodePaddingLeft=null,this.nodeControlPaddingLeft=null,this._updateNodePaddingsLeft(),this.invalidateLayoutTree()}_renderExpansion(e,t){let i={expandLazyChanged:!1,expansionChanged:!1};n().extend(i,t);let s=e.$node,r=e.expanded;if(s&&0!==s.length){if(0===e.childNodes.length)return!0;s.toggleClass("lazy",r&&e.expandedLazy),(i.expansionChanged||i.expandLazyChanged)&&(r?s.addClass("expanded"):s.removeClass("expanded"))}}_renderSelection(){0===this.selectedNodes.length&&this.nodes.forEach((e=>{e.rendered&&e.$node.addClass("child-of-selected")}),this),this.$container.toggleClass("no-nodes-selected",0===this.selectedNodes.length),this.selectedNodes.forEach((function(e){if(!this.visibleNodesMap[e.id])return;let t=e.parentNode;for(t&&t.rendered&&t.$node.addClass("parent-of-selected");t;)t.rendered&&t.$node.addClass("ancestor-of-selected"),t=t.parentNode;e.expanded&&e.childNodes.forEach((e=>{e.rendered&&e.$node.addClass("child-of-selected")}),this),e.rendered&&e.$node.select(!0)}),this);for(let e=this.viewRangeRendered.from;e<this.viewRangeRendered.to&&!(e>=this.visibleNodesFlat.length);e++){let t=this.visibleNodesFlat[e];t&&t.rendered&&t.$node.toggleClass("group",Boolean(this.groupedNodes[t.id]))}this._updateNodePaddingsLeft(),this._highlightPrevSelectedNode(),this.scrollToSelection&&this.revealSelection()}_renderCheckableStyle(){this.$data.toggleClass("checkable",this.isTreeNodeCheckEnabled())}_highlightPrevSelectedNode(){if(this.isBreadcrumbStyleActive()&&this.prevSelectedNode&&this.prevSelectedNode.rendered&&!this.prevSelectedNode.prevSelectionAnimationDone)return this.prevSelectedNode.$node.hasClass("animate-prev-selected")?this:void this.prevSelectedNode.$node.addClassForAnimation("animate-prev-selected").oneAnimationEnd((()=>{this.prevSelectedNode.prevSelectionAnimationDone=!0}))}_removeSelection(){0===this.selectedNodes.length&&this.nodes.forEach((e=>{e.rendered&&e.$node.removeClass("child-of-selected")}),this),this.prevSelectedNode&&this.prevSelectedNode.rendered&&this.prevSelectedNode.$node.removeClass("animate-prev-selected"),this.selectedNodes.forEach(this._removeNodeSelection,this)}_removeNodeSelection(e){e.rendered&&e.$node.select(!1);let t=e.parentNode;for(t&&t.rendered&&t.$node.removeClass("parent-of-selected");t&&t.rendered;)t.$node.removeClass("ancestor-of-selected"),t=t.parentNode;e.expanded&&e.childNodes.forEach((e=>{e.rendered&&e.$node.removeClass("child-of-selected")}),this)}setDropType(e){this.setProperty("dropType",e)}_renderDropType(){this._installOrUninstallDragAndDropHandler()}setDropMaximumSize(e){this.setProperty("dropMaximumSize",e)}_installOrUninstallDragAndDropHandler(){at.installOrUninstallDragAndDropHandler({target:this,doInstall:()=>this.dropType&&this.enabledComputed,selector:".tree-data,.tree-node",onDrop:e=>this.trigger("drop",e),dropType:()=>this.dropType,additionalDropProperties:e=>{let t=n()(e.currentTarget),i={nodeId:""};if(t.hasClass("tree-node")){let e=t.data("node");i.nodeId=e.id}return i}})}_updateMarkChildrenChecked(e,t,i,s){if(!this.checkable)return;if(s){let t=!1;for(let s=0;s<e.childNodes.length>0;s++){let r=e.childNodes[s];if(r.checked||r.childrenChecked){e.childrenChecked=!0,i=!0,t=!0,this.rendered&&e.$node&&e.$node.children(".tree-node-checkbox").children(".check-box").toggleClass("children-checked",!0);break}}t||(e.childrenChecked=!1,this.rendered&&e.$node&&e.$node.children(".tree-node-checkbox").children(".check-box").toggleClass("children-checked",!1))}if(!e.parentNode||e.parentNode.checked)return;let r=!1;if(!i&&!t){let t=!1;for(let i=0;i<e.parentNode.childNodes.length>0;i++){let s=e.parentNode.childNodes[i];if(s.checked||s.childrenChecked){t=!0;break}}t!==e.parentNode.childrenChecked&&(e.parentNode.childrenChecked=t,r=!0)}i&&!e.parentNode.childrenChecked&&(e.parentNode.childrenChecked=!0,r=!0),r&&(this._updateMarkChildrenChecked(e.parentNode,t,i),this.rendered&&e.parentNode.$node&&(i?e.parentNode.$node.children(".tree-node-checkbox").children(".check-box").toggleClass("children-checked",!0):e.parentNode.$node.children(".tree-node-checkbox").children(".check-box").toggleClass("children-checked",!1)))}_installNodeTooltipSupport(){yo.install(this.$data,{parent:this,selector:".tree-node",text:this._nodeTooltipText.bind(this),arrowPosition:50,arrowPositionUnit:"%",nativeTooltip:!Qe.get().isCustomEllipsisTooltipPossible()})}_uninstallNodeTooltipSupport(){yo.uninstall(this.$data)}_nodeTooltipText(e){let t=e.data("node");return t.tooltipText?t.tooltipText:this._isTruncatedNodeTooltipEnabled()&&e.isContentTruncated()?t.$text.text():void 0}_isTruncatedNodeTooltipEnabled(){return!0}setDisplayStyle(e){this.displayStyle!==e&&(this._renderViewportBlocked=!0,this._setDisplayStyle(e),this.rendered&&this._renderDisplayStyle(),this._renderViewportBlocked=!1)}_setDisplayStyle(e){if(this._setProperty("displayStyle",e),this.displayStyle===Ed.DisplayStyle.BREADCRUMB){if(this.selectedNodes.length>0){let e=this.selectedNodes[0];e.expanded||this.expandNode(e)}this.filterAnimated=!1,this.addFilter(this.breadcrumbFilter,!1),this.filterVisibleNodes()}else this.removeFilter(this.breadcrumbFilter),this.filterAnimated=!0;this._updateNodePaddingLevel()}_updateNodePaddingsLeft(){this.$nodes().each(((e,t)=>{let i=n()(t),s=i.data("node"),r=this._computeNodePaddingLeft(s);i.cssPaddingLeft(Ai.isNullOrUndefined(r)?"":r),s._updateControl(i.children(".tree-node-control"),this)}))}setBreadcrumbStyleActive(e){e?this.setDisplayStyle(Ed.DisplayStyle.BREADCRUMB):this.setDisplayStyle(Ed.DisplayStyle.DEFAULT)}isNodeInBreadcrumbVisible(e){return void 0!==this._inSelectionPathList[e.id]&&this._inSelectionPathList[e.id]}isBreadcrumbStyleActive(){return this.displayStyle===Ed.DisplayStyle.BREADCRUMB}setToggleBreadcrumbStyleEnabled(e){this.setProperty("toggleBreadcrumbStyleEnabled",e)}setBreadcrumbTogglingThreshold(e){this.setProperty("breadcrumbTogglingThreshold",e)}expandNode(e,t){this.setNodeExpanded(e,!0,t)}collapseNode(e,t){this.setNodeExpanded(e,!1,t)}collapseAll(){this.rebuildSuppressed=!0,this.visitNodes((e=>{this.collapseNode(e)})),this.rendered&&this._rerenderViewport(),this.rebuildSuppressed=!1}setNodeExpanded(e,t,i){let s=(i=i||{}).lazy;Ai.isNullOrUndefined(s)&&(s=e.expanded===t?e.expandedLazy:!!t&&e.lazyExpandingEnabled);let r=x.nvl(i.renderAnimated,!0);if(this.lazyExpandingEnabled||(s=!1),this.isBreadcrumbStyleActive()&&!t&&this.selectedNodes.indexOf(e)>-1)return void this.setNodeExpanded(e,!0,i);if(i.collapseChildNodes){let t=Ai.valueCopy(i);t.renderExpansion=!1,e.childNodes.forEach((e=>{e.expanded&&this.collapseNode(e,t)}))}let n={expansionChanged:!1,expandLazyChanged:!1};e.expanded===t&&e.expandedLazy===s||(n.expansionChanged=e.expanded!==t,n.expandLazyChanged=e.expandedLazy!==s,e.expanded=t,e.expandedLazy=s,n.expansionChanged?e.parentNode?this._rebuildParent(e.parentNode,i):e.filterAccepted?this._addToVisibleFlatList(e,!1):this._removeFromFlatList(e,!1):n.expandLazyChanged&&this.applyFiltersForNode(e,!1,r),this.groupedNodes[e.id]&&this._updateItemPath(!1,e),e.expanded?e.ensureLoadChildren().done(this._addChildrenToFlatList.bind(this,e,null,r,null,!0)):this._removeChildrenFromFlatList(e,r),this.trigger("nodeExpanded",{node:e,expanded:t,expandedLazy:s}),this.viewRangeDirty=!0),this.rendered&&x.nvl(i.renderExpansion,!0)&&this._renderExpansion(e,n),this.rendered&&this.ensureExpansionVisible(e)}setNodeExpandedRecursive(e,t,i){Ed.visitNodes((e=>{this.setNodeExpanded(e,t,i)}),e)}_rebuildParent(e,t){if(!this.rebuildSuppressed&&(e.expanded||e.expandedLazy?this._addChildrenToFlatList(e,null,!0,null,!0):this._removeChildrenFromFlatList(e,!1),this.rendered&&x.nvl(t.renderExpansion,!0))){let t={expansionChanged:!0};this._renderExpansion(e,t)}}_removeChildrenFromFlatList(e,t){if(this.visibleNodesMap[e.id]){let s=this.visibleNodesFlat.indexOf(e),r=0,o=e.level,l=[];t=t&&this.rendered,this._$animationWrapper&&this._$animationWrapper.stop(!1,!0),this._$expandAnimationWrappers.forEach((e=>{e.stop(!1,!0)}));for(let i=s+1;i<this.visibleNodesFlat.length&&this.visibleNodesFlat[i].level>o;i++){let s=this.visibleNodesFlat[i];this.isHorizontalScrollingEnabled()&&s.width===this.maxNodeWidth&&(this.maxNodeWidth=0,this.nodeWidthDirty=!0),delete this.visibleNodesMap[this.visibleNodesFlat[i].id],s.attached&&t?(this._$animationWrapper||(this._$animationWrapper=n()('<div class="animation-wrapper">').insertBefore(s.$node),this._$animationWrapper.data("parentNode",e)),s.isDescendantOf(this._$animationWrapper.data("parentNode"))&&this._$animationWrapper.append(s.$node),s.attached=!1,s.displayBackup=s.$node.css("display"),l.push(s)):s.attached&&!t&&this.hideNode(s,!1,!1),r++}return this.visibleNodesFlat.splice(s+1,r),t&&(this._renderViewportBlocked=!0,l.length>0?this._$animationWrapper.animate({height:0},{start:this.startAnimationFunc,complete:i.bind(this,l),step:this.revalidateLayoutTree.bind(this),duration:200,queue:!1}):this._$animationWrapper?(this._$animationWrapper.remove(),this._$animationWrapper=null,i.call(this,l)):this._renderViewportBlocked=!1),l}function i(e){e.forEach((e=>{e.$node.detach(),e.$node.css("display",e.displayBackup),e.displayBackup=null})),this._$animationWrapper&&(this._$animationWrapper.remove(),this._$animationWrapper=null),this.runningAnimationsFinishFunc()}}_removeFromFlatList(e,t){if(this.visibleNodesMap[e.id]){let i=this.visibleNodesFlat.indexOf(e);this._removeChildrenFromFlatList(e,!1),this.isHorizontalScrollingEnabled()&&e.width===this.maxNodeWidth&&(this.maxNodeWidth=0,this.nodeWidthDirty=!0),this.visibleNodesFlat.splice(i,1),delete this.visibleNodesMap[e.id],this.hideNode(e,t)}}_addToVisibleFlatList(e,t){if(!this.visibleNodesMap[e.id]&&e.filterAccepted&&(!e.parentNode||e.parentNode.expanded&&this.visibleNodesMap[e.parentNode.id]))if(this.initialTraversing)this._addToVisibleFlatListNoCheck(e,this.visibleNodesFlat.length,t);else{let i=this._findInsertPositionInFlatList(e);this._addToVisibleFlatListNoCheck(e,i,t)}}_addChildrenToFlatList(e,t,i,s,r){if(!this.visibleNodesMap[e.id])return 0;let n=Boolean(s);return t=t||this.visibleNodesFlat.indexOf(e),i=i&&this.rendered,this._$animationWrapper&&!n&&this._$animationWrapper.stop(!1,!0),s?s.setInsertAt(t):s=this.newInsertBatch(t+1),e.childNodes.forEach(((t,n)=>{if(!t.initialized||!t.isFilterAccepted(r))return;let o;this.visibleNodesMap[t.id]?(this.insertBatchInVisibleNodes(s,this._showNodes(s),i),this.checkAndHandleBatchAnimationWrapper(e,!1,s),s=this.newInsertBatch(s.nextBatchInsertIndex()),s=this._addChildrenToFlatListIfExpanded(1,t,o,i,s,r)):(s.insertNodes.push(t),this.visibleNodesMap[t.id]=!0,s=this.checkAndHandleBatch(s,e,i),s=this._addChildrenToFlatListIfExpanded(0,t,o,i,s,r))})),n||(this.insertBatchInVisibleNodes(s,this._showNodes(s),i),this.invalidateLayoutTree()),s}_addChildrenToFlatListIfExpanded(e,t,i,s,r,n){return t.expanded&&t.childNodes.length&&(i=r.containsNode(t.parentNode)||r.length()>1?r.insertAt():this._findInsertPositionInFlatList(t),i+=e,r=this._addChildrenToFlatList(t,i,s,r,n)),r}_showNodes(e){return this.viewRangeRendered.from+this.viewRangeSize>=e.lastBatchInsertIndex()&&this.viewRangeRendered.from<=e.lastBatchInsertIndex()}_findInsertPositionInFlatList(e){let t,i=e.parentNode;t=i?i.childNodes:this.nodes;let s=e,r=t.filter((e=>Boolean(this.visibleNodesMap[e.id])||e===s));if(0===r.length)return this._findPositionInFlatList(i)+1;let n=r.indexOf(e);if(0===n)return this._findPositionInFlatList(i)+1;let o,l,a=r[n-1],h=this._findPositionInFlatList(a);if(-1===h)return this._findPositionInFlatList(i)+1;for(o=h;o<this.visibleNodesFlat.length;o++)if(l=this.visibleNodesFlat[o],!this._isInSameSubTree(a,l))return o;return this.visibleNodesFlat.length}_findPositionInFlatList(e){return this.visibleNodesFlat.indexOf(e)}_isInSameSubTree(e,t){do{if(t===e||t.parentNode===e)return!0;t=t.parentNode}while(t);return!1}_isChildOfSelectedNodes(e){for(;e;){if(this.selectedNodes.indexOf(e.parentNode)>-1)return!0;e=e.parentNode}return!1}newInsertBatch(e){return{insertNodes:[e,0],$animationWrapper:null,lastBatchInsertIndex:function(){return this.isEmpty()?this.insertAt():this.insertAt()+this.insertNodes.length-3},nextBatchInsertIndex:function(){return this.lastBatchInsertIndex()+(this.isEmpty()?1:2)},isEmpty:function(){return 2===this.insertNodes.length},length:function(){return this.insertNodes.length-2},insertAt:function(){return this.insertNodes[0]},setInsertAt:function(e){this.insertNodes[0]=e},containsNode:function(e){return-1!==this.insertNodes.indexOf(e)}}}checkAndHandleBatchAnimationWrapper(e,t,i){if(t&&this.viewRangeRendered.from<=i.lastBatchInsertIndex()&&this.viewRangeRendered.to>=i.lastBatchInsertIndex()&&!i.$animationWrapper){let t=i.lastBatchInsertIndex()-1,s=this.viewRangeRendered.from===i.lastBatchInsertIndex()?null:this.visibleNodesFlat[t];if(s&&t>=this.viewRangeRendered.from&&t<this.viewRangeRendered.to&&!s.attached&&this.showNode(s,!1,t),s&&s.attached)i.$animationWrapper=n()('<div class="animation-wrapper">').insertAfter(s.$node);else if(e.attached)i.$animationWrapper=n()('<div class="animation-wrapper">').insertAfter(e.$node);else if(this.$fillBefore)i.$animationWrapper=n()('<div class="animation-wrapper">').insertAfter(this.$fillBefore);else{let e=this.visibleNodesFlat[i.lastBatchInsertIndex()];i.$animationWrapper=n()('<div class="animation-wrapper">').insertBefore(e.$node)}i.animationCompleteFunc=function(){i.$animationWrapper.replaceWith(i.$animationWrapper.contents()),me.remove(this._$expandAnimationWrappers,i.$animationWrapper),i.$animationWrapper=null,this.runningAnimationsFinishFunc()},this._$expandAnimationWrappers.push(i.$animationWrapper)}}checkAndHandleBatch(e,t,i){return this.viewRangeRendered.from-1===e.lastBatchInsertIndex()&&(this.insertBatchInVisibleNodes(e,!1,!1),e=this.newInsertBatch(e.lastBatchInsertIndex()+1)),this.checkAndHandleBatchAnimationWrapper(t,i,e),this.viewRangeRendered.from+this.viewRangeSize-1===e.lastBatchInsertIndex()&&(this.insertBatchInVisibleNodes(e,!0,i),e=this.newInsertBatch(e.lastBatchInsertIndex()+1)),e}insertBatchInVisibleNodes(e,t,i){if(!e.isEmpty())if(this.visibleNodesFlat.splice(...e.insertNodes),t){let t=e.insertAt();for(let i=2;i<e.insertNodes.length;i++){let s=e.insertNodes[i];this.showNode(s,!1,t),e.$animationWrapper&&e.$animationWrapper.append(s.$node),t++}if(e.$animationWrapper){let t=e.$animationWrapper.outerHeight();e.$animationWrapper.css("height",0).animate({height:t},{start:this.startAnimationFunc,complete:e.animationCompleteFunc.bind(this),step:this.revalidateLayoutTree.bind(this),duration:200,queue:!1})}}else e.$animationWrapper&&e.animationCompleteFunc&&e.animationCompleteFunc.call(this)}_addToVisibleFlatListNoCheck(e,t,i){me.insert(this.visibleNodesFlat,e,t),this.visibleNodesMap[e.id]=!0,this.rendered&&this.showNode(e,i,t)}scrollTo(e,t){0!==this.viewRangeRendered.size()&&(e.attached||this._renderViewRangeForNode(e),e.attached&&Yn.scrollTo(this.$data,e.$node,t))}revealSelection(){this.rendered?this.selectedNodes.length>0&&(this.visibleNodesMap[this.selectedNodes[0].id]||this._expandAllParentNodes(this.selectedNodes[0]),this.scrollTo(this.selectedNodes[0]),this.ensureExpansionVisible(this.selectedNodes[0])):this.session.layoutValidator.schedulePostValidateFunction(this.revealSelection.bind(this))}ensureExpansionVisible(e){e&&e.$node&&this.selectedNodes[0]===e&&Yn.ensureExpansionVisible({element:e,$element:e.$node,$scrollable:this.get$Scrollable(),isExpanded:e=>e.expanded,getChildren:e=>e.childNodes,nodePaddingLevel:this.nodePaddingLevel,defaultChildHeight:this.nodeHeight})}deselectAll(){this.selectNodes([])}selectNode(e,t){this.selectNodes(e,t)}selectNodes(e,t){e=me.ensure(e),me.equalsIgnoreOrder(e,this.selectedNodes)||(this.rendered&&(this._rememberScrollTopBeforeSelection(),this._removeSelection()),this.prevSelectedNode&&(this.prevSelectedNode.prevSelectionAnimationDone=!1),this.prevSelectedNode=this.selectedNodes[0],this._setSelectedNodes(e,t),this.rendered&&(this._renderSelection(),this._updateScrollTopAfterSelection()))}_rememberScrollTopBeforeSelection(){this.isBreadcrumbStyleActive()?this.selectedNodes.length>0&&(this.scrollTopHistory[this.selectedNodes[0].level]=this.$data[0].scrollTop):this.scrollTopHistory=[]}_updateScrollTopAfterSelection(){if(!this.isBreadcrumbStyleActive())return;let e=-1;this.selectedNodes.length>0&&(e=this.selectedNodes[0].level),this.scrollTopHistory.splice(e+1);let t=this.scrollTopHistory[e];t>=0&&this.setScrollTop(t)}_setSelectedNodes(e,t){this.selectedNodes=e.slice(),this._nodesSelectedInternal(),this._triggerNodesSelected(t),this.selectedNodes.length>0&&!this.visibleNodesMap[this.selectedNodes[0].id]&&this._expandAllParentNodes(this.selectedNodes[0]),this._updateItemPath(!0),this.isBreadcrumbStyleActive()&&(this.selectedNodes.length>0&&!this.selectedNodes[0].expanded&&(this.expandNode(this.selectedNodes[0]),this.selectedNodes[0].filterDirty=!0),this.filter()),this.session.onRequestsDone(this._updateMenuBar.bind(this))}_nodesSelectedInternal(e){}deselectNode(e){this.deselectNodes(e)}deselectNodes(e,t){e=me.ensure(e),(t=t||{}).collectChildren&&(e=e.concat(this._collectNodesIfDescendants(e,this.selectedNodes)));let i=this.selectedNodes.slice();me.removeAll(i,e)&&this.selectNodes(i)}isNodeSelected(e){return this.selectedNodes.indexOf(e)>-1}_computeNodePaddingLeft(e){if(this._computeNodePaddings(),this.isBreadcrumbStyleActive())return this.nodePaddingLeft;let t=e.level*this.nodePaddingLevel+this.nodePaddingLeft;return this.checkable&&(t+=this.nodeCheckBoxPaddingLeft),t}_computeNodePaddings(){if(null!==this.nodePaddingLeft&&null!==this.nodeControlPaddingLeft)return;let e=this.$data.appendDiv("tree-node"),t=e.appendDiv("tree-node-control");null===this.nodePaddingLeft&&(this.nodePaddingLeft=e.cssPaddingLeft()),null===this.nodeControlPaddingLeft&&(this.nodeControlPaddingLeft=t.cssPaddingLeft()),e.remove()}_expandAllParentNodes(e){let t,i=e,s=[];i=e;let r=[];for(;i.parentNode;)s.push(i.parentNode),this.visibleNodesMap[i.id]||r.push(i),i=i.parentNode;for(t=s.length-1;t>=0;t--)-1!==r.indexOf(s[t])&&this._addToVisibleFlatList(s[t],!1),s[t].expanded||this.expandNode(s[t],{renderExpansion:!1,renderAnimated:!1});this.rendered&&r.length>0&&(this._rerenderViewport(),this.invalidateLayoutTree())}_updateChildNodeIndex(e,t){if(e&&e.length)for(let i=x.nvl(t,0);i<e.length;i++)e[i].childNodeIndex=i}insertNode(e,t){this.insertNodes([e],t)}insertNodes(e,t){if(0!==(e=me.ensure(e).slice()).length){if(this._ensureTreeNodes(e),t&&!(t instanceof Ad))throw new Error("parent has to be a tree node: "+t);if(e.sort(((e,t)=>e.childNodeIndex-t.childNodeIndex)),t){if(t.childNodes&&t.childNodes.length>0?(e.forEach((e=>{t.childNodes.indexOf(e)<0&&me.insert(t.childNodes,e,e.childNodeIndex)})),this._updateChildNodeIndex(t.childNodes,e[0].childNodeIndex)):e.forEach((e=>{t.childNodes.push(e)})),this._initNodes(e,t),this.groupedNodes[t.id]&&this._updateItemPath(!1,t),this.rendered){let e={expansionChanged:!0};this._renderExpansion(t,e),this.ensureExpansionVisible(t)}}else this.nodes&&this.nodes.length>0?(e.forEach((e=>{this.nodes.indexOf(e)<0&&me.insert(this.nodes,e,e.childNodeIndex)})),this._updateChildNodeIndex(this.nodes,e[0].childNodeIndex)):me.pushAll(this.nodes,e),this._initNodes(e,t);this.rendered&&(this.viewRangeDirty=!0,this.invalidateLayoutTree()),this.trigger("nodesInserted",{nodes:e,parentNode:t})}}updateNode(e){this.updateNodes([e])}updateNodes(e){0!==(e=me.ensure(e)).length&&(e.forEach((function(e){let t,i=this.nodesMap[e.id];e===i?t=!0:(this._applyNodeDefaultValues(e),t=this._applyUpdatedNodeProperties(i,e)),t&&(this.applyFiltersForNode(i),this._updateItemPath(!1,i.parentNode),this.rendered&&i._decorate())}),this),this.trigger("nodesUpdated",{nodes:e}))}_applyUpdatedNodeProperties(e,t){let i=!1;return e.leaf!==t.leaf&&(e.leaf=t.leaf,i=!0),e.enabled!==t.enabled&&(e.enabled=t.enabled,i=!0),e.lazyExpandingEnabled!==t.lazyExpandingEnabled&&(e.lazyExpandingEnabled=t.lazyExpandingEnabled,t.lazyExpandingEnabled&&this.lazyExpandingEnabled||(e.expandedLazy=!1),i=!0),i}deleteNode(e,t){this.deleteNodes([e],t)}deleteAllNodes(){this.deleteAllChildNodes()}deleteNodes(e,t){let i=[],s=[],r=[];0!==(e=me.ensure(e).slice()).length&&(e.forEach((function(e){let n=t||e.parentNode;if(n){if(e.parentNode!==n)throw new Error("Unexpected parent. Node.parent: "+e.parentNode+", parentNode: "+t);me.remove(n.childNodes,e),-1===s.indexOf(n)&&s.push(n)}else me.remove(this.nodes,e),r=this.nodes;this._destroyTreeNode(e),i.push(e),this._updateMarkChildrenChecked(e,!1,!1),Ed.visitNodes(this._destroyTreeNode.bind(this),e.childNodes)}),this),s.forEach((e=>this._updateChildNodeIndex(e.childNodes))),this._updateChildNodeIndex(r),this.deselectNodes(i,{collectChildren:!0}),this.uncheckNodes(i,{collectChildren:!0}),this.rendered&&this._removeNodes(i,t||s),this.trigger("nodesDeleted",{nodes:e,parentNode:t}))}_collectNodesIfDescendants(e,t){let i=[];return t.forEach((t=>{e.some((e=>e.isAncestorOf(t)))&&i.push(t)})),i}deleteAllChildNodes(e){let t;e?(t=e.childNodes,e.childNodes=[]):(t=this.nodes,this.nodes=[]),Ed.visitNodes(function(e){this._destroyTreeNode(e),this._updateMarkChildrenChecked(e,!1,!1)}.bind(this),t),this.deselectNodes(t,{collectChildren:!0}),this.uncheckNodes(t,{collectChildren:!0}),this.rendered&&this._removeNodes(t,e),this.trigger("allChildNodesDeleted",{parentNode:e})}updateNodeOrder(e,t){if(e=me.ensure(e),this._updateChildNodeIndex(e),t){if(t.childNodes.length!==e.length)throw new Error("Node order may not be updated because lengths of the arrays differ.");t.childNodes=e.slice(),this._removeChildrenFromFlatList(t,!1),t.expanded&&this._addChildrenToFlatList(t,null,!1)}else{if(this.nodes.length!==e.length)throw new Error("Node order may not be updated because lengths of the arrays differ.");this.nodes=e.slice(),this.nodes.forEach((function(e){this._removeFromFlatList(e,!1),this._addToVisibleFlatList(e,!1),e.expanded&&this._addChildrenToFlatList(e,null,!1)}),this)}this.trigger("childNodeOrderChanged",{parentNode:t})}checkNode(e,t,i){let s=n().extend(i,{checked:t});this.checkNodes([e],s)}checkNodes(e,t){let i={checked:!0,checkOnlyEnabled:!0,checkChildren:this.autoCheckChildren,triggerNodesChecked:!0};n().extend(i,t);let s=[];!this.checkable||!this.enabledComputed&&i.checkOnlyEnabled||((e=me.ensure(e)).forEach((function(e){if(!e.enabled&&i.checkOnlyEnabled||e.checked===i.checked||!e.filterAccepted)i.checkChildren&&this.checkNodes(e.childNodes,i);else{if(!this.multiCheck&&i.checked){for(let e=0;e<this.checkedNodes.length;e++)this.checkedNodes[e].checked=!1,this._updateMarkChildrenChecked(this.checkedNodes[e],!1,!1,!0),s.push(this.checkedNodes[e]);this.checkedNodes=[]}if(e.checked=i.checked,e.checked?this.checkedNodes.push(e):me.remove(this.checkedNodes,e),s.push(e),this._updateMarkChildrenChecked(e,!1,i.checked,!0),i.checkChildren){let t=n().extend({},i,{triggerNodesChecked:!1});this.checkNodes(e.childNodes,t)}}}),this),i.triggerNodesChecked&&s.length>0&&this.trigger("nodesChecked",{nodes:s}),this.rendered&&s.forEach((e=>{e._renderChecked()})))}uncheckNode(e,t){let i=n().extend({checkOnlyEnabled:!0},t);this.uncheckNodes([e],i)}uncheckNodes(e,t){let i={checked:!1};n().extend(i,t),i.collectChildren&&(e=e.concat(this._collectNodesIfDescendants(e,this.checkedNodes))),this.checkNodes(e,i)}_triggerNodesSelected(e){this.trigger("nodesSelected",{debounce:e})}_showContextMenu(e){this.session.onRequestsDone(function(e){if(!this.rendered)return;let t=this._filterMenus(this.menus,hl.CONTEXT_MENU,!0),i=n()(e.currentTarget);0!==t.length&&(this.contextMenu&&this.contextMenu.close(),this.contextMenu=x.create("ContextMenuPopup",{parent:this,menuItems:t,location:{x:e.pageX,y:e.pageY},$anchor:i,menuFilter:this._filterMenusHandler}),this.contextMenu.open())}.bind(this),e)}_onNodeMouseDown(e){if(this._doubleClickSupport.mousedown(e),this._doubleClickSupport.doubleClicked())return!1;let t=n()(e.currentTarget),i=t.data("node");return this.hasNode(i)?(this._$mouseDownNode=t,t.window().one("mouseup",(()=>{this._$mouseDownNode=null})),this.selectNodes(i),this.checkable&&i.enabled&&this._isCheckboxClicked(e)&&(Qe.get().loosesFocusIfPseudoElementIsRemoved()&&this.focusAndPreventDefault(e),this.checkNode(i,!i.checked)),!0):void 0}_onNodeMouseUp(e){if(this._doubleClickSupport.doubleClicked())return!1;let t=n()(e.currentTarget),i=t.data("node");return this._$mouseDownNode&&this._$mouseDownNode[0]===t[0]?(this.trigger("nodeClick",{node:i}),!0):void 0}_isCheckboxClicked(e){return!!this.isTreeNodeCheckEnabled()||n()(e.target).is(".check-box")}_updateItemPath(e,t){let i,s,r;if(e&&(this.groupedNodes={},this._inSelectionPathList={}),!t){if(i=this.selectedNodes,0===i.length)return;for(s=i[0],e&&(this._inSelectionPathList[s.id]=!0,s.childNodes&&s.childNodes.forEach((e=>{this._inSelectionPathList[e.id]=!0}))),r=s.level;s.parentNode;){let i=s.parentNode;if(this._isGroupingEnd(i)&&!t&&(t=s,!e))break;e&&(this._inSelectionPathList[i.id]=!0),s=i}t=t||i[0],this.groupedNodes[t.id]=!0}s=t,s&&s.expanded&&this.groupedNodes[s.id]&&function e(t){t.forEach((t=>{this.groupedNodes[t.id]=!0,t._decorate(),t.expanded&&t.isFilterAccepted()&&e.call(this,t.childNodes)}))}.call(this,s.childNodes)}_isGroupingEnd(e){return!1}selectedNode(){return 0===this.selectedNodes.length?null:this.selectedNodes[0]}$selectedNodes(){return this.$data.find(".selected")}$nodes(){return this.$data.find(".tree-node")}addFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.addFilter(e,t)}removeFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.removeFilter(e,t)}setFilters(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.setFilters(e,t)}filter(){this.filterSupport.filter()}_filter(){let e=[],t=[];return this.nodes.forEach((i=>{let s=this.applyFiltersForNode(i,!1,this.filterAnimated);e.push(...s.newlyHidden),t.push(...s.newlyShown)})),{newlyHidden:e,newlyShown:t}}updateFilteredElements(e,t){this.filteredElementsDirty&&(t.textFilterText&&this._nodesByIds(Object.keys(this.nodesMap)).filter((e=>e.filterAccepted)).forEach((e=>this._expandAllParentNodes(e))),e.newlyShown.forEach((e=>this._addToVisibleFlatList(e,this.filterAnimated))),e.newlyHidden.forEach((e=>this._removeFromFlatList(e,this.filterAnimated))),this.filteredElementsDirty=!1)}filterVisibleNodes(e){let t=[];for(let i=this.visibleNodesFlat.length-1;i>=0;i--){let s=this.visibleNodesFlat[i],r=this._applyFiltersForNodeRec(s,!0,e);r.newlyHidden.length&&(s.isFilterAccepted()||t.push(...r.newlyHidden),this.viewRangeDirty=!0)}t.forEach((t=>this._removeFromFlatList(t,e))),this._nodesFiltered(t)}_nodesFiltered(e){this.deselectNodes(e)}applyFiltersForNode(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=this._applyFiltersForNodeRec(e,!0,i),r=e.parentNode;for(;r;){let e=this._applyFiltersForNodeRec(r,!1,i);s.newlyHidden.unshift(...e.newlyHidden),s.newlyShown.unshift(...e.newlyShown),r=r.parentNode}return this._nodesFiltered(s.newlyHidden),t&&(s.newlyShown.forEach((e=>this._addToVisibleFlatList(e,i))),s.newlyHidden.forEach((e=>this._removeFromFlatList(e,i)))),s}_applyFiltersForNodeRec(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=[],r=[];i=i&&this.filterAnimated;let n=this._applyFiltersForNode(e),o=!1;if(e.level<32&&(t?e.childNodes.forEach((e=>{let t=this._applyFiltersForNodeRec(e,!0,i);s.push(...t.newlyHidden),r.push(...t.newlyShown),o=o||e.filterAccepted})):e.filterAccepted||(o=e.childNodes.some((e=>e.filterAccepted)))),!e.filterAccepted&&o&&(e.setFilterAccepted(!0),n=!n),n){(e.filterAccepted?r:s).unshift(e),this.rendered&&(this.viewRangeDirty=!0)}return{newlyHidden:s,newlyShown:r}}_applyFiltersForNode(e){let t=this.filterSupport.applyFiltersForElement(e);return(t||e.filterDirty)&&(e.filterDirty=!1,e.childNodes.forEach((e=>{e.filterDirty=!0}))),t}_createFilterSupport(){return new q({widget:this,$container:()=>this.$container,filterElements:this._filter.bind(this),getElementText:e=>e.text})}setTextFilterEnabled(e){this.setProperty("textFilterEnabled",e)}isTextFilterFieldVisible(){return this.textFilterEnabled}_renderTextFilterEnabled(){this.filterSupport.renderFilterField()}_insertNodesInDOM(e,t){(this.rendered||this.rendering)&&(e=e.filter((function(e){let i=void 0===t?this.visibleNodesFlat.indexOf(e):t;return-1!==i&&this.viewRangeRendered.from+this.viewRangeSize>=i&&this.viewRangeRendered.from<=i&&this.viewRangeSize>0&&!e.attached&&(e.rendered||this._renderNode(e),e._decorate(),this._insertNodeInDOMAtPlace(e,i),this.prevSelectedNode===e&&this._highlightPrevSelectedNode(),e.rendered=!0,e.attached=!0,!0)}),this),this._installNodes(e))}_installNodes(e){this.isHorizontalScrollingEnabled()&&e.forEach((e=>{e.$node.css("width","auto"),e.$node.css("display","inline-block")}),this),e.forEach((function(e){if(e.height=e.$node.outerHeight(!0),!this.isHorizontalScrollingEnabled())return;let t=e.$node.outerWidth(),i=e.width?e.width:0;i===this.maxNodeWidth&&t<this.maxNodeWidth?(this.maxNodeWidth=0,this.nodeWidthDirty=!0):t>this.maxNodeWidth?(this.maxNodeWidth=t,this.nodeWidthDirty=!0):t===i&&0===t&&(this.nodeWidthDirty=!0),e.width=t}),this),this.isHorizontalScrollingEnabled()&&e.forEach((function(e){this.nodeWidthDirty||e.$node.css("width",this.maxNodeWidth),e.$node.css("display","")}),this)}_ensureNodeInDOM(e,t,i){e&&!e.attached&&e===this.visibleNodesFlat[i]&&i>=this.viewRangeRendered.from&&i<this.viewRangeRendered.to&&this.showNode(e,t,i)}_insertNodeInDOMAtPlace(e,t){let i=e.$node;if(0===t)return void(this.$fillBefore?i.insertAfter(this.$fillBefore):this.$data.prepend(i));let s=this.visibleNodesFlat[t-1];if(this._ensureNodeInDOM(s,!1,t-1),s.attached)i.insertAfter(s.$node);else{if(t+1<this.visibleNodesFlat.length){let e=this.visibleNodesFlat[t+1];if(e.attached)return void i.insertBefore(e.$node)}this.$fillBefore?i.insertAfter(this.$fillBefore):this.$data.prepend(i)}}showNode(e,t,i){if(!this.rendered||e.attached&&!e.$node.hasClass("hiding"))return;if(e.attached||(this._ensureNodeInDOM(e.parentNode,t,i-1),this._insertNodesInDOM([e],i)),!e.rendered)return;let s=e.$node;if(s.is(".showing"))return;s.removeClass("hiding");let r=this;t&&(s.addClass("showing"),s.hide(),s.stop(!1,!0).slideDown({duration:250,start:r.startAnimationFunc,complete:()=>{r.runningAnimationsFinishFunc(),s.removeClass("showing")}}))}hideNode(e,t,i){if(!e.attached)return;this.viewRangeDirty=!0;let s=this,r=e.$node;r&&(r.is(".hiding")||(r.removeClass("showing"),t?(r.addClass("hiding"),this._renderViewportBlocked=!0,r.stop(!1,!0).slideUp({duration:250,start:s.startAnimationFunc,complete:()=>{s.runningAnimationsFinishFunc(),r.removeClass("hiding"),r.hasClass("showing")||(r.css("display",""),r.detach(),e.attached=!1)}})):i||(r.detach(),e.attached=!1,s.invalidateLayoutTree())))}_nodesToIds(e){return e.map((e=>e.id))}_nodesByIds(e){return e.map((e=>this.nodesMap[e]))}_nodeById(e){return this.nodesMap[e]}hasNode(e){return Boolean(this._nodeById(e.id))}_onNodeDoubleClick(e){if(this.isBreadcrumbStyleActive())return;let t=n()(e.currentTarget),i=t.data("node"),s=!t.hasClass("expanded");this.doNodeAction(i,s)}doNodeAction(e,t){this.trigger("nodeAction",{node:e}),!0===this.checkable&&this.isTreeNodeCheckEnabled()&&e.enabled||this.setNodeExpanded(e,t,{lazy:!1})}_onNodeControlMouseDown(e){if(this._doubleClickSupport.mousedown(e),this._doubleClickSupport.doubleClicked())return!1;let t=n()(e.currentTarget).parent(),i=t.data("node"),s=!t.hasClass("expanded"),r={lazy:!1};if(t.hasClass("lazy")){if(!e.ctrlKey&&!e.shiftKey)return this.expandNode(i,r),!1;s=!1,r.collapseChildNodes=!0}return this.requestFocusOnNodeControlMouseDown&&this.focus(),this.selectNodes(i),this.setNodeExpanded(i,s,r),n().suppressEvent(e),!0}_onNodeControlMouseUp(e){return!1}_onNodeControlDoubleClick(e){return!1}_onContextMenu(e){e.preventDefault(),this._showContextMenu(e)}changeNode(e){this.applyFiltersForNode(e),this.rendered&&e._decorate(),this.trigger("nodeChanged",{node:e})}_onDesktopPopupOpen(e){let t=e.popup;this.isFocusable(!1)&&this.has(t)&&t instanceof yl&&(this.$container.addClass("focused"),t.one("destroy",(()=>{this.rendered&&this.$container.removeClass("focused")})))}updateScrollbars(){Yn.update(this.$data)}static collectSubtree(e,t){if(!e)return n()();let i=parseFloat(e.attr("data-level")),s=e.next();for(;s.length>0;){let e=parseFloat(s.attr("data-level"));if(isNaN(e)||e<=i)break;s=s.next()}let r=e.nextUntil(s);return(void 0===t||t)&&(r=r.add(e)),r}static visitNodes(e,t,i){let s,r;if(t)for(s=0;s<t.length;s++){r=t[s],!e(r,i)&&r.childNodes.length>0&&Ed.visitNodes(e,r.childNodes,r)}}}Fd(Ed,"DisplayStyle",{DEFAULT:"default",BREADCRUMB:"breadcrumb"}),Fd(Ed,"CheckableStyle",{CHECKBOX:"checkbox",CHECKBOX_TREE_NODE:"checkbox_tree_node"}),Fd(Ed,"VIEW_RANGE_DIVISOR",4);class Dd extends j{constructor(){super(),this._addRemoteProperties(["displayStyle"])}_sendNodesSelected(e,t){let i={nodeIds:e};this._send("nodesSelected",i,{delay:t?250:0,coalesce:function(e){return this.target===e.target&&this.type===e.type}})}_onWidgetNodeClick(e){this._send("nodeClick",{nodeId:e.node.id})}_onWidgetNodeAction(e){this._send("nodeAction",{nodeId:e.node.id})}_onWidgetNodesSelected(e){let t=this.widget._nodesToIds(this.widget.selectedNodes);this._sendNodesSelected(t,e.debounce)}_onWidgetNodeExpanded(e){this._send("nodeExpanded",{nodeId:e.node.id,expanded:e.expanded,expandedLazy:e.expandedLazy})}_onWidgetNodesChecked(e){this._sendNodesChecked(e.nodes)}_sendNodesChecked(e){let t={nodes:[]};for(let i=0;i<e.length;i++)t.nodes.push({nodeId:e[i].id,checked:e[i].checked});this._send("nodesChecked",t)}_onWidgetEvent(e){"nodesSelected"===e.type?this._onWidgetNodesSelected(e):"nodeClick"===e.type?this._onWidgetNodeClick(e):"nodeAction"===e.type?this._onWidgetNodeAction(e):"nodeExpanded"===e.type?this._onWidgetNodeExpanded(e):"nodesChecked"===e.type?this._onWidgetNodesChecked(e):"drop"===e.type&&this.widget.dragAndDropHandler?this.widget.dragAndDropHandler.uploadFiles(e):super._onWidgetEvent(e)}onModelAction(e){"nodesInserted"===e.type?this._onNodesInserted(e.nodes,e.commonParentNodeId):"nodesUpdated"===e.type?this._onNodesUpdated(e.nodes):"nodesDeleted"===e.type?this._onNodesDeleted(e.nodeIds,e.commonParentNodeId):"allChildNodesDeleted"===e.type?this._onAllChildNodesDeleted(e.commonParentNodeId):"nodesSelected"===e.type?this._onNodesSelected(e.nodeIds):"nodeExpanded"===e.type?this._onNodeExpanded(e.nodeId,e):"nodeChanged"===e.type?this._onNodeChanged(e.nodeId,e):"nodesChecked"===e.type?this._onNodesChecked(e.nodes):"childNodeOrderChanged"===e.type?this._onChildNodeOrderChanged(e.childNodeIds,e.parentNodeId):"requestFocus"===e.type?this._onRequestFocus():"scrollToSelection"===e.type?this._onScrollToSelection():super.onModelAction(e)}_onNodesInserted(e,t){let i;if(null!=t&&(i=this.widget.nodesMap[t],!i))throw new Error("Parent node could not be found. Id: "+t);this.widget.insertNodes(e,i)}_onNodesUpdated(e){this.widget.updateNodes(e)}_onNodesDeleted(e,t){let i;if(null!=t&&(i=this.widget.nodesMap[t],!i))throw new Error("Parent node could not be found. Id: "+t);this.addFilterForWidgetEventType("nodesSelected"),this.addFilterForWidgetEventType("nodesChecked");let s=this.widget._nodesByIds(e);this.widget.deleteNodes(s,i)}_onAllChildNodesDeleted(e){let t;if(null!=e&&(t=this.widget.nodesMap[e],!t))throw new Error("Parent node could not be found. Id: "+e);this.addFilterForWidgetEventType("nodesSelected"),this.addFilterForWidgetEventType("nodesChecked"),this.widget.deleteAllChildNodes(t)}_onNodesSelected(e){this.addFilterForWidgetEvent((t=>"nodesSelected"===t.type&&me.equals(e,this.widget._nodesToIds(this.widget.selectedNodes))));let t=this.widget._nodesByIds(e);this.widget.selectNodes(t)}_onNodeExpanded(e,t){let i=this.widget.nodesMap[e],s={lazy:t.expandedLazy},r=Ai.createMap();r[e]=!0,t.recursive&&Ed.visitNodes((e=>{r[e.id]=!0}),i.childNodes),this.addFilterForWidgetEvent((e=>"nodeExpanded"===e.type&&r[e.node.id]&&t.expanded===e.expanded&&t.expandedLazy===e.expandedLazy)),this.widget.setNodeExpanded(i,t.expanded,s),t.recursive&&this.widget.setNodeExpandedRecursive(i.childNodes,t.expanded,s)}_onNodeChanged(e,t){let i=this.widget.nodesMap[e];We.applyTo(t,"TreeNode"),i.text=t.text,i.cssClass=t.cssClass,i.iconId=t.iconId,i.tooltipText=t.tooltipText,i.foregroundColor=t.foregroundColor,i.backgroundColor=t.backgroundColor,i.font=t.font,i.htmlEnabled=t.htmlEnabled,this.widget.changeNode(i)}_onNodesChecked(e){let t=[],i=[];e.forEach((function(e){let s=this.widget._nodeById(e.id);e.checked?t.push(s):i.push(s)}),this),this.addFilterForWidgetEventType("nodesChecked"),this.widget.checkNodes(t,{checked:!0,checkChildren:!1,checkOnlyEnabled:!1}),this.widget.uncheckNodes(i,{checkChildren:!1,checkOnlyEnabled:!1})}_onChildNodeOrderChanged(e,t){let i=this.widget._nodeById([t]),s=this.widget._nodesByIds(e);this.widget.updateNodeOrder(s,i)}_onRequestFocus(){this.widget.focus()}_onScrollToSelection(){this.widget.revealSelection()}}class Ad{constructor(){this.$node=null,this.$text=null,this.attached=!1,this.checked=!1,this.childNodes=[],this.childrenLoaded=!1,this.childrenChecked=!1,this.cssClass=null,this.destroyed=!1,this.enabled=!0,this.expanded=!1,this.expandedLazy=!1,this.filterAccepted=!0,this.filterDirty=!1,this.htmlEnabled=!1,this.iconId=null,this.id=null,this.initialized=!1,this.initialExpanded=!1,this.lazyExpandingEnabled=!1,this.leaf=!1,this.level=0,this.parent=null,this.parentNode=void 0,this.prevSelectionAnimationDone=!1,this.rendered=!1,this.session=null,this.text=null,this._loadChildrenPromise=!1}init(e){let t=this._jsonModel();t&&(e=n().extend({},t,e)),this._init(e),void 0===e.initialExpanded&&(this.initialExpanded=this.expanded)}destroy(){this.destroyed||(this._destroy(),this.destroyed=!0)}_destroy(){}getTree(){return this.parent}_init(e){x.assertParameter("parent",e.parent,Ed),this.session=e.session||e.parent.session,n().extend(this,e),We.applyTo(this),mo.resolveTextProperty(this,"text"),Ct.resolveIconProperty(this,"iconId"),this.hasChildNodes()&&this.getTree()._ensureTreeNodes(this.childNodes)}_jsonModel(){}reset(){this.$node&&(this.$node.remove(),this.$node=null),this.rendered=!1,this.attached=!1}hasChildNodes(){return this.childNodes.length>0}isAncestorOf(e){for(;e;){if(e.parentNode===this)return!0;e=e.parentNode}return!1}isDescendantOf(e){return e===this.parentNode||!!this.parentNode&&this.parentNode.isDescendantOf(e)}setFilterAccepted(e){this.filterAccepted=e}isFilterAccepted(e){return(this.filterDirty||e)&&this.getTree().applyFiltersForNode(this),this.filterAccepted}loadChildren(){return n().resolvedDeferred()}ensureLoadChildren(){if(this.childrenLoaded)return n().resolvedPromise();if(this._loadChildrenPromise)return this._loadChildrenPromise;let e=this.loadChildren(),t=e.promise();return"resolved"===e.state()?(this._loadChildrenPromise=null,t):(this._loadChildrenPromise=t,t.done(this._onLoadChildrenDone.bind(this)),t)}_onLoadChildrenDone(){this._loadChildrenPromise=null}setText(e){this.text=e}render(e,t){this.$node=e.makeDiv("tree-node").data("node",this).attr("data-nodeid",this.id).attr("data-level",this.level),Ai.isNullOrUndefined(t)||this.$node.cssPaddingLeft(t),this.$text=this.$node.appendSpan("text"),this._renderControl(),this.getTree().checkable&&this._renderCheckbox(),this._renderText(),this._renderIcon()}_renderText(){this.htmlEnabled?this.$text.html(this.text):this.$text.textOrNbsp(this.text)}_renderChecked(){this.rendered&&this.$node.children(".tree-node-checkbox").children(".check-box").toggleClass("checked",this.checked)}_renderIcon(){this.$node.toggleClass("has-icon",!!this.iconId),this.$node.icon(this.iconId,(e=>e.insertBefore(this.$text)))}$icon(){return this.$node.children(".icon")}_renderControl(){let e=this.$node.prependDiv("tree-node-control");this._updateControl(e,this.getTree())}_updateControl(e,t){e.toggleClass("checkable",t.checkable),e.cssPaddingLeft(t.nodeControlPaddingLeft+this.level*t.nodePaddingLevel),e.setVisible(!this.leaf)}_renderCheckbox(){this.$node.prependDiv("tree-node-checkbox").appendDiv("check-box").toggleClass("checked",this.checked).toggleClass("disabled",!this.enabled).toggleClass("children-checked",!!this.childrenChecked)}_decorate(){if(!this.$node)return;let e=this.$node,t=this.getTree();if(e.attr("class",this._preserveCssClasses(e)),e.addClass(this.cssClass),e.toggleClass("leaf",!!this.leaf),e.toggleClass("expanded",!!this.expanded&&this.childNodes.length>0),e.toggleClass("lazy",e.hasClass("expanded")&&this.expandedLazy),e.toggleClass("group",!!t.groupedNodes[this.id]),e.setEnabled(!!this.enabled),e.children(".tree-node-control").setVisible(!this.leaf),e.children(".tree-node-checkbox").children(".check-box").toggleClass("disabled",!this.enabled),(!this.parentNode&&0===t.selectedNodes.length||t._isChildOfSelectedNodes(this))&&e.addClass("child-of-selected"),this._renderText(),this._renderIcon(),ts.legacyStyle(this._getStyles(),e),this.parentNode&&this.parentNode.expandedLazy){!this.parentNode.childNodes.some((e=>!!t.visibleNodesMap[e.id]))&&this.parentNode.$node&&this.parentNode.$node.removeClass("lazy")}}_getStyles(){return this}_preserveCssClasses(e){let t="tree-node";return e.isSelected()&&(t+=" selected"),e.hasClass("ancestor-of-selected")&&(t+=" ancestor-of-selected"),e.hasClass("parent-of-selected")&&(t+=" parent-of-selected"),t}}class $d extends _r{constructor(e){super(),this.tree=e,this.nodeDimensionsDirty=!1}layout(e){this._layout(e),Yn.update(this.tree.$data)}_layout(e){let t,i,s,r=this.tree.menuBar,n=r.htmlComp,o=this.tree.htmlComp;i=o.availableSize({exact:!0}).subtract(o.insets()),this.tree.toggleBreadcrumbStyleEnabled&&this._sizeChanged(o)&&this.tree.setBreadcrumbStyleActive(Math.floor(i.width)<=this.tree.breadcrumbTogglingThreshold),s=0,r.$container.isVisible()&&(t=Il.size(n,i),n.setSize(t),s+=t.height),e.css("--menubar-height",((t||{}).height||0)+"px"),this._setDataHeight(s),this.tree.setViewRangeSize(this.tree.calculateViewRangeSize()),this.nodeDimensionsDirty=this.nodeDimensionsDirty||this._sizeChanged(o),this.nodeDimensionsDirty&&(this.nodeDimensionsDirty=!1,this.tree.isHorizontalScrollingEnabled()?(this.tree.nodeWidthDirty=!0,this.tree.maxNodeWidth=0):(this.tree.updateNodeHeights(),this.tree._renderViewport(),this.tree._renderFiller())),o.layouted||this.tree._renderScrollTop(),this.tree._renderViewport(),o.layouted||this.tree._renderScrollTop()}_sizeChanged(e){return e.sizeCached&&Math.ceil(e.sizeCached.width)!==Math.ceil(e.size().width)}_setDataHeight(e){let t=this.tree.$data;e+=t.cssMarginTop()+t.cssMarginBottom(),t.css("height",0===e?"100%":"calc(100% - "+e+"px)")}preferredLayoutSize(e,t){return this.tree._renderViewport(),this.tree.htmlComp.layouted||(this.nodeDimensionsDirty=!0),pr.prefSize(e,t)}}class Rd{constructor(e){this.tree=e}accept(e){if(e.expanded)return!0;if(e.childNodes.forEach((e=>{e._lazyNodeFilterAccepted=!1})),!(e.parentNode&&e.parentNode.expandedLazy&&e.parentNode.lazyExpandingEnabled&&this.tree.lazyExpandingEnabled))return!0;for(let t=0;t<this.tree.selectedNodes.length;t++){let i=this.tree.selectedNodes[t];if("string"==typeof i)break;if(i===e)return e._lazyNodeFilterAccepted=!0,!0}return!!e._lazyNodeFilterAccepted}}class Md{constructor(e){this.tree=e}accept(e){return 0===this.tree.selectedNodes.length?void 0===e.parentNode:this.tree.isNodeInBreadcrumbVisible(e)}}class kd extends U{constructor(e,t){super(),this.field=e,this.repeatable=!0,this.stopPropagation=!0,this.renderingHints.hAlign=ns.RIGHT,this.ctrl=Yr.isCtrl(t),this.shift=Yr.isShift(t),this.alt=Yr.isAlt(t),this.keyStrokeMode=U.Mode.DOWN,this.inheritAccessibility=!1}_accept(e){return!!super._accept(e)&&(this.field.selectedNodes.length>0&&(e._treeCurrentNode=this.field.selectedNodes[0],e._$treeCurrentNode=e._treeCurrentNode.$node),this.field.$container.addClass("keyboard-navigation"),!0)}handle(e){let t=this._computeNewSelection(e._treeCurrentNode);t&&this.selectNodesAndReveal(t,!0)}_computeNewSelection(e){return[]}selectNodesAndReveal(e,t){this.field.selectNodes(e,t),this.field.revealSelection(),this.field.isFocused()||this.field.focus()}}class Id extends U{constructor(e){super(),this.field=e,this.which=[Kr.SPACE],this.renderingHints.render=!1}_accept(e){return super._accept(e)&&this.field.checkable&&this.field.selectedNodes.length}handle(e){let t=this.field.selectedNodes.filter((e=>e.enabled)),i=t.some((e=>!e.checked));t.forEach((function(e){this.field.checkNode(e,i)}),this)}}class Ld extends kd{constructor(e,t){super(e,t),this.which=[Kr.UP],this.renderingHints.text="↑",this.renderingHints.$drawingArea=(e,t)=>{let i=this._computeNewSelection(t._treeCurrentNode);if(i)return i.$node}}_computeNewSelection(e){let t=this.field.visibleNodesFlat;if(0!==t.length)return e?t[t.indexOf(e)-1]:me.last(t)}}class Bd extends kd{constructor(e,t){super(e,t),this.which=[Kr.DOWN],this.renderingHints.text="↓",this.renderingHints.$drawingArea=(e,t)=>{let i=this._computeNewSelection(t._treeCurrentNode);if(i)return i.$node}}_computeNewSelection(e){let t=this.field.visibleNodesFlat;if(0!==t.length)return e?t[t.indexOf(e)+1]:t[0]}}class Od extends kd{constructor(e,t){super(e,t),this.which=[Kr.END],this.renderingHints.$drawingArea=(e,t)=>{let i=this._computeNewSelection(t._treeCurrentNode);if(i)return i.$node}}handle(e){let t=this._computeNewSelection(e._treeCurrentNode);t&&this.selectNodesAndReveal(t)}_computeNewSelection(e){let t=this.field.visibleNodesFlat;if(0!==t.length)return me.last(t)}}class Nd extends kd{constructor(e,t){super(e,t),this.which=[Kr.HOME],this.renderingHints.hAlign=ns.RIGHT,this.renderingHints.$drawingArea=(e,t)=>{if(this.field.visibleNodesFlat.length>0)return this.field.visibleNodesFlat[0].$node}}handle(e){this.field.collapseAll(),this.field.visibleNodesFlat.length>0&&this.selectNodesAndReveal(this.field.visibleNodesFlat[0])}}class Hd extends kd{constructor(e,t){super(e,t),this.which=[Kr.SUBTRACT],this.renderingHints.text="-",this.renderingHints.$drawingArea=(e,t)=>{let i=t._treeCurrentNode;return i.expanded?i.$node:i.parentNode?i.parentNode.$node:void 0}}_accept(e){let t=super._accept(e),i=e._treeCurrentNode;return t&&i&&(i.expanded||i.parentNode)}handle(e){let t=e._treeCurrentNode;t.expanded?this.field.collapseNode(t):t.parentNode&&this.selectNodesAndReveal(t.parentNode,!0)}}class Vd extends kd{constructor(e,t){super(e,t),this.which=[Kr.ADD],this.renderingHints.text="+",this.renderingHints.$drawingArea=(e,t)=>{let i=t._treeCurrentNode;return this.isNodeExpandable(i)?i.$node:i.childNodes.length>0?i.childNodes[0].$node:void 0}}_accept(e){let t=super._accept(e),i=e._treeCurrentNode;return t&&i&&(this.isNodeExpandable(i)||i.childNodes.length>0)}isNodeExpandable(e){return!e.expanded&&!e.leaf}handle(e){let t=e._treeCurrentNode;if(this.isNodeExpandable(t))this.field.expandNode(t,{lazy:!1});else{let e=t.childNodes.filter((function(e){return this.field.visibleNodesFlat.indexOf(e)>-1}),this);e.length>0&&this.selectNodesAndReveal(e[0],!0)}}}class Wd extends Ed{constructor(){super(),this.$nodesContainer,this._scrolldirections="y"}_initTreeKeyStrokeContext(){this.keyStrokeContext.registerKeyStroke([new Ud(this),new Kd(this),new qd(this),new jd(this)])}_createTreeNode(e){return(e=x.nvl(e,{})).parent=this,x.create("CompactTreeNode",e)}_render(){this.$container=this.$parent.appendDiv("compact-tree");let e=new $d(this);this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(e),this.$data=this.$container.appendDiv("tree-data"),this._installScrollbars({borderless:!0}),this.menuBar=x.create("MenuBar",{parent:this,menuOrder:new _l(this.session,"Tree")}),this.menuBar.render(),this.$nodesContainer=this.$data.appendDiv("nodes"),this._updateNodeDimensions(),this._renderViewport(),this.invalidateLayoutTree()}_calculateCurrentViewRange(){return this.viewRangeSize=this.visibleNodesFlat.length,new Mi(0,Math.max(this.visibleNodesFlat.length,0))}calculateViewRangeSize(){return this.visibleNodesFlat.length}_insertNodeInDOMAtPlace(e,t){let i,s=this.visibleNodesFlat[t-1];if(s)if(s.level<e.level)e.$node.insertAfter(s.$node.children()[0]);else{i=s.$node;for(let t=0;t<s.level-e.level;t++)i=i.parent();e.$node.insertAfter(i)}else e.$node.prependTo(this.$nodesContainer)}selectNodes(e,t){let i=[];(e=me.ensure(e)).forEach((e=>{e.isSection()?e.childNodes.length>0&&i.push(e.childNodes[0]):i.push(e)}),this),super.selectNodes(i)}_renderExpansion(e){}_updateItemPath(){}}class zd extends Ad{constructor(e){super(e)}render(){let e=this.getTree();if(this.isSection()){let t=e.$container.makeDiv("section expanded").data("node",this);t.appendDiv("title").text(this.text),this.$node=t}else{let t=this.parentNode.$node.makeDiv("section-node").data("node",this).on("mousedown",e._onNodeMouseDown.bind(e)).on("mouseup",e._onNodeMouseUp.bind(e));this.$node=t}return this.$node}_decorate(){if(!this.$node)return;let e,t=this.$node;t.hasClass("section")?(t=t.children("title"),e="title"):(e="section-node",t.isSelected()&&(e+=" selected")),t.removeClass(),t.addClass(e),t.addClass(this.cssClass),t.text(this.text),ts.legacyStyle(this,t),qt.hasText(this.tooltipText)&&t.attr("title",this.tooltipText)}isSection(){return 0===this.level}}class Gd extends U{constructor(e){super(),this.repeatable=!0,this.field=e,this.keyStrokeMode=U.Mode.DOWN}_accept(e){if(!super._accept(e))return!1;if(!this.field.nodes||!this.field.nodes.length)return!1;let t=this.field.$nodesContainer.find(".section-node.selected"),i=t.data("node"),s=this._findNextNode(t,i);return!!s&&(e._nextNode=s,!0)}handle(e){this.field.selectNodes(e._nextNode),this.field.checkNode(e._nextNode,!0)}_findNextNode(e,t){throw new Error("method must be overwritten by subclass")}}class Ud extends Gd{constructor(e){super(e),this.which=[Kr.UP],this.renderingHints.text="↑"}_findNextNode(e,t){return t?e.prev(".section-node").data("node")||e.parent().prev(".section").children(".section-node").last().data("node"):me.last(me.last(this.field.nodes).childNodes)}}class Kd extends Gd{constructor(e){super(e),this.which=[Kr.DOWN],this.renderingHints.text="↓"}_findNextNode(e,t){return t?e.next(".section-node").data("node")||e.parent().next(".section").children(".section-node").first().data("node"):me.first(me.first(this.field.nodes).childNodes)}}class qd extends Gd{constructor(e){super(e),this.renderingHints.text="←",this.which=[Kr.LEFT]}_findNextNode(e,t){return e.parent().prev(".section").children(".section-node").first().data("node")||e.parent().children(".section-node").not(e).first().data("node")}}class jd extends Gd{constructor(e){super(e),this.renderingHints.text="→",this.which=[Kr.RIGHT]}_findNextNode(e,t){return e.parent().next(".section").children(".section-node").first().data("node")}}function Yd(e,t){return e.makeElement("<input>",t).attr("type","text").attr("autocomplete","NoAutocomplete").disableSpellcheck()}function Xd(e,t){return e.$container.makeDiv(qt.join(" ","input-field",t))}function Jd(e){e&&e instanceof Wp&&e.select(e)}const Zd={activateFirstField:function(e,t){let i=J.findFirstFocusableWidget(t,e);i&&i.activate()},appendIcon:function(e,t){let i=e.appendSpan("icon unfocusable text-field-icon");return t&&i.addClass(t),i},eventOutsideProposalField:function(e,t){let i=n(e.$field,t)||n(e.$icon,t)||n(e.$clearIcon,t),s=o(e.popup,t),r=o(e._tooltip(),t);return!i&&!s&&!r;function n(e,t){return e&&e.isOrHas(t)}function o(e,t){return e&&e.rendered&&e.$container.isOrHas(t)}},handleOnClick:function(e){return e.enabledComputed&&!e.embedded&&!e.popup},initTouch:function(e,t){e.embedded=x.nvl(t.embedded,!1),e.touchMode=x.nvl(t.touchMode,Qe.get().supportsOnlyTouch())},linkElementWithLabel:function(e,t){let i=t.attr("id");i||(i=J.createUniqueId("lbl"),t.attr("id",i));let s=e.attr("aria-labelledby")||"";s&&(i+=" "+s),e.attr("aria-labelledby",i)},makeInputDiv:Xd,makeInputOrDiv:function(e,t){return e.touchMode?Xd(e,t):Yd(e.$container,t)},makeTextField:Yd,selectAllParentTabsOf:function(e){e&&e instanceof iu&&e.visitParentFields(Jd)},selectIfIsTab:Jd,valOrText:function(e,t){let i=e.is("div");if(2!==arguments.length)return i?e.text():e.val();i?e.text(t):e.val(t)},adjustStatusPositionForScrollShadow:function(e,t){e.htmlComp&&(e.htmlComp.suppressInvalidate=!0),t()?J.preserveAndSetProperty((()=>e.setStatusPosition(iu.StatusPosition.TOP)),(()=>e.statusPosition),e,"_statusPositionOrig"):J.resetProperty((t=>e.setStatusPosition(t)),e,"_statusPositionOrig"),e.htmlComp&&(e.htmlComp.suppressInvalidate=!1)}};class Qd extends U{constructor(e,t){super(),this.field=e,this.appLinkTriggerFunction=t,this.which=[Kr.SPACE],this.renderingHints.render=!1}_accept(e){return super._accept(e)&&n()(e.target).hasClass("app-link")}handle(e){this.appLinkTriggerFunction.call(this.field,e)}}class eu extends Y{constructor(){super(),this.tooltip=null,this.contextMenu=null,this.status=null,this.updating=!1,this.autoRemove=!0,this.position=iu.StatusPosition.DEFAULT,this._parents=[],this._parentPropertyChangeListener=this._onParentPropertyChange.bind(this),this._parentHierarchyChangeListener=this._onParentHierarchyChange.bind(this)}_render(){this.$container=this.$parent.appendSpan("status").on("mousedown",this._onStatusMouseDown.bind(this)),this.htmlComp=fr.install(this.$container,this.session)}_remove(){super._remove(),this.tooltip&&(this.tooltip.destroy(),this.tooltip=null),this.contextMenu&&(this.contextMenu.destroy(),this.contextMenu=null),this._removeParentListeners()}_renderProperties(){super._renderProperties(),this._renderPosition()}update(e,t,i,s){this.updating=!0,this.setStatus(e),this.setMenus(t),this.setAutoRemove(i),this.updating=!1,this._updatePopup(s)}clearStatus(){this.setStatus(null)}setStatus(e){this.setProperty("status",e)}_setStatus(e){e=Ii.ensure(e),this._setProperty("status",e)}_renderStatus(){this.updating||this._updatePopup()}setPosition(e){this.setProperty("position",e)}_renderPosition(){this.$container.toggleClass("top",this.position===iu.StatusPosition.TOP),this.invalidateLayoutTree()}_renderVisible(){super._renderVisible(),this.visible||this.hidePopup()}setMenus(e){this.setProperty("menus",me.ensure(e))}_renderMenus(){this.updating||this._updatePopup()}setAutoRemove(e){this.setProperty("autoRemove",e)}_renderAutoRemove(){this.updating||this._updatePopup()}hideTooltip(){let e=new ht;this.tooltip&&(this.trigger("hideTooltip",e),e.defaultPrevented||(this.tooltip.destroy(),this._removeParentListeners()))}_updatePopup(e){this._requiresTooltip()||this.hideTooltip(),me.empty(this.menus)&&this.hideContextMenu(),!0===e?this.showTooltip():!1===e&&this.hideTooltip()}_requiresTooltip(){return!(!this.status||!this.rendered)&&!(me.empty(this.menus)&&!qt.hasText(this.status.message))}showTooltip(){if(!this._requiresTooltip())return;let e=new ht;this.trigger("showTooltip",e),e.defaultPrevented||(this._updateParentListeners(),this.hideContextMenu(),this.tooltip&&this.tooltip.autoRemove!==this.autoRemove&&this.hideTooltip(),this.tooltip?(this.tooltip.setText(this.status.message),this.tooltip.setSeverity(this.status.severity),this.tooltip.setMenus(this.menus)):(this.tooltip=x.create("Tooltip",{parent:this,$anchor:this.$container,text:this.status.message,severity:this.status.severity,autoRemove:this.autoRemove,menus:this.menus}),this.tooltip.render(),this.$container.addClass("selected"),this.tooltip.one("destroy",(()=>{this.tooltip=null,this.$container&&this.$container.removeClass("selected")}))))}hideContextMenu(){this.contextMenu&&this.contextMenu.close()}showContextMenu(){me.empty(this.menus)||(this.hidePopup(),this.contextMenu&&this.contextMenu.isRemovalPending()&&this.contextMenu.removeImmediately(),this.contextMenu=x.create("ContextMenuPopup",{parent:this,$anchor:this.$container,menuItems:this.menus,cloneMenuItems:!1,closeOnAnchorMouseDown:!1}),this.contextMenu.open(),this.$container.addClass("selected"),this.contextMenu.one("destroy",(()=>{this.contextMenu=null,this.$container&&this.$container.removeClass("selected")})))}hidePopup(){this.hideTooltip(),this.hideContextMenu()}togglePopup(){if(this.status)return this.hideContextMenu(),void this.toggleTooltip();me.empty(this.menus)?this.hidePopup():(this.hideTooltip(),this.session.onRequestsDone((()=>{this.rendered&&this.toggleContextMenu()})))}toggleTooltip(){this.tooltip?this.hideTooltip():this.showTooltip()}toggleContextMenu(){this.contextMenu?this.hideContextMenu():this.showContextMenu()}_onStatusMouseDown(e){this.trigger("statusMouseDown",e),e.defaultPrevented||this.togglePopup()}_updateTooltipVisibility(e){this.isEveryParentVisible()?setTimeout((()=>{this.rendered&&this.isEveryParentVisible()&&this.tooltip&&!this.tooltip.rendered&&this.tooltip.render()})):this.tooltip&&this.tooltip.rendered&&this.tooltip.remove()}_onParentHierarchyChange(e){this._updateParentListeners()}_onParentPropertyChange(e){"visible"===e.propertyName&&this._updateTooltipVisibility(e.source)}_removeParentListeners(){this._parents.forEach((e=>{e.off("hierarchyChange",this._parentHierarchyChangeListener),e.off("propertyChange",this._parentPropertyChangeListener)})),this._parents=[]}_updateParentListeners(){this._removeParentListeners();let e=this.parent;for(;e;)e.on("hierarchyChange",this._parentHierarchyChangeListener),e.on("propertyChange",this._parentPropertyChangeListener),this._parents.push(e),e=e.parent}}function tu(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class iu extends Y{constructor(){super(),this.dropType=0,this.dropMaximumSize=at.DEFAULT_DROP_MAXIMUM_SIZE,this.empty=!0,this.errorStatus=null,this.fieldStyle=iu.DEFAULT_FIELD_STYLE,this.gridData=null,this.gridDataHints=new lu,this.mode=iu.Mode.DEFAULT,this.keyStrokes=[],this.label=null,this.labelVisible=!0,this.labelPosition=iu.LabelPosition.DEFAULT,this.labelWidthInPixel=0,this.labelUseUiWidth=!1,this.labelHtmlEnabled=!1,this.mandatory=!1,this.statusMenuMappings=[],this.menus=[],this.menusVisible=!0,this.currentMenuTypes=[],this.preventInitialFocus=!1,this.requiresSave=!1,this.statusPosition=iu.StatusPosition.DEFAULT,this.statusVisible=!0,this.suppressStatus=!1,this.touched=!1,this.tooltipText=null,this.tooltipAnchor=iu.TooltipAnchor.DEFAULT,this.onFieldTooltipOptionsCreator=null,this.suppressStatus=null,this.$label=null,this.$field=null,this.$fieldContainer=null,this.$icon=null,this.$status=null,this.disabledCopyOverlay=!1,this.$disabledCopyOverlay=null,this._addWidgetProperties(["keyStrokes","menus","statusMenuMappings"]),this._addCloneProperties(["dropType","dropMaximumSize","errorStatus","fieldStyle","gridDataHints","gridData","label","labelVisible","labelPosition","labelWidthInPixel","labelUseUiWidth","mandatory","mode","preventInitialFocus","requiresSave","touched","statusVisible","statusPosition","statusMenuMappings","tooltipText","tooltipAnchor"]),this._menuPropertyChangeHandler=this._onMenuPropertyChange.bind(this)}_createKeyStrokeContext(){return new Zr}_createLoadingSupport(){return new z({widget:this})}_init(e){super._init(e),this.resolveConsts([{property:"labelPosition",constType:iu.LabelPosition}]),this.resolveTextKeys(["label","tooltipText"]),this._setKeyStrokes(this.keyStrokes),this._setMenus(this.menus),this._setErrorStatus(this.errorStatus),this._setGridDataHints(this.gridDataHints),this._setGridData(this.gridData),this._updateEmpty()}_initProperty(e,t){"gridDataHints"===e?this._initGridDataHints(t):super._initProperty(e,t)}_initGridDataHints(e){e instanceof lu?this.gridDataHints=e:Ai.isPlainObject(e)?n().extend(this.gridDataHints,e):this.gridDataHints=e}_render(){throw new Error("sub-classes of FormField must implement a _render method")}_renderProperties(){super._renderProperties(),this._renderMandatory(),this._renderTooltipText(),this._renderErrorStatus(),this._renderMenus(),this._renderLabel(),this._renderLabelVisible(),this._renderStatusVisible(),this._renderStatusPosition(),this._renderFont(),this._renderForegroundColor(),this._renderBackgroundColor(),this._renderLabelFont(),this._renderLabelForegroundColor(),this._renderLabelBackgroundColor(),this._renderGridData(),this._renderPreventInitialFocus(),this._renderFieldStyle()}_remove(){super._remove(),this._removeField(),this._removeStatus(),this._removeLabel(),this._removeIcon(),this.removeMandatoryIndicator(),this._removeDisabledCopyOverlay(),at.uninstallDragAndDropHandler(this)}setFieldStyle(e){this.setProperty("fieldStyle",e)}_renderFieldStyle(){if(this._renderFieldStyleInternal(this.$container),this._renderFieldStyleInternal(this.$fieldContainer),this._renderFieldStyleInternal(this.$field),this.rendered){let e=this.htmlComp.getParent();e&&e.invalidateLayoutTree(),this.invalidateLayoutTree()}}_renderFieldStyleInternal(e){e&&e.toggleClass("alternative",this.fieldStyle===iu.FieldStyle.ALTERNATIVE)}setMandatory(e){this.setProperty("mandatory",e)}_renderMandatory(){this.$container.toggleClass("mandatory",this.mandatory)}_errorStatus(){return this.errorStatus}setErrorStatus(e){this.setProperty("errorStatus",e)}_setErrorStatus(e){e=Ii.ensure(e),this._setProperty("errorStatus",e)}addErrorStatus(e){if(!(e instanceof Ii))throw new Error("errorStatus is not a Status");let t=this._errorStatus();t=t?t.ensureChildren():Ii.ok("Root"),t.addStatus(e),this.setErrorStatus(t)}containsStatus(e){return!!this.errorStatus&&this.errorStatus.containsStatus(e)}setSuppressStatus(e){this.setProperty("suppressStatus",e)}_renderSuppressStatus(){this._renderErrorStatus()}_isSuppressStatusIcon(){return x.isOneOf(this.suppressStatus,iu.SuppressStatus.ALL,iu.SuppressStatus.ICON)}_isSuppressStatusField(){return x.isOneOf(this.suppressStatus,iu.SuppressStatus.ALL,iu.SuppressStatus.FIELD)}removeErrorStatus(e){this.removeErrorStatusByPredicate((t=>t instanceof e))}removeErrorStatusByPredicate(e){let t=this._errorStatus();if(t&&t.containsStatusByPredicate(e)){let i=t.clone();i.removeAllStatusByPredicate(e),i.hasChildren()?this.setErrorStatus(i):this.clearErrorStatus()}}clearErrorStatus(){this.setErrorStatus(null)}_renderErrorStatus(){let e=this._errorStatus(),t=!!e,i=t&&!this._isSuppressStatusField()?"has-"+e.cssClass():"";this._updateErrorStatusClasses(i,t),this._updateFieldStatus()}_updateErrorStatusClasses(e,t){this._updateErrorStatusClassesOnElement(this.$container,e,t),this._updateErrorStatusClassesOnElement(this.$field,e,t)}_updateErrorStatusClassesOnElement(e,t,i){e&&e.removeClass(iu.SEVERITY_CSS_CLASSES).addClass(t,i)}setTooltipText(e){this.setProperty("tooltipText",e)}_renderTooltipText(){this._updateTooltip()}setTooltipAnchor(e){this.setProperty("tooltipAnchor",e)}_renderTooltipAnchor(){this._updateTooltip()}_updateTooltip(){let e=this.hasStatusTooltip();if(this.$container.toggleClass("has-tooltip",e),this.$field&&this.$field.toggleClass("has-tooltip",e),this._updateFieldStatus(),this.$fieldContainer)if(this.hasOnFieldTooltip()){let e=this.onFieldTooltipOptionsCreator||this._createOnFieldTooltipOptions;yo.install(this.$fieldContainer,e.call(this))}else yo.uninstall(this.$fieldContainer)}hasStatusTooltip(){return this.tooltipAnchor===iu.TooltipAnchor.DEFAULT&&qt.hasText(this.tooltipText)}hasOnFieldTooltip(){return this.tooltipAnchor===iu.TooltipAnchor.ON_FIELD&&qt.hasText(this.tooltipText)}setOnFieldTooltipOptionsCreator(e){this.onFieldTooltipOptionsCreator=e}_createOnFieldTooltipOptions(){return{parent:this,text:this.tooltipText,arrowPosition:50}}_renderVisible(){super._renderVisible(),this.rendered&&this._renderErrorStatus()}setLabel(e){this.setProperty("label",e)}_renderLabel(){let e=this.label;this.labelPosition===iu.LabelPosition.ON_FIELD?(this._renderPlaceholder(),this.$label&&this.$label.text("")):this.$label&&(this._removePlaceholder(),this.$label.contentOrNbsp(this.labelHtmlEnabled,e,"empty").toggleClass("top",this.labelPosition===iu.LabelPosition.TOP),(this.labelUseUiWidth||this.labelWidthInPixel===iu.LabelWidth.UI)&&this.invalidateLayoutTree())}_renderEmptyLabel(){this.$label.html(" ").toggleClass("top",this.labelPosition===iu.LabelPosition.TOP)}_renderPlaceholder(e){(e=x.nvl(e,this.$field))&&e.placeholder(this.label)}_removePlaceholder(e){(e=x.nvl(e,this.$field))&&e.placeholder("")}setLabelVisible(e){this.setProperty("labelVisible",e)}_renderLabelVisible(){let e=this.labelVisible;if(this._renderChildVisible(this.$label,e),this.$container.toggleClass("label-hidden",!e),this.rendered&&this.labelPosition===iu.LabelPosition.TOP){let e=this.htmlComp.getParent();e&&e.invalidateLayoutTree()}}setLabelWidthInPixel(e){this.setProperty("labelWidthInPixel",e)}_renderLabelWidthInPixel(){this.invalidateLayoutTree()}setLabelUseUiWidth(e){this.setProperty("labelUseUiWidth",e)}_renderLabelUseUiWidth(){this.invalidateLayoutTree()}setStatusVisible(e){this.setProperty("statusVisible",e)}_renderStatusVisible(){this._updateFieldStatus()}setStatusPosition(e){this.setProperty("statusPosition",e)}_renderStatusPosition(e){this._updateFieldStatus()}_tooltip(){return this.fieldStatus?this.fieldStatus.tooltip:null}_updateFieldStatus(){if(!this.fieldStatus)return;let e,t=this._errorStatus(),i=null,s=this._computeStatusVisible(),r=!0;if(this.fieldStatus.setPosition(this.statusPosition),this.fieldStatus.setVisible(s),s){if(t){if(this.mode===iu.Mode.CELLEDITOR)return;i=t,r=!i.isError(),e=this._getMenusForStatus(t)}else this.hasStatusTooltip()?(i=x.create("Status",{message:this.tooltipText,severity:Ii.Severity.INFO}),e=this.getContextMenuItems()):e=this.getContextMenuItems();this.fieldStatus.update(i,e,r,this._isInitialShowStatus())}}_isInitialShowStatus(){return!!this._errorStatus()}_computeStatusVisible(){let e=this._errorStatus(),t=this.statusVisible,i=!!e,s=this.hasStatusTooltip();return!this._isSuppressStatusIcon()&&this.visible&&(t||i||s||this._hasMenus()&&this.menusVisible)}_renderChildVisible(e,t){if(e)return e.isVisible()!==t?(e.setVisible(t),this.invalidateLayoutTree(),!0):void 0}setLabelPosition(e){this.setProperty("labelPosition",e)}_renderLabelPosition(e){if(this._renderLabel(),this.rendered){let e=this.htmlComp.getParent();e&&e.invalidateLayoutTree(),this.invalidateLayoutTree()}}setLabelHtmlEnabled(e){this.setProperty("labelHtmlEnabled",e)}_renderLabelHtmlEnabled(){this._renderLabel()}_renderEnabled(){super._renderEnabled(),this.$field&&this.$field.setEnabled(this.enabledComputed),this._updateDisabledCopyOverlay(),this._installOrUninstallDragAndDropHandler()}_renderDisabledStyle(){this._renderDisabledStyleInternal(this.$container),this._renderDisabledStyleInternal(this.$fieldContainer),this._renderDisabledStyleInternal(this.$field),this._renderDisabledStyleInternal(this.$mandatory)}setFont(e){this.setProperty("font",e)}_renderFont(){ts.legacyFont(this,this.$field)}setForegroundColor(e){this.setProperty("foregroundColor",e)}_renderForegroundColor(){ts.legacyForegroundColor(this,this.$field)}setBackgroundColor(e){this.setProperty("backgroundColor",e)}_renderBackgroundColor(){ts.legacyBackgroundColor(this,this.$field)}setLabelFont(e){this.setProperty("labelFont",e)}_renderLabelFont(){ts.legacyFont(this,this.$label,"label")}setLabelForegroundColor(e){this.setProperty("labelForegroundColor",e)}_renderLabelForegroundColor(){ts.legacyForegroundColor(this,this.$label,"label")}setLabelBackgroundColor(e){this.setProperty("labelBackgroundColor",e)}_renderLabelBackgroundColor(){ts.legacyBackgroundColor(this,this.$label,"label")}setGridDataHints(e){this.setProperty("gridDataHints",e)}_setGridDataHints(e){e||(e=new lu),this._setProperty("gridDataHints",lu.ensure(e))}_renderGridDataHints(){this.parent.invalidateLogicalGrid()}_setGridData(e){e||(e=new lu),this._setProperty("gridData",lu.ensure(e))}_renderGridData(){if(this.rendered){let e=this.htmlComp.getParent();e&&e.invalidateLayoutTree()}}setMenus(e){this.setProperty("menus",e)}_setMenus(e){e=me.ensure(e),this.menus.forEach((function(e){e.off("propertyChange",this._menuPropertyChangeHandler)}),this),this.updateKeyStrokes(e,this.menus),this._setProperty("menus",e),this.menus.forEach((function(e){e.on("propertyChange",this._menuPropertyChangeHandler)}),this)}insertMenu(e){this.insertMenus([e])}insertMenus(e){0!==(e=me.ensure(e)).length&&this.setMenus(this.menus.concat(e))}deleteMenu(e){this.deleteMenus([e])}deleteMenus(e){if(0===(e=me.ensure(e)).length)return;let t=this.menus.slice();me.removeAll(t,e),this.setMenus(t)}_onMenuPropertyChange(e){"visible"===e.propertyName&&this.rendered&&this._updateMenus()}getContextMenuItems(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.currentMenuTypes.length?al.filter(this.menus,this.currentMenuTypes,e):e?this.menus.filter((e=>e.visible)):this.menus}_getMenusForStatus(e){return this.statusMenuMappings.filter((t=>!(!t.menu||!t.menu.visible)&&((0===t.codes.length||t.codes.indexOf(e.code)>-1)&&(0===t.severities.length||t.severities.indexOf(e.severity)>-1)))).map((e=>e.menu))}_hasMenus(){return!!(this.menus&&this.getContextMenuItems().length>0)}_updateMenus(){this.$container.toggleClass("has-menus",this._hasMenus()&&this.menusVisible),this._updateFieldStatus()}_renderMenus(){this._updateMenus()}_renderStatusMenuMappings(){this._updateMenus()}setMenusVisible(e){this.setProperty("menusVisible",e)}_setMenusVisible(e){this._setProperty("menusVisible",e)}_renderMenusVisible(){this._updateMenus()}setCurrentMenuTypes(e){this.setProperty("currentMenuTypes",e)}_renderCurrentMenuTypes(){this._updateFieldStatus()}_setKeyStrokes(e){this.updateKeyStrokes(e,this.keyStrokes),this._setProperty("keyStrokes",e)}_$tooltipParent(){}_hideStatusMessage(){this.fieldStatus&&this.fieldStatus.hideTooltip()}_renderPreventInitialFocus(){this.$container.toggleClass("prevent-initial-focus",!!this.preventInitialFocus)}focus(){if(!this.rendered)return this.session.layoutValidator.schedulePostValidateFunction(this.focus.bind(this)),!1;if(!this.enabledComputed)return!1;let e=this.getFocusableElement();return!!e&&this.session.focusManager.requestFocus(e)}getFocusableElement(){return this.rendered&&this.$field?this.$field[0]:null}_onFieldFocus(e){this.setFocused(!0)}_onFieldBlur(){this.setFocused(!1)}activate(){if(!this.enabledComputed||!this.rendered)return;let e=this.getFocusableElement();e&&n().ensure(e).focus()}get$Scrollable(){return this.$field}getParentGroupBox(){let e=this.parent;for(;e&&!(e instanceof ac);)e=e.parent;return e}getParentField(){return this.parent}addLabel(){this.$label=this.$container.appendElement("<label>"),yo.installForEllipsis(this.$label,{parent:this}),this.$label.on("click",this._onLabelClick.bind(this))}_onLabelClick(e){qt.hasText(this.label)&&this.activate()}_removeLabel(){this.$label&&(yo.uninstall(this.$label),this.$label.remove(),this.$label=null)}_linkWithLabel(e){this.$label&&e&&Zd.linkElementWithLabel(e,this.$label)}_removeIcon(){this.$icon&&(this.$icon.remove(),this.$icon=null)}addField(e){this.$fieldContainer||this.addFieldContainer(e),this.$field=e,this._linkWithLabel(e),this.$field.on("blur",this._onFieldBlur.bind(this)).on("focus",this._onFieldFocus.bind(this))}addFieldContainer(e){this.$fieldContainer=e.addClass("field"),(0===this.$container.has(e).length||e.next().length>0)&&e.appendTo(this.$container)}_removeField(){this.$field&&(this.$field.remove(),this.$field=null),this.$fieldContainer&&(this.$fieldContainer.remove(),this.$fieldContainer=null)}addStatus(){this.fieldStatus||(this.fieldStatus=x.create("FieldStatus",{parent:this,position:this.statusPosition,visible:this._computeStatusVisible()}),this.fieldStatus.render(),this.$status=this.fieldStatus.$container,this._updateFieldStatus())}_removeStatus(){this.fieldStatus&&(this.fieldStatus.destroy(),this.$status=null,this.fieldStatus=null)}addPseudoStatus(){this.$pseudoStatus=this.$container.appendSpan("status")}addMandatoryIndicator(){this.$mandatory=this.$container.appendSpan("mandatory-indicator")}removeMandatoryIndicator(){this.$mandatory&&(this.$mandatory.remove(),this.$mandatory=null)}addIcon(e){e||(e=this.$container),this.$icon=Zd.appendIcon(e).on("mousedown",this._onIconMouseDown.bind(this))}_onIconMouseDown(e){this.enabledComputed&&this.$field.focus()}addContainer(e,t,i){this.$container=e.appendDiv("form-field"),t&&this.$container.addClass(t);let s=fr.install(this.$container,this.session);s.setLayout(i||this._createLayout()),this.htmlComp=s}_createLayout(){return new ru(this)}updateInnerAlignment(e){let t=(e=e||{}).$fieldContainer||this.$fieldContainer;this._updateElementInnerAlignment(e,t),t!==this.$container&&this._updateElementInnerAlignment(e,this.$container)}_updateElementInnerAlignment(e,t){e=e||{};let i=x.nvl(e.useHorizontalAlignment,!0),s=x.nvl(e.useVerticalAlignment,!0);if(t&&(t.removeClass("has-inner-alignment halign-left halign-center halign-right valign-top valign-middle valign-bottom"),i||s)){t.addClass("has-inner-alignment");let e=this.gridData;if(this.parent.logicalGrid&&(e=this.gridDataHints),i){let i=e.horizontalAlignment;t.addClass(i<0?"halign-left":i>0?"halign-right":"halign-center")}if(s){let i=e.verticalAlignment;t.addClass(i<0?"valign-top":i>0?"valign-bottom":"valign-middle")}this.invalidateLayout()}}addCellEditorFieldCssClasses(e,t){e.addClass("cell-editor-field").addClass(Qe.get().cssClassForEdge()),t.cssClass&&e.addClass(t.cssClass)}prepareForCellEdit(e){e=e||{},this.$mandatory&&this.removeMandatoryIndicator(),this.$status&&(this.$status.remove(),this.$status=null),this.$container&&this.$container.addClass("cell-editor-form-field"),this.$field&&this.addCellEditorFieldCssClasses(this.$field,e)}setDropType(e){this.setProperty("dropType",e)}_renderDropType(){this._installOrUninstallDragAndDropHandler()}setDropMaximumSize(e){this.setProperty("dropMaximumSize",e)}_installOrUninstallDragAndDropHandler(){at.installOrUninstallDragAndDropHandler(this._getDragAndDropHandlerOptions())}_getDragAndDropHandlerOptions(){return{target:this,doInstall:()=>this.dropType&&this.enabledComputed,container:()=>this.$field||this.$container,dropType:()=>this.dropType,onDrop:e=>this.trigger("drop",e)}}_updateDisabledCopyOverlay(){this.disabledCopyOverlay&&!Qe.get().supportsCopyFromDisabledInputFields()&&(this.enabledComputed?this._removeDisabledCopyOverlay():(this._renderDisabledCopyOverlay(),this.revalidateLayout()))}_renderDisabledCopyOverlay(){this.$disabledCopyOverlay||(this.$disabledCopyOverlay=this.$container.appendDiv("disabled-overlay").on("contextmenu",this._createCopyContextMenu.bind(this)))}_removeDisabledCopyOverlay(){this.$disabledCopyOverlay&&(this.$disabledCopyOverlay.remove(),this.$disabledCopyOverlay=null)}_createCopyContextMenu(e){if(!this.visible||qt.empty(this.displayText))return;let t=x.create("Menu",{parent:this,text:this.session.text("ui.Copy"),inheritAccessibility:!1});t.on("action",(e=>{this.exportToClipboard()})),x.create("ContextMenuPopup",{parent:this,menuItems:[t],cloneMenuItems:!1,location:{x:e.pageX,y:e.pageY}}).open()}visitFields(e){return e(this)}visitParentFields(e){let t=this.parent;for(;t instanceof iu;)e(t),t=t.parent}markAsSaved(){this.setProperty("touched",!1),this.updateRequiresSave()}touch(){this.setProperty("touched",!0),this.updateRequiresSave()}updateRequiresSave(){this.initialized&&(this.requiresSave=this.touched||this.computeRequiresSave())}computeRequiresSave(){return!1}getValidationResult(){let e=!this._errorStatus(),t=!this.mandatory||!this.empty;return{valid:e&&t,validByErrorStatus:e,validByMandatory:t,field:this,label:this.label,reveal:()=>{Zd.selectAllParentTabsOf(this),this.focus()}}}_updateEmpty(){}requestInput(){this.enabledComputed&&this.rendered&&this.focus()}clone(e,t){let i=super.clone(e,t);return this._deepCloneProperties(i,"menus",t),i}exportToClipboard(){if(!this.displayText)return;let e=new ht({text:this.displayText});this.trigger("clipboardExport",e),e.defaultPrevented||this._exportToClipboard(e.text)}_exportToClipboard(e){ye.copyText({parent:this,text:e})}}tu(iu,"FieldStyle",{CLASSIC:"classic",ALTERNATIVE:"alternative"}),tu(iu,"SuppressStatus",{ALL:"all",ICON:"icon",FIELD:"field"}),tu(iu,"DEFAULT_FIELD_STYLE",iu.FieldStyle.ALTERNATIVE),tu(iu,"StatusPosition",{DEFAULT:"default",TOP:"top"}),tu(iu,"LabelPosition",{DEFAULT:0,LEFT:1,ON_FIELD:2,RIGHT:3,TOP:4,BOTTOM:5}),tu(iu,"TooltipAnchor",{DEFAULT:"default",ON_FIELD:"onField"}),tu(iu,"LabelWidth",{DEFAULT:0,UI:-1}),tu(iu,"FULL_WIDTH",0),tu(iu,"Mode",{DEFAULT:"default",CELLEDITOR:"celleditor"}),tu(iu,"SEVERITY_CSS_CLASSES","has-error has-warning has-info has-ok");class su extends j{constructor(){super(),this.enabledWhenOffline=!1}_goOffline(){this.enabledWhenOffline||(this._enabledBeforeOffline=this.widget.enabled,this.widget.setEnabled(!1))}_goOnline(){this.enabledWhenOffline||this.widget.setEnabled(this._enabledBeforeOffline)}_onWidgetEvent(e){"drop"===e.type&&this.widget.dragAndDropHandler?this.widget.dragAndDropHandler.uploadFiles(e):super._onWidgetEvent(e)}}class ru extends _r{constructor(e){super(),this.formField=e,this._initDefaults(),this.htmlPropertyChangeHandler=this._onHtmlEnvironmentPropertyChange.bind(this),mr.get().on("propertyChange",this.htmlPropertyChangeHandler),this.formField.one("remove",(()=>{mr.get().off("propertyChange",this.htmlPropertyChangeHandler)}))}_initDefaults(){this.mandatoryIndicatorWidth=mr.get().fieldMandatoryIndicatorWidth,this.statusWidth=mr.get().fieldStatusWidth,this.rowHeight=mr.get().formRowHeight,this.compactFieldWidth=ru.COMPACT_FIELD_WIDTH}_onHtmlEnvironmentPropertyChange(){this._initDefaults(),this.formField.invalidateLayoutTree()}layout(e){let t,i,s,r,n,o,l,a,h,d,u=fr.get(e),c=this.formField,p=c._tooltip(),g=this.labelWidth(),m=this.statusWidth;if(t=u.insets({includeBorder:!1}),l=t.top,d=t.right,a=t.bottom,h=t.left,this._isLabelVisible())if((c.labelWidthInPixel===iu.LabelWidth.UI||c.labelUseUiWidth)&&(g=c.$label.hasClass("empty")?0:pr.prefSize(c.$label).width),x.isOneOf(c.labelPosition,iu.LabelPosition.DEFAULT,iu.LabelPosition.LEFT))pr.setBounds(c.$label,h,l,g,this.rowHeight),h+=g+c.$label.cssMarginX();else if(c.labelPosition===iu.LabelPosition.TOP){let e=pr.prefSize(c.$label).height;c.$label.cssHeight(e),l+=e+c.$label.cssMarginY(),o=!0}if(c.$mandatory&&c.$mandatory.isVisible()&&(c.$mandatory.cssTop(l).cssLeft(h).cssWidth(this.mandatoryIndicatorWidth),h+=c.$mandatory.outerWidth(!0)),this._isStatusVisible())if(c.$status.cssWidth(m),c.statusPosition===iu.StatusPosition.TOP&&o){let e=pr.prefSize(c.$status,{useCssSize:!0}).height,i=t.top+c.$label.cssPaddingTop()+c.$label.height()/2-e/2;c.$status.cssTop(i).cssRight(d+c.$label.cssMarginRight()).cssHeight(e);let s=pr.size(c.$status,!0).width;c.$label.cssPaddingRight(s)}else c.$status.cssTop(l).cssRight(d).cssHeight(this.rowHeight),d+=m+c.$status.cssMarginX();if(c.$fieldContainer){i=new rr(l-t.top,d-t.right,a-t.bottom,h-t.left);let e=pr.margins(c.$fieldContainer);if(s=u.availableSize({exact:!0}).subtract(u.insets()).subtract(i).subtract(e),r=new or(h,l,s.width,s.height),"absolute"!==c.$fieldContainer.css("position")&&(r.x=0,r.y=0),n=fr.optGet(c.$fieldContainer),n?n.setBounds(r):pr.setBounds(c.$fieldContainer,r),this.compactFieldWidth>-1&&(c.$field.toggleClass("compact",r.width<=this.compactFieldWidth),c.$container.toggleClass("compact",r.width<=this.compactFieldWidth)),o){let t=s.add(e).width-c.$label.cssMarginX();c.$mandatory&&c.$mandatory.isVisible()&&(t+=c.$mandatory.outerWidth(!0)),c.$label.cssWidth(t)}}if(c.$fieldContainer){let e=this._$elementForIconLayout(),t=pr.borders(e),i=pr.offsetBounds(e);l+=t.top,d+=t.right,r.x+=t.left,r.y+=t.top,r.height=i.height-t.top-t.bottom,r.width=i.width-t.left-t.right,c.$icon&&this._layoutIcon(c,r,d,l),c.$clearIcon&&this._layoutClearIcon(c,r,d,l)}p&&p.rendered&&p.position(),c.$field&&Yn.update(c.$field,!0),this._layoutDisabledCopyOverlay()}_layoutDisabledCopyOverlay(){if(this.formField.$field&&this.formField.$disabledCopyOverlay){let e=this.formField.$disabledCopyOverlay,t=this.formField.$field,i=t.position(),s=pr.insets(t,{includePadding:!0}),r=t[0],n=t.css("overflow-x"),o=t.css("overflow-y"),l="scroll"===n||"auto"===n&&r.scrollWidth-r.clientWidth>0,a="scroll"===o||"auto"===o&&r.scrollHeight-r.clientHeight>0,h=Qe.get().scrollbarWidth;e.css("top",i.top).css("left",i.left).width(t.width()+s.horizontal()-(a?h:0)).height(t.height()+s.vertical()-(l?h:0))}}_isLabelVisible(){return!!this.formField.$label&&this.formField.labelVisible}_isStatusVisible(){return!!this.formField.$status&&(this.formField.statusVisible||this.formField.$status.isVisible())}preferredLayoutSize(e,t){let i=fr.get(this.formField.$container),s=this.formField,r=new sr,n=new sr,o=new sr,l=new sr,a=x.nvl(t.widthHint,0),h=x.nvl(t.heightHint,0),d=s.statusPosition===iu.StatusPosition.TOP&&this._isLabelVisible()&&s.labelPosition===iu.LabelPosition.TOP;if(s.$mandatory&&s.$mandatory.isVisible()&&(n.width=this.mandatoryIndicatorWidth+s.$mandatory.cssMarginX(),a-=n.width),this._isLabelVisible()&&(r.width=this.labelWidth()+s.$label.cssMarginX(),r.height=this.rowHeight,s.labelPosition===iu.LabelPosition.TOP?(r.width=0,r.height=pr.prefSize(s.$label,!0).height):(s.labelWidthInPixel===iu.LabelWidth.UI||s.labelUseUiWidth)&&(s.$label.hasClass("empty")?r.width=0:r=pr.prefSize(s.$label,!0)),x.isOneOf(s.labelPosition,iu.LabelPosition.DEFAULT,iu.LabelPosition.LEFT)?a-=r.width:s.labelPosition===iu.LabelPosition.TOP&&(h-=r.height)),this._isStatusVisible()&&(o.width=this.statusWidth+s.$status.cssMarginX(),d||(o.height=this.rowHeight,a-=o.width)),s.$fieldContainer){let e=pr.margins(s.$fieldContainer),i=fr.optGet(s.$fieldContainer);i||(a-=e.horizontal(),h-=e.vertical()),t.widthHint&&(t.widthHint=a),t.heightHint&&(t.heightHint=h),l=i?i.prefSize(t).add(e):pr.prefSize(s.$fieldContainer,t).add(e)}let u=new sr;return u.width=l.width,u.height=l.height,u.width+=n.width,u.height=Math.max(u.height,n.height),x.isOneOf(s.labelPosition,iu.LabelPosition.DEFAULT,iu.LabelPosition.LEFT)?(u.width+=r.width,u.height=Math.max(u.height,r.height)):s.labelPosition===iu.LabelPosition.TOP&&(u.width=Math.max(u.width,r.width),u.height+=r.height),d||(u.width+=o.width,u.height=Math.max(u.height,o.height)),u=u.add(i.insets()),u}_$elementForIconLayout(){return this.formField.$field}_layoutIcon(e,t,i,s){let r=this.rowHeight;t&&(r=t.height),e.$icon.cssRight(i).cssTop(t.y).cssHeight(r)}_layoutClearIcon(e,t,i,s){let r=this.rowHeight;t&&(r=t.height),e instanceof cu&&e.gridData.horizontalAlignment>0?e.$clearIcon.cssLeft(t.x).cssRight("").cssTop(t.y).cssHeight(r):e.$clearIcon.cssLeft("").cssRight(i).cssTop(t.y).cssHeight(r)}labelWidth(){return iu.LabelWidth.DEFAULT===this.formField.labelWidthInPixel?mr.get().fieldLabelWidth:this.formField.labelWidthInPixel}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(ru,"COMPACT_FIELD_WIDTH",61);class nu extends Y{constructor(){super(),this.codes=[],this.severities=[],this.menu=null,this._addWidgetProperties(["menu"])}_createChild(e){if("string"==typeof e){let t=this.parent.widget(e);if(!t)throw new Error("Referenced widget not found: "+e);return t}return super._createChild(e)}}class ou extends j{constructor(){super()}}class lu{constructor(e){e=e||{},this.x=-1,this.y=-1,this.w=1,this.h=1,this.weightX=-1,this.weightY=-1,this.useUiWidth=!1,this.useUiHeight=!1,this.horizontalAlignment=-1,this.verticalAlignment=-1,this.fillHorizontal=!0,this.fillVertical=!0,this.widthInPixel=0,this.heightInPixel=0,n().extend(this,e)}static createFromHints(e,t){let i=new lu(e.gridDataHints);return i.w===iu.FULL_WIDTH&&(i.w=t),i}static ensure(e){return e?e instanceof lu?e:new lu(e):e}}class au extends iu{constructor(){super()}getFields(){throw new Error("Not implemented")}setFields(e){throw new Error("Not implemented")}visitFields(e){let t=super.visitFields(e);if(t===yu.TERMINATE)return yu.TERMINATE;if(t===yu.SKIP_SUBTREE)return yu.CONTINUE;let i=this.getFields();for(let s=0;s<i.length;s++){if(t=i[s].visitFields(e),t===yu.TERMINATE)return yu.TERMINATE}}setFieldStyle(e){this.getFields().forEach((t=>{t.setFieldStyle(e)})),super.setFieldStyle(e)}activate(){Zd.activateFirstField(this,this.getFields())}getFocusableElement(){let e=J.findFirstFocusableWidget(this.getFields(),this);return e?e.getFocusableElement():null}}class hu extends su{constructor(){super(),this.enabledWhenOffline=!0}}class du extends iu{constructor(){super(),this.clearable=du.Clearable.FOCUSED,this.displayText=null,this.formatter=this._formatValue.bind(this),this.hasText=!1,this.initialValue=null,this.invalidValueMessageKey="InvalidValueMessageX",this.parser=this._parseValue.bind(this),this.value=null,this.validators=[],this.validators.push(this._validateValue.bind(this)),this._updateDisplayTextPending=!1,this.$clearIcon=null,this._addCloneProperties(["value","displayText","clearable"])}_init(e){super._init(e),this.validator&&(this.setValidator(this.validator),delete this.validator),this._initValue(this.value)}_initValue(e){this.value=null,this._setValue(e),this._updateEmpty()}_renderProperties(){super._renderProperties(),this._renderDisplayText(),this._renderClearable(),this._renderHasText()}_remove(){super._remove(),this.$clearIcon=null}_renderDisplayText(){this._updateHasText()}_readDisplayText(){return""}_onClearIconMouseDown(e){this.clear(),e.preventDefault()}_onFieldBlur(){super._onFieldBlur(),this.acceptInput(!1)}acceptInput(e){e=!!e;let t=x.nvl(this._readDisplayText(),"");this._checkDisplayTextChanged(t,e)&&(this._setProperty("displayText",t),e||this.parseAndSetValue(t),this._triggerAcceptInput(e))}parseAndSetValue(e){this.removeErrorStatus(Bi);try{let t=new ht({displayText:e});if(this.trigger("parse",t),!t.defaultPrevented){let t=this.parseValue(e);this.setValue(t)}}catch(t){this._parsingFailed(e,t)}}_parsingFailed(e,t){n().log.isDebugEnabled()&&n().log.debug("Parsing failed for field with id "+this.id,t);let i=new ht({displayText:e,error:t});this.trigger("parseError",i),i.defaultPrevented||this._addParsingFailedErrorStatus(e,t)}_addParsingFailedErrorStatus(e,t){let i=this._createParsingFailedStatus(e,t);this.addErrorStatus(i)}_createParsingFailedStatus(e,t){return this._createInvalidValueStatus("ParsingFailedStatus",e,t)}setParser(e){this.setProperty("parser",e),this.initialized&&this.parseAndSetValue(this.displayText)}_setParser(e){e||(e=this._parseValue.bind(this)),this._setProperty("parser",e)}parseValue(e){let t=this._parseValue.bind(this);return this.parser(e,t)}_parseValue(e){return e}_checkDisplayTextChanged(e,t){return e!==x.nvl(this.displayText,"")}aboutToBlurByMouseDown(e){this.isFocusOnField(e)||this.acceptInput()}isFocused(){return this.rendered&&yn.isActiveElement(this.$field)}isFocusOnField(e){return this.$field.isOrHas(e)||this.$clearIcon&&this.$clearIcon.isOrHas(e)}_triggerAcceptInput(e){let t={displayText:this.displayText,whileTyping:!!e};this.trigger("acceptInput",t)}setDisplayText(e){this.setProperty("displayText",e)}_updateHasText(){this.setHasText(qt.hasText(this._readDisplayText()))}setHasText(e){this.setProperty("hasText",e)}_renderHasText(){this.$field&&this.$field.toggleClass("has-text",this.hasText),this.$container.toggleClass("has-text",this.hasText)}setClearable(e){this.setProperty("clearable",e)}_renderClearable(){this.isClearable()?this.$clearIcon||this.addClearIcon():this.$clearIcon&&(this.$clearIcon.remove(),this.$clearIcon=null),this.invalidateLayoutTree(!1),this._updateClearableStyles()}_updateClearableStyles(){this.$container.removeClass("clearable-always clearable-focused"),this.isClearable()&&(this.clearable===du.Clearable.ALWAYS?this.$container.addClass("clearable-always"):this.clearable===du.Clearable.FOCUSED&&this.$container.addClass("clearable-focused"))}isClearable(){return this.clearable===du.Clearable.ALWAYS||this.clearable===du.Clearable.FOCUSED}clear(){this._clear(),this._updateHasText(),this.acceptInput(),this._triggerClear()}_clear(){}_triggerClear(){this.trigger("clear")}setValue(e){e=this._prepareProperty("value",e),this.rendered&&this._callRemoveProperty("value"),this._callSetProperty("value",e),this.rendered&&this._callRenderProperty("value")}resetValue(){this.setValue(this.initialValue)}_ensureValue(e){return e}_setValue(e){this.initialized&&(this.removeErrorStatus(Bi),this.removeErrorStatus(Oi));let t=this.value,i=null;try{i=this._ensureValue(e),this.value=this.validateValue(i)}catch(t){return i=i||e,void this._validationFailed(i,t)}this._updateDisplayText(),this._valueEquals(t,this.value)||(this._valueChanged(),this._updateTouched(),this._updateEmpty(),this.triggerPropertyChange("value",t,this.value))}_valueEquals(e,t){return Ai.equals(e,t)}_valueChanged(){}validate(){this._setValue(this.value)}addValidator(e,t){let i=this.validators.slice();i.push(e),this.setValidators(i,t)}removeValidator(e,t){let i=this.validators.slice();me.remove(i,e),this.setValidators(i,t)}setValidator(e,t){e||(e=this._validateValue.bind(this));let i=[];e&&(i=[e]),this.setValidators(i,t)}setValidators(e,t){this.setProperty("validators",e),this.initialized&&x.nvl(t,!0)&&this.validate()}validateValue(e){let t=this._validateValue.bind(this);return this.validators.forEach((i=>{e=i(e,t)})),e=x.nvl(e,null)}_validateValue(e){return"string"==typeof e&&""===e&&(e=null),e}_validationFailed(e,t){n().log.isDebugEnabled()&&n().log.debug("Validation failed for field with id "+this.id,t);let i=this._createValidationFailedStatus(e,t);this.addErrorStatus(i),this._updateDisplayText(e)}_createValidationFailedStatus(e,t){return this._createInvalidValueStatus("ValidationFailedStatus",e,t)}_createInvalidValueStatus(e,t,i){if(i instanceof Ii.classForName(e))return i;let s,r=Ii.Severity.ERROR;return i instanceof Ii?(s=i.message,r=i.severity):s="string"==typeof i?i:this.session.text(this.invalidValueMessageKey,t),x.create(e,{message:s,severity:r})}_updateDisplayText(e){if(!this.initialized&&!Ai.isNullOrUndefined(this.displayText))return;e=x.nvl(e,this.value);let t=this.formatValue(e);Ai.isPromise(t)?(this._updateDisplayTextPending=!0,t.done(this.setDisplayText.bind(this)).fail((()=>{this._updateDisplayTextPending&&this.setDisplayText(""),n().log.isInfoEnabled()&&n().log.info("Could not resolve display text for value: "+e)})).always((()=>{this._updateDisplayTextPending=!1}))):(this.setDisplayText(t),this._updateDisplayTextPending=!1)}setFormatter(e){this.setProperty("formatter",e),this.initialized&&this.validate()}_setFormatter(e){e||(e=this._formatValue.bind(this)),this._setProperty("formatter",e)}formatValue(e){let t=this._formatValue.bind(this);return this.formatter(e,t)}_formatValue(e){return x.nvl(e,"")+""}_updateTouched(){this.touched=!this._valueEquals(this.value,this.initialValue)}addClearIcon(e){e||(e=this.$container),this.$clearIcon=e.appendSpan("clear-icon unfocusable text-field-icon action").on("mousedown",this._onClearIconMouseDown.bind(this))}addContainer(e,t,i){super.addContainer(e,t,i),this.$container.addClass("value-field")}addField(e){super.addField(e),this.$field.data("valuefield",this)}markAsSaved(){super.markAsSaved(),this.initialValue=this.value}_updateEmpty(){this.empty=null===this.value||void 0===this.value}static invokeValueFieldAboutToBlurByMouseDown(e){let t=this._getActiveValueField(e);t&&t.aboutToBlurByMouseDown(e)}static invokeValueFieldAcceptInput(e){let t=this._getActiveValueField(e);t&&t.acceptInput()}static _getActiveValueField(e){let t=n()(e).activeElement(),i=x.widget(t);return i instanceof du&&i.enabledComputed?i:null}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(du,"Clearable",{ALWAYS:"always",FOCUSED:"focused",NEVER:"never"});class uu extends su{constructor(){super()}_onWidgetAcceptInput(e){this._send("acceptInput",{displayText:e.displayText,whileTyping:e.whileTyping},{showBusyIndicator:!e.whileTyping,coalesce:function(e){return this.target===e.target&&this.type===e.type&&this.whileTyping===e.whileTyping}})}_onWidgetEvent(e){"acceptInput"===e.type?this._onWidgetAcceptInput(e):super._onWidgetEvent(e)}exportAdapterData(e){return delete(e=super.exportAdapterData(e)).displayText,e}_syncDisplayText(e){this.widget.setDisplayText(e),this.widget.parseAndSetValue(e)}}class cu extends du{constructor(){super(),this.disabledCopyOverlay=!0,this._displayTextModifiedTimeoutId=null,this.updateDisplayTextOnModify=!1,this.updateDisplayTextOnModifyDelay=250}addField(e){super.addField(e),e&&e.on("input",this._onFieldInput.bind(this))}setUpdateDisplayTextOnModify(e){null!==this._displayTextModifiedTimeoutId&&(clearTimeout(this._displayTextModifiedTimeoutId),this._acceptInputWhileTyping()),this.setProperty("updateDisplayTextOnModify",e)}setUpdateDisplayTextOnModifyDelay(e){this.setProperty("updateDisplayTextOnModifyDelay",e)}_clear(){this.$field&&this.$field.val("")}_onFieldInput(){this._updateHasText(),this.updateDisplayTextOnModify&&this._onDisplayTextModified()}_onDisplayTextModified(){clearTimeout(this._displayTextModifiedTimeoutId),this.updateDisplayTextOnModifyDelay?this._displayTextModifiedTimeoutId=setTimeout(this._acceptInputWhileTyping.bind(this),this.updateDisplayTextOnModifyDelay):this._acceptInputWhileTyping()}_acceptInputWhileTyping(){this._displayTextModifiedTimeoutId=null,this.rendered&&this.acceptInput(!0)}acceptInput(e){null!==this._displayTextModifiedTimeoutId&&(clearTimeout(this._displayTextModifiedTimeoutId),this._displayTextModifiedTimeoutId=null),super.acceptInput(e)}_renderDisplayText(){this.$field.val(this.displayText),super._renderDisplayText()}_readDisplayText(){return this.$field?this.$field.val():""}_checkDisplayTextChanged(e,t){let i=super._checkDisplayTextChanged(e,t);return t?this.updateDisplayTextOnModify&&i&&(this._displayTextChangedWhileTyping=!0):(this._displayTextChangedWhileTyping&&(i=!0),this._displayTextChangedWhileTyping=!1),i}}class pu extends uu{constructor(){super(),this.enabledWhenOffline=!0}}class gu extends iu{constructor(){super(),this.scrollable=!0,this.fieldWidget=null,this._addWidgetProperties(["fieldWidget"])}_init(e){super._init(e)}_render(){this.addContainer(this.$parent,"widget-field",new _u(this)),this.addLabel(),this.addMandatoryIndicator(),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderFieldWidget(),this._renderScrollable()}setFieldWidget(e){this.setProperty("fieldWidget",e)}_renderFieldWidget(){this.fieldWidget&&(this.fieldWidget.render(),this.addField(this.fieldWidget.$container),this.invalidateLayoutTree())}_removeFieldWidget(){this.fieldWidget&&(this.fieldWidget.remove(),this._removeField(),this.invalidateLayoutTree())}setScrollable(e){this.setProperty("scrollable",e)}_renderScrollable(){this._uninstallScrollbars(),this.scrollable&&this._installScrollbars()}get$Scrollable(){return this.$fieldContainer}}class mu extends su{constructor(){super()}}class _u extends ru{constructor(e){super(e)}layout(e){super.layout(e),Yn.update(this.$fieldContainer)}}class fu extends du{constructor(){super(),this.filterBox=null,this.gridDataHints.weightY=1,this.gridDataHints.h=2,this.value=[],this.clearable=du.Clearable.NEVER,this.lookupCall=null,this._pendingLookup=null,this._currentLookupCall=null,this._pendingLookup=null,this._lookupExecuted=!1,this._valueSyncing=!1,this._addCloneProperties(["lookupCall"])}_init(e){super._init(e),this.filterBox&&(this.filterBox.enabledComputed=!0,this.filterBox.recomputeEnabled(!0),this.filterBox.on("propertyChange",this._onFilterBoxPropertyChange.bind(this)))}_initValue(e){this.lookupCall&&this._setLookupCall(this.lookupCall),this._initStructure(e),super._initValue(e)}_render(){this.addContainer(this.$parent,"lookup-box"),this.addLabel(),this.addMandatoryIndicator(),this.addStatus(),this.addFieldContainer(this.$parent.makeDiv()),fr.install(this.$fieldContainer,this.session).setLayout(this._createFieldContainerLayout()),this._ensureLookupCallExecuted(),this._renderStructure(),this.$field.addDeviceClass(),this.$field.addClass("structure"),this._renderFilterBox(),this.$container.css("--inactive-lookup-row-suffix-text","'".concat(this.session.text("InactiveState"),"'"))}_renderFilterBox(){this.filterBox&&this.filterBox.visible&&this.filterBox.render(this.$fieldContainer)}_ensureValue(e){return me.ensure(e)}_updateEmpty(){this.empty=me.empty(this.value)}_lookupByAll(){if(!this.lookupCall)return;this._clearPendingLookup();let e=n().Deferred(),t=function(t){this._lookupByAllDone(t),e.resolve(t)}.bind(this);return this._executeLookup(this.lookupCall.cloneForAll(),!0).done(t),e.promise()}_clearPendingLookup(){this._pendingLookup&&(clearTimeout(this._pendingLookup),this._pendingLookup=null)}_executeLookup(e,t){return this.setLoading(!0),t&&this._currentLookupCall&&this._currentLookupCall.abort(),this._currentLookupCall=e,this.trigger("prepareLookupCall",{lookupCall:e}),e.execute().always((()=>{this._currentLookupCall=null,this._lookupExecuted=!0,this.setLoading(!1),this._clearLookupStatus()}))}_lookupByAllDone(e){try{return e.exception?(this.setErrorStatus(Ii.error({message:e.exception})),!1):0!==e.lookupRows.length||(this.setLookupStatus(Ii.warning({message:this.session.text("SmartFieldNoDataFound"),code:fu.ErrorCode.NO_DATA})),!1)}finally{this.trigger("lookupCallDone",{result:e})}}_errorStatus(){return this.lookupStatus||this.errorStatus}setLookupStatus(e){this.setProperty("lookupStatus",e),this.rendered&&this._renderErrorStatus()}clearErrorStatus(){this.setErrorStatus(null),this._clearLookupStatus()}_clearLookupStatus(){this.setLookupStatus(null)}setLookupCall(e){this.setProperty("lookupCall",e)}_setLookupCall(e){this._setProperty("lookupCall",xs.ensure(e,this.session)),this._lookupExecuted=!1,this.rendered&&this._ensureLookupCallExecuted()}refreshLookup(){this._lookupExecuted=!1,this._ensureLookupCallExecuted()}_ensureLookupCallExecuted(){return!this._lookupExecuted&&(this._lookupByAll(),!0)}_formatValue(e){return Ai.isNullOrUndefined(e)?"":this._formatLookupRows(this.getCheckedLookupRows())}_formatLookupRows(e){if(0===(e=me.ensure(e)).length)return"";let t=[];return e.forEach((e=>{t.push(e.text)})),qt.join(", ",t)}_readDisplayText(){return this.displayText}_clear(){this.setValue(null)}_onFilterBoxPropertyChange(e){if("visible"===e.propertyName){if(!this.rendered)return;this.filterBox.visible?this._renderFilterBox():this.filterBox.remove()}}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(fu,"ErrorCode",{NO_DATA:1});class bu extends _r{constructor(e,t,i){super(),this.box=e,this.structure=t,this.filterBox=i}layout(e){let t,i=fr.get(e).size(),s=i.height;if(this.filterBox&&this.filterBox.rendered&&(t=fr.get(this.filterBox.$container).prefSize().height,s-=t),s=Math.max(s,20),fr.get(this.structure.$container).setSize(new sr(i.width,s)),this.filterBox&&this.filterBox.rendered){fr.get(this.filterBox.$container).setSize(new sr(i.width,t))}}preferredLayoutSize(e,t){t=t||{};let i,s,r,n,o=0,l=fr.get(e),a=mr.get().formRowHeight,h=this.box;return t.heightHint=null,h.$label&&h.labelVisible&&(o+=mr.get().fieldLabelWidth),h.$mandatory&&h.$mandatory.isVisible()&&(o+=h.$mandatory.outerWidth(!0)),h.$status&&h.statusVisible&&(o+=h.$status.outerWidth(!0)),r=fr.optGet(this.structure.$container),i=r?r.prefSize(t).add(l.insets()).add(r.margins()):this.naturalSize(h),s=new sr(0,0),this.filterBox&&(n=fr.optGet(this.filterBox.$container),n&&(s=n.prefSize(t).add(l.insets()).add(n.margins()))),o+=Math.max(i.width,s.width),a=Math.max(a,i.height+s.height),new sr(o,a)}naturalSize(e){return new sr(e.$fieldContainer.width(),e.$fieldContainer.height())}}const yu={CONTINUE:"continue",TERMINATE:"terminate",SKIP_SUBTREE:"skip_subtree"};class wu{constructor(e){this.displayParent=e.displayParent,this.session=e.session}registerAndRender(e,t,i){x.assertProperty(e,"displayParent"),e.isPopupWindow()?this._renderPopupWindow(e):e.isView()?this._renderView(e,!0,t,i):this._renderDialog(e,!0)}isFormShown(e){return e.isView()?this.displayParent.views.indexOf(e)>-1:this.displayParent.dialogs.indexOf(e)>-1}_renderPopupWindow(e,t){throw new Error("popup window only supported by DesktopFormController")}unregisterAndRemove(e){e&&(e.isPopupWindow()?this._removePopupWindow(e):e.isView()?this._removeView(e):this._removeDialog(e))}_removePopupWindow(e){throw new Error("popup window only supported by DesktopFormController")}render(){this._renderViews(),this._renderDialogs()}_renderViews(){this.displayParent.views.forEach(((e,t)=>{e.setDisplayParent(this.displayParent),this._renderView(e,!1,t,!1)}))}_renderDialogs(){this.displayParent.dialogs.forEach((e=>{e.setDisplayParent(this.displayParent),this._renderDialog(e,!1)}))}remove(){this.displayParent.dialogs.forEach((e=>{this._removeDialog(e,!1)})),this.displayParent.views.forEach(((e,t)=>{this._removeView(e,!1)}))}activateForm(e){let t=this.displayParent;for(;t;){if(t instanceof r_){this.session.desktop.setOutline(t);break}t=t.displayParent}e.displayHint===Ta.DisplayHint.VIEW?this._activateView(e):this._activateDialog(e)}acceptView(e,t,i,s){return this.displayParent.rendered}_renderView(e,t,i,s){if(t&&(void 0!==i?me.insert(this.displayParent.views,e,i):this.displayParent.views.push(e)),this.displayParent.acceptView){if(!this.displayParent.acceptView(e))return}else if(!this.acceptView(e))return;if(e.rendered)return!1;let r=this.session.desktop;if(r.displayStyle!==lm.DisplayStyle.COMPACT||r.bench){if(r.bench.removalPending)return void setTimeout(this._renderView.bind(this,e,t,i,s))}else r.sendOutlineToBack(),r.switchToBench(!e.headerVisible);r.bench.addView(e,s)}acceptDialog(e){return this.displayParent.rendered}_renderDialog(e,t){let i=this.session.desktop;if(t&&this.displayParent.dialogs.push(e),this.displayParent.acceptDialog){if(!this.displayParent.acceptDialog(e))return}else if(!this.acceptDialog(e))return;if(e.rendered)return!1;e.on("remove",(()=>{let e=this._findFormToActivateAfterDialogRemove();e?i._setFormActivated(e):i._setOutlineActivated()})),e.isPopupWindow()?this._renderPopupWindow(e):(e.setTrackFocus(!0),e.render(i.$container),this._layoutDialog(e),i._setFormActivated(e),this.displayParent.inFront()||e.detach())}_findFormToActivateAfterDialogRemove(){if(this.displayParent.dialogs.length>0)return this.displayParent.dialogs[this.displayParent.dialogs.length-1];if(this.displayParent instanceof Ta&&!this.displayParent.detailForm)return this.displayParent;let e=this.session.desktop;if(e.bench){let t=e.bench.activeViews()[0];if(t instanceof Ta&&!t.detailForm)return t}}_removeView(e,t){(t=x.nvl(t,!0))&&me.remove(this.displayParent.views,e),this.session.desktop.bench&&this.session.desktop.bench.removeView(e)}_removeDialog(e,t){(t=x.nvl(t,!0))&&me.remove(this.displayParent.dialogs,e),e.rendered&&e.remove()}_activateView(e){let t=this.session.desktop.bench;t&&t.activateView(e)}_activateDialog(e){if(e.displayParent instanceof Ta&&(e.displayParent.displayHint===Ta.DisplayHint.VIEW||e.displayParent.displayHint===Ta.DisplayHint.DIALOG&&e.modal)&&this.activateForm(e.displayParent),!e.rendered)return;let t=e.$container.nextAll().toArray(),i=t.filter((function(t){let i=x.widget(t);return i instanceof Ta&&(!i.modal||!e.has(i)&&i.displayParent!==this.session.desktop)}),this),s=t.filter((e=>me.find(i,(t=>{let i=x.widget(e);return!(i instanceof Ta)&&x.widget(t).has(i)}))));i=i.concat(s),this.session.desktop.moveOverlaysBehindAndFocus(i,e.$container)}attachDialogs(){this.displayParent.dialogs.forEach((e=>{e.attach()}),this)}detachDialogs(){this.displayParent.dialogs.forEach((e=>{e.detach()}),this)}_layoutDialog(e){e.htmlComp.validateLayout(),e.position(),this.session.focusManager.validateFocus(),e.animateOpening&&e.$container.addClassForAnimation("animate-open")}}class Cu extends Y{constructor(){super(),this.severity=Ii.Severity.INFO,this.body=null,this.iconId=null,this.header=null,this.hiddenText=null,this.html=null,this.yesButtonText=null,this.noButtonText=null,this.cancelButtonText=null,this.displayParent=null,this.buttons=[],this.boxButtons=null,this.yesButton=null,this.noButton=null,this.cancelButton=null,this.abortButton=null,this.inheritAccessibility=!1,this.$content=null,this.$header=null,this.$body=null,this.$buttons=null,this._icon=null,this._addWidgetProperties(["buttons","boxButtons","yesButton","noButton","cancelButton","abortButton"])}_init(e){super._init(e),this._setDisplayParent(this.displayParent),this._setIconId(this.iconId),this.boxButtons=x.create("BoxButtons",{parent:this}),this.yesButton=this._createMessageBoxButton(this.yesButtonText,Cu.Buttons.YES),this.noButton=this._createMessageBoxButton(this.noButtonText,Cu.Buttons.NO),this.cancelButton=this._createMessageBoxButton(this.cancelButtonText,Cu.Buttons.CANCEL)}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new Pu(this),new rn(this.session,this),new sn(this,[Kr.SPACE,Kr.ENTER]),new on(this,(()=>this.abortButton?this.abortButton.$container:null))])}_createMessageBoxButton(e,t){if(!e)return null;let i=this.boxButtons.addButton({text:e});return i.one("action",(e=>this._onButtonClick(e,t))),this.buttons.push(i),this.abortButton=i,i}_render(){this.$container=this.$parent.appendDiv("messagebox").on("mousedown",this._onMouseDown.bind(this)).on("copy",this._onCopy.bind(this));let e=this.$container.appendDiv("drag-handle");this.$container.draggable(e),this.$content=this.$container.appendDiv("messagebox-content"),this.$header=this.$content.appendDiv("messagebox-label messagebox-header"),this.$body=this.$content.appendDiv("messagebox-label messagebox-body"),this.$html=this.$content.appendDiv("messagebox-label messagebox-html prevent-initial-focus"),this.boxButtons.render(),this.$buttons=this.boxButtons.$container,this.$buttons.addClass("messagebox-buttons"),this.$buttons.on("copy",this._onCopy.bind(this)),this._installScrollbars({axis:"y",scrollShadow:"none"}),this._renderSeverity(),this._renderHeader(),this._renderIconId(),this._renderBody(),this._renderHtml(),this._renderHiddenText(),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new xu(this)),this.htmlComp.validateLayout(),this.$container.addClassForAnimation("animate-open"),this._glassPaneRenderer=new Tn(this),this._glassPaneRenderer.renderGlassPanes()}get$Scrollable(){return this.$content}_postRender(){super._postRender(),this._installFocusContext()}_remove(){this._glassPaneRenderer.removeGlassPanes(),this._uninstallFocusContext(),super._remove()}_installFocusContext(){this.session.focusManager.installFocusContext(this.$container,wn.AUTO)}_uninstallFocusContext(){this.session.focusManager.uninstallFocusContext(this.$container)}_renderIconId(){let e=!!this._icon;this.$container.toggleClass("has-icon",e),this.$container.toggleClass("no-icon",!e),e&&(this._icon.render(this.$header),this._icon.$container.addClass("messagebox-icon"))}_renderSeverity(){this.$container.removeClass(Ii.SEVERITY_CSS_CLASSES),this.$container.addClass(Ii.cssClassForSeverity(this.severity))}_renderHeader(){this.$header.html(qt.nl2br(this.header)),this.$header.setVisible(this.header||this.iconId),this.$header.toggleClass("has-text",qt.hasText(this.header))}_renderBody(){this.$body.html(qt.nl2br(this.body)),this.$body.setVisible(!!this.body),this.$content.toggleClass("has-body",!!this.body)}_renderHtml(){this.$html.html(this.html),this.$html.setVisible(this.html),this.$html.find("a, .app-link").attr("tabindex","0").unfocusable()}_renderHiddenText(){this.$hiddenText&&this.$hiddenText.remove(),this.hiddenText&&(this.$hiddenText=this.$content.appendElement("\x3c!-- \n"+this.hiddenText.replace(/<!--|-->/g,"")+"\n --\x3e"))}_onMouseDown(){let e=this.findParent((e=>e instanceof Ta&&e.isDialog()));e&&e.activate()}_setCopyable(e){this.$header.toggleClass("copyable",e),this.$body.toggleClass("copyable",e),this.$html.toggleClass("copyable",e)}copy(){this._setCopyable(!0);let e=this.$container.document(!0),t=e.createRange();t.selectNodeContents(this.$content[0]);let i=this.$container.window(!0).getSelection();i.removeAllRanges(),i.addRange(t),e.execCommand("copy")}_onCopy(e){let t=Ai.optProperty(e,"originalEvent","clipboardData");if(t){let i=qt.join("<br/>",this.$header[0].outerHTML,this.$body[0].outerHTML,this.$html[0].outerHTML,this.hiddenText);t.setData("text/html",i);let s=qt.join("\n\n",this.header,this.body,qt.plainText(this.$html[0].outerHTML,{compact:!0,trim:!0}),this.hiddenText);t.setData("text/plain",s),this.$container.window(!0).getSelection().removeAllRanges(),this._setCopyable(!1),ye.showNotification(this),e.preventDefault()}}_onButtonClick(e,t){this.trigger("action",{option:t})}setDisplayParent(e){this.setProperty("displayParent",e)}_setDisplayParent(e){this._setProperty("displayParent",e),e&&this.setParent(this.findDesktop().computeParentForDisplayParent(e))}setIconId(e){this.setProperty("iconId",e)}_setIconId(e){this._setProperty("iconId",e),e?this._icon?this._icon.setIconDesc(e):(this._icon=x.create("Icon",{parent:this,iconDesc:e,prepend:!0}),this._icon.one("destroy",(()=>{this._icon=null}))):this._icon&&this._icon.destroy()}open(){this.setDisplayParent(this.displayParent||this.session.desktop),this.displayParent.messageBoxController.registerAndRender(this)}close(){this.displayParent&&this.displayParent.messageBoxController.unregisterAndRemove(this),this.destroy()}abort(){this.abortButton&&this.abortButton.$container&&this.session.focusManager.requestFocus(this.abortButton.$container)&&this.abortButton.doAction()}_attach(){this.$parent.append(this.$container),super._attach()}_detach(){this.$container.detach(),super._detach()}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Cu,"Buttons",{YES:"yes",NO:"no",CANCEL:"cancel"});class vu extends j{constructor(){super()}_onWidgetAction(e){this._send("action",{option:e.option})}_onWidgetEvent(e){"action"===e.type?this._onWidgetAction(e):super._onWidgetEvent(e)}}class Tu{constructor(e,t){this.displayParent=e,this.session=t}registerAndRender(e){x.assertProperty(e,"displayParent"),this.displayParent.messageBoxes.push(e),this._render(e)}unregisterAndRemove(e){e&&(me.remove(this.displayParent.messageBoxes,e),this._remove(e))}remove(){this.displayParent.messageBoxes.forEach(this._remove.bind(this))}render(){this.displayParent.messageBoxes.forEach((e=>{e.setDisplayParent(this.displayParent),this._render(e)}))}_render(e){if(e.displayParent||e._setProperty("displayParent",this.displayParent),this.displayParent.acceptView){if(!this.displayParent.acceptView(e))return}else if(!this.acceptView(e))return;if(e.rendered)return;let t;t=this.displayParent instanceof Ta&&this.displayParent.isPopupWindow()?this.displayParent.popupWindow.$container:this.session.desktop.$container,e.setTrackFocus(!0),e.render(t),this.displayParent.inFront()||e.detach()}_remove(e){e.remove()}attach(){this.displayParent.messageBoxes.forEach((e=>{e.attach()}),this)}detach(){this.displayParent.messageBoxes.forEach((e=>{e.detach()}),this)}acceptView(e){return this.displayParent.rendered}}class Su{constructor(){this.parent=null,this.yesText=null,this.noText=null,this.cancelText=null,this.bodyText=null,this.severity=Ii.Severity.INFO,this.headerText=null,this.iconId=null,this.closeOnClick=!0,this.html=!1}init(e){x.assertParameter("parent",e.parent),n().extend(this,e)}withHeader(e){return this.headerText=e,this}withBody(e,t){return this.bodyText=e,this.html=x.nvl(t,!1),this}withIconId(e){return this.iconId=e,this}withSeverity(e){return this.severity=x.nvl(e,Ii.Severity.INFO),this}withYes(e){return this.yesText=x.nvl(e,this.parent.session.text("Yes")),this}withNo(e){return this.noText=x.nvl(e,this.parent.session.text("No")),this}withCancel(e){return this.cancelText=x.nvl(e,this.parent.session.text("Cancel")),this}build(){let e={parent:this.parent,header:this.headerText,body:this.bodyText,severity:this.severity};return qt.hasText(this.iconId)&&(e.iconId=this.iconId),qt.hasText(this.yesText)&&(e.yesButtonText=this.yesText),qt.hasText(this.noText)&&(e.noButtonText=this.noText),qt.hasText(this.cancelText)&&(e.cancelButtonText=this.cancelText),this.html&&(e.html=e.body,delete e.body),x.create("MessageBox",e)}buildAndOpen(){let e=n().Deferred(),t=this.build();return t.on("action",(i=>{this.closeOnClick&&t.close(),e.resolve(i.option)})),t.open(),e.promise()}static create(e){return x.create("MessageBoxes",{parent:e})}static createOk(e){return this.create(e).withYes(e.session.text("Ok"))}static createYesNo(e){return this.create(e).withYes().withNo()}static createYesNoCancel(e){return this.create(e).withYes().withNo().withCancel()}static openOk(e,t,i){return this.createOk(e).withBody(t).withSeverity(i).buildAndOpen()}static openYesNo(e,t,i){return this.createYesNo(e).withBody(t).withSeverity(i).buildAndOpen()}}class xu extends _r{constructor(e){super(e),this.messageBox=e}layout(e){let t=fr.get(e),i=e.windowSize(),s=t.offsetBounds(!0),r=t.size(),n=t.margins();r=La.fitContainerInWindow(i,s.point(),r,n),e.toggleClass("full-width",0===s.x&&0===n.horizontal()&&i.width===r.width).toggleClass("full-height",0===s.y&&0===n.vertical()&&i.height===r.height),pr.setSize(e,r);let o=pr.size(this.messageBox.$buttons,{exact:!0});this.messageBox.$content.css("height","calc(100% - "+o.height+"px)"),Yn.update(this.messageBox.$content),e.cssPosition(La.positionContainerInWindow(e))}}class Pu extends U{constructor(e){super(),this.field=e,this.which=[Kr.C],this.ctrl=!0,this.preventDefault=!1,this.renderingHints.render=!0,this.renderingHints.$drawingArea=(t,i)=>e.$container}handle(e){this.field.copy()}}class Fu extends iu{constructor(){super(),this.accordion=null,this.eventDelegator=null,this._addWidgetProperties(["accordion"])}_init(e){super._init(e),this._setAccordion(this.accordion)}_createLoadingSupport(){return null}_render(){this.addContainer(this.$parent,"accordion-field"),this.addLabel(),this.addMandatoryIndicator(),this.addStatus(),this.accordion&&this._renderAccordion()}_renderProperties(){super._renderProperties(),this._renderDropType()}setAccordion(e){this.setProperty("accordion",e)}_setAccordion(e){this.accordion&&this.eventDelegator&&(this.eventDelegator.destroy(),this.eventDelegator=null),this._setProperty("accordion",e),e&&(this.eventDelegator=Te.create(this,e,{delegateProperties:["loading"]}),e.setLoading(this.loading),e.setScrollTop(this.scrollTop))}_renderAccordion(){this.accordion&&(this.accordion.render(),this.addField(this.accordion.$container),this.invalidateLayoutTree())}_removeAccordion(){this.accordion&&(this.accordion.remove(),this._removeField(),this.invalidateLayoutTree())}getFocusableElement(){return this.accordion?this.accordion.getFocusableElement():null}getDelegateScrollable(){return this.accordion}}class Eu extends su{constructor(){super()}}class Du extends du{constructor(){super(),this.preventInitialFocus=!0}_render(){this.addContainer(this.$parent,"bean-field"),this.addLabel(),this.addField(this.$parent.makeDiv()),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderValue()}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke(new Qd(this,this._onAppLinkAction))}_formatValue(e){return this.displayText}_parseValue(e){return this.value}_readDisplayText(){return this.displayText}_renderDisplayText(){}_renderValue(){}triggerAppLinkAction(e){this.trigger("appLinkAction",{ref:e})}_onAppLinkAction(e){let t=n()(e.delegateTarget).data("ref");this.triggerAppLinkAction(t)}}class Au extends uu{constructor(){super()}_onWidgetAppLinkAction(e){this._send("appLinkAction",{ref:e.ref})}_onWidgetEvent(e){"appLinkAction"===e.type?this._onWidgetAppLinkAction(e):super._onWidgetEvent(e)}}class $u extends du{constructor(){super(),this.autoCloseExternalWindow=!1,this.externalWindowButtonText=null,this.externalWindowFieldText=null,this.location=null,this.trackLocation=!1,this.sandboxEnabled=!0,this.sandboxPermissions=null,this.trustedMessageOrigins=[],this.scrollBarEnabled=!0,this.showInExternalWindow=!1,this._messageListener=null,this._popupWindow=null,this._externalWindowTextField=null,this._externalWindowButton=null}_init(e){super._init(e),this.iframe=x.create("IFrame",{parent:this,location:this.location,sandboxEnabled:this.sandboxEnabled,sandboxPermissions:this.sandboxPermissions,scrollBarEnabled:this.scrollBarEnabled,trackLocation:this.trackLocation}),this.iframe.on("propertyChange",this._onIFramePropertyChange.bind(this))}_render(){this.addContainer(this.$parent,"browser-field",new Mu(this)),this.addLabel(),this.addStatus(),this.showInExternalWindow?(this.addField(this.$parent.makeDiv()),this._externalWindowTextField=this.$field.appendDiv().addClass("alt"),this._externalWindowButton=this.$field.appendDiv().addClass("button").on("click",this._openPopupWindow.bind(this))):(this.iframe.render(),this.addFieldContainer(this.iframe.$container),this.addField(this.iframe.$iframe),this.$field.on("load",this._onLoad.bind(this))),this.myWindow=this.$parent.window(!0),this._messageListener=this._onMessage.bind(this),this.myWindow.addEventListener("message",this._messageListener),this.enabledComputed&&setTimeout(this._openPopupWindow.bind(this,!0),20)}_renderProperties(){super._renderProperties(),this._renderExternalWindowButtonText(),this._renderExternalWindowFieldText()}_remove(){super._remove(),this.myWindow.removeEventListener("message",this._messageListener),this._messageListener=null,this.showInExternalWindow&&this.autoCloseExternalWindow&&this._popupWindow&&!this._popupWindow.closed&&this._popupWindow.close()}setLocation(e){this.setProperty("location",e),this.iframe.setLocation(e)}_renderLocation(){let e=this.location||"about:blank";this.showInExternalWindow&&this._popupWindow&&!this._popupWindow.closed&&(this._popupWindow.location=e)}setAutoCloseExternalWindow(e){this.setProperty("autoCloseExternalWindow",e)}setExternalWindowButtonText(e){this.setProperty("externalWindowButtonText",e)}_renderExternalWindowButtonText(){this.showInExternalWindow&&this._externalWindowButton.text(this.externalWindowButtonText||"")}setExternalWindowFieldText(e){this.setProperty("externalWindowFieldText",e)}_renderExternalWindowFieldText(){this.showInExternalWindow&&this._externalWindowTextField.text(this.externalWindowFieldText||"")}_calcPopupBounds(){let e=this.$container.window(!0),t=new or(e.screenX,e.screenY,n()(e).width(),n()(e).height()+55),i=new or(this.$field.offset().left,this.$field.offset().top,this.$field.width(),this.$field.height()),s=t.x+i.x,r=t.y+i.y+55,o=i.width,l=i.height+38,a=r+l,h=t.y+t.height;return a>h&&(l-=a-h+38),new or(fi.round(s),fi.round(r),fi.round(o),fi.round(l))}_openPopupWindow(e){if(e=x.nvl(e,!0),this.showInExternalWindow)if(!this._popupWindow||e&&this._popupWindow.closed){let e=x.create("PopupBlockerHandler",{session:this.session}),t=this._calcPopupBounds(),i=qt.join(",","directories=no","location=no","menubar=no","resizable=yes","status=no","scrollbars="+(this.scrollBarEnabled?"yes":"no"),"toolbar=no","dependent=yes","left="+t.x,"top="+t.y,"width="+t.width,"height="+t.height),s=this.location||"about:blank";e.openWindow(s,void 0,i,this._popupWindowOpen.bind(this))}else e&&this._popupWindow.focus()}_popupWindowOpen(e){if(this._popupWindow=e,this._popupWindow&&!this._popupWindow.closed){this.trigger("externalWindowStateChange",{windowState:$u.WindowStates.WINDOW_OPEN});let e=window.setInterval((()=>{let t=!1;try{t=null===this._popupWindow||this._popupWindow.closed}catch(e){return void(n().log.isInfoEnabled()&&n().log.info("Reading the property popupWindow.closed threw an error (Retry in 500ms)"))}t&&(window.clearInterval(e),this.trigger("externalWindowStateChange",{windowState:$u.WindowStates.WINDOW_CLOSED}))}),500)}}_onMessage(e){this._isValidMessageSource(e.source)&&(this.trustedMessageOrigins&&this.trustedMessageOrigins.length&&!this.trustedMessageOrigins.some((t=>t===e.origin))?n().log.warn("blocked message from untrusted origin "+e.origin):(n().log.isDebugEnabled()&&n().log.debug("received post-message: data="+e.data+", origin="+e.origin),this.trigger("message",{data:e.data,origin:e.origin})))}_isValidMessageSource(e){let t=this.$field[0].contentWindow;if(e===t)return!0;for(;e&&e!==e.parent;)if((e=e.parent)===t)return!0;return!1}postMessage(e,t){n().log.isDebugEnabled()&&n().log.debug("send post-message: message="+e+", targetOrigin="+t),this.iframe&&this.iframe.postMessage(e,t)}setTrackLocation(e){this.setProperty("trackLocation",e),this.iframe.setTrackLocation(e)}_onIFramePropertyChange(e){this.trackLocation&&"location"===e.propertyName&&this._setProperty("location",e.newValue)}_onLoad(e){this.rendered&&this.invalidateLayoutTree()}setSandboxEnabled(e){this.setProperty("sandboxEnabled",e),this.iframe.setSandboxEnabled(e)}setSandboxPermissions(e){this.setProperty("sandboxPermissions",e),this.iframe.setSandboxPermissions(e)}setScrollBarEnabled(e){this.setProperty("scrollBarEnabled",e),this.iframe.setScrollBarEnabled(e)}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}($u,"WindowStates",{WINDOW_OPEN:"true",WINDOW_CLOSED:"false"});class Ru extends uu{constructor(){super(),this._addRemoteProperties(["location"])}_onWidgetMessage(e){this._send("postMessage",{data:e.data,origin:e.origin})}_onWidgetExternalWindowStateChange(e){this._send("externalWindowStateChange",{windowState:e.windowState})}_onWidgetEvent(e){"message"===e.type?this._onWidgetMessage(e):"externalWindowStateChange"===e.type?this._onWidgetExternalWindowStateChange(e):super._onWidgetEvent(e)}_onModelPostMessage(e){this.widget.postMessage(e.message,e.targetOrigin)}onModelAction(e){"postMessage"===e.type?this._onModelPostMessage(e):super.onModelAction(e)}_orderPropertyNamesOnSync(e){return Object.keys(e).sort(this._createPropertySortFunc(["scrollBarEnabled","location"]))}}class Mu extends ru{constructor(e){super(e),this.browserField=e}preferredLayoutSize(e,t){let i=super.preferredLayoutSize(e,t);return this._isIFrameReadable()&&(i.height=this.browserField.$field.contents().height()+this.browserField.iframe.htmlComp.insets().vertical()+this.browserField.htmlComp.insets().vertical()),i}_isIFrameReadable(){let e=this.browserField,t=e.sandboxPermissions;if(e.sandboxEnabled&&t&&-1===t.indexOf("allow-same-origin"))return n().log.isWarnEnabled()&&n().log.warn('Access to IFrame denied, cannot read height. Reason: sandbox is enabled or "allow-same-origin" is not set'),!1;try{e.$field[0].contentWindow.document}catch(e){return n().log.isWarnEnabled()&&n().log.warn("Access to IFrame denied, cannot read height. Reason: denied by browser"),!1}return"loading"!==e.$field.contents().attr("readyState")||(n().log.isWarnEnabled()&&n().log.warn('Access to IFrame denied, cannot read height. Reason: readyState == "loading"'),!1)}}function ku(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Iu extends iu{constructor(){super(),this.adaptedBy=null,this.defaultButton=!1,this.displayStyle=Iu.DisplayStyle.DEFAULT,this.gridDataHints.fillHorizontal=!1,this.iconId=null,this.keyStroke=null,this.keyStrokeScope=null,this.processButton=!0,this.selected=!1,this.statusVisible=!1,this.systemType=Iu.SystemType.NONE,this.preventDoubleClick=!1,this.stackable=!0,this.shrinkable=!1,this.$buttonLabel=null,this.buttonKeyStroke=new Ou(this,null),this._doubleClickSupport=new et,this._addCloneProperties(["defaultButton","displayStyle","iconId","keyStroke","processButton","selected","systemType","preventDoubleClick","stackable","shrinkable"])}_init(e){super._init(e),this.resolveIconIds(["iconId"]),this._setKeyStroke(this.keyStroke),this._setKeyStrokeScope(this.keyStrokeScope),this._setInheritAccessibility(this.inheritAccessibility&&!this._isIgnoreAccessibilityFlags())}getContextMenuItems(){return[]}_initKeyStrokeContext(){super._initKeyStrokeContext(),this._initDefaultKeyStrokes(),this.formKeyStrokeContext=new Zr,this.formKeyStrokeContext.invokeAcceptInputOnActiveValueField=!0,this.formKeyStrokeContext.registerKeyStroke(this.buttonKeyStroke),this.formKeyStrokeContext.$bindTarget=function(){if(this.keyStrokeScope)return this.keyStrokeScope.$container;let e=this.getForm();return e?e.$container:this.session.desktop.$container}.bind(this)}_isIgnoreAccessibilityFlags(){return this.systemType===Iu.SystemType.CANCEL||this.systemType===Iu.SystemType.CLOSE}_initDefaultKeyStrokes(){this.keyStrokeContext.registerKeyStroke([new Ou(this,"ENTER"),new Ou(this,"SPACE")])}_createLoadingSupport(){return new z({widget:this,$container:function(){return this.$field}.bind(this)})}_render(){let e;if(this.displayStyle===Iu.DisplayStyle.LINK?(e=this.$parent.makeDiv("link-button menu-item"),this.$buttonLabel=e.appendSpan("button-label text")):(e=this.$parent.makeElement("<button>").addClass("button"),this.displayStyle===Iu.DisplayStyle.BORDERLESS&&e.addClass("borderless"),this.$buttonLabel=e.appendSpan("button-label text"),Qe.get().supportsOnlyTouch()&&e.setTabbable(!1)),this.addContainer(this.$parent,"button-field",new Lu(this)),this.addField(e),this.addStatus(),e.on("mousedown",(e=>this._doubleClickSupport.mousedown(e))).on("click",this._onClick.bind(this)).unfocusable(),this.menus&&this.menus.length>0&&(this.menus.forEach((function(e){this.keyStrokeContext.registerKeyStroke(e)}),this),this.label||!this.iconId)){let t=Ct.parseIconId(Iu.SUBMENU_ICON);this.$submenuIcon=e.appendSpan("submenu-icon").text(t.iconCharacter)}this.session.keyStrokeManager.installKeyStrokeContext(this.formKeyStrokeContext),yo.installForEllipsis(this.$buttonLabel,{parent:this})}_remove(){super._remove(),yo.uninstall(this.$buttonLabel),this.session.keyStrokeManager.uninstallKeyStrokeContext(this.formKeyStrokeContext),this.$submenuIcon=null}_renderProperties(){super._renderProperties(),this._renderIconId(),this._renderSelected(),this._renderDefaultButton()}_renderForegroundColor(){super._renderForegroundColor(),ts.legacyForegroundColor(this,this.$buttonLabel),ts.legacyForegroundColor(this,this.get$Icon()),ts.legacyForegroundColor(this,this.$submenuIcon)}_renderBackgroundColor(){super._renderBackgroundColor(),ts.legacyBackgroundColor(this,this.$fieldContainer)}_renderFont(){super._renderFont(),ts.legacyFont(this,this.$buttonLabel),this.invalidateLayoutTree()}doAction(){return!(!this.enabledComputed||!this.visible)&&(this.displayStyle===Iu.DisplayStyle.TOGGLE?this.setSelected(!this.selected):this.menus.length>0&&this.togglePopup(),this._doAction(),!0)}_doAction(){this.trigger("click")}togglePopup(){this.popup?this.popup.close():(this.popup=this._openPopup(),this.popup.one("destroy",(e=>{this.popup=null})))}_openPopup(){let e=x.create("ContextMenuPopup",{parent:this,menuItems:this.menus,cloneMenuItems:!1,closeOnAnchorMouseDown:!1,$anchor:this.$field});return e.open(),e}_doActionTogglesSubMenu(){return!1}setDefaultButton(e){this.setProperty("defaultButton",e)}_renderDefaultButton(){this.$field.toggleClass("default",this.defaultButton)}_renderEnabled(){super._renderEnabled(),this.displayStyle===Iu.DisplayStyle.LINK&&this.$field.setTabbable(this.enabledComputed&&!Qe.get().supportsOnlyTouch())}setSelected(e){this.setProperty("selected",e)}_renderSelected(){this.displayStyle===Iu.DisplayStyle.TOGGLE&&this.$field.toggleClass("selected",this.selected)}_renderLabel(){this.$buttonLabel.contentOrNbsp(this.labelHtmlEnabled,this.label,"empty"),this._updateLabelAndIconStyle(),this.invalidateLayoutTree()}setIconId(e){this.setProperty("iconId",e)}_renderIconId(){let e=this.$fieldContainer;e.icon(this.iconId);let t=e.data("$icon");function i(e){t.removeClass("loading"),t.toggleClass("broken",!e),this.invalidateLayoutTree()}t&&(t.removeClass("loading broken"),t.is("img")&&(t.addClass("loading"),t.off("load error").on("load",i.bind(this,!0)).on("error",i.bind(this,!1))),this.rendered||ts.legacyForegroundColor(this,t)),this._updateLabelAndIconStyle(),this.invalidateLayoutTree()}get$Icon(){return this.$fieldContainer.children(".icon")}_updateLabelAndIconStyle(){let e=!!this.label;this.$buttonLabel.setVisible(e||!this.iconId),this.get$Icon().toggleClass("with-label",e)}setKeyStroke(e){this.setProperty("keyStroke",e)}_setKeyStroke(e){this._setProperty("keyStroke",e),this.buttonKeyStroke.parseAndSetKeyStroke(this.keyStroke)}_setKeyStrokeScope(e){("string"!=typeof e||(e=this._resolveKeyStrokeScope(e)))&&this._setProperty("keyStrokeScope",e)}_resolveKeyStrokeScope(e){let t=this.findNonWrappedForm();if(!t)throw new Error("Could not resolve keyStrokeScope "+e+" because no form has been found.");if(t.initialized){if(!(e=t.widget(e)))throw new Error("Could not resolve keyStrokeScope "+e+" using form "+t);return e}t.one("init",this._setKeyStrokeScope.bind(this,e))}_onClick(e){1===e.which&&(this.preventDoubleClick&&this._doubleClickSupport.doubleClicked()||(yo.cancel(this.$buttonLabel),yo.cancel(this.$fieldContainer),this.enabledComputed&&this.doAction()))}setStackable(e){this.setProperty("stackable",e)}setShrinkable(e){this.setProperty("shrinkable",e)}setPreventDoubleClick(e){this.setProperty("preventDoubleClick",e)}getFocusableElement(){return this.adaptedBy?this.adaptedBy.getFocusableElement():super.getFocusableElement()}isFocusable(){return this.adaptedBy?this.adaptedBy.isFocusable():super.isFocusable()}focus(){return this.adaptedBy?this.adaptedBy.focus():super.focus()}}ku(Iu,"SystemType",{NONE:0,CANCEL:1,CLOSE:2,OK:3,RESET:4,SAVE:5,SAVE_WITHOUT_MARKER_CHANGE:6}),ku(Iu,"DisplayStyle",{DEFAULT:0,TOGGLE:1,RADIO:2,LINK:3,BORDERLESS:4}),ku(Iu,"SUBMENU_ICON",Ct.ANGLE_DOWN_BOLD);class Lu extends ru{constructor(e){super(e),this.button=e}layout(e){super.layout(e);let t=this.button.get$Icon(),i=this.button.$submenuIcon,s=this.button.$buttonLabel,r=this.button.$fieldContainer;s.css("max-width","");let n=i?pr.size(i,{includeMargin:!0,exact:!0}).width:0,o=t.length?pr.size(t,{includeMargin:!0,exact:!0}).width:0,l=Math.ceil(r.width()-(n+o));s.css("max-width",l)}preferredLayoutSize(e,t){let i=this.button.$buttonLabel,s=i.css("max-width");i.css("max-width","");let r=super.preferredLayoutSize(e,t);return i.css("max-width",s),r}}class Bu extends su{constructor(){super(),this._addRemoteProperties(["selected"])}_onWidgetClick(e){this.widget.displayStyle===Iu.DisplayStyle.TOGGLE||this.widget.menus.length>0||this._send("click")}_onWidgetEvent(e){"click"===e.type?this._onWidgetClick(e):super._onWidgetEvent(e)}}class Ou extends U{constructor(e,t){super(),this.field=e,this.parseAndSetKeyStroke(t),this.stopPropagation=!0,this.stopImmediatePropagation=!0,this.renderingHints.hAlign=ns.RIGHT}_accept(e){return super._accept(e)&&this.field.$field.isAttached()}handle(e){this.field.doAction()}}class Nu extends iu{constructor(){super(),this.gridDataHints.weightY=1,this._addWidgetProperties(["calendar"])}_render(){this.addContainer(this.$parent,"calendar-field"),this.$container.toggleClass("mobile",Qe.get().type===Qe.Type.MOBILE),this.addLabel(),this.addStatus(),this.calendar&&(this.calendar.render(),this.addField(this.calendar.$container))}}class Hu extends su{constructor(){super()}}class Vu extends iu{constructor(){super(),this.gridDataHints.weightY=1,this._addWidgetProperties(["carousel"])}_render(){this.addContainer(this.$parent,"carousel-field"),this.addLabel(),this.addMandatoryIndicator(),this.addStatus(),this.carousel&&this._renderCarousel()}_renderCarousel(){this.carousel.render(),this.addField(this.carousel.$container)}_removeCarousel(){this.carousel.remove(),this._removeField()}}class Wu extends du{constructor(){super(),this.triStateEnabled=!1,this.wrapText=!1,this.keyStroke=null,this.checkBoxKeyStroke=new Gu(this),this.$checkBox=null,this.$checkBoxLabel=null}_init(e){super._init(e),this._setKeyStroke(this.keyStroke)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke(new Gu(this)),this.formKeyStrokeContext=new Zr,this.formKeyStrokeContext.invokeAcceptInputOnActiveValueField=!0,this.formKeyStrokeContext.registerKeyStroke(this.checkBoxKeyStroke),this.formKeyStrokeContext.$bindTarget=function(){let e=this.getForm();return e?e.$container:this.session.desktop.$container}.bind(this)}_render(){this.addContainer(this.$parent,"check-box-field"),this.addLabel(),this.addMandatoryIndicator(),this.addFieldContainer(this.$parent.makeDiv()),this.$checkBox=this.$fieldContainer.appendDiv("check-box").on("mousedown",this._onMouseDown.bind(this)).data("valuefield",this),this.addField(this.$checkBox),this.$checkBoxLabel=this.$fieldContainer.appendDiv("label").on("mousedown",this._onMouseDown.bind(this)),Zd.linkElementWithLabel(this.$checkBox,this.$checkBoxLabel),yo.installForEllipsis(this.$checkBoxLabel,{parent:this}),this.addStatus(),this.session.keyStrokeManager.installKeyStrokeContext(this.formKeyStrokeContext)}_renderProperties(){super._renderProperties(),this._renderValue(),this._renderWrapText()}_remove(){yo.uninstall(this.$checkBoxLabel),this.session.keyStrokeManager.uninstallKeyStrokeContext(this.formKeyStrokeContext),super._remove()}_renderDisplayText(){}setValue(e){this.setProperty("value",e)}_renderValue(){this.$fieldContainer.toggleClass("checked",!0===this.value),this.$checkBox.toggleClass("checked",!0===this.value),this.$checkBox.toggleClass("undefined",this.triStateEnabled&&!0!==this.value&&!1!==this.value)}_renderEnabled(){super._renderEnabled(),this.$checkBox.setTabbable(this.enabledComputed&&!Qe.get().supportsOnlyTouch()).setEnabled(this.enabledComputed)}setTriStateEnabled(e){this.setProperty("triStateEnabled",e),this.rendered&&this._renderValue()}_renderLabel(){this.$checkBoxLabel.contentOrNbsp(this.labelHtmlEnabled,this.label,"empty"),this._renderEmptyLabel()}_renderFont(){ts.legacyFont(this,this.$fieldContainer),this.invalidateLayoutTree()}_renderForegroundColor(){ts.legacyForegroundColor(this,this.$fieldContainer)}_renderBackgroundColor(){ts.legacyBackgroundColor(this,this.$fieldContainer)}_renderGridData(){super._renderGridData(),this.updateInnerAlignment({useHorizontalAlignment:!0})}_renderGridDataHints(){super._renderGridDataHints(),this.updateInnerAlignment({useHorizontalAlignment:!0})}setKeyStroke(e){this.setProperty("keyStroke",e)}_setKeyStroke(e){this._setProperty("keyStroke",e),this.checkBoxKeyStroke.parseAndSetKeyStroke(this.keyStroke)}setWrapText(e){this.setProperty("wrapText",e)}_renderWrapText(){this.$checkBoxLabel.toggleClass("white-space-nowrap",!this.wrapText),this.invalidateLayoutTree()}acceptInput(e,t){}toggleChecked(){this.enabledComputed&&(this.triStateEnabled?!1===this.value?this.setValue(!0):!0===this.value?this.setValue(null):this.setValue(!1):this.setValue(!this.value))}prepareForCellEdit(e){super.prepareForCellEdit(e),this.$checkBoxLabel.hide()}_onMouseDown(e){if(!this.enabledComputed)return;this.toggleChecked();let t=this.$checkBox.is(e.currentTarget),i=this.$checkBoxLabel.isOrHas(e.currentTarget);(t||i)&&this.focusAndPreventDefault(e)}}class zu extends uu{constructor(){super(),this._addRemoteProperties(["value"])}}class Gu extends U{constructor(e){super(),this.field=e,this.which=[Kr.SPACE],this.stopPropagation=!0,this.stopImmediatePropagation=!0,this.renderingHints.hAlign=ns.LEFT,this.renderingHints.$drawingArea=function(e,t){return this.field.$fieldContainer}.bind(this)}handle(e){this.field.toggleChecked()}}function Uu(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Ku extends du{constructor(){super(),this.allowedMimeTypes=null,this.maximumSize=null,this._fileUploadWaitRetryCountTimeout=99,this._fullSelectionLength=0}_createKeyStrokeContext(){return new Qr}_render(){this.addContainer(this.$parent,"clipboard-field"),this.addLabel(),this.addField(this.$parent.makeElement("<div>").addClass("input-field")),this.addStatus(),this.$field.disableSpellcheck().attr("contenteditable",!0).attr("tabindex","0").on("keydown",this._onKeyDown.bind(this)).on("input",this._onInput.bind(this)).on("paste",this._onPaste.bind(this)).on("copy",this._onCopy.bind(this)).on("cut",this._onCopy.bind(this))}_getDragAndDropHandlerOptions(){let e=super._getDragAndDropHandlerOptions();return e.allowedTypes=()=>this.allowedMimeTypes,e.dropMaximumSize=()=>Math.min(x.nvl(this.dropMaximumSize,Number.MAX_VALUE),x.nvl(this.maximumSize,Number.MAX_VALUE)),e}_renderDisplayText(){let e,t=this.displayText;this.$field.children().each(((t,i)=>{e||"IMG"!==i.nodeName||(e=i)})),qt.hasText(t)?(this.$field.html(qt.nl2br(t,!0)),this._installScrollbars(),setTimeout((()=>{this.$field.selectAllText();let e=this._getSelection();this._fullSelectionLength=e?e.toString().length:0}))):this.$field.empty(),e&&this.$field.prepend(e)}_readDisplayText(){return this.displayText}_getSelection(){let e,t=this.$container.window(!0);return t.getSelection?e=t.getSelection():document.getSelection&&(e=document.getSelection()),e&&0!==e.toString().length?e:null}_onKeyDown(e){return!x.isOneOf(e.which,Ku.ALWAYS_DESTRUCTIVE_KEYS)&&(!!(e.ctrlKey||e.altKey||e.metaKey||x.isOneOf(e.which,Ku.NON_DESTRUCTIVE_KEYS))&&void 0)}_onInput(e){return this._renderDisplayText(),!1}_onCopy(e){if(Qe.get().isIos()&&!1===this._onIosCopy(e))return;let t,i,s,r=this.$container.window(!0);try{e.originalEvent.clipboardData?s=e.originalEvent.clipboardData:r.clipboardData&&(s=r.clipboardData)}catch(e){n().log.error('Error while reading "clipboardData"',e)}if(!s)return n().log.error("Unable to access clipboard data."),!1;if(this._uninstallScrollbars(),t=this._getSelection(),t){i=t.toString().length===this._fullSelectionLength?this.displayText:t.toString();try{s.setData("text/plain",i)}catch(e){s.setData("Text",i)}return this._installScrollbars(),!1}}_onIosCopy(e){let t=this.$field.attr("style");return this.$field.css({color:"#000","background-color":"transparent"}),setTimeout((()=>{this.$field.attrOrRemove("style",t)})),!1}_onPaste(e){if(this.readOnly)return!1;let t,i=Date.now(),s=this.$container.window(!0);if(this.$field.selectAllText(),e.originalEvent.clipboardData)t=e.originalEvent.clipboardData;else{if(!s.clipboardData)throw new Error("Unable to access clipboard data.");t=s.clipboardData}let r=[],o={},l=0,a=0,h=t.getData("Text");h&&(window.Blob?(r.push(new Blob([h],{type:di.TEXT_PLAIN})),a++):(o["textTransferObject"+l++]=h,a++)),0===a&&t.items&&(Array.prototype.forEach.call(t.items,(e=>{if(e.type===di.TEXT_PLAIN)e.getAsString((e=>{r.push(new Blob([e],{type:di.TEXT_PLAIN})),a++}));else if(x.isOneOf(e.type,[di.IMAGE_PNG,di.IMAGE_JPG,di.IMAGE_JPEG,di.IMAGE_GIF])){let t=e.getAsFile();if(t){i-t.lastModified<1e3&&(t.scoutName=er.EMPTY_UPLOAD_FILENAME),r.push(t),a++}}})),this._cleanupFiles(r));let d=0;0===a&&t.files&&Array.prototype.forEach.call(t.files,(e=>{let t=new FileReader;t.onload=t=>{let i=new Blob([t.target.result],{type:e.type});i.name=e.name,r.push(i),d--},t.onerror=t=>{d--,n().log.error("Error while reading file "+e.name+" / "+t.target.error.code)},d++,a++,t.readAsArrayBuffer(e)}));let u=0,c=()=>{if(0===d||u++===this._fileUploadWaitRetryCountTimeout)if(u>=this._fileUploadWaitRetryCountTimeout){let e={entryPoint:this.$container.entryPoint(),header:this.session.text("ui.ClipboardTimeoutTitle"),body:this.session.text("ui.ClipboardTimeout"),yesButtonText:this.session.text("Ok")};this.session.showFatalMessage(e)}else(r.length>0||Object.keys(o).length>0)&&this.session.uploadFiles(this,r,o,this.maximumSize,this.allowedMimeTypes);else setTimeout(c,150)};return a>0?(c(),!1):((()=>{this._uninstallScrollbars();let e=this.$field.html();this.$field.html("");let t=()=>{this.$field.html(e),this._installScrollbars()};setTimeout((()=>{let e=!1;if(this.$field.children().each(((t,i)=>{if("IMG"===i.nodeName){let t=n()(i).attr("src"),s=/^data:(.*);base64,(.*)/.exec(t),o=s&&s[1];if(x.isOneOf(o,di.IMAGE_PNG,di.IMAGE_JPG,di.IMAGE_JPEG,di.IMAGE_GIF)){let t=window.atob(s[2]),i=[];for(let e=0;e<t.length;e++)i[e]=t.charCodeAt(e);let n=new Uint8Array(i),l=new Blob([n],{type:o});l.name="",r.push(l),e=!0}}})),e)t();else{let e=this.$field.text();qt.hasText(e)?(this.setDisplayText(e),r.push(new Blob([e],{type:di.TEXT_PLAIN}))):t()}c()}),0)})(),!0)}_cleanupFiles(e){if(2!==e.length)return;let t,i;e.forEach((e=>{"image.png"===e.name&&e.scoutName?t=e:"image.jpeg"===e.name&&e.scoutName&&(i=e)})),t&&i&&me.remove(e,i)}}Uu(Ku,"NON_DESTRUCTIVE_KEYS",[Kr.ESC,Kr.ENTER,Kr.TAB,Kr.PAGE_UP,Kr.PAGE_DOWN,Kr.END,Kr.HOME,Kr.LEFT,Kr.UP,Kr.RIGHT,Kr.DOWN,Kr.F1,Kr.F2,Kr.F3,Kr.F4,Kr.F5,Kr.F6,Kr.F7,Kr.F8,Kr.F9,Kr.F10,Kr.F11,Kr.F12]),Uu(Ku,"ALWAYS_DESTRUCTIVE_KEYS",[Kr.BACKSPACE,Kr.DELETE]);class qu extends uu{constructor(){super()}}class ju extends du{constructor(){super()}_render(){this.addContainer(this.$parent,"color-field"),this.addLabel(),this.addField(this.$parent.makeDiv("not-implemented").text("not implemented yet")),this.addMandatoryIndicator(),this.addStatus()}}class Yu extends uu{constructor(){super()}}class Xu extends Ii{constructor(){super()}}function Ju(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Zu extends du{constructor(){super(),this.popup=null,this.autoDate=null,this.dateDisplayText=null,this.dateHasText=!1,this.dateFocused=!1,this.dateFormatPattern=null,this.disabledCopyOverlay=!0,this.hasDate=!0,this.touchMode=!1,this.embedded=!1,this.hasTime=!1,this.hasTimePopup=!0,this.timeDisplayText=null,this.timeHasText=!1,this.timeDisplayText=null,this.timePickerResolution=30,this.timeFormatPattern=null,this.timeFocused=!1,this.$dateField=null,this.$timeField=null,this.$dateFieldIcon=null,this.$timeFieldIcon=null,this.$dateClearIcon=null,this.$timeClearIcon=null,this._$predictDateField=null,this._$predictTimeField=null,this._tempTimeDate=null,this.invalidValueMessageKey="ui.InvalidDate",this._addCloneProperties(["hasDate","hasTime","dateFormatPattern","timeFormatPattern","allowedDates","autoDate"])}_createKeyStrokeContext(){return new Qr}_init(e){super._init(e),Zd.initTouch(this,e),this.popup=e.popup,this._setAutoDate(this.autoDate),this._setDisplayText(this.displayText),this._setAllowedDates(this.allowedDates),this._setTimePickerResolution(this.timePickerResolution)}_initValue(e){this._setDateFormatPattern(this.dateFormatPattern),this._setTimeFormatPattern(this.timeFormatPattern),super._initValue(e)}createDatePopup(){let e=this.touchMode?"DatePickerTouchPopup":"DatePickerPopup";return x.create(e,{parent:this,$anchor:this.$field,boundToAnchor:!this.touchMode,cssClass:this._errorStatusClass(),closeOnAnchorMouseDown:!1,field:this,allowedDates:this.allowedDates,dateFormat:this.isolatedDateFormat,displayText:this.dateDisplayText})}createTimePopup(){let e=this.touchMode?"TimePickerTouchPopup":"TimePickerPopup";return x.create(e,{parent:this,$anchor:this.$timeField,boundToAnchor:!this.touchMode,cssClass:this._errorStatusClass(),closeOnAnchorMouseDown:!1,field:this,timeResolution:this.timePickerResolution})}_render(){this.addContainer(this.$parent,"date-field"),this.addLabel(),this.addField(this.$parent.makeDiv("date-time-composite")),this.addStatus(this.$field),this.embedded||this.addMandatoryIndicator(),this.htmlDateTimeComposite=fr.install(this.$field,this.session),this.htmlDateTimeComposite.setLayout(new ec(this))}_renderProperties(){this._renderHasDate(),this._renderHasTime(),super._renderProperties(),this._renderDateHasText(),this._renderTimeHasText()}_remove(){super._remove(),this.$dateField=null,this.$timeField=null,this.$dateFieldIcon=null,this.$timeFieldIcon=null,this.$dateClearIcon=null,this.$timeClearIcon=null,this._$predictDateField=null,this._$predictTimeField=null,this.popup=null}setHasDate(e){this.setProperty("hasDate",e)}_setHasDate(e){this._setProperty("hasDate",e),this.initialized&&this._updateDisplayTextProperty()}_renderHasDate(){this.hasDate&&!this.$dateField?(this.$dateField=Zd.makeInputOrDiv(this,"date").on("mousedown",this._onDateFieldMouseDown.bind(this)).appendTo(this.$field),this.$timeField&&this.$dateField.insertBefore(this.$timeField),this.touchMode||this.$dateField.on("keydown",this._onDateFieldKeyDown.bind(this)).on("input",this._onDateFieldInput.bind(this)).on("blur",this._onDateFieldBlur.bind(this)).on("focus",this._onDateFieldFocus.bind(this)),this._linkWithLabel(this.$dateField),fr.install(this.$dateField,this.session),this.$dateFieldIcon=Zd.appendIcon(this.$field,"date").on("mousedown",this._onDateIconMouseDown.bind(this))):!this.hasDate&&this.$dateField&&(this.$dateField.remove(),this.$dateField=null,this.$dateFieldIcon.remove(),this.$dateFieldIcon=null),this.rendering||(this._renderDisplayText(),this._renderFieldStyle(),this._renderEnabled(),this.htmlDateTimeComposite.invalidateLayoutTree()),this._renderDateClearable(),this.$container.toggleClass("has-date",this.hasDate)}setHasTime(e){this.setProperty("hasTime",e)}_setHasTime(e){this._setProperty("hasTime",e),this.initialized&&this._updateDisplayTextProperty()}_renderHasTime(){this.hasTime&&!this.$timeField?(this.$timeField=Zd.makeInputOrDiv(this,"time").on("mousedown",this._onTimeFieldMouseDown.bind(this)).appendTo(this.$field),this.$dateField&&this.$timeField.insertAfter(this.$dateField),this.touchMode&&this.hasTimePopup||this.$timeField.on("keydown",this._onTimeFieldKeyDown.bind(this)).on("input",this._onTimeFieldInput.bind(this)).on("blur",this._onTimeFieldBlur.bind(this)).on("focus",this._onTimeFieldFocus.bind(this)),this._linkWithLabel(this.$timeField),fr.install(this.$timeField,this.session),this.$timeFieldIcon=Zd.appendIcon(this.$field,"time").on("mousedown",this._onTimeIconMouseDown.bind(this))):!this.hasTime&&this.$timeField&&(this.$timeField.remove(),this.$timeField=null,this.$timeFieldIcon.remove(),this.$timeFieldIcon=null),this.rendering||(this._renderDisplayText(),this._renderFieldStyle(),this._renderEnabled(),this.htmlDateTimeComposite.invalidateLayoutTree()),this._renderTimeClearable(),this.$container.toggleClass("has-time",this.hasTime)}setTimePickerResolution(e){this.setProperty("timePickerResolution",e)}_setTimePickerResolution(e){e<1?(e=10,this.hasTimePopup=!1):this.hasTimePopup=!0,this._setProperty("timePickerResolution",e)}_renderPlaceholder(e){super._renderPlaceholder(this._fieldForPlaceholder())}_removePlaceholder(e){super._removePlaceholder(this._fieldForPlaceholder())}_fieldForPlaceholder(){return this.hasDate?this.$dateField:this.hasTime?this.$timeField:null}setDateFormatPattern(e){this.setProperty("dateFormatPattern",e)}_setDateFormatPattern(e){e||(e=this.session.locale.dateFormatPatternDefault),this._setProperty("dateFormatPattern",e),this.isolatedDateFormat=new eo(this.session.locale,this.dateFormatPattern),this.initialized&&this._updateDisplayText()}setTimeFormatPattern(e){this.setProperty("timeFormatPattern",e)}_setTimeFormatPattern(e){e||(e=this.session.locale.timeFormatPatternDefault),this._setProperty("timeFormatPattern",e),this.isolatedTimeFormat=new eo(this.session.locale,this.timeFormatPattern),this.initialized&&this._updateDisplayText()}_renderEnabled(){super._renderEnabled(),this.$container.setEnabled(this.enabledComputed),this.$dateField&&this.$dateField.setEnabled(this.enabledComputed),this.$timeField&&this.$timeField.setEnabled(this.enabledComputed)}_renderDisplayText(){this.hasDate&&this._renderDateDisplayText(),this.hasTime&&this._renderTimeDisplayText(),this._removePredictionFields()}_readDisplayText(){let e,t;return this.hasDate&&(e=this._readDateDisplayText()),this.hasTime&&(t=this._readTimeDisplayText()),this._computeDisplayText(e,t)}_renderDateDisplayText(){Zd.valOrText(this.$dateField,this.dateDisplayText),this._updateDateHasText()}_readDateDisplayText(){return this._$predictDateField?Zd.valOrText(this._$predictDateField):Zd.valOrText(this.$dateField)}_renderTimeDisplayText(){Zd.valOrText(this.$timeField,this.timeDisplayText),this._updateTimeHasText()}_readTimeDisplayText(){return this._$predictTimeField?Zd.valOrText(this._$predictTimeField):Zd.valOrText(this.$timeField)}setDisplayText(e){this._setDisplayText(e),this.rendered&&this._renderDisplayText()}_setDisplayText(e){this._setProperty("displayText",e);let t=this._splitDisplayText(e);this.hasDate&&(this.dateDisplayText=t.dateText),this.hasTime&&(this.timeDisplayText=t.timeText)}_ensureValue(e){return Le.ensure(e)}_validateValue(e){if(Ai.isNullOrUndefined(e))return e;if(!(e instanceof Date))throw this.session.text(this.invalidValueMessageKey);return this.hasDate||this.value||(e=Le.combineDateTime(null,e)),e}_valueEquals(e,t){return Le.equals(e,t)}setAutoDate(e){this.setProperty("autoDate",e)}_setAutoDate(e){e=Le.ensure(e),this._setProperty("autoDate",e)}_setAllowedDates(e){Array.isArray(e)?(e=e.map((e=>Le.ensure(e))),this._setProperty("allowedDates",e)):this._setProperty("allowedDates",null)}_renderErrorStatus(){super._renderErrorStatus();let e=!!this.errorStatus,t=this._errorStatusClass();this.$dateField&&(this._updateErrorStatusClassesOnElement(this.$dateField,t,e),this._updateErrorStatusClassesOnElement(this._$predictDateField,t,e)),this.$timeField&&(this._updateErrorStatusClassesOnElement(this.$timeField,t,e),this._updateErrorStatusClassesOnElement(this._$predictTimeField,t,e)),this.popup&&this._updateErrorStatusClassesOnElement(this.popup.$container,t,e)}_errorStatusClass(){return this.errorStatus&&!this._isSuppressStatusField()?"has-"+this.errorStatus.cssClass():""}_renderFont(){this.$dateField&&ts.legacyFont(this,this.$dateField),this.$timeField&&ts.legacyFont(this,this.$timeField)}_renderForegroundColor(){this.$dateField&&ts.legacyForegroundColor(this,this.$dateField),this.$timeField&&ts.legacyForegroundColor(this,this.$timeField)}_renderBackgroundColor(){this.$dateField&&ts.legacyBackgroundColor(this,this.$dateField),this.$timeField&&ts.legacyBackgroundColor(this,this.$timeField)}activate(){this.enabledComputed&&this.rendered&&(this.$dateField?(this.$dateField.focus(),this._onDateFieldMouseDown()):this.$timeField&&(this.$timeField.focus(),this._onTimeFieldMouseDown()))}getFocusableElement(){return this.$dateField?this.$dateField:this.$timeField?this.$timeField:null}_onDateFieldMouseDown(){Zd.handleOnClick(this)&&this.openDatePopupAndSelect(this.value)}_onTimeFieldMouseDown(){Zd.handleOnClick(this)&&this.openTimePopupAndSelect(this.value)}setDateFocused(e){this.setProperty("dateFocused",e)}_renderDateFocused(){this.$container.toggleClass("date-focused",this.dateFocused)}_updateTimeHasText(){this.setTimeHasText(qt.hasText(this._readTimeDisplayText()))}setTimeHasText(e){this.setProperty("timeHasText",e)}_renderTimeHasText(){this.$timeField&&this.$timeField.toggleClass("has-text",this.timeHasText),this.$container.toggleClass("time-has-text",this.timeHasText)}_updateDateHasText(){this.setDateHasText(qt.hasText(this._readDateDisplayText()))}setDateHasText(e){this.setProperty("dateHasText",e)}_renderDateHasText(){this.$dateField&&this.$dateField.toggleClass("has-text",this.dateHasText),this.$container.toggleClass("date-has-text",this.dateHasText)}clear(){this.hasDate&&this.hasTime?(this._clear(),this.dateFocused||this.timeFocused||this.acceptInput(),this._triggerClear()):super.clear()}_clear(){this._removePredictionFields(),this.hasDate&&!this.timeFocused&&(Zd.valOrText(this.$dateField,""),this._setDateValid(!0),this._updateDateHasText()),this.hasTime&&!this.dateFocused&&(Zd.valOrText(this.$timeField,""),this._setTimeValid(!0),this._updateTimeHasText())}_onDateClearIconMouseDown(e){this.enabledComputed&&(this.$dateField.focus(),this.clear(),this.value?this.selectDate(this.value,!1):this.preselectDate(this._referenceDate(),!1),e.preventDefault())}_onDateIconMouseDown(e){this.enabledComputed&&(this.$dateField.focus(),this.embedded||this.openDatePopupAndSelect(this.value))}setTimeFocused(e){this.setProperty("timeFocused",e)}_renderTimeFocused(){this.$container.toggleClass("time-focused",this.timeFocused)}_renderClearable(){this._renderDateClearable(),this._renderTimeClearable(),this._updateClearableStyles()}_renderDateClearable(){this.hasDate&&this.isClearable()?this.$dateClearIcon||(this.$dateClearIcon=this.$field.appendSpan("icon date-clear unfocusable text-field-icon action").on("mousedown",this._onDateClearIconMouseDown.bind(this))):this.$dateClearIcon&&(this.$dateClearIcon.remove(),this.$dateClearIcon=null)}_renderTimeClearable(){this.hasTime&&this.isClearable()?this.$timeClearIcon||(this.$timeClearIcon=this.$field.appendSpan("icon time-clear unfocusable text-field-icon action").on("mousedown",this._onTimeClearIconMouseDown.bind(this))):this.$timeClearIcon&&(this.$timeClearIcon.remove(),this.$timeClearIcon=null)}_onTimeClearIconMouseDown(e){this.enabledComputed&&(this.$timeField.focus(),this.clear(),this.value?this.selectTime(this.value,!1):this.preselectTime(this._referenceDate(),!1),e.preventDefault())}_onTimeIconMouseDown(e){this.enabledComputed&&(this.$timeField.focus(),this.embedded||this.openTimePopupAndSelect(this.value))}_onDateFieldBlur(e){this.setFocused(!1),this.setDateFocused(!1),this.embedded||(this.popup instanceof Go&&this.closePopup(),this.setDateFocused(!1),this.acceptDate(),this._removePredictionFields())}_onDateFieldFocus(e){this.setFocused(!0),this.setDateFocused(!0)}_onTimeFieldBlur(e){this._tempTimeDate=null,this.setFocused(!1),this.setTimeFocused(!1),this.embedded||(this.popup instanceof Sd&&this.closePopup(),this._tempTimeDate=null,this.setTimeFocused(!1),this.acceptTime(),this._removePredictionFields())}_onTimeFieldFocus(){this.setFocused(!0),this.setTimeFocused(!0)}_onDateFieldKeyDown(e){let t=0,i=0,s=0,r=0,o=this.$dateField[0].selectionStart,l=Zd.valOrText(this.$dateField),a=this._$predictDateField&&Zd.valOrText(this._$predictDateField),h=(e.ctrlKey?1:0)+(e.shiftKey?1:0)+(e.altKey?1:0)+(e.metaKey?1:0),d=this.value||this._referenceDate(),u=!0;if(this.hasTime&&this.mode===iu.Mode.CELLEDITOR&&e.which===Kr.TAB&&0===h)e.stopPropagation();else if(e.which!==Kr.TAB&&e.which!==Kr.SHIFT&&e.which!==Kr.HOME&&e.which!==Kr.END&&e.which!==Kr.CTRL&&e.which!==Kr.ALT)if(e.which!==Kr.ENTER)if(e.which!==Kr.ESC)if(e.which!==Kr.RIGHT||o!==l.length){if((e.which===Kr.UP||e.which===Kr.DOWN||e.which===Kr.PAGE_UP||e.which===Kr.PAGE_DOWN)&&l&&!this._isDateValid()){let e=this.isolatedDateFormat.parse(l,d);e&&(d=e,this._setDateValid(!0))}if(e.which===Kr.PAGE_UP||e.which===Kr.PAGE_DOWN)return l&&this._isDateValid()?this.popup||this.openDatePopupAndSelect(d):(d=this._referenceDate(),this.hasTime&&(d=Le.combineDateTime(d,this.value||this._referenceDate())),this.openDatePopupAndSelect(d),this._updateDisplayText(d),this._setDateValid(!0),u=!1),u&&(s=e.which===Kr.PAGE_UP?-1:1,this.shiftSelectedDate(0,s,0),this._updateDisplayText(this.getDatePicker().selectedDate)),void n().suppressEvent(e);if(e.which===Kr.UP||e.which===Kr.DOWN){if(t=e.which===Kr.UP?-1:1,(e.ctrlKey||e.metaKey)&&1===h)i=t;else if(e.shiftKey&&1===h)s=t;else{if(0!==h)return void n().suppressEvent(e);r=t}l&&this._isDateValid()?this.popup||this.openDatePopupAndSelect(d):(d=this._referenceDate(),this.hasTime&&(d=Le.combineDateTime(d,this.value||this._referenceDate())),this.openDatePopupAndSelect(d),this._updateDisplayText(d),this._setDateValid(!0),u=!1),u&&(this.shiftSelectedDate(i,s,r),this._updateDisplayText(this.getDatePicker().selectedDate)),n().suppressEvent(e)}}else a&&this._setDateDisplayText(a.substring(0,l.length+1));else this.popup&&(this.closePopup(),n().suppressEvent(e));else(this.popup||this._$predictDateField)&&(this.acceptDate(),this.closePopup(),n().suppressEvent(e))}_onDateFieldInput(e){let t=Zd.valOrText(this.$dateField);if(this.$dateField[0]!==this.$dateField.activeElement(!0))return;this._$predictDateField||(this._$predictDateField=this._createPredictionField(this.$dateField)),this._removePredictErrorStatus();let i=this._predictDate(t);i?(Zd.valOrText(this._$predictDateField,i.text),this.openDatePopupAndSelect(i.date)):this._removePredictionFields(),this._updateDateHasText(),setTimeout((()=>{this._$predictDateField&&this._$predictDateField.setVisible(0===this.$dateField.scrollLeft())}),50)}acceptInput(){let e=x.nvl(this._readDisplayText(),""),t=this._checkDisplayTextChanged(e);if(t)this.parseAndSetValue(e);else{let i=this.value;this.parseAndSetValue(e),Le.equals(this.value,i)||(t=!0)}t&&this._triggerAcceptInput()}acceptDate(){let e=this.containsStatus(Bi);this.hasTime&&!e&&qt.empty(this.$dateField.val())&&this.$timeField.val(""),this.acceptInput()}acceptTime(){let e=this.containsStatus(Bi);this.hasDate&&!e&&qt.empty(this.$timeField.val())&&this.$dateField.val(""),this.acceptInput()}acceptDateTime(e,t){e?this.acceptDate():t&&this.acceptTime()}_onTimeFieldKeyDown(e){let t=0,i=0,s=0,r=0,o=this.$timeField[0].selectionStart,l=this.$timeField.val(),a=this._$predictTimeField&&this._$predictTimeField.val(),h=(e.ctrlKey?1:0)+(e.shiftKey?1:0)+(e.altKey?1:0)+(e.metaKey?1:0),d=this.value||this._referenceDate(),u=!0;if(this.hasDate&&this.mode===iu.Mode.CELLEDITOR&&e.which===Kr.TAB&&e.shiftKey&&1===h)e.stopPropagation();else if(e.which!==Kr.TAB&&e.which!==Kr.SHIFT&&e.which!==Kr.HOME&&e.which!==Kr.END&&e.which!==Kr.CTRL&&e.which!==Kr.ALT)if(e.which!==Kr.ENTER)if(e.which!==Kr.ESC)if(e.which!==Kr.RIGHT||o!==l.length){if(e.which===Kr.UP||e.which===Kr.DOWN){if(t=e.which===Kr.UP?-1:1,e.ctrlKey&&1===h)r=t;else if(e.shiftKey&&1===h)i=t;else{if(0!==h)return void n().suppressEvent(e);s=t}if(this.hasTimePopup)l&&this._isTimeValid()?this.popup||this.openTimePopupAndSelect(d):(d=this._referenceDate(),this.openTimePopupAndSelect(d),this._updateDisplayText(d),this._setTimeValid(!0),u=!1),u&&(this.shiftSelectedTime(i,s,r),this._updateDisplayText(this.getTimePicker().selectedTime)),n().suppressEvent(e);else{if(!this._tempTimeDate){let e=this._predictTime(l);e&&e.date?this._tempTimeDate=e.date:(this._tempTimeDate=this._referenceDate(),u=!1)}u&&(this._tempTimeDate=Le.shiftTime(this._tempTimeDate,i,s,r)),this.hasDate&&(this._tempTimeDate=Le.combineDateTime(this.value||this._referenceDate(),this._tempTimeDate)),this._updateDisplayText(this._tempTimeDate),this._setTimeValid(!0),n().suppressEvent(e)}}}else a&&this._setTimeDisplayText(a.substring(0,l.length+1));else this.popup&&(this.closePopup(),n().suppressEvent(e));else(this.popup||this._$predictDateField)&&(this._tempTimeDate=null,this.acceptTime(),this.closePopup(),n().suppressEvent(e))}_onTimeFieldInput(e){let t=this.$timeField.val();if(this.$timeField[0]!==this.$timeField.activeElement(!0))return;this._$predictTimeField||(this._$predictTimeField=this._createPredictionField(this.$timeField));let i=this._predictTime(t);i?(this._$predictTimeField.val(i.text),this.openTimePopupAndSelect(i.date)):(this._tempTimeDate=null,this._removePredictionFields()),this._updateTimeHasText(),setTimeout((()=>{this._$predictTimeField&&this._$predictTimeField.setVisible(0===this.$timeField.scrollLeft())}),50)}_onDatePickerDateSelect(e){this._setNewDateTimeValue(this._newTimestampAsDate(e.date,this.value))}_onTimePickerTimeSelect(e){this._setNewDateTimeValue(this._newTimestampAsDate(this.value,e.time))}_setNewDateTimeValue(e){this._setDateValid(!0),this._setTimeValid(!0),this.setValue(e),this._triggerAcceptInput(),this.closePopup()}_createPredictionField(e){this.setSuppressStatus(iu.SuppressStatus.ALL);let t=e.clone().addClass("predict").attr("tabIndex","-1").insertBefore(e);return e.hasClass("has-error")&&t.addClass("has-error"),t}_removePredictionFields(){this.setSuppressStatus(null),this._$predictDateField&&(this._$predictDateField.remove(),this._$predictDateField=null),this._$predictTimeField&&(this._$predictTimeField.remove(),this._$predictTimeField=null)}_setDateDisplayText(e){this.dateDisplayText=e,this._updateDisplayTextProperty(),this.rendered&&this._renderDateDisplayText()}_setTimeDisplayText(e){this.timeDisplayText=e,this._updateDisplayTextProperty(),this.rendered&&this._renderTimeDisplayText()}_computeDisplayText(e,t){let i=e||"",s=t||"",r=(this.hasDate?i:"")+(this.hasDate&&this.hasTime?"\n":"")+(this.hasTime?s:"");return"\n"===r&&(r=""),r}_splitDisplayText(e){let t="",i="";if(qt.hasText(e)){let s=e.split("\n");t=this.hasDate?s[0]:"",i=this.hasTime?this.hasDate?s[1]:s[0]:""}return{dateText:t,timeText:i}}_updateDisplayTextProperty(){this._setProperty("displayText",this._computeDisplayText(this.dateDisplayText,this.timeDisplayText))}aboutToBlurByMouseDown(e){let t,i,s,r,n=!!this.$dateField&&(this.$dateField.isOrHas(e)||this.$dateFieldIcon.isOrHas(e)||this.$dateClearIcon&&this.$dateClearIcon.isOrHas(e)),o=!!this.$timeField&&(this.$timeField.isOrHas(e)||this.$timeFieldIcon.isOrHas(e)||this.$timeClearIcon&&this.$timeClearIcon.isOrHas(e)),l=this.popup&&this.popup.$container.isOrHas(e),a=this.fieldStatus&&this.fieldStatus.$container.isOrHas(e),h=this.getDatePicker(),d=this.getTimePicker();if(!(n||o||l||a))return t=yn.isActiveElement(this.$dateField),i=yn.isActiveElement(this.$timeField),void this.acceptDateTime(t,i);this.embedded&&(s=h&&h.$container.isOrHas(e),r=d&&d.$container.isOrHas(e),s&&r&&this.acceptTime())}_newTimestampAsDate(e,t){let i=null;return(e||t)&&(i=this.value||this._referenceDate(),e&&(i=Le.combineDateTime(e,i)),t&&(i=Le.combineDateTime(i,t))),i}_referenceDate(){let e=this.autoDate||Le.ceil(Le.newDate(),this.timePickerResolution);return e=this.autoDate?this.autoDate:this.hasTime?Le.ceil(Le.newDate(),this.timePickerResolution):Le.trunc(Le.newDate()),this.allowedDates&&(e=this._findAllowedReferenceDate(e)),e}_findAllowedReferenceDate(e){let t,i;for(t=0;t<this.allowedDates.length;t++)if(i=this.allowedDates[t],Le.compare(i,e)>=0)return i;for(t=this.allowedDates.length-1;t>=0;t--)if(i=this.allowedDates[t],Le.compare(i,e)<=0)return i;return e}openDatePopup(e){this.popup||(this.popup=this.createDatePopup(),this.popup.open(),this.$dateField.addClass("focused"),this.popup.one("destroy",(e=>{this.$dateField.removeClass("focused"),this._onPopupDestroy(e),this.popup=null})),this.getDatePicker().on("dateSelect",this._onDatePickerDateSelect.bind(this)))}closePopup(){this.popup&&this.popup.close()}toggleDatePopup(){n().log.isInfoEnabled()&&n().log.info("(DateField#toggleDatePopup) popupOpen=",!!this.popup),this.popup?this.closePopup():this.openDatePopupAndSelect(this.value)}openTimePopup(e){this.hasTimePopup&&!this.popup&&(this.popup=this.createTimePopup(),this.popup.open(),this.$timeField.addClass("focused"),this.popup.one("destroy",(e=>{this.$timeField.removeClass("focused"),this._onPopupDestroy(e),this.popup=null})),this.getTimePicker().on("timeSelect",this._onTimePickerTimeSelect.bind(this)))}toggleTimePopup(){n().log.isInfoEnabled()&&n().log.info("(DateField#toggleTimePopup) popupOpen=",!!this.popup),this.popup?this.closePopup():this.openTimePopupAndSelect(this.value)}_parseValue(e){let t=this._splitDisplayText(e),i=t.dateText,s={},r=t.timeText,n={},o=!0;if(this._removePredictErrorStatus(),this.hasDate&&(s=this._predictDate(i),s||(o=!1),this._setDateDisplayText(i)),this.hasTime&&(n=this._predictTime(r),n||(o=!1),this._setTimeDisplayText(r)),!o)throw new Xu;return s.date||n.date?this._newTimestampAsDate(s.date,n.date):null}_addParsingFailedErrorStatus(e,t){t instanceof Xu||super._addParsingFailedErrorStatus(e,t)}_predictDate(e){let t=(e=e||"").match(/^([+-])(\d*)$/);if(t){let i=Le.newDate(),s=Number(t[1]+(t[2]||"0"));return i.setDate(i.getDate()+s),isNaN(i.valueOf())||i.getDate()<0?(this._setDateValid(!1),null):(this._setDateValid(!0),{date:i,text:e})}let i=this._analyzeInputAsDate(e,this.value||this._referenceDate());if(i.error)return this._setDateValid(!1),null;if(!i.predictedDate)return this._setDateValid(!0),{date:null,text:""};let s=i.predictedDate,r=new eo(this.isolatedDateFormat.locale,i.parsedPattern).format(s,!0);return t=r.match(new RegExp("^"+qt.quote(e)+"(.*)$","i")),t&&(r=e+t[1]),this._setDateValid(!0),{date:s,text:r}}_predictTime(e){e=e||"";let t=this._analyzeInputAsTime(e,this.value||this._referenceDate());if(t.error)return this._setTimeValid(!1),null;if(!t.predictedDate)return this._setTimeValid(!0),{date:null,text:""};let i=t.predictedDate,s=new eo(this.isolatedTimeFormat.locale,t.parsedPattern).format(i,!0),r=s.match(new RegExp("^"+qt.quote(e)+"(.*)$","i"));return r&&(s=e+r[1]),this._setTimeValid(!0),{date:i,text:s}}_analyzeInputAsDate(e,t){return this.isolatedDateFormat.analyze(e,t)}_analyzeInputAsTime(e,t){return this.isolatedTimeFormat.analyze(e,t)}_setErrorStatusPart(e,t){let i=null,s=null;this.errorStatus&&(s=me.find(this.errorStatus.asFlatList(),Zu.PARSE_ERROR_PREDICATE)),i=s||new Bi({message:this.session.text("ui.InvalidDate"),severity:Ii.Severity.ERROR,code:Zu.ErrorCode.PARSE_ERROR}),t?delete i[e]:i[e]=!0,i.hasOwnProperty("invalidDate")||i.hasOwnProperty("invalidTime")||(i=null),i&&!s?this.addErrorStatus(i):!i&&s&&this._removePredictErrorStatus()}_removePredictErrorStatus(){this.removeErrorStatusByPredicate(Zu.PARSE_ERROR_PREDICATE)}_createInvalidValueStatus(e,t,i){let s=super._createInvalidValueStatus(e,t,i);return s.invalidDate=!0,s.invalidTime=!0,s.code=Zu.ErrorCode.PARSE_ERROR,s}_setDateValid(e){this._setErrorStatusPart("invalidDate",e)}_setTimeValid(e){this._setErrorStatusPart("invalidTime",e)}_isErrorStatusPartValid(e){return!this.errorStatus||!this.errorStatus.asFlatList().some((t=>!!t[e]))}_isDateValid(){return this._isErrorStatusPartValid("invalidDate")}_isTimeValid(){return this._isErrorStatusPartValid("invalidTime")}onCellEditorRendered(e){e.openFieldPopup&&(this.hasDate&&!this.hasTime?this.openDatePopupAndSelect(this.value):!this.hasDate&&this.hasTime?this.openTimePopupAndSelect(this.value):Qe.get().supportsOnlyTouch()||this.openDatePopupAndSelect(this.value)),this.touchMode&&(this._cellEditorPopup=e.cellEditorPopup)}_onPopupDestroy(e){this.touchMode&&this._cellEditorPopup&&(this.hasDate&&this.hasTime||(this._cellEditorPopup.completeEdit(),this._cellEditorPopup=null))}prepareForCellEdit(e){e=e||{},super.prepareForCellEdit(e),this.$field.removeClass("cell-editor-field first last"),this.$dateField&&this.addCellEditorFieldCssClasses(this.$dateField,e),this.$timeField&&(this.$dateField||(e.cssClass=""),this.addCellEditorFieldCssClasses(this.$timeField,e))}getDatePicker(){if(this.popup&&this.popup.getDatePicker)return this.popup.getDatePicker()}openDatePopupAndSelect(e){this.openDatePopup(),e?this.selectDate(e,!1):this.preselectDate(this._referenceDate(),!1)}preselectDate(e,t){let i=this.getDatePicker();i&&i.preselectDate(e,t)}selectDate(e,t){let i=this.getDatePicker();i&&i.selectDate(e,t)}getTimePicker(){if(this.popup&&this.popup.getTimePicker)return this.popup.getTimePicker()}openTimePopupAndSelect(e){this.hasTimePopup&&(this.openTimePopup(),e?this.selectTime(e):this.preselectTime(this._referenceDate()))}preselectTime(e){let t=this.getTimePicker();t&&t.preselectTime(e)}selectTime(e){let t=this.getTimePicker();t&&t.selectTime(e)}shiftSelectedDate(e,t,i){this.openDatePopup(),this.getDatePicker().shiftSelectedDate(e,t,i)}shiftSelectedTime(e,t,i){this.openTimePopup(),this.getTimePicker().shiftSelectedTime(e,t,i)}_formatValue(e){let t="",i="";return this.hasDate&&(e&&(t=this.isolatedDateFormat.format(e)),this.dateDisplayText=t),this.hasTime&&(e&&(i=this.isolatedTimeFormat.format(e)),this.timeDisplayText=i),this._computeDisplayText(this.dateDisplayText,this.timeDisplayText)}_renderFieldStyle(){super._renderFieldStyle(),this._renderFieldStyleInternal(this.$dateField),this._renderFieldStyleInternal(this.$timeField)}_renderDisabledStyle(){super._renderDisabledStyle(),this._renderDisabledStyleInternal(this.$dateField),this._renderDisabledStyleInternal(this.$timeField)}_triggerAcceptInput(){let e={displayText:this.displayText,errorStatus:this.errorStatus,value:this.value};this.trigger("acceptInput",e)}}Ju(Zu,"ErrorCode",{PARSE_ERROR:-1}),Ju(Zu,"PARSE_ERROR_PREDICATE",(function(e){return e.code===Zu.ErrorCode.PARSE_ERROR}));class Qu extends uu{constructor(){super()}_initProperties(e){super._initProperties(e)}_onWidgetAcceptInput(e){let t=null,i=this.widget.errorStatus;i&&i.hasChildren()&&(t=me.find(i.asFlatList(),(e=>e instanceof Bi)));let s={displayText:this.widget.displayText,errorStatus:t};t||(s.value=Le.toJsonDate(this.widget.value)),this._send("acceptInput",s,{showBusyIndicator:!e.whileTyping,coalesce:function(e){return this.target===e.target&&this.type===e.type}})}_orderPropertyNamesOnSync(e){return Object.keys(e).sort(this._createPropertySortFunc(Qu.PROPERTIES_ORDER))}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Qu,"PROPERTIES_ORDER",["hasTime","hasDate"]);class ec extends _r{constructor(e){super(),this._dateField=e,this.MIN_DATE_FIELD_WIDTH=90,this.PREF_DATE_FIELD_WIDTH=110,this.MIN_TIME_FIELD_WIDTH=60,this.PREF_TIME_FIELD_WIDTH=90,this._initDefaults(),this.htmlPropertyChangeHandler=this._onHtmlEnvironmentPropertyChange.bind(this),mr.get().on("propertyChange",this.htmlPropertyChangeHandler),this._dateField.one("remove",(()=>{mr.get().off("propertyChange",this.htmlPropertyChangeHandler)}))}_initDefaults(){this.hgap=mr.get().smallColumnGap}_onHtmlEnvironmentPropertyChange(){this._initDefaults(),this._dateField.invalidateLayoutTree()}layout(e){let t,i,s=fr.get(e),r=this._dateField.$dateField,n=this._dateField.$timeField,o=this._dateField.$dateFieldIcon,l=this._dateField.$timeFieldIcon,a=this._dateField.$dateClearIcon,h=this._dateField.$timeClearIcon,d=this._dateField._$predictDateField,u=this._dateField._$predictTimeField,c=r?fr.get(r):null,p=n?fr.get(n):null,g=!!r&&!r.isDisplayNone(),m=!!n&&!n.isDisplayNone(),_=s.availableSize({exact:!0}).subtract(s.insets());if(g&&m){let e=c.margins(),s=p.margins(),g=new rr(Math.max(e.top,s.top),Math.max(e.right,s.right),Math.max(e.bottom,s.bottom),Math.max(e.left,s.left)),m=_.subtract(g),f=this._hgap(),b=m.width-f,y=.6*b,w=b-y;t=new sr(y,m.height),i=new sr(w,m.height),c.setSize(t),p.setSize(i),n.cssRight(0),o.cssTop(r.cssBorderTopWidth()).cssRight(w+f).cssHeight(t.height-r.cssBorderWidthY()),a&&a.cssTop(r.cssBorderTopWidth()).cssRight(w+f).cssHeight(t.height-r.cssBorderWidthY()),l.cssTop(n.cssBorderTopWidth()).cssRight(0).cssHeight(i.height-n.cssBorderWidthY()),h&&h.cssTop(n.cssBorderTopWidth()).cssRight(0).cssHeight(i.height-n.cssBorderWidthY()),r.toggleClass("compact",t.width<this.MIN_DATE_FIELD_WIDTH),n.toggleClass("compact",i.width<this.MIN_TIME_FIELD_WIDTH),this._dateField.$container.toggleClass("compact-date",t.width<this.MIN_DATE_FIELD_WIDTH),this._dateField.$container.toggleClass("compact-time",i.width<this.MIN_TIME_FIELD_WIDTH),d&&pr.setSize(d,t),u&&(pr.setSize(u,i),u.cssRight(0))}else g?(t=_.subtract(c.margins()),c.setSize(t),o.cssTop(r.cssBorderTopWidth()).cssRight(0).cssHeight(t.height-r.cssBorderWidthY()),a&&a.cssTop(r.cssBorderTopWidth()).cssRight(0).cssHeight(t.height-r.cssBorderWidthY()),r.toggleClass("compact",t.width<this.MIN_DATE_FIELD_WIDTH),this._dateField.$container.toggleClass("compact-date",t.width<this.MIN_DATE_FIELD_WIDTH),d&&pr.setSize(d,t)):m&&(i=_.subtract(p.margins()),p.setSize(i),l.cssTop(n.cssBorderTopWidth()).cssRight(0).cssHeight(i.height-n.cssBorderWidthY()),h&&h.cssTop(n.cssBorderTopWidth()).cssRight(0).cssHeight(i.height-n.cssBorderWidthY()),n.toggleClass("compact",i.width<this.MIN_TIME_FIELD_WIDTH),this._dateField.$container.toggleClass("compact-time",i.width<this.MIN_TIME_FIELD_WIDTH),u&&pr.setSize(u,i));let f=this._dateField.popup;f&&f.rendered&&f.position()}_hgap(){return this._dateField.cellEditor?0:this.hgap}preferredLayoutSize(e){let t=new sr,i=this._dateField.$dateField,s=this._dateField.$timeField,r=!!i&&!i.isDisplayNone(),n=!!s&&!s.isDisplayNone();return r&&n?(t=pr.prefSize(this._dateField.$dateField),t.width=this.PREF_DATE_FIELD_WIDTH+this._hgap()+this.PREF_TIME_FIELD_WIDTH):r?(t=pr.prefSize(this._dateField.$dateField),t.width=this.PREF_DATE_FIELD_WIDTH):n&&(t=pr.prefSize(this._dateField.$timeField),t.width=this.PREF_TIME_FIELD_WIDTH),t}}class tc extends du{constructor(){super(),this.button=null,this.fileInput=null,this.acceptTypes=null,this.maximumUploadSize=aa.DEFAULT_MAXIMUM_UPLOAD_SIZE}_init(e){super._init(e),this.button=x.create("Button",{parent:this,label:this._buttonLabel(),iconId:this.iconId,labelHtmlEnabled:this.labelHtmlEnabled}),this.button.on("click",this._onButtonClick.bind(this)),this.fileInput.on("change",this._onFileChange.bind(this)),this.on("propertyChange",(e=>{"enabledComputed"===e.propertyName&&(this.button.setEnabled(e.newValue),this.fileInput.setEnabled(e.newValue))}))}_initValue(e){this.fileInput=x.create("FileInput",{parent:this,acceptTypes:this.acceptTypes,text:this.displayText,enabled:this.enabledComputed,maximumUploadSize:this.maximumUploadSize,visible:!Qe.get().supportsFile()}),super._initValue(e)}_buttonLabel(){return this.label}_render(){this.addContainer(this.$parent,"file-chooser-button has-icon"),this.addLabel();let e=this.$parent.makeDiv(),t=fr.install(e,this.session);this.button.render(e),t.setLayout(new Or(this.button.htmlComp)),this.fileInput.render(e),this.addField(e),e.setTabbable(!1),this.addStatus()}setDisplayText(e){super.setDisplayText(e),this.fileInput.setText(e),e||this.fileInput.clear()}_readDisplayText(){return this.fileInput.text}_renderLabel(){this._renderEmptyLabel()}_onButtonClick(e){this.fileInput.browse()}setLabel(e){super.setLabel(e),this.button.setLabel(this._buttonLabel())}setIconId(e){this.setProperty("iconId",e),this.button.setIconId(e)}setAcceptTypes(e){this.setProperty("acceptTypes",e),this.fileInput.setAcceptTypes(e)}setFileExtensions(e){this.setProperty("fileExtensions",e);let t=me.ensure(e);t=t.map((e=>"."===e.indexOf(0)?e:"."+e)),this.setAcceptTypes(qt.join(",",t)),this.fileInput.acceptTypes=this.acceptTypes}setMaximumUploadSize(e){this.setProperty("maximumUploadSize",e),this.fileInput.setMaximumUploadSize(e)}_onFileChange(e){this.setValue(me.first(e.files))}_validateValue(e){return this.fileInput.validateMaximumUploadSize(e),e}_formatValue(e){return e?e.name:""}getFocusableElement(){return this.button.getFocusableElement()}}class ic extends uu{constructor(){super()}_onWidgetPropertyChange(e){super._onWidgetPropertyChange(e),"value"===e.propertyName&&this._onValueChange(e)}_onValueChange(e){this.widget.fileInput.upload()||this.widget.fileInput.clear()}_syncDisplayText(e){this.widget.setDisplayText(e)}}class sc extends du{constructor(){super(),this.fileInput=null,this.acceptTypes=null,this.maximumUploadSize=aa.DEFAULT_MAXIMUM_UPLOAD_SIZE}_init(e){super._init(e),this.fileInput.on("change",this._onFileChange.bind(this)),this.on("propertyChange",(e=>{"enabledComputed"===e.propertyName&&this.fileInput.setEnabled(e.newValue)}))}_initValue(e){this.fileInput=x.create("FileInput",{parent:this,acceptTypes:this.acceptTypes,text:this.displayText,enabled:this.enabledComputed,maximumUploadSize:this.maximumUploadSize}),super._initValue(e)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.fileInput.legacy||(this.keyStrokeContext.registerKeyStroke(new nc(this)),this.keyStrokeContext.registerKeyStroke(new oc(this)))}_render(){this.addContainer(this.$parent,"file-chooser-field has-icon"),this.addLabel(),this.addMandatoryIndicator(),this._renderFileInput(),this.addIcon(),this.addStatus()}_renderFileInput(){this.fileInput.render(),this.addField(this.fileInput.$container)}setDisplayText(e){super.setDisplayText(e),this.fileInput.setText(e),e||this.fileInput.clear()}_readDisplayText(){return this.fileInput.text}setAcceptTypes(e){this.setProperty("acceptTypes",e),this.fileInput.setAcceptTypes(e)}_renderEnabled(){super._renderEnabled(),this.$field.setTabbable(this.enabledComputed)}_renderPlaceholder(){let e=this.fileInput.$text;e&&e.placeholder(this.label)}_removePlaceholder(){let e=this.fileInput.$text;e&&e.placeholder("")}setMaximumUploadSize(e){this.setProperty("maximumUploadSize",e),this.fileInput.setMaximumUploadSize(e)}_clear(){this.fileInput.clear()}_onIconMouseDown(e){super._onIconMouseDown(e),this.activate()}_onFileChange(e){let t=me.first(e.files);Ai.isNullOrUndefined(t)&&this.acceptInput(!1),this.setValue(t)}activate(){this.enabledComputed&&this.rendered&&(this.$field.focus(),this.fileInput.browse())}_validateValue(e){return this.fileInput.validateMaximumUploadSize(e),e}_formatValue(e){return e?e.name:""}_parseValue(e){if(!e)return null;let t=this.fileInput.files;return t&&t.length?t[0]:null}}class rc extends uu{constructor(){super()}_onWidgetPropertyChange(e){super._onWidgetPropertyChange(e),"value"===e.propertyName&&this._onValueChange(e)}_onValueChange(e){this.widget.fileInput.upload()||this.widget.fileInput.clear()}_syncDisplayText(e){this.widget.setDisplayText(e)}_orderPropertyNamesOnSync(e){return Object.keys(e).sort(this._createPropertySortFunc(rc.PROPERTIES_ORDER))}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(rc,"PROPERTIES_ORDER",["value","displayText"]);class nc extends U{constructor(e){super(),this.field=e,this.which=[Kr.SPACE],this.stopPropagation=!0,this.renderingHints.hAlign=ns.LEFT,this.renderingHints.$drawingArea=(e,t)=>this.field.$fieldContainer}handle(e){this.field.fileInput.browse()}}class oc extends U{constructor(e){super(),this.field=e,this.which=[Kr.DELETE],this.stopPropagation=!0,this.renderingHints.offset=25,this.renderingHints.hAlign=ns.RIGHT,this.renderingHints.$drawingArea=(e,t)=>this.field.$fieldContainer}handle(e){this.field.clear()}}function lc(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class ac extends au{constructor(){super(),this._addWidgetProperties(["fields","notification","staticMenus"]),this._addCloneProperties(["menuBarVisible","bodyLayoutConfig","borderDecoration","borderVisible","expandable","expanded","gridColumnCount","scrollable","subLabel"]),this.fields=[],this.menuBarVisible=!0,this.menuBarPosition=ac.MenuBarPosition.AUTO,this.menuBarEllipsisPosition=kl.EllipsisPosition.RIGHT,this.notification=null,this.bodyLayoutConfig=null,this.borderDecoration=ac.BorderDecoration.AUTO,this.borderVisible=!0,this.mainBox=!1,this.scrollable=null,this.expandable=!1,this.expanded=!0,this.logicalGrid=x.create("scout.VerticalSmartGrid"),this.gridColumnCount=2,this.gridDataHints.useUiHeight=!0,this.gridDataHints.w=iu.FULL_WIDTH,this.controls=[],this.systemButtons=[],this.customButtons=[],this.processButtons=[],this.processMenus=[],this.staticMenus=[],this.selectionKeystroke=null,this.responsive=null,this.$header=null,this.$body=null,this.$title=null,this.$subLabel=null,this._statusPositionOrig=null}_init(e){super._init(e),this.resolveConsts([{property:"menuBarPosition",constType:ac.MenuBarPosition}]),this._setBodyLayoutConfig(this.bodyLayoutConfig),this.menuBar=x.create("MenuBar",{parent:this,menuOrder:new cc,ellipsisPosition:this.menuBarEllipsisPosition}),this.menuBar.on("propertyChange:visible",(()=>this._updateMenuBarStyle())),this._setFields(this.fields),this._setMainBox(this.mainBox),this._updateMenuBar(),Oa.get().registerHandler(this,x.create("GroupBoxResponsiveHandler",{widget:this})),this._setResponsive(this.responsive)}_destroy(){Oa.get().unregisterHandler(this),super._destroy()}getFields(){return this.fields}insertField(e,t){let i=this.fields.slice();t=x.nvl(t,this.fields.length),i.splice(t,0,e),this.setFields(i)}insertFieldBefore(e,t){x.assertParameter("sibling",t);let i=this.fields.indexOf(t);this.insertField(e,i)}insertFieldAfter(e,t){x.assertParameter("sibling",t);let i=this.fields.indexOf(t)+1;this.insertField(e,i)}deleteField(e){let t=this.fields.slice(),i=this.fields.indexOf(e);i<0||(t.splice(i,1),this.setFields(t))}setFields(e){this.setProperty("fields",e)}_setFields(e){this._setProperty("fields",e),this._prepareFields()}_renderFields(e){this._renderExpanded(),this.invalidateLogicalGrid(!0)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.invokeAcceptInputOnActiveValueField=!0,this.keyStrokeContext.$bindTarget=this._keyStrokeBindTarget.bind(this)}_setKeyStrokes(e){e=me.ensure(e);let t={render:()=>!0,offset:0,hAlign:ns.RIGHT,$drawingArea:(e,t)=>this.$header&&this.$header.isVisible()?this.$header:this.$body};e.forEach((e=>{e.actionKeyStroke.renderingHints=n().extend({},e.actionKeyStroke.renderingHints,t)}),this),super._setKeyStrokes(e)}_keyStrokeBindTarget(){let e=this.getForm();return e?e.$container:this.$container}_render(){this.addContainer(this.$parent,this.mainBox?"root-group-box":"group-box"),this.$header=this.$container.appendDiv("group-box-header"),fr.install(this.$header,this.session),this.$title=this.$header.appendDiv("title"),this.$borderBottom=this.$header.appendDiv("bottom-border"),this.addLabel(),this.addSubLabel(),this.addStatus(),this.$body=this.$container.appendDiv("group-box-body"),this.htmlBody=fr.install(this.$body,this.session),this.htmlBody.setLayout(this._createBodyLayout())}_remove(){this._removeSubLabel(),super._remove()}_renderProperties(){this._renderScrollable(),this._renderExpanded(),super._renderProperties(),this._renderBodyLayoutConfig(),this._renderNotification(),this._renderBorderVisible(),this._renderExpandable(),this._renderMenuBarPosition(),this._renderMenuBarEllipsisPosition(),this._renderMenuBarVisible(),this._renderSubLabel()}_createLayout(){return new uc(this)}_createBodyLayout(){return new Tr(this,this.bodyLayoutConfig)}setBodyLayoutConfig(e){this.setProperty("bodyLayoutConfig",e)}_setBodyLayoutConfig(e){e||(e=new Sr),this._setProperty("bodyLayoutConfig",Sr.ensure(e))}_renderBodyLayoutConfig(){let e=this.htmlBody.layout.minWidth;this.bodyLayoutConfig.applyToLayout(this.htmlBody.layout),e!==this.bodyLayoutConfig.minWidth&&this._renderScrollable(),this.rendered&&this.htmlBody.invalidateLayoutTree()}rerenderControls(){this._removeControls(),this._renderControls(),this.htmlBody.invalidateLayoutTree()}_removeControls(){this.controls.forEach((e=>{e.remove()}),this)}_renderControls(){this.controls.forEach((function(e){e.rendered||(e.render(this.$body),e.setLayoutData(new vr(e)))}),this)}addSubLabel(){this.$subLabel||(this.$subLabel=this.$title.appendDiv("sub-label"),yo.installForEllipsis(this.$subLabel,{parent:this}))}_removeSubLabel(){this.$subLabel&&(yo.uninstall(this.$subLabel),this.$subLabel.remove(),this.$subLabel=null)}setSubLabel(e){this.setProperty("subLabel",e)}_renderSubLabel(){this.$subLabel.setVisible(qt.hasText(this.subLabel)),this.$subLabel.textOrNbsp(this.subLabel),this.$container.toggleClass("has-sub-label",this.$subLabel.isVisible()),this.invalidateLayoutTree()}setScrollable(e){this.setProperty("scrollable",e)}_renderScrollable(){this._uninstallScrollbars(),this.scrollable?this._installScrollbars({axis:this.bodyLayoutConfig.minWidth>0?"both":"y"}):this.bodyLayoutConfig.minWidth>0&&this._installScrollbars({axis:"x"})}get$Scrollable(){return this.$body}_onScroll(){super._onScroll(),this._updateScrollShadow()}_updateScrollShadow(){if(this.mainBox||!this.rendered)return;let e=this.hasScrollShadow("top"),t=this.hasScrollShadow("bottom"),i=this.$container.hasClass("has-scroll-shadow-top"),s=this.$container.hasClass("has-scroll-shadow-bottom"),r=this.$container.hasClass("menubar-position-top"),n=this.$container.hasClass("menubar-position-bottom"),o=this.$header.isVisible();this.$container.toggleClass("has-scroll-shadow-top",e),this.$container.toggleClass("has-scroll-shadow-bottom",t),((o||r)&&i!==e||n&&s!==t)&&this.invalidateLayoutTree(!1),Zd.adjustStatusPositionForScrollShadow(this,(()=>e&&o&&!r))}setMainBox(e){this.setProperty("mainBox",e)}_setMainBox(e){this._setProperty("mainBox",e),this.mainBox&&(this.menuBar.setCssClass("main-menubar"),null===this.scrollable&&this.setScrollable(!0),null===this.responsive&&this.setResponsive(!0))}addLabel(){this.$label||(this.$label=this.$title.appendDiv("label"),yo.installForEllipsis(this.$label,{parent:this}))}_renderLabel(){this.$label.textOrNbsp(this.label),this.rendered&&this._renderLabelVisible()}addStatus(){super.addStatus(),this._updateStatusPosition()}_renderStatusPosition(){this._updateStatusPosition()}_updateStatusPosition(){this.fieldStatus&&(this.statusPosition===iu.StatusPosition.TOP?this.$status.appendTo(this.$header):this.$status.appendTo(this.$container),this.invalidateLayoutTree())}setNotification(e){this.setProperty("notification",e)}_renderNotification(){this.notification?(this.notification.render(),this.notification.$container.insertBefore(this.$body),this.invalidateLayoutTree()):this.invalidateLayoutTree()}_prepareFields(){let e,t;for(this.processButtons.forEach(this._unregisterButtonKeyStrokes.bind(this)),this.controls=[],this.systemButtons=[],this.customButtons=[],this.processButtons=[],this.processMenus=[],e=0;e<this.fields.length;e++)if(t=this.fields[e],t instanceof Iu)t.processButton?(this.processButtons.push(t),t.systemType!==Iu.SystemType.NONE?this.systemButtons.push(t):this.customButtons.push(t)):(this.controls.push(t),this._registerButtonKeyStrokes(t));else if(t instanceof Rp){this.controls.push(t);for(let e=0;e<t.tabItems.length;e++)t.tabItems[e].selectionKeystroke&&this.keyStrokeContext.registerKeyStroke(new ln(t.tabItems[e].selectionKeystroke,t.tabItems[e]))}else this.controls.push(t);this.processMenus=this.processButtons.map((function(e){return x.create("ButtonAdapterMenu",El.adaptButtonProperties(e,{parent:this,menubar:this.menuBar,button:e,defaultMenu:!!e.defaultButton||null}))}),this),this.registerKeyStrokes(this.processMenus)}_unregisterButtonKeyStrokes(e){e.keyStrokes&&e.keyStrokes.forEach((function(e){this.keyStrokeContext.unregisterKeyStroke(e)}),this)}_registerButtonKeyStrokes(e){e.keyStrokes&&e.keyStrokes.forEach((function(e){this.keyStrokeContext.registerKeyStroke(e)}),this)}setBorderVisible(e){this.setProperty("borderVisible",e)}_renderBorderVisible(){let e=this.borderVisible;this.borderDecoration===ac.BorderDecoration.AUTO&&(e=this._computeBorderVisible(e)),this.$body.toggleClass("y-padding-invisible",!e),this.invalidateLayoutTree()}setBorderDecoration(e){this.setProperty("borderDecoration",e)}_renderBorderDecoration(){this._renderBorderVisible()}getContextMenuItems(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.menuBarVisible?[]:super.getContextMenuItems(e)}setMenuBarVisible(e){this.setProperty("menuBarVisible",e)}_setMenuBarVisible(e){this._setProperty("menuBarVisible",e),this._updateMenuBar()}_renderMenuBarVisible(){this.menuBarVisible?this._renderMenuBar():this.menuBar.remove(),this._updateMenus(),this.invalidateLayoutTree()}_renderMenuBar(){if(this.menuBar.render(),this.menuBarPosition===ac.MenuBarPosition.TITLE){let e=this.$header.children(".group-box-control");e.length>0?this.menuBar.$container.insertAfter(e):this.menuBar.$container.insertAfter(this.$title)}else this.menuBar.position===kl.Position.TOP&&this.menuBar.$container.insertAfter(this.$header)}setMenuBarPosition(e){this.setProperty("menuBarPosition",e)}_renderMenuBarPosition(){let e=this.menuBarPosition;e===ac.MenuBarPosition.AUTO&&(e=ac.MenuBarPosition.TOP),e===ac.MenuBarPosition.BOTTOM?this.menuBar.setPosition(kl.Position.BOTTOM):this.menuBar.setPosition(kl.Position.TOP),this._renderMenuBarStyle(),this.rendered&&(this.menuBar.remove(),this._renderMenuBarVisible())}setMenuBarEllipsisPosition(e){this.setProperty("menuBarEllipsisPosition",e),this.menuBar.setEllipsisPosition(e)}_renderMenuBarEllipsisPosition(){this.menuBar.reorderMenus(),this.rendered&&(this.menuBar.remove(),this._renderMenuBarVisible())}_updateMenuBarStyle(){this.rendered&&this._renderMenuBarStyle()}_renderMenuBarStyle(){let e=this.menuBar.visible,t=this.menuBarPosition===ac.MenuBarPosition.TITLE;this.$header.toggleClass("has-menubar",e&&t),this.$container.toggleClass("menubar-position-top",e&&!t&&this.menuBar.position===kl.Position.TOP),this.$container.toggleClass("menubar-position-bottom",e&&!t&&this.menuBar.position===kl.Position.BOTTOM)}_computeBorderVisible(e){return(this.mainBox||this.parent instanceof ac&&this.parent.parent instanceof Ta&&this.parent.parent.parent instanceof pg&&this.parent.parent.parent.parent instanceof wp&&1===this.parent.getFields().length)&&(e=!1),e}setExpandable(e){this.setProperty("expandable",e)}_renderExpandable(){let e=this.expandable,t=this.$header.children(".group-box-control");e?(0===t.length&&this.$container.makeDiv("group-box-control").on("click",this._onControlClick.bind(this)).insertAfter(this.$title),this.$header.addClass("expandable").on("click.group-box-control",this._onControlClick.bind(this))):(t.remove(),this.$header.removeClass("expandable").off(".group-box-control")),this.invalidateLayoutTree()}setExpanded(e){this.setProperty("expanded",e)}_renderExpanded(){this.$container.toggleClass("collapsed",!this.expanded),this.expanded?(void 0!==this._collapsedWeightY&&(this.gridData.weightY=this._collapsedWeightY,delete this._collapsedWeightY),this.invalidateLayout(),this._renderControls()):0!==this.gridData.weightY&&(this._collapsedWeightY=this.gridData.weightY,this.gridData.weightY=0),this.invalidateLayoutTree()}setGridColumnCount(e){this.setProperty("gridColumnCount",e),this.invalidateLogicalGrid()}invalidateLogicalGrid(e){super.invalidateLogicalGrid(!1),x.nvl(e,!0)&&this.rendered&&this.htmlBody.invalidateLayoutTree()}_setLogicalGrid(e){super._setLogicalGrid(e),this.logicalGrid&&this.logicalGrid.setGridConfig(new hc)}_renderLabelVisible(e){this.$header.setVisible(this._computeTitleVisible(e)),this._updateFieldStatus(),this.menuBarPosition===ac.MenuBarPosition.TITLE&&this.invalidateLayoutTree()}_computeTitleVisible(e){return!(!(e=x.nvl(e,this.labelVisible))||!this.label||this.mainBox)}_computeStatusVisible(){return super._computeStatusVisible()&&this._computeTitleVisible()}_setMenus(e){super._setMenus(e),this.menuBar&&this._updateMenuBar()}_updateMenuBar(){if(!this.menuBarVisible)return void this.menuBar.setMenuItems([]);let e=this.staticMenus.concat(this.processMenus).concat(this.menus);this.menuBar.setMenuItems(e)}_removeMenus(){}setStaticMenus(e){this.setProperty("staticMenus",e),this._updateMenuBar()}_onControlClick(e){if(!this.expandable)return;const t=x.widget(e.target);this.menuBarPosition===ac.MenuBarPosition.TITLE&&this.menuBar.has(t)||(this.setExpanded(!this.expanded),n().suppressEvent(e))}setResponsive(e){this.setProperty("responsive",e)}_setResponsive(e){if(this._setProperty("responsive",e),this.initialized){if(this.responsive)Oa.get().reset(this,!0);else if(Oa.get().reset(this,!0),null===this.responsive){let e=this.findParent((e=>e instanceof ac&&e.responsive));Oa.get().reset(e,!0)}this.invalidateLayoutTree()}}clone(e,t){let i=super.clone(e);return this._deepCloneProperties(i,["fields"],t),i._prepareFields(),i}}lc(ac,"BorderDecoration",{AUTO:"auto",EMPTY:"empty",LINE:"line"}),lc(ac,"MenuBarPosition",{AUTO:"auto",TOP:"top",BOTTOM:"bottom",TITLE:"title"});class hc extends Cr{constructor(){super()}getGridWidgets(){return this.widget.controls}getGridColumnCount(){let e=-1,t=this.widget;do{e=x.nvl(t.gridColumnCount,e)}while(e<0&&t.getParentGroupBox&&(t=t.getParentGroupBox()));return e<0?2:e}}class dc extends hu{constructor(){super(),this._addRemoteProperties(["expanded"])}_initModel(e,t){return(e=super._initModel(e,t)).logicalGrid=null,e}_postCreateWidget(){super._postCreateWidget(),this.widget.responsiveHandler&&(this.widget.responsiveHandler.setAllowedStates([Oa.ResponsiveState.NORMAL,Oa.ResponsiveState.CONDENSED]),this.widget.responsiveHandler.getGridData=this._getGridData,this.widget.responsiveHandler.setGridData=this._setGridData)}destroy(){super.destroy()}_getGridData(e){return new lu(e.gridData)}_setGridData(e,t){e._setGridData(t)}}class uc extends _r{constructor(e){super(),this.groupBox=e,this._initDefaults(),this._htmlPropertyChangeHandler=this._onHtmlEnvironmentPropertyChange.bind(this),mr.get().on("propertyChange",this._htmlPropertyChangeHandler),this.groupBox.one("remove",(()=>{mr.get().off("propertyChange",this._htmlPropertyChangeHandler)}))}_initDefaults(){this._statusWidth=mr.get().fieldStatusWidth}_onHtmlEnvironmentPropertyChange(){this._initDefaults(),this.groupBox.invalidateLayoutTree()}layout(e){let t,i,s=0,r=0,o=this.groupBox.statusPosition,l=this.groupBox.htmlComp,a=this._htmlGbBody(),h=this._htmlMenuBar(),d=this.groupBox._tooltip(),u=this.groupBox.$header,c=this.groupBox.$title,p=l.availableSize().subtract(l.insets());this.groupBox.responsive&&Oa.get().handleResponsive(this.groupBox,p.width);let g=this._$status();function m(e,t){if(t){let i=e.cssMarginX()+t;e.cssWidth("calc(100% - "+i+"px)")}else e.cssWidth("")}g&&g.isVisible()&&(this._layoutStatus(),r=g.outerWidth(!0)),h?(this.groupBox.menuBarPosition===ac.MenuBarPosition.TITLE?i=this._updateHeaderMenuBar(h,u,c,r):(i=this._updateMenuBar(h,p,r),s=i.height,m(c)),h.setSize(i)):m(c),o!==iu.StatusPosition.TOP?m(u,r):m(u),this.groupBox.notification&&m(this.groupBox.notification.$container,r),t=p.subtract(a.margins()),t.height-=this._headerHeight(),t.height-=this._notificationHeight(),t.height-=s,n().log.isTraceEnabled()&&n().log.trace("(GroupBoxLayout#layout) gbBodySize="+t),a.setSize(t),d&&d.rendered&&d.position(),(a.scrollable||this.groupBox.bodyLayoutConfig.minWidth>0)&&Yn.update(a.$comp)}_updateMenuBar(e,t,i){let s=this.groupBox.$container,r=e.$comp;if(!this.groupBox.mainBox&&s.hasClass("menubar-position-top")&&s.hasClass("has-scroll-shadow-top")||s.hasClass("menubar-position-bottom")&&s.hasClass("has-scroll-shadow-bottom")){let e=pr.margins(r);e.left>0&&(r.cssPaddingLeft(e.left),r.cssMarginLeft(0)),i>0&&(r.cssPaddingRight(i),i=0)}else r.cssPaddingLeft(""),r.cssMarginLeft(""),r.cssPaddingRight("");return this._menuBarSize(e,t,i)}_menuBarSize(e,t,i){let s=Il.size(e,t);return this.groupBox.mainBox||(s.width-=i),s}_updateHeaderMenuBar(e,t,i,s){let r=e.prefSize({exact:!0}),n=pr.prefSize(t).subtract(pr.insets(t)).width-s,o=t.children(".group-box-control");o.length>0&&(n-=pr.size(o,!0).width);let l=Math.ceil(pr.prefSize(i,!0).width)+1,a=r.width;if(l+a<n)a=Math.floor(n-l),r.width=a,i.cssWidth("");else{let e=(l+a)/n,t=l/n/e,s=a/n/e;t<s?(t=Math.max(.33,t),s=1-t):(s=Math.max(.33,s),t=1-s),l=t*n,a=s*n,r.width=Math.floor(a),i.cssWidth(Math.floor(l))}return r}_$status(){return this.groupBox.$status}_layoutStatus(){let e=this.groupBox.htmlComp.insets({includeBorder:!1}),t=e.top,i=e.right,s=this.groupBox.$header,r=s.innerHeight(),n=this._$status(),o=pr.margins(n),l=this.groupBox.statusPosition;n.cssWidth(this._statusWidth),l===iu.StatusPosition.DEFAULT&&(t+=s.cssMarginTop()),n.cssTop(t).cssRight(i).cssHeight(r-o.vertical())}preferredLayoutSize(e,t){t=t||{};let i,s,r=this.groupBox.htmlComp,n=this._htmlGbBody(),o=0,l=0,a=this.groupBox.gridData,h=!1;return this.groupBox.responsive&&t.widthHint&&(h=Oa.get().handleResponsive(this.groupBox,t.widthHint)),a&&(o=a.widthInPixel,l=a.heightInPixel),o&&l?(s=new sr(o,l).add(r.insets()),s):(!t.widthHint&&o&&(t.widthHint=o),t.heightHint=null,this.groupBox.expanded?(s=n.prefSize(t).add(n.margins()),i=this._htmlMenuBar(),i&&this.groupBox.menuBarPosition!==ac.MenuBarPosition.TITLE&&(s.height+=i.prefSize(t).height)):s=new sr(0,0),s=s.add(r.insets()),s.height+=this._headerHeight(),s.height+=this._notificationHeight(t),o&&(s.width=o),l&&(s.height=l),h&&Oa.get().reset(this.groupBox),s)}_headerHeight(){return pr.prefSize(this.groupBox.$header,!0).height}_notificationHeight(e){return e=e||{},this.groupBox.notification?(e.includeMargin=!0,this.groupBox.notification.htmlComp.prefSize(e).height):0}_htmlMenuBar(){if(this.groupBox.menuBar&&this.groupBox.menuBarVisible){let e=fr.optGet(this.groupBox.menuBar.$container);if(e&&e.isVisible())return e}return null}_htmlGbBody(){return fr.get(this.groupBox.$body)}}class cc{order(e){let t=[],i=[],s=[],r=[];return e.forEach((e=>{if(e.isButton()){let i=e.horizontalAlignment;void 0===i&&(i=e.gridData&&e.gridData.horizontalAlignment),1===i?s.push(e):t.push(e)}else 1===e.horizontalAlignment?r.push(e):i.push(e)})),{left:t.concat(i),right:r.concat(s),all:t.concat(i).concat(r).concat(s)}}}class pc extends du{constructor(){super(),this.scrollBarEnabled=!1,this.preventInitialFocus=!0,this.selectable=!0}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke(new Qd(this,this._onAppLinkAction))}_render(){this.addContainer(this.$parent,"html-field"),this.addLabel(),this.addField(this.$parent.makeDiv()),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderScrollBarEnabled(),this._renderScrollToAnchor(),this._renderSelectable()}_readDisplayText(){return this.$field.html()}_renderDisplayText(){this.displayText?(this.$field.html(this.displayText),this.$field.find(".app-link").on("click",this._onAppLinkAction.bind(this)),this.$field.find("a, .app-link").attr("tabindex","0").unfocusable(),this.$field.find("img").on("load",this._onImageLoad.bind(this)).on("error",this._onImageError.bind(this)),this.rendered&&(this._uninstallScrollbars(),this._renderScrollBarEnabled()),this.invalidateLayoutTree()):this.$field.empty()}_renderFocused(){}setScrollBarEnabled(e){this.setProperty("scrollBarEnabled",e)}_renderScrollBarEnabled(){this.scrollBarEnabled?this._installScrollbars():this._uninstallScrollbars()}_renderScrollToAnchor(){if(!this.rendered)return void this.session.layoutValidator.schedulePostValidateFunction(this._renderScrollToAnchor.bind(this));let e=this.scrollToAnchor;if(this.scrollBarEnabled&&e&&this.$field.find(e)){let t=this.$field.find("#".concat(e));t&&t.length>0&&Yn.scrollTo(this.$field,t)}}setSelectable(e){this.setProperty("selectable",e)}_renderSelectable(){this.$container.toggleClass("selectable",!!this.selectable),this.$field.toggleAttr("tabindex",!!this.selectable,"-1")}_onAppLinkAction(e){let t=n()(e.delegateTarget).data("ref");this.triggerAppLinkAction(t)}triggerAppLinkAction(e){this.trigger("appLinkAction",{ref:e})}_onImageLoad(e){this.invalidateLayoutTree()}_onImageError(e){this.invalidateLayoutTree()}}class gc extends uu{constructor(){super()}_initProperties(e){void 0!==e.scrollToEnd&&delete e.scrollToEnd}_syncScrollToEnd(){this.widget.scrollToBottom()}_onWidgetAppLinkAction(e){this._send("appLinkAction",{ref:e.ref})}_onWidgetEvent(e){"appLinkAction"===e.type?this._onWidgetAppLinkAction(e):super._onWidgetEvent(e)}}class mc extends iu{constructor(){super(),this.autoFit=!1,this.imageUrl=null,this.scrollBarEnabled=!1,this.uploadEnabled=!1,this.acceptTypes=null,this.maximumUploadSize=aa.DEFAULT_MAXIMUM_UPLOAD_SIZE,this._clickHandler=null}_init(e){super._init(e),this.resolveIconIds(["imageUrl"]),this.icon=x.create("Icon",{parent:this,iconDesc:this.imageUrl,autoFit:this.autoFit,prepend:!0}),this.icon.on("load",this._onImageLoad.bind(this)),this.icon.on("error",this._onImageError.bind(this))}_render(){this.addContainer(this.$parent,"image-field",new fc(this)),this.addFieldContainer(this.$parent.makeDiv()),fr.install(this.$fieldContainer,this.session).setLayout(new Or),this.icon.render(this.$fieldContainer),this.addLabel(),this.addField(this.icon.$container),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderScrollBarEnabled(),this._renderImageUrl(),this._renderUploadEnabled()}_remove(){super._remove(),this._clickHandler=null,this.fileInput&&(this.fileInput.destroy(),this.fileInput=null)}_getDragAndDropHandlerOptions(){let e=super._getDragAndDropHandlerOptions();return e.container=()=>this.$fieldContainer,e}setImageUrl(e){this.setProperty("imageUrl",e)}_setImageUrl(e){this._setProperty("imageUrl",e),this.icon.setIconDesc(e)}_renderImageUrl(){let e=!!this.imageUrl;this.$fieldContainer.toggleClass("has-image",e),this.$container.toggleClass("has-image",e),Yn.update(this.$fieldContainer)}setAutoFit(e){this.setProperty("autoFit",e)}_setAutoFit(e){this._setProperty("autoFit",e),this.icon.setAutoFit(e)}_renderAutoFit(){Yn.update(this.$fieldContainer)}setScrollBarEnabled(e){this.setProperty("scrollBarEnabled",e)}_renderScrollBarEnabled(){this._updateInnerAlignment(),this.scrollBarEnabled?this._installScrollbars():this._uninstallScrollbars()}get$Scrollable(){return this.$fieldContainer}_renderGridData(){super._renderGridData(),this._updateInnerAlignment()}_renderGridDataHints(){super._renderGridDataHints(),this._updateInnerAlignment()}_updateInnerAlignment(){this.updateInnerAlignment({useHorizontalAlignment:!this.scrollBarEnabled,useVerticalAlignment:!this.scrollBarEnabled})}_renderEnabled(){super._renderEnabled(),this._updateUploadEnabled()}setUploadEnabled(e){this.setProperty("uploadEnabled",e)}_renderUploadEnabled(){this._updateUploadEnabled()}_updateUploadEnabled(){let e=this.enabledComputed&&this.uploadEnabled;this.$fieldContainer.toggleClass("clickable",e),e?(this._clickHandler||(this._clickHandler=this._onClickUpload.bind(this),this.$fieldContainer.on("click",this._clickHandler)),this.fileInput||(this.fileInput=x.create("FileInput",{parent:this,acceptTypes:this.acceptTypes,text:this.displayText,enabled:this.enabledComputed,maximumUploadSize:this.maximumUploadSize,visible:!Qe.get().supportsFile()}),this.fileInput.render(this.$fieldContainer),this.fileInput.on("change",this._onFileChange.bind(this)))):(this.$fieldContainer.off("click",this._clickHandler),this._clickHandler=null,this.fileInput&&(this.fileInput.destroy(),this.fileInput=null))}_onClickUpload(e){n()(e.target).isOrHas(this.$field)&&this.fileInput.browse()}_onFileChange(e){this.trigger("fileUpload",{file:me.first(e.files)})}_onImageLoad(e){this._onIconUpdated()}_onImageError(e){this._onIconUpdated()}_onIconUpdated(){Yn.update(this.$fieldContainer),this.$field=this.icon.$container}}class _c extends su{constructor(){super()}_onWidgetEvent(e){"fileUpload"===e.type?this._onFileUpload(e):super._onWidgetEvent(e)}_onFileUpload(e){this.widget.fileInput.upload()||this.widget.fileInput.clear()}}class fc extends ru{constructor(e){super(e)}layout(e){super.layout(e),Yn.update(this.formField.$fieldContainer)}}class bc extends du{constructor(){super(),this.htmlEnabled=!1,this.selectable=!0,this.wrapText=!1,this.preventInitialFocus=!0}_initValue(e){e=mo.resolveText(e,this.session.locale.languageTag),super._initValue(e)}_render(){this.addContainer(this.$parent,"label-field"),this.addLabel(),this.addField(this.$parent.makeDiv()),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderWrapText(),this._renderSelectable()}_renderFocused(){}acceptInput(){}setHtmlEnabled(e){this.setProperty("htmlEnabled",e)}_renderHtmlEnabled(){this._renderDisplayText()}_renderDisplayText(){let e=this.displayText||"";this.htmlEnabled?(this.$field.html(e),this.$field.find(".app-link").on("click",this._onAppLinkAction.bind(this))):this.$field.html(qt.nl2br(e)),this.invalidateLayoutTree()}setWrapText(e){this.setProperty("wrapText",e)}_renderWrapText(){this.$field.toggleClass("white-space-nowrap",!this.wrapText),this.invalidateLayoutTree()}setSelectable(e){this.setProperty("selectable",e)}_renderSelectable(){this.$container.toggleClass("selectable",!!this.selectable),this.$field.toggleAttr("tabindex",!!this.selectable,"-1")}_renderGridData(){super._renderGridData(),this.updateInnerAlignment({useHorizontalAlignment:!0})}_renderGridDataHints(){super._renderGridDataHints(),this.updateInnerAlignment({useHorizontalAlignment:!0})}_onAppLinkAction(e){let t=$(e.delegateTarget).data("ref");this.triggerAppLinkAction(t)}triggerAppLinkAction(e){this.trigger("appLinkAction",{ref:e})}addField(e){super.addField(e),this.$field.off("blur").off("focus")}}class yc extends uu{constructor(){super()}_onWidgetAppLinkAction(e){this._send("appLinkAction",{ref:e.ref})}_onWidgetEvent(e){"appLinkAction"===e.type?this._onWidgetAppLinkAction(e):super._onWidgetEvent(e)}}class wc extends fu{constructor(){super(),this.table=null,this.lookupStatus=null,this._addWidgetProperties(["table","filterBox"])}_init(e){super._init(e),this.table.on("rowsChecked",this._onTableRowsChecked.bind(this)),this.table.setScrollTop(this.scrollTop)}_initStructure(e){this.table||(this.table=this._createDefaultListBoxTable()),this.table.checkableColumn&&(this.table.checkableColumn.minWidth=28,this.table.checkableColumn.width=this.table.checkableColumn.minWidth)}_render(){super._render(),this.$container.addClass("list-box")}_createFieldContainerLayout(){return new vc(this,this.table,this.filterBox)}_renderStructure(){this.table.render(this.$fieldContainer),this.addField(this.table.$container)}_onTableRowsChecked(e){this._syncTableToValue()}_syncTableToValue(){if(!this.lookupCall||this._valueSyncing)return;this._valueSyncing=!0;let e=[];this.table.rows.forEach((t=>{t.checked&&e.push(t.lookupRow.key)}),this),this.setValue(e),this._valueSyncing=!1}_valueChanged(){super._valueChanged(),this._syncValueToTable(this.value)}_syncValueToTable(e){if(!this.lookupCall||this._valueSyncing||!this.initialized)return;this._valueSyncing=!0;let t={checkOnlyEnabled:!1};try{if(me.empty(e))this.table.uncheckRows(this.table.rows,t);else{if(this._ensureLookupCallExecuted())return;let i=[];this.table.uncheckRows(this.table.rows,t),this.table.rows.forEach((t=>{me.containsAny(e,t.lookupRow.key)&&i.push(t)}),this),this.table.checkRows(i,t)}this._updateDisplayText()}finally{this._valueSyncing=!1}}_lookupByAllDone(e){super._lookupByAllDone(e)&&this._populateTable(e)}_populateTable(e){let t=[];e.lookupRows.forEach((function(e){t.push(this._createTableRow(e))}),this),this.table.deleteAllRows(),this.table.insertRows(t),this._syncValueToTable(this.value)}getCheckedLookupRows(){return null===this.value||me.empty(this.value)||0===this.table.rows.length?[]:this.table.rows.filter((e=>e.checked)).map((e=>e.lookupRow))}_createTableRow(e){let t=x.create("Cell",{text:e.text}),i={cells:[t],lookupRow:e};return e.iconId&&(t.iconId=e.iconId),e.tooltipText&&(t.tooltipText=e.tooltipText),e.backgroundColor&&(t.backgroundColor=e.backgroundColor),e.foregroundColor&&(t.foregroundColor=e.foregroundColor),e.font&&(t.font=e.font),!1===e.enabled&&(i.enabled=!1),e.cssClass&&(i.cssClass=e.cssClass),!1===e.active&&(i.active=!1,i.cssClass=(i.cssClass?i.cssClass+" ":"")+"inactive"),i}_createDefaultListBoxTable(){return x.create("Table",{parent:this,autoResizeColumns:!0,checkable:!0,checkableStyle:Ka.CheckableStyle.CHECKBOX_TABLE_ROW,headerVisible:!1,footerVisible:!1,columns:[{objectType:"Column"}]})}getDelegateScrollable(){return this.table}}class Cc extends uu{constructor(){super()}}class vc extends bu{constructor(e,t,i){super(e,t,i)}}function Tc(e,t,i){let s=x.create("Cell");return t&&t.propertyName?s.text=i[t.propertyName]:(s.text=e.text,e.iconId&&(s.iconId=e.iconId),e.tooltipText&&(s.tooltipText=e.tooltipText),e.backgroundColor&&(s.backgroundColor=e.backgroundColor),e.foregroundColor&&(s.foregroundColor=e.foregroundColor),e.font&&(s.font=e.font)),s}const Sc={createTableCell:Tc,createTableRow:function(e,t){t=x.nvl(t,!1);let i=[],s={cells:i,lookupRow:e};return!1===e.enabled&&(s.enabled=!1),e.cssClass&&(s.cssClass=e.cssClass),!1===e.active&&(s.active=!1,s.cssClass=(s.cssClass?s.cssClass+" ":"")+"inactive"),t||i.push(Tc(e,null,null)),s}};class xc extends uu{constructor(){super()}sendLookup(e,t){let i=e.toLowerCase(),s="lookupBy"+qt.toUpperCaseFirstLetter(i),r={showBusyIndicator:!1};Ai.isNullOrUndefined(t)||(r[i]=t),this._send(s,r)}}class Pc extends du{constructor(){super(),this._addWidgetProperties(["modeSelector","modes"]),this._modeSelectorPropertyChangeHandler=this._onModeSelectorPropertyChange.bind(this)}_render(){this.addContainer(this.$parent,"mode-selector-field"),this.addLabel(),this.addStatus(),this.modeSelector&&(this._renderModeSelector(),this.modeSelector.on("propertyChange",this._modeSelectorPropertyChangeHandler))}_renderModeSelector(){this.modeSelector.render(),this.addField(this.modeSelector.$container)}_removeModeSelector(){this.modeSelector.remove(),this._removeField()}_onModeSelectorPropertyChange(e){"selectedMode"===e.propertyName&&(e.newValue?this.setValue(e.newValue.ref):this.modeSelector.selectedMode&&this.modeSelector.selectedMode.id?this.setValue(this.modeSelector.selectedMode.id):this.setValue(null))}}class Fc extends uu{constructor(){super()}_createWidget(e){return this._addModeSelector(e),super._createWidget(e)}_addModeSelector(e){e.modeSelector={objectType:"ModeSelector"}}_postCreateWidget(){this.widget.modeSelector.setModes(this.widget.modes),delete this.widget.modes}}class Ec extends cu{constructor(){super(),this.calc=new Ac,this.minValue=null,this.maxValue=null,this.decimalFormat=null,this.invalidValueMessageKey="InvalidNumberMessageX",this.gridDataHints.horizontalAlignment=1}_init(e){super._init(e),this._setMinValue(this.minValue),this._setMaxValue(this.maxValue),this._setDecimalFormat(this.decimalFormat)}_initValue(e){this._setDecimalFormat(this.decimalFormat),super._initValue(e)}_createKeyStrokeContext(){return new Qr}_render(){this.addContainer(this.$parent,"number-field"),this.addLabel(),this.addMandatoryIndicator();let e=Zd.makeTextField(this.$parent);this.addField(e),this.addStatus()}_renderGridData(){super._renderGridData(),this.updateInnerAlignment({useHorizontalAlignment:!0})}_renderGridDataHints(){super._renderGridDataHints(),this.updateInnerAlignment({useHorizontalAlignment:!0})}_getDefaultFormat(e){return e.decimalFormatPatternDefault}setDecimalFormat(e){this.setProperty("decimalFormat",e)}_setDecimalFormat(e){e||(e=this._getDefaultFormat(this.session.locale)),e=to.ensure(this.session.locale,e),this._setProperty("decimalFormat",e),this.initialized&&this._updateDisplayText()}_parseValue(e){return e?this.decimalFormat.parse(e,this._evaluateNumber.bind(this)):null}_evaluateNumber(e){if(this.calc.isFormula(e)){let t=this.calc.evalFormula(e);if(isNaN(t))throw new Error(e+" is not a valid expression");return t}return Number(e)}_ensureValue(e){return fi.ensure(e)}_validateValue(e){if(Ai.isNullOrUndefined(e))return e;if(!fi.isNumber(e))throw this.session.text(this.invalidValueMessageKey,e);return!Ai.isNullOrUndefined(this.minValue)&&e<this.minValue&&this._onNumberTooSmall(),!Ai.isNullOrUndefined(this.maxValue)&&e>this.maxValue&&this._onNumberTooLarge(),e}_onNumberTooLarge(){if(Ai.isNullOrUndefined(this.minValue))throw this.session.text("NumberTooLargeMessageX",this._formatValue(this.maxValue));throw this.session.text("NumberTooLargeMessageXY",this._formatValue(this.minValue),this._formatValue(this.maxValue))}_onNumberTooSmall(){if(Ai.isNullOrUndefined(this.maxValue))throw this.session.text("NumberTooSmallMessageX",this._formatValue(this.minValue));throw this.session.text("NumberTooSmallMessageXY",this._formatValue(this.minValue),this._formatValue(this.maxValue))}_formatValue(e){return Ai.isNullOrUndefined(e)?"":"number"!=typeof e?e+"":this.decimalFormat.format(e,!0)}setMinValue(e){this.minValue!==e&&(this._setMinValue(e),this.validate())}_setMinValue(e){this._setProperty("minValue",e),!Ai.isNullOrUndefined(this.maxValue)&&!Ai.isNullOrUndefined(this.minValue)&&e>this.maxValue&&this._setMaxValue(e)}setMaxValue(e){this.maxValue!==e&&(this._setMaxValue(e),this.validate())}_setMaxValue(e){this._setProperty("maxValue",e),!Ai.isNullOrUndefined(this.maxValue)&&!Ai.isNullOrUndefined(this.minValue)&&e<this.minValue&&this._setMinValue(e)}}class Dc extends pu{constructor(){super()}_onWidgetParseError(e){e.preventDefault()}_onWidgetEvent(e){"parseError"===e.type?this._onWidgetParseError(e):super._onWidgetEvent(e)}static modifyPrototype(){E.get().remote&&Ai.replacePrototypeFunction(Ec,"clearErrorStatus",(function(){if(!this.modelAdapter)return this.clearErrorStatusOrig()}),!0)}}E.addListener("bootstrap",Dc.modifyPrototype);class Ac{constructor(){}isFormula(e){return e.match(/^[\d()+\-*/.]+$/)}evalFormula(e){return this._tokens=e.split(/([\d.]+|\(|\)|[+\-*/])/).filter((e=>0!==e.length)),this._expr()}_next(){if(0!==this._tokens.length)return this._tokens[0]}_consumeNext(){let e=this._tokens[0];return this._tokens=this._tokens.slice(1,this._tokens.length),e}_expr(){return this._sum()}_sum(){let e=this._prod();for(;"+"===this._next()||"-"===this._next();)switch(this._consumeNext()){case"+":e+=this._prod();break;case"-":e-=this._prod()}return e}_prod(){let e=this._unary();for(;"*"===this._next()||"/"===this._next();)switch(this._consumeNext()){case"*":e*=this._unary();break;case"/":e/=this._unary()}return e}_unary(){let e,t=1;return"+"===this._next()?this._consumeNext():"-"===this._next()&&(this._consumeNext(),t=-1),void 0!==(e=this._group())||(e=this._consumeNext()),t*e}_group(){if("("===this._next()){this._consumeNext();let e=this._expr();if(")"!==this._next())throw"missing closing bracket";return this._consumeNext(),e}}}function $c(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Rc extends Ec{constructor(){super(),this.minValue=Rc.MIN_VALUE,this.maxValue=Rc.MAX_VALUE}_getDefaultFormat(e){return"#,##0"}_parseValue(e){let t=super._parseValue(e);return Ai.isNullOrUndefined(t)?null:this.decimalFormat.round(t,!1)}}$c(Rc,"MIN_VALUE",Number.MIN_SAFE_INTEGER),$c(Rc,"MAX_VALUE",Number.MAX_SAFE_INTEGER);class Mc extends iu{constructor(){super()}_render(){this.addContainer(this.$parent,"placeholder-field"),this.addLabel()}_renderLabel(){this._renderEmptyLabel()}}class kc extends su{constructor(){super()}}class Ic extends iu{constructor(){super(),this._addWidgetProperties(["planner"]),this.gridDataHints.weightY=1}_render(){this.addContainer(this.$parent,"planner-field"),this.addLabel(),this.addStatus(),this.planner&&this._renderPlanner()}_renderPlanner(){this.planner.render(),this.addField(this.planner.$container)}_removePlanner(){this.planner.remove(),this._removeField()}}class Lc extends su{constructor(){super()}}class Bc extends Iu{constructor(){super(),this.gridDataHints.fillHorizontal=!0,this.focusWhenSelected=!0,this.wrapText=!1,this.buttonKeyStroke=new qc(this,null),this.radioValue=null}_initDefaultKeyStrokes(){this.keyStrokeContext.registerKeyStroke([new qc(this,"ENTER"),new qc(this,"SPACE")])}_render(){this.addContainer(this.$parent,"radio-button",new Oc(this)),this.addFieldContainer(this.$parent.makeDiv()),this.$radioButton=this.$fieldContainer.appendDiv("radio-button-circle").data("radiobutton",this),this.addField(this.$radioButton),this.$buttonLabel=this.$fieldContainer.appendDiv("label"),Zd.linkElementWithLabel(this.$radioButton,this.$buttonLabel),this.$fieldContainer.on("mousedown",this._onMouseDown.bind(this)),yo.installForEllipsis(this.$buttonLabel,{parent:this}),this.addStatus(),this.session.keyStrokeManager.installKeyStrokeContext(this.formKeyStrokeContext)}_remove(){yo.uninstall(this.$buttonLabel),this.session.keyStrokeManager.uninstallKeyStrokeContext(this.formKeyStrokeContext),super._remove()}_renderProperties(){super._renderProperties(),this._renderWrapText(),this._renderSelected()}setWrapText(e){this.setProperty("wrapText",e)}_renderWrapText(){this.$buttonLabel.toggleClass("white-space-nowrap",!this.wrapText),this.invalidateLayoutTree()}select(){this.setSelected(!0)}setSelected(e){this.setProperty("selected",e)}_renderSelected(){this.$fieldContainer.toggleClass("checked",this.selected),this.$field.toggleClass("checked",this.selected)}setTabbable(e){this.rendered&&this.$field.setTabbable(e&&!Qe.get().supportsOnlyTouch())}isTabbable(){return this.rendered&&this.$field.isTabbable()}_renderIconId(){super._renderIconId();let e=this.get$Icon();e.length>0&&e.insertAfter(this.$radioButton)}doAction(){return!(!this.enabledComputed||!this.visible)&&(this.select(),!0)}_onMouseDown(e){if(!this.enabledComputed)return;let t=this.get$Icon().is(e.target),i=this.$radioButton.is(e.target),s=this.$buttonLabel.isOrHas(e.target);(i||s||t)&&(this.select(),this.focusWhenSelected&&(s||t)&&this.focusAndPreventDefault(e))}}class Oc extends Lu{constructor(e){super(e),this.radioButton=e}layout(e){super.layout(e);let t=this.radioButton.get$Icon(),i=this.radioButton.$radioButton,s=this.radioButton.$buttonLabel,r=this.radioButton.$fieldContainer.width()-(i.outerWidth(!0)+(t.length?t.outerWidth(!0):0));s.css("max-width",r)}}class Nc extends Bu{constructor(){super(),this._addRemoteProperties(["selected"])}}function Hc(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Vc extends du{constructor(){super(),this.logicalGrid=x.create("scout.HorizontalGrid"),this.layoutConfig=null,this.fields=[],this.radioButtons=[],this.gridColumnCount=Vc.DEFAULT_GRID_COLUMN_COUNT,this.selectedButton=null,this.$body=null,this.lookupStatus=null,this.lookupCall=null,this._lookupExecuted=!1,this._selectButtonLocked=!1,this._pendingLookup=null,this._lookupInProgress=!1,this._currentLookupCall=null,this._addWidgetProperties(["fields"]),this._addCloneProperties(["lookupCall","layoutConfig","gridColumnCount"]),this._buttonPropertyChangeHandler=this._onButtonPropertyChange.bind(this)}_init(e){super._init(e),this._setLayoutConfig(this.layoutConfig),this._setGridColumnCount(this.gridColumnCount)}_initValue(e){this.lookupCall&&this._setLookupCall(this.lookupCall),this._setFields(this.fields),super._initValue(e)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new Uc(this),new Kc(this)])}_initButtons(){this.radioButtons=this.fields.filter((e=>e instanceof Bc)),this.radioButtons.forEach(this._initButton.bind(this))}_initButton(e){0===e.events.count("propertyChange",this._buttonPropertyChangeHandler)&&e.on("propertyChange",this._buttonPropertyChangeHandler),e.selected&&(this.setValue(e.radioValue),this.selectButton(e),e.focused&&this.setFocused(!0))}_render(){this.addContainer(this.$parent,"radiobutton-group"),this.addLabel(),this.addMandatoryIndicator(),this.$body=this.$container.appendDiv("radiobutton-group-body"),this.htmlBody=fr.install(this.$body,this.session),this.htmlBody.setLayout(this._createBodyLayout()),this.addField(this.$body),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderFields(),this._renderLayoutConfig()}_createBodyLayout(){return new Gc(this,this.layoutConfig)}_setLogicalGrid(e){super._setLogicalGrid(e),this.logicalGrid&&this.logicalGrid.setGridConfig(new zc)}invalidateLogicalGrid(e){super.invalidateLogicalGrid(!1),x.nvl(e,!0)&&this.rendered&&this.htmlBody.invalidateLayoutTree()}setLayoutConfig(e){this.setProperty("layoutConfig",e)}_setLayoutConfig(e){e||(e=new Sr),this._setProperty("layoutConfig",Sr.ensure(e))}_renderLayoutConfig(){this.layoutConfig.applyToLayout(this.htmlBody.layout),this.rendered&&this.htmlBody.invalidateLayoutTree()}isClearable(){return!1}getFields(){return this.fields}visitFields(e){let t=super.visitFields(e);if(t===yu.TERMINATE)return yu.TERMINATE;if(t===yu.SKIP_SUBTREE)return;let i=this.getFields();for(let s=0;s<i.length;s++){if(t=i[s].visitFields(e),t===yu.TERMINATE)return yu.TERMINATE}}getFocusableElement(){return this.session.focusManager.findFirstFocusableElement(this.$container)}setFields(e){this.setProperty("fields",e)}_setFields(e){this._setProperty("fields",e),this._initButtons()}_renderFields(){this._ensureLookupCallExecuted(),this.fields.forEach((function(e){e.render(this.$body),e.setLayoutData(new vr(e)),this._linkWithLabel(e.$field)}),this),this._provideTabIndex(),this.invalidateLogicalGrid()}_renderEnabled(){super._renderEnabled(),this._provideTabIndex()}_provideTabIndex(){let e;this.radioButtons.forEach((function(t){t.enabledComputed&&this.enabledComputed&&!e?(t.setTabbable(!0),e=t):e&&this.enabledComputed&&t.enabledComputed&&t.selected?(e.setTabbable(!1),t.setTabbable(!0),e=t):t.setTabbable(!1)}),this)}setGridColumnCount(e){this.setProperty("gridColumnCount",e)}_setGridColumnCount(e){return e<0&&(e=this._calcDefaultGridColumnCount()),e!==this.gridColumnCount&&(this._setProperty("gridColumnCount",e),this.invalidateLogicalGrid(),!0)}_calcDefaultGridColumnCount(){let e=1,t=this.gridDataHints;return t&&t.h>1&&(e=t.h),Math.ceil(this.fields.length/e)}getButtonForRadioValue(e){return null===e?null:me.find(this.radioButtons,(t=>Ai.equals(t.radioValue,e)))}_validateValue(e){if(super._validateValue(e),!this.initialized&&this.lookupCall)return e;if(this._ensureLookupCallExecuted())return e;if(!this.getButtonForRadioValue(e)&&null!=e&&!this._lookupInProgress)throw this.session.text("InvalidValueMessageX",e);return e}_valueChanged(){super._valueChanged(),(null!==this.value||this.initialized)&&this.selectButton(this.getButtonForRadioValue(this.value))}selectFirstButton(){this.selectButtonByIndex(0)}selectLastButton(){this.selectButtonByIndex(this.radioButtons.length-1)}selectButtonByIndex(e){this.radioButtons.length&&e>=0&&e<this.radioButtons.length&&this.selectButton(this.radioButtons[e])}selectButton(e){if(this.selectedButton!==e&&!this._selectButtonLocked){if(this._selectButtonLocked=!0,this.selectedButton&&this.selectedButton.setSelected(!1),e){let t=this.getTabbableButton(),i=!1;t&&(i=t.isFocused()),e.setSelected(!0),e.setTabbable(!0),i&&e.focus(),t&&t!==e&&t.setTabbable(!1)}this._selectButtonLocked=!1,this.setProperty("selectedButton",e)}}getTabbableButton(){return me.find(this.radioButtons,(e=>e.visible&&e.isTabbable()))}insertButton(e){let t=this.fields.slice();t.push(e),this.setFields(t)}_onButtonPropertyChange(e){if("selected"===e.propertyName){e.newValue?(this.setValue(e.source.radioValue),this.selectButton(e.source)):e.source===this.selectedButton&&this.selectButton(null)}else"focused"===e.propertyName&&this.setFocused(e.newValue)}_setLookupCall(e){this._setProperty("lookupCall",xs.ensure(e,this.session)),this._lookupExecuted=!1,this.rendered&&this._ensureLookupCallExecuted()}_ensureLookupCallExecuted(){return!!this.lookupCall&&(!this._lookupExecuted&&(this._lookupByAll(),!0))}_createLoadingSupport(){return new z({widget:this,$container:function(){return this.$body}.bind(this)})}_lookupByAll(){if(!this.lookupCall)return;this._clearPendingLookup();let e=n().Deferred(),t=function(t){this._lookupByAllDone(t),e.resolve(t)}.bind(this);return this._executeLookup(this.lookupCall.cloneForAll(),!0).done(t),e.promise()}_clearPendingLookup(){this._pendingLookup&&(clearTimeout(this._pendingLookup),this._pendingLookup=null)}_executeLookup(e,t){return t&&this._currentLookupCall&&this._currentLookupCall.abort(),this._lookupInProgress=!0,this.setLoading(!0),this._currentLookupCall=e,this.trigger("prepareLookupCall",{lookupCall:e}),e.execute().always((()=>{this._lookupInProgress=!1,this._lookupExecuted=!0,this._currentLookupCall=null,this.setLoading(!1),this._clearLookupStatus()}))}_lookupByAllDone(e){try{if(e.exception)return void this.setErrorStatus(Ii.error({message:e.exception}));if(0===e.lookupRows.length)return void this.setLookupStatus(Ii.warning({message:this.session.text("SmartFieldNoDataFound"),code:Vc.ErrorCode.NO_DATA}));this._populateRadioButtonGroup(e)}finally{this.trigger("lookupCallDone",{result:e})}}_populateRadioButtonGroup(e){let t=e.lookupRows,i=this.fields.slice();t.forEach((function(e){i.push(this._createLookupRowRadioButton(e))}),this),this.setFields(i),this.setValue(this.value),this.selectButton(this.getButtonForRadioValue(this.value))}_clearLookupStatus(){this.setLookupStatus(null)}setLookupStatus(e){this.setProperty("lookupStatus",e),this.rendered&&this._renderErrorStatus()}_errorStatus(){return this.lookupStatus||this.errorStatus}_createLookupRowRadioButton(e){let t={parent:this,label:e.text,radioValue:e.key,lookupRow:e};return e.iconId&&(t.iconId=e.iconId),e.tooltipText&&(t.tooltipText=e.tooltipText),e.backgroundColor&&(t.backgroundColor=e.backgroundColor),e.foregroundColor&&(t.foregroundColor=e.foregroundColor),e.font&&(t.font=e.font),!1===e.enabled&&(t.enabled=!1),!1===e.active&&(t.visible=!1),e.cssClass&&(t.cssClass=e.cssClass),x.create("RadioButton",t)}clone(e,t){let i=super.clone(e,t);return this._deepCloneProperties(i,"fields",t),i._initButtons(),i}}Hc(Vc,"DEFAULT_GRID_COLUMN_COUNT",-1),Hc(Vc,"ErrorCode",{NO_DATA:1});class Wc extends uu{constructor(){super()}_initModel(e,t){return(e=super._initModel(e,t)).logicalGrid=null,e}}class zc extends Cr{constructor(){super()}getGridColumnCount(){return this.widget.gridColumnCount}getGridWidgets(){return this.widget.fields}}class Gc extends Tr{constructor(e,t){super(e,t)}_initDefaults(){super._initDefaults(),this.hgap=mr.get().smallColumnGap}}class Uc extends U{constructor(e){super(),this.field=e,this.which=[Kr.LEFT,Kr.UP],this.renderingHints.render=!1}handle(e){let t,i=n()(e.target).data("radiobutton");this.field.radioButtons.some((e=>t&&e===i?(t.select(),t.focus(),!0):(e.enabledComputed&&e.visible&&(t=e),!1)),this)}}class Kc extends U{constructor(e){super(),this.field=e,this.which=[Kr.RIGHT,Kr.DOWN],this.renderingHints.render=!1}handle(e){let t,i=n()(e.target).data("radiobutton");this.field.radioButtons.some((e=>t&&e.enabledComputed&&e.visible?(e.select(),e.focus(),!0):(e===i&&e.enabledComputed&&e.visible&&(t=e),!1)),this)}}class qc extends Ou{constructor(e,t){super(e,t),this.renderingHints.hAlign=ns.LEFT}_accept(e){return super._accept(e)&&!this.field.selected}}class jc extends au{constructor(){super(),this._addWidgetProperties("fields"),this._addCloneProperties(["layoutConfig"]),this.logicalGrid=x.create("scout.HorizontalGrid"),this.layoutConfig=null,this.fields=[],this._fieldPropertyChangeHandler=this._onFieldPropertyChange.bind(this),this._lastVisibleFieldSuppressStatusHandler=this._onLastVisibleFieldSuppressStatusChange.bind(this)}_init(e){super._init(e),this._setLayoutConfig(this.layoutConfig),this._initDateFields(),this.setErrorStatus(this.errorStatus),this.setTooltipText(this.tooltipText),this.setMenus(this.menus),this.setMenusVisible(this.menusVisible)}_initDateFields(){let e=this._getDateFields(),t=null;for(let i=0;i<e.length;i++){let s=e[i];s.autoDate&&(s.hasModelAutoDateSet=!0),s.hasModelAutoDateSet||s.setAutoDate(t),t=this._getAutoDateProposal(s)}}_render(){let e,t;for(this.addContainer(this.$parent,"sequence-box"),this.addLabel(),this.addField(this.$parent.makeDiv()),this.addStatus(),this._handleStatus(),this.htmlBody=fr.install(this.$field,this.session),this.htmlBody.setLayout(this._createBodyLayout()),t=0;t<this.fields.length;t++)e=this.fields[t],e.labelUseUiWidth=!0,e.on("propertyChange",this._fieldPropertyChangeHandler),e.render(this.$field),this._modifyLabel(e),e.setLayoutData(new vr(e))}_renderProperties(){super._renderProperties(),this._renderLayoutConfig()}_createBodyLayout(){return new Xc(this,this.layoutConfig)}_remove(){this.fields.forEach((e=>e.off("propertyChange",this._fieldPropertyChangeHandler))),this._lastVisibleField&&this._lastVisibleField.off("propertyChange:suppressStatus",this._lastVisibleFieldSuppressStatusHandler),super._remove()}invalidateLogicalGrid(e){super.invalidateLogicalGrid(!1),x.nvl(e,!0)&&this.rendered&&this.htmlBody.invalidateLayoutTree()}_setLogicalGrid(e){super._setLogicalGrid(e),this.logicalGrid&&this.logicalGrid.setGridConfig(new Yc)}setLayoutConfig(e){this.setProperty("layoutConfig",e)}_setLayoutConfig(e){e||(e=new Sr),this._setProperty("layoutConfig",Sr.ensure(e))}_renderLayoutConfig(){this.layoutConfig.applyToLayout(this.htmlBody.layout),this.rendered&&this.htmlBody.invalidateLayoutTree()}_onFieldPropertyChange(e){let t="visible"===e.propertyName;x.isOneOf(e.propertyName,["errorStatus","tooltipText","visible","menus","menusVisible"])&&this._handleStatus(t),"value"===e.propertyName&&this._onFieldValueChange(e)}_handleStatus(e){if(e&&this._lastVisibleField&&(this._lastVisibleField.off("propertyChange:suppressStatus",this._lastVisibleFieldSuppressStatusHandler),this._lastVisibleField.setSuppressStatus(null),this._lastVisibleField.rendered&&(this._lastVisibleField._renderErrorStatus(),this._lastVisibleField._renderTooltipText(),this._lastVisibleField._renderMenus())),this._lastVisibleField=this._getLastVisibleField(),!this._lastVisibleField)return;this._isOverwritingStatusFromField=!0,this._lastVisibleField.errorStatus?(this.setErrorStatus(this._lastVisibleField.errorStatus),this._isErrorStatusOverwritten=!0):(this.setErrorStatus(this.boxErrorStatus),this._isErrorStatusOverwritten=!1),this._lastVisibleField.hasStatusTooltip()?(this.setTooltipText(this._lastVisibleField.tooltipText),this._isTooltipTextOverwritten=!0):(this.setTooltipText(this.boxTooltipText),this._isTooltipTextOverwritten=!1);let t=this._lastVisibleField.getContextMenuItems(!1);t&&t.length>0?(this._updateBoxMenuOwner(this.fieldStatus),this.setMenus(t),this.setMenusVisible(this._lastVisibleField.menusVisible),this._isMenusOverwritten=!0):(this._updateBoxMenuOwner(this),this.setMenus(this.boxMenus),this.setMenusVisible(this.boxMenusVisible),this._isMenusOverwritten=!1),this._isOverwritingStatusFromField=!1,this._lastVisibleField.setSuppressStatus(iu.SuppressStatus.ICON),this._lastVisibleField.on("propertyChange:suppressStatus",this._lastVisibleFieldSuppressStatusHandler),e&&this._lastVisibleField.rendered&&(this._lastVisibleField._renderErrorStatus(),this._lastVisibleField._renderTooltipText(),this._lastVisibleField._renderMenus())}_onLastVisibleFieldSuppressStatusChange(e){e.preventDefault()}setErrorStatus(e){this._isOverwritingStatusFromField&&!this._isErrorStatusOverwritten?this.boxErrorStatus=this.errorStatus:this._isOverwritingStatusFromField||(this.boxErrorStatus=e),!this._isOverwritingStatusFromField&&this._isErrorStatusOverwritten||super.setErrorStatus(e)}setTooltipText(e){this._isOverwritingStatusFromField&&!this._isTooltipTextOverwritten?this.boxTooltipText=this.tooltipText:this._isOverwritingStatusFromField||(this.boxTooltipText=e),!this._isOverwritingStatusFromField&&this._isTooltipTextOverwritten||super.setTooltipText(e)}setMenus(e){e=this._createChildren(e),this._isOverwritingStatusFromField&&!this._isMenusOverwritten?this.boxMenus=this.menus:this._isOverwritingStatusFromField||(this.boxMenus=e),!this._isOverwritingStatusFromField&&this._isMenusOverwritten||super.setMenus(e)}_updateBoxMenuOwner(e){this.boxMenus.forEach((t=>{t.setOwner(e)}))}setMenusVisible(e){this._isOverwritingStatusFromField&&!this._isMenusOverwritten?this.boxMenusVisible=this.menusVisible:this._isOverwritingStatusFromField||(this.boxMenusVisible=e),!this._isOverwritingStatusFromField&&this._isMenusOverwritten||super.setMenusVisible(e)}_getLastVisibleField(){let e=this.fields.filter((e=>e.visible));if(0!==e.length)return e[e.length-1]}_onFieldValueChange(e){e.source instanceof Zu&&this._onDateFieldValueChange(e)}_onDateFieldValueChange(e){let t=e.source,i=this._getDateFields(),s=this._getAutoDateProposal(t);for(let e=i.indexOf(t)+1;e<i.length;e++){let t=i[e];if(t.hasModelAutoDateSet||t.setAutoDate(s),t.value)break}}_getDateFields(){return this.fields.filter((e=>e instanceof Zu))}_getAutoDateProposal(e){let t=null;return e&&e.value&&(t=!e.hasDate&&e.hasTime?Le.shiftTime(e.value,1,0,0):Le.shift(e.value,0,0,1)),t}_modifyLabel(e){e instanceof Wu&&(e.labelVisible=!1),e instanceof Zu?(e.$dateField&&this._linkWithLabel(e.$dateField),e.$timeField&&this._linkWithLabel(e.$timeField)):e.$field&&this._linkWithLabel(e.$field)}setFields(e){if(this.rendered)throw new Error("Setting fields is not supported if sequence box is already rendered.");this.setProperty("fields",e)}getFields(){return this.fields}clone(e,t){let i=super.clone(e,t);return this._deepCloneProperties(i,"fields",t),i}}class Yc extends Cr{constructor(){super()}getGridColumnCount(){return this.widget.fields.length}getGridWidgets(){return this.widget.fields}}class Xc extends Tr{constructor(e,t){super(e,t)}_initDefaults(){super._initDefaults(),this.hgap=mr.get().smallColumnGap}}class Jc extends hu{constructor(){super()}_initModel(e,t){return(e=super._initModel(e,t)).logicalGrid=null,e}}class Zc extends du{constructor(){super(),this.slider}_init(e){super._init(e);let t=n().extend({parent:this},e);this.slider=x.create("Slider",t)}_render(){this.addContainer(this.$parent,"slider-field"),this.addLabel(),this.addMandatoryIndicator(),this._renderSlider()}_renderSlider(){this.slider.render(),this.addField(this.slider.$container)}_readDisplayText(){return String(this.slider.value)}_parseValue(e){return Number(e)}setValue(e){this.slider.setValue(e)}getValue(){return this.slider.value}}function Qc(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class ep extends du{constructor(){super(),this.popup=null,this.lookupCall=null,this.codeType=null,this._pendingLookup=null,this._pendingOpenPopup=!1,this._tabPrevented=null,this.lookupRow=null,this.browseHierarchy=!1,this.browseMaxRowCount=ep.DEFAULT_BROWSE_MAX_COUNT,this.browseAutoExpandAll=!0,this.browseLoadIncremental=!1,this.searchRequired=!1,this.activeFilterEnabled=!1,this.activeFilter=null,this.activeFilterLabels=[],this.columnDescriptors=null,this.displayStyle=ep.DisplayStyle.DEFAULT,this.touchMode=!1,this.embedded=!1,this._userWasTyping=!1,this._acceptInputEnabled=!0,this._acceptInputDeferred=n().Deferred(),this._notUnique=!1,this._lastSearchText=null,this.lookupStatus=null,this._currentLookupCall=null,this.lookupSeqNo=0,this.initActiveFilter=null,this.disabledCopyOverlay=!0,this.maxLength=500,this.maxLengthHandler=x.create("MaxLengthHandler",{target:this}),this._addCloneProperties(["lookupRow","codeType","lookupCall","activeFilter","activeFilterEnabled","activeFilterLabels","browseHierarchy","browseMaxRowCount","browseAutoExpandAll","browseLoadIncremental","searchRequired","columnDescriptors","displayStyle"])}_init(e){super._init(e),0===this.activeFilterLabels.length&&(this.activeFilterLabels=[this.session.text("ui.All"),this.session.text("ui.Inactive"),this.session.text("ui.Active")]),Zd.initTouch(this,e)}_initValue(e){this._setLookupCall(this.lookupCall),this._setCodeType(this.codeType),this._setLookupRow(this.lookupRow),super._initValue(e)}markAsSaved(){super.markAsSaved(),this.setInitActiveFilter(this.activeFilter)}resetValue(){super.resetValue(),this.setActiveFilter(this.initActiveFilter)}_createKeyStrokeContext(){return new Qr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke(new sp(this))}_render(){this.addContainer(this.$parent,"has-icon "+this.cssClassName(),new ip(this)),this.addLabel();let e=(this.isDropdown()?Zd.makeInputDiv:Zd.makeInputOrDiv).call(x.fields,this).on("mousedown",this._onFieldMouseDown.bind(this));this.touchMode||e.keyup(this._onFieldKeyUp.bind(this)).keydown(this._onFieldKeyDown.bind(this)).on("input",this._onFieldInput.bind(this)),this.addField(e),this.maxLengthHandler.install(e),this.embedded||this.addMandatoryIndicator(),this.addIcon(),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderMaxLength()}_renderGridData(){super._renderGridData(),this.updateInnerAlignment({useHorizontalAlignment:!this.browseHierarchy})}_renderGridDataHints(){super._renderGridDataHints(),this.updateInnerAlignment({useHorizontalAlignment:!this.browseHierarchy})}cssClassName(){let e=this.displayStyle;return this.displayStyle===ep.DisplayStyle.DEFAULT&&(e="smart"),e+"-field"}_readSearchText(){let e=this._readDisplayText(),t=x.nvl(this.displayText,"").split("\n");return 1===t.length||qt.empty(e)?e:(t.shift(),me.insert(t,e,0),qt.join("\n",t))}_readDisplayText(){return Zd.valOrText(this.$field)}_renderDisplayText(){let e=this._prepareDisplayText();Zd.valOrText(this.$field,e),super._renderDisplayText()}_prepareDisplayText(){let e=x.nvl(this.displayText,""),t=e.split("\n");return t.length&&(e=t[0]),e}acceptInput(e){if(!this._acceptInputEnabled)return n().log.isTraceEnabled()&&n().log.trace("(SmartField#acceptInput) Skipped acceptInput because _acceptInputEnabled=false"),this._acceptInputDeferred.promise();this._acceptInputEnabled=!1,setTimeout((()=>{this._acceptInputEnabled=!0}));let t=this._readSearchText(),i=qt.empty(t),s=this._checkSearchTextChanged(t),r=this._getSelectedLookupRow(s);return this._setProperty("displayText",t),this._acceptInputDeferred=n().Deferred(),this._flushLookupStatus(),this._clearPendingLookup(),this.touchMode?(n().log.isDebugEnabled()&&n().log.debug("(SmartField#acceptInput) Always send acceptInput for touch field"),void this._inputAccepted()):this._acceptInput(e,t,i,s,r)}_getSelectedLookupRow(e){return!this.isPopupOpen()||e&&this._userWasTyping?null:this.lookupSeqNo===this.popup.lookupResult.seqNo?this.popup.getSelectedLookupRow():null}_checkSearchTextChanged(e){return!(this.isDropdown()||!this._userWasTyping)&&!this._searchTextEquals(e,this._lastSearchText)}_searchTextEquals(e,t){let i=qt.nullIfEmpty(this._firstTextLine(e)),s=qt.nullIfEmpty(t);return qt.equalsIgnoreCase(i,s)}_clearPendingLookup(){this._pendingLookup&&(clearTimeout(this._pendingLookup),this._pendingLookup=null)}_acceptInput(e,t,i,s,r){let o=!1;if(this.removing)o=!0;else if(!r&&this.lookupRow){o=qt.nvl(this.lookupRow.text)===t}return o?(n().log.isDebugEnabled()&&n().log.debug("(SmartField#_acceptInput) unchanged: widget is removing or searchText is equals. Close popup"),this._clearLookupStatus(),void this._inputAccepted(!1)):(this._notUnique&&!i&&this._setNotUniqueError(t),r||this.lookupRow||!i?!r&&i?(n().log.isDebugEnabled()&&n().log.debug("(SmartField#_acceptInput) empty. Set lookup-row to null, close popup"),this._clearLookupStatus(),this.setLookupRow(null),void this._inputAccepted()):r?(n().log.isDebugEnabled()&&n().log.debug("(SmartField#_acceptInput) lookup-row selected. Set lookup-row, close popup lookupRow=",r.toString()),this._clearLookupStatus(),this.setLookupRow(r),void this._inputAccepted()):(s||this._userWasTyping?this._acceptByText(e,this._firstTextLine(t)):this._hasUiError()?this._hasNotUniqueError()&&this.popup?this.popup.selectFirstLookupRow():this._acceptInputDeferred.resolve():this._inputAccepted(!1),this._acceptInputDeferred.promise()):(n().log.isDebugEnabled()&&n().log.debug("(SmartField#_acceptInput) unchanged: text is empty. Close popup"),this._clearLookupStatus(),this.errorStatus&&this.errorStatus.code===ep.ErrorCode.NO_RESULTS&&this.clearErrorStatus(),void this._inputAccepted(s||this._userWasTyping)))}_firstTextLine(e){return qt.empty(e)?e:e.split("\n")[0]}_acceptByText(e,t){e=x.nvl(e,!1),n().log.isDebugEnabled()&&n().log.debug("(SmartField#_acceptByText) sync="+e+" searchText=",t),e?this._acceptByTextSync(t):this._acceptByTextAsync(t)}_acceptByTextSync(e){this._lastSearchText=null,this._inputAccepted(),this._hasUiError()||this.resetDisplayText()}_acceptByTextAsync(e){this._lastSearchText=e,this._executeLookup(this.lookupCall.cloneForText(e),!0).done(this._acceptByTextDone.bind(this)).done(this._triggerLookupCallDone.bind(this)),this._triggerAcceptByText(e)}_inputAccepted(e,t){e=x.nvl(e,!0),t=x.nvl(t,!0),this.embedded||this.closePopup(),this._userWasTyping=!1,e&&this._triggerAcceptInput(t),this._focusNextTabbable(),this._acceptInputDeferred.resolve()}_focusNextTabbable(){if(this._tabPrevented){let e=this.entryPoint().find(":tabbable"),t=this._tabPrevented.shiftKey?-1:1,i=e.index(this.$field),s=i+t;s<0?s=e.length-1:s>=e.length&&(s=0),n().log.isDebugEnabled()&&n().log.debug("(SmartField#_inputAccepted) tab-index="+i+" next tab-index="+s);let r=e.eq(s).focus();Ai.isFunction(r[0].select)&&r[0].select(),r.addClass("keyboard-navigation"),this._tabPrevented=null}}_acceptByTextDone(e){if(this._userWasTyping=!1,this._extendResult(e),this._notUnique=e.numLookupRows>1,e.uniqueMatch){let t=e.uniqueMatch;this._isLookupRowActive(t)?(this.setLookupRow(t),this._inputAccepted()):this.setErrorStatus(Ii.error({message:this.session.text("SmartFieldInactiveRow",e.text)}))}else this._acceptInputFail(e)}_extendResult(e){e.seqNo=this.lookupSeqNo,e.uniqueMatch=null;let t="by"+qt.toUpperCaseFirstLetter(e.queryBy.toLowerCase());if(e[t]=!0,this.browseHierarchy){let t=x.create("TreeProposalChooser",{parent:this,smartField:this});t.setLookupResult(e);let i=t.findLeafs();e.numLookupRows=i.length,1===e.numLookupRows&&(e.uniqueMatch=i[0].lookupRow)}else e.numLookupRows=e.lookupRows.length,1===e.numLookupRows&&(e.uniqueMatch=e.lookupRows[0]);e.empty=0===e.numLookupRows}_acceptInputFail(e){let t=e.text;e.empty&&(this.embedded||this.closePopup(),this.setValue(null),this.setDisplayText(t),this.setErrorStatus(Ii.error({message:this.session.text("SmartFieldCannotComplete",t),code:ep.ErrorCode.NO_RESULTS}))),e.numLookupRows>1&&(this.setValue(null),this.setDisplayText(t),this._setNotUniqueError(t),this.isPopupOpen()?this.popup.setLookupResult(e):this._lookupByTextOrAllDone(e),this.isPopupOpen()&&this.popup.selectFirstLookupRow()),this._acceptInputDeferred.resolve(),this._triggerAcceptInputFail()}lookupByRec(e){return n().log.isDebugEnabled()&&n().log.debug("(SmartField#lookupByRec) rec=",e),this._lastSearchText=null,this._executeLookup(this.lookupCall.cloneForRec(e)).then((t=>{t.appendResult=!0,t.rec=e,this.isPopupOpen()&&this.popup.setLookupResult(t)})).then(this._triggerLookupCallDone.bind(this))}_isLookupRowActive(e){return!!e.enabled&&(!this.activeFilterEnabled||("TRUE"===this.activeFilter?e.active:"FALSE"!==this.activeFilter||!e.active))}_renderEnabled(){super._renderEnabled(),this.$field.setTabbable(this.enabledComputed)}setMaxLength(e){this.setProperty("maxLength",e)}_renderMaxLength(){this.maxLengthHandler.render()}setLookupCall(e){this.setProperty("lookupCall",e)}_setLookupCall(e){this._setProperty("lookupCall",xs.ensure(e,this.session)),this._syncBrowseMaxRowCountWithLookupCall()}_setCodeType(e){if(this._setProperty("codeType",e),!e)return;let t=x.create("CodeLookupCall",{session:this.session,codeType:e});this.setProperty("lookupCall",t)}_formatValue(e){return Ai.isNullOrUndefined(e)?"":this.lookupRow?this._formatLookupRow(this.lookupRow):(this._lastSearchText=null,this._executeLookup(this.lookupCall.cloneForKey(e),!0).then(this._lookupByKeyDone.bind(this)).then(this._triggerLookupCallDone.bind(this)))}_lookupByKeyDone(e){this._notUnique=!1;let t=xs.firstLookupRow(e);return this.setLookupRow(t),this._formatLookupRow(t)}_formatLookupRow(e){return e?e.text:""}openPopup(e){let t=this._readDisplayText(),i=!!this.searchRequired||null;return n().log.isInfoEnabled()&&n().log.info("SmartField#openPopup browse="+e+" searchText="+t+" popup="+this.popup+" pendingOpenPopup="+this._pendingOpenPopup),this._tabPrevented=null,this._pendingOpenPopup=!0,qt.empty(t)?e=!0:this.errorStatus&&(this._hasNotUniqueError()?(i=!0,e=!1):this.searchRequired||(e=!0)),this._lookupByTextOrAll(e,t,i)}_hasUiError(e){let t=this._errorStatus();if(!t)return!1;e=e?me.ensure(e):[ep.ErrorCode.NO_RESULTS,ep.ErrorCode.NOT_UNIQUE];let i=Ii.asFlatList(t).reduce(((e,t)=>(t.code&&-1===e.indexOf(t.code)&&e.push(t.code),e)),[]);return e.some((e=>i.indexOf(e)>-1))}_lookupByTextOrAll(e,t,i){if(t=x.nvl(t,this._readDisplayText()),e=x.nvl(e,qt.empty(t)),i=x.nvl(i,!1),this.isDropdown()&&(e=!0),!e&&!i){let e=null;if(e=this._lastSearchText?this._lastSearchText:this._getLastSearchText(),this._searchTextEquals(t,e))return this._pendingOpenPopup=!1,void n().log.debug("(SmartField#_lookupByTextOrAll) searchText is equals -> skip lookup")}this._clearPendingLookup();let s=n().Deferred(),r=function(e){this._lookupByTextOrAllDone(e),s.resolve(e)}.bind(this);return e?(n().log.isDebugEnabled()&&n().log.debug("(SmartField#_lookupByTextOrAll) lookup byAll (searchText empty)"),this._lastSearchText=null,this.searchRequired?(r({queryBy:As.TEXT,lookupRows:[]}),this.setLookupStatus(Ii.warning({message:this.session.text("TooManyRows"),code:ep.ErrorCode.SEARCH_REQUIRED}))):this._executeLookup(this.lookupCall.cloneForAll(),!0).done(r).done(this._triggerLookupCallDone.bind(this))):this._pendingLookup=setTimeout((()=>{n().log.isDebugEnabled()&&n().log.debug("(SmartField#_lookupByTextOrAll) lookup byText searchText="+t),this._lastSearchText=t,this._executeLookup(this.lookupCall.cloneForText(t),!0).done(r).done(this._triggerLookupCallDone.bind(this))}),ep.DEBOUNCE_DELAY),s.promise()}_getLastSearchText(){return Ai.optProperty(this.lookupRow,"text")}_lookupByTextOrAllDone(e){if(this._extendResult(e),this._notUnique=!e.byAll&&e.numLookupRows>1,this._handleException(e))return;if(!this.rendered||!this.isFocused()&&!this.isTouchable())return void this.closePopup();if(e.empty&&e.byAll)return this.activeFilterEnabled?this._ensurePopup(e):this.closePopup(),void this.setLookupStatus(Ii.warning({message:this.session.text("SmartFieldNoDataFound"),code:ep.ErrorCode.NO_DATA}));if(e.empty)return this._handleEmptyResult(),void this.setLookupStatus(Ii.warning({message:this.session.text("SmartFieldCannotComplete",e.text),code:ep.ErrorCode.NO_RESULTS}));let t=null;e.numLookupRows>this.browseMaxRowCount&&(e.lookupRows=e.lookupRows.slice(0,this.browseMaxRowCount),t=Ii.info({message:this.session.text("SmartFieldMoreThanXRows",this.browseMaxRowCount)})),this._ensurePopup(e,t)}_ensurePopup(e,t){this.popup?(this.popup.setLookupResult(e),this.popup.setStatus(t)):this._renderPopup(e,t)}_handleException(e){return!!e.exception&&(this.setErrorStatus(Ii.error({message:e.exception})),this.closePopup(),!0)}_handleEmptyResult(){if(this.touchMode||this.activeFilterEnabled){let e={lookupRows:[]};this._ensurePopup(e)}else this.embedded?this.popup.clearLookupRows():this.closePopup()}_renderPopup(e,t){this.$field.addClass("focused"),this.$container.addClass("popup-open");let i=this.touchMode&&!this.isDropdown(),s=i?"SmartFieldTouchPopup":"SmartFieldPopup";this._pendingOpenPopup=!1,this.popup=x.create(s,{parent:this,$anchor:this.$field,boundToAnchor:!i,closeOnAnchorMouseDown:!1,field:this,lookupResult:e,status:t}),this.popup.open(),this.popup.$container.css("--inactive-lookup-row-suffix-text","'".concat(this.session.text("InactiveState"),"'"));let r=i?this.popup._field:this;this.popup.on("lookupRowSelected",r._onLookupRowSelected.bind(r)),this.popup.on("activeFilterSelected",this._onActiveFilterSelected.bind(this)),this.popup.one("remove",(()=>{this.popup=null,this.rendered&&(this.$container.removeClass("popup-open"),this.$field.removeClass("focused"),this._renderErrorStatus())}))}closePopup(){this._pendingOpenPopup=!1,this.popup&&this.popup.close()}aboutToBlurByMouseDown(e){if(this.touchMode)return!1;Zd.eventOutsideProposalField(this,e)&&this.acceptInput(!0)}_onFieldMouseDown(e){n().log.isDebugEnabled()&&n().log.debug("(SmartField#_onFieldMouseDown)"),this.activate(!0)}activate(e){this.enabledComputed&&this.rendered&&(this.isDropdown()||Zd.handleOnClick(this)?(e&&!Qe.get().supportsOnlyTouch()||this.$field.focus(),this.togglePopup()):this.popup&&this.popup.removalPending&&this.popup.one("remove",(()=>{this.rendered&&this.activate(e)})))}_onIconMouseDown(e){n().log.isDebugEnabled()&&n().log.debug("(SmartField#_onIconMouseDown)"),this.enabledComputed&&(e.preventDefault(),this.$field.focus(),this.embedded||(this.isDropdown()?this.togglePopup():this.popup||this.openPopup(!this.searchRequired)))}_onClearIconMouseDown(e){n().log.isDebugEnabled()&&n().log.debug("(SmartField#_onClearIconMouseDown)"),this.enabledComputed&&(e.preventDefault(),this.$field.focus(),this.clear())}_clear(){this._tabPrevented=null,this._lastSearchText=this._readDisplayText(),this._userWasTyping=!0,Zd.valOrText(this.$field,""),this.touchMode&&this.setValue(null),this.isPopupOpen()&&setTimeout(this._lookupByTextOrAll.bind(this,!0)),this._updateHasText()}togglePopup(){n().log.isInfoEnabled()&&n().log.info("(SmartField#togglePopup) popupOpen=",this.isPopupOpen()),this.isPopupOpen()?this.closePopup():this.openPopup(!this.searchRequired)}_onFieldBlur(e){this.setFocused(!1),this.setLoading(!1),this.isTouchable()||(this.acceptInput(!1),this.closePopup())}isTouchable(){return this.embedded||this.touchMode}_onFieldKeyUp(e){if(e.which===Kr.ESC)return;let t=e.which,i=(e.ctrlKey||e.metaKey)&&t===Kr.V||e.shiftKey&&t===Kr.INSERT,s=(e.ctrlKey||e.metaKey)&&t===Kr.X||e.shiftKey&&t===Kr.DELETE;(!i&&!s||this.isDropdown())&&(e.ctrlKey||e.altKey||e.metaKey||t===Kr.ENTER||t===Kr.TAB||t===Kr.SHIFT||t===Kr.CTRL||t===Kr.ALT||t===Kr.HOME||t===Kr.END||t===Kr.LEFT||t===Kr.RIGHT||t===Kr.WIN_LEFT||t===Kr.WIN_RIGHT||t===Kr.SELECT||t===Kr.NUM_LOCK||t===Kr.CAPS_LOCK||t===Kr.SCROLL_LOCK||t===Kr.PAUSE||t===Kr.PRINT_SCREEN||this._isNavigationKey(e)||this._isFunctionKey(e))||this._handleInput()}_handleInput(){this._pendingOpenPopup||this.isPopupOpen()?this.isDropdown()||this._lookupByTextOrAll():this._pendingOpenPopup||this.openPopup()}isPopupOpen(){return!(!this.popup||this.popup.removalPending)}_onFieldKeyDown(e){if(this._updateUserWasTyping(e),e.which===Kr.TAB)return this.mode===iu.Mode.DEFAULT&&(e.preventDefault(),e.stopPropagation(),n().log.isDebugEnabled()&&n().log.debug("(SmartField#_onFieldKeyDown) set _tabPrevented"),this._tabPrevented={shiftKey:e.shiftKey}),void this.acceptInput();if(e.which===Kr.ENTER)return void this._handleEnterKey(e);let t=e.which;this.isDropdown()&&(e.ctrlKey||e.altKey||e.metaKey||t===Kr.ESC||t===Kr.SHIFT||t===Kr.CTRL||t===Kr.ALT||t===Kr.WIN_LEFT||t===Kr.WIN_RIGHT||t===Kr.SELECT||t===Kr.NUM_LOCK||t===Kr.CAPS_LOCK||t===Kr.SCROLL_LOCK||t===Kr.PAUSE||t===Kr.PRINT_SCREEN||this._isFunctionKey(e))||(this._isNavigationKey(e)||this.isDropdown())&&(this.isPopupOpen()?this.popup.delegateKeyEvent(e):this._pendingOpenPopup||this.openPopup(!this.searchRequired),e.stopPropagation(),e.preventDefault())}_onFieldInput(){this._updateHasText(),this._userWasTyping||(this.isFocused()||this.focus(),this._handleInput())}_updateUserWasTyping(e){let t=e.which,i=(e.ctrlKey||e.metaKey)&&t===Kr.V||e.shiftKey&&t===Kr.INSERT,s=(e.ctrlKey||e.metaKey)&&t===Kr.X||e.shiftKey&&t===Kr.DELETE;(!i&&!s||this.isDropdown())&&(e.ctrlKey||e.altKey||e.metaKey||t===Kr.ESC||t===Kr.TAB||t===Kr.SHIFT||t===Kr.CTRL||t===Kr.ALT||t===Kr.HOME||t===Kr.END||t===Kr.LEFT||t===Kr.RIGHT||t===Kr.WIN_LEFT||t===Kr.WIN_RIGHT||t===Kr.SELECT||t===Kr.NUM_LOCK||t===Kr.CAPS_LOCK||t===Kr.SCROLL_LOCK||t===Kr.PAUSE||t===Kr.PRINT_SCREEN||this._isFunctionKey(e))||(this._userWasTyping=!(this._isNavigationKey(e)||t===Kr.ENTER))}_isNavigationKey(e){let t=[Kr.PAGE_UP,Kr.PAGE_DOWN,Kr.UP,Kr.DOWN];return this.isDropdown()&&(t.push(Kr.HOME),t.push(Kr.END)),x.isOneOf(e.which,t)}_handleEnterKey(e){this.isPopupOpen()&&(this.popup.selectLookupRow(),e.stopPropagation())}_isFunctionKey(e){return e.which>=Kr.F1&&e.which<=Kr.F12}_onLookupRowSelected(e){this._clearPendingLookup();let t=this.original()._currentLookupCall;t&&(t.abort(),this.original()._currentLookupCall=null,this.setLoading(!1)),this.setLookupRow(e.lookupRow),this._inputAccepted(),this.closePopup()}_onActiveFilterSelected(e){this.setActiveFilter(e.activeFilter);let t=!this.searchRequired,i=this._readSearchText();this.lookupRow?this.lookupRow.text!==i&&(t=!1):qt.hasText(i)&&(t=!1),this._lookupByTextOrAll(t,i,!0)}setBrowseMaxRowCount(e){this.setProperty("browseMaxRowCount",e),this._syncBrowseMaxRowCountWithLookupCall()}_syncBrowseMaxRowCountWithLookupCall(){this.lookupCall&&this.lookupCall.setMaxRowCount(this.browseMaxRowCount+1)}setBrowseAutoExpandAll(e){this.setProperty("browseAutoExpandAll",e)}setBrowseLoadIncremental(e){this.setProperty("browseLoadIncremental",e),this.lookupCall&&this.lookupCall.setLoadIncremental(e)}setActiveFilter(e){this.setProperty("activeFilter",this.activeFilterEnabled?e:null)}setActiveFilterEnabled(e){this.setProperty("activeFilterEnabled",e)}setInitActiveFilter(e){this.setProperty("initActiveFilter",e)}setSearchRequired(e){this.setProperty("searchRequired",e)}_executeLookup(e,t){this.lookupSeqNo++,this.setLoading(!0);let i=this.original()._currentLookupCall;return t&&i&&i.abort(),this.original()._currentLookupCall=e,this.trigger("prepareLookupCall",{lookupCall:e}),e.execute().always((()=>{this.original()._currentLookupCall=null,this.setLoading(!1),this._clearLookupStatus(),this._clearNoResultsErrorStatus()}))}_clearNoResultsErrorStatus(){this.isTouchable()||this._userWasTyping&&this.errorStatus&&this.errorStatus.code===ep.ErrorCode.NO_RESULTS&&this.setErrorStatus(null)}virtual(){return this.browseMaxRowCount>ep.DEFAULT_BROWSE_MAX_COUNT}isDropdown(){return this.displayStyle===ep.DisplayStyle.DROPDOWN}_setLookupRow(e){this.lookupRow&&this.removeCssClass(this.lookupRow.cssClass),this._setProperty("lookupRow",e),e&&this.addCssClass(e.cssClass)}setLookupRow(e){this.lookupRow!==e&&(this._notUnique=!1,this.clearErrorStatus(),this._setLookupRow(e),this._lockLookupRow=!0,e?this.setValue(this._getValueFromLookupRow(e)):this.setValue(null),this._lockLookupRow=!1,this.resetDisplayText())}setDisplayText(e){super.setDisplayText(e),this._userWasTyping=!1}resetDisplayText(){let e=this.formatValue(this.value);e&&n().isFunction(e.promise)?e.done(this._setAndRenderDisplayText.bind(this)).fail((()=>{n().log.isInfoEnabled()&&n().log.info("Could not resolve display text for value: "+this.value)})):this._setAndRenderDisplayText(e)}_setAndRenderDisplayText(e){this._setProperty("displayText",e),this.rendered&&this._renderDisplayText()}_getValueFromLookupRow(e){return e.key}_setValue(e){this._lockLookupRow||(Ai.isNullOrUndefined(e)||this._checkResetLookupRow(e))&&this._setLookupRow(null),super._setValue(e),this._notUnique=!1}_checkResetLookupRow(e){return this.lookupRow&&this.lookupRow.key!==e}getValueForSelection(){return this._showSelection()?this.value:null}_showSelection(){if(Ai.isNullOrUndefined(this.value)||Ai.isNullOrUndefined(this.lookupRow))return!1;let e;if(this.rendered){e=this._readDisplayText();let t=this.additionalLines();t&&(e=[e].concat(t).join("\n"))}else e=this.displayText;return e===this.lookupRow.text}isClearable(){return super.isClearable()&&!this.isDropdown()&&!this.touchMode}_triggerLookupCallDone(e){return this.trigger("lookupCallDone",{result:e}),e}_triggerAcceptInputFail(){this._triggerAcceptInput(!1,!0)}_triggerAcceptInput(e,t){this.trigger("acceptInput",{displayText:this.displayText,errorStatus:this.errorStatus,value:this.value,lookupRow:this.lookupRow,acceptByLookupRow:x.nvl(e,!0),failure:x.nvl(t,!1)})}_triggerAcceptByText(e){this.trigger("acceptByText",{searchText:e,errorStatus:this.errorStatus})}onCellEditorRendered(e){e.openFieldPopup&&(this._cellEditorPopup=e.cellEditorPopup,this.openPopup(!this.searchRequired))}additionalLines(){let e=x.nvl(this.displayText,"").split("\n");return e.length>1?(e.shift(),e):null}_createLoadingSupport(){return new G({widget:this,loadingIndicatorDelay:400})}_isInitialShowStatus(){return(!this.touchMode||!this._pendingOpenPopup&&!this.isPopupOpen())&&super._isInitialShowStatus()}acceptInputFromField(e){this._copyValuesFromField(e),this._cellEditorPopup?(this._cellEditorPopup.completeEdit(),this._cellEditorPopup=null):this.acceptInput()}_copyValuesFromField(e){this.lookupRow!==e.lookupRow&&this.setLookupRow(e.lookupRow),this.setErrorStatus(e.errorStatus),this.setDisplayText(e.displayText)}_setNotUniqueError(e){this.setErrorStatus(Ii.error({message:this.session.text("SmartFieldNotUnique",e),code:ep.ErrorCode.NOT_UNIQUE}))}_hasNotUniqueError(e){return this._notUnique||this._hasUiError(ep.ErrorCode.NOT_UNIQUE)}_errorStatus(){return this.lookupStatus||this.errorStatus}setLookupStatus(e){this.setProperty("lookupStatus",e),this.rendered&&this._renderErrorStatus()}clearErrorStatus(){this.setErrorStatus(null),this._clearLookupStatus()}_clearLookupStatus(){this.setLookupStatus(null)}_flushLookupStatus(){if(this.lookupStatus){if(this.lookupStatus.code===ep.ErrorCode.NO_RESULTS||this.lookupStatus.code===ep.ErrorCode.NOT_UNIQUE){let e=this.lookupStatus.clone();e.severity=Ii.Severity.ERROR,this.setErrorStatus(e)}this._clearLookupStatus()}}requestInput(){this.enabledComputed&&this.rendered&&(this.focus(),this.openPopup(!this.searchRequired))}}Qc(ep,"DisplayStyle",{DEFAULT:"default",DROPDOWN:"dropdown"}),Qc(ep,"ErrorCode",{NOT_UNIQUE:1,NO_RESULTS:2,NO_DATA:3,SEARCH_REQUIRED:4}),Qc(ep,"DEBOUNCE_DELAY",200),Qc(ep,"DEFAULT_BROWSE_MAX_COUNT",100),Qc(ep,"ACTIVE_FILTER_VALUES",["UNDEFINED","FALSE","TRUE"]);class tp extends xc{constructor(){super(),this._addRemoteProperties(["activeFilter"])}_postCreateWidget(){super._postCreateWidget(),this.widget.lookupCall=x.create("RemoteLookupCall",this)}_syncResult(e){let t=this.widget._currentLookupCall;!t&&this.widget.touchMode&&this.widget.popup&&this.widget.popup._field&&(t=this.widget.popup._field._currentLookupCall),t&&t.resolveLookup(e)}_syncDisplayText(e){this.widget.setDisplayText(e)}_orderPropertyNamesOnSync(e){return Object.keys(e).sort(this._createPropertySortFunc(tp.PROPERTIES_ORDER))}_onWidgetEvent(e){"acceptByText"===e.type?this._onWidgetAcceptByText(e):super._onWidgetEvent(e)}_onWidgetAcceptByText(e){this._sendProperty("errorStatus",e.errorStatus)}_onWidgetAcceptInput(e){let t={displayText:e.displayText,errorStatus:e.errorStatus};e.errorStatus?qt.empty(e.displayText)&&(t.value=null):(t.value=e.value,e.acceptByLookupRow&&(t.lookupRow=e.lookupRow)),this._send("acceptInput",t,{showBusyIndicator:!e.whileTyping,coalesce:function(e){return this.target===e.target&&this.type===e.type&&this.whileTyping===e.whileTyping}})}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(tp,"PROPERTIES_ORDER",["lookupRow","value","errorStatus","displayText"]);class ip extends ru{constructor(e){super(e),this._smartField=e}layout(e){if(super.layout(e),this._smartField.embedded)return;let t=this._smartField.popup;t&&t.rendered&&(t.position(),t.validateLayout())}}class sp extends U{constructor(e){super(),this.field=e,this.which=[Kr.ESC],this.stopPropagation=!0,this.preventInvokeAcceptInputOnActiveValueField=!0,this.renderingHints.$drawingArea=function(e,t){return this.field.$fieldContainer}.bind(this)}_accept(e){return!!super._accept(e)&&!!this.field.popup}handle(e){this.field.closePopup(),this.field.resetDisplayText()}}class rp extends Ao{constructor(){super(),this.animateRemoval=rp.hasPopupAnimation(),this.windowPaddingX=0,this.windowPaddingY=0}_init(e){e.withFocusContext=!1,super._init(e),this.smartField=this.parent,this.proposalChooser=this._createProposalChooser(),this.proposalChooser.on("lookupRowSelected",this._triggerEvent.bind(this)),this.proposalChooser.on("activeFilterSelected",this._triggerEvent.bind(this)),this.smartField.on("remove",this._onRemoveSmartField.bind(this)),this.setLookupResult(e.lookupResult),this.setStatus(e.status)}_createProposalChooser(){let e=this.smartField.browseHierarchy?"TreeProposalChooser":"TableProposalChooser";return x.create(e,{parent:this})}_createLayout(){return new op(this,this.proposalChooser)}_render(){let e=this.smartField.cssClassName()+"-popup";super._render(),this.$container.addClass(e).on("mousedown",this._onContainerMouseDown.bind(this)),this.$container.toggleClass("alternative",this.smartField.fieldStyle===iu.FieldStyle.ALTERNATIVE),this.proposalChooser.render()}setLookupResult(e){this._setProperty("lookupResult",e),this.proposalChooser.setLookupResult(e)}getSelectedLookupRow(){let e=this.proposalChooser.getSelectedLookupRow();return e&&e.enabled?e:null}setStatus(e){this.proposalChooser.setStatus(e)}selectFirstLookupRow(){this.proposalChooser.selectFirstLookupRow()}selectLookupRow(){this.proposalChooser.triggerLookupRowSelected()}delegateKeyEvent(e){e.originalEvent.smartFieldEvent=!0,this.proposalChooser.delegateKeyEvent(e)}_triggerEvent(e){this.trigger(e.type,e)}_onContainerMouseDown(e){return!1}_onRemoveSmartField(e){this.animateRemoval=!1,this.remove()}_isMouseDownOnAnchor(e){return this.field.$field.isOrHas(e.target)||this.field.$icon.isOrHas(e.target)||this.field.$clearIcon&&this.field.$clearIcon.isOrHas(e.target)}_onAnimationEnd(){this.proposalChooser.updateScrollbars()}static hasPopupAnimation(){return Qe.get().supportsCssAnimation()}}class np extends Io{constructor(){super()}_init(e){e.withFocusContext=!1,e.smartField=e.parent,super._init(e),this.setLookupResult(e.lookupResult),this.setStatus(e.status),this.one("close",this._beforeClosePopup.bind(this)),this.smartField.on("propertyChange",this._onPropertyChange.bind(this)),this.addCssClass("smart-field-touch-popup")}_initWidget(e){this._widget=this._createProposalChooser(),this._widget.on("lookupRowSelected",this._triggerEvent.bind(this)),this._widget.on("activeFilterSelected",this._triggerEvent.bind(this))}_createProposalChooser(){let e=this.parent.browseHierarchy?"TreeProposalChooser":"TableProposalChooser";return x.create(e,{parent:this,touch:!0,smartField:this._field})}_fieldOverrides(){let e=super._fieldOverrides();return e.proposalChooser=null,e}_onMouseDownOutside(){this._acceptInput()}delegateKeyEvent(e){e.originalEvent.smartFieldEvent=!0,this._widget.delegateKeyEvent(e)}getSelectedLookupRow(){return this._widget.getSelectedLookupRow()}_triggerEvent(e){this.trigger(e.type,e)}setLookupResult(e){this._widget.setLookupResult(e)}setStatus(e){this._widget.setStatus(e)}clearLookupRows(){this._widget.clearLookupRows()}selectFirstLookupRow(){this._widget.selectFirstLookupRow()}selectLookupRow(){this._widget.triggerLookupRowSelected()}_onPropertyChange(e){"lookupStatus"===e.propertyName&&this._field.setLookupStatus(e.newValue)}_beforeClosePopup(e){this.smartField.acceptInputFromField(this._field)}}class op extends Ro{constructor(e){super(e),this.animating=!1,this.doubleCalcPrefSize=!1}layout(e){let t,i,s=this._htmlProposalChooser();this.animating?this.popup.htmlComp.$comp.oneAnimationEnd((()=>{this.popup.revalidateLayout()})):(super.layout(e),i=this.popup.htmlComp.size(),t=i.subtract(this.popup.htmlComp.insets()),s.setSize(t),this.popup.htmlComp.layouted?this.popup.position():rp.hasPopupAnimation()&&(this.animating=!0,this.popup.htmlComp.$comp.css("visibility","hidden"),this.popup.session.layoutValidator.schedulePostValidateFunction((()=>{this.popup.htmlComp.$comp.css("visibility",""),this.popup.htmlComp.$comp.addClassForAnimation("animate-open"),this.popup.htmlComp.$comp.oneAnimationEnd((()=>{this.animating=!1,this.popup._onAnimationEnd()}))}))))}preferredLayoutSize(e,t){let i,s=this._htmlProposalChooser(),r=pr.offsetBounds(this.popup.smartField.$field);return s?(i=s.prefSize(t),i=i.add(this.popup.htmlComp.insets())):i=new sr(mr.get().formColumnWidth,2*mr.get().formRowHeight),i.width=Math.max(r.width,i.width),i.height=Math.max(15,Math.min(350,i.height)),i.width>this._maxWindowSize()&&(i.width=this._maxWindowSize()),i}_htmlProposalChooser(){let e=this.popup.proposalChooser;return e?e.htmlComp:null}_maxWindowSize(){return this.popup.$container.window().width()-2*this.popup.windowPaddingX}}class lp extends ep{constructor(){super(),this.options,this._$multilineLines}_render(){let e,t;this.addContainer(this.$parent,"smart-field has-icon",new ip(this)),this.addLabel(),this.addFieldContainer(this.$parent.makeDiv("multiline")),t=fr.install(this.$fieldContainer,this.session),t.setLayout(new hp(this)),e=Zd.makeInputOrDiv(this,"multiline-input").on("mousedown",this._onFieldMouseDown.bind(this)).appendTo(this.$fieldContainer),this.touchMode||e.keyup(this._onFieldKeyUp.bind(this)).keydown(this._onFieldKeyDown.bind(this)).on("input",this._onFieldInput.bind(this)),this.addField(e),this._$multilineLines=this.$fieldContainer.appendDiv("multiline-lines").on("click",this._onMultilineLinesClick.bind(this)),this.embedded||this.addMandatoryIndicator(),this.addIcon(),this.addStatus()}_renderEnabled(){super._renderEnabled(),this._$multilineLines.setEnabled(this.enabledComputed)}_onMultilineLinesClick(e){if(this.enabledComputed){this.$field.window(!0).getSelection().toString()||this.$field.focus()}}_renderDisplayText(){super._renderDisplayText();let e=this.additionalLines();e?this._$multilineLines.html(me.formatEncoded(e,"<br/>")):this._$multilineLines.empty()}_getInputBounds(){let e=pr.offsetBounds(this.$fieldContainer),t=pr.offsetBounds(this.$field);return e.height=t.height,e}_renderFocused(){super._renderFocused(),this._$multilineLines.toggleClass("focused",this.focused)}_updateErrorStatusClasses(e,t){super._updateErrorStatusClasses(e,t),this._updateErrorStatusClassesOnElement(this._$multilineLines,e,t)}}class ap extends tp{constructor(){super()}}class hp extends _r{constructor(e){super(),this.smartField=e,this._initDefaults(),this.htmlPropertyChangeHandler=this._onHtmlEnvironmentPropertyChange.bind(this),mr.get().on("propertyChange",this.htmlPropertyChangeHandler),this.smartField.one("remove",(()=>{mr.get().off("propertyChange",this.htmlPropertyChangeHandler)}))}_initDefaults(){this.rowHeight=mr.get().formRowHeight}_onHtmlEnvironmentPropertyChange(){this._initDefaults(),this.smartField.invalidateLayoutTree()}layout(e){let t=fr.get(e),i=e.children(".multiline-input"),s=e.children(".multiline-lines"),r=t.availableSize().subtract(t.insets());i.cssHeight(this.rowHeight),s.cssHeight(r.height-this.rowHeight)}}class dp extends ep{constructor(){super(),this.maxLength=4e3,this.trimText=!0,this.lookupOnAcceptByText=!1}_getValueFromLookupRow(e){return e.text}_getLastSearchText(){return this.value}cssClassName(){return"proposal-field"}_handleEnterKey(e){let t=!!this.popup;this.acceptInput(),this.popup&&this.closePopup(),t&&e.stopPropagation()}_lookupByTextOrAllDone(e){if(!super._handleException(e))return 0===e.lookupRows.length?(this.setLoading(!1),void this._handleEmptyResult()):void super._lookupByTextOrAllDone(e)}_formatValue(e){return x.nvl(e,"")}_validateValue(e){if(Ai.isNullOrUndefined(e))return e;let t=qt.asString(e);return this.trimText&&(t=t.trim()),""===t&&(t=null),t}_ensureValue(e){return qt.asString(e)}_acceptByText(e,t){n().log.isDebugEnabled()&&n().log.debug("(ProposalField#_acceptByText) searchText=",t),!e&&this.lookupOnAcceptByText&&qt.hasText(t)?super._acceptByTextAsync(t):this._customTextAccepted(t)}_acceptByTextDone(e){if(this._userWasTyping=!1,this._extendResult(e),e.uniqueMatch){let t=e.uniqueMatch;if(this._isLookupRowActive(t))return this.setLookupRow(t),void this._inputAccepted()}this._customTextAccepted(e.text)}_checkResetLookupRow(e){return this.lookupRow&&this.lookupRow.text!==e}_checkSearchTextChanged(e){return this._checkDisplayTextChanged(e)}_customTextAccepted(e){this._setLookupRow(null),this._setValue(e),this._inputAccepted(!0,!1)}getValueForSelection(){return this._showSelection()?this.lookupRow.key:null}_acceptLookupRowAndValueFromField(e){this.lookupRow!==e.lookupRow&&this.setLookupRow(e.lookupRow)}_copyValuesFromField(e){this.lookupRow!==e.lookupRow&&this.setLookupRow(e.lookupRow),this.value!==e.value&&this.setValue(e.value)}_acceptInput(e,t,i,s,r){return!r&&this.lookupRow&&this.lookupRow.text===t?(n().log.isDebugEnabled()&&n().log.debug("(ProposalField#_acceptInput) unchanged: text is equals. Close popup"),void this._inputAccepted(!1)):r?(n().log.isDebugEnabled()&&n().log.debug("(ProposalField#_acceptInput) lookup-row selected. Set lookup-row, close popup lookupRow=",r.toString()),this.clearErrorStatus(),this.setLookupRow(r),void this._inputAccepted()):(s?(this.clearErrorStatus(),this._acceptByText(e,t)):this._hasUiError()?this._acceptInputDeferred.resolve():this._inputAccepted(!1),this._acceptInputDeferred.promise())}setTrimText(e){this.setProperty("trimText",e)}_updateEmpty(){this.empty=qt.empty(this.value)}}class up extends tp{constructor(){super(),this._addRemoteProperties(["lookupRows"])}}class cp extends Ad{constructor(){super()}_init(e){super._init(e)}_renderText(){this.htmlEnabled?this.$text.html(this.text):this.$text.textOrNbsp(this.text)}_getStyles(){return this.lookupRow}_decorate(){this.$node&&(super._decorate(),this.$node.toggleClass("inactive",!this.lookupRow.active))}isBrowseLoadIncremental(){return this.proposalChooser.isBrowseLoadIncremental()}loadChildren(){if(this.isBrowseLoadIncremental()){let e=this.lookupRow.key;return this.proposalChooser.smartField.lookupByRec(e)}return n().resolvedDeferred()}hasChildNodes(){return!(!this.isBrowseLoadIncremental()||this.childrenLoaded)||super.hasChildNodes()}}class pp extends Y{constructor(){super(),this.$container=null,this.$status=null,this.activeFilterGroup=null,this.htmlComp=null,this._updateStatusTimeout=null,this.status=null,this.statusVisible=!0,this.touch=!1}_init(e){super._init(e),e.smartField||(this.smartField=this.parent.smartField),this.model=this._createModel()}_createModel(e){throw new Error("_createModel() not implemented")}setLookupResult(e){throw new Error("setLookupResult() not implemented")}selectFirstLookupRow(){throw new Error("selectFirstLookupRow() not implemented")}clearSelection(){throw new Error("clearSelection() not implemented")}clearLookupRows(){throw new Error("clearLookupRows() not implemented")}triggerLookupRowSelected(e){(e=e||this.selectedRow())&&e.enabled&&this.trigger("lookupRowSelected",{lookupRow:e.lookupRow})}selectedRow(){throw new Error("selectedRow() not implemented")}_render(){this.$container=this.$parent.appendDiv("proposal-chooser").toggleClass("touch",this.touch),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new gp(this)),this._renderModel(),this.$status=this.$container.appendDiv("status").setVisible(!1),this.smartField.activeFilterEnabled&&(this.activeFilterGroup=x.create("RadioButtonGroup",{parent:this,labelVisible:!1,statusVisible:!1,gridColumnCount:ep.ACTIVE_FILTER_VALUES.length}),ep.ACTIVE_FILTER_VALUES.forEach((function(e,t){this._insertActiveFilterButton(e,t)}),this),this.activeFilterGroup.render(),this.activeFilterGroup.$container.addClass("active-filter"),this.activeFilterGroup.removeMandatoryIndicator())}_renderModel(){this.model.render(),this.model.$container.setTabbable(!1),this.model.$container.addClass("focused")}_renderProperties(){super._renderProperties(),this._updateStatus()}delegateEvent(e){e.originalEvent.smartFieldEvent=!0,this.model.$container.trigger(e)}delegateKeyEvent(e){this.model.$container.trigger(e)}_renderStatus(){this._updateStatus()}_renderStatusVisible(){this._updateStatus()}_computeStatusVisible(){return!(!this.statusVisible||!this.status)}_updateStatus(){clearTimeout(this._updateStatusTimeout),Ai.optProperty(this.status,"severity")===Ii.Severity.OK?this._updateStatusTimeout=setTimeout(this._updateStatusImpl.bind(this),250):this._updateStatusImpl()}_updateStatusImpl(){if(!this.rendered&&!this.rendering)return;let e=this.$status.isVisible(),t=this.$status.text(),i=this._computeStatusVisible();e===i&&t===Ai.optProperty(this.status,"message")||(n().log.isDebugEnabled()&&n().log.debug("(ProposalChooser#_updateStatusImpl) $status.visible="+i),this.$status.setVisible(i),this.status?this._setStatusMessage(this.status.message):this.$status.text(""),this.htmlComp.invalidateLayoutTree())}_setStatusMessage(e){Ii.animateStatusMessage(this.$status,e)}_insertActiveFilterButton(e,t){let i=x.create("RadioButton",{parent:this.activeFilterGroup,label:this._activeFilterLabel(t),radioValue:ep.ACTIVE_FILTER_VALUES[t],selected:this.smartField.activeFilter===e,focusWhenSelected:!1,gridDataHints:{useUiWidth:!0}});i.on("propertyChange",(e=>{"selected"===e.propertyName&&!0===e.newValue&&this.trigger("activeFilterSelected",{activeFilter:e.source.radioValue})})),this.activeFilterGroup.insertButton(i)}setVirtual(e){this.model instanceof Ka&&this.model.setVirtual(e)}setStatus(e){this.setProperty("status",e)}setBusy(e){this.model.setProperty("loading",e),this.model.setProperty("enabled",!e)}_activeFilterLabel(e){return this.smartField.activeFilterLabels[e]}updateScrollbars(){this.model.updateScrollbars()}_isProposal(){return this.smartField instanceof dp}_selectProposal(e,t){this._isProposal()||(e.byAll?this.trySelectCurrentValue():1===t.length&&this.selectFirstLookupRow())}}class gp extends _r{constructor(e){super(),this._proposalChooser=e,this._typeHandler=this._createTypeHandler(e)}_createTypeHandler(e){let t=e.model.objectType+"LayoutResetter";return x.create(t,e.model)}layout(e){let t,i=fr.get(e),s=fr.get(e.children(this._typeHandler.cssSelector)),r=i.size().subtract(i.insets()),n=this._proposalChooser.$status,o=n&&n.isVisible(),l=this._proposalChooser.activeFilterGroup;o&&(r.height-=pr.size(n).height),l&&(t=l.htmlComp.prefSize(),r.height-=t.height),s.setSize(r),l&&l.htmlComp.setSize(new sr(r.width,t.height))}preferredLayoutSize(e,t){let i,s,r,n,o,l,a,h=this._proposalChooser.htmlComp,d=this._proposalChooser.$status,u=this._proposalChooser.activeFilterGroup,c=e.parent();return r=this._proposalChooser.model.htmlComp.prefSize(t),s=r,Yn.storeScrollPositions(e,this._proposalChooser.session),l=e.css("width"),a=e.css("height"),e.detach(),this._typeHandler.modifyDom(),e.css("display","inline-block").css("width","auto").css("height","auto"),c.append(e),r.width=pr.prefSize(e,{restoreScrollPositions:!1}).width,e.detach(),this._typeHandler.restoreDom(),e.css("display","block").css("width",l).css("height",a),c.append(e),Yn.restoreScrollPositions(e,this._proposalChooser.session),d&&d.isVisible()&&(i=d.css("display"),d.css("display","inline-block"),n=pr.prefSize(d,{includeMargin:!0,useCssSize:!0}),d.css("display",i),s=new sr(Math.max(s.width,n.width),s.height+n.height)),u&&(o=u.htmlComp.prefSize(),s=new sr(Math.max(s.width,o.width),s.height+o.height)),e.toggleClass("empty",0===r.height),s.add(h.insets())}}class mp extends pp{constructor(){super()}_createModel(){let e=!1,t=[],i=this.smartField.columnDescriptors;i?i.forEach((function(i,s){e=e||!!i.text,t.push(this._createColumnForDescriptor(i))}),this):t.push(this._createColumn());let s=this._createTable(t,e);return s.on("rowClick",this._onRowClick.bind(this)),s}_createColumn(){return x.create("Column",{session:this.session,width:Sh.NARROW_MIN_WIDTH,horizontalAlignment:this.smartField.gridData.horizontalAlignment})}_createColumnForDescriptor(e){let t=Sh.NARROW_MIN_WIDTH;return e.width&&e.width>0&&(t=e.width),x.create("Column",{session:this.session,text:e.text,cssClass:x.nvl(e.cssClass,null),width:t,autoOptimizeWidth:x.nvl(e.autoOptimizeWidth,!1),fixedWidth:x.nvl(e.fixedWidth,!1),fixedPosition:x.nvl(e.fixedPosition,!1),horizontalAlignment:x.nvl(e.horizontalAlignment,this.smartField.gridData.horizontalAlignment),visible:x.nvl(e.visible,!0),htmlEnabled:x.nvl(e.htmlEnabled,!1)})}_createTable(e,t){return x.create("Table",{parent:this,headerVisible:t,autoResizeColumns:!0,multiSelect:!1,multilineText:!0,scrollToSelection:!0,columns:e,headerMenusEnabled:!1,textFilterEnabled:!1})}_onRowClick(e){let t=e.row;t&&t.enabled&&(this.setBusy(!0),this.triggerLookupRowSelected(t))}selectedRow(){return this.model.selectedRow()}setLookupResult(e){let t=[],i=e.lookupRows,s=!!this.smartField.columnDescriptors;this.model.deleteAllRows(),i.forEach((function(e){t.push(this._createTableRow(e,s))}),this),this.model.insertRows(t),this._selectProposal(e,t)}trySelectCurrentValue(){let e=this.smartField.getValueForSelection();if(Ai.isNullOrUndefined(e))return;let t=me.find(this.model.rows,(t=>t.lookupRow.key===e));t&&this.model.selectRow(t)}selectFirstLookupRow(){this.model.rows.length&&this.model.selectRow(this.model.rows[0])}clearSelection(){this.model.deselectAll()}clearLookupRows(){this.model.removeAllRows()}_createTableRow(e,t){let i=Sc.createTableRow(e,t);return t&&me.pushAll(i.cells,this._transformTableRowData(e,e.additionalTableRowData)),i}_renderModel(){this.model.setVirtual(this.smartField.virtual()),super._renderModel(),this.model.$data.addClass("top-border-on-first-row")}getSelectedLookupRow(){let e=this.model.selectedRow();return e?e.lookupRow:null}_transformTableRowData(e,t){let i=this.smartField.columnDescriptors,s=[];return i.forEach((i=>{s.push(Sc.createTableCell(e,i,t))})),s}}class _p{constructor(e){this._table=e,this._fillerWidth=null,this.cssSelector=".table"}modifyDom(){this._table.$container.css("display","inline-block").css("width","auto").css("height","auto"),this._table.$data.css("display","inline-block"),this._modifyFiller(this._table.$fillBefore),this._modifyFiller(this._table.$fillAfter),this._modifyTableData(this._cssBackup)}restoreDom(){this._table.$container.css("display","block").css("width","100%").css("height","100%"),this._table.$data.css("display","block"),this._restoreFiller(this._table.$fillBefore),this._restoreFiller(this._table.$fillAfter),this._modifyTableData(this._cssRestore)}_cssBackup(e,t){let i=e.css(t);e.css(t,"").data("backup"+t,i)}_cssRestore(e,t){let i="backup"+t,s=e.data(i);e.css(t,s).removeData(i)}_modifyTableData(e){let t=this;this._table.$rows().each((function(){let i=n()(this);e(i,"width"),t._table.$cellsForRow(i).each((function(){let t=n()(this);e(t,"min-width"),e(t,"max-width")}))}))}_modifyFiller(e){e&&(this._fillerWidth=e.css("width"),e.css("width",""))}_restoreFiller(e){e&&e.css("width",this._fillerWidth)}}class fp extends pp{constructor(){super()}_createModel(){let e=x.create("Tree",{parent:this,requestFocusOnNodeControlMouseDown:!1,scrollToSelection:!0,textFilterEnabled:!1});return e.on("nodeClick",this._onNodeClick.bind(this)),e}_onNodeClick(e){this.triggerLookupRowSelected(e.node)}selectedRow(){return this.model.selectedNode()}isBrowseLoadIncremental(){return this.smartField.browseLoadIncremental}getSelectedLookupRow(){let e=this.model.selectedNode();return e?e.lookupRow:null}selectFirstLookupRow(){this.model.nodes.length&&this.model.selectNode(this.model.nodes[0])}clearSelection(){this.model.deselectAll()}setLookupResult(e){let t,i,s=e.lookupRows;if(x.nvl(e.appendResult,!1))if(i=s.map(this._createTreeNode.bind(this)),t=this._flatListToSubTree(i),t.length){let e=null;t.forEach((t=>{e=this.model.nodesMap[t.parentId],this._appendChildNode(e,t)})),e&&this.model.insertNodes(t,e)}else{let t=this.model.nodesMap[e.rec];t.leaf=!0,t.childrenLoaded=!0,this.model.updateNode(t)}else this.model.deleteAllChildNodes(),i=s.map(this._createTreeNode.bind(this)),t=this._flatListToSubTree(i),e.byText&&this._expandAllParentNodes(i),this.model.insertNodes(t);this._selectProposal(e,i)}_expandAllParentNodes(e){e.reduce(((e,t)=>((t.leaf||!t.childNodesLoaded&&0===t.childNodes.length)&&e.push(t),e)),[]).forEach(function(e){if(!e.parentNode||e.parentNode.expanded)return;e=e.parentNode;for(;e;)this.model.setNodeExpanded(e,!0),e=e.parentNode}.bind(this))}trySelectCurrentValue(){let e=this.smartField.getValueForSelection();if(Ai.isNullOrUndefined(e))return;let t=Ai.values(this.model.nodesMap),i=me.find(t,(t=>t.lookupRow.key===e));i&&this.model.selectNode(i)}_createTreeNode(e){let t=!0,i=this.smartField.browseAutoExpandAll;return this.isBrowseLoadIncremental()&&(i=!1,t=!1),x.create("ProposalTreeNode",{parent:this.model,proposalChooser:this,childNodeIndex:0,enabled:e.enabled,htmlEnabled:!1,iconId:e.iconId,id:e.key,parentId:e.parentKey,expanded:i,initialExpanded:i,text:e.text,lookupRow:e,leaf:t,tooltipText:e.tooltipText})}findLeafs(){let e=[];return Ed.visitNodes(((t,i)=>{!t.leaf&&t.childNodes.length||e.push(t)}),this.model.nodes),e}_flatListToSubTree(e){let t={};e.forEach((e=>{Ai.isNullOrUndefined(e.id)||(t[e.id]=e)}));let i=[];return e.forEach((e=>{let s=t[e.parentId];if(s===e)throw new Error("Cannot link a node to itself. Id: "+e.parentId);s?this._appendChildNode(s,e):(e.childNodeIndex=i.length,e.parentNode=null,i.push(e))})),i}_appendChildNode(e,t){e.childNodes||(e.childNodes=[]),t.childNodeIndex=e.childNodes.length,t.parentNode=e,e.childNodes.push(t),e.leaf=!1,e.childrenLoaded=!0}clearLookupRows(){this.model.deleteAllNodes()}}class bp{constructor(e){this._tree=e,this.cssSelector=".tree"}modifyDom(){this._ensureFirstLast(),this._tree.$container.css("display","inline-block").css("width","auto").css("height","auto"),this._tree.$data.css("display","inline-block")}restoreDom(){this._tree.$container.css("display","block").css("width","100%").css("height","100%"),this._tree.$data.css("display","block")}_ensureFirstLast(){let e=this._tree.$data.children(".tree-node").removeClass("first last");e.first().addClass("first"),e.last().addClass("last")}}function yp(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class wp extends au{constructor(){super(),this._addWidgetProperties(["firstField","secondField","collapsibleField"]),this._addPreserveOnPropertyChangeProperties(["collapsibleField"]),this.firstField=null,this.secondField=null,this.collapsibleField=null,this.collapseKeyStroke=null,this.fieldCollapsed=!1,this.toggleCollapseKeyStroke=null,this.firstCollapseKeyStroke=null,this.secondCollapseKeyStroke=null,this.splitHorizontal=!0,this.splitterEnabled=!0,this.splitterPosition=.5,this.minSplitterPosition=0,this.splitterPositionType=wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST,this.fieldMinimized=!1,this.minimizeEnabled=!0,this._$splitArea=null,this._$splitter=null}_init(e){super._init(e),this._setToggleCollapseKeyStroke(this.toggleCollapseKeyStroke),this._setFirstCollapseKeyStroke(this.firstCollapseKeyStroke),this._setSecondCollapseKeyStroke(this.secondCollapseKeyStroke),this._updateCollapseHandle(),this._initResponsive()}_initResponsive(){this.getFields().forEach((e=>{e instanceof ac&&null===e.responsive&&e.setResponsive(!0)}))}_render(){function e(e){"visible"===e.propertyName&&(this._updateFieldVisibilityClasses(),this.htmlSplitArea.invalidateLayoutTree(!1))}this.addContainer(this.$parent,"split-box"),this._$splitArea=this.$parent.makeDiv("split-area"),this.addField(this._$splitArea),this.htmlSplitArea=fr.install(this._$splitArea,this.session),this.htmlSplitArea.setLayout(new xp(this)),this._$window=this.$parent.window(),this._$body=this.$parent.body(),this.firstField&&(this.firstField.render(this._$splitArea),this.firstField.$container.addClass("first-field").addClass(this.splitHorizontal?"x-axis":"y-axis"),this.firstField.on("propertyChange",e.bind(this)),this.secondField&&(this.secondField.render(this._$splitArea),this.secondField.$container.addClass("second-field").addClass(this.splitHorizontal?"x-axis":"y-axis"),this.secondField.on("propertyChange",e.bind(this)),this._$splitter=this._$splitArea.appendDiv("splitter").addClass(this.splitHorizontal?"x-axis":"y-axis").on("mousedown",function(e){if(1!==e.which)return;let t,i,s,r,o,l;this.splitterEnabled&&(t={x:e.pageX,y:e.pageY},this._$window.on("mousemove.splitbox",d.bind(this)).on("mouseup.splitbox",u.bind(this)),this._$body.addClass(this.splitHorizontal?"col-resize":"row-resize"),n()("iframe").addClass("dragging-in-progress"),i=this._$splitArea.offset(),s=pr.size(this._$splitArea,!0),o=this._$splitter.offset(),r=pr.size(this._$splitter,!0),l=this._$splitArea.appendDiv("temp-splitter").addClass(this.splitHorizontal?"x-axis":"y-axis"),this.splitHorizontal?l.cssLeft(o.left-i.left):l.cssTop(o.top-i.top),this._$splitter.addClass("dragging"));let a=this.splitterPosition,h=10;function d(e){if(e.pageX!==t.x||e.pageY!==t.y)if(t={x:e.pageX,y:e.pageY},this.splitHorizontal){let t,n,o=e.pageX-i.left,d=Math.floor((r.width+mr.get().fieldMandatoryIndicatorWidth)/2);this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_FIRST?(t=x.nvl(this.minSplitterPosition,0),n=s.width-r.width+d):this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST?(t=(s.width-r.width)*x.nvl(this.minSplitterPosition,0),n=s.width-r.width+d):this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_SECOND?(t=0,n=s.width-r.width+d-x.nvl(this.minSplitterPosition,0)):this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_SECOND&&(t=0,n=s.width-r.width+d-Math.floor(x.nvl(this.minSplitterPosition,0)*(s.width-r.width)));let u=d;o<t+d+h?(o=t,u=0):o>n-h&&(o=n),l.cssLeft(o-u),a=o-u,this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST?a/=s.width-r.width:this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_SECOND?a=1-a/(s.width-r.width):this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_SECOND&&(a=s.width-r.width-a)}else{let t=e.pageY-i.top,n=Math.floor(r.height/2);t<h?(t=0,n=0):s.height-t<h&&(t=s.height,n=r.height),l.cssTop(t-n),a=t-n,this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST?a/=s.height-r.height:this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_SECOND?a=1-a/(s.height-r.height):this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_SECOND&&(a=s.height-a-r.height)}}function u(e){1===e.which&&(this._$window.off("mousemove.splitbox").off("mouseup.splitbox"),l&&(this._$body.removeClass(this.splitHorizontal?"col-resize":"row-resize"),n()("iframe").removeClass("dragging-in-progress"),l.remove(),this._$splitter.removeClass("dragging"),this.newSplitterPosition(a,!0)))}return!1}.bind(this)))),this._updateFieldVisibilityClasses()}_renderProperties(){super._renderProperties(),this._renderSplitterPosition(),this._renderSplitterEnabled(),this._renderCollapsibleField(),this._renderCollapseHandle(),this._renderFieldMinimized()}_remove(){this._$splitArea=null,this._$splitter=null,super._remove()}_setSplitterPosition(e){this._setProperty("splitterPosition",e),this._oldSplitterPositionType=null}_renderSplitterPosition(){this.newSplitterPosition(this.splitterPosition,!1)}_setSplitterPositionType(e){this.rendered&&!this._oldSplitterPositionType&&(this._oldSplitterPositionType=this.splitterPositionType),this._setProperty("splitterPositionType",e)}_renderSplitterPositionType(){if(this._oldSplitterPositionType){let e=this.htmlSplitArea.size(),t=this.splitterPosition,i=pr.size(this._$splitter,!0),s=this.minSplitterPosition,r=0;r=this.splitHorizontal?e.width-i.width:e.height-i.height;let n=this._isSplitterPositionTypeRelative(this._oldSplitterPositionType),o=this._isSplitterPositionTypeRelative(this.splitterPositionType),l=!n,a=!o;n&&a?(this._oldSplitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST&&this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_SECOND||this._oldSplitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_SECOND&&this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_FIRST?t=r-r*t:t*=r,s&&(s*=r)):l&&o?(this._oldSplitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_FIRST&&this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_SECOND||this._oldSplitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_SECOND&&this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST?t=(r-t)/r:t/=r,s&&(s/=r)):t=l&&a?r-t:1-t,this.setMinSplitterPosition(s),this._oldSplitterPositionType=null,this.newSplitterPosition(t,!0)}}_isSplitterPositionTypeRelative(e){return e===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST||e===wp.SPLITTER_POSITION_TYPE_RELATIVE_SECOND}_renderSplitterEnabled(){this._$splitter&&this._$splitter.setEnabled(this.splitterEnabled)}setFieldCollapsed(e){this.setProperty("fieldCollapsed",e),this._updateCollapseHandleButtons()}_renderFieldCollapsed(){this._renderCollapsibleField()}setCollapsibleField(e){this.setProperty("collapsibleField",e),this._updateCollapseHandle()}_updateCollapseHandle(){if(this.toggleCollapseKeyStroke&&this.unregisterKeyStrokes(this.toggleCollapseKeyStroke),this.firstCollapseKeyStroke&&this.unregisterKeyStrokes(this.firstCollapseKeyStroke),this.secondCollapseKeyStroke&&this.unregisterKeyStrokes(this.secondCollapseKeyStroke),this.collapsibleField){let e=mn.HorizontalAlignment.LEFT;this.collapsibleField!==this.firstField&&(e=mn.HorizontalAlignment.RIGHT),this._collapseHandle?this._collapseHandle.setHorizontalAlignment(e):(this._collapseHandle=x.create("CollapseHandle",{parent:this,horizontalAlignment:e}),this._collapseHandle.on("action",this.collapseHandleButtonPressed.bind(this)),this.toggleCollapseKeyStroke&&this.registerKeyStrokes(this.toggleCollapseKeyStroke),this.firstCollapseKeyStroke&&this.registerKeyStrokes(this.firstCollapseKeyStroke),this.secondCollapseKeyStroke&&this.registerKeyStrokes(this.secondCollapseKeyStroke),this.rendered&&this._renderCollapseHandle()),this._updateCollapseHandleButtons()}else this._collapseHandle&&(this._collapseHandle.destroy(),this._collapseHandle=null)}_updateCollapseHandleButtons(){if(!this._collapseHandle)return;let e,t,i=this.fieldCollapsed,s=this.fieldMinimized,r=this._isMinimizable(),n=this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST||this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_FIRST,o=n&&this.collapsibleField===this.secondField||!n&&this.collapsibleField===this.firstField;n?o?(e=!s&&r||i,t=!i):(e=!i,t=i||s&&r):o?(e=!i,t=!s&&r||i):(e=i||s&&r,t=!i),this._collapseHandle.setLeftVisible(e),this._collapseHandle.setRightVisible(t),this.firstCollapseKeyStroke&&(e?this.registerKeyStrokes(this.firstCollapseKeyStroke):this.unregisterKeyStrokes(this.firstCollapseKeyStroke)),this.secondCollapseKeyStroke&&(t?this.registerKeyStrokes(this.secondCollapseKeyStroke):this.unregisterKeyStrokes(this.secondCollapseKeyStroke))}getEffectiveSplitterPosition(){return this._isMinimizable()&&this.fieldMinimized?this.minSplitterPosition:this.splitterPosition}setMinSplitterPosition(e){this.setProperty("minSplitterPosition",e),this._updateCollapseHandleButtons()}_renderMinSplitterPosition(){this.rendered&&this.htmlSplitArea.invalidateLayoutTree(!1)}setFieldMinimized(e){this.setProperty("fieldMinimized",e),this._updateCollapseHandleButtons()}_renderFieldMinimized(){this.$container.removeClass("first-field-minimized second-field-minimized"),this.firstField&&this.firstField.$container.removeClass("minimized"),this.secondField&&this.secondField.$container.removeClass("minimized"),this.collapsibleField&&this.fieldMinimized&&(this.collapsibleField.$container.addClass("minimized"),this.$container.toggleClass("first-field-minimized",this.firstField===this.collapsibleField),this.$container.toggleClass("second-field-minimized",this.secondField===this.collapsibleField)),this.rendered&&this.htmlSplitArea.invalidateLayoutTree(!1)}setMinimizeEnabled(e){this.setProperty("minimizeEnabled",e),this._isMinimizable()&&this._isSplitterPositionInMinimalRange(this.splitterPosition)&&this.setFieldMinimized(!0),this._updateCollapseHandleButtons()}_renderMinimizeEnabled(){this.rendered&&this.htmlSplitArea.invalidateLayoutTree(!1)}_isMinimizable(){return!!this.minSplitterPosition&&this.minimizeEnabled}_renderCollapsibleField(){this.$container.removeClass("first-field-collapsed second-field-collapsed"),this.firstField&&this.firstField.$container.removeClass("collapsed"),this.secondField&&this.secondField.$container.removeClass("collapsed"),this.collapsibleField&&this.fieldCollapsed&&(this.collapsibleField.$container.addClass("collapsed"),this.$container.toggleClass("first-field-collapsed",this.firstField===this.collapsibleField),this.$container.toggleClass("second-field-collapsed",this.secondField===this.collapsibleField)),this.rendered&&this.htmlSplitArea.invalidateLayoutTree(!1)}_setToggleCollapseKeyStroke(e){e&&(this.toggleCollapseKeyStroke instanceof U&&this.unregisterKeyStrokes(this.collapseKeyStroke),this.toggleCollapseKeyStroke=new vp(this,e),this._collapseHandle&&this.registerKeyStrokes(this.toggleCollapseKeyStroke))}_setFirstCollapseKeyStroke(e){e&&(this.firstCollapseKeyStroke instanceof U&&this.unregisterKeyStrokes(this.firstCollapseKeyStroke),this.firstCollapseKeyStroke=new Tp(this,e),this._collapseHandle&&this.registerKeyStrokes(this.firstCollapseKeyStroke))}_setSecondCollapseKeyStroke(e){e&&(this.secondCollapseKeyStroke instanceof U&&this.unregisterKeyStrokes(this.secondCollapseKeyStroke),this.secondCollapseKeyStroke=new Sp(this,e),this._collapseHandle&&this.registerKeyStrokes(this.secondCollapseKeyStroke))}_renderCollapseHandle(){this._collapseHandle&&this._collapseHandle.render()}newSplitterPosition(e,t){if(e=this._isSplitterPositionTypeRelative(this.splitterPositionType)?Math.max(0,Math.min(1,e)):Math.max(0,e),this._isMinimizable()&&this._isSplitterPositionInMinimalRange(e))return void this.setFieldMinimized(!0);let i=this.splitterPosition!==e;this.splitterPosition=e,i&&(this.trigger("positionChange",{position:e}),t&&this._updateFieldMinimized()),this._updateCollapseHandleButtons(),this.htmlSplitArea.invalidateLayoutTree(!1)}_updateFieldMinimized(){this._isMinimizable()?this.setFieldMinimized(this._isSplitterPositionInMinimalRange(this.splitterPosition)):this.setFieldMinimized(!1)}_isSplitterPositionInMinimalRange(e){return!!this._isMinimizable()&&e<=this.minSplitterPosition}toggleFieldCollapsed(){this.setFieldCollapsed(!this.fieldCollapsed)}collapseHandleButtonPressed(e){let t=this.fieldCollapsed,i=this.fieldMinimized,s=this._isMinimizable(),r=this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST||this.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_FIRST,n=!!e.left&&!r||!!e.right&&r;r&&this.collapsibleField===this.secondField||!r&&this.collapsibleField===this.firstField?n?t||(i&&s?this.setFieldMinimized(!1):this.setFieldCollapsed(!0)):t?this.setFieldCollapsed(!1):i||s&&this.setFieldMinimized(!0):n?t?this.setFieldCollapsed(!1):i&&this.setFieldMinimized(!1):t||(i||!s?this.setFieldCollapsed(!0):this.setFieldMinimized(!0))}getFields(){let e=[];return this.firstField&&e.push(this.firstField),this.secondField&&e.push(this.secondField),e}_updateFieldVisibilityClasses(){if(!this.rendered&&!this.rendering)return;let e=this.firstField&&this.firstField.isVisible(),t=this.secondField&&this.secondField.isVisible(),i=!(e&&t)&&(e||t);this.$container.toggleClass("single-field",i)}}yp(wp,"SPLITTER_POSITION_TYPE_RELATIVE_FIRST","relativeFirst"),yp(wp,"SPLITTER_POSITION_TYPE_RELATIVE_SECOND","relativeSecond"),yp(wp,"SPLITTER_POSITION_TYPE_ABSOLUTE_FIRST","absoluteFirst"),yp(wp,"SPLITTER_POSITION_TYPE_ABSOLUTE_SECOND","absoluteSecond");class Cp extends hu{constructor(){super(),this._addRemoteProperties(["collapsibleField","fieldCollapsed","minSplitterPosition","fieldMinimized"])}_onWidgetPositionChange(e){this._send("setSplitterPosition",{splitterPosition:e.position})}_onWidgetEvent(e){"positionChange"===e.type?this._onWidgetPositionChange(e):super._onWidgetEvent(e)}}class vp extends U{constructor(e,t){super(),this.field=e,this.parseAndSetKeyStroke(t),this.inheritAccessibility=!1}handle(e){this.field.toggleFieldCollapsed()}_postRenderKeyBox(e,t){let i,s=this.field._collapseHandle.$container;t.addClass("split-box-collapse-key-box"),i=s.offsetTo(this.field.$container),t.cssLeft(i.left-t.outerWidth()).cssTop(i.top)}}class Tp extends U{constructor(e,t){super(),this.field=e,this.parseAndSetKeyStroke(t),this.inheritAccessibility=!1}handle(e){this.field.collapseHandleButtonPressed({left:!0})}_postRenderKeyBox(e,t){let i,s=this.field._collapseHandle.$container;t.addClass("split-box-collapse-key-box left"),i=s.offsetTo(this.field.$container),t.cssLeft(i.left-t.outerWidth()).cssTop(i.top)}}class Sp extends U{constructor(e,t){super(),this.field=e,this.parseAndSetKeyStroke(t),this.inheritAccessibility=!1}handle(e){this.field.collapseHandleButtonPressed({right:!0})}_postRenderKeyBox(e,t){let i,s=this.field._collapseHandle.$container;t.addClass("split-box-collapse-key-box right"),i=s.offsetTo(this.field.$container),t.cssLeft(i.left+s.width()-t.outerWidth()).cssTop(i.top-t.outerHeight())}}class xp extends _r{constructor(e){super(),this.splitBox=e}layout(e){let t=fr.get(e),i=e.children(".splitter"),s=e.children(".form-field"),r=fr.optGet(s.eq(0)),n=fr.optGet(s.eq(1)),o=this.splitBox.splitHorizontal;i.removeClass("hidden");let l,a,h,d,u=t.availableSize().subtract(t.insets()),c=r&&r.isVisible(),p=n&&n.isVisible(),g=c&&p,m=!g&&(c||p),_=this.splitBox.getEffectiveSplitterPosition(),f=new sr(u);if(g&&(o?f.width-=r.margins().right:f.height-=r.margins().bottom),g)l=new sr(f),a=new sr(f),this.computeInnerFieldsDimensions(o,l,a,_),h=new or(0,0,l.width,l.height),d=new or(0,0,a.width,a.height),o?(i.cssLeft(h.width),d.x=h.width+r.margins().right):(i.cssTop(h.height),d.y=h.height+r.margins().bottom),r.setBounds(h),n.setBounds(d);else{if(m){let e=c?r:n,t=u.subtract(e.margins());e.setBounds(new or(0,0,t.width,t.height))}i.addClass("hidden")}if(this.splitBox._collapseHandle){let e=this.splitBox._collapseHandle.$container,t=this.splitBox.firstField&&this.splitBox.firstField.visible&&this.splitBox.secondField&&this.splitBox.secondField.visible;e.setVisible(t);let i=null;if(g&&this.splitBox.collapsibleField===this.splitBox.firstField){let t=pr.size(e);i=h.width-t.width}e.cssLeft(i)}}preferredLayoutSize(e,t){let i=fr.get(e),s=e.children(".form-field"),r=fr.optGet(s.eq(0)),o=fr.optGet(s.eq(1)),l=this.splitBox.splitHorizontal,a=this.splitBox.getEffectiveSplitterPosition(),h=n().extend({},t),d=n().extend({},t);if(t.widthHint){let e=new sr(t.widthHint,0),i=new sr(t.widthHint,0);this.computeInnerFieldsDimensions(l,e,i,a),h.widthHint=e.width,d.widthHint=i.width}let u=new sr(0,0);r&&(u=r.prefSize(h).add(r.margins()));let c,p=new sr(0,0);return o&&(p=o.prefSize(d).add(o.margins())),c=l?new sr(u.width+p.width,Math.max(u.height,p.height)):new sr(Math.max(u.width,p.width),u.height+p.height),c=c.add(i.insets()),c}computeInnerFieldsDimensions(e,t,i,s){e?this.splitBox.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST?(t.width=Math.floor(t.width*s),i.width-=t.width):this.splitBox.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_SECOND?(i.width=Math.floor(i.width*s),t.width-=i.width):(s=Math.min(s,t.width),this.splitBox.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_SECOND?(t.width=t.width-s,i.width=s):(t.width=s,i.width=i.width-s)):this.splitBox.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_FIRST?(t.height=Math.floor(t.height*s),i.height-=t.height):this.splitBox.splitterPositionType===wp.SPLITTER_POSITION_TYPE_RELATIVE_SECOND?(i.height=Math.floor(i.height*s),t.height-=i.height):(s=Math.min(s,t.height),this.splitBox.splitterPositionType===wp.SPLITTER_POSITION_TYPE_ABSOLUTE_SECOND?(t.height=t.height-s,i.height=s):(t.height=s,i.height=i.height-s))}}function Pp(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Fp extends cu{constructor(){super(),this.format,this.hasAction=!1,this.inputMasked=!1,this.inputObfuscated=!1,this.maxLength=4e3,this.maxLengthHandler=x.create("MaxLengthHandler",{target:this}),this.multilineText=!1,this.selectionStart=0,this.selectionEnd=0,this.selectionTrackingEnabled=!1,this.spellCheckEnabled=!1,this.trimText=!0,this.wrapText=!1,this._onSelectionChangingActionHandler=this._onSelectionChangingAction.bind(this)}_initValue(e){e=mo.resolveText(e,this.session.locale.languageTag),super._initValue(e)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new Ap(this),new $p(this)])}_createKeyStrokeContext(){return new Qr}_init(e){super._init(e),this._setMultilineText(this.multilineText)}_render(){let e;this.addContainer(this.$parent,"string-field",new Ep(this)),this.addLabel(),this.addMandatoryIndicator(),this.multilineText?(e=this._makeMultilineField(),this.$container.addClass("multiline")):e=Zd.makeTextField(this.$parent),this.addField(e),this.maxLengthHandler.install(e),this.addStatus()}_makeMultilineField(){let e=function(){this.mouseClicked=!0}.bind(this);return this.$parent.makeElement("<textarea>").on("DOMMouseScroll mousewheel",this._onMouseWheel.bind(this)).on("mousedown",e).on("focus",(t=>{this.$field.off("mousedown",e),this.mouseClicked||setTimeout((()=>{this.rendered&&!this.session.focusManager.isElementCovertByGlassPane(this.$field)&&(this._renderSelectionStart(),this._renderSelectionEnd())})),this.mouseClicked=!1})).on("focusout",(()=>{this.$field.on("mousedown",e)})).addDeviceClass()}_onFieldBlur(){super._onFieldBlur(),this.multilineText&&this._updateSelection(),this.inputObfuscated&&this.$field.val(this.displayText)}_onMouseWheel(e){let t=(e=e.originalEvent||this.$container.window(!0).event.originalEvent).wheelDelta?-e.wheelDelta:e.detail,i=this.$field[0].scrollTop;if(t<0&&0===i)return;let s=this.$field[0].scrollHeight-this.$field[0].clientHeight;t>0&&i>=s-1?this.$field[0].scrollTop=s:e.stopPropagation()}_renderProperties(){super._renderProperties(),this._renderInputMasked(),this._renderWrapText(),this._renderFormat(),this._renderSpellCheckEnabled(),this._renderHasAction(),this._renderMaxLength(),this._renderSelectionTrackingEnabled(),this._renderDropType()}addIcon(){this.$icon=Zd.appendIcon(this.$container).on("click",this._onIconClick.bind(this))}isClearable(){return super.isClearable()&&!this.multilineText}setSelectionStart(e){this.setProperty("selectionStart",e)}_renderSelectionStart(){null!==x.nvl(this.selectionStart,null)&&(this.$field[0].selectionStart=this.selectionStart)}setSelectionEnd(e){this.setProperty("selectionEnd",e)}_renderSelectionEnd(){null!==x.nvl(this.selectionEnd,null)&&(this.$field[0].selectionEnd=this.selectionEnd)}setSelectionTrackingEnabled(e){this.setProperty("selectionTrackingEnabled",e)}_renderSelectionTrackingEnabled(){this.$field.off("select",this._onSelectionChangingActionHandler).off("mousedown",this._onSelectionChangingActionHandler).off("keydown",this._onSelectionChangingActionHandler).off("input",this._onSelectionChangingActionHandler),this.selectionTrackingEnabled&&this.$field.on("select",this._onSelectionChangingActionHandler).on("mousedown",this._onSelectionChangingActionHandler).on("keydown",this._onSelectionChangingActionHandler).on("input",this._onSelectionChangingActionHandler)}setInputMasked(e){this.setProperty("inputMasked",e)}_renderInputMasked(){this.multilineText||this.$field.attr("type",this.inputMasked?"password":"text")}_renderInputObfuscated(){this.inputObfuscated&&this.focused&&this.$field.val("")}setHasAction(e){this.setProperty("hasAction",e)}_renderHasAction(){this.hasAction?(this.$icon||(this.addIcon(),this.$icon.addClass("action")),this.$container.addClass("has-icon")):(this._removeIcon(),this.$container.removeClass("has-icon")),this.revalidateLayout()}_renderEnabled(){super._renderEnabled(),this.revalidateLayout()}setFormatUpper(e){e?this.setFormat(Fp.Format.UPPER):this.setFormat(null)}setFormatLower(e){e?this.setFormat(Fp.Format.LOWER):this.setFormat(null)}setFormat(e){this.setProperty("format",e)}_renderFormat(){this.format===Fp.Format.LOWER?this.$field.css("text-transform","lowercase"):this.format===Fp.Format.UPPER?this.$field.css("text-transform","uppercase"):this.$field.css("text-transform","")}setSpellCheckEnabled(e){this.setProperty("spellCheckEnabled",e)}_renderSpellCheckEnabled(){this.spellCheckEnabled?this.$field.attr("spellcheck","true"):this.$field.attr("spellcheck","false")}_renderDisplayText(){if(this.inputObfuscated&&this.focused)return void this.$field.val("");let e=qt.nvl(this.displayText),t=qt.nvl(this.$field.val()),i=this._getSelection();if(super._renderDisplayText(),this.trimText&&t!==e){let s=t.match(Fp.TRIM_REGEXP);s&&s[2]===e&&this._setSelection({start:Math.max(i.start-s[1].length,0),end:Math.min(i.end-s[1].length,e.length)})}}insertText(e){this.rendered?this._insertText(e):this._postRenderActions.push(this.insertText.bind(this,e))}_insertText(e){if(!e)return;let t=this._getSelection(),i=this._applyTextToSelection(this.$field.val(),e,t);i.length>this.maxLength?this._showNotification("ui.CannotInsertTextTooLong"):(this.$field.val(i),this._setSelection(t.start+e.length),this.updateDisplayTextOnModify&&this.acceptInput(!0),this.acceptInput())}_applyTextToSelection(e,t,i){return this.inputObfuscated&&(e=""),e.slice(0,i.start)+t+e.slice(i.end)}setWrapText(e){this.setProperty("wrapText",e)}_renderWrapText(){this.$field.attr("wrap",this.wrapText?"soft":"off")}setTrimText(e){this.setProperty("trimText",e)}_renderTrimText(){}_setMultilineText(e){this._setProperty("multilineText",e),this.keyStrokeContext.setMultiline(this.multilineText)}_renderGridData(){super._renderGridData(),this.updateInnerAlignment({useHorizontalAlignment:!this.multilineText})}_renderGridDataHints(){super._renderGridDataHints(),this.updateInnerAlignment({useHorizontalAlignment:!0})}setMaxLength(e){this.setProperty("maxLength",e)}_renderMaxLength(){this.maxLengthHandler.render()}_onIconClick(e){this.acceptInput(),this.$field.focus(),this.trigger("action")}_onSelectionChangingAction(e){"mousedown"===e.type?this.$field.window().one("mouseup.stringfield",(()=>{setTimeout(this._updateSelection.bind(this))})):"keydown"===e.type?setTimeout(this._updateSelection.bind(this)):this._updateSelection()}_getSelection(){let e=x.nvl(this.$field[0].selectionStart,null),t=x.nvl(this.$field[0].selectionEnd,null);return null!==e&&null!==t||(e=0,t=0),{start:e,end:t}}_setSelection(e,t){"number"==typeof e?t=x.nvl(t,e):"object"==typeof e&&(t=e.end,e=e.start),this.$field[0].selectionStart=e,this.$field[0].selectionEnd=t,this._updateSelection()}_updateSelection(){let e=this.selectionStart,t=this.selectionEnd;if(this.selectionStart=this.$field[0].selectionStart,this.selectionEnd=this.$field[0].selectionEnd,this.selectionTrackingEnabled){(this.selectionStart!==e||this.selectionEnd!==t)&&this.triggerSelectionChange()}}triggerSelectionChange(){this.trigger("selectionChange",{selectionStart:this.selectionStart,selectionEnd:this.selectionEnd})}_validateValue(e){return Ai.isNullOrUndefined(e)?e:(e=qt.asString(e),this.trimText&&(e=e.trim()),super._validateValue(e))}_clear(){super._clear(),this.inputObfuscated=!1}_updateEmpty(){this.empty=qt.empty(this.value)}acceptInput(e){let t=x.nvl(this._readDisplayText(),"");this.inputObfuscated&&""!==t&&(this.inputObfuscated=!1),super.acceptInput(e)}_onFieldFocus(e){super._onFieldFocus(e),this.inputObfuscated&&(this.$field.val(""),setTimeout((()=>{if(!this.rendered)return;let e=this.$field[0];e.selectionStart=0,e.selectionEnd=0})))}_showNotification(e){x.create("DesktopNotification",{parent:this,severity:Ii.Severity.WARNING,message:this.session.text(e)}).show()}_checkDisplayTextChanged(e,t){let i=super._checkDisplayTextChanged(e,t);return(!i||!this.inputObfuscated||""!==e)&&i}}Pp(Fp,"Format",{LOWER:"a",UPPER:"A"}),Pp(Fp,"TRIM_REGEXP",new RegExp("^(\\s*)(.*?)(\\s*)$"));class Ep extends ru{constructor(e){super(e)}_layoutClearIcon(e,t,i,s){e.$icon&&e.$icon.isVisible()&&(i+=pr.prefSize(e.$icon,!0).width),super._layoutClearIcon(e,t,i,s)}}class Dp extends pu{constructor(){super()}_initProperties(e){void 0!==e.insertText&&delete e.insertText}_syncInsertText(e){this.widget.insertText(e)}_onWidgetSelectionChange(e){this._send("selectionChange",{selectionStart:e.selectionStart,selectionEnd:e.selectionEnd},{showBusyIndicator:!1,delay:500,coalesce:function(e){return this.target===e.target&&this.type===e.type}})}_onWidgetAction(e){this._send("action")}_onWidgetEvent(e){"selectionChange"===e.type?this._onWidgetSelectionChange(e):"action"===e.type?this._onWidgetAction(e):super._onWidgetEvent(e)}}class Ap extends U{constructor(e){super(),this.field=e,this.which=[Kr.ENTER],this.renderingHints.render=!1,this.preventDefault=!1}_applyPropagationFlags(e){super._applyPropagationFlags(e);let t=this.field.$container.activeElement(!0);this.preventInvokeAcceptInputOnActiveValueField=!e.isPropagationStopped()&&"textarea"===t.tagName.toLowerCase(),this.preventInvokeAcceptInputOnActiveValueField&&e.stopPropagation()}handle(e){}}class $p extends U{constructor(e){super(),this.field=e,this.which=[Kr.ENTER],this.ctrl=!0}_accept(e){return super._accept(e)&&this.field.hasAction}handle(e){this.field._onIconClick()}}class Rp extends au{constructor(){super(),this.gridDataHints.useUiHeight=!0,this.gridDataHints.w=iu.FULL_WIDTH,this.selectedTab=null,this.tabItems=[],this.tabAreaStyle=Np.DisplayStyle.DEFAULT,this._$tabContent=null,this._statusPositionOrig=null,this._addWidgetProperties(["tabItems","selectedTab"]),this._addPreserveOnPropertyChangeProperties(["selectedTab"]),this._tabBoxHeaderPropertyChangeHander=this._onTabBoxHeaderPropertyChange.bind(this)}_init(e){super._init(e),this.header=x.create("TabBoxHeader",{parent:this,tabBox:this}),this._initProperties(e),this.header.on("propertyChange",this._tabBoxHeaderPropertyChangeHander)}_initProperties(e){this._setTabItems(this.tabItems),this._setSelectedTab(this.selectedTab),this._setTabAreaStyle(this.tabAreaStyle)}_destroy(){super._destroy(),this.header.off("propertyChange",this._tabBoxHeaderPropertyChangeHander)}_render(){this.addContainer(this.$parent,"tab-box",new Vp(this)),this.header.render(this.$container),this.addStatus(),this._$tabContent=this.$container.appendDiv("tab-content"),fr.install(this._$tabContent,this.session).setLayout(new Or)}_renderProperties(){super._renderProperties(),this._renderSelectedTab()}_remove(){super._remove(),this._removeSelectedTab()}getContextMenuItems(){return[]}_removeMenus(){}deleteTabItem(e){let t=this.tabItems.indexOf(e),i=this.tabItems.slice();t>=0&&(i.splice(t,1),this.setTabItems(i))}insertTabItem(e,t){if(!e)return;t=x.nvl(t,this.tabItems.length);let i=this.tabItems.slice();i.splice(t,0,e),this.setTabItems(i)}setTabItems(e){this.setProperty("tabItems",e)}_setTabItems(e){e=e||[],(this.tabItems||[]).filter((t=>e.indexOf(t)<0)).forEach((e=>{e.remove()})),this._setProperty("tabItems",e),this.header.setTabItems(this.tabItems),this.tabItems.indexOf(this.selectedTab)<0&&this.setSelectedTab(this.tabItems[0])}_renderTabItems(e){}_removeTabItems(e){}_removeTabContent(){this.tabItems.forEach((e=>{e.remove()}),this)}selectTabById(e){let t=this.getTabItem(e);if(!t)throw new Error("Tab with ID '"+e+"' does not exist");this.setSelectedTab(t)}setSelectedTab(e){this.setProperty("selectedTab",e)}_setSelectedTab(e){n().log.isDebugEnabled()&&n().log.debug("(TabBox#_selectTab) tab="+e),this.selectedTab&&this.selectedTab.rendered&&this.selectedTab.remove(),this._setProperty("selectedTab",e),this.header.setSelectedTabItem(this.selectedTab)}_renderSelectedTab(){this.selectedTab&&(this.selectedTab.render(this._$tabContent),this.selectedTab.get$Scrollable().data("scroll-shadow-customizer",this._updateScrollShadow.bind(this))),this.rendered&&(this._updateScrollShadow(),fr.get(this._$tabContent).invalidateLayoutTree())}_removeSelectedTab(){this.selectedTab&&(this.selectedTab.get$Scrollable().removeData("scroll-shadow-customizer"),this.selectedTab.remove())}_updateScrollShadow(){if(!this.rendered)return;let e=this.selectedTab&&this.selectedTab.hasScrollShadow("top"),t=this.$container.hasClass("has-scroll-shadow-top");this.$container.toggleClass("has-scroll-shadow-top",e),t!==e&&this.invalidateLayoutTree(!1),Zd.adjustStatusPositionForScrollShadow(this,(()=>e&&this.labelVisible))}setTabAreaStyle(e){this.setProperty("tabAreaStyle",e)}_setTabAreaStyle(e){this.tabAreaStyle=e,this.header&&this.header.tabArea&&this.header.tabArea.setDisplayStyle(e)}_renderStatusPosition(){super._renderStatusPosition(),this.fieldStatus&&(this.statusPosition===iu.StatusPosition.TOP?this.$status.appendTo(this.header.$container):this.$status.appendTo(this.$container),this.invalidateLayoutTree())}_updateFieldStatus(){super._updateFieldStatus(),this.selectedTab&&this.selectedTab.notification&&this.selectedTab.invalidateLayoutTree()}_renderLabelVisible(){super._renderLabelVisible(),this._updateScrollShadow()}getFields(){return this.tabItems}getTabItem(e){return me.find(this.tabItems,(t=>t.id===e))}focus(){return this.rendered?this.selectedTab?this.selectedTab.focus():void 0:(this.session.layoutValidator.schedulePostValidateFunction(this.focus.bind(this)),!1)}getFocusableElement(){return this.selectedTab?this.selectedTab.getFocusableElement():null}isTabItemFocused(e){return this.header.isTabItemFocused(e)}focusTabItem(e){this.selectedTab!==e&&this.selectTab(e),this.header.focusTabItem(e)}getTabForItem(e){return this.header.getTabForItem(e)}_onTabBoxHeaderPropertyChange(e){"selectedTabItem"===e.propertyName&&this.setSelectedTab(e.newValue)}}class Mp extends U{constructor(e){super(),this.field=e,this.which=[Kr.LEFT],this.renderingHints.render=!1,this.stopPropagation=!0,this.keyStrokeMode=U.Mode.DOWN,this.inheritAccessibility=!1}handle(e){this.field.selectPreviousTab(!0),this.field.selectedTab.$container.addClass("keyboard-navigation")}}class kp extends U{constructor(e){super(),this.field=e,this.which=[Kr.RIGHT],this.renderingHints.render=!1,this.stopPropagation=!0,this.keyStrokeMode=U.Mode.DOWN,this.inheritAccessibility=!1}handle(e){this.field.selectNextTab(!0),this.field.selectedTab.$container.addClass("keyboard-navigation")}}class Ip extends hu{constructor(){super(),this._addRemoteProperties(["selectedTab"])}exportAdapterData(e){return delete(e=super.exportAdapterData(e)).selectedTab,e}}class Lp extends _r{constructor(e){super(),this.tabBoxHeader=e,this._initDefaults(),this.htmlPropertyChangeHandler=this._onHtmlEnvironmentPropertyChange.bind(this),mr.get().on("propertyChange",this.htmlPropertyChangeHandler),this.tabBoxHeader.one("remove",(()=>{mr.get().off("propertyChange",this.htmlPropertyChangeHandler)}))}_initDefaults(){this.fieldStatusWidth=mr.get().fieldStatusWidth}_onHtmlEnvironmentPropertyChange(){this._initDefaults(),this.tabBoxHeader.invalidateLayoutTree()}layout(e){let t,i,s=fr.get(e),r=this.tabBoxHeader.tabArea,n=r.htmlComp.margins(),o=this.tabBoxHeader.menuBar,l=o.htmlComp.margins(),a=this.tabBoxHeader.tabBox.$status,h=new sr,d=s.insets(),u=s.availableSize({exact:!0}).subtract(s.insets());i=o.htmlComp.prefSize({widthHint:0}),this.tabBoxHeader.tabBox.statusPosition===iu.StatusPosition.TOP&&a&&a.isVisible()&&(h.height=a.outerHeight(!0),h.width=this.fieldStatusWidth+pr.margins(a).horizontal()),t=r.htmlComp.prefSize({widthHint:u.width-i.width-l.horizontal()-h.width,exact:!1}),r.htmlComp.setSize(new sr(t.width,u.height-n.vertical())),o.htmlComp.layout.collapsed=r.htmlComp.layout.overflowTabs.length>0,o.htmlComp.setBounds(new or(d.left+t.width+n.horizontal(),d.top,u.width-t.width-n.horizontal()-l.horizontal()-h.width,u.height-l.vertical())),this.tabBoxHeader.tabBox.statusPosition===iu.StatusPosition.TOP&&a&&a.isVisible()&&a.cssWidth(this.fieldStatusWidth).cssRight(d.right).cssHeight(u.height-pr.margins(a).vertical())}preferredLayoutSize(e,t){let i=fr.get(e),s=i.insets(),r=(t.widthHint||i.availableSize().width)-i.insets().horizontal(),n=new sr,o=this.tabBoxHeader.tabBox.$status,l=new sr,a=this.tabBoxHeader.tabArea,h=a.htmlComp.margins(),d=this.tabBoxHeader.menuBar,u=d.htmlComp.margins(),c=d.htmlComp.prefSize({widthHint:0});this.tabBoxHeader.tabBox.statusPosition===iu.StatusPosition.TOP&&o&&o.isVisible()&&(l.height=o.outerHeight(!0),l.width=this.fieldStatusWidth+pr.margins(o).horizontal(),n.width+=l.width,n.height=Math.max(n.height,l.height));let p=a.htmlComp.prefSize({widthHint:r-c.width-u.horizontal()-h.horizontal()-l.width});n.width+=p.width+h.horizontal(),n.height=Math.max(n.height,p.height+h.vertical());let g=d.htmlComp.prefSize({widthHint:r-p.width-h.horizontal()-u.horizontal()-l.width});return n.width+=g.width+u.horizontal(),n.height=Math.max(n.height,g.height+u.vertical()),n.add(s)}}class Bp extends Y{constructor(){super(),this.tabBox=null,this.tabArea=null,this.menuBar=null,this.$container=null,this.htmlComp=null,this.$borderBottom=null,this._tabBoxPropertyChangeHandler=this._onTabBoxPropertyChange.bind(this),this._tabAreaPropertyChangeHandler=this._onTabAreaPropertyChange.bind(this)}_init(e){super._init(e),this.tabArea=x.create("TabArea",{parent:this,tabBox:this.tabBox}),this.tabArea.on("propertyChange",this._tabAreaPropertyChangeHandler),this.menuBar=x.create("MenuBar",{parent:this,menuOrder:new cc}),this.tabBox.on("propertyChange",this._tabBoxPropertyChangeHandler),this.menuBar.setMenuItems(this.tabBox.menus),this.setVisible(this.tabBox.labelVisible)}_render(){this.$container=this.$parent.appendDiv("tab-box-header"),this.$borderBottom=this.$container.appendDiv("bottom-border"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Lp(this)),this.tabArea.render(this.$container),this.menuBar.render(this.$container),this.$container.append(this.menuBar.$container)}_destroy(){this.tabBox.off("propertyChange",this._tabBoxPropertyChangeHandler),this.tabArea.off("propertyChange",this._tabAreaPropertyChangeHandler),super._destroy()}setTabItems(e){this.tabArea.setTabItems(e)}_setSelectedTab(e){e?this.setSelectedTabItem(e.tabItem):this.setSelectedTabItem(null)}setSelectedTabItem(e){this.setProperty("selectedTabItem",e)}_setSelectedTabItem(e){this._setProperty("selectedTabItem",e),this.tabArea.setSelectedTabItem(e)}isTabItemFocused(e){return this.tabArea.isTabItemFocused(e)}focusTabItem(e){this.tabArea.focusTabItem(e)}getTabForItem(e){return this.tabArea.getTabForItem(e)}_onTabBoxPropertyChange(e){"menus"===e.propertyName?this.menuBar.setMenuItems(this.tabBox.menus):"labelVisible"===e.propertyName&&this.setVisible(this.tabBox.labelVisible)}_onTabAreaPropertyChange(e){"selectedTab"===e.propertyName&&this._setSelectedTab(e.newValue)}}class Op extends Y{constructor(){super(),this.label=null,this.subLabel=null,this.selected=!1,this.overflown=!1,this._preventTabSelection=!1,this.$label=null,this.$subLabel=null,this._tabPropertyChangeHandler=this._onTabPropertyChange.bind(this),this._statusMouseDownHandler=this._onStatusMouseDown.bind(this),this._desktopPropertyChangeHandler=this._onDesktopPropertyChange.bind(this)}_init(e){super._init(e),this.visible=this.tabItem.visible,this.label=this.tabItem.label,this.subLabel=this.tabItem.subLabel,this.cssClass=this.tabItem.cssClass,this.marked=this.tabItem.marked,this.errorStatus=this.tabItem.errorStatus,this.tooltipText=this.tabItem.tooltipText,this.fieldStatus=x.create("FieldStatus",{parent:this,visible:!1}),this.fieldStatus.on("statusMouseDown",this._statusMouseDownHandler),this.tabItem.on("propertyChange",this._tabPropertyChangeHandler)}_destroy(){super._destroy(),this.tabItem.off("propertyChange",this._tabPropertyChangeHandler),this.fieldStatus.off("statusMouseDown",this._statusMouseDownHandler)}_render(){this.$container=this.$parent.appendDiv("tab-item"),this.htmlComp=fr.install(this.$container,this.session),this.$title=this.$container.appendDiv("title"),this.$label=this.$title.appendDiv("label"),yo.installForEllipsis(this.$label,{parent:this}),this.$subLabel=this.$title.appendDiv("sub-label"),yo.installForEllipsis(this.$subLabel,{parent:this}),this.fieldStatus.render(),this.fieldStatus.$container.cssWidth(mr.get().fieldStatusWidth),this.$container.on("mousedown",this._onTabMouseDown.bind(this)),this.session.desktop.on("propertyChange",this._desktopPropertyChangeHandler)}_renderProperties(){super._renderProperties(),this._renderVisible(),this._renderLabel(),this._renderSubLabel(),this._renderTabbable(),this._renderSelected(),this._renderMarked(),this._renderOverflown(),this._renderTooltipText(),this._renderErrorStatus()}_renderVisible(){super._renderVisible(),this._updateStatus()}setLabel(e){this.setProperty("label",e)}_renderLabel(e){this.$label.textOrNbsp(this.label),this.$label.attr("data-text",this.label),this.invalidateLayoutTree()}setSubLabel(e){this.setProperty("subLabel",e)}_renderSubLabel(){this.$subLabel.textOrNbsp(this.subLabel),this.invalidateLayoutTree()}setTooltipText(e){this.setProperty("tooltipText",e)}_renderTooltipText(){this.$container.toggleClass("has-tooltip",qt.hasText(this.tooltipText)),this._updateStatus()}setErrorStatus(e){this.setProperty("errorStatus",e)}_renderErrorStatus(){let e=!!this.errorStatus,t=e?"has-"+this.errorStatus.cssClass():"";this._updateErrorStatusClasses(t,e),this._updateStatus()}_updateErrorStatusClasses(e,t){this.$container.removeClass(iu.SEVERITY_CSS_CLASSES),this.$container.addClass(e,t)}_updateStatus(){let e=this._computeVisible(),t=null,i=!0,s=!1;this.fieldStatus.setVisible(e),e&&(this.errorStatus?(t=this.errorStatus,i=!t.isError(),s=!0):t=x.create("Status",{message:this.tooltipText,severity:Ii.Severity.INFO}),this.fieldStatus.update(t,null,i,s))}_computeVisible(){return this.visible&&!this.overflown&&(this.errorStatus||qt.hasText(this.tooltipText))}setTabbable(e){this.setProperty("tabbable",e)}_renderTabbable(){this.$container.setTabbable(this.tabbable&&!Qe.get().supportsOnlyTouch())}select(){this.setSelected(!0)}setSelected(e){this.setProperty("selected",e)}_renderSelected(){this.$container.select(this.selected),this.$container.setTabbable(this.selected&&!Qe.get().supportsOnlyTouch())}setMarked(e){this.setProperty("marked",e)}_renderMarked(e){this.$container.toggleClass("marked",this.marked)}setOverflown(e){this.setProperty("overflown",e)}_renderOverflown(){this.$container.toggleClass("overflown",this.overflown),this._updateStatus()}_remove(){this.session.desktop.off("propertyChange",this._desktopPropertyChangeHandler),super._remove()}_onDesktopPropertyChange(e){"dense"===e.propertyName&&this.invalidateLayout()}_onTabMouseDown(e){this._preventTabSelection?this._preventTabSelection=!1:(this.setTabbable(!0),this.$container.focus(),this.select(),this.$label&&(yo.cancel(this.$label),yo.close(this.$label)),this.$subLabel&&(yo.cancel(this.$subLabel),yo.close(this.$subLabel)))}_onStatusMouseDown(e){this._preventTabSelection=!0,e.preventDefault()}_onTabPropertyChange(e){"visible"===e.propertyName?this.setVisible(e.newValue):"label"===e.propertyName?this.setLabel(this.tabItem.label):"subLabel"===e.propertyName?this.setSubLabel(this.tabItem.subLabel):"cssClass"===e.propertyName?this.setCssClass(this.tabItem.cssClass):"marked"===e.propertyName?this.setMarked(this.tabItem.marked):"errorStatus"===e.propertyName?this.setErrorStatus(e.newValue):"tooltipText"===e.propertyName&&this.setTooltipText(e.newValue)}}class Np extends Y{constructor(){super(),this.tabBox=null,this.tabs=[],this.displayStyle=Np.DisplayStyle.DEFAULT,this.hasSubLabel=!1,this.selectedTab=null,this._tabItemPropertyChangeHandler=this._onTabItemPropertyChange.bind(this),this._tabPropertyChangeHandler=this._onTabPropertyChange.bind(this),this.ellipsis=null,this.$selectionMarker=null}_init(e){super._init(e),this.tabBox=e.tabBox,this.ellipsis=x.create("EllipsisMenu",{parent:this,cssClass:"overflow-tab-item unfocusable",iconId:null,inheritAccessibility:!1,text:"0"})}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new Mp(this),new kp(this)])}_render(){this.$container=this.$parent.appendDiv("tab-area"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Hp(this)),this.ellipsis.render(this.$container),this.$selectionMarker=this.$container.appendDiv("selection-marker")}_renderProperties(){super._renderProperties(),this._renderTabs(),this._renderSelectedTab(),this._renderHasSubLabel(),this._renderDisplayStyle()}_remove(){super._remove(),this._removeTabs()}setSelectedTabItem(e){this.setSelectedTab(this.getTabForItem(e))}getTabForItem(e){return me.find(this.tabs,(t=>t.tabItem===e))}setSelectedTab(e){this.setProperty("selectedTab",e)}_setSelectedTab(e){this.selectedTab&&this.selectedTab.setSelected(!1),e&&e.setSelected(!0),this._setProperty("selectedTab",e),this._setTabbableItem(e)}_renderSelectedTab(){this.selectedTab&&this.selectedTab.overflown&&this.invalidateLayoutTree()}isTabItemFocused(e){return this.getTabForItem(e).isFocused()}focusTabItem(e){this.focusTab(this.getTabForItem(e))}focusTab(e){e.focus()}setTabItems(e){this.setProperty("tabs",e),this._updateHasSubLabel(),this.invalidateLayoutTree()}_setTabs(e){let t=this.tabs.slice(),i=e.map((e=>{let i=this.getTabForItem(e);return i?me.remove(t,i):(i=x.create("Tab",{parent:this,tabItem:e}),e.on("propertyChange",this._tabItemPropertyChangeHandler),i.on("propertyChange",this._tabPropertyChangeHandler)),i}));t.forEach((function(e){e.tabItem.off("propertyChange",this._tabItemPropertyChangeHandler)}),this),this._removeTabs(t),this._setProperty("tabs",i)}_renderTabs(){this.tabs.slice().reverse().forEach(((e,t,i)=>{e.rendered||e.render(),e.$container.on("blur",this._onTabItemBlur.bind(this)).on("focus",this._onTabItemFocus.bind(this)),e.$container.prependTo(this.$container),e.$container.on("blur",this._onTabItemBlur.bind(this)).on("focus",this._onTabItemFocus.bind(this))}))}_removeTabs(e){(e=e||this.tabs).forEach((e=>{e.remove()}))}setDisplayStyle(e){this.setProperty("displayStyle",e)}_renderDisplayStyle(){this.$container.toggleClass("spread-even",this.displayStyle===Np.DisplayStyle.SPREAD_EVEN),this.invalidateLayoutTree()}_onTabItemFocus(){this.setFocused(!0)}_onTabItemBlur(){this.setFocused(!1)}_updateHasSubLabel(){let e=this.visibleTabs();this._setHasSubLabel(e.some((e=>qt.hasText(e.subLabel))))}visibleTabs(){return this.tabs.filter((e=>e.isVisible()))}_setHasSubLabel(e){this.hasSubLabel!==e&&(this._setProperty("hasSubLabel",e),this.rendered&&this._renderHasSubLabel())}_renderHasSubLabel(){this.$container.toggleClass("has-sub-label",this.hasSubLabel),this.visibleTabs().forEach((e=>e.invalidateLayout())),this.invalidateLayoutTree()}selectNextTab(e){this._moveSelectionHorizontal(!0,e)}selectPreviousTab(e){this._moveSelectionHorizontal(!1,e)}_moveSelectionHorizontal(e,t){let i=this.tabs.slice(),s=this.$container.activeElement(),r=!1;e||(i.reverse(),r=s[0]===this.ellipsis.$container[0]),i.forEach((function(e,i){if(r&&e.visible&&!e.overflown)return this.setSelectedTab(e),this._setTabbableItem(e),t&&e.focus(),void(r=!1);s[0]===e.$container[0]&&(r=!0)}),this),e&&r&&this.ellipsis.isTabTarget()&&(this._setTabbableItem(this.ellipsis),t&&this.ellipsis.focus())}_setTabbableItem(e){let t=this.tabs;e&&(this.ellipsis.setTabbable(!1),t.forEach((e=>{e.setTabbable(!1)})),e.setTabbable(!0))}_onTabPropertyChange(e){"selected"===e.propertyName&&this.setSelectedTab(e.source)}_onTabItemPropertyChange(e){"visible"===e.propertyName&&(this._updateHasSubLabel(),this.invalidateLayoutTree()),"subLabel"===e.propertyName&&this._updateHasSubLabel()}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Np,"DisplayStyle",{DEFAULT:"default",SPREAD_EVEN:"spreadEven"});class Hp extends _r{constructor(e){super(),this.tabArea=e,this.overflowTabs=[],this.visibleTabs=[],this._tabAreaPropertyChangeHandler=this._onTabAreaPropertyChange.bind(this),this.tabArea.on("propertyChange",this._tabAreaPropertyChangeHandler),this.tabArea.one("remove",(()=>{this.tabArea.off("propertyChange",this._tabAreaPropertyChangeHandler)}))}layout(e){let t=fr.get(e),i=t.availableSize().subtract(t.insets());this.preferredLayoutSize(e,{widthHint:i.width}),this._layoutSelectionMarker()}_layoutSelectionMarker(){let e,t=this.tabArea.$selectionMarker,i=this.tabArea.selectedTab;i?(t.setVisible(!0),e=pr.bounds(i.$container),t.cssLeft(e.x),t.cssWidth(e.width)):t.setVisible(!1)}_updateEllipsis(){let e=this.tabArea.ellipsis;e.setHidden(this.overflowTabs.length<1),e.setText(this.overflowTabs.length+""),this.visibleTabs.forEach((e=>e.setOverflown(!1))),this.overflowTabs.forEach((e=>e.setOverflown(!0))),e.setChildActions(this.overflowTabs.map((t=>{let i=x.create("Menu",{parent:e,text:t.label,tab:t,visible:t.visible});return i.on("action",(i=>{n().log.isDebugEnabled()&&n().log.debug("(TabAreaLayout#_onClickEllipsis) tabItem="+t),e.popup.close(),t.select(),t.focus()})),i}),this))}preferredLayoutSize(e,t){let i=fr.get(e),s=new sr(0,0),r=Number.MAX_VALUE;this.visibleTabs=this.tabArea.visibleTabs();let n=this.visibleTabs.map(((e,t)=>e.selected?-1:t)).filter((e=>e>=0));if(this.overflowTabs=[],(0===t.widthHint||t.widthHint)&&(r=t.widthHint-i.insets().horizontal()),r<=0)return this._minSize(this.visibleTabs).add(i.insets());for(this._setFirstLastMarker(this.visibleTabs),this._updateEllipsis(),s=this._prefSize(this.visibleTabs);s.width>r&&n.length>0;){let e=n.splice(-1)[0];this.overflowTabs.splice(0,0,this.visibleTabs[e]),this.visibleTabs.splice(e,1),this._setFirstLastMarker(this.visibleTabs),this._updateEllipsis(),s=this._prefSize(this.visibleTabs)}return this.tabArea.displayStyle===Np.DisplayStyle.SPREAD_EVEN?pr.prefSize(e,t):pr.exactPrefSize(s.add(i.insets()),t)}_minSize(e){let t=[];return this.overflowTabs=e.filter((e=>!e.selected||(t.push(e),!1)),this),this.visibleTabs=t,this._setFirstLastMarker(t),this._prefSize(t)}_prefSize(e,t){let i=e.map((e=>this._tabItemSize(e))).reduce(((e,t)=>(e.height=Math.max(e.height,t.height),e.width+=t.width,e)),new sr(0,0));if(t=x.nvl(t,this.overflowTabs.length>0)){let e=this._tabItemSize(this.tabArea.ellipsis);i.height=Math.max(i.height,e.height),i.width+=e.width}return i}_setFirstLastMarker(e,t){t=x.nvl(t,this.overflowTabs.length>0),this.tabArea.tabs.forEach((e=>{e.htmlComp.$comp.removeClass("first last")})),this.tabArea.ellipsis.$container.removeClass("first last"),e.length>0&&(e[0].$container.addClass("first"),t?this.tabArea.ellipsis.$container.addClass("last"):e[e.length-1].$container.addClass("last"))}_tabItemSize(e){let t,i=e.htmlComp,s=i.$comp.attr("class");if(this.tabArea.displayStyle===Np.DisplayStyle.SPREAD_EVEN&&this.tabArea.$container.removeClass("spread-even"),i.$comp.removeClass("overflown"),i.$comp.removeClass("hidden"),t=i.prefSize({exact:!0}).add(pr.margins(i.$comp)),e.fieldStatus&&e.fieldStatus.htmlComp){let i=e.overflown&&!e.fieldStatus.visible;i&&e.fieldStatus.setVisible(!0);let s=e.fieldStatus.htmlComp.prefSize({includeMargin:!0}).width;i&&e.fieldStatus.setVisible(!1),t.width+=s}return i.$comp.attrOrRemove("class",s),this.tabArea.displayStyle===Np.DisplayStyle.SPREAD_EVEN&&this.tabArea.$container.addClass("spread-even"),t}_onTabAreaPropertyChange(e){"selectedTab"===e.propertyName&&this._layoutSelectionMarker()}}class Vp extends _r{constructor(e){super(),this._tabBox=e,this._initDefaults(),this.htmlPropertyChangeHandler=this._onHtmlEnvironmentPropertyChange.bind(this),mr.get().on("propertyChange",this.htmlPropertyChangeHandler),this._tabBox.one("remove",(()=>{mr.get().off("propertyChange",this.htmlPropertyChangeHandler)}))}_initDefaults(){this._statusWidth=mr.get().fieldStatusWidth}_onHtmlEnvironmentPropertyChange(){this._initDefaults(),this._tabBox.invalidateLayoutTree()}layout(e){let t,i,s,r,n=fr.get(e),o=fr.get(this._tabBox._$tabContent),l=fr.get(this._tabBox.header.$container),a=0,h=new sr,d=this._tabBox._tooltip(),u=this._tabBox.$status,c=this._tabBox.statusPosition;t=n.availableSize().subtract(n.insets()),l.isVisible()&&(s=l.margins(),a=t.subtract(s).width,u&&u.isVisible()&&(this._layoutStatus(),c===iu.StatusPosition.DEFAULT&&(a-=this._statusWidth+pr.margins(u).horizontal())),r=l.prefSize({widthHint:a}),u&&u.isVisible()&&this._layoutStatus(r.height),r.width=a,l.setSize(r),h=r.add(s)),i=t.subtract(o.margins()),i.height-=h.height,o.setSize(i),d&&d.rendered&&d.position()}_layoutStatus(e){let t=this._tabBox.htmlComp.insets({includeBorder:!1}),i=t.top,s=t.right,r=this._tabBox.header.$container,n=this._tabBox.$status,o=pr.margins(n),l=i,a=this._tabBox.statusPosition,h=e-o.vertical();a===iu.StatusPosition.DEFAULT?l+=r.cssMarginTop():h-=n.cssBorderWidthY(),n.cssWidth(this._statusWidth).cssTop(l).cssRight(s).cssHeight(h)}preferredLayoutSize(e,t){t=t||{};let i=fr.get(e),s=fr.get(this._tabBox._$tabContent),r=fr.get(this._tabBox.header.$container),n=new sr,o=new sr,l=this._tabBox.$status,a=this._tabBox.statusPosition,h=i.availableSize().subtract(i.insets()).width;return t.heightHint=null,r.isVisible()&&(l&&l.isVisible()&&a===iu.StatusPosition.DEFAULT&&(h-=l.outerWidth(!0)),n=r.prefSize({widthHint:h}).add(r.margins())),o=s.prefSize(t).add(i.insets()).add(s.margins()),new sr(Math.max(n.width,o.width),o.height+n.height)}}class Wp extends ac{constructor(){super(),this.marked=!1}_createLayout(){return new Gp(this)}_computeTitleVisible(e){return!1}addStatus(){}_computeStatusVisible(){return!1}setMarked(e){this.setProperty("marked",e)}getContextMenuItems(){return[]}focus(){this.select(),this.parent.focusTabItem(this)}isFocused(){return this.parent.isTabItemFocused(this)}select(){this.parent.selectedTab!==this&&this.parent.setSelectedTab(this)}getTab(){return this.parent.getTabForItem(this)}}class zp extends dc{constructor(){super()}}class Gp extends uc{constructor(e){super(e)}_$status(){return this.groupBox.parent.$status}_layoutStatus(){}_menuBarSize(e,t,i){let s=Il.size(e,t),r=this.groupBox.parent;return s.width=r.header.$container.outerWidth(),s}_headerHeight(){return 0}}class Up extends iu{constructor(){super(),this.gridDataHints.weightY=1,this.gridDataHints.h=3,this.eventDelegator=null,this._tableChangedHandler=this._onTableChanged.bind(this),this._deletedRows=Ai.createMap(),this._insertedRows=Ai.createMap(),this._updatedRows=Ai.createMap(),this._checkedRows=Ai.createMap(),this._addWidgetProperties(["table"])}_init(e){super._init(e),this._setTable(this.table)}_render(){this.addContainer(this.$parent,"table-field"),this.addLabel(),this.addMandatoryIndicator(),this.addStatus(),this._renderTable()}setTable(e){this.setProperty("table",e)}_setTable(e){this.table&&(this.table.off(Up.TABLE_CHANGE_EVENTS,this._tableChangedHandler),this.eventDelegator&&(this.eventDelegator.destroy(),this.eventDelegator=null)),this._setProperty("table",e),e&&(e.on(Up.TABLE_CHANGE_EVENTS,this._tableChangedHandler),this.eventDelegator=Te.create(this,e,{delegateProperties:["enabled","disabledStyle","loading"]}),e.setDisabledStyle(this.disabledStyle),e.setLoading(this.loading),e.setScrollTop(this.scrollTop))}_renderTable(){this.table&&(this.table.render(),this.addField(this.table.$container),this.$field.addDeviceClass(),this.invalidateLayoutTree())}_removeTable(){this.table&&(this.table.remove(),this._removeField(),this.invalidateLayoutTree())}computeRequiresSave(){return Object.keys(this._deletedRows).length>0||Object.keys(this._insertedRows).length>0||Object.keys(this._updatedRows).length>0||Object.keys(this._checkedRows).length>0}_onTableChanged(e){x.isOneOf(e.type,"rowsDeleted","allRowsDeleted")?this._updateDeletedRows(e.rows):"rowsInserted"===e.type?this._updateInsertedRows(e.rows):"rowsUpdated"===e.type?this._updateUpdatedRows(e.rows):"rowsChecked"===e.type&&this._updateCheckedRows(e.rows)}_updateDeletedRows(e){e.forEach((function(e){if(e.id in this._insertedRows)return delete this._insertedRows[e.id],delete this._updatedRows[e.id],void delete this._checkedRows[e.id];this._deletedRows[e.id]=e}),this)}_updateInsertedRows(e){e.forEach((function(e){this._insertedRows[e.id]=e}),this)}_updateUpdatedRows(e){e.forEach((function(e){e.status!==Ya.Status.NON_CHANGED&&(this._updatedRows[e.id]=e)}),this)}_updateCheckedRows(e){e.forEach((function(e){e.id in this._checkedRows?delete this._checkedRows[e.id]:this._checkedRows[e.id]=e}),this)}markAsSaved(){super.markAsSaved(),this._deletedRows=Ai.createMap(),this._insertedRows=Ai.createMap(),this._updatedRows=Ai.createMap(),this._checkedRows=Ai.createMap(),this.table.markRowsAsNonChanged()}getValidationResult(){let e=super.getValidationResult();if(e&&!e.valid)return e;let t=!this.errorStatus,i=!this.mandatory||!this.empty,s=me.ensure(this.table.rows),r=me.ensure(this.table.columns),n=()=>{},o=this.label||"";return s.some((function(s){return r.some((r=>{let l=r.isContentValid(s);return!l.valid&&(n=()=>{e.reveal(),this.table.focusCell(r,s)},o&&(o+=": "),o+=r.text,t=t&&l.validByErrorStatus,i=i&&l.validByMandatory,!(t||i))}),this)}),this),{valid:t&&i,validByErrorStatus:t,validByMandatory:i,field:this,label:o,reveal:n}}getDelegateScrollable(){return this.table}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Up,"TABLE_CHANGE_EVENTS","rowsInserted rowsDeleted allRowsDeleted rowsUpdated rowsChecked");class Kp extends su{constructor(){super()}}class qp extends Ao{constructor(){super(),this.table=null,this.windowPaddingX=0,this.windowPaddingY=0}_init(e){super._init(e);let t=x.create("Column",{index:0,session:this.session,text:"Tag",autoOptimizeWidth:!1});this.table=x.create("Table",{parent:this,headerVisible:!1,autoResizeColumns:!0,multiSelect:!1,scrollToSelection:!0,columns:[t],headerMenusEnabled:!1,textFilterEnabled:!1}),this.table.on("rowClick",this._onRowClick.bind(this))}_createLayout(){return new jp(this)}_render(){super._render(),this.$container.addClass("tag-chooser-popup").on("mousedown",this._onContainerMouseDown.bind(this)),this._renderTable()}_renderTable(){this.table.setVirtual(!1),this.table.render(),this.table.$container.setTabbable(!1).addClass("focused")}setLookupResult(e){let t=[],i=e.lookupRows;this.table.deleteAllRows(),i.forEach((e=>{t.push(Sc.createTableRow(e))}),this),this.table.insertRows(t)}_onRowClick(e){this.triggerLookupRowSelected()}_onContainerMouseDown(e){return!1}_isMouseDownOnAnchor(e){return this.field.$field.isOrHas(e.target)}delegateKeyEvent(e){e.originalEvent.smartFieldEvent=!0,this.table.$container.trigger(e)}triggerLookupRowSelected(e){(e=e||this.selectedRow())&&e.enabled&&this.trigger("lookupRowSelected",{lookupRow:e.lookupRow})}selectedRow(){return this.table.selectedRow()}}class jp extends Ro{constructor(e){super(e),this.doubleCalcPrefSize=!1}layout(e){super.layout(e);let t=this.popup.htmlComp,i=t.size().subtract(t.insets());this.popup.table.htmlComp.setSize(i),this.popup.position()}preferredLayoutSize(e){let t=x.create("TableLayoutResetter",this.popup.table);t.modifyDom();let i=super.preferredLayoutSize(e);return t.restoreDom(),i}}class Yp extends du{constructor(){super(),this.$field=null,this.fieldHtmlComp=null,this.popup=null,this.lookupCall=null,this._currentLookupCall=null,this.tagBar=null,this.maxLength=500,this.maxLengthHandler=x.create("MaxLengthHandler",{target:this})}_init(e){super._init(e),this.tagBar=x.create("TagBar",{parent:this,tags:this.value,clickable:e.clickable}),this.tagBar.on("tagRemove",this._onTagRemove.bind(this)),this.on("propertyChange",this._onValueChange.bind(this)),this._setLookupCall(this.lookupCall)}_onTagRemove(e){this.removeTag(e.tag)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new Jp(this),new Qp(this._createFieldAdapter()),new Zp(this._createFieldAdapter()),new eg(this)])}_createKeyStrokeContext(){return new Qr}_render(){this.addContainer(this.$parent,"tag-field",new tg(this)),this.addLabel(),this.addMandatoryIndicator();let e=this.$container.appendDiv();this.fieldHtmlComp=fr.install(e,this.session),this.fieldHtmlComp.setLayout(new ig(this)),this.tagBar.render(e);let t=e.appendElement("<input>","field").attr("type","text").on("keydown",this._onInputKeydown.bind(this)).on("keyup",this._onInputKeyup.bind(this)).on("input",this._onFieldInput.bind(this));this.addFieldContainer(e),this.addField(t),this.maxLengthHandler.install(t),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderValue(),this._renderMaxLength()}_renderValue(){this.tagBar.updateTags()}_setValue(e){super._setValue(e),this.tagBar&&this.tagBar.setTags(this.value)}_setLookupCall(e){this._setProperty("lookupCall",xs.ensure(e,this.session))}formatValue(e){return""}_validateValue(e){let t=me.ensure(e),i=[];return t.forEach((e=>{qt.empty(e)||(e=e.toLowerCase(),i.indexOf(e)<0&&i.push(e))})),i}_parseValue(e){let t=me.ensure(this.value);return t=t.slice(),t.push(e),t}_renderDisplayText(){this.$field.val(this.displayText),super._renderDisplayText(),this._updateInputVisible()}_renderEnabled(){super._renderEnabled(),this._updateInputVisible()}_renderFieldStyle(){super._renderFieldStyle(),this.rendered&&this.fieldHtmlComp.invalidateLayoutTree()}setMaxLength(e){this.setProperty("maxLength",e)}_renderMaxLength(){this.maxLengthHandler.render()}_updateInputVisible(){let e,t=!this.$field.isVisible();e=!!this.enabledComputed||qt.hasText(this.displayText),this.$field.setVisible(e),e!==t&&this._renderValue()}_readDisplayText(){return this.$field.val()}_clear(){this.$field.val("")}acceptInput(e){this.popup?this.popup.selectedRow()?this.popup.triggerLookupRowSelected():this.closePopup():super.acceptInput(!1)}_triggerAcceptInput(){this.trigger("acceptInput",{displayText:this.displayText,value:this.value})}aboutToBlurByMouseDown(e){Zd.eventOutsideProposalField(this,e)&&this.acceptInput(!0)}_onFieldBlur(e){this.closePopup(),super._onFieldBlur(e),this.rendered&&!this.removing&&this.tagBar.blur()}_onFieldFocus(e){super._onFieldFocus(e),this.rendered&&!this.removing&&this.tagBar.focus()}_onFieldInput(){this._updateHasText()}addTag(e){let t=this._parseValue(e);this.setValue(t),this._triggerAcceptInput()}removeTag(e){if(qt.empty(e))return;e=e.toLowerCase();let t=me.ensure(this.value);-1!==t.indexOf(e)&&(t=t.slice(),me.remove(t,e),this.setValue(t),this._triggerAcceptInput(),this.focus())}_onInputKeydown(e){this._isNavigationKey(e)&&this.popup?this.popup.delegateKeyEvent(e):e.which===Kr.ESC&&this.closePopup()}_isNavigationKey(e){return x.isOneOf(e.which,[Kr.PAGE_UP,Kr.PAGE_DOWN,Kr.UP,Kr.DOWN])}_onInputKeyup(e){e.which!==Kr.ESC&&(this._isNavigationKey(e)||this._lookupByText(this.$field.val()))}_lookupByText(e){return this.lookupCall?qt.empty(e)||e.length<2?void this.closePopup():(this._currentLookupCall=this.lookupCall.cloneForText(e),this.trigger("prepareLookupCall",{lookupCall:this._currentLookupCall}),this._currentLookupCall.execute().always((()=>{this._currentLookupCall=null})).done(this._onLookupDone.bind(this))):null}_onLookupDone(e){try{if(!this.rendered||!this.isFocused()||0===e.lookupRows.length)return void this.closePopup();this.openPopup(),this.popup.setLookupResult(e)}finally{this.trigger("lookupCallDone",{result:e})}}openPopup(){this.popup||(this.popup=x.create("TagChooserPopup",{parent:this,$anchor:this.$field,boundToAnchor:!0,closeOnAnchorMouseDown:!1,field:this}),this.popup.on("lookupRowSelected",this._onLookupRowSelected.bind(this)),this.popup.one("close",this._onPopupClose.bind(this)),this.popup.open())}closePopup(){this.popup&&!this.popup.destroying&&this.popup.close()}_onLookupRowSelected(e){this._clear(),this._updateHasText(),this.addTag(e.lookupRow.key),this.closePopup()}_onPopupClose(e){this.popup=null}isInputFocused(){let e=this.$fieldContainer.activeElement();return this.$field.is(e)}_onValueChange(e){"value"===e.propertyName&&this._renderLabel()}_renderPlaceholder(e){let t=!!me.ensure(this.value).length;(e=x.nvl(e,this.$field))&&e.placeholder(t?"":this.label)}_createFieldAdapter(){return Yp.createFieldAdapter(this)}static createFieldAdapter(e){return{$container:()=>e.$fieldContainer,enabled:()=>qt.empty(e._readDisplayText()),focus:()=>{e.$field.focus()},one:(t,i)=>{e.one(t,i)},off:(t,i)=>{e.off(t,i)},removeTag:t=>{e.removeTag(t)}}}}class Xp extends xc{constructor(){super()}_initProperties(e){void 0!==e.insertText&&delete e.insertText}_postCreateWidget(){super._postCreateWidget(),this.widget.lookupCall=x.create("RemoteLookupCall",this)}_syncResult(e){this.widget._currentLookupCall&&this.widget._currentLookupCall.resolveLookup(e)}_onWidgetAcceptInput(e){this._send("acceptInput",{displayText:e.displayText,value:e.value})}}class Jp extends U{constructor(e){super(),this.field=e,this.which=[Kr.ENTER],this.renderingHints.render=!1,this.preventDefault=!1,this.stopPropagation=!0}_accept(e){return!!super._accept(e)&&(this.stopPropagation=qt.hasText(this.field._readDisplayText()),this.field.isInputFocused())}handle(e){this.field.acceptInput()}}class Zp extends U{constructor(e){super(),this.fieldAdapter=e,this.which=[Kr.DELETE],this.renderingHints.render=!1,this.preventDefault=!1}_accept(e){return!!super._accept(e)&&this._$focusedTag().length>0}handle(e){let t=this._$focusedTag(),i=_g.getTagData(t);this.fieldAdapter.removeTag(i)}_$focusedTag(){return _g.findFocusedTagElement(this.fieldAdapter.$container())}}class Qp extends U{constructor(e){super(),this.fieldAdapter=e,this.which=[Kr.LEFT,Kr.RIGHT],this.preventDefault=!1,this.preventInvokeAcceptInputOnActiveValueField=!0}_accept(e){return!!super._accept(e)&&this.fieldAdapter.enabled()}handle(e){e.which===Kr.LEFT?this._focusTagElement(-1):e.which===Kr.RIGHT&&this._focusTagElement(1)}_focusTagElement(e){let t=_g.findFocusableTagElements(this.fieldAdapter.$container()),i=t.length;if(0===i)return;let s=-1;if(t.each((function(e){n()(this).hasClass("focused")&&(s=e)})),-1===s)-1===e&&(s=i-1);else{let r=s+e;r>=i?s=-2:r<0?s=-1:(_g.unfocusTagElement(t.eq(s)),s=r)}-1===s||(-2===s?this.fieldAdapter.focus():_g.focusTagElement(t.eq(s)))}}class eg extends U{constructor(e){super(),this.field=e,this.which=[Kr.ENTER,Kr.SPACE],this.renderingHints.render=!1,this.preventDefault=!1}_accept(e){return!!super._accept(e)&&(this.field.tagBar&&this.field.tagBar.isOverflowIconFocused())}handle(e){this.field.tagBar.openOverflowPopup()}}class tg extends ru{constructor(e){super(e)}_$elementForIconLayout(){return this.formField.$fieldContainer}}class ig extends _r{constructor(e){super(),this.tagField=e}layout(e){let t=fr.get(e),i=this.tagField.value&&this.tagField.value.length>0,s=this.tagField.$field,r=this.tagField.tagBar.htmlComp;if(this.tagField.tagBar.setVisible(i),i){s.removeClass("fullwidth");let e=t.availableSize().subtract(t.insets()),i=e.width;s.isVisible()&&(i=e.width*(1-ig.MIN_INPUT_TAG_RATIO));let n=r.prefSize(!0),o=Math.min(i,n.width);r.setSize(new sr(o,n.height).subtract(r.margins()));let l=e.width-o;s.cssWidth(l)}else s.addClass("fullwidth").removeAttr("style")}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(ig,"MIN_INPUT_TAG_RATIO",.33);class sg extends iu{constructor(){super(),this.eventDelegator=null,this._addWidgetProperties(["tileGrid"])}_init(e){super._init(e),this._setTileGrid(this.tileGrid)}_createLoadingSupport(){return null}_render(){this.addContainer(this.$parent,"tile-field"),this.addLabel(),this.addMandatoryIndicator(),this.addStatus(),this.tileGrid&&this._renderTileGrid()}_renderProperties(){super._renderProperties(),this._renderDropType()}setTileGrid(e){this.setProperty("tileGrid",e)}_setTileGrid(e){this.tileGrid&&this.eventDelegator&&(this.eventDelegator.destroy(),this.eventDelegator=null),this._setProperty("tileGrid",e),e&&(this.eventDelegator=Te.create(this,e,{delegateProperties:["loading"]}),e.setLoading(this.loading),e.setScrollTop(this.scrollTop))}_renderTileGrid(){this.tileGrid&&(this.tileGrid.render(),this.addField(this.tileGrid.$container),this.invalidateLayoutTree())}_removeTileGrid(){this.tileGrid&&(this.tileGrid.remove(),this._removeField(),this.invalidateLayoutTree())}getDelegateScrollable(){return this.tileGrid}}class rg extends su{constructor(){super()}}class ng extends fu{constructor(){super(),this.tree=null,this._populating=!1,this._addWidgetProperties(["tree","filterBox"])}_init(e){super._init(e),this.tree.on("nodesChecked",this._onTreeNodesChecked.bind(this)),this.tree.setScrollTop(this.scrollTop)}_initStructure(e){this.tree||(this.tree=this._createDefaultTreeBoxTree())}_initValue(e){this.tree||(this.tree=this._createDefaultTreeBoxTree()),super._initValue(e)}_render(){super._render(),this.$container.addClass("tree-box")}_createFieldContainerLayout(){return new lg(this,this.tree,this.filterBox)}_renderStructure(e){this.tree.render(this.$fieldContainer),this.addField(this.tree.$container)}_onTreeNodesChecked(e){this._populating||this._syncTreeToValue()}_syncTreeToValue(){if(!this.lookupCall||this._valueSyncing)return;this._valueSyncing=!0;let e=Ai.values(this.tree.nodesMap).filter((e=>e.checked)).map((e=>e.id));this.setValue(e),this._valueSyncing=!1}_valueChanged(){super._valueChanged(),this._syncValueToTree(this.value)}_syncValueToTree(e){if(!this.lookupCall||this._valueSyncing||!this.initialized)return;this._valueSyncing=!0;let t={checkOnlyEnabled:!1,checkChildren:!1};try{if(me.empty(e))this.uncheckAll(t);else{if(this._ensureLookupCallExecuted())return;this.uncheckAll(t),Ai.values(this.tree.nodesMap).forEach((function(i){me.containsAny(e,i.id)&&this.tree.checkNode(i,!0,t)}),this)}this._updateDisplayText()}finally{this._valueSyncing=!1}}uncheckAll(e){for(let t in this.tree.nodesMap)this.tree.nodesMap.hasOwnProperty(t)&&this.tree.uncheckNode(this.tree.nodesMap[t],e)}_lookupByAllDone(e){super._lookupByAllDone(e)&&this._populateTree(e)}_populateTree(e){let t=[];this._populating=!0,this._populateTreeRecursive(null,t,e.lookupRows),this.tree.deleteAllNodes(),this.tree.insertNodes(t),this._populating=!1,this._syncValueToTree(this.value)}_populateTreeRecursive(e,t,i){let s;i.forEach((function(r){r.parentKey===e&&(s=this._createNode(r),this._populateTreeRecursive(s.id,s.childNodes,i),s.leaf=!s.childNodes.length,t.push(s))}),this)}getCheckedLookupRows(){return null===this.value||me.empty(this.value)||0===this.tree.nodes.length?[]:Ai.values(this.tree.nodesMap).filter((e=>e.checked)).map((e=>e.lookupRow))}_createNode(e){let t=x.create("TreeNode",{parent:this.tree,id:e.key,text:e.text,lookupRow:e});return e.iconId&&(t.iconId=e.iconId),e.tooltipText&&(t.tooltipText=e.tooltipText),e.backgroundColor&&(t.backgroundColor=e.backgroundColor),e.foregroundColor&&(t.foregroundColor=e.foregroundColor),e.font&&(t.font=e.font),!1===e.enabled&&(t.enabled=!1),e.cssClass&&(t.cssClass=e.cssClass),!1===e.active&&(t.active=!1,t.cssClass=(t.cssClass?t.cssClass+" ":"")+"inactive"),t}_createDefaultTreeBoxTree(){return x.create("Tree",{parent:this,checkable:!0})}getDelegateScrollable(){return this.tree}}class og extends uu{constructor(){super()}}class lg extends bu{constructor(e,t,i){super(e,t,i)}}class ag extends iu{constructor(){super(),this.gridDataHints.weightY=1,this.gridDataHints.h=3,this._addWidgetProperties(["tree"])}_render(){this.addContainer(this.$parent,"tree-field"),this.addLabel(),this.addMandatoryIndicator(),this.addStatus(),this.tree&&this._renderTree()}setTree(e){this.setProperty("tree",e)}_setTree(e){this._setProperty("tree",e),e&&e.setScrollTop(this.scrollTop)}_renderTree(){this.tree&&(this.tree.render(),this.addField(this.tree.$container),this.$field.addDeviceClass(),this.invalidateLayoutTree())}_removeTree(){this.tree&&(this.tree.remove(),this._removeField(),this.invalidateLayoutTree())}getDelegateScrollable(){return this.tree}}class hg extends su{constructor(){super()}}class dg extends iu{constructor(){super(),this.activeStepIndex=-1,this.steps=[],this.previousActiveStepIndex=-1,this.stepsMap={},this.$wizardStepsBody=null,this.keepActiveStepAtLeftBorder=Qe.get().type===Qe.Type.MOBILE,this.animateScrolling=Qe.get().type===Qe.Type.MOBILE}_init(e){super._init(e),this._updateStepsMap()}_render(){if(this.addContainer(this.$parent,"wizard-progress-field",new cg(this)),this.addField(this.$parent.makeDiv("wizard-steps")),this.addStatus(),this.addLabel(),this.$field.toggleClass("compact",Qe.get().type===Qe.Type.MOBILE),this.htmlComp.layout.compactFieldWidth=-1,this.$wizardStepsBody=this.$field.appendDiv("wizard-steps-body"),this._installScrollbars({axis:"x",scrollShadow:"none"}),this.parent instanceof ac&&this.parent.controls[0]===this&&this.parent.parent instanceof Ta){this.parent.parent.$container.addClass("wizard-container-form")}}_renderProperties(){super._renderProperties(),this._renderSteps(),this._renderActiveStepIndex()}_setSteps(e){this._setProperty("steps",e),this._updateStepsMap()}_renderSteps(){this.$wizardStepsBody.children(".wizard-step").each((function(){yo.uninstall(n()(this))})),this.$wizardStepsBody.empty(),this.steps.forEach(((e,t)=>{let i=this.$wizardStepsBody.appendDiv("wizard-step").addClass(e.cssClass).data("wizard-step",e);e.$step=i,this._updateStepClasses(e),this.session.inspector&&(vt.applyInfo(e,i),i.attr("data-step-index",e.index)),qt.hasText(e.tooltipText)&&yo.install(i,{parent:this,text:e.tooltipText,tooltipPosition:"bottom"});let s=i.appendDiv("icon");e.iconId?s.icon(e.iconId):e.finished?s.icon(Ct.CHECKED_BOLD):s.text(t+1);let r=i.appendDiv("text");r.appendDiv("title").textOrNbsp(e.title).attr("data-text",e.title),e.subTitle&&r.appendDiv("sub-title").textOrNbsp(e.subTitle),t<this.steps.length-1&&this.$wizardStepsBody.appendDiv("wizard-step-separator")})),this.invalidateLayoutTree(!1)}_setActiveStepIndex(e){this.previousActiveStepIndex=this.activeStepIndex,this._setProperty("activeStepIndex",x.nvl(e,-1))}_renderActiveStepIndex(){this.steps.forEach(this._updateStepClasses.bind(this)),this.invalidateLayoutTree(!1)}_updateStepClasses(e){let t=e.$step;t.removeClass("selected first last action-enabled disabled"),t.off("click.selected");let i=this.steps.indexOf(e),s=this.steps.indexOf(this.stepsMap[this.activeStepIndex]);this.enabledComputed&&e.enabled&&e.actionEnabled&&i!==this.activeStepIndex?(t.addClass("action-enabled"),t.on("click.selected",this._onStepClick.bind(this))):this.enabledComputed&&e.enabled||t.addClass("disabled"),t.toggleClass("finished",e.finished),i>=0&&s>=0&&(i===s&&t.addClass("selected"),0===i&&t.addClass("first"),i===this.steps.length-1&&t.addClass("last")),i===this.steps.length-1&&this.$wizardStepsBody.css("background-color",t.css("background-color"))}_stepIndex(e){if(e){let t=e.data("wizard-step");if(t)return t.index}return-1}_updateStepsMap(){this.stepsMap={},this.steps.forEach((e=>{this.stepsMap[e.index]=e}))}_resolveStep(e){for(let t=0;t<this.steps.length;t++){let i=this.steps[t];if(i.index===e)return i}return null}_onStepClick(e){let t=n()(e.currentTarget),i=this._stepIndex(t);i>=0&&i!==this.activeStepIndex&&this.trigger("stepAction",{stepIndex:i})}scrollToActiveStep(){let e=this.stepsMap[this.activeStepIndex];if(!e)return;let t=e.$step,i=t.position().left,s=this.animateScrolling&&this.htmlComp.layouted;if(this.keepActiveStepAtLeftBorder){let e=i-this.steps[0].$step.cssPaddingLeft()+t.cssPaddingLeft();Yn.scrollLeft(this.$field,e,{animate:s})}else{let e=this.$field.scrollLeft(),r=t.width(),n=this.$field.width(),o=this.previousActiveStepIndex>this.activeStepIndex,l=e+Math.floor(n*(o?.25:.75)),a=i+Math.floor(r/2);(o&&a<l||!o&&a>l)&&Yn.scrollLeft(this.$field,e+(a-l),{animate:s})}}}class ug extends su{constructor(){super()}_onWidgetStepAction(e){this._send("doStepAction",{stepIndex:e.stepIndex})}_onWidgetEvent(e){"stepAction"===e.type?this._onWidgetStepAction(e):super._onWidgetEvent(e)}}class cg extends ru{constructor(e){super(e)}layout(e){super.layout(e);let t=this.formField.$field.scrollLeft(),i=this.formField.$wizardStepsBody;i.width("auto");let s=i[0].scrollWidth;i.width(s),this.formField.$field.scrollLeft(t),this.formField.scrollToActiveStep()}}class pg extends iu{constructor(){super(),this._addWidgetProperties(["innerForm"]),this.innerForm=null,this.initialFocusEnabled=!1,this._formDestroyHandler=this._onInnerFormDestroy.bind(this)}_init(e){super._init(e),this._setInnerForm(this.innerForm)}_render(){this.addContainer(this.$parent,"wrapped-form-field"),this.addLabel(),this.addStatus()}_renderProperties(){super._renderProperties(),this._renderInnerForm()}setInnerForm(e){this.setProperty("innerForm",e)}_setInnerForm(e){this.innerForm&&this.innerForm.off("destroy",this._formDestroyHandler),e&&e.on("destroy",this._formDestroyHandler),this._setProperty("innerForm",e)}_renderInnerForm(){this.innerForm&&(this.innerForm.setDisplayHint(Ta.DisplayHint.VIEW),this.innerForm.setModal(!1),this.innerForm.setClosable(!1),this.innerForm.renderInitialFocusEnabled=this.initialFocusEnabled,this.innerForm.render(),this.addField(this.innerForm.$container),this.innerForm.invalidateLayoutTree(),this._renderInitialFocusEnabled())}_removeInnerForm(){this.innerForm&&this.innerForm.remove(),this._removeField()}_onInnerFormDestroy(e){this._removeInnerForm(),this._setInnerForm(null)}_renderInitialFocusEnabled(){this.innerForm&&this.initialFocusEnabled&&this.innerForm.renderInitialFocus()}}class gg extends su{constructor(){super()}}class mg extends Y{constructor(){super(),this.activated=!1,this.label=null,this.htmlEnabled=!1,this.$label=null,this.$button=null,this.tooltipText=null}_init(e){super._init(e),this.setTooltipText(e.tooltipText)}_render(){this.$container=this.$parent.appendDiv("switch"),this.$label=this.$container.appendDiv("switch-label"),this.$button=this.$container.appendDiv("switch-button").on("click",this._onSwitchButtonClick.bind(this))}_renderProperties(){super._renderProperties(),this._renderActivated(),this._renderLabel(),this._renderTooltipText()}_onSwitchButtonClick(){if(!this.enabledComputed)return;let e=new ht;this.trigger("switch",e),e.defaultPrevented||this.setActivated(!this.activated),yo.cancel(this.$container)}setLabel(e){this.setProperty("label",e)}_renderLabel(){this.htmlEnabled?this.$label.html(this.label):this.$label.text(this.label)}setActivated(e){this.setProperty("activated",e)}_renderActivated(){this.$button.toggleClass("activated",this.activated)}setTooltipText(e){this.setProperty("tooltipText",e)}_renderTooltipText(){qt.hasText(this.tooltipText)?yo.install(this.$container,{parent:this,text:this.tooltipText}):yo.uninstall(this.$container)}}class _g extends Y{constructor(){super(),this.overflowEnabled=!0,this.$overflowIcon=null,this.overflowVisible=!1,this.overflow=null,this.tags=[],this.clickable=!1}_render(){this.$container=this.$parent.appendDiv("tag-bar"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new fg(this)),this._installTooltipSupport()}_renderProperties(){super._renderProperties(),this._renderTags(),this._renderOverflowVisible()}_remove(){this.$overflowIcon=null,this.overflowVisible=!1,this.closeOverflowPopup(),this._uninstallTooltipSupport(),super._remove()}setTags(e){this.setProperty("tags",e)}updateTags(){this.rendered&&this._renderTags()}_renderTags(){let e=me.ensure(this.tags);this.renderTags(this.$container,e,this.enabledComputed),this.invalidateLayoutTree()}setClickable(e){this.setProperty("clickable",e)}_renderClickable(){this._renderTagsClickable(this.$container.children(".tag-element")),this.invalidateLayoutTree()}_onTagClick(e){let t=_g.getTagData(n()(e.currentTarget));return this._triggerTagClick(t),!1}_triggerTagClick(e){this.trigger("tagClick",{tag:e})}_renderEnabled(){super._renderEnabled(),this._renderTagsRemovable(this.$container.children(".tag-element")),this.invalidateLayoutTree()}_onTagRemoveClick(e){return this.enabledComputed&&this.removeTagByElement(n()(e.currentTarget)),!1}removeTagByElement(e){let t=_g.getTagData(e);t&&this._triggerTagRemove(t,e)}_triggerTagRemove(e,t){this.trigger("tagRemove",{tag:e,$tag:t})}_onOverflowIconMousedown(e){return this.toggleOverflowPopup(),!1}isOverflowIconFocused(){if(!this.$overflowIcon)return!1;let e=this.$container.activeElement();return this.$overflowIcon.is(e)}openOverflowPopup(){this.overflow||(this.$overflowIcon.addClass("selected"),this.overflow=this._createOverflowPopup(),this.overflow.open(),this.overflow.one("destroy",(e=>{this.$overflowIcon&&this.$overflowIcon.removeClass("selected"),this.overflow=null})))}_createOverflowPopup(){return x.create("TagBarOverflowPopup",{parent:this,closeOnAnchorMouseDown:!1,focusableContainer:!0,$anchor:this.$overflowIcon,cssClass:this.cssClass})}closeOverflowPopup(){this.overflow&&this.overflow.close()}toggleOverflowPopup(){this.overflow?this.closeOverflowPopup():this.openOverflowPopup()}_installTooltipSupport(){yo.install(this.$container,{parent:this,selector:".tag-text",text:this._tagTooltipText.bind(this),arrowPosition:50,arrowPositionUnit:"%",nativeTooltip:!Qe.get().isCustomEllipsisTooltipPossible()})}_uninstallTooltipSupport(){yo.uninstall(this.$container)}_tagTooltipText(e){return e.isContentTruncated()?e.text():null}_removeFocusFromTagElements(){_g.findFocusableTagElements(this.$container).removeClass("focused").setTabbable(!1)}focus(){this.$container.addClass("focused"),this._removeFocusFromTagElements(),this.closeOverflowPopup()}blur(){this.$container.removeClass("focused"),this.overflow&&this.overflow.$container.has(event.relatedTarget)||this.closeOverflowPopup()}setOverflowVisible(e){this.setProperty("overflowVisible",e)}_renderOverflowVisible(){this.overflowVisible?this.$overflowIcon||(this.$overflowIcon=this.$container.prependDiv("overflow-icon").on("mousedown",this._onOverflowIconMousedown.bind(this))):this.$overflowIcon&&(this.$overflowIcon.remove(),this.$overflowIcon=null)}_updateErrorStatusClasses(e,t){super._updateErrorStatusClasses(e,t),this.$container.removeClass(iu.SEVERITY_CSS_CLASSES),this.$container.addClass(e)}visibleTags(){if(!this.rendered)return[];let e=[];return this.$container.find(".tag-element:not(.hidden)").each((function(){e.push(_g.getTagData(n()(this)))})),e}renderTags(e,t){e.find(".tag-element").remove(),t.forEach((t=>this.renderTag(e,t)));let i=e.children(".tag-element");this._renderTagsClickable(i),this._renderTagsRemovable(i)}renderTag(e,t){let i=e.appendDiv("tag-element").data("tag",t);return i.appendSpan("tag-text",t),i}_renderTagsClickable(e){e.each(((e,t)=>{let i=n()(t),s=i.children(".tag-text"),r=i.data("click-handler");this.clickable?r||(r=this._onTagClick.bind(this),i.data("click-handler",r),s.on("mousedown",r)):(s.off("mousedown",r),i.removeData("click-handler")),i.toggleClass("clickable",this.clickable)}))}_renderTagsRemovable(e){e.each(((e,t)=>{let i=n()(t),s=i.children(".tag-remove-icon"),r=i.data("remove-handler");this.enabledComputed?r||(r=this._onTagRemoveClick.bind(this),i.data("remove-handler",r),i.appendSpan("tag-remove-icon").on("click",r)):(s.off("click",r),s.remove(),i.removeData("remove-handler")),i.toggleClass("removable",this.enabledComputed)}))}static findFocusedTagElement(e){return e.find(".tag-element.focused")}static findFocusableTagElements(e){return e.find(".tag-element:not(.hidden),.overflow-icon")}static focusFirstTagElement(e){this.focusTagElement(this.firstTagElement(e))}static firstTagElement(e){return e.find(".tag-element").first()}static focusTagElement(e){e.setTabbable(!0).addClass("focused").focus()}static unfocusTagElement(e){e.setTabbable(!1).removeClass("focused")}static getTagData(e){let t=e.data("tag");return t||e.parent().data("tag")}}class fg extends _r{constructor(e){super(),this.tagBar=e}layout(e){let t=fr.get(e);if(this.tagBar.tags&&this.tagBar.tags.length>0){let i,s,r=t.availableSize().subtract(t.insets()).width,o=0,l=!1,a=e.find(".tag-element"),h=a.length,d=[];for(a.removeClass("hidden"),s=h-1;s>=0&&(i=n()(a[s]),d[s]=pr.size(i,{includeMargin:!0}),l=o+d[s].width>r,!l);s--)o+=d[s].width;if(this.tagBar.setOverflowVisible(l),l)for(o=pr.size(this.tagBar.$overflowIcon,{includeMargin:!0}).width,s=h-1;s>=0;s--){i=n()(a[s]),d[s]?o+d[s].width>r?i.addClass("hidden"):o+=d[s].width:i.addClass("hidden")}}}preferredLayoutSize(e,t){let i=fr.get(e),s=this.tagBar.tags&&this.tagBar.tags.length>0,r=i.availableSize(),o=0,l=0;if(!s)return new sr(0,r.height);let a=e.find(".tag-element");return a.removeClass("hidden"),a.each(((e,t)=>{let i=pr.size(n()(t),{includeMargin:!0});o+=i.width,l=Math.max(i.height,l)})),new sr(o,l).add(i.insets())}}class bg extends Ao{constructor(){super(),this.windowPaddingX=0,this.windowPaddingY=0,this._tagBarPropertyChangeListener=null,this.initialFocus=function(){return _g.firstTagElement(this.$body).setTabbable(!0).addClass("focused")[0]}}_init(e){super._init(e),this._tagBarPropertyChangeListener=this._onTagBarPropertyChange.bind(this),this.parent.on("propertyChange",this._tagBarPropertyChangeListener)}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStrokes([new Qp(this._createFieldAdapter()),new Zp(this._createFieldAdapter())])}_destroy(){this.parent.off("propertyChange",this._tagBarPropertyChangeListener),super._destroy()}_render(){super._render(),this.$container.addClass("tag-overflow-popup"),this.$body=this.$container.appendDiv("popup-body")}_createLayout(){return new yg(this)}_renderProperties(){super._renderProperties(),this._renderTags()}_renderTags(){let e=this.parent,t=e.visibleTags(),i=me.ensure(e.tags).filter((e=>-1===t.indexOf(e)));e.renderTags(this.$body,i),this.rendering||this.invalidateLayoutTree()}_focusFirstTagElement(){_g.focusFirstTagElement(this.$body)}_onTagRemoveClick(e){this.parent._onTagRemoveClick(e)}_onTagBarPropertyChange(e){if("tags"===e.propertyName){let e=me.ensure(this.parent.tags),t=this.parent.visibleTags(),i=e.length;0===i||i===t.length?this.close():(this._renderTags(),this._focusFirstTagElement())}}_createFieldAdapter(){return bg.createFieldAdapter(this)}static createFieldAdapter(e){return{$container:()=>e.$body,enabled:()=>!0,focus:()=>{},one:(t,i)=>{e.one(t,i)},off:(t,i)=>{e.off(t,i)},removeTag:t=>{e.parent.parent.removeTag(t)}}}}class yg extends Ro{preferredLayoutSize(e,t){let i=super.preferredLayoutSize(e,t);return i.width=pr.size(this.popup.$body,{exact:!0}).width,i.width+=this.popup.htmlComp.insets().horizontal(),i}}class wg extends Y{constructor(){super(),this.displayStyle=wg.DisplayStyle.DEFAULT,this.filterAccepted=!0,this.gridData=null,this.gridDataHints=new lu,this.colorScheme=null,this.selected=!1,this.selectable=!1}_createLoadingSupport(){return new z({widget:this})}_init(e){super._init(e),this._setGridDataHints(this.gridDataHints),this._setColorScheme(this.colorScheme),this._setSelectable(this.selectable)}_render(){this.$container=this.$parent.appendDiv("tile"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Or)}_renderProperties(){super._renderProperties(),this._renderColorScheme(),this._renderSelectable(),this._renderSelected(),this._renderDisplayStyle()}_postRender(){this.$container.addClass("tile"),this.htmlComp.layout.animateClasses=["animate-visible","animate-invisible","animate-insert","animate-remove"]}_renderDisplayStyle(){this.$container.toggleClass("default-tile",this.displayStyle===wg.DisplayStyle.DEFAULT)}setGridDataHints(e){this.setProperty("gridDataHints",e),this.rendered&&this.parent.invalidateLogicalGrid()}_setGridDataHints(e){e||(e=new lu),this._setProperty("gridDataHints",lu.ensure(e))}setColorScheme(e){this.setProperty("colorScheme",e)}_setColorScheme(e){let t={scheme:ve.ColorSchemeId.DEFAULT,inverted:!1};e=ve.ensureColorScheme(e,!0),e=n().extend({},t,e),this._setProperty("colorScheme",e)}_renderColorScheme(){ve.toggleColorSchemeClasses(this.$container,this.colorScheme)}setSelected(e){e&&!this.selectable||this.setProperty("selected",e)}_renderSelected(){this.$container.toggleClass("selected",this.selected)}setSelectable(e){this.setProperty("selectable",e)}_setSelectable(e){this._setProperty("selectable",e),this.selectable||this.setSelected(!1)}_renderSelectable(){this.$container.toggleClass("selectable",this.selectable)}setFilterAccepted(e){this.setProperty("filterAccepted",e)}_renderFilterAccepted(){this._renderVisible()}_renderVisible(){this.rendering?this.$container.setVisible(this.isVisible()):this.removalPending||(this.isVisible()?(this.$container.addClass("invisible"),this.$container.setVisible(!0),this.session.layoutValidator.schedulePostValidateFunction((()=>{this.rendered&&this.isVisible()&&(this.$container.removeClass("invisible animate-invisible"),this.$container.addClassForAnimation("animate-visible"),this.$container.oneAnimationEnd((()=>{Yn.update(this.parent.get$Scrollable())})))}))):(this.$container.removeClass("invisible animate-visible"),this.$container.addClassForAnimation("animate-invisible"),this.$container.oneAnimationEnd((()=>{this.$container.setVisible(this.isVisible()),Yn.update(this.parent.get$Scrollable())}))),this.invalidateParentLogicalGrid())}isVisible(){return this.visible&&this.filterAccepted}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(wg,"DisplayStyle",{DEFAULT:"default",PLAIN:"plain"});class Cg extends j{constructor(){super()}}const vg="> .tile";class Tg extends Y{constructor(){super(),this.animateTileRemoval=!0,this.animateTileInsertion=!0,this.comparator=null,this._doubleClickSupport=new et,this.empty=!1,this.filters=[],this.filteredTiles=[],this.filteredElementsDirty=!0,this.focusedTile=null,this.gridColumnCount=4,this.prefGridColumnCount=this.gridColumnCount,this.logicalGrid=x.create("scout.HorizontalGrid"),this.layoutConfig=null,this.menus=[],this.multiSelect=!0,this.renderAnimationEnabled=!1,this.selectable=!1,this.selectedTiles=[],this.selectionHandler=new Eg(this),this.scrollable=!0,this.startupAnimationDone=!1,this.startupAnimationEnabled=!1,this.tiles=[],this.tileRemovalPendingCount=0,this.viewRangeSize=0,this.viewRangeRendered=new Mi(0,0),this.virtual=!1,this.virtualScrolling=null,this.withPlaceholders=!1,this.$filterFieldContainer=null,this.textFilterEnabled=!1,this.filterSupport=this._createFilterSupport(),this.createTextFilter=null,this.updateTextFilterText=null,this._filterMenusHandler=this._filterMenus.bind(this),this._renderViewPortAfterAttach=!1,this._scrollParentScrollHandler=this._onScrollParentScroll.bind(this),this._addWidgetProperties(["tiles","selectedTiles","menus"]),this._addPreserveOnPropertyChangeProperties(["selectedTiles"]),this.$fillBefore=null,this.$fillAfter=null}_init(e){super._init(e),this._setGridColumnCount(this.gridColumnCount),this._setLayoutConfig(this.layoutConfig),this._initVirtualScrolling(),this._initTiles(),this.setFilters(this.filters,!1),this.filter(),this.updateFilteredElements(),this._setMenus(this.menus)}_createKeyStrokeContext(){return new Zr}_initVirtualScrolling(){this.virtualScrolling=this._createVirtualScrolling()}_createVirtualScrolling(){return new Xn({widget:this,enabled:this.virtual,viewRangeSize:this.viewRangeSize,rowHeight:this._heightForRow.bind(this),rowCount:this.rowCount.bind(this),_renderViewRange:this._renderViewRange.bind(this)})}_createLoadingSupport(){return new z({widget:this})}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new Hg(this),new Vg(this),new Wg(this),new zg(this),new Gg(this),new Ug(this),new Kg(this),new tn(this,this.showContextMenu,this)])}_initTiles(){this.tiles.forEach((function(e){this._initTile(e)}),this)}_initTile(e){e.setSelectable(this.selectable),e.setSelected(this.selectedTiles.indexOf(e)>=0),e.setParent(this),e.setFilterAccepted(!0)}_render(){this.$container=this.$parent.appendDiv("tile-grid"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout()),this.$container.on("mousedown",vg,this._onTileMouseDown.bind(this)).on("click",vg,this._onTileClick.bind(this)).on("dblclick",vg,this._onTileDoubleClick.bind(this)),this.$filterFieldContainer=this.$container.prependDiv("filter-field-container")}_createLayout(){return new Pg(this,this.layoutConfig)}_renderProperties(){super._renderProperties(),this._renderLayoutConfig(),this._renderScrollable(),this._renderVirtual(),this._renderSelectable(),this._renderEmpty(),this._renderTextFilterEnabled()}_remove(){this.$fillBefore=null,this.$fillAfter=null,this.filterSupport.remove(),this.viewRangeRendered=new Mi(0,0),this._updateVirtualScrollable(),super._remove()}_renderOnAttach(){super._renderOnAttach(),this._renderViewPortAfterAttach&&(this._renderViewPort(),this._renderViewPortAfterAttach=!1)}_renderEnabled(){super._renderEnabled(),this._updateTabbable()}_updateTabbable(){this.textFilterEnabled||this.selectable?this.$container.setTabbableOrFocusable(this.enabledComputed):this.$container.setTabbable(!1)}insertTile(e){this.insertTiles([e])}insertTiles(e,t){0!==(e=me.ensure(e)).length&&this.setTiles(this.tiles.concat(e),t)}deleteTile(e){this.deleteTiles([e])}deleteTiles(e,t){if(0===(e=me.ensure(e)).length)return;let i=this.tiles.slice();me.removeAll(i,e),this.setTiles(i,t)}deleteAllTiles(){this.setTiles([])}setTiles(e,t){if(e=me.ensure(e),Ai.equals(this.tiles,e))return;e=this._createChildren(e),this.withPlaceholders&&x.nvl(t,!0)&&this._deletePlaceholders(e);let i=me.diff(e,this.tiles);if(this._insertTiles(i),this.withPlaceholders&&x.nvl(t,!0)){let t=this.placeholders();t=t.slice(Math.min(this._filterTiles(i).length,t.length),t.length),me.pushAll(e,t)}let s=me.diff(this.tiles,e);this._deleteTiles(s),this._sort(e),this.filteredElementsDirty=this.filteredElementsDirty||s.length>0||i.length>0||!me.equals(this.tiles,e);let r=this.tiles;this._setProperty("tiles",e),this.updateFilteredElements(),this.rendered&&(this._renderTileDelta(),this._renderTileOrder(r),this._renderInsertTiles(i))}_insertTiles(e){0!==e.length&&e.forEach((function(e){this._insertTile(e)}),this)}_insertTile(e){this._initTile(e),this._applyFilters([e]),!this.virtual&&this.rendered&&this._renderTile(e)}_renderTile(e){e.removalPending?e.one("remove",(()=>{e.rendered||(this._renderTile(e),this._renderTileVisibleForFilter(e),0===this.tileRemovalPendingCount&&this.invalidateLayoutTree())})):(e.render(),e.setLayoutData(new vr(e)),e.$container.addClass("newly-rendered"))}_renderInsertTiles(e){e.forEach((function(e){e.rendered&&(e.$container.addClass("invisible"),this.one("layoutAnimationDone",(()=>{e.rendered&&(e.$container.removeClass("invisible"),this._animateTileInsertion(e)&&e.$container.addClassForAnimation("animate-insert"))})))}),this),this.htmlComp.layouting||this.invalidateLayoutTree()}_removeAllTiles(){this.tiles.forEach((e=>{e.remove()})),this.viewRangeRendered=new Mi(0,0)}_renderAllTiles(){this.tiles.forEach((function(e){this._renderTile(e)}),this)}_deleteTiles(e){0!==e.length&&(e.forEach((function(e){this._deleteTile(e)}),this),this.deselectTiles(e),this.rendered&&!this.htmlComp.layouting&&this.invalidateLayoutTree())}_deleteTile(e){this._animateTileRemoval(e)&&(e.animateRemoval=!0),e.owner===this?e.destroy():this.rendered&&e.remove(),this._onAnimatedTileRemove(e),e.animateRemoval=!1,e===this.focusedTile&&this.setFocusedTile(null)}_animateTileRemoval(e){return this.animateTileRemoval&&e&&e.isVisible()&&!(e instanceof Xg)}_animateTileInsertion(e){return this.animateTileInsertion&&e&&e.isVisible()&&!(e instanceof Xg)}_onAnimatedTileRemove(e){e.removalPending&&(this.tileRemovalPendingCount++,e.one("remove",(()=>{this.tileRemovalPendingCount--,this.rendered&&0===this.tileRemovalPendingCount&&!this.htmlComp.layouting&&this.invalidateLayoutTree()})))}setComparator(e){this.comparator!==e&&(this.comparator=e)}sort(){let e=this.tiles.slice();if(this._sort(e),me.equals(this.tiles,e))return;let t=this.tiles;this._setProperty("tiles",e),this.filteredElementsDirty=!0,this.updateFilteredElements(),this.rendered&&(this._renderTileDelta(),this._renderTileOrder(t))}_sort(e){if(null===this.comparator)return;let t=[];this.withPlaceholders&&(t=this._deletePlaceholders(e)),e.sort(this.comparator),me.pushAll(e,t)}invalidateLayoutTree(e){this.tileRemovalPendingCount>0||super.invalidateLayoutTree(e)}setGridColumnCount(e){this.setProperty("gridColumnCount",e)}_setGridColumnCount(e){this._setProperty("gridColumnCount",e),this.prefGridColumnCount=e,this.invalidateLogicalGrid()}setLayoutConfig(e){this.setProperty("layoutConfig",e)}_setLayoutConfig(e){e||(e=new Fg),this._setProperty("layoutConfig",Fg.ensure(e))}_renderLayoutConfig(){let e=this.htmlComp.layout.minWidth;this.layoutConfig.applyToLayout(this.htmlComp.layout),this.virtualScrolling&&(this.virtualScrolling.setMinRowHeight(this._minRowHeight()),this.setViewRangeSize(this.virtualScrolling.viewRangeSize,!1)),e!==this.htmlComp.layout.minWidth&&this._renderScrollable(),this.invalidateLayoutTree()}_setMenus(e,t){this.updateKeyStrokes(e,t),this._setProperty("menus",e)}_filterMenus(e,t,i,s,r){return al.filterAccordingToSelection("TileGrid",this.selectedTiles.length,e,t,i,s,r)}showContextMenu(e){this.session.onRequestsDone(this._showContextMenu.bind(this,e))}_showContextMenu(e){if(e=e||{},!this.rendered||!this.attached)return;if(0===this.selectedTiles.length)return;let t=e.menuItems||this._filterMenus(this.menus,hl.CONTEXT_MENU,!0,!1);if(0===t.length)return;let i=x.nvl(e.pageX,null),s=x.nvl(e.pageY,null);if(null===i||null===s){let e,t=this.$container.scrollParent();0===t.length&&(t=this.$container);let r=pr.offsetBounds(t),n=this.focusedTile||me.last(this.selectedTiles);e=this.isTileInView(n)?n.$container.offset():this.$container.offset(),i=e.left+10,s=e.top+10,i=Math.min(Math.max(i,r.x+1),r.right()-1),s=Math.min(Math.max(s,r.y+1),r.bottom()-1)}this.contextMenu&&this.contextMenu.close(),this.contextMenu=x.create("ContextMenuPopup",{parent:this,menuItems:t,location:{x:i,y:s},$anchor:this.$container,menuFilter:e.menuFilter||this._filterMenusHandler}),this.contextMenu.open()}setScrollable(e){this.setProperty("scrollable",e)}_renderScrollable(){this._uninstallScrollbars(),this.scrollable?this._installScrollbars({axis:this.layoutConfig.minWidth>0?"both":"y"}):this.layoutConfig.minWidth>0&&this._installScrollbars({axis:"x"}),this.$container.toggleClass("scrollable",this.scrollable),this._updateVirtualScrollable(),this.invalidateLayoutTree()}_onScroll(){let e=this.$container[0].scrollTop,t=this.$container[0].scrollLeft;this.scrollTop!==e&&this.virtual&&this.htmlComp.layout.updateViewPort(),this.scrollTop=e,this.scrollLeft=t}_onScrollParentScroll(e){this.htmlComp.layout.updateViewPort()}setWithPlaceholders(e){this.setProperty("withPlaceholders",e)}_renderWithPlaceholders(){this.invalidateLayoutTree()}fillUpWithPlaceholders(){this.withPlaceholders?(this._deleteObsoletePlaceholders(),this._insertMissingPlaceholders()):this._deleteAllPlaceholders()}tilesWithoutPlaceholders(){return this.withPlaceholders?this.tiles.filter((e=>!(e instanceof Xg))):this.tiles}_createPlaceholders(){let e,t,i=this.gridColumnCount,s=this.filteredTiles,r=[];if(t=s.length>0?s[s.length-1].gridData.x:-1,t===i-1)return[];e=i-1-t;for(let t=0;t<e;t++)r.push(this._createPlaceholder());return r}_createPlaceholder(){return x.create("PlaceholderTile",{parent:this})}_deleteObsoletePlaceholders(){let e=[],t=!1;this.placeholders().forEach((function(i){0===i.gridData.x&&this.filteredTiles[0]!==i&&(t=!0),t&&e.push(i)}),this),this.deleteTiles(e,!1)}_deleteAllPlaceholders(){this.deleteTiles(this.placeholders(),!1)}placeholders(){let e,t=[];for(e=this.tiles.length-1;e>=0&&this.tiles[e]instanceof Xg;e--)me.insert(t,this.tiles[e],0);return t}_insertMissingPlaceholders(){let e=this._createPlaceholders();this.insertTiles(e,!1)}_deletePlaceholders(e){let t,i=[];for(t=e.length-1;t>=0;t--)e[t]instanceof Xg&&(i.push(e[t]),me.remove(e,e[t]));return i.reverse()}_replacePlaceholders(e,t){let i=me.findIndexFromReverse(e,e.length-1,(e=>!(e instanceof Xg))),s=e.length-1-i;for(let r=1;r<=s;r++){let s=e[i+r];!t[r-1]||t[r-1]instanceof Xg||me.remove(e,s)}}validateLogicalGrid(){this.logicalGrid.dirty&&(this.logicalGrid.validate(this),this.fillUpWithPlaceholders(),this.logicalGrid.setDirty(!0),this.logicalGrid.validate(this))}_setLogicalGrid(e){super._setLogicalGrid(e),this.logicalGrid&&this.logicalGrid.setGridConfig(new xg)}setFocusedTile(e){if(this.focusedTile===e)return;if(this.focusedTile=e,!this.rendered||!e||this.isFocused())return;0!==this.$container.scrollParents().length&&this.focus({preventScroll:!0})}setSelectable(e){this.setProperty("selectable",e),e||this.deselectAllTiles(),this.tiles.forEach((t=>{t.setSelectable(e)}))}_renderSelectable(){this.$container.toggleClass("selectable",this.selectable),this._updateTabbable(),this.invalidateLayoutTree()}setMultiSelect(e){this.setProperty("multiSelect",e)}selectTiles(e){if(e=me.ensure(e),e=this._createChildren(e),e=this._filterTiles(e),this.selectable||(e=[]),!this.multiSelect&&e.length>1&&(e=[e[0]]),me.equals(this.selectedTiles,e))return;let t=this.selectedTiles;me.removeAll(t,e),t.forEach((function(e){e.setSelected(!1),e===this.focusedTile&&this.setFocusedTile(null)}),this),e.forEach((e=>{e.setSelected(!0)}),this),this.setProperty("selectedTiles",e.slice())}selectTile(e){this.selectTiles([e])}selectAllTiles(){this.selectTiles(this.filteredTiles)}deselectTiles(e){e=me.ensure(e);let t=this.selectedTiles.slice();me.removeAll(t,e)&&this.selectTiles(t)}deselectTile(e){this.deselectTiles([e])}deselectAllTiles(){this.selectTiles([])}toggleSelection(){this.selectedTiles.length===this.filteredTiles.length?this.deselectAllTiles():this.selectAllTiles()}addTilesToSelection(e){e=me.ensure(e),this.selectTiles(this.selectedTiles.concat(e))}addTileToSelection(e){this.addTilesToSelection([e])}isTileInView(e){let t=this.$container.scrollParent();return 0===t.length&&(t=this.$container),!!(e&&e.$container&&t)&&pr.offsetBounds(e.$container).intersects(pr.offsetBounds(t))}_onTileMouseDown(e){if(this._doubleClickSupport.mousedown(e),this._selectTileOnMouseDown(e),3===e.which)return this.showContextMenu({pageX:e.pageX,pageY:e.pageY}),!1}_onTileClick(e){let t=n()(e.currentTarget).data("widget");if(t instanceof Xg)return;if(this._doubleClickSupport.doubleClicked())return;let i=e.which;this._triggerTileClick(t,i)}_triggerTileClick(e,t){let i={tile:e,mouseButton:t};this.trigger("tileClick",i)}_onTileDoubleClick(e){let t=n()(e.currentTarget).data("widget");t instanceof Xg||this.doTileAction(t)}doTileAction(e){e&&this._triggerTileAction(e)}_triggerTileAction(e){this.trigger("tileAction",{tile:e})}setSelectionHandler(e){this.selectionHandler=e}_selectTileOnMouseDown(e){this.selectionHandler.selectTileOnMouseDown(e)}scrollTo(e,t){this.ensureTileRendered(e),this.htmlComp.layout.updateViewPort(!0),e.reveal(t)}revealSelection(){this.rendered?this.selectedTiles.length>0&&this.scrollTo(this.selectedTiles[0]):this.session.layoutValidator.schedulePostValidateFunction(this.revealSelection.bind(this))}addFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.addFilter(e,t)}removeFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.removeFilter(e,t)}setFilters(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.setFilters(e,t)}filter(){this.filterSupport.filter()}_applyFilters(e,t){return this.filterSupport.applyFilters(e,t)}_createFilterSupport(){return new q({widget:this,$container:()=>this.$filterFieldContainer,getElementsForFiltering:()=>this.tiles,createTextFilter:this._createTextFilter.bind(this),updateTextFilterText:this._updateTextFilterText.bind(this)})}_createTextFilter(){return Ai.isFunction(this.createTextFilter)?this.createTextFilter():new Dg}_updateTextFilterText(e,t){return Ai.isFunction(this.updateTextFilterText)?this.updateTextFilterText(e,t):e instanceof Dg&&e.setText(t)}setTextFilterEnabled(e){this.setProperty("textFilterEnabled",e)}isTextFilterFieldVisible(){return this.textFilterEnabled}_renderTextFilterEnabled(){this._updateTabbable(),this.filterSupport.renderFilterField()}updateFilteredElements(e,t){this.filteredElementsDirty?(this.setProperty("filteredTiles",this._filterTiles()),this.invalidateLogicalGrid(!1),this.filteredElementsDirty=!1,e&&(e.newlyHidden.some((e=>e===this.focusedTile))&&this.setFocusedTile(null),this.deselectTiles(e.newlyHidden),this.rendered&&!this.removing&&(this._renderTileDelta(e),this._renderTileOrder(this.tiles))),this._updateEmpty()):this._updateEmpty()}_updateEmpty(){this.setEmpty(0===this.filteredTiles.length)}setEmpty(e){this.setProperty("empty",e)}_renderEmpty(){this.$container.toggleClass("empty",this.empty),this.invalidateLayoutTree()}_filterTiles(e){return e=x.nvl(e,this.tiles),0===this.filters.length?e.slice():e.filter((e=>e.filterAccepted))}findTileIndexAt(e,t,i,s){return i=x.nvl(i,0),me.findIndexFrom(this.filteredTiles,i,((i,s)=>i.gridData.x===e&&i.gridData.y===t),s)}findTilesInRange(e,t){if(e.equals(this.virtualScrolling.maxViewRange()))return this.filteredTiles;let i=[];for(let s=e.from;s<e.to;s++)this.eachTileInRow(s,(e=>{t&&!t(e)||i.push(e)}));return i}findTilesInRow(e){let t=[];return this.eachTileInRow(e,(e=>{t.push(e)})),t}eachTileInRow(e,t){let i=e*this.gridColumnCount;for(let e=i;e<i+this.gridColumnCount;e++)this.filteredTiles[e]&&t(this.filteredTiles[e],e);return[]}setVirtual(e){this.setProperty("virtual",e)}_setVirtual(e){this._setProperty("virtual",e),this.virtualScrolling.setEnabled(this.virtual)}_renderVirtual(){this._updateVirtualScrollable(),this.rendering||this.setViewRangeSize(this.calculateViewRangeSize(),!1),this.rendered&&(this._removeAllTiles(),this.virtual&&this._renderFiller()),this.virtual||this._renderAllTiles(),this._renderViewPort(),this.invalidateLayoutTree()}_updateVirtualScrollable(){let e=this.virtualScrolling.$scrollable;e&&e.off("scroll",this._scrollParentScrollHandler),this.virtual&&!this.removing?this.scrollable?this.virtualScrolling.set$Scrollable(this.$container):(this.virtualScrolling.set$Scrollable(this.$container.scrollParent()),this.virtualScrolling.$scrollable.on("scroll",this._scrollParentScrollHandler)):this.virtualScrolling.set$Scrollable(null)}calculateViewRangeSize(){return this.virtualScrolling.calculateViewRangeSize()}setViewRangeSize(e,t){this.viewRangeSize!==e&&(this._setProperty("viewRangeSize",e),this.virtualScrolling.setViewRangeSize(e,t))}_heightForRow(e){let t=0;if(t=this.htmlComp.layout.rowHeight,e!==this.rowCount()-1&&(t+=this.htmlComp.layout.vgap),!fi.isNumber(t))throw new Error("Calculated height is not a number: "+t);return t}_minRowHeight(){return this.htmlComp.layout.rowHeight+this.htmlComp.layout.vgap/2}rowCount(e){return e=x.nvl(e,this.gridColumnCount),Math.ceil(this.filteredTiles.length/e)}_renderViewPort(){this.isAttachedAndRendered()?this.virtual&&this.virtualScrolling._renderViewPort():this._renderViewPortAfterAttach=!0}_renderViewRange(e){if(e.equals(this.viewRangeRendered))return void(0===e.size()&&this._renderFiller());this.viewRangeRendered.subtract(e).filter((e=>e.size()>0)).forEach((e=>{this._removeTilesInRange(e)})),e.subtract(this.viewRangeRendered).filter((e=>e.size()>0)).forEach((e=>{this._renderTilesInRange(e)})),this._renderFiller()}_renderTilesInRange(e){let t=0;if(0===this.filteredTiles.length)return;e=this.virtualScrolling.maxViewRange().intersect(e);let i=this.viewRangeRendered.union(e);if(2===i.length)throw new Error("Can only prepend or append rows to the existing range. Existing: "+this.viewRangeRendered+". New: "+i);this.viewRangeRendered=i[0];for(let i=e.from;i<e.to;i++)this.eachTileInRow(i,s.bind(this)),t++;function s(e){e.rendered||(this._renderTile(e))}n().log.isTraceEnabled()&&(n().log.trace(t+" new rows rendered from "+e),n().log.trace(this._rowsRenderedInfo()))}_renderTileDelta(e){if(!this.virtual)return[];let t=this.renderedTiles(),i=this.virtualScrolling.calculateCurrentViewRange(),s=this.findTilesInRange(i),r=me.diff(t,s),n=me.diff(s,t);return e&&e.newlyHidden.forEach((function(e){e.rendered&&this._removeTileByFilter(e)}),this),r.forEach((e=>{e.remove()})),n.forEach((function(e){this._renderTile(e)}),this),e&&(this.htmlComp.suppressInvalidate=!0,e.newlyShown.forEach((function(e){e.rendered&&this._renderTileVisibleForFilter(e)}),this),this.htmlComp.suppressInvalidate=!1),this.viewRangeRendered=i,this._renderFiller(),this.htmlComp.layouting||this.invalidateLayoutTree(),n}_removeTileByFilter(e){e.$container.removeClass("animate-invisible"),e.animateRemoval=!0,e.animateRemovalClass="animate-invisible",e.remove(),this._onAnimatedTileRemove(e),e.animateRemoval=!1,setTimeout((()=>{e.animateRemovalClass="animate-remove"}))}_renderTileVisibleForFilter(e){e.filterAccepted&&!e.$container.hasClass("animate-visible")&&(e.removalPending||(e.$container.setVisible(!1),e._renderVisible()))}_renderTileOrder(e){let t=!1;this.tiles.forEach((function(i,s){if(e[s]!==i||t){if(this.virtual&&!i.rendered)return;t=!0,i.$container.appendTo(this.$container)}}),this),t&&!this.virtual&&this.invalidateLayoutTree()}_rowsRenderedInfo(){return this.$container.children(".tile").length+" tiles rendered in range "+("("+this.viewRangeRendered+")")}_removeTilesInRange(e){let t=0,i=this.viewRangeRendered.subtract(e);if(2===i.length)throw new Error("Can only remove rows at the beginning or end of the existing range. "+this.viewRangeRendered+". New: "+i);this.viewRangeRendered=i[0];for(let i=e.from;i<e.to;i++)this._removeTilesInRow(i),t++;n().log.isTraceEnabled()&&(n().log.trace(t+" rows removed from "+e+"."),n().log.trace(this._rowsRenderedInfo()))}_removeTilesInRow(e){this.findTilesInRow(e).forEach((e=>{e.remove()}))}rowHasRenderedTiles(e){return this.findTilesInRow(e).some((e=>e.rendered&&!e.removing))}ensureTileRendered(e){if(!e.rendered){let t=e.gridData.y;this.virtualScrolling._renderViewRangeForRowIndex(t),this.invalidateLayoutTree()}}_renderFiller(){this.$fillBefore||(this.$fillBefore=this.$container.prependDiv("filler"));let e=this._calculateFillerHeight(new Mi(0,this.viewRangeRendered.from));this.$fillBefore.cssHeight(e),this.$fillBefore.css("width","100%"),n().log.isTraceEnabled()&&n().log.trace("FillBefore height: "+e),this.$fillAfter||(this.$fillAfter=this.$container.appendDiv("filler")),this.$fillAfter.appendTo(this.$container);let t=this._calculateFillerHeight(new Mi(this.viewRangeRendered.from,this.viewRangeRendered.to));this.$fillAfter.cssTop(e+t);let i=this._calculateFillerHeight(new Mi(this.viewRangeRendered.to,this.rowCount()));this.$fillAfter.cssHeight(i),this.$fillAfter.css("width","100%"),n().log.isTraceEnabled()&&n().log.trace("FillAfter height: "+i)}_calculateFillerHeight(e){let t=0;for(let i=e.from;i<e.to;i++)t+=this._heightForRow(i);return t}renderedTiles(){if(!this.rendered)return[];if(!this.virtual)return this.filteredTiles;let e=[];return this.$container.children(".tile").each(((t,i)=>{let s=x.widget(i);s.removalPending||e.push(s)})),e}}class Sg extends j{constructor(){super(),this._addRemoteProperties(["selectedTiles"]),this._tileFilter=null}_syncSelectedTiles(e){this.addFilterForPropertyName("selectedTiles"),this.widget.selectTiles(e)}_syncTiles(e){this.addFilterForPropertyName("selectedTiles"),this.widget.setTiles(e)}_initProperties(e){super._initProperties(e),Ai.isNullOrUndefined(e.filteredTiles)||(this.tileFilter=x.create("RemoteTileFilter",{tileIds:e.filteredTiles}),e.filters=[this.tileFilter]),delete e.filteredTiles}_syncFilteredTiles(e){Ai.isNullOrUndefined(e)?(this.widget.removeFilter(this.tileFilter),this.tileFilter=null):(this.tileFilter||(this.tileFilter=x.create("RemoteTileFilter"),this.widget.addFilter(this.tileFilter,!1)),this.tileFilter.setTileIds(e),this.widget.filter())}_onWidgetTileClick(e){let t={tile:e.tile.id,mouseButton:e.mouseButton};this._send("tileClick",t)}_onWidgetTileAction(e){let t={tile:e.tile.id};this._send("tileAction",t)}_onWidgetEvent(e){"tileClick"===e.type?this._onWidgetTileClick(e):"tileAction"===e.type?this._onWidgetTileAction(e):super._onWidgetEvent(e)}}class xg extends Cr{constructor(){super()}getGridWidgets(){return this.widget.filteredTiles}}class Pg extends Tr{constructor(e,t){super(e,t),this.containerPos=null,this.containerScrollTop=null,this.tiles=[],this._calculatingPrimitivePrefSize=!1}static getTileDimensions(){if(!(Pg._DEFAULTSIZE instanceof or)){let e=ts.getSize("tile-grid-layout-config","height","height",-1),t=ts.getSize("tile-grid-layout-config","width","width",-1),i=ts.getSize("tile-grid-layout-config","margin-left","marginLeft",-1),s=ts.getSize("tile-grid-layout-config","margin-top","marginTop",-1);Pg._DEFAULTSIZE=new or(i,s,t,e)}return Pg._DEFAULTSIZE}_initDefaults(){super._initDefaults();let e=Pg.getTileDimensions();this.hgap=e.x,this.vgap=e.y,this.columnWidth=e.width,this.rowHeight=e.height,this.maxWidth=-1}updateViewPort(e){let t=this.widget;t.rendered&&(scout.nvl(e,!1)||t._renderViewPort(),this._layout(t.$container),t.trigger("layoutAnimationDone"))}layout(e){let t=this.widget.htmlComp,i=t.layouted||this.widget.startupAnimationEnabled&&!this.widget.startupAnimationDone||this.widget.renderAnimationEnabled;this.tiles=this.widget.renderedTiles(),Yn.setVisible(e,!1),i&&this._storeBounds(this.tiles),this._updateMaxWidth(),this._resetGridColumnCount(),this.widget.invalidateLayout(),this.widget.invalidateLogicalGrid(!1);let s=!1,r=e.outerWidth();for(r=Math.max(r,this.minWidth),t.prefSize().width<=r&&(this._layout(e),s=!0);!s&&this.widget.gridColumnCount>1;)this.widget.gridColumnCount--,this.widget.invalidateLayout(),this.widget.invalidateLogicalGrid(!1),t.prefSize().width<=r&&(this._layout(e),s=!0);if(s||this._layout(e),t.layouted||this.widget._renderScrollTop(),this.widget.virtual&&(!t.layouted||this._sizeChanged(t)||this.widget.withPlaceholders)){this.widget.setViewRangeSize(this.widget.calculateViewRangeSize(),!1);let t=this.widget._renderTileDelta();this._storeBounds(t),me.pushAll(this.tiles,t),this._layout(e)}let o=[];i&&(o=this._animateTiles()),this.widget.startupAnimationDone=!0,o.length>0?n().promiseAll(o).done(this._onAnimationDone.bind(this)):this._onAnimationDone(),this._updateFilterFieldMaxWidth(e)}_sizeChanged(e){return e.sizeCached&&!e.sizeCached.equals(e.size())}_storeBounds(e){e.forEach(((e,t)=>{let i=pr.cssBounds(e.$container);e.$container.data("oldBounds",i),e.$container.data("was-layouted",e.htmlComp.layouted)}),this)}_validateGridData(e){return e.$comp.removeClass("newly-rendered"),super._validateGridData(e)}_layoutCellBounds(e,t){return this.widget.virtual&&this.widget.$fillBefore&&(t.top+=this.widget.$fillBefore.outerHeight(!0)),super._layoutCellBounds(e,t)}_animateTiles(){let e=this.widget.htmlComp,t=e.$comp;this.containerPos=e.offset(),this.containerScrollTop=t.scrollTop(),Yn.setVisible(t,!0),Yn.opacity(t,0);let i=[];return this.tiles.forEach((function(e,t){if(!e.rendered)return;let s=this._animateTile(e);s&&i.push(s),e.$container.removeData("oldBounds"),e.$container.removeData("was-layouted")}),this),i}_animateTile(e){let t=this.widget.htmlComp;if(e.$container.stop(),e.$container.hasClass("invisible")||e.$container.hasClass("animate-visible"))return;let i=pr.cssBounds(e.$container),s=e.$container.data("oldBounds");return e instanceof Xg&&!e.$container.data("was-layouted")&&(s=i.clone()),t.layouted||!this.widget.startupAnimationDone&&this.widget.startupAnimationEnabled||!this.widget.renderAnimationEnabled||(s=new or(.95*i.x,.95*i.y,i.width,i.height)),s.equals(i)||!this._inViewport(i)&&!this._inViewport(s)||!e.$container.data("was-layouted")&&!this._inViewport(i)?void 0:this._animateTileBounds(e,s,i)}_inViewport(e){e=e.translate(this.containerPos.x,this.containerPos.y).translate(0,-this.containerScrollTop);let t=new nr(e.x,e.y),i=new nr(e.x+e.width,e.y+e.height),s=this.widget.$container.scrollParent();return Yn.isLocationInView(t,s)||Yn.isLocationInView(i,s)}_onAnimationDone(){this._updateScrollbar(),this.widget.trigger("layoutAnimationDone")}_animateTileBounds(e,t,i){let s=e.$container[0],r=[s.style.overflow,s.style.overflowX,s.style.overflowY],o=[];return e.$container.cssLeftAnimated(t.x,i.x,{start:e=>{o.push(e)},queue:!1}).cssTopAnimated(t.y,i.y,{start:e=>{o.push(e)},queue:!1}).cssWidthAnimated(t.width,i.width,{start:e=>{o.push(e)},queue:!1}).cssHeightAnimated(t.height,i.height,{start:e=>{o.push(e)},queue:!1}),n().promiseAll(o).then((()=>{s.style.overflow=r[0],s.style.overflowX=r[1],s.style.overflowY=r[2]}))}_updateScrollbar(){Yn.setVisible(this.widget.$container,!0),Yn.opacity(this.widget.$container,1);let e=this.widget.htmlComp;for(;e;){if(e.scrollable){Yn.update(e.$comp,!0);break}e=e.getParent()}}_updateMaxWidth(){let e=this.widget.htmlComp;if(e.$comp.cssPaddingRight(null),this.maxWidth<=0)return;let t=e.$comp.cssPaddingRight(),i=e.size(),s=i.width-Math.min(i.width,this.maxWidth)-e.$comp.cssPaddingLeft()-e.$comp.cssBorderWidthX();s>t&&e.$comp.cssPaddingRight(s)}_resetGridColumnCount(){this.widget.gridColumnCount=this.widget.prefGridColumnCount}preferredLayoutSize(e,t){return t=n().extend({},t),this.widget.virtual?this.virtualPrefSize(e,t):this.primitivePrefSize(e,t)}virtualPrefSize(e,t){let i,s,r=fr.get(e).insets(),n=new sr,o=this.columnWidth,l=this.rowHeight,a=this.hgap,h=this.vgap;if(t.widthHint){s=Math.floor(t.widthHint/(o+a));let e=s*(o+a);return t.widthHint-e>o&&s++,s=Math.max(Math.min(this.widget.prefGridColumnCount,s),1),i=this.widget.rowCount(s),n.width=t.widthHint,n.height=Math.max(i*l+(i-1)*h,0),n.width+=r.horizontal(),n.height+=r.vertical(),n}return s=this.widget.gridColumnCount,i=this.widget.rowCount(),n.width=Math.max(s*o+(s-1)*a,0),n.height=Math.max(i*l+(i-1)*h,0),n.width+=r.horizontal(),n.height+=r.vertical(),n}primitivePrefSize(e,t){if(!t.widthHint||this._calculatingPrimitivePrefSize)return super.preferredLayoutSize(e,t);this._calculatingPrimitivePrefSize=!0;let i=this._primitivePrefSize(t);return this._calculatingPrimitivePrefSize=!1,i}_primitivePrefSize(e){let t,i=this.widget.htmlComp,s=!1,r=this.widget.gridColumnCount,n=e.widthHint;for(e.removeInsetsFromHints=!1,n+=i.insets().horizontal(),this._resetGridColumnCount(),this.widget.invalidateLayout(),this.widget.invalidateLogicalGrid(!1),t=i.prefSize(e),t.width<=n&&(s=!0);!s&&this.widget.gridColumnCount>1;)this.widget.gridColumnCount--,this.widget.invalidateLayout(),this.widget.invalidateLogicalGrid(!1),t=i.prefSize(e),t.width<=n&&(s=!0);return this.widget.gridColumnCount=r,t}_updateFilterFieldMaxWidth(e){let t=fr.get(e),i=t.availableSize().subtract(t.insets()).width;this.widget.$filterFieldContainer.css("--filter-field-max-width",.6*i+"px")}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Pg,"_DEFAULTSIZE",void 0);class Fg extends Sr{constructor(e){super(e)}_extend(e){super._extend(e),(e=e||{}).maxWidth>-2&&(this.maxWidth=e.maxWidth)}applyToLayout(e){super.applyToLayout(e),this.maxWidth&&(e.maxWidth=this.maxWidth)}clone(){return new Fg(this)}static ensure(e){return e?e instanceof Fg?e:new Fg(e):e}}class Eg{constructor(e){this.tileGrid=e}selectTileOnMouseDown(e){if(!this.isSelectable())return;let t=n()(e.currentTarget).data("widget");if(t instanceof Xg)return;if(t.selected&&3===e.which)return;let i=!0;if(e.ctrlKey&&(i=!t.selected),e.ctrlKey&&this.isMultiSelect())i?(this.addTilesToSelection(t),this._checkAndSetFocusedTile(e,t)):(this.deselectTile(t),this._checkAndSetFocusedTile(e,null));else if(e.shiftKey&&this.isMultiSelect()){if(!this.isHorizontalGridActive())return;let i=this.getVisibleTiles(),s=this.getFocusedTile();s||(s=i[0]);let r=this.computeSelectionBetween(i.indexOf(s),i.indexOf(t),!0);r&&(this.selectTiles(r.selectedTiles),this._checkAndSetFocusedTile(e,r.focusedTile))}else i?(this.selectTile(t),this._checkAndSetFocusedTile(e,t)):(this.deselectAllTiles(),this._checkAndSetFocusedTile(e,null))}getFilteredTiles(){return this.tileGrid.filteredTiles}getFilteredTileCount(){return this.tileGrid.filteredTiles.length}getVisibleTiles(){return this.tileGrid.filteredTiles}getVisibleTileCount(){return this.tileGrid.filteredTiles.length}getGridColumnCount(){return this.tileGrid.gridColumnCount}getVisibleGridRowCount(){return this.tileGrid.logicalGrid.gridRows}getVisibleGridX(e){return e.gridData.x}getVisibleGridY(e){return e.gridData.y}getSelectedTiles(e){return this.tileGrid.selectedTiles}isSelectable(){return this.tileGrid.selectable}isMultiSelect(){return this.tileGrid.multiSelect}addTilesToSelection(e){this.tileGrid.addTilesToSelection(e)}selectTile(e){this.tileGrid.selectTile(e)}selectTiles(e){this.tileGrid.selectTiles(e)}deselectTile(e){this.tileGrid.deselectTile(e)}deselectTiles(e){this.tileGrid.deselectTiles(e)}deselectAllTiles(){this.tileGrid.deselectAllTiles()}toggleSelection(){this.tileGrid.toggleSelection()}getFocusedTile(){return this.tileGrid.focusedTile}_checkAndSetFocusedTile(e,t){e.isDefaultPrevented()||t&&t.rendered&&t.$container.hasClass("unfocusable")||this.setFocusedTile(t)}setFocusedTile(e){this.tileGrid.setFocusedTile(e)}scrollTo(e){this.tileGrid.scrollTo(e)}scrollToTop(){this.tileGrid.scrollToTop()}scrollToBottom(){this.tileGrid.scrollToBottom()}findVisibleTileIndexAt(e,t,i,s){return this.tileGrid.findTileIndexAt(e,t,i,s)}getTileGridByRow(e){return e<0||e>=this.getVisibleGridRowCount()?null:this.tileGrid}isHorizontalGridActive(){return this.tileGrid.logicalGrid instanceof Fr}computeSelectionX(e,t){let i=this.getVisibleTiles(),s=null,r=-1,n=this._computeFocusedTile(e,t);return null!==n.selectedTiles?n:(s=n.focusedTile,r=i.indexOf(s),this.computeSelectionBetween(r,r+e,t))}computeSelectionY(e,t){let i=this.getVisibleTiles(),s=null,r=-1,n=-1,o=-1,l=this.getVisibleGridRowCount(),a=this._computeFocusedTile(e,t);if(null!==a.selectedTiles)return a;if(s=a.focusedTile,o=i.indexOf(s),r=this.getVisibleGridY(s),n=this.getVisibleGridX(s),e>0&&r===l-1||e<0&&0===r)return;let h=this.findVisibleTileIndexAt(n,r+e,o,e<0);if(h<0){let t=this.getTileGridByRow(r+e);if(!t)return;h=i.indexOf(me.last(t.filteredTiles))}return this.computeSelectionBetween(o,h,t)}computeSelectionToFirst(e){let t=this.getVisibleTiles(),i=this.getFocusedTile(),s=-1,r=this.getSelectedTiles();return 0===r.length?(i=me.first(t),{selectedTiles:[i],focusedTile:i}):(i||(i=me.last(r)),s=t.indexOf(i),this.computeSelectionBetween(s,0,e))}computeSelectionToLast(e){let t=this.getVisibleTiles(),i=this.getFocusedTile(),s=-1,r=this.getSelectedTiles();return 0===r.length?(i=me.last(t),{selectedTiles:[i],focusedTile:i}):(i||(i=me.last(r)),s=t.indexOf(i),this.computeSelectionBetween(s,t.length-1,e))}_computeFocusedTile(e,t){let i=this.getVisibleTiles(),s=this.getSelectedTiles(),r=this.getFocusedTile();return 0===s.length?(r=e>0?me.first(i):me.last(i),{focusedTile:r,selectedTiles:[r]}):(r||(r=e>0?me.last(s):me.first(s)),{focusedTile:r,selectedTiles:null})}computeSelectionBetween(e,t,i){let s=this.getVisibleTiles(),r=this.getSelectedTiles(),n=s[t];if(e<0||e>s.length-1||t<0||t>s.length-1||e===t)return;if(!i)return{selectedTiles:[n],focusedTile:n};let o=[];return n.selected?t>e?(o=r.slice(),me.removeAll(o,s.slice(e,t))):(o=r.slice(),me.removeAll(o,s.slice(t+1,e+1))):t>e?(o=me.union(r,s.slice(e,t+1)),n=this._findLastSelectedTileAfter(s,t)):(o=me.union(s.slice(t,e+1),r),n=this._findLastSelectedTileBefore(s,t)),{selectedTiles:o,focusedTile:n}}executeSelection(e){if(e){if(e.selectedTiles.length>0){this.selectTiles(e.selectedTiles),this.scrollTo(e.focusedTile);let t=this.getVisibleGridY(e.focusedTile),i=this.getVisibleGridRowCount();0===t?this.scrollToTop():t===i-1&&this.scrollToBottom()}this.setFocusedTile(e.focusedTile)}}_findLastSelectedTileBefore(e,t){if(0===t)return e[t];let i=me.findFromReverse(e,t,((t,i)=>{let s=e[i-1];return!!s&&!s.selected}));return i||(i=e[0]),i}_findLastSelectedTileAfter(e,t){if(t===e.length-1)return e[t];let i=me.findFrom(e,t,((t,i)=>{let s=e[i+1];return!!s&&!s.selected}));return i||(i=e[e.length-1]),i}}class Dg{constructor(){this.text=null,this._htmlTileContentChangeHandler=this._onHtmlTileContentChange.bind(this),this._tilePropertyChangeHandler=this._onTilePropertyChange.bind(this)}setText(e){return e=(e=e||"").toLowerCase(),!Ai.equals(this.text,e)&&(this.text=e,!0)}accept(e){if(qt.empty(this.text))return!0;let t=this._plainTextForTile(e).trim().toLowerCase();return!qt.empty(t)&&t.indexOf(this.text)>-1}_plainTextForTile(e){if(e.plainText)return e.plainText;if(e instanceof $g)return e.plainText=qt.plainText(e.content)||"",e.one("propertyChange:content",this._htmlTileContentChangeHandler),e.plainText;if(!e.parent.rendered)return"";let t=!1;return e.rendered||(e.render(),t=!0),e.plainText=qt.plainText(e.$container.html())||"",t&&e.remove(),e.on("propertyChange",this._tilePropertyChangeHandler),e.plainText}_onHtmlTileContentChange(e){delete e.source.plainText}_onTilePropertyChange(e){"filterAccepted"!==e.propertyName&&(delete e.source.plainText,e.source.off("propertyChange",this._tilePropertyChangeHandler))}}class Ag extends wg{constructor(){super(),this.widgets=[],this._addWidgetProperties(["widgets"])}_render(){this.$container=this.$parent.appendDiv(),this.htmlComp=fr.install(this.$container,this.session)}_renderProperties(){super._renderProperties(),this._renderWidgets()}setWidgets(e){this.setProperty("widgets",e)}_renderWidgets(){this.widgets.forEach((e=>{e.render()}),this),this.invalidateLayoutTree()}}class $g extends wg{constructor(){super(),this.content=null}_render(){this.$container=this.$parent.appendDiv("html-tile"),this.htmlComp=fr.install(this.$container,this.session)}_renderProperties(){super._renderProperties(),this._renderContent()}setContent(e){this.setProperty("content",e)}_renderContent(){this.content?(this.$container.html(this.content),this.$container.find("img").on("load",this._onImageLoad.bind(this)).on("error",this._onImageError.bind(this)),this.invalidateLayoutTree()):this.$container.empty()}_onImageLoad(e){this.invalidateLayoutTree()}_onImageError(e){this.invalidateLayoutTree()}}class Rg extends Cg{constructor(){super()}}class Mg extends wg{constructor(){super(),this.bean=null}_render(){this.$container=this.$parent.appendDiv("bean-tile"),this.htmlComp=fr.install(this.$container,this.session)}_renderProperties(){super._renderProperties(),this._renderBean()}_renderBean(){}triggerAppLinkAction(e){this.trigger("appLinkAction",{ref:e})}_onAppLinkAction(e){let t=n()(e.delegateTarget).data("ref");this.triggerAppLinkAction(t)}}class kg extends Cg{constructor(){super()}_onWidgetAppLinkAction(e){this._send("appLinkAction",{ref:e.ref})}_onWidgetEvent(e){"appLinkAction"===e.type?this._onWidgetAppLinkAction(e):super._onWidgetEvent(e)}}class Ig extends an{constructor(){super(),this.exclusiveExpand=!1,this.gridColumnCount=null,this.multiSelect=null,this.selectable=null,this.takeTileFiltersFromGroup=!0,this.tileComparator=null,this.filters=[],this.tileGridLayoutConfig=null,this.tileGridSelectionHandler=new Og(this),this.withPlaceholders=null,this.virtual=null,this.$filterFieldContainer=null,this.textFilterEnabled=!1,this.filterSupport=this._createFilterSupport(),this.createTextFilter=null,this.updateTextFilterText=null,this._selectionUpdateLocked=!1,this._tileGridPropertyChangeHandler=this._onTileGridPropertyChange.bind(this),this._groupBodyHeightChangeHandler=this._onGroupBodyHeightChange.bind(this)}_render(){super._render(),this.$container.addClass("tile-accordion"),this.$filterFieldContainer=this.$container.prependDiv("filter-field-container")}_createLayout(){return new Bg(this)}_renderProperties(){super._renderProperties(),this._renderTextFilterEnabled()}_remove(){this.filterSupport.remove(),super._remove()}_init(e){super._init(e),this.setFilters(this.filters)}_createKeyStrokeContext(){return new Zr}_initGroup(e){super._initGroup(e),e.body.setSelectionHandler(this.tileGridSelectionHandler),null!==this.gridColumnCount&&e.body.setGridColumnCount(this.gridColumnCount),this.setProperty("gridColumnCount",e.body.gridColumnCount),null!==this.multiSelect&&e.body.setMultiSelect(this.multiSelect),this.setProperty("multiSelect",e.body.multiSelect),null!==this.selectable&&e.body.setSelectable(this.selectable),this.setProperty("selectable",e.body.selectable),null!==this.tileGridLayoutConfig&&e.body.setLayoutConfig(this.tileGridLayoutConfig),this.setProperty("tileGridLayoutConfig",e.body.layoutConfig),null!==this.tileComparator&&(e.body.setComparator(this.tileComparator),e.body.sort()),this.setProperty("tileComparator",e.body.comparator),this.filters.length>0&&e.body.addFilter(this.filters),this.takeTileFiltersFromGroup&&this.setFilters(e.body.filters),null!==this.withPlaceholders&&e.body.setWithPlaceholders(this.withPlaceholders),this.setProperty("withPlaceholders",e.body.withPlaceholders),null!==this.virtual&&e.body.setVirtual(this.virtual),this.setProperty("virtual",e.body.virtual),e.body.selectedTiles.length>0&&this._handleSelectionChanged(e.body),e.body.on("propertyChange",this._tileGridPropertyChangeHandler),this._handleCollapsed(e),e.body.__tileAccordionEventDelegator=Te.create(e.body,this,{delegateEvents:["tileClick","tileAction"]})}_deleteGroup(e){e.body&&(e.body.off("propertyChange",this._tileGridPropertyChangeHandler),e.body.__tileAccordionEventDelegator.destroy(),e.body.__tileAccordionEventDelegator=null),super._deleteGroup(e)}setGroups(e){let t=this.getTileCount(),i=this.getFilteredTileCount(),s=this.getSelectedTileCount();super.setGroups(e);let r=this.getTileCount(),n=this.getFilteredTileCount(),o=this.getSelectedTileCount();r!==t&&this.triggerPropertyChange("tiles",null,null),n!==i&&this.triggerPropertyChange("filteredTiles",null,null),o!==s&&this.triggerPropertyChange("selectedTiles",null,null)}setGridColumnCount(e){this.groups.forEach((t=>{t.body.setGridColumnCount(e)})),this.setProperty("gridColumnCount",e)}setTileGridLayoutConfig(e){this.groups.forEach((t=>{t.body.setLayoutConfig(e),e=t.body.layoutConfig})),this.setProperty("tileGridLayoutConfig",e)}setWithPlaceholders(e){this.groups.forEach((t=>{t.body.setWithPlaceholders(e)})),this.setProperty("withPlaceholders",e)}setVirtual(e){this.groups.forEach((t=>{t.body.setVirtual(e)})),this.setProperty("virtual",e)}setSelectable(e){this.groups.forEach((t=>{t.body.setSelectable(e)})),this.setProperty("selectable",e)}setMultiSelect(e){this.groups.forEach((t=>{t.body.setMultiSelect(e)})),this.setProperty("multiSelect",e)}getGroupById(e){return me.find(this.groups,(t=>t.id===e))}getGroupByTile(e){return e.findParent((e=>e instanceof jo))}_groupTiles(e){let t={};return this.groups.forEach((e=>{t[e.id]=[]})),e.forEach((function(e){let i=this.getGroupByTile(e);if(!i)throw new Error("No group found for tile "+e.id);t[i.id]||(t[i.id]=[]),t[i.id].push(e)}),this),t}deleteTile(e){this.deleteTiles([e])}deleteTiles(e,t){if(0===(e=me.ensure(e)).length)return;let i=this.getTiles();me.removeAll(i,e),this.setTiles(i,t)}deleteAllTiles(){this.setTiles([])}setTiles(e){if(e=me.ensure(e),Ai.equals(this.getTiles(),e))return;e=this._createChildren(e);let t=this._groupTiles(e);for(let e in t){this.getGroupById(e).body.setTiles(t[e])}}getTiles(){let e=[];return this.groups.forEach((t=>{me.pushAll(e,t.body.tiles)})),e}getTileCount(){let e=0;return this.groups.forEach((t=>{e+=t.body.tiles.length})),e}addFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.addFilter(e,t)}removeFilter(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.removeFilter(e,t)}setFilters(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.filterSupport.setFilters(e,t)}_setFilters(e){e=me.ensure(e),this.groups.forEach((t=>{t.body.setFilters(e.slice(),!1)})),this._setProperty("filters",e.slice())}filter(){this.filterSupport.filter()}_filter(){this.groups.forEach((e=>e.body.filter()))}_createFilterSupport(){return new q({widget:this,$container:()=>this.$filterFieldContainer,filterElements:this._filter.bind(this),createTextFilter:this._createTextFilter.bind(this),updateTextFilterText:this._updateTextFilterText.bind(this)})}_createTextFilter(){return Ai.isFunction(this.createTextFilter)?this.createTextFilter():new Dg}_updateTextFilterText(e,t){return Ai.isFunction(this.updateTextFilterText)?this.updateTextFilterText(e,t):e instanceof Dg&&e.setText(t)}setTextFilterEnabled(e){this.setProperty("textFilterEnabled",e)}isTextFilterFieldVisible(){return this.textFilterEnabled}_renderTextFilterEnabled(){this.filterSupport.renderFilterField()}getFilteredTiles(){let e=[];return this.groups.forEach((t=>{me.pushAll(e,t.body.filteredTiles)})),e}getFilteredTileCount(){let e=0;return this.groups.forEach((t=>{e+=t.body.filteredTiles.length})),e}getVisibleTiles(){let e=[];return this.expandedGroups().forEach((t=>{me.pushAll(e,t.body.filteredTiles)})),e}getVisibleTileCount(){let e=0;return this.expandedGroups().forEach((t=>{e+=t.body.filteredTiles.length})),e}findVisibleTileIndexAt(e,t,i,s){return i=x.nvl(i,0),me.findIndexFrom(this.getVisibleTiles(),i,((i,s)=>this.getVisibleGridX(i)===e&&this.getVisibleGridY(i)===t),s)}selectTiles(e){e=me.ensure(e),e=this._createChildren(e);let t=this._groupTiles(e);for(let e in t){this.getGroupById(e).body.selectTiles(t[e])}}selectTile(e){this.selectTiles([e])}selectAllTiles(){this.selectTiles(this.getVisibleTiles())}deselectTiles(e){e=me.ensure(e);let t=this.getSelectedTiles().slice();me.removeAll(t,e)&&this.selectTiles(t)}deselectTile(e){this.deselectTiles([e])}deselectAllTiles(){this.selectTiles([])}addTilesToSelection(e){e=me.ensure(e),this.selectTiles(this.getSelectedTiles().concat(e))}addTileToSelection(e){this.addTilesToSelection([e])}getSelectedTiles(){let e=[];return this.groups.forEach((t=>{me.pushAll(e,t.body.selectedTiles)})),e}getSelectedTile(){return this.getSelectedTiles()[0]}getSelectedTileCount(){let e=0;return this.groups.forEach((t=>{e+=t.body.selectedTiles.length})),e}toggleSelection(){this.getSelectedTileCount()===this.getVisibleTileCount()?this.deselectAllTiles():this.selectAllTiles()}setTileComparator(e){this.groups.forEach((t=>{t.body.setComparator(e)})),this.setProperty("tileComparator",e)}sortTiles(){this.groups.forEach((e=>{e.body.sort()}))}setFocusedTile(e){let t=null;null!==e&&(t=this.getGroupByTile(e)),this.groups.forEach((i=>{i===t?i.body.setFocusedTile(e):i.body.setFocusedTile(null)}))}getFocusedTile(){let e=null;return this.groups.some((t=>!!t.body.focusedTile&&(e=t.body.focusedTile,!0))),e}getVisibleGridRowCount(){return this.expandedGroups().reduce(((e,t)=>e+t.body.logicalGrid.gridRows),0)}getVisibleGridX(e){return e.gridData.x}getVisibleGridY(e){let t=this.getGroupByTile(e),i=this.getVisibleRowByGroup(t);return e.gridData.y+i}getGroupByVisibleRow(e){if(e<0||e>=this.getVisibleGridRowCount())return null;let t=0;return me.find(this.expandedGroups(),(i=>{let s=i.body.logicalGrid.gridRows;if(t<=e&&e<t+s)return!0;t+=s}))}getVisibleRowByGroup(e){let t=0;return this.expandedGroups().some((i=>{let s=i.body.logicalGrid.gridRows;return i===e||(t+=s,!1)}))?t:-1}expandedGroups(){return this.groups.filter((e=>!e.collapsed))}_handleSelectionChanged(e){if(this._selectionUpdateLocked)return;let t=e.parent;e.selectedTiles.length>0&&t.collapsed?e.deselectAllTiles():!this.multiSelect&&e.selectedTiles.length>0&&(this._selectionUpdateLocked=!0,this.groups.forEach((t=>{t.body!==e&&t.body.deselectAllTiles()})),this._selectionUpdateLocked=!1)}_onTileGridPropertyChange(e){"selectedTiles"===e.propertyName?(this._handleSelectionChanged(e.source),this.triggerPropertyChange("selectedTiles",null,null)):"filteredTiles"===e.propertyName?this.triggerPropertyChange("filteredTiles",null,null):"tiles"===e.propertyName&&this.triggerPropertyChange("tiles",null,null)}_onGroupCollapsedChange(e){super._onGroupCollapsedChange(e),this._handleCollapsed(e.source)}_handleCollapsed(e){e.collapsed&&e.body.deselectAllTiles(),e.rendered&&(e.on("bodyHeightChange",this._groupBodyHeightChangeHandler),e.one("bodyHeightChangeDone",this._onGroupBodyHeightChangeDone.bind(this)))}_onGroupBodyHeightChange(e){this.groups.forEach((t=>{e.source===t||t.bodyAnimating||t.body.virtual&&t.body.htmlComp&&t.body.htmlComp.layout.updateViewPort()}))}_onGroupBodyHeightChangeDone(e){e.source.off("bodyHeightChange",this._groupBodyHeightChangeHandler)}_tileAtScrollTop(e){return me.find(this.getTiles().filter((e=>e.rendered)),(t=>t.$container.position().top>=e),this)}}class Lg extends hn{constructor(){super()}_initProperties(e){super._initProperties(e),e.takeTileFiltersFromGroup=!1}}class Bg extends dn{constructor(e,t){super(t),this.tileAccordion=e}layout(e){let t=this.tileAccordion.groups.map((e=>e.body)).map((e=>this._getTileGridHeight(e)));super.layout(e),this._updateFilterFieldMaxWidth(e),this.tileAccordion.groups.map((e=>e.body)).forEach(((e,i)=>this._updateTileGridViewPort(e,t[i])))}_updateTileGridViewPort(e,t){if(!e.rendered||!e.htmlComp||t<=0)return;t===this._getTileGridHeight(e)&&e.virtual&&(e.setViewRangeSize(e.calculateViewRangeSize(),!1),e.htmlComp.layout.updateViewPort())}_getTileGridHeight(e){if(!e)return 0;if(!e.htmlComp)return 0;let t=e.htmlComp.sizeCached;return t?t.height:0}_updateFilterFieldMaxWidth(e){let t=fr.get(e),i=t.availableSize().subtract(t.insets()).width;this.tileAccordion.$filterFieldContainer.css("--filter-field-max-width",.6*i+"px")}}class Og extends Eg{constructor(e){super(e),this.tileAccordion=this.tileGrid}getFilteredTiles(){return this.tileAccordion.getFilteredTiles()}getFilteredTileCount(){return this.tileAccordion.getFilteredTileCount()}getVisibleTiles(){return this.tileAccordion.getVisibleTiles()}getVisibleTileCount(){return this.tileAccordion.getVisibleTileCount()}getSelectedTiles(e){return this.tileAccordion.getSelectedTiles()}getFocusedTile(){return this.tileAccordion.getFocusedTile()}getVisibleGridRowCount(){return this.tileAccordion.getVisibleGridRowCount()}getVisibleGridX(e){return this.tileAccordion.getVisibleGridX(e)}getVisibleGridY(e){return this.tileAccordion.getVisibleGridY(e)}scrollTo(e){this.tileAccordion.getGroupByTile(e).body.scrollTo(e)}getTileGridByRow(e){let t=this.tileAccordion.getGroupByVisibleRow(e);return t?t.body:null}findVisibleTileIndexAt(e,t,i,s){return this.tileAccordion.findVisibleTileIndexAt(e,t,i,s)}isHorizontalGridActive(){return 0!==this.tileAccordion.groups.length&&this.tileAccordion.groups[0].body.logicalGrid instanceof Fr}}class Ng extends U{constructor(e){super(),this.field=e,this.shift=!!e.multiSelect&&void 0,this.renderingHints.$drawingArea=(e,t)=>{let i=this._computeNewSelection();if(i&&i.focusedTile)return i.focusedTile.$container},this.inheritAccessibility=!1}getSelectionHandler(){return this.field.selectionHandler}_accept(e){return!!super._accept(e)&&(!!this.getSelectionHandler().isSelectable()&&0!==this.getSelectionHandler().getFilteredTileCount())}handle(e){this.getSelectionHandler().executeSelection(this._computeNewSelection(e.shiftKey))}_computeNewSelection(e){}}class Hg extends Ng{constructor(e){super(e),this.ctrl=!0,this.shift=!1,this.which=[Kr.A],this.renderingHints.$drawingArea=function(e,t){let i=this.getSelectionHandler().getVisibleTiles()[0];if(i)return i.$container}.bind(this)}_accept(e){return!!super._accept(e)&&!!this.getSelectionHandler().isMultiSelect()}handle(e){this.getSelectionHandler().toggleSelection()}}class Vg extends Ng{constructor(e){super(e),this.stopPropagation=!0,this.repeatable=!0,this.which=[Kr.LEFT],this.renderingHints.text="←"}_accept(e){return!!super._accept(e)&&!!this.getSelectionHandler().isHorizontalGridActive()}_computeNewSelection(e){return this.getSelectionHandler().computeSelectionX(-1,e)}}class Wg extends Ng{constructor(e){super(e),this.stopPropagation=!0,this.repeatable=!0,this.which=[Kr.RIGHT],this.renderingHints.text="→"}_accept(e){return!!super._accept(e)&&!!this.getSelectionHandler().isHorizontalGridActive()}_computeNewSelection(e){return this.getSelectionHandler().computeSelectionX(1,e)}}class zg extends Ng{constructor(e){super(e),this.stopPropagation=!0,this.repeatable=!0,this.which=[Kr.DOWN],this.renderingHints.text="↓"}_accept(e){return!!super._accept(e)&&!!this.getSelectionHandler().isHorizontalGridActive()}_computeNewSelection(e){return this.getSelectionHandler().computeSelectionY(1,e)}}class Gg extends Ng{constructor(e){super(e),this.stopPropagation=!0,this.repeatable=!0,this.which=[Kr.UP],this.renderingHints.text="↑"}_accept(e){return!!super._accept(e)&&!!this.getSelectionHandler().isHorizontalGridActive()}_computeNewSelection(e){return this.getSelectionHandler().computeSelectionY(-1,e)}}class Ug extends Ng{constructor(e){super(e),this.stopPropagation=!0,this.which=[Kr.HOME]}_accept(e){return!!super._accept(e)&&!!this.getSelectionHandler().isHorizontalGridActive()}_computeNewSelection(e){return this.getSelectionHandler().computeSelectionToFirst(e)}}class Kg extends Ng{constructor(e){super(e),this.stopPropagation=!0,this.which=[Kr.END]}_accept(e){return!!super._accept(e)&&!!this.getSelectionHandler().isHorizontalGridActive()}_computeNewSelection(e){return this.getSelectionHandler().computeSelectionToLast(e)}}class qg{constructor(e){e=e||{},this.synthetic=!0,this.tileMap={},e.tileIds&&this.setTileIds(e.tileIds)}setTileIds(e){this.tileMap={},e.forEach((function(e){this.tileMap[e]=e}),this)}accept(e){return!!this.tileMap[e.id]}}class jg extends wg{constructor(){super(),this.tileWidget=null,this._addWidgetProperties(["tileWidget"]),this._widgetPropertyChangeHandler=this._onWidgetPropertyChange.bind(this)}_init(e){super._init(e),this._setTileWidget(this.tileWidget)}_destroy(){this.tileWidget&&this.tileWidget.off("propertyChange",this._widgetPropertyChangeHandler),super._destroy()}_renderProperties(){super._renderProperties(),this._renderTileWidget()}_renderTileWidget(){this.tileWidget&&this.tileWidget.render()}_removeTileWidget(){this.tileWidget&&this.tileWidget.remove()}_onWidgetPropertyChange(e){"visible"===e.propertyName?this.setVisible(e.newValue):"enabled"===e.propertyName?this.setEnabled(e.newValue):"disabledStyle"===e.propertyName&&this.setDisabledStyle(e.newValue)}_setTileWidget(e){this.tileWidget&&this.tileWidget.off("propertyChange",this._widgetPropertyChangeHandler),this._setProperty("tileWidget",e),e&&(this.tileWidget.visible||this.setVisible(!1),this.tileWidget.enabled||this.setEnabled(!1),this.tileWidget.disabledStyle!==Y.DisabledStyle.DEFAULT&&this.setDisabledStyle(this.tileWidget.disabledStyle),this.tileWidget.on("propertyChange",this._widgetPropertyChangeHandler)),this.invalidateLayoutTree()}}class Yg extends Cg{constructor(){super()}}class Xg extends wg{constructor(){super(),this.cssClass="placeholder-tile",this.displayStyle=wg.DisplayStyle.PLAIN}_setSelectable(e){super._setSelectable(!1)}}class Jg extends jg{constructor(){super(),this.displayStyle=Jg.DisplayStyle.DASHBOARD}_renderProperties(){super._renderProperties(),this._renderFieldLabelVisible(),this._renderCompact()}_renderTileWidget(){super._renderTileWidget(),this.displayStyle===Jg.DisplayStyle.DASHBOARD&&this.tileWidget&&this.tileWidget.htmlComp&&this.tileWidget.htmlComp.layout instanceof ru&&(this.tileWidget.htmlComp.layout.statusWidth=0)}_renderDisplayStyle(){super._renderDisplayStyle(),this.$container.toggleClass("dashboard",this.displayStyle===Jg.DisplayStyle.DASHBOARD)}_renderFieldLabelVisible(){this.displayStyle===Jg.DisplayStyle.DASHBOARD&&this.tileWidget instanceof $u&&this.tileWidget.$container.toggleClass("no-padding",!this.tileWidget.labelVisible&&!this.tileWidget.errorStatus)}_renderCompact(){this.$container.toggleClass("compact",Qe.get().type===Qe.Type.MOBILE)}_onFieldPropertyChange(e){"labelVisible"!==e.propertyName&&"errorStatus"!==e.propertyName||this.rendered&&this._renderFieldLabelVisible()}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Jg,"DisplayStyle",{DEFAULT:wg.DisplayStyle.DEFAULT,PLAIN:wg.DisplayStyle.PLAIN,DASHBOARD:"dashboard"});class Zg extends Cg{constructor(){super()}}class Qg extends Jg{_render(){super._render(),this.$container.addClass("button-tile")}}class em extends Iu{constructor(){super(),this.processButton=!1}_render(){if(this.parent.displayStyle!==Jg.DisplayStyle.DASHBOARD)return void super._render();let e=this.$parent.makeDiv();this.$buttonLabel=e.appendSpan("label"),this.addContainer(this.$parent,"tile-button"),this.addField(e),this.htmlComp.setLayout(new Lr),this.$container.on("click",this._onClick.bind(this)).unfocusable()}_remove(){this.$iconContainer=null,super._remove()}_renderIconId(){this.parent.displayStyle===Jg.DisplayStyle.DASHBOARD?(this.$field.removeClass("with-icon without-icon"),this.iconId?(this.$iconContainer||(this.$iconContainer=this.$field.prependDiv("icon-container")),this.$iconContainer.icon(this.iconId),this.$field.addClass("with-icon")):(this.$iconContainer&&(this.$iconContainer.remove(),this.$iconContainer=null),this.$field.addClass("without-icon")),this.invalidateLayoutTree()):super._renderIconId()}_renderTooltipText(){qt.hasText(this.tooltipText)?yo.install(this.$container,{parent:this,text:this.tooltipText}):yo.uninstall(this.$container)}}class tm extends pc{constructor(){super()}_render(){super._render(),this.$container.addClass("scrollbar-y-outside")}_installScrollbars(e){return super._installScrollbars($.extend(!0,{},e,{scrollShadow:"gradient"}))}}class im extends Up{constructor(){super(),this._tableBlurHandler=this._onTableBlur.bind(this),this._tableFocusHandler=this._onTableFocus.bind(this),this._menuBarPropertyChangeHandler=this._onMenuBarPropertyChange.bind(this),this._documentMouseDownHandler=this._onDocumentMouseDown.bind(this)}_render(){super._render(),this.session.focusManager.restrictedFocusGain||this.$container.document(!0).addEventListener("mousedown",this._documentMouseDownHandler,!0)}_remove(){this.$container.document(!0).removeEventListener("mousedown",this._documentMouseDownHandler,!0),super._remove()}_renderTable(){super._renderTable(),this.parent.displayStyle===Jg.DisplayStyle.DASHBOARD&&this.table&&(this.table.$container.on("blur",this._tableBlurHandler).on("focus",this._tableFocusHandler),this.table.menuBar.on("propertyChange",this._menuBarPropertyChangeHandler),this._toggleHasMenuBar(),document.activeElement!==this.table.$container[0]&&this._hideMenuBar(!0))}_removeTable(){this.parent.displayStyle===Jg.DisplayStyle.DASHBOARD&&(this.table&&(this.table.$container.off("blur",this._tableBlurHandler).off("focus",this._tableFocusHandler),this.table.menuBar.off("propertyChange",this._menuBarPropertyChangeHandler)),super._removeTable())}_onTableBlur(e){let t=n()(".popup").data("widget");this.has(t)||this._hideMenuBar(!0)}_onTableFocus(e){this._hideMenuBar(!1)}_hideMenuBar(e){this.table.menuBar.hiddenByUi=e,this.table.menuBar.updateVisibility()}_onMenuBarPropertyChange(e){"visible"===e.propertyName&&this._toggleHasMenuBar()}_toggleHasMenuBar(){(this.rendered||this.rendering)&&this.$container.toggleClass("has-menubar",this.table.menuBar.visible)}_onDocumentMouseDown(e){let t=n()(".popup"),i=t.data("widget");this.table&&i&&this.table.has(i)&&t.has(e.target)&&e.preventDefault()}}class sm extends Y{constructor(){super(),this.view=null,this.title=null,this.subTitle=null,this.iconId=null,this.cssClass=null,this.closable=!1,this.saveNeeded=!1,this.saveNeededVisible=!1,this.status=null,this.selected=!1,this.$title=null,this.$subTitle=null,this.$iconContainer=null,this.$statusContainer=null,this._statusContainerUsageCounter=0,this._statusIconDivs=[],this._viewPropertyChangeListener=this._onViewPropertyChange.bind(this),this._viewRemoveListener=this._onViewRemove.bind(this),this._glassPaneContribution=e=>this.$close?(this.$close.addClass("glasspane-parent"),this.$close):null}_init(e){super._init(e),this.view=e.view,this.title=this.view?this.view.title:e.title,this.subTitle=this.view?this.view.subTitle:e.subTitle,this.iconId=this.view?this.view.iconId:e.iconId,this.cssClass=this.view?this.view.cssClass:e.cssClass,this.closable=this.view?this.view.closable:e.closable,this.saveNeeded=this.view?this.view.saveNeeded:e.saveNeeded,this.saveNeededVisible=this.view?this.view.saveNeededVisible:e.saveNeededVisible,this.status=this.view?this.view.status:e.status,this.view&&(this._installViewListeners(),this.view.addGlassPaneContribution(this._glassPaneContribution))}renderAfter(e,t){this.render(e),t&&this.$container.insertAfter(t.$container)}_render(){this.$container=this.$parent.prependDiv("simple-tab"),this.$container.on("mousedown",this._onMouseDown.bind(this)),this.$titleLine=this.$container.appendDiv("title-line"),this.$iconContainer=this.$titleLine.appendDiv("icon-container"),this.$title=this.$titleLine.appendDiv("title"),yo.installForEllipsis(this.$title,{parent:this}),this.$statusContainer=this.$titleLine.appendDiv("status-container"),this.$subTitle=this.$container.appendDiv("sub-title"),yo.installForEllipsis(this.$subTitle,{parent:this})}_renderProperties(){super._renderProperties(),this._renderTitle(),this._renderSubTitle(),this._renderIconId(),this._renderCssClass(),this._renderClosable(),this._renderSaveNeeded(),this._renderStatus(),this._renderSelected()}_remove(){this.$close=null,super._remove()}setTitle(e){this.setProperty("title",e)}_renderTitle(){(this.title||this.subTitle)&&this.$title.textOrNbsp(this.title)}setSubTitle(e){this.setProperty("subTitle",e)}_renderSubTitle(){this.subTitle?(this.title||this._renderTitle(),this.$subTitle.textOrNbsp(this.subTitle)):this.title||this._renderTitle()}setIconId(e){this.setProperty("iconId",e)}_renderIconId(e){this.$iconContainer.icon(this.iconId)}setClosable(e){this.setProperty("closable",e)}_renderClosable(){if(this.closable){if(this.$close)return;this.$container.addClass("closable"),this.$close=this.$container.appendDiv("closer").on("click",this._onClose.bind(this))}else{if(!this.$close)return;this.$container.removeClass("closable"),this.$close.remove(),this.$close=null}}setSaveNeededVisible(e){this.saveNeededVisible!==e&&(this._setProperty("saveNeededVisible",e),this.rendered&&this._renderSaveNeeded())}setSaveNeeded(e){this.saveNeeded!==e&&(this._setProperty("saveNeeded",e),this.rendered&&this._renderSaveNeeded())}_renderSaveNeeded(){if(this.saveNeeded&&this.saveNeededVisible){if(this.$container.addClass("save-needed"),this.$saveNeeded)return;this.$saveNeeded=this.$statusContainer.prependDiv("status save-needer"),this._statusContainerUsageCounter++}else{if(!this.$saveNeeded)return;this.$container.removeClass("save-needed"),this.$saveNeeded.remove(),this.$saveNeeded=null,this._statusContainerUsageCounter--}}setStatus(e){this.setProperty("status",e)}_renderStatus(){this._statusContainerUsageCounter-=0===this._statusIconDivs.length?0:1,this._statusIconDivs.forEach((e=>{e.remove()})),this._statusIconDivs=[],this.status&&this.status.asFlatList().forEach((e=>{if(!e||!e.iconId)return;let t=this.$statusContainer.appendIcon(e.iconId,"status");e.cssClass()&&t.addClass(e.cssClass()),this._statusIconDivs.push(t)})),this._statusContainerUsageCounter+=0===this._statusIconDivs.length?0:1,this.$container.toggleClass("has-status",this._statusContainerUsageCounter>0)}select(){this.setSelected(!0)}deselect(){this.setSelected(!1)}setSelected(e){this.setProperty("selected",e)}_renderSelected(){this.$container.toggleClass("selected",this.selected)}_onMouseDown(e){this.$close&&this.$close.isOrHas(e.target)||(this.trigger("click"),this.$title&&(yo.cancel(this.$title),yo.close(this.$title)),this.$subTitle&&(yo.cancel(this.$subTitle),yo.close(this.$subTitle)),e.preventDefault())}_onClose(){this.view&&this.view.abort()}getMenuText(){return qt.join(" – ",this.title,this.subTitle)}_installViewListeners(){this.view.on("propertyChange",this._viewPropertyChangeListener),this.view.on("remove",this._viewRemoveListener)}_uninstallViewListeners(){this.view.off("propertyChange",this._viewPropertyChangeListener),this.view.off("remove",this._viewRemoveListener)}_onViewPropertyChange(e){"title"===e.propertyName?this.setTitle(this.view.title):"subTitle"===e.propertyName?this.setSubTitle(this.view.subTitle):"iconId"===e.propertyName?this.setIconId(this.view.iconId):"cssClass"===e.propertyName?this.setCssClass(e.newValue):"saveNeeded"===e.propertyName?this.setSaveNeeded(e.newValue):"saveNeededVisible"===e.propertyName?this.setSaveNeededVisible(e.newValue):"closable"===e.propertyName?this.setClosable(e.newValue):"status"===e.propertyName&&this.setStatus(e.newValue)}_onViewRemove(){this._uninstallViewListeners(),this.rendered?this.remove():this.trigger("remove")}}class rm extends Y{constructor(){super(),this.displayStyle=rm.DisplayStyle.DEFAULT,this.tabs=[],this._selectedViewTab=null}_init(e){super._init(e),this._tabClickHandler=this._onTabClick.bind(this)}_render(){this.$container=this.$parent.appendDiv("simple-tab-area"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout())}_createLayout(){return new nm(this)}_renderProperties(){super._renderProperties(),this._renderDisplayStyle(),this._renderTabs()}setDisplayStyle(e){this.setProperty("displayStyle",e)}_renderDisplayStyle(){this.$container.toggleClass("spread-even",this.displayStyle===rm.DisplayStyle.SPREAD_EVEN),this.invalidateLayoutTree()}_renderTabs(){this.tabs.slice().reverse().forEach((e=>{this._renderTab(e)})),J.updateFirstLastMarker(this.tabs)}_renderTab(e){e.renderAfter(this.$container)}_renderVisible(){this.$container.setVisible(this.visible&&this.tabs.length>0),this.invalidateLayoutTree()}_onTabClick(e){this.selectTab(e.source)}getTabs(){return this.tabs}getVisibleTabs(){return this.tabs.filter((e=>e.$container?e.$container.isVisible():e.visible))}selectTab(e){this._selectedViewTab!==e&&(this.deselectTab(this._selectedViewTab),this._selectedViewTab=e,e&&e.select(),this.trigger("tabSelect",{viewTab:e}),e&&e.rendered&&!e.$container.isVisible()&&this.invalidateLayoutTree())}deselectTab(e){e&&this._selectedViewTab===e&&this._selectedViewTab.deselect()}getSelectedTab(){return this._selectedViewTab}addTab(e,t){let i=-1;t&&(i=this.tabs.indexOf(t)),this.tabs.splice(i+1,0,e),e.on("click",this._tabClickHandler),this.rendered&&(this._renderVisible(),e.renderAfter(this.$container,t),J.updateFirstLastMarker(this.getTabs()),this.invalidateLayoutTree())}destroyTab(e){let t=this.tabs.indexOf(e);t>-1&&(this.tabs.splice(t,1),e.destroy(),e.off("click",this._tabClickHandler),this.rendered&&(this._renderVisible(),J.updateFirstLastMarker(this.getTabs()),this.invalidateLayoutTree()))}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(rm,"DisplayStyle",{DEFAULT:"default",SPREAD_EVEN:"spreadEven"});class nm extends _r{constructor(e){super(),this.tabArea=e,this._$overflowTab=null,this._overflowTabsIndizes=[],this.tabWidth=null,this.tabMinWidth=null,this.overflowTabItemWidth=null}layout(e){let t=this.tabArea.htmlComp,i=t.size({exact:!0}),s=t.$comp.children(".simple-tab"),r=this.tabArea.getTabs().length,o=this.smallPrefSize();if(i=i.subtract(t.insets()),this._initSizes(),this._$overflowTab&&this._$overflowTab.remove(),s.setVisible(!0),this._overflowTabsIndizes=[],J.updateFirstLastMarker(this.tabArea.getTabs()),o.width<=i.width)return void e.removeClass("overflown");e.addClass("overflown"),i.width-=this.overflowTabItemWidth;let l,a=Math.floor(i.width/this.tabMinWidth),h=r-a,d=0;s.each(((e,t)=>{n()(t).hasClass("selected")&&(d=e)}));let u=d-Math.floor(a/2);u<0?(u=0,l=a-1):(l=u+a-1,l>r-1&&(l=r-1,u=l-a+1)),this._$overflowTab=t.$comp.appendDiv("simple-overflow-tab-item").on("mousedown",this._onOverflowTabItemMouseDown.bind(this)),this._$overflowTab.appendDiv("num-tabs").text(h),s.each(((e,t)=>{(e<u||e>l)&&(n()(t).setVisible(!1),this._overflowTabsIndizes.push(e))})),J.updateFirstLastMarker(this.tabArea.getVisibleTabs())}smallPrefSize(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._initSizes(),e=n().extend({minTabWidth:this.tabMinWidth},e),this.preferredLayoutSize(this.tabArea.$container,e)}preferredLayoutSize(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._initSizes();let i=x.nvl(t.minTabWidth,0)||x.nvl(this.tabWidth,0),s=this.tabArea.getTabs().length*i;t=n().extend({useCssSize:!0},t);let r=pr.prefSize(this.tabArea.$container,t);return t.widthHint&&this.tabArea.displayStyle===rm.DisplayStyle.SPREAD_EVEN&&(s=Math.max(t.widthHint,s)),new sr(s,r.height)}_initSizes(){if(null!=this.tabWidth&&null!=this.tabMinWidth&&null!=this.overflowTabItemWidth)return;let e=this.tabArea.$container.children(".simple-tab").eq(0);if(0===e.length)return;e=e.clone().addClass("selected");let t=this.tabArea.$container.attr("class"),i=e.attr("class");null===this.tabWidth&&(this.tabWidth=ts.getSize([t,i],"width","width",0)),null===this.tabMinWidth&&(this.tabMinWidth=ts.getSize([t,i],"min-width","minWidth")),null===this.overflowTabItemWidth&&(this.overflowTabItemWidth=ts.getSize([t,"simple-overflow-tab-item"],"min-width","minWidth"),this.overflowTabItemWidth+=ts.getSize([t,"simple-overflow-tab-item"],"margin-left","marginLeft"),this.overflowTabItemWidth+=ts.getSize([t,"simple-overflow-tab-item"],"margin-right","marginRight"))}_onOverflowTabItemMouseDown(e){let t=this.tabArea,i=[],s=n()(e.currentTarget);if(s.data("popup"))return void s.data("popup").close();this._overflowTabsIndizes.forEach((e=>{let s=this.tabArea.getTabs()[e],r=x.create("Menu",{parent:this.tabArea,text:s.getMenuText(),tab:s});r.on("action",function(){n().log.isDebugEnabled()&&n().log.debug("(SimpleTabAreaLayout#_onMouseDownOverflow) tab="+this),t.selectTab(this)}.bind(s)),i.push(r)}));let r=x.create("ContextMenuPopup",{parent:this.tabArea,menuItems:i,cloneMenuItems:!1,$anchor:s,closeOnAnchorMouseDown:!1});s.addClass("selected"),s.data("popup",r),r.one("remove",(()=>{s.removeClass("selected"),s.data("popup",null)})),r.open()}}function om(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class lm extends Y{constructor(){super(),this.desktopStyle=lm.DisplayStyle.DEFAULT,this.title=null,this.selectViewTabsKeyStrokesEnabled=!0,this.selectViewTabsKeyStrokeModifier="control",this.cacheSplitterPosition=!0,this.browserHistoryEntry=null,this.logoId=null,this.navigationVisible=!0,this.navigationHandleVisible=!0,this.logoActionEnabled=!1,this.benchVisible=!0,this.headerVisible=!0,this.geolocationServiceAvailable=Qe.get().supportsGeolocation(),this.benchLayoutData=null,this.nativeNotificationDefaults=null,this.menus=[],this.addOns=[],this.dialogs=[],this.views=[],this.keyStrokes=[],this.viewButtons=[],this.messageBoxes=[],this.fileChoosers=[],this.outline=null,this.activeForm=null,this.selectedViewTabs=[],this.notifications=[],this.navigation=null,this.header=null,this.bench=null,this.splitter=null,this.splitterVisible=!1,this.formController=null,this.messageBoxController=null,this.fileChooserController=null,this.initialFormRendering=!1,this.offline=!1,this.inBackground=!1,this.openUriHandler=null,this.theme=null,this.dense=!1,this._glassPaneTargetFilters=[],this.url=null,this._addWidgetProperties(["viewButtons","menus","views","selectedViewTabs","dialogs","outline","messageBoxes","notifications","fileChoosers","addOns","keyStrokes","activeForm","focusedElement"]),this._addPreserveOnPropertyChangeProperties(["focusedElement"]),this._benchActiveViewChangedHandler=this._onBenchActivateViewChanged.bind(this)}_init(e){(e.session||e.parent.session).desktop=this,e.nativeNotificationDefaults=this._createNativeNotificationDefaults(e),super._init(e),this.url=new ss,this._initTheme(),this.formController=x.create("DesktopFormController",{displayParent:this,session:this.session}),this.messageBoxController=new Tu(this,this.session),this.fileChooserController=new la(this,this.session),this._resizeHandler=this.onResize.bind(this),this._popstateHandler=this.onPopstate.bind(this),this.updateSplitterVisibility(),this.resolveTextKeys(["title"]),this._setViews(this.views),this._setViewButtons(this.viewButtons),this._setMenus(this.menus),this._setKeyStrokes(this.keyStrokes),this._setBenchLayoutData(this.benchLayoutData),this._setDisplayStyle(this.displayStyle),this._setDense(this.dense),this.openUriHandler=x.create("OpenUriHandler",{session:this.session}),this._glassPaneTargetFilters.push(((e,t)=>{let i=x.widget(e);return!t.has(i)}))}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.invokeAcceptInputOnActiveValueField=!0,this.keyStrokeContext.registerKeyStroke([new _m(this),new xm(this)])}_createNativeNotificationDefaults(e){return n().extend({title:e.title,iconId:e.logoId},e.nativeNotificationDefaults)}setNativeNotificationDefaults(e){this.setProperty("nativeNotificationDefaults",e)}_onBenchActivateViewChanged(e){if(this.initialFormRendering)return;let t=e.view;t instanceof Ta&&this.bench.outlineContent!==t&&!t.detailForm&&this._setFormActivated(t)}_render(){this.$container=this.$parent,this.$container.addClass("desktop"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout()),this.$container.window().on("resize",this._resizeHandler).on("popstate",this._popstateHandler),this.$overlaySeparator=this.$container.appendDiv("overlay-separator").setVisible(!1),this._renderDense(),this._renderNavigationVisible(),this._renderHeaderVisible(),this._renderBenchVisible(),this._renderTitle(),this._renderLogoUrl(),this._renderSplitterVisible(),this._renderInBackground(),this._renderNavigationHandleVisible(),this._renderNotifications(),this._renderBrowserHistoryEntry(),this.addOns.forEach((e=>{e.render()}),this),this._setupDragAndDrop(),this._disableContextMenu()}_remove(){this.formController.remove(),this.messageBoxController.remove(),this.fileChooserController.remove(),this.$container.window().off("resize",this._resizeHandler).off("popstate",this._popstateHandler),super._remove()}_postRender(){super._postRender(),this.initialFormRendering=!0,this._renderDisplayChildrenOfOutline(),this.formController.render(),this.messageBoxController.render(),this.fileChooserController.render(),this.initialFormRendering=!1}_setDisplayStyle(e){this._setProperty("displayStyle",e);let t=this.displayStyle===lm.DisplayStyle.COMPACT;if(this.header){if(this.header.tabArea){const e=rm.DisplayStyle;this.header.tabArea.setDisplayStyle(t?e.SPREAD_EVEN:e.DEFAULT)}this.header.setToolBoxVisible(!t),this.header.animateRemoval=t}this.navigation&&(this.navigation.setToolBoxVisible(t),this.navigation.htmlComp.layoutData.fullWidth=t),this.bench&&this.bench.setOutlineContentVisible(!t),this.outline&&(this.outline.setCompact(t),this.outline.setEmbedDetailContent(t))}setDense(e){this.setProperty("dense",e)}_setDense(e){this._setProperty("dense",e),ts.clearCache(),mr.get().init(this.dense?"dense":null)}_renderDense(){this.$container.toggleClass("dense",this.dense)}_createLayout(){return new dm(this)}_renderDisplayChildrenOfOutline(){if(this.outline)if(this.outline.formController.render(),this.outline.messageBoxController.render(),this.outline.fileChooserController.render(),this.outline.selectedViewTabs)this.outline.selectedViewTabs.forEach((e=>{this.formController._activateView(e)}));else{this.outline.views.filter((e=>e.modal)).forEach(this.formController._activateView.bind(this.formController))}}_removeDisplayChildrenOfOutline(){this.outline&&(this.outline.formController.remove(),this.outline.messageBoxController.remove(),this.outline.fileChooserController.remove())}computeParentForDisplayParent(e){let t=e;return e instanceof r_&&(t=this),t}_renderTitle(){let e=this.title;if(null==e)return;let t=n()("div.scout");t.length<=1&&(t.document(!0).title=e)}_renderActiveForm(){}_renderBench(){this.bench||(this.bench=this._createBench(),this.bench.on("viewActivate",this._benchActiveViewChangedHandler),this.bench.render(),this.bench.$container.insertBefore(this.$overlaySeparator),this.invalidateLayoutTree())}_createBench(){return x.create("DesktopBench",{parent:this,animateRemoval:!0,headerTabArea:this.header?this.header.tabArea:void 0,outlineContentVisible:this.displayStyle!==lm.DisplayStyle.COMPACT})}_removeBench(){this.bench&&(this.bench.off("viewActivate",this._benchActiveViewChangedHandler),this.bench.on("destroy",(()=>{this.bench=null,this.invalidateLayoutTree()})),this.bench.destroy())}_renderBenchVisible(){this.animateLayoutChange=this.rendered,this.benchVisible?(this._renderBench(),this._renderInBackground()):this._removeBench()}_renderNavigation(){this.navigation||(this.navigation=this._createNavigation(),this.navigation.render(),this.navigation.$container.prependTo(this.$container),this.$container.removeClass("navigation-invisible"),this.invalidateLayoutTree())}_createNavigation(){return x.create("DesktopNavigation",{parent:this,outline:this.outline,toolBoxVisible:this.displayStyle===lm.DisplayStyle.COMPACT,layoutData:{fullWidth:this.displayStyle===lm.DisplayStyle.COMPACT}})}_removeNavigation(){this.$container.addClass("navigation-invisible"),this.navigation&&(this.navigation.destroy(),this.navigation=null,this.invalidateLayoutTree())}_renderNavigationVisible(){this.animateLayoutChange=this.rendered,this.navigationVisible?this._renderNavigation():this.animateLayoutChange?this.invalidateLayoutTree():this._removeNavigation()}_renderHeader(){this.header||(this.header=this._createHeader(),this.header.render(),this.navigation&&this.navigation.rendered?this.header.$container.insertAfter(this.navigation.$container):this.header.$container.prependTo(this.$container),this.bench&&this.bench._setTabArea(this.header.tabArea),this.invalidateLayoutTree())}_createHeader(){let e=this.displayStyle===lm.DisplayStyle.COMPACT;return x.create("DesktopHeader",{parent:this,logoUrl:this.logoUrl,animateRemoval:e,toolBoxVisible:!e,tabArea:{displayStyle:e?rm.DisplayStyle.SPREAD_EVEN:rm.DisplayStyle.DEFAULT}})}_removeHeader(){this.header&&(this.header.on("destroy",(()=>{this.invalidateLayoutTree(),this.header=null})),this.header.destroy())}_renderHeaderVisible(){this.headerVisible?this._renderHeader():this._removeHeader()}_renderLogoUrl(){this.header&&this.header.setLogoUrl(this.logoUrl)}_renderSplitterVisible(){this.splitterVisible?this._renderSplitter():this._removeSplitter()}_renderSplitter(){!this.splitter&&this.navigation&&(this.splitter=x.create("Splitter",{parent:this,$anchor:this.navigation.$container,$root:this.$container}),this.splitter.render(),this.splitter.$container.insertBefore(this.$overlaySeparator),this.splitter.on("move",this._onSplitterMove.bind(this)),this.splitter.on("moveEnd",this._onSplitterMoveEnd.bind(this)),this.splitter.on("positionChange",this._onSplitterPositionChange.bind(this)),this.updateSplitterPosition())}_removeSplitter(){this.splitter&&(this.splitter.destroy(),this.splitter=null)}_renderInBackground(){this.$container.toggleClass("in-background",this.inBackground&&this.displayStyle!==lm.DisplayStyle.COMPACT),this.bench&&this.bench.$container.toggleClass("drop-shadow",this.inBackground)}_renderBrowserHistoryEntry(){if(!Qe.get().supportsHistoryApi())return;let e=this.$container.window(!0),t=this.browserHistoryEntry;if(t){let i=this._createHistoryPath(t);(this.rendered?e.history.pushState:e.history.replaceState).bind(e.history)({deepLinkPath:t.deepLinkPath},t.title,i)}}_createHistoryPath(e){if(!e.pathVisible)return"";let t=e.path,i=this.url.clone();if(i.removeParameter("dl"),i.removeParameter("i"),Ai.countOwnProperties(i.parameterMap)>0){let e=new ss(t);for(let t in i.parameterMap)e.addParameter(t,i.getParameter(t));t=e.toString({alwaysFirst:["dl","i"]})}return t}_setupDragAndDrop(){let e=e=>{e.stopPropagation(),e.preventDefault(),e.originalEvent.dataTransfer.dropEffect="none"};this.$container.on("dragenter",e),this.$container.on("dragover",e),this.$container.on("drop",(e=>{e.stopPropagation(),e.preventDefault()}))}updateSplitterVisibility(){this.setSplitterVisible(this.navigationVisible&&this.benchVisible&&this.displayStyle!==lm.DisplayStyle.COMPACT)}setSplitterVisible(e){this.setProperty("splitterVisible",e)}updateSplitterPosition(){if(!this.splitter)return;let e=this.cacheSplitterPosition&&this._loadCachedSplitterPosition();if(e){let t=parseInt(e,10);this.splitter.setPosition(t),this.invalidateLayoutTree()}else this.splitter.setPosition(),this.invalidateLayoutTree()}_disableContextMenu(){this.$container.on("contextmenu",(e=>{"INPUT"===e.target.nodeName||"TEXTAREA"===e.target.nodeName||e.target.isContentEditable||e.preventDefault()}))}setOutline(e){if(this.outline!==e)try{this.bench&&this.bench.setChanging(!0),this.rendered&&this._removeDisplayChildrenOfOutline(),this.outline=e,this._setDisplayStyle(this.displayStyle),this._setOutlineActivated(),this.navigation&&this.navigation.setOutline(this.outline),this.trigger("outlineChange"),this.rendered&&this._renderDisplayChildrenOfOutline()}finally{this.bench&&this.bench.setChanging(!1)}}_setViews(e){e&&e.forEach((e=>{e.setDisplayParent(this)})),this._setProperty("views",e)}_setViewButtons(e){this.updateKeyStrokes(e,this.viewButtons),this._setProperty("viewButtons",e)}setMenus(e){this.header&&this.header.setMenus(e)}_setMenus(e){this.updateKeyStrokes(e,this.menus),this._setProperty("menus",e)}_setKeyStrokes(e){this.updateKeyStrokes(e,this.keyStrokes),this._setProperty("keyStrokes",e)}setNavigationHandleVisible(e){this.setProperty("navigationHandleVisible",e)}_renderNavigationHandleVisible(){this.$container.toggleClass("has-navigation-handle",this.navigationHandleVisible)}setNavigationVisible(e){this.setProperty("navigationVisible",e),this.updateSplitterVisibility()}setBenchVisible(e){this.setProperty("benchVisible",e),this.updateSplitterVisibility()}setHeaderVisible(e){this.setProperty("headerVisible",e)}_setBenchLayoutData(e){e=Sm.ensure(e),this._setProperty("benchLayoutData",e)}_setInBackground(e){this._setProperty("inBackground",e)}outlineDisplayStyle(){if(this.outline)return this.outline.displayStyle}shrinkNavigation(){this.outline&&this.outline.toggleBreadcrumbStyleEnabled&&this.navigationVisible&&this.outlineDisplayStyle()===Ed.DisplayStyle.DEFAULT?this.outline.setDisplayStyle(Ed.DisplayStyle.BREADCRUMB):this.setNavigationVisible(!1)}enlargeNavigation(){this.outline&&this.navigationVisible&&this.outlineDisplayStyle()===Ed.DisplayStyle.BREADCRUMB?(this.outline.setDisplayStyle(Ed.DisplayStyle.DEFAULT),this.cacheSplitterPosition&&this.splitter&&(this.validateLayoutTree(),this._storeCachedSplitterPosition(this.splitter.position))):this.setNavigationVisible(!0)}switchToBench(e){this.setHeaderVisible(x.nvl(e,!0)),this.setBenchVisible(!0),this.setNavigationVisible(!1)}switchToNavigation(){this.setNavigationVisible(!0),this.setHeaderVisible(!1),this.setBenchVisible(!1)}revalidateHeaderLayout(){this.header&&this.header.revalidateLayout()}goOffline(){this.offline||(this.offline=!0,this._removeOfflineNotification(),this._offlineNotification=x.create("DesktopNotification:Offline",{parent:this}),this._offlineNotification.show())}goOnline(){this._removeOfflineNotification()}_removeOfflineNotification(){this._offlineNotification&&(setTimeout(this.removeNotification.bind(this,this._offlineNotification),3e3),this._offlineNotification=null)}addNotification(e){e&&(this.notifications.push(e),this.rendered&&this._renderNotification(e))}_renderNotification(e){this.$notifications?this.$notifications.appendTo(this.$container):this.$notifications=this.$container.appendDiv("desktop-notifications"),e.fadeIn(this.$notifications),e.duration>0&&(e.removeTimeout=setTimeout(e.hide.bind(e),e.duration),e.one("remove",(()=>{this.removeNotification(e)})))}_renderNotifications(){this.notifications.forEach((e=>{this._renderNotification(e)}))}removeNotification(e){if("string"==typeof e){let t=e;e=me.find(this.notifications,(e=>t===e.id))}e&&(e.removeTimeout&&clearTimeout(e.removeTimeout),me.remove(this.notifications,e),this.rendered&&(e.rendered&&e.one("remove",this._onNotificationRemove.bind(this,e)),e.fadeOut()))}getPopups(){if(!this.$container)return[];let e=[];return this.$container.children(".popup").each(((t,i)=>{let s=n()(i),r=J.get(s);r instanceof Ao&&e.push(r)})),e}getPopupsFor(e){return this.getPopups().filter((t=>e.has(t)))}removePopupsFor(e){this.getPopupsFor(e).forEach((e=>{e.remove()}))}openUri(e,t){this.rendered?this.openUriHandler.openUri(e,t):this._postRenderActions.push(this.openUri.bind(this,e,t))}bringOutlineToFront(){this.rendered?this.inBackground&&this.displayStyle!==lm.DisplayStyle.BENCH&&(this._setInBackground(!1),this._setOutlineActivated(),this.navigationVisible&&this.navigation.bringToFront(),this.benchVisible&&this.bench.bringToFront(),this.headerVisible&&this.header.bringToFront(),this._renderInBackground()):this._postRenderActions.push(this.bringOutlineToFront.bind(this))}sendOutlineToBack(){this.inBackground||(this._setInBackground(!0),this.navigationVisible&&this.navigation.sendToBack(),this.benchVisible&&this.bench.sendToBack(),this.headerVisible&&this.header.sendToBack(),this._renderInBackground())}inFront(){return!0}_glassPaneTargets(e){let t,i=this.$container.children().not(".splitter").not(".desktop-notifications").not(".overlay-separator");if(e){e.$container&&(i=i.not(e.$container));let t=this.$overlaySeparator.nextAll().toArray(),s=[];e.$container&&t.indexOf(e.$container[0])>-1&&(s=e.$container.nextAll().toArray());let r=null;if(t.length)for(let i=t.length-1;i>=0;i--){let s=t[i];if(this._isGlassPaneTargetFiltered(s,e)){r=s;break}}i=i.filter(((t,i)=>!(s.indexOf(i)>-1)&&(i!==r&&this._isGlassPaneTargetFiltered(i,e))))}return e instanceof Ta&&e.displayHint===Ta.DisplayHint.VIEW?(i=i.not(".desktop-bench").not(".desktop-header"),this.header&&this.header.toolBox&&this.header.toolBox.$container&&i.push(this.header.toolBox.$container),t=n().makeArray(i),me.pushAll(t,this._getBenchGlassPaneTargetsForView(e))):t=n().makeArray(i),this._pushPopupWindowGlassPaneTargets(t,e),t}_isGlassPaneTargetFiltered(e,t){return this._glassPaneTargetFilters.every((i=>i(e,t)),this)}addGlassPaneTargetFilter(e){this._glassPaneTargetFilters.push(e)}removeGlassPaneTargetFilter(e){me.remove(this._glassPaneTargetFilters,e)}_deferredGlassPaneTarget(e){let t=new vn;return e.one("init",(()=>{t.ready([e.$container])})),t}_getBenchGlassPaneTargetsForView(e){let t=[];return t=t.concat(this._getTabGlassPaneTargetsForView(e,this.header)),this.bench&&this.bench.visibleTabBoxes().forEach((function(i){i.rendered&&(i.hasView(e)?t=t.concat(this._getTabGlassPaneTargetsForView(e,i)):t.push(i.$container))}),this),t}_getTabGlassPaneTargetsForView(e,t){let i=[];return t&&t.tabArea&&t.tabArea.tabs.forEach((t=>{t.view!==e&&(i.push(t.$container),t.$container.addClass("glasspane-parent"))})),i}_pushPopupWindowGlassPaneTargets(e,t){this.formController._popupWindows.forEach((function(i){t!==i.form&&e.push(i.initialized?i.$container[0]:this._deferredGlassPaneTarget(i))}),this)}showForm(e,t){let i=e.displayParent||this;e.setDisplayParent(i),this._setFormActivated(e),i.formController.registerAndRender(e,t,!0)}hideForm(e){if(e.displayParent){if(this.displayStyle===lm.DisplayStyle.COMPACT&&e.isView()&&this.benchVisible){let t=this.bench.getViews().slice();me.remove(t,e),0===t.length&&this.switchToNavigation()}e.displayParent.formController.unregisterAndRemove(e),this.benchVisible&&0!==this.bench.getViews().length||this.bringOutlineToFront()}}isFormShown(e){return(e.displayParent||this).formController.isFormShown(e)}activateForm(e){if(!e)return void this._setFormActivated(null);(e.displayParent||this).formController.activateForm(e),this._setFormActivated(e),e.dialogs.forEach((function(e){e.modal&&this.activateForm(e)}),this)}_setOutlineActivated(){this._setFormActivated(null),this.outline&&this.outline.activateCurrentPage()}_setFormActivated(e){this.rendered&&!this.initialFormRendering&&this.activeForm!==e&&(this.activeForm=e,e?e.displayHint===Ta.DisplayHint.VIEW&&!e.detailForm&&this.bench&&this.bench.hasView(e)&&this.sendOutlineToBack():this.bringOutlineToFront(),this.triggerFormActivate(e))}triggerFormActivate(e){this.trigger("formActivate",{form:e})}cancelViews(e){let t=new ht;t.forms=e,this.trigger("cancelForms",t),t.defaultPrevented||this._cancelViews(e)}_cancelViews(e){if(1===(e=e.filter((e=>!me.find(e.views,(e=>e.modal))))).length)return void e[0].cancel();let t=e.filter((e=>{let t=!1;return e.visitDisplayChildren((e=>{e.lifecycle.requiresSave()&&(t=!0)}),(e=>e instanceof Ta)),e.lifecycle.requiresSave()||t})),i=n().resolvedPromise();if(t.length>0){let e=x.create("scout.UnsavedFormChangesForm",{parent:this,session:this.session,displayParent:this,unsavedForms:t});e.open(),i=e.whenSave().then((()=>{let t=e.openFormsField.value;return t.forEach((e=>{e.visitDisplayChildren((e=>{e instanceof Ta?e.ok():e.close()})),e.ok()})),t}))}i.then((t=>{t&&me.removeAll(e,t),e.forEach((e=>{e.visitDisplayChildren((e=>{e.close()})),e.close()}))}))}onLayoutAnimationComplete(){this.headerVisible||this._removeHeader(),this.navigationVisible||this._removeNavigation(),this.benchVisible||this._removeBench(),this.trigger("animationEnd"),this.animateLayoutChange=!1}onLayoutAnimationStep(){this.repositionTooltips()}onResize(e){this.revalidateLayoutTree()}resetPopstateHandler(){this.setPopstateHandler(this.onPopstate.bind(this))}setPopstateHandler(e){if(this.rendered||this.rendering){let t=this.$container.window();this._popstateHandler&&t.off("popstate",this._popstateHandler),e&&t.on("popstate",e)}this._popstateHandler=e}onPopstate(e){let t=e.originalEvent.state;t&&t.deepLinkPath&&this.trigger("historyEntryActivate",t)}_onSplitterMove(e){this.resizing=!0;let t=Math.floor(this.$container.outerWidth(!0)/2);e.position>t&&e.setPosition(t)}_onSplitterPositionChange(e){this.htmlComp.layouting||this.revalidateLayout()}_onSplitterMoveEnd(e){let t=e.position;this.cacheSplitterPosition&&this._storeCachedSplitterPosition(this.splitter.position),t<Am.BREADCRUMB_STYLE_WIDTH?this.navigation.$container.animate({width:Am.BREADCRUMB_STYLE_WIDTH},{progress:function(){this.resizing=!0,this.splitter.setPosition(),this.revalidateLayout(),this.resizing=!1}.bind(this),complete:function(){this.resizing=!0,this.splitter.setPosition(),this.cacheSplitterPosition&&this._storeCachedSplitterPosition(this.splitter.position),this.revalidateLayout(),this.resizing=!1}.bind(this)}):this.resizing=!1}_loadCachedSplitterPosition(){return gs.getItemFromSessionStorage("scout:desktopSplitterPosition")||gs.getItemFromLocalStorage("scout:desktopSplitterPosition:"+window.location.pathname)}_storeCachedSplitterPosition(e){gs.setItemToSessionStorage("scout:desktopSplitterPosition",e),gs.setItemToLocalStorage("scout:desktopSplitterPosition:"+window.location.pathname,e)}_onNotificationRemove(e){0===this.notifications.length&&this.$notifications&&(this.$notifications.remove(),this.$notifications=null)}onReconnecting(){this.offline&&this._offlineNotification.reconnect()}onReconnectingSucceeded(){this.offline&&(this.offline=!1,this._offlineNotification.reconnectSucceeded(),this._removeOfflineNotification())}onReconnectingFailed(){this.offline&&this._offlineNotification.reconnectFailed()}dataChange(e){this.events.trigger("dataChange",e)}_activeTheme(){return ms.get("scout.ui.theme")||lm.DEFAULT_THEME}logoAction(){this.logoActionEnabled&&this.trigger("logoAction")}_initTheme(){let e=this.theme;this.url.hasParameter("theme")?e=qt.nullIfEmpty(this.url.getParameter("theme"))||lm.DEFAULT_THEME:null===e&&(e=this._activeTheme()),this.setTheme(e)}setTheme(e){this.setProperty("theme",e),this.theme!==this._activeTheme()&&this._switchTheme(e)}_switchTheme(e){ms.set("scout.ui.theme",e,2592e3),n()("body").setVisible(!1);let t={clearBody:!1};this.url.hasParameter("theme")&&(this.url.removeParameter("theme"),t.redirectUrl=this.url.toString()),x.reloadPage(t)}moveOverlaysBehindAndFocus(e,t){(t=n().ensure(t)).nextAll().toArray().forEach((i=>{me.containsAll(e,[i])&&n()(i).insertBefore(t)})),t.isOrHas(t.activeElement())||this.session.focusManager.activateFocusContext(t)}repositionTooltips(){this.$container.children(".tooltip").each((function(){x.widget(n()(this)).position()}))}_renderTrackFocus(){this.trackFocus?this.$container[0].addEventListener("focusin",this._focusInListener,!0):this.$container[0].removeEventListener("focusin",this._focusInListener,!0)}_onFocusIn(e){super._onFocusIn(e);let t=n()(e.target),i=x.widget(t);this.setProperty("focusedElement",i)}}om(lm,"DisplayStyle",{DEFAULT:"default",BENCH:"bench",COMPACT:"compact"}),om(lm,"UriAction",{DOWNLOAD:"download",OPEN:"open",NEW_WINDOW:"newWindow",POPUP_WINDOW:"popupWindow",SAME_WINDOW:"sameWindow"}),om(lm,"DEFAULT_THEME","default");class am extends j{constructor(){super(),this._addRemoteProperties(["benchVisible","navigationVisible","navigationHandleVisible","headerVisible","geolocationServiceAvailable","inBackground","focusedElement"])}_goOffline(){this.widget.goOffline()}_goOnline(){this.widget.goOnline()}_onWidgetHistoryEntryActivate(e){this._send("historyEntryActivate",{deepLinkPath:e.deepLinkPath})}_onWidgetFormActivate(e){e.form&&!e.form.modelAdapter||this._sendFormActivate(e.form)}_sendFormActivate(e){let t={formId:e?e.modelAdapter.id:null};this._send("formActivate",t,{coalesce:function(e){return this.target===e.target&&this.type===e.type&&!(null===e.formId&&null!==this.formId)}})}_prepareRemoteProperty(e,t){return"focusedElement"===e?t:super._prepareRemoteProperty(e,t)}_sendFocusedElement(e){for(;e&&!e.modelAdapter;)e=e.parent;e=e?e.id:null,this._sendProperty("focusedElement",e)}_logoAction(e){this._send("logoAction")}_onWidgetEvent(e){"formActivate"===e.type?this._onWidgetFormActivate(e):"historyEntryActivate"===e.type?this._onWidgetHistoryEntryActivate(e):"logoAction"===e.type?this._logoAction(e):"cancelForms"===e.type?this._onWidgetCancelAllForms(e):super._onWidgetEvent(e)}_onFormShow(e){let t,i=this.session.getModelAdapter(e.displayParent);if(i){t=this.session.getOrCreateWidget(e.form,i.widget),t.setDisplayParent(i.widget);let s=this.session.asyncEvents.some((function(e){return"formActivate"===e.type&&e.target===this.id}),this);s||this.addFilterForWidgetEvent((e=>"formActivate"===e.type&&e.form===t)),this.widget.showForm(t,e.position)}}_onFormHide(e){let t;this.session.getModelAdapter(e.displayParent)&&(t=this.session.getModelAdapter(e.form),this.widget.hideForm(t.widget))}_onFormActivate(e){let t=this.session.getWidget(e.form);this.widget.activateForm(t)}_onWidgetCancelAllForms(e){e.preventDefault();let t=[];e.forms&&(t=e.forms.map((e=>e.modelAdapter.id))),this._send("cancelForms",{formIds:t})}_onMessageBoxShow(e){let t,i=this.session.getModelAdapter(e.displayParent);i&&(t=this.session.getOrCreateWidget(e.messageBox,i.widget),t.setDisplayParent(i.widget),i.widget.messageBoxController.registerAndRender(t))}_onMessageBoxHide(e){let t,i=this.session.getModelAdapter(e.displayParent);i&&(t=this.session.getModelAdapter(e.messageBox),i.widget.messageBoxController.unregisterAndRemove(t.widget))}_onFileChooserShow(e){let t,i=this.session.getModelAdapter(e.displayParent);i&&(t=this.session.getOrCreateWidget(e.fileChooser,i.widget),t.setDisplayParent(i.widget),i.widget.fileChooserController.registerAndRender(t))}_onFileChooserHide(e){let t,i=this.session.getModelAdapter(e.displayParent);i&&(t=this.session.getModelAdapter(e.fileChooser),i.widget.fileChooserController.unregisterAndRemove(t.widget))}_onOpenUri(e){this.widget.openUri(e.uri,e.action)}_onOutlineChanged(e){let t=this.session.getOrCreateWidget(e.outline,this.widget);this.widget.setOutline(t)}_onAddNotification(e){let t=this.session.getOrCreateWidget(e.notification,this.widget);this.widget.addNotification(t)}_onRemoveNotification(e){this.widget.removeNotification(e.notification)}_onOutlineContentActivate(e){this.widget.bringOutlineToFront()}_onRequestGeolocation(e){if(navigator.geolocation){let e=function(e){this._send("geolocationDetermined",{latitude:e.coords.latitude,longitude:e.coords.longitude})}.bind(this),t=function(e){this._send("geolocationDetermined",{errorCode:e.code,errorMessage:e.message})}.bind(this);navigator.geolocation.getCurrentPosition(e,t)}}onModelAction(e){"formShow"===e.type?this._onFormShow(e):"formHide"===e.type?this._onFormHide(e):"formActivate"===e.type?this._onFormActivate(e):"messageBoxShow"===e.type?this._onMessageBoxShow(e):"messageBoxHide"===e.type?this._onMessageBoxHide(e):"fileChooserShow"===e.type?this._onFileChooserShow(e):"fileChooserHide"===e.type?this._onFileChooserHide(e):"openUri"===e.type?this._onOpenUri(e):"outlineChanged"===e.type?this._onOutlineChanged(e):"outlineContentActivate"===e.type?this._onOutlineContentActivate(e):"addNotification"===e.type?this._onAddNotification(e):"removeNotification"===e.type?this._onRemoveNotification(e):"requestGeolocation"===e.type?this._onRequestGeolocation(e):super.onModelAction(e)}}class hm extends Y{constructor(){super(),this.desktop=null,this.clickable=!1,this.image=null,this._desktopPropertyChangeHandler=this._onDesktopPropertyChange.bind(this),this._clickHandler=this._onClick.bind(this)}_init(e){super._init(e),this.desktop=this.session.desktop,this.clickable=this.desktop.logoActionEnabled,this.url=e.url,this.image=scout.create("Image",{parent:this,imageUrl:this.url})}_render(){this.$container=this.$parent.appendDiv("desktop-logo"),this.htmlComp=fr.install(this.$container,this.session),this.image.render(),this.desktop.on("propertyChange",this._desktopPropertyChangeHandler)}_renderProperties(){super._renderProperties(),this._renderClickable()}_remove(){this.desktop.off("propertyChange",this._desktopPropertyChangeHandler),super._remove()}_renderClickable(){this.$container.toggleClass("clickable",this.clickable),this.clickable?this.$container.on("click",this._clickHandler):this.$container.off("click",this._clickHandler)}setUrl(e){this.setProperty("url",e),this.image.setImageUrl(e)}setClickable(e){this.setProperty("clickable",e)}_onDesktopPropertyChange(e){"logoActionEnabled"===e.propertyName&&this.setClickable(e.newValue)}_onClick(e){this.desktop.logoAction()}}class dm extends _r{constructor(e){super(),this.desktop=e}layout(e){let t,i,s,r,n,o,l,a=0,h=0,d=this.desktop,u=d.navigation,c=d.header,p=d.bench,g=d.animateLayoutChange,m=this.containerSize(),_=u&&u.htmlComp.layoutData.fullWidth;if(Oa.get().handleResponsive(d,e.width()),u&&(a=this.calculateNavigationWidth(m),d.splitter&&d.splitter.setPosition(a),d.navigationVisible&&(o=u.htmlComp,t=new sr(a,m.height).subtract(o.margins()),o.setSize(t))),c&&(s=c.htmlComp,h=s.$comp.outerHeight(!0),d.headerVisible&&(g||c.$container.cssLeft(a),i=new sr(m.width-a,h).subtract(s.margins()),g&&!_||s.setSize(i),g&&(l={left:m.width},f(l,s,i),this._animate(l,s,i)))),p&&(r=p.htmlComp,d.benchVisible)){if(p.$container.cssTop(h),g||p.$container.cssLeft(a),n=new sr(m.width-a,m.height-h).subtract(r.margins()),!g||_){let e=r.size();r.setSize(n),r.size().equals(e)||d.repositionTooltips()}g&&(l={left:m.width},f(l,r,n),this._animate(l,r,n))}function f(e,t,i){_?t.$comp.cssLeft(m.width):(e.width=i.width,t.setSize(i)),e.left=a}}_animate(e,t,i){function s(){t.$comp.stop().animate(e,{complete:this.desktop.onLayoutAnimationComplete.bind(this.desktop),step:this.desktop.onLayoutAnimationStep.bind(this.desktop)})}t.$comp.is(":animated")?s.call(this):setTimeout(s.bind(this))}containerSize(){let e=this.desktop.htmlComp;return e.availableSize({exact:!0}).subtract(e.insets())}calculateNavigationWidth(e){if(!this.desktop.navigationVisible)return 0;if(this.desktop.navigation.htmlComp.layoutData.fullWidth)return e.width;let t=0;this.desktop.splitter&&(t=this.desktop.splitter.position);let i=this.desktop.outline;return!this.desktop.resizing&&i&&i.toggleBreadcrumbStyleEnabled&&(i.displayStyle===Ed.DisplayStyle.BREADCRUMB?t=Am.BREADCRUMB_STYLE_WIDTH:Math.floor(t)<=Am.BREADCRUMB_STYLE_WIDTH&&(t=Am.DEFAULT_STYLE_WIDTH)),Math.max(t,Am.MIN_WIDTH)}}class um extends sm{constructor(){super()}_render(){super._render(),this.$container.addClass("desktop-tab"),this.$container.on("contextmenu",this._onContextMenu.bind(this)),this.$container.prependDiv("edge left"),this.$container.appendDiv("edge right")}_renderClosable(){super._renderClosable(),this.closable&&this.view.closeKeyStroke&&(this.view.closeKeyStroke.renderingHints={hAlign:ns.RIGHT,render:()=>!!this.$close,$drawingArea:()=>this.$close})}_onContextMenu(e){let t=x.create("Menu",{parent:this,text:this.session.text("ui.CloseAllTabs")});t.on("action",this._onCloseAll.bind(this));let i=x.create("Menu",{parent:this,text:this.session.text("ui.CloseOtherTabs"),enabled:this.parent.tabs.length>1});i.on("action",this._onCloseOther.bind(this)),x.create("ContextMenuPopup",{parent:this,menuItems:[t,i],cloneMenuItems:!1,location:{x:e.pageX,y:e.pageY}}).open()}_onCloseAll(){let e=this.parent.tabs.map((e=>e.view));this.session.desktop.cancelViews(e)}_onCloseOther(){let e=this.parent.tabs.map((e=>e.view));me.remove(e,this.view),this.session.desktop.cancelViews(e)}}class cm extends nm{constructor(e){super(e)}layout(e){super.layout(e),this.tabArea.updateFirstTabSelected()}}class pm extends rm{constructor(){super()}_render(){super._render(),this.$container.addClass("desktop-tab-area")}_createLayout(){return new cm(this)}updateFirstTabSelected(){let e=this.session.desktop;if(!e.rendered)return;let t=this.getVisibleTabs()[0];e.$container.toggleClass("first-tab-selected",t&&t.selected)}}class gm extends Vr{constructor(){super()}createTabArea(){return x.create("DesktopTabArea",{parent:this.tabBox})}_createTab(e){return x.create("DesktopTab",{parent:this.tabArea,view:e})}_shouldCreateTabForView(e){return!e.headerVisible}}class mm extends en{constructor(e){super(),this.field=e,this.parseAndSetKeyStroke(e.selectViewTabsKeyStrokeModifier),this.registerRange(Kr[1],(()=>Kr[Math.min(this._viewTabs().length,9)])),this.renderingHints.$drawingArea=(e,t)=>{let i=t.which-Kr[1];return this._viewTabs()[i].$container},this.inheritAccessibility=!1}_isEnabled(){return super._isEnabled()&&this.field.selectViewTabsKeyStrokesEnabled&&this._viewTabs().length>0}handle(e){let t=e.which-Kr[1];if(this._viewTabs().length&&t<this._viewTabs().length){let e=this._viewTabs()[t];this.field.bench&&this.field.bench.activateView(e.view)}}_viewTabs(){return this.field.bench?this.field.bench.getTabs():[]}}class _m extends U{constructor(e){super(),this.field=e,this.which=[Kr.F5],this.preventDefault=!0,this.keyStrokeFirePolicy=vo.KeyStrokeFirePolicy.ALWAYS,this.renderingHints.render=!1,this.inheritAccessibility=!1}handle(e){}}class fm{constructor(e,t){this.myWindow=e,this.form=t,this.session=t.session,this.events=new dt,this.initialized=!1,this.$container=null,this.htmlComp=null,t.popupWindow=this,e.popupWindow=this,e.name="Scout popup-window "+t.modelClass}_onUnload(){n().log.isDebugEnabled()&&n().log.debug("stored form ID "+this.form.id+" to session storage"),this.form.destroyed?n().log.isDebugEnabled()&&n().log.debug("form ID "+this.form.id+" is already destroyed - don't trigger unload event"):this.events.trigger("popupWindowUnload",this)}_onReady(){let e=this.myWindow.document,t=n()(this.myWindow),i=n()(e);if(this.myWindow.popupWindow=this,x.prepareDOM(e),this.$container=n()(".scout",e),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Or),this.$container.height(t.height()),this.form.render(this.$container),this.resizeToPrefSize){let e=this.htmlComp.prefSize(),t=new sr(this.myWindow.outerWidth,this.myWindow.outerHeight),s=new sr(i.width(),i.height()),r=t.width-s.width,n=t.height-s.height;this.myWindow.resizeTo(e.width+r,e.height+n),this.resizeToPrefSize=!1}this.form.htmlComp.validateLayout(),this.session.keyStrokeManager.installTopLevelKeyStrokeHandlers(this.$container),this.session.focusManager.installTopLevelMouseHandlers(this.$container),x.installGlobalMouseDownInterceptor(e),n()(this.myWindow).on("unload",this._onUnload.bind(this)).on("resize",this._onResize.bind(this)),this.myWindow.opener&&(this.myWindow.onerror=this.myWindow.opener.onerror),this.initialized=!0,this.events.trigger("init")}_onResize(){let e=n()(this.myWindow),t=e.width(),i=e.height(),s=this.myWindow.screenX,r=this.myWindow.screenY;n().log.isDebugEnabled()&&n().log.debug("popup-window resize: width="+t+" height="+i+" top="+r+" left="+s),this.form.storeCacheBounds(new or(s,r,t,i));let o=new sr(e.width(),e.height());this.htmlComp.setSize(o)}isClosed(){return this.myWindow.closed}one(e,t){this.events.one(e,t)}close(){this.myWindow.close()}title(e){this.myWindow.document.title=e}}class bm{init(e){this.session=e.session}openUri(e,t){n().log.isDebugEnabled()&&n().log.debug("(OpenUriHandler#openUri) uri="+e+" action="+t),e&&((t=x.nvl(t,lm.UriAction.OPEN))===lm.UriAction.DOWNLOAD?this.handleUriActionDownload(e):t===lm.UriAction.OPEN?this.handleUriActionOpen(e):t===lm.UriAction.NEW_WINDOW?this.handleUriActionNewWindow(e):t===lm.UriAction.POPUP_WINDOW?this.handleUriActionPopupWindow(e):t===lm.UriAction.SAME_WINDOW&&this.handleUriActionSameWindow(e))}handleUriActionDownload(e){Qe.get().isIos()?Qe.get().isStandalone()?this.openUriInSameWindow(e):this.openUriAsNewWindow(e):Qe.get().browser===Qe.Browser.CHROME&&this.isUriWithExternallyHandledProtocol(e)?this.openUriInSameWindow(e):this.openUriInIFrame(e)}isUriWithExternallyHandledProtocol(e){return/^(callto|facetime|fax|geo|mailto|maps|notes|sip|skype|tel|google.navigation|sms|msteams):/.test(e)}handleUriActionOpen(e){Qe.get().isIos()?this.openUriInSameWindow(e):this.isUriWithExternallyHandledProtocol(e)?Qe.get().browser===Qe.Browser.CHROME||Qe.get().isAndroid()?this.openUriInSameWindow(e):this.openUriInIFrame(e):this.openUriAsNewWindow(e)}handleUriActionNewWindow(e){this.openUriAsNewWindow(e)}handleUriActionPopupWindow(e){this.openUriAsPopupWindow(e)}handleUriActionSameWindow(e){this.openUriInSameWindow(e)}openUriInSameWindow(e){window.location.assign(e)}openUriInIFrame(e){let t=this.session.$entryPoint.appendElement("<iframe>","download-frame").attr("tabindex",-1).attr("src",e);setTimeout((()=>{t.remove()}),1e4)}openUriAsNewWindow(e){x.create("PopupBlockerHandler",{session:this.session}).openWindow(e)}openUriAsPopupWindow(e){x.create("PopupBlockerHandler",{session:this.session}).openWindow(e,null,"location=no,toolbar=no,menubar=no,resizable=yes,scrollbars=yes")}}function ym(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class wm extends Y{constructor(){super(),this.columns=[],this.components=null,this.tabBoxMap={},this._removeViewInProgress=0,this.changingCounter=0,this.changed=!1,this.layoutCacheKey=[],this._desktopOutlineChangeHandler=this._onDesktopOutlineChange.bind(this),this._desktopPropertyChangeHandler=this._onDesktopPropertyChange.bind(this),this._outlineNodesSelectedHandler=this._onOutlineNodesSelected.bind(this),this._outlinePageChangedHandler=this._onOutlinePageChanged.bind(this),this._outlinePropertyChangeHandler=this._onOutlinePropertyChange.bind(this),this._outlineContentDestroyHandler=this._onOutlineContentDestroy.bind(this),this._outlineContentCssClassChangeHandler=this._onOutlineContentCssClassChange.bind(this),this._viewAddHandler=this._onViewAdd.bind(this),this._viewRemoveHandler=this._onViewRemove.bind(this),this._viewActivateHandler=this._onViewActivate.bind(this),this._viewDeactivateHandler=this._onViewDeactivate.bind(this),this._desktopAnimationEndHandler=this._onDesktopAnimationEnd.bind(this)}_init(e){super._init(e),wm.VIEW_MIN_HEIGHT=n().pxToNumber(ts.get("view-tab-box","min-height").minHeight),wm.VIEW_MIN_WIDTH=n().pxToNumber(ts.get("view-tab-box","min-width").minWidth),this.desktop=this.session.desktop,this.setLayoutData(this.desktop.benchLayoutData),this._createColumns(),this.headerTabArea=e.headerTabArea,this.headerTabArea&&(this.headerTabAreaController=x.create("HeaderTabBoxController"),this.headerTabAreaController.install(this,this.headerTabArea)),this.outlineContentVisible=x.nvl(e.outlineContentVisible,!0),this.setOutline(this.desktop.outline),this.updateNavigationHandleVisibility()}_setTabArea(e){if(this.headerTabArea=e,this.headerTabAreaController){this.headerTabAreaController.install(this,this.headerTabArea);let e=this.getTabBox("C");e.viewStack.slice().reverse().forEach((function(t){this.headerTabAreaController._onViewAdd({view:t}),e.currentView===t&&this.headerTabAreaController._onViewActivate({view:t})}),this),this.headerTabAreaController._onViewsChanged()}}_createColumns(){let e=[];this.getLayoutData()&&(e=this.getLayoutData().getColumns());for(let t=0;t<3;t++){let i=this.layoutCacheKey.slice();i.length>0&&i.push("column"+t);let s=x.create("BenchColumn",{parent:this,layoutData:e[t],cacheKey:i,cssClass:wm.VIEW_AREA_COLUMN_CLASSES[t]});s.on("viewAdd",this._viewAddHandler),s.on("viewRemove",this._viewRemoveHandler),s.on("viewActivate",this._viewActivateHandler),s.on("viewDeactivate",this._viewDeactivateHandler),this.columns.push(s)}}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.desktopKeyStrokeContext=new Zr,this.desktopKeyStrokeContext.invokeAcceptInputOnActiveValueField=!0,this.desktopKeyStrokeContext.$bindTarget=this.desktop.$container,this.desktopKeyStrokeContext.$scopeTarget=this.desktop.$container,this.desktopKeyStrokeContext.registerKeyStroke(new mm(this.desktop))}_render(){this.$container=this.$parent.appendDiv("desktop-bench"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout()),this.htmlComp.layoutData=this.getLayoutData(),this._renderColumns(),this._revalidateSplitters(),this._renderNavigationHandleVisible(),this.session.keyStrokeManager.installKeyStrokeContext(this.desktopKeyStrokeContext),this.desktop.on("propertyChange",this._desktopPropertyChangeHandler),this.desktop.on("outlineChange",this._desktopOutlineChangeHandler),this.desktop.on("animationEnd",this._desktopAnimationEndHandler)}_createLayout(){return new Nr(Nr.Direction.ROW,this.layoutCacheKey)}visibleColumns(){return this.columns.filter((e=>e.hasViews()))}_renderColumns(){this.visibleColumns().forEach((function(e){this._renderColumn(e)}),this),this.updateFirstLastMarker()}_renderColumn(e){e&&!e.rendered&&e.render()}_remove(){this.desktop.off("propertyChange",this._desktopPropertyChangeHandler),this.desktop.off("outlineChange",this._desktopOutlineChangeHandler),this.desktop.off("animationEnd",this._desktopAnimationEndHandler),this.session.keyStrokeManager.uninstallKeyStrokeContext(this.desktopKeyStrokeContext),super._remove()}updateFirstLastMarker(){J.updateFirstLastMarker(this.visibleColumns())}_renderOutlineContent(){this.outlineContent&&(delete this.outlineContent.title,delete this.outlineContent.subTitle,delete this.outlineContent.iconId,this.addView(this.outlineContent,!this.desktop.inBackground),this.desktop.rendered&&this.session.focusManager.validateFocus())}_removeOutlineContent(){this.outlineContent&&this.removeView(this.outlineContent,!1)}_createNavigationHandle(){return x.create("DesktopNavigationHandle",{parent:this,leftVisible:!1})}_renderNavigationHandle(){this.navigationHandle||(this.navigationHandle=this._createNavigationHandle(),this.navigationHandle.render(),this.navigationHandle.addCssClass("navigation-closed"),this.navigationHandle.on("action",this._onNavigationHandleAction.bind(this)))}_removeNavigationHandle(){this.navigationHandle&&(this.navigationHandle.destroy(),this.navigationHandle=null)}_renderNavigationHandleVisible(){this.navigationHandleVisible?this._renderNavigationHandle():this._removeNavigationHandle(),this.$container.toggleClass("has-navigation-handle",this.navigationHandleVisible)}postRender(){this.columns.forEach((e=>{e.postRender()}))}setChanging(e){e?this.changingCounter++:this.changingCounter--,0===this.changingCounter&&this.changed&&this.rendered&&(this.htmlComp.layout.reset(),this.htmlComp.invalidateLayoutTree(),this.changed=!1)}updateLayoutData(e){if(this.getLayoutData()===e)return;this.setLayoutData(e);let t=e.getColumns();this.columns.forEach(((e,i)=>{let s;this.layoutCacheKey&&this.layoutCacheKey.length>0&&(s=this.layoutCacheKey.slice(),s.push("column"+i)),e.updateLayoutData(t[i],s)})),this.rendered&&(this.htmlComp.layout.setCacheKey(this.layoutCacheKey),this.htmlComp.layout.reset(),this.htmlComp.invalidateLayoutTree()),this._updateSplitterMovable()}setLayoutData(e){this.layoutData!==e&&(super.setLayoutData(e),this.layoutData=e,this.layoutCacheKey=[],e.cacheKey&&this.layoutCacheKey.push(e.cacheKey))}getLayoutData(){return this.layoutData}setNavigationHandleVisible(e){this.setProperty("navigationHandleVisible",e)}setOutline(e){this.outline&&(this.outline.off("nodesSelected",this._outlineNodesSelectedHandler),this.outline.off("pageChanged",this._outlinePageChangedHandler),this.outline.off("propertyChange",this._outlinePropertyChangeHandler)),this._setProperty("outline",e),this.outline&&(this.outline.on("nodesSelected",this._outlineNodesSelectedHandler),this.outline.on("pageChanged",this._outlinePageChangedHandler),this.outline.on("propertyChange",this._outlinePropertyChangeHandler)),this.updateOutlineContent()}setOutlineContent(e){let t=this.outlineContent;this.outlineContent!==e&&(t&&(t.off("destroy",this._outlineContentDestroyHandler),t.off("propertyChange:cssClass",this._outlineContentCssClassChangeHandler)),this.rendered&&this._removeOutlineContent(),e&&(e.one("destroy",this._outlineContentDestroyHandler),e.on("propertyChange:cssClass",this._outlineContentCssClassChangeHandler)),this._setProperty("outlineContent",e),this.desktop.header&&this.desktop.header.onBenchOutlineContentChange(e,t),this._updateOutlineContentHasDimmedBackground(),this._renderOutlineContent())}setOutlineContentVisible(e){e!==this.outlineContentVisible&&(this._setProperty("outlineContentVisible",e),this.updateOutlineContent())}bringToFront(){this.outlineContent&&this._renderOutlineContent()}sendToBack(){}_updateOutlineContentHasDimmedBackground(){if(!this.outlineContent)return;let e=!1;this.outlineContent.cssClass&&(e=this.outlineContent.cssClass.indexOf("dimmed-background")>-1),this.toggleCssClass("outline-content-has-dimmed-background",e)}_computeDetailContentForPage(e){if(!e)throw new Error("called _showDetailContentForPage without node");let t;return e.detailForm&&e.detailFormVisible&&e.detailFormVisibleByUi?(t=e.detailForm,t.uiCssClass="detail-form"):e.detailTable&&e.detailTableVisible&&(t=e.detailTable,t.uiCssClass="detail-table perma-focus"),t}updateOutlineContent(){if(!this.outlineContentVisible||!this.outline)return;let e,t=this.outline.selectedNode();e=t?this._computeDetailContentForPage(t):this.outline._computeRootContent(),e&&(e instanceof Ka&&(e.menuBar.addCssClass("main-menubar"),e.menuBar.removeCssClass("bounded")),e.displayViewId="C"),this.setOutlineContent(e)}updateOutlineContentDebounced(){clearTimeout(this._updateOutlineContentTimeout),this._updateOutlineContentTimeout=setTimeout((()=>{this.updateOutlineContent()}),300)}updateNavigationHandleVisibility(){this.setNavigationHandleVisible(this.desktop.navigationHandleVisible&&!this.desktop.navigationVisible)}_onDesktopOutlineChange(e){this.setOutline(this.desktop.outline),this.updateNavigationHandleVisibility()}_onOutlineContentDestroy(e){this.setOutlineContent(null)}_onOutlineContentCssClassChange(e){this._updateOutlineContentHasDimmedBackground()}_onOutlineNodesSelected(e){e.debounce?this.updateOutlineContentDebounced():this.updateOutlineContent()}_onOutlinePageChanged(e){let t=this.outline.selectedNode();(e.page||t)&&e.page!==t||this.updateOutlineContent()}_onOutlinePropertyChange(e){x.isOneOf(e.propertyName,["defaultDetailForm","outlineOverview"])&&this.updateOutlineContent()}_onDesktopNavigationVisibleChange(e){this.desktop.navigationVisible&&this.updateNavigationHandleVisibility()}_onDesktopNavigationHandleVisibleChange(e){this.updateNavigationHandleVisibility()}_onDesktopAnimationEnd(e){this.desktop.navigationVisible||this.updateNavigationHandleVisibility()}_onBenchLayoutDataChange(e){this.updateLayoutData(this.desktop.benchLayoutData)}_onDesktopPropertyChange(e){"navigationVisible"===e.propertyName?this._onDesktopNavigationVisibleChange():"navigationHandleVisible"===e.propertyName&&this._onDesktopNavigationHandleVisibleChange(),"benchLayoutData"===e.propertyName&&this._onBenchLayoutDataChange()}_onNavigationHandleAction(e){this.desktop.enlargeNavigation()}_revalidateSplitters(){this.components&&this.components.forEach((e=>{e instanceof Jn&&e.destroy()})),this.components=this.visibleColumns().reduce(((e,t)=>{if(e.length>0){let i=x.create("Splitter",{parent:this,$anchor:e[e.length-1].$container,$root:this.$container,maxRatio:1});i.render(),i.setLayoutData(Hr.fixed().withOrder(t.getLayoutData().order-1)),i.$container.addClass("line"),e.push(i)}return e.push(t),e}),[]),this.components.filter((e=>e instanceof vm)).reduce(((e,t,i)=>(i>0&&t.$container.insertAfter(e.$container),t)),void 0),this._updateSplitterMovable()}_updateSplitterMovable(){this.components&&this.components.forEach(((e,t)=>{if(e instanceof Jn){let i=this.components.slice(0,t).reverse(),s=this.components.slice(t+1);if(i.filter((e=>e.getLayoutData().shrink>0)).length>0&&s.filter((e=>e.getLayoutData().grow>0)).length>0)return e.setEnabled(!0),void e.on("move",this._onSplitterMove.bind(this));if(i.filter((e=>e.getLayoutData().grow>0)).length>0&&s.filter((e=>e.getLayoutData().shrink>0)).length>0)return e.setEnabled(!0),void e.on("move",this._onSplitterMove.bind(this));e.setEnabled(!1)}}))}_onSplitterMove(e){let t=e.source,i=e.position-t.htmlComp.location().x-t.htmlComp.margins().left-t.htmlComp.insets().left;t.getLayoutData().diff=i,this.revalidateLayout(),t.getLayoutData().diff=null,e.preventDefault()}_onViewAdd(e){this.trigger("viewAdd",{view:e.view})}_onViewRemove(e){this.trigger("viewRemove",{view:e.view})}_onViewActivate(e){let t=e.view;this.outlineContent===t&&this.desktop.bringOutlineToFront(),this.trigger("viewActivate",{view:t})}_onViewDeactivate(e){this.outlineContent===e.view&&this.desktop.sendOutlineToBack(),this.trigger("viewDeactivate",{view:e.view})}addView(e,t){switch(e.displayViewId){case"NW":case"W":case"SW":case"N":case"C":case"S":case"NE":case"E":case"SE":break;default:e.displayViewId="C"}let i=this._getColumn(e.displayViewId);this.tabBoxMap[e.id]=i,i.addView(e,t),this.rendered&&1===i.viewCount()&&(this._renderColumn(i),this._revalidateSplitters(),this.updateFirstLastMarker(),this.changingCounter>0?this.changed=!0:(this.htmlComp.layout.reset(),this.htmlComp.invalidateLayoutTree()))}activateView(e){if(!this.hasView(e))return;let t=this._getColumn(e.displayViewId);t&&t.activateView(e)}_getColumn(e){let t;switch(e){case"NW":case"W":case"SW":t=this.columns[wm.VIEW_AREA_COLUMN_INDEX.LEFT];break;case"NE":case"E":case"SE":t=this.columns[wm.VIEW_AREA_COLUMN_INDEX.RIGHT];break;default:t=this.columns[wm.VIEW_AREA_COLUMN_INDEX.CENTER]}return t}removeView(e,t){let i=this.tabBoxMap[e.id];i&&(this._removeViewInProgress++,i.removeView(e,t),this._removeViewInProgress--,delete this.tabBoxMap[e.id],this.rendered&&0===i.viewCount()&&0===this._removeViewInProgress&&(i.remove(),this._revalidateSplitters(),this.updateFirstLastMarker(),this.changingCounter>0?this.changed=!0:(this.htmlComp.layout.reset(),this.htmlComp.invalidateLayoutTree())))}getComponents(){return this.components}getTabBox(e){let t=this._getColumn(e);if(t)return t.getTabBox(e)}visibleTabBoxes(){return this.visibleColumns().reduce(((e,t)=>(me.pushAll(e,t.visibleTabBoxes()),e)),[])}hasView(e){return this.columns.filter((t=>t.hasView(e))).length>0}getViews(e){return this.columns.reduce(((t,i)=>(me.pushAll(t,i.getViews(e)),t)),[])}getViewTab(e){let t=null;return this.getTabs().some((i=>i.view===e&&(t=i,!0))),t}getTabs(){let e=[];return e=e.concat(this.getTabBox("NW").getController().getTabs()),e=e.concat(this.getTabBox("W").getController().getTabs()),e=e.concat(this.getTabBox("SW").getController().getTabs()),e=e.concat(this.getTabBox("N").getController().getTabs()),e=this.headerTabAreaController?e.concat(this.headerTabAreaController.getTabs()):e.concat(this.getTabBox("C").getController().getTabs()),e=e.concat(this.getTabBox("S").getController().getTabs()),e=e.concat(this.getTabBox("NE").getController().getTabs()),e=e.concat(this.getTabBox("E").getController().getTabs()),e=e.concat(this.getTabBox("SE").getController().getTabs()),e}activeViews(){let e=[];return this.visibleColumns().forEach((t=>{t.visibleTabBoxes().forEach((t=>{e.push(t.currentView)}))})),e}}function Cm(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}ym(wm,"VIEW_MIN_HEIGHT",null),ym(wm,"VIEW_MIN_WIDTH",null),ym(wm,"VIEW_AREA_COLUMN_INDEX",{LEFT:0,CENTER:1,RIGHT:2}),ym(wm,"VIEW_AREA_COLUMN_CLASSES",["west","center","east"]);class vm extends Y{constructor(){super(),this.tabBoxes=[],this._widgetToTabBox={},this.components=null,this._removeViewInProgress=0,this.layoutData,this._viewAddHandler=this._onViewAdd.bind(this),this._viewRemoveHandler=this._onViewRemove.bind(this),this._viewActivateHandler=this._onViewActivate.bind(this),this._viewDeactivateHandler=this._onViewDeactivate.bind(this)}_init(e){super._init(e),this.layoutData=e.layoutData,this.layoutCacheKey=e.cacheKey,this.cssClass=e.cssClass,this._createTabBoxes()}_keyStrokeBindTarget(){return this.$container}_render(){this.$container=this.$parent.appendDiv("bench-column"),this.cssClass&&this.$container.addClass(this.cssClass),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(this._createLayout()),this.htmlComp.layoutData=this.getLayoutData()}_renderProperties(){super._renderProperties(),this._renderTabBoxes(),this._revalidateSplitters()}_renderTabBoxes(){this.visibleTabBoxes().forEach((e=>{this._renderTabBox(e)})),this.updateFirstLastMarker()}_renderTabBox(e){e.rendered||e.render()}postRender(){this.tabBoxes.forEach((e=>{e.postRender()}))}_createLayout(){return new Nr(Nr.Direction.COLUMN,this.layoutCacheKey)}updateLayoutData(e,t){if(this.getLayoutData()===e)return;this.layoutCacheKey=t,this.setLayoutData(e);let i=this.layoutData.getRows();this.tabBoxes.forEach(((e,t)=>{e.setLayoutData(i[t])})),this._updateSplitterMovable(),this.rendered&&(this.htmlComp.layout.setCacheKey(this.layoutCacheKey),this.htmlComp.layout.reset(),this.htmlComp.invalidateLayoutTree())}setLayoutData(e){super.setLayoutData(e),this.layoutData=e}getLayoutData(){return this.layoutData}_onViewAdd(e){this.trigger("viewAdd",{view:e.view})}_onViewRemove(e){this.trigger("viewRemove",{view:e.view})}_onViewActivate(e){this.trigger("viewActivate",{view:e.view})}_onViewDeactivate(e){this.trigger("viewDeactivate",{view:e.view})}activateView(e){this.getTabBox(e.displayViewId).activateView(e)}_createTabBoxes(){let e=[];this.layoutData&&(e=this.layoutData.getRows());for(let t=0;t<3;t++){let i=x.create("SimpleTabBox",{parent:this,cssClass:qt.join(" ","view-tab-box",vm.TAB_BOX_CLASSES[t]),controller:x.create("DesktopTabBoxController")});i.setLayoutData(e[t]),i.on("viewAdd",this._viewAddHandler),i.on("viewRemove",this._viewRemoveHandler),i.on("viewActivate",this._viewActivateHandler),i.on("viewDeactivate",this._viewDeactivateHandler),this.tabBoxes.push(i)}}_revalidateSplitters(e){this.components&&this.components.forEach((e=>{e instanceof Jn&&e.destroy()})),this.components=this.visibleTabBoxes().reduce(((e,t)=>{if(e.length>0){let i=x.create("Splitter",{parent:this,$anchor:e[e.length-1].$container,$root:this.$container,splitHorizontal:!1,maxRatio:1});i.render(),i.setLayoutData(Hr.fixed().withOrder(t.getLayoutData().order-1)),i.$container.addClass("line"),e.push(i)}return e.push(t),e}),[]),this.components.filter((e=>e instanceof Wr)).reduce(((e,t,i)=>(i>0&&t.$container.insertAfter(e.$container),t)),void 0),this._updateSplitterMovable()}_updateSplitterMovable(){this.components&&this.components.forEach(((e,t)=>{if(e instanceof Jn){let i=this.components.slice(0,t).reverse(),s=this.components.slice(t+1);if(i.filter((e=>e.getLayoutData().shrink>0)).length>0&&s.filter((e=>e.getLayoutData().grow>0)).length>0)return e.setEnabled(!0),void e.on("move",this._onSplitterMove.bind(this));if(i.filter((e=>e.getLayoutData().grow>0)).length>0&&s.filter((e=>e.getLayoutData().shrink>0)).length>0)return e.setEnabled(!0),void e.on("move",this._onSplitterMove.bind(this));e.setEnabled(!1)}}))}_onSplitterMove(e){let t=e.source,i=e.position-t.htmlComp.location().y-t.htmlComp.margins().top-t.htmlComp.insets().top;t.getLayoutData().diff=i,this.revalidateLayout(),t.getLayoutData().diff=null,e.preventDefault()}addView(e,t){let i=this.getTabBox(e.displayViewId);this._widgetToTabBox[e.id]=i,i.addView(e,t),this.rendered&&1===i.viewCount()&&(i.rendered||i.render(),this._revalidateSplitters(!0),this.updateFirstLastMarker(),this.htmlComp.layout.reset(),this.htmlComp.invalidateLayoutTree())}getTabBox(e){let t;switch(e){case"NW":case"N":case"NE":t=this.tabBoxes[vm.TAB_BOX_INDEX.TOP];break;case"SW":case"S":case"SE":t=this.tabBoxes[vm.TAB_BOX_INDEX.BOTTOM];break;default:t=this.tabBoxes[vm.TAB_BOX_INDEX.CENTER]}return t}removeView(e,t){let i=this._widgetToTabBox[e.id];i&&(this._removeViewInProgress++,i.removeView(e,t),this._removeViewInProgress--,delete this._widgetToTabBox[e.id],this.rendered&&0===i.viewCount()&&0===this._removeViewInProgress&&(i.remove(),this._revalidateSplitters(!0),this.updateFirstLastMarker(),this.htmlComp.layout.reset(),this.htmlComp.invalidateLayoutTree()))}viewCount(){return this.tabBoxes.map((e=>e.viewCount())).reduce(((e,t)=>e+t),0)}hasView(e){return this.tabBoxes.filter((t=>t.hasView(e))).length>0}hasViews(){return this.viewCount()>0}getViews(e){return this.tabBoxes.reduce(((t,i)=>(me.pushAll(t,i.getViews(e)),t)),[])}getComponents(){return this.components}visibleTabBoxes(){return this.tabBoxes.filter((e=>e.hasViews()))}updateFirstLastMarker(){J.updateFirstLastMarker(this.visibleTabBoxes())}}Cm(vm,"TAB_BOX_INDEX",{TOP:0,CENTER:1,BOTTOM:2}),Cm(vm,"TAB_BOX_CLASSES",["north","center","south"]);class Tm extends Hr{constructor(e){super(e),this._ensureRows()}_prepare(){super._prepare(),this.rows=[null,null,null]}getRows(){return this.rows}_ensureRows(){this.rows=this.rows.map(((e,t)=>new Hr(e).withOrder(2*t)))}updateVisibilities(e){e.forEach(((e,t)=>{this.rows[t].visible=e.rendered}))}}class Sm{constructor(e){this.columns=[null,null,null],n().extend(this,e),this._ensureColumns()}_ensureColumns(){this.columns=this.columns.map(((e,t)=>new Tm(e).withOrder(2*t)))}getColumns(){return this.columns}static ensure(e){return e?e instanceof Sm?e:new Sm(e):e=new Sm}}class xm extends en{constructor(e){super(),this.field=e,this.parseAndSetKeyStroke(e.selectViewTabsKeyStrokeModifier),this.registerRange(Kr[1],Kr[9]),this.renderingHints.render=!1,this.preventDefault=!0,this.inheritAccessibility=!1}_isEnabled(){return super._isEnabled()&&this.field.selectViewTabsKeyStrokesEnabled}handle(e){}}class Pm extends Y{constructor(){super(),this.tabArea=null,this.toolBoxVisible=!0,this.viewButtonBox=null,this.viewButtonBoxVisible=!1,this.outlineContent=null,this._desktopPropertyChangeHandler=this._onDesktopPropertyChange.bind(this),this._desktopAnimationEndHandler=this._onDesktopAnimationEnd.bind(this),this._outlineContentMenuBarVisibleChangeHandler=this._onOutlineContentMenuBarVisibleChange.bind(this),this._outlineContentCssClassChangeHandler=this._onOutlineContentCssClassChange.bind(this),this._viewButtonBoxPropertyChangeHandler=this._onViewButtonBoxPropertyChange.bind(this)}_init(e){super._init(e),this.desktop=this.session.desktop,this.updateViewButtonBoxVisibility(),this.tabArea=this._createTabArea()}_createTabArea(){return x.create("DesktopTabArea",$.extend({parent:this},this.tabArea))}_render(){this.$container=this.$parent.appendDiv("desktop-header"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Em(this)),this.desktop.on("propertyChange",this._desktopPropertyChangeHandler),this.desktop.on("animationEnd",this._desktopAnimationEndHandler),this.desktop.bench&&this._setOutlineContent(this.desktop.bench.outlineContent)}_renderProperties(){super._renderProperties(),this._renderViewButtonBoxVisible(),this._renderViewTabs(),this._renderToolBoxVisible(),this._renderLogoUrl(),this._renderInBackground()}_remove(){this.desktop.off("propertyChange",this._desktopPropertyChangeHandler),this.desktop.off("animationEnd",this._desktopAnimationEndHandler),this._setOutlineContent(null),super._remove()}_renderViewTabs(){this.tabArea.render()}_renderToolBox(){this.toolBox||(this.toolBox=this._createToolBox(),this.toolBox.render())}_createToolBox(){return x.create("DesktopToolBox",{parent:this,menus:this.desktop.menus})}_removeToolBox(){this.toolBox&&(this.toolBox.destroy(),this.toolBox=null)}_renderToolBoxVisible(){this.toolBoxVisible?this._renderToolBox():this._removeToolBox(),this.invalidateLayoutTree()}_renderLogoUrl(){this.logoUrl?this._renderLogo():this._removeLogo(),this.invalidateLayoutTree()}_renderLogo(){this.desktop.displayStyle!==lm.DisplayStyle.COMPACT&&(this.logo?this.logo.setUrl(this.logoUrl):(this.logo=this._createLogo(),this.logo.render()))}_createLogo(){return x.create("DesktopLogo",{parent:this,url:this.logoUrl})}_removeLogo(){this.logo&&(this.logo.destroy(),this.logo=null)}_renderViewButtonBox(){this.viewButtonBox||(this.viewButtonBox=this._createViewButtonBox(),this.viewButtonBox.on("propertyChange",this._viewButtonBoxPropertyChangeHandler),this.viewButtonBox.render(),this.viewButtonBox.$container.prependTo(this.$container),this.updateViewButtonStyling())}_createViewButtonBox(){return x.create("ViewButtonBox",{parent:this,viewButtons:this.desktop.viewButtons,selectedMenuButtonAlwaysVisible:!0})}_removeViewButtonBox(){this.viewButtonBox&&(this.viewButtonBox.off("propertyChange",this._viewButtonBoxPropertyChangeHandler),this.viewButtonBox.destroy(),this.viewButtonBox=null)}_renderViewButtonBoxVisible(){this.viewButtonBoxVisible?this._renderViewButtonBox():this._removeViewButtonBox(),this.$container.toggleClass("has-view-button-box",this.viewButtonBoxVisible),this.invalidateLayoutTree()}sendToBack(){this.rendered&&this._renderInBackground()}bringToFront(){this.rendered&&this._renderInBackground()}_renderInBackground(){this.$container.toggleClass("in-background",this.desktop.inBackground)}setLogoUrl(e){this.setProperty("logoUrl",e)}setToolBoxVisible(e){this.setProperty("toolBoxVisible",e)}setViewButtonBoxVisible(e){this.setProperty("viewButtonBoxVisible",e)}setMenus(e){this.toolBox&&this.toolBox.setMenus(e)}_setOutlineContent(e){this.outlineContent!==e&&(this._detachOutlineContentHandlers(),this._setProperty("outlineContent",e),this._attachOutlineContentHandlers(),this.updateViewButtonStyling())}updateViewButtonBoxVisibility(){this.setViewButtonBoxVisible(this.desktop.viewButtons.some((e=>e.visible))&&!this.desktop.navigationVisible&&this.desktop.displayStyle!==lm.DisplayStyle.COMPACT)}_attachOutlineContentHandlers(){this._attachOutlineContentMenuBarHandler(),this._attachOutlineContentCssClassHandler()}_attachOutlineContentMenuBarHandler(){if(!this.outlineContent)return;let e=this._outlineContentMenuBar(this.outlineContent);e&&e.on("propertyChange:visible",this._outlineContentMenuBarVisibleChangeHandler)}_attachOutlineContentCssClassHandler(){this.outlineContent&&this.outlineContent.on("propertyChange:cssClass",this._outlineContentCssClassChangeHandler)}_detachOutlineContentHandlers(){this._detachOutlineContentMenuBarHandler(),this._detachOutlineContentCssClassHandler()}_detachOutlineContentMenuBarHandler(){if(!this.outlineContent)return;let e=this._outlineContentMenuBar(this.outlineContent);e&&e.off("propertyChange:visible",this._outlineContentMenuBarVisibleChangeHandler)}_detachOutlineContentCssClassHandler(){this.outlineContent&&this.outlineContent.off("propertyChange:cssClass",this._outlineContentCssClassChangeHandler)}_outlineContentMenuBar(e){return e instanceof Ta?e.rootGroupBox.menuBar:e.menuBar}updateViewButtonStyling(){this._updateOutlineContentHasMenuBar(),this._updateOutlineContentHasDimmedBackground()}_getOutlineContentForViewButtonStyling(){if(this.viewButtonBoxVisible&&this.outlineContent&&this.outlineContent.visible)return this.outlineContent}_updateOutlineContentHasMenuBar(){let e=this._getOutlineContentForViewButtonStyling();if(!e)return;let t=!1;if(e instanceof Ta&&e.detailForm){let i=e.rootGroupBox;t=i.menuBar&&i.menuBarVisible&&i.menuBar.visible}else t=e.menuBar&&e.menuBar.visible;this.$container.toggleClass("outline-content-has-menubar",!!t)}_updateOutlineContentHasDimmedBackground(){let e=this._getOutlineContentForViewButtonStyling();if(!e)return;let t=!1;e.cssClass&&(t=e.cssClass.indexOf("dimmed-background")>-1),this.$container.toggleClass("outline-content-has-dimmed-background",t)}_onDesktopNavigationVisibleChange(e){this.desktop.navigationVisible&&this.updateViewButtonBoxVisibility()}_onDesktopAnimationEnd(e){this.updateViewButtonBoxVisibility()}onBenchOutlineContentChange(e){this._setOutlineContent(e)}_onDesktopPropertyChange(e){"navigationVisible"===e.propertyName&&this._onDesktopNavigationVisibleChange()}_onOutlineContentMenuBarVisibleChange(e){this._updateOutlineContentHasMenuBar()}_onOutlineContentCssClassChange(e){this._updateOutlineContentHasDimmedBackground()}_onViewButtonBoxPropertyChange(e){"menuButtons"!==e.propertyName&&"tabButtons"!==e.propertyName||this.invalidateLayoutTree()}}class Fm extends gm{constructor(){super(),this.bench=null,this._viewsChangedHandler=this._onViewsChanged.bind(this),this.tabAreaCenter=null,this.tabAreaInHeader=!1}install(e,t){this.bench=x.assertParameter("bench",e);let i=this.bench.getTabBox("C");this.tabAreaCenter=i.tabArea,super.install(i,t)}_installListeners(){super._installListeners(),this.bench.on("viewAdd",this._viewsChangedHandler),this.bench.on("viewRemove",this._viewsChangedHandler)}_onViewsChanged(){this.bench.getViews().some((e=>"C"!==e.displayViewId))?this._setViewTabAreaInHeader(!1):this._setViewTabAreaInHeader(!0)}_setViewTabAreaInHeader(e){this.tabAreaInHeader=e,this.tabAreaCenter.setVisible(!e),this.tabArea.setVisible(e);let t=this.tabArea.session.desktop;t.rendered&&t.$container.toggleClass("view-tab-area-in-bench",!e)}getTabs(){return this.tabAreaInHeader?this.tabArea.getTabs():this.tabAreaCenter.getTabs()}_onViewTabSelect(e){super._onViewTabSelect(e),this.tabArea.updateFirstTabSelected()}}class Em extends _r{constructor(e){super(),this.header=e,this.desktop=e.desktop}layout(e){let t,i,s,r,n=this.header.htmlComp,o=n.size(),l=this.header.toolBox,a=this.header.viewButtonBox,h=this.header.tabArea,d=0,u=0,c=0,p=0;if(o=o.subtract(n.insets()),this.header.logo&&(u=pr.size(this.header.logo.$container,!0).width),a&&(t=a.htmlComp.prefSize(!0),c=t.width,a.htmlComp.setSize(t.subtract(a.htmlComp.margins()))),h.htmlComp.$comp.cssLeft(c),l&&(i=l.htmlComp.prefSize(!0),p=i.width,f(),b()),d=m(),r=h.htmlComp.layout.smallPrefSize({widthHint:d}).add(h.htmlComp.margins()),s=h.htmlComp.prefSize({widthHint:d,includeMargin:!0}),d>=r.width)return d=Math.min(s.width,d),void _();if(l&&(i=l.htmlComp.layout.compactPrefSize().add(l.htmlComp.margins()),p=i.width,f(),b()),d=m(),d>=r.width)return void _();l&&(i=l.htmlComp.layout.shrinkPrefSize().add(l.htmlComp.margins()),p=i.width,f(),b()),d=m(),h.displayStyle!==rm.DisplayStyle.SPREAD_EVEN&&(d=Math.min(r.width,d));let g=h.htmlComp.layout.overflowTabItemWidth;function m(){return o.width-p-u-c}function _(){h.htmlComp.setSize(new sr(d,s.height).subtract(h.htmlComp.margins()))}function f(){l.htmlComp.setSize(new sr(p,i.height).subtract(l.htmlComp.margins()))}function b(){l.htmlComp.$comp.cssLeft(o.width-p-u)}d=Math.max(d,h.tabs.length?g:0),_(),l&&d<=g&&(p=o.width-d-u-c,f(),b())}}function Dm(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Am extends Y{constructor(){super(),this.$body=null,this.layoutData={},this.toolBoxVisible=!1,this.viewButtonBox=null,this._outlinePropertyChangeHandler=this._onOutlinePropertyChange.bind(this),this._desktopPropertyChangeHandler=this._onDesktopPropertyChange.bind(this),this._viewButtonBoxPropertyChangeHandler=this._onViewButtonBoxPropertyChange.bind(this)}_init(e){super._init(e),Am.MIN_WIDTH=ts.getSize("desktop-navigation","min-width","minWidth",49),Am.DEFAULT_STYLE_WIDTH=ts.getSize("desktop-navigation","width","width",290),Am.BREADCRUMB_STYLE_WIDTH=ts.getSize("desktop-navigation-breadcrumb","width","width",240),this.desktop=this.parent,this.updateHandleVisibility(),this._setOutline(e.outline),this.viewButtonBox=x.create("ViewButtonBox",{parent:this,viewButtons:this.desktop.viewButtons}),this.viewButtonBox.on("propertyChange",this._viewButtonBoxPropertyChangeHandler)}_render(){this.$container=this.$parent.appendDiv("desktop-navigation"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Rm(this)),this.htmlComp.layoutData=this.layoutData,this.$body=this.$container.appendDiv("navigation-body").on("mousedown",this._onNavigationBodyMouseDown.bind(this)),this.htmlCompBody=fr.install(this.$body,this.session),this.htmlCompBody.setLayout(new Or(null,{exact:!0})),this.desktop.on("propertyChange",this._desktopPropertyChangeHandler)}_remove(){this.desktop.off("propertyChange",this._desktopPropertyChangeHandler),super._remove()}_renderProperties(){super._renderProperties(),this._renderViewButtonBox(),this._renderViewButtonBoxVisible(),this._renderToolBoxVisible(),this._renderOutline(),this._renderHandleVisible(),this._renderInBackground()}_renderInBackground(){this.$container.toggleClass("in-background",this.desktop.inBackground&&this.desktop.displayStyle!==lm.DisplayStyle.COMPACT)}_renderViewButtonBox(){this.viewButtonBox.render(),this.viewButtonBox.$container.insertBefore(this.$body)}_removeOutline(){this.outline&&this.outline.remove()}_renderOutline(){this.outline&&(this.outline.render(this.$body),this.outline.invalidateLayoutTree(),this.rendered&&this.outline.validateFocus())}setOutline(e){this.setProperty("outline",e)}_setOutline(e){let t=this.outline;this.outline&&this.outline.off("propertyChange",this._outlinePropertyChangeHandler),this.rendered&&this._removeOutline(),this.outline=e,this.outline&&(this.outline.setParent(this),this.outline.setBreadcrumbTogglingThreshold(Am.BREADCRUMB_STYLE_WIDTH),this.outline.toggleBreadcrumbStyleEnabled&&t&&t.toggleBreadcrumbStyleEnabled&&t.displayStyle&&this.outline.setDisplayStyle(t.displayStyle),this.outline.inBackground=this.desktop.inBackground,this.outline.on("propertyChange",this._outlinePropertyChangeHandler),this._updateHandle())}_renderViewButtonBoxVisible(){this.$container.toggleClass("view-button-box-invisible",!this.viewButtonBox.visible)}sendToBack(){this.outline&&this.outline.sendToBack(),this.rendered&&this._renderInBackground()}bringToFront(){this.outline&&this.outline.bringToFront(),this.rendered&&this._renderInBackground()}setToolBoxVisible(e){this.setProperty("toolBoxVisible",e)}setHandleVisible(e){this.setProperty("handleVisible",e)}_updateHandle(){this.handle&&this.handle.setRightVisible(this.outline&&this.outline.toggleBreadcrumbStyleEnabled&&this.desktop.outlineDisplayStyle()===Ed.DisplayStyle.BREADCRUMB)}updateHandleVisibility(){this.setHandleVisible(this.desktop.navigationHandleVisible)}_renderToolBoxVisible(){this.toolBoxVisible?this._renderToolBox():this._removeToolBox()}_renderToolBox(){this.toolBox||(this.toolBox=x.create("DesktopToolBox",{parent:this,menus:this.desktop.menus}),this.toolBox.render())}_removeToolBox(){this.toolBox&&(this.toolBox.destroy(),this.toolBox=null)}_renderHandleVisible(){this.handleVisible?this._renderHandle():this._removeHandle()}_createHandle(){return x.create("DesktopNavigationHandle",{parent:this,rightVisible:!1,horizontalAlignment:mn.HorizontalAlignment.RIGHT})}_renderHandle(){this.handle||(this.handle=this._createHandle(),this.handle.render(),this.handle.addCssClass("navigation-open"),this.handle.on("action",this._onHandleAction.bind(this)),this._updateHandle())}_removeHandle(){this.handle&&(this.handle.destroy(),this.handle=null)}_onNavigationBodyMouseDown(e){this.desktop.bringOutlineToFront()}_onViewButtonBoxPropertyChange(e){"visible"===e.propertyName&&this.rendered&&this._renderViewButtonBoxVisible()}_onOutlinePropertyChange(e){"displayStyle"===e.propertyName&&this._updateHandle()}_onDesktopPropertyChange(e){"navigationHandleVisible"===e.propertyName&&this.updateHandleVisibility()}_onHandleAction(e){e.left?this.desktop.shrinkNavigation():this.desktop.enlargeNavigation()}}Dm(Am,"DEFAULT_STYLE_WIDTH",null),Dm(Am,"BREADCRUMB_STYLE_WIDTH",null),Dm(Am,"MIN_WIDTH",null);class $m extends mn{constructor(){super()}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.desktopKeyStrokeContext=new Zr,this.desktopKeyStrokeContext.$bindTarget=this.session.desktop.$container,this.desktopKeyStrokeContext.$scopeTarget=this.session.desktop.$container,this.desktopKeyStrokeContext.registerKeyStroke([new Mm(this),new km(this)])}_render(){super._render(),this.$container.addClass("desktop-navigation-handle"),this.session.keyStrokeManager.installKeyStrokeContext(this.desktopKeyStrokeContext)}_remove(){super._remove(),this.session.keyStrokeManager.uninstallKeyStrokeContext(this.desktopKeyStrokeContext)}}class Rm extends _r{constructor(e){super(),this.navigation=e}layout(e){let t=this.navigation.htmlComp,i=t.size({exact:!0}).subtract(t.insets()),s=this.navigation.toolBox,r=0,n=0,o=this.navigation.viewButtonBox;if(o.visible){let e=o.htmlComp.prefSize(!0);r=e.height,n=i.width,s&&(n=e.width);let t=new sr(n,r).subtract(o.htmlComp.margins());o.htmlComp.setSize(t)}if(s){s.$container.cssLeft(n);let e=new sr(i.width-n,r).subtract(s.htmlComp.margins());s.htmlComp.setSize(e)}let l=this.navigation.htmlCompBody,a=new sr(i.width,i.height).subtract(l.margins());l.$comp.cssTop(r),a.height-=r,l.setSize(a)}preferredLayoutSize(e,t){let i=this.navigation.htmlCompBody,s=i.prefSize(t).add(i.margins()),r=new sr(0,0),n=this.navigation.viewButtonBox;if(n){let e=n.htmlComp.prefSize(!0);r.width+=e.width,r.height=Math.max(r.height,e.height)}let o=this.navigation.toolBox;if(o){let e=o.htmlComp.prefSize(!0);r.width+=e.width,r.height=Math.max(r.height,e.height)}let l=this.navigation.htmlComp;return s.height+=r.height,s.width=Math.max(s.width,r.width),s=s.add(l.insets()),s}}class Mm extends U{constructor(e){super(),this.field=e,this.desktop=e.session.desktop,this.ctrl=!0,this.which=[Kr.forBrowser(Kr.ANGULAR_BRACKET)],this.renderingHints.$drawingArea=(e,t)=>this.desktop.$container,this.inheritAccessibility=!1}_accept(e){return super._accept(e)||U.acceptModifiers(this,e)&&x.isOneOf(e.which,Kr.forBrowser(Kr.ANGULAR_BRACKET,"ctrl"))}_isEnabled(){return super._isEnabled()&&this.field.leftVisible}handle(e){this.desktop.shrinkNavigation()}_postRenderKeyBox(e,t){let i,s,r,n=this.field;t.addClass("navigation-handle-key-box left"),i=n.$left.offsetTo(this.desktop.$container),s=i.left-t.outerWidth(!0),r=i.top,t.cssLeft(s).cssTop(r)}}class km extends U{constructor(e){super(),this.field=e,this.desktop=e.session.desktop,this.ctrl=!0,this.shift=!0,this.which=[Kr.forBrowser(Kr.ANGULAR_BRACKET)],this.renderingHints.$drawingArea=(e,t)=>this.desktop.$container,this.inheritAccessibility=!1}_accept(e){return super._accept(e)||U.acceptModifiers(this,e)&&x.isOneOf(e.which,Kr.forBrowser(Kr.ANGULAR_BRACKET,"ctrl"))}_isEnabled(){return super._isEnabled()&&this.field.rightVisible}handle(e){this.desktop.enlargeNavigation()}_postRenderKeyBox(e,t){let i,s,r,n=this.field;t.addClass("navigation-handle-key-box right"),i=n.$right.offsetTo(this.desktop.$container),s=i.left+n.$right.outerWidth(),r=i.top,t.cssLeft(s).cssTop(r)}}function Im(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class Lm extends sl{constructor(){super(),this.closable=!0,this.duration=5e3,this.removeTimeout=null,this._removing=!1,this.nativeOnly=!1,this.nativeNotificationTitle=null,this.nativeNotificationStatus=null,this.nativeNotificationVisibility=Lm.NativeNotificationVisibility.NONE,this.nativeNotification=null,this.nativeNotificationShown=!1}_init(e){super._init(e);let t=this.session.desktop.nativeNotificationDefaults;t&&(this.nativeNotificationTitle=void 0!==e.nativeNotificationTitle?e.nativeNotificationTitle:t.title,this.nativeNotificationStatus?this.nativeNotificationStatus.iconId=void 0!==this.nativeNotificationStatus.iconId?this.nativeNotificationStatus.iconId:t.iconId:this.nativeNotificationStatus=new Ii({iconId:t.iconId}),this.nativeNotificationVisibility=x.nvl(void 0!==e.nativeNotificationVisibility?e.nativeNotificationVisibility:t.visibility,Lm.NativeNotificationVisibility.NONE)),this.resolveTextKeys(["nativeNotificationTitle"])}_render(){this._initNativeNotification(),this.$container=this.$parent.prependDiv("desktop-notification"),this.$content=this.$container.appendDiv("desktop-notification-content"),this.$messageText=this.$content.appendDiv("desktop-notification-message"),this.$loader=this.$container.appendDiv("desktop-notification-loader"),Qe.get().supportsCssAnimation()&&this.$loader.addClass("animated"),this.nativeOnly&&this.setVisible(!1)}_renderLoading(){this.$container.toggleClass("loading",this.loading),this.$loader.setVisible(this.loading)}_destroy(){this.nativeNotification&&this.nativeNotification.close(),super._destroy()}_isDocumentHidden(){return document.hidden}_showNativeNotification(e){if("denied"===e||"default"===e)return void(this.nativeOnly&&this.hide());let t=x.nvl(this.nativeNotificationTitle,""),i=(this.nativeNotificationStatus||{}).message;qt.empty(i)&&(i=(this.status||{}).message),i||(i=""),this.htmlEnabled&&(i=qt.plainText(i,{removeFontIcons:!0}));let s=(this.nativeNotificationStatus||{}).iconId;qt.empty(s)&&(s=void 0),this.nativeNotification=new Notification(t,{body:i,icon:s}),this.nativeNotification.addEventListener("show",(e=>{this._setNativeNotificationShown(!0)})),this.nativeNotification.addEventListener("click",(e=>{window.focus()})),this.nativeNotification.addEventListener("close",(e=>{this.nativeOnly&&this.hide(),this.nativeNotification=null,this._setNativeNotificationShown(!1)}))}_initNativeNotification(){this.nativeNotificationShown||(this.nativeNotificationVisibility!==Lm.NativeNotificationVisibility.NONE&&(this.nativeNotificationVisibility!==Lm.NativeNotificationVisibility.BACKGROUND||this._isDocumentHidden())?window.Notification&&"denied"===Notification.permission?this._hideLaterIfNativeOnly():this._checkNotificationPromise()?Notification.requestPermission().then(this._showNativeNotification.bind(this)):Notification.requestPermission(this._showNativeNotification.bind(this)):this._hideLaterIfNativeOnly())}_hideLaterIfNativeOnly(){this.nativeOnly&&setTimeout((()=>this.hide()))}_checkNotificationPromise(){try{Notification.requestPermission().then()}catch(e){return!1}return!0}_onCloseIconClick(){this.hide()}show(){this.session.desktop.addNotification(this)}hide(){this._removing||(this.trigger("close"),this.session.desktop.removeNotification(this))}fadeIn(e){this.render(e),Qe.get().supportsCssAnimation()&&this.$container.addClassForAnimation("desktop-notification-slide-in")}fadeOut(){this._removing||(this._removing=!0,Qe.get().supportsCssAnimation()&&this.rendered&&this.$container.isVisible()?(this.$container.addClass("desktop-notification-fade-out"),this.$container.oneAnimationEnd((()=>{this.destroy()}))):this.destroy())}invalidateLayoutTree(){}_setNativeNotificationShown(e){this._setProperty("nativeNotificationShown",e)}setNativeNotificationTitle(e){this.setProperty("nativeNotificationTitle",e)}setNativeNotificationStatus(e){this.setProperty("nativeNotificationStatus",e)}_setNativeNotificationStatus(e){e=Ii.ensure(e),this._setProperty("nativeNotificationStatus",e)}setNativeNotificationVisibility(e){this.setProperty("nativeNotificationVisibility",e)}}Im(Lm,"NativeNotificationVisibility",{NONE:"none",BACKGROUND:"background",ALWAYS:"always"}),Im(Lm,"INFINITE",-1);class Bm extends rl{constructor(){super(),this._addRemoteProperties(["nativeNotificationShown"])}}class Om extends Lm{constructor(){super(),this.connectFailedReset=null}_init(e){super._init(e),this.closable=!1,this.duration=Lm.INFINITE,this.connectionInterruptedStatus=new Ii({message:this.session.text("ui.ConnectionInterrupted"),severity:Ii.Severity.ERROR}),this.reconnectingStatus=new Ii({message:this.session.text("ui.Reconnecting_"),severity:Ii.Severity.ERROR}),this._setStatus(this.connectionInterruptedStatus)}_render(){super._render(),this.$content.addClass("offline-message"),this.$messageText.addClass("offline-message-text")}reconnect(){this.setLoading(!0),this.connectFailedReset&&clearTimeout(this.connectFailedReset),this.setStatus(this.reconnectingStatus)}reconnectFailed(){this.connectFailedReset=setTimeout((()=>{this.connectFailedReset=null,this.setLoading(!1),this.setStatus(this.connectionInterruptedStatus)}),1100)}reconnectSucceeded(){this.setLoading(!1),this.connectFailedReset&&clearTimeout(this.connectFailedReset),this.setStatus({message:this.session.text("ui.ConnectionReestablished"),severity:Ii.Severity.OK})}}class Nm{constructor(e,t){this.session=e,this.preserveOpener=t}init(e){n().extend(this,e)}openWindow(e,t,i,s){t=t||"scout_"+(new Date).getTime();let r=window.open("",t,i);if(r){this.preserveOpener||(r.opener=null);try{r.window.location.href=e}catch(t){return void this._handleInvalidUri(e,r,t)}s&&s(r)}else n().log.warn("Popup-blocker detected! Show link to open window manually"),this.showNotification((()=>{this.openWindow(e,t,i,s)}))}showNotification(e){let t,i,s=this.session.desktop;"string"==typeof e&&(i=e),t=x.create("DesktopNotification:PopupBlocker",{parent:s,linkUrl:i,preserveOpener:this.preserveOpener}),!i&&n().isFunction(e)&&t.on("linkClick",e),t.show()}_handleInvalidUri(e,t,i){x.create("ErrorHandler",{logError:!0,displayError:!1,sendError:!1}).handle(i),t.close(),Su.createOk(this.session.desktop).withHeader(this.session.text("ui.UnexpectedProblem")).withBody(this.session.text("ui.InvalidUriMsg")).withSeverity(Ii.Severity.ERROR).buildAndOpen()}}class Hm extends Lm{constructor(){super(),this.duration=Lm.INFINITE,this.linkUrl,this.preserveOpener=!1}_init(e){super._init(e),this.linkText=x.nvl(this.linkText,this.session.text("ui.OpenManually")),this._setStatus({message:this.session.text("ui.PopupBlockerDetected"),severity:Ii.Severity.WARNING})}_render(){super._render(),this.$messageText.addClass("popup-blocked-title"),this.$link=this.$content.appendElement("<a>","popup-blocked-link").text(this.linkText).on("click",this._onLinkClick.bind(this))}_renderProperties(){super._renderProperties(),this._renderLinkUrl()}_renderLinkUrl(){this.linkUrl?(this.$link.attr("href",this.linkUrl).attr("target","_blank"),this.preserveOpener||this.$link.attr("rel","noreferrer noopener")):this.$link.removeAttr("href").removeAttr("target")}_onLinkClick(){this.trigger("linkClick"),this.hide()}}class Vm extends $l{constructor(e){super()}_init(e){e.uiMenuCssClass=qt.join(" ",e.uiMenuCssClass,"desktop-tool-box-item"),super._init(e)}_initMenu(e){super._initMenu(e),e.popupHorizontalAlignment=Ao.Alignment.CENTER}_render(){super._render(),this.$container.addClass("desktop-tool-box")}}class Wm extends xo{constructor(e){super(e)}_postRenderKeyBox(e){let t=e.outerWidth()/2-e.find(".key-box").outerWidth()/2;e.find(".key-box").cssLeft(t)}}class zm extends vo{constructor(){super(),this.showTooltipWhenSelected=!1,this.displayStyle="TAB",this.selectedAsMenu=!1,this._desktopInBackgroundHandler=this._onDesktopInBackgroundChange.bind(this)}_init(e){super._init(e),this.session.desktop.on("propertyChange:inBackground",this._desktopInBackgroundHandler)}_destroy(){this.session.desktop.off("propertyChange:inBackground",this._desktopInBackgroundHandler),super._destroy()}renderAsTab(e){let t=e.appendDiv("view-tab-wrapper");this.render(t),this.$container.addClass("view-tab view-button-tab")}_render(){this.$container=this.$parent.appendDiv("view-button").on("mousedown",this._onMouseEvent.bind(this)),this.htmlComp=fr.install(this.$container,this.session),this.$container.prependDiv("edge left"),this.$container.appendDiv("edge right")}_remove(){let e=this.$container.parent();e.hasClass("view-tab-wrapper")&&e.remove(),super._remove()}_renderProperties(){super._renderProperties(),this._renderInBackground()}_renderInBackground(){this.session.desktop.displayStyle!==lm.DisplayStyle.COMPACT&&(this.rendering||(this.session.desktop.inBackground?this.$container.addClassForAnimation("animate-bring-to-back"):this.$container.addClassForAnimation("animate-bring-to-front")),this.$container.toggleClass("in-background",this.session.desktop.inBackground))}_renderText(){}setDisplayStyle(e){this.setProperty("displayStyle",e)}_onMouseEvent(e){this.doAction()}_createActionKeyStroke(){return new Wm(this)}setSelectedAsMenu(e){this.selectedAsMenu=e}_onDesktopInBackgroundChange(){this.rendered&&this._renderInBackground()}}class Gm extends To{constructor(){super()}}class Um extends Y{constructor(){super(),this.viewMenuTab=null,this.viewButtons=[],this.menuButtons=[],this.tabButtons=[],this._desktopOutlineChangeHandler=this._onDesktopOutlineChange.bind(this),this._viewButtonPropertyChangeHandler=this._onViewButtonPropertyChange.bind(this),this.selectedMenuButtonAlwaysVisible=!1,this._addWidgetProperties(["viewButtons"])}_init(e){super._init(e),this.desktop=this.session.desktop,this.viewMenuTab=x.create("ViewMenuTab",{parent:this}),this._setViewButtons(this.viewButtons),this.desktop.on("outlineChange",this._desktopOutlineChangeHandler)}_render(){this.$container=this.$parent.appendDiv("view-button-box"),this.htmlComp=fr.install(this.$container,this.session),this.viewMenuTab.render(),this._onDesktopOutlineChange()}_renderProperties(){super._renderProperties(),this._renderTabButtons()}_remove(){this.desktop.off("outlineChange",this._desktopOutlineChangeHandler),this.viewButtons.forEach((e=>e.off("selected",this._viewButtonPropertyChangeHandler))),super._remove()}setSelectedMenuButtonVisible(e){this.viewMenuTab.setSelectedButtonVisible(e)}setSelectedMenuButtonAlwaysVisible(e){this.setProperty("selectedMenuButtonAlwaysVisible",e)}_setSelectedMenuButtonAlwaysVisible(e){this._updateSelectedMenuButtonVisibility()}setViewButtons(e){this.setProperty("viewButtons",e)}_setViewButtons(e){this.viewButtons&&this.viewButtons.forEach((e=>e.off("propertyChange",this._viewButtonPropertyChangeHandler))),this._setProperty("viewButtons",e),this.viewButtons.forEach((e=>e.on("propertyChange",this._viewButtonPropertyChangeHandler))),this._updateViewButtons()}_setTabButtons(e){this._setProperty("tabButtons",e)}_removeTabButtons(){this.tabButtons.forEach((e=>e.remove()))}_renderTabButtons(){this.tabButtons.forEach(((e,t)=>e.renderAsTab(this.$container))),J.updateFirstLastMarker(this.tabButtons)}_updateViewButtons(){let e=this.viewButtons.filter((e=>e.visible)),t=e.filter((e=>"MENU"===e.displayStyle)),i=null;t.length>1?i=e.filter((e=>"TAB"===e.displayStyle)):(i=e,t=[]),this._setMenuButtons(t),this.rendered&&this._removeTabButtons(),this._setTabButtons(i),this.rendered&&this._renderTabButtons(),this._updateVisibility(),this._updateSelectedMenuButtonVisibility()}_updateVisibility(e){this.setVisible(this.tabButtons.length+this.menuButtons.length>1)}_setMenuButtons(e){this._setProperty("menuButtons",e),this.viewMenuTab.setViewButtons(this.menuButtons)}_updateSelectedMenuButtonVisibility(){this.setSelectedMenuButtonVisible(this.selectedMenuButtonAlwaysVisible||this.tabButtons.length>=1&&this.menuButtons.length>=1)}_onDesktopOutlineChange(e){let t=this.desktop.outline;this.viewButtons.forEach((e=>{e instanceof a_&&e.onOutlineChange(t)}))}_onViewButtonSelected(e){this.viewButtons.forEach((t=>{t!==e.source&&t.isToggleAction()&&t.setSelected(!1)})),this.viewMenuTab.onViewButtonSelected()}_onViewButtonPropertyChange(e){"selected"===e.propertyName?this._onViewButtonSelected(e):"visible"!==e.propertyName&&"displayStyle"!==e.propertyName||this._updateViewButtons()}}class Km extends U{constructor(e){super(),this.field=e,this.which=[Kr.F2],this.stopPropagation=!0,this.renderingHints.$drawingArea=(e,t)=>this.field.selected&&!this.field.inBackground?this.field.dropdown.$container:this.field.selectedButton.$container}handle(e){this.field.selected&&!this.field.inBackground?this.field.togglePopup():this.field.selectedButton&&this.field.selectedButton.doAction()}_postRenderKeyBox(e){let t=e.outerWidth()/2-e.find(".key-box").outerWidth()/2;e.find(".key-box").cssLeft(t)}}class qm extends Bo{constructor(){super(),this.cssClass="view-menu-popup",this.defaultIconId=null,this.viewMenus=[],this.trimWidth=!0}_init(e){super._init(e);let t=this._createTiles(),i=t.every((e=>!e.widgets[0].visible));this.widget=scout.create("TileGrid",{parent:this,tiles:t,cssClass:i?"no-icons":"",selectable:!0,multiSelect:!1,gridColumnCount:this._computeGridColumnCount(t),layoutConfig:{columnWidth:100,rowHeight:-1,vgap:10,hgap:10}});let s=this.widget.tiles.find((e=>e.viewMenu.selected));s&&this.widget.selectTile(s)}_computeGridColumnCount(e){return e.length>8?4:e.length>4?3:2}_createTiles(){return this.viewMenus.map((e=>({objectType:"CompositeTile",displayStyle:wg.DisplayStyle.PLAIN,cssClass:scout.nvl(e.cssClass,"")+" view-menu-tile "+(e.selected?"checked ":"")+(e.iconId?"":"text-only"),modelClass:e.modelClass,classId:e.classId,viewMenu:e,enabled:e.enabled,gridDataHints:{useUiHeight:!0},widgets:[{objectType:"Icon",iconDesc:e.iconId,visible:!!e.iconId,prepend:!0},{objectType:"Label",value:e.text,cssClass:"label"}]})))}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.registerKeyStroke([new jm(this)])}_renderWidget(){super._renderWidget(),this.widget.$container.on("click",".tile",(e=>{let t=scout.widget(e.target);t instanceof wg||(t=t.findParent((e=>e instanceof wg))),this.activateTile(t)}))}activateTile(e){e&&e.viewMenu.enabledComputed&&(e.viewMenu.doAction(),this.close())}}class jm extends U{constructor(e){super(),this.field=e,this.which=[Kr.ENTER,Kr.SPACE],this.renderingHints.$drawingArea=(e,t)=>{let i=this.field.widget.selectedTiles[0];if(i&&i.rendered)return i.$container},this.inheritAccessibility=!1}accept(e){return super.accept(e)&&1===this.field.widget.selectedTiles.length&&this.field.widget.selectedTiles[0].enabledComputed}handle(e){this.field.activateTile(this.field.widget.selectedTiles[0])}}class Ym extends Y{constructor(){super(),this.viewButtons=[],this.selected=!1,this.selectedButton=null,this.selectedButtonVisible=!0,this.defaultIconId=Ct.FOLDER,this._desktopInBackgroundHandler=this._onDesktopInBackgroundChange.bind(this),this._addWidgetProperties(["selectedButton"]),this._addPreserveOnPropertyChangeProperties(["selectedButton"])}_init(e){super._init(e),this.dropdown=x.create("Action",{parent:this,iconId:Ct.ANGLE_DOWN,tabbable:!1,cssClass:"view-menu",toggleAction:!0}),this.dropdown.on("action",this.togglePopup.bind(this)),this._setViewButtons(this.viewButtons),this.session.desktop.on("propertyChange:inBackground",this._desktopInBackgroundHandler)}_destroy(){this.session.desktop.off("propertyChange:inBackground",this._desktopInBackgroundHandler),super._destroy()}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.desktopKeyStrokeContext=new Zr,this.desktopKeyStrokeContext.invokeAcceptInputOnActiveValueField=!0,this.desktopKeyStrokeContext.$bindTarget=this.session.desktop.$container,this.desktopKeyStrokeContext.$scopeTarget=this.session.desktop.$container,this.desktopKeyStrokeContext.registerKeyStroke([new Km(this)])}_render(){this.$container=this.$parent.appendDiv("view-tab view-menu-tab"),this.htmlComp=fr.install(this.$container,this.session),this.dropdown.render(this.$container),this.session.keyStrokeManager.installKeyStrokeContext(this.desktopKeyStrokeContext),this.$container.appendDiv("edge right")}_remove(){this.session.keyStrokeManager.uninstallKeyStrokeContext(this.desktopKeyStrokeContext),super._remove(),this.selectedButton&&this.selectedButton.remove()}_renderProperties(){super._renderProperties(),this._renderSelectedButtonVisible(),this._renderSelected(),this._renderInBackground()}setViewButtons(e){this.setProperty("viewButtons",e)}_setViewButtons(e){this._setProperty("viewButtons",e),this.setVisible(this.viewButtons.length>0);let t=this._findSelectedViewButton();t?this.setSelectedButton(t):this.setSelectedButton(me.find(this.viewButtons,(e=>e.selectedAsMenu))||this.viewButtons[0]),this.setSelected(!!t)}setSelectedButton(e){this.selectedButton&&this.selectedButton.cloneOf===e||e&&this.setProperty("selectedButton",e)}_setSelectedButton(e){this.viewButtons.forEach((t=>t.setSelectedAsMenu(t===e)));let t=this.selectedButton;t||(t=x.create("OutlineViewButton",{parent:this,displayStyle:"TAB"})),t.cloneOf&&t.cloneOf.unmirror(t),t.cloneOf=e,e._cloneProperties.forEach((i=>t.callSetter(i,e[i]))),t.setIconId(e.iconId||this.defaultIconId),e.mirror({delegateEventsToOriginal:["acceptInput","action"],delegateAllPropertiesToClone:!0,delegateAllPropertiesToOriginal:!0,excludePropertiesToOriginal:["selected"]},t),this._setProperty("selectedButton",t)}_renderSelectedButton(){this._renderSelectedButtonVisible()}setSelectedButtonVisible(e){this.setProperty("selectedButtonVisible",e)}_renderSelectedButtonVisible(){this.$container.toggleClass("selected-button-invisible",!this.selectedButtonVisible),this.selectedButton&&(this.selectedButtonVisible?this.selectedButton.rendered||(this.selectedButton.render(),this.selectedButton.$container.prependTo(this.$container),this.invalidateLayoutTree()):this.selectedButton.rendered&&(this.selectedButton.remove(),this.invalidateLayoutTree()))}setSelected(e){this.setProperty("selected",e)}_renderSelected(){this.$container.select(this.selected)}_findSelectedViewButton(){return me.find(this.viewButtons,(e=>e.selected))}togglePopup(){this.popup?this._closePopup():this._openPopup()}_openPopup(){this.popup||(this.popup=x.create("ViewMenuPopup",{parent:this,viewMenus:this.viewButtons,defaultIconId:this.defaultIconId,$anchor:this.$parent}),this.popup.open(),this.popup.one("destroy",(e=>{this.dropdown.setSelected(!1),this.popup=null})))}_closePopup(){this.popup&&this.popup.close()}_renderInBackground(){this.session.desktop.displayStyle!==lm.DisplayStyle.COMPACT&&(this.rendering||(this.session.desktop.inBackground?this.$container.addClassForAnimation("animate-bring-to-back"):this.$container.addClassForAnimation("animate-bring-to-front")),this.$container.toggleClass("in-background",this.session.desktop.inBackground))}onViewButtonSelected(){let e=this._findSelectedViewButton();e&&this.setSelectedButton(e),this.setSelected(!!e),this._closePopup()}_onDesktopInBackgroundChange(){this.rendered&&this._renderInBackground()}}class Xm extends Ad{constructor(){super(),this.nodeType=null,this.compactRoot=!1,this.detailTable=null,this.detailTableVisible=!0,this.detailForm=null,this.detailFormVisible=!0,this.detailFormVisibleByUi=!0,this.navigateButtonsVisible=!0,this.tableStatusVisible=!0,this.drillDownOnRowClick=!1,this.overviewIconId=null,this.showTileOverview=!1,this.events=new dt,this.events.registerSubTypePredicate("propertyChange",((e,t)=>e.propertyName===t)),this._tableFilterHandler=this._onTableFilter.bind(this),this._tableRowClickHandler=this._onTableRowClick.bind(this),this._detailTableModel=null,this._detailFormModel=null}_init(e){this._detailTableModel=Xm._removePropertyIfLazyLoading(e,"detailTable"),this._detailFormModel=Xm._removePropertyIfLazyLoading(e,"detailForm"),super._init(e),Ct.resolveIconProperty(this,"overviewIconId"),this._internalInitTable(),this._internalInitDetailForm()}static _removePropertyIfLazyLoading(e,t){let i=e[t];return"string"==typeof i||i instanceof Y?null:(delete e[t],i)}_destroy(){super._destroy(),this.detailTable&&this.detailTable.destroy(),this.detailForm&&this.detailForm.destroy()}_internalInitTable(){let e=this.detailTable;if(e){let t=this.getOutline()._createChild(e);this._setDetailTable(t)}}_internalInitDetailForm(){let e=this.detailForm;if(e){let t=this.getOutline()._createChild(e);this._setDetailForm(t)}}ensureDetailTable(){this.detailTable||this.setDetailTable(this.createDetailTable())}createDetailTable(){let e=this._createDetailTable();return!e&&this._detailTableModel&&(e=this.getOutline()._createChild(this._detailTableModel),this._detailTableModel=null),e}_createDetailTable(){return null}ensureDetailForm(){this.detailForm||this.setDetailForm(this.createDetailForm())}createDetailForm(){let e=this._createDetailForm();return!e&&this._detailFormModel&&(e=this.getOutline()._createChild(this._detailFormModel),this._detailFormModel=null),e}_createDetailForm(){return null}_initDetailForm(e){e instanceof Ta&&(e.setModal(!1),e.setClosable(!1),e.setDisplayHint(Ta.DisplayHint.VIEW),e.setDisplayViewId("C"),e.setShowOnOpen(!1)),e instanceof Wa&&e.setPage(this)}_destroyDetailForm(e){e instanceof Wa&&e.setPage(null),e.owner===this.getOutline()&&e.destroy()}_initDetailTable(e){e.menuBar.setPosition(kl.Position.TOP),e.on("filter",this._tableFilterHandler),this.drillDownOnRowClick&&(e.on("rowClick",this._tableRowClickHandler),e.setMultiSelect(!1)),e.setTableStatusVisible(this.tableStatusVisible)}_destroyDetailTable(e){e.off("filter",this._tableFilterHandler),e.off("rowClick",this._tableRowClickHandler),e.owner===this.getOutline()&&e.destroy()}_decorate(){super._decorate(),this.$node&&(this.session.inspector&&vt.applyInfo(this,this.$node),this.$node.toggleClass("compact-root",this.compactRoot),this.$node.toggleClass("has-tile-overview",this.showTileOverview||this.compactRoot&&this.getOutline().detailContent instanceof v_))}activate(){this.ensureDetailTable(),this.ensureDetailForm()}deactivate(){}getOutline(){return this.parent}pagesForTableRows(e){return e.map(this.pageForTableRow)}pageForTableRow(e){if(!e.page)throw new Error("Table-row is not linked to a page");return e.page}setDetailForm(e){e!==this.detailForm&&this._setDetailForm(e)}_setDetailForm(e){let t=this.detailForm;t!==e&&t instanceof Y&&this._destroyDetailForm(t),this.detailForm=e,e&&this._initDetailForm(e),this.triggerPropertyChange("detailForm",t,e)}setDetailTable(e){e!==this.detailTable&&this._setDetailTable(e)}_setDetailTable(e){let t=this.detailTable;t!==e&&t instanceof Y&&this._destroyDetailTable(t),this.detailTable=e,e&&this._initDetailTable(e),this.triggerPropertyChange("detailTable",t,e)}updatePagesFromTableRows(e){return e.map((e=>{let t=e.page;return t.updatePageFromTableRow(e),t}))}updatePageFromTableRow(e){let t=e.page;return t.enabled=e.enabled,t.text=t.computeTextForRow(e),e.cells.length>=1&&(t.htmlEnabled=e.cells[0].htmlEnabled,t.cssClass=e.cells[0].cssClass),t}computeTextForRow(e){let t="";return e.cells.length>=1&&(t=e.cells[0].text),t}_pageParam(e){let t={parent:this.getOutline()};return n().extend(t,e),t}reloadPage(){this.getOutline()&&this.loadChildren()}linkWithRow(e){this.row=e,e.page=this,this.getOutline().trigger("pageRowLink",{page:this,row:e})}unlinkWithRow(e){delete this.row,delete e.page}_onTableFilter(e){this.getOutline().mediator.onTableFilter(e,this)}_onTableRowClick(e){if(!this.drillDownOnRowClick)return;let t=e.row,i=this.pageForTableRow(t);this.getOutline().selectNode(i),this.detailTable.deselectRow(t)}triggerPropertyChange(e,t,i){x.assertParameter("propertyName",e);let s=new ht({propertyName:e,oldValue:t,newValue:i});return this.trigger("propertyChange",s),s}trigger(e,t){(t=t||{}).source=this,this.events.trigger(e,t)}one(e,t){this.events.one(e,t)}on(e,t){return this.events.on(e,t)}off(e,t){this.events.off(e,t)}}!function(e,t,i){t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i}(Xm,"NodeType",{NODES:"nodes",TABLE:"table"});class Jm extends Xm{constructor(){super(),this.nodeType=Xm.NodeType.NODES}_createDetailTable(){let e=x.create("Column",{id:"NodeColumn",session:this.session}),t=x.create("Table",{parent:this.parent,id:"PageWithNodesTable",autoResizeColumns:!0,headerVisible:!1,columns:[e]});return t.menuBar.setPosition(kl.Position.TOP),t.on("rowAction",this._onDetailTableRowAction.bind(this)),t}_onDetailTableRowAction(e){this.getOutline().mediator.onTableRowAction(e,this)}_rebuildDetailTable(e){let t=this.detailTable;if(!t)return;this._unlinkAllTableRows(t.rows),t.deleteAllRows();let i=this._createTableRowsForChildPages(e);t.insertRows(i)}_unlinkAllTableRows(e){e.forEach((e=>{e.page&&e.page.unlinkWithRow(e)}))}_createTableRowsForChildPages(e){return e.map((function(e){let t=x.create("TableRow",{parent:this.detailTable,cells:[e.text]});return e.linkWithRow(t),t}),this)}loadChildren(){return this.childrenLoaded=!1,this._createChildPages().done((e=>{this._rebuildDetailTable(e),e.length>0&&this.getOutline().insertNodes(e,this),this.childrenLoaded=!0}))}_createChildPages(){return n().resolvedDeferred(this.childNodes)}}class Zm extends Xm{constructor(){super(),this.nodeType=Xm.NodeType.TABLE,this.alwaysCreateChildPage=!1,this._tableRowDeleteHandler=this._onTableRowsDeleted.bind(this),this._tableRowInsertHandler=this._onTableRowsInserted.bind(this),this._tableRowUpdateHandler=this._onTableRowsUpdated.bind(this),this._tableRowActionHandler=this._onTableRowAction.bind(this),this._tableRowOrderChangeHandler=this._onTableRowOrderChanged.bind(this),this._tableDataLoadHandler=this.loadTableData.bind(this)}_initDetailTable(e){super._initDetailTable(e),e.on("rowsDeleted allRowsDeleted",this._tableRowDeleteHandler),e.on("rowsInserted",this._tableRowInsertHandler),e.on("rowsUpdated",this._tableRowUpdateHandler),e.on("rowAction",this._tableRowActionHandler),e.on("rowOrderChanged",this._tableRowOrderChangeHandler),e.on("reload",this._tableDataLoadHandler),e.hasReloadHandler=!0}_destroyDetailTable(e){e.off("rowsDeleted allRowsDeleted",this._tableRowDeleteHandler),e.off("rowsInserted",this._tableRowInsertHandler),e.off("rowsUpdated",this._tableRowUpdateHandler),e.off("rowAction",this._tableRowActionHandler),e.off("rowOrderChanged",this._tableRowOrderChangeHandler),e.off("reload",this._tableDataLoadHandler),super._destroyDetailTable(e)}_onTableRowsDeleted(e){if(this.leaf)return;let t=me.ensure(e.rows),i=t.map((e=>{let t=e.page;return t.unlinkWithRow(e),t}),this);this.getOutline().mediator.onTableRowsDeleted(t,i,this)}_onTableRowsInserted(e){if(this.leaf)return;let t=me.ensure(e.rows),i=t.map((function(e){return this._createChildPageInternal(e)}),this);this.getOutline().mediator.onTableRowsInserted(t,i,this)}_onTableRowsUpdated(e){this.getOutline().mediator.onTableRowsUpdated(e,this)}_onTableRowAction(e){this.getOutline().mediator.onTableRowAction(e,this)}_onTableRowOrderChanged(e){e.animating||this.getOutline().mediator.onTableRowOrderChanged(e,this)}_createChildPageInternal(e){let t=this.createChildPage(e);return null===t&&this.alwaysCreateChildPage&&(t=this.createDefaultChildPage(e)),t.linkWithRow(e),t=t.updatePageFromTableRow(e),t}createChildPage(e){return null}createDefaultChildPage(e){return x.create("AutoLeafPageWithNodes",{parent:this.getOutline(),row:e})}loadChildren(){return this.detailTable?this.loadTableData():n().resolvedDeferred()}_createSearchFilter(){let e=me.find(this.detailTable.tableControls,(e=>e.form));return e?e.form.exportData():null}loadTableData(){return this.ensureDetailTable(),this.detailTable.deleteAllRows(),this.detailTable.setLoading(!0),this._loadTableData(this._createSearchFilter()).then(this._onLoadTableDataDone.bind(this)).catch(this._onLoadTableDataFail.bind(this)).then(this._onLoadTableDataAlways.bind(this))}_loadTableData(e){return n().resolvedDeferred()}_onLoadTableDataDone(e){let t=this._transformTableDataToTableRows(e);t&&t.length>0&&this.detailTable.insertRows(t)}_onLoadTableDataFail(e){this.detailTable.setTableStatus(Ii.error({message:this.session.text("ErrorWhileLoadingData")})),n().log.error("Failed to load tableData. error=",e)}_onLoadTableDataAlways(){this.childrenLoaded=!0,this.detailTable.setLoading(!1)}_transformTableDataToTableRows(e){return e}}class Qm extends em{constructor(){super(),this.page=null}_init(e){super._init(e),this.label=this.page.text,this.iconId=this.page.overviewIconId,this.labelHtmlEnabled=this.page.htmlEnabled,this.on("click",(e=>{this.outline.selectNode(this.page)}))}notifyPageChanged(){this.setLabel(this.page.text),this.setIconId(this.page.overviewIconId),this.setLabelHtmlEnabled(this.page.htmlEnabled)}}class e_ extends Tg{constructor(){super(),this.compact=!1,this.compactLayoutConfig=new Fg({columnWidth:120,rowHeight:100,hgap:15,vgap:15}),this.outline=null,this.page=null,this.nodes=null,this.scrollable=!1,this.renderAnimationEnabled=!0,this.startupAnimationEnabled=!0,this._outlineNodeChangedHandler=this._onOutlineNodeChanged.bind(this),this._outlineStructureChangedHandler=this._onOutlineStructureChanged.bind(this)}_init(e){super._init(e),this.nodes=this.nodes||this.page&&this.page.childNodes||this.outline&&this.outline.nodes,this._setCompact(this.compact),this.setOutline(this.outline),this.setPage(this.page),this.setNodes(this.nodes),this._setCompactLayoutConfig(this.compactLayoutConfig)}_destroy(){this.setOutline(null),this.setPage(null),this.setNodes(null),super._destroy()}_createKeyStrokeContext(){return new Zr}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.keyStrokeContext.$bindTarget=this.session.$entryPoint,this.keyStrokeContext.registerKeyStroke([new t_(this)])}setOutline(e){this.outline&&(this.outline.off("nodeChanged pageChanged",this._outlineNodeChangedHandler),this.outline.off("nodesDeleted",this._outlineStructureChangedHandler),this.outline.off("nodesInserted",this._outlineStructureChangedHandler),this.outline.off("allChildNodesDeleted",this._outlineStructureChangedHandler),this.outline.off("childNodeOrderChanged",this._outlineStructureChangedHandler)),this._setProperty("outline",e),this.outline&&(this.outline.on("nodeChanged pageChanged",this._outlineNodeChangedHandler),this.outline.on("nodesDeleted",this._outlineStructureChangedHandler),this.outline.on("nodesInserted",this._outlineStructureChangedHandler),this.outline.on("allChildNodesDeleted",this._outlineStructureChangedHandler),this.outline.on("childNodeOrderChanged",this._outlineStructureChangedHandler))}setCompact(e){this.setProperty("compact",e)}_setCompact(e){this._setProperty("compact",e),this.compact?this.setLayoutConfig(this.compactLayoutConfig):this.initialized&&this.setLayoutConfig(new Fg),this.setGridColumnCount(this.compact?3:4),this.startupAnimationEnabled=!this.compact,this.initialized&&this._rebuild()}_setCompactLayoutConfig(e){e||(e=new Fg),this._setProperty("compactLayoutConfig",Fg.ensure(e))}setPage(e){this._setProperty("page",e)}setNodes(e){this._setProperty("nodes",e),this._rebuild()}_createPageTiles(e){return(e||[]).map((function(e){return this._createPageTile(e)}),this)}_createPageTile(e){let t=x.create("PageTileButton",{parent:this,outline:this.outline,page:e}),i=x.create("ButtonTile",{parent:this,cssClass:this.compact?"compact":null,tileWidget:t});return e.tile=i,i}_rebuild(){this.setTiles(this._createPageTiles(this.nodes))}_onOutlineNodeChanged(e){let t=(e.node||e.page).tile;t&&t.tileWidget.notifyPageChanged()}_onOutlineStructureChanged(e){if(this.page)this.page===e.parentNode&&this.setNodes(this.page.childNodes);else{(e.nodes&&e.nodes.some((e=>!e.parentNode))||"allChildNodesDeleted"===e.type)&&this.setNodes(this.outline.nodes)}}}class t_ extends en{constructor(e){super(),this.field=e,this.registerRange(Kr[1],(()=>Kr[Math.min(this._tiles().length,9)])),this.renderingHints.$drawingArea=function(e,t){let i=t.which-Kr[1],s=this._tiles();return i<s.length&&s[i].tileWidget instanceof em?s[i].tileWidget.$fieldContainer:null}.bind(this)}_accept(e){if(!super._accept(e))return!1;if(this.field&&this.field.outline&&this.field.outline.inBackground)return!1;let t=Kr.codesToKeys[e.which]-1,i=this._tiles();return!!(t<i.length&&i[t].tileWidget instanceof em&&(e._$element=i[t].$container,e._$element))}handle(e){e._$element.data("widget").tileWidget.doAction()}_tiles(){return this.field.tiles}}class i_ extends Xm{constructor(){super(),this.leaf=!0}_init(e){x.assertParameter("row",e.row,Ya),super._init(e),this.text=this.row.cells[0].text}}class s_{constructor(){}accept(e){return!e.parentNode||!!e.parentNode.filterAccepted&&(!e.parentNode.detailTable||(!e.row||e.row.filterAccepted))}}class r_ extends Ed{constructor(){super(),this.compact=!1,this.defaultDetailForm=null,this.detailContent=null,this.embedDetailContent=!1,this.inBackground=!1,this.iconId=null,this.iconVisible=!1,this.mediator=null,this.navigateButtonsVisible=!0,this.navigateUpInProgress=!1,this.outlineOverview=null,this.outlineOverviewVisible=!0,this.toggleBreadcrumbStyleEnabled=!0,this.title=null,this.titleVisible=!0,this.menus=[],this.titleMenuBar=null,this.nodeMenuBar=null,this.nodeMenuBarVisible=!1,this.detailMenuBar=null,this.detailMenuBarVisible=!1,this.detailContent=null,this.dialogs=[],this.views=[],this.messageBoxes=[],this.fileChoosers=[],this.formController=null,this.messageBoxController=null,this.fileChooserController=null,this.textFilterEnabled=!1,this._detailContentDestroyHandler=this._onDetailContentDestroy.bind(this),this._detailMenusNodesSelectedHandler=null,this._additionalContainerClasses+=" outline",this.nodePaddingLevelCheckable=20,this.nodePaddingLevelNotCheckable=20,this.nodePaddingLevelHierarchyRow=this.nodePaddingLevelNotCheckable,this._scrolldirections="y",this._addWidgetProperties(["defaultDetailForm","views","selectedViewTabs","dialogs","messageBoxes","fileChoosers"])}_init(e){this.compact=x.nvl(e.compact,e.parent.session.desktop.displayStyle===lm.DisplayStyle.COMPACT),this.embedDetailContent=x.nvl(e.embedDetailContent,this.compact),this.addFilter(new s_,!1),super._init(e),this.mediator=this._createMediator(),this.formController=x.create("FormController",{displayParent:this,session:this.session}),this.messageBoxController=new Tu(this,this.session),this.fileChooserController=new la(this,this.session),this.resolveTextKeys(["title"]),this.titleMenuBar=x.create("MenuBar",{parent:this,menuOrder:new cc}),this.nodeMenuBar=x.create("MenuBar",{parent:this,position:kl.Position.BOTTOM,menuOrder:new cc}),this.detailMenuBar=x.create("MenuBar",{parent:this,position:kl.Position.BOTTOM,menuOrder:new cc}),this._setDefaultDetailForm(this.defaultDetailForm),this._setOutlineOverviewVisible(this.outlineOverviewVisible),this._setOutlineOverview(this.outlineOverview),this._updateOutlineOverview(),this._setViews(this.views),this._setMenus(this.menus),this.updateDetailContent()}_createMediator(){return x.create("OutlineMediator")}_createTreeNode(e){let t=n().extend({objectType:"Page"},e);return this._createChild(t)}_applyNodeDefaultValues(e){We.applyTo(e,"Page")}_createKeyStrokeContext(){return new y_(this)}_filterMenus(e,t,i,s){return[]}_initTreeKeyStrokeContext(){let e=Yr.CTRL|Yr.SHIFT;this.keyStrokeContext.registerKeyStroke([new Ld(this,e),new Bd(this,e),new w_(this,e),new Od(this,e),new Hd(this,e),new Vd(this,e)]),this.keyStrokeContext.$bindTarget=function(){return this.session.$entryPoint}.bind(this)}_render(){super._render(),this.htmlComp.setLayout(new l_(this)),this._renderCompact(),this._renderEmbedDetailContent(),this._renderDetailContent(),this._renderDetailMenuBarVisible(),this._renderNodeMenuBarVisible()}_renderProperties(){super._renderProperties(),this._renderTitle(),this._updateIcon(),this._renderTitleMenuBar()}_computeNodePaddingLeft(e){return this._computeNodePaddings(),this.compact&&e.row&&e.getOutline().selectedNode()!==e?this.nodePaddingLeft+e.row.hierarchyLevel*this.nodePaddingLevelHierarchyRow:super._computeNodePaddingLeft(e)}_remove(){super._remove(),this._removeTitle(),this._removeIcon()}_renderTitle(){this.titleVisible&&(this.$title||(this.$title=this.$container.prependDiv("outline-title").on("mousedown",this._onTitleMouseDown.bind(this)).toggleClass("touch",Qe.get().supportsOnlyTouch()),this.$titleText=this.$title.prependDiv("text")),this.$titleText.text(this.title))}_removeTitle(){this.titleVisible&&(this.$title.remove(),this.$title=null)}setIconVisible(e){this.setProperty("iconVisible",e),this.rendered&&this._updateIcon()}setIconId(e){this.setProperty("iconId",e),this.rendered&&this._updateIcon()}_updateIcon(){if(this.titleVisible&&this.iconVisible&&this.iconId){if(this.icon)return void this.icon.setIconDesc(this.iconId);this.icon=x.create("Icon",{parent:this,iconDesc:this.iconId,prepend:!0}),this.icon.render(this.$title)}else{if(!this.icon)return;this.icon.remove(),this.icon=null}}_removeIcon(){this.icon&&(this.icon.remove(),this.icon=null)}_renderTitleMenuBar(){this.titleVisible&&(this.titleMenuBar.render(this.$title),this.titleMenuBar.$container.addClass("prevent-initial-focus"))}_renderEnabled(){super._renderEnabled(),this.$container.setTabbable(!1)}_initTreeNodeInternal(e,t){super._initTreeNodeInternal(e,t),this._initDetailTableAndForm(e),this.trigger("pageInit",{page:e})}_initDetailTableAndForm(e){e.detailTable&&this._initDetailTable(e),e.detailForm&&this._initDetailForm(e)}_initDetailTable(e){this.navigateButtonsVisible&&e.navigateButtonsVisible&&this._appendNavigateButtonsForDetailTable(e)}_initDetailForm(e){this.navigateButtonsVisible&&e.navigateButtonsVisible&&this._appendNavigateButtonsForDetailForm(e),e.detailForm.detailForm=!0,e.detailForm.one("destroy",(()=>{e.detailForm=null,this._triggerPageChanged(e)}))}_createNavigateButtons(e,t){let i=me.ensure(t.staticMenus);if(!this._hasMenu(i,b_)){let s=x.create("NavigateUpButton",{parent:t,altKeyStrokeContext:t.keyStrokeContext,outline:this,node:e});i.push(s)}if(!this._hasMenu(i,f_)){let s=x.create("NavigateDownButton",{parent:t,altKeyStrokeContext:t.keyStrokeContext,outline:this,node:e});i.push(s)}return i}_getMenu(e,t){for(let i=0;i<e.length;i++)if(e[i]instanceof t)return e[i];return null}_hasMenu(e,t){return null!==this._getMenu(e,t)}_onTitleMouseDown(e){this.titleMenuBar.rendered&&this.titleMenuBar.$container.isOrHas(e.target)||this.navigateToTop()}navigateToTop(){this.compact&&this.embedDetailContent?this.selectNode(this.compactRootNode()||[]):this.deselectAll(),this.handleInitialExpanded(),this.setScrollTop(0)}compactRootNode(){return this.nodes[0]&&this.nodes[0].compactRoot?this.nodes[0]:null}handleInitialExpanded(){this.visitNodes((e=>{this.setNodeExpanded(e,e.initialExpanded,{renderExpansion:!0})}))}_onNodeDeleted(e){e.detailTable&&(e.detailTable.destroy(),e.detailTable=null)}selectNodes(e,t){(e=me.ensure(e)).length>0&&this.isNodeSelected(e[0])||0===e.length&&0===this.selectedNodes.length||(this.navigateUpInProgress?this.navigateUpInProgress=!1:1===e.length&&this.setDetailFormVisibleByUi(e[0],!0),super.selectNodes(e,t))}_setSelectedNodes(e,t){super._setSelectedNodes(e,t),this.updateDetailContent()}_nodesSelectedInternal(){let e=this.activePage();e&&(e.activate(),e.ensureLoadChildren().done(this._onLoadChildrenDone.bind(this,e)))}_renderSelection(){super._renderSelection(),this.$container.toggleClass("node-selected",this.selectedNodes.length>0);let e=this.prevSelectedNode;this.embedDetailContent&&e&&e.$node&&(e.$node.cssHeight(null).cssWidth(null),e.height=e.$node.outerHeight(!0))}_removeNodeSelection(e){e.$text&&!this.isHorizontalScrollingEnabled()&&e.$text.cssWidth(null),super._removeNodeSelection(e)}setDefaultDetailForm(e){this.setProperty("defaultDetailForm",e)}_setDefaultDetailForm(e){this.defaultDetailForm&&(this.defaultDetailForm.detailForm=!1),this._setProperty("defaultDetailForm",e),this.defaultDetailForm&&(this.defaultDetailForm.detailForm=!0),this.initialized&&(this._updateOutlineOverview(),this.updateDetailContent())}setOutlineOverviewVisible(e){this.setProperty("outlineOverviewVisible",e),this._updateOutlineOverview()}_setOutlineOverviewVisible(e){this._setProperty("outlineOverviewVisible",e)}setOutlineOverview(e){this.setProperty("outlineOverview",e),this._updateOutlineOverview()}_setOutlineOverview(e){e&&(e=this._createChild(e)),this._setProperty("outlineOverview",e)}_updateOutlineOverview(){this.defaultDetailForm?this.outlineOverview&&(this.outlineOverview.destroy(),this._setOutlineOverview(null)):this.outlineOverviewVisible?this.outlineOverview||this._setOutlineOverview(this._createOutlineOverview()):this.outlineOverview&&(this.outlineOverview.destroy(),this._setOutlineOverview(null))}_createOutlineOverview(){return x.create("TileOutlineOverview",{parent:this,outline:this,page:this.compact?this.compactRootNode():null})}setNavigateButtonsVisible(e){this.setProperty("navigateButtonsVisible",e)}_setNavigateButtonsVisible(e){this._setProperty("navigateButtonsVisible",e),this.visitNodes(this._setNavigateButtonsVisibleForNode.bind(this))}_setNavigateButtonsVisibleForNode(e,t){this.navigateButtonsVisible?(e.detailForm&&this._appendNavigateButtonsForDetailForm(e),e.detailTable&&this._appendNavigateButtonsForDetailTable(e)):(e.detailForm&&this._removeNavigateButtonsForDetailForm(e),e.detailTable&&this._removeNavigateButtonsForDetailTable(e))}_appendNavigateButtonsForDetailForm(e){if(e.detailForm.rootGroupBox){let t=this._createNavigateButtons(e,e.detailForm.rootGroupBox);e.detailForm.rootGroupBox.setStaticMenus(t)}}_appendNavigateButtonsForDetailTable(e){let t=this._createNavigateButtons(e,e.detailTable);e.detailTable.setStaticMenus(t)}_removeNavigateButtonsForDetailForm(e){if(e.detailForm.rootGroupBox){let t=e.detailForm.rootGroupBox.staticMenus.filter((e=>!(e instanceof __)));e.detailForm.rootGroupBox.setStaticMenus(t)}}_removeNavigateButtonsForDetailTable(e){let t=e.detailTable.staticMenus.filter((e=>!(e instanceof __)));e.detailTable.setStaticMenus(t)}selectedRow(){let e=this.selectedNode();return e&&e.detailTable?e.detailTable.selectedRow():null}selectedNode(){return super.selectedNode()}_isGroupingEnd(e){return e.nodeType===Xm.NodeType.TABLE}_isTruncatedNodeTooltipEnabled(){return!1}setDetailFormVisibleByUi(e,t){e.detailFormVisibleByUi=t,this._triggerPageChanged(e)}validateFocus(){this.session.focusManager.validateFocus()}sendToBack(){this.inBackground=!0,this._renderInBackground(),this.formController.detachDialogs(),this.messageBoxController.detach(),this.fileChooserController.detach()}bringToFront(){this.inBackground=!1,this._renderInBackground(),this.formController.attachDialogs(),this.messageBoxController.attach(),this.fileChooserController.attach()}_renderInBackground(){this.$container.toggleClass("in-background",this.inBackground&&!this.compact)}_renderCompact(){this.$container.toggleClass("compact",this.compact),this.nodePaddingLeft=null,this.nodeControlPaddingLeft=null,this._updateNodePaddingsLeft(),this.invalidateLayoutTree()}_renderEmbedDetailContent(){this.$data.toggleClass("has-detail-content",this.embedDetailContent),this.invalidateLayoutTree()}_renderDetailContent(){if(!this.detailContent||this.detailContent.rendered)return;let e=this.selectedNode();e.rendered&&(e.$text.setVisible(!!e.text),e._decorate(),this.detailContent.render(e.$node),this.detailContent.$container.addClass("detail-content"),this.detailContent.htmlComp&&(this.detailContent.htmlComp.validateRoot=!1),this._ensurePageLayout(e),this.$data.addClass("detail-content-visible"))}_ensurePageLayout(e){e.htmlComp=fr.install(e.$node,this.session),e.htmlComp.setLayout(new c_(this,e))}_removeDetailContent(){this.detailContent&&(this.detailContent.remove(),this.$data.removeClass("detail-content-visible"))}_postRenderViewRange(){super._postRenderViewRange(),this._renderDetailContent(),this._renderDetailMenuBarVisible(),this._renderNodeMenuBarVisible()}setCompact(e){this.setProperty("compact",e)}setEmbedDetailContent(e){this.setProperty("embedDetailContent",e)}_setEmbedDetailContent(e){this._setProperty("embedDetailContent",e),this.updateDetailContent()}_onDetailContentDestroy(e){this.setDetailContent(null),this.updateDetailMenus()}setDetailContent(e){this.detailContent!==e&&(this.rendered&&this._removeDetailContent(),this.detailContent&&this.detailContent.off("destroy",this._detailContentDestroyHandler),this.detailContent instanceof ph&&this.detailContent.destroy(),this._setProperty("detailContent",e),e&&e.on("destroy",this._detailContentDestroyHandler),this.rendered&&this._renderDetailContent(),this.invalidateLayoutTree())}updateDetailContent(){if(!this.embedDetailContent)return this.setDetailContent(null),void this.setDetailMenus([]);this.setDetailMenuBarVisible(!1),this.setNodeMenuBarVisible(!1),this.setDetailContent(this._computeDetailContent()),this.updateDetailMenus()}_updateScrollTopAfterSelection(){if(this.embedDetailContent){if(this.validateLayoutTree(),super._updateScrollTopAfterSelection(),this.selectedNodes[0]&&this.selectedNodes[0].parentNode){if(this.prevSelectedNode&&this.prevSelectedNode.isDescendantOf(this.selectedNodes[0]))return;this.scrollTo(this.selectedNodes[0].parentNode,{align:"top",animate:!0})}}else super._updateScrollTopAfterSelection()}_computeDetailContent(){let e=this.selectedNode();if(!e)return null;if(e.detailForm&&e.detailFormVisible&&e.detailFormVisibleByUi)return e.detailForm;if(e===this.compactRootNode()){let e=this._computeRootContent();if(e)return e}return e.row&&e.parentNode.nodeType===Xm.NodeType.TABLE?x.create("TableRowDetail",{parent:this,table:e.parentNode.detailTable,page:e}):null}_computeRootContent(){return this.defaultDetailForm?this.defaultDetailForm:this.outlineOverview}updateDetailMenus(){if(!this.embedDetailContent)return;let e,t=this.selectedNodes[0],i=[],s=[],r=[],n=[];if(this.detailContent&&this.detailContent instanceof Ta){let e=this.detailContent.rootGroupBox;e&&(i=e.processMenus.concat(e.menus),e.setMenuBarVisible(!1),this._attachDetailMenusListener(e))}else if(t&&!(this.detailContent instanceof C_)){t.detailTable&&(e=t.detailTable,i=al.filter(e.menus,["Table.EmptySpace"],!1,!0),s=e.tableControls,e.setMenuBarVisible(!1),this._attachDetailMenusListener(e));let r=t.parentNode;r&&r.detailTable&&(e=r.detailTable,i=i.concat(al.filter(e.menus,["Table.SingleSelection"],!1,!0)),e.setMenuBarVisible(!1),this._attachDetailMenusListener(e))}this.nodeMenuBar.menuItems.filter((e=>e instanceof Vh)).forEach((e=>e.destroy())),s.forEach((function(e){let t=x.create("TableControlAdapterMenu",Vh.adaptTableControlProperties(e,{parent:this,tableControl:e,horizontalAlignment:1}));r.push(t)}),this),i.forEach((e=>{1===e.horizontalAlignment?r.push(e):n.push(e)}),this),this.setNodeMenus(r),this.setDetailMenus(n)}_attachDetailMenusListener(e){this._detailMenusChangeHandler||(this._detailMenusChangeHandler=function(e){"menus"!==e.propertyName&&"tableControls"!==e.propertyName||this.updateDetailMenus()}.bind(this)),this._detailMenusDestroyHandler||(this._detailMenusDestroyHandler=function(){e.off("propertyChange",this._detailMenusChangeHandler)}.bind(this)),e.off("propertyChange",this._detailMenusChangeHandler),e.on("propertyChange",this._detailMenusChangeHandler),e.off("destroy",this._detailMenusDestroyHandler),e.one("destroy",this._detailMenusDestroyHandler),this._detailMenusNodesSelectedHandler||(this._detailMenusNodesSelectedHandler={outline:this,menuContainers:[],addMenuContainer:function(e){this.menuContainers.indexOf(e)>-1||this.menuContainers.push(e)},func:function(e){"nodesSelected"===e.type&&(this.menuContainers.forEach((function(e){e.off("propertyChange",this.outline._detailMenusChangeHandler),e.off("destroy",this.outline._detailMenusDestroyHandler)}),this),this.menuContainers=[])}},this.addListener(this._detailMenusNodesSelectedHandler)),this._detailMenusNodesSelectedHandler.addMenuContainer(e)}setDetailMenus(e){this.detailMenuBar.setMenuItems([]),this.detailMenuBar.setMenuItems(e),this.setDetailMenuBarVisible(this.detailMenuBar.menuItems.length>0)}_renderDetailMenuBarVisible(){this.detailMenuBarVisible?this._renderDetailMenuBar():this._removeDetailMenuBar()}_renderDetailMenuBar(){if(this.detailMenuBar.rendered)return;let e=this.selectedNode();e&&e.rendered&&(this.detailMenuBar.render(e.$node),this.detailMenuBar.$container.addClass("detail-menubar"),this.detailContent&&this.detailContent.rendered&&this.detailMenuBar.$container.insertBefore(this.detailContent.$container),this._ensurePageLayout(e),this.invalidateLayoutTree())}_removeDetailMenuBar(){this.detailMenuBar.rendered&&(this.detailMenuBar.remove(),this.invalidateLayoutTree())}setDetailMenuBarVisible(e){this.setProperty("detailMenuBarVisible",e)}setNodeMenus(e){this.nodeMenuBar.setMenuItems([]),this.nodeMenuBar.setMenuItems(e),this.setNodeMenuBarVisible(this.nodeMenuBar.menuItems.length>0)}_renderNodeMenuBarVisible(){this.nodeMenuBarVisible?this._renderNodeMenuBar():this._removeNodeMenuBar()}_renderNodeMenuBar(){if(this.nodeMenuBar.rendered)return;let e=this.selectedNode();if(!e||!e.rendered)return;let t=e.$text;this.nodeMenuBar.render(e.$node),this.nodeMenuBar.$container.addClass("node-menubar"),this.nodeMenuBar.$container.insertAfter(t),this.invalidateLayoutTree()}_removeNodeMenuBar(){this.nodeMenuBar.rendered&&(this.nodeMenuBar.remove(),this.invalidateLayoutTree())}setNodeMenuBarVisible(e){this.setProperty("nodeMenuBarVisible",e)}glassPaneTargets(e){return this._glassPaneTargets(e)}_glassPaneTargets(e){let t=this.session.desktop,i=[];return t.navigation&&i.push(t.navigation.$body),t.bench&&t.bench.outlineContent&&me.pushAll(i,t.bench.outlineContent.glassPaneTargets(e)),i}_onGlassPaneMouseDown(e,t){let i=this.session.desktop;i.navigation&&t.parent()[0]===i.navigation.$body[0]&&i.bringOutlineToFront()}inFront(){return this.session.desktop.outline===this&&!this.inBackground}acceptDialog(e){return this.session.desktop.outline===this}acceptView(e){return this.session.desktop.outline===this}activateCurrentPage(){let e=this.activePage();e&&e.activate()}activePage(){return this.selectedNode()}_setViews(e){e&&e.forEach((e=>{e.setDisplayParent(this)})),this._setProperty("views",e)}_setMenus(e){let t=this.menus;if(this.updateKeyStrokes(e,t),this._setProperty("menus",e),this.titleMenuBar){let e=al.filter(this.menus,["Tree.Header"]);this.titleMenuBar.setMenuItems(e)}}_triggerPageChanged(e){this.trigger("pageChanged",{page:e})}_onLoadChildrenDone(e){e&&this._initDetailTableAndForm(e)}pageChanged(e){e&&this._initDetailTableAndForm(e);let t=this.selectedNode();(e||t)&&e!==t||this.updateDetailContent(),this._triggerPageChanged(e)}}class n_ extends Dd{constructor(){super(),this._filterDirty=!1,this._nodeIdToRowMap={},this._detailTableRowInitHandler=this._onDetailTableRowInit.bind(this),this._detailTableRowsInsertedHandler=this._onDetailTableRowsInserted.bind(this),this._detailTableFilterRemoved=this._onDetailTableFilterRemoved.bind(this)}_onPageChanged(e){let t=this.widget._nodeById(e.nodeId);t.overviewIconId=e.overviewIconId,t.detailFormVisible=e.detailFormVisible;let i=this.session.getOrCreateWidget(e.detailForm,this.widget);t.setDetailForm(i),t.navigateButtonsVisible=e.navigateButtonsVisible,t.detailTableVisible=e.detailTableVisible;let s=this.session.getOrCreateWidget(e.detailTable,this.widget);t.detailTable!==s&&(t.detailTable&&this._destroyDetailTable(t),t.setDetailTable(s),t.detailTable&&this._initDetailTable(t)),this.widget.pageChanged(t)}onModelAction(e){"pageChanged"===e.type?this._onPageChanged(e):super.onModelAction(e)}_initDetailTable(e){e.detailTable.rows.forEach(this._linkNodeWithRow.bind(this)),e.detailTable.on("rowInit",this._detailTableRowInitHandler),e.detailTable.on("rowsInserted",this._detailTableRowsInsertedHandler),e.detailTable.on("filterRemoved",this._detailTableFilterRemoved)}_destroyDetailTable(e){this._nodeIdToRowMap={},e.detailTable.rows.forEach(this._unlinkNodeWithRow.bind(this)),e.detailTable.off("rowInit",this._detailTableRowInitHandler),e.detailTable.off("rowsInserted",this._detailTableRowsInsertedHandler),e.detailTable.off("filterRemoved",this._detailTableFilterRemoved)}_linkNodeWithRow(e){x.assertParameter("row",e);let t,i=e.nodeId;void 0!==i&&(t=this.widget.nodesMap[i],t?t.linkWithRow(e):this._nodeIdToRowMap[i]=e)}_unlinkNodeWithRow(e){let t=this.widget.nodesMap[e.nodeId];t&&t.unlinkWithRow(e)}_onDetailTableRowInit(e){this._linkNodeWithRow(e.row);let t=this.widget.nodesMap[e.row.nodeId];this.widget.isSelectedNode(t)&&!this.widget.detailContent&&this.widget.updateDetailContent()}_onDetailTableRowsInserted(e){let t=e.source;(this._filterDirty||t._filterCount()>0&&e.rows.some((e=>!e.filterAccepted)))&&(this._filterDirty=!1,this.widget.filter())}_onDetailTableFilterRemoved(e){let t=e.source;t.modelAdapter&&t.modelAdapter._rebuildingTable&&(this._filterDirty=!0)}_linkNodeWithRowLater(e){if(!e.parentNode||!e.parentNode.detailTable)return;if(!this._nodeIdToRowMap.hasOwnProperty(e.id))return;let t=this._nodeIdToRowMap[e.id];e.linkWithRow(t),delete this._nodeIdToRowMap[e.id]}static modifyOutlinePrototype(){E.get().remote&&(Ai.replacePrototypeFunction(r_,"_computeDetailContent",n_._computeDetailContentRemote,!0),Ai.replacePrototypeFunction(r_,"updateDetailMenus",n_.updateDetailMenusRemote,!0),Ai.replacePrototypeFunction(r_,"_initTreeNodeInternal",n_._initTreeNodeInternalRemote,!0))}static _computeDetailContentRemote(){if(!this.modelAdapter)return this._computeDetailContentOrig();let e=this.selectedNode();return e?e.detailForm||e.detailFormResolved?(e.detailFormResolved=!0,this._computeDetailContentOrig()):this.session.areRequestsPending()||this.session.areEventsQueued()?void this.session.listen().done(function(e){e.detailFormResolved||(e.detailFormResolved=!0,this.updateDetailContent())}.bind(this,e)):(e.detailFormResolved=!0,this._computeDetailContentOrig()):null}static updateDetailMenusRemote(){return this.modelAdapter?this.selectedNode()&&this.selectedNode().detailFormResolved?this.updateDetailMenusOrig():void 0:this.updateDetailMenusOrig()}static _initTreeNodeInternalRemote(e,t){this._initTreeNodeInternalOrig(e,t),this.modelAdapter&&(this.modelAdapter.widget=this,e.detailTable&&this.modelAdapter._initDetailTable(e),this.modelAdapter._linkNodeWithRowLater(e))}}E.addListener("bootstrap",n_.modifyOutlinePrototype);class o_{init(e){}_skipEvent(e){return null===e||null===e.getOutline()||e.leaf}onTableRowsInserted(e,t,i){this._skipEvent(i)||i.getTree().insertNodes(t,i)}onTableRowsDeleted(e,t,i){this._skipEvent(i)||i.getTree().deleteNodes(t,i)}onTableRowsUpdated(e,t){if(this._skipEvent(t))return;let i=t.updatePagesFromTableRows(e.rows);t.getTree().updateNodes(i)}onTableRowAction(e,t){let i=e.row.page;if(!i)return;let s=i.getOutline();s&&(s.selectNode(i),s.setNodeExpanded(i,!0))}onTableRowOrderChanged(e,t){if(this._skipEvent(t))return;let i=e.source,s=t.pagesForTableRows(i.rows);t.getOutline().updateNodeOrder(s,t)}onTableFilter(e,t){t.getOutline().filter()}}class l_ extends $d{constructor(e){super(e),this.outline=e}_layout(e){let t,i=this.outline.htmlComp;if(super._layout(e),t=i.availableSize().subtract(i.insets()),this.outline.embedDetailContent){let e=this.outline.selectedNodes[0];if(e&&e.rendered){let i=e.htmlComp;if(i){let s=i.prefSize({widthHint:t.width});i.setSize(new sr(t.width,s.height)),e.height=s.height+i.margins().vertical()}}}this.outline.titleMenuBar.validateLayout(),this.outline.nodeMenuBar.validateLayout(),this.outline.detailMenuBar.validateLayout()}_setDataHeight(e){let t=null;this.outline.titleVisible&&(t=pr.size(this.outline.$title,!0)),super._setDataHeight(e+(null===t?0:t.height))}}class a_ extends zm{constructor(){super(),this.outline=null,this._addWidgetProperties("outline"),this._addPreserveOnPropertyChangeProperties(["outline"]),this._addCloneProperties(["outline"])}_init(e){super._init(e),this._setOutline(this.outline)}_setOutline(e){this._setProperty("outline",e),this.outline&&this.outline.setIconId(this.iconId)}_setIconId(e){this._setProperty("iconId",e),this.outline&&this.outline.setIconId(this.iconId)}_doAction(){super._doAction(),this.outline&&(this.session.desktop.setOutline(this.outline),this.session.desktop.bringOutlineToFront())}onOutlineChange(e){let t=!!e&&this.outline===e;this.setSelected(t)}}class h_ extends Gm{constructor(){super()}_goOffline(){this.widget.outline||(this._enabledBeforeOffline=this.widget.enabled,this.widget.setEnabled(!1))}_goOnline(){this.widget.outline||this.widget.setEnabled(this._enabledBeforeOffline)}}class d_ extends iu{constructor(){super(),this.outline=null,this.tileOutlineOverview=null}_render(){this._ensureTileOutlineOverview(),this.addContainer(this.$parent,"outline-tile-field"),this.tileOutlineOverview.render(this.$container),this.addField(this.tileOutlineOverview.$container)}_ensureTileOutlineOverview(){if(this.tileOutlineOverview)return;let e=this.outline?this.session.getWidget(this.outline):null;this.tileOutlineOverview=x.create("TileOutlineOverview",{parent:this,outline:e})}}class u_ extends su{constructor(){super()}}class c_ extends _r{constructor(e,t){super(),this.outline=e,this.page=t}layout(e){let t,i,s=this.page.htmlComp,r=this.page.$text,n=this.page.$icon(),o=0,l=0,a=this.outline.nodeMenuBar,h=0,d=this.outline.detailMenuBar,u=0,c=0;if(t=s.availableSize().subtract(s.insets()),c=t.width,n.length>0&&(c-=pr.prefSize(n).width),a.visible&&(h=a.htmlComp.prefSize(),a.htmlComp.setSize(h),c-=h.add(a.htmlComp.margins()).width),r.cssWidth(c),d.visible&&(u=d.htmlComp.prefSize().height,i=new sr(t.width,u).subtract(d.htmlComp.margins()),d.htmlComp.setSize(i)),this.outline.detailContent){n.length>0&&(l=n.outerHeight(!0)),r.isVisible()&&(o=r.outerHeight(!0)),o=Math.max(o,l);let e=this.outline.detailContent.htmlComp;e.setSize(new sr(t.width,t.height-o-u-e.margins().vertical()))}}preferredLayoutSize(e,t){let i,s,r=0,n=this.page.htmlComp,o=new sr,l=this.page.$text,a=this.page.$icon(),h=0,d=this.outline.detailMenuBar,u=new sr,c=this.outline.nodeMenuBar,p=0;if(p=t.widthHint,a.length>0&&(p-=pr.prefSize(a).width),c.visible&&c.rendered&&(p-=c.htmlComp.prefSize().width),s=pr.prefSize(l,{includeMargin:!0,widthHint:p}).height,a.length>0&&(r=a.outerHeight(!0)),h=Math.max(s,r),d.visible&&d.rendered&&(u=d.htmlComp.prefSize()),this.outline.detailContent){let e=this.outline.detailContent.htmlComp;o=e.prefSize(t).add(e.margins())}return i=new sr(Math.max(o.width,u.width),h+u.height+o.height),i=i.add(n.insets()),i}}class p_ extends r_{constructor(){super(),this.hasText=!1,this.$searchPanel=null,this.$clearIcon=null,this.$searchStatus=null,this.$queryField=null}_initKeyStrokeContext(){super._initKeyStrokeContext(),this.searchFieldKeyStrokeContext=this._createKeyStrokeContextForSearchField()}_createKeyStrokeContextForSearchField(){let e=new Qr;return e.$scopeTarget=function(){return this.$searchPanel}.bind(this),e.$bindTarget=function(){return this.$queryField}.bind(this),e.registerStopPropagationKeys(Yr.NONE,[Kr.ENTER,Kr.BACKSPACE]),e}_render(){super._render(),this.htmlComp.setLayout(new m_(this)),this.$container.addClass("search-outline"),this.$searchPanel=this.$container.prependDiv("search-outline-panel"),this.$queryField=this.$searchPanel.appendElement("<input>","search-outline-field").on("input",this._createOnQueryFieldInputFunction().bind(this)).on("keypress",this._onQueryFieldKeyPress.bind(this)),this.$clearIcon=this.$searchPanel.appendSpan("clear-icon unfocusable action text-field-icon").on("mousedown",this._onClearIconMouseDown.bind(this)),this.$searchStatus=this.$searchPanel.appendDiv("search-outline-status").on("mousedown",this._onTitleMouseDown.bind(this)),this.session.keyStrokeManager.installKeyStrokeContext(this.searchFieldKeyStrokeContext)}_remove(){this.session.keyStrokeManager.uninstallKeyStrokeContext(this.searchFieldKeyStrokeContext),this.$searchPanel.remove(),super._remove()}_renderProperties(){super._renderProperties(),this._renderSearchQuery(),this._renderSearchStatus(),this._updateHasText()}_renderTitle(){super._renderTitle(),this.titleVisible&&this.$title.insertBefore(this.$searchPanel)}_renderSearchQuery(){this.$queryField.val(this.searchQuery)}_renderSearchStatus(){let e=this.rendered;this.searchStatus&&!this.$searchStatus.isVisible()?e?this.$searchStatus.slideDown({duration:200,progress:this.revalidateLayout.bind(this)}):this.$searchStatus.show():!this.searchStatus&&this.$searchStatus.isVisible()&&(e?this.$searchStatus.slideUp({duration:200,progress:this.revalidateLayout.bind(this)}):this.$searchStatus.hide()),this.$searchStatus.textOrNbsp(this.searchStatus),this.$searchPanel.toggleClass("has-status",!!this.searchStatus)}focusQueryField(){this.validateFocus()}_triggerSearch(){this.trigger("search",{query:x.nvl(this.searchQuery,"")})}_createOnQueryFieldInputFunction(e){let t=n().debounce(this._search.bind(this));return function(e){this._updateHasText(),t()}}_onClearIconMouseDown(e){this.$queryField.val(""),this._updateHasText(),this._search(),this.$queryField.focus(),e.preventDefault()}_onQueryFieldKeyPress(e){e.which===Kr.ENTER&&(this._setSearchQuery(this.$queryField.val()),this._triggerSearch())}_search(e){let t=this.$queryField.val();this.searchQuery!==t&&(this._setSearchQuery(t),this._triggerSearch())}_setSearchQuery(e){this.searchQuery=e}_updateHasText(){this.$queryField.toggleClass("has-text",!!this.$queryField.val())}validateFocus(){if(!this.rendered)return;let e=this.$queryField[0];this.session.focusManager.requestFocus(e)&&e.select()}}class g_ extends n_{constructor(){super()}_initProperties(e){void 0!==e.requestFocusQueryField&&delete e.requestFocusQueryField}_syncRequestFocusQueryField(){this.widget.focusQueryField()}_onWidgetSearch(e){this._send("search",{query:e.query},{showBusyIndicator:!1})}_onWidgetEvent(e){"search"===e.type?this._onWidgetSearch(e):super._onWidgetEvent(e)}}class m_ extends l_{constructor(e){super(e),this.outline=e}_setDataHeight(e){e+=pr.size(this.outline.$searchPanel,!0).height,super._setDataHeight(e)}}class __ extends ul{constructor(){super(),this.node=null,this.outline=null,this.actionStyle=vo.ActionStyle.BUTTON,this._addCloneProperties(["node","outline","altKeyStrokeContext"]),this.inheritAccessibility=!1}_render(){this.overflow?(this.text=this.session.text(this._defaultText),this.iconId=null):(this.text=null,this.iconId=this._defaultIconId),this.updateEnabled(),super._render(),this.$container.addClass("navigate-button small"),this.altKeyStrokeContext.registerKeyStroke(this)}_remove(){super._remove(),this.altKeyStrokeContext.unregisterKeyStroke(this)}_setDetailVisible(){let e=this._toggleDetail();n().log.isDebugEnabled()&&n().log.debug("show detail-"+(e?"form":"table")),this.outline.setDetailFormVisibleByUi(this.node,e)}_doAction(){super._doAction(),this._isDetail()?this._setDetailVisible():this._drill()}updateEnabled(){this.setEnabled(this._buttonEnabled())}}class f_ extends __{constructor(){super(),this._defaultIconId=Ct.ANGLE_DOWN,this._defaultText="ui.Continue",this.iconId=this._defaultIconId,this.keyStroke="enter",this._detailTableRowsSelectedHandler=this._onDetailTableRowsSelected.bind(this),this._outlinePageRowLinkHandler=this._onOutlinePageRowLink.bind(this)}_init(e){super._init(e),this.node.detailTable&&this.node.detailTable.on("rowsSelected",this._detailTableRowsSelectedHandler),this.outline.on("pageRowLink",this._outlinePageRowLinkHandler)}_destroy(){this.node.detailTable&&this.node.detailTable.off("rowsSelected",this._detailTableRowsSelectedHandler),this.outline.off("pageRowLink",this._outlinePageRowLinkHandler),super._destroy()}_render(){super._render(),this.$container.addClass("down")}_isDetail(){return!!(this.node.detailFormVisible&&this.node.detailForm&&this.node.detailTableVisible&&this.node.detailTable&&this.node.detailFormVisibleByUi)}_toggleDetail(){return!1}_buttonEnabled(){if(this._isDetail())return!0;if(this.node.leaf)return!1;let e=this.node.detailTable;return!e||1===e.selectedRows.length&&!!e.selectedRows[0].page}_drill(){let e;if(this.node.detailTable){let t=this.node.detailTable.selectedRow();e=this.node.pageForTableRow(t)}else e=this.node.childNodes[0];if(e){n().log.isDebugEnabled()&&n().log.debug("drill down to node "+e);let t=e.parentNode;t&&t.childNodes.forEach((t=>{t.expanded&&t!==e&&this.outline.collapseNode(t,{animateExpansion:!1})})),this.outline.selectNodes(e),t&&t.nodeType===Xm.NodeType.TABLE&&this.outline.expandNode(e)}}_onDetailTableRowsSelected(e){this.updateEnabled()}_onOutlinePageRowLink(e){let t=this.node.detailTable;t&&1===t.selectedRows.length&&t.selectedRows[0].page===e.page&&this.updateEnabled()}}class b_ extends __{constructor(){super(),this._defaultIconId=Ct.ANGLE_UP,this._defaultText="ui.Up",this.iconId=this._defaultIconId,this.keyStroke="backspace"}_render(){super._render(),this.$container.addClass("up")}_isDetail(){return!(!(this.node.detailFormVisible&&this.node.detailForm&&this.node.detailTableVisible&&this.node.detailTable)||this.node.detailFormVisibleByUi)}_toggleDetail(){return!0}_buttonEnabled(){return!!this.node.parentNode||!!this.outline.defaultDetailForm||!!this.outline.outlineOverview}_drill(){let e=this.node.parentNode;e?(n().log.isDebugEnabled()&&n().log.debug("drill up to node "+e),this.outline.navigateUpInProgress=!0,this.outline.selectNodes(e),this.outline.collapseNode(e,{collapseChildNodes:!0})):(n().log.isDebugEnabled()&&n().log.debug("drill up to top"),this.outline.navigateToTop())}}class y_ extends Zr{constructor(e){super(),this._outline=e}accept(e){return!this._outline.inBackground&&!this.isFormMenuOpen()&&super.accept(e)}isFormMenuOpen(){return this._outline.session.desktop.menus.some((e=>e.popup&&e.popup.$container&&e.popup.$container.isAttached()),this)}}class w_ extends kd{constructor(e,t){super(e,t),this.which=[Kr.HOME],this.renderingHints.hAlign=ns.RIGHT,this.renderingHints.$drawingArea=function(e,t){return this.field.$title||this.field.$data}.bind(this)}handle(e){this.field.navigateToTop()}}class C_ extends Y{constructor(){super(),this.outline=null}_init(e){super._init(e),!this.outline&&this.parent instanceof r_&&(this.outline=this.parent),x.assertProperty(this,"outline",r_)}_render(){this.$container=this.$parent.appendDiv("outline-overview"),this.htmlComp=fr.install(this.$container,this.session),this.$content=this.$container.appendDiv("outline-overview-content"),this.$content.appendDiv("outline-overview-icon").icon(this.outline.iconId),this.$content.appendDiv("outline-overview-title").text(this.outline.title)}_attach(){this.$parent.append(this.$container);let e=this.htmlComp.getParent();this.htmlComp.setSize(e.size()),super._attach()}_detach(){this.$container.detach(),super._detach()}}class v_ extends C_{constructor(){super(),this.pageTileGrid=null,this.scrollable=!0,this.titleVisible=!0,this._addWidgetProperties(["pageTileGrid"]),this._desktopNavigationVisibilityChangeHandler=this._onDesktopNavigationVisibilityChange.bind(this)}_init(e){super._init(e),this.pageTileGrid||(this.pageTileGrid=this._createPageTileGrid()),this.scrollable=!this.outline.compact,this.addCssClass("dimmed-background")}_render(){this.$container=this.$parent.appendDiv("tile-overview"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new Br({stretch:this.outline.compact})),this.$content=this.$container.appendDiv("tile-overview-content"),this.contentHtmlComp=fr.install(this.$content,this.session),this.contentHtmlComp.setLayout(new Br({stretch:this.outline.compact})),this.$title=this.$content.appendDiv("tile-overview-title").text(this.outline.title),fr.install(this.$title,this.session),this.$title.cssMaxHeight(this.$title.cssHeight()),this._updateTitle(!1),this.findDesktop().on("propertyChange:navigationVisible",this._desktopNavigationVisibilityChangeHandler)}_remove(){super._remove(),this.findDesktop().off("propertyChange:navigationVisible",this._desktopNavigationVisibilityChangeHandler)}_renderProperties(){super._renderProperties(),this._renderPageTileGrid(),this._renderScrollable()}_renderPageTileGrid(){this.pageTileGrid.render(this.$content)}_createPageTileGrid(){let e,t;return this.outline.compact&&(e=this.outline.compactRootNode(),e&&(t=e.childNodes)),x.create("PageTileGrid",{parent:this,outline:this.outline,compact:this.outline.compact,page:e,nodes:t})}setScrollable(e){this.setProperty("scrollable",e)}_renderScrollable(){this.scrollable?this._installScrollbars({axis:"y"}):this._uninstallScrollbars()}_updateTitle(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.$title&&(this.$title.toggleClass("animated",e),this.$title.toggleClass("removed",this.findDesktop().navigationVisible))}_onDesktopNavigationVisibilityChange(e){this._updateTitle()}}class T_ extends wu{constructor(e){super(e),this.desktop=e.displayParent,this._popupWindows=[],this._documentPopupWindowReadyHandler=this._onDocumentPopupWindowReady.bind(this),n()(document).on("popupWindowReady",this._documentPopupWindowReadyHandler)}render(){super.render();let e=this.desktop.activeForm;e?e.activate():this.desktop.bringOutlineToFront()}_renderViews(){super._renderViews(),this.desktop.selectedViewTabs&&this.desktop.selectedViewTabs.forEach((e=>{this._activateView(e)})),this.desktop.bench&&this.desktop.bench.postRender()}isFormShown(e){return e.isPopupWindow()?this._popupWindows.some((t=>t.form.id===e.id)):super.isFormShown(e)}_renderPopupWindow(e){let t,i,s=e.readCacheBounds();if(s)t="left="+s.x+",top="+s.y+",width="+s.width+",height="+s.height,i=!1;else{let e=n()(document),s=new sr(e.width(),e.height());t="left=0,top=0,width="+s.width+",height="+s.height,i=!0}t+=",location=no,toolbar=no,menubar=no,resizable=yes";let r=x.create("PopupBlockerHandler",{session:this.session,preserveOpener:!0}),o="popup-window.html?formId="+e.id;r.openWindow(o,"_blank",t,(t=>{this._addPopupWindow(t,e,i)}))}_addPopupWindow(e,t,i){let s=new fm(e,t);s.resizeToPrefSize=i,s.events.on("popupWindowUnload",this._onPopupWindowUnload.bind(this)),this._popupWindows.push(s),n().log.isDebugEnabled()&&n().log.debug("Opened new popup window for form ID "+t.id)}_onDocumentPopupWindowReady(e,t){let i;if(n().log.isDebugEnabled()&&n().log.debug("(FormController#_onDocumentPopupWindowReady) data="+t),t.formId){let e,s=t.formId;for(n().log.isDebugEnabled()&&n().log.debug("Popup window for form ID "+s+" has been reloaded"),e=0;e<this._popupWindows.length&&(i=this._popupWindows[e],i.form.id!==s);e++);if(!i)throw new Error("Couldn't find popupWindow reference while popup window was reloaded")}else{if(!t.popupWindow)throw new Error("Neither property 'formId' nor 'popupWindow' exists on data parameter");i=t.popupWindow}i._onReady()}_onPopupWindowUnload(e){let t=e.form;n().log.isDebugEnabled()&&n().log.debug("Popup window for form ID "+t.id+" is unloaded - don't know if its closed or reloaded yet"),t.remove(),setTimeout((()=>{e.isClosed()&&(n().log.isDebugEnabled()&&n().log.debug("Popup window for form ID "+t.id+" has been closed"),t.close())}),250)}closePopupWindows(){this._popupWindows.forEach((function(e){this._removePopupWindow(e.form)}),this),this._popupWindows=[]}_removePopupWindow(e){let t=e.popupWindow;if(!t)throw new Error("Form has no popupWindow reference");delete e.popupWindow,me.remove(this._popupWindows,t),e.rendered&&(e.remove(),t.close())}dispose(){n()(document).off("popupWindowReady",this._documentPopupWindowReadyHandler)}}class S_ extends ac{constructor(){super(),this.gridColumnCount=1,this.cssClass="filter-fields"}_init(e){super._init(e),this.filter.addFilterFields(this)}_renderProperties(e){super._renderProperties(e),this.filter.modifyFilterFields()}addFilterField(e,t){let i=x.create(e,{parent:this,label:this.session.text(t),statusVisible:!1,labelWidthInPixel:50,maxLength:100,updateDisplayTextOnModify:!0});return this.addField0(i),i}addField0(e){this.fields.push(e),this._prepareFields()}}function x_(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class P_{constructor(e){x.assertParameter("model",e),x.assertParameter("$container",e.$container),this.$container=e.$container,this.$window=e.$container.window(),this.setModes(e.modes),this.setBoundaries(e.boundaries),this.$resizableS=null,this.$resizableE=null,this.$resizableSE=null,this.$resizableW=null,this.$resizableSW=null,this.$resizableN=null,this.$resizableNW=null,this.$resizableNE=null,this._context=null,this._mouseDownHandler=this._onMouseDown.bind(this),this._mouseUpHandler=this._onMouseUp.bind(this),this._mousemoveHandler=this._onMousemove.bind(this),this._resizeHandler=this._resize.bind(this)}setModes(e){let t=e||[P_.MODES.SOUTH,P_.MODES.EAST,P_.MODES.WEST,P_.MODES.NORTH];me.equals(t,this.modes)||(this.modes=t,this._calculateResizeHandlersVisibility())}setBoundaries(e){this.boundaries=n().extend(new rr,e),this._boundaryValueSet(this.boundaries.left)&&(this.boundaries.left-=this.$container.cssMarginLeft()),this._boundaryValueSet(this.boundaries.right)&&(this.boundaries.right-=this.$container.cssMarginRight()),this._boundaryValueSet(this.boundaries.top)&&(this.boundaries.top-=this.$container.cssMarginTop()),this._boundaryValueSet(this.boundaries.bottom)&&(this.boundaries.bottom-=this.$container.cssMarginBottom())}_appendResizeHandles(){this.$resizableS=this.$container.appendDiv("resizable-handle resizable-s").data("edge","s").on("mousedown.resizable",this._mouseDownHandler),this.$resizableE=this.$container.appendDiv("resizable-handle resizable-e").data("edge","e").on("mousedown.resizable",this._mouseDownHandler),this.$resizableSE=this.$container.appendDiv("resizable-handle resizable-se").data("edge","se").on("mousedown.resizable",this._mouseDownHandler),this.$resizableW=this.$container.appendDiv("resizable-handle resizable-w").data("edge","w").on("mousedown.resizable",this._mouseDownHandler),this.$resizableSW=this.$container.appendDiv("resizable-handle resizable-sw").data("edge","sw").on("mousedown.resizable",this._mouseDownHandler),this.$resizableN=this.$container.appendDiv("resizable-handle resizable-n").data("edge","n").on("mousedown.resizable",this._mouseDownHandler),this.$resizableNW=this.$container.appendDiv("resizable-handle resizable-nw").data("edge","nw").on("mousedown.resizable",this._mouseDownHandler),this.$resizableNE=this.$container.appendDiv("resizable-handle resizable-ne").data("edge","ne").on("mousedown.resizable",this._mouseDownHandler),this._calculateResizeHandlersVisibility()}_calculateResizeHandlersVisibility(){this.$resizableS&&this.$resizableS.setVisible(this._hasMode(P_.MODES.SOUTH)),this.$resizableE&&this.$resizableE.setVisible(this._hasMode(P_.MODES.EAST)),this.$resizableSE&&this.$resizableSE.setVisible(this._hasMode(P_.MODES.SOUTH)&&this._hasMode(P_.MODES.EAST)),this.$resizableW&&this.$resizableW.setVisible(this._hasMode(P_.MODES.WEST)),this.$resizableSW&&this.$resizableSW.setVisible(this._hasMode(P_.MODES.SOUTH)&&this._hasMode(P_.MODES.WEST)),this.$resizableN&&this.$resizableN.setVisible(this._hasMode(P_.MODES.NORTH)),this.$resizableNW&&this.$resizableNW.setVisible(this._hasMode(P_.MODES.NORTH)&&this._hasMode(P_.MODES.WEST)),this.$resizableNE&&this.$resizableNE.setVisible(this._hasMode(P_.MODES.NORTH)&&this._hasMode(P_.MODES.EAST))}_hasMode(e){return this.modes.some((t=>t===e))}init(){this.$container.addClass("resizable"),this._appendResizeHandles(),this._installRemoveHandler()}_installRemoveHandler(){this.$container.on("remove",this.destroy.bind(this))}destroy(){this.$resizableS&&(this.$resizableS.remove(),this.$resizableS=null),this.$resizableE&&(this.$resizableE.remove(),this.$resizableE=null),this.$resizableSE&&(this.$resizableSE.remove(),this.$resizableSE=null),this.$resizableW&&(this.$resizableW.remove(),this.$resizableW=null),this.$resizableSW&&(this.$resizableSW.remove(),this.$resizableSW=null),this.$resizableN&&(this.$resizableN.remove(),this.$resizableN=null),this.$resizableNW&&(this.$resizableNW.remove(),this.$resizableNW=null),this.$resizableNE&&(this.$resizableNE.remove(),this.$resizableNE=null),this.$container&&this.$container.removeClass("resizable"),this.$window.off("mouseup.resizable",this._mouseUpHandler).off("mousemove.resizable",this._mousemoveHandler)}_onMouseDown(e){let t=this.$container,i=t.window(),s=n()(e.target),r=t.cssMinWidth(),o=t.cssMinHeight(),l=t.cssMaxWidth(),a=t.cssMaxHeight(),h=pr.bounds(t,{exact:!0});this._context={initialBounds:h,minBounds:new or(h.right()-r,h.bottom()-o,r,o),maxBounds:new or(Math.max(-t.cssMarginLeft(),h.right()-l),Math.max(-t.cssMarginTop(),h.bottom()-a),Math.min(i.width()-t[0].offsetLeft,l),Math.min(i.height()-t[0].offsetTop,a)),distance:[0,0],edge:s.data("edge"),mousedownEvent:e},t.addClass("resizable-resizing"),this.$window.off("mouseup.resizable",this._mouseUpHandler).off("mousemove.resizable",this._mousemoveHandler).on("mouseup.resizable",this._mouseUpHandler).on("mousemove.resizable",this._mousemoveHandler),n()("iframe").addClass("dragging-in-progress")}_onMouseUp(e){this.$container.removeClass("resizable-resizing"),this.$window.off("mouseup.resizable",this._mouseUpHandler).off("mousemove.resizable",this._mousemoveHandler),n()("iframe").removeClass("dragging-in-progress"),this._context=null}_onMousemove(e){let t=this._context,i=t.initialBounds.clone(),s=this._calcDistance(t.mousedownEvent,e);x.isOneOf(t.edge,"ne","e","se")?i.width=Math.max(t.minBounds.width,Math.min(t.maxBounds.width,t.initialBounds.width+s[0])):x.isOneOf(t.edge,"nw","w","sw")&&(i.x=Math.min(t.minBounds.x,Math.max(t.maxBounds.x,t.initialBounds.x+s[0])),i.width+=t.initialBounds.x-i.x),x.isOneOf(t.edge,"sw","s","se")?i.height=Math.max(t.minBounds.height,Math.min(t.maxBounds.height,t.initialBounds.height+s[1])):x.isOneOf(t.edge,"nw","n","ne")&&(i.y=Math.min(t.minBounds.y,Math.max(t.maxBounds.y,t.initialBounds.y+s[1])),i.height+=t.initialBounds.y-i.y),n().throttle(this._resizeHandler,P_.FPS)(i)}_resize(e){this._cropToBoundaries(e),pr.setBounds(this.$container,e),this.$container.trigger("resize",{newBounds:e,initialBounds:this._context.initialBounds})}_cropToBoundaries(e){this._boundaryValueSet(this.boundaries.left)&&e.x>this.boundaries.left&&(e.width-=this.boundaries.left-e.x,e.x=this.boundaries.left),this._boundaryValueSet(this.boundaries.right)&&e.x+e.width<this.boundaries.right&&(e.width=this.boundaries.right-e.x),this._boundaryValueSet(this.boundaries.top)&&e.y>this.boundaries.top&&(e.height-=this.boundaries.top-e.y,e.y=this.boundaries.top),this._boundaryValueSet(this.boundaries.bottom)&&e.y+e.height<this.boundaries.bottom&&(e.height=this.boundaries.bottom-e.y)}_boundaryValueSet(e){return e>0}_calcDistance(e,t){return[t.pageX-e.pageX,t.pageY-e.pageY]}}x_(P_,"MODES",{SOUTH:"s",EAST:"e",WEST:"w",NORTH:"n"}),x_(P_,"FPS",1e3/15);class F_ extends Ta{constructor(){super(),this.unsavedForms=[]}_jsonModel(){return{id:"scout.UnsavedFormChangesForm",objectType:"Form",type:"model",title:"${textKey:SaveChangesOfSelectedItems}",askIfNeedSave:!1,rootGroupBox:{id:"MainBox",objectType:"GroupBox",menus:[{id:"OkMenu",objectType:"OkMenu"},{id:"CancelMenu",objectType:"CancelMenu"}],fields:[{id:"UnsavedChangesBox",objectType:"GroupBox",labelVisible:!1,gridColumnCount:1,fields:[{id:"OpenFormsField",objectType:"ListBox",gridDataHints:{h:5},labelVisible:!1}]}]}}}_init(e){super._init(e),this.openFormsField=this.widget("OpenFormsField"),this.openFormsField.setLookupCall(x.create("scout.UnsavedFormsLookupCall",{session:this.session,unsavedForms:this.unsavedForms})),this.openFormsField.table.one("rowsInserted",(e=>{e.source.checkAll(!0)}));let t=x.create("Menu",{parent:this.openFormsField.table,id:"CheckAllMenu",menuTypes:["Table.EmptySpace"],text:"${textKey:CheckAll}"});t.on("action",(e=>{this.openFormsField.table.checkAll(!0)}));let i=x.create("Menu",{parent:this.openFormsField.table,id:"UncheckAllMenu",menuTypes:["Table.EmptySpace"],text:"${textKey:UncheckAll}"});i.on("action",(e=>{this.openFormsField.table.uncheckAll()})),this.openFormsField.table.setMenus([t,i]),this.on("postLoad",(e=>{this.touch()}))}_validate(e){let t=this.getInvalidForms();if(t.length>0){let e=[];return e.push("<p><b>",this.session.text("NotAllCheckedFormsCanBeSaved"),"</b></p>"),e.push(this.session.text("FormsCannotBeSaved"),"<br><br>"),t.forEach((t=>{e.push("- ",F_.getFormDisplayName(t),"<br>")}),this),Ii.error({message:e.join("")})}return Ii.ok()}getInvalidForms(){let e=[];return this.openFormsField.value.forEach((t=>{let i=t.lifecycle._invalidElements().missingElements.slice(),s=t.lifecycle._invalidElements().invalidElements.slice();t.visitDisplayChildren((e=>{let t=e.lifecycle._invalidElements();me.pushAll(i,t.missingElements),me.pushAll(s,t.invalidElements)}),(e=>e instanceof Ta)),(i.length>0||s.length>0)&&e.push(t)})),e}static getFormDisplayName(e){return[e.title,e.name,e.subTitle].filter(Boolean).join(" - ")}}class E_ extends $s{constructor(){super(),this.unsavedForms=[]}_data(){return this.unsavedForms.map((e=>[e,F_.getFormDisplayName(e)]))}}class D_ extends ac{constructor(){super(),this.table=null,this.labelVisible=!1,this.statusVisible=!1,this.gridColumnCount=7,this.bodyLayoutConfig={hgap:8},this.groupByField=null,this.sortByField=null,this._tableGroupHandler=this._onTableGroup.bind(this),this._tableSortHandler=this._onTableSort.bind(this),this._destroyHandler=this._uninstallListeners.bind(this)}_installListeners(){this.table.on("group",this._tableGroupHandler),this.table.on("sort",this._tableSortHandler),this.table.one("destroy",this._destroyHandler)}_uninstallListeners(){this.table.off("group",this._tableGroupHandler),this.table.off("sort",this._tableSortHandler)}_init(e){super._init(e),this.table=this.parent,this._installListeners(),this.insertField(x.create("PlaceholderField",{id:"PlaceholderField",parent:this,gridDataHints:{w:5}})),this.groupByField=x.create("SmartField",{id:"GroupByField",parent:this,label:this.session.text("GroupBy"),labelPosition:iu.LabelPosition.ON_FIELD,clearable:du.Clearable.ALWAYS,statusVisible:!1,displayStyle:ep.DisplayStyle.DROPDOWN}),this.groupByField.setLookupCall(this._createGroupByLookupCall()),this.groupByField.setVisible(!me.empty(this.groupByField.lookupCall.data)),this.groupByField.on("propertyChange",this._onGroupingChange.bind(this)),this.insertField(this.groupByField),this.sortByField=x.create("SmartField",{id:"SortByField",parent:this,label:this.session.text("SortBy"),labelPosition:iu.LabelPosition.ON_FIELD,clearable:du.Clearable.ALWAYS,statusVisible:!1,displayStyle:ep.DisplayStyle.DROPDOWN}),this.sortByField.setLookupCall(this._createSortByLookupCall()),this.sortByField.setVisible(!me.empty(this.sortByField.lookupCall.data)),this.sortByField.on("propertyChange",this._onSortingChange.bind(this)),this.insertField(this.sortByField),this._syncSortingGroupingFields()}_findSortByLookupRowForKey(e){return this.sortByField.lookupCall.data.map((e=>e[0])).find((t=>t.column===e.column&&t.asc===e.asc),this)}_createGroupByLookupCall(){return x.create("TileTableHeaderGroupByLookupCall",{session:this.session,table:this.table})}_createSortByLookupCall(){return x.create("TileTableHeaderSortByLookupCall",{session:this.session,table:this.table})}_onGroupingChange(e){if(this.table.tileMode&&"value"===e.propertyName){let t;if(this.isGrouping=!0,null!==e.newValue){t=e.newValue;let i=t.sortIndex>=0&&!t.sortAscending?"desc":"asc";this.table.groupColumn(t,!1,i,!1)}else t=e.oldValue,this.table.groupColumn(t,!1,null,!0);this.isGrouping=!1}}_onSortingChange(e){if(this.table.tileMode&&"value"===e.propertyName){let t,i;this.isSorting=!0,null!==e.newValue?(i=e.newValue.column,t=e.newValue.column,this.table.sort(e.newValue.column,e.newValue.asc?"asc":"desc",!1,!1)):this.table.sort(e.oldValue,null,!1,!0),this.isSorting=!1}}_syncSortingGroupingFields(){let e=me.find(this.table.visibleColumns(),(e=>e.grouped&&0===e.sortIndex));e?this.groupByField.setValue(e):this.groupByField.setValue(null);let t=me.find(this.table.visibleColumns(),(e=>e.sortActive&&0===e.sortIndex));t?this.sortByField.setValue(this._findSortByLookupRowForKey({column:t,asc:t.sortAscending})):this.sortByField.setValue(null)}_onTableGroup(e){this.isGrouping||this._syncSortingGroupingFields()}_onTableSort(e){this.isSorting||this._syncSortingGroupingFields()}}class A_ extends E{constructor(){super()}init(e){return super.init(e)}_prepareEssentials(e){H.get().init()}_doBootstrap(e){return[]}_init(e){(e=e||{}).texts=n().extend({},mo.readFromDOM(),e.texts),this._prepareDOM(),x.create("LoginBox",e).render(n()("body").addClass("login-body"))}}class $_ extends Po{constructor(){super(),this.ajaxOptions={type:"POST"},this.authUrl="auth",this.onPostDoneFunc=this.redirect.bind(this),this.redirectUrl=null,this.logoUrl="logo.png",this.userDataKey="user",this.passwordDataKey="password",this.additionalData={},this.prepareRedirectUrlFunc=$_.prepareRedirectUrl,this.messageKey=null,this.texts={"ui.Login":"Login","ui.LoginFailed":"Login failed","ui.User":"Username","ui.Password":"Password"}}init(e){(e=e||{}).texts=new io(n().extend(this.texts,e.texts)),e.ajaxOptions=n().extend(this.ajaxOptions,e.ajaxOptions),n().extend(this,e)}_render(){super._render(),this.$container.addClass("login-box"),this.$content.addClass("login-box-content "),this.$form=n()("<form>").attr("action",this.authUrl).attr("method","post").submit(this._onLoginFormSubmit.bind(this)).appendTo(this.$content),this.messageKey&&(this.$message=n()("<div>").attr("id","message-box").addClass("message-box").html(qt.nl2br(this.texts.get(this.messageKey))).appendTo(this.$form)),this.$user=n()("<input>").attr("type","text").attr("autocapitalize","off").attr("autocorrect","off").placeholder(this.texts.get("ui.User")).appendTo(this.$form),this.$password=n()("<input>").attr("type","password").placeholder(this.texts.get("ui.Password")).appendTo(this.$form),this.$button=n()("<button>").attr("type","submit").addClass("login-button button default").text(this.texts.get("ui.Login")).appendTo(this.$form),this.$user.focus()}_resetButtonText(){this.$button.text(this.texts.get("ui.Login")).removeClass("login-error")}data(){let e={};return e[this.userDataKey]=this.$user.val(),e[this.passwordDataKey]=this.$password.val(),n().extend(e,this.additionalData),e}_onLoginFormSubmit(e){e.preventDefault();let t=this.$form.attr("action"),i=this.data();this.$button.removeClass("login-error").setEnabled(!1),this.$user.off("input.resetLoginError"),this.$password.off("input.resetLoginError"),Qe.get().supportsCssAnimation()&&this.$button.html("").append(n()("<div>").addClass("login-button-loading"));let s=n().extend({},this.ajaxOptions,{url:t,data:i});n().ajax(s).done(this._onPostDone.bind(this)).fail(this._onPostFail.bind(this))}redirect(e){this.$backgroundElements.addClass("box-background-elements-fadeout"),Qe.get().supportsCssAnimation()?this.$backgroundElements.oneAnimationEnd((()=>{this._redirect(e)})):this._redirect(e)}_redirect(e){let t=this.redirectUrl;t||(t=(window.location.href||"").trim(),t=this.prepareRedirectUrlFunc(t)),t?window.location.href=t:window.location.reload()}_onPostDone(e){this.remove(),this.onPostDoneFunc.call(this,e)}_onPostFail(e,t,i){setTimeout(this._onPostFailImpl.bind(this,e,t,i),300)}_onPostFailImpl(e,t,i){this.$button.setEnabled(!0).html("").text(this.texts.get("ui.LoginFailed")).addClass("login-error"),this.$user.val("").focus(),this.$password.val(""),this.$user.one("input.resetLoginError",this._resetButtonText.bind(this)),this.$password.one("input.resetLoginError",this._resetButtonText.bind(this))}static prepareRedirectUrl(e){let t=/^([^?#]*)(\?[^#]*)?(#.*)?$/.exec(e||"");return t[1].replace(/login.html$/,"").replace(/login$/,"").replace(/logout$/,"")+(t[2]?t[2]:"")+(t[3]?t[3]:"")}}class R_ extends E{constructor(){super()}init(e){return super.init(e)}_prepareEssentials(e){H.get().init()}_doBootstrap(e){return[]}_init(e){(e=e||{}).texts=n().extend({},mo.readFromDOM(),e.texts),this._prepareDOM(),x.create("LogoutBox",e).render(n()("body").addClass("logout-body"))}}class M_ extends Po{constructor(){super()}init(e){let t={loginUrl:gs.getItemFromSessionStorage("scout:loginUrl")||"./",logoUrl:"logo.png"};this.options=n().extend({},t,e);this.options.texts=n().extend({},{"ui.LogoutSuccessful":"Good bye!","ui.LoginAgain":"Login again"},e.texts),this.texts=new io(this.options.texts),this.loginUrl=this.options.loginUrl,this.logoUrl=this.options.logoUrl}_render(){super._render(),this.$content.addClass("small centered").appendDiv().html(qt.nl2br(this.texts.get("ui.LogoutSuccessful"))),this.$buttonBar=n()("<div>").addClass("button-bar").appendTo(this.$content),n()("<button>").addClass("button").text(this.texts.get("ui.LoginAgain")).on("click",this._loginAgain.bind(this)).appendTo(this.$buttonBar)}_loginAgain(){window.location=this.loginUrl}}class k_ extends vo{constructor(){super(),this.ref=null}_render(){super._render(),this.$container.addClass("breadcrumb-item")}_renderText(){const e=this.text||"";e&&this.textVisible?(this.$text||(this.$text=this.$container.appendSpan("content text"),fr.install(this.$text,this.session)),this.$text.text(e)):this._removeText()}}class I_ extends To{constructor(){super()}}class L_ extends Y{constructor(){super(),this.breadcrumbItems=[],this._ellipsisBreadcrumbItem=null,this._addWidgetProperties(["breadcrumbItems"])}_init(e){super._init(e),this._setBreadcrumbItems(this.breadcrumbItems)}_render(){this.$container=this.$parent.appendDiv("breadcrumb-bar"),this.htmlComp=fr.install(this.$container,this.session),this.htmlComp.setLayout(new B_(this))}_renderProperties(){super._renderProperties(),this._renderBreadcrumbItems()}setBreadcrumbItems(e){this.setProperty("breadcrumbItems",e)}_setBreadcrumbItems(e){this._setProperty("breadcrumbItems",me.ensure(e))}_renderBreadcrumbItems(){this.breadcrumbItems.forEach(((e,t)=>{1===t&&this._renderEllipsis(),e.render()}),this),this._updateMarkers(),this.htmlComp.invalidateLayoutTree()}_renderEllipsis(){this._ellipsisBreadcrumbItem&&this._ellipsisBreadcrumbItem.destroy(),this.breadcrumbItems.length<=2||(this._ellipsisBreadcrumbItem=x.create("BreadcrumbItem",{parent:this,text:"...",enabled:!1}),this._ellipsisBreadcrumbItem.render())}_updateMarkers(){const e=[];this.breadcrumbItems.forEach((t=>{t.rendered&&(t.$container.removeClass("first last"),t.isVisible()&&e.push(t))})),e.length&&(e[0].$container.addClass("first"),e[e.length-1].$container.addClass("last"))}}class B_ extends _r{constructor(e){super(),this._breadcrumbBar=e}layout(e){this._undoCollapse(this._breadcrumbBar.breadcrumbItems);const t=this._visibleBreadcrumbItems(),i=this._breadcrumbBar.htmlComp.size();this._actualPrefSize(t,!1).width<=i.width?this._applyToEllipsis((e=>{e.setVisible(!1)})):(this._applyToEllipsis((e=>{e.setVisible(!0)})),this._collapse(t,i))}_collapse(e,t){const i=this._visibleBreadcrumbItems();let s=this._actualPrefSize(i,!0);for(;s.width>t.width&&1<i.length-1;){const e=i[1];e.$container.hide(),e._layHidden=!0,i.splice(1,1),s=this._actualPrefSize(i,!0)}}_applyToEllipsis(e){this._breadcrumbBar._ellipsisBreadcrumbItem&&e(this._breadcrumbBar._ellipsisBreadcrumbItem)}_undoCollapse(){me.ensure(this._breadcrumbBar.breadcrumbItems).forEach((e=>{e.$container.show(),e._layHidden=!1}))}preferredLayoutSize(e){const t=this._visibleBreadcrumbItems();return this._undoCollapse(t),this._actualPrefSize()}_breadcrumbSize(e){const t=e.$container.attr("class");e.$container.removeClass("hidden"),e.htmlComp.invalidateLayout();const i=e.htmlComp.prefSize({useCssSize:!0,exact:!0}).add(pr.margins(e.$container));return e.$container.attrOrRemove("class",t),i}_visibleBreadcrumbItems(){return this._breadcrumbBar.breadcrumbItems.filter((e=>e.visible),this)}_actualPrefSize(e,t){e=e||this._visibleBreadcrumbItems();const i=this._breadcrumbItemsWidth(e,t),s=pr.prefSize(this._breadcrumbBar.$container,{includeMargin:!0,useCssSize:!0});return s.width=i+this._breadcrumbBar.htmlComp.insets().horizontal(),s}_breadcrumbItemsWidth(e,t){let i=0;return(e=e||this._visibleBreadcrumbItems()).forEach((e=>{e.rendered&&(i+=e.$container.outerWidth(!0))}),this),t&&this._breadcrumbBar._ellipsisBreadcrumbItem&&this._breadcrumbBar._ellipsisBreadcrumbItem.rendered&&(i+=this._breadcrumbBar._ellipsisBreadcrumbItem.$container.outerWidth(!0)),i}}class O_ extends j{constructor(){super()}}class N_ extends iu{constructor(){super(),this.breadcrumbBar=null,this._addWidgetProperties(["breadcrumbBar"])}_render(){this.addContainer(this.$parent,"breadcrumb-bar-field"),this.addLabel(),this.addMandatoryIndicator(),this.addStatus(),this._renderBreadcrumbBar()}setBreadcrumbItems(e){this.breadcrumbBar&&this.breadcrumbBar.setBreadcrumbItems(e)}setBreadcrumbBar(e){this.setProperty("breadcrumbBar",e)}_renderBreadcrumbBar(){this.breadcrumbBar&&(this.breadcrumbBar.render(),this.addField(this.breadcrumbBar.$container),this.invalidateLayoutTree())}_removeBreadcrumbBar(){this.breadcrumbBar&&(this.breadcrumbBar.remove(),this._removeField(),this.invalidateLayoutTree())}}class H_ extends su{constructor(){super()}}function V_(e){let t=[];return e.forEach((e=>{"margin"===e||"padding"===e?(t.push(e+"-top"),t.push(e+"-right"),t.push(e+"-bottom"),t.push(e+"-left")):"border"===e?(t.push("border-top-style"),t.push("border-right-style"),t.push("border-bottom-style"),t.push("border-left-style"),t.push("border-top-color"),t.push("border-right-color"),t.push("border-bottom-color"),t.push("border-left-color"),t.push("border-top-width"),t.push("border-right-width"),t.push("border-bottom-width"),t.push("border-left-width")):t.push(e)})),t}function W_(e){return Ai.isNumber(e)?Math.ceil(e):e}x.addObjectFactories({KeyStroke:()=>new vo,KeyStrokeAdapter:()=>new To,ComposerField:()=>new ag,ComposerFieldAdapter:()=>new hg});const z_=n().cleanData;n().cleanData=e=>{let t,i,s;for(s=0;i=e[s];s++)try{t=n()._data(i,"events"),t&&t.remove&&n()(i).triggerHandler("remove")}catch(e){}z_(e)},n().removeThis=function(){n()(this).remove()},n().suppressEvent=e=>{e&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation())},n().suppressEventIfDisabled=(e,t)=>!(t=t||n()(e.target)).isEnabled()&&(n().suppressEvent(e),!0),n().debounce=(e,t)=>{"number"==typeof t&&(t={delay:t}),t=n().extend({delay:250,reschedule:!0},t);let i=null,s=function(){for(var s=arguments.length,r=new Array(s),n=0;n<s;n++)r[n]=arguments[n];let o=this;i&&!t.reschedule||(i&&clearTimeout(i),i=setTimeout((()=>{i=null,e.apply(o,r)}),t.delay))};return s.cancel=()=>!!i&&(clearTimeout(i),i=null,!0),s},n().throttle=(e,t)=>{t=void 0!==t?t:250;let i,s=null;return function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];let l=this,a=(new Date).getTime(),h=()=>{i=a,e.apply(l,n)};i&&i+t>a?(clearTimeout(s),s=setTimeout((()=>{h()}),t)):h()}},n().negate=e=>function(){for(var t=arguments.length,i=new Array(t),s=0;s<t;s++)i[s]=arguments[s];return!e.apply(this,i)},n().colorOpacity=(e,t)=>{(e=String(e).replace(/[^0-9a-f]/gi,"")).length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),t=t||0;let i="#";for(let s=0;s<3;s++){let r=parseInt(e.substr(2*s,2),16);r=Math.round(Math.min(Math.max(0,255-(255-r)*t),255)).toString(16),i+=("00"+r).substr(r.length)}return i},n().injectScript=(e,t)=>{t=t||{};let i=n().Deferred(),s=t.document||window.document,r=s.createElement("script");return n()(r).attr("src",e).attr("async",!0).on("load error",(e=>{t.removeTag&&s.head.removeChild(r),"error"===e.type?i.reject(n()(r)):i.resolve(n()(r))})),s.head.appendChild(r),i.promise()},n().injectStyleSheet=(e,t)=>{t=t||{};let i=n().Deferred(),s=t.document||window.document,r=s.createElement("link");return n()(r).attr("rel","stylesheet").attr("type","text/css").attr("href",e).on("load error",(e=>{"error"===e.type?i.reject(n()(r)):i.resolve(n()(r))})),s.head.appendChild(r),i.promise()},n().injectStyle=(e,t)=>{let i=(t=t||{}).document||window.document,s=i.createElement("style"),r=n()(s);return r.attr("type","text/css").html(e),i.head.appendChild(s),r},n().pxToNumber=e=>e?parseFloat(e):0,n().resolvedDeferred=function(){let e=n().Deferred();return e.resolve(...arguments),e},n().resolvedPromise=function(){let e=n().Deferred();return e.resolve(...arguments),e.promise()},n().rejectedPromise=function(){let e=n().Deferred();return e.reject(...arguments),e.promise()},n().promiseAll=(e,t)=>{t=x.nvl(t,!1),e=me.ensure(e);let i=n().Deferred();return n().when(...e).done((function(){for(var e=arguments.length,s=new Array(e),r=0;r<e;r++)s[r]=arguments[r];t?i.resolve(s):i.resolve(...s)})).fail((function(){i.reject(...arguments)})),i.promise()},n().ajaxJson=e=>n().ajax({url:e,dataType:"json",contentType:"application/json; charset=UTF-8"}).catch((function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t.push(this),n().rejectedPromise(...t)})),n().ensure=e=>e instanceof n()?e:n()(e),n().isJqXHR=e=>"object"==typeof e&&e.hasOwnProperty("readyState")&&e.hasOwnProperty("status")&&e.hasOwnProperty("statusText"),n().fn.nvl=function(e){return!this.length&&e instanceof n()?e:this},n().fn.makeElement=function(e,t,i){let s=this.document(!0);if(void 0===s||void 0===e)return new Error("missing arguments: document, element");let r=n()(e,s);return t&&r.addClass(t),i&&r.text(i),r},n().fn.makeDiv=function(e,t){return this.makeElement("<div>",e,t)},n().fn.makeSpan=function(e,t){return this.makeElement("<span>",e,t)},n().fn.document=function(e){let t=this.length?this[0]instanceof Document?this[0]:this[0].ownerDocument:null;return e?t:n()(t)},n().fn.window=function(e){let t=this.document(!0),i=t?t.defaultView:null;return e?i:n()(i)},n().fn.activeElement=function(e){let t=this.document(!0),i=t?t.activeElement:null;return e?i:n()(i)},n().fn.body=function(e){let t=n()("body",this.document(!0));return e?t[0]:t},n().fn.entryPoint=function(e){let t=this.closest(".scout");return e?t[0]:t},n().fn.windowSize=function(){let e=this.window();return new sr(e.width(),e.height())},n().fn.elementFromPoint=function(e,t,i){let s,r=n()(this),o=r.document(!0),l=[],a=0;if(o||(o=r[0]),!o)return n()();for(;s=n()(o.elementFromPoint(e,t)),0!==s.length&&s[0]!==o.documentElement&&(!r.isOrHas(s)||i&&!s.is(i));)if(l.push(s),s.addClass("invisible"),a++,a>1e3){n().log.warn("Infinite loop aborted",s),s=n()();break}return s[0]===o.documentElement&&r[0]!==o&&(s=n()()),l.forEach((e=>{e.removeClass("invisible")})),s},n().fn.prependDiv=function(e,t){return this.makeDiv(e,t).prependTo(this)},n().fn.appendDiv=function(e,t){return this.makeDiv(e,t).appendTo(this)},n().fn.prependElement=function(e,t,i){return this.makeElement(e,t,i).prependTo(this)},n().fn.appendElement=function(e,t,i){return this.makeElement(e,t,i).appendTo(this)},n().fn.afterDiv=function(e,t){return this.makeDiv(e,t).insertAfter(this)},n().fn.beforeDiv=function(e,t){return this.makeDiv(e,t).insertBefore(this)},n().fn.appendSpan=function(e,t){return this.makeSpan(e,t).appendTo(this)},n().fn.appendBr=function(e){return this.makeElement("<br>",e).appendTo(this)},n().fn.appendTextNode=function(e){return n()(this.document(!0).createTextNode(e)).appendTo(this)},n().fn.appendIcon=function(e,t){if(!e)return this.appendSpan(t).addClass("icon");let i;return i=e instanceof el?e:Ct.parseIconId(e),i.isFontIcon()?this.makeSpan(t,i.iconCharacter).addClass("icon").addClass(i.appendCssClass("font-icon")).appendTo(this):this.appendImg(i.iconUrl,t).addClass("icon image-icon")},n().fn.appendImg=function(e,t){let i=this.appendElement("<img>",t);return e&&i.attr("src",e),i},n().fn.makeSVG=function(e,t,i,s){let r=this.document(!0);if(void 0===r||void 0===e)return new Error("missing arguments: document, type");let o=n()(r.createElementNS("http://www.w3.org/2000/svg",e));return t&&o.attr("class",t),i&&o.text(i),void 0!==s&&o.attr("id",s),o},n().fn.appendSVG=function(e,t,i,s){return this.makeSVG(e,t,i,s).appendTo(this)},n().fn.attrXLINK=function(e,t){return 0===this.length?this:1===this.length?(this[0].setAttributeNS("http://www.w3.org/1999/xlink","xlink:"+e,t),this):this.each((function(){this.setAttributeNS("http://www.w3.org/1999/xlink","xlink:"+e,t)}))},n().fn.addDeviceClass=function(){return Qe.get().isIos()&&this.addClass("ios"),this},n().fn.selectOne=function(){return this.siblings().removeClass("selected"),this.addClass("selected"),this},n().fn.select=function(e){return this.toggleClass("selected",!!e)},n().fn.isSelected=function(){return this.hasClass("selected")},n().fn.setEnabled=function(e){return e=!!e,this.toggleClass("disabled",!e),this.is("button, input, select, textarea, optgroup, option, fieldset")&&this.toggleAttr("disabled",!e),this.trigger(e?"enable":"disable"),this},n().fn.isEnabled=function(){return!this.hasClass("disabled")},n().fn.setVisible=function(e){return!this.hasClass("hidden")===e||(e?(this.removeClass("hidden"),this.trigger("show")):(this.addClass("hidden"),this.trigger("hide"))),this},n().fn.isDisplayNone=function(){return"none"===this.css("display")},n().fn.setTabbable=function(e){return this.attr("tabIndex",e?0:null)},n().fn.setTabbableOrFocusable=function(e){return this.attr("tabIndex",e?0:-1)},n().fn.isTabbable=function(){return this.attr("tabIndex")>=0},n().fn.icon=function(e,t){let i,s=this.data("$icon");return e?(i=Ct.parseIconId(e),i.isFontIcon()?r.call(this,s,"<span>",t).addClass("icon").addClass(i.appendCssClass("font-icon")).text(i.iconCharacter):r.call(this,s,"<img>",t).attr("src",i.iconUrl).addClass("icon image-icon")):o.call(this,s),this;function r(e,t,i){return e&&!e.is(t.replace(/[<>]/g,""))&&(o.call(this,e),e=null),e||(e=n()(t),this.data("$icon",e),i?i.call(this,e):this.prepend(e)),e}function o(e){e&&e.remove(),this.removeData("$icon")}},n().fn.placeholder=function(e){return this.toggleAttr("placeholder",!!e,e)},n().fn.isVisible=function(){return!this.hasClass("hidden")&&function(e){if(!e||i(e.style))return!1;let t=(e instanceof Document?e:e.ownerDocument).defaultView;return!!t&&!i(t.getComputedStyle(e));function i(e){return"none"===e.display}}(this[0])},n().fn.isEveryParentVisible=function(){let e=!0;return this.parents().each((function(){if(!n()(this).isVisible())return e=!1,!1})),e},n().fn.isAttached=function(){return n().contains(this.document(!0).documentElement,this[0])},n().fn.scrollParent=function(){let e=this;for(;e.length>0;){if(e.data("scrollable"))return e;e=e.parent()}return n()()},n().fn.scrollParents=function(){let e=n()(),t=this;for(;t.length>0;)t.data("scrollable")&&e.push(t),t=t.parent();return e},n().fn.findUp=function(e,t){let i=n()(this);for(;i.length>0;){if(e(i))return i;if(t&&i[0]===t[0])return n()();i=i.parent()}return n()()},n().fn.animateAVCSD=function(e,t,i,s,r){let n={},o={};return n[e]=t,i&&(o.complete=i),s&&(o.step=s),r&&(o.duration=r),o.queue=!1,this.animate(n,o),this},n().fn.animateSVG=function(e,t,i,s,r){return this.each((function(){let o=parseFloat(n()(this).attr(e));if(r){let e=s;s=function(){e&&e.call(this),n()(this).removeAttr("tabindex")}}n()(this).animate({tabIndex:0},{step:function(i,s){this.setAttribute(e,o+(t-o)*s.pos)},duration:i,complete:s,queue:!1})}))},n().fn.addClassForAnimation=function(e,t){let i={classesToRemove:e};return t=n().extend({},i,t),this.addClass(e),this.oneAnimationEnd((e=>{this.removeClass(t.classesToRemove)})),this},n().fn.oneAnimationEnd=function(e){if(!e)return this;let t=i=>{i.target===this[0]&&(this.off("animationend webkitAnimationEnd",t),e(i))};return this.on("animationend webkitAnimationEnd",t)},n().fn.hasAnimationClass=function(){return/(^|\s)animate-/.test(this.attr("class"))},n().fn.cssWidthAnimated=function(e,t,i){return(i=i||{}).duration=x.nvl(i.duration,300),this.cssWidth(e),this.animate({width:t},i),this},n().fn.cssHeightAnimated=function(e,t,i){return(i=i||{}).duration=x.nvl(i.duration,300),this.cssHeight(e),this.animate({height:t},i),this},n().fn.cssLeftAnimated=function(e,t,i){return(i=i||{}).duration=x.nvl(i.duration,300),this.cssLeft(e),this.animate({left:t},i),this},n().fn.cssTopAnimated=function(e,t,i){return(i=i||{}).duration=x.nvl(i.duration,300),this.cssTop(e),this.animate({top:t},i),this},n().fn.cssAnimated=function(e,t,i){return(i=i||{}).duration=x.nvl(i.duration,300),this.css(e),this.animate(t,i),this},n().fn.widthToContent=function(e){let t=this.outerWidth(),i=this.css("width","auto").outerWidth();return this.cssWidthAnimated(t,i,e),this},n().fn.offsetTo=function(e){let t=e.offset(),i=this.offset();return{top:i.top-t.top,left:i.left-t.left}},n().fn.cssPxValue=function(e,t){return void 0===t?n().pxToNumber(this.css(e)):(null===t&&(t=""),"string"==typeof t?this.css(e,t):this.css(e,t+"px"))},n().fn.cssLeft=function(e){return this.cssPxValue("left",e)},n().fn.cssTop=function(e){return this.cssPxValue("top",e)},n().fn.cssPosition=function(e){return this.cssLeft(e.x).cssTop(e.y)},n().fn.cssBottom=function(e){return this.cssPxValue("bottom",e)},n().fn.cssRight=function(e){return this.cssPxValue("right",e)},n().fn.cssWidth=function(e){return this.cssPxValue("width",e)},n().fn.cssMinWidth=function(e){if(void 0===e){let e=this.css("min-width");return"auto"===e||-1!==e.indexOf("%")?0:n().pxToNumber(e)}return this.cssPxValue("min-width",e)},n().fn.cssMaxWidth=function(e){if(void 0===e){let e=this.css("max-width");return"none"===e||-1!==e.indexOf("%")?Number.MAX_VALUE:n().pxToNumber(e)}return this.cssPxValue("max-width",e)},n().fn.cssHeight=function(e){return this.cssPxValue("height",e)},n().fn.cssMinHeight=function(e){if(void 0===e){let e=this.css("min-height");return"auto"===e||-1!==e.indexOf("%")?0:n().pxToNumber(e)}return this.cssPxValue("min-height",e)},n().fn.cssMaxHeight=function(e){if(void 0===e){let e=this.css("max-height");return"none"===e||-1!==e.indexOf("%")?Number.MAX_VALUE:n().pxToNumber(e)}return this.cssPxValue("max-height",e)},n().fn.cssLineHeight=function(e){return this.cssPxValue("line-height",e)},n().fn.cssMarginLeft=function(e){return this.cssPxValue("margin-left",e)},n().fn.cssMarginBottom=function(e){return this.cssPxValue("margin-bottom",e)},n().fn.cssMarginRight=function(e){return this.cssPxValue("margin-right",e)},n().fn.cssMarginTop=function(e){return this.cssPxValue("margin-top",e)},n().fn.cssMarginX=function(e){return void 0===e?this.cssMarginLeft()+this.cssMarginRight():(this.cssMarginLeft(e),this.cssMarginRight(e),this)},n().fn.cssMarginY=function(e){return void 0===e?this.cssMarginTop()+this.cssMarginBottom():(this.cssMarginTop(e),this.cssMarginBottom(e),this)},n().fn.cssPaddingTop=function(e){return this.cssPxValue("padding-top",e)},n().fn.cssPaddingRight=function(e){return this.cssPxValue("padding-right",e)},n().fn.cssPaddingBottom=function(e){return this.cssPxValue("padding-bottom",e)},n().fn.cssPaddingLeft=function(e){return this.cssPxValue("padding-left",e)},n().fn.cssPaddingX=function(e){return void 0===e?this.cssPaddingLeft()+this.cssPaddingRight():(this.cssPaddingLeft(e),this.cssPaddingRight(e),this)},n().fn.cssPaddingY=function(e){return void 0===e?this.cssPaddingTop()+this.cssPaddingBottom():(this.cssPaddingTop(e),this.cssPaddingBottom(e),this)},n().fn.cssBorderBottomWidth=function(e){return this.cssPxValue("border-bottom-width",e)},n().fn.cssBorderLeftWidth=function(e){return this.cssPxValue("border-left-width",e)},n().fn.cssBorderRightWidth=function(e){return this.cssPxValue("border-right-width",e)},n().fn.cssBorderTopWidth=function(e){return this.cssPxValue("border-top-width",e)},n().fn.cssBorderWidthY=function(e){return void 0===e?this.cssBorderTopWidth()+this.cssBorderBottomWidth():(this.cssBorderTopWidth(e),this.cssBorderBottomWidth(e))},n().fn.cssBorderWidthX=function(e){return void 0===e?this.cssBorderLeftWidth()+this.cssBorderRightWidth():(this.cssBorderLeftWidth(e),this.cssBorderRightWidth(e))},n().fn.innerBottom=function(){return this.position().top+this.outerHeight(!0)-this.cssMarginBottom()-this.cssBorderBottomWidth()},n().fn.innerRight=function(){return this.position().left+this.outerWidth(!0)-this.cssMarginRight()-this.cssBorderRightWidth()},n().fn.copyCss=function(e,t){let i=t.split(" "),s=this;return i=V_(i),i.forEach((t=>{s.css(t,e.css(t))})),s},n().fn.copyCssIfGreater=function(e,t){let i=t.split(" "),s=this;return i=V_(i),i.forEach((t=>{let i=n().pxToNumber(e.css(t));i>n().pxToNumber(s.css(t))&&s.css(t,i+"px")})),s},n().fn.copyCssClasses=function(e,t){let i=t.split(" "),s=this;return i.forEach((t=>{e.hasClass(t)&&s.addClass(t)})),s},n().fn.disableSpellcheck=function(){return this.attr("spellcheck",!1)},n().fn.isOrHas=function(e){return e instanceof n()&&(e=e[0]),this[0]===e||this.has(e).length>0},n().fn.resizable=function(e){let t=n()(this),i=t.data("resizable");return i||(i=x.create("Resizable",n().extend(e,{$container:t})),t.data("resizable",i)),this},n().fn.unresizable=function(){let e=n()(this),t=e.data("resizable");return t&&(t.destroy(),e.removeData("resizable")),this},n().fn.draggable=function(e,t){let i=this;return(e=e||i).on("mousedown.draggable",(s=>{n()("iframe").addClass("dragging-in-progress");let r=i.offset(),o=s,l=e.width(),a=e.window().width(),h=e.window().height();e.parents().on("mousemove.dragging",(e=>{let s=r.top+(e.pageY-o.pageY),n=r.left+(e.pageX-o.pageX);n=Math.max(100-l,n),n=Math.min(a-100,n),s=Math.max(0,s),s=Math.min(h-100,s);let d={top:s,left:n};i.offset(d),t&&t(d)})).on("mouseup.dragging",(t=>{e.parents().off(".dragging"),n()("iframe").removeClass("dragging-in-progress")})),s.preventDefault()}))},n().fn.undraggable=function(e){return(e=e||this).off("mousedown.draggable")},n().fn.fadeOutAndRemove=function(e,t){return void 0===t&&"function"==typeof e&&(t=e,e=void 0),e=x.nvl(e,150),this.stop(!0).fadeOut(e,(function(){n()(this).remove(),t&&t.call(this)}))},n().fn.removeAnimated=function(e,t){void 0===t&&"function"==typeof e&&(t=e,e=void 0),this.isDisplayNone()?(this.remove(),t&&t.call(this)):Qe.get().supportsCssAnimation()?(this.addClass(e||"animate-remove"),this.oneAnimationEnd((function(){n()(this).remove(),t&&t.call(this)}))):this.fadeOutAndRemove(t)};const G_=n().fn.hide;n().fn.hide=function(){this.trigger("hide");for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return G_.apply(this,t)};const U_=n().fn.width;n().fn.width=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return W_(U_.apply(this,t))};const K_=n().fn.outerWidth;n().fn.outerWidth=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return W_(K_.apply(this,t))};const q_=n().fn.height;n().fn.height=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return W_(q_.apply(this,t))};let j_=n().fn.outerHeight;function Y_(e,t){let i=e.nodeName.toLowerCase();return(/input|select|textarea|button|object/.test(i)?!e.disabled:"a"===i&&e.href||t)&&function(e){return n().expr.filters.visible(e)&&!n()(e).parents().addBack().filter((function(){return"hidden"===n().css(this,"visibility")})).length}(e)}function X_(){return X_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(e[s]=i[s])}return e},X_.apply(this,arguments)}n().fn.outerHeight=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return W_(j_.apply(this,t))},n().fn.textOrNbsp=function(e,t){return this.contentOrNbsp(!1,e,t)},n().fn.htmlOrNbsp=function(e,t){return this.contentOrNbsp(!0,e,t)},n().fn.contentOrNbsp=function(e,t,i){let s=e?this.html:this.text;return qt.hasText(t)?(s.call(this,t),i&&this.removeClass(i)):(this.html(" "),i&&this.addClass(i)),this},n().fn.toggleAttr=function(e,t,i){return e?(void 0===i&&(i=e),this.each((function(){let s=n()(this);void 0===t&&(t=void 0===s.attr(e)),t?s.attr(e,i):s.removeAttr(e)}))):this},n().fn.backupSelection=function(){let e=this[0];return e&&e===this.activeElement(!0)?{selectionStart:e.selectionStart,selectionEnd:e.selectionEnd,selectionDirection:e.selectionDirection}:null},n().fn.restoreSelection=function(e){let t=this[0];return t&&t===this.activeElement(!0)&&e&&t.setSelectionRange(e.selectionStart,e.selectionEnd,e.selectionDirection),this},n().fn.attrOrRemove=function(e,t){return t?this.attr(e,t):this.removeAttr(e),this},n().fn.appendAppLink=function(e,t){return this.appendSpan().appLink(e,t)},n().fn.appLink=function(e,t){return t?"object"==typeof t&&t._onAppLinkAction&&(t=t._onAppLinkAction.bind(t)):t=function(e){let t=x.widget(this);t&&t._onAppLinkAction&&t._onAppLinkAction(e)}.bind(this),this.addClass("app-link").attr("tabindex","0").unfocusable().on("click",t),"string"==typeof e?this.attr("data-ref",e):this.text(e.name).attr("data-ref",e.ref),this},n().fn.unfocusable=function(){return this.addClass("unfocusable")},n().fn.selectAllText=function(){let e,t=this.document(!0),i=this.window(!0),s=this[0];return t&&t.body&&i&&s?(i.getSelection&&(e=t.createRange(),e.selectNodeContents(s),i.getSelection().removeAllRanges(),i.getSelection().addRange(e)),this):this},n().fn._getClientAndScrollWidthRounded=function(){let e=this[0];return Qe.get().isEdge()?{clientWidth:Math.ceil(e.getBoundingClientRect().width)-this.cssBorderWidthX(),scrollWidth:e.scrollWidth}:{clientWidth:e.clientWidth,scrollWidth:e.scrollWidth}},n().fn._getClientAndScrollWidthReliable=function(){let e=this._getClientAndScrollWidthRounded();if(!Qe.get().isScrollWidthIncludingPadding())return e;if(e.scrollWidth>e.clientWidth)return e;let t=this.cssPaddingRight(),i=this.attr("style");if(t>0&&(this.css({width:e.clientWidth-t,paddingRight:"0px"}),e=this._getClientAndScrollWidthRounded(),this.attrOrRemove("style",i),e.scrollWidth>e.clientWidth))return e;let s=this[0].getBoundingClientRect().width;this.css("width","auto"),this.css("max-width","none");let r=this[0].getBoundingClientRect().width;return this.attrOrRemove("style",i),{clientWidth:s,scrollWidth:r}},n().fn.isContentTruncated=function(){let e=this._getClientAndScrollWidthReliable();return e.scrollWidth>e.clientWidth},n().fn.onSingleOrDoubleClick=function(e,t,i){return this.each((function(){let i=this,s=0,r=x.nvl(r,300);n()(this).on("click",(n=>{s++,1===s&&setTimeout((()=>{1===s?e.call(i,n):t.call(i,n),s=0}),r)}))}))},n().fn.onPassive=function(e,t){let i=Ye.passiveOptions();return this[0].addEventListener(e,t,i),this},n().fn.offPassive=function(e,t){let i=Ye.passiveOptions();return this[0].removeEventListener(e,t,i),this},n().fn.appendTable=function(e){return this.appendElement("<table>",e)},n().fn.appendColgroup=function(e){return this.appendElement("<colgroup>",e)},n().fn.appendCol=function(e){return this.appendElement("<col>",e)},n().fn.appendTr=function(e){return this.appendElement("<tr>",e)},n().fn.appendTd=function(e,t){return this.appendElement("<td>",e,t)},n().fn.appendTh=function(e,t){return this.appendElement("<th>",e,t)},n().fn.appendUl=function(e){return this.appendElement("<ul>",e)},n().fn.appendLi=function(e,t){return this.appendElement("<li>",e,t)},n().extend(n().easing,{easeOutQuart:e=>1-Math.pow(1-e,4)}),n().ajaxTransport("+binary",((e,t,i)=>{if(window.FormData&&(e.dataType&&"binary"===e.dataType||e.data&&(window.ArrayBuffer&&e.data instanceof ArrayBuffer||window.Blob&&e.data instanceof Blob)))return{send:(t,i)=>{let s=new XMLHttpRequest,r=e.url,n=e.type,o=e.async||!0,l=e.responseType||"blob",a=e.data||null,h=e.username||null,d=e.password||null;s.addEventListener("load",(()=>{let t={};t[e.dataType]=s.response,i(s.status,s.statusText,t,s.getAllResponseHeaders())})),s.open(n,r,o,h,d);for(let e in t)s.setRequestHeader(e,t[e]);if(e.xhrFields)for(let t in e.xhrFields)s[t]=e.xhrFields[t];s.responseType=l,s.send(a)},abort:()=>{}}})),window.$!==n()&&(window.$=n()),n().extend(n().expr[":"],{focusable:e=>Y_(e,!isNaN(n().attr(e,"tabindex"))),tabbable:e=>{let t=n().attr(e,"tabindex"),i=isNaN(t);return(i||t>=0)&&Y_(e,!i)}});const J_=s;let Z_={...s,...i};window.scout=X_(window.scout||{},Z_)})();
|
|
2
|
-
//# sourceMappingURL=eclipse-scout-core-a56958ac9954d00cc62a.min.js.map
|