@konce-pt/angular 0.7.12 → 0.8.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/CHANGELOG.md +55 -0
- package/charts/src/lib/llms.txt +2 -1
- package/fesm2022/konce-pt-angular-charts.mjs +7 -498
- package/fesm2022/konce-pt-angular-charts.mjs.map +1 -1
- package/fesm2022/konce-pt-angular-icons.mjs +7 -5136
- package/fesm2022/konce-pt-angular-icons.mjs.map +1 -1
- package/fesm2022/konce-pt-angular-map.mjs +14 -1298
- package/fesm2022/konce-pt-angular-map.mjs.map +1 -1
- package/fesm2022/konce-pt-angular-roadmap.mjs +8 -1269
- package/fesm2022/konce-pt-angular-roadmap.mjs.map +1 -1
- package/fesm2022/konce-pt-angular.mjs +179 -1455
- package/fesm2022/konce-pt-angular.mjs.map +1 -1
- package/map/src/lib/llms.txt +2 -1
- package/package.json +9 -2
- package/roadmap/src/lib/llms.txt +1 -0
- package/src/lib/datepicker/llms.txt +4 -0
- package/src/lib/i18n/llms.txt +8 -2
- package/src/lib/icon-button/llms.txt +1 -0
- package/src/lib/rating/llms.txt +4 -0
- package/types/konce-pt-angular-charts.d.ts +10 -199
- package/types/konce-pt-angular-charts.d.ts.map +1 -1
- package/types/konce-pt-angular-icons.d.ts +2 -4
- package/types/konce-pt-angular-icons.d.ts.map +1 -1
- package/types/konce-pt-angular-map.d.ts +4 -609
- package/types/konce-pt-angular-map.d.ts.map +1 -1
- package/types/konce-pt-angular-roadmap.d.ts +6 -541
- package/types/konce-pt-angular-roadmap.d.ts.map +1 -1
- package/types/konce-pt-angular.d.ts +57 -529
- package/types/konce-pt-angular.d.ts.map +1 -1
|
@@ -1,374 +1,12 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { TemplateRef, InjectionToken, Provider, WritableSignal } from '@angular/core';
|
|
3
3
|
import { KptI18n, KptOption } from '@konce-pt/angular';
|
|
4
|
+
import { KptLatLng, KptMapCategory, KptMapLocation, KptMapAddress, KptMapBounds, KptMapSuggestion, KptMapSearchResult, KptMapView, KptClusterOptions, KptMapEngineFactory, KptMapCluster, KptMapCreateEvent, KptMapUserPosition, KptMapGeolocationError, KptMapPoint, KptMapFieldDef, KptMapPoi, KptMapHoursGroup, KptMapOpeningHours, KptMapWeekday, KptGoogleOptions, KptLeafletOptions } from '@konce-pt/map';
|
|
5
|
+
export { KPT_CLUSTER_DEFAULTS, KPT_EARTH_RADIUS, KPT_MAP_COUNTRIES, KPT_MAP_DEFAULT_ATTRIBUTION, KPT_MAP_DEFAULT_COUNTRY, KPT_MAP_DEFAULT_TILE_URL, KPT_MAX_LATITUDE, KPT_MIN_FIT_SPAN, KPT_TILE_SIZE, KptClusterOptions, KptGoogleLoadOptions, KptGoogleMapsApi, KptGoogleOptions, KptLatLng, KptLeafletOptions, KptMapAddress, KptMapAddressPart, KptMapBounds, KptMapCategory, KptMapCluster, KptMapClusterEntry, KptMapColor, KptMapColorRole, KptMapCountryPreset, KptMapCreateEvent, KptMapDayHours, KptMapEngine, KptMapEngineEvents, KptMapEngineFactory, KptMapEngineInit, KptMapEngineKind, KptMapFieldDef, KptMapFieldOption, KptMapFieldType, KptMapGeolocationError, KptMapGeolocationErrorKind, KptMapHoursGroup, KptMapHoursRange, KptMapLocation, KptMapMarkerShape, KptMapOpeningHours, KptMapPoi, KptMapPoiFact, KptMapPoint, KptMapPointerEvent, KptMapRenderedMarker, KptMapSearchResult, KptMapSuggestion, KptMapUserPosition, KptMapView, KptMapWeekday, boundsCenter, boundsContain, boundsOf, centerOfBounds, clampLat, clusterLocations, clusterTier, colorVarOf, contrastVarOf, countByCategory, countryCodes, countryPreset, createGoogleEngine, createLeafletEngine, dominantCategory, emptyWeek, foregroundVarOf, formatDistance, formatLatLng, formatTime, groupWeek, haversine, isAlwaysOpen, isCluster, isFittableBounds, isOpenAt, isSplittable, isoWeekday, loadGoogleMapsApi, metersPerPixel, nextChange, normalizeLng, padBounds, parseTime, project, renderClusterHtml, renderMarkerHtml, renderUserMarkerHtml, resolveCountryView, unproject, weekdayName, worldSize, zoomForBounds } from '@konce-pt/map';
|
|
4
6
|
import { Observable } from 'rxjs';
|
|
5
7
|
import * as _angular_forms_signals from '@angular/forms/signals';
|
|
6
8
|
import { FormValueControl } from '@angular/forms/signals';
|
|
7
9
|
|
|
8
|
-
/** Punkt geograficzny w stopniach (WGS 84). */
|
|
9
|
-
interface KptLatLng {
|
|
10
|
-
lat: number;
|
|
11
|
-
lng: number;
|
|
12
|
-
}
|
|
13
|
-
/** Prostokąt geograficzny. `south < north`; `west`/`east` w stopniach. */
|
|
14
|
-
interface KptMapBounds {
|
|
15
|
-
south: number;
|
|
16
|
-
west: number;
|
|
17
|
-
north: number;
|
|
18
|
-
east: number;
|
|
19
|
-
}
|
|
20
|
-
/** Punkt w pikselach — kontenera mapy albo świata, zależnie od kontekstu. */
|
|
21
|
-
interface KptMapPoint {
|
|
22
|
-
x: number;
|
|
23
|
-
y: number;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Kolor znacznika: rola z warstwy semantycznej tokenów albo gotowe `var(--kpt-*)`.
|
|
27
|
-
* Literały (`#c00`, `rgb(...)`) są celowo niedozwolone — kontrakt repo wymaga tokenów.
|
|
28
|
-
*/
|
|
29
|
-
type KptMapColorRole = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'muted';
|
|
30
|
-
type KptMapColor = KptMapColorRole | `var(--kpt-${string})`;
|
|
31
|
-
/** Kształt znacznika. */
|
|
32
|
-
type KptMapMarkerShape = 'pin' | 'dot' | 'square';
|
|
33
|
-
/** Typ pola w schemie formularza „dodaj lokalizację". */
|
|
34
|
-
type KptMapFieldType = 'text' | 'textarea' | 'number' | 'date' | 'select' | 'multiselect' | 'checkbox' | 'tel' | 'email' | 'url'
|
|
35
|
-
/** Zdjęcie: wybór pliku (wartość jako `data:`) albo wklejony adres. */
|
|
36
|
-
| 'image'
|
|
37
|
-
/** Tygodniowy rozkład godzin otwarcia; wartość to `KptMapOpeningHours`. */
|
|
38
|
-
| 'hours';
|
|
39
|
-
/** Opcja listy wyboru w polu `select` / `multiselect`. */
|
|
40
|
-
interface KptMapFieldOption {
|
|
41
|
-
value: unknown;
|
|
42
|
-
label: string;
|
|
43
|
-
}
|
|
44
|
-
/** Definicja jednego pola formularza dodawania lokalizacji. */
|
|
45
|
-
interface KptMapFieldDef {
|
|
46
|
-
/** Klucz w obiekcie wartości formularza. */
|
|
47
|
-
key: string;
|
|
48
|
-
type: KptMapFieldType;
|
|
49
|
-
label: string;
|
|
50
|
-
required?: boolean;
|
|
51
|
-
placeholder?: string;
|
|
52
|
-
/** Tekst pomocniczy pod polem. */
|
|
53
|
-
hint?: string;
|
|
54
|
-
/** Wymagane dla `select` i `multiselect`. */
|
|
55
|
-
options?: KptMapFieldOption[];
|
|
56
|
-
/** Dolna granica dla `number`; dla `date` data w formacie ISO. */
|
|
57
|
-
min?: number | string;
|
|
58
|
-
/** Górna granica dla `number`; dla `date` data w formacie ISO. */
|
|
59
|
-
max?: number | string;
|
|
60
|
-
/** Wartość początkowa; bez niej pole startuje puste (`''`, `null`, `[]`, `false`). */
|
|
61
|
-
initial?: unknown;
|
|
62
|
-
/**
|
|
63
|
-
* Część adresu, którą wypełnić z geokodowania wstecznego współrzędnych kliknięcia.
|
|
64
|
-
* Działa tylko dla pól tekstowych i tylko gdy aplikacja poda port `KPT_MAP_GEOCODER`.
|
|
65
|
-
* Nigdy nie nadpisuje tego, co użytkownik już wpisał.
|
|
66
|
-
*/
|
|
67
|
-
autofill?: KptMapAddressPart;
|
|
68
|
-
}
|
|
69
|
-
/** Rozbiór adresu zwracany przez geokoder. Wszystko opcjonalne — źródła bywają dziurawe. */
|
|
70
|
-
interface KptMapAddress {
|
|
71
|
-
/** Nazwa ulicy bez numeru. */
|
|
72
|
-
street?: string;
|
|
73
|
-
houseNumber?: string;
|
|
74
|
-
/** Ulica z numerem, gotowa do jednego pola „Adres". */
|
|
75
|
-
address?: string;
|
|
76
|
-
city?: string;
|
|
77
|
-
postcode?: string;
|
|
78
|
-
/** Województwo / region. */
|
|
79
|
-
state?: string;
|
|
80
|
-
/** Powiat / hrabstwo. */
|
|
81
|
-
county?: string;
|
|
82
|
-
country?: string;
|
|
83
|
-
/** Kod ISO 3166-1 alpha-2, wielkimi literami. */
|
|
84
|
-
countryCode?: string;
|
|
85
|
-
/** Pełny adres jednym ciągiem, tak jak podał go geokoder. */
|
|
86
|
-
label?: string;
|
|
87
|
-
}
|
|
88
|
-
/** Pole `KptMapAddress`, którym można wypełnić kontrolkę formularza. */
|
|
89
|
-
type KptMapAddressPart = keyof KptMapAddress;
|
|
90
|
-
/**
|
|
91
|
-
* Podpowiedź z listy wyszukiwarki adresów (geokodowanie wprost: tekst → miejsce).
|
|
92
|
-
*
|
|
93
|
-
* Pochodzi z portu `KPT_MAP_GEOCODER`, więc kształt jest wspólny dla dowolnego
|
|
94
|
-
* dostawcy — Nominatim, instancji własnej i komercyjnej.
|
|
95
|
-
*/
|
|
96
|
-
interface KptMapSuggestion {
|
|
97
|
-
/** Stabilny w obrębie jednej odpowiedzi — służy za klucz `track` listy podpowiedzi. */
|
|
98
|
-
id: string;
|
|
99
|
-
/** Pełna nazwa jednym ciągiem; to widzi użytkownik na liście. */
|
|
100
|
-
label: string;
|
|
101
|
-
/**
|
|
102
|
-
* Współrzędne, **gdy dostawca podaje je już na liście** — tak robi każdy geokoder
|
|
103
|
-
* pytany wprost (Nominatim, Photon, Google Geocoding API).
|
|
104
|
-
*
|
|
105
|
-
* Brak wartości znaczy, że podpowiedź trzeba jeszcze uzupełnić metodą `resolve()`
|
|
106
|
-
* portu. Tak działa Google Places Autocomplete: zwraca `placeId` i tekst, a `lat`/`lng`
|
|
107
|
-
* dociąga się osobnym Place Details — jedno wywołanie na *wybór* użytkownika, a nie
|
|
108
|
-
* na każdy naciśnięty klawisz. Na tym stoi jego rozliczanie sesyjne, więc to nie jest
|
|
109
|
-
* dziwactwo jednego dostawcy, tylko wzorzec, który port musi umieć wyrazić.
|
|
110
|
-
*/
|
|
111
|
-
at?: KptLatLng;
|
|
112
|
-
/**
|
|
113
|
-
* Zasięg obiektu, gdy dostawca go podaje. Miasto trafia wtedy w kadr w całości,
|
|
114
|
-
* zamiast dostać punktowy zoom w środek rynku.
|
|
115
|
-
*/
|
|
116
|
-
bounds?: KptMapBounds;
|
|
117
|
-
/** Rozbiór adresu, gdy dostawca go podaje — ten sam typ, co przy geokodowaniu wstecznym. */
|
|
118
|
-
address?: KptMapAddress;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Wybrane miejsce — podpowiedź z **pewnymi** współrzędnymi.
|
|
122
|
-
*
|
|
123
|
-
* To ten typ wychodzi z `selected` pola wyszukiwania i z `searchSelect` mapy: zanim
|
|
124
|
-
* zdarzenie poleci, brakujące `at` zostaje dociągnięte przez `resolve()`. Aplikacja
|
|
125
|
-
* nigdy nie musi sprawdzać, czy współrzędne są.
|
|
126
|
-
*/
|
|
127
|
-
interface KptMapSearchResult extends KptMapSuggestion {
|
|
128
|
-
at: KptLatLng;
|
|
129
|
-
}
|
|
130
|
-
/** Kategoria obiektu — kolor, ikona i schema formularza. */
|
|
131
|
-
interface KptMapCategory {
|
|
132
|
-
id: string;
|
|
133
|
-
/** Etykieta w legendzie i domyślnym popupie. */
|
|
134
|
-
label: string;
|
|
135
|
-
color: KptMapColor;
|
|
136
|
-
/** Nazwa ikony z `KptIconRegistry`; bez niej znacznik nie ma glifu. */
|
|
137
|
-
icon?: string;
|
|
138
|
-
/** Domyślnie `'pin'`. */
|
|
139
|
-
shape?: KptMapMarkerShape;
|
|
140
|
-
/** Schema formularza „dodaj lokalizację" dla tej kategorii. */
|
|
141
|
-
fields?: KptMapFieldDef[];
|
|
142
|
-
/** Pokazać w legendzie. Domyślnie `true`. */
|
|
143
|
-
legend?: boolean;
|
|
144
|
-
}
|
|
145
|
-
/** Pojedyncza lokalizacja na mapie. */
|
|
146
|
-
interface KptMapLocation<T = unknown> {
|
|
147
|
-
id: string;
|
|
148
|
-
at: KptLatLng;
|
|
149
|
-
categoryId: string;
|
|
150
|
-
/** Tytuł w popupie oraz `aria-label` znacznika — bez niego znacznik jest niedostępny. */
|
|
151
|
-
title: string;
|
|
152
|
-
/** Dowolne dane aplikacji; trafiają do szablonu popupu jako `data`. */
|
|
153
|
-
data?: T;
|
|
154
|
-
}
|
|
155
|
-
/** Grupa lokalizacji zwinięta w jeden znacznik z licznikiem. */
|
|
156
|
-
interface KptMapCluster<T = unknown> {
|
|
157
|
-
/** Stabilny w obrębie zoomu: `c:{zoom}:{cellX}:{cellY}`. */
|
|
158
|
-
id: string;
|
|
159
|
-
/** Środek ciężkości grupy. */
|
|
160
|
-
at: KptLatLng;
|
|
161
|
-
count: number;
|
|
162
|
-
/** Najliczniejsza kategoria w grupie — źródło koloru przy `clusterColorBy: 'dominant'`. */
|
|
163
|
-
dominantCategoryId: string;
|
|
164
|
-
items: KptMapLocation<T>[];
|
|
165
|
-
/** Zasięg grupy — do `fitBounds` po kliknięciu. */
|
|
166
|
-
bounds: KptMapBounds;
|
|
167
|
-
}
|
|
168
|
-
/** Element wyniku grupowania: albo grupa, albo pojedyncza lokalizacja. */
|
|
169
|
-
type KptMapClusterEntry<T = unknown> = KptMapCluster<T> | KptMapLocation<T>;
|
|
170
|
-
/** Zawęża wynik `clusterLocations` do grupy. */
|
|
171
|
-
declare function isCluster<T>(entry: KptMapClusterEntry<T>): entry is KptMapCluster<T>;
|
|
172
|
-
/** Pozycja użytkownika z geolokalizacji. */
|
|
173
|
-
interface KptMapUserPosition {
|
|
174
|
-
at: KptLatLng;
|
|
175
|
-
/** Promień niepewności w metrach (`GeolocationCoordinates.accuracy`). */
|
|
176
|
-
accuracy: number;
|
|
177
|
-
/** Znacznik czasu odczytu. */
|
|
178
|
-
timestamp: number;
|
|
179
|
-
}
|
|
180
|
-
/** Powód niepowodzenia geolokalizacji. */
|
|
181
|
-
type KptMapGeolocationErrorKind = 'denied' | 'unavailable' | 'timeout' | 'unsupported';
|
|
182
|
-
interface KptMapGeolocationError {
|
|
183
|
-
kind: KptMapGeolocationErrorKind;
|
|
184
|
-
message: string;
|
|
185
|
-
}
|
|
186
|
-
/** Zdarzenie utworzenia lokalizacji przez formularz. */
|
|
187
|
-
interface KptMapCreateEvent {
|
|
188
|
-
at: KptLatLng;
|
|
189
|
-
categoryId: string;
|
|
190
|
-
/** Wartości pól wg schemy kategorii (albo z własnego szablonu formularza). */
|
|
191
|
-
value: Record<string, unknown>;
|
|
192
|
-
}
|
|
193
|
-
/** Widok mapy — środek i zoom. */
|
|
194
|
-
interface KptMapView {
|
|
195
|
-
center: KptLatLng;
|
|
196
|
-
zoom: number;
|
|
197
|
-
}
|
|
198
|
-
/** Dzień tygodnia wg ISO-8601: 1 = poniedziałek … 7 = niedziela. */
|
|
199
|
-
type KptMapWeekday = 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
|
200
|
-
/**
|
|
201
|
-
* Przedział otwarcia w dobie, `HH:MM` w czasie lokalnym miejsca.
|
|
202
|
-
*
|
|
203
|
-
* `to` mniejsze albo równe `from` znaczy „przez północ" — przedział kończy się
|
|
204
|
-
* następnego dnia. `24:00` to prawidłowy koniec doby i nie jest przejściem przez północ.
|
|
205
|
-
*/
|
|
206
|
-
interface KptMapHoursRange {
|
|
207
|
-
from: string;
|
|
208
|
-
to: string;
|
|
209
|
-
}
|
|
210
|
-
/** Godziny jednego dnia tygodnia. */
|
|
211
|
-
interface KptMapDayHours {
|
|
212
|
-
day: KptMapWeekday;
|
|
213
|
-
/** Zamknięte przez całą dobę — `ranges` jest wtedy ignorowane. */
|
|
214
|
-
closed?: boolean;
|
|
215
|
-
ranges: KptMapHoursRange[];
|
|
216
|
-
}
|
|
217
|
-
/** Tygodniowy rozkład godzin. Brakujący dzień znaczy „zamknięte". */
|
|
218
|
-
type KptMapOpeningHours = KptMapDayHours[];
|
|
219
|
-
/** Wiersz „ikona + etykieta + wartość" w karcie miejsca. */
|
|
220
|
-
interface KptMapPoiFact {
|
|
221
|
-
/** Nazwa ikony z `KptIconRegistry`; bez niej wiersz jest bez glifu. */
|
|
222
|
-
icon?: string;
|
|
223
|
-
label: string;
|
|
224
|
-
value: string;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Dane karty miejsca (`kpt-map-poi-card`). Aplikacja mapuje na to swój
|
|
228
|
-
* `KptMapLocation.data` — biblioteka nie narzuca kształtu danych domenowych.
|
|
229
|
-
*/
|
|
230
|
-
interface KptMapPoi {
|
|
231
|
-
title: string;
|
|
232
|
-
/** Drugi wiersz nagłówka, obok dystansu. */
|
|
233
|
-
address?: string;
|
|
234
|
-
/** Adres zdjęcia albo `data:`; karta nie rozróżnia. Puste = zastępnik z ikoną. */
|
|
235
|
-
photo?: string;
|
|
236
|
-
photoAlt?: string;
|
|
237
|
-
hours?: KptMapOpeningHours;
|
|
238
|
-
phone?: string;
|
|
239
|
-
email?: string;
|
|
240
|
-
website?: string;
|
|
241
|
-
/** Wiersz współrzędnych; bez tego się nie renderuje. */
|
|
242
|
-
at?: KptLatLng;
|
|
243
|
-
/** Dodatkowe wiersze informacyjne, bez akcji. */
|
|
244
|
-
facts?: KptMapPoiFact[];
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
interface KptClusterOptions {
|
|
248
|
-
/** Aktualny zoom mapy — decyduje o gęstości siatki. */
|
|
249
|
-
zoom: number;
|
|
250
|
-
/** Bok komórki siatki w pikselach ekranu. Domyślnie 60. */
|
|
251
|
-
gridSize?: number;
|
|
252
|
-
/** Powyżej tego zoomu grupowanie jest wyłączone. Domyślnie 16. */
|
|
253
|
-
maxZoom?: number;
|
|
254
|
-
/** Ile punktów musi trafić do komórki, żeby powstała grupa. Domyślnie 2. */
|
|
255
|
-
minPoints?: number;
|
|
256
|
-
/**
|
|
257
|
-
* Kolejność kategorii — rozstrzyga remis przy wyborze kategorii dominującej.
|
|
258
|
-
* Bez niej remis rozstrzyga kolejność wystąpienia w danych.
|
|
259
|
-
*/
|
|
260
|
-
categoryOrder?: readonly string[];
|
|
261
|
-
}
|
|
262
|
-
declare const KPT_CLUSTER_DEFAULTS: {
|
|
263
|
-
readonly gridSize: 60;
|
|
264
|
-
readonly maxZoom: 16;
|
|
265
|
-
readonly minPoints: 2;
|
|
266
|
-
};
|
|
267
|
-
/**
|
|
268
|
-
* Zwija bliskie sobie lokalizacje w grupy. Zwraca listę mieszaną: grupy i pojedyncze punkty.
|
|
269
|
-
*
|
|
270
|
-
* Środek grupy uśredniamy w przestrzeni pikseli, nie w stopniach. Mercator rozciąga
|
|
271
|
-
* stopnie tym mocniej, im dalej od równika, więc średnia w stopniach wypada obok
|
|
272
|
-
* wizualnego środka kropek na ekranie — a to jego ma pilnować znacznik grupy.
|
|
273
|
-
*/
|
|
274
|
-
declare function clusterLocations<T>(locations: readonly KptMapLocation<T>[], options: KptClusterOptions): KptMapClusterEntry<T>[];
|
|
275
|
-
/**
|
|
276
|
-
* Najliczniejsza kategoria w grupie. Remis rozstrzyga `categoryOrder`, a bez niej
|
|
277
|
-
* kolejność pierwszego wystąpienia — w obu wypadkach wynik jest deterministyczny.
|
|
278
|
-
*/
|
|
279
|
-
declare function dominantCategory<T>(items: readonly KptMapLocation<T>[], categoryOrder?: readonly string[]): string;
|
|
280
|
-
/** Zlicza lokalizacje w rozbiciu na kategorie — licznik obok pozycji legendy. */
|
|
281
|
-
declare function countByCategory<T>(locations: readonly KptMapLocation<T>[]): Record<string, number>;
|
|
282
|
-
/**
|
|
283
|
-
* Czy grupa da się rozbić przybliżeniem. Punkty o tej samej współrzędnej zostaną razem
|
|
284
|
-
* na każdym zoomie — wtedy kliknięcie ma otworzyć listę zamiast zoomować w nieskończoność.
|
|
285
|
-
*/
|
|
286
|
-
declare function isSplittable<T>(cluster: KptMapCluster<T>): boolean;
|
|
287
|
-
|
|
288
|
-
/** Rodzaj silnika — trafia do `data-engine` na hoście, przydatne w testach i stylach. */
|
|
289
|
-
type KptMapEngineKind = 'leaflet' | 'google';
|
|
290
|
-
interface KptMapEngineInit {
|
|
291
|
-
center: KptLatLng;
|
|
292
|
-
zoom: number;
|
|
293
|
-
minZoom?: number;
|
|
294
|
-
maxZoom?: number;
|
|
295
|
-
/** Blokada panningu poza prostokąt. */
|
|
296
|
-
maxBounds?: KptMapBounds | null;
|
|
297
|
-
/** Szablon URL kafli, np. `https://tile.openstreetmap.org/{z}/{x}/{y}.png`. */
|
|
298
|
-
tileUrl: string;
|
|
299
|
-
/** Tekst atrybucji — wymagany licencyjnie przy OSM. */
|
|
300
|
-
attribution: string;
|
|
301
|
-
/** Silnik nie rysuje własnych kontrolek zoomu — robi to warstwa Angulara. */
|
|
302
|
-
interactive?: boolean;
|
|
303
|
-
}
|
|
304
|
-
/** Znacznik gotowy do narysowania — HTML pochodzi z `marker-html.ts`. */
|
|
305
|
-
interface KptMapRenderedMarker {
|
|
306
|
-
/** Stabilne id: `id` lokalizacji albo `id` grupy. */
|
|
307
|
-
id: string;
|
|
308
|
-
at: KptLatLng;
|
|
309
|
-
html: string;
|
|
310
|
-
/** Rozmiar ikony w pikselach — silnik potrzebuje go do zakotwiczenia. */
|
|
311
|
-
size: {
|
|
312
|
-
width: number;
|
|
313
|
-
height: number;
|
|
314
|
-
};
|
|
315
|
-
/** Punkt zakotwiczenia względem lewego górnego rogu ikony. */
|
|
316
|
-
anchor: KptMapPoint;
|
|
317
|
-
/** Kolejność rysowania — grupy nad pojedynczymi punktami. */
|
|
318
|
-
zIndex?: number;
|
|
319
|
-
}
|
|
320
|
-
interface KptMapPointerEvent {
|
|
321
|
-
at: KptLatLng;
|
|
322
|
-
/** Piksele względem kontenera mapy. */
|
|
323
|
-
point: KptMapPoint;
|
|
324
|
-
/** Zdarzenie źródłowe, gdy trzeba zatrzymać propagację. */
|
|
325
|
-
originalEvent?: Event;
|
|
326
|
-
}
|
|
327
|
-
interface KptMapEngineEvents {
|
|
328
|
-
/** Pan i zoom w toku — używane do przeliczania pozycji popupu. */
|
|
329
|
-
move: () => void;
|
|
330
|
-
/** Koniec ruchu — dopiero tu warto emitować `viewChange`. */
|
|
331
|
-
moveend: () => void;
|
|
332
|
-
zoomend: () => void;
|
|
333
|
-
click: (event: KptMapPointerEvent) => void;
|
|
334
|
-
contextmenu: (event: KptMapPointerEvent) => void;
|
|
335
|
-
/** Kliknięcie w znacznik; `id` jak w `KptMapRenderedMarker`. */
|
|
336
|
-
markerclick: (id: string, event: KptMapPointerEvent) => void;
|
|
337
|
-
}
|
|
338
|
-
interface KptMapEngine {
|
|
339
|
-
readonly kind: KptMapEngineKind;
|
|
340
|
-
/** Tworzy mapę w kontenerze. Wywoływane po pierwszym renderze, nigdy na SSR. */
|
|
341
|
-
init(host: HTMLElement, opts: KptMapEngineInit): Promise<void>;
|
|
342
|
-
destroy(): void;
|
|
343
|
-
setView(center: KptLatLng, zoom: number, animate?: boolean): void;
|
|
344
|
-
fitBounds(bounds: KptMapBounds, paddingPx?: number): void;
|
|
345
|
-
panBy(offset: KptMapPoint): void;
|
|
346
|
-
getCenter(): KptLatLng;
|
|
347
|
-
getZoom(): number;
|
|
348
|
-
getBounds(): KptMapBounds;
|
|
349
|
-
getSize(): {
|
|
350
|
-
width: number;
|
|
351
|
-
height: number;
|
|
352
|
-
};
|
|
353
|
-
/** Współrzędne → piksele WZGLĘDEM kontenera (pozycjonowanie popupu). */
|
|
354
|
-
project(at: KptLatLng): KptMapPoint;
|
|
355
|
-
unproject(point: KptMapPoint): KptLatLng;
|
|
356
|
-
/** Pełna wymiana zestawu znaczników; diff po `id` robi implementacja. */
|
|
357
|
-
setMarkers(markers: readonly KptMapRenderedMarker[]): void;
|
|
358
|
-
/** `null` chowa znacznik użytkownika i krąg dokładności. */
|
|
359
|
-
setUserPosition(position: KptMapUserPosition | null, html: string): void;
|
|
360
|
-
setTileSource(tileUrl: string, attribution: string): void;
|
|
361
|
-
setMaxBounds(bounds: KptMapBounds | null): void;
|
|
362
|
-
/** Kontener zmienił rozmiar — bez tego Leaflet zostawia szare pola. */
|
|
363
|
-
invalidateSize(): void;
|
|
364
|
-
on<K extends keyof KptMapEngineEvents>(event: K, handler: KptMapEngineEvents[K]): void;
|
|
365
|
-
}
|
|
366
|
-
/** Fabryka silnika — to ją dostarcza DI, żeby każda mapa miała własną instancję. */
|
|
367
|
-
type KptMapEngineFactory = () => KptMapEngine;
|
|
368
|
-
/** Domyślne źródło kafli. Do produkcji podstaw własny serwer — patrz llms.txt. */
|
|
369
|
-
declare const KPT_MAP_DEFAULT_TILE_URL = "https://tile.openstreetmap.org/{z}/{x}/{y}.png";
|
|
370
|
-
declare const KPT_MAP_DEFAULT_ATTRIBUTION = "© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors";
|
|
371
|
-
|
|
372
10
|
/** Kontekst szablonu popupu — `$implicit` to lokalizacja. */
|
|
373
11
|
interface KptMapPopupContext<T = unknown> {
|
|
374
12
|
$implicit: KptMapLocation<T>;
|
|
@@ -1086,47 +724,6 @@ declare class KptMapCreateDialog {
|
|
|
1086
724
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMapCreateDialog, "kpt-map-create-dialog", never, { "category": { "alias": "category"; "required": true; "isSignal": true; }; "at": { "alias": "at"; "required": true; "isSignal": true; }; "geocoder": { "alias": "geocoder"; "required": false; "isSignal": true; }; }, { "save": "save"; "cancelled": "cancelled"; }, never, never, true, never>;
|
|
1087
725
|
}
|
|
1088
726
|
|
|
1089
|
-
/** Minuta doby dla `HH:MM`; `24:00` to 1440. `null`, gdy zapis jest nieprawidłowy. */
|
|
1090
|
-
declare function parseTime(value: string): number | null;
|
|
1091
|
-
/** `HH:MM` z minuty doby. 1440 wraca jako `24:00`, nie `00:00`. */
|
|
1092
|
-
declare function formatTime(minutes: number): string;
|
|
1093
|
-
/** Dzień tygodnia wg ISO (1 = poniedziałek) z natywnej daty. */
|
|
1094
|
-
declare function isoWeekday(date: Date): KptMapWeekday;
|
|
1095
|
-
/**
|
|
1096
|
-
* Czy miejsce jest otwarte w danym momencie.
|
|
1097
|
-
*
|
|
1098
|
-
* Sprawdza dwa dni: bieżący oraz poprzedni, bo przedział przez północ
|
|
1099
|
-
* (`22:00 – 01:00`) obejmuje wczesne godziny dnia następnego.
|
|
1100
|
-
*/
|
|
1101
|
-
declare function isOpenAt(hours: KptMapOpeningHours | undefined, date: Date): boolean;
|
|
1102
|
-
/** Czy rozkład to pełna doba przez siedem dni — wtedy karta pisze po prostu „24/7". */
|
|
1103
|
-
declare function isAlwaysOpen(hours: KptMapOpeningHours | undefined): boolean;
|
|
1104
|
-
/** Najbliższa zmiana stanu otwarte/zamknięte albo `null`, gdy w ciągu tygodnia jej nie ma. */
|
|
1105
|
-
declare function nextChange(hours: KptMapOpeningHours | undefined, date: Date): {
|
|
1106
|
-
open: boolean;
|
|
1107
|
-
at: Date;
|
|
1108
|
-
} | null;
|
|
1109
|
-
/** Skrócona nazwa dnia z `Intl` — bez słownika, więc działa dla dowolnego locale. */
|
|
1110
|
-
declare function weekdayName(day: KptMapWeekday, locale: string): string;
|
|
1111
|
-
/** Wiersz rozkładu: jeden dzień albo sklejony zakres dni o identycznych godzinach. */
|
|
1112
|
-
interface KptMapHoursGroup {
|
|
1113
|
-
/** `pon.` albo `wt.–sob.`, wg locale. */
|
|
1114
|
-
label: string;
|
|
1115
|
-
days: KptMapWeekday[];
|
|
1116
|
-
closed: boolean;
|
|
1117
|
-
/** Sformatowane przedziały, np. `['11:00 – 24:00']`. Puste, gdy zamknięte. */
|
|
1118
|
-
ranges: string[];
|
|
1119
|
-
}
|
|
1120
|
-
/**
|
|
1121
|
-
* Rozkład tygodnia z sąsiadującymi dniami sklejonymi w jeden wiersz.
|
|
1122
|
-
*
|
|
1123
|
-
* Niedziela i poniedziałek się nie sklejają, choć w tablicy sąsiadują — tydzień
|
|
1124
|
-
* czyta się liniowo od poniedziałku i zawijanie byłoby mylące.
|
|
1125
|
-
*/
|
|
1126
|
-
declare function groupWeek(hours: KptMapOpeningHours | undefined, locale: string, separator?: string): KptMapHoursGroup[];
|
|
1127
|
-
/** Siedem dni oznaczonych jako zamknięte — wartość startowa pola `hours` w formularzu. */
|
|
1128
|
-
declare function emptyWeek(): KptMapOpeningHours;
|
|
1129
|
-
|
|
1130
727
|
/** Wiersz kontaktu: wartość, akcja właściwa i kopiowanie do schowka. */
|
|
1131
728
|
interface ContactRow {
|
|
1132
729
|
kind: 'phone' | 'email' | 'website' | 'coords';
|
|
@@ -1305,70 +902,6 @@ declare class KptMapImageField implements FormValueControl<string> {
|
|
|
1305
902
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMapImageField, "kpt-map-image-field", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "maxBytes": { "alias": "maxBytes"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; "files": "filesChange"; }, never, never, true, never>;
|
|
1306
903
|
}
|
|
1307
904
|
|
|
1308
|
-
/**
|
|
1309
|
-
* Namespace `google.maps`. Świadomie `any` — pełne typy przychodzą z opcjonalnego
|
|
1310
|
-
* `@types/google.maps`, a biblioteka nie może od nich zależeć przy kompilacji.
|
|
1311
|
-
*/
|
|
1312
|
-
type KptGoogleMapsApi = any;
|
|
1313
|
-
interface KptGoogleOptions {
|
|
1314
|
-
/** Klucz API z Google Cloud. Wymagany. */
|
|
1315
|
-
apiKey: string;
|
|
1316
|
-
/**
|
|
1317
|
-
* Identyfikator stylu mapy z konsoli Google (*Map management → Create Map ID*).
|
|
1318
|
-
*
|
|
1319
|
-
* **Wymagany.** Bez niego nie działa `AdvancedMarkerElement`, a znaczniki tej biblioteki
|
|
1320
|
-
* to gotowy HTML z `marker-html.ts` — starsze `Marker` nie umie go przyjąć.
|
|
1321
|
-
*/
|
|
1322
|
-
mapId: string;
|
|
1323
|
-
/** Wersja API. Domyślnie `weekly`. */
|
|
1324
|
-
version?: string;
|
|
1325
|
-
/** Język etykiet na mapie (kod ISO 639-1). Domyślnie język przeglądarki. */
|
|
1326
|
-
language?: string;
|
|
1327
|
-
/** Region wpływający na nazewnictwo i granice sporne (ISO 3166-1 alpha-2). */
|
|
1328
|
-
region?: string;
|
|
1329
|
-
/** Dolny limit zoomu. Domyślnie 2 — niżej świat powtarza się w poziomie. */
|
|
1330
|
-
minZoom?: number;
|
|
1331
|
-
/** Górny limit zoomu. Domyślnie 21. */
|
|
1332
|
-
maxZoom?: number;
|
|
1333
|
-
/** Zoom kółkiem myszy. Domyślnie włączony. */
|
|
1334
|
-
scrollWheelZoom?: boolean;
|
|
1335
|
-
}
|
|
1336
|
-
/**
|
|
1337
|
-
* Tyle z `KptGoogleOptions`, ile trzeba do wczytania samego API. Bez `mapId` — ten dotyczy
|
|
1338
|
-
* wyglądu mapy, a API potrzebują też usługi, które żadnej mapy nie rysują.
|
|
1339
|
-
*/
|
|
1340
|
-
type KptGoogleLoadOptions = Pick<KptGoogleOptions, 'apiKey' | 'version' | 'language' | 'region'>;
|
|
1341
|
-
/**
|
|
1342
|
-
* Ładuje Google Maps JavaScript API raz na aplikację. Gdy `google.maps` już istnieje — bo
|
|
1343
|
-
* aplikacja wstawiła skrypt sama albo stoi tu druga mapa — korzystamy z tego, co jest: drugie
|
|
1344
|
-
* wczytanie Google i tak odrzuca, wypisując ostrzeżenie do konsoli.
|
|
1345
|
-
*
|
|
1346
|
-
* Publiczne, bo silnik nie jest jedynym, kto tego API potrzebuje. Geokoder Google **musi**
|
|
1347
|
-
* iść przez SDK, a nie przez REST: web service `/maps/api/geocode/json` odrzuca klucze
|
|
1348
|
-
* z restrykcją `Referer` („API keys with referer restrictions cannot be used with this API"),
|
|
1349
|
-
* a to jedyna restrykcja, jaką da się sensownie nałożyć na klucz leżący w bundlu przeglądarki.
|
|
1350
|
-
* Wywołania z załadowanego SDK autoryzują się tak samo jak sama mapa.
|
|
1351
|
-
*
|
|
1352
|
-
* Adaptera geokodera biblioteka nadal nie dostarcza — tylko drogę do API, którą i tak
|
|
1353
|
-
* otwiera silnikowi. Powody stoją przy `provideKptGoogleMap` i w `llms.txt`.
|
|
1354
|
-
*/
|
|
1355
|
-
declare function loadGoogleMapsApi(options: KptGoogleLoadOptions): Promise<KptGoogleMapsApi>;
|
|
1356
|
-
/** Fabryka silnika — każda mapa dostaje własną instancję. */
|
|
1357
|
-
declare function createGoogleEngine(options: KptGoogleOptions): KptMapEngine;
|
|
1358
|
-
|
|
1359
|
-
interface KptLeafletOptions {
|
|
1360
|
-
/** Dolny limit zoomu. Domyślnie 2 — niżej świat powtarza się w poziomie. */
|
|
1361
|
-
minZoom?: number;
|
|
1362
|
-
/** Górny limit zoomu. Domyślnie 19 (tyle daje OSM). */
|
|
1363
|
-
maxZoom?: number;
|
|
1364
|
-
/** Bezwładność po przeciągnięciu. Domyślnie włączona. */
|
|
1365
|
-
inertia?: boolean;
|
|
1366
|
-
/** Zoom kółkiem myszy. Domyślnie włączony. */
|
|
1367
|
-
scrollWheelZoom?: boolean;
|
|
1368
|
-
}
|
|
1369
|
-
/** Fabryka silnika — każda mapa dostaje własną instancję. */
|
|
1370
|
-
declare function createLeafletEngine(options?: KptLeafletOptions): KptMapEngine;
|
|
1371
|
-
|
|
1372
905
|
/**
|
|
1373
906
|
* Fabryka silnika mapy. Fabryka, a nie gotowa instancja — każda mapa na stronie
|
|
1374
907
|
* potrzebuje własnego obiektu, a provider jest jeden.
|
|
@@ -1443,144 +976,6 @@ declare class KptMapGeolocationStub implements KptMapGeolocationPort {
|
|
|
1443
976
|
*/
|
|
1444
977
|
declare function provideKptMapGeolocationStub(at: KptLatLng, accuracy?: number): Provider;
|
|
1445
978
|
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
code: string;
|
|
1449
|
-
center: KptLatLng;
|
|
1450
|
-
/** Zoom, przy którym kraj mieści się na typowym kontenerze (~1000×600 px). */
|
|
1451
|
-
zoom: number;
|
|
1452
|
-
bounds: KptMapBounds;
|
|
1453
|
-
}
|
|
1454
|
-
/** Kod kraju użyty, gdy aplikacja nie poda żadnego. */
|
|
1455
|
-
declare const KPT_MAP_DEFAULT_COUNTRY = "PL";
|
|
1456
|
-
/**
|
|
1457
|
-
* Zasięgi lądowe (bez terytoriów zamorskich) zaokrąglone do dwóch miejsc —
|
|
1458
|
-
* to widok startowy, nie granica administracyjna.
|
|
1459
|
-
*/
|
|
1460
|
-
declare const KPT_MAP_COUNTRIES: Record<string, KptMapCountryPreset>;
|
|
1461
|
-
/** Preset kraju po kodzie (wielkość liter bez znaczenia); `undefined`, gdy nieznany. */
|
|
1462
|
-
declare function countryPreset(code: string): KptMapCountryPreset | undefined;
|
|
1463
|
-
/** Kody wszystkich presetów — do listy wyboru w aplikacji. */
|
|
1464
|
-
declare function countryCodes(): string[];
|
|
1465
|
-
/**
|
|
1466
|
-
* Widok startowy: preset kraju, a przy nieznanym kodzie preset domyślny.
|
|
1467
|
-
* Zawsze zwraca coś sensownego — mapa nigdy nie startuje na `[0, 0]`.
|
|
1468
|
-
*/
|
|
1469
|
-
declare function resolveCountryView(code: string | null | undefined): KptMapCountryPreset;
|
|
1470
|
-
/** Środek prostokąta kraju — pomocnicze przy własnych `bounds`. */
|
|
1471
|
-
declare function centerOfBounds(bounds: KptMapBounds): KptLatLng;
|
|
1472
|
-
|
|
1473
|
-
/** Bok kafla w pikselach — stała obu silników. */
|
|
1474
|
-
declare const KPT_TILE_SIZE = 256;
|
|
1475
|
-
/**
|
|
1476
|
-
* Granica szerokości w Mercatorze. Powyżej niej projekcja ucieka do nieskończoności,
|
|
1477
|
-
* więc obie biblioteki przycinają świat dokładnie w tym miejscu.
|
|
1478
|
-
*/
|
|
1479
|
-
declare const KPT_MAX_LATITUDE = 85.05112877980659;
|
|
1480
|
-
/** Promień Ziemi w metrach (sfera, jak w Leaflet `L.CRS.Earth`). */
|
|
1481
|
-
declare const KPT_EARTH_RADIUS = 6378137;
|
|
1482
|
-
/** Przycina szerokość do zakresu obsługiwanego przez Mercator. */
|
|
1483
|
-
declare function clampLat(lat: number): number;
|
|
1484
|
-
/**
|
|
1485
|
-
* Zawija długość geograficzną do zakresu [-180, 180].
|
|
1486
|
-
*
|
|
1487
|
-
* Wartości już w zakresie wracają nietknięte — także -180, bo w projekcji jest to
|
|
1488
|
-
* lewa krawędź świata (x = 0), a nie ta sama kolumna pikseli co +180. Zawijanie
|
|
1489
|
-
* dotyczy wyłącznie tego, co wychodzi poza zakres: 540° to ten sam południk co 180°.
|
|
1490
|
-
*/
|
|
1491
|
-
declare function normalizeLng(lng: number): number;
|
|
1492
|
-
/** Liczba pikseli świata na danym zoomie. */
|
|
1493
|
-
declare function worldSize(zoom: number): number;
|
|
1494
|
-
/** Współrzędne → piksele świata na danym zoomie (origin w lewym górnym rogu). */
|
|
1495
|
-
declare function project(at: KptLatLng, zoom: number): KptMapPoint;
|
|
1496
|
-
/** Piksele świata → współrzędne. Odwrotność `project`. */
|
|
1497
|
-
declare function unproject(point: KptMapPoint, zoom: number): KptLatLng;
|
|
1498
|
-
/** Najmniejszy prostokąt obejmujący wszystkie punkty. Pusta lista → `null`. */
|
|
1499
|
-
declare function boundsOf(points: readonly KptLatLng[]): KptMapBounds | null;
|
|
1500
|
-
/**
|
|
1501
|
-
* Najmniejszy zasięg w stopniach, przy którym `fitBounds` ma jeszcze sens (~100 m).
|
|
1502
|
-
*
|
|
1503
|
-
* Geokodery obrysowują pojedynczy adres prostokątem rzędu 0,0001°. Wpasowanie takiego
|
|
1504
|
-
* w kadr wjeżdża na górny limit zoomu, a wynik zależy od tego, jak dostawca obrysował
|
|
1505
|
-
* budynek — dwa sąsiednie adresy lądują w różnych przybliżeniach.
|
|
1506
|
-
*/
|
|
1507
|
-
declare const KPT_MIN_FIT_SPAN = 0.001;
|
|
1508
|
-
/**
|
|
1509
|
-
* Czy prostokąt warto wpasowywać w kadr, zamiast potraktować go jak punkt.
|
|
1510
|
-
*
|
|
1511
|
-
* `false` dla zasięgu zdegenerowanego albo ciaśniejszego niż `minSpan` w OBU osiach —
|
|
1512
|
-
* długa, wąska ulica ma jeden wymiar mikroskopijny i dalej zasługuje na `fitBounds`.
|
|
1513
|
-
*/
|
|
1514
|
-
declare function isFittableBounds(bounds: KptMapBounds, minSpan?: number): boolean;
|
|
1515
|
-
/** Środek prostokąta. */
|
|
1516
|
-
declare function boundsCenter(bounds: KptMapBounds): KptLatLng;
|
|
1517
|
-
/** Czy punkt leży w prostokącie (granice włącznie). */
|
|
1518
|
-
declare function boundsContain(bounds: KptMapBounds, at: KptLatLng): boolean;
|
|
1519
|
-
/** Rozszerza prostokąt o zadaną liczbę stopni w każdą stronę. */
|
|
1520
|
-
declare function padBounds(bounds: KptMapBounds, degrees: number): KptMapBounds;
|
|
1521
|
-
/** Odległość po wielkim kole w metrach. */
|
|
1522
|
-
declare function haversine(a: KptLatLng, b: KptLatLng): number;
|
|
1523
|
-
/**
|
|
1524
|
-
* Ile metrów przypada na piksel na danej szerokości i zoomie.
|
|
1525
|
-
* Potrzebne, żeby krąg dokładności geolokalizacji miał realny promień.
|
|
1526
|
-
*/
|
|
1527
|
-
declare function metersPerPixel(lat: number, zoom: number): number;
|
|
1528
|
-
/**
|
|
1529
|
-
* Największy zoom, przy którym `bounds` mieści się w kontenerze o zadanym rozmiarze.
|
|
1530
|
-
* Zwraca liczbę zmiennoprzecinkową — zaokrąglenie w dół zostawiamy wołającemu.
|
|
1531
|
-
*/
|
|
1532
|
-
declare function zoomForBounds(bounds: KptMapBounds, size: {
|
|
1533
|
-
width: number;
|
|
1534
|
-
height: number;
|
|
1535
|
-
}, paddingPx?: number): number;
|
|
1536
|
-
|
|
1537
|
-
/** Rola koloru → zmienna CSS. Gotowe `var(--kpt-*)` przechodzi bez zmian; cokolwiek spoza tego
|
|
1538
|
-
* kontraktu dostaje bezpieczny fallback zamiast trafić surowo do wyjścia. */
|
|
1539
|
-
declare function colorVarOf(color: KptMapColor): string;
|
|
1540
|
-
/** Kolor treści na tle `color` — dla ról znany, dla własnych zmiennych fallback na biel tokenową. */
|
|
1541
|
-
declare function contrastVarOf(color: KptMapColor): string;
|
|
1542
|
-
declare function foregroundVarOf(color: KptMapColor): string;
|
|
1543
|
-
interface KptMarkerHtmlInput {
|
|
1544
|
-
shape?: KptMapMarkerShape;
|
|
1545
|
-
color: KptMapColor;
|
|
1546
|
-
/** Inner-SVG ikony (bez wrappera `<svg>`); bez niego znacznik nie ma glifu. */
|
|
1547
|
-
iconSvgInner?: string;
|
|
1548
|
-
/** Tekst dla czytnika ekranu — zwykle tytuł lokalizacji. */
|
|
1549
|
-
label: string;
|
|
1550
|
-
/** Znacznik wybrany (otwarty popup) — dostaje klasę modyfikującą. */
|
|
1551
|
-
selected?: boolean;
|
|
1552
|
-
}
|
|
1553
|
-
declare function renderMarkerHtml(input: KptMarkerHtmlInput): string;
|
|
1554
|
-
interface KptClusterHtmlInput {
|
|
1555
|
-
count: number;
|
|
1556
|
-
color: KptMapColor;
|
|
1557
|
-
/** Gotowy tekst dla czytnika (i18n rozwiązane po stronie Angulara). */
|
|
1558
|
-
label: string;
|
|
1559
|
-
}
|
|
1560
|
-
/** Koło z licznikiem; rozmiar rośnie schodkowo z liczebnością grupy. */
|
|
1561
|
-
declare function renderClusterHtml(input: KptClusterHtmlInput): string;
|
|
1562
|
-
/** Próg wielkości grupy — trzy stopnie wystarczą, żeby zobaczyć różnicę bez skalowania ciągłego. */
|
|
1563
|
-
declare function clusterTier(count: number): 'sm' | 'md' | 'lg';
|
|
1564
|
-
/** Znacznik pozycji użytkownika — ikona podawana z zewnątrz, jak przy zwykłym znaczniku. */
|
|
1565
|
-
declare function renderUserMarkerHtml(input: {
|
|
1566
|
-
label: string;
|
|
1567
|
-
iconSvgInner?: string;
|
|
1568
|
-
}): string;
|
|
1569
|
-
|
|
1570
|
-
/**
|
|
1571
|
-
* Dystans po ludzku: poniżej kilometra w metrach zaokrąglonych do dziesiątek,
|
|
1572
|
-
* wyżej w kilometrach z jednym miejscem po przecinku (`6,2 km` w `pl-PL`).
|
|
1573
|
-
*
|
|
1574
|
-
* Wartość ujemna albo nieskończona daje `null` — wołający chowa wtedy wiersz,
|
|
1575
|
-
* zamiast malować „NaN km".
|
|
1576
|
-
*/
|
|
1577
|
-
declare function formatDistance(metres: number | null | undefined, locale: string): string | null;
|
|
1578
|
-
/** Współrzędne do wiersza karty — pięć miejsc po przecinku to ok. metr. */
|
|
1579
|
-
declare function formatLatLng(at: {
|
|
1580
|
-
lat: number;
|
|
1581
|
-
lng: number;
|
|
1582
|
-
}, digits?: number): string;
|
|
1583
|
-
|
|
1584
|
-
export { KPT_CLUSTER_DEFAULTS, KPT_EARTH_RADIUS, KPT_MAP_COUNTRIES, KPT_MAP_DEFAULT_ATTRIBUTION, KPT_MAP_DEFAULT_COUNTRY, KPT_MAP_DEFAULT_TILE_URL, KPT_MAP_ENGINE, KPT_MAP_GEOCODER, KPT_MAP_GEOLOCATION, KPT_MAX_LATITUDE, KPT_MIN_FIT_SPAN, KPT_TILE_SIZE, KptBrowserGeolocation, KptMap, KptMapCreateDialog, KptMapCreateFormTemplate, KptMapGeocoderStub, KptMapGeolocationFailure, KptMapGeolocationStub, KptMapHoursField, KptMapImageField, KptMapLegend, KptMapPoiCard, KptMapPopupTemplate, KptMapSearch, KptNominatimGeocoder, boundsCenter, boundsContain, boundsOf, centerOfBounds, clampLat, clusterLocations, clusterTier, colorVarOf, contrastVarOf, countByCategory, countryCodes, countryPreset, createGoogleEngine, createLeafletEngine, dominantCategory, emptyWeek, foregroundVarOf, formatDistance, formatLatLng, formatTime, groupWeek, haversine, isAlwaysOpen, isCluster, isFittableBounds, isOpenAt, isSplittable, isoWeekday, loadGoogleMapsApi, metersPerPixel, nextChange, normalizeLng, padBounds, parseTime, project, provideKptGoogleMap, provideKptLeafletMap, provideKptMapGeocoderStub, provideKptMapGeolocationStub, provideKptNominatimGeocoder, renderClusterHtml, renderMarkerHtml, renderUserMarkerHtml, resolveCountryView, unproject, weekdayName, worldSize, zoomForBounds };
|
|
1585
|
-
export type { KptClusterOptions, KptGoogleLoadOptions, KptGoogleMapsApi, KptGoogleOptions, KptLatLng, KptLeafletOptions, KptMapAddress, KptMapAddressPart, KptMapBounds, KptMapCategory, KptMapCluster, KptMapClusterEntry, KptMapColor, KptMapColorRole, KptMapCountryPreset, KptMapCreateEvent, KptMapCreateFormApi, KptMapCreateFormContext, KptMapDayHours, KptMapEngine, KptMapEngineEvents, KptMapEngineFactory, KptMapEngineInit, KptMapEngineKind, KptMapFieldDef, KptMapFieldOption, KptMapFieldType, KptMapGeocoderPort, KptMapGeocoderStubOptions, KptMapGeolocationError, KptMapGeolocationErrorKind, KptMapGeolocationPort, KptMapHoursGroup, KptMapHoursRange, KptMapLocation, KptMapMarkerShape, KptMapOpeningHours, KptMapPoi, KptMapPoiFact, KptMapPoint, KptMapPointerEvent, KptMapPopupContext, KptMapRenderedMarker, KptMapSearchOptions, KptMapSearchResult, KptMapSuggestion, KptMapUserPosition, KptMapView, KptMapWeekday, KptNominatimOptions };
|
|
979
|
+
export { KPT_MAP_ENGINE, KPT_MAP_GEOCODER, KPT_MAP_GEOLOCATION, KptBrowserGeolocation, KptMap, KptMapCreateDialog, KptMapCreateFormTemplate, KptMapGeocoderStub, KptMapGeolocationFailure, KptMapGeolocationStub, KptMapHoursField, KptMapImageField, KptMapLegend, KptMapPoiCard, KptMapPopupTemplate, KptMapSearch, KptNominatimGeocoder, provideKptGoogleMap, provideKptLeafletMap, provideKptMapGeocoderStub, provideKptMapGeolocationStub, provideKptNominatimGeocoder };
|
|
980
|
+
export type { KptMapCreateFormApi, KptMapCreateFormContext, KptMapGeocoderPort, KptMapGeocoderStubOptions, KptMapGeolocationPort, KptMapPopupContext, KptMapSearchOptions, KptNominatimOptions };
|
|
1586
981
|
//# sourceMappingURL=konce-pt-angular-map.d.ts.map
|