@nyaruka/temba-components 0.86.1 → 0.87.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.
Files changed (282) hide show
  1. package/.eslintrc.js +3 -3
  2. package/.prettierrc +6 -0
  3. package/.storybook/main.js +3 -3
  4. package/.storybook/preview.js +2 -2
  5. package/CHANGELOG.md +15 -24
  6. package/CreateIncludesPlugin.js +2 -2
  7. package/demo/index.html +1 -0
  8. package/dist/locales/es.js +1 -1
  9. package/dist/locales/es.js.map +1 -1
  10. package/dist/locales/fr.js +1 -1
  11. package/dist/locales/fr.js.map +1 -1
  12. package/dist/locales/pt.js +1 -1
  13. package/dist/locales/pt.js.map +1 -1
  14. package/dist/temba-components.js +296 -277
  15. package/dist/temba-components.js.map +1 -1
  16. package/out-tsc/src/RapidElement.js +3 -3
  17. package/out-tsc/src/RapidElement.js.map +1 -1
  18. package/out-tsc/src/ResizeElement.js +2 -2
  19. package/out-tsc/src/ResizeElement.js.map +1 -1
  20. package/out-tsc/src/aliaseditor/AliasEditor.js +1 -1
  21. package/out-tsc/src/aliaseditor/AliasEditor.js.map +1 -1
  22. package/out-tsc/src/button/Button.js +1 -1
  23. package/out-tsc/src/button/Button.js.map +1 -1
  24. package/out-tsc/src/charcount/helpers.js +1 -1
  25. package/out-tsc/src/charcount/helpers.js.map +1 -1
  26. package/out-tsc/src/colorpicker/ColorPicker.js +4 -4
  27. package/out-tsc/src/colorpicker/ColorPicker.js.map +1 -1
  28. package/out-tsc/src/completion/Completion.js +2 -2
  29. package/out-tsc/src/completion/Completion.js.map +1 -1
  30. package/out-tsc/src/completion/ExcellentParser.js +1 -1
  31. package/out-tsc/src/completion/ExcellentParser.js.map +1 -1
  32. package/out-tsc/src/completion/helpers.js +8 -8
  33. package/out-tsc/src/completion/helpers.js.map +1 -1
  34. package/out-tsc/src/compose/Compose.js +14 -14
  35. package/out-tsc/src/compose/Compose.js.map +1 -1
  36. package/out-tsc/src/contacts/ContactBadges.js +2 -2
  37. package/out-tsc/src/contacts/ContactBadges.js.map +1 -1
  38. package/out-tsc/src/contacts/ContactChat.js +4 -4
  39. package/out-tsc/src/contacts/ContactChat.js.map +1 -1
  40. package/out-tsc/src/contacts/ContactDetails.js +4 -4
  41. package/out-tsc/src/contacts/ContactDetails.js.map +1 -1
  42. package/out-tsc/src/contacts/ContactFieldEditor.js +3 -3
  43. package/out-tsc/src/contacts/ContactFieldEditor.js.map +1 -1
  44. package/out-tsc/src/contacts/ContactFields.js +2 -2
  45. package/out-tsc/src/contacts/ContactFields.js.map +1 -1
  46. package/out-tsc/src/contacts/ContactHistory.js +21 -19
  47. package/out-tsc/src/contacts/ContactHistory.js.map +1 -1
  48. package/out-tsc/src/contacts/ContactPending.js +4 -4
  49. package/out-tsc/src/contacts/ContactPending.js.map +1 -1
  50. package/out-tsc/src/contacts/ContactTickets.js +8 -8
  51. package/out-tsc/src/contacts/ContactTickets.js.map +1 -1
  52. package/out-tsc/src/contacts/events.js +2 -2
  53. package/out-tsc/src/contacts/events.js.map +1 -1
  54. package/out-tsc/src/contacts/helpers.js +2 -2
  55. package/out-tsc/src/contacts/helpers.js.map +1 -1
  56. package/out-tsc/src/contactsearch/ContactSearch.js +7 -7
  57. package/out-tsc/src/contactsearch/ContactSearch.js.map +1 -1
  58. package/out-tsc/src/date/TembaDate.js +1 -1
  59. package/out-tsc/src/date/TembaDate.js.map +1 -1
  60. package/out-tsc/src/datepicker/DatePicker.js +1 -1
  61. package/out-tsc/src/datepicker/DatePicker.js.map +1 -1
  62. package/out-tsc/src/dialog/Dialog.js +5 -5
  63. package/out-tsc/src/dialog/Dialog.js.map +1 -1
  64. package/out-tsc/src/dialog/Modax.js +8 -8
  65. package/out-tsc/src/dialog/Modax.js.map +1 -1
  66. package/out-tsc/src/dropdown/Dropdown.js +1 -1
  67. package/out-tsc/src/dropdown/Dropdown.js.map +1 -1
  68. package/out-tsc/src/fields/FieldManager.js +6 -6
  69. package/out-tsc/src/fields/FieldManager.js.map +1 -1
  70. package/out-tsc/src/imagepicker/ImagePicker.js +4 -4
  71. package/out-tsc/src/imagepicker/ImagePicker.js.map +1 -1
  72. package/out-tsc/src/interfaces.js.map +1 -1
  73. package/out-tsc/src/label/Label.js +1 -1
  74. package/out-tsc/src/label/Label.js.map +1 -1
  75. package/out-tsc/src/leafletmap/LeafletMap.js +6 -6
  76. package/out-tsc/src/leafletmap/LeafletMap.js.map +1 -1
  77. package/out-tsc/src/leafletmap/helpers.js +2 -2
  78. package/out-tsc/src/leafletmap/helpers.js.map +1 -1
  79. package/out-tsc/src/lightbox/Lightbox.js +2 -2
  80. package/out-tsc/src/lightbox/Lightbox.js.map +1 -1
  81. package/out-tsc/src/list/ContentMenu.js +8 -8
  82. package/out-tsc/src/list/ContentMenu.js.map +1 -1
  83. package/out-tsc/src/list/RunList.js +1 -1
  84. package/out-tsc/src/list/RunList.js.map +1 -1
  85. package/out-tsc/src/list/SortableList.js +6 -6
  86. package/out-tsc/src/list/SortableList.js.map +1 -1
  87. package/out-tsc/src/list/TembaList.js +5 -5
  88. package/out-tsc/src/list/TembaList.js.map +1 -1
  89. package/out-tsc/src/list/TembaMenu.js +22 -22
  90. package/out-tsc/src/list/TembaMenu.js.map +1 -1
  91. package/out-tsc/src/loading/Loading.js +1 -1
  92. package/out-tsc/src/loading/Loading.js.map +1 -1
  93. package/out-tsc/src/locales/es.js +1 -1
  94. package/out-tsc/src/locales/es.js.map +1 -1
  95. package/out-tsc/src/locales/fr.js +1 -1
  96. package/out-tsc/src/locales/fr.js.map +1 -1
  97. package/out-tsc/src/locales/pt.js +1 -1
  98. package/out-tsc/src/locales/pt.js.map +1 -1
  99. package/out-tsc/src/omnibox/Omnibox.js +1 -1
  100. package/out-tsc/src/omnibox/Omnibox.js.map +1 -1
  101. package/out-tsc/src/options/Options.js +9 -9
  102. package/out-tsc/src/options/Options.js.map +1 -1
  103. package/out-tsc/src/remote/Remote.js +1 -1
  104. package/out-tsc/src/remote/Remote.js.map +1 -1
  105. package/out-tsc/src/select/Select.js +18 -18
  106. package/out-tsc/src/select/Select.js.map +1 -1
  107. package/out-tsc/src/sms/gsmsplitter.js +8 -8
  108. package/out-tsc/src/sms/gsmsplitter.js.map +1 -1
  109. package/out-tsc/src/sms/gsmvalidator.js +1 -1
  110. package/out-tsc/src/sms/gsmvalidator.js.map +1 -1
  111. package/out-tsc/src/sms/index.js +2 -2
  112. package/out-tsc/src/sms/index.js.map +1 -1
  113. package/out-tsc/src/sms/unicodesplitter.js +8 -8
  114. package/out-tsc/src/sms/unicodesplitter.js.map +1 -1
  115. package/out-tsc/src/store/Store.js +10 -10
  116. package/out-tsc/src/store/Store.js.map +1 -1
  117. package/out-tsc/src/store/StoreElement.js +2 -2
  118. package/out-tsc/src/store/StoreElement.js.map +1 -1
  119. package/out-tsc/src/tabpane/TabPane.js +4 -4
  120. package/out-tsc/src/tabpane/TabPane.js.map +1 -1
  121. package/out-tsc/src/templates/TemplateEditor.js +9 -9
  122. package/out-tsc/src/templates/TemplateEditor.js.map +1 -1
  123. package/out-tsc/src/textinput/TextInput.js +1 -1
  124. package/out-tsc/src/textinput/TextInput.js.map +1 -1
  125. package/out-tsc/src/thumbnail/Thumbnail.js +5 -5
  126. package/out-tsc/src/thumbnail/Thumbnail.js.map +1 -1
  127. package/out-tsc/src/tip/Tip.js +3 -3
  128. package/out-tsc/src/tip/Tip.js.map +1 -1
  129. package/out-tsc/src/utils/index.js +21 -21
  130. package/out-tsc/src/utils/index.js.map +1 -1
  131. package/out-tsc/src/vectoricon/VectorIcon.js +2 -2
  132. package/out-tsc/src/vectoricon/VectorIcon.js.map +1 -1
  133. package/out-tsc/src/vectoricon/index.js +1 -0
  134. package/out-tsc/src/vectoricon/index.js.map +1 -1
  135. package/out-tsc/src/webchat/WebChat.js +234 -81
  136. package/out-tsc/src/webchat/WebChat.js.map +1 -1
  137. package/out-tsc/src/webchat/assets.js +2 -0
  138. package/out-tsc/src/webchat/assets.js.map +1 -0
  139. package/out-tsc/src/webchat/index.js.map +1 -1
  140. package/out-tsc/test/temba-alert.test.js +1 -1
  141. package/out-tsc/test/temba-alert.test.js.map +1 -1
  142. package/out-tsc/test/temba-checkbox.test.js.map +1 -1
  143. package/out-tsc/test/temba-color-picker.test.js +4 -4
  144. package/out-tsc/test/temba-color-picker.test.js.map +1 -1
  145. package/out-tsc/test/temba-compose.test.js +50 -54
  146. package/out-tsc/test/temba-compose.test.js.map +1 -1
  147. package/out-tsc/test/temba-contact-badges.test.js +2 -2
  148. package/out-tsc/test/temba-contact-badges.test.js.map +1 -1
  149. package/out-tsc/test/temba-contact-chat.test.js +25 -38
  150. package/out-tsc/test/temba-contact-chat.test.js.map +1 -1
  151. package/out-tsc/test/temba-contact-details.test.js +2 -2
  152. package/out-tsc/test/temba-contact-details.test.js.map +1 -1
  153. package/out-tsc/test/temba-contact-fields.test.js +4 -4
  154. package/out-tsc/test/temba-contact-fields.test.js.map +1 -1
  155. package/out-tsc/test/temba-contact-history.test.js +3 -3
  156. package/out-tsc/test/temba-contact-history.test.js.map +1 -1
  157. package/out-tsc/test/temba-contact-search.test.js +7 -7
  158. package/out-tsc/test/temba-contact-search.test.js.map +1 -1
  159. package/out-tsc/test/temba-contact-tickets.test.js +3 -3
  160. package/out-tsc/test/temba-contact-tickets.test.js.map +1 -1
  161. package/out-tsc/test/temba-content-menu.test.js +7 -7
  162. package/out-tsc/test/temba-content-menu.test.js.map +1 -1
  163. package/out-tsc/test/temba-date.test.js +3 -3
  164. package/out-tsc/test/temba-date.test.js.map +1 -1
  165. package/out-tsc/test/temba-datepicker.test.js +1 -1
  166. package/out-tsc/test/temba-datepicker.test.js.map +1 -1
  167. package/out-tsc/test/temba-field-manager.test.js +1 -3
  168. package/out-tsc/test/temba-field-manager.test.js.map +1 -1
  169. package/out-tsc/test/temba-label.test.js +6 -6
  170. package/out-tsc/test/temba-label.test.js.map +1 -1
  171. package/out-tsc/test/temba-lightbox.test.js +2 -2
  172. package/out-tsc/test/temba-lightbox.test.js.map +1 -1
  173. package/out-tsc/test/temba-list.test.js +6 -6
  174. package/out-tsc/test/temba-list.test.js.map +1 -1
  175. package/out-tsc/test/temba-menu.test.js +4 -5
  176. package/out-tsc/test/temba-menu.test.js.map +1 -1
  177. package/out-tsc/test/temba-modax.test.js +3 -3
  178. package/out-tsc/test/temba-modax.test.js.map +1 -1
  179. package/out-tsc/test/temba-options.test.js +1 -1
  180. package/out-tsc/test/temba-options.test.js.map +1 -1
  181. package/out-tsc/test/temba-select.test.js +17 -17
  182. package/out-tsc/test/temba-select.test.js.map +1 -1
  183. package/out-tsc/test/temba-sortable-list.test.js +1 -1
  184. package/out-tsc/test/temba-sortable-list.test.js.map +1 -1
  185. package/out-tsc/test/temba-textinput.test.js +2 -2
  186. package/out-tsc/test/temba-textinput.test.js.map +1 -1
  187. package/out-tsc/test/temba-tip.test.js +4 -4
  188. package/out-tsc/test/temba-tip.test.js.map +1 -1
  189. package/out-tsc/test/utils.test.js +8 -8
  190. package/out-tsc/test/utils.test.js.map +1 -1
  191. package/package.json +6 -15
  192. package/src/RapidElement.ts +3 -3
  193. package/src/ResizeElement.ts +2 -2
  194. package/src/aliaseditor/AliasEditor.ts +1 -2
  195. package/src/button/Button.ts +1 -1
  196. package/src/charcount/helpers.ts +1 -1
  197. package/src/colorpicker/ColorPicker.ts +4 -4
  198. package/src/completion/Completion.ts +2 -2
  199. package/src/completion/ExcellentParser.ts +1 -1
  200. package/src/completion/helpers.ts +9 -9
  201. package/src/compose/Compose.ts +18 -16
  202. package/src/contacts/ContactBadges.ts +2 -2
  203. package/src/contacts/ContactChat.ts +4 -4
  204. package/src/contacts/ContactDetails.ts +4 -4
  205. package/src/contacts/ContactFieldEditor.ts +4 -4
  206. package/src/contacts/ContactFields.ts +2 -2
  207. package/src/contacts/ContactHistory.ts +25 -22
  208. package/src/contacts/ContactPending.ts +4 -4
  209. package/src/contacts/ContactTickets.ts +9 -9
  210. package/src/contacts/events.ts +3 -3
  211. package/src/contacts/helpers.ts +2 -2
  212. package/src/contactsearch/ContactSearch.ts +9 -9
  213. package/src/date/TembaDate.ts +1 -1
  214. package/src/datepicker/DatePicker.ts +1 -1
  215. package/src/dialog/Dialog.ts +6 -6
  216. package/src/dialog/Modax.ts +8 -8
  217. package/src/dropdown/Dropdown.ts +1 -2
  218. package/src/emojis.json +1882 -1
  219. package/src/fields/FieldManager.ts +6 -7
  220. package/src/imagepicker/ImagePicker.ts +4 -4
  221. package/src/interfaces.ts +4 -4
  222. package/src/label/Label.ts +1 -1
  223. package/src/leafletmap/LeafletMap.ts +6 -6
  224. package/src/leafletmap/helpers.ts +2 -2
  225. package/src/lightbox/Lightbox.ts +2 -2
  226. package/src/list/ContentMenu.ts +9 -9
  227. package/src/list/RunList.ts +1 -1
  228. package/src/list/SortableList.ts +6 -6
  229. package/src/list/TembaList.ts +5 -5
  230. package/src/list/TembaMenu.ts +23 -23
  231. package/src/loading/Loading.ts +1 -1
  232. package/src/locales/es.ts +1 -1
  233. package/src/locales/fr.ts +1 -1
  234. package/src/locales/pt.ts +1 -1
  235. package/src/omnibox/Omnibox.ts +2 -2
  236. package/src/options/Options.ts +9 -9
  237. package/src/remote/Remote.ts +1 -1
  238. package/src/select/Select.ts +19 -19
  239. package/src/sms/gsmsplitter.ts +8 -8
  240. package/src/sms/gsmvalidator.ts +1 -1
  241. package/src/sms/index.ts +2 -2
  242. package/src/sms/unicodesplitter.ts +8 -8
  243. package/src/store/Store.ts +10 -10
  244. package/src/store/StoreElement.ts +2 -2
  245. package/src/tabpane/TabPane.ts +4 -4
  246. package/src/templates/TemplateEditor.ts +9 -9
  247. package/src/textinput/TextInput.ts +2 -2
  248. package/src/thumbnail/Thumbnail.ts +5 -5
  249. package/src/tip/Tip.ts +3 -3
  250. package/src/utils/index.ts +24 -24
  251. package/src/vectoricon/VectorIcon.ts +2 -2
  252. package/src/vectoricon/index.ts +2 -1
  253. package/src/webchat/WebChat.ts +272 -87
  254. package/src/webchat/assets.ts +2 -0
  255. package/src/webchat/index.ts +1 -1
  256. package/svg.js +28 -29
  257. package/test/temba-alert.test.ts +1 -1
  258. package/test/temba-checkbox.test.ts +1 -1
  259. package/test/temba-color-picker.test.ts +4 -4
  260. package/test/temba-compose.test.ts +50 -55
  261. package/test/temba-contact-badges.test.ts +2 -2
  262. package/test/temba-contact-chat.test.ts +26 -46
  263. package/test/temba-contact-details.test.ts +2 -8
  264. package/test/temba-contact-fields.test.ts +4 -11
  265. package/test/temba-contact-history.test.ts +3 -3
  266. package/test/temba-contact-search.test.ts +7 -13
  267. package/test/temba-contact-tickets.test.ts +3 -3
  268. package/test/temba-content-menu.test.ts +7 -7
  269. package/test/temba-date.test.ts +3 -3
  270. package/test/temba-datepicker.test.ts +1 -1
  271. package/test/temba-field-manager.test.ts +1 -4
  272. package/test/temba-label.test.ts +6 -6
  273. package/test/temba-lightbox.test.ts +2 -2
  274. package/test/temba-list.test.ts +6 -6
  275. package/test/temba-menu.test.ts +4 -5
  276. package/test/temba-modax.test.ts +3 -3
  277. package/test/temba-options.test.ts +1 -1
  278. package/test/temba-select.test.ts +17 -17
  279. package/test/temba-sortable-list.test.ts +1 -1
  280. package/test/temba-textinput.test.ts +2 -2
  281. package/test/temba-tip.test.ts +5 -5
  282. package/test/utils.test.ts +8 -9
@@ -4,7 +4,6 @@ import { ContactField, CustomEventType } from '../interfaces';
4
4
 
5
5
  import { SortableList } from '../list/SortableList';
6
6
  import { StoreElement } from '../store/StoreElement';
7
- import { TextInput } from '../textinput/TextInput';
8
7
  import { postJSON } from '../utils';
9
8
 
10
9
  const TYPE_NAMES = {
@@ -14,7 +13,7 @@ const TYPE_NAMES = {
14
13
  datetime: 'Date & Time',
15
14
  state: 'State',
16
15
  ward: 'Ward',
17
- district: 'District',
16
+ district: 'District'
18
17
  };
19
18
 
20
19
  const matches = (field: ContactField, query: string): boolean => {
@@ -153,7 +152,7 @@ export class FieldManager extends StoreElement {
153
152
  }
154
153
 
155
154
  private filterFields() {
156
- const filteredKeys = this.store.getFieldKeys().filter(key => {
155
+ const filteredKeys = this.store.getFieldKeys().filter((key) => {
157
156
  const field = this.store.getContactField(key);
158
157
  if (field.featured) {
159
158
  return false;
@@ -169,7 +168,7 @@ export class FieldManager extends StoreElement {
169
168
  });
170
169
 
171
170
  const featured: ContactField[] = [];
172
- this.store.getFeaturedFields().forEach(field => {
171
+ this.store.getFeaturedFields().forEach((field) => {
173
172
  if (matches(field, this.query)) {
174
173
  featured.push(field);
175
174
  }
@@ -321,7 +320,7 @@ export class FieldManager extends StoreElement {
321
320
  ${this.query
322
321
  ? html`
323
322
  <div class="scroll-box">
324
- ${this.featuredFields.map(field =>
323
+ ${this.featuredFields.map((field) =>
325
324
  this.renderField(field)
326
325
  )}
327
326
  </div>
@@ -333,7 +332,7 @@ export class FieldManager extends StoreElement {
333
332
  @temba-drag-start=${this.handleDragStart}
334
333
  @temba-drag-stop=${this.handleDragStop}
335
334
  >
336
- ${this.featuredFields.map(field =>
335
+ ${this.featuredFields.map((field) =>
337
336
  this.renderField(field)
338
337
  )}
339
338
  </temba-sortable-list>
@@ -348,7 +347,7 @@ export class FieldManager extends StoreElement {
348
347
  <div class="label">Everything Else</div>
349
348
  </div>
350
349
  <div class="scroll-box">
351
- ${this.otherFieldKeys.map(field =>
350
+ ${this.otherFieldKeys.map((field) =>
352
351
  this.renderField(this.store.getContactField(field))
353
352
  )}
354
353
  </div>
@@ -174,12 +174,12 @@ export class ImagePicker extends FormElement {
174
174
  viewport: {
175
175
  width: 300,
176
176
  height: 300,
177
- type: this.shape,
177
+ type: this.shape
178
178
  },
179
179
  boundary: {
180
180
  width: 400,
181
- height: 400,
182
- },
181
+ height: 400
182
+ }
183
183
  });
184
184
 
185
185
  this.croppie.bind({ url });
@@ -193,7 +193,7 @@ export class ImagePicker extends FormElement {
193
193
  size: 'viewport',
194
194
  format: 'webp',
195
195
  quality: 1,
196
- circle: false,
196
+ circle: false
197
197
  })
198
198
  .then(function (resp: any) {
199
199
  const blob = resp;
package/src/interfaces.ts CHANGED
@@ -25,18 +25,18 @@ export interface Attachment {
25
25
  export enum DateStyle {
26
26
  DayFirst = 'day_first',
27
27
  MonthFirst = 'month_first',
28
- YearFirst = 'year_first',
28
+ YearFirst = 'year_first'
29
29
  }
30
30
 
31
31
  export enum ScheduledEventType {
32
32
  CampaignEvent = 'campaign_event',
33
33
  ScheduledBroadcast = 'scheduled_broadcast',
34
- ScheduledTrigger = 'scheduled_trigger',
34
+ ScheduledTrigger = 'scheduled_trigger'
35
35
  }
36
36
 
37
37
  export enum TicketStatus {
38
38
  Open = 'open',
39
- Closed = 'closed',
39
+ Closed = 'closed'
40
40
  }
41
41
 
42
42
  export interface ScheduledEvent {
@@ -259,5 +259,5 @@ export enum CustomEventType {
259
259
  OrderChanged = 'temba-order-changed',
260
260
  DragStart = 'temba-drag-start',
261
261
  DragStop = 'temba-drag-stop',
262
- Resized = 'temba-resized',
262
+ Resized = 'temba-resized'
263
263
  }
@@ -133,7 +133,7 @@ export default class Label extends LitElement {
133
133
  tertiary: this.tertiary,
134
134
  shadow: this.shadow,
135
135
  danger: this.danger,
136
- dark: this.dark,
136
+ dark: this.dark
137
137
  })}"
138
138
  style=${styleMap(labelStyle)}
139
139
  >
@@ -6,7 +6,7 @@ import {
6
6
  LeafletMouseEvent,
7
7
  Map as RenderedMap,
8
8
  map as createMap,
9
- Path,
9
+ Path
10
10
  } from 'leaflet';
11
11
  import { css, html, LitElement } from 'lit';
12
12
  import { property } from 'lit/decorators.js';
@@ -124,7 +124,7 @@ export class LeafletMap extends LitElement {
124
124
  mouseout: (event: LeafletEvent) => {
125
125
  event.target.setStyle(normalFeature);
126
126
  this.hovered = null;
127
- },
127
+ }
128
128
  });
129
129
  };
130
130
 
@@ -140,14 +140,14 @@ export class LeafletMap extends LitElement {
140
140
  {
141
141
  name: data.name,
142
142
  osm_id: this.osmId,
143
- level: 0,
144
- },
143
+ level: 0
144
+ }
145
145
  ];
146
146
  }
147
147
 
148
148
  this.states = geoJSON(data.geometry, {
149
149
  style: visibleStyle,
150
- onEachFeature,
150
+ onEachFeature
151
151
  });
152
152
  this.renderedMap.fitBounds(this.states.getBounds(), {});
153
153
  this.states.addTo(this.renderedMap);
@@ -203,7 +203,7 @@ export class LeafletMap extends LitElement {
203
203
  this.renderedMap = createMap(mapElement, {
204
204
  attributionControl: false,
205
205
  scrollWheelZoom: false,
206
- zoomControl: false,
206
+ zoomControl: false
207
207
  }).setView([0, 1], 4);
208
208
  this.renderedMap.dragging.disable();
209
209
  this.renderedMap.doubleClickZoom.disable();
@@ -3,14 +3,14 @@ export const normalFeature = {
3
3
  opacity: 1,
4
4
  color: 'white',
5
5
  fillOpacity: 0.7,
6
- fillColor: '#2387ca',
6
+ fillColor: '#2387ca'
7
7
  };
8
8
 
9
9
  export const highlightedFeature = {
10
10
  weight: 3,
11
11
  color: 'white',
12
12
  fillOpacity: 1,
13
- fillColor: '#2387ca',
13
+ fillColor: '#2387ca'
14
14
  };
15
15
 
16
16
  export const visibleStyle = () => {
@@ -127,7 +127,7 @@ export class Lightbox extends RapidElement {
127
127
 
128
128
  public render() {
129
129
  const styles = {
130
- transition: `transform ${this.animationTime}ms ease, box-shadow ${this.animationTime}ms ease`,
130
+ transition: `transform ${this.animationTime}ms ease, box-shadow ${this.animationTime}ms ease`
131
131
  };
132
132
 
133
133
  if (this.show) {
@@ -148,7 +148,7 @@ export class Lightbox extends RapidElement {
148
148
  class=${getClasses({
149
149
  container: true,
150
150
  show: this.show,
151
- zoom: this.zoom,
151
+ zoom: this.zoom
152
152
  })}
153
153
  @click=${this.handleClick}
154
154
  >
@@ -7,7 +7,7 @@ import { getUrl, WebResponse } from '../utils';
7
7
 
8
8
  const HEADERS = {
9
9
  'Temba-Content-Menu': '1',
10
- 'Temba-Spa': '1',
10
+ 'Temba-Spa': '1'
11
11
  };
12
12
  export interface ContentMenuItem {
13
13
  type: string;
@@ -28,7 +28,7 @@ export enum ContentMenuItemType {
28
28
  JS = 'js',
29
29
  URL_POST = 'url_post',
30
30
  MODAX = 'modax',
31
- DIVIDER = 'divider',
31
+ DIVIDER = 'divider'
32
32
  }
33
33
 
34
34
  export class ContentMenu extends RapidElement {
@@ -112,8 +112,8 @@ export class ContentMenu extends RapidElement {
112
112
 
113
113
  //populate (or initialize) the buttons and items
114
114
  if (contentMenu) {
115
- this.buttons = contentMenu.filter(item => item.as_button);
116
- this.items = contentMenu.filter(item => !item.as_button);
115
+ this.buttons = contentMenu.filter((item) => item.as_button);
116
+ this.items = contentMenu.filter((item) => !item.as_button);
117
117
  } else {
118
118
  this.buttons = [];
119
119
  this.items = [];
@@ -122,7 +122,7 @@ export class ContentMenu extends RapidElement {
122
122
  //fire custom loaded event type when we're finished
123
123
  this.fireCustomEvent(CustomEventType.Loaded, {
124
124
  buttons: this.buttons,
125
- items: this.items,
125
+ items: this.items
126
126
  });
127
127
  })
128
128
  .catch((error: any) => {
@@ -150,11 +150,11 @@ export class ContentMenu extends RapidElement {
150
150
  public render(): TemplateResult {
151
151
  return html`
152
152
  <div class="container">
153
- ${this.buttons.map(button => {
153
+ ${this.buttons.map((button) => {
154
154
  return html`<temba-button
155
155
  class="${button.primary ? 'primary_button_item' : 'button_item'}"
156
156
  name=${button.label}
157
- @click=${event => this.handleItemClicked(button, event)}
157
+ @click=${(event) => this.handleItemClicked(button, event)}
158
158
  >
159
159
  ${button.label}
160
160
  </temba-button>`;
@@ -170,14 +170,14 @@ export class ContentMenu extends RapidElement {
170
170
  <temba-icon name="menu" size="1.5"></temba-icon>
171
171
  </div>
172
172
  <div slot="dropdown" class="dropdown">
173
- ${this.items.map(item => {
173
+ ${this.items.map((item) => {
174
174
  if (item.type === ContentMenuItemType.DIVIDER) {
175
175
  return html` <div class="divider"></div>`;
176
176
  } else {
177
177
  return html` <div
178
178
  class="item"
179
179
  name=${item.label}
180
- @click=${event => this.handleItemClicked(item, event)}
180
+ @click=${(event) => this.handleItemClicked(item, event)}
181
181
  >
182
182
  ${item.label}
183
183
  </div>`;
@@ -94,7 +94,7 @@ export class RunList extends TembaList {
94
94
  }
95
95
 
96
96
  public removeRun(id: number) {
97
- this.items = this.items.filter(run => run.id !== id);
97
+ this.items = this.items.filter((run) => run.id !== id);
98
98
  this.cursorIndex = Math.min(this.cursorIndex, this.items.length);
99
99
  this.requestUpdate('cursorIndex');
100
100
  }
@@ -86,14 +86,14 @@ export class SortableList extends RapidElement {
86
86
  return this.shadowRoot
87
87
  .querySelector('slot')
88
88
  .assignedElements()
89
- .map(ele => ele.id);
89
+ .map((ele) => ele.id);
90
90
  }
91
91
 
92
92
  private getRowIndex(id: string): number {
93
93
  return this.shadowRoot
94
94
  .querySelector('slot')
95
95
  .assignedElements()
96
- .findIndex(ele => ele.id === id);
96
+ .findIndex((ele) => ele.id === id);
97
97
  }
98
98
 
99
99
  private getOverlappingElement(mouseY: number): HTMLDivElement {
@@ -102,7 +102,7 @@ export class SortableList extends RapidElement {
102
102
  const ele = this.shadowRoot
103
103
  .querySelector('slot')
104
104
  .assignedElements()
105
- .find(otherEle => {
105
+ .find((otherEle) => {
106
106
  const rect = otherEle.getBoundingClientRect();
107
107
 
108
108
  // don't return ourselves
@@ -150,7 +150,7 @@ export class SortableList extends RapidElement {
150
150
  Math.abs(event.clientY - this.yDown) > DRAG_THRESHOLD
151
151
  ) {
152
152
  this.fireCustomEvent(CustomEventType.DragStart, {
153
- id: this.downEle.id,
153
+ id: this.downEle.id
154
154
  });
155
155
 
156
156
  this.ghostElement = this.downEle.cloneNode(true) as HTMLDivElement;
@@ -185,7 +185,7 @@ export class SortableList extends RapidElement {
185
185
  from: dragId,
186
186
  to: otherId,
187
187
  fromIdx: this.draggingIdx,
188
- toIdx: otherIdx,
188
+ toIdx: otherIdx
189
189
  });
190
190
 
191
191
  // TODO: Dont do swapping, just send the full order?
@@ -198,7 +198,7 @@ export class SortableList extends RapidElement {
198
198
  private handleMouseUp() {
199
199
  if (this.draggingId) {
200
200
  this.fireCustomEvent(CustomEventType.DragStop, {
201
- id: this.draggingId,
201
+ id: this.draggingId
202
202
  });
203
203
 
204
204
  this.draggingId = null;
@@ -178,7 +178,7 @@ export class TembaList extends RapidElement {
178
178
  }
179
179
 
180
180
  public setSelection(value: string) {
181
- const index = this.items.findIndex(item => {
181
+ const index = this.items.findIndex((item) => {
182
182
  return this.getValue(item) === value;
183
183
  });
184
184
  this.cursorIndex = index;
@@ -188,7 +188,7 @@ export class TembaList extends RapidElement {
188
188
  }
189
189
 
190
190
  public getItemIndex(value: string) {
191
- return this.items.findIndex(option => this.getValue(option) === value);
191
+ return this.items.findIndex((option) => this.getValue(option) === value);
192
192
  }
193
193
 
194
194
  public removeItem(value: string) {
@@ -259,7 +259,7 @@ export class TembaList extends RapidElement {
259
259
  }
260
260
  const newValue = this.getValue(newOption);
261
261
  const removeIndex = items.findIndex(
262
- option => this.getValue(option) === newValue
262
+ (option) => this.getValue(option) === newValue
263
263
  );
264
264
 
265
265
  if (removeIndex > -1) {
@@ -287,7 +287,7 @@ export class TembaList extends RapidElement {
287
287
  const prevValue = this.getValue(prevItem);
288
288
  if (prevValue !== this.getValue(newItem)) {
289
289
  const newIndex = newItems.findIndex(
290
- option => this.getValue(option) === prevValue
290
+ (option) => this.getValue(option) === prevValue
291
291
  );
292
292
  this.cursorIndex = newIndex;
293
293
 
@@ -373,7 +373,7 @@ export class TembaList extends RapidElement {
373
373
  newItem &&
374
374
  this.getValue(newItem) !== this.getValue(this.selected)
375
375
  ) {
376
- const index = fetchedItems.findIndex(item => {
376
+ const index = fetchedItems.findIndex((item) => {
377
377
  return this.getValue(item) === this.getValue(this.selected);
378
378
  });
379
379
 
@@ -1,4 +1,4 @@
1
- import { css, html, PropertyValueMap, TemplateResult } from 'lit';
1
+ import { css, html, TemplateResult } from 'lit';
2
2
  import { ifDefined } from 'lit/directives/if-defined.js';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { CustomEventType } from '../interfaces';
@@ -716,7 +716,7 @@ export class TembaMenu extends ResizeElement {
716
716
  if (changes.has('endpoint')) {
717
717
  this.root = {
718
718
  level: -1,
719
- endpoint: this.endpoint,
719
+ endpoint: this.endpoint
720
720
  };
721
721
 
722
722
  if (!this.wait) {
@@ -747,7 +747,7 @@ export class TembaMenu extends ResizeElement {
747
747
  // we need to wait until the load is complete before doing the replace
748
748
  await this.httpComplete;
749
749
  const id = path.shift();
750
- item = (item.items || []).find(_item => _item.id == id);
750
+ item = (item.items || []).find((_item) => _item.id == id);
751
751
  }
752
752
 
753
753
  this.loadItems(item);
@@ -768,10 +768,10 @@ export class TembaMenu extends ResizeElement {
768
768
  item.loading = true;
769
769
  this.httpComplete = fetchResults(item.endpoint).then(
770
770
  (items: MenuItem[]) => {
771
- items.forEach(newItem => {
771
+ items.forEach((newItem) => {
772
772
  if (!newItem.items) {
773
773
  const prevItem = (item.items || []).find(
774
- prev => prev.id == newItem.id
774
+ (prev) => prev.id == newItem.id
775
775
  );
776
776
  if (prevItem && prevItem.items) {
777
777
  newItem.items = prevItem.items;
@@ -780,11 +780,11 @@ export class TembaMenu extends ResizeElement {
780
780
  });
781
781
 
782
782
  // update our item level
783
- items.forEach(subItem => {
783
+ items.forEach((subItem) => {
784
784
  subItem.level = item.level + 1;
785
785
  // if we came with preset items, set the level for them accordingly
786
786
  if (subItem.items) {
787
- subItem.items.forEach(inlineItem => {
787
+ subItem.items.forEach((inlineItem) => {
788
788
  inlineItem.level = item.level + 2;
789
789
  });
790
790
  }
@@ -827,7 +827,7 @@ export class TembaMenu extends ResizeElement {
827
827
  this.fireCustomEvent(CustomEventType.ButtonClicked, {
828
828
  item: menuItem,
829
829
  selection: this.getSelection(),
830
- parent,
830
+ parent
831
831
  });
832
832
  }
833
833
 
@@ -839,7 +839,7 @@ export class TembaMenu extends ResizeElement {
839
839
  this.fireCustomEvent(CustomEventType.ButtonClicked, {
840
840
  item: menuItem,
841
841
  selection: this.getSelection(),
842
- parent,
842
+ parent
843
843
  });
844
844
  }
845
845
  return;
@@ -870,7 +870,7 @@ export class TembaMenu extends ResizeElement {
870
870
  this.fireCustomEvent(CustomEventType.ButtonClicked, {
871
871
  item: menuItem,
872
872
  selection: this.getSelection(),
873
- parent,
873
+ parent
874
874
  });
875
875
  return;
876
876
  }
@@ -904,7 +904,7 @@ export class TembaMenu extends ResizeElement {
904
904
  this.fireCustomEvent(CustomEventType.ButtonClicked, {
905
905
  item: menuItem,
906
906
  selection: this.getSelection(),
907
- parent,
907
+ parent
908
908
  });
909
909
  }
910
910
 
@@ -912,7 +912,7 @@ export class TembaMenu extends ResizeElement {
912
912
  // makes sure we are scrolled into view
913
913
  window.setTimeout(() => {
914
914
  const eles = this.shadowRoot.querySelectorAll('.selected');
915
- eles.forEach(ele => {
915
+ eles.forEach((ele) => {
916
916
  ele.scrollIntoView({ block: 'end', behavior: 'smooth' });
917
917
  });
918
918
  }, 0);
@@ -969,7 +969,7 @@ export class TembaMenu extends ResizeElement {
969
969
  }
970
970
 
971
971
  public async setFocusedItem(path: string) {
972
- const focusedPath = path.split('/').filter(step => !!step);
972
+ const focusedPath = path.split('/').filter((step) => !!step);
973
973
  if (!this.root) {
974
974
  return;
975
975
  }
@@ -1017,7 +1017,7 @@ export class TembaMenu extends ResizeElement {
1017
1017
 
1018
1018
  private isExpanded(menuItem: MenuItem) {
1019
1019
  const expanded = !!this.selection.find(
1020
- id => id === menuItem.vanity_id || menuItem.id
1020
+ (id) => id === menuItem.vanity_id || menuItem.id
1021
1021
  );
1022
1022
  return expanded;
1023
1023
  }
@@ -1047,7 +1047,7 @@ export class TembaMenu extends ResizeElement {
1047
1047
  if (menuItem.type === 'modax-button') {
1048
1048
  return html`<temba-button
1049
1049
  name=${menuItem.name}
1050
- @click=${event => {
1050
+ @click=${(event) => {
1051
1051
  this.handleItemClicked(event, menuItem);
1052
1052
  }}
1053
1053
  />`;
@@ -1092,14 +1092,14 @@ export class TembaMenu extends ResizeElement {
1092
1092
  expanded: this.isExpanded(menuItem),
1093
1093
  iconless: !icon && !collapsedIcon && !menuItem.avatar,
1094
1094
  pressed: this.pressedItem && this.pressedItem.id == menuItem.id,
1095
- 'show-mobile': menuItem.mobile,
1095
+ 'show-mobile': menuItem.mobile
1096
1096
  });
1097
1097
 
1098
1098
  if (menuItem.avatar) {
1099
1099
  icon = renderAvatar({
1100
1100
  name: menuItem.avatar,
1101
1101
  tip: false,
1102
- scale: parent ? 0.9 : 1.2,
1102
+ scale: parent ? 0.9 : 1.2
1103
1103
  });
1104
1104
  if (menuItem.bubble) {
1105
1105
  icon = html`${icon}${menuItem.bubble
@@ -1117,7 +1117,7 @@ export class TembaMenu extends ResizeElement {
1117
1117
  href=${ifDefined(menuItem.href ? menuItem.href : undefined)}
1118
1118
  id="menu-${menuItem.id}"
1119
1119
  class="${itemClasses}"
1120
- @click=${event => {
1120
+ @click=${(event) => {
1121
1121
  event.preventDefault();
1122
1122
  this.pressedItem = null;
1123
1123
  this.handleItemClicked(event, menuItem, parent);
@@ -1219,14 +1219,14 @@ export class TembaMenu extends ResizeElement {
1219
1219
  <div class="top-spacer"></div>
1220
1220
 
1221
1221
  ${items
1222
- .filter(item => !item.bottom)
1222
+ .filter((item) => !item.bottom)
1223
1223
  .map((item: MenuItem) => {
1224
1224
  return this.renderMenuItem(item);
1225
1225
  })}
1226
1226
 
1227
1227
  <div class="empty"></div>
1228
1228
  ${items
1229
- .filter(item => !!item.bottom)
1229
+ .filter((item) => !!item.bottom)
1230
1230
  .map((item: MenuItem) => {
1231
1231
  return this.renderMenuItem(item);
1232
1232
  })}
@@ -1263,14 +1263,14 @@ export class TembaMenu extends ResizeElement {
1263
1263
  class="${getClasses({
1264
1264
  level: true,
1265
1265
  ['level-' + (index + 1)]: true,
1266
- collapsed,
1266
+ collapsed
1267
1267
  })}"
1268
1268
  >
1269
1269
  ${!this.submenu
1270
1270
  ? html`
1271
1271
  <slot
1272
1272
  class="${getClasses({
1273
- 'show-header': selected.show_header,
1273
+ 'show-header': selected.show_header
1274
1274
  })}"
1275
1275
  name="header"
1276
1276
  ></slot>
@@ -1307,7 +1307,7 @@ export class TembaMenu extends ResizeElement {
1307
1307
  class="${getClasses({
1308
1308
  root: true,
1309
1309
  'fully-collapsed': this.collapsed,
1310
- mobile: this.isMobile(),
1310
+ mobile: this.isMobile()
1311
1311
  })}"
1312
1312
  >
1313
1313
  ${levels}
@@ -63,7 +63,7 @@ export class Loading extends LitElement {
63
63
  height: this.size + 'px',
64
64
  margin: margin + 'px',
65
65
  animationDelay: `-${1 - num * (1 / this.units)}s`,
66
- background: this.color,
66
+ background: this.color
67
67
  };
68
68
  return html`
69
69
  <div class="loading-unit" style=${styleMap(ballStyle)}></div>
package/src/locales/es.ts CHANGED
@@ -11,5 +11,5 @@ export const templates = {
11
11
  sd149dff460c8dc41: `Skip contacts currently in a flow`,
12
12
  sc85010c81b71421e: `Avoid interrupting a contact who is already in a flow.`,
13
13
  s3e3fa53e834f4fda: `Skip repeat contacts`,
14
- s95e715d82602bced: `Avoid restarting a contact who has been in this flow in the last 90 days.`,
14
+ s95e715d82602bced: `Avoid restarting a contact who has been in this flow in the last 90 days.`
15
15
  };
package/src/locales/fr.ts CHANGED
@@ -11,5 +11,5 @@ export const templates = {
11
11
  sd149dff460c8dc41: `Skip contacts currently in a flow`,
12
12
  sc85010c81b71421e: `Avoid interrupting a contact who is already in a flow.`,
13
13
  s3e3fa53e834f4fda: `Skip repeat contacts`,
14
- s95e715d82602bced: `Avoid restarting a contact who has been in this flow in the last 90 days.`,
14
+ s95e715d82602bced: `Avoid restarting a contact who has been in this flow in the last 90 days.`
15
15
  };
package/src/locales/pt.ts CHANGED
@@ -11,5 +11,5 @@ export const templates = {
11
11
  sd149dff460c8dc41: `Skip contacts currently in a flow`,
12
12
  sc85010c81b71421e: `Avoid interrupting a contact who is already in a flow.`,
13
13
  s3e3fa53e834f4fda: `Skip repeat contacts`,
14
- s95e715d82602bced: `Avoid restarting a contact who has been in this flow in the last 90 days.`,
14
+ s95e715d82602bced: `Avoid restarting a contact who has been in this flow in the last 90 days.`
15
15
  };
@@ -7,7 +7,7 @@ import { Icon } from '../vectoricon';
7
7
 
8
8
  enum OmniType {
9
9
  Group = 'group',
10
- Contact = 'contact',
10
+ Contact = 'contact'
11
11
  }
12
12
 
13
13
  export interface OmniOption {
@@ -23,7 +23,7 @@ export interface OmniOption {
23
23
  const postNameStyle = {
24
24
  color: 'var(--color-text-dark)',
25
25
  padding: '0px 6px',
26
- fontSize: '12px',
26
+ fontSize: '12px'
27
27
  };
28
28
 
29
29
  export class Omnibox extends RapidElement {