@mesgflow/ui-kit 0.6.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/LICENSE +21 -0
- package/README.md +200 -0
- package/fesm2022/mesgflow-ui-kit-accordion.mjs +75 -0
- package/fesm2022/mesgflow-ui-kit-accordion.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-alert.mjs +165 -0
- package/fesm2022/mesgflow-ui-kit-alert.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-avatar-group.mjs +88 -0
- package/fesm2022/mesgflow-ui-kit-avatar-group.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-avatar.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-avatar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-badge.mjs +68 -0
- package/fesm2022/mesgflow-ui-kit-badge.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-banner.mjs +111 -0
- package/fesm2022/mesgflow-ui-kit-banner.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-box-input.mjs +78 -0
- package/fesm2022/mesgflow-ui-kit-box-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-brand.mjs +120 -0
- package/fesm2022/mesgflow-ui-kit-brand.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs +84 -0
- package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-button-group.mjs +37 -0
- package/fesm2022/mesgflow-ui-kit-button-group.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-button.mjs +359 -0
- package/fesm2022/mesgflow-ui-kit-button.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-card.mjs +128 -0
- package/fesm2022/mesgflow-ui-kit-card.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-chart.mjs +538 -0
- package/fesm2022/mesgflow-ui-kit-chart.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs +45 -0
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-chip.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-chip.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-code-block.mjs +71 -0
- package/fesm2022/mesgflow-ui-kit-code-block.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-collapsible.mjs +89 -0
- package/fesm2022/mesgflow-ui-kit-collapsible.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs +210 -0
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-combobox.mjs +181 -0
- package/fesm2022/mesgflow-ui-kit-combobox.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-command.mjs +491 -0
- package/fesm2022/mesgflow-ui-kit-command.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs +92 -0
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-copy-button.mjs +167 -0
- package/fesm2022/mesgflow-ui-kit-copy-button.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-core.mjs +624 -0
- package/fesm2022/mesgflow-ui-kit-core.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs +643 -0
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-description-list.mjs +76 -0
- package/fesm2022/mesgflow-ui-kit-description-list.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-dialog.mjs +700 -0
- package/fesm2022/mesgflow-ui-kit-dialog.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-divider.mjs +62 -0
- package/fesm2022/mesgflow-ui-kit-divider.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs +126 -0
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-empty-state.mjs +70 -0
- package/fesm2022/mesgflow-ui-kit-empty-state.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-field.mjs +42 -0
- package/fesm2022/mesgflow-ui-kit-field.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-hover-card.mjs +171 -0
- package/fesm2022/mesgflow-ui-kit-hover-card.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +258 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-icon.mjs +174 -0
- package/fesm2022/mesgflow-ui-kit-icon.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-input.mjs +448 -0
- package/fesm2022/mesgflow-ui-kit-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-kbd.mjs +24 -0
- package/fesm2022/mesgflow-ui-kit-kbd.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-link.mjs +48 -0
- package/fesm2022/mesgflow-ui-kit-link.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-menu.mjs +105 -0
- package/fesm2022/mesgflow-ui-kit-menu.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-number-input.mjs +153 -0
- package/fesm2022/mesgflow-ui-kit-number-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-otp-input.mjs +164 -0
- package/fesm2022/mesgflow-ui-kit-otp-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-page-header.mjs +83 -0
- package/fesm2022/mesgflow-ui-kit-page-header.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-pagination.mjs +99 -0
- package/fesm2022/mesgflow-ui-kit-pagination.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-password-input.mjs +120 -0
- package/fesm2022/mesgflow-ui-kit-password-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-popover.mjs +213 -0
- package/fesm2022/mesgflow-ui-kit-popover.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-progress.mjs +82 -0
- package/fesm2022/mesgflow-ui-kit-progress.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-radio.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-radio.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-rating.mjs +116 -0
- package/fesm2022/mesgflow-ui-kit-rating.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-scroll-area.mjs +84 -0
- package/fesm2022/mesgflow-ui-kit-scroll-area.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-search-input.mjs +154 -0
- package/fesm2022/mesgflow-ui-kit-search-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs +95 -0
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-select.mjs +227 -0
- package/fesm2022/mesgflow-ui-kit-select.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs +449 -0
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs +74 -0
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-slider.mjs +179 -0
- package/fesm2022/mesgflow-ui-kit-slider.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-spinner.mjs +67 -0
- package/fesm2022/mesgflow-ui-kit-spinner.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-splitter.mjs +97 -0
- package/fesm2022/mesgflow-ui-kit-splitter.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs +98 -0
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-stepper.mjs +133 -0
- package/fesm2022/mesgflow-ui-kit-stepper.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-switch.mjs +73 -0
- package/fesm2022/mesgflow-ui-kit-switch.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-table.mjs +1783 -0
- package/fesm2022/mesgflow-ui-kit-table.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tabs.mjs +569 -0
- package/fesm2022/mesgflow-ui-kit-tabs.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs +138 -0
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs +53 -0
- package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-theming.mjs +1016 -0
- package/fesm2022/mesgflow-ui-kit-theming.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs +138 -0
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-timeline.mjs +91 -0
- package/fesm2022/mesgflow-ui-kit-timeline.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toast.mjs +202 -0
- package/fesm2022/mesgflow-ui-kit-toast.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toggle.mjs +243 -0
- package/fesm2022/mesgflow-ui-kit-toggle.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs +99 -0
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs +160 -0
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tour.mjs +272 -0
- package/fesm2022/mesgflow-ui-kit-tour.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tree-select.mjs +177 -0
- package/fesm2022/mesgflow-ui-kit-tree-select.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tree.mjs +82 -0
- package/fesm2022/mesgflow-ui-kit-tree.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit.mjs +12851 -0
- package/fesm2022/mesgflow-ui-kit.mjs.map +1 -0
- package/package.json +374 -0
- package/preset.css +20 -0
- package/tokens/color.css +693 -0
- package/tokens/contrast.css +68 -0
- package/tokens/elevation.css +68 -0
- package/tokens/motion.css +277 -0
- package/tokens/radius.css +69 -0
- package/tokens/typography.css +127 -0
- package/tokens.css +41 -0
- package/types/mesgflow-ui-kit-accordion.d.ts +42 -0
- package/types/mesgflow-ui-kit-alert.d.ts +60 -0
- package/types/mesgflow-ui-kit-avatar-group.d.ts +28 -0
- package/types/mesgflow-ui-kit-avatar.d.ts +23 -0
- package/types/mesgflow-ui-kit-badge.d.ts +39 -0
- package/types/mesgflow-ui-kit-banner.d.ts +42 -0
- package/types/mesgflow-ui-kit-box-input.d.ts +45 -0
- package/types/mesgflow-ui-kit-brand.d.ts +48 -0
- package/types/mesgflow-ui-kit-breadcrumb.d.ts +26 -0
- package/types/mesgflow-ui-kit-button-group.d.ts +17 -0
- package/types/mesgflow-ui-kit-button.d.ts +75 -0
- package/types/mesgflow-ui-kit-card.d.ts +71 -0
- package/types/mesgflow-ui-kit-chart.d.ts +242 -0
- package/types/mesgflow-ui-kit-checkbox.d.ts +17 -0
- package/types/mesgflow-ui-kit-chip.d.ts +46 -0
- package/types/mesgflow-ui-kit-code-block.d.ts +56 -0
- package/types/mesgflow-ui-kit-collapsible.d.ts +39 -0
- package/types/mesgflow-ui-kit-color-picker.d.ts +78 -0
- package/types/mesgflow-ui-kit-combobox.d.ts +74 -0
- package/types/mesgflow-ui-kit-command.d.ts +185 -0
- package/types/mesgflow-ui-kit-context-menu.d.ts +40 -0
- package/types/mesgflow-ui-kit-copy-button.d.ts +47 -0
- package/types/mesgflow-ui-kit-core.d.ts +508 -0
- package/types/mesgflow-ui-kit-date-picker.d.ts +215 -0
- package/types/mesgflow-ui-kit-description-list.d.ts +23 -0
- package/types/mesgflow-ui-kit-dialog.d.ts +342 -0
- package/types/mesgflow-ui-kit-divider.d.ts +23 -0
- package/types/mesgflow-ui-kit-dropzone.d.ts +47 -0
- package/types/mesgflow-ui-kit-empty-state.d.ts +18 -0
- package/types/mesgflow-ui-kit-field.d.ts +26 -0
- package/types/mesgflow-ui-kit-hover-card.d.ts +52 -0
- package/types/mesgflow-ui-kit-i18n-tr.d.ts +14 -0
- package/types/mesgflow-ui-kit-icon.d.ts +76 -0
- package/types/mesgflow-ui-kit-input.d.ts +186 -0
- package/types/mesgflow-ui-kit-kbd.d.ts +9 -0
- package/types/mesgflow-ui-kit-link.d.ts +20 -0
- package/types/mesgflow-ui-kit-menu.d.ts +53 -0
- package/types/mesgflow-ui-kit-number-input.d.ts +55 -0
- package/types/mesgflow-ui-kit-otp-input.d.ts +44 -0
- package/types/mesgflow-ui-kit-page-header.d.ts +31 -0
- package/types/mesgflow-ui-kit-pagination.d.ts +50 -0
- package/types/mesgflow-ui-kit-password-input.d.ts +33 -0
- package/types/mesgflow-ui-kit-popover.d.ts +62 -0
- package/types/mesgflow-ui-kit-progress.d.ts +32 -0
- package/types/mesgflow-ui-kit-radio.d.ts +59 -0
- package/types/mesgflow-ui-kit-rating.d.ts +56 -0
- package/types/mesgflow-ui-kit-scroll-area.d.ts +27 -0
- package/types/mesgflow-ui-kit-search-input.d.ts +72 -0
- package/types/mesgflow-ui-kit-segmented-control.d.ts +54 -0
- package/types/mesgflow-ui-kit-select.d.ts +89 -0
- package/types/mesgflow-ui-kit-sidebar.d.ts +224 -0
- package/types/mesgflow-ui-kit-skeleton.d.ts +29 -0
- package/types/mesgflow-ui-kit-slider.d.ts +40 -0
- package/types/mesgflow-ui-kit-spinner.d.ts +31 -0
- package/types/mesgflow-ui-kit-splitter.d.ts +40 -0
- package/types/mesgflow-ui-kit-stat-tile.d.ts +54 -0
- package/types/mesgflow-ui-kit-stepper.d.ts +48 -0
- package/types/mesgflow-ui-kit-switch.d.ts +34 -0
- package/types/mesgflow-ui-kit-table.d.ts +805 -0
- package/types/mesgflow-ui-kit-tabs.d.ts +269 -0
- package/types/mesgflow-ui-kit-tag-input.d.ts +33 -0
- package/types/mesgflow-ui-kit-theme-switcher.d.ts +27 -0
- package/types/mesgflow-ui-kit-theming.d.ts +745 -0
- package/types/mesgflow-ui-kit-time-picker.d.ts +54 -0
- package/types/mesgflow-ui-kit-timeline.d.ts +27 -0
- package/types/mesgflow-ui-kit-toast.d.ts +94 -0
- package/types/mesgflow-ui-kit-toggle.d.ts +110 -0
- package/types/mesgflow-ui-kit-toolbar.d.ts +52 -0
- package/types/mesgflow-ui-kit-tooltip.d.ts +55 -0
- package/types/mesgflow-ui-kit-tour.d.ts +66 -0
- package/types/mesgflow-ui-kit-tree-select.d.ts +65 -0
- package/types/mesgflow-ui-kit-tree.d.ts +44 -0
- package/types/mesgflow-ui-kit.d.ts +5444 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import * as i1 from '@angular/cdk/overlay';
|
|
2
|
+
import { CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { model, input, signal, inject, DestroyRef, Component, Directive } from '@angular/core';
|
|
5
|
+
import { Popover } from '@mesgflow/ui-kit/popover';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* `<a href="/u/ayse" [mfHoverCardTrigger]="card">@ayse</a>
|
|
9
|
+
* <mf-hover-card #card>…profil önizlemesi…</mf-hover-card>`
|
|
10
|
+
*
|
|
11
|
+
* Bir bağlantının üzerine gelince açılan zengin önizleme (profil, bağlantı özeti). Tooltip'ten
|
|
12
|
+
* farkı: içerik etkileşimli olabilir (imleç karta geçince açık kalır) ve daha geniştir.
|
|
13
|
+
*
|
|
14
|
+
* Erişilebilirlik sınırı (Radix/GitHub ile aynı): kart GÖREN kullanıcılar için EK bilgidir —
|
|
15
|
+
* tetikleyiciye klavye odağı gelince de açılır, Esc kapatır, ama odak karta taşınmaz ve içerik
|
|
16
|
+
* ekran okuyucuya duyurulmaz. Karttaki bilgi/eylem sayfada başka bir yoldan erişilebilir
|
|
17
|
+
* olmalı (tetikleyici bağlantının kendisi gibi). Dokunmatikte açılmaz (hover yok).
|
|
18
|
+
*/
|
|
19
|
+
class HoverCard {
|
|
20
|
+
open = model(false, /* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
|
|
22
|
+
placement = input('bottom-start', /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
|
|
24
|
+
/** Üzerine gelindikten sonra açılma gecikmesi (ms) — imleç geçip giderken kart fırlamasın. */
|
|
25
|
+
openDelay = input(500, /* @ts-ignore */
|
|
26
|
+
...(ngDevMode ? [{ debugName: "openDelay" }] : /* istanbul ignore next */ []));
|
|
27
|
+
/** Ayrıldıktan sonra kapanma gecikmesi (ms) — tetikleyiciden karta geçiş boşluğu için. */
|
|
28
|
+
closeDelay = input(200, /* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [{ debugName: "closeDelay" }] : /* istanbul ignore next */ []));
|
|
30
|
+
panelClass = input('w-72', /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "panelClass" }] : /* istanbul ignore next */ []));
|
|
32
|
+
origin = signal(null, /* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [{ debugName: "origin" }] : /* istanbul ignore next */ []));
|
|
34
|
+
openTimer;
|
|
35
|
+
closeTimer;
|
|
36
|
+
constructor() {
|
|
37
|
+
inject(DestroyRef).onDestroy(() => this.clearTimers());
|
|
38
|
+
}
|
|
39
|
+
/** Tetikleyici kendini kaydeder — kart birden çok tetikleyiciyle paylaşılabilir (son etkin olan). */
|
|
40
|
+
attach(origin) {
|
|
41
|
+
if (this.origin() !== origin) {
|
|
42
|
+
this.open.set(false);
|
|
43
|
+
this.origin.set(origin);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
scheduleOpen(immediate = false) {
|
|
47
|
+
this.cancelClose();
|
|
48
|
+
clearTimeout(this.openTimer);
|
|
49
|
+
if (immediate || this.open()) {
|
|
50
|
+
this.open.set(true);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.openTimer = setTimeout(() => this.open.set(true), this.openDelay());
|
|
54
|
+
}
|
|
55
|
+
scheduleClose() {
|
|
56
|
+
clearTimeout(this.openTimer);
|
|
57
|
+
clearTimeout(this.closeTimer);
|
|
58
|
+
this.closeTimer = setTimeout(() => this.open.set(false), this.closeDelay());
|
|
59
|
+
}
|
|
60
|
+
cancelClose() {
|
|
61
|
+
clearTimeout(this.closeTimer);
|
|
62
|
+
}
|
|
63
|
+
close() {
|
|
64
|
+
this.clearTimers();
|
|
65
|
+
this.open.set(false);
|
|
66
|
+
}
|
|
67
|
+
clearTimers() {
|
|
68
|
+
clearTimeout(this.openTimer);
|
|
69
|
+
clearTimeout(this.closeTimer);
|
|
70
|
+
}
|
|
71
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: HoverCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: HoverCard, isStandalone: true, selector: "mf-hover-card", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, openDelay: { classPropertyName: "openDelay", publicName: "openDelay", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { classAttribute: "contents" }, exportAs: ["mfHoverCard"], ngImport: i0, template: `
|
|
73
|
+
@if (origin(); as origin) {
|
|
74
|
+
<mf-popover
|
|
75
|
+
[origin]="origin"
|
|
76
|
+
[(open)]="open"
|
|
77
|
+
[placement]="placement()"
|
|
78
|
+
[hasBackdrop]="false"
|
|
79
|
+
padding="none"
|
|
80
|
+
[panelClass]="panelClass()"
|
|
81
|
+
>
|
|
82
|
+
<!-- İmleç karta geçince kapanma iptal olur; ayrılınca yeniden zamanlanır. -->
|
|
83
|
+
<div class="p-4" (pointerenter)="cancelClose()" (pointerleave)="scheduleClose()">
|
|
84
|
+
<ng-content />
|
|
85
|
+
</div>
|
|
86
|
+
</mf-popover>
|
|
87
|
+
}
|
|
88
|
+
`, isInline: true, dependencies: [{ kind: "component", type: Popover, selector: "mf-popover", inputs: ["origin", "open", "placement", "padding", "hasBackdrop", "matchTriggerWidth", "panelClass"], outputs: ["openChange", "closed"], exportAs: ["mfPopover"] }] });
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: HoverCard, decorators: [{
|
|
91
|
+
type: Component,
|
|
92
|
+
args: [{
|
|
93
|
+
selector: 'mf-hover-card',
|
|
94
|
+
exportAs: 'mfHoverCard',
|
|
95
|
+
imports: [Popover],
|
|
96
|
+
host: { class: 'contents' },
|
|
97
|
+
template: `
|
|
98
|
+
@if (origin(); as origin) {
|
|
99
|
+
<mf-popover
|
|
100
|
+
[origin]="origin"
|
|
101
|
+
[(open)]="open"
|
|
102
|
+
[placement]="placement()"
|
|
103
|
+
[hasBackdrop]="false"
|
|
104
|
+
padding="none"
|
|
105
|
+
[panelClass]="panelClass()"
|
|
106
|
+
>
|
|
107
|
+
<!-- İmleç karta geçince kapanma iptal olur; ayrılınca yeniden zamanlanır. -->
|
|
108
|
+
<div class="p-4" (pointerenter)="cancelClose()" (pointerleave)="scheduleClose()">
|
|
109
|
+
<ng-content />
|
|
110
|
+
</div>
|
|
111
|
+
</mf-popover>
|
|
112
|
+
}
|
|
113
|
+
`,
|
|
114
|
+
}]
|
|
115
|
+
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], openDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "openDelay", required: false }] }], closeDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeDelay", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }] } });
|
|
116
|
+
/** `:focus-visible` desteklenmeyen ortamda (eski motor/jsdom seçici hatası) odağı klavye sayar. */
|
|
117
|
+
function isKeyboardFocus(target) {
|
|
118
|
+
try {
|
|
119
|
+
return target?.matches(':focus-visible') ?? true;
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/** `[mfHoverCardTrigger]="card"` — bkz. `HoverCard`. CDK overlay kökü olarak kendini kaydeder. */
|
|
126
|
+
class HoverCardTrigger {
|
|
127
|
+
card = input.required({ ...(ngDevMode ? { debugName: "card" } : /* istanbul ignore next */ {}), alias: 'mfHoverCardTrigger' });
|
|
128
|
+
origin = inject(CdkOverlayOrigin);
|
|
129
|
+
onPointerEnter(event) {
|
|
130
|
+
if (event.pointerType === 'touch')
|
|
131
|
+
return;
|
|
132
|
+
this.card().attach(this.origin);
|
|
133
|
+
this.card().scheduleOpen();
|
|
134
|
+
}
|
|
135
|
+
onPointerLeave(event) {
|
|
136
|
+
if (event.pointerType === 'touch')
|
|
137
|
+
return;
|
|
138
|
+
this.card().scheduleClose();
|
|
139
|
+
}
|
|
140
|
+
/** Yalnızca klavye odağı (`:focus-visible`) — fareyle tıklayıp odaklanmak kartı ayrıca açmasın. */
|
|
141
|
+
onFocus(event) {
|
|
142
|
+
if (!isKeyboardFocus(event.target))
|
|
143
|
+
return;
|
|
144
|
+
this.card().attach(this.origin);
|
|
145
|
+
this.card().scheduleOpen(true);
|
|
146
|
+
}
|
|
147
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: HoverCardTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
148
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: HoverCardTrigger, isStandalone: true, selector: "[mfHoverCardTrigger]", inputs: { card: { classPropertyName: "card", publicName: "mfHoverCardTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "pointerenter": "onPointerEnter($event)", "pointerleave": "onPointerLeave($event)", "focus": "onFocus($event)", "blur": "card().scheduleClose()", "keydown.escape": "card().close()" } }, exportAs: ["mfHoverCardTrigger"], hostDirectives: [{ directive: i1.CdkOverlayOrigin }], ngImport: i0 });
|
|
149
|
+
}
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: HoverCardTrigger, decorators: [{
|
|
151
|
+
type: Directive,
|
|
152
|
+
args: [{
|
|
153
|
+
selector: '[mfHoverCardTrigger]',
|
|
154
|
+
exportAs: 'mfHoverCardTrigger',
|
|
155
|
+
hostDirectives: [CdkOverlayOrigin],
|
|
156
|
+
host: {
|
|
157
|
+
'(pointerenter)': 'onPointerEnter($event)',
|
|
158
|
+
'(pointerleave)': 'onPointerLeave($event)',
|
|
159
|
+
'(focus)': 'onFocus($event)',
|
|
160
|
+
'(blur)': 'card().scheduleClose()',
|
|
161
|
+
'(keydown.escape)': 'card().close()',
|
|
162
|
+
},
|
|
163
|
+
}]
|
|
164
|
+
}], propDecorators: { card: [{ type: i0.Input, args: [{ isSignal: true, alias: "mfHoverCardTrigger", required: true }] }] } });
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Generated bundle index. Do not edit.
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
export { HoverCard, HoverCardTrigger };
|
|
171
|
+
//# sourceMappingURL=mesgflow-ui-kit-hover-card.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesgflow-ui-kit-hover-card.mjs","sources":["../../../projects/ui-kit/hover-card/hover-card.ts","../../../projects/ui-kit/hover-card/mesgflow-ui-kit-hover-card.ts"],"sourcesContent":["import { CdkOverlayOrigin } from '@angular/cdk/overlay';\r\nimport { Component, DestroyRef, Directive, inject, input, model, signal } from '@angular/core';\r\nimport { Popover, type PopoverPlacement } from '@mesgflow/ui-kit/popover';\r\n\r\n/**\r\n * `<a href=\"/u/ayse\" [mfHoverCardTrigger]=\"card\">@ayse</a>\r\n * <mf-hover-card #card>…profil önizlemesi…</mf-hover-card>`\r\n *\r\n * Bir bağlantının üzerine gelince açılan zengin önizleme (profil, bağlantı özeti). Tooltip'ten\r\n * farkı: içerik etkileşimli olabilir (imleç karta geçince açık kalır) ve daha geniştir.\r\n *\r\n * Erişilebilirlik sınırı (Radix/GitHub ile aynı): kart GÖREN kullanıcılar için EK bilgidir —\r\n * tetikleyiciye klavye odağı gelince de açılır, Esc kapatır, ama odak karta taşınmaz ve içerik\r\n * ekran okuyucuya duyurulmaz. Karttaki bilgi/eylem sayfada başka bir yoldan erişilebilir\r\n * olmalı (tetikleyici bağlantının kendisi gibi). Dokunmatikte açılmaz (hover yok).\r\n */\r\n@Component({\r\n selector: 'mf-hover-card',\r\n exportAs: 'mfHoverCard',\r\n imports: [Popover],\r\n host: { class: 'contents' },\r\n template: `\r\n @if (origin(); as origin) {\r\n <mf-popover\r\n [origin]=\"origin\"\r\n [(open)]=\"open\"\r\n [placement]=\"placement()\"\r\n [hasBackdrop]=\"false\"\r\n padding=\"none\"\r\n [panelClass]=\"panelClass()\"\r\n >\r\n <!-- İmleç karta geçince kapanma iptal olur; ayrılınca yeniden zamanlanır. -->\r\n <div class=\"p-4\" (pointerenter)=\"cancelClose()\" (pointerleave)=\"scheduleClose()\">\r\n <ng-content />\r\n </div>\r\n </mf-popover>\r\n }\r\n `,\r\n})\r\nexport class HoverCard {\r\n readonly open = model(false);\r\n readonly placement = input<PopoverPlacement>('bottom-start');\r\n /** Üzerine gelindikten sonra açılma gecikmesi (ms) — imleç geçip giderken kart fırlamasın. */\r\n readonly openDelay = input(500);\r\n /** Ayrıldıktan sonra kapanma gecikmesi (ms) — tetikleyiciden karta geçiş boşluğu için. */\r\n readonly closeDelay = input(200);\r\n readonly panelClass = input('w-72');\r\n\r\n protected readonly origin = signal<CdkOverlayOrigin | null>(null);\r\n private openTimer?: ReturnType<typeof setTimeout>;\r\n private closeTimer?: ReturnType<typeof setTimeout>;\r\n\r\n constructor() {\r\n inject(DestroyRef).onDestroy(() => this.clearTimers());\r\n }\r\n\r\n /** Tetikleyici kendini kaydeder — kart birden çok tetikleyiciyle paylaşılabilir (son etkin olan). */\r\n attach(origin: CdkOverlayOrigin): void {\r\n if (this.origin() !== origin) {\r\n this.open.set(false);\r\n this.origin.set(origin);\r\n }\r\n }\r\n\r\n scheduleOpen(immediate = false): void {\r\n this.cancelClose();\r\n clearTimeout(this.openTimer);\r\n if (immediate || this.open()) {\r\n this.open.set(true);\r\n return;\r\n }\r\n this.openTimer = setTimeout(() => this.open.set(true), this.openDelay());\r\n }\r\n\r\n scheduleClose(): void {\r\n clearTimeout(this.openTimer);\r\n clearTimeout(this.closeTimer);\r\n this.closeTimer = setTimeout(() => this.open.set(false), this.closeDelay());\r\n }\r\n\r\n cancelClose(): void {\r\n clearTimeout(this.closeTimer);\r\n }\r\n\r\n close(): void {\r\n this.clearTimers();\r\n this.open.set(false);\r\n }\r\n\r\n private clearTimers(): void {\r\n clearTimeout(this.openTimer);\r\n clearTimeout(this.closeTimer);\r\n }\r\n}\r\n\r\n/** `:focus-visible` desteklenmeyen ortamda (eski motor/jsdom seçici hatası) odağı klavye sayar. */\r\nfunction isKeyboardFocus(target: Element | null): boolean {\r\n try {\r\n return target?.matches(':focus-visible') ?? true;\r\n } catch {\r\n return true;\r\n }\r\n}\r\n\r\n/** `[mfHoverCardTrigger]=\"card\"` — bkz. `HoverCard`. CDK overlay kökü olarak kendini kaydeder. */\r\n@Directive({\r\n selector: '[mfHoverCardTrigger]',\r\n exportAs: 'mfHoverCardTrigger',\r\n hostDirectives: [CdkOverlayOrigin],\r\n host: {\r\n '(pointerenter)': 'onPointerEnter($event)',\r\n '(pointerleave)': 'onPointerLeave($event)',\r\n '(focus)': 'onFocus($event)',\r\n '(blur)': 'card().scheduleClose()',\r\n '(keydown.escape)': 'card().close()',\r\n },\r\n})\r\nexport class HoverCardTrigger {\r\n readonly card = input.required<HoverCard>({ alias: 'mfHoverCardTrigger' });\r\n private readonly origin = inject(CdkOverlayOrigin);\r\n\r\n protected onPointerEnter(event: PointerEvent): void {\r\n if (event.pointerType === 'touch') return;\r\n this.card().attach(this.origin);\r\n this.card().scheduleOpen();\r\n }\r\n\r\n protected onPointerLeave(event: PointerEvent): void {\r\n if (event.pointerType === 'touch') return;\r\n this.card().scheduleClose();\r\n }\r\n\r\n /** Yalnızca klavye odağı (`:focus-visible`) — fareyle tıklayıp odaklanmak kartı ayrıca açmasın. */\r\n protected onFocus(event: FocusEvent): void {\r\n if (!isKeyboardFocus(event.target as Element | null)) return;\r\n this.card().attach(this.origin);\r\n this.card().scheduleOpen(true);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAIA;;;;;;;;;;;AAWG;MAwBU,SAAS,CAAA;IACX,IAAI,GAAG,KAAK,CAAC,KAAK;6EAAC;IACnB,SAAS,GAAG,KAAK,CAAmB,cAAc;kFAAC;;IAEnD,SAAS,GAAG,KAAK,CAAC,GAAG;kFAAC;;IAEtB,UAAU,GAAG,KAAK,CAAC,GAAG;mFAAC;IACvB,UAAU,GAAG,KAAK,CAAC,MAAM;mFAAC;IAEhB,MAAM,GAAG,MAAM,CAA0B,IAAI;+EAAC;AACzD,IAAA,SAAS;AACT,IAAA,UAAU;AAElB,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACxD;;AAGA,IAAA,MAAM,CAAC,MAAwB,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QACzB;IACF;IAEA,YAAY,CAAC,SAAS,GAAG,KAAK,EAAA;QAC5B,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACnB;QACF;QACA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1E;IAEA,aAAa,GAAA;AACX,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,QAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7E;IAEA,WAAW,GAAA;AACT,QAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;IAC/B;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;IAEQ,WAAW,GAAA;AACjB,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,QAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;IAC/B;uGArDW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlBV,CAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBS,OAAO,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAoBN,SAAS,EAAA,UAAA,EAAA,CAAA;kBAvBrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;oBACvB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;AACF,iBAAA;;AAyDD;AACA,SAAS,eAAe,CAAC,MAAsB,EAAA;AAC7C,IAAA,IAAI;QACF,OAAO,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI;IAClD;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;AAEA;MAaa,gBAAgB,CAAA;IAClB,IAAI,GAAG,KAAK,CAAC,QAAQ,2EAAc,KAAK,EAAE,oBAAoB,EAAA,CAAG;AACzD,IAAA,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAExC,IAAA,cAAc,CAAC,KAAmB,EAAA;AAC1C,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO;YAAE;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE;IAC5B;AAEU,IAAA,cAAc,CAAC,KAAmB,EAAA;AAC1C,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO;YAAE;AACnC,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;IAC7B;;AAGU,IAAA,OAAO,CAAC,KAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAwB,CAAC;YAAE;QACtD,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC;uGApBW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,cAAc,EAAE,CAAC,gBAAgB,CAAC;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,gBAAgB,EAAE,wBAAwB;AAC1C,wBAAA,gBAAgB,EAAE,wBAAwB;AAC1C,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,QAAQ,EAAE,wBAAwB;AAClC,wBAAA,kBAAkB,EAAE,gBAAgB;AACrC,qBAAA;AACF,iBAAA;;;ACpHD;;AAEG;;"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `provideMesgflowUi({ labels: mfLabelsTr, dateLocale: tr })` ile sağlanan
|
|
3
|
+
* Türkçe çeviri kümesi — kitin İngilizce varsayılanının (`mfLabelsEn`, bkz.
|
|
4
|
+
* `@mesgflow/ui-kit/core`) AYNI şeklini taşır, sadece değerleri Türkçe. AYRI bir
|
|
5
|
+
* ikincil giriş noktası (`@mesgflow/ui-kit/i18n/tr`) olmasının sebebi: birincil
|
|
6
|
+
* barrel'a (`@mesgflow/ui-kit`) dahil OLMAMASI — Türkçe metin isteyen tüketici
|
|
7
|
+
* BİLEREK import eder, İngilizce varsayılanı tercih eden tüketicinin bundle'ına
|
|
8
|
+
* hiç girmez.
|
|
9
|
+
*/
|
|
10
|
+
const mfLabelsTr = {
|
|
11
|
+
common: {
|
|
12
|
+
loading: 'Yükleniyor',
|
|
13
|
+
clear: 'Temizle',
|
|
14
|
+
remove: 'Kaldır',
|
|
15
|
+
},
|
|
16
|
+
dialog: {
|
|
17
|
+
close: 'Kapat',
|
|
18
|
+
resize: 'Yeniden boyutlandır',
|
|
19
|
+
fullscreenEnter: 'Tam ekran yap',
|
|
20
|
+
fullscreenExit: 'Tam ekrandan çık',
|
|
21
|
+
confirmOk: 'Tamam',
|
|
22
|
+
confirmCancel: 'İptal',
|
|
23
|
+
confirmConfirm: 'Onayla',
|
|
24
|
+
confirmDelete: 'Sil',
|
|
25
|
+
errorGeneric: 'Bir şeyler ters gitti. Lütfen tekrar deneyin.',
|
|
26
|
+
discard: {
|
|
27
|
+
title: 'Kaydedilmemiş değişiklikler',
|
|
28
|
+
content: 'Bu paneli kapatmak girdiklerinizi silecek.',
|
|
29
|
+
confirm: 'Vazgeç ve kapat',
|
|
30
|
+
cancel: 'Düzenlemeye devam et',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
datePicker: {
|
|
34
|
+
today: 'Bugün',
|
|
35
|
+
clear: 'Temizle',
|
|
36
|
+
apply: 'Uygula',
|
|
37
|
+
previousMonth: 'Önceki ay',
|
|
38
|
+
nextMonth: 'Sonraki ay',
|
|
39
|
+
previousYear: 'Önceki yıl',
|
|
40
|
+
nextYear: 'Sonraki yıl',
|
|
41
|
+
chooseMonth: 'Ay seç',
|
|
42
|
+
chooseYear: 'Yıl seç',
|
|
43
|
+
startDate: 'Başlangıç',
|
|
44
|
+
endDate: 'Bitiş',
|
|
45
|
+
placeholder: 'gg.aa.yyyy',
|
|
46
|
+
presetToday: 'Bugün',
|
|
47
|
+
presetLast7: 'Son 7 gün',
|
|
48
|
+
presetLast30: 'Son 30 gün',
|
|
49
|
+
presetThisMonth: 'Bu ay',
|
|
50
|
+
},
|
|
51
|
+
timePicker: {
|
|
52
|
+
placeholder: 'SS:DD',
|
|
53
|
+
clear: 'Temizle',
|
|
54
|
+
},
|
|
55
|
+
table: {
|
|
56
|
+
searchPlaceholder: 'Ara...',
|
|
57
|
+
selectedCount: 'seçildi',
|
|
58
|
+
edit: 'Düzenle',
|
|
59
|
+
delete: 'Sil',
|
|
60
|
+
clearSelection: 'Seçimi temizle',
|
|
61
|
+
emptyTitle: 'Kayıt yok',
|
|
62
|
+
emptyDescription: '',
|
|
63
|
+
noResultsTitle: 'Sonuç bulunamadı',
|
|
64
|
+
noResultsDescription: 'Farklı bir arama veya filtre deneyin.',
|
|
65
|
+
clearFilters: 'Filtreleri temizle',
|
|
66
|
+
filterCount: 'filtre',
|
|
67
|
+
selectAllAriaLabel: 'Tümünü seç',
|
|
68
|
+
selectRowAriaLabel: 'Satırı seç',
|
|
69
|
+
actionsColumnLabel: 'İşlemler',
|
|
70
|
+
columns: 'Kolonlar',
|
|
71
|
+
density: 'Yoğunluk',
|
|
72
|
+
densityComfortable: 'Rahat',
|
|
73
|
+
densityCompact: 'Sık',
|
|
74
|
+
resizeColumn: 'Sütunu yeniden boyutlandır',
|
|
75
|
+
expandRow: 'Satırı genişlet',
|
|
76
|
+
collapseRow: 'Satırı daralt',
|
|
77
|
+
filter: {
|
|
78
|
+
addFilter: 'Filtre',
|
|
79
|
+
searchField: 'Alan ara...',
|
|
80
|
+
noField: 'Alan bulunamadı',
|
|
81
|
+
operator: 'Operatör',
|
|
82
|
+
value: 'Değer',
|
|
83
|
+
apply: 'Uygula',
|
|
84
|
+
enterHint: 'Enter',
|
|
85
|
+
clearAll: 'Temizle',
|
|
86
|
+
and: 'VE',
|
|
87
|
+
or: 'VEYA',
|
|
88
|
+
remove: 'Kaldır',
|
|
89
|
+
back: 'Geri',
|
|
90
|
+
dateToday: 'Bugün',
|
|
91
|
+
dateLast7: 'Son 7 gün',
|
|
92
|
+
dateLast30: 'Son 30 gün',
|
|
93
|
+
dateThisMonth: 'Bu ay',
|
|
94
|
+
dateCustom: 'Özel aralık',
|
|
95
|
+
dateFrom: 'Başlangıç',
|
|
96
|
+
dateTo: 'Bitiş',
|
|
97
|
+
operators: {
|
|
98
|
+
equal: 'eşittir',
|
|
99
|
+
notEqual: 'eşit değildir',
|
|
100
|
+
greaterThan: 'büyüktür',
|
|
101
|
+
greaterOrEqual: 'büyük eşittir',
|
|
102
|
+
lessThan: 'küçüktür',
|
|
103
|
+
lessOrEqual: 'küçük eşittir',
|
|
104
|
+
contains: 'içerir',
|
|
105
|
+
startsWith: 'ile başlar',
|
|
106
|
+
endsWith: 'ile biter',
|
|
107
|
+
in: 'şunlardan biri',
|
|
108
|
+
isNull: 'boş',
|
|
109
|
+
isNotNull: 'dolu',
|
|
110
|
+
between: 'aralığında',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
pagination: {
|
|
114
|
+
records: 'kayıt',
|
|
115
|
+
perPage: 'sayfa başına',
|
|
116
|
+
page: 'Sayfa',
|
|
117
|
+
previous: 'Önceki',
|
|
118
|
+
next: 'Sonraki',
|
|
119
|
+
first: 'İlk sayfa',
|
|
120
|
+
last: 'Son sayfa',
|
|
121
|
+
pageSizeAriaLabel: 'Sayfa boyutu',
|
|
122
|
+
navAriaLabel: 'Sayfalama',
|
|
123
|
+
jumpToPage: 'Sayfaya git',
|
|
124
|
+
go: 'Git',
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
sidebar: {
|
|
128
|
+
collapse: 'Menüyü daralt',
|
|
129
|
+
expand: 'Menüyü genişlet',
|
|
130
|
+
switchTenant: 'Kiracı değiştir',
|
|
131
|
+
noTenants: 'Kiracı bulunamadı',
|
|
132
|
+
noUser: 'Oturum açılmadı',
|
|
133
|
+
nav: 'Ana gezinme',
|
|
134
|
+
},
|
|
135
|
+
tabs: {
|
|
136
|
+
scrollStart: 'Geri kaydır',
|
|
137
|
+
scrollEnd: 'İleri kaydır',
|
|
138
|
+
close: 'Kapat',
|
|
139
|
+
},
|
|
140
|
+
dropzone: {
|
|
141
|
+
label: 'Dosyaları buraya sürükle veya seçmek için tıkla',
|
|
142
|
+
},
|
|
143
|
+
colorPicker: {
|
|
144
|
+
ariaLabel: 'Renk seç',
|
|
145
|
+
hexAriaLabel: 'Hex renk kodu',
|
|
146
|
+
pickFromScreenAriaLabel: 'Ekrandan renk seç',
|
|
147
|
+
},
|
|
148
|
+
boxInput: {
|
|
149
|
+
top: 'Üst',
|
|
150
|
+
right: 'Sağ',
|
|
151
|
+
bottom: 'Alt',
|
|
152
|
+
left: 'Sol',
|
|
153
|
+
linkSides: 'Kenarları bağla',
|
|
154
|
+
unlinkSides: 'Kenarları ayır',
|
|
155
|
+
},
|
|
156
|
+
combobox: {
|
|
157
|
+
placeholder: 'Ara...',
|
|
158
|
+
noResults: 'Sonuç yok',
|
|
159
|
+
},
|
|
160
|
+
select: {
|
|
161
|
+
placeholder: 'Seç',
|
|
162
|
+
},
|
|
163
|
+
searchInput: {
|
|
164
|
+
placeholder: 'Ara...',
|
|
165
|
+
ariaLabel: 'Ara',
|
|
166
|
+
clearAriaLabel: 'Temizle',
|
|
167
|
+
},
|
|
168
|
+
toast: {
|
|
169
|
+
dismiss: 'Kapat',
|
|
170
|
+
},
|
|
171
|
+
otpInput: {
|
|
172
|
+
ariaLabel: 'Tek kullanımlık kod',
|
|
173
|
+
},
|
|
174
|
+
stepper: {
|
|
175
|
+
ariaLabel: 'Adımlar',
|
|
176
|
+
},
|
|
177
|
+
progress: {
|
|
178
|
+
ariaLabel: 'İlerleme',
|
|
179
|
+
},
|
|
180
|
+
passwordInput: {
|
|
181
|
+
show: 'Göster',
|
|
182
|
+
hide: 'Gizle',
|
|
183
|
+
},
|
|
184
|
+
chip: {
|
|
185
|
+
remove: 'Kaldır',
|
|
186
|
+
},
|
|
187
|
+
alert: {
|
|
188
|
+
dismiss: 'Kapat',
|
|
189
|
+
},
|
|
190
|
+
breadcrumb: {
|
|
191
|
+
ariaLabel: 'Sayfa yolu',
|
|
192
|
+
},
|
|
193
|
+
avatarGroup: {
|
|
194
|
+
overflowAriaLabel: 'diğer kullanıcı',
|
|
195
|
+
},
|
|
196
|
+
chart: {
|
|
197
|
+
showTable: 'Tablo olarak göster',
|
|
198
|
+
showChart: 'Grafik olarak göster',
|
|
199
|
+
category: 'Kategori',
|
|
200
|
+
},
|
|
201
|
+
command: {
|
|
202
|
+
placeholder: 'Bir komut yazın ya da arayın…',
|
|
203
|
+
ariaLabel: 'Komut paleti',
|
|
204
|
+
empty: 'Sonuç bulunamadı.',
|
|
205
|
+
resultsCount: 'sonuç',
|
|
206
|
+
navigate: 'gezin',
|
|
207
|
+
select: 'seç',
|
|
208
|
+
close: 'kapat',
|
|
209
|
+
},
|
|
210
|
+
characterCount: {
|
|
211
|
+
remaining: 'karakter kaldı',
|
|
212
|
+
overLimit: 'karakter sınırın üzerinde',
|
|
213
|
+
characters: 'karakter',
|
|
214
|
+
},
|
|
215
|
+
copy: {
|
|
216
|
+
copy: 'Kopyala',
|
|
217
|
+
copied: 'Kopyalandı',
|
|
218
|
+
failed: 'Kopyalanamadı',
|
|
219
|
+
code: 'Kod',
|
|
220
|
+
},
|
|
221
|
+
pagination: {
|
|
222
|
+
navAriaLabel: 'Sayfalama',
|
|
223
|
+
previous: 'Önceki sayfa',
|
|
224
|
+
next: 'Sonraki sayfa',
|
|
225
|
+
first: 'İlk sayfa',
|
|
226
|
+
last: 'Son sayfa',
|
|
227
|
+
page: 'Sayfa',
|
|
228
|
+
},
|
|
229
|
+
tour: {
|
|
230
|
+
next: 'İleri',
|
|
231
|
+
back: 'Geri',
|
|
232
|
+
skip: 'Turu atla',
|
|
233
|
+
done: 'Bitir',
|
|
234
|
+
stepOf: '/',
|
|
235
|
+
},
|
|
236
|
+
rating: {
|
|
237
|
+
ariaLabel: 'Puan',
|
|
238
|
+
outOf: '/',
|
|
239
|
+
},
|
|
240
|
+
themeSwitcher: {
|
|
241
|
+
ariaLabel: 'Renk teması',
|
|
242
|
+
light: 'Açık',
|
|
243
|
+
dark: 'Koyu',
|
|
244
|
+
system: 'Sistem',
|
|
245
|
+
},
|
|
246
|
+
treeSelect: {
|
|
247
|
+
placeholder: 'Seçin',
|
|
248
|
+
searchPlaceholder: 'Ara…',
|
|
249
|
+
noResults: 'Sonuç bulunamadı',
|
|
250
|
+
},
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Generated bundle index. Do not edit.
|
|
255
|
+
*/
|
|
256
|
+
|
|
257
|
+
export { mfLabelsTr };
|
|
258
|
+
//# sourceMappingURL=mesgflow-ui-kit-i18n-tr.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesgflow-ui-kit-i18n-tr.mjs","sources":["../../../projects/ui-kit/i18n/tr/labels.tr.ts","../../../projects/ui-kit/i18n/tr/mesgflow-ui-kit-i18n-tr.ts"],"sourcesContent":["import type { MfLabels } from '@mesgflow/ui-kit/core';\r\n\r\n/**\r\n * `provideMesgflowUi({ labels: mfLabelsTr, dateLocale: tr })` ile sağlanan\r\n * Türkçe çeviri kümesi — kitin İngilizce varsayılanının (`mfLabelsEn`, bkz.\r\n * `@mesgflow/ui-kit/core`) AYNI şeklini taşır, sadece değerleri Türkçe. AYRI bir\r\n * ikincil giriş noktası (`@mesgflow/ui-kit/i18n/tr`) olmasının sebebi: birincil\r\n * barrel'a (`@mesgflow/ui-kit`) dahil OLMAMASI — Türkçe metin isteyen tüketici\r\n * BİLEREK import eder, İngilizce varsayılanı tercih eden tüketicinin bundle'ına\r\n * hiç girmez.\r\n */\r\nexport const mfLabelsTr: MfLabels = {\r\n common: {\r\n loading: 'Yükleniyor',\r\n clear: 'Temizle',\r\n remove: 'Kaldır',\r\n },\r\n dialog: {\r\n close: 'Kapat',\r\n resize: 'Yeniden boyutlandır',\r\n fullscreenEnter: 'Tam ekran yap',\r\n fullscreenExit: 'Tam ekrandan çık',\r\n confirmOk: 'Tamam',\r\n confirmCancel: 'İptal',\r\n confirmConfirm: 'Onayla',\r\n confirmDelete: 'Sil',\r\n errorGeneric: 'Bir şeyler ters gitti. Lütfen tekrar deneyin.',\r\n discard: {\r\n title: 'Kaydedilmemiş değişiklikler',\r\n content: 'Bu paneli kapatmak girdiklerinizi silecek.',\r\n confirm: 'Vazgeç ve kapat',\r\n cancel: 'Düzenlemeye devam et',\r\n },\r\n },\r\n datePicker: {\r\n today: 'Bugün',\r\n clear: 'Temizle',\r\n apply: 'Uygula',\r\n previousMonth: 'Önceki ay',\r\n nextMonth: 'Sonraki ay',\r\n previousYear: 'Önceki yıl',\r\n nextYear: 'Sonraki yıl',\r\n chooseMonth: 'Ay seç',\r\n chooseYear: 'Yıl seç',\r\n startDate: 'Başlangıç',\r\n endDate: 'Bitiş',\r\n placeholder: 'gg.aa.yyyy',\r\n presetToday: 'Bugün',\r\n presetLast7: 'Son 7 gün',\r\n presetLast30: 'Son 30 gün',\r\n presetThisMonth: 'Bu ay',\r\n },\r\n timePicker: {\r\n placeholder: 'SS:DD',\r\n clear: 'Temizle',\r\n },\r\n table: {\r\n searchPlaceholder: 'Ara...',\r\n selectedCount: 'seçildi',\r\n edit: 'Düzenle',\r\n delete: 'Sil',\r\n clearSelection: 'Seçimi temizle',\r\n emptyTitle: 'Kayıt yok',\r\n emptyDescription: '',\r\n noResultsTitle: 'Sonuç bulunamadı',\r\n noResultsDescription: 'Farklı bir arama veya filtre deneyin.',\r\n clearFilters: 'Filtreleri temizle',\r\n filterCount: 'filtre',\r\n selectAllAriaLabel: 'Tümünü seç',\r\n selectRowAriaLabel: 'Satırı seç',\r\n actionsColumnLabel: 'İşlemler',\r\n columns: 'Kolonlar',\r\n density: 'Yoğunluk',\r\n densityComfortable: 'Rahat',\r\n densityCompact: 'Sık',\r\n resizeColumn: 'Sütunu yeniden boyutlandır',\r\n expandRow: 'Satırı genişlet',\r\n collapseRow: 'Satırı daralt',\r\n filter: {\r\n addFilter: 'Filtre',\r\n searchField: 'Alan ara...',\r\n noField: 'Alan bulunamadı',\r\n operator: 'Operatör',\r\n value: 'Değer',\r\n apply: 'Uygula',\r\n enterHint: 'Enter',\r\n clearAll: 'Temizle',\r\n and: 'VE',\r\n or: 'VEYA',\r\n remove: 'Kaldır',\r\n back: 'Geri',\r\n dateToday: 'Bugün',\r\n dateLast7: 'Son 7 gün',\r\n dateLast30: 'Son 30 gün',\r\n dateThisMonth: 'Bu ay',\r\n dateCustom: 'Özel aralık',\r\n dateFrom: 'Başlangıç',\r\n dateTo: 'Bitiş',\r\n operators: {\r\n equal: 'eşittir',\r\n notEqual: 'eşit değildir',\r\n greaterThan: 'büyüktür',\r\n greaterOrEqual: 'büyük eşittir',\r\n lessThan: 'küçüktür',\r\n lessOrEqual: 'küçük eşittir',\r\n contains: 'içerir',\r\n startsWith: 'ile başlar',\r\n endsWith: 'ile biter',\r\n in: 'şunlardan biri',\r\n isNull: 'boş',\r\n isNotNull: 'dolu',\r\n between: 'aralığında',\r\n },\r\n },\r\n pagination: {\r\n records: 'kayıt',\r\n perPage: 'sayfa başına',\r\n page: 'Sayfa',\r\n previous: 'Önceki',\r\n next: 'Sonraki',\r\n first: 'İlk sayfa',\r\n last: 'Son sayfa',\r\n pageSizeAriaLabel: 'Sayfa boyutu',\r\n navAriaLabel: 'Sayfalama',\r\n jumpToPage: 'Sayfaya git',\r\n go: 'Git',\r\n },\r\n },\r\n sidebar: {\r\n collapse: 'Menüyü daralt',\r\n expand: 'Menüyü genişlet',\r\n switchTenant: 'Kiracı değiştir',\r\n noTenants: 'Kiracı bulunamadı',\r\n noUser: 'Oturum açılmadı',\r\n nav: 'Ana gezinme',\r\n },\r\n tabs: {\r\n scrollStart: 'Geri kaydır',\r\n scrollEnd: 'İleri kaydır',\r\n close: 'Kapat',\r\n },\r\n dropzone: {\r\n label: 'Dosyaları buraya sürükle veya seçmek için tıkla',\r\n },\r\n colorPicker: {\r\n ariaLabel: 'Renk seç',\r\n hexAriaLabel: 'Hex renk kodu',\r\n pickFromScreenAriaLabel: 'Ekrandan renk seç',\r\n },\r\n boxInput: {\r\n top: 'Üst',\r\n right: 'Sağ',\r\n bottom: 'Alt',\r\n left: 'Sol',\r\n linkSides: 'Kenarları bağla',\r\n unlinkSides: 'Kenarları ayır',\r\n },\r\n combobox: {\r\n placeholder: 'Ara...',\r\n noResults: 'Sonuç yok',\r\n },\r\n select: {\r\n placeholder: 'Seç',\r\n },\r\n searchInput: {\r\n placeholder: 'Ara...',\r\n ariaLabel: 'Ara',\r\n clearAriaLabel: 'Temizle',\r\n },\r\n toast: {\r\n dismiss: 'Kapat',\r\n },\r\n otpInput: {\r\n ariaLabel: 'Tek kullanımlık kod',\r\n },\r\n stepper: {\r\n ariaLabel: 'Adımlar',\r\n },\r\n progress: {\r\n ariaLabel: 'İlerleme',\r\n },\r\n passwordInput: {\r\n show: 'Göster',\r\n hide: 'Gizle',\r\n },\r\n chip: {\r\n remove: 'Kaldır',\r\n },\r\n alert: {\r\n dismiss: 'Kapat',\r\n },\r\n breadcrumb: {\r\n ariaLabel: 'Sayfa yolu',\r\n },\r\n avatarGroup: {\r\n overflowAriaLabel: 'diğer kullanıcı',\r\n },\r\n chart: {\r\n showTable: 'Tablo olarak göster',\r\n showChart: 'Grafik olarak göster',\r\n category: 'Kategori',\r\n },\r\n command: {\r\n placeholder: 'Bir komut yazın ya da arayın…',\r\n ariaLabel: 'Komut paleti',\r\n empty: 'Sonuç bulunamadı.',\r\n resultsCount: 'sonuç',\r\n navigate: 'gezin',\r\n select: 'seç',\r\n close: 'kapat',\r\n },\r\n characterCount: {\r\n remaining: 'karakter kaldı',\r\n overLimit: 'karakter sınırın üzerinde',\r\n characters: 'karakter',\r\n },\r\n copy: {\r\n copy: 'Kopyala',\r\n copied: 'Kopyalandı',\r\n failed: 'Kopyalanamadı',\r\n code: 'Kod',\r\n },\r\n pagination: {\r\n navAriaLabel: 'Sayfalama',\r\n previous: 'Önceki sayfa',\r\n next: 'Sonraki sayfa',\r\n first: 'İlk sayfa',\r\n last: 'Son sayfa',\r\n page: 'Sayfa',\r\n },\r\n tour: {\r\n next: 'İleri',\r\n back: 'Geri',\r\n skip: 'Turu atla',\r\n done: 'Bitir',\r\n stepOf: '/',\r\n },\r\n rating: {\r\n ariaLabel: 'Puan',\r\n outOf: '/',\r\n },\r\n themeSwitcher: {\r\n ariaLabel: 'Renk teması',\r\n light: 'Açık',\r\n dark: 'Koyu',\r\n system: 'Sistem',\r\n },\r\n treeSelect: {\r\n placeholder: 'Seçin',\r\n searchPlaceholder: 'Ara…',\r\n noResults: 'Sonuç bulunamadı',\r\n },\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, makeEnvironmentProviders, input, ElementRef, signal, computed, Directive } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
const REGISTRATIONS = new InjectionToken('mesgflow.icon-registrations');
|
|
5
|
+
/**
|
|
6
|
+
* Birleştirilmiş SVG ikon kaydı — `provideMfIcons()` uygulama kökünde birden çok kez çağrılabilir
|
|
7
|
+
* (ör. temel set + marka ikonları), sonra gelen aynı adı ezer. Kök tekildir: tembel rota
|
|
8
|
+
* injector'larındaki kayıtlar görülmez. Kayıt yoksa boş — `mfIcon` Material Symbols fontuna düşer.
|
|
9
|
+
*/
|
|
10
|
+
const MF_ICON_REGISTRY = new InjectionToken('mesgflow.icon-registry', {
|
|
11
|
+
factory: () => {
|
|
12
|
+
const sets = inject(REGISTRATIONS, { optional: true }) ?? [];
|
|
13
|
+
return new Map(sets.flatMap((set) => Object.entries(set)));
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* `providers: [provideMfIcons({ mail: { nodes: [['path', { d: 'M…' }]] } })]`
|
|
18
|
+
*
|
|
19
|
+
* İsteğe bağlı SVG ikon kaydı. Kayıtlı bir ad `<span mfIcon>mail</span>` içinde geçtiğinde font
|
|
20
|
+
* ligature'ı yerine satır içi SVG çizilir — FOUT'ta ham "mail" metni görünmez, yalnızca kullanılan
|
|
21
|
+
* glifler pakete girer (tree-shake), özel/marka ikonları eklenebilir. Kaydedilmeyen adlar fontla
|
|
22
|
+
* çalışmaya devam eder, yani geçiş kademeli ve kırıcı DEĞİL; tüm adlar kayıtlıysa
|
|
23
|
+
* `@material-symbols/font-400` importu tamamen kaldırılabilir.
|
|
24
|
+
*
|
|
25
|
+
* Güvenlik: işaretleme dizgesi (innerHTML) kabul edilmez; SVG yapısal veriden
|
|
26
|
+
* `createElementNS` ile kurulur, yalnızca şekil etiketleri ve sunum öznitelikleri geçer
|
|
27
|
+
* (bkz. `icon.ts` `ALLOWED_TAGS`) — kayıt verisi dış kaynaktan gelse bile betik çalıştıramaz.
|
|
28
|
+
*/
|
|
29
|
+
function provideMfIcons(icons) {
|
|
30
|
+
return makeEnvironmentProviders([{ provide: REGISTRATIONS, useValue: icons, multi: true }]);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const SVG_NS = 'http://www.w3.org/2000/svg';
|
|
34
|
+
/** Yalnızca şekil etiketleri — `script`, `foreignObject`, `use`, `image` vb. hiçbir koşulda. */
|
|
35
|
+
const ALLOWED_TAGS = new Set(['path', 'circle', 'ellipse', 'line', 'polyline', 'polygon', 'rect']);
|
|
36
|
+
/** Geometri + sunum öznitelikleri; `on*`, `href`, `style` yok. */
|
|
37
|
+
const ALLOWED_ATTRS = new Set([
|
|
38
|
+
'd',
|
|
39
|
+
'cx',
|
|
40
|
+
'cy',
|
|
41
|
+
'r',
|
|
42
|
+
'rx',
|
|
43
|
+
'ry',
|
|
44
|
+
'x',
|
|
45
|
+
'y',
|
|
46
|
+
'x1',
|
|
47
|
+
'y1',
|
|
48
|
+
'x2',
|
|
49
|
+
'y2',
|
|
50
|
+
'width',
|
|
51
|
+
'height',
|
|
52
|
+
'points',
|
|
53
|
+
'transform',
|
|
54
|
+
'fill',
|
|
55
|
+
'fill-rule',
|
|
56
|
+
'clip-rule',
|
|
57
|
+
'fill-opacity',
|
|
58
|
+
'stroke',
|
|
59
|
+
'stroke-width',
|
|
60
|
+
'stroke-linecap',
|
|
61
|
+
'stroke-linejoin',
|
|
62
|
+
'stroke-opacity',
|
|
63
|
+
'opacity',
|
|
64
|
+
]);
|
|
65
|
+
/** `url(...)` dış kaynağa/tanıma başvurabilir — değerde hiç izin verilmez. */
|
|
66
|
+
const UNSAFE_VALUE = /url\s*\(|javascript:/i;
|
|
67
|
+
/**
|
|
68
|
+
* `<span mfIcon>mail</span>` — içerik ikonun İNGİLİZCE adı; renk `text-*` ile, boyut `size`
|
|
69
|
+
* (px) ile. `aria-hidden` zorunlu — ad metni ("mail") ekran okuyucuya SIZMAMALI.
|
|
70
|
+
*
|
|
71
|
+
* İki çizim yolu, aynı şablon:
|
|
72
|
+
* - **Font** (varsayılan): Material Symbols Outlined ligature'ı (weight 400 — BİLEREK 300 değil,
|
|
73
|
+
* ince ağırlık Inter gövde metninin yanında soluk duruyordu; bkz. preset.css).
|
|
74
|
+
* - **SVG**: ad `provideMfIcons()` ile kaydedildiyse satır içi SVG çizilir, ad metni yerinde
|
|
75
|
+
* kalır ama `font-size: 0` ile görünmez (Angular'ın metin düğümüne ve `@if`/`@switch`
|
|
76
|
+
* çapalarına dokunulmaz — düğüm taşımak denetim akışını bozardı). Font sınıfı hiç eklenmez;
|
|
77
|
+
* tüm kullanılan adlar kayıtlıysa font dosyası HİÇ indirilmez.
|
|
78
|
+
*
|
|
79
|
+
* Ad, ilk değişiklik algılama turunda (`ngAfterContentChecked` — içerik bağlamaları o anda
|
|
80
|
+
* güncel) okunur; `{{ item.icon }}` gibi dinamik adlar her turda yeniden karşılaştırılır.
|
|
81
|
+
* Kayıt boşsa bu kanca hemen döner (fontla çalışan uygulamalar için sıfır maliyet).
|
|
82
|
+
*/
|
|
83
|
+
class Icon {
|
|
84
|
+
size = input(20, /* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
86
|
+
filled = input(false, /* @ts-ignore */
|
|
87
|
+
...(ngDevMode ? [{ debugName: "filled" }] : /* istanbul ignore next */ []));
|
|
88
|
+
registry = inject(MF_ICON_REGISTRY);
|
|
89
|
+
host = inject(ElementRef);
|
|
90
|
+
name = signal('', /* @ts-ignore */
|
|
91
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
92
|
+
svg = null;
|
|
93
|
+
renderedKey = '';
|
|
94
|
+
svgIcon = computed(() => this.registry.get(this.name()) ?? null, /* @ts-ignore */
|
|
95
|
+
...(ngDevMode ? [{ debugName: "svgIcon" }] : /* istanbul ignore next */ []));
|
|
96
|
+
variationSettings = computed(() => `'FILL' ${this.filled() ? 1 : 0}`, /* @ts-ignore */
|
|
97
|
+
...(ngDevMode ? [{ debugName: "variationSettings" }] : /* istanbul ignore next */ []));
|
|
98
|
+
ngAfterContentChecked() {
|
|
99
|
+
if (this.registry.size === 0)
|
|
100
|
+
return;
|
|
101
|
+
const host = this.host.nativeElement;
|
|
102
|
+
// Kendi SVG'miz metin taşımaz — `textContent` yalnızca ad metnidir.
|
|
103
|
+
this.name.set((host.textContent ?? '').trim());
|
|
104
|
+
const icon = this.svgIcon();
|
|
105
|
+
const key = icon ? `${this.name()}|${this.size()}|${this.filled()}` : '';
|
|
106
|
+
if (key === this.renderedKey)
|
|
107
|
+
return;
|
|
108
|
+
this.renderedKey = key;
|
|
109
|
+
this.svg?.remove();
|
|
110
|
+
this.svg = icon ? this.buildSvg(host.ownerDocument, icon) : null;
|
|
111
|
+
if (this.svg)
|
|
112
|
+
host.appendChild(this.svg);
|
|
113
|
+
}
|
|
114
|
+
buildSvg(doc, icon) {
|
|
115
|
+
const svg = doc.createElementNS(SVG_NS, 'svg');
|
|
116
|
+
const size = String(this.size());
|
|
117
|
+
svg.setAttribute('viewBox', icon.viewBox ?? '0 0 24 24');
|
|
118
|
+
svg.setAttribute('width', size);
|
|
119
|
+
svg.setAttribute('height', size);
|
|
120
|
+
svg.setAttribute('aria-hidden', 'true');
|
|
121
|
+
svg.setAttribute('focusable', 'false');
|
|
122
|
+
svg.setAttribute('class', 'block');
|
|
123
|
+
if (icon.mode === 'stroke') {
|
|
124
|
+
svg.setAttribute('fill', 'none');
|
|
125
|
+
svg.setAttribute('stroke', 'currentColor');
|
|
126
|
+
svg.setAttribute('stroke-width', String(icon.strokeWidth ?? 2));
|
|
127
|
+
svg.setAttribute('stroke-linecap', 'round');
|
|
128
|
+
svg.setAttribute('stroke-linejoin', 'round');
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
svg.setAttribute('fill', 'currentColor');
|
|
132
|
+
}
|
|
133
|
+
const nodes = this.filled() && icon.filledNodes ? icon.filledNodes : icon.nodes;
|
|
134
|
+
for (const node of nodes) {
|
|
135
|
+
const child = this.buildNode(doc, node);
|
|
136
|
+
if (child)
|
|
137
|
+
svg.appendChild(child);
|
|
138
|
+
}
|
|
139
|
+
return svg;
|
|
140
|
+
}
|
|
141
|
+
buildNode(doc, [tag, attrs]) {
|
|
142
|
+
if (!ALLOWED_TAGS.has(tag))
|
|
143
|
+
return null;
|
|
144
|
+
const el = doc.createElementNS(SVG_NS, tag);
|
|
145
|
+
for (const [name, value] of Object.entries(attrs)) {
|
|
146
|
+
const text = String(value);
|
|
147
|
+
if (ALLOWED_ATTRS.has(name) && !UNSAFE_VALUE.test(text))
|
|
148
|
+
el.setAttribute(name, text);
|
|
149
|
+
}
|
|
150
|
+
return el;
|
|
151
|
+
}
|
|
152
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: Icon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
153
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: Icon, isStandalone: true, selector: "span[mfIcon]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, filled: { classPropertyName: "filled", publicName: "filled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.material-symbols-outlined": "!svgIcon()", "style.font-size.px": "svgIcon() ? 0 : size()", "style.font-variation-settings": "svgIcon() ? null : variationSettings()", "attr.aria-hidden": "true" }, classAttribute: "pointer-events-none inline-block leading-none select-none" }, ngImport: i0 });
|
|
154
|
+
}
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: Icon, decorators: [{
|
|
156
|
+
type: Directive,
|
|
157
|
+
args: [{
|
|
158
|
+
selector: 'span[mfIcon]',
|
|
159
|
+
host: {
|
|
160
|
+
class: 'pointer-events-none inline-block leading-none select-none',
|
|
161
|
+
'[class.material-symbols-outlined]': '!svgIcon()',
|
|
162
|
+
'[style.font-size.px]': 'svgIcon() ? 0 : size()',
|
|
163
|
+
'[style.font-variation-settings]': 'svgIcon() ? null : variationSettings()',
|
|
164
|
+
'[attr.aria-hidden]': 'true',
|
|
165
|
+
},
|
|
166
|
+
}]
|
|
167
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], filled: [{ type: i0.Input, args: [{ isSignal: true, alias: "filled", required: false }] }] } });
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Generated bundle index. Do not edit.
|
|
171
|
+
*/
|
|
172
|
+
|
|
173
|
+
export { Icon, MF_ICON_REGISTRY, provideMfIcons };
|
|
174
|
+
//# sourceMappingURL=mesgflow-ui-kit-icon.mjs.map
|