@opengis/fastify-table 1.3.71 → 1.3.73

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 (93) hide show
  1. package/README.md +86 -86
  2. package/index.js +9 -0
  3. package/package.json +1 -1
  4. package/server/helpers/format/formatAuto.js +13 -13
  5. package/server/helpers/format/formatDate.js +258 -258
  6. package/server/helpers/format/formatDigit.js +20 -20
  7. package/server/helpers/format/formatNum.js +361 -361
  8. package/server/helpers/format/formatNumber.js +54 -54
  9. package/server/helpers/format/formatRelative.js +106 -106
  10. package/server/helpers/format/formatUnit.js +38 -38
  11. package/server/helpers/format/num_format.js +41 -41
  12. package/server/helpers/funcs/_math.js +49 -49
  13. package/server/helpers/funcs/empty.js +21 -21
  14. package/server/helpers/funcs/ifCond.js +106 -106
  15. package/server/helpers/funcs/ifCondAnd.js +96 -96
  16. package/server/helpers/funcs/ifCondOr.js +98 -98
  17. package/server/helpers/funcs/inc.js +20 -20
  18. package/server/helpers/funcs/json.js +2 -2
  19. package/server/helpers/funcs/round.js +27 -27
  20. package/server/helpers/string/coalesce.js +31 -31
  21. package/server/helpers/string/concat.js +28 -28
  22. package/server/helpers/string/split.js +19 -19
  23. package/server/helpers/string/str_replace.js +60 -60
  24. package/server/helpers/string/substr.js +31 -31
  25. package/server/helpers/string/translit.js +23 -23
  26. package/server/helpers/string/utils/alphabet.js +75 -75
  27. package/server/plugins/cron/funcs/addCron.js +52 -52
  28. package/server/plugins/cron/index.js +76 -76
  29. package/server/plugins/crud/funcs/getOpt.js +14 -14
  30. package/server/plugins/crud/funcs/setOpt.js +21 -21
  31. package/server/plugins/crud/funcs/setToken.js +43 -43
  32. package/server/plugins/crud/funcs/utils/getFolder.js +11 -11
  33. package/server/plugins/crud/index.js +23 -23
  34. package/server/plugins/hook/index.js +8 -8
  35. package/server/plugins/logger/errorStatus.js +19 -19
  36. package/server/plugins/logger/index.js +26 -26
  37. package/server/plugins/migration/index.js +7 -7
  38. package/server/plugins/pg/index.js +11 -2
  39. package/server/plugins/policy/sqlInjection.js +33 -33
  40. package/server/plugins/redis/client.js +8 -8
  41. package/server/plugins/redis/funcs/redisClients.js +3 -3
  42. package/server/plugins/redis/index.js +17 -17
  43. package/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  44. package/server/plugins/table/funcs/getFilterSQL/util/getTableSql.js +34 -34
  45. package/server/plugins/table/funcs/getTemplates.js +19 -19
  46. package/server/plugins/table/funcs/gisIRColumn.js +82 -82
  47. package/server/plugins/table/funcs/loadTemplate.js +1 -1
  48. package/server/plugins/table/funcs/loadTemplatePath.js +1 -1
  49. package/server/plugins/table/funcs/userTemplateDir.js +1 -1
  50. package/server/plugins/table/index.js +13 -13
  51. package/server/plugins/util/index.js +7 -7
  52. package/server/routes/cron/index.js +16 -14
  53. package/server/routes/crud/index.js +8 -7
  54. package/server/routes/data/controllers/cardData.js +144 -0
  55. package/server/routes/data/controllers/cardTabData.js +58 -0
  56. package/server/routes/data/controllers/funcs/getFilterSQL/index.js +92 -0
  57. package/server/routes/data/controllers/funcs/getFilterSQL/util/formatValue.js +170 -0
  58. package/server/routes/data/controllers/funcs/getFilterSQL/util/getCustomQuery.js +13 -0
  59. package/server/routes/data/controllers/funcs/getFilterSQL/util/getFilterQuery.js +64 -0
  60. package/server/routes/data/controllers/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -0
  61. package/server/routes/data/controllers/funcs/getFilterSQL/util/getTableSql.js +34 -0
  62. package/server/routes/data/controllers/tableData.js +55 -0
  63. package/server/routes/data/controllers/tableFilter.js +16 -0
  64. package/server/routes/data/controllers/tableInfo.js +110 -0
  65. package/server/routes/data/controllers/tokenInfo.js +12 -0
  66. package/server/routes/data/controllers/utils/assignTokens.js +31 -0
  67. package/server/routes/data/controllers/utils/conditions.js +19 -0
  68. package/server/routes/data/controllers/utils/getColumns.js +9 -0
  69. package/server/routes/data/index.mjs +22 -0
  70. package/server/routes/data/schema.js +54 -0
  71. package/server/routes/dblist/index.mjs +9 -7
  72. package/server/routes/logger/controllers/logger.file.js +93 -93
  73. package/server/routes/logger/controllers/utils/checkUserAccess.js +19 -19
  74. package/server/routes/logger/controllers/utils/getRootDir.js +26 -26
  75. package/server/routes/logger/index.js +17 -17
  76. package/server/routes/menu/controllers/getMenu.js +97 -0
  77. package/server/routes/menu/controllers/interfaces.js +21 -0
  78. package/server/routes/menu/index.mjs +8 -0
  79. package/server/routes/menu/schema.js +0 -0
  80. package/server/routes/properties/controllers/properties.add.js +55 -55
  81. package/server/routes/properties/controllers/properties.get.js +17 -17
  82. package/server/routes/properties/index.js +16 -16
  83. package/server/routes/table/controllers/form.js +42 -42
  84. package/server/routes/table/controllers/search.js +74 -74
  85. package/server/routes/table/controllers/suggest.js +28 -14
  86. package/server/routes/table/index.js +10 -10
  87. package/server/routes/table/schema.js +65 -64
  88. package/server/routes/templates/controllers/getTemplate.js +51 -0
  89. package/server/routes/templates/index.mjs +10 -0
  90. package/server/routes/templates/schema.js +9 -0
  91. package/server/routes/util/controllers/status.monitor.js +8 -8
  92. package/server/routes/util/index.js +2 -2
  93. package/utils.js +2 -0
@@ -1,258 +1,258 @@
1
- /* eslint-disable no-param-reassign */
2
- const monthUa = {
3
- 0: 'січня',
4
- 1: 'лютого',
5
- 2: 'березня',
6
- 3: 'квітня',
7
- 4: 'травня',
8
- 5: 'червня',
9
- 6: 'липня',
10
- 7: 'серпня',
11
- 8: 'вересня',
12
- 9: 'жовтня',
13
- 10: 'листопада',
14
- 11: 'грудня',
15
- };
16
- const monthRu = {
17
- 0: 'января',
18
- 1: 'февраля',
19
- 2: 'марта',
20
- 3: 'апреля',
21
- 4: 'мая',
22
- 5: 'июня',
23
- 6: 'июля',
24
- 7: 'авгувта',
25
- 8: 'сентября',
26
- 9: 'октября',
27
- 10: 'ноября',
28
- 11: 'декабря',
29
- };
30
- const monthEn = {
31
- 0: 'january',
32
- 1: 'february',
33
- 2: 'march',
34
- 3: 'april',
35
- 4: 'may',
36
- 5: 'june',
37
- 6: 'july',
38
- 7: 'august',
39
- 8: 'september',
40
- 9: 'october',
41
- 10: 'november',
42
- 11: 'december',
43
- };
44
- const weekDayUa = {
45
- 1: 'Понеділок',
46
- 2: 'Вівторок',
47
- 3: 'Середа',
48
- 4: 'Четвер',
49
- 5: 'Пёятниця',
50
- 6: 'Субота',
51
- 0: 'Неділя',
52
- };
53
- const mthShort = {
54
- ua: {
55
- 0: 'Січ',
56
- 1: 'Лют',
57
- 2: 'Бер',
58
- 3: 'Кві',
59
- 4: 'Тра',
60
- 5: 'Чер',
61
- 6: 'Лип',
62
- 7: 'Сер',
63
- 8: 'Вер',
64
- 9: 'Жов',
65
- 10: 'Лис',
66
- 11: 'Гру',
67
- },
68
- ru: {
69
- 0: 'Янв',
70
- 1: 'Фев',
71
- 2: 'Мар',
72
- 3: 'Апр',
73
- 4: 'Май',
74
- 5: 'Июн',
75
- 6: 'Июл',
76
- 7: 'Авг',
77
- 8: 'Сен',
78
- 9: 'Окт',
79
- 10: 'Ноя',
80
- 11: 'Дек',
81
- },
82
- };
83
- const mth = {
84
- ua: {
85
- 0: 'Січень',
86
- 1: 'Лютий',
87
- 2: 'Березень',
88
- 3: 'Квітень',
89
- 4: 'Травень',
90
- 5: 'Червень',
91
- 6: 'Липень',
92
- 7: 'Серпень',
93
- 8: 'Вересень',
94
- 9: 'Жовтень',
95
- 10: 'Листопад',
96
- 11: 'Грудень',
97
- },
98
- ru: {
99
- 0: 'Январь',
100
- 1: 'Февраль',
101
- 2: 'Март',
102
- 3: 'Апрель',
103
- 4: 'Май',
104
- 5: 'Июнь',
105
- 6: 'Июль',
106
- 7: 'Август',
107
- 8: 'Сентябрь',
108
- 9: 'Октябрь',
109
- 10: 'Ноябрь',
110
- 11: 'Декабрь',
111
- },
112
- };
113
-
114
- /**
115
- * Форматування дати. Є можливість обмеження точності. Є можливість зміщення дат і часу. Є можливість виведення дати на момент запиту.
116
- *
117
- * @summary Форматування дати за умовою і можливе зміщення дат і часу. Є можливість виведенння поточної дати через значення аргументу "0"
118
- * @priority 3
119
- * @type helper
120
- * @tag format
121
- * @alias formatDate
122
- * @example
123
- * {{formatDate "2021-09-08T12:22:27.983" shift_year=1 format='mm - yy mw_ru'}}
124
- * @descr Виведення дати формату 09 - 2021 з назвою місяця російською мовою
125
- * @example
126
- * {{formatDate "2021-09-08T12:22:27.983" shift=1478 format='dd.MM.YY hh:mi:sec'}}
127
- * @descr Виведення дати із зсувом відносно "2021-09-08T12:22:27.983" на 5 діб (13.09.21 12:22:27)
128
- * @example
129
- * {{formatDate "2021-09-08T12:22:27.983" trunc='year' format='dd month yy hh:mi:sec'}}
130
- * @example
131
- * {{formatDate "2021-09-08T12:22:27.983" trunc='quarter' format='dd.MM.yy hh:mi:sec'}}
132
- * @example
133
- * {{formatDate "2021-09-08T12:22:27.983" format='dd.mm.yy hh:mi'}}
134
- * @descr Виведення дати формату 08.09.2021 12:22
135
- * @example
136
- * {{formatDate 0}}
137
- * @descr Виведення поточної дати
138
- * @param {String} format Формат для вигляду при поверненні.Можливі значення: dd, mm, MM, month, mon, yy, YY, hh, mi, sec, mw_ua, mw_en, mw_ru, wd_ua
139
- * @param {Any} time Для вибору чи робити формат виводу години і хвилини, чи ні
140
- * @param {String} trunc Для вибору чи онуляти рік або квартал
141
- * @param {Number} shift_year Здвинути рік
142
- * @param {Number} shift_quarter Здвинути квартал
143
- * @param {Number} shift_month Здвинути місяць
144
- * @param {Number} shift_week Здвинути тиждень
145
- * @param {Number} shift Здвинути час
146
- * @param {Date|String} data Набір вхідних даних
147
- * @returns {String} Returns HTML
148
- */
149
- export default function formatDate(data, options = {}) {
150
-
151
- if (typeof data === 'object' && data === null) return '';
152
- if (typeof data === 'undefined') return '';
153
-
154
- if (!data.toLocaleDateString && data && data.includes('T')) {
155
- data = new Date(data);
156
- }
157
-
158
- if (
159
- (!options.hash.format || options.hash.format === 'dd.mm')
160
- && data
161
- && data.toLocaleDateString
162
- ) {
163
- const time = options.hash.time
164
- ? `${data.getHours()}:${data.getMinutes()}`
165
- : '';
166
- let m = data.getMonth() + 1;
167
- m = m < 10 ? `0${m}` : m;
168
- const dt = options.hash.format === 'dd.mm'
169
- ? `${data.getDate()}.${m}`
170
- : `${data.getDate()}.${m}.${data.getFullYear()}`;
171
- return dt + (options.hash.time && time !== '00:00' ? ` ${time}` : '');
172
- }
173
-
174
- let val = data;
175
-
176
- options.hash = options.hash || {};
177
-
178
- if (
179
- typeof val === 'string'
180
- && (val.match(/\./g) || []).length === 2
181
- && val.length < 11
182
- ) {
183
- val = val.replace(/(\d{2}).(\d{2}).(\d{4})/, '$2/$1/$3');
184
- }
185
-
186
- try {
187
- val = val === 0 || val === '0' ? new Date() : new Date(val);
188
- } catch (e) {
189
- return val;
190
- }
191
- if (options.hash.trunc) {
192
- val = options.hash.trunc === 'year'
193
- ? new Date(new Date(val.setMonth(0)).setDate(1))
194
- : val;
195
- val = options.hash.trunc === 'quarter'
196
- ? new Date(
197
- new Date(
198
- val.setMonth(val.getMonth() - (val.getMonth() % 3)),
199
- ).setDate(1),
200
- )
201
- : val;
202
- }
203
- if (options.hash.shift_year) {
204
- val = new Date(
205
- val.setYear(val.getFullYear() + (options.hash.shift_year - 0)),
206
- );
207
- }
208
- if (options.hash.shift_quarter) {
209
- val = new Date(
210
- val.setMonth(val.getMonth() + (options.hash.shift_quarter - 0) * 3),
211
- );
212
- }
213
-
214
- if (options.hash.shift_month) {
215
- val = new Date(
216
- val.setMonth(val.getMonth() + (options.hash.shift_month - 0)),
217
- );
218
- }
219
- if (options.hash.shift_week) {
220
- val = new Date(
221
- val.getTime() + (options.hash.shift_week - 0) * 86400 * 7 * 1000,
222
- );
223
- }
224
- if (options.hash.shift) {
225
- val = new Date(val.getTime() + 86400000 * (options.hash.shift - 0));
226
- }
227
- if (options.hash.shift_time) {
228
- val = new Date(val.getTime() + (options.hash.shift_time - 0));
229
- }
230
-
231
- if (options.hash.format === 'iso') return val.toISOString();
232
-
233
- const opt1 = {
234
- dd: (val.getDate() < 10 ? '0' : '') + val.getDate(),
235
- mm: (val.getMonth() < 9 ? '0' : '') + (val.getMonth() + 1),
236
- MM: (val.getMonth() < 9 ? '0' : '') + (val.getMonth() + 1),
237
- month: (mth[
238
- options.data && options.data.root && options.data.root.lang
239
- ? options.data.root.lang
240
- : 'ua'
241
- ] || {})[val.getMonth()],
242
- mon: (mthShort[
243
- options.data && options.data.root && options.data.root.lang
244
- ? options.data.root.lang
245
- : 'ua'
246
- ] || {})[val.getMonth()],
247
- yy: val.getFullYear(),
248
- YY: (`${val.getFullYear()}`).substr(-2),
249
- hh: (val.getHours() < 10 ? '0' : '') + val.getHours(),
250
- mi: (val.getMinutes() < 10 ? '0' : '') + val.getMinutes(),
251
- sec: (val.getSeconds() < 10 ? '0' : '') + val.getSeconds(),
252
- mw_ua: monthUa[val.getMonth()],
253
- mw_en: monthEn[val.getMonth()],
254
- mw_ru: monthRu[val.getMonth()],
255
- wd_ua: weekDayUa[val.getDay()],
256
- };
257
- return Object.keys(opt1).reduce((prev, el) => prev.replace(el, opt1[el]), options.hash.format || 'dd.mm.yy');
258
- };
1
+ /* eslint-disable no-param-reassign */
2
+ const monthUa = {
3
+ 0: 'січня',
4
+ 1: 'лютого',
5
+ 2: 'березня',
6
+ 3: 'квітня',
7
+ 4: 'травня',
8
+ 5: 'червня',
9
+ 6: 'липня',
10
+ 7: 'серпня',
11
+ 8: 'вересня',
12
+ 9: 'жовтня',
13
+ 10: 'листопада',
14
+ 11: 'грудня',
15
+ };
16
+ const monthRu = {
17
+ 0: 'января',
18
+ 1: 'февраля',
19
+ 2: 'марта',
20
+ 3: 'апреля',
21
+ 4: 'мая',
22
+ 5: 'июня',
23
+ 6: 'июля',
24
+ 7: 'авгувта',
25
+ 8: 'сентября',
26
+ 9: 'октября',
27
+ 10: 'ноября',
28
+ 11: 'декабря',
29
+ };
30
+ const monthEn = {
31
+ 0: 'january',
32
+ 1: 'february',
33
+ 2: 'march',
34
+ 3: 'april',
35
+ 4: 'may',
36
+ 5: 'june',
37
+ 6: 'july',
38
+ 7: 'august',
39
+ 8: 'september',
40
+ 9: 'october',
41
+ 10: 'november',
42
+ 11: 'december',
43
+ };
44
+ const weekDayUa = {
45
+ 1: 'Понеділок',
46
+ 2: 'Вівторок',
47
+ 3: 'Середа',
48
+ 4: 'Четвер',
49
+ 5: 'Пёятниця',
50
+ 6: 'Субота',
51
+ 0: 'Неділя',
52
+ };
53
+ const mthShort = {
54
+ ua: {
55
+ 0: 'Січ',
56
+ 1: 'Лют',
57
+ 2: 'Бер',
58
+ 3: 'Кві',
59
+ 4: 'Тра',
60
+ 5: 'Чер',
61
+ 6: 'Лип',
62
+ 7: 'Сер',
63
+ 8: 'Вер',
64
+ 9: 'Жов',
65
+ 10: 'Лис',
66
+ 11: 'Гру',
67
+ },
68
+ ru: {
69
+ 0: 'Янв',
70
+ 1: 'Фев',
71
+ 2: 'Мар',
72
+ 3: 'Апр',
73
+ 4: 'Май',
74
+ 5: 'Июн',
75
+ 6: 'Июл',
76
+ 7: 'Авг',
77
+ 8: 'Сен',
78
+ 9: 'Окт',
79
+ 10: 'Ноя',
80
+ 11: 'Дек',
81
+ },
82
+ };
83
+ const mth = {
84
+ ua: {
85
+ 0: 'Січень',
86
+ 1: 'Лютий',
87
+ 2: 'Березень',
88
+ 3: 'Квітень',
89
+ 4: 'Травень',
90
+ 5: 'Червень',
91
+ 6: 'Липень',
92
+ 7: 'Серпень',
93
+ 8: 'Вересень',
94
+ 9: 'Жовтень',
95
+ 10: 'Листопад',
96
+ 11: 'Грудень',
97
+ },
98
+ ru: {
99
+ 0: 'Январь',
100
+ 1: 'Февраль',
101
+ 2: 'Март',
102
+ 3: 'Апрель',
103
+ 4: 'Май',
104
+ 5: 'Июнь',
105
+ 6: 'Июль',
106
+ 7: 'Август',
107
+ 8: 'Сентябрь',
108
+ 9: 'Октябрь',
109
+ 10: 'Ноябрь',
110
+ 11: 'Декабрь',
111
+ },
112
+ };
113
+
114
+ /**
115
+ * Форматування дати. Є можливість обмеження точності. Є можливість зміщення дат і часу. Є можливість виведення дати на момент запиту.
116
+ *
117
+ * @summary Форматування дати за умовою і можливе зміщення дат і часу. Є можливість виведенння поточної дати через значення аргументу "0"
118
+ * @priority 3
119
+ * @type helper
120
+ * @tag format
121
+ * @alias formatDate
122
+ * @example
123
+ * {{formatDate "2021-09-08T12:22:27.983" shift_year=1 format='mm - yy mw_ru'}}
124
+ * @descr Виведення дати формату 09 - 2021 з назвою місяця російською мовою
125
+ * @example
126
+ * {{formatDate "2021-09-08T12:22:27.983" shift=1478 format='dd.MM.YY hh:mi:sec'}}
127
+ * @descr Виведення дати із зсувом відносно "2021-09-08T12:22:27.983" на 5 діб (13.09.21 12:22:27)
128
+ * @example
129
+ * {{formatDate "2021-09-08T12:22:27.983" trunc='year' format='dd month yy hh:mi:sec'}}
130
+ * @example
131
+ * {{formatDate "2021-09-08T12:22:27.983" trunc='quarter' format='dd.MM.yy hh:mi:sec'}}
132
+ * @example
133
+ * {{formatDate "2021-09-08T12:22:27.983" format='dd.mm.yy hh:mi'}}
134
+ * @descr Виведення дати формату 08.09.2021 12:22
135
+ * @example
136
+ * {{formatDate 0}}
137
+ * @descr Виведення поточної дати
138
+ * @param {String} format Формат для вигляду при поверненні.Можливі значення: dd, mm, MM, month, mon, yy, YY, hh, mi, sec, mw_ua, mw_en, mw_ru, wd_ua
139
+ * @param {Any} time Для вибору чи робити формат виводу години і хвилини, чи ні
140
+ * @param {String} trunc Для вибору чи онуляти рік або квартал
141
+ * @param {Number} shift_year Здвинути рік
142
+ * @param {Number} shift_quarter Здвинути квартал
143
+ * @param {Number} shift_month Здвинути місяць
144
+ * @param {Number} shift_week Здвинути тиждень
145
+ * @param {Number} shift Здвинути час
146
+ * @param {Date|String} data Набір вхідних даних
147
+ * @returns {String} Returns HTML
148
+ */
149
+ export default function formatDate(data, options = {}) {
150
+
151
+ if (typeof data === 'object' && data === null) return '';
152
+ if (typeof data === 'undefined') return '';
153
+
154
+ if (!data.toLocaleDateString && data && data.includes('T')) {
155
+ data = new Date(data);
156
+ }
157
+
158
+ if (
159
+ (!options.hash.format || options.hash.format === 'dd.mm')
160
+ && data
161
+ && data.toLocaleDateString
162
+ ) {
163
+ const time = options.hash.time
164
+ ? `${data.getHours()}:${data.getMinutes()}`
165
+ : '';
166
+ let m = data.getMonth() + 1;
167
+ m = m < 10 ? `0${m}` : m;
168
+ const dt = options.hash.format === 'dd.mm'
169
+ ? `${data.getDate()}.${m}`
170
+ : `${data.getDate()}.${m}.${data.getFullYear()}`;
171
+ return dt + (options.hash.time && time !== '00:00' ? ` ${time}` : '');
172
+ }
173
+
174
+ let val = data;
175
+
176
+ options.hash = options.hash || {};
177
+
178
+ if (
179
+ typeof val === 'string'
180
+ && (val.match(/\./g) || []).length === 2
181
+ && val.length < 11
182
+ ) {
183
+ val = val.replace(/(\d{2}).(\d{2}).(\d{4})/, '$2/$1/$3');
184
+ }
185
+
186
+ try {
187
+ val = val === 0 || val === '0' ? new Date() : new Date(val);
188
+ } catch (e) {
189
+ return val;
190
+ }
191
+ if (options.hash.trunc) {
192
+ val = options.hash.trunc === 'year'
193
+ ? new Date(new Date(val.setMonth(0)).setDate(1))
194
+ : val;
195
+ val = options.hash.trunc === 'quarter'
196
+ ? new Date(
197
+ new Date(
198
+ val.setMonth(val.getMonth() - (val.getMonth() % 3)),
199
+ ).setDate(1),
200
+ )
201
+ : val;
202
+ }
203
+ if (options.hash.shift_year) {
204
+ val = new Date(
205
+ val.setYear(val.getFullYear() + (options.hash.shift_year - 0)),
206
+ );
207
+ }
208
+ if (options.hash.shift_quarter) {
209
+ val = new Date(
210
+ val.setMonth(val.getMonth() + (options.hash.shift_quarter - 0) * 3),
211
+ );
212
+ }
213
+
214
+ if (options.hash.shift_month) {
215
+ val = new Date(
216
+ val.setMonth(val.getMonth() + (options.hash.shift_month - 0)),
217
+ );
218
+ }
219
+ if (options.hash.shift_week) {
220
+ val = new Date(
221
+ val.getTime() + (options.hash.shift_week - 0) * 86400 * 7 * 1000,
222
+ );
223
+ }
224
+ if (options.hash.shift) {
225
+ val = new Date(val.getTime() + 86400000 * (options.hash.shift - 0));
226
+ }
227
+ if (options.hash.shift_time) {
228
+ val = new Date(val.getTime() + (options.hash.shift_time - 0));
229
+ }
230
+
231
+ if (options.hash.format === 'iso') return val.toISOString();
232
+
233
+ const opt1 = {
234
+ dd: (val.getDate() < 10 ? '0' : '') + val.getDate(),
235
+ mm: (val.getMonth() < 9 ? '0' : '') + (val.getMonth() + 1),
236
+ MM: (val.getMonth() < 9 ? '0' : '') + (val.getMonth() + 1),
237
+ month: (mth[
238
+ options.data && options.data.root && options.data.root.lang
239
+ ? options.data.root.lang
240
+ : 'ua'
241
+ ] || {})[val.getMonth()],
242
+ mon: (mthShort[
243
+ options.data && options.data.root && options.data.root.lang
244
+ ? options.data.root.lang
245
+ : 'ua'
246
+ ] || {})[val.getMonth()],
247
+ yy: val.getFullYear(),
248
+ YY: (`${val.getFullYear()}`).substr(-2),
249
+ hh: (val.getHours() < 10 ? '0' : '') + val.getHours(),
250
+ mi: (val.getMinutes() < 10 ? '0' : '') + val.getMinutes(),
251
+ sec: (val.getSeconds() < 10 ? '0' : '') + val.getSeconds(),
252
+ mw_ua: monthUa[val.getMonth()],
253
+ mw_en: monthEn[val.getMonth()],
254
+ mw_ru: monthRu[val.getMonth()],
255
+ wd_ua: weekDayUa[val.getDay()],
256
+ };
257
+ return Object.keys(opt1).reduce((prev, el) => prev.replace(el, opt1[el]), options.hash.format || 'dd.mm.yy');
258
+ };
@@ -1,21 +1,21 @@
1
- /**
2
- * Приведення чисел до стандартизованого виду
3
- *
4
- * @summary Форматування чисел. Приводить до встановленої довжини шляхом доповнення нулями на початку
5
- * @priority 4
6
- * @type helper
7
- * @tag format
8
- * @alias formatDigit
9
- * @example
10
- * {{{formatDigit '11' rank=4}}}
11
- * @param {String|Number} data Число для форматування
12
- * @param {String|Number} opt.rank Фіксована довжина
13
- * @returns {String} Returns String
14
- */
15
-
16
- export default function formatDigit(data, options) {
17
- const dataType = typeof data;
18
- const { rank = 4 } = options.hash;
19
- if (!data || (dataType !== 'number' && dataType !== 'string')) return '';
20
- return String(data).padStart(+rank, '0');
1
+ /**
2
+ * Приведення чисел до стандартизованого виду
3
+ *
4
+ * @summary Форматування чисел. Приводить до встановленої довжини шляхом доповнення нулями на початку
5
+ * @priority 4
6
+ * @type helper
7
+ * @tag format
8
+ * @alias formatDigit
9
+ * @example
10
+ * {{{formatDigit '11' rank=4}}}
11
+ * @param {String|Number} data Число для форматування
12
+ * @param {String|Number} opt.rank Фіксована довжина
13
+ * @returns {String} Returns String
14
+ */
15
+
16
+ export default function formatDigit(data, options) {
17
+ const dataType = typeof data;
18
+ const { rank = 4 } = options.hash;
19
+ if (!data || (dataType !== 'number' && dataType !== 'string')) return '';
20
+ return String(data).padStart(+rank, '0');
21
21
  };