@nar-bus/ui-kit 1.16.0 → 1.17.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.
- package/dist/hooks/useAnchoredPanel.d.ts +5 -1
- package/dist/hooks/useAnchoredPanel.d.ts.map +1 -1
- package/dist/i18n/en.json.d.ts +5 -1
- package/dist/i18n/resources.d.ts +8 -0
- package/dist/i18n/resources.d.ts.map +1 -1
- package/dist/i18n/resources.js +1 -1
- package/dist/i18n/tr.json.d.ts +5 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3119 -2730
- package/dist/molecules/DatePicker.d.ts +17 -1
- package/dist/molecules/DatePicker.d.ts.map +1 -1
- package/dist/molecules/DateRangePicker.d.ts +57 -2
- package/dist/molecules/DateRangePicker.d.ts.map +1 -1
- package/dist/molecules/index.d.ts +2 -2
- package/dist/molecules/index.d.ts.map +1 -1
- package/dist/organisms/FilterPanel.d.ts +5 -3
- package/dist/organisms/FilterPanel.d.ts.map +1 -1
- package/dist/resources-BQ_Yozb9.js +52 -0
- package/dist/utils/anchoredPanelPosition.d.ts +22 -0
- package/dist/utils/anchoredPanelPosition.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/resources-ft4nSl4f.js +0 -52
|
@@ -1,12 +1,28 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface DatePickerPreset {
|
|
3
|
+
/** Button content. ReactNode so a caller can pass a badge/formatted fragment. */
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
/** Fired on click/Enter. The caller applies its own state (single date OR a range). */
|
|
6
|
+
onSelect: () => void;
|
|
7
|
+
}
|
|
1
8
|
export interface DatePickerProps {
|
|
2
9
|
value?: Date | null;
|
|
3
10
|
onChange?: (date: Date | null) => void;
|
|
4
11
|
placeholder?: string;
|
|
12
|
+
/** Earliest selectable DAY — compared on day boundaries, so a time-of-day component never half-disables its own date. */
|
|
5
13
|
min?: Date;
|
|
14
|
+
/** Latest selectable DAY — see `min`. */
|
|
6
15
|
max?: Date;
|
|
7
16
|
disabled?: boolean;
|
|
8
17
|
error?: string;
|
|
9
18
|
className?: string;
|
|
19
|
+
/** Shortcut buttons rendered as a left column inside the calendar popover. */
|
|
20
|
+
presets?: DatePickerPreset[];
|
|
21
|
+
/** ARIA forwarding — injected by FormField via cloneElement (mirrors Select) */
|
|
22
|
+
"aria-invalid"?: boolean | "true" | "false";
|
|
23
|
+
"aria-describedby"?: string;
|
|
24
|
+
"aria-required"?: boolean | "true" | "false";
|
|
25
|
+
id?: string;
|
|
10
26
|
}
|
|
11
|
-
export declare function DatePicker({ value, onChange, placeholder, min, max, disabled, error, className, }: DatePickerProps): import("react").JSX.Element;
|
|
27
|
+
export declare function DatePicker({ value, onChange, placeholder, min, max, disabled, error, className, presets, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, "aria-required": ariaRequired, id, }: DatePickerProps): import("react").JSX.Element;
|
|
12
28
|
//# sourceMappingURL=DatePicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/molecules/DatePicker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/molecules/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAuBzG,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,KAAK,EAAE,SAAS,CAAC;IACjB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yHAAyH;IACzH,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,yCAAyC;IACzC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,GAAG,EACH,GAAG,EACH,QAAQ,EACR,KAAK,EACL,SAAS,EACT,OAAO,EACP,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,eAAe,EAAE,YAAY,EAC7B,EAAE,GACH,EAAE,eAAe,+BAwZjB"}
|
|
@@ -1,13 +1,68 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
1
2
|
export interface DateRange {
|
|
2
3
|
start: Date | null;
|
|
3
4
|
end: Date | null;
|
|
4
5
|
}
|
|
6
|
+
export interface DateRangePreset {
|
|
7
|
+
/** Button content. ReactNode so a caller can pass a badge/formatted fragment. */
|
|
8
|
+
label: ReactNode;
|
|
9
|
+
/** Produces the range to apply. Returns a value (unlike DatePickerPreset's
|
|
10
|
+
* `onSelect` callback) so the component can clamp it to min/max and jump the
|
|
11
|
+
* grid to it — a fire-and-forget callback could do neither. */
|
|
12
|
+
range: () => DateRange;
|
|
13
|
+
}
|
|
5
14
|
export interface DateRangePickerProps {
|
|
6
15
|
value: DateRange;
|
|
7
16
|
onChange: (range: DateRange) => void;
|
|
8
|
-
|
|
17
|
+
/**
|
|
18
|
+
* `true` (default) renders the built-in proximity-ordered quick ranges,
|
|
19
|
+
* `false` renders no column, and an array supplies your own — so a consumer
|
|
20
|
+
* with a domain-specific shortcut ("Son 6 Ay", "Bu Çeyrek") extends the
|
|
21
|
+
* control through the API instead of forking it.
|
|
22
|
+
*/
|
|
23
|
+
presets?: boolean | DateRangePreset[];
|
|
24
|
+
/**
|
|
25
|
+
* Earliest selectable DAY. Days before it are aria-disabled and presets clamp
|
|
26
|
+
* to it. Compared on day boundaries, so a time-of-day component never
|
|
27
|
+
* half-disables its own date.
|
|
28
|
+
*/
|
|
29
|
+
min?: Date;
|
|
30
|
+
/** Latest selectable DAY. Days after it are aria-disabled; presets clamp to it. */
|
|
31
|
+
max?: Date;
|
|
9
32
|
disabled?: boolean;
|
|
33
|
+
/** Marks the field invalid (chrome only — FormField renders the message). */
|
|
34
|
+
error?: string;
|
|
10
35
|
className?: string;
|
|
36
|
+
/** ARIA forwarding — injected by FormField via cloneElement (mirrors Select) */
|
|
37
|
+
"aria-invalid"?: boolean | "true" | "false";
|
|
38
|
+
"aria-describedby"?: string;
|
|
39
|
+
"aria-required"?: boolean | "true" | "false";
|
|
40
|
+
id?: string;
|
|
11
41
|
}
|
|
12
|
-
|
|
42
|
+
/**
|
|
43
|
+
* DateRangePicker — ONE console-baseline input carrying BOTH bounds
|
|
44
|
+
* ("start — end"), backed by a single portaled calendar.
|
|
45
|
+
*
|
|
46
|
+
* It used to compose two DatePickers side by side with a preset button row
|
|
47
|
+
* underneath; both bounds now live in one field, and the shortcuts ride a
|
|
48
|
+
* proximity-ordered column INSIDE the popover (nearest range first), so the
|
|
49
|
+
* whole control fits a narrow filter rail.
|
|
50
|
+
*
|
|
51
|
+
* Selection is two-click: the first day drafts the start (and emits the
|
|
52
|
+
* half-open range immediately, since a start-only range is a legal filter),
|
|
53
|
+
* the second closes it — picked backwards, the bounds swap. Hovering between
|
|
54
|
+
* the two clicks previews the span.
|
|
55
|
+
*
|
|
56
|
+
* The panel portals to document.body (NB-POPOVER-01) so no overflow-y-auto
|
|
57
|
+
* ancestor can clip it, which also puts it OUTSIDE any enclosing focus-trap —
|
|
58
|
+
* hence it owns its own two-zone keyboard engine (preset column ↔ day grid),
|
|
59
|
+
* exactly like DatePicker's.
|
|
60
|
+
*
|
|
61
|
+
* `min`/`max`/`error` and array-valued `presets` mirror DatePicker's surface so
|
|
62
|
+
* a range field is as expressible as a single-date one: a consumer bounds the
|
|
63
|
+
* allowed window, flags the field invalid from its OWN validation (the rule
|
|
64
|
+
* stays in the consumer — the package only renders the invalid chrome), and
|
|
65
|
+
* supplies domain shortcuts, all without forking the component.
|
|
66
|
+
*/
|
|
67
|
+
export declare function DateRangePicker({ value, onChange, presets, min, max, disabled, error, className, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, "aria-required": ariaRequired, id, }: DateRangePickerProps): import("react").JSX.Element;
|
|
13
68
|
//# sourceMappingURL=DateRangePicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../src/molecules/DateRangePicker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../src/molecules/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA2BzG,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,KAAK,EAAE,SAAS,CAAC;IACjB;;oEAEgE;IAChE,KAAK,EAAE,MAAM,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,EAAE,CAAC;IACtC;;;;OAIG;IACH,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,mFAAmF;IACnF,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,OAAc,EACd,GAAG,EACH,GAAG,EACH,QAAQ,EACR,KAAK,EACL,SAAS,EACT,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,eAAe,EAAE,YAAY,EAC7B,EAAE,GACH,EAAE,oBAAoB,+BAwjBtB"}
|
|
@@ -10,8 +10,8 @@ export { KpiCard, type KpiCardProps } from './KpiCard';
|
|
|
10
10
|
export { EmptyState, type EmptyStateProps } from './EmptyState';
|
|
11
11
|
export { ConfirmDialog, type ConfirmDialogProps } from './ConfirmDialog';
|
|
12
12
|
export { EntityConfirmDialog, type EntityConfirmDialogProps } from './EntityConfirmDialog';
|
|
13
|
-
export { DatePicker, type DatePickerProps } from './DatePicker';
|
|
14
|
-
export { DateRangePicker, type DateRangePickerProps, type DateRange } from './DateRangePicker';
|
|
13
|
+
export { DatePicker, type DatePickerProps, type DatePickerPreset } from './DatePicker';
|
|
14
|
+
export { DateRangePicker, type DateRangePickerProps, type DateRange, type DateRangePreset } from './DateRangePicker';
|
|
15
15
|
export { DateTimeInput, type DateTimeInputProps } from './DateTimeInput';
|
|
16
16
|
export { ColorPicker, type ColorPickerProps, type ColorPreset } from './ColorPicker';
|
|
17
17
|
export { Combobox, type ComboboxProps, type ComboboxOption } from './Combobox';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACjI,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACjI,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAClI,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -64,9 +64,11 @@ export interface FilterField {
|
|
|
64
64
|
*/
|
|
65
65
|
toKey?: string;
|
|
66
66
|
/**
|
|
67
|
-
* For `type: "daterange"` —
|
|
68
|
-
* quick-range
|
|
69
|
-
*
|
|
67
|
+
* For `type: "daterange"` — offer the underlying `DateRangePicker`'s
|
|
68
|
+
* quick-range shortcuts (Today / Yesterday / Last 7 days / … / Last year).
|
|
69
|
+
* They render as a column INSIDE the portaled calendar popover, so the 280px
|
|
70
|
+
* rail's width no longer constrains them; the default stays off so an
|
|
71
|
+
* existing rail's popover keeps its current footprint unless opted in.
|
|
70
72
|
* @default false
|
|
71
73
|
*/
|
|
72
74
|
presets?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPanel.d.ts","sourceRoot":"","sources":["../../src/organisms/FilterPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAwB5D,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB;;0FAEsF;IACtF,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;+EAC2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf
|
|
1
|
+
{"version":3,"file":"FilterPanel.d.ts","sourceRoot":"","sources":["../../src/organisms/FilterPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAwB5D,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB;;0FAEsF;IACtF,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;+EAC2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAiMD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC/C;;;oEAGgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,MAAM,EAAE,cAAc,EACtB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,aAAoB,GACrB,EAAE,gBAAgB,+BAwQlB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const l = { ara: "Ara...", filtre: "Filtre", kaydet: "Kaydet", iptal: "İptal", sil: "Sil", duzenle: "Düzenle", ekle: "Ekle", kapat: "Kapat", daha_fazla: "Daha fazla", temizle: "Temizle", tamam: "Tamam", geri: "Geri", ileri: "İleri", devam: "Devam", calistir: "Çalıştır", onayla: "Onayla", gonder: "Gönder", yukle: "Yükle", indir: "İndir", kopyala: "Kopyala", kopyalandi: "Kopyalandı", yapistir: "Yapıştır", sec: "Seç", vazgec: "Vazgeç", detay: "Detay", detaya_git: "Detaya Git", yenile: "Yenile", disa_aktar: "Dışa Aktar", evet: "Evet", hayir: "Hayır", tumu: "Tümü", yok: "Yok", olustur: '"{{value}}" oluştur' }, s = { sayfa: "Sayfa", toplam: "Toplam", secili: "Seçili", kayit_bulunamadi: "Kayıt bulunamadı", siralama: "Sıralama", filtrele: "Filtrele", tumunu_sec: "Tümünü Seç", secimi_kaldir: "Seçimi Kaldır", satirlar: "satır", sayfa_basina: "sayfa başına", eylemler: "Eylemler" }, d = { zorunlu_alan: "Bu alan zorunludur", gecersiz_deger: "Geçersiz değer", min_karakter: "En az {{min}} karakter olmalıdır", max_karakter: "En fazla {{max}} karakter olmalıdır", email_gecersiz: "Geçerli bir e-posta adresi giriniz", sayi_gecersiz: "Geçerli bir sayı giriniz" }, u = { emin_misiniz: "Emin misiniz?", bu_islem_geri_alinamaz: "Bu işlem geri alınamaz.", onay: "Onayla", vazgec: "Vazgeç", silme_onay: "Bu kaydı silmek istediğinize emin misiniz?", silme_baslik: "Kaydı Sil", entity_silme_onay: "kalıcı olarak silinecek. Bu işlem geri alınamaz." }, m = { karanlik_mod: "Karanlık Mod", aydinlik_mod: "Aydınlık Mod", tema_degistir: "Tema Değiştir" }, y = { bugun: "Bugün", dun: "Dün", bu_hafta: "Bu Hafta", bu_ay: "Bu Ay", gecen_ay: "Geçen Ay", son_7_gun: "Son 7 Gün", son_30_gun: "Son 30 Gün", son_90_gun: "Son 90 Gün", bu_yil: "Bu Yıl", gecen_yil: "Geçen Yıl", baslangic: "Başlangıç", bitis: "Bitiş", tarih_sec: "Tarih Seçiniz", saat: "Saat", hazir_araliklar: "Hazır Aralıklar" }, c = { onceki_sayfa: "Önceki Sayfa", sonraki_sayfa: "Sonraki Sayfa", previous_page: "Önceki sayfa", next_page: "Sonraki sayfa", sayfa_x_y: "Sayfa {{current}} / {{total}}", kayit_gosteriliyor: "{{from}}-{{to}} / {{total}} kayıt gösteriliyor", ilk_sayfa: "İlk Sayfa", son_sayfa: "Son Sayfa" }, k = { kayit_bulunamadi: "Kayıt bulunamadı", henuz_veri_yok: "Henüz veri yok", sonuc_bulunamadi: "Aradığınız kriterlere uygun sonuç bulunamadı" }, g = { basarili: "Başarılı", hata: "Hata", uyari: "Uyarı", bilgi: "Bilgi", yukleniyor: "Yükleniyor...", kaydediliyor: "Kaydediliyor...", siliniyor: "Siliniyor..." }, p = { status_pending: "Bekliyor", status_valid: "Geçerli", status_invalid: "Geçersiz" }, _ = { filtre_uygula: "Filtreyi Uygula", filtreleri_temizle: "Filtreleri Temizle", aktif_filtre: "{{count}} aktif filtre", yes: "Evet", no: "Hayır", op_contains: "İçerir", op_equals: "Eşittir", op_not_equals: "Eşit Değil", op_starts_with: "Başlar", op_ends_with: "Biter", op_greater: "Büyüktür", op_less: "Küçüktür", op_greater_eq: "Büyük Eşit", op_less_eq: "Küçük Eşit", operator_sec: "Operatör seçin", secili: "Seçili" }, f = { ham_json: "Ham JSON", form_gorunumu: "Form Görünümü", formatla: "Formatla", gecersiz_json: "Geçersiz JSON formatı", kopyalandi: "Kopyalandı!", kopyala: "Kopyala", icerik: "JSON içeriği", duzenle: "Düzenle", goruntule: "Görüntüle" }, S = { bold: "Kalın", italic: "İtalik", strike: "Üstü çizili", h2: "Başlık 2", h3: "Başlık 3", bulletList: "Madde işaretli liste", orderedList: "Numaralı liste", link: "Bağlantı", unlink: "Bağlantıyı kaldır", blockquote: "Alıntı", code: "Kod", undo: "Geri al", redo: "Yinele", linkUrl: "https://…", linkApply: "Bağlantıyı uygula", linkCancel: "İptal", toolbar: "Biçimlendirme", editor: "Zengin metin editörü", linkInput: "Bağlantı adresi" }, b = { webglTitle: "WebGL kullanılamıyor", webglBody: "Bu harita yüzeyi render için WebGL gerektirir. Lütfen farklı bir tarayıcı deneyin veya yöneticinizle iletişime geçin.", layerControl: "Harita katmanları" }, h = { sifreyi_goster: "Şifreyi göster", sifreyi_gizle: "Şifreyi gizle", onceki_ay: "Önceki ay", sonraki_ay: "Sonraki ay", filtreyi_kaldir: "{{name}} filtresini kaldır", kopyala: "Kopyala", panel: "Panel", iletisim_kutusu: "İletişim kutusu", kaldir: "{{label}} seçimini kaldır", filtrele: "Seçenekleri filtrele", filtreler: "Filtreler", breadcrumb: "Yol haritası", pagination: "Sayfalama", detay_sayfasi: "Detay sayfası", filtreler_kenar: "Filtre kenar çubuğu", giris: "Giriş", rapor_kriterleri: "Rapor kriterleri" }, A = { lifecycle: { ACTIVE: "Aktif", INACTIVE: "Pasif", MAINTENANCE: "Bakımda", FAULTY: "Arızalı" }, power: { ON: "Enerjili", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor" }, disconnection: { ON: "Enerji Var", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor", OPENING: "Açılıyor", CLOSING: "Kapanıyor" } }, O = { hero: { live: "CANLI", fleetOnline: "AKTİF SAYAÇLAR", online: "aktif", vs1h: "vs 1s", fleet: { online: "AKTİF", offline: "PASİF", unknown: "ENERJİSİZ" }, readingSla24h: "OKUMA SLA · 24S", target: "hedef", activeOutages: "AKTİF KESİNTİLER", affectedMeters: "etkilenen sayaç", alarm: { crit: "KRİTİK", warn: "UYARI", viewDetails: "{{slug}} detaylarını görüntüle" }, tape: { ariaLabel: "Son sistem olayları" }, tapePrefix: "BANT", fleetActive: "Aktif Haberleşme Ünitesi · 24s", fleetTotal: "/ {{total}}", fleetOnlinePct: "%{{pct}}", fleetDeltaHourly: "+{{delta}} ↑ 1s", slaToday: "Okuma Oranı · Bugün", slaTargetCaption: "Hedef %{{target}}", outagesAffected: "{{count}} sayaç", outagesWorstRegion: "En kötü bölge: {{region}}", outagesWorstRegionLabel: "En kötü bölge:", ticker: { throughput: "İŞLEM/s", online: "ÇEVRİMİÇİ", outages: "KESİNTİ", dlq: "DLQ", parseRate: "ÇÖZÜM/s", queue: "KUYRUK" } }, zoneA: { mapTitle: "Coğrafi Komuta", mapSubtitle: "Türkiye · 81 il", mapLoading: "Yükleniyor...", popupLabels: { outage: "Kesinti", rssi: "RSSI", sla: "SLA %", simOperator: "SIM Op", reason: "Sebep" }, layerButton: { kesinti: "Kesinti", sinyal: "Sinyal", sim: "SIM Op", sla: "Okuma Oranı" }, layerHint: { outage: "kesinti yoğunluğu", rssi: "RSSI medyan", sim: "en iyi operatör", sla: "okuma yüzdesi" }, legend: { label: "Açıklama", noData: "Veri yok" }, popup: { dataMissing: "Veri bekleniyor (STORY-218)" }, panelHeader: { eyebrow: "BÖLGE", modemSuffix: "haberleşme ünitesi", meterSuffix: "sayaç", noDataCaption: "Veri bekleniyor — STORY-218 sonrası aktif" }, panelBody: { noDataPlaceholder: "Bu il için henüz veri yok." }, panelFooter: { bestSim: "{{operator}} en iyi — RSSI {{rssi}} dBm", bestSimNoSignal: "{{operator}} en iyi — RSSI veri yok", noWinner: "En iyi operatör verisi yok", cta: "Rapor Aç →" }, noValue: "—", kesinti: { activeLabel: "Aktif Kesinti", affectedSuffix: "etk.", affectedNoData: "etkilenen sayaç verisi yok", longestLabel: "En Uzun Kesinti", noOutage: "kesinti yok", trendTitle: "Kesinti Trend · 7 Gün", legendCount: "Adet", legendDuration: "Süre (dk)", activeListTitle: "Aktif En Uzun Kesintiler", emptyList: "{{province}} bölgesinde aktif kesinti yok." }, sinyal: { title: "SIM Operatör · Medyan Sinyal (dBm) · {{province}}", noData: "Sinyal verisi yok", footer: "Sinyal tab seçili — detaylı bölge RSSI dağılımı yakında" }, sim: { title: "En İyi SIM Operatör · {{province}}", noData: "SIM operatör verisi yok" }, sla: { todayLabel: "Okuma Oranı · 24s", targetCaption: "hedef %99,0", missingLabel: "Eksik Okuma", meterSuffix: "sayaç", noData: "Okuma oranı verisi yok", footer: "Okuma Oranı tab seçili — sayaç bazlı kırılım yakında" }, outageReason: { POWER_LOSS: "Güç Kaybı", NETWORK_OUTAGE: "Şebeke Kesintisi", HARDWARE_FAILURE: "Donanım Arızası", HIGH_TEMP: "Yüksek Sıcaklık", CONNECTION_LOST: "Bağlantı Kopması", noOutage: "Kesinti yok", noData: "Sebep bilinmiyor" }, webglFallback: { title: "Tarayıcınız WebGL desteklemiyor", body: "Coğrafi komuta yüzeyi 81-il çoklu-katman harita render etmek için WebGL gerektirir. Lütfen yöneticinizle iletişime geçin." } }, zones: { zoneAPlaceholder: "Zone A — Çok Katmanlı Harita (STORY-217)", pipelineFunnel: { title: "Veri Hattı · msg/s", empty: "Veri akışı bekleniyor", stage: { kalpAtisi: "Kalp Atışı", hamVeri: "Ham Veri", cozumleyici: "Çözümleyici", clickHouse: "ClickHouse" } }, parseErrors: { title: "Çözümleme Hataları", centerCaption: "HATA", empty: "Hata yok", ariaLabel: "Toplam {{count}} çözümleme hatası" }, simRanking: { title: "SIM Operatör TR · Çevrimiçi %", empty: "Operatör verisi yok" }, integrationHealth: { title: "Entegrasyon · Nabız", empty: "Servis verisi yok", status: { ok: "Sağlıklı", warn: "Uyarı", crit: "Kritik" } }, slaTopBottom: { title: "SLA · En Düşük 4 / En Yüksek 4", lowLabel: "▼ Düşük", highLabel: "▲ Yüksek", empty: "Veri yok" }, outageTrend24h: { title: "Kesinti · 24s Trend", hint: "bölgeye göre", empty: "Kesinti yok", regions: { marmara: "Marmara", ic: "İç Anadolu", karadeniz: "Karadeniz", ege: "Ege", akdeniz: "Akdeniz", diger: "Diğer" } }, calendarRings: { title: "Takvim · İlerleme", empty: "Veri yok" } } }, N = { serial: "Seri Numarası", protocol: "Protokol", port: "Port", firmware: "Firmware", type: "Tip", modem: "Modem", location: "Konum", lastReading: "son okuma", monthlySuccessRate: "Aylık başarı oranı", quickStatus: "Hızlı durum", meterCount: "Sayaç", activeAlarms: "Aktif Alarm", activeOrders: "Aktif İş Emri", uptime: "Uptime", signal: "Sinyal", readingRate: "Okuma Oranı", calendar: { title: "Okuma takvimi", prevMonth: "Önceki ay", nextMonth: "Sonraki ay", months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], dayLabels: ["P", "S", "Ç", "P", "C", "C", "P"], status: { ok: "Okundu", warn: "Eksik okuma", crit: "Okuma hatası", noData: "Veri yok" }, legend: { ok: "Tam", warn: "Eksik", crit: "Hata", noData: "Veri yok" }, cellAria: "{{date}} — {{status}}, {{count}}/{{expected}} okuma" } }, r = {
|
|
2
|
+
common: l,
|
|
3
|
+
table: s,
|
|
4
|
+
form: d,
|
|
5
|
+
dialog: u,
|
|
6
|
+
theme: m,
|
|
7
|
+
date: y,
|
|
8
|
+
pagination: c,
|
|
9
|
+
empty: k,
|
|
10
|
+
status: g,
|
|
11
|
+
editablegrid: p,
|
|
12
|
+
filter: _,
|
|
13
|
+
json_editor: f,
|
|
14
|
+
rich_text_editor: S,
|
|
15
|
+
map_shell: b,
|
|
16
|
+
aria: h,
|
|
17
|
+
detail_status: A,
|
|
18
|
+
dashboard: O,
|
|
19
|
+
detail_hero: N
|
|
20
|
+
}, T = { ara: "Search...", filtre: "Filter", kaydet: "Save", iptal: "Cancel", sil: "Delete", duzenle: "Edit", ekle: "Add", kapat: "Close", daha_fazla: "More", temizle: "Clear", tamam: "OK", geri: "Back", ileri: "Next", devam: "Continue", calistir: "Execute", onayla: "Confirm", gonder: "Send", yukle: "Upload", indir: "Download", kopyala: "Copy", kopyalandi: "Copied", yapistir: "Paste", sec: "Select", vazgec: "Cancel", detay: "Detail", detaya_git: "Go to Detail", yenile: "Refresh", disa_aktar: "Export", evet: "Yes", hayir: "No", tumu: "All", yok: "None", olustur: 'Create "{{value}}"' }, v = { sayfa: "Page", toplam: "Total", secili: "Selected", kayit_bulunamadi: "No records found", siralama: "Sort", filtrele: "Filter", tumunu_sec: "Select All", secimi_kaldir: "Deselect All", satirlar: "rows", sayfa_basina: "per page", eylemler: "Actions" }, E = { zorunlu_alan: "This field is required", gecersiz_deger: "Invalid value", min_karakter: "Must be at least {{min}} characters", max_karakter: "Must be at most {{max}} characters", email_gecersiz: "Please enter a valid email address", sayi_gecersiz: "Please enter a valid number" }, L = { emin_misiniz: "Are you sure?", bu_islem_geri_alinamaz: "This action cannot be undone.", onay: "Confirm", vazgec: "Cancel", silme_onay: "Are you sure you want to delete this record?", silme_baslik: "Delete Record", entity_silme_onay: "will be permanently deleted. This action cannot be undone." }, z = { karanlik_mod: "Dark Mode", aydinlik_mod: "Light Mode", tema_degistir: "Toggle Theme" }, R = { bugun: "Today", dun: "Yesterday", bu_hafta: "This Week", bu_ay: "This Month", gecen_ay: "Last Month", son_7_gun: "Last 7 Days", son_30_gun: "Last 30 Days", son_90_gun: "Last 90 Days", bu_yil: "This Year", gecen_yil: "Last Year", baslangic: "Start", bitis: "End", tarih_sec: "Select Date", saat: "Time", hazir_araliklar: "Quick Ranges" }, D = { onceki_sayfa: "Previous Page", sonraki_sayfa: "Next Page", previous_page: "Previous page", next_page: "Next page", sayfa_x_y: "Page {{current}} / {{total}}", kayit_gosteriliyor: "Showing {{from}}-{{to}} of {{total}} records", ilk_sayfa: "First Page", son_sayfa: "Last Page" }, w = { kayit_bulunamadi: "No records found", henuz_veri_yok: "No data yet", sonuc_bulunamadi: "No results matching your criteria" }, C = { basarili: "Success", hata: "Error", uyari: "Warning", bilgi: "Info", yukleniyor: "Loading...", kaydediliyor: "Saving...", siliniyor: "Deleting..." }, I = { status_pending: "Pending", status_valid: "Valid", status_invalid: "Invalid" }, M = { filtre_uygula: "Apply Filter", filtreleri_temizle: "Clear Filters", aktif_filtre: "{{count}} active filter(s)", yes: "Yes", no: "No", op_contains: "Contains", op_equals: "Equals", op_not_equals: "Not Equals", op_starts_with: "Starts With", op_ends_with: "Ends With", op_greater: "Greater Than", op_less: "Less Than", op_greater_eq: "Greater or Equal", op_less_eq: "Less or Equal", operator_sec: "Select operator", secili: "Selected" }, K = { ham_json: "Raw JSON", form_gorunumu: "Form View", formatla: "Format", gecersiz_json: "Invalid JSON format", kopyalandi: "Copied!", kopyala: "Copy", icerik: "JSON content", duzenle: "Edit", goruntule: "View" }, B = { bold: "Bold", italic: "Italic", strike: "Strikethrough", h2: "Heading 2", h3: "Heading 3", bulletList: "Bullet list", orderedList: "Numbered list", link: "Link", unlink: "Remove link", blockquote: "Quote", code: "Code", undo: "Undo", redo: "Redo", linkUrl: "https://…", linkApply: "Apply link", linkCancel: "Cancel", toolbar: "Formatting", editor: "Rich text editor", linkInput: "Link URL" }, P = { webglTitle: "WebGL is not available", webglBody: "This map surface needs WebGL to render. Please try a different browser or contact your administrator.", layerControl: "Map layers" }, F = { sifreyi_goster: "Show password", sifreyi_gizle: "Hide password", onceki_ay: "Previous month", sonraki_ay: "Next month", filtreyi_kaldir: "Remove {{name}} filter", kopyala: "Copy", panel: "Panel", iletisim_kutusu: "Dialog", kaldir: "Remove {{label}}", filtrele: "Filter options", filtreler: "Filters", breadcrumb: "Breadcrumb", pagination: "Pagination", detay_sayfasi: "Detail page", filtreler_kenar: "Filter sidebar", giris: "Sign in", rapor_kriterleri: "Report criteria" }, H = { lifecycle: { ACTIVE: "Active", INACTIVE: "Inactive", MAINTENANCE: "Maintenance", FAULTY: "Faulty" }, power: { ON: "Energized", OFF: "No Energy", UNKNOWN: "Unknown" }, disconnection: { ON: "Power OK", OFF: "No Power", UNKNOWN: "Unknown", OPENING: "Opening", CLOSING: "Closing" } }, G = { hero: { live: "LIVE", fleetOnline: "FLEET ONLINE", online: "online", vs1h: "vs 1h", fleet: { online: "ONLINE", offline: "OFF", unknown: "UNK" }, readingSla24h: "READING SLA · 24h", target: "target", activeOutages: "ACTIVE OUTAGES", affectedMeters: "meters affected", alarm: { crit: "CRIT", warn: "WARN", viewDetails: "View {{slug}} details" }, tape: { ariaLabel: "Recent system events" }, tapePrefix: "TAPE", fleetActive: "Active Comm. Units · 24h", fleetTotal: "/ {{total}}", fleetOnlinePct: "{{pct}}%", fleetDeltaHourly: "+{{delta}} ↑ 1h", slaToday: "Read Rate · Today", slaTargetCaption: "Target {{target}}%", outagesAffected: "{{count}} meters", outagesWorstRegion: "Worst region: {{region}}", outagesWorstRegionLabel: "Worst region:", ticker: { throughput: "OPS/s", online: "ONLINE", outages: "OUTAGE", dlq: "DLQ", parseRate: "PARSE/s", queue: "QUEUE" } }, zoneA: { mapTitle: "Geographic Command", mapSubtitle: "Turkey · 81 provinces", mapLoading: "Loading...", popupLabels: { outage: "Outage", rssi: "RSSI", sla: "SLA %", simOperator: "SIM Op", reason: "Reason" }, layerButton: { kesinti: "Outage", sinyal: "Signal", sim: "SIM Op", sla: "Reading SLA" }, layerHint: { outage: "outage density", rssi: "RSSI median", sim: "best operator", sla: "reading percent" }, legend: { label: "Legend", noData: "No data" }, popup: { dataMissing: "Awaiting data (STORY-218)" }, panelHeader: { eyebrow: "REGION", modemSuffix: "communication unit", meterSuffix: "meter", noDataCaption: "Awaiting data — active after STORY-218" }, panelBody: { noDataPlaceholder: "No data for this province yet." }, panelFooter: { bestSim: "{{operator}} best — RSSI {{rssi}} dBm", bestSimNoSignal: "{{operator}} best — RSSI no data", noWinner: "No best-operator data", cta: "Open Report →" }, noValue: "—", kesinti: { activeLabel: "Active Outages", affectedSuffix: "affected", affectedNoData: "no affected-meter data", longestLabel: "Longest Outage", noOutage: "no outage", trendTitle: "Outage Trend · 7 Days", legendCount: "Count", legendDuration: "Duration (min)", activeListTitle: "Top Active Outages", emptyList: "No active outages in {{province}}." }, sinyal: { title: "SIM Operator · Median Signal (dBm) · {{province}}", noData: "No signal data", footer: "Signal tab selected — detailed regional RSSI breakdown coming soon" }, sim: { title: "Best SIM Operator · {{province}}", noData: "No SIM operator data" }, sla: { todayLabel: "Reading SLA · 24h", targetCaption: "target 99.0%", missingLabel: "Missing Reads", meterSuffix: "meter", noData: "No reading-rate data", footer: "Reading SLA tab selected — meter-level breakdown coming soon" }, outageReason: { POWER_LOSS: "Power Loss", NETWORK_OUTAGE: "Network Outage", HARDWARE_FAILURE: "Hardware Failure", HIGH_TEMP: "High Temperature", CONNECTION_LOST: "Connection Lost", noOutage: "No outage", noData: "Reason unknown" }, webglFallback: { title: "Your browser does not support WebGL", body: "The geographic command surface requires WebGL to render the 81-province multi-layer map. Please contact your administrator." } }, zones: { zoneAPlaceholder: "Zone A — Multi-Layer Map (STORY-217)", pipelineFunnel: { title: "Pipeline · msg/s", empty: "Waiting for data flow", stage: { kalpAtisi: "Heartbeat", hamVeri: "Raw Data", cozumleyici: "Parser", clickHouse: "ClickHouse" } }, parseErrors: { title: "Parse Errors", centerCaption: "ERRORS", empty: "No errors", ariaLabel: "Total {{count}} parse errors" }, simRanking: { title: "SIM Operator TR · Online %", empty: "No operator data" }, integrationHealth: { title: "Integration · Pulse", empty: "No service data", status: { ok: "Healthy", warn: "Warning", crit: "Critical" } }, slaTopBottom: { title: "SLA · Lowest 4 / Highest 4", lowLabel: "▼ Low", highLabel: "▲ High", empty: "No data" }, outageTrend24h: { title: "Outage · 24h Trend", hint: "by region", empty: "No outages", regions: { marmara: "Marmara", ic: "Central Anatolia", karadeniz: "Black Sea", ege: "Aegean", akdeniz: "Mediterranean", diger: "Other" } }, calendarRings: { title: "Calendar · Progress", empty: "No data" } } }, U = { serial: "Serial Number", protocol: "Protocol", port: "Port", firmware: "Firmware", type: "Type", modem: "Modem", location: "Location", lastReading: "last reading", monthlySuccessRate: "Monthly success rate", quickStatus: "Quick status", meterCount: "Meters", activeAlarms: "Active Alarms", activeOrders: "Active Orders", uptime: "Uptime", signal: "Signal", readingRate: "Reading Rate", calendar: { title: "Reading calendar", prevMonth: "Previous month", nextMonth: "Next month", months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], dayLabels: ["M", "T", "W", "T", "F", "S", "S"], status: { ok: "Read", warn: "Missing reading", crit: "Reading error", noData: "No data" }, legend: { ok: "Full", warn: "Missing", crit: "Error", noData: "No data" }, cellAria: "{{date}} — {{status}}, {{count}}/{{expected}} readings" } }, n = {
|
|
21
|
+
common: T,
|
|
22
|
+
table: v,
|
|
23
|
+
form: E,
|
|
24
|
+
dialog: L,
|
|
25
|
+
theme: z,
|
|
26
|
+
date: R,
|
|
27
|
+
pagination: D,
|
|
28
|
+
empty: w,
|
|
29
|
+
status: C,
|
|
30
|
+
editablegrid: I,
|
|
31
|
+
filter: M,
|
|
32
|
+
json_editor: K,
|
|
33
|
+
rich_text_editor: B,
|
|
34
|
+
map_shell: P,
|
|
35
|
+
aria: F,
|
|
36
|
+
detail_status: H,
|
|
37
|
+
dashboard: G,
|
|
38
|
+
detail_hero: U
|
|
39
|
+
}, x = {
|
|
40
|
+
tr: { common: r },
|
|
41
|
+
en: { common: n }
|
|
42
|
+
};
|
|
43
|
+
function W(e, o = {}) {
|
|
44
|
+
const { namespace: a = "common", overwrite: i = !1, deep: t = !0 } = o;
|
|
45
|
+
return e.addResourceBundle("tr", a, r, t, i), e.addResourceBundle("en", a, n, t, i), e;
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
n as e,
|
|
49
|
+
W as r,
|
|
50
|
+
r as t,
|
|
51
|
+
x as u
|
|
52
|
+
};
|
|
@@ -16,6 +16,28 @@ export interface AnchoredOptions {
|
|
|
16
16
|
margin?: number;
|
|
17
17
|
/** Pin the panel width to the trigger width (Select); else use the panel's own width (DatePicker). */
|
|
18
18
|
matchTriggerWidth?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Floor for `matchTriggerWidth` — the panel tracks the trigger but never
|
|
21
|
+
* shrinks below this (DateRangePicker: its calendar + preset column stop
|
|
22
|
+
* being usable under ~320px). Ignored when `matchTriggerWidth` is off.
|
|
23
|
+
* The clamp below uses the SAME floored width, so a panel widened by this
|
|
24
|
+
* floor is still kept inside the viewport.
|
|
25
|
+
*/
|
|
26
|
+
minWidth?: number;
|
|
27
|
+
/**
|
|
28
|
+
* The panel carries its OWN CSS min-width (DateRangePicker's
|
|
29
|
+
* `min-w-[fit-content]`), so it can render WIDER than the width we pin on it —
|
|
30
|
+
* e.g. on `spacious` density, where `--space-8` grows the 7-cell grid, or with
|
|
31
|
+
* long custom preset labels. Clamp against the measured natural width in that
|
|
32
|
+
* case, or the surplus spills past the right viewport edge.
|
|
33
|
+
*
|
|
34
|
+
* OFF by default, and deliberately not unconditional: Select also pins its
|
|
35
|
+
* panel to the trigger, but it has no min-width and truncates long option
|
|
36
|
+
* labels, so its natural (max-content) width is NOT what it renders at.
|
|
37
|
+
* Clamping Select against that would shove its panel left of its own trigger
|
|
38
|
+
* for no reason.
|
|
39
|
+
*/
|
|
40
|
+
clampToContentWidth?: boolean;
|
|
19
41
|
}
|
|
20
42
|
/**
|
|
21
43
|
* Compute the fixed on-screen position for a dropdown panel anchored to a trigger.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchoredPanelPosition.d.ts","sourceRoot":"","sources":["../../src/utils/anchoredPanelPosition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE9D,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"anchoredPanelPosition.d.ts","sourceRoot":"","sources":["../../src/utils/anchoredPanelPosition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE9D,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,eAAoB,GACzB,iBAAiB,CAsDnB"}
|
package/package.json
CHANGED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
const l = { ara: "Ara...", filtre: "Filtre", kaydet: "Kaydet", iptal: "İptal", sil: "Sil", duzenle: "Düzenle", ekle: "Ekle", kapat: "Kapat", daha_fazla: "Daha fazla", temizle: "Temizle", tamam: "Tamam", geri: "Geri", ileri: "İleri", devam: "Devam", calistir: "Çalıştır", onayla: "Onayla", gonder: "Gönder", yukle: "Yükle", indir: "İndir", kopyala: "Kopyala", kopyalandi: "Kopyalandı", yapistir: "Yapıştır", sec: "Seç", vazgec: "Vazgeç", detay: "Detay", detaya_git: "Detaya Git", yenile: "Yenile", disa_aktar: "Dışa Aktar", evet: "Evet", hayir: "Hayır", tumu: "Tümü", yok: "Yok", olustur: '"{{value}}" oluştur' }, s = { sayfa: "Sayfa", toplam: "Toplam", secili: "Seçili", kayit_bulunamadi: "Kayıt bulunamadı", siralama: "Sıralama", filtrele: "Filtrele", tumunu_sec: "Tümünü Seç", secimi_kaldir: "Seçimi Kaldır", satirlar: "satır", sayfa_basina: "sayfa başına", eylemler: "Eylemler" }, d = { zorunlu_alan: "Bu alan zorunludur", gecersiz_deger: "Geçersiz değer", min_karakter: "En az {{min}} karakter olmalıdır", max_karakter: "En fazla {{max}} karakter olmalıdır", email_gecersiz: "Geçerli bir e-posta adresi giriniz", sayi_gecersiz: "Geçerli bir sayı giriniz" }, u = { emin_misiniz: "Emin misiniz?", bu_islem_geri_alinamaz: "Bu işlem geri alınamaz.", onay: "Onayla", vazgec: "Vazgeç", silme_onay: "Bu kaydı silmek istediğinize emin misiniz?", silme_baslik: "Kaydı Sil", entity_silme_onay: "kalıcı olarak silinecek. Bu işlem geri alınamaz." }, m = { karanlik_mod: "Karanlık Mod", aydinlik_mod: "Aydınlık Mod", tema_degistir: "Tema Değiştir" }, y = { bugun: "Bugün", dun: "Dün", bu_hafta: "Bu Hafta", bu_ay: "Bu Ay", gecen_ay: "Geçen Ay", son_7_gun: "Son 7 Gün", son_30_gun: "Son 30 Gün", baslangic: "Başlangıç", bitis: "Bitiş", tarih_sec: "Tarih Seçiniz", saat: "Saat" }, c = { onceki_sayfa: "Önceki Sayfa", sonraki_sayfa: "Sonraki Sayfa", previous_page: "Önceki sayfa", next_page: "Sonraki sayfa", sayfa_x_y: "Sayfa {{current}} / {{total}}", kayit_gosteriliyor: "{{from}}-{{to}} / {{total}} kayıt gösteriliyor", ilk_sayfa: "İlk Sayfa", son_sayfa: "Son Sayfa" }, k = { kayit_bulunamadi: "Kayıt bulunamadı", henuz_veri_yok: "Henüz veri yok", sonuc_bulunamadi: "Aradığınız kriterlere uygun sonuç bulunamadı" }, g = { basarili: "Başarılı", hata: "Hata", uyari: "Uyarı", bilgi: "Bilgi", yukleniyor: "Yükleniyor...", kaydediliyor: "Kaydediliyor...", siliniyor: "Siliniyor..." }, p = { status_pending: "Bekliyor", status_valid: "Geçerli", status_invalid: "Geçersiz" }, _ = { filtre_uygula: "Filtreyi Uygula", filtreleri_temizle: "Filtreleri Temizle", aktif_filtre: "{{count}} aktif filtre", yes: "Evet", no: "Hayır", op_contains: "İçerir", op_equals: "Eşittir", op_not_equals: "Eşit Değil", op_starts_with: "Başlar", op_ends_with: "Biter", op_greater: "Büyüktür", op_less: "Küçüktür", op_greater_eq: "Büyük Eşit", op_less_eq: "Küçük Eşit", operator_sec: "Operatör seçin", secili: "Seçili" }, f = { ham_json: "Ham JSON", form_gorunumu: "Form Görünümü", formatla: "Formatla", gecersiz_json: "Geçersiz JSON formatı", kopyalandi: "Kopyalandı!", kopyala: "Kopyala", icerik: "JSON içeriği", duzenle: "Düzenle", goruntule: "Görüntüle" }, S = { bold: "Kalın", italic: "İtalik", strike: "Üstü çizili", h2: "Başlık 2", h3: "Başlık 3", bulletList: "Madde işaretli liste", orderedList: "Numaralı liste", link: "Bağlantı", unlink: "Bağlantıyı kaldır", blockquote: "Alıntı", code: "Kod", undo: "Geri al", redo: "Yinele", linkUrl: "https://…", linkApply: "Bağlantıyı uygula", linkCancel: "İptal", toolbar: "Biçimlendirme", editor: "Zengin metin editörü", linkInput: "Bağlantı adresi" }, b = { webglTitle: "WebGL kullanılamıyor", webglBody: "Bu harita yüzeyi render için WebGL gerektirir. Lütfen farklı bir tarayıcı deneyin veya yöneticinizle iletişime geçin.", layerControl: "Harita katmanları" }, h = { sifreyi_goster: "Şifreyi göster", sifreyi_gizle: "Şifreyi gizle", onceki_ay: "Önceki ay", sonraki_ay: "Sonraki ay", filtreyi_kaldir: "{{name}} filtresini kaldır", kopyala: "Kopyala", panel: "Panel", iletisim_kutusu: "İletişim kutusu", kaldir: "{{label}} seçimini kaldır", filtrele: "Seçenekleri filtrele", filtreler: "Filtreler", breadcrumb: "Yol haritası", pagination: "Sayfalama", detay_sayfasi: "Detay sayfası", filtreler_kenar: "Filtre kenar çubuğu", giris: "Giriş", rapor_kriterleri: "Rapor kriterleri" }, A = { lifecycle: { ACTIVE: "Aktif", INACTIVE: "Pasif", MAINTENANCE: "Bakımda", FAULTY: "Arızalı" }, power: { ON: "Enerjili", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor" }, disconnection: { ON: "Enerji Var", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor", OPENING: "Açılıyor", CLOSING: "Kapanıyor" } }, O = { hero: { live: "CANLI", fleetOnline: "AKTİF SAYAÇLAR", online: "aktif", vs1h: "vs 1s", fleet: { online: "AKTİF", offline: "PASİF", unknown: "ENERJİSİZ" }, readingSla24h: "OKUMA SLA · 24S", target: "hedef", activeOutages: "AKTİF KESİNTİLER", affectedMeters: "etkilenen sayaç", alarm: { crit: "KRİTİK", warn: "UYARI", viewDetails: "{{slug}} detaylarını görüntüle" }, tape: { ariaLabel: "Son sistem olayları" }, tapePrefix: "BANT", fleetActive: "Aktif Haberleşme Ünitesi · 24s", fleetTotal: "/ {{total}}", fleetOnlinePct: "%{{pct}}", fleetDeltaHourly: "+{{delta}} ↑ 1s", slaToday: "Okuma Oranı · Bugün", slaTargetCaption: "Hedef %{{target}}", outagesAffected: "{{count}} sayaç", outagesWorstRegion: "En kötü bölge: {{region}}", outagesWorstRegionLabel: "En kötü bölge:", ticker: { throughput: "İŞLEM/s", online: "ÇEVRİMİÇİ", outages: "KESİNTİ", dlq: "DLQ", parseRate: "ÇÖZÜM/s", queue: "KUYRUK" } }, zoneA: { mapTitle: "Coğrafi Komuta", mapSubtitle: "Türkiye · 81 il", mapLoading: "Yükleniyor...", popupLabels: { outage: "Kesinti", rssi: "RSSI", sla: "SLA %", simOperator: "SIM Op", reason: "Sebep" }, layerButton: { kesinti: "Kesinti", sinyal: "Sinyal", sim: "SIM Op", sla: "Okuma Oranı" }, layerHint: { outage: "kesinti yoğunluğu", rssi: "RSSI medyan", sim: "en iyi operatör", sla: "okuma yüzdesi" }, legend: { label: "Açıklama", noData: "Veri yok" }, popup: { dataMissing: "Veri bekleniyor (STORY-218)" }, panelHeader: { eyebrow: "BÖLGE", modemSuffix: "haberleşme ünitesi", meterSuffix: "sayaç", noDataCaption: "Veri bekleniyor — STORY-218 sonrası aktif" }, panelBody: { noDataPlaceholder: "Bu il için henüz veri yok." }, panelFooter: { bestSim: "{{operator}} en iyi — RSSI {{rssi}} dBm", bestSimNoSignal: "{{operator}} en iyi — RSSI veri yok", noWinner: "En iyi operatör verisi yok", cta: "Rapor Aç →" }, noValue: "—", kesinti: { activeLabel: "Aktif Kesinti", affectedSuffix: "etk.", affectedNoData: "etkilenen sayaç verisi yok", longestLabel: "En Uzun Kesinti", noOutage: "kesinti yok", trendTitle: "Kesinti Trend · 7 Gün", legendCount: "Adet", legendDuration: "Süre (dk)", activeListTitle: "Aktif En Uzun Kesintiler", emptyList: "{{province}} bölgesinde aktif kesinti yok." }, sinyal: { title: "SIM Operatör · Medyan Sinyal (dBm) · {{province}}", noData: "Sinyal verisi yok", footer: "Sinyal tab seçili — detaylı bölge RSSI dağılımı yakında" }, sim: { title: "En İyi SIM Operatör · {{province}}", noData: "SIM operatör verisi yok" }, sla: { todayLabel: "Okuma Oranı · 24s", targetCaption: "hedef %99,0", missingLabel: "Eksik Okuma", meterSuffix: "sayaç", noData: "Okuma oranı verisi yok", footer: "Okuma Oranı tab seçili — sayaç bazlı kırılım yakında" }, outageReason: { POWER_LOSS: "Güç Kaybı", NETWORK_OUTAGE: "Şebeke Kesintisi", HARDWARE_FAILURE: "Donanım Arızası", HIGH_TEMP: "Yüksek Sıcaklık", CONNECTION_LOST: "Bağlantı Kopması", noOutage: "Kesinti yok", noData: "Sebep bilinmiyor" }, webglFallback: { title: "Tarayıcınız WebGL desteklemiyor", body: "Coğrafi komuta yüzeyi 81-il çoklu-katman harita render etmek için WebGL gerektirir. Lütfen yöneticinizle iletişime geçin." } }, zones: { zoneAPlaceholder: "Zone A — Çok Katmanlı Harita (STORY-217)", pipelineFunnel: { title: "Veri Hattı · msg/s", empty: "Veri akışı bekleniyor", stage: { kalpAtisi: "Kalp Atışı", hamVeri: "Ham Veri", cozumleyici: "Çözümleyici", clickHouse: "ClickHouse" } }, parseErrors: { title: "Çözümleme Hataları", centerCaption: "HATA", empty: "Hata yok", ariaLabel: "Toplam {{count}} çözümleme hatası" }, simRanking: { title: "SIM Operatör TR · Çevrimiçi %", empty: "Operatör verisi yok" }, integrationHealth: { title: "Entegrasyon · Nabız", empty: "Servis verisi yok", status: { ok: "Sağlıklı", warn: "Uyarı", crit: "Kritik" } }, slaTopBottom: { title: "SLA · En Düşük 4 / En Yüksek 4", lowLabel: "▼ Düşük", highLabel: "▲ Yüksek", empty: "Veri yok" }, outageTrend24h: { title: "Kesinti · 24s Trend", hint: "bölgeye göre", empty: "Kesinti yok", regions: { marmara: "Marmara", ic: "İç Anadolu", karadeniz: "Karadeniz", ege: "Ege", akdeniz: "Akdeniz", diger: "Diğer" } }, calendarRings: { title: "Takvim · İlerleme", empty: "Veri yok" } } }, N = { serial: "Seri Numarası", protocol: "Protokol", port: "Port", firmware: "Firmware", type: "Tip", modem: "Modem", location: "Konum", lastReading: "son okuma", monthlySuccessRate: "Aylık başarı oranı", quickStatus: "Hızlı durum", meterCount: "Sayaç", activeAlarms: "Aktif Alarm", activeOrders: "Aktif İş Emri", uptime: "Uptime", signal: "Sinyal", readingRate: "Okuma Oranı", calendar: { title: "Okuma takvimi", prevMonth: "Önceki ay", nextMonth: "Sonraki ay", months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], dayLabels: ["P", "S", "Ç", "P", "C", "C", "P"], status: { ok: "Okundu", warn: "Eksik okuma", crit: "Okuma hatası", noData: "Veri yok" }, legend: { ok: "Tam", warn: "Eksik", crit: "Hata", noData: "Veri yok" }, cellAria: "{{date}} — {{status}}, {{count}}/{{expected}} okuma" } }, r = {
|
|
2
|
-
common: l,
|
|
3
|
-
table: s,
|
|
4
|
-
form: d,
|
|
5
|
-
dialog: u,
|
|
6
|
-
theme: m,
|
|
7
|
-
date: y,
|
|
8
|
-
pagination: c,
|
|
9
|
-
empty: k,
|
|
10
|
-
status: g,
|
|
11
|
-
editablegrid: p,
|
|
12
|
-
filter: _,
|
|
13
|
-
json_editor: f,
|
|
14
|
-
rich_text_editor: S,
|
|
15
|
-
map_shell: b,
|
|
16
|
-
aria: h,
|
|
17
|
-
detail_status: A,
|
|
18
|
-
dashboard: O,
|
|
19
|
-
detail_hero: N
|
|
20
|
-
}, T = { ara: "Search...", filtre: "Filter", kaydet: "Save", iptal: "Cancel", sil: "Delete", duzenle: "Edit", ekle: "Add", kapat: "Close", daha_fazla: "More", temizle: "Clear", tamam: "OK", geri: "Back", ileri: "Next", devam: "Continue", calistir: "Execute", onayla: "Confirm", gonder: "Send", yukle: "Upload", indir: "Download", kopyala: "Copy", kopyalandi: "Copied", yapistir: "Paste", sec: "Select", vazgec: "Cancel", detay: "Detail", detaya_git: "Go to Detail", yenile: "Refresh", disa_aktar: "Export", evet: "Yes", hayir: "No", tumu: "All", yok: "None", olustur: 'Create "{{value}}"' }, v = { sayfa: "Page", toplam: "Total", secili: "Selected", kayit_bulunamadi: "No records found", siralama: "Sort", filtrele: "Filter", tumunu_sec: "Select All", secimi_kaldir: "Deselect All", satirlar: "rows", sayfa_basina: "per page", eylemler: "Actions" }, E = { zorunlu_alan: "This field is required", gecersiz_deger: "Invalid value", min_karakter: "Must be at least {{min}} characters", max_karakter: "Must be at most {{max}} characters", email_gecersiz: "Please enter a valid email address", sayi_gecersiz: "Please enter a valid number" }, L = { emin_misiniz: "Are you sure?", bu_islem_geri_alinamaz: "This action cannot be undone.", onay: "Confirm", vazgec: "Cancel", silme_onay: "Are you sure you want to delete this record?", silme_baslik: "Delete Record", entity_silme_onay: "will be permanently deleted. This action cannot be undone." }, R = { karanlik_mod: "Dark Mode", aydinlik_mod: "Light Mode", tema_degistir: "Toggle Theme" }, z = { bugun: "Today", dun: "Yesterday", bu_hafta: "This Week", bu_ay: "This Month", gecen_ay: "Last Month", son_7_gun: "Last 7 Days", son_30_gun: "Last 30 Days", baslangic: "Start", bitis: "End", tarih_sec: "Select Date", saat: "Time" }, w = { onceki_sayfa: "Previous Page", sonraki_sayfa: "Next Page", previous_page: "Previous page", next_page: "Next page", sayfa_x_y: "Page {{current}} / {{total}}", kayit_gosteriliyor: "Showing {{from}}-{{to}} of {{total}} records", ilk_sayfa: "First Page", son_sayfa: "Last Page" }, C = { kayit_bulunamadi: "No records found", henuz_veri_yok: "No data yet", sonuc_bulunamadi: "No results matching your criteria" }, D = { basarili: "Success", hata: "Error", uyari: "Warning", bilgi: "Info", yukleniyor: "Loading...", kaydediliyor: "Saving...", siliniyor: "Deleting..." }, I = { status_pending: "Pending", status_valid: "Valid", status_invalid: "Invalid" }, M = { filtre_uygula: "Apply Filter", filtreleri_temizle: "Clear Filters", aktif_filtre: "{{count}} active filter(s)", yes: "Yes", no: "No", op_contains: "Contains", op_equals: "Equals", op_not_equals: "Not Equals", op_starts_with: "Starts With", op_ends_with: "Ends With", op_greater: "Greater Than", op_less: "Less Than", op_greater_eq: "Greater or Equal", op_less_eq: "Less or Equal", operator_sec: "Select operator", secili: "Selected" }, K = { ham_json: "Raw JSON", form_gorunumu: "Form View", formatla: "Format", gecersiz_json: "Invalid JSON format", kopyalandi: "Copied!", kopyala: "Copy", icerik: "JSON content", duzenle: "Edit", goruntule: "View" }, P = { bold: "Bold", italic: "Italic", strike: "Strikethrough", h2: "Heading 2", h3: "Heading 3", bulletList: "Bullet list", orderedList: "Numbered list", link: "Link", unlink: "Remove link", blockquote: "Quote", code: "Code", undo: "Undo", redo: "Redo", linkUrl: "https://…", linkApply: "Apply link", linkCancel: "Cancel", toolbar: "Formatting", editor: "Rich text editor", linkInput: "Link URL" }, B = { webglTitle: "WebGL is not available", webglBody: "This map surface needs WebGL to render. Please try a different browser or contact your administrator.", layerControl: "Map layers" }, F = { sifreyi_goster: "Show password", sifreyi_gizle: "Hide password", onceki_ay: "Previous month", sonraki_ay: "Next month", filtreyi_kaldir: "Remove {{name}} filter", kopyala: "Copy", panel: "Panel", iletisim_kutusu: "Dialog", kaldir: "Remove {{label}}", filtrele: "Filter options", filtreler: "Filters", breadcrumb: "Breadcrumb", pagination: "Pagination", detay_sayfasi: "Detail page", filtreler_kenar: "Filter sidebar", giris: "Sign in", rapor_kriterleri: "Report criteria" }, H = { lifecycle: { ACTIVE: "Active", INACTIVE: "Inactive", MAINTENANCE: "Maintenance", FAULTY: "Faulty" }, power: { ON: "Energized", OFF: "No Energy", UNKNOWN: "Unknown" }, disconnection: { ON: "Power OK", OFF: "No Power", UNKNOWN: "Unknown", OPENING: "Opening", CLOSING: "Closing" } }, G = { hero: { live: "LIVE", fleetOnline: "FLEET ONLINE", online: "online", vs1h: "vs 1h", fleet: { online: "ONLINE", offline: "OFF", unknown: "UNK" }, readingSla24h: "READING SLA · 24h", target: "target", activeOutages: "ACTIVE OUTAGES", affectedMeters: "meters affected", alarm: { crit: "CRIT", warn: "WARN", viewDetails: "View {{slug}} details" }, tape: { ariaLabel: "Recent system events" }, tapePrefix: "TAPE", fleetActive: "Active Comm. Units · 24h", fleetTotal: "/ {{total}}", fleetOnlinePct: "{{pct}}%", fleetDeltaHourly: "+{{delta}} ↑ 1h", slaToday: "Read Rate · Today", slaTargetCaption: "Target {{target}}%", outagesAffected: "{{count}} meters", outagesWorstRegion: "Worst region: {{region}}", outagesWorstRegionLabel: "Worst region:", ticker: { throughput: "OPS/s", online: "ONLINE", outages: "OUTAGE", dlq: "DLQ", parseRate: "PARSE/s", queue: "QUEUE" } }, zoneA: { mapTitle: "Geographic Command", mapSubtitle: "Turkey · 81 provinces", mapLoading: "Loading...", popupLabels: { outage: "Outage", rssi: "RSSI", sla: "SLA %", simOperator: "SIM Op", reason: "Reason" }, layerButton: { kesinti: "Outage", sinyal: "Signal", sim: "SIM Op", sla: "Reading SLA" }, layerHint: { outage: "outage density", rssi: "RSSI median", sim: "best operator", sla: "reading percent" }, legend: { label: "Legend", noData: "No data" }, popup: { dataMissing: "Awaiting data (STORY-218)" }, panelHeader: { eyebrow: "REGION", modemSuffix: "communication unit", meterSuffix: "meter", noDataCaption: "Awaiting data — active after STORY-218" }, panelBody: { noDataPlaceholder: "No data for this province yet." }, panelFooter: { bestSim: "{{operator}} best — RSSI {{rssi}} dBm", bestSimNoSignal: "{{operator}} best — RSSI no data", noWinner: "No best-operator data", cta: "Open Report →" }, noValue: "—", kesinti: { activeLabel: "Active Outages", affectedSuffix: "affected", affectedNoData: "no affected-meter data", longestLabel: "Longest Outage", noOutage: "no outage", trendTitle: "Outage Trend · 7 Days", legendCount: "Count", legendDuration: "Duration (min)", activeListTitle: "Top Active Outages", emptyList: "No active outages in {{province}}." }, sinyal: { title: "SIM Operator · Median Signal (dBm) · {{province}}", noData: "No signal data", footer: "Signal tab selected — detailed regional RSSI breakdown coming soon" }, sim: { title: "Best SIM Operator · {{province}}", noData: "No SIM operator data" }, sla: { todayLabel: "Reading SLA · 24h", targetCaption: "target 99.0%", missingLabel: "Missing Reads", meterSuffix: "meter", noData: "No reading-rate data", footer: "Reading SLA tab selected — meter-level breakdown coming soon" }, outageReason: { POWER_LOSS: "Power Loss", NETWORK_OUTAGE: "Network Outage", HARDWARE_FAILURE: "Hardware Failure", HIGH_TEMP: "High Temperature", CONNECTION_LOST: "Connection Lost", noOutage: "No outage", noData: "Reason unknown" }, webglFallback: { title: "Your browser does not support WebGL", body: "The geographic command surface requires WebGL to render the 81-province multi-layer map. Please contact your administrator." } }, zones: { zoneAPlaceholder: "Zone A — Multi-Layer Map (STORY-217)", pipelineFunnel: { title: "Pipeline · msg/s", empty: "Waiting for data flow", stage: { kalpAtisi: "Heartbeat", hamVeri: "Raw Data", cozumleyici: "Parser", clickHouse: "ClickHouse" } }, parseErrors: { title: "Parse Errors", centerCaption: "ERRORS", empty: "No errors", ariaLabel: "Total {{count}} parse errors" }, simRanking: { title: "SIM Operator TR · Online %", empty: "No operator data" }, integrationHealth: { title: "Integration · Pulse", empty: "No service data", status: { ok: "Healthy", warn: "Warning", crit: "Critical" } }, slaTopBottom: { title: "SLA · Lowest 4 / Highest 4", lowLabel: "▼ Low", highLabel: "▲ High", empty: "No data" }, outageTrend24h: { title: "Outage · 24h Trend", hint: "by region", empty: "No outages", regions: { marmara: "Marmara", ic: "Central Anatolia", karadeniz: "Black Sea", ege: "Aegean", akdeniz: "Mediterranean", diger: "Other" } }, calendarRings: { title: "Calendar · Progress", empty: "No data" } } }, U = { serial: "Serial Number", protocol: "Protocol", port: "Port", firmware: "Firmware", type: "Type", modem: "Modem", location: "Location", lastReading: "last reading", monthlySuccessRate: "Monthly success rate", quickStatus: "Quick status", meterCount: "Meters", activeAlarms: "Active Alarms", activeOrders: "Active Orders", uptime: "Uptime", signal: "Signal", readingRate: "Reading Rate", calendar: { title: "Reading calendar", prevMonth: "Previous month", nextMonth: "Next month", months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], dayLabels: ["M", "T", "W", "T", "F", "S", "S"], status: { ok: "Read", warn: "Missing reading", crit: "Reading error", noData: "No data" }, legend: { ok: "Full", warn: "Missing", crit: "Error", noData: "No data" }, cellAria: "{{date}} — {{status}}, {{count}}/{{expected}} readings" } }, n = {
|
|
21
|
-
common: T,
|
|
22
|
-
table: v,
|
|
23
|
-
form: E,
|
|
24
|
-
dialog: L,
|
|
25
|
-
theme: R,
|
|
26
|
-
date: z,
|
|
27
|
-
pagination: w,
|
|
28
|
-
empty: C,
|
|
29
|
-
status: D,
|
|
30
|
-
editablegrid: I,
|
|
31
|
-
filter: M,
|
|
32
|
-
json_editor: K,
|
|
33
|
-
rich_text_editor: P,
|
|
34
|
-
map_shell: B,
|
|
35
|
-
aria: F,
|
|
36
|
-
detail_status: H,
|
|
37
|
-
dashboard: G,
|
|
38
|
-
detail_hero: U
|
|
39
|
-
}, x = {
|
|
40
|
-
tr: { common: r },
|
|
41
|
-
en: { common: n }
|
|
42
|
-
};
|
|
43
|
-
function W(e, o = {}) {
|
|
44
|
-
const { namespace: a = "common", overwrite: i = !1, deep: t = !0 } = o;
|
|
45
|
-
return e.addResourceBundle("tr", a, r, t, i), e.addResourceBundle("en", a, n, t, i), e;
|
|
46
|
-
}
|
|
47
|
-
export {
|
|
48
|
-
n as e,
|
|
49
|
-
W as r,
|
|
50
|
-
r as t,
|
|
51
|
-
x as u
|
|
52
|
-
};
|