@24i/bigscreen-sdk 1.0.5-alpha.2131 → 1.0.6-alpha.2139

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 (130) hide show
  1. package/package.json +1 -1
  2. package/packages/developer-tools/src/DeveloperConsole/DeveloperConsole.tsx +1 -0
  3. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfo.tsx +2 -0
  4. package/packages/epg/src/v2/DatePicker.tsx +6 -3
  5. package/packages/keyboard/src/KeyboardBase.tsx +7 -2
  6. package/packages/l10n/src/date/common.ts +12 -0
  7. package/packages/l10n/src/date/cs.ts +2 -8
  8. package/packages/l10n/src/date/de.ts +97 -0
  9. package/packages/l10n/src/date/en-001.ts +3 -3
  10. package/packages/l10n/src/date/en-common.ts +5 -4
  11. package/packages/l10n/src/date/en-us.ts +3 -3
  12. package/packages/l10n/src/date/es.ts +71 -0
  13. package/packages/l10n/src/date/fr.ts +93 -0
  14. package/packages/l10n/src/date/iso.ts +12 -13
  15. package/packages/l10n/src/date/types.ts +6 -0
  16. package/packages/l10n/src/l10n.ts +8 -0
  17. package/packages/create-package/dist/createPackage.js +0 -66
  18. package/packages/create-package/dist/createPackage.js.map +0 -1
  19. package/packages/create-package/dist/index.js +0 -5
  20. package/packages/create-package/dist/index.js.map +0 -1
  21. package/packages/create-package/dist/questionnaire/questions.js +0 -35
  22. package/packages/create-package/dist/questionnaire/questions.js.map +0 -1
  23. package/packages/create-package/dist/settings/Settings.js +0 -10
  24. package/packages/create-package/dist/settings/Settings.js.map +0 -1
  25. package/packages/create-package/dist/types.js +0 -3
  26. package/packages/create-package/dist/types.js.map +0 -1
  27. package/packages/rnv-build-engine/dist/src/constants/buildSchemes.js +0 -14
  28. package/packages/rnv-build-engine/dist/src/constants/index.js +0 -7
  29. package/packages/rnv-build-engine/dist/src/constants/platforms.js +0 -14
  30. package/packages/rnv-build-engine/dist/src/engine.js +0 -94
  31. package/packages/rnv-build-engine/dist/src/index.js +0 -26
  32. package/packages/rnv-build-engine/dist/src/resolvers/index.js +0 -29
  33. package/packages/rnv-build-engine/dist/src/resolvers/resolveBaseUrl.js +0 -31
  34. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildFileExtension.js +0 -12
  35. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildFileName.js +0 -36
  36. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildVersion.js +0 -42
  37. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildVersionOffset.js +0 -34
  38. package/packages/rnv-build-engine/dist/src/resolvers/resolveDeployLocations.js +0 -79
  39. package/packages/rnv-build-engine/dist/src/resolvers/resolveGenericRnvConfig.js +0 -47
  40. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvDeployConfig.js +0 -13
  41. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvDeployUrl.js +0 -11
  42. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvRemoteBuildDirRelativePath.js +0 -24
  43. package/packages/rnv-build-engine/dist/src/resolvers/resolveSupportedPlatforms.js +0 -5
  44. package/packages/rnv-build-engine/dist/src/resolvers/resolveUsedFlavours.js +0 -23
  45. package/packages/rnv-build-engine/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +0 -14
  46. package/packages/rnv-build-engine/dist/src/scripts/buildAllWithScheme.js +0 -25
  47. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/formatTableDataSpaces.js +0 -30
  48. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/generateDeployUrls.js +0 -90
  49. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/index.js +0 -4
  50. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/makeTableDataByScheme.js +0 -63
  51. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/afterVersionBump.js +0 -18
  52. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/beforeVersionBump.js +0 -12
  53. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/checkReleaseNotes.js +0 -16
  54. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushRelease.js +0 -31
  55. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushReleaseCandidate.js +0 -6
  56. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushReleaseNotes.js +0 -37
  57. package/packages/rnv-build-engine/dist/src/scripts/release/deleteSourceMaps.js +0 -11
  58. package/packages/rnv-build-engine/dist/src/scripts/release/deployToAppCenter.js +0 -83
  59. package/packages/rnv-build-engine/dist/src/scripts/release/githubRelease.js +0 -128
  60. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/generateWebhoook.js +0 -65
  61. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/makePayload.js +0 -85
  62. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/notifySlack.js +0 -44
  63. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/slackBlockKitBuilder.js +0 -39
  64. package/packages/rnv-build-engine/dist/src/scripts/release/sentryRelease.js +0 -85
  65. package/packages/rnv-build-engine/dist/src/scripts/release/urlsMarkdown.js +0 -62
  66. package/packages/rnv-build-engine/dist/src/scripts/releaseAllWithScheme.js +0 -79
  67. package/packages/rnv-build-engine/dist/src/scripts/utils/cmdUtils.js +0 -12
  68. package/packages/rnv-build-engine/dist/src/scripts/utils/fsUtils.js +0 -33
  69. package/packages/rnv-build-engine/dist/src/scripts/utils/generateIcons.js +0 -29
  70. package/packages/rnv-build-engine/dist/src/scripts/utils/gitUtils.js +0 -78
  71. package/packages/rnv-build-engine/dist/src/scripts/utils/index.js +0 -27
  72. package/packages/rnv-build-engine/dist/src/scripts/utils/stringUtils.js +0 -5
  73. package/packages/rnv-build-engine/dist/src/sdks/index.js +0 -42
  74. package/packages/rnv-build-engine/dist/src/sdks/sdk-tizen/index.js +0 -13
  75. package/packages/rnv-build-engine/dist/src/sdks/sdk-tizen/sdkTizen.js +0 -168
  76. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/index.js +0 -14
  77. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/registerSdkPath.js +0 -14
  78. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/index.js +0 -5
  79. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/sdkInstaller.js +0 -37
  80. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/clean.js +0 -11
  81. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/download.js +0 -76
  82. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/index.js +0 -11
  83. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/install.js +0 -23
  84. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/unzip.js +0 -12
  85. package/packages/rnv-build-engine/dist/src/sdks/sdk-webos/index.js +0 -13
  86. package/packages/rnv-build-engine/dist/src/sdks/sdk-webos/sdkWebos.js +0 -80
  87. package/packages/rnv-build-engine/dist/src/sdks/sdk-webpack/index.js +0 -13
  88. package/packages/rnv-build-engine/dist/src/sdks/sdk-webpack/sdkWebpack.js +0 -6
  89. package/packages/rnv-build-engine/dist/src/sdks/sdk-xbox/index.js +0 -13
  90. package/packages/rnv-build-engine/dist/src/sdks/sdk-xbox/sdkXbox.js +0 -221
  91. package/packages/rnv-build-engine/dist/src/tasks/deploy/aswS3/aws.js +0 -22
  92. package/packages/rnv-build-engine/dist/src/tasks/deploy/aswS3/deployS3.js +0 -71
  93. package/packages/rnv-build-engine/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +0 -94
  94. package/packages/rnv-build-engine/dist/src/tasks/engineTasks.js +0 -24
  95. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.build.js +0 -91
  96. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.configure.js +0 -42
  97. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.configureSoft.js +0 -30
  98. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.deploy.js +0 -40
  99. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.hooks.run.js +0 -70
  100. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.package.js +0 -18
  101. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.platform.configure.js +0 -37
  102. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.project.configure.js +0 -116
  103. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.start.js +0 -73
  104. package/packages/rnv-build-engine/dist/src/types/c.js +0 -2
  105. package/packages/rnv-build-engine/dist/src/types/constants.js +0 -2
  106. package/packages/rnv-build-engine/dist/src/types/index.js +0 -2
  107. package/packages/rnv-build-engine/dist/src/utils/forEachSupportedPlatformFlavour.js +0 -24
  108. package/packages/rnv-build-engine/dist/src/utils/generatePngSpriteMap.js +0 -78
  109. package/packages/rnv-build-engine/dist/src/utils/generateSvgSpriteMap.js +0 -113
  110. package/packages/rnv-build-engine/dist/src/utils/mergeSvgAndPngIcons.js +0 -65
  111. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/index.js +0 -5
  112. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.js +0 -31
  113. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.js +0 -40
  114. package/packages/rnv-build-engine/dist/src/utils/zipBuildsByPlatforms.js +0 -61
  115. package/packages/rnv-build-engine/dist/templates/platforms/_shared/template.js +0 -87
  116. package/packages/rnv-build-engine/dist/templates/platforms/_shared/utils/extendSass.js +0 -29
  117. package/packages/rnv-build-engine/dist/templates/platforms/_shared/utils/joinStrings.js +0 -5
  118. package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpack.base.js +0 -234
  119. package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpack.config.dev.js +0 -6
  120. package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpack.config.prod.js +0 -6
  121. package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpack.extend.js +0 -8
  122. package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpackConfigAdapter.js +0 -100
  123. package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpackPlatformProps.js +0 -8
  124. package/packages/rnv-build-engine/dist/templates/platforms/hbbtv/webpackPlatformProps.js +0 -24
  125. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/.project +0 -24
  126. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/.tproject +0 -12
  127. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/config.xml +0 -17
  128. package/packages/rnv-build-engine/dist/templates/platforms/webos/project/.project +0 -35
  129. package/packages/rnv-build-engine/dist/templates/platforms/webos/project/appinfo.json +0 -19
  130. package/packages/rnv-build-engine/dist/templates/platforms/webos/webpackPlatformProps.js +0 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@24i/bigscreen-sdk",
3
- "version": "1.0.5-alpha.2131",
3
+ "version": "1.0.6-alpha.2139",
4
4
  "description": "SmartApps BIGscreen SDK monorepo",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -351,6 +351,7 @@ export class DeveloperConsole extends Component<Props> implements IDeveloperTool
351
351
  ref={this.developerConsoleRef}
352
352
  onKeyDown={this.onKeyDown}
353
353
  tabIndex={0}
354
+ dir="ltr"
354
355
  >
355
356
  <div className="developer-console-panel" ref={this.developerConsolePanelRef} />
356
357
  <div className="developer-console-controls">
@@ -88,6 +88,7 @@ export class TechnicalInfo extends Component<Props> implements IDeveloperTool<Pr
88
88
  ref={this.horizontalNavigation}
89
89
  domRef={this.rootRef}
90
90
  focusableChildren={[this.technicalInfoRef, this.closeButtonRef]}
91
+ dir="ltr"
91
92
  >
92
93
  <div className="content">
93
94
  <TechnicalInfoDetail
@@ -117,6 +118,7 @@ export class TechnicalInfo extends Component<Props> implements IDeveloperTool<Pr
117
118
  ref={this.rootRef}
118
119
  className={`technical-info ${DISPLAY_NONE}`}
119
120
  onKeyDown={this.onKeyDown}
121
+ dir="ltr"
120
122
  />
121
123
  );
122
124
  }
@@ -44,9 +44,12 @@ const prepareDateData = ({
44
44
  return { selectedValue, from, to, overrides };
45
45
  };
46
46
 
47
- const defaultFormat = (date: Date) => l10n.date(date).toLocaleDateString(
48
- { weekday: 'short', day: 'numeric', month: 'short' },
49
- );
47
+ const defaultFormat = (date: Date) => {
48
+ const locale = i18n.getLanguage();
49
+ return l10n.date(date, locale).toLocaleDateString(
50
+ { weekday: 'short', day: 'numeric', month: 'short' }
51
+ );
52
+ };
50
53
 
51
54
  export class DatePicker extends Component<Props> implements IDatePicker {
52
55
  datePicker = createRef<Picker<number>>();
@@ -1,5 +1,6 @@
1
1
  import { Component, createRef, Reference } from '@24i/bigscreen-sdk/jsx';
2
2
  import { getKeyDigit } from '@24i/bigscreen-sdk/device';
3
+ import { isRtl } from '@24i/bigscreen-sdk/i18n';
3
4
  import { EventsManager } from '@24i/bigscreen-sdk/events-manager';
4
5
  import {
5
6
  Matrix,
@@ -208,7 +209,9 @@ export abstract class KeyboardBase<
208
209
  * Moves caret 1 position to the left.
209
210
  */
210
211
  onLeft() {
211
- const newPosition = caretLeft(this.inputElement);
212
+ const newPosition = !isRtl()
213
+ ? caretLeft(this.inputElement)
214
+ : caretRight(this.inputElement);
212
215
  if (typeof newPosition === 'number') {
213
216
  this.updateCaretPosition(newPosition);
214
217
  }
@@ -218,7 +221,9 @@ export abstract class KeyboardBase<
218
221
  * Moves caret 1 position to the right.
219
222
  */
220
223
  onRight() {
221
- const newPosition = caretRight(this.inputElement);
224
+ const newPosition = !isRtl()
225
+ ? caretRight(this.inputElement)
226
+ : caretLeft(this.inputElement);
222
227
  if (typeof newPosition === 'number') {
223
228
  this.updateCaretPosition(newPosition);
224
229
  }
@@ -151,3 +151,15 @@ export const dateFormatter = (
151
151
  )(date),
152
152
  };
153
153
  };
154
+
155
+ export const toTwoDigitLocaleTimeString = (date: Date) => (
156
+ options: DateTimeFormatOptions = {
157
+ hour: '2-digit', minute: '2-digit', second: '2-digit',
158
+ },
159
+ ) => collonSeparatedHour24MinuteSecond(date, options);
160
+
161
+ export const toNumericLocaleTimeString = (date: Date) => (
162
+ options: DateTimeFormatOptions = {
163
+ hour: 'numeric', minute: '2-digit', second: '2-digit',
164
+ },
165
+ ) => collonSeparatedHour24MinuteSecond(date, options);
@@ -1,4 +1,4 @@
1
- import { collonSeparatedHour24MinuteSecond, dateFormatter, processYear } from './common';
1
+ import { dateFormatter, processYear, toNumericLocaleTimeString } from './common';
2
2
  import type { DateTimeFormatOptions, Weekday, Day, Month, Year } from './types';
3
3
 
4
4
  const WEEKDAYS = {
@@ -86,10 +86,4 @@ const toLocaleDateString = (date: Date) => (
86
86
  return dateStringParts.join(' ');
87
87
  };
88
88
 
89
- const toLocaleTimeString = (date: Date) => (
90
- options: DateTimeFormatOptions = {
91
- hour: 'numeric', minute: '2-digit', second: '2-digit',
92
- },
93
- ) => collonSeparatedHour24MinuteSecond(date, options);
94
-
95
- export const csDateFormatter = dateFormatter(toLocaleTimeString, toLocaleDateString, ' ');
89
+ export const csDateFormatter = dateFormatter(toNumericLocaleTimeString, toLocaleDateString, ' ');
@@ -0,0 +1,97 @@
1
+ import { processYear, dateFormatter, toTwoDigitLocaleTimeString } from './common';
2
+ import { DateTimeFormatOptions, Day, Month, Weekday, Year } from './types';
3
+
4
+ //https://web.library.yale.edu/cataloging/months
5
+ const DE_MONTHS = {
6
+ narrow: [
7
+ 'J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D',
8
+ ],
9
+ short: [
10
+ 'Jan', 'Feb', 'März', 'Apr', 'Mai', 'Juni', 'Juli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dez',
11
+ ],
12
+ long: [
13
+ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September',
14
+ 'Oktober', 'November', 'Dezember',
15
+ ],
16
+ };
17
+
18
+ const DE_WEEKDAYS = {
19
+ narrow: [
20
+ 'S', 'M', 'D', 'M', 'D', 'F', 'S',
21
+ ],
22
+ short: [
23
+ 'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa',
24
+ ],
25
+ long: [
26
+ 'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag',
27
+ ],
28
+ };
29
+
30
+ const processDay = (dateParts: string[], day: Day | undefined, date: Date) => {
31
+ if (typeof day === 'undefined') return;
32
+ const strDate = date.getDate().toString();
33
+ dateParts.push(`${strDate}.`);
34
+ };
35
+
36
+ const processMonth = (
37
+ dateParts: string[],
38
+ month: Month | undefined,
39
+ date: Date,
40
+ ) => {
41
+ if (typeof month === 'undefined') return;
42
+ if (month === '2-digit' || month === 'numeric') {
43
+ const strMonth = (date.getMonth() + 1).toString() + '.';
44
+ dateParts.push(strMonth);
45
+ } else {
46
+ const finalMonth = DE_MONTHS[month][date.getMonth()];
47
+ if (month === 'short') dateParts.push(`${finalMonth}.`);
48
+ else dateParts.push(finalMonth);
49
+ }
50
+ };
51
+
52
+ const processWeekday = (
53
+ dateStringParts: string[],
54
+ year: Year | undefined,
55
+ month: Month | undefined,
56
+ day: Day | undefined,
57
+ weekday: Weekday | undefined,
58
+ date: Date,
59
+ ) => {
60
+ if (typeof weekday === 'undefined') return;
61
+ let weekdayString = DE_WEEKDAYS[weekday][date.getDay()];
62
+ if (weekday === 'short') weekdayString += '.';
63
+ if (
64
+ typeof year !== 'undefined'
65
+ || typeof month !== 'undefined'
66
+ || typeof day !== 'undefined'
67
+ ) {
68
+ weekdayString += ',';
69
+ }
70
+ dateStringParts.push(weekdayString);
71
+ };
72
+
73
+ const toLocaleDateString = (date: Date) => (
74
+ { weekday, year, month, day }: DateTimeFormatOptions = {
75
+ year: 'numeric', month: '2-digit', day: '2-digit',
76
+ },
77
+ ) => {
78
+ const dateStringParts: string[] = [];
79
+ processWeekday(dateStringParts, year, month, day, weekday, date);
80
+ const dateConnection = '';
81
+ const dateParts: string[] = [];
82
+ processDay(dateParts, day, date);
83
+ if ((month === 'narrow' ||
84
+ month === 'short' ||
85
+ month === 'long') &&
86
+ day != null
87
+ ) {
88
+ dateParts.push(' ');
89
+ }
90
+ processMonth(dateParts, month, date);
91
+ if (month === 'long') dateParts.push(' ');
92
+ processYear(dateParts, year, date);
93
+ dateStringParts.push(dateParts.join(dateConnection));
94
+ return dateStringParts.join(' ');
95
+ };
96
+
97
+ export const deDateFormatter = dateFormatter(toTwoDigitLocaleTimeString, toLocaleDateString);
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  collonSeparatedHour12MinuteSecond, dateFormatter, processYear, SECOND_FROM_END,
3
3
  } from './common';
4
- import { MONTHS, processWeekday, isDdMmYyyy } from './en-common';
4
+ import { EN_MONTHS, processWeekday, isDdMmYyyy } from './en-common';
5
5
  import type { DateTimeFormatOptions, Day, Month, Year } from './types';
6
6
 
7
7
  const processMonth = (
@@ -19,7 +19,7 @@ const processMonth = (
19
19
  : numericMonth
20
20
  }${typeof year !== 'undefined' ? ',' : ''}`);
21
21
  } else {
22
- dateStringParts.push(MONTHS[month][date.getMonth()]);
22
+ dateStringParts.push(EN_MONTHS[month][date.getMonth()]);
23
23
  }
24
24
  };
25
25
 
@@ -49,7 +49,7 @@ const getDdMmYyyy = (dateStringParts: string[], year: Year | undefined, date: Da
49
49
  dateStringParts.push(`${d}/${m}/${y}`);
50
50
  };
51
51
 
52
- export const toLocaleDateString = (date: Date) => (
52
+ const toLocaleDateString = (date: Date) => (
53
53
  { weekday, year, month, day }: DateTimeFormatOptions = {
54
54
  year: 'numeric', month: '2-digit', day: '2-digit',
55
55
  },
@@ -1,6 +1,6 @@
1
- import type { Day, Month, Weekday, Year } from './types';
1
+ import type { Day, Month, Weekday, LocaleData, Year } from './types';
2
2
 
3
- export const MONTHS = {
3
+ export const EN_MONTHS = {
4
4
  narrow: [
5
5
  'J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D',
6
6
  ],
@@ -13,7 +13,7 @@ export const MONTHS = {
13
13
  ],
14
14
  };
15
15
 
16
- export const WEEKDAYS = {
16
+ export const EN_WEEKDAYS = {
17
17
  narrow: [
18
18
  'S', 'M', 'T', 'W', 'T', 'F', 'S',
19
19
  ],
@@ -32,9 +32,10 @@ export const processWeekday = (
32
32
  day: Day | undefined,
33
33
  weekday: Weekday | undefined,
34
34
  date: Date,
35
+ weekdaysLocaleData: LocaleData = EN_WEEKDAYS
35
36
  ) => {
36
37
  if (typeof weekday === 'undefined') return;
37
- let weekdayString = WEEKDAYS[weekday][date.getDay()];
38
+ let weekdayString = weekdaysLocaleData[weekday][date.getDay()];
38
39
  if (
39
40
  typeof year !== 'undefined'
40
41
  || typeof month !== 'undefined'
@@ -4,7 +4,7 @@ import {
4
4
  processYear,
5
5
  SECOND_FROM_END,
6
6
  } from './common';
7
- import { MONTHS, processWeekday, isDdMmYyyy } from './en-common';
7
+ import { EN_MONTHS, processWeekday, isDdMmYyyy } from './en-common';
8
8
  import type { DateTimeFormatOptions, Day, Month, Year } from './types';
9
9
 
10
10
  const processMonth = (dateStringParts: string[], month: Month | undefined, date: Date) => {
@@ -16,7 +16,7 @@ const processMonth = (dateStringParts: string[], month: Month | undefined, date:
16
16
  ? `0${numericMonth}` : numericMonth,
17
17
  );
18
18
  } else {
19
- dateStringParts.push(MONTHS[month][date.getMonth()]);
19
+ dateStringParts.push(EN_MONTHS[month][date.getMonth()]);
20
20
  }
21
21
  };
22
22
 
@@ -56,7 +56,7 @@ const getDdMmYyyy = (
56
56
  dateStringParts.push(`${m}/${d}/${y}`);
57
57
  };
58
58
 
59
- export const toLocaleDateString = (date: Date) => (
59
+ const toLocaleDateString = (date: Date) => (
60
60
  { weekday, year, month, day }: DateTimeFormatOptions = {
61
61
  year: 'numeric', month: 'numeric', day: 'numeric',
62
62
  },
@@ -0,0 +1,71 @@
1
+ import { processYear, dateFormatter, toNumericLocaleTimeString } from './common';
2
+ import { processWeekday } from './en-common';
3
+ import { DateTimeFormatOptions, Day, Month } from './types';
4
+
5
+ const ES_MONTHS = {
6
+ narrow: [
7
+ 'E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D',
8
+ ],
9
+ // https://web.library.yale.edu/cataloging/months
10
+ short: [
11
+ 'ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', 'ago', 'set', 'oct', 'nov', 'dic',
12
+ ],
13
+ long: [
14
+ 'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre',
15
+ 'octubre', 'noviembre', 'diciembre',
16
+ ],
17
+ };
18
+
19
+ const ES_WEEKDAYS = {
20
+ // https://letsspeakspanish.com/blog/days-of-week-months-seasons-in-spanish/
21
+ narrow: [
22
+ 'D', 'L', 'M', 'X', 'J', 'V', 'S',
23
+ ],
24
+ short: [
25
+ 'dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb',
26
+ ],
27
+ long: [
28
+ 'domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado',
29
+ ],
30
+ };
31
+
32
+ const processDay = (dateParts: string[], day: Day | undefined, date: Date) => {
33
+ if (typeof day === 'undefined') return;
34
+ const strDate = date.getDate().toString();
35
+ dateParts.push(strDate);
36
+ };
37
+
38
+ const processMonth = (
39
+ dateParts: string[],
40
+ month: Month | undefined,
41
+ date: Date,
42
+ ) => {
43
+ if (typeof month === 'undefined') return;
44
+ if (month === '2-digit' || month === 'numeric') {
45
+ const strMonth = (date.getMonth() + 1).toString();
46
+ dateParts.push(strMonth);
47
+ } else {
48
+ const finalMonth = ES_MONTHS[month][date.getMonth()];
49
+ dateParts.push(finalMonth);
50
+ }
51
+ };
52
+
53
+ const toLocaleDateString = (date: Date) => (
54
+ { weekday, year, month, day }: DateTimeFormatOptions = {
55
+ year: 'numeric', month: '2-digit', day: '2-digit',
56
+ },
57
+ ) => {
58
+ const dateStringParts: string[] = [];
59
+ processWeekday(dateStringParts, year, month, day, weekday, date, ES_WEEKDAYS);
60
+ const dateConnection = month === '2-digit' || month === 'numeric' ? '/' : ' ';
61
+ const dateParts: string[] = [];
62
+ processDay(dateParts, day, date);
63
+ if (month === 'long' && day != null) dateParts.push('de');
64
+ processMonth(dateParts, month, date);
65
+ if (month === 'long') dateParts.push('de');
66
+ processYear(dateParts, year, date);
67
+ dateStringParts.push(dateParts.join(dateConnection));
68
+ return dateStringParts.join(' ');
69
+ };
70
+
71
+ export const esDateFormatter = dateFormatter(toNumericLocaleTimeString, toLocaleDateString);
@@ -0,0 +1,93 @@
1
+ import { dateFormatter, processYear, toTwoDigitLocaleTimeString } from './common';
2
+ import { DateTimeFormatOptions, Day, Month, Weekday, Year } from './types';
3
+
4
+ //https://web.library.yale.edu/cataloging/months
5
+ const FR_MONTHS = {
6
+ narrow: [
7
+ 'J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D',
8
+ ],
9
+ short: [
10
+ 'janv', 'févr', 'mars', 'avril', 'mai', 'juin', 'juil', 'août', 'sept', 'oct', 'nov', 'déc',
11
+ ],
12
+ long: [
13
+ 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre',
14
+ 'octobre', 'novembre', 'décembre',
15
+ ],
16
+ };
17
+
18
+ const FR_WEEKDAYS = {
19
+ narrow: [
20
+ 'D', 'L', 'M', 'M', 'J', 'V', 'S',
21
+ ],
22
+ short: [
23
+ 'dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam',
24
+ ],
25
+ long: [
26
+ 'dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi',
27
+ ],
28
+ };
29
+
30
+ const processWeekday = (
31
+ dateStringParts: string[],
32
+ year: Year | undefined,
33
+ month: Month | undefined,
34
+ day: Day | undefined,
35
+ weekday: Weekday | undefined,
36
+ date: Date,
37
+ ) => {
38
+ if (typeof weekday === 'undefined') return;
39
+ let weekdayString = FR_WEEKDAYS[weekday][date.getDay()];
40
+ if (
41
+ ( typeof year !== 'undefined'
42
+ || typeof month !== 'undefined'
43
+ || typeof day !== 'undefined') && weekday !== 'long'
44
+ ) {
45
+ weekdayString += '.';
46
+ }
47
+ dateStringParts.push(weekdayString);
48
+ };
49
+
50
+ const processDay = (
51
+ dateParts: string[], day: Day | undefined, month: Month | undefined, date: Date) => {
52
+ if (typeof day === 'undefined') return;
53
+ const strDate = date.getDate().toString();
54
+ dateParts.push(
55
+ strDate.length === 1 && month !== 'short' && month !== 'long' ? `0${strDate}` : strDate
56
+ );
57
+ };
58
+
59
+ const processMonth = (
60
+ dateParts: string[],
61
+ month: Month | undefined,
62
+ date: Date,
63
+ ) => {
64
+ if (typeof month === 'undefined') return;
65
+ if (month === '2-digit' || month === 'numeric') {
66
+ const strMonth = (date.getMonth() + 1).toString();
67
+ dateParts.push(
68
+ strMonth.length === 1 ? `0${strMonth}` : strMonth,
69
+ );
70
+ } else {
71
+ const finalMonth = FR_MONTHS[month][date.getMonth()];
72
+ if (month === 'short') dateParts.push(`${finalMonth}.`);
73
+ else dateParts.push(finalMonth);
74
+ }
75
+ };
76
+
77
+ const toLocaleDateString = (date: Date) => (
78
+ { weekday, year, month, day }: DateTimeFormatOptions = {
79
+ year: 'numeric', month: '2-digit', day: '2-digit',
80
+ },
81
+ ) => {
82
+ const dateStringParts: string[] = [];
83
+ processWeekday(dateStringParts, year, month, day, weekday, date);
84
+ const dateConnection = month === '2-digit' || month === 'numeric' ? '/' : ' ';
85
+ const dateParts: string[] = [];
86
+ processDay(dateParts, day, month, date);
87
+ processMonth(dateParts, month, date);
88
+ processYear(dateParts, year, date);
89
+ dateStringParts.push(dateParts.join(dateConnection));
90
+ return dateStringParts.join(' ');
91
+ };
92
+
93
+ export const frDateFormatter = dateFormatter(toTwoDigitLocaleTimeString, toLocaleDateString, ' ');
@@ -1,8 +1,13 @@
1
- import { collonSeparatedHour24MinuteSecond, dateFormatter, processYear } from './common';
2
- import { MONTHS, WEEKDAYS } from './en-common';
1
+ import { dateFormatter, processYear, toTwoDigitLocaleTimeString } from './common';
2
+ import { EN_MONTHS, EN_WEEKDAYS } from './en-common';
3
3
  import type { DateTimeFormatOptions, Day, Month, Weekday, Year } from './types';
4
4
 
5
- const processMonth = (dateParts: string[], month: Month | undefined, date: Date) => {
5
+ const processMonth = (
6
+ dateParts: string[],
7
+ month: Month | undefined,
8
+ date: Date,
9
+
10
+ ) => {
6
11
  if (typeof month === 'undefined') return;
7
12
  if (month === '2-digit' || month === 'numeric') {
8
13
  const strMonth = (date.getMonth() + 1).toString();
@@ -11,7 +16,7 @@ const processMonth = (dateParts: string[], month: Month | undefined, date: Date)
11
16
  strMonth.length === 1 ? `0${strMonth}` : strMonth,
12
17
  );
13
18
  } else {
14
- dateParts.push(MONTHS[month][date.getMonth()]);
19
+ dateParts.push(EN_MONTHS[month][date.getMonth()]);
15
20
  }
16
21
  };
17
22
 
@@ -29,7 +34,7 @@ const processWeekday = (
29
34
  && typeof month === 'undefined'
30
35
  && typeof day === 'undefined'
31
36
  );
32
- dateStringParts.push(`${WEEKDAYS[weekday][date.getDay()]}${isOnlyWeekday ? '' : ','}`);
37
+ dateStringParts.push(`${EN_WEEKDAYS[weekday][date.getDay()]}${isOnlyWeekday ? '' : ','}`);
33
38
  };
34
39
 
35
40
  const processDay = (dateParts: string[], day: Day | undefined, date: Date) => {
@@ -39,7 +44,7 @@ const processDay = (dateParts: string[], day: Day | undefined, date: Date) => {
39
44
  dateParts.push(strDate.length === 1 ? `0${strDate}` : strDate);
40
45
  };
41
46
 
42
- export const toLocaleDateString = (date: Date) => (
47
+ const toLocaleDateString = (date: Date) => (
43
48
  { weekday, year, month, day }: DateTimeFormatOptions = {
44
49
  year: 'numeric', month: '2-digit', day: '2-digit',
45
50
  },
@@ -55,10 +60,4 @@ export const toLocaleDateString = (date: Date) => (
55
60
  return dateStringParts.join(' ');
56
61
  };
57
62
 
58
- const toLocaleTimeString = (date: Date) => (
59
- options: DateTimeFormatOptions = {
60
- hour: '2-digit', minute: '2-digit', second: '2-digit',
61
- },
62
- ) => collonSeparatedHour24MinuteSecond(date, options);
63
-
64
- export const isoDateFormatter = dateFormatter(toLocaleTimeString, toLocaleDateString);
63
+ export const isoDateFormatter = dateFormatter(toTwoDigitLocaleTimeString, toLocaleDateString);
@@ -45,3 +45,9 @@ export type Props = {
45
45
  locale?: string,
46
46
  options?: DateTimeFormatOptions,
47
47
  };
48
+
49
+ export type LocaleData = {
50
+ narrow: string[];
51
+ short: string[];
52
+ long: string[];
53
+ };
@@ -1,4 +1,8 @@
1
1
  import { EventsManager, IEvents } from '@24i/bigscreen-sdk/events-manager';
2
+ import { csDateFormatter } from './date/cs';
3
+ import { deDateFormatter } from './date/de';
4
+ import { esDateFormatter } from './date/es';
5
+ import { frDateFormatter } from './date/fr';
2
6
  import { isoDateFormatter } from './date/iso';
3
7
  import { Formatters } from './types';
4
8
 
@@ -19,6 +23,10 @@ class L10n implements IEvents<Events> {
19
23
  private readonly formatters: Formatters = {
20
24
  date: {
21
25
  iso: isoDateFormatter,
26
+ cs: csDateFormatter,
27
+ fr: frDateFormatter,
28
+ es: esDateFormatter,
29
+ de: deDateFormatter,
22
30
  },
23
31
  };
24
32
 
@@ -1,66 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.main = void 0;
5
- const path = require("path");
6
- const fs = require("fs");
7
- const fse = require("fs-extra");
8
- const chalk = require("chalk");
9
- const minimist = require("minimist");
10
- const questions_1 = require("./questionnaire/questions");
11
- const Settings_1 = require("./settings/Settings");
12
- async function isDirectoryEmpty(dirPath) {
13
- const files = await fs.promises.readdir(dirPath);
14
- return !files.length;
15
- }
16
- async function copyTemplateFiles(templateDir, targetDir) {
17
- return fse.copy(templateDir, targetDir);
18
- }
19
- function updatePackageJsonFile(filePath, options) {
20
- let data = fs.readFileSync(filePath, 'utf8');
21
- const keywords = options.keywords.map((word) => `"${word}"`).join(', ');
22
- data = data.replace(/("name": ")(.*)(")/, `$1${options.name}$3`);
23
- data = data.replace(/("version": ")(.*)(")/, `$1${options.version}$3`);
24
- data = data.replace(/("description": ")(.*)(")/, `$1${options.description}$3`);
25
- data = data.replace(/("keywords": \[)(.*)(\])/, `$1${keywords}$3`);
26
- data = data.replace(/("author": ")(.*)(")/, `$1${options.author}$3`);
27
- fs.writeFileSync(filePath, data);
28
- }
29
- function parseArguments(rawArgv) {
30
- const argv = minimist(rawArgv.slice(2));
31
- const dirName = argv._[0];
32
- if (!dirName) {
33
- console.error('Error: Missing package name');
34
- process.exit(1);
35
- }
36
- return {
37
- dirName,
38
- };
39
- }
40
- async function main() {
41
- const { dirName: destDirName } = parseArguments(process.argv);
42
- const destDir = path.join(process.cwd(), 'packages/', destDirName);
43
- if (fs.existsSync(destDir)) {
44
- console.error(`Error: Target directory "${destDir}" already exists`);
45
- process.exit(1);
46
- }
47
- fs.mkdirSync(destDir, { recursive: true });
48
- const isDirEmpty = await isDirectoryEmpty(destDir);
49
- if (!isDirEmpty) {
50
- console.error(`Error: Target directory "${destDir}" is not empty.`);
51
- process.exit(1);
52
- }
53
- const settings = Object.assign({}, Settings_1.Settings);
54
- settings.name = `${Settings_1.Settings.name}${destDirName}`.toLowerCase();
55
- const details = await (0, questions_1.promptPackageDetails)(settings);
56
- const templateDir = path.join(__dirname, '..', 'templates/typescript');
57
- await copyTemplateFiles(templateDir, destDir);
58
- const packageJsonFile = path.join(destDir, 'package.json');
59
- updatePackageJsonFile(packageJsonFile, details);
60
- const docsSymlinkTarget = path.join('../../../packages/', destDirName, '/README.md');
61
- const docsSymlinkPath = path.join(process.cwd(), 'docs/packages/', destDirName, '/README.md');
62
- await fse.ensureSymlink(docsSymlinkTarget, docsSymlinkPath);
63
- console.log(`${chalk.green('Success')}, package has been initialized!`);
64
- }
65
- exports.main = main;
66
- //# sourceMappingURL=createPackage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createPackage.js","sourceRoot":"","sources":["../src/createPackage.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const createPackage_1 = require("./createPackage");
4
- (0, createPackage_1.main)();
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mDAAuC;AAEvC,IAAA,oBAAI,GAAE,CAAC"}