/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{substitute as e}from"../../../intl/substitute.js";import{css as t}from"../css.js";import{isCreateFeaturesWorkflow as o,isSplitFeatureWorkflow as i,isMergeFeaturesWorkflow as n,isUpdateFeatureWorkflow as s,isUpdateFeaturesWorkflow as a}from"../workflowUtils.js";import{loadFooterActionsComponents as l,FooterActions as r}from"./FooterActions.js";import c from"./MergeFeaturesList.js";import{loadNoticesComponents as u,Notices as p}from"./Notices.js";import{loadPanelContentComponents as m,PanelContentSection as d,PanelContentSectionGroup as f,PanelContent as g}from"./PanelContent.js";import k from"./PendingFeatureList.js";import{loadCalciteComponents as b}from"../../support/componentsUtils.js";import{tsx as w,tsxFragment as v}from"../../support/widget.js";import{classes as h}from"../../support/widgetUtils.js";const y=()=>Promise.all([b({"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar"),action:()=>import("@esri/calcite-components/dist/components/calcite-action")}),l(),u(),m()]);function F(e){const{editorViewModel:s,formWidget:a,headingLevel:l,messages:u,renderSketchToolbar:m}=e,{activeFeatureCount:b,activeLeafWorkflow:h,activeWorkflow:y,formViewModel:F}=s;if(!h||!y||!F)return null;const j=o(h)&&!h.data.selectedPendingFeature||i(h)&&!h.activeFeature,L=n(h),A=F.activeForm.inputs,S=o(h)&&A.every(e=>!e.visible),B=null!=s.formViewModel?.activeAssociationsInput,T=!j&&!S&&!B,V=S||o(h)&&!T&&!B,z=S?w(d,null,w(k,{headingLevel:l,key:"pending-feature-list",workflow:h})):w(v,null,w(p,{activeFeatureCount:b,messages:u,workflow:y}),L?w(d,{class:t.mergeFeaturesListSection,key:"panel-section-merge"},w(c,{headingLevel:l,key:"merge-features-list",workflow:h})):void 0,w(d,{key:"panel-content-section-main"},w(f,null,j?w(k,{headingLevel:l,key:"pending-feature-list",workflow:h}):a.render())));return w(v,null,T?C(h,e):void 0,V?m?.():void 0,w(g,{key:"attribute-panel-content"},z),w(r,{buttons:M(e)}))}function C(e,o){const i=[],n="3d"===o.editorViewModel.view?.type,{visibleElements:l}=o,r="s";if(l.zoomToButton&&o.editorViewModel.canZoomTo&&i.push(w("calcite-action",{alignment:"center",icon:"zoom-to-object",key:"zoom-to-button",scale:r,text:o.messages.zoomTo,title:o.messages.zoomTo,onclick:()=>o.editorViewModel.zoomTo()})),l.splitButton&&s(e)&&e.supportsSplitFeatureWorkflow&&!n&&o.onSplit){const{onSplit:e,messages:t}=o;i.push(w("calcite-action",{icon:"split-geometry",key:"split-button",scale:r,text:t.split,title:t.split,onclick:e}))}if(l.mergeButton&&a(e)&&e.supportsMergeFeaturesWorkflow&&!n&&o.onMerge){const{onMerge:e,messages:t}=o;i.push(w("calcite-action",{icon:"merge",key:"merge-button",scale:r,text:t.mergeFeatures,title:t.mergeFeatures,onclick:e}))}return i.length>0?w("calcite-action-bar",{class:h(t.sketchContainer,t.updateActionBar),"data-testid":"update-feature-panel-action-bar",expandDisabled:!0,layout:"horizontal",scale:r},i):void 0}function M({editorViewModel:t,formWidget:o,messages:i,messagesCommon:n,onDelete:s,onDeleteAssociation:a,onSave:l}){const{activeFeatureCount:r,activeLeafWorkflow:c,syncing:u}=t;if(!c)return[];const{page:p}=t;if("viewing-associated-features"===p||"viewing-associated-layers"===p)return[{appearance:"outline",onClick:()=>{c.formViewModel?.goBack()},disabled:u,label:n.cancel,type:"button"}];const m=t.formViewModel,d=o.footerButtonInfos;if(m&&"default"!==m.page&&d.length)return d.map(({appearance:e,disabled:t,form:o,icon:i,kind:n,label:s,onclick:a})=>({appearance:e,disabled:t,form:o,icon:i,kind:n,label:s,onClick:a,type:"button"}));const f=[],g=r>1?i.multiFeature:i.singleFeature,k=!c.allowSave||u,b=e(g[c.saveActionLabel],{count:r});f.push({appearance:"solid",onClick:l,disabled:k,kind:"brand",label:b,type:"button"});const w={appearance:"outline",disabled:u,kind:"danger",label:e(g.delete,{count:r}),type:"button"};return t.shouldShowDeleteButton&&!t.formHasAssociation&&s&&f.push({...w,onClick:s}),t.formHasAssociation&&!t.shouldShowDeleteButton&&a&&f.push({...w,onClick:a,label:i.deleteAssociationTitle}),t.formHasAssociation&&t.shouldShowDeleteButton&&a&&s&&f.push({...w,primaryLabel:n.delete,primaryText:n.delete,onClick:s,dropdownItems:[{onClick:a,label:i.deleteAssociationTitle}],type:"split-button"}),f}export{F as UpdateFeaturePanelContent,y as loadUpdateFeaturePanelContentComponents};
