/*
All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
*/
import{supportsFieldConfiguration as t,isMapImageLayer as e}from"../../../layers/support/layerUtils.js";import{isGroupColumn as n}from"./columnUtils.js";import{loadCalciteComponents as i}from"../../support/componentsUtils.js";const o={action:"EsriFeatureTableActionColumn",attachments:"EsriFeatureTableAttachmentsColumn",relationship:"EsriFeatureTableRelationshipColumn"},r=()=>i({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon")}),c=()=>Promise.all([i({input:()=>import("@esri/calcite-components/dist/components/calcite-input"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),"input-time-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-time-picker")}),r()]),s=()=>Promise.all([i({"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar")}),c()]);function a(t){return null!=t&&"object"==typeof t&&"createQuery"in t&&"getField"in t&&"queryFeatureCount"in t&&"queryFeatures"in t&&"queryObjectIds"in t&&"capabilities"in t&&"fields"in t&&"fieldsIndex"in t&&"id"in t&&"load"in t&&"objectIdField"in t&&"type"in t&&"when"in t}function l(t){return a(t)&&"queryAttachments"in t}function u(e){return a(e)&&t(e)&&"fieldConfigurations"in e&&"getFieldConfiguration"in e}function p(t){return l(t)&&"addAttachment"in t&&"deleteAttachments"in t&&"updateAttachment"in t}function m(t){return a(t)&&"editingEnabled"in t&&"applyEdits"in t}function d(t){return a(t)&&"relationships"in t&&"queryRelatedFeatures"in t&&"queryRelatedFeaturesCount"in t}function f(t,e,n){if(e?.map)return y(t,[...e.map.allLayers,...e.map.allTables],n)}function y(t,n,{relatedTableId:i}){const o="scene"===t.type&&t.associatedLayer?t.associatedLayer.url:t.url,r=e=>!(!d(e)||e===t)&&("sublayer"===e.type&&e.layer?.url===t.url?e.id===i:o===e.url&&e.layerId===i);if("sublayer"===t.type&&"layer"in t&&e(t.layer)){const e=e=>d(e)&&e!==t&&e.id===i,n=t.layer,o=n.allSublayers?.find(e)||n.subtables?.find(e);if(d(o))return o}let c=null;for(const s of n)if(e(s)){const t=s.allSublayers?.find(r)||s.subtables?.find(r);if(t){c=t;break}}else if(r(s)){c=s;break}if(d(c))return c}function b(t,e){return null!=t&&Number.isInteger(t)&&t>-1&&t<e}function h(t){return null==t||0===t.trim().length}function g(t,e){return(t.relationships??[]).filter(t=>!(t.id===e&&"one-to-one"===t.cardinality)).map(({id:t})=>({relationshipId:t}))}function F(t,e){return t.relationships?.find(({id:t})=>t===e)}function w(t,e){return null==e?null:t?.fields?.find(t=>e.toLowerCase()===t.name?.toLowerCase())}function C(t,e){return e.some(e=>!("group"!==e.type||!C(t,e.columnTemplates))||e.fieldName===t)}function I(t,e){return e?.some(e=>!(!n(e)||!I(t,e.columns))||e.fieldName===t)??!1}function j(t,e){return`${t.id}-${e}`}export{w as findField,f as findRelatedLayer,y as findRelatedLayerInSources,F as findRelationship,g as getRelationshipIdsToShow,j as getTableHighlightKey,I as hasColumnForField,C as hasTemplateForField,h as isEmptyStringOrWhitespace,a as isIFeatureTableSupportedLayer,l as isIFeatureTableSupportedLayerWithAttachments,p as isIFeatureTableSupportedLayerWithAttachmentsEditing,m as isIFeatureTableSupportedLayerWithEditing,u as isIFeatureTableSupportedLayerWithFieldConfigurations,d as isIFeatureTableSupportedLayerWithRelationships,b as isPageIndexValid,r as loadColumnComponents,c as loadEditorColumnComponents,s as loadFieldColumnComponents,o as uniqueColumnNames};
