UNPKG

laif-ds

Version:

Design System di Laif con componenti React basati su principi di Atomic Design

313 lines (312 loc) 6.98 kB
"use client"; let d = 0; const o = () => `col-${Date.now()}-${++d}`; function s(e, t) { const r = e.id ?? e.accessorKey ?? o(), a = e.headerLabel ?? (typeof e.header == "string" ? e.header : r); return { id: r, header: typeof e.header == "string" ? e.header : () => e.header, ...e.accessorKey ? { accessorKey: e.accessorKey } : {}, ...e.cell ? { cell: ({ row: n }) => { const i = e.accessorKey ? n.getValue(r) : void 0; return e.cell(i, n.original, n); } } : {}, meta: { type: t, headerLabel: a, sortable: e.sortable ?? !1, filterable: e.filterable ?? !1, searchable: e.searchable ?? !1, pinned: e.pinned } }; } function y(e) { return s(e, "string"); } function h(e) { return s(e, "number"); } function _(e) { return s(e, "boolean"); } function C(e) { return s(e, "date"); } function q(e) { return s(e, "datetime"); } function F(e) { const t = Array.isArray(e.options) ? typeof e.options[0] == "string" ? e.options.map((a) => ({ value: a, label: a })) : e.options : [], r = s(e, "list_single_select"); return { ...r, meta: { ...r.meta, type: "list_single_select", listOptions: t } }; } function K(e) { const t = Array.isArray(e.options) ? typeof e.options[0] == "string" ? e.options.map((a) => ({ value: a, label: a })) : e.options : [], r = s(e, "list_multi_select"); return { ...r, meta: { ...r.meta, type: "list_multi_select", listOptions: t } }; } function L(e) { const t = e.headerLabel ?? (typeof e.header == "string" ? e.header : e.id); return { id: e.id, header: typeof e.header == "string" ? e.header : () => e.header, cell: ({ row: r }) => e.cell(r.original), meta: { type: "other", headerLabel: t, sortable: !1, filterable: !1, searchable: !1, pinned: e.pinned } }; } function v(e) { const t = e.id ?? o(), r = e.headerLabel ?? (typeof e.header == "string" ? e.header : t); return { id: t, header: typeof e.header == "string" ? e.header : () => e.header, cell: ({ row: a }) => e.cell(a.original), meta: { type: "other", headerLabel: r, sortable: !1, filterable: !1, searchable: e.searchable ?? !1, pinned: e.pinned } }; } function S(e) { const t = e.id ?? o(), r = e.headerLabel ?? (typeof e.header == "string" ? e.header : t); return { id: t, header: typeof e.header == "string" ? e.header : () => e.header, cell: ({ row: a }) => e.cell(a.original), meta: { type: e.type, headerLabel: r, sortable: e.sortable ?? !1, filterable: e.filterable ?? !1, searchable: e.searchable ?? !1, pinned: e.pinned } }; } let m = 0; const c = () => `filter-${Date.now()}-${++m}`; function u(e) { return { id: c(), columnId: e.columnId, columnAccessorKey: e.columnAccessorKey, columnLabel: e.columnLabel, columnType: e.columnType, operator: e.operator, value: e.value, listOptions: e.listOptions }; } function O(e) { return e.map((t) => u(t)); } function T(e, t, r, a, l) { return u({ columnId: e, columnAccessorKey: t, columnLabel: r, columnType: "string", operator: a, value: l }); } function I(e, t, r, a, l) { return u({ columnId: e, columnAccessorKey: t, columnLabel: r, columnType: "number", operator: a, value: l }); } function B(e, t, r, a, l) { return u({ columnId: e, columnAccessorKey: t, columnLabel: r, columnType: "boolean", operator: a, value: l }); } function A(e, t, r, a, l) { return u({ columnId: e, columnAccessorKey: t, columnLabel: r, columnType: "date", operator: a, value: l }); } function D(e, t, r, a, l) { return u({ columnId: e, columnAccessorKey: t, columnLabel: r, columnType: "datetime", operator: a, value: l }); } function V(e, t, r, a, l, n, i) { return u({ columnId: e, columnAccessorKey: t, columnLabel: r, columnType: a, operator: l, value: n, listOptions: i }); } function p(e) { return { sort_by: e.map((t) => t.column), sort_order: e.map((t) => t.order) }; } function f(e) { return { ...e.filters && { filters: { filterBadges: e.filters } }, ...e.searchbarFilter && { filters: { ...e.filters && { filterBadges: e.filters } || {}, searchbarFilter: e.searchbarFilter } }, ...e.sorting && { sorting: p(e.sorting) }, ...e.pagination && { pagination: e.pagination }, ...e.columnVisibility && { columnVisibility: e.columnVisibility } }; } function b(e) { return e.map((t) => ({ value: t, label: t })); } function k(e, t, r) { return e.map((a) => ({ value: String(a[t]), label: String(a[r]) })); } function $(e, t, r) { return e.map((a) => { if (a.accessorKey === t) { const n = typeof r[0] == "string" ? b(r) : r; return { ...a, meta: { ...a.meta, listOptions: n } }; } return a; }); } function M(e, t) { return e.map((r) => { const a = r.accessorKey || r.id, l = t.left?.includes(a) ? "left" : t.right?.includes(a) ? "right" : void 0; return l ? { ...r, meta: { ...r.meta, pinned: l } } : r; }); } function w(e) { return e.map((t) => t.accessorKey || t.id).filter(Boolean); } function N(e, t) { return { string: [ "like", "n_like", "starts_with", "ends_with", "eq", "ne", "eq_null", "n_eq_null" ], number: ["eq", "ne", "lt", "le", "gt", "ge", "eq_null", "n_eq_null"], boolean: ["eq", "ne", "checked", "unchecked"], date: ["eq", "date_before", "date_after", "eq_null", "n_eq_null"], datetime: ["date_time_before", "date_time_after", "eq_null", "n_eq_null"], list_single_select: [ "array_overlap", "n_array_overlap", "eq_null", "n_eq_null" ], list_multi_select: [ "array_overlap", "n_array_overlap", "eq_null", "n_eq_null" ], other: [] }[t]?.includes(e) ?? !1; } export { L as createActionColumn, _ as createBooleanColumn, B as createBooleanFilter, S as createComputedColumn, C as createDateColumn, A as createDateFilter, q as createDateTimeColumn, D as createDateTimeFilter, v as createDisplayColumn, u as createFilterBadge, O as createFilterBadges, f as createInitialState, V as createListFilter, K as createMultiSelectColumn, h as createNumberColumn, I as createNumberFilter, F as createSingleSelectColumn, p as createSorting, y as createStringColumn, T as createStringFilter, w as getColumnIds, N as isValidOperatorForType, M as pinColumns, b as toSelectOptions, k as toSelectOptionsFromObjects, $ as updateColumnListOptions };