{"version":3,"file":"datagrid-column.cjs","names":[],"sources":["../../../src/inputs/datagrid/datagrid-column.ts"],"sourcesContent":["import { warn } from '../../_dev';\nimport type { DataGridColumn } from './datagrid-model';\n\n// ── Declarative ore-column element ────────────────────────────────────────────\n\n/**\n * Declarative column definition for `<ore-datagrid>`.\n * Use as a child element instead of setting the `columns` prop imperatively.\n *\n * @element ore-column\n *\n * @attr {string} key - Row property key (required)\n * @attr {string} label - Header display label (required)\n * @attr {boolean} sortable - Makes the column sortable\n * @attr {boolean} resizable - Adds a drag handle to resize the column\n * @attr {string} align - Text alignment: 'left' | 'center' | 'right'\n * @attr {string} width - CSS column width (e.g. '12rem')\n * @attr {string} header-label - Accessible label override for the column header\n *\n * @example\n * ```html\n * <ore-datagrid>\n *   <ore-column key=\"name\" label=\"Name\" sortable></ore-column>\n *   <ore-column key=\"email\" label=\"Email\" width=\"20rem\"></ore-column>\n * </ore-datagrid>\n * ```\n */\nif (!customElements.get('ore-column'))\n  customElements.define(\n    'ore-column',\n    class extends HTMLElement {\n      connectedCallback(): void {\n        if (!this.getAttribute('key')) {\n          warn('ore-column: missing required `key` attribute');\n        }\n\n        if (!this.getAttribute('label')) {\n          warn('ore-column: missing required `label` attribute');\n        }\n      }\n    },\n  );\n\nexport const COLUMN_TAG = 'ore-column' as const;\n\n/** Attributes observed by the column MutationObserver in ore-datagrid. */\nexport const COLUMN_OBSERVED_ATTRS = [\n  'key',\n  'label',\n  'sortable',\n  'resizable',\n  'align',\n  'width',\n  'header-label',\n] as const;\n\n/** Parse all `<ore-column>` direct children of `host` into DataGridColumn descriptors. */\nexport function parseColumnChildren(host: HTMLElement): DataGridColumn[] {\n  return Array.from(host.querySelectorAll(':scope > ore-column')).map((el) => ({\n    align: (el.getAttribute('align') as 'left' | 'center' | 'right' | null) ?? undefined,\n    headerLabel: el.getAttribute('header-label') ?? undefined,\n    key: el.getAttribute('key') ?? '',\n    label: el.getAttribute('label') ?? '',\n    resizable: el.hasAttribute('resizable'),\n    sortable: el.hasAttribute('sortable'),\n    width: el.getAttribute('width') ?? undefined,\n  }));\n}\n"],"mappings":"0BA2BK,eAAe,IAAI,YAAY,GAClC,eAAe,OACb,aACA,cAAc,WAAY,CACxB,mBAA0B,CACnB,KAAK,aAAa,KAAK,EAIvB,KAAK,aAAa,OAAO,CAGhC,CACF,CACF,EAEF,IAAa,EAAa,aAGb,EAAwB,CACnC,MACA,QACA,WACA,YACA,QACA,QACA,cACF,EAGA,SAAgB,EAAoB,EAAqC,CACvE,OAAO,MAAM,KAAK,EAAK,iBAAiB,qBAAqB,CAAC,CAAC,CAAC,IAAK,IAAQ,CAC3E,MAAQ,EAAG,aAAa,OAAO,GAA4C,IAAA,GAC3E,YAAa,EAAG,aAAa,cAAc,GAAK,IAAA,GAChD,IAAK,EAAG,aAAa,KAAK,GAAK,GAC/B,MAAO,EAAG,aAAa,OAAO,GAAK,GACnC,UAAW,EAAG,aAAa,WAAW,EACtC,SAAU,EAAG,aAAa,UAAU,EACpC,MAAO,EAAG,aAAa,OAAO,GAAK,IAAA,EACrC,EAAE,CACJ"}