@transferwise/components 0.0.0-experimental-8f9699a → 0.0.0-experimental-dabc13b

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 (73) hide show
  1. package/build/i18n/cs.json +1 -0
  2. package/build/i18n/de.json +1 -0
  3. package/build/i18n/es.json +1 -0
  4. package/build/i18n/fr.json +1 -0
  5. package/build/i18n/hu.json +1 -0
  6. package/build/i18n/id.json +1 -0
  7. package/build/i18n/it.json +1 -0
  8. package/build/i18n/ja.json +1 -0
  9. package/build/i18n/pl.json +1 -0
  10. package/build/i18n/pt.json +4 -3
  11. package/build/i18n/ro.json +4 -3
  12. package/build/i18n/ru.json +2 -1
  13. package/build/i18n/th.json +1 -0
  14. package/build/i18n/tr.json +1 -0
  15. package/build/i18n/uk.json +1 -0
  16. package/build/i18n/zh-CN.json +1 -0
  17. package/build/i18n/zh-HK.json +1 -0
  18. package/build/index.esm.js +99 -159
  19. package/build/index.esm.js.map +1 -1
  20. package/build/index.js +99 -159
  21. package/build/index.js.map +1 -1
  22. package/build/main.css +1 -1
  23. package/build/styles/chips/Chip.css +1 -1
  24. package/build/styles/dateLookup/DateLookup.css +1 -1
  25. package/build/styles/main.css +1 -1
  26. package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
  27. package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts +1 -1
  28. package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts.map +1 -1
  29. package/build/types/dateLookup/tableLink/TableLink.d.ts +4 -14
  30. package/build/types/dateLookup/tableLink/TableLink.d.ts.map +1 -1
  31. package/build/types/dateLookup/tableLink/index.d.ts +1 -1
  32. package/build/types/dateLookup/tableLink/index.d.ts.map +1 -1
  33. package/build/types/dateLookup/yearCalendar/table/YearCalendarTable.d.ts.map +1 -1
  34. package/package.json +2 -2
  35. package/src/chips/Chip.css +1 -1
  36. package/src/chips/Chip.less +9 -21
  37. package/src/dateLookup/DateLookup.css +1 -1
  38. package/src/dateLookup/DateLookup.js +4 -19
  39. package/src/dateLookup/DateLookup.keyboardEvents.spec.js +0 -12
  40. package/src/dateLookup/DateLookup.less +49 -39
  41. package/src/dateLookup/DateLookup.story.js +7 -8
  42. package/src/dateLookup/dayCalendar/table/DayCalendarTable.js +3 -28
  43. package/src/dateLookup/dayCalendar/table/DayCalendarTable.spec.js +0 -25
  44. package/src/dateLookup/monthCalendar/table/MonthCalendarTable.js +20 -33
  45. package/src/dateLookup/monthCalendar/table/MonthCalendarTable.spec.js +0 -33
  46. package/src/dateLookup/tableLink/TableLink.js +70 -0
  47. package/src/dateLookup/tableLink/TableLink.spec.js +15 -6
  48. package/src/dateLookup/yearCalendar/table/YearCalendarTable.js +11 -33
  49. package/src/dateLookup/yearCalendar/table/YearCalendarTable.spec.js +0 -26
  50. package/src/i18n/cs.json +1 -0
  51. package/src/i18n/de.json +1 -0
  52. package/src/i18n/es.json +1 -0
  53. package/src/i18n/fr.json +1 -0
  54. package/src/i18n/hu.json +1 -0
  55. package/src/i18n/id.json +1 -0
  56. package/src/i18n/it.json +1 -0
  57. package/src/i18n/ja.json +1 -0
  58. package/src/i18n/pl.json +1 -0
  59. package/src/i18n/pt.json +4 -3
  60. package/src/i18n/ro.json +4 -3
  61. package/src/i18n/ru.json +2 -1
  62. package/src/i18n/th.json +1 -0
  63. package/src/i18n/tr.json +1 -0
  64. package/src/i18n/uk.json +1 -0
  65. package/src/i18n/zh-CN.json +1 -0
  66. package/src/i18n/zh-HK.json +1 -0
  67. package/src/main.css +1 -1
  68. package/build/types/dateLookup/getFocusableTime/getFocusableTime.d.ts +0 -9
  69. package/build/types/dateLookup/getFocusableTime/getFocusableTime.d.ts.map +0 -1
  70. package/src/dateLookup/getFocusableTime/getFocusable.spec.ts +0 -40
  71. package/src/dateLookup/getFocusableTime/getFocusableTime.tsx +0 -14
  72. package/src/dateLookup/tableLink/TableLink.tsx +0 -79
  73. /package/src/dateLookup/tableLink/{index.ts → index.js} +0 -0
@@ -0,0 +1,70 @@
1
+ import PropTypes from 'prop-types';
2
+ import { PureComponent } from 'react';
3
+ import { injectIntl } from 'react-intl';
4
+
5
+ import messages from '../DateLookup.messages';
6
+
7
+ class TableLink extends PureComponent {
8
+ onClick = (event) => {
9
+ event.preventDefault();
10
+ if (!this.props.disabled) {
11
+ this.props.onClick(this.props.item);
12
+ }
13
+ };
14
+
15
+ calculateAriaLabel = (longTitle, title, active, type, formatMessage) => {
16
+ if (active) {
17
+ return `${longTitle || title}, ${formatMessage(messages.selected)} ${formatMessage(
18
+ messages[type],
19
+ )}`;
20
+ }
21
+ return longTitle || title;
22
+ };
23
+
24
+ render() {
25
+ const {
26
+ item,
27
+ type,
28
+ title,
29
+ longTitle,
30
+ active,
31
+ disabled,
32
+ today,
33
+ intl: { formatMessage },
34
+ } = this.props;
35
+ return (
36
+ <>
37
+ <button
38
+ type="button"
39
+ className={`tw-date-lookup-${type}-option ${active ? 'active' : ''} ${
40
+ today ? 'today' : ''
41
+ } np-text-body-default-bold`}
42
+ disabled={disabled}
43
+ aria-label={this.calculateAriaLabel(longTitle, title, active, type, formatMessage)}
44
+ aria-pressed={active}
45
+ onClick={this.onClick}
46
+ >
47
+ {title || item}
48
+ </button>
49
+ </>
50
+ );
51
+ }
52
+ }
53
+
54
+ TableLink.propTypes = {
55
+ item: PropTypes.number.isRequired, // day (1-31), month (0-11) or year (2018 etc)
56
+ type: PropTypes.oneOf(['day', 'month', 'year']).isRequired,
57
+ title: PropTypes.string,
58
+ longTitle: PropTypes.string,
59
+ active: PropTypes.bool.isRequired,
60
+ disabled: PropTypes.bool.isRequired,
61
+ today: PropTypes.bool.isRequired,
62
+ onClick: PropTypes.func.isRequired,
63
+ };
64
+
65
+ TableLink.defaultProps = {
66
+ title: null,
67
+ longTitle: null,
68
+ };
69
+
70
+ export default injectIntl(TableLink);
@@ -1,9 +1,15 @@
1
1
  import { shallow } from 'enzyme';
2
- import { useIntl } from 'react-intl';
3
2
 
4
3
  import TableLink from '.';
5
4
 
6
- jest.mock('react-intl');
5
+ const formatMessage = (id) => id.defaultMessage;
6
+ jest.mock('react-intl', () => ({
7
+ injectIntl: (Component) =>
8
+ function (props) {
9
+ return <Component {...props} intl={{ formatMessage }} />;
10
+ },
11
+ defineMessages: (translations) => translations,
12
+ }));
7
13
 
8
14
  jest.mock('../DateLookup.messages', () => ({
9
15
  selected: {
@@ -23,15 +29,18 @@ jest.mock('../DateLookup.messages', () => ({
23
29
  defaultMessage: 'year',
24
30
  },
25
31
  }));
32
+ jest.mock('react-intl', () => ({
33
+ injectIntl: (Component) =>
34
+ function (props) {
35
+ return <Component {...props} intl={{ formatMessage }} />;
36
+ },
37
+ }));
26
38
 
27
39
  describe('TableLink', () => {
28
40
  let component;
29
41
  let props;
30
42
 
31
43
  beforeEach(() => {
32
- useIntl.mockReturnValue({
33
- formatMessage: (message) => message.defaultMessage,
34
- });
35
44
  props = {
36
45
  item: 12,
37
46
  type: 'day',
@@ -42,7 +51,7 @@ describe('TableLink', () => {
42
51
  title: '12',
43
52
  longTitle: '12/12/1212',
44
53
  };
45
- component = shallow(<TableLink {...props} />);
54
+ component = shallow(<TableLink {...props} />).dive();
46
55
  });
47
56
 
48
57
  it('shows item value', () => {
@@ -2,7 +2,6 @@ import { formatDate } from '@transferwise/formatting';
2
2
  import PropTypes from 'prop-types';
3
3
  import { useIntl } from 'react-intl';
4
4
 
5
- import { getFocusableTime } from '../../getFocusableTime/getFocusableTime';
6
5
  import TableLink from '../../tableLink';
7
6
 
8
7
  const ROWS = 5;
@@ -12,38 +11,17 @@ const YEAR_ONLY_FORMAT = { year: 'numeric' };
12
11
  const YearCalendarTable = ({ selectedDate, min, max, viewYear, placeholder, onSelect }) => {
13
12
  const { locale } = useIntl();
14
13
  const startYear = viewYear - (viewYear % 20);
15
- const getLink = (year) => {
16
- return (
17
- <TableLink
18
- item={year}
19
- type="year"
20
- title={formatDate(new Date(year, 0), locale, YEAR_ONLY_FORMAT)}
21
- active={isActive(year)}
22
- disabled={isDisabled(year)}
23
- today={isThisYear(year)}
24
- autofocus={autofocusYear === year}
25
- onClick={onSelect}
26
- />
27
- );
28
- };
29
-
30
- const isActive = (year) => {
31
- return !!(selectedDate && year === selectedDate.getFullYear());
32
- };
33
-
34
- const isThisYear = (year) => {
35
- return year === new Date().getFullYear();
36
- };
37
-
38
- const isDisabled = (year) => {
39
- return !!((min && year < min.getFullYear()) || (max && year > max.getFullYear()));
40
- };
41
-
42
- const autofocusYear = (() => {
43
- const years = [...new Array(ROWS * COLS)].map((_, index) => startYear + index);
44
- return getFocusableTime({ isActive, isNow: isThisYear, isDisabled, timeSpan: years });
45
- })();
46
-
14
+ const getLink = (year) => (
15
+ <TableLink
16
+ item={year}
17
+ type="year"
18
+ title={formatDate(new Date(year, 0), locale, YEAR_ONLY_FORMAT)}
19
+ active={!!(selectedDate && year === selectedDate.getFullYear())}
20
+ disabled={!!((min && year < min.getFullYear()) || (max && year > max.getFullYear()))}
21
+ today={year === new Date().getFullYear()}
22
+ onClick={onSelect}
23
+ />
24
+ );
47
25
  return (
48
26
  <table className="table table-condensed table-bordered tw-date-lookup-calendar m-b-0">
49
27
  <thead className="sr-only">
@@ -90,32 +90,6 @@ describe('YearCalendarTable', () => {
90
90
  expect(component.find('.sr-only').text()).toBe('Enter date..');
91
91
  });
92
92
 
93
- it('sets autofocus to true when 2002 is the selected year', () => {
94
- component.setProps({ selectedDate: new Date(2002, 5, 1) });
95
- expect(getTableLinkAt(2).prop('autofocus')).toBe(true);
96
- });
97
-
98
- it('sets autofocus to true when selected year is null and current year is visible', () => {
99
- const today = new Date();
100
- component.setProps({
101
- selectedDate: null,
102
- viewYear: today.getFullYear(),
103
- });
104
- expect(getTableLink().find({ today: true }).prop('autofocus')).toBe(true);
105
- });
106
-
107
- it('sets autofocus to true on the second year when the first year is disabled', () => {
108
- component.setProps({
109
- selectedDate: null,
110
- viewYear: 2000,
111
- min: new Date(2001, 1, 1),
112
- isDisabled: (month) => month === 0,
113
- });
114
-
115
- expect(getTableLinkAt(0).prop('autofocus')).toBe(false);
116
- expect(getTableLinkAt(1).prop('autofocus')).toBe(true);
117
- });
118
-
119
93
  const getTableLinkAt = (i) => component.find('[type="year"]').at(i);
120
94
  const getTableLink = () => component.find('[type="year"]');
121
95
  });
package/src/i18n/cs.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(opens in new tab)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Vybrat možnost...",
20
20
  "neptune.Select.searchPlaceholder": "Hledat...",
21
+ "neptune.SelectInput.noResultsFound": "Nebyly nalezeny žádné výsledky",
21
22
  "neptune.Summary.statusDone": "Položka dokončena",
22
23
  "neptune.Summary.statusNotDone": "Položka k dokončení",
23
24
  "neptune.Summary.statusPending": "Čekající položka",
package/src/i18n/de.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(wird in einem neuen Tab geöffnet)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Wähle eine der Möglichkeiten aus...",
20
20
  "neptune.Select.searchPlaceholder": "Wird gesucht...",
21
+ "neptune.SelectInput.noResultsFound": "Keine Ergebnisse gefunden",
21
22
  "neptune.Summary.statusDone": "Schritt erledigt",
22
23
  "neptune.Summary.statusNotDone": "Schritt noch zu erledigen",
23
24
  "neptune.Summary.statusPending": "Schritt ausstehend",
package/src/i18n/es.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(se abre en una pestaña nueva)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Selecciona una opción...",
20
20
  "neptune.Select.searchPlaceholder": "Buscar...",
21
+ "neptune.SelectInput.noResultsFound": "No se han encontrado resultados",
21
22
  "neptune.Summary.statusDone": "Apartado listo",
22
23
  "neptune.Summary.statusNotDone": "Apartado a completar",
23
24
  "neptune.Summary.statusPending": "Apartado pendiente",
package/src/i18n/fr.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(ouvre dans un nouvel onglet)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Sélectionner une option...",
20
20
  "neptune.Select.searchPlaceholder": "Recherche...",
21
+ "neptune.SelectInput.noResultsFound": "Aucun résultat trouvé",
21
22
  "neptune.Summary.statusDone": "Validé",
22
23
  "neptune.Summary.statusNotDone": "À compléter",
23
24
  "neptune.Summary.statusPending": "En attente",
package/src/i18n/hu.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(új lapon nyílik meg)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Válassz ki egy lehetőséget...",
20
20
  "neptune.Select.searchPlaceholder": "Keresés...",
21
+ "neptune.SelectInput.noResultsFound": "Nincs találat",
21
22
  "neptune.Summary.statusDone": "Kész",
22
23
  "neptune.Summary.statusNotDone": "Hátravan",
23
24
  "neptune.Summary.statusPending": "Függőben",
package/src/i18n/id.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(terbuka di tab baru)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Pilih opsi...",
20
20
  "neptune.Select.searchPlaceholder": "Cari...",
21
+ "neptune.SelectInput.noResultsFound": "Hasil tidak ditemukan",
21
22
  "neptune.Summary.statusDone": "Item selesai",
22
23
  "neptune.Summary.statusNotDone": "Item yang harus dilakukan",
23
24
  "neptune.Summary.statusPending": "Item tertunda",
package/src/i18n/it.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(si apre in una nuova scheda)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Seleziona un'opzione...",
20
20
  "neptune.Select.searchPlaceholder": "Cerca...",
21
+ "neptune.SelectInput.noResultsFound": "Nessun risultato trovato",
21
22
  "neptune.Summary.statusDone": "Completato",
22
23
  "neptune.Summary.statusNotDone": "Da completare",
23
24
  "neptune.Summary.statusPending": "In corso",
package/src/i18n/ja.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(新しいタブで開きます)",
19
19
  "neptune.MoneyInput.Select.placeholder": "選択してください...",
20
20
  "neptune.Select.searchPlaceholder": "検索... ",
21
+ "neptune.SelectInput.noResultsFound": "結果が見つかりませんでした",
21
22
  "neptune.Summary.statusDone": "完了",
22
23
  "neptune.Summary.statusNotDone": "未対応",
23
24
  "neptune.Summary.statusPending": "保留中",
package/src/i18n/pl.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(otworzy się w nowej zakładce)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Wybierz opcję...",
20
20
  "neptune.Select.searchPlaceholder": "Wyszukaj...",
21
+ "neptune.SelectInput.noResultsFound": "Nie znaleziono wyników",
21
22
  "neptune.Summary.statusDone": "Czynność wykonana",
22
23
  "neptune.Summary.statusNotDone": "Czynność do wykonania",
23
24
  "neptune.Summary.statusPending": "Czynność oczekująca",
package/src/i18n/pt.json CHANGED
@@ -7,17 +7,18 @@
7
7
  "neptune.DateInput.month.label": "Mês",
8
8
  "neptune.DateInput.year.label": "Ano",
9
9
  "neptune.DateLookup.day": "dia",
10
- "neptune.DateLookup.goTo20YearView": "Go to 20 year view",
10
+ "neptune.DateLookup.goTo20YearView": "Acessar a visualização de 20 anos",
11
11
  "neptune.DateLookup.month": "mês",
12
12
  "neptune.DateLookup.next": "próximo",
13
13
  "neptune.DateLookup.previous": "anterior",
14
14
  "neptune.DateLookup.selected": "selecionada",
15
15
  "neptune.DateLookup.twentyYears": "20 anos",
16
16
  "neptune.DateLookup.year": "ano",
17
- "neptune.FlowNavigation.back": "back to previous step",
18
- "neptune.Link.opensInNewTab": "(abrir a página em uma nova aba)",
17
+ "neptune.FlowNavigation.back": "voltar à etapa anterior",
18
+ "neptune.Link.opensInNewTab": "(abre em uma nova aba)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Escolha uma opção...",
20
20
  "neptune.Select.searchPlaceholder": "Buscar...",
21
+ "neptune.SelectInput.noResultsFound": "Nenhum resultado encontrado",
21
22
  "neptune.Summary.statusDone": "Pronto",
22
23
  "neptune.Summary.statusNotDone": "Não iniciado",
23
24
  "neptune.Summary.statusPending": "Pendente",
package/src/i18n/ro.json CHANGED
@@ -8,16 +8,17 @@
8
8
  "neptune.DateInput.year.label": "An",
9
9
  "neptune.DateLookup.day": "zi",
10
10
  "neptune.DateLookup.goTo20YearView": "Accesează vizualizarea pe 20 de ani",
11
- "neptune.DateLookup.month": "luna",
11
+ "neptune.DateLookup.month": "lună",
12
12
  "neptune.DateLookup.next": "înainte",
13
- "neptune.DateLookup.previous": "precedenta",
13
+ "neptune.DateLookup.previous": "înapoi",
14
14
  "neptune.DateLookup.selected": "selectată",
15
15
  "neptune.DateLookup.twentyYears": "20 de ani",
16
- "neptune.DateLookup.year": "anul",
16
+ "neptune.DateLookup.year": "an",
17
17
  "neptune.FlowNavigation.back": "înapoi la pasul anterior",
18
18
  "neptune.Link.opensInNewTab": "(se deschide într-o filă nouă)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Selectează o opţiune...",
20
20
  "neptune.Select.searchPlaceholder": "Caută...",
21
+ "neptune.SelectInput.noResultsFound": "Nu s-a găsit niciun rezultat",
21
22
  "neptune.Summary.statusDone": "Finalizat",
22
23
  "neptune.Summary.statusNotDone": "De făcut",
23
24
  "neptune.Summary.statusPending": "În așteptare",
package/src/i18n/ru.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "neptune.DateLookup.goTo20YearView": "Перейти к обзору 20 лет",
11
11
  "neptune.DateLookup.month": "месяц",
12
12
  "neptune.DateLookup.next": "далее",
13
- "neptune.DateLookup.previous": "предыдущий",
13
+ "neptune.DateLookup.previous": "назад",
14
14
  "neptune.DateLookup.selected": "выбрано",
15
15
  "neptune.DateLookup.twentyYears": "20 лет",
16
16
  "neptune.DateLookup.year": "год",
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(откроется в новой вкладке)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Выберите вариант...",
20
20
  "neptune.Select.searchPlaceholder": "Поиск...",
21
+ "neptune.SelectInput.noResultsFound": "Ничего не найдено",
21
22
  "neptune.Summary.statusDone": "Этап завершен",
22
23
  "neptune.Summary.statusNotDone": "Этап к выполнению",
23
24
  "neptune.Summary.statusPending": "Этап в процессе",
package/src/i18n/th.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(opens in new tab)",
19
19
  "neptune.MoneyInput.Select.placeholder": "เลือกตัวเลือก...",
20
20
  "neptune.Select.searchPlaceholder": "ค้นหา...",
21
+ "neptune.SelectInput.noResultsFound": "ไม่พบผลลัพธ์",
21
22
  "neptune.Summary.statusDone": "รายการที่ทำแล้ว",
22
23
  "neptune.Summary.statusNotDone": "รายการที่ต้องทำ",
23
24
  "neptune.Summary.statusPending": "รายการที่รอดำเนินการ",
package/src/i18n/tr.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(yeni sekmede açılır)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Bir seçenek seçin...",
20
20
  "neptune.Select.searchPlaceholder": "Ara...",
21
+ "neptune.SelectInput.noResultsFound": "Sonuç bulunamadı",
21
22
  "neptune.Summary.statusDone": "Tamamlanan aşama",
22
23
  "neptune.Summary.statusNotDone": "Yapılacak",
23
24
  "neptune.Summary.statusPending": "Bekliyor",
package/src/i18n/uk.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(opens in new tab)",
19
19
  "neptune.MoneyInput.Select.placeholder": "Виберіть варіант…",
20
20
  "neptune.Select.searchPlaceholder": "Пошук…",
21
+ "neptune.SelectInput.noResultsFound": "Нічого не знайдено",
21
22
  "neptune.Summary.statusDone": "Виконано",
22
23
  "neptune.Summary.statusNotDone": "Не виконано",
23
24
  "neptune.Summary.statusPending": "Виконується",
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(opens in new tab)",
19
19
  "neptune.MoneyInput.Select.placeholder": "请选择...",
20
20
  "neptune.Select.searchPlaceholder": "搜索",
21
+ "neptune.SelectInput.noResultsFound": "找不到结果",
21
22
  "neptune.Summary.statusDone": "已完成",
22
23
  "neptune.Summary.statusNotDone": "未完成",
23
24
  "neptune.Summary.statusPending": "待处理",
@@ -18,6 +18,7 @@
18
18
  "neptune.Link.opensInNewTab": "(在新分頁中開啟)",
19
19
  "neptune.MoneyInput.Select.placeholder": "選擇一個選項…",
20
20
  "neptune.Select.searchPlaceholder": "搜尋…",
21
+ "neptune.SelectInput.noResultsFound": "找不到任何結果",
21
22
  "neptune.Summary.statusDone": "已完成事項",
22
23
  "neptune.Summary.statusNotDone": "未完成事項",
23
24
  "neptune.Summary.statusPending": "待處理事項",