@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-parts.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/address-parts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type WidgetFactory } from '@fieldia/widgets';
2
+ import type { MapSettings } from './settings.mjs';
3
+ /**
4
+ * An address typed on one line (`"widget": "address-search"` on a char
5
+ * field), the addresses the map's provider suggests as people type in a list
6
+ * under it, and no map: the place search's own combobox, its pauses, its
7
+ * credits and its language. What is typed is the answer when nothing is
8
+ * picked. A suggestion picked writes its whole address, and where the page
9
+ * says, its place into a place field (`placeField`: a json field's GeoJSON
10
+ * Point, or a float field's latitude with `longitudeField` for its
11
+ * longitude) and its parts into an address field (`partsField`, a
12
+ * `json.address`: street, city, region, postcode and country, the line under
13
+ * the street kept as typed); the box emptied and left, the place and parts a
14
+ * pick wrote go with it. `countries` (ISO codes) keeps the suggestions to
15
+ * those countries; `near` (`{ "lat", "lng" }`, in the page's own country)
16
+ * puts those near it first, as where the app's maps open does unless it
17
+ * says. Addresses come before shops and malls.
18
+ *
19
+ * The box is the app's own text box, there at once; the suggestions come
20
+ * with their code, loaded the first time an address field is shown. With no
21
+ * address search to ask, the text box is all there is. Its words read in
22
+ * the direction most of them are written in: an address mostly in Arabic
23
+ * that starts with a Latin street still starts at an Arabic page's right.
24
+ */
25
+ export declare function addressSearchWidget(settings: MapSettings): WidgetFactory;
@@ -0,0 +1,25 @@
1
+ import { type WidgetFactory } from '@fieldia/widgets';
2
+ import type { MapSettings } from './settings';
3
+ /**
4
+ * An address typed on one line (`"widget": "address-search"` on a char
5
+ * field), the addresses the map's provider suggests as people type in a list
6
+ * under it, and no map: the place search's own combobox, its pauses, its
7
+ * credits and its language. What is typed is the answer when nothing is
8
+ * picked. A suggestion picked writes its whole address, and where the page
9
+ * says, its place into a place field (`placeField`: a json field's GeoJSON
10
+ * Point, or a float field's latitude with `longitudeField` for its
11
+ * longitude) and its parts into an address field (`partsField`, a
12
+ * `json.address`: street, city, region, postcode and country, the line under
13
+ * the street kept as typed); the box emptied and left, the place and parts a
14
+ * pick wrote go with it. `countries` (ISO codes) keeps the suggestions to
15
+ * those countries; `near` (`{ "lat", "lng" }`, in the page's own country)
16
+ * puts those near it first, as where the app's maps open does unless it
17
+ * says. Addresses come before shops and malls.
18
+ *
19
+ * The box is the app's own text box, there at once; the suggestions come
20
+ * with their code, loaded the first time an address field is shown. With no
21
+ * address search to ask, the text box is all there is. Its words read in
22
+ * the direction most of them are written in: an address mostly in Arabic
23
+ * that starts with a Latin street still starts at an Arabic page's right.
24
+ */
25
+ export declare function addressSearchWidget(settings: MapSettings): WidgetFactory;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addressSearchWidget = addressSearchWidget;
4
+ const widgets_1 = require("@fieldia/widgets");
5
+ const address_line_1 = require("./address-line");
6
+ const search_box_1 = require("./search-box");
7
+ /**
8
+ * An address typed on one line (`"widget": "address-search"` on a char
9
+ * field), the addresses the map's provider suggests as people type in a list
10
+ * under it, and no map: the place search's own combobox, its pauses, its
11
+ * credits and its language. What is typed is the answer when nothing is
12
+ * picked. A suggestion picked writes its whole address, and where the page
13
+ * says, its place into a place field (`placeField`: a json field's GeoJSON
14
+ * Point, or a float field's latitude with `longitudeField` for its
15
+ * longitude) and its parts into an address field (`partsField`, a
16
+ * `json.address`: street, city, region, postcode and country, the line under
17
+ * the street kept as typed); the box emptied and left, the place and parts a
18
+ * pick wrote go with it. `countries` (ISO codes) keeps the suggestions to
19
+ * those countries; `near` (`{ "lat", "lng" }`, in the page's own country)
20
+ * puts those near it first, as where the app's maps open does unless it
21
+ * says. Addresses come before shops and malls.
22
+ *
23
+ * The box is the app's own text box, there at once; the suggestions come
24
+ * with their code, loaded the first time an address field is shown. With no
25
+ * address search to ask, the text box is all there is. Its words read in
26
+ * the direction most of them are written in: an address mostly in Arabic
27
+ * that starts with a Latin street still starts at an Arabic page's right.
28
+ */
29
+ function addressSearchWidget(settings) {
30
+ return (context) => {
31
+ const plain = (0, widgets_1.createWidget)({ ...context, node: { ...context.node, widget: undefined } });
32
+ const search = settings.search ?? settings.provider.search;
33
+ const input = (plain.element.tagName === 'INPUT' ? plain.element : plain.element.querySelector('input'));
34
+ if (!search || !input)
35
+ return plain;
36
+ const element = context.document.createElement('div');
37
+ element.className = 'fd-address-search';
38
+ element.append(plain.element);
39
+ const align = () => {
40
+ const dir = (0, address_line_1.directionOf)(input.value);
41
+ if (dir)
42
+ input.dir = dir;
43
+ else
44
+ input.removeAttribute('dir');
45
+ };
46
+ input.addEventListener('input', align);
47
+ let shown;
48
+ // The place search's own combobox and line are handed over, as the page has them already: the suggestions' chunk carries neither.
49
+ Promise.resolve().then(() => require('./address-suggest')).then(({ suggest }) => {
50
+ if (shown === undefined)
51
+ shown = suggest({ settings, context, search, element, input, searchBox: search_box_1.searchBox, addressLine: address_line_1.addressLine });
52
+ });
53
+ return {
54
+ ...plain,
55
+ element,
56
+ update(state) {
57
+ plain.update(state);
58
+ align();
59
+ // The field says what describes its box; the suggestions' note too, while one is shown.
60
+ shown?.described();
61
+ },
62
+ destroy() {
63
+ shown?.destroy();
64
+ shown = null;
65
+ plain.destroy?.();
66
+ },
67
+ };
68
+ };
69
+ }
70
+ //# sourceMappingURL=address-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-search.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/address-search.ts"],"names":[],"mappings":";;AA2BA,kDAoCC;AA/DD,8CAAoE;AACpE,iDAA0D;AAC1D,6CAAyC;AAGzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,mBAAmB,CAAC,QAAqB;IACvD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAA4B,CAAC;QACpI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,IAAA,0BAAW,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,GAAG;gBAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;;gBACpB,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,KAAgF,CAAC;QACrF,kIAAkI;QAClI,qCAAO,mBAAmB,GAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAC/C,IAAI,KAAK,KAAK,SAAS;gBAAE,KAAK,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAT,sBAAS,EAAE,WAAW,EAAX,0BAAW,EAAE,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;QACH,OAAO;YACL,GAAG,KAAK;YACR,OAAO;YACP,MAAM,CAAC,KAAK;gBACV,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,EAAE,CAAC;gBACR,wFAAwF;gBACxF,KAAK,EAAE,SAAS,EAAE,CAAC;YACrB,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,OAAO,EAAE,CAAC;gBACjB,KAAK,GAAG,IAAI,CAAC;gBACb,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { createWidget } from '@fieldia/widgets';
2
+ import { addressLine, directionOf } from './address-line.mjs';
3
+ import { searchBox } from './search-box.mjs';
4
+ /**
5
+ * An address typed on one line (`"widget": "address-search"` on a char
6
+ * field), the addresses the map's provider suggests as people type in a list
7
+ * under it, and no map: the place search's own combobox, its pauses, its
8
+ * credits and its language. What is typed is the answer when nothing is
9
+ * picked. A suggestion picked writes its whole address, and where the page
10
+ * says, its place into a place field (`placeField`: a json field's GeoJSON
11
+ * Point, or a float field's latitude with `longitudeField` for its
12
+ * longitude) and its parts into an address field (`partsField`, a
13
+ * `json.address`: street, city, region, postcode and country, the line under
14
+ * the street kept as typed); the box emptied and left, the place and parts a
15
+ * pick wrote go with it. `countries` (ISO codes) keeps the suggestions to
16
+ * those countries; `near` (`{ "lat", "lng" }`, in the page's own country)
17
+ * puts those near it first, as where the app's maps open does unless it
18
+ * says. Addresses come before shops and malls.
19
+ *
20
+ * The box is the app's own text box, there at once; the suggestions come
21
+ * with their code, loaded the first time an address field is shown. With no
22
+ * address search to ask, the text box is all there is. Its words read in
23
+ * the direction most of them are written in: an address mostly in Arabic
24
+ * that starts with a Latin street still starts at an Arabic page's right.
25
+ */
26
+ export function addressSearchWidget(settings) {
27
+ return (context) => {
28
+ const plain = createWidget({ ...context, node: { ...context.node, widget: undefined } });
29
+ const search = settings.search ?? settings.provider.search;
30
+ const input = (plain.element.tagName === 'INPUT' ? plain.element : plain.element.querySelector('input'));
31
+ if (!search || !input)
32
+ return plain;
33
+ const element = context.document.createElement('div');
34
+ element.className = 'fd-address-search';
35
+ element.append(plain.element);
36
+ const align = () => {
37
+ const dir = directionOf(input.value);
38
+ if (dir)
39
+ input.dir = dir;
40
+ else
41
+ input.removeAttribute('dir');
42
+ };
43
+ input.addEventListener('input', align);
44
+ let shown;
45
+ // The place search's own combobox and line are handed over, as the page has them already: the suggestions' chunk carries neither.
46
+ import('./address-suggest.mjs').then(({ suggest }) => {
47
+ if (shown === undefined)
48
+ shown = suggest({ settings, context, search, element, input, searchBox, addressLine });
49
+ });
50
+ return {
51
+ ...plain,
52
+ element,
53
+ update(state) {
54
+ plain.update(state);
55
+ align();
56
+ // The field says what describes its box; the suggestions' note too, while one is shown.
57
+ shown?.described();
58
+ },
59
+ destroy() {
60
+ shown?.destroy();
61
+ shown = null;
62
+ plain.destroy?.();
63
+ },
64
+ };
65
+ };
66
+ }
67
+ //# sourceMappingURL=address-search.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-search.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/address-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAqB;IACvD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAA4B,CAAC;QACpI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,GAAG;gBAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;;gBACpB,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,KAAgF,CAAC;QACrF,kIAAkI;QAClI,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAC/C,IAAI,KAAK,KAAK,SAAS;gBAAE,KAAK,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;QACH,OAAO;YACL,GAAG,KAAK;YACR,OAAO;YACP,MAAM,CAAC,KAAK;gBACV,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,EAAE,CAAC;gBACR,wFAAwF;gBACxF,KAAK,EAAE,SAAS,EAAE,CAAC;YACrB,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,OAAO,EAAE,CAAC;gBACjB,KAAK,GAAG,IAAI,CAAC;gBACb,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { WidgetContext } from '@fieldia/widgets';
2
+ import type { addressLine } from './address-line.mjs';
3
+ import type { AddressSearch } from './providers.mjs';
4
+ import type { searchBox } from './search-box.mjs';
5
+ import type { MapSettings } from './settings.mjs';
6
+ export interface SuggestOptions {
7
+ settings: MapSettings;
8
+ context: WidgetContext;
9
+ search: AddressSearch;
10
+ /** The field's box, and what holds it (and the list under it). */
11
+ element: HTMLElement;
12
+ input: HTMLInputElement;
13
+ /** The place search's combobox, and the line it writes. */
14
+ searchBox: typeof searchBox;
15
+ addressLine: typeof addressLine;
16
+ }
17
+ /** The suggestions on the field's box: `described` says again what describes the box after the field's own update has, and `destroy` takes them off. */
18
+ export declare function suggest({ settings, context, search, element, input, searchBox, addressLine }: SuggestOptions): {
19
+ described: () => void;
20
+ destroy: () => void;
21
+ };
@@ -0,0 +1,21 @@
1
+ import type { WidgetContext } from '@fieldia/widgets';
2
+ import type { addressLine } from './address-line';
3
+ import type { AddressSearch } from './providers';
4
+ import type { searchBox } from './search-box';
5
+ import type { MapSettings } from './settings';
6
+ export interface SuggestOptions {
7
+ settings: MapSettings;
8
+ context: WidgetContext;
9
+ search: AddressSearch;
10
+ /** The field's box, and what holds it (and the list under it). */
11
+ element: HTMLElement;
12
+ input: HTMLInputElement;
13
+ /** The place search's combobox, and the line it writes. */
14
+ searchBox: typeof searchBox;
15
+ addressLine: typeof addressLine;
16
+ }
17
+ /** The suggestions on the field's box: `described` says again what describes the box after the field's own update has, and `destroy` takes them off. */
18
+ export declare function suggest({ settings, context, search, element, input, searchBox, addressLine }: SuggestOptions): {
19
+ described: () => void;
20
+ destroy: () => void;
21
+ };
@@ -0,0 +1,273 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.suggest = suggest;
4
+ const geo_1 = require("./geo");
5
+ const address_labels_1 = require("./address-labels");
6
+ const labels_1 = require("./labels");
7
+ const map_core_1 = require("./map-core");
8
+ const styles_1 = require("./styles");
9
+ /**
10
+ * An address field's suggestions (address-search.ts), loaded the first time
11
+ * one is shown: the place search's combobox on the field's own box, its list
12
+ * in a box of its own under it with the provider's credit, and what a
13
+ * suggestion picked writes.
14
+ */
15
+ /** The list as the place search draws it, in a box of its own with the credit under it; hidden with the list. */
16
+ const ADDRESS_CSS = `
17
+ .fd-address-search { position: relative; min-width: 0; }
18
+ .fd-address-popup {
19
+ position: absolute; inset-inline: 0; top: calc(100% + 4px); z-index: 1100; overflow: hidden;
20
+ background: var(--fd-surface); color: var(--fd-text); border: 1px solid var(--fd-border); border-radius: var(--fd-control-radius); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
21
+ }
22
+ .fd-address-popup:has(> .fd-map-results[hidden]) { display: none; }
23
+ .fd-address-popup .fd-map-results { position: static; max-height: 264px; border: 0; border-radius: 0; box-shadow: none; background: none; }
24
+ .fd-address-credit { display: block; padding: 3px 10px 5px; border-top: 1px solid var(--fd-border); font-size: 11px; line-height: 1.4; color: var(--fd-muted); text-align: end; text-decoration: none; }
25
+ a.fd-address-credit:hover { text-decoration: underline; }
26
+ .fd-address-credit img { height: 14px; vertical-align: middle; }
27
+ .fd-address-note { margin-top: 4px; font-size: 12.5px; line-height: 1.4; color: var(--fd-error); }
28
+ `;
29
+ /** Said under the box when the address picked is not found on the map: loaded with the suggestions, not with every page that shows a map. */
30
+ const NOT_PLACED = {
31
+ en: 'Not found on the map: no place was saved for this address.',
32
+ ar: 'لم يُعثر على هذا العنوان على الخريطة، فلم يُحفظ له مكان.',
33
+ fr: 'Introuvable sur la carte : aucun lieu n’a été enregistré pour cette adresse.',
34
+ de: 'Nicht auf der Karte gefunden: Für diese Adresse wurde kein Ort gespeichert.',
35
+ };
36
+ /** Said when the place could not be asked for (the line dropped, the provider down or refusing): it may well be on the map. */
37
+ const LOCATE_FAILED = {
38
+ en: 'The map did not answer, so no place was saved for this address: check the connection, then pick it again.',
39
+ ar: 'لم تُجب الخريطة، فلم يُحفظ مكان لهذا العنوان: تحقّق من الاتصال، ثم اختره مرة أخرى.',
40
+ fr: 'La carte n’a pas répondu, aucun lieu n’a donc été enregistré pour cette adresse : vérifiez la connexion, puis choisissez-la de nouveau.',
41
+ de: 'Die Karte hat nicht geantwortet, daher wurde für diese Adresse kein Ort gespeichert: Prüfen Sie die Verbindung und wählen Sie sie dann erneut.',
42
+ };
43
+ /** Said when only a place near it is found (`precise: false`): its street, district or town, kilometres off perhaps. */
44
+ const PLACED_NEAR = {
45
+ en: 'Placed only near this address: its exact place was not found on the map.',
46
+ ar: 'لم يُعثر على مكان هذا العنوان بالضبط على الخريطة، فوُضع قربه فقط.',
47
+ fr: 'Placé seulement près de cette adresse : son emplacement exact est introuvable sur la carte.',
48
+ de: 'Nur in der Nähe dieser Adresse platziert: Der genaue Ort wurde auf der Karte nicht gefunden.',
49
+ };
50
+ const round6 = (n) => Math.round(n * 1e6) / 1e6;
51
+ /**
52
+ * Whether a lookup failed for want of an answer, not because the provider
53
+ * found no such place: nothing came back (fetch fails with a TypeError, as
54
+ * on a line dropped), the page is offline, or the provider refused or failed
55
+ * (answers.ts says what it answered: a 503, a 429, a 403); not its 404, a
56
+ * place it does not know.
57
+ */
58
+ const unanswered = (error, offline) => offline || error.name === 'TypeError' || / answered (?!404)\d{3}\b/.test(error.message);
59
+ const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
60
+ /** The suggestions on the field's box: `described` says again what describes the box after the field's own update has, and `destroy` takes them off. */
61
+ function suggest({ settings, context, search, element, input, searchBox, addressLine }) {
62
+ const { form, name, node, id, document: doc } = context;
63
+ const locale = context.locale ?? 'en';
64
+ const options = node.options ?? {};
65
+ const words = { notPlaced: NOT_PLACED[locale], placedNear: PLACED_NEAR[locale], locateFailed: LOCATE_FAILED[locale], ...(0, address_labels_1.addressLabels)(locale, settings.labels?.[locale]) };
66
+ const named = (key) => (typeof options[key] === 'string' ? options[key] : null);
67
+ const [placeField, longitudeField, partsField] = [named('placeField'), named('longitudeField'), named('partsField')];
68
+ const listed = options['countries'];
69
+ // "UK" as every provider's parts name it, "GB".
70
+ const countries = (Array.isArray(listed) ? listed.map(String) : typeof listed === 'string' ? listed.split(',') : []).map((code) => code.trim().toUpperCase().replace(/^UK$/, 'GB')).filter(Boolean);
71
+ const near = isObject(options['near']) && (0, geo_1.isLatLng)(options['near']['lat'], options['near']['lng']) ? options['near'] : settings.center;
72
+ (0, styles_1.installMapStyles)(doc);
73
+ if (!doc.getElementById('fieldia-address-styles')) {
74
+ const style = doc.createElement('style');
75
+ style.id = 'fieldia-address-styles';
76
+ style.textContent = ADDRESS_CSS;
77
+ doc.head.prepend(style);
78
+ }
79
+ const status = doc.createElement('span');
80
+ status.className = 'fd-sr-only';
81
+ status.setAttribute('role', 'status');
82
+ /** Said to screen readers alone: how many suggestions came, or why none did. A typed address needs none to be an answer. */
83
+ const say = (said) => {
84
+ status.textContent = said ?? (box.list.hidden ? '' : (0, labels_1.fill)(words.suggested, { n: box.list.children.length }));
85
+ // Suggestions come: all of them in sight, as near the bottom of a phone's screen as the box is.
86
+ if (!box.list.hidden)
87
+ popup.scrollIntoView?.({ block: 'nearest' });
88
+ };
89
+ const write = (text) => {
90
+ input.value = text;
91
+ form.setValue(name, text || null);
92
+ };
93
+ /** Shown, and said, when the address picked is not found where it is, or only near it: the console is not where a person looks. */
94
+ const note = doc.createElement('div');
95
+ note.className = 'fd-address-note';
96
+ note.id = `${id}-note`;
97
+ note.hidden = true;
98
+ /** Read with the box, beside what describes it already (its help, its error), while it is shown. */
99
+ const described = () => {
100
+ const ids = (input.getAttribute('aria-describedby') ?? '').split(/\s+/).filter((one) => one && one !== note.id);
101
+ if (!note.hidden)
102
+ ids.push(note.id);
103
+ if (ids.length)
104
+ input.setAttribute('aria-describedby', ids.join(' '));
105
+ else
106
+ input.removeAttribute('aria-describedby');
107
+ };
108
+ const tell = (said) => {
109
+ note.hidden = !said;
110
+ note.textContent = said ?? '';
111
+ described();
112
+ if (said)
113
+ status.textContent = said;
114
+ };
115
+ let picking = 0;
116
+ /** Whether the box has been emptied since the last pick: the words it wrote all taken out, whatever is typed in their place. */
117
+ let emptied = false;
118
+ /** The words that name the address picked (its first line, and the provider's own first piece): while the box still says one, it is that address, edited. */
119
+ let picked = [];
120
+ const plain = (text) => text.toLocaleLowerCase(locale).replace(/\s+/g, ' ').trim();
121
+ const firstPiece = (line) => plain(line.split(/[,،]/)[0] ?? '');
122
+ const typedOver = () => picked.length > 0 && !picked.some((words) => words && plain(input.value).includes(words));
123
+ const typedOn = () => {
124
+ tell(null);
125
+ if (!input.value.trim())
126
+ emptied = true;
127
+ };
128
+ input.addEventListener('input', typedOn);
129
+ const now = () => form.getState().values;
130
+ const inFloats = () => !!placeField && form.page.fields[placeField]?.type === 'float';
131
+ /** The place and the parts as the form holds them, the line a person typed under the street left out: to tell this field's own from one set since. */
132
+ const placeNow = () => JSON.stringify(placeField ? [now()[placeField] ?? null, inFloats() && longitudeField ? (now()[longitudeField] ?? null) : null] : null);
133
+ const partsNow = () => {
134
+ const held = partsField ? now()[partsField] : null;
135
+ return JSON.stringify(isObject(held) ? { ...held, line2: undefined } : (held ?? null));
136
+ };
137
+ /** What the last pick wrote, while the form still holds it as written: a pick that finds no place, or no parts, takes them back (they were another address's), as the box emptied and left does; a place set since by hand (a pin dragged) stays. */
138
+ let wrote = {};
139
+ const setPlace = (at) => {
140
+ if (!placeField)
141
+ return;
142
+ const point = at && { lat: round6(at.lat), lng: round6(at.lng) };
143
+ if (!inFloats())
144
+ form.setValue(placeField, point && (0, geo_1.asJson)((0, geo_1.writePoint)(point)));
145
+ else if (longitudeField) {
146
+ form.setValue(placeField, point && point.lat);
147
+ form.setValue(longitudeField, point && point.lng);
148
+ }
149
+ };
150
+ /** Its parts, the line under the street kept as the person typed it. */
151
+ const setParts = (parts) => {
152
+ if (!partsField)
153
+ return;
154
+ const held = now()[partsField];
155
+ const line2 = isObject(held) && typeof held['line2'] === 'string' ? { line2: held['line2'] } : null;
156
+ form.setValue(partsField, parts || line2 ? { ...parts, ...line2 } : null);
157
+ };
158
+ /** A pick's place and parts written; where it found none, the last pick's taken back, while the form still holds them as that pick wrote them. */
159
+ const writeFound = (at, parts) => {
160
+ const before = wrote;
161
+ wrote = {};
162
+ if (placeField && (at || before.place === placeNow())) {
163
+ setPlace(at);
164
+ if (at)
165
+ wrote.place = placeNow();
166
+ }
167
+ if (partsField && (parts || before.parts === partsNow())) {
168
+ setParts(parts);
169
+ if (parts)
170
+ wrote.parts = partsNow();
171
+ }
172
+ };
173
+ // Emptied and left, or typed over in one go (all of it selected, then typed or pasted): the address picked is no longer the
174
+ // box's, nor its place and parts (a delivery would go to it); words only edited, a flat added or a word taken out, keep them.
175
+ const left = () => {
176
+ if (!emptied && !typedOver())
177
+ return;
178
+ emptied = false;
179
+ picked = [];
180
+ // A pick still finding its place writes nothing now.
181
+ picking++;
182
+ tell(null);
183
+ writeFound(null, undefined);
184
+ };
185
+ input.addEventListener('blur', left);
186
+ const box = searchBox({
187
+ document: doc,
188
+ id,
189
+ input,
190
+ labels: words,
191
+ search: (request) => search({ ...request, addresses: true, ...(countries.length ? { countries } : {}), ...(partsField ? { parts: true } : {}) }),
192
+ asYouType: settings.search ? (settings.searchAsYouType ?? true) : !!settings.provider.searchAsYouType,
193
+ locale,
194
+ near: () => near,
195
+ zoom: () => settings.zoom,
196
+ freeText: true,
197
+ say,
198
+ // Its whole address at once; its place and parts as soon as they are known (looked up now, for a provider whose suggestions carry none).
199
+ async pick(place) {
200
+ const mine = ++picking;
201
+ emptied = false;
202
+ picked = [plain(place.label)];
203
+ tell(null);
204
+ const whole = addressLine([place.label, place.detail], locale);
205
+ write(whole);
206
+ let at = place.lat !== undefined && place.lng !== undefined ? { lat: place.lat, lng: place.lng } : null;
207
+ let parts = place.parts;
208
+ if (!at && place.locate && (placeField || (partsField && !parts))) {
209
+ let failed = false;
210
+ const located = await place.locate().catch((error) => {
211
+ failed = unanswered(error, doc.defaultView?.navigator.onLine === false);
212
+ (0, map_core_1.warnOnce)(`Finding the address picked failed: ${error.message}`);
213
+ return null;
214
+ });
215
+ if (mine !== picking)
216
+ return;
217
+ // Not found where it is: no place written, its parts still are; and the person is told, or told the map did not answer (it may well be on it). Only near it: written, and said.
218
+ tell(!located ? (failed ? words.locateFailed : words.notPlaced) : located.precise === false ? words.placedNear : null);
219
+ if (located) {
220
+ at = located;
221
+ parts = located.parts ?? parts;
222
+ // The provider's own way of writing it, unless a person has typed since.
223
+ if (located.address && input.value === whole) {
224
+ write(addressLine([located.address], locale));
225
+ picked.push(firstPiece(located.address));
226
+ }
227
+ }
228
+ }
229
+ // The pick before's place and parts, still as it wrote them, were another address's: they go, though nothing comes in their place.
230
+ writeFound(at, parts);
231
+ },
232
+ });
233
+ // The list with what the provider's terms ask to be said under it: its mark, or its credit.
234
+ const popup = doc.createElement('div');
235
+ popup.className = 'fd-address-popup';
236
+ popup.append(box.list);
237
+ const mark = settings.search ? undefined : (settings.provider.logo ?? settings.provider.searchCredit);
238
+ if (mark) {
239
+ const credit = doc.createElement(mark.href ? 'a' : 'span');
240
+ credit.className = 'fd-address-credit';
241
+ if (mark.href)
242
+ Object.assign(credit, { href: mark.href, target: '_blank', rel: 'noopener', tabIndex: -1 });
243
+ const image = 'image' in mark ? mark.image : undefined;
244
+ if (image) {
245
+ const img = doc.createElement('img');
246
+ Object.assign(img, { src: image, alt: mark.text });
247
+ credit.append(img);
248
+ }
249
+ else {
250
+ // Its own words in their own direction: "© OpenStreetMap contributors" in an Arabic page too.
251
+ const text = doc.createElement('bdi');
252
+ text.textContent = mark.text;
253
+ credit.append(text);
254
+ }
255
+ popup.append(credit);
256
+ }
257
+ // A press on it keeps the box's focus, so the list stays open and a credit's link opens.
258
+ popup.addEventListener('mousedown', (event) => event.preventDefault());
259
+ element.append(popup, note, status);
260
+ return {
261
+ described,
262
+ destroy() {
263
+ box.destroy();
264
+ input.removeEventListener('input', typedOn);
265
+ input.removeEventListener('blur', left);
266
+ tell(null);
267
+ popup.remove();
268
+ note.remove();
269
+ status.remove();
270
+ },
271
+ };
272
+ }
273
+ //# sourceMappingURL=address-suggest.js.map