@medyat/react-data-table 0.1.0 → 0.2.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"date-editor-CJFd5YEo.js","names":["CaretDownIcon","CaretLeftIcon","CaretRightIcon","CheckIcon","useEffect","useRef","useState","DayPicker","DayButtonProps","DatePreset","FilterOp","isoDay","resolvePreset","weekStart","useDataTableContext","PRESETS","dayOf","v","Date","test","undefined","y","m","d","slice","split","map","Number","DAY_OFFSETS","ordered","a","b","from","to","View","Cell","key","label","aria","today","selected","pick","PickGrid","t0","$","_c","cells","onBack","t1","find","_temp","_temp2","focus","t2","Symbol","for","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","STEP","t3","e","stopPropagation","step","preventDefault","buttons","currentTarget","querySelectorAll","i","indexOf","document","activeElement","HTMLButtonElement","Math","min","length","max","t4","t5","c_1","c","c_0","Day","day","modifiers","props","ref","focused","current","name","on","date","t6","t7","t8","t9","t10","DateEditor","op","value","onChange","onDone","i18n","locale","range","obj","Record","single","anchor","setAnchor","hover","setHover","getFullYear","getMonth","month","setMonth","view","setView","title","nextOp","back","full","heading","monthFmt","onDay","selection","shift","weekday","weekdayLong","now","applyPreset","p","r","t11","p_0","r_0","presetOn","relative","Intl","RelativeTimeFormat","numeric","dayAt","n","getDate","dayName","n_0","s","format","charAt","toLocaleUpperCase","t12","r_1","t13","mode","const","t14","band","t15","dtBand","dtStart","dtEnd","t16","DateTimeFormat","dateStyle","t17","t18","year","first","shown","n_1","monthShort","yearFmt","Array","_","__0","i_0","presetItem","_temp3","p_1","t","n_2","String","t19","t20","t21","t22","t23","t24","t25","t26","root","month_grid","day_button","MonthCaption","_temp4","DayButton","t27","t28","t29","d_0","d_1","t30","formatWeekdayName","d_2","t31","d_3","t32","d_4","t33","d_5","t34","labelDayButton","labelGrid","labelWeekday","t35","_temp5","t36","t37","t38","t39","t40","onClick","_c","_Fragment","isoDay","resolvePreset","weekStart","useDataTableContext","Fragment$1","PRESETS","dayOf","v","y","m","d","DAY_OFFSETS","ordered","a","b","PickGrid","$","c","t0","t1","cells","_temp","_temp2","focus","t2","STEP","t3","onBack","step","buttons","i","t4","t5","c_1","c_0","Day","day","modifiers","props","ref","useRef","useEffect","name","on","t6","t7","t8","t9","t10","DateEditor","range","op","obj","value","from","to","single","anchor","setAnchor","useState","hover","setHover","month","setMonth","view","setView","title","onChange","onDone","nextOp","pick","back","full","heading","monthFmt","onDay","selection","shift","weekday","weekdayLong","i18n","locale","now","today","applyPreset","r","p","t11","r_0","p_0","presetOn","relative","dayAt","n","dayName","s","n_0","t12","r_1","t13","t14","band","t15","t16","t17","t18","first","shown","n_1","monthShort","yearFmt","i_0","presetItem","_temp3","p_1","n_2","CaretDownIcon","CaretLeftIcon","t19","CaretRightIcon","t20","t21","t22","t23","t24","t25","t26","_temp4","t27","t28","t29","d_0","d_1","t30","d_2","t31","d_3","t32","d_4","t33","d_5","t34","t35","DayPicker","_temp5","t36","t37","t38","t39","t40","label","CheckIcon","key"],"sources":["../src/core/editors/date-editor.tsx"],"sourcesContent":["// Tarih editörü (04 §3, T2-04): `within` → solda hazır aralıklar, sağda aralık takvimi; `eq/before/after` → bugün, dün,\n// evvelsi gün, yarın, öbür gün + tek takvim. Hazır tıklanınca uygulanır ve kapanır; takvimde aralık ikinci uç seçilince. Hafta başı yerel ayardan.\n// Vue'dan sapma: hazır aralık göreli kalmaz, seçildiği günün tarihleriyle yazılır (çip ve görünüm sabit tarih taşır);\n// başlangıcı olmayan Overdue `before <bugün>` olur. Custom range düğmesi yok: takvim her zaman aralık seçer.\n// Takvim react-day-picker (R10); gün düğmesi Vue paketindeki reka takviminin nitelikleriyle çizilir. Başlık editörün:\n// tıklanınca gün → ay → yıl ızgarası açılır (hızlı gezinme), seçim bir alt görünüme döner. Izgara gizlenen gün takviminin\n// üstüne oturur, popover boyu oynamaz. Ay, gün adı ve okunuşlar Intl'den. Tembel yüklenir (FilterChip).\nimport { CaretDownIcon, CaretLeftIcon, CaretRightIcon, CheckIcon } from '@phosphor-icons/react'\nimport { useEffect, useRef, useState } from 'react'\nimport { DayPicker, type DayButtonProps } from 'react-day-picker'\nimport type { DatePreset, FilterOp } from '../../types/query'\nimport { isoDay, resolvePreset, weekStart } from '../filters/model'\nimport { useDataTableContext } from '../provider'\n\nconst PRESETS: DatePreset[] = [\n 'today',\n 'this_week',\n 'next_7_days',\n 'this_month',\n 'last_30_days',\n 'this_quarter',\n 'overdue',\n]\n\n/** 'Y-m-d' → yerel gün; `new Date(text)` UTC okur ve günü kaydırır. */\nfunction dayOf(v: unknown): Date | undefined {\n if (typeof v !== 'string' || !/^\\d{4}-\\d{2}-\\d{2}/.test(v)) return undefined\n const [y, m, d] = v.slice(0, 10).split('-').map(Number)\n return new Date(y!, m! - 1, d!)\n}\n/** Tek gün hazırları: bugünden gün farkı; adları Intl'den (tr: bugün, dün, evvelsi gün, yarın, öbür gün). */\nconst DAY_OFFSETS = [0, -1, -2, 1, 2]\nconst ordered = (a: Date, b: Date) => (a <= b ? { from: a, to: b } : { from: b, to: a })\n\ntype View = 'days' | 'months' | 'years'\ninterface Cell {\n key: number\n label: string\n aria: string\n today: boolean\n selected: boolean\n pick: () => void\n}\n\n/** Ay ya da yıl ızgarası (3 × 4): oklar odağı taşır, Esc bir üst görünüme döner; açılınca seçili (yoksa bugünkü) hücre odakta. */\nfunction PickGrid({ cells, onBack }: { cells: Cell[]; onBack: () => void }) {\n const focus = cells.find((c) => c.selected) ?? cells.find((c) => c.today) ?? cells[0]!\n const STEP: Record<string, number> = { ArrowLeft: -1, ArrowRight: 1, ArrowUp: -3, ArrowDown: 3 }\n return (\n <div\n className=\"dt-cal-pick\"\n role=\"group\"\n onKeyDown={(e) => {\n if (e.key === 'Escape') {\n // Popover'ı kapatmasın: Esc önce görünümden çıkar.\n e.stopPropagation()\n return onBack()\n }\n const step = STEP[e.key]\n if (!step) return\n e.preventDefault()\n const buttons = [...e.currentTarget.querySelectorAll('button')]\n const i = buttons.indexOf(document.activeElement as HTMLButtonElement)\n buttons[Math.min(buttons.length - 1, Math.max(0, i + step))]?.focus()\n }}\n >\n {cells.map((c) => (\n <button\n key={c.key}\n type=\"button\"\n className=\"dt-cal-day\"\n aria-label={c.aria}\n aria-pressed={c.selected}\n autoFocus={c === focus}\n data-today={c.today ? '' : undefined}\n data-selected={c.selected ? '' : undefined}\n onClick={c.pick}\n >\n {c.label}\n </button>\n ))}\n </div>\n )\n}\n\n/** Gün düğmesi: durumlar reka adlarıyla (`data-selected`, `data-selection-start` …); aralık bandı hücrede (`is-band`). */\nfunction Day({ day, modifiers, ...props }: DayButtonProps) {\n const ref = useRef<HTMLButtonElement>(null)\n // Klavye gezinmesinde odak DayPicker'ın `focused` işaretiyle taşınır; özel düğme bunu kendisi yapar.\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n const on = (name: string) => (modifiers[name] ? '' : undefined)\n return (\n <button\n ref={ref}\n {...props}\n data-value={isoDay(day.date)}\n data-today={on('today')}\n data-outside-view={on('outside')}\n data-selected={on('selected')}\n data-selection-start={on('dtStart')}\n data-selection-end={on('dtEnd')}\n />\n )\n}\n\nexport default function DateEditor({\n op,\n value,\n onChange,\n onDone,\n}: {\n op: FilterOp\n value: unknown\n /** `op` yalnızca Overdue'da verilir: aralık `before`'a döner. */\n onChange: (value: unknown, op?: FilterOp) => void\n onDone: () => void\n}) {\n const { i18n, locale } = useDataTableContext()\n const range = op === 'within'\n const obj = value && typeof value === 'object' ? (value as Record<string, unknown>) : null\n const from = dayOf(obj?.from)\n const to = dayOf(obj?.to)\n const single = dayOf(value)\n // Özel aralıkta ilk uç seçildi, ikincisi bekleniyor; fare ya da odak önizleme aralığını çizer.\n const [anchor, setAnchor] = useState<Date | null>(null)\n const [hover, setHover] = useState<Date | null>(null)\n const [month, setMonth] = useState(() => {\n const d = (range ? from : single) ?? new Date()\n return new Date(d.getFullYear(), d.getMonth(), 1)\n })\n const [view, setView] = useState<View>('days')\n const title = useRef<HTMLButtonElement>(null)\n\n const pick = (v: unknown, nextOp?: FilterOp) => {\n onChange(v, nextOp)\n onDone()\n }\n const now = new Date()\n const today = isoDay(now)\n const applyPreset = (p: DatePreset) => {\n const r = resolvePreset(p, locale)\n if (r.from === null) pick(today, 'before')\n else pick(r)\n }\n // Değer hazır aralığın bugünkü tarihleriyle aynıysa o aralık işaretli görünür.\n const presetOn = (p: DatePreset) => {\n const r = resolvePreset(p, locale)\n return r.from !== null && obj?.from === r.from && obj?.to === r.to\n }\n const relative = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' })\n const dayAt = (n: number) => isoDay(new Date(now.getFullYear(), now.getMonth(), now.getDate() + n))\n const dayName = (n: number) => {\n const s = relative.format(n, 'day')\n return s.charAt(0).toLocaleUpperCase(locale) + s.slice(1)\n }\n const onDay = (day: Date) => {\n if (!range) return pick(isoDay(day))\n if (!anchor) {\n setAnchor(day)\n setHover(day)\n return\n }\n const r = ordered(anchor, day)\n setAnchor(null)\n pick({ from: isoDay(r.from), to: isoDay(r.to) })\n }\n // Seçim `mode` ile verilir ki Tab takvimde seçili güne (yoksa bugüne) girsin; tıklamayı `onDayClick` yönetir, bu yüzden\n // `onSelect` boştur ve seçim tamamen kontrollüdür.\n const selection = range\n ? {\n mode: 'range' as const,\n selected: anchor ? { from: anchor, to: undefined } : from && to ? { from, to } : undefined,\n }\n : { mode: 'single' as const, selected: single }\n // Bant: kaydedilmiş aralık ya da ikinci uç beklenirken önizleme; hücreye çizilir ki günler arasında kesilmesin.\n const band = anchor && hover ? ordered(anchor, hover) : from && to ? { from, to } : undefined\n const modifiers = range\n ? {\n dtBand: band,\n dtStart: band?.from,\n dtEnd: band?.to,\n }\n : {}\n const full = new Intl.DateTimeFormat(locale, { dateStyle: 'full' })\n const weekday = new Intl.DateTimeFormat(locale, { weekday: 'short' })\n const weekdayLong = new Intl.DateTimeFormat(locale, { weekday: 'long' })\n const monthFmt = new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' })\n const y = month.getFullYear()\n const m = month.getMonth()\n const first = y - (y % 12)\n const shown = range ? from : single\n const shift = (n: number) =>\n setMonth(new Date(view === 'years' ? y + 12 * n : view === 'months' ? y + n : y, view === 'days' ? m + n : m, 1))\n const back = () => {\n setView(view === 'years' ? 'months' : 'days')\n title.current?.focus()\n }\n const monthShort = new Intl.DateTimeFormat(locale, { month: 'short' })\n const yearFmt = new Intl.DateTimeFormat(locale, { year: 'numeric' })\n const cells: Cell[] =\n view === 'months'\n ? Array.from({ length: 12 }, (_, i) => ({\n key: i,\n label: monthShort.format(new Date(y, i, 1)),\n aria: monthFmt.format(new Date(y, i, 1)),\n today: now.getFullYear() === y && now.getMonth() === i,\n selected: shown?.getFullYear() === y && shown.getMonth() === i,\n pick: () => {\n setMonth(new Date(y, i, 1))\n back()\n },\n }))\n : Array.from({ length: 12 }, (_, i) => ({\n key: first + i,\n label: yearFmt.format(new Date(first + i, 0, 1)),\n aria: yearFmt.format(new Date(first + i, 0, 1)),\n today: now.getFullYear() === first + i,\n selected: shown?.getFullYear() === first + i,\n pick: () => {\n setMonth(new Date(first + i, m, 1))\n setView('months')\n },\n }))\n const heading =\n view === 'days'\n ? monthFmt.format(new Date(y, m, 1))\n : view === 'months'\n ? yearFmt.format(new Date(y, 0, 1))\n : `${yearFmt.format(new Date(first, 0, 1))} – ${yearFmt.format(new Date(first + 11, 0, 1))}`\n const presetItem = (key: string, label: string, on: boolean, onClick: () => void) => (\n <button\n key={key}\n type=\"button\"\n className={on ? 'dt-pop-item dt-date-preset is-on' : 'dt-pop-item dt-date-preset'}\n onClick={onClick}\n >\n {label}\n {on && <CheckIcon size={14} className=\"dt-pop-end\" aria-hidden=\"true\" />}\n </button>\n )\n\n return (\n <div className=\"dt-editor-date\">\n <div className=\"dt-date-presets\">\n {range\n ? PRESETS.map((p) => presetItem(p, i18n.t(`date.${p}`), presetOn(p), () => applyPreset(p)))\n : DAY_OFFSETS.map((n) => presetItem(String(n), dayName(n), value === dayAt(n), () => pick(dayAt(n))))}\n </div>\n <div className=\"dt-calendar\">\n <div className=\"dt-cal-head\">\n {view === 'years' ? (\n <span className=\"dt-cal-title\">{heading}</span>\n ) : (\n <button\n ref={title}\n type=\"button\"\n className=\"dt-cal-title\"\n onClick={() => setView(view === 'days' ? 'months' : 'years')}\n >\n {heading}\n <CaretDownIcon size={12} aria-hidden=\"true\" />\n </button>\n )}\n <button\n type=\"button\"\n className=\"dt-icon-btn-sm\"\n aria-label={i18n.t('page.previous')}\n onClick={() => shift(-1)}\n >\n <CaretLeftIcon size={16} aria-hidden=\"true\" />\n </button>\n <button type=\"button\" className=\"dt-icon-btn-sm\" aria-label={i18n.t('page.next')} onClick={() => shift(1)}>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n </div>\n <div className=\"dt-cal-body\">\n <div className={view === 'days' ? undefined : 'dt-cal-hidden'} inert={view !== 'days'}>\n <DayPicker\n classNames={{\n root: 'dt-cal-days',\n month_grid: 'dt-cal-grid',\n weekday: 'dt-cal-dow',\n day: 'dt-cal-cell',\n day_button: 'dt-cal-day',\n }}\n modifiersClassNames={{ dtBand: 'is-band', dtStart: 'is-band-start', dtEnd: 'is-band-end' }}\n components={{ MonthCaption: () => <></>, DayButton: Day }}\n {...selection}\n onSelect={() => {}}\n hideNavigation\n showOutsideDays\n fixedWeeks\n weekStartsOn={(weekStart(locale) % 7) as 0 | 1 | 2 | 3 | 4 | 5 | 6}\n month={month}\n onMonthChange={setMonth}\n modifiers={modifiers}\n onDayClick={onDay}\n onDayMouseEnter={(d) => anchor && setHover(d)}\n onDayFocus={(d) => anchor && setHover(d)}\n formatters={{ formatWeekdayName: (d) => weekday.format(d) }}\n labels={{\n labelDayButton: (d) => full.format(d),\n labelGrid: (d) => monthFmt.format(d),\n labelWeekday: (d) => weekdayLong.format(d),\n }}\n />\n </div>\n {view !== 'days' && <PickGrid key={view} cells={cells} onBack={back} />}\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"date-editor-CxGAEK_C.js","names":["CaretDownIcon","CaretLeftIcon","CaretRightIcon","CheckIcon","useEffect","useRef","useState","DayPicker","DayButtonProps","DatePreset","FilterOp","isoDay","resolvePreset","weekStart","useDataTableContext","PRESETS","dayOf","v","Date","test","undefined","y","m","d","slice","split","map","Number","DAY_OFFSETS","ordered","a","b","from","to","View","Cell","key","label","aria","today","selected","pick","PickGrid","t0","$","_c","cells","onBack","t1","find","_temp","_temp2","focus","t2","Symbol","for","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","STEP","t3","e","stopPropagation","step","preventDefault","buttons","currentTarget","querySelectorAll","i","indexOf","document","activeElement","HTMLButtonElement","Math","min","length","max","t4","t5","c_1","c","c_0","Day","day","modifiers","props","ref","focused","current","name","on","date","t6","t7","t8","t9","t10","DateEditor","op","value","onChange","onDone","i18n","locale","range","obj","Record","single","anchor","setAnchor","hover","setHover","getFullYear","getMonth","month","setMonth","view","setView","title","nextOp","back","full","heading","monthFmt","onDay","selection","shift","weekday","weekdayLong","now","applyPreset","p","r","t11","p_0","r_0","presetOn","relative","Intl","RelativeTimeFormat","numeric","dayAt","n","getDate","dayName","n_0","s","format","charAt","toLocaleUpperCase","t12","r_1","t13","mode","const","t14","band","t15","dtBand","dtStart","dtEnd","t16","DateTimeFormat","dateStyle","t17","t18","year","first","shown","n_1","monthShort","yearFmt","Array","_","__0","i_0","presetItem","_temp3","p_1","t","n_2","String","t19","t20","t21","t22","t23","t24","t25","t26","root","month_grid","day_button","MonthCaption","_temp4","DayButton","t27","t28","t29","d_0","d_1","t30","formatWeekdayName","d_2","t31","d_3","t32","d_4","t33","d_5","t34","labelDayButton","labelGrid","labelWeekday","t35","_temp5","t36","t37","t38","t39","t40","onClick","_c","_Fragment","isoDay","resolvePreset","weekStart","useDataTableContext","Fragment$1","PRESETS","dayOf","v","y","m","d","DAY_OFFSETS","ordered","a","b","PickGrid","$","c","t0","t1","cells","_temp","_temp2","focus","t2","STEP","t3","onBack","step","buttons","i","t4","t5","c_1","c_0","Day","day","modifiers","props","ref","useRef","useEffect","name","on","t6","t7","t8","t9","t10","DateEditor","range","op","obj","value","from","to","single","anchor","setAnchor","useState","hover","setHover","month","setMonth","view","setView","title","onChange","onDone","nextOp","pick","back","full","heading","monthFmt","onDay","selection","shift","weekday","weekdayLong","i18n","locale","now","today","applyPreset","r","p","t11","r_0","p_0","presetOn","relative","dayAt","n","dayName","s","n_0","t12","r_1","t13","t14","band","t15","t16","t17","t18","first","shown","n_1","monthShort","yearFmt","i_0","presetItem","_temp3","p_1","n_2","CaretDownIcon","CaretLeftIcon","t19","CaretRightIcon","t20","t21","t22","t23","t24","t25","t26","_temp4","t27","t28","t29","d_0","d_1","t30","d_2","t31","d_3","t32","d_4","t33","d_5","t34","t35","DayPicker","_temp5","t36","t37","t38","t39","t40","label","CheckIcon","key"],"sources":["../src/core/editors/date-editor.tsx"],"sourcesContent":["// Tarih editörü (04 §3, T2-04): `within` → solda hazır aralıklar, sağda aralık takvimi; `eq/before/after` → bugün, dün,\n// evvelsi gün, yarın, öbür gün + tek takvim. Hazır tıklanınca uygulanır ve kapanır; takvimde aralık ikinci uç seçilince. Hafta başı yerel ayardan.\n// Vue'dan sapma: hazır aralık göreli kalmaz, seçildiği günün tarihleriyle yazılır (çip ve görünüm sabit tarih taşır);\n// başlangıcı olmayan Overdue `before <bugün>` olur. Custom range düğmesi yok: takvim her zaman aralık seçer.\n// Takvim react-day-picker (R10); gün düğmesi Vue paketindeki reka takviminin nitelikleriyle çizilir. Başlık editörün:\n// tıklanınca gün → ay → yıl ızgarası açılır (hızlı gezinme), seçim bir alt görünüme döner. Izgara gizlenen gün takviminin\n// üstüne oturur, popover boyu oynamaz. Ay, gün adı ve okunuşlar Intl'den. Tembel yüklenir (FilterChip).\nimport { CaretDownIcon, CaretLeftIcon, CaretRightIcon, CheckIcon } from '@phosphor-icons/react'\nimport { useEffect, useRef, useState } from 'react'\nimport { DayPicker, type DayButtonProps } from 'react-day-picker'\nimport type { DatePreset, FilterOp } from '../../types/query'\nimport { isoDay, resolvePreset, weekStart } from '../filters/model'\nimport { useDataTableContext } from '../provider'\n\nconst PRESETS: DatePreset[] = [\n 'today',\n 'this_week',\n 'next_7_days',\n 'this_month',\n 'last_30_days',\n 'this_quarter',\n 'overdue',\n]\n\n/** 'Y-m-d' → yerel gün; `new Date(text)` UTC okur ve günü kaydırır. */\nfunction dayOf(v: unknown): Date | undefined {\n if (typeof v !== 'string' || !/^\\d{4}-\\d{2}-\\d{2}/.test(v)) return undefined\n const [y, m, d] = v.slice(0, 10).split('-').map(Number)\n return new Date(y!, m! - 1, d!)\n}\n/** Tek gün hazırları: bugünden gün farkı; adları Intl'den (tr: bugün, dün, evvelsi gün, yarın, öbür gün). */\nconst DAY_OFFSETS = [0, -1, -2, 1, 2]\nconst ordered = (a: Date, b: Date) => (a <= b ? { from: a, to: b } : { from: b, to: a })\n\ntype View = 'days' | 'months' | 'years'\ninterface Cell {\n key: number\n label: string\n aria: string\n today: boolean\n selected: boolean\n pick: () => void\n}\n\n/** Ay ya da yıl ızgarası (3 × 4): oklar odağı taşır, Esc bir üst görünüme döner; açılınca seçili (yoksa bugünkü) hücre odakta. */\nfunction PickGrid({ cells, onBack }: { cells: Cell[]; onBack: () => void }) {\n const focus = cells.find((c) => c.selected) ?? cells.find((c) => c.today) ?? cells[0]!\n const STEP: Record<string, number> = { ArrowLeft: -1, ArrowRight: 1, ArrowUp: -3, ArrowDown: 3 }\n return (\n <div\n className=\"dt-cal-pick\"\n role=\"group\"\n onKeyDown={(e) => {\n if (e.key === 'Escape') {\n // Popover'ı kapatmasın: Esc önce görünümden çıkar.\n e.stopPropagation()\n return onBack()\n }\n const step = STEP[e.key]\n if (!step) return\n e.preventDefault()\n const buttons = [...e.currentTarget.querySelectorAll('button')]\n const i = buttons.indexOf(document.activeElement as HTMLButtonElement)\n buttons[Math.min(buttons.length - 1, Math.max(0, i + step))]?.focus()\n }}\n >\n {cells.map((c) => (\n <button\n key={c.key}\n type=\"button\"\n className=\"dt-cal-day\"\n aria-label={c.aria}\n aria-pressed={c.selected}\n autoFocus={c === focus}\n data-today={c.today ? '' : undefined}\n data-selected={c.selected ? '' : undefined}\n onClick={c.pick}\n >\n {c.label}\n </button>\n ))}\n </div>\n )\n}\n\n/** Gün düğmesi: durumlar reka adlarıyla (`data-selected`, `data-selection-start` …); aralık bandı hücrede (`is-band`). */\nfunction Day({ day, modifiers, ...props }: DayButtonProps) {\n const ref = useRef<HTMLButtonElement>(null)\n // Klavye gezinmesinde odak DayPicker'ın `focused` işaretiyle taşınır; özel düğme bunu kendisi yapar.\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n const on = (name: string) => (modifiers[name] ? '' : undefined)\n return (\n <button\n ref={ref}\n {...props}\n data-value={isoDay(day.date)}\n data-today={on('today')}\n data-outside-view={on('outside')}\n data-selected={on('selected')}\n data-selection-start={on('dtStart')}\n data-selection-end={on('dtEnd')}\n />\n )\n}\n\nexport default function DateEditor({\n op,\n value,\n onChange,\n onDone,\n}: {\n op: FilterOp\n value: unknown\n /** `op` yalnızca Overdue'da verilir: aralık `before`'a döner. */\n onChange: (value: unknown, op?: FilterOp) => void\n onDone: () => void\n}) {\n const { i18n, locale } = useDataTableContext()\n const range = op === 'within'\n const obj = value && typeof value === 'object' ? (value as Record<string, unknown>) : null\n const from = dayOf(obj?.from)\n const to = dayOf(obj?.to)\n const single = dayOf(value)\n // Özel aralıkta ilk uç seçildi, ikincisi bekleniyor; fare ya da odak önizleme aralığını çizer.\n const [anchor, setAnchor] = useState<Date | null>(null)\n const [hover, setHover] = useState<Date | null>(null)\n const [month, setMonth] = useState(() => {\n const d = (range ? from : single) ?? new Date()\n return new Date(d.getFullYear(), d.getMonth(), 1)\n })\n const [view, setView] = useState<View>('days')\n const title = useRef<HTMLButtonElement>(null)\n\n const pick = (v: unknown, nextOp?: FilterOp) => {\n onChange(v, nextOp)\n onDone()\n }\n const now = new Date()\n const today = isoDay(now)\n const applyPreset = (p: DatePreset) => {\n const r = resolvePreset(p, locale)\n if (r.from === null) pick(today, 'before')\n else pick(r)\n }\n // Değer hazır aralığın bugünkü tarihleriyle aynıysa o aralık işaretli görünür.\n const presetOn = (p: DatePreset) => {\n const r = resolvePreset(p, locale)\n return r.from !== null && obj?.from === r.from && obj?.to === r.to\n }\n const relative = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' })\n const dayAt = (n: number) => isoDay(new Date(now.getFullYear(), now.getMonth(), now.getDate() + n))\n const dayName = (n: number) => {\n const s = relative.format(n, 'day')\n return s.charAt(0).toLocaleUpperCase(locale) + s.slice(1)\n }\n const onDay = (day: Date) => {\n if (!range) return pick(isoDay(day))\n if (!anchor) {\n setAnchor(day)\n setHover(day)\n return\n }\n const r = ordered(anchor, day)\n setAnchor(null)\n pick({ from: isoDay(r.from), to: isoDay(r.to) })\n }\n // Seçim `mode` ile verilir ki Tab takvimde seçili güne (yoksa bugüne) girsin; tıklamayı `onDayClick` yönetir, bu yüzden\n // `onSelect` boştur ve seçim tamamen kontrollüdür.\n const selection = range\n ? {\n mode: 'range' as const,\n selected: anchor ? { from: anchor, to: undefined } : from && to ? { from, to } : undefined,\n }\n : { mode: 'single' as const, selected: single }\n // Bant: kaydedilmiş aralık ya da ikinci uç beklenirken önizleme; hücreye çizilir ki günler arasında kesilmesin.\n const band = anchor && hover ? ordered(anchor, hover) : from && to ? { from, to } : undefined\n const modifiers = range\n ? {\n dtBand: band,\n dtStart: band?.from,\n dtEnd: band?.to,\n }\n : {}\n const full = new Intl.DateTimeFormat(locale, { dateStyle: 'full' })\n const weekday = new Intl.DateTimeFormat(locale, { weekday: 'short' })\n const weekdayLong = new Intl.DateTimeFormat(locale, { weekday: 'long' })\n const monthFmt = new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' })\n const y = month.getFullYear()\n const m = month.getMonth()\n const first = y - (y % 12)\n const shown = range ? from : single\n const shift = (n: number) =>\n setMonth(new Date(view === 'years' ? y + 12 * n : view === 'months' ? y + n : y, view === 'days' ? m + n : m, 1))\n const back = () => {\n setView(view === 'years' ? 'months' : 'days')\n title.current?.focus()\n }\n const monthShort = new Intl.DateTimeFormat(locale, { month: 'short' })\n const yearFmt = new Intl.DateTimeFormat(locale, { year: 'numeric' })\n const cells: Cell[] =\n view === 'months'\n ? Array.from({ length: 12 }, (_, i) => ({\n key: i,\n label: monthShort.format(new Date(y, i, 1)),\n aria: monthFmt.format(new Date(y, i, 1)),\n today: now.getFullYear() === y && now.getMonth() === i,\n selected: shown?.getFullYear() === y && shown.getMonth() === i,\n pick: () => {\n setMonth(new Date(y, i, 1))\n back()\n },\n }))\n : Array.from({ length: 12 }, (_, i) => ({\n key: first + i,\n label: yearFmt.format(new Date(first + i, 0, 1)),\n aria: yearFmt.format(new Date(first + i, 0, 1)),\n today: now.getFullYear() === first + i,\n selected: shown?.getFullYear() === first + i,\n pick: () => {\n setMonth(new Date(first + i, m, 1))\n setView('months')\n },\n }))\n const heading =\n view === 'days'\n ? monthFmt.format(new Date(y, m, 1))\n : view === 'months'\n ? yearFmt.format(new Date(y, 0, 1))\n : `${yearFmt.format(new Date(first, 0, 1))} – ${yearFmt.format(new Date(first + 11, 0, 1))}`\n const presetItem = (key: string, label: string, on: boolean, onClick: () => void) => (\n <button\n key={key}\n type=\"button\"\n className={on ? 'dt-pop-item dt-date-preset is-on' : 'dt-pop-item dt-date-preset'}\n onClick={onClick}\n >\n {label}\n {on && <CheckIcon size={14} className=\"dt-pop-end\" aria-hidden=\"true\" />}\n </button>\n )\n\n return (\n <div className=\"dt-editor-date\">\n <div className=\"dt-date-presets\">\n {range\n ? PRESETS.map((p) => presetItem(p, i18n.t(`date.${p}`), presetOn(p), () => applyPreset(p)))\n : DAY_OFFSETS.map((n) => presetItem(String(n), dayName(n), value === dayAt(n), () => pick(dayAt(n))))}\n </div>\n <div className=\"dt-calendar\">\n <div className=\"dt-cal-head\">\n {view === 'years' ? (\n <span className=\"dt-cal-title\">{heading}</span>\n ) : (\n <button\n ref={title}\n type=\"button\"\n className=\"dt-cal-title\"\n onClick={() => setView(view === 'days' ? 'months' : 'years')}\n >\n {heading}\n <CaretDownIcon size={12} aria-hidden=\"true\" />\n </button>\n )}\n <button\n type=\"button\"\n className=\"dt-icon-btn-sm\"\n aria-label={i18n.t('page.previous')}\n onClick={() => shift(-1)}\n >\n <CaretLeftIcon size={16} aria-hidden=\"true\" />\n </button>\n <button type=\"button\" className=\"dt-icon-btn-sm\" aria-label={i18n.t('page.next')} onClick={() => shift(1)}>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n </div>\n <div className=\"dt-cal-body\">\n <div className={view === 'days' ? undefined : 'dt-cal-hidden'} inert={view !== 'days'}>\n <DayPicker\n classNames={{\n root: 'dt-cal-days',\n month_grid: 'dt-cal-grid',\n weekday: 'dt-cal-dow',\n day: 'dt-cal-cell',\n day_button: 'dt-cal-day',\n }}\n modifiersClassNames={{ dtBand: 'is-band', dtStart: 'is-band-start', dtEnd: 'is-band-end' }}\n components={{ MonthCaption: () => <></>, DayButton: Day }}\n {...selection}\n onSelect={() => {}}\n hideNavigation\n showOutsideDays\n fixedWeeks\n weekStartsOn={(weekStart(locale) % 7) as 0 | 1 | 2 | 3 | 4 | 5 | 6}\n month={month}\n onMonthChange={setMonth}\n modifiers={modifiers}\n onDayClick={onDay}\n onDayMouseEnter={(d) => anchor && setHover(d)}\n onDayFocus={(d) => anchor && setHover(d)}\n formatters={{ formatWeekdayName: (d) => weekday.format(d) }}\n labels={{\n labelDayButton: (d) => full.format(d),\n labelGrid: (d) => monthFmt.format(d),\n labelWeekday: (d) => weekdayLong.format(d),\n }}\n />\n </div>\n {view !== 'days' && <PickGrid key={view} cells={cells} onBack={back} />}\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { h as e, n as t, s as n, t as r } from "./bottom-sheet-NHUT908D.js";
2
- import { n as ee } from "./provider-CTTHEpE3.js";
1
+ import { h as e, n as t, s as n, t as r } from "./bottom-sheet-BMVYPFta.js";
2
+ import { n as ee } from "./provider-BgZBSzsH.js";
3
3
  import { c as te, i, n as ne, s as re, t as ie } from "./model-RkRyfM7C.js";
4
4
  import { c as ae } from "react/compiler-runtime";
5
5
  import { useRef as oe, useState as a } from "react";
@@ -295,4 +295,4 @@ function ye(t) {
295
295
  }
296
296
  export { l as FiltersSheet };
297
297
 
298
- //# sourceMappingURL=filters-sheet-CWzMaMFo.js.map
298
+ //# sourceMappingURL=filters-sheet-DAf-n-Nv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filters-sheet-CWzMaMFo.js","names":["Toggle","ToggleGroup","ArrowDownIcon","ArrowUpIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","MagnifyingGlassIcon","PlusIcon","XIcon","useRef","useState","ColumnDef","FilterOp","SortRule","RemoteLabels","TYPE_SPECS","useDataTableContext","BottomSheet","changeOperator","defaultOperator","isComplete","opLabel","operatorsOf","Chip","Summary","TYPE_ICONS","ValueEditor","Level","FiltersSheet","t0","$","_c","open","onOpenChange","column","columns","chips","sort","rows","labels","summaryOf","currenciesOf","onApply","i18n","t1","id","find","c","defOf","t2","id_0","header","headerOf","t3","list","id_1","def","draft","editing","existing","c_0","type","map","c_1","value","op","editIn","t4","start","setDraft","draftSort","setDraftSort","setEditing","level","setLevel","q","setQ","editor","filterable","filter","_temp","sortable","_temp2","t5","id_2","some","c_4","drafted","t6","c_5","suggested","needle","toLocaleLowerCase","pickable","c_6","includes","chip","c_7","chipDef","undefined","t7","id_3","next","edit","t8","Symbol","for","next_0","d","c_8","replace","t9","id_4","d_0","c_9","remove","back","d_1","c_10","t10","c_11","apply","title","t","count","Array","isArray","length","T0","t11","t12","t13","current","querySelector","focus","t14","t15","c_12","text","c_13","e","target","dir","_temp3","v","const","d_2","t16","e_0","c_15","Icon","t17","e_1","t18","c_14","c_3","c_2","_c","_Fragment","TYPE_SPECS","ValueEditor","TYPE_ICONS","BottomSheet","useDataTableContext","operatorsOf","defaultOperator","opLabel","changeOperator","Fragment$1","FiltersSheet","$","c","t0","t1","columns","id","defOf","t2","id_0","headerOf","t3","def","id_1","list","existing","c_0","c_1","editIn","t4","chips","column","start","useState","draft","setDraft","draftSort","setDraftSort","sort","editing","setEditing","level","setLevel","q","setQ","editor","useRef","filterable","_temp","sortable","_temp2","t5","c_4","id_2","drafted","t6","c_5","suggested","needle","pickable","c_6","chip","c_7","chipDef","t7","next","id_3","edit","t8","d","c_8","next_0","replace","t9","d_0","c_9","id_4","remove","back","d_1","c_10","isComplete","t10","onApply","onOpenChange","c_11","apply","title","i18n","count","T0","t12","CaretLeftIcon","t13","t14","t15","c_12","summaryOf","XIcon","c_13","CaretRightIcon","PlusIcon","_temp3","CaretDownIcon","ToggleGroup","dir","v","Toggle","d_2","jsx","ArrowUpIcon","ArrowDownIcon","t16","MagnifyingGlassIcon","e_0","Icon","c_15","t17","e_1","op","currenciesOf","t18","open","c_14","c_3","c_2"],"sources":["../src/core/filters/filters-sheet.tsx"],"sourcesContent":["// Telefon Filters alt sayfası (04 §9, handoff 04 §6.1–6.2, T13-04/05): uygulanmış filtreler · Suggested · Add filter · Sort ·\n// Show results. Değişiklikler taslakta birikir ve Show results'la tek seferde uygulanır (masaüstündeki anında uygulamadan\n// farklı). Değer editörü ve sütun seçici aynı sayfanın alt seviyeleridir (geri okuyla döner). Her açılışta yeniden kurulur\n// (`key`): taslak o anki çiplerden ve sıralamadan başlar.\nimport { Toggle } from '@base-ui/react/toggle'\nimport { ToggleGroup } from '@base-ui/react/toggle-group'\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretRightIcon,\n MagnifyingGlassIcon,\n PlusIcon,\n XIcon,\n} from '@phosphor-icons/react'\nimport { useRef, useState } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport type { FilterOp, SortRule } from '../../types/query'\nimport type { RemoteLabels } from '../cells/remote-labels'\nimport { TYPE_SPECS } from '../cells/specs'\nimport { useDataTableContext } from '../provider'\nimport { BottomSheet } from '../ui/bottom-sheet'\nimport { changeOperator, defaultOperator, isComplete, opLabel, operatorsOf, type Chip, type Summary } from './model'\nimport { TYPE_ICONS } from './type-icons'\nimport { ValueEditor } from './value-editor'\n\ntype Level = 'main' | 'editor' | 'picker'\n\nexport function FiltersSheet({\n open,\n onOpenChange,\n column,\n columns,\n chips,\n sort,\n rows,\n labels,\n summaryOf,\n currenciesOf,\n onApply,\n}: {\n open: boolean\n onOpenChange: (open: boolean) => void\n /** Verilirse doğrudan o sütunun editörüyle açılır (çip, header hunisi, picker). */\n column?: string\n columns: ColumnDef[]\n chips: Chip[]\n sort: SortRule[]\n rows: object[]\n labels: RemoteLabels\n summaryOf: (chip: Chip) => Summary\n currenciesOf: (def: ColumnDef) => string[]\n onApply: (chips: Chip[], sort: SortRule[]) => void\n}) {\n const { i18n } = useDataTableContext()\n const defOf = (id: string) => columns.find((c) => c.id === id)\n const headerOf = (id: string) => defOf(id)?.header ?? id\n\n /** Var olan taslak çipi açar, yoksa varsayılan operatörle oluşturur. boolean'ın editörü yok: dokunuş Yes ↔ No. */\n const editIn = (list: Chip[], id: string): { draft: Chip[]; editing: string | null } => {\n const def = defOf(id)\n if (!def) return { draft: list, editing: null }\n const existing = list.find((c) => c.column === id)\n if (def.type === 'boolean')\n return {\n draft: existing\n ? list.map((c) => (c === existing ? { ...c, value: c.value !== true } : c))\n : [...list, { column: id, op: defaultOperator(def), value: true }],\n editing: null,\n }\n return { draft: existing ? list : [...list, { column: id, op: defaultOperator(def) }], editing: id }\n }\n const [start] = useState(() => (column ? editIn(chips, column) : { draft: chips, editing: null }))\n const [draft, setDraft] = useState<Chip[]>(start.draft)\n // shortcut: telefonda tek sıralama kuralı; çoklu sıralama masaüstünde (ikincil kurallar Show results'ta düşer).\n const [draftSort, setDraftSort] = useState<SortRule | null>(sort[0] ?? null)\n const [editing, setEditing] = useState<string | null>(start.editing)\n const [level, setLevel] = useState<Level>(start.editing ? 'editor' : 'main')\n const [q, setQ] = useState('')\n const editor = useRef<HTMLDivElement>(null)\n\n const filterable = columns.filter((c) => c.filterable ?? TYPE_SPECS[c.type].filterable)\n const sortable = columns.filter((c) => c.sortable ?? TYPE_SPECS[c.type].sortable)\n const drafted = (id: string) => draft.some((c) => c.column === id)\n const suggested = filterable.filter((c) => c.suggested && !drafted(c.id as string))\n const needle = q.toLocaleLowerCase()\n const pickable = filterable.filter(\n (c) => !drafted(c.id as string) && (!q || c.header.toLocaleLowerCase().includes(needle)),\n )\n const chip = draft.find((c) => c.column === editing) ?? null\n const chipDef = editing ? defOf(editing) : undefined\n\n const edit = (id: string) => {\n const next = editIn(draft, id)\n setDraft(next.draft)\n if (!next.editing) return\n setEditing(next.editing)\n setLevel('editor')\n }\n // Updater'lar: metin editörü Enter'da aynı olayda önce değeri yazar sonra Done der; `back` güncel taslağı görmeli.\n const replace = (next: Chip) => setDraft((d) => d.map((c) => (c.column === next.column ? next : c)))\n const remove = (id: string) => setDraft((d) => d.filter((c) => c.column !== id))\n /** Geri / Done: değer seçilmemiş çip taslaktan düşer (04 §1). */\n const back = () => {\n if (chipDef) setDraft((d) => d.filter((c) => c.column !== editing || isComplete(c, chipDef.type)))\n setEditing(null)\n setLevel('main')\n }\n const apply = () => {\n onApply(\n draft.filter((c) => isComplete(c, defOf(c.column)!.type)),\n draftSort ? [draftSort] : [],\n )\n onOpenChange(false)\n }\n const title =\n level === 'main'\n ? i18n.t('mobile.filters')\n : level === 'picker'\n ? i18n.t('filter.addFilter')\n : (chipDef?.header ?? '')\n const count = Array.isArray(chip?.value) ? chip.value.length : 1\n\n return (\n <BottomSheet\n open={open}\n onOpenChange={onOpenChange}\n title={title}\n className=\"dt-filters-sheet\"\n headStart={\n level !== 'main' && (\n <button type=\"button\" className=\"dt-bsheet-back\" aria-label={i18n.t('mobile.backToFilters')} onClick={back}>\n <CaretLeftIcon size={20} aria-hidden=\"true\" />\n </button>\n )\n }\n headEnd={\n level === 'main' ? (\n <button type=\"button\" className=\"dt-bsheet-action\" onClick={() => setDraft([])}>\n {i18n.t('filter.clearAll')}\n </button>\n ) : (\n level === 'editor' && (\n <button\n type=\"button\"\n className=\"dt-bsheet-action\"\n disabled={chip?.value === undefined}\n onClick={() => {\n // Devre dışı kalacak düğmeden odak body'ye düşmesin: değer alanına (operatör seçicisi hariç).\n editor.current?.querySelector<HTMLElement>('input, textarea, button')?.focus()\n if (chip) replace({ ...chip, value: undefined })\n }}\n >\n {i18n.t('common.clear')}\n </button>\n )\n )\n }\n foot={\n level === 'editor' ? (\n <button type=\"button\" className=\"dt-bsheet-primary\" onClick={back}>\n {i18n.t('common.done')}\n </button>\n ) : (\n <button type=\"button\" className=\"dt-bsheet-primary\" onClick={apply}>\n {i18n.t('mobile.showResults')}\n </button>\n )\n }\n >\n {level === 'main' && (\n <>\n {draft.map((c) => (\n <div key={c.column} className=\"dt-bsheet-row is-split\">\n <button type=\"button\" className=\"dt-bsheet-row-main\" onClick={() => edit(c.column)}>\n <span className=\"dt-bsheet-field\">{headerOf(c.column)}</span>\n <span className=\"dt-bsheet-value is-strong\">{summaryOf(c).text}</span>\n </button>\n <button\n type=\"button\"\n className=\"dt-bsheet-x\"\n aria-label={i18n.t('filter.removeAria', { column: headerOf(c.column) })}\n onClick={() => remove(c.column)}\n >\n <XIcon size={16} aria-hidden=\"true\" />\n </button>\n </div>\n ))}\n {suggested.length > 0 && (\n <>\n <div className=\"dt-bsheet-label\">{i18n.t('picker.suggested')}</div>\n {suggested.map((c) => (\n <button key={c.id} type=\"button\" className=\"dt-bsheet-row\" onClick={() => edit(c.id as string)}>\n <span className=\"dt-bsheet-field\">{c.header}</span>\n <span className=\"dt-bsheet-value\">{i18n.t('common.any')}</span>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n ))}\n </>\n )}\n <button type=\"button\" className=\"dt-bsheet-row is-accent\" onClick={() => setLevel('picker')}>\n <PlusIcon size={18} aria-hidden=\"true\" />\n {i18n.t('filter.addFilter')}\n </button>\n <div className=\"dt-bsheet-sep\" />\n <div className=\"dt-bsheet-label\">{i18n.t('mobile.sort')}</div>\n <div className=\"dt-bsheet-row is-sort\">\n <label className=\"dt-select dt-bsheet-select\">\n <select\n value={draftSort?.column ?? ''}\n aria-label={i18n.t('mobile.sort')}\n onChange={(e) =>\n setDraftSort(e.target.value ? { column: e.target.value, dir: draftSort?.dir ?? 'asc' } : null)\n }\n >\n <option value=\"\">{i18n.t('common.empty')}</option>\n {sortable.map((c) => (\n <option key={c.id} value={c.id}>\n {c.header}\n </option>\n ))}\n </select>\n <CaretDownIcon size={14} aria-hidden=\"true\" />\n </label>\n <ToggleGroup\n className=\"dt-seg dt-bsheet-dir\"\n value={draftSort ? [draftSort.dir] : []}\n disabled={!draftSort}\n onValueChange={(v) => {\n const dir = v[0]\n if ((dir === 'asc' || dir === 'desc') && draftSort) setDraftSort({ ...draftSort, dir })\n }}\n >\n {(['asc', 'desc'] as const).map((d) => (\n <Toggle\n key={d}\n className=\"dt-seg-item\"\n value={d}\n data-state={draftSort?.dir === d ? 'on' : 'off'}\n aria-label={i18n.t(d === 'asc' ? 'header.sortAsc' : 'header.sortDesc')}\n >\n {d === 'asc' ? (\n <ArrowUpIcon size={16} aria-hidden=\"true\" />\n ) : (\n <ArrowDownIcon size={16} aria-hidden=\"true\" />\n )}\n </Toggle>\n ))}\n </ToggleGroup>\n </div>\n </>\n )}\n\n {level === 'picker' && (\n <>\n <label className=\"dt-input has-icon dt-bsheet-search\">\n <span className=\"dt-input-icon\">\n <MagnifyingGlassIcon size={16} aria-hidden=\"true\" />\n </span>\n <input\n type=\"search\"\n value={q}\n placeholder={i18n.t('picker.search')}\n aria-label={i18n.t('picker.search')}\n onChange={(e) => setQ(e.target.value)}\n />\n </label>\n {pickable.map((c) => {\n const Icon = TYPE_ICONS[c.type]\n return (\n <button key={c.id} type=\"button\" className=\"dt-bsheet-row\" onClick={() => edit(c.id as string)}>\n <Icon size={16} className=\"dt-bsheet-icon\" aria-hidden=\"true\" />\n {c.header}\n </button>\n )\n })}\n {pickable.length === 0 && <div className=\"dt-options-empty\">{i18n.t('picker.noMatch')}</div>}\n </>\n )}\n\n {level === 'editor' && chip && chipDef && (\n <div ref={editor} className=\"dt-bsheet-editor\">\n <label className=\"dt-select dt-bsheet-select\">\n <select\n value={chip.op}\n aria-label={i18n.t('mobile.operator')}\n onChange={(e) => replace(changeOperator(chip, e.target.value as FilterOp, chipDef.type))}\n >\n {operatorsOf(chipDef).map((op) => (\n <option key={op} value={op}>\n {opLabel(i18n, op, chipDef.type, count)}\n </option>\n ))}\n </select>\n <CaretDownIcon size={14} aria-hidden=\"true\" />\n </label>\n <ValueEditor\n chip={chip}\n column={chipDef}\n rows={rows}\n labels={labels}\n currencies={currenciesOf(chipDef)}\n onChange={replace}\n onDone={back}\n />\n </div>\n )}\n </BottomSheet>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"filters-sheet-DAf-n-Nv.js","names":["Toggle","ToggleGroup","ArrowDownIcon","ArrowUpIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","MagnifyingGlassIcon","PlusIcon","XIcon","useRef","useState","ColumnDef","FilterOp","SortRule","RemoteLabels","TYPE_SPECS","useDataTableContext","BottomSheet","changeOperator","defaultOperator","isComplete","opLabel","operatorsOf","Chip","Summary","TYPE_ICONS","ValueEditor","Level","FiltersSheet","t0","$","_c","open","onOpenChange","column","columns","chips","sort","rows","labels","summaryOf","currenciesOf","onApply","i18n","t1","id","find","c","defOf","t2","id_0","header","headerOf","t3","list","id_1","def","draft","editing","existing","c_0","type","map","c_1","value","op","editIn","t4","start","setDraft","draftSort","setDraftSort","setEditing","level","setLevel","q","setQ","editor","filterable","filter","_temp","sortable","_temp2","t5","id_2","some","c_4","drafted","t6","c_5","suggested","needle","toLocaleLowerCase","pickable","c_6","includes","chip","c_7","chipDef","undefined","t7","id_3","next","edit","t8","Symbol","for","next_0","d","c_8","replace","t9","id_4","d_0","c_9","remove","back","d_1","c_10","t10","c_11","apply","title","t","count","Array","isArray","length","T0","t11","t12","t13","current","querySelector","focus","t14","t15","c_12","text","c_13","e","target","dir","_temp3","v","const","d_2","t16","e_0","c_15","Icon","t17","e_1","t18","c_14","c_3","c_2","_c","_Fragment","TYPE_SPECS","ValueEditor","TYPE_ICONS","BottomSheet","useDataTableContext","operatorsOf","defaultOperator","opLabel","changeOperator","Fragment$1","FiltersSheet","$","c","t0","t1","columns","id","defOf","t2","id_0","headerOf","t3","def","id_1","list","existing","c_0","c_1","editIn","t4","chips","column","start","useState","draft","setDraft","draftSort","setDraftSort","sort","editing","setEditing","level","setLevel","q","setQ","editor","useRef","filterable","_temp","sortable","_temp2","t5","c_4","id_2","drafted","t6","c_5","suggested","needle","pickable","c_6","chip","c_7","chipDef","t7","next","id_3","edit","t8","d","c_8","next_0","replace","t9","d_0","c_9","id_4","remove","back","d_1","c_10","isComplete","t10","onApply","onOpenChange","c_11","apply","title","i18n","count","T0","t12","CaretLeftIcon","t13","t14","t15","c_12","summaryOf","XIcon","c_13","CaretRightIcon","PlusIcon","_temp3","CaretDownIcon","ToggleGroup","dir","v","Toggle","d_2","jsx","ArrowUpIcon","ArrowDownIcon","t16","MagnifyingGlassIcon","e_0","Icon","c_15","t17","e_1","op","currenciesOf","t18","open","c_14","c_3","c_2"],"sources":["../src/core/filters/filters-sheet.tsx"],"sourcesContent":["// Telefon Filters alt sayfası (04 §9, handoff 04 §6.1–6.2, T13-04/05): uygulanmış filtreler · Suggested · Add filter · Sort ·\n// Show results. Değişiklikler taslakta birikir ve Show results'la tek seferde uygulanır (masaüstündeki anında uygulamadan\n// farklı). Değer editörü ve sütun seçici aynı sayfanın alt seviyeleridir (geri okuyla döner). Her açılışta yeniden kurulur\n// (`key`): taslak o anki çiplerden ve sıralamadan başlar.\nimport { Toggle } from '@base-ui/react/toggle'\nimport { ToggleGroup } from '@base-ui/react/toggle-group'\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretRightIcon,\n MagnifyingGlassIcon,\n PlusIcon,\n XIcon,\n} from '@phosphor-icons/react'\nimport { useRef, useState } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport type { FilterOp, SortRule } from '../../types/query'\nimport type { RemoteLabels } from '../cells/remote-labels'\nimport { TYPE_SPECS } from '../cells/specs'\nimport { useDataTableContext } from '../provider'\nimport { BottomSheet } from '../ui/bottom-sheet'\nimport { changeOperator, defaultOperator, isComplete, opLabel, operatorsOf, type Chip, type Summary } from './model'\nimport { TYPE_ICONS } from './type-icons'\nimport { ValueEditor } from './value-editor'\n\ntype Level = 'main' | 'editor' | 'picker'\n\nexport function FiltersSheet({\n open,\n onOpenChange,\n column,\n columns,\n chips,\n sort,\n rows,\n labels,\n summaryOf,\n currenciesOf,\n onApply,\n}: {\n open: boolean\n onOpenChange: (open: boolean) => void\n /** Verilirse doğrudan o sütunun editörüyle açılır (çip, header hunisi, picker). */\n column?: string\n columns: ColumnDef[]\n chips: Chip[]\n sort: SortRule[]\n rows: object[]\n labels: RemoteLabels\n summaryOf: (chip: Chip) => Summary\n currenciesOf: (def: ColumnDef) => string[]\n onApply: (chips: Chip[], sort: SortRule[]) => void\n}) {\n const { i18n } = useDataTableContext()\n const defOf = (id: string) => columns.find((c) => c.id === id)\n const headerOf = (id: string) => defOf(id)?.header ?? id\n\n /** Var olan taslak çipi açar, yoksa varsayılan operatörle oluşturur. boolean'ın editörü yok: dokunuş Yes ↔ No. */\n const editIn = (list: Chip[], id: string): { draft: Chip[]; editing: string | null } => {\n const def = defOf(id)\n if (!def) return { draft: list, editing: null }\n const existing = list.find((c) => c.column === id)\n if (def.type === 'boolean')\n return {\n draft: existing\n ? list.map((c) => (c === existing ? { ...c, value: c.value !== true } : c))\n : [...list, { column: id, op: defaultOperator(def), value: true }],\n editing: null,\n }\n return { draft: existing ? list : [...list, { column: id, op: defaultOperator(def) }], editing: id }\n }\n const [start] = useState(() => (column ? editIn(chips, column) : { draft: chips, editing: null }))\n const [draft, setDraft] = useState<Chip[]>(start.draft)\n // shortcut: telefonda tek sıralama kuralı; çoklu sıralama masaüstünde (ikincil kurallar Show results'ta düşer).\n const [draftSort, setDraftSort] = useState<SortRule | null>(sort[0] ?? null)\n const [editing, setEditing] = useState<string | null>(start.editing)\n const [level, setLevel] = useState<Level>(start.editing ? 'editor' : 'main')\n const [q, setQ] = useState('')\n const editor = useRef<HTMLDivElement>(null)\n\n const filterable = columns.filter((c) => c.filterable ?? TYPE_SPECS[c.type].filterable)\n const sortable = columns.filter((c) => c.sortable ?? TYPE_SPECS[c.type].sortable)\n const drafted = (id: string) => draft.some((c) => c.column === id)\n const suggested = filterable.filter((c) => c.suggested && !drafted(c.id as string))\n const needle = q.toLocaleLowerCase()\n const pickable = filterable.filter(\n (c) => !drafted(c.id as string) && (!q || c.header.toLocaleLowerCase().includes(needle)),\n )\n const chip = draft.find((c) => c.column === editing) ?? null\n const chipDef = editing ? defOf(editing) : undefined\n\n const edit = (id: string) => {\n const next = editIn(draft, id)\n setDraft(next.draft)\n if (!next.editing) return\n setEditing(next.editing)\n setLevel('editor')\n }\n // Updater'lar: metin editörü Enter'da aynı olayda önce değeri yazar sonra Done der; `back` güncel taslağı görmeli.\n const replace = (next: Chip) => setDraft((d) => d.map((c) => (c.column === next.column ? next : c)))\n const remove = (id: string) => setDraft((d) => d.filter((c) => c.column !== id))\n /** Geri / Done: değer seçilmemiş çip taslaktan düşer (04 §1). */\n const back = () => {\n if (chipDef) setDraft((d) => d.filter((c) => c.column !== editing || isComplete(c, chipDef.type)))\n setEditing(null)\n setLevel('main')\n }\n const apply = () => {\n onApply(\n draft.filter((c) => isComplete(c, defOf(c.column)!.type)),\n draftSort ? [draftSort] : [],\n )\n onOpenChange(false)\n }\n const title =\n level === 'main'\n ? i18n.t('mobile.filters')\n : level === 'picker'\n ? i18n.t('filter.addFilter')\n : (chipDef?.header ?? '')\n const count = Array.isArray(chip?.value) ? chip.value.length : 1\n\n return (\n <BottomSheet\n open={open}\n onOpenChange={onOpenChange}\n title={title}\n className=\"dt-filters-sheet\"\n headStart={\n level !== 'main' && (\n <button type=\"button\" className=\"dt-bsheet-back\" aria-label={i18n.t('mobile.backToFilters')} onClick={back}>\n <CaretLeftIcon size={20} aria-hidden=\"true\" />\n </button>\n )\n }\n headEnd={\n level === 'main' ? (\n <button type=\"button\" className=\"dt-bsheet-action\" onClick={() => setDraft([])}>\n {i18n.t('filter.clearAll')}\n </button>\n ) : (\n level === 'editor' && (\n <button\n type=\"button\"\n className=\"dt-bsheet-action\"\n disabled={chip?.value === undefined}\n onClick={() => {\n // Devre dışı kalacak düğmeden odak body'ye düşmesin: değer alanına (operatör seçicisi hariç).\n editor.current?.querySelector<HTMLElement>('input, textarea, button')?.focus()\n if (chip) replace({ ...chip, value: undefined })\n }}\n >\n {i18n.t('common.clear')}\n </button>\n )\n )\n }\n foot={\n level === 'editor' ? (\n <button type=\"button\" className=\"dt-bsheet-primary\" onClick={back}>\n {i18n.t('common.done')}\n </button>\n ) : (\n <button type=\"button\" className=\"dt-bsheet-primary\" onClick={apply}>\n {i18n.t('mobile.showResults')}\n </button>\n )\n }\n >\n {level === 'main' && (\n <>\n {draft.map((c) => (\n <div key={c.column} className=\"dt-bsheet-row is-split\">\n <button type=\"button\" className=\"dt-bsheet-row-main\" onClick={() => edit(c.column)}>\n <span className=\"dt-bsheet-field\">{headerOf(c.column)}</span>\n <span className=\"dt-bsheet-value is-strong\">{summaryOf(c).text}</span>\n </button>\n <button\n type=\"button\"\n className=\"dt-bsheet-x\"\n aria-label={i18n.t('filter.removeAria', { column: headerOf(c.column) })}\n onClick={() => remove(c.column)}\n >\n <XIcon size={16} aria-hidden=\"true\" />\n </button>\n </div>\n ))}\n {suggested.length > 0 && (\n <>\n <div className=\"dt-bsheet-label\">{i18n.t('picker.suggested')}</div>\n {suggested.map((c) => (\n <button key={c.id} type=\"button\" className=\"dt-bsheet-row\" onClick={() => edit(c.id as string)}>\n <span className=\"dt-bsheet-field\">{c.header}</span>\n <span className=\"dt-bsheet-value\">{i18n.t('common.any')}</span>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n ))}\n </>\n )}\n <button type=\"button\" className=\"dt-bsheet-row is-accent\" onClick={() => setLevel('picker')}>\n <PlusIcon size={18} aria-hidden=\"true\" />\n {i18n.t('filter.addFilter')}\n </button>\n <div className=\"dt-bsheet-sep\" />\n <div className=\"dt-bsheet-label\">{i18n.t('mobile.sort')}</div>\n <div className=\"dt-bsheet-row is-sort\">\n <label className=\"dt-select dt-bsheet-select\">\n <select\n value={draftSort?.column ?? ''}\n aria-label={i18n.t('mobile.sort')}\n onChange={(e) =>\n setDraftSort(e.target.value ? { column: e.target.value, dir: draftSort?.dir ?? 'asc' } : null)\n }\n >\n <option value=\"\">{i18n.t('common.empty')}</option>\n {sortable.map((c) => (\n <option key={c.id} value={c.id}>\n {c.header}\n </option>\n ))}\n </select>\n <CaretDownIcon size={14} aria-hidden=\"true\" />\n </label>\n <ToggleGroup\n className=\"dt-seg dt-bsheet-dir\"\n value={draftSort ? [draftSort.dir] : []}\n disabled={!draftSort}\n onValueChange={(v) => {\n const dir = v[0]\n if ((dir === 'asc' || dir === 'desc') && draftSort) setDraftSort({ ...draftSort, dir })\n }}\n >\n {(['asc', 'desc'] as const).map((d) => (\n <Toggle\n key={d}\n className=\"dt-seg-item\"\n value={d}\n data-state={draftSort?.dir === d ? 'on' : 'off'}\n aria-label={i18n.t(d === 'asc' ? 'header.sortAsc' : 'header.sortDesc')}\n >\n {d === 'asc' ? (\n <ArrowUpIcon size={16} aria-hidden=\"true\" />\n ) : (\n <ArrowDownIcon size={16} aria-hidden=\"true\" />\n )}\n </Toggle>\n ))}\n </ToggleGroup>\n </div>\n </>\n )}\n\n {level === 'picker' && (\n <>\n <label className=\"dt-input has-icon dt-bsheet-search\">\n <span className=\"dt-input-icon\">\n <MagnifyingGlassIcon size={16} aria-hidden=\"true\" />\n </span>\n <input\n type=\"search\"\n value={q}\n placeholder={i18n.t('picker.search')}\n aria-label={i18n.t('picker.search')}\n onChange={(e) => setQ(e.target.value)}\n />\n </label>\n {pickable.map((c) => {\n const Icon = TYPE_ICONS[c.type]\n return (\n <button key={c.id} type=\"button\" className=\"dt-bsheet-row\" onClick={() => edit(c.id as string)}>\n <Icon size={16} className=\"dt-bsheet-icon\" aria-hidden=\"true\" />\n {c.header}\n </button>\n )\n })}\n {pickable.length === 0 && <div className=\"dt-options-empty\">{i18n.t('picker.noMatch')}</div>}\n </>\n )}\n\n {level === 'editor' && chip && chipDef && (\n <div ref={editor} className=\"dt-bsheet-editor\">\n <label className=\"dt-select dt-bsheet-select\">\n <select\n value={chip.op}\n aria-label={i18n.t('mobile.operator')}\n onChange={(e) => replace(changeOperator(chip, e.target.value as FilterOp, chipDef.type))}\n >\n {operatorsOf(chipDef).map((op) => (\n <option key={op} value={op}>\n {opLabel(i18n, op, chipDef.type, count)}\n </option>\n ))}\n </select>\n <CaretDownIcon size={14} aria-hidden=\"true\" />\n </label>\n <ValueEditor\n chip={chip}\n column={chipDef}\n rows={rows}\n labels={labels}\n currencies={currenciesOf(chipDef)}\n onChange={replace}\n onDone={back}\n />\n </div>\n )}\n </BottomSheet>\n )\n}\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -195,7 +195,7 @@ export declare function createLocalStorageViews(options: {
195
195
  scope: string;
196
196
  }): ViewsAdapter;
197
197
 
198
- export declare function DataTable<Row extends object>({ table, result, label, empty, toolbar, toolbarEnd, notice, searchPlaceholder, autoRefresh, onPrint, exportable, onExport, shortcuts, onRowClick, rowClick, onRowOpen, rowActions, selectable, selectionBar, bulkActions, selectionActions, onSelectionChange, renderExpanded, canExpand, rowError, }: {
198
+ export declare function DataTable<Row extends object>({ table, result, label, empty, toolbar, toolbarEnd, notice, searchPlaceholder, autoRefresh, onPrint, exportable, onExport, shortcuts, onRowClick, rowClick, onRowOpen, rowActions, selectable, selectionBar, bulkActions, selectionActions, onSelectionChange, renderExpanded, canExpand, rowError, reorder, }: {
199
199
  table: DataTableInstance<Row>;
200
200
  /** Sunucu modu: `useQuery` sonucu, dönüştürmeden (R4). İstemci modunda verilmez. */
201
201
  result?: DataTableResult<Row>;
@@ -267,6 +267,8 @@ export declare function DataTable<Row extends object>({ table, result, label, em
267
267
  /** Satır hatası (D35): metin ya da metin listesi → hata zemini, ⋯ hücresinde uyarı ikonu, satırda tooltip. Harita
268
268
  * uygulamanın: paket hata saklamaz, temizlemez. */
269
269
  rowError?: (row: Row) => string | string[] | null | undefined;
270
+ /** Satır sıralama (R21): verilince satırın başında tutamak; paket taşımayı komşularıyla bildirir, numara üretmez. */
271
+ reorder?: RowReorder<Row>;
270
272
  }): JSX.Element;
271
273
 
272
274
  export declare interface DataTableContext {
@@ -507,6 +509,21 @@ export declare type RowClickMode = 'none' | 'open' | 'expand';
507
509
 
508
510
  export declare type RowKey = string | number;
509
511
 
512
+ /** Satır taşıma (R21): `after` yeni yerde üstte kalan, `before` altta kalan satır; liste başı / sonu → `null`. */
513
+ export declare interface RowMove<Row = unknown> {
514
+ row: Row;
515
+ after: Row | null;
516
+ before: Row | null;
517
+ }
518
+
519
+ /** Satır sıralama (R21): varsayılan kapalı; verilince satırın başında tutamak. Paket numara üretmez, taşımayı bildirir. */
520
+ export declare interface RowReorder<Row = any> {
521
+ /** true veya gerekçe metni → tutamak pasif, gerekçe tooltip'te. Sıranın anlamlı olduğu durumu uygulama bilir. */
522
+ disabled?: boolean | string;
523
+ /** Bırakınca. Promise reddedilirse eski sıraya döner; hata mesajı uygulamanın (D20). */
524
+ onMove: (move: RowMove<Row>) => void | Promise<unknown>;
525
+ }
526
+
510
527
  export declare interface SortRule {
511
528
  column: string;
512
529
  dir: 'asc' | 'desc';
@@ -573,6 +590,9 @@ export declare function useDataTable<Row extends object>(options: UseDataTableOp
573
590
  };
574
591
  views: {
575
592
  all: View[];
593
+ defaultId: string | null;
594
+ activeId: string | null;
595
+ current: ViewState;
576
596
  sections: {
577
597
  system: View[];
578
598
  personal: View[];
@@ -583,6 +603,7 @@ export declare function useDataTable<Row extends object>(options: UseDataTableOp
583
603
  canSave: boolean;
584
604
  hasDraft: (id: string) => boolean;
585
605
  writable: (v: View | null) => boolean;
606
+ setDefault: (id: string | null) => void;
586
607
  select: (id: string) => void;
587
608
  saveChanges: () => Promise<void>;
588
609
  discard: () => void;
@@ -669,12 +690,18 @@ export declare interface UseDataTableOptions<Row extends object> {
669
690
  density?: Density;
670
691
  /** Boş durum, hata ve sayfa metinlerinde: { one: 'order', other: 'orders' }. Verilmezse `id`. */
671
692
  entityName?: Plural;
672
- /** Controlled alanlar (R5). */
693
+ /**
694
+ * Controlled durum (R5). Verilince tablonun durumu yalnızca budur; eksik alan varsayılandır: görünüm → varsayılan
695
+ * görünüm, filtre ve sıralama → görünümün kayıtlısı, arama boş, sayfa 1, sayfa boyutu tercih.
696
+ */
673
697
  state?: Partial<TableState>;
674
698
  /** Uncontrolled başlangıç. */
675
699
  initialState?: Partial<TableState>;
676
- /** Her değişimde tam durum; controlled alanlar burada güncellenir. */
677
- onStateChange?: (state: TableState) => void;
700
+ /**
701
+ * Her değişimde: tam durum ve yalnızca varsayılandan farklı alanlar (`changed`). Adrese `changed` yazılır; boşsa
702
+ * adres temizdir. Açılışta çağrılmaz.
703
+ */
704
+ onStateChange?: (state: TableState, changed: Partial<TableState>) => void;
678
705
  /** Tercih yoksa sayfa boyutu. Varsayılan 100. */
679
706
  pageSize?: number;
680
707
  /** Varsayılan [50, 100, 250, 500]. */