@fieldia/map 0.18.0 → 0.19.1

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.
Files changed (146) hide show
  1. package/README.md +143 -3
  2. package/package.json +4 -4
  3. package/src/index.d.mts +5 -0
  4. package/src/index.d.ts +5 -0
  5. package/src/index.js +4 -1
  6. package/src/index.js.map +1 -1
  7. package/src/index.mjs +2 -0
  8. package/src/index.mjs.map +1 -1
  9. package/src/lib/address-labels.d.mts +33 -0
  10. package/src/lib/address-labels.d.ts +33 -0
  11. package/src/lib/address-labels.js +16 -0
  12. package/src/lib/address-labels.js.map +1 -0
  13. package/src/lib/address-labels.mjs +12 -0
  14. package/src/lib/address-labels.mjs.map +1 -0
  15. package/src/lib/address-line.d.mts +11 -0
  16. package/src/lib/address-line.d.ts +11 -0
  17. package/src/lib/address-line.js +51 -0
  18. package/src/lib/address-line.js.map +1 -0
  19. package/src/lib/address-line.mjs +47 -0
  20. package/src/lib/address-line.mjs.map +1 -0
  21. package/src/lib/address-names.d.mts +38 -0
  22. package/src/lib/address-names.d.ts +38 -0
  23. package/src/lib/address-names.js +240 -0
  24. package/src/lib/address-names.js.map +1 -0
  25. package/src/lib/address-names.mjs +232 -0
  26. package/src/lib/address-names.mjs.map +1 -0
  27. package/src/lib/address-parts.d.mts +146 -0
  28. package/src/lib/address-parts.d.ts +146 -0
  29. package/src/lib/address-parts.js +866 -0
  30. package/src/lib/address-parts.js.map +1 -0
  31. package/src/lib/address-parts.mjs +851 -0
  32. package/src/lib/address-parts.mjs.map +1 -0
  33. package/src/lib/address-search.d.mts +25 -0
  34. package/src/lib/address-search.d.ts +25 -0
  35. package/src/lib/address-search.js +70 -0
  36. package/src/lib/address-search.js.map +1 -0
  37. package/src/lib/address-search.mjs +67 -0
  38. package/src/lib/address-search.mjs.map +1 -0
  39. package/src/lib/address-suggest.d.mts +21 -0
  40. package/src/lib/address-suggest.d.ts +21 -0
  41. package/src/lib/address-suggest.js +273 -0
  42. package/src/lib/address-suggest.js.map +1 -0
  43. package/src/lib/address-suggest.mjs +270 -0
  44. package/src/lib/address-suggest.mjs.map +1 -0
  45. package/src/lib/area-count.d.mts +47 -0
  46. package/src/lib/area-count.d.ts +47 -0
  47. package/src/lib/area-count.js +123 -0
  48. package/src/lib/area-count.js.map +1 -0
  49. package/src/lib/area-count.mjs +116 -0
  50. package/src/lib/area-count.mjs.map +1 -0
  51. package/src/lib/card.d.mts +14 -5
  52. package/src/lib/card.d.ts +14 -5
  53. package/src/lib/card.js +67 -12
  54. package/src/lib/card.js.map +1 -1
  55. package/src/lib/card.mjs +66 -12
  56. package/src/lib/card.mjs.map +1 -1
  57. package/src/lib/embed.d.mts +86 -0
  58. package/src/lib/embed.d.ts +86 -0
  59. package/src/lib/embed.js +96 -0
  60. package/src/lib/embed.js.map +1 -0
  61. package/src/lib/embed.mjs +93 -0
  62. package/src/lib/embed.mjs.map +1 -0
  63. package/src/lib/form-map.js +9 -7
  64. package/src/lib/form-map.js.map +1 -1
  65. package/src/lib/form-map.mjs +10 -8
  66. package/src/lib/form-map.mjs.map +1 -1
  67. package/src/lib/kinds.d.mts +6 -4
  68. package/src/lib/kinds.d.ts +6 -4
  69. package/src/lib/kinds.js +49 -2
  70. package/src/lib/kinds.js.map +1 -1
  71. package/src/lib/kinds.mjs +49 -2
  72. package/src/lib/kinds.mjs.map +1 -1
  73. package/src/lib/labels.d.mts +2 -0
  74. package/src/lib/labels.d.ts +2 -0
  75. package/src/lib/labels.js +4 -0
  76. package/src/lib/labels.js.map +1 -1
  77. package/src/lib/labels.mjs +4 -0
  78. package/src/lib/labels.mjs.map +1 -1
  79. package/src/lib/list-view.d.mts +37 -1
  80. package/src/lib/list-view.d.ts +37 -1
  81. package/src/lib/list-view.js +97 -37
  82. package/src/lib/list-view.js.map +1 -1
  83. package/src/lib/list-view.mjs +97 -38
  84. package/src/lib/list-view.mjs.map +1 -1
  85. package/src/lib/map-core.d.mts +6 -1
  86. package/src/lib/map-core.d.ts +6 -1
  87. package/src/lib/map-core.js +13 -5
  88. package/src/lib/map-core.js.map +1 -1
  89. package/src/lib/map-core.mjs +13 -5
  90. package/src/lib/map-core.mjs.map +1 -1
  91. package/src/lib/pins.d.mts +20 -8
  92. package/src/lib/pins.d.ts +20 -8
  93. package/src/lib/pins.js +60 -15
  94. package/src/lib/pins.js.map +1 -1
  95. package/src/lib/pins.mjs +60 -17
  96. package/src/lib/pins.mjs.map +1 -1
  97. package/src/lib/place.js +23 -11
  98. package/src/lib/place.js.map +1 -1
  99. package/src/lib/place.mjs +23 -11
  100. package/src/lib/place.mjs.map +1 -1
  101. package/src/lib/providers.d.mts +16 -0
  102. package/src/lib/providers.d.ts +16 -0
  103. package/src/lib/providers.js +71 -112
  104. package/src/lib/providers.js.map +1 -1
  105. package/src/lib/providers.mjs +71 -112
  106. package/src/lib/providers.mjs.map +1 -1
  107. package/src/lib/regions.js +18 -1
  108. package/src/lib/regions.js.map +1 -1
  109. package/src/lib/regions.mjs +18 -1
  110. package/src/lib/regions.mjs.map +1 -1
  111. package/src/lib/route-line.d.mts +9 -0
  112. package/src/lib/route-line.d.ts +9 -0
  113. package/src/lib/route-line.js +13 -0
  114. package/src/lib/route-line.js.map +1 -1
  115. package/src/lib/route-line.mjs +11 -0
  116. package/src/lib/route-line.mjs.map +1 -1
  117. package/src/lib/routes.js +6 -2
  118. package/src/lib/routes.js.map +1 -1
  119. package/src/lib/routes.mjs +6 -2
  120. package/src/lib/routes.mjs.map +1 -1
  121. package/src/lib/search-box.d.mts +20 -2
  122. package/src/lib/search-box.d.ts +20 -2
  123. package/src/lib/search-box.js +133 -44
  124. package/src/lib/search-box.js.map +1 -1
  125. package/src/lib/search-box.mjs +133 -44
  126. package/src/lib/search-box.mjs.map +1 -1
  127. package/src/lib/settings.d.mts +19 -2
  128. package/src/lib/settings.d.ts +19 -2
  129. package/src/lib/styles.d.mts +12 -1
  130. package/src/lib/styles.d.ts +12 -1
  131. package/src/lib/styles.js +61 -3
  132. package/src/lib/styles.js.map +1 -1
  133. package/src/lib/styles.mjs +59 -2
  134. package/src/lib/styles.mjs.map +1 -1
  135. package/src/lib/view-box.d.mts +18 -0
  136. package/src/lib/view-box.d.ts +18 -0
  137. package/src/lib/view-box.js +31 -0
  138. package/src/lib/view-box.js.map +1 -0
  139. package/src/lib/view-box.mjs +25 -0
  140. package/src/lib/view-box.mjs.map +1 -0
  141. package/src/lib/widgets.d.mts +3 -0
  142. package/src/lib/widgets.d.ts +3 -0
  143. package/src/lib/widgets.js +10 -1
  144. package/src/lib/widgets.js.map +1 -1
  145. package/src/lib/widgets.mjs +10 -1
  146. package/src/lib/widgets.mjs.map +1 -1
@@ -1,19 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.searchBox = searchBox;
4
+ const address_line_1 = require("./address-line");
4
5
  const map_core_1 = require("./map-core");
5
6
  function searchBox(options) {
6
7
  const { document: doc, labels } = options;
7
8
  const element = doc.createElement('div');
8
9
  element.className = 'fd-map-search';
9
- const input = doc.createElement('input');
10
- input.className = 'fd-input';
11
- input.id = options.id;
12
- input.type = 'text';
13
- input.placeholder = labels.search;
14
- input.autocomplete = 'off';
15
- input.spellcheck = false;
16
- input.enterKeyHint = 'search';
10
+ const input = options.input ?? doc.createElement('input');
11
+ if (!options.input) {
12
+ input.className = 'fd-input';
13
+ input.id = options.id;
14
+ input.type = 'text';
15
+ input.placeholder = labels.search;
16
+ input.autocomplete = 'off';
17
+ input.spellcheck = false;
18
+ input.enterKeyHint = 'search';
19
+ }
17
20
  const listId = `${options.id}-places`;
18
21
  input.setAttribute('role', 'combobox');
19
22
  input.setAttribute('aria-autocomplete', 'list');
@@ -25,16 +28,51 @@ function searchBox(options) {
25
28
  list.setAttribute('role', 'listbox');
26
29
  list.setAttribute('aria-label', labels.search);
27
30
  list.hidden = true;
28
- element.append(input, list);
31
+ element.append(...(options.input ? [] : [input]), list);
29
32
  let places = [];
30
33
  let active = -1;
31
- let asking = null;
32
34
  let timer;
35
+ /**
36
+ * The places each search brought, by its words (near the same place), and
37
+ * the searches on their way, by theirs, until a place is picked: the same
38
+ * words show them again, or wait for them. A search dropped is not called
39
+ * back, as the provider has its request (and may bill it): its answer is
40
+ * kept when it comes, and only not shown.
41
+ */
42
+ const answers = new Map();
43
+ const going = new Map();
44
+ /** The words whose answer opens the list when it comes, and which the search is said to be going for: none once it is dropped. */
45
+ let wanted = '';
46
+ /** The search whose places the list shows, and the words it asked for. */
47
+ let showing = '';
48
+ let listed = '';
49
+ /** A place picked, and nothing typed since: Enter asks nothing. */
50
+ let picked = false;
51
+ /** The search waiting to go never goes; the one on its way opens nothing when it comes, and is no longer said to be going. */
52
+ function drop() {
53
+ clearTimeout(timer);
54
+ timer = undefined;
55
+ if (!wanted)
56
+ return;
57
+ wanted = '';
58
+ options.say(null);
59
+ }
60
+ /** The address is found, or the box gone: what is on its way is of no use, and called back; the next words are asked for anew (a provider's session ends with the pick). */
61
+ function stop() {
62
+ drop();
63
+ going.forEach((asked) => asked.abort());
64
+ going.clear();
65
+ answers.clear();
66
+ }
33
67
  function close() {
68
+ const open = !list.hidden;
34
69
  list.hidden = true;
35
70
  input.setAttribute('aria-expanded', 'false');
36
71
  input.removeAttribute('aria-activedescendant');
37
72
  active = -1;
73
+ // What was said of the list (how many places came) goes with it.
74
+ if (open)
75
+ options.say(null);
38
76
  }
39
77
  function mark(index) {
40
78
  active = index;
@@ -48,35 +86,44 @@ function searchBox(options) {
48
86
  input.removeAttribute('aria-activedescendant');
49
87
  }
50
88
  function choose(place) {
89
+ // A pause in typing ends here: nothing more is asked for these words, and no answer opens the list again.
90
+ stop();
91
+ picked = true;
51
92
  input.value = place.label;
52
93
  close();
53
94
  options.say(null);
95
+ place.picked?.();
54
96
  options.pick(place);
55
97
  }
56
- function show(found) {
57
- places = found;
58
- list.replaceChildren(...found.map((place, i) => {
98
+ function show(found, these, words) {
99
+ showing = these;
100
+ listed = words;
101
+ // Two rows that read alike are one to the person reading them: the first is kept.
102
+ places = found.filter((place, i) => found.findIndex((other) => other.label === place.label && other.detail === place.detail) === i);
103
+ list.replaceChildren(...places.map((place, i) => {
59
104
  const option = doc.createElement('li');
60
105
  option.id = `${listId}-${i}`;
61
106
  option.setAttribute('role', 'option');
62
107
  option.setAttribute('aria-selected', 'false');
63
- // The place on one line, where it is on the next, as a map's own search shows them.
64
- const name = doc.createElement('span');
65
- name.className = 'fd-map-result-name';
66
- name.textContent = place.label;
67
- option.append(name);
68
- if (place.detail) {
69
- const detail = doc.createElement('span');
70
- detail.className = 'fd-map-result-detail';
71
- detail.textContent = place.detail;
72
- option.append(detail);
73
- }
108
+ // The place on one line, where it is on the next, as a map's own search shows them: both at the page's side, each in its own words' direction ("1 Mohammed Mahmoud" on an Arabic page).
109
+ const line = (className, words) => {
110
+ const span = doc.createElement('span');
111
+ span.className = className;
112
+ const own = doc.createElement('bdi');
113
+ own.dir = (0, address_line_1.directionOf)(words) || 'auto';
114
+ own.textContent = words;
115
+ span.append(own);
116
+ return span;
117
+ };
118
+ option.append(line('fd-map-result-name', place.label));
119
+ if (place.detail)
120
+ option.append(line('fd-map-result-detail', place.detail));
74
121
  // Picked on the press, the box keeping its focus.
75
122
  option.addEventListener('mousedown', (event) => event.preventDefault());
76
123
  option.addEventListener('click', () => choose(place));
77
124
  return option;
78
125
  }));
79
- const any = found.length > 0;
126
+ const any = places.length > 0;
80
127
  list.hidden = !any;
81
128
  input.setAttribute('aria-expanded', String(any));
82
129
  active = -1;
@@ -84,21 +131,52 @@ function searchBox(options) {
84
131
  }
85
132
  function run() {
86
133
  clearTimeout(timer);
134
+ timer = undefined;
87
135
  const text = input.value.trim();
88
- asking?.abort();
89
136
  if (text.length < (options.asYouType ? 2 : 1)) {
137
+ drop();
90
138
  close();
91
139
  options.say(null);
92
140
  return;
93
141
  }
94
- const mine = (asking = new AbortController());
142
+ const near = options.near();
143
+ const zoom = options.zoom?.();
144
+ const these = JSON.stringify([text, near, zoom]);
145
+ const had = answers.get(these);
146
+ if (had) {
147
+ // Here already: shown, unless they are, and nothing else waited for.
148
+ drop();
149
+ if (list.hidden || showing !== these)
150
+ show(had, these, text);
151
+ return;
152
+ }
153
+ // On their way and waited for already.
154
+ if (wanted === these)
155
+ return;
156
+ wanted = these;
95
157
  options.say(labels.searching);
96
- options
97
- .search({ text, near: options.near(), zoom: options.zoom?.(), locale: options.locale, signal: mine.signal })
98
- .then((found) => mine === asking && show(found))
99
- .catch((error) => {
100
- if (mine !== asking || error.name === 'AbortError')
158
+ // On their way though dropped (Escape, a letter more): waited for again, not asked again.
159
+ if (going.has(these))
160
+ return;
161
+ const mine = new AbortController();
162
+ going.set(these, mine);
163
+ // Its answer is kept, whether or not its words are still waited for, and shown if they are. Called back (by a pick), it is nobody's.
164
+ options.search({ text, near, zoom, locale: options.locale, signal: mine.signal }).then((found) => {
165
+ if (mine.signal.aborted)
166
+ return;
167
+ going.delete(these);
168
+ answers.set(these, found);
169
+ if (wanted !== these)
170
+ return;
171
+ wanted = '';
172
+ show(found, these, text);
173
+ }, (error) => {
174
+ if (mine.signal.aborted)
101
175
  return;
176
+ going.delete(these);
177
+ if (wanted !== these)
178
+ return;
179
+ wanted = '';
102
180
  close();
103
181
  options.say(labels.searchFailed, 'error');
104
182
  // The reader is told to try again; the developer, why it failed.
@@ -106,6 +184,9 @@ function searchBox(options) {
106
184
  });
107
185
  }
108
186
  input.addEventListener('input', () => {
187
+ picked = false;
188
+ // A row marked was marked for the words before.
189
+ mark(-1);
109
190
  if (!options.asYouType) {
110
191
  close();
111
192
  return;
@@ -114,42 +195,50 @@ function searchBox(options) {
114
195
  timer = setTimeout(run, 250);
115
196
  });
116
197
  input.addEventListener('keydown', (event) => {
198
+ if (input.readOnly)
199
+ return;
117
200
  if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
118
201
  if (list.hidden)
119
202
  return;
120
203
  event.preventDefault();
121
204
  const step = event.key === 'ArrowDown' ? 1 : -1;
122
- mark((active + step + places.length) % places.length);
205
+ // From no row marked, Down marks the first and Up the last (as from the first); each goes round at the end.
206
+ mark(((active < 0 && step < 0 ? 0 : active) + step + places.length) % places.length);
123
207
  }
124
208
  else if (event.key === 'Enter') {
125
209
  // Never the form's own Enter.
126
210
  event.preventDefault();
127
- // Enter takes the place chosen with the arrows, or the first: the one nearest and likeliest.
128
- if (!list.hidden && places.length)
129
- choose(places[Math.max(active, 0)]);
130
- else
211
+ // Enter takes the place chosen with the arrows, or the first: the one nearest and likeliest, of a list made for the words in the box. A list made for fewer words names another place ("Al" for "Al Malqa"): their own are asked for now, and listed. On the place picked, nothing.
212
+ const chosen = active >= 0 ? places[active] : listed === input.value.trim() ? places[0] : undefined;
213
+ if (!list.hidden && chosen)
214
+ choose(chosen);
215
+ else if (!picked)
131
216
  run();
132
217
  }
133
218
  else if (event.key === 'Escape') {
134
- if (!list.hidden) {
219
+ // The list closed, and the search that would open it again dropped, waiting or on its way.
220
+ if (!list.hidden || wanted || timer) {
135
221
  event.preventDefault();
136
222
  close();
223
+ drop();
137
224
  }
138
- else if (input.value) {
225
+ else if (input.value && !options.freeText) {
139
226
  event.preventDefault();
140
227
  input.value = '';
141
228
  options.say(null);
142
229
  }
143
230
  }
144
231
  });
145
- input.addEventListener('blur', () => close());
232
+ // Left: nothing waiting goes on to open the list over the next box.
233
+ input.addEventListener('blur', () => {
234
+ close();
235
+ drop();
236
+ });
146
237
  return {
147
238
  element,
148
239
  input,
149
- destroy() {
150
- clearTimeout(timer);
151
- asking?.abort();
152
- },
240
+ list,
241
+ destroy: stop,
153
242
  };
154
243
  }
155
244
  //# sourceMappingURL=search-box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-box.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/search-box.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-box.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/search-box.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,19 @@
1
+ import { directionOf } from './address-line.mjs';
1
2
  import { warnOnce } from './map-core.mjs';
2
3
  export function searchBox(options) {
3
4
  const { document: doc, labels } = options;
4
5
  const element = doc.createElement('div');
5
6
  element.className = 'fd-map-search';
6
- const input = doc.createElement('input');
7
- input.className = 'fd-input';
8
- input.id = options.id;
9
- input.type = 'text';
10
- input.placeholder = labels.search;
11
- input.autocomplete = 'off';
12
- input.spellcheck = false;
13
- input.enterKeyHint = 'search';
7
+ const input = options.input ?? doc.createElement('input');
8
+ if (!options.input) {
9
+ input.className = 'fd-input';
10
+ input.id = options.id;
11
+ input.type = 'text';
12
+ input.placeholder = labels.search;
13
+ input.autocomplete = 'off';
14
+ input.spellcheck = false;
15
+ input.enterKeyHint = 'search';
16
+ }
14
17
  const listId = `${options.id}-places`;
15
18
  input.setAttribute('role', 'combobox');
16
19
  input.setAttribute('aria-autocomplete', 'list');
@@ -22,16 +25,51 @@ export function searchBox(options) {
22
25
  list.setAttribute('role', 'listbox');
23
26
  list.setAttribute('aria-label', labels.search);
24
27
  list.hidden = true;
25
- element.append(input, list);
28
+ element.append(...(options.input ? [] : [input]), list);
26
29
  let places = [];
27
30
  let active = -1;
28
- let asking = null;
29
31
  let timer;
32
+ /**
33
+ * The places each search brought, by its words (near the same place), and
34
+ * the searches on their way, by theirs, until a place is picked: the same
35
+ * words show them again, or wait for them. A search dropped is not called
36
+ * back, as the provider has its request (and may bill it): its answer is
37
+ * kept when it comes, and only not shown.
38
+ */
39
+ const answers = new Map();
40
+ const going = new Map();
41
+ /** The words whose answer opens the list when it comes, and which the search is said to be going for: none once it is dropped. */
42
+ let wanted = '';
43
+ /** The search whose places the list shows, and the words it asked for. */
44
+ let showing = '';
45
+ let listed = '';
46
+ /** A place picked, and nothing typed since: Enter asks nothing. */
47
+ let picked = false;
48
+ /** The search waiting to go never goes; the one on its way opens nothing when it comes, and is no longer said to be going. */
49
+ function drop() {
50
+ clearTimeout(timer);
51
+ timer = undefined;
52
+ if (!wanted)
53
+ return;
54
+ wanted = '';
55
+ options.say(null);
56
+ }
57
+ /** The address is found, or the box gone: what is on its way is of no use, and called back; the next words are asked for anew (a provider's session ends with the pick). */
58
+ function stop() {
59
+ drop();
60
+ going.forEach((asked) => asked.abort());
61
+ going.clear();
62
+ answers.clear();
63
+ }
30
64
  function close() {
65
+ const open = !list.hidden;
31
66
  list.hidden = true;
32
67
  input.setAttribute('aria-expanded', 'false');
33
68
  input.removeAttribute('aria-activedescendant');
34
69
  active = -1;
70
+ // What was said of the list (how many places came) goes with it.
71
+ if (open)
72
+ options.say(null);
35
73
  }
36
74
  function mark(index) {
37
75
  active = index;
@@ -45,35 +83,44 @@ export function searchBox(options) {
45
83
  input.removeAttribute('aria-activedescendant');
46
84
  }
47
85
  function choose(place) {
86
+ // A pause in typing ends here: nothing more is asked for these words, and no answer opens the list again.
87
+ stop();
88
+ picked = true;
48
89
  input.value = place.label;
49
90
  close();
50
91
  options.say(null);
92
+ place.picked?.();
51
93
  options.pick(place);
52
94
  }
53
- function show(found) {
54
- places = found;
55
- list.replaceChildren(...found.map((place, i) => {
95
+ function show(found, these, words) {
96
+ showing = these;
97
+ listed = words;
98
+ // Two rows that read alike are one to the person reading them: the first is kept.
99
+ places = found.filter((place, i) => found.findIndex((other) => other.label === place.label && other.detail === place.detail) === i);
100
+ list.replaceChildren(...places.map((place, i) => {
56
101
  const option = doc.createElement('li');
57
102
  option.id = `${listId}-${i}`;
58
103
  option.setAttribute('role', 'option');
59
104
  option.setAttribute('aria-selected', 'false');
60
- // The place on one line, where it is on the next, as a map's own search shows them.
61
- const name = doc.createElement('span');
62
- name.className = 'fd-map-result-name';
63
- name.textContent = place.label;
64
- option.append(name);
65
- if (place.detail) {
66
- const detail = doc.createElement('span');
67
- detail.className = 'fd-map-result-detail';
68
- detail.textContent = place.detail;
69
- option.append(detail);
70
- }
105
+ // The place on one line, where it is on the next, as a map's own search shows them: both at the page's side, each in its own words' direction ("1 Mohammed Mahmoud" on an Arabic page).
106
+ const line = (className, words) => {
107
+ const span = doc.createElement('span');
108
+ span.className = className;
109
+ const own = doc.createElement('bdi');
110
+ own.dir = directionOf(words) || 'auto';
111
+ own.textContent = words;
112
+ span.append(own);
113
+ return span;
114
+ };
115
+ option.append(line('fd-map-result-name', place.label));
116
+ if (place.detail)
117
+ option.append(line('fd-map-result-detail', place.detail));
71
118
  // Picked on the press, the box keeping its focus.
72
119
  option.addEventListener('mousedown', (event) => event.preventDefault());
73
120
  option.addEventListener('click', () => choose(place));
74
121
  return option;
75
122
  }));
76
- const any = found.length > 0;
123
+ const any = places.length > 0;
77
124
  list.hidden = !any;
78
125
  input.setAttribute('aria-expanded', String(any));
79
126
  active = -1;
@@ -81,21 +128,52 @@ export function searchBox(options) {
81
128
  }
82
129
  function run() {
83
130
  clearTimeout(timer);
131
+ timer = undefined;
84
132
  const text = input.value.trim();
85
- asking?.abort();
86
133
  if (text.length < (options.asYouType ? 2 : 1)) {
134
+ drop();
87
135
  close();
88
136
  options.say(null);
89
137
  return;
90
138
  }
91
- const mine = (asking = new AbortController());
139
+ const near = options.near();
140
+ const zoom = options.zoom?.();
141
+ const these = JSON.stringify([text, near, zoom]);
142
+ const had = answers.get(these);
143
+ if (had) {
144
+ // Here already: shown, unless they are, and nothing else waited for.
145
+ drop();
146
+ if (list.hidden || showing !== these)
147
+ show(had, these, text);
148
+ return;
149
+ }
150
+ // On their way and waited for already.
151
+ if (wanted === these)
152
+ return;
153
+ wanted = these;
92
154
  options.say(labels.searching);
93
- options
94
- .search({ text, near: options.near(), zoom: options.zoom?.(), locale: options.locale, signal: mine.signal })
95
- .then((found) => mine === asking && show(found))
96
- .catch((error) => {
97
- if (mine !== asking || error.name === 'AbortError')
155
+ // On their way though dropped (Escape, a letter more): waited for again, not asked again.
156
+ if (going.has(these))
157
+ return;
158
+ const mine = new AbortController();
159
+ going.set(these, mine);
160
+ // Its answer is kept, whether or not its words are still waited for, and shown if they are. Called back (by a pick), it is nobody's.
161
+ options.search({ text, near, zoom, locale: options.locale, signal: mine.signal }).then((found) => {
162
+ if (mine.signal.aborted)
163
+ return;
164
+ going.delete(these);
165
+ answers.set(these, found);
166
+ if (wanted !== these)
167
+ return;
168
+ wanted = '';
169
+ show(found, these, text);
170
+ }, (error) => {
171
+ if (mine.signal.aborted)
98
172
  return;
173
+ going.delete(these);
174
+ if (wanted !== these)
175
+ return;
176
+ wanted = '';
99
177
  close();
100
178
  options.say(labels.searchFailed, 'error');
101
179
  // The reader is told to try again; the developer, why it failed.
@@ -103,6 +181,9 @@ export function searchBox(options) {
103
181
  });
104
182
  }
105
183
  input.addEventListener('input', () => {
184
+ picked = false;
185
+ // A row marked was marked for the words before.
186
+ mark(-1);
106
187
  if (!options.asYouType) {
107
188
  close();
108
189
  return;
@@ -111,42 +192,50 @@ export function searchBox(options) {
111
192
  timer = setTimeout(run, 250);
112
193
  });
113
194
  input.addEventListener('keydown', (event) => {
195
+ if (input.readOnly)
196
+ return;
114
197
  if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
115
198
  if (list.hidden)
116
199
  return;
117
200
  event.preventDefault();
118
201
  const step = event.key === 'ArrowDown' ? 1 : -1;
119
- mark((active + step + places.length) % places.length);
202
+ // From no row marked, Down marks the first and Up the last (as from the first); each goes round at the end.
203
+ mark(((active < 0 && step < 0 ? 0 : active) + step + places.length) % places.length);
120
204
  }
121
205
  else if (event.key === 'Enter') {
122
206
  // Never the form's own Enter.
123
207
  event.preventDefault();
124
- // Enter takes the place chosen with the arrows, or the first: the one nearest and likeliest.
125
- if (!list.hidden && places.length)
126
- choose(places[Math.max(active, 0)]);
127
- else
208
+ // Enter takes the place chosen with the arrows, or the first: the one nearest and likeliest, of a list made for the words in the box. A list made for fewer words names another place ("Al" for "Al Malqa"): their own are asked for now, and listed. On the place picked, nothing.
209
+ const chosen = active >= 0 ? places[active] : listed === input.value.trim() ? places[0] : undefined;
210
+ if (!list.hidden && chosen)
211
+ choose(chosen);
212
+ else if (!picked)
128
213
  run();
129
214
  }
130
215
  else if (event.key === 'Escape') {
131
- if (!list.hidden) {
216
+ // The list closed, and the search that would open it again dropped, waiting or on its way.
217
+ if (!list.hidden || wanted || timer) {
132
218
  event.preventDefault();
133
219
  close();
220
+ drop();
134
221
  }
135
- else if (input.value) {
222
+ else if (input.value && !options.freeText) {
136
223
  event.preventDefault();
137
224
  input.value = '';
138
225
  options.say(null);
139
226
  }
140
227
  }
141
228
  });
142
- input.addEventListener('blur', () => close());
229
+ // Left: nothing waiting goes on to open the list over the next box.
230
+ input.addEventListener('blur', () => {
231
+ close();
232
+ drop();
233
+ });
143
234
  return {
144
235
  element,
145
236
  input,
146
- destroy() {
147
- clearTimeout(timer);
148
- asking?.abort();
149
- },
237
+ list,
238
+ destroy: stop,
150
239
  };
151
240
  }
152
241
  //# sourceMappingURL=search-box.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-box.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/search-box.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-box.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/search-box.ts"],"names":[],"mappings":"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"}