@teipublisher/pb-components 2.26.1-next.2 → 3.0.0-next-4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/.github/workflows/docker-cypress.yml +54 -0
  2. package/.github/workflows/main.yml +6 -4
  3. package/.github/workflows/node.js.yml +56 -21
  4. package/.github/workflows/release.js.yml +19 -17
  5. package/.releaserc.json +1 -1
  6. package/CHANGELOG.md +351 -9
  7. package/Dockerfile +78 -70
  8. package/README.md +112 -4
  9. package/css/components.css +5 -5
  10. package/css/gridjs/mermaid.min.css +1 -1
  11. package/css/leaflet/Control.Geocoder.css +1 -126
  12. package/css/leaflet/images/layers.png +0 -0
  13. package/css/tify/tify.css +6 -5
  14. package/css/tom-select/tom-select.bootstrap4.min.css +1 -1
  15. package/css/tom-select/tom-select.bootstrap5.min.css +1 -1
  16. package/css/tom-select/tom-select.default.min.css +1 -1
  17. package/css/tom-select/tom-select.default.min.css.map +1 -0
  18. package/css/tom-select/tom-select.min.css +1 -1
  19. package/cypress.config.js +84 -0
  20. package/dist/api.html +1 -1
  21. package/dist/css/design-system.css +607 -0
  22. package/dist/demo/bundle-test.html +4 -3
  23. package/dist/demo/components.css +46 -1
  24. package/dist/demo/design-system.html +710 -0
  25. package/dist/demo/dts-client.html +2 -2
  26. package/dist/demo/pb-autocomplete.html +23 -11
  27. package/dist/demo/pb-autocomplete2.html +66 -55
  28. package/dist/demo/pb-autocomplete3.html +17 -8
  29. package/dist/demo/pb-blacklab-highlight.html +28 -11
  30. package/dist/demo/pb-blacklab-results.html +3 -2
  31. package/dist/demo/pb-browse-docs.html +24 -24
  32. package/dist/demo/pb-browse-docs2.html +3 -3
  33. package/dist/demo/pb-clipboard.html +32 -28
  34. package/dist/demo/pb-code-editor.html +6 -6
  35. package/dist/demo/pb-code-highlight.html +63 -63
  36. package/dist/demo/pb-codepen.html +1 -1
  37. package/dist/demo/pb-collapse.html +1 -1
  38. package/dist/demo/pb-collapse2.html +2 -2
  39. package/dist/demo/pb-combo-box.html +135 -130
  40. package/dist/demo/pb-custom-form.html +64 -55
  41. package/dist/demo/pb-dialog.html +12 -6
  42. package/dist/demo/pb-document.html +1 -1
  43. package/dist/demo/pb-download.html +68 -59
  44. package/dist/demo/pb-drawer.html +67 -46
  45. package/dist/demo/pb-drawer2.html +65 -58
  46. package/dist/demo/pb-edit-app.html +2 -2
  47. package/dist/demo/pb-edit-xml.html +1 -1
  48. package/dist/demo/pb-facsimile-2.html +26 -11
  49. package/dist/demo/pb-facsimile-3.html +25 -10
  50. package/dist/demo/pb-facsimile-dedup-test-2.html +48 -0
  51. package/dist/demo/pb-facsimile-dedup-test.html +48 -0
  52. package/dist/demo/pb-facsimile.html +4 -4
  53. package/dist/demo/pb-formula.html +1 -1
  54. package/dist/demo/pb-grid.html +22 -8
  55. package/dist/demo/pb-highlight.html +2 -2
  56. package/dist/demo/pb-i18n-simple.html +1 -0
  57. package/dist/demo/pb-i18n.html +15 -5
  58. package/dist/demo/pb-image-strip-standalone.html +2 -2
  59. package/dist/demo/pb-image-strip-view.html +2 -2
  60. package/dist/demo/pb-leaflet-map.html +3 -3
  61. package/dist/demo/pb-leaflet-map2.html +2 -2
  62. package/dist/demo/pb-leaflet-map3.html +3 -3
  63. package/dist/demo/pb-link.html +1 -1
  64. package/dist/demo/pb-load.html +2 -6
  65. package/dist/demo/pb-login.html +1 -3
  66. package/dist/demo/pb-manage-odds.html +9 -4
  67. package/dist/demo/pb-markdown.html +1 -1
  68. package/dist/demo/pb-media-query.html +2 -2
  69. package/dist/demo/pb-mei.html +2 -2
  70. package/dist/demo/pb-mei2.html +2 -2
  71. package/dist/demo/pb-message.html +2 -3
  72. package/dist/demo/pb-odd-editor.html +54 -52
  73. package/dist/demo/pb-page-header.html +27 -0
  74. package/dist/demo/pb-popover.html +1 -1
  75. package/dist/demo/pb-print-preview.html +2 -2
  76. package/dist/demo/pb-progress.html +4 -4
  77. package/dist/demo/pb-repeat.html +32 -36
  78. package/dist/demo/pb-search.html +16 -5
  79. package/dist/demo/pb-search2.html +4 -4
  80. package/dist/demo/pb-search3.html +3 -3
  81. package/dist/demo/pb-search4.html +3 -3
  82. package/dist/demo/pb-select-feature.html +4 -4
  83. package/dist/demo/pb-select-feature2.html +4 -4
  84. package/dist/demo/pb-select-feature3.html +2 -2
  85. package/dist/demo/pb-select-i18n.html +58 -53
  86. package/dist/demo/pb-select-odd.html +1 -1
  87. package/dist/demo/pb-select.html +190 -75
  88. package/dist/demo/pb-select2.html +91 -37
  89. package/dist/demo/pb-select3.html +109 -41
  90. package/dist/demo/pb-svg.html +1 -1
  91. package/dist/demo/pb-table-grid.html +26 -15
  92. package/dist/demo/pb-tabs.html +15 -7
  93. package/dist/demo/pb-tify.html +7 -7
  94. package/dist/demo/pb-timeline.html +1 -1
  95. package/dist/demo/pb-timeline2.html +1 -1
  96. package/dist/demo/pb-toggle-feature.html +26 -23
  97. package/dist/demo/pb-toggle-feature2.html +4 -4
  98. package/dist/demo/pb-toggle-feature3.html +2 -2
  99. package/dist/demo/pb-toggle-feature4.html +56 -54
  100. package/dist/demo/pb-version.html +2 -2
  101. package/dist/demo/pb-view.html +78 -40
  102. package/dist/demo/pb-view2.html +69 -46
  103. package/dist/demo/pb-view3.html +53 -48
  104. package/dist/demo/pb-view4.html +70 -49
  105. package/dist/demo/pb-zoom.html +2 -2
  106. package/dist/{es-global-bridge-d8ce175d.js → es-global-bridge-D8ZcUcx_.js} +0 -4
  107. package/dist/focus-mixin-VCsFap6b.js +768 -0
  108. package/dist/images/icons.svg +217 -0
  109. package/dist/jinn-codemirror-DETLdm08.js +1 -0
  110. package/dist/lib/openseadragon.min.js +80 -0
  111. package/dist/lib/openseadragon.min.js.map +1 -0
  112. package/dist/pb-code-editor.js +25 -20
  113. package/dist/pb-component-docs.js +414 -3225
  114. package/dist/pb-components-bundle.js +3046 -4402
  115. package/dist/pb-dialog-tklYGWfc.js +121 -0
  116. package/dist/pb-edit-app.js +208 -107
  117. package/dist/pb-elements.json +716 -249
  118. package/dist/pb-facsimile.js +46 -0
  119. package/dist/pb-i18n-C0NDma4h.js +1 -0
  120. package/dist/pb-leaflet-map.js +23 -23
  121. package/dist/pb-mei.js +152 -134
  122. package/dist/pb-mixin-DHoWQheB.js +1 -0
  123. package/dist/pb-odd-editor.js +1671 -1231
  124. package/dist/pb-tify.js +1 -27
  125. package/dist/unsafe-html-D5VGo9Oq.js +1 -0
  126. package/dist/urls-BEONu_g4.js +1 -0
  127. package/eslint.config.mjs +92 -0
  128. package/gh-pages.js +5 -3
  129. package/i18n/common/en.json +6 -0
  130. package/i18n/common/pl.json +2 -2
  131. package/images/icons.svg +217 -0
  132. package/index.html +0 -5
  133. package/lib/leaflet-src.js.map +1 -0
  134. package/lib/leaflet.markercluster-src.js.map +1 -0
  135. package/lib/openseadragon.min.js +6 -6
  136. package/package.json +56 -81
  137. package/pb-elements.json +716 -249
  138. package/rollup.config.mjs +312 -0
  139. package/src/assets/components.css +5 -5
  140. package/src/assets/design-system.css +607 -0
  141. package/src/authority/airtable.js +20 -21
  142. package/src/authority/anton.js +129 -129
  143. package/src/authority/custom.js +70 -27
  144. package/src/authority/geonames.js +38 -32
  145. package/src/authority/gnd.js +50 -42
  146. package/src/authority/kbga.js +136 -134
  147. package/src/authority/metagrid.js +44 -46
  148. package/src/authority/reconciliation.js +66 -68
  149. package/src/authority/registry.js +4 -4
  150. package/src/docs/demo-utils.js +91 -0
  151. package/src/docs/pb-component-docs.js +287 -147
  152. package/src/docs/pb-component-view.js +380 -273
  153. package/src/docs/pb-components-list.js +115 -51
  154. package/src/docs/pb-demo-snippet.js +199 -174
  155. package/src/dts-client.js +306 -303
  156. package/src/dts-select-endpoint.js +125 -85
  157. package/src/parse-date-service.js +184 -135
  158. package/src/pb-ajax.js +175 -173
  159. package/src/pb-authority-lookup.js +198 -158
  160. package/src/pb-autocomplete.js +731 -313
  161. package/src/pb-blacklab-highlight.js +266 -260
  162. package/src/pb-blacklab-results.js +230 -225
  163. package/src/pb-browse-docs.js +601 -484
  164. package/src/pb-browse.js +68 -65
  165. package/src/pb-clipboard.js +97 -76
  166. package/src/pb-code-editor.js +111 -103
  167. package/src/pb-code-highlight.js +234 -204
  168. package/src/pb-codepen.js +81 -73
  169. package/src/pb-collapse.js +265 -152
  170. package/src/pb-combo-box.js +191 -191
  171. package/src/pb-components-bundle.js +1 -7
  172. package/src/pb-components.js +2 -6
  173. package/src/pb-custom-form.js +230 -141
  174. package/src/pb-dialog.js +99 -63
  175. package/src/pb-document.js +118 -91
  176. package/src/pb-download.js +214 -198
  177. package/src/pb-drawer.js +146 -149
  178. package/src/pb-edit-app.js +471 -240
  179. package/src/pb-edit-xml.js +101 -98
  180. package/src/pb-events.js +126 -107
  181. package/src/pb-facs-link.js +130 -101
  182. package/src/pb-facsimile.js +494 -410
  183. package/src/pb-fetch.js +389 -0
  184. package/src/pb-formula.js +152 -154
  185. package/src/pb-geolocation.js +130 -132
  186. package/src/pb-grid-action.js +59 -56
  187. package/src/pb-grid.js +388 -228
  188. package/src/pb-highlight.js +142 -142
  189. package/src/pb-hotkeys.js +40 -42
  190. package/src/pb-i18n.js +115 -127
  191. package/src/pb-icon-button.js +108 -0
  192. package/src/pb-icon.js +283 -0
  193. package/src/pb-image-strip.js +85 -79
  194. package/src/pb-lang.js +142 -57
  195. package/src/pb-leaflet-map.js +551 -483
  196. package/src/pb-link.js +132 -126
  197. package/src/pb-load.js +495 -428
  198. package/src/pb-login.js +303 -248
  199. package/src/pb-manage-odds.js +384 -338
  200. package/src/pb-map-icon.js +90 -90
  201. package/src/pb-map-layer.js +86 -86
  202. package/src/pb-markdown.js +107 -110
  203. package/src/pb-media-query.js +75 -73
  204. package/src/pb-mei.js +523 -303
  205. package/src/pb-message.js +144 -98
  206. package/src/pb-mixin.js +268 -265
  207. package/src/pb-navigation.js +83 -96
  208. package/src/pb-observable.js +39 -39
  209. package/src/pb-odd-editor.js +1209 -948
  210. package/src/pb-odd-elementspec-editor.js +375 -310
  211. package/src/pb-odd-model-editor.js +1189 -941
  212. package/src/pb-odd-parameter-editor.js +269 -170
  213. package/src/pb-odd-rendition-editor.js +184 -131
  214. package/src/pb-page.js +451 -422
  215. package/src/pb-paginate.js +260 -178
  216. package/src/pb-panel.js +217 -183
  217. package/src/pb-popover-themes.js +16 -9
  218. package/src/pb-popover.js +297 -288
  219. package/src/pb-print-preview.js +128 -128
  220. package/src/pb-progress.js +52 -52
  221. package/src/pb-repeat.js +141 -108
  222. package/src/pb-restricted.js +85 -78
  223. package/src/pb-search.js +258 -230
  224. package/src/pb-select-feature.js +210 -126
  225. package/src/pb-select-odd.js +184 -118
  226. package/src/pb-select-template.js +113 -78
  227. package/src/pb-select.js +330 -229
  228. package/src/pb-split-list.js +181 -176
  229. package/src/pb-svg.js +81 -80
  230. package/src/pb-table-column.js +55 -55
  231. package/src/pb-table-grid.js +334 -205
  232. package/src/pb-tabs.js +238 -61
  233. package/src/pb-tify.js +3331 -126
  234. package/src/pb-timeline.js +394 -255
  235. package/src/pb-toggle-feature.js +196 -188
  236. package/src/pb-upload.js +201 -176
  237. package/src/pb-version.js +22 -34
  238. package/src/pb-view-annotate.js +138 -102
  239. package/src/pb-view.js +1722 -1272
  240. package/src/pb-zoom.js +144 -46
  241. package/src/search-result-service.js +256 -223
  242. package/src/seed-element.js +14 -22
  243. package/src/settings.js +4 -4
  244. package/src/theming.js +98 -91
  245. package/src/urls.js +403 -289
  246. package/src/utils.js +53 -51
  247. package/vite.config.js +86 -0
  248. package/css/pb-styles.css +0 -51
  249. package/dist/iron-form-3b8dcaa7.js +0 -210
  250. package/dist/jinn-codemirror-da0e2d1f.js +0 -1
  251. package/dist/paper-checkbox-515a5284.js +0 -1597
  252. package/dist/paper-icon-button-b1d31571.js +0 -398
  253. package/dist/paper-listbox-a3b7175c.js +0 -1265
  254. package/dist/pb-i18n-0611135a.js +0 -1
  255. package/dist/pb-mixin-b1caa22e.js +0 -158
  256. package/dist/polymer-hack.js +0 -1
  257. package/dist/vaadin-element-mixin-6e4cee3a.js +0 -527
  258. package/lib/Control.Geocoder.min.js +0 -2
  259. package/lib/Control.Geocoder.min.js.map +0 -1
  260. package/src/assets/pb-styles.css +0 -51
  261. package/src/pb-light-dom.js +0 -40
  262. package/src/polymer-hack.js +0 -6
@@ -1,29 +1,28 @@
1
1
  export class ParseDateService {
2
2
  /*
3
- * PARSE DATE SERVICE
4
- * whenever the user types a date, it should be allowed
5
- * to type in a lot of dirrerent date formats. This service
6
- * should detect all of the supported formats. Some supported formats:
7
- * - 1. April 1970 => 1970-04-01
8
- * - 1970 => 1970-01-01
9
- * - 1970-12-23 => 1970-12-23
10
- * - 1900 12 23 => 1900-12-23
11
- * - 1 jan 1970 => 1970-01-01
12
- * - 2020-W12 => 2020-03-16
13
- * - 2020-01 => 2020-01-01
14
- * For all formats check the tests written in AVA `test/parse-date-service-test.js`
15
- *
16
- * public methods
17
- * run()
18
- */
19
- constructor() {
20
- }
3
+ * PARSE DATE SERVICE
4
+ * whenever the user types a date, it should be allowed
5
+ * to type in a lot of dirrerent date formats. This service
6
+ * should detect all of the supported formats. Some supported formats:
7
+ * - 1. April 1970 => 1970-04-01
8
+ * - 1970 => 1970-01-01
9
+ * - 1970-12-23 => 1970-12-23
10
+ * - 1900 12 23 => 1900-12-23
11
+ * - 1 jan 1970 => 1970-01-01
12
+ * - 2020-W12 => 2020-03-16
13
+ * - 2020-01 => 2020-01-01
14
+ * For all formats check the tests written in AVA `test/parse-date-service-test.js`
15
+ *
16
+ * public methods
17
+ * run()
18
+ */
19
+ constructor() {}
21
20
 
22
- run (input) {
21
+ run(input) {
23
22
  this.input = input;
24
- this.day = "??";
25
- this.month = "??";
26
- this.year = "????";
23
+ this.day = '??';
24
+ this.month = '??';
25
+ this.year = '????';
27
26
 
28
27
  const resultIsoMatch = this.input.match(this._isoMatchRegex());
29
28
  const resultCustomMatch = this.input.match(this._customRegex());
@@ -31,14 +30,14 @@ export class ParseDateService {
31
30
  const resultYearAndMonthMatch = this.input.match(this._yearAndMonthRegex());
32
31
  if (resultIsoMatch) {
33
32
  const split = resultIsoMatch[1].split(/-|\/|\s/);
34
- this.year = split[0];
33
+ this.year = split[0];
35
34
  this.month = this._setWithLeadingZero(split[1]);
36
- this.day = this._setWithLeadingZero(split[2]);
35
+ this.day = this._setWithLeadingZero(split[2]);
37
36
  } else if (resultYearAndMonthMatch) {
38
- const split = resultYearAndMonthMatch[1].split("-");
37
+ const split = resultYearAndMonthMatch[1].split('-');
39
38
  this.year = split[0];
40
39
  this.month = this._setWithLeadingZero(split[1]);
41
- this.day = "01";
40
+ this.day = '01';
42
41
  } else if (resultCustomMatch) {
43
42
  const split = resultCustomMatch[0].split(/\.|\s|\/|-/);
44
43
  this.day = this._setWithLeadingZero(split[0]);
@@ -47,7 +46,7 @@ export class ParseDateService {
47
46
  } else if (resultWeekMatch) {
48
47
  const split = resultWeekMatch[0].split(/\.|\s|\/|-/);
49
48
  const year = Number(split[0]);
50
- const week = Number(split[1].replace("W0", "").replace("W", ""));
49
+ const week = Number(split[1].replace('W0', '').replace('W', ''));
51
50
  return this._getDateStrOfISOWeek(year, week);
52
51
  } else {
53
52
  this._findYear();
@@ -58,65 +57,65 @@ export class ParseDateService {
58
57
  }
59
58
 
60
59
  _buildResult() {
61
- if (this.year != "????" && this.month === "??") {
62
- this.month = "01";
60
+ if (this.year != '????' && this.month === '??') {
61
+ this.month = '01';
63
62
  }
64
- if (this.month != "??" && this.day === "??") {
65
- this.day = "01";
63
+ if (this.month != '??' && this.day === '??') {
64
+ this.day = '01';
66
65
  }
67
66
  return `${this.year}-${this.month}-${this.day}`;
68
67
  }
69
68
 
70
69
  /*
71
- * matches ISO string format (with some extensions)
72
- * | 2012-01-31 | 2012-1-31 | 2012/01/31 |
73
- * | 2012/1/31 | 2012 1 31 | 2012 01 31 |
74
- */
70
+ * matches ISO string format (with some extensions)
71
+ * | 2012-01-31 | 2012-1-31 | 2012/01/31 |
72
+ * | 2012/1/31 | 2012 1 31 | 2012 01 31 |
73
+ */
75
74
  _isoMatchRegex() {
76
75
  return /(?:\s|^)(\d{4}(-|\s|\/)([0][1-9]|[1-9]|10|11|12)(-|\s|\/)([0][1-9]|[1-2][0-9]|3[01]|[1-9]))(?=\s|$|\.)/;
77
76
  /* | | year | 01-09 | 1-9 | 10-12 | |01-09 |10-29 |30,31| 1-9 |
78
- * | | dash or slash | dash or slash |
79
- * |preceding with space or start of string end with space endofstr or dot <-|*/
77
+ * | | dash or slash | dash or slash |
78
+ * |preceding with space or start of string end with space endofstr or dot <-| */
80
79
  }
81
80
 
82
81
  /*
83
- * matches a custom date string format (reversed order, day-month-year)
84
- * | 12.3.2000 | 1.2.2012 | 1-2-2012 |
85
- * | 12/3/2000 | 1 2 2012 | 1/2/2012 |
86
- */
82
+ * matches a custom date string format (reversed order, day-month-year)
83
+ * | 12.3.2000 | 1.2.2012 | 1-2-2012 |
84
+ * | 12/3/2000 | 1 2 2012 | 1/2/2012 |
85
+ */
87
86
  _customRegex() {
88
87
  return /\d{1,2}(\.|\s|\/|-)\d{1,2}(\.|\s|\/|-)\d{4}/;
89
88
  /* | day | | month | | year
90
- * |___________________|
91
- * |
92
- * seperated by dot, space, slash or dash */
89
+ * |___________________|
90
+ * |
91
+ * seperated by dot, space, slash or dash */
93
92
  }
94
93
 
95
94
  /*
96
- * matches a date format that specifies the week
97
- * | 2012-W1 | 2012 W1 | 2012 W01 |
98
- * | 2020.W2 | 2020-W53 | 2012/W1 |
99
- */
95
+ * matches a date format that specifies the week
96
+ * | 2012-W1 | 2012 W1 | 2012 W01 |
97
+ * | 2020.W2 | 2020-W53 | 2012/W1 |
98
+ */
100
99
  _weekMatchRegex() {
101
100
  return /\d{4}(\.|\s|\/|-)W\d{1,2}(?=\s|$|\.)/;
102
101
  /* |year | |W1-W53 |
103
- * |___________________|
104
- * |
105
- * seperated by dot, space, slash or dash */
102
+ * |___________________|
103
+ * |
104
+ * seperated by dot, space, slash or dash */
106
105
  }
107
106
 
108
107
  /*
109
- * matches a date format with only year and month
110
- * YYYY-MM (1-12)
111
- * | 2020-01 | 2020-12 | 2012-1 |
112
- */
108
+ * matches a date format with only year and month
109
+ * YYYY-MM (1-12)
110
+ * | 2020-01 | 2020-12 | 2012-1 |
111
+ */
113
112
  _yearAndMonthRegex() {
114
113
  return /(?:\s|^)(\d{4}-([0][1-9]|[1-9]|10|11|12))(?=\s|$)/;
115
114
  }
116
115
 
117
116
  _findYear() {
118
- let regex = /[1-9]{1}[0-9]{3}/;
119
- const result = this.input.match(regex)
117
+ const regex = /[1-9]{1}[0-9]{3}/;
118
+ const result = this.input.match(regex);
120
119
  if (result) {
121
120
  this.year = result[0];
122
121
  this._removeMatchFromInput(result);
@@ -126,9 +125,10 @@ export class ParseDateService {
126
125
  _findMonth() {
127
126
  const months = this._monthDictionaryValues();
128
127
  months.forEach(month => {
129
- const re = new RegExp(`(?:\\s|^)(${month})(?=\\s|$|\\.)`, "i")
128
+ const re = new RegExp(`(?:\\s|^)(${month})(?=\\s|$|\\.)`, 'i');
130
129
  const result = this.input.match(re);
131
- if (result) { // yes => get dict and value + return
130
+ if (result) {
131
+ // yes => get dict and value + return
132
132
  this.month = this._monthDictionary()[result[1].toLowerCase()];
133
133
  this._removeMatchFromInput(result);
134
134
  return this.month;
@@ -138,107 +138,155 @@ export class ParseDateService {
138
138
  }
139
139
 
140
140
  /*
141
- * find single numbers from 1-31
142
- */
141
+ * find single numbers from 1-31
142
+ */
143
143
  _findDay() {
144
144
  const regex = /(?:\s|^)([0][1-9]|[1-2][0-9]|3[01]|[1-9])(?=\s|$|\.|st|nd|rd|th)/;
145
145
  /* | | 01-09 | 10-29 |30,31|1-9 | ends with whitespace, endofstr or dot.
146
- * | starts with whitepace or startoftr | won't be included in match (lookbehind operator)
147
- * | look behind operator (not included)
148
- * | https://stackoverflow.com/a/6713378/6272061 */
149
- const result = this.input.match(regex)
146
+ * | starts with whitepace or startoftr | won't be included in match (lookbehind operator)
147
+ * | look behind operator (not included)
148
+ * | https://stackoverflow.com/a/6713378/6272061 */
149
+ const result = this.input.match(regex);
150
150
  if (result) {
151
151
  this.day = this._setWithLeadingZero(result[1]);
152
152
  }
153
153
  }
154
154
 
155
155
  /*
156
- * if a string or number has only 1 digit or char
157
- * a leading zro is added
158
- * returns a string
159
- */
156
+ * if a string or number has only 1 digit or char
157
+ * a leading zro is added
158
+ * returns a string
159
+ */
160
160
  _setWithLeadingZero(input) {
161
161
  input = input.toString();
162
162
  if (input.length == 1) {
163
- return "0" + input;
164
- } else {
165
- return input;
163
+ return `0${input}`;
166
164
  }
165
+ return input;
167
166
  }
168
167
 
169
168
  _removeMatchFromInput(matchObj) {
170
169
  if (matchObj && matchObj[0] && matchObj.index) {
171
- let len = matchObj[0].length;
172
- let charArr = this.input.split('');
170
+ const len = matchObj[0].length;
171
+ const charArr = this.input.split('');
173
172
  charArr.splice(matchObj.index, len);
174
- this.input = charArr.join("");
173
+ this.input = charArr.join('');
175
174
  }
176
175
  }
177
176
 
178
177
  _monthDictionaryValues() {
179
178
  return Object.keys(this._monthDictionary());
180
179
  }
180
+
181
181
  _monthDictionary() {
182
182
  return {
183
183
  // german
184
- "jan": "01", "januar": "01",
185
- "feb": "02", "februar": "02",
186
- "mär": "03", "märz": "03",
187
- "apr": "04", "april": "04",
188
- "mai": "05", "mai": "05",
189
- "jun": "06", "juni": "06",
190
- "jul": "07", "juli": "07",
191
- "aug": "08", "august": "08",
192
- "sep": "09", "september": "09",
193
- "okt": "10", "oktober": "10",
194
- "nov": "11", "november": "11",
195
- "dez": "12", "dezember": "12",
184
+ jan: '01',
185
+ januar: '01',
186
+ feb: '02',
187
+ februar: '02',
188
+ mär: '03',
189
+ märz: '03',
190
+ apr: '04',
191
+ april: '04',
192
+ mai: '05',
193
+ mai: '05',
194
+ jun: '06',
195
+ juni: '06',
196
+ jul: '07',
197
+ juli: '07',
198
+ aug: '08',
199
+ august: '08',
200
+ sep: '09',
201
+ september: '09',
202
+ okt: '10',
203
+ oktober: '10',
204
+ nov: '11',
205
+ november: '11',
206
+ dez: '12',
207
+ dezember: '12',
196
208
  // english
197
- "jan": "01", "january": "01",
198
- "feb": "02", "february": "02",
199
- "mar": "03", "march": "03",
200
- "apr": "04", "april": "04",
201
- "may": "05", "may": "05",
202
- "jun": "06", "june": "06",
203
- "jul": "07", "july": "07",
204
- "aug": "08", "august": "08",
205
- "sep": "09", "september": "09",
206
- "oct": "10", "october": "10",
207
- "nov": "11", "november": "11",
208
- "dec": "12", "december": "12",
209
+ jan: '01',
210
+ january: '01',
211
+ feb: '02',
212
+ february: '02',
213
+ mar: '03',
214
+ march: '03',
215
+ apr: '04',
216
+ april: '04',
217
+ may: '05',
218
+ may: '05',
219
+ jun: '06',
220
+ june: '06',
221
+ jul: '07',
222
+ july: '07',
223
+ aug: '08',
224
+ august: '08',
225
+ sep: '09',
226
+ september: '09',
227
+ oct: '10',
228
+ october: '10',
229
+ nov: '11',
230
+ november: '11',
231
+ dec: '12',
232
+ december: '12',
209
233
  // french
210
- "janv":"01", "janvier": "01",
211
- "févr":"02", "février'": "02",
212
- "mars":"03", "mars": "03",
213
- "avr": "04", "avril": "04",
214
- "mai": "05", "mai": "05",
215
- "juin":"06", "juin": "06",
216
- "juil":"07", "juillet": "07",
217
- "août":"08", "août": "08",
218
- "sept":"09", "septembre": "09",
219
- "oct": "10", "octobre": "10",
220
- "nov": "11", "novembre": "11",
221
- "déc": "12", "décembre": "12",
222
- //italian
223
- "gen": "01", "gennaio": "01",
224
- "feb": "02", "febbraio": "02",
225
- "mar": "03", "marzo": "03",
226
- "apr": "04", "aprile": "04",
227
- "mag": "05", "maggio": "05",
228
- "giu": "06", "giugno": "06",
229
- "lug": "07", "luglio": "07",
230
- "ago": "08", "agosto": "08",
231
- "set": "09", "settembre": "09",
232
- "ott": "10", "ottobre": "10",
233
- "nov": "11", "novembre": "11",
234
- "dic": "12", "dicembre": "12",
235
- }
234
+ janv: '01',
235
+ janvier: '01',
236
+ févr: '02',
237
+ "février'": '02',
238
+ mars: '03',
239
+ mars: '03',
240
+ avr: '04',
241
+ avril: '04',
242
+ mai: '05',
243
+ mai: '05',
244
+ juin: '06',
245
+ juin: '06',
246
+ juil: '07',
247
+ juillet: '07',
248
+ août: '08',
249
+ août: '08',
250
+ sept: '09',
251
+ septembre: '09',
252
+ oct: '10',
253
+ octobre: '10',
254
+ nov: '11',
255
+ novembre: '11',
256
+ déc: '12',
257
+ décembre: '12',
258
+ // italian
259
+ gen: '01',
260
+ gennaio: '01',
261
+ feb: '02',
262
+ febbraio: '02',
263
+ mar: '03',
264
+ marzo: '03',
265
+ apr: '04',
266
+ aprile: '04',
267
+ mag: '05',
268
+ maggio: '05',
269
+ giu: '06',
270
+ giugno: '06',
271
+ lug: '07',
272
+ luglio: '07',
273
+ ago: '08',
274
+ agosto: '08',
275
+ set: '09',
276
+ settembre: '09',
277
+ ott: '10',
278
+ ottobre: '10',
279
+ nov: '11',
280
+ novembre: '11',
281
+ dic: '12',
282
+ dicembre: '12',
283
+ };
236
284
  }
237
285
 
238
286
  _getDateStrOfISOWeek(y, w) {
239
- let simple = new Date(y, 0, 1 + (w - 1) * 7);
240
- let dow = simple.getDay();
241
- let ISOweekStart = simple;
287
+ const simple = new Date(y, 0, 1 + (w - 1) * 7);
288
+ const dow = simple.getDay();
289
+ const ISOweekStart = simple;
242
290
  if (dow <= 4) {
243
291
  ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1);
244
292
  } else {
@@ -247,20 +295,21 @@ export class ParseDateService {
247
295
  // do not rollover to next or previous year
248
296
  if (ISOweekStart.getFullYear() > y) {
249
297
  return `${y}-12-31`;
250
- } else if (ISOweekStart.getFullYear() < y) {
298
+ }
299
+ if (ISOweekStart.getFullYear() < y) {
251
300
  return `${y}-01-01`;
252
301
  }
253
302
  return this._dateToDateStr(ISOweekStart);
254
303
  }
255
304
 
256
305
  /*
257
- * formats date object to dateStr YYYY-MM-DD
258
- */
306
+ * formats date object to dateStr YYYY-MM-DD
307
+ */
259
308
  _dateToDateStr(date) {
260
- let d = new Date(date);
261
- let month = this._setWithLeadingZero((d.getMonth() + 1));
262
- let day = this._setWithLeadingZero(d.getDate());
263
- let year = d.getFullYear();
309
+ const d = new Date(date);
310
+ const month = this._setWithLeadingZero(d.getMonth() + 1);
311
+ const day = this._setWithLeadingZero(d.getDate());
312
+ const year = d.getFullYear();
264
313
  return `${year}-${month}-${day}`;
265
314
  }
266
315
  }