@schukai/monster 3.51.5 → 3.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +15 -12
  3. package/example/components/form/button.mjs +10 -0
  4. package/example/components/form/select.mjs +25 -0
  5. package/example/components/form/tree-select.mjs +27 -0
  6. package/example/components/host/host.mjs +0 -0
  7. package/example/components/notify/message.mjs +4 -0
  8. package/example/components/notify/notify.mjs +4 -0
  9. package/example/components/state/log.mjs +0 -0
  10. package/example/components/state/state.mjs +0 -0
  11. package/package.json +6 -2
  12. package/source/components/constants.mjs +132 -0
  13. package/source/components/datatable/columnbar.mjs +310 -0
  14. package/source/components/datatable/constants.mjs +121 -0
  15. package/source/components/datatable/dataset.mjs +219 -0
  16. package/source/components/datatable/datasource/dom.mjs +186 -0
  17. package/source/components/datatable/datasource/namespace.mjs +13 -0
  18. package/source/components/datatable/datasource/rest.mjs +400 -0
  19. package/source/components/datatable/datasource.mjs +102 -0
  20. package/source/components/datatable/datatable/header.mjs +268 -0
  21. package/source/components/datatable/datatable/namespace.mjs +13 -0
  22. package/source/components/datatable/datatable.mjs +789 -0
  23. package/source/components/datatable/embedded-pagination.mjs +113 -0
  24. package/source/components/datatable/filter/abstract-base.mjs +31 -0
  25. package/source/components/datatable/filter/date-range.mjs +1041 -0
  26. package/source/components/datatable/filter/input.mjs +175 -0
  27. package/source/components/datatable/filter/namespace.mjs +13 -0
  28. package/source/components/datatable/filter/range.mjs +671 -0
  29. package/source/components/datatable/filter/select.mjs +65 -0
  30. package/source/components/datatable/filter/settings.mjs +116 -0
  31. package/source/components/datatable/filter-button.mjs +98 -0
  32. package/source/components/datatable/filter.mjs +929 -0
  33. package/source/components/datatable/namespace.mjs +11 -0
  34. package/source/components/datatable/pagination.mjs +456 -0
  35. package/source/components/datatable/style/column-bar.pcss +123 -0
  36. package/source/components/datatable/style/dataset.pcss +13 -0
  37. package/source/components/datatable/style/datasource.pcss +16 -0
  38. package/source/components/datatable/style/datatable.pcss +239 -0
  39. package/source/components/datatable/style/embedded-pagination.pcss +101 -0
  40. package/source/components/datatable/style/filter-button.pcss +22 -0
  41. package/source/components/datatable/style/filter-controls-defaults.pcss +46 -0
  42. package/source/components/datatable/style/filter-date-range.pcss +9 -0
  43. package/source/components/datatable/style/filter-range.pcss +5 -0
  44. package/source/components/datatable/style/filter.pcss +156 -0
  45. package/source/components/datatable/style/pagination.pcss +59 -0
  46. package/source/components/datatable/style/select-filter.pcss +27 -0
  47. package/source/components/datatable/stylesheet/column-bar.mjs +33 -0
  48. package/source/components/datatable/stylesheet/dataset.mjs +33 -0
  49. package/source/components/datatable/stylesheet/datasource.mjs +33 -0
  50. package/source/components/datatable/stylesheet/datatable.mjs +33 -0
  51. package/source/components/datatable/stylesheet/embedded-pagination.mjs +33 -0
  52. package/source/components/datatable/stylesheet/filter-button.mjs +33 -0
  53. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +33 -0
  54. package/source/components/datatable/stylesheet/filter-date-range.mjs +33 -0
  55. package/source/components/datatable/stylesheet/filter-range.mjs +33 -0
  56. package/source/components/datatable/stylesheet/filter.mjs +33 -0
  57. package/source/components/datatable/stylesheet/namespace.mjs +13 -0
  58. package/source/components/datatable/stylesheet/pagination.mjs +33 -0
  59. package/source/components/datatable/stylesheet/select-filter.mjs +33 -0
  60. package/source/components/datatable/util.mjs +60 -0
  61. package/source/components/form/action-button.mjs +262 -0
  62. package/source/components/form/api-button.mjs +515 -0
  63. package/source/components/form/button-bar.mjs +739 -0
  64. package/source/components/form/button.mjs +350 -0
  65. package/source/components/form/confirm-button.mjs +330 -0
  66. package/source/components/form/constants.mjs +111 -0
  67. package/source/components/form/context-help.mjs +123 -0
  68. package/source/components/form/events.mjs +84 -0
  69. package/source/components/form/form.mjs +601 -0
  70. package/source/components/form/message-state-button.mjs +396 -0
  71. package/source/components/form/namespace.mjs +13 -0
  72. package/source/components/form/popper-button.mjs +435 -0
  73. package/source/components/form/popper.mjs +487 -0
  74. package/source/components/form/reload.mjs +360 -0
  75. package/source/components/form/select.mjs +2314 -0
  76. package/source/components/form/shadow-reload.mjs +137 -0
  77. package/source/components/form/state-button.mjs +182 -0
  78. package/source/components/form/style/action-button.pcss +41 -0
  79. package/source/components/form/style/api-button.pcss +0 -0
  80. package/source/components/form/style/button-bar.pcss +51 -0
  81. package/source/components/form/style/button.pcss +8 -0
  82. package/source/components/form/style/confirm-button.pcss +17 -0
  83. package/source/components/form/style/context-help.pcss +16 -0
  84. package/source/components/form/style/form.pcss +10 -0
  85. package/source/components/form/style/message-state-button.pcss +10 -0
  86. package/source/components/form/style/popper-button.pcss +16 -0
  87. package/source/components/form/style/popper.pcss +8 -0
  88. package/source/components/form/style/select.pcss +265 -0
  89. package/source/components/form/style/state-button.pcss +116 -0
  90. package/source/components/form/style/tabs.pcss +170 -0
  91. package/source/components/form/style/tree-select.pcss +81 -0
  92. package/source/components/form/stylesheet/action-button.mjs +33 -0
  93. package/source/components/form/stylesheet/api-button.mjs +33 -0
  94. package/source/components/form/stylesheet/button-bar.mjs +33 -0
  95. package/source/components/form/stylesheet/button.mjs +33 -0
  96. package/source/components/form/stylesheet/confirm-button.mjs +33 -0
  97. package/source/components/form/stylesheet/context-help.mjs +33 -0
  98. package/source/components/form/stylesheet/form.mjs +33 -0
  99. package/source/components/form/stylesheet/message-state-button.mjs +33 -0
  100. package/source/components/form/stylesheet/namespace.mjs +13 -0
  101. package/source/components/form/stylesheet/popper-button.mjs +33 -0
  102. package/source/components/form/stylesheet/popper.mjs +33 -0
  103. package/source/components/form/stylesheet/select.mjs +33 -0
  104. package/source/components/form/stylesheet/state-button.mjs +33 -0
  105. package/source/components/form/stylesheet/tabs.mjs +33 -0
  106. package/source/components/form/stylesheet/tree-select.mjs +33 -0
  107. package/source/components/form/tabs.mjs +1011 -0
  108. package/source/components/form/template.mjs +373 -0
  109. package/source/components/form/tree-select.mjs +527 -0
  110. package/source/components/form/types/namespace.mjs +13 -0
  111. package/source/components/form/types/state.mjs +93 -0
  112. package/source/components/form/util/fetch.mjs +133 -0
  113. package/source/components/form/util/floating-ui.mjs +245 -0
  114. package/source/components/form/util/namespace.mjs +13 -0
  115. package/source/components/form/util/popper.mjs +49 -0
  116. package/source/components/host/call-button.mjs +236 -0
  117. package/source/components/host/collapse.mjs +526 -0
  118. package/source/components/host/config-manager.mjs +304 -0
  119. package/source/components/host/constants.mjs +18 -0
  120. package/source/components/host/details.mjs +268 -0
  121. package/source/components/host/events.mjs +131 -0
  122. package/source/components/host/host.mjs +420 -0
  123. package/source/components/host/namespace.mjs +13 -0
  124. package/source/components/host/overlay.mjs +339 -0
  125. package/source/components/host/style/call-button.pcss +36 -0
  126. package/source/components/host/style/collapse.pcss +67 -0
  127. package/source/components/host/style/config-manager.pcss +5 -0
  128. package/source/components/host/style/details.pcss +68 -0
  129. package/source/components/host/style/host.pcss +43 -0
  130. package/source/components/host/style/overlay.pcss +73 -0
  131. package/source/components/host/style/toggle-button.pcss +36 -0
  132. package/source/components/host/style/viewer.pcss +13 -0
  133. package/source/components/host/stylesheet/call-button.mjs +33 -0
  134. package/source/components/host/stylesheet/collapse.mjs +33 -0
  135. package/source/components/host/stylesheet/config-manager.mjs +33 -0
  136. package/source/components/host/stylesheet/details.mjs +33 -0
  137. package/source/components/host/stylesheet/host.mjs +33 -0
  138. package/source/components/host/stylesheet/namespace.mjs +13 -0
  139. package/source/components/host/stylesheet/overlay.mjs +33 -0
  140. package/source/components/host/stylesheet/toggle-button.mjs +33 -0
  141. package/source/components/host/stylesheet/viewer.mjs +33 -0
  142. package/source/components/host/toggle-button.mjs +88 -0
  143. package/source/components/host/util.mjs +23 -0
  144. package/source/components/host/viewer.mjs +309 -0
  145. package/source/components/namespace.mjs +14 -0
  146. package/source/components/notify/constants.mjs +15 -0
  147. package/source/components/notify/events.mjs +15 -0
  148. package/source/components/notify/message.mjs +374 -0
  149. package/source/components/notify/namespace.mjs +15 -0
  150. package/source/components/notify/notify.mjs +236 -0
  151. package/source/components/notify/style/message.pcss +57 -0
  152. package/source/components/notify/style/notify.pcss +118 -0
  153. package/source/components/notify/stylesheet/message.mjs +33 -0
  154. package/source/components/notify/stylesheet/namespace.mjs +15 -0
  155. package/source/components/notify/stylesheet/notify.mjs +33 -0
  156. package/source/components/state/log/entry.mjs +126 -0
  157. package/source/components/state/log/namespace.mjs +13 -0
  158. package/source/components/state/log.mjs +275 -0
  159. package/source/components/state/namespace.mjs +13 -0
  160. package/source/components/state/state.mjs +131 -0
  161. package/source/components/state/style/log.pcss +111 -0
  162. package/source/components/state/style/state.pcss +113 -0
  163. package/source/components/state/stylesheet/log.mjs +33 -0
  164. package/source/components/state/stylesheet/state.mjs +33 -0
  165. package/source/components/style/badge.pcss +92 -0
  166. package/source/components/style/border.pcss +77 -0
  167. package/source/components/style/button.pcss +105 -0
  168. package/source/components/style/card.pcss +108 -0
  169. package/source/components/style/color.pcss +257 -0
  170. package/source/components/style/common.pcss +103 -0
  171. package/source/components/style/control.pcss +11 -0
  172. package/source/components/style/data-grid.pcss +43 -0
  173. package/source/components/style/display.pcss +42 -0
  174. package/source/components/style/floating-ui.pcss +33 -0
  175. package/source/components/style/form.pcss +5 -0
  176. package/source/components/style/host.pcss +15 -0
  177. package/source/components/style/link.pcss +63 -0
  178. package/source/components/style/mixin/badge.pcss +18 -0
  179. package/source/components/style/mixin/button.pcss +54 -0
  180. package/source/components/style/mixin/form.pcss +247 -0
  181. package/source/components/style/mixin/hover.pcss +8 -0
  182. package/source/components/style/mixin/media.pcss +107 -0
  183. package/source/components/style/mixin/property.pcss +288 -0
  184. package/source/components/style/mixin/skeleton.pcss +26 -0
  185. package/source/components/style/mixin/spinner.pcss +24 -0
  186. package/source/components/style/mixin/typography.pcss +52 -0
  187. package/source/components/style/normalize.pcss +14 -0
  188. package/source/components/style/popper.pcss +78 -0
  189. package/source/components/style/property.pcss +17 -0
  190. package/source/components/style/ripple.pcss +14 -0
  191. package/source/components/style/skeleton.pcss +28 -0
  192. package/source/components/style/space.pcss +47 -0
  193. package/source/components/style/spinner.pcss +6 -0
  194. package/source/components/style/table.pcss +46 -0
  195. package/source/components/style/theme.pcss +119 -0
  196. package/source/components/style/typography.pcss +131 -0
  197. package/source/components/stylesheet/badge.mjs +33 -0
  198. package/source/components/stylesheet/border.mjs +33 -0
  199. package/source/components/stylesheet/button.mjs +33 -0
  200. package/source/components/stylesheet/card.mjs +33 -0
  201. package/source/components/stylesheet/color.mjs +33 -0
  202. package/source/components/stylesheet/common.mjs +33 -0
  203. package/source/components/stylesheet/control.mjs +33 -0
  204. package/source/components/stylesheet/data-grid.mjs +33 -0
  205. package/source/components/stylesheet/display.mjs +33 -0
  206. package/source/components/stylesheet/floating-ui.mjs +33 -0
  207. package/source/components/stylesheet/form.mjs +33 -0
  208. package/source/components/stylesheet/host.mjs +33 -0
  209. package/source/components/stylesheet/link.mjs +33 -0
  210. package/source/components/stylesheet/namespace.mjs +13 -0
  211. package/source/components/stylesheet/normalize.mjs +33 -0
  212. package/source/components/stylesheet/popper.mjs +33 -0
  213. package/source/components/stylesheet/property.mjs +33 -0
  214. package/source/components/stylesheet/ripple.mjs +33 -0
  215. package/source/components/stylesheet/skeleton.mjs +33 -0
  216. package/source/components/stylesheet/space.mjs +33 -0
  217. package/source/components/stylesheet/spinner.mjs +33 -0
  218. package/source/components/stylesheet/table.mjs +33 -0
  219. package/source/components/stylesheet/theme.mjs +33 -0
  220. package/source/components/stylesheet/tree-menu.mjs +33 -0
  221. package/source/components/stylesheet/typography.mjs +33 -0
  222. package/source/components/tree-menu/namespace.mjs +13 -0
  223. package/source/components/tree-menu/style/tree-menu.pcss +107 -0
  224. package/source/components/tree-menu/stylesheet/namespace.mjs +13 -0
  225. package/source/components/tree-menu/stylesheet/tree-menu.mjs +33 -0
  226. package/source/components/tree-menu/tree-menu.mjs +660 -0
  227. package/source/constraints/abstract.mjs +17 -24
  228. package/source/constraints/abstractoperator.mjs +27 -22
  229. package/source/constraints/andoperator.mjs +20 -17
  230. package/source/constraints/invalid.mjs +17 -17
  231. package/source/constraints/isarray.mjs +20 -20
  232. package/source/constraints/isobject.mjs +20 -20
  233. package/source/constraints/oroperator.mjs +45 -45
  234. package/source/constraints/valid.mjs +17 -17
  235. package/source/data/buildmap.mjs +108 -103
  236. package/source/data/buildtree.mjs +59 -57
  237. package/source/data/datasource/dom.mjs +80 -84
  238. package/source/data/datasource/namespace.mjs +1 -1
  239. package/source/data/datasource/server/restapi/data-fetch-error.mjs +27 -25
  240. package/source/data/datasource/server/restapi/writeerror.mjs +34 -32
  241. package/source/data/datasource/server/restapi.mjs +176 -177
  242. package/source/data/datasource/server/webconnect.mjs +150 -156
  243. package/source/data/datasource/server.mjs +58 -59
  244. package/source/data/datasource/storage/localstorage.mjs +25 -24
  245. package/source/data/datasource/storage/sessionstorage.mjs +28 -25
  246. package/source/data/datasource/storage.mjs +74 -73
  247. package/source/data/datasource.mjs +176 -167
  248. package/source/data/diff.mjs +98 -97
  249. package/source/data/extend.mjs +42 -42
  250. package/source/data/pathfinder.mjs +301 -288
  251. package/source/data/pipe.mjs +36 -36
  252. package/source/data/transformer.mjs +742 -726
  253. package/source/dom/assembler.mjs +44 -44
  254. package/source/dom/attributes.mjs +142 -122
  255. package/source/dom/constants.mjs +62 -58
  256. package/source/dom/customcontrol.mjs +299 -299
  257. package/source/dom/customelement.mjs +843 -806
  258. package/source/dom/dimension.mjs +56 -46
  259. package/source/dom/events.mjs +74 -69
  260. package/source/dom/focusmanager.mjs +175 -175
  261. package/source/dom/locale.mjs +28 -28
  262. package/source/dom/ready.mjs +13 -13
  263. package/source/dom/resource/data.mjs +117 -111
  264. package/source/dom/resource/link/stylesheet.mjs +16 -16
  265. package/source/dom/resource/link.mjs +94 -96
  266. package/source/dom/resource/script.mjs +72 -74
  267. package/source/dom/resource.mjs +174 -172
  268. package/source/dom/resourcemanager.mjs +152 -156
  269. package/source/dom/slotted.mjs +78 -80
  270. package/source/dom/template.mjs +126 -112
  271. package/source/dom/theme.mjs +35 -35
  272. package/source/dom/updater.mjs +673 -651
  273. package/source/dom/util/extract-keys.mjs +34 -22
  274. package/source/dom/util/init-options-from-attributes.mjs +46 -38
  275. package/source/dom/util/namespace.mjs +13 -0
  276. package/source/dom/util/set-option-from-attribute.mjs +35 -29
  277. package/source/dom/util.mjs +112 -81
  278. package/source/dom/worker/factory.mjs +83 -83
  279. package/source/i18n/formatter.mjs +75 -73
  280. package/source/i18n/locale.mjs +146 -144
  281. package/source/i18n/provider.mjs +70 -64
  282. package/source/i18n/providers/embed.mjs +136 -127
  283. package/source/i18n/providers/fetch.mjs +84 -76
  284. package/source/i18n/translations.mjs +205 -195
  285. package/source/logging/handler/console.mjs +36 -36
  286. package/source/logging/handler.mjs +140 -140
  287. package/source/logging/logentry.mjs +25 -25
  288. package/source/logging/logger.mjs +177 -175
  289. package/source/math/random.mjs +63 -59
  290. package/source/monster.mjs +223 -103
  291. package/source/net/webconnect/message.mjs +31 -31
  292. package/source/net/webconnect.mjs +278 -271
  293. package/source/text/bracketed-key-value-hash.mjs +182 -179
  294. package/source/text/formatter.mjs +235 -210
  295. package/source/text/generate-range-comparison-expression.mjs +56 -34
  296. package/source/text/namespace.mjs +1 -1
  297. package/source/types/base.mjs +69 -61
  298. package/source/types/basewithoptions.mjs +46 -46
  299. package/source/types/binary.mjs +20 -20
  300. package/source/types/dataurl.mjs +96 -90
  301. package/source/types/global.mjs +45 -39
  302. package/source/types/id.mjs +25 -25
  303. package/source/types/internal.mjs +115 -114
  304. package/source/types/is.mjs +56 -40
  305. package/source/types/mediatype.mjs +119 -119
  306. package/source/types/namespace.mjs +1 -1
  307. package/source/types/node.mjs +160 -150
  308. package/source/types/nodelist.mjs +94 -96
  309. package/source/types/noderecursiveiterator.mjs +50 -50
  310. package/source/types/observablequeue.mjs +73 -73
  311. package/source/types/observer.mjs +104 -104
  312. package/source/types/observerlist.mjs +66 -66
  313. package/source/types/proxyobserver.mjs +210 -210
  314. package/source/types/queue.mjs +63 -63
  315. package/source/types/randomid.mjs +13 -13
  316. package/source/types/regex.mjs +3 -1
  317. package/source/types/stack.mjs +64 -64
  318. package/source/types/tokenlist.mjs +206 -205
  319. package/source/types/typeof.mjs +12 -10
  320. package/source/types/uniquequeue.mjs +48 -48
  321. package/source/types/uuid.mjs +32 -32
  322. package/source/types/validate.mjs +67 -67
  323. package/source/types/version.mjs +115 -105
  324. package/source/util/clone.mjs +103 -91
  325. package/source/util/comparator.mjs +97 -97
  326. package/source/util/deadmansswitch.mjs +40 -44
  327. package/source/util/freeze.mjs +10 -9
  328. package/source/util/namespace.mjs +1 -1
  329. package/source/util/processing.mjs +104 -105
  330. package/source/util/runtime.mjs +56 -44
  331. package/source/util/trimspaces.mjs +24 -24
  332. package/test/cases/components/form/button.mjs +122 -0
  333. package/test/cases/components/form/confirm-button.mjs +127 -0
  334. package/test/cases/components/form/form.mjs +317 -0
  335. package/test/cases/components/form/reload.mjs +188 -0
  336. package/test/cases/components/form/select.mjs +229 -0
  337. package/test/cases/components/form/state-button.mjs +130 -0
  338. package/test/cases/components/form/tabs.mjs +98 -0
  339. package/test/cases/components/form/template.mjs +189 -0
  340. package/test/cases/components/form/tree-select.mjs +216 -0
  341. package/test/cases/components/host/details.mjs +68 -0
  342. package/test/cases/components/host/host.mjs +70 -0
  343. package/test/cases/components/host/overlay.mjs +60 -0
  344. package/test/cases/components/host/util.mjs +79 -0
  345. package/test/cases/components/notify/message.mjs +39 -0
  346. package/test/cases/components/notify/notify.mjs +89 -0
  347. package/test/cases/dom/customcontrol.mjs +5 -4
  348. package/test/cases/math/random.mjs +0 -1
  349. package/test/cases/monster.mjs +1 -1
  350. package/test/cases/net/webconnect/message.mjs +0 -1
  351. package/test/cases/types/node.mjs +1 -1
  352. package/test/util/chai-dom.mjs +2 -2
  353. package/test/util/intersection-mock.mjs +69 -0
  354. package/test/util/jsdom.mjs +41 -25
  355. package/test/util/localstorage.mjs +1 -0
  356. package/test/util/resize-observer.mjs +29 -0
  357. package/test/util/websocket.mjs +4 -1
  358. package/test/web/import.js +16 -1
  359. package/test/web/test.html +28 -5
  360. package/test/web/tests.js +30398 -17879
@@ -14,7 +14,7 @@ export { ID };
14
14
  * @private
15
15
  * @type {Map<string, integer>}
16
16
  */
17
- let internalCounter = new Map();
17
+ const internalCounter = new Map();
18
18
 
19
19
  /**
20
20
  * With the id class, sequences of ids can be created. for this purpose, an internal counter is incremented for each prefix.
@@ -32,34 +32,34 @@ let internalCounter = new Map();
32
32
  * @summary Automatic generation of ids
33
33
  */
34
34
  class ID extends Base {
35
- /**
36
- * create new id with prefix
37
- *
38
- * @param {string} prefix
39
- */
40
- constructor(prefix) {
41
- super();
35
+ /**
36
+ * create new id with prefix
37
+ *
38
+ * @param {string} prefix
39
+ */
40
+ constructor(prefix) {
41
+ super();
42
42
 
43
- if (prefix === undefined) {
44
- prefix = "id";
45
- }
43
+ if (prefix === undefined) {
44
+ prefix = "id";
45
+ }
46
46
 
47
- validateString(prefix);
47
+ validateString(prefix);
48
48
 
49
- if (!internalCounter.has(prefix)) {
50
- internalCounter.set(prefix, 1);
51
- }
49
+ if (!internalCounter.has(prefix)) {
50
+ internalCounter.set(prefix, 1);
51
+ }
52
52
 
53
- let count = internalCounter.get(prefix);
54
- this.id = prefix + count;
53
+ let count = internalCounter.get(prefix);
54
+ this.id = prefix + count;
55
55
 
56
- internalCounter.set(prefix, ++count);
57
- }
56
+ internalCounter.set(prefix, ++count);
57
+ }
58
58
 
59
- /**
60
- * @return {string}
61
- */
62
- toString() {
63
- return this.id;
64
- }
59
+ /**
60
+ * @return {string}
61
+ */
62
+ toString() {
63
+ return this.id;
64
+ }
65
65
  }
@@ -38,97 +38,98 @@ const propertyName = "internalDefaults";
38
38
  * @memberOf Monster.Types
39
39
  */
40
40
  function equipWithInternal() {
41
- const self = this;
42
- validateObject(self);
43
-
44
- if (!hasGetter(self, propertyName)) {
45
- Object.defineProperty(self, propertyName, {
46
- get: function () {
47
- return {};
48
- },
49
- });
50
- }
51
-
52
- const defaults = extend({}, self[propertyName] || {});
53
- self[internalSymbol] = new ProxyObserver(defaults);
54
-
55
- /**
56
- * Attach a new observer
57
- *
58
- * @param {Observer} observer
59
- * @returns {ProxyObserver}
60
- */
61
- self["attachInternalObserver"] = (observer) => {
62
- self[internalSymbol].attachObserver(observer);
63
- return self;
64
- };
65
-
66
- /**
67
- * Detach a observer
68
- *
69
- * @param {Observer} observer
70
- * @returns {ProxyObserver}
71
- */
72
- self["detachInternalObserver"] = (observer) => {
73
- self[internalSymbol].detachObserver(observer);
74
- return self;
75
- };
76
-
77
- /**
78
- * Check if a observer is attached
79
- *
80
- * @param {Observer} observer
81
- * @returns {boolean}
82
- */
83
- self["containsInternalObserver"] = (observer) => {
84
- return self[internalSymbol].containsObserver(observer);
85
- };
86
-
87
- /**
88
- * Set an internal value, nested internals can be specified by path `a.b.c`
89
- *
90
- * @param {string} path
91
- * @param {*} value
92
- * @return {Datasource}
93
- */
94
- self["setInternal"] = (path, value) => {
95
- new Pathfinder(self[internalSymbol].getSubject()).setVia(path, value);
96
- return self;
97
- };
98
-
99
- /**
100
- * set multiple internals at once
101
- *
102
- * @param {string|object} options
103
- * @return {Datasource}
104
- * @throws {Error} the options does not contain a valid json definition
105
- */
106
- self["setInternals"] = (options) => {
107
- if (isString(options)) {
108
- options = parseOptionsJSON(options);
109
- }
110
-
111
- extend(self[internalSymbol].getSubject(), defaults, options);
112
- return self;
113
- };
114
-
115
- /**
116
- * nested internals can be specified by path `a.b.c`
117
- *
118
- * @param {string} path
119
- * @param {*} defaultValue
120
- * @return {*}
121
- */
122
- self["getInternal"] = (path, defaultValue) => {
123
- let value;
124
-
125
- try {
126
- value = new Pathfinder(self[internalSymbol].getRealSubject()).getVia(path);
127
- } catch (e) {}
128
-
129
- if (value === undefined) return defaultValue;
130
- return value;
131
- };
41
+ validateObject(this);
42
+
43
+ if (!hasGetter(this, propertyName)) {
44
+ Object.defineProperty(this, propertyName, {
45
+ get: function () {
46
+ return {};
47
+ },
48
+ });
49
+ }
50
+
51
+ const defaults = extend({}, this[propertyName] || {});
52
+ this[internalSymbol] = new ProxyObserver(defaults);
53
+
54
+ /**
55
+ * Attach a new observer
56
+ *
57
+ * @param {Observer} observer
58
+ * @returns {ProxyObserver}
59
+ */
60
+ this["attachInternalObserver"] = (observer) => {
61
+ this[internalSymbol].attachObserver(observer);
62
+ return this;
63
+ };
64
+
65
+ /**
66
+ * Detach a observer
67
+ *
68
+ * @param {Observer} observer
69
+ * @returns {ProxyObserver}
70
+ */
71
+ this["detachInternalObserver"] = (observer) => {
72
+ this[internalSymbol].detachObserver(observer);
73
+ return this;
74
+ };
75
+
76
+ /**
77
+ * Check if a observer is attached
78
+ *
79
+ * @param {Observer} observer
80
+ * @returns {boolean}
81
+ */
82
+ this["containsInternalObserver"] = (observer) => {
83
+ return this[internalSymbol].containsObserver(observer);
84
+ };
85
+
86
+ /**
87
+ * Set an internal value, nested internals can be specified by path `a.b.c`
88
+ *
89
+ * @param {string} path
90
+ * @param {*} value
91
+ * @return {Datasource}
92
+ */
93
+ this["setInternal"] = (path, value) => {
94
+ new Pathfinder(this[internalSymbol].getSubject()).setVia(path, value);
95
+ return this;
96
+ };
97
+
98
+ /**
99
+ * set multiple internals at once
100
+ *
101
+ * @param {string|object} options
102
+ * @return {Datasource}
103
+ * @throws {Error} the options does not contain a valid json definition
104
+ */
105
+ this["setInternals"] = (options) => {
106
+ if (isString(options)) {
107
+ options = parseOptionsJSON(options);
108
+ }
109
+
110
+ extend(this[internalSymbol].getSubject(), defaults, options);
111
+ return this;
112
+ };
113
+
114
+ /**
115
+ * nested internals can be specified by path `a.b.c`
116
+ *
117
+ * @param {string} path
118
+ * @param {*} defaultValue
119
+ * @return {*}
120
+ */
121
+ this["getInternal"] = (path, defaultValue) => {
122
+ let value;
123
+
124
+ try {
125
+ value = new Pathfinder(this[internalSymbol].getRealSubject()).getVia(
126
+ path,
127
+ );
128
+ } catch (e) {}
129
+
130
+ if (value === undefined) return defaultValue;
131
+ return value;
132
+ };
132
133
  }
133
134
 
134
135
  /**
@@ -138,14 +139,14 @@ function equipWithInternal() {
138
139
  * @return {boolean}
139
140
  */
140
141
  function hasGetter(obj, prop) {
141
- while (isObject(obj)) {
142
- if (Object.getOwnPropertyDescriptor(obj, prop)?.["get"]) {
143
- return true;
144
- }
145
- obj = Object.getPrototypeOf(obj);
146
- }
147
-
148
- return false;
142
+ while (isObject(obj)) {
143
+ if (Object.getOwnPropertyDescriptor(obj, prop)?.["get"]) {
144
+ return true;
145
+ }
146
+ obj = Object.getPrototypeOf(obj);
147
+ }
148
+
149
+ return false;
149
150
  }
150
151
 
151
152
  /**
@@ -154,23 +155,23 @@ function hasGetter(obj, prop) {
154
155
  * @return {Object}
155
156
  */
156
157
  function parseOptionsJSON(data) {
157
- let obj = {};
158
+ let obj = {};
158
159
 
159
- if (!isString(data)) {
160
- return obj;
161
- }
160
+ if (!isString(data)) {
161
+ return obj;
162
+ }
162
163
 
163
- // the configuration can be specified as a data url.
164
- try {
165
- let dataUrl = parseDataURL(data);
166
- data = dataUrl.content;
167
- } catch (e) {}
164
+ // the configuration can be specified as a data url.
165
+ try {
166
+ const dataUrl = parseDataURL(data);
167
+ data = dataUrl.content;
168
+ } catch (e) {}
168
169
 
169
- try {
170
- obj = JSON.parse(data);
171
- } catch (e) {
172
- throw e;
173
- }
170
+ try {
171
+ obj = JSON.parse(data);
172
+ } catch (e) {
173
+ throw e;
174
+ }
174
175
 
175
- return validateObject(obj);
176
+ return validateObject(obj);
176
177
  }
@@ -5,7 +5,18 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- export { isIterable, isPrimitive, isSymbol, isBoolean, isString, isObject, isInstance, isArray, isFunction, isInteger };
8
+ export {
9
+ isIterable,
10
+ isPrimitive,
11
+ isSymbol,
12
+ isBoolean,
13
+ isString,
14
+ isObject,
15
+ isInstance,
16
+ isArray,
17
+ isFunction,
18
+ isInteger,
19
+ };
9
20
 
10
21
  /**
11
22
  * With this function you can check if a value is iterable.
@@ -23,9 +34,9 @@ export { isIterable, isPrimitive, isSymbol, isBoolean, isString, isObject, isIns
23
34
  * @memberOf Monster.Types
24
35
  */
25
36
  function isIterable(value) {
26
- if (value === undefined) return false;
27
- if (value === null) return false;
28
- return typeof value?.[Symbol.iterator] === "function";
37
+ if (value === undefined) return false;
38
+ if (value === null) return false;
39
+ return typeof value?.[Symbol.iterator] === "function";
29
40
  }
30
41
 
31
42
  /**
@@ -42,19 +53,24 @@ function isIterable(value) {
42
53
  * @memberOf Monster.Types
43
54
  */
44
55
  function isPrimitive(value) {
45
- var type;
56
+ var type;
46
57
 
47
- if (value === undefined || value === null) {
48
- return true;
49
- }
58
+ if (value === undefined || value === null) {
59
+ return true;
60
+ }
50
61
 
51
- type = typeof value;
62
+ type = typeof value;
52
63
 
53
- if (type === "string" || type === "number" || type === "boolean" || type === "symbol") {
54
- return true;
55
- }
64
+ if (
65
+ type === "string" ||
66
+ type === "number" ||
67
+ type === "boolean" ||
68
+ type === "symbol"
69
+ ) {
70
+ return true;
71
+ }
56
72
 
57
- return false;
73
+ return false;
58
74
  }
59
75
 
60
76
  /**
@@ -71,7 +87,7 @@ function isPrimitive(value) {
71
87
  * @memberOf Monster.Types
72
88
  */
73
89
  function isSymbol(value) {
74
- return "symbol" === typeof value ? true : false;
90
+ return "symbol" === typeof value ? true : false;
75
91
  }
76
92
 
77
93
  /**
@@ -88,11 +104,11 @@ function isSymbol(value) {
88
104
  * @memberOf Monster.Types
89
105
  */
90
106
  function isBoolean(value) {
91
- if (value === true || value === false) {
92
- return true;
93
- }
107
+ if (value === true || value === false) {
108
+ return true;
109
+ }
94
110
 
95
- return false;
111
+ return false;
96
112
  }
97
113
 
98
114
  /**
@@ -109,10 +125,10 @@ function isBoolean(value) {
109
125
  * @memberOf Monster.Types
110
126
  */
111
127
  function isString(value) {
112
- if (value === undefined || typeof value !== "string") {
113
- return false;
114
- }
115
- return true;
128
+ if (value === undefined || typeof value !== "string") {
129
+ return false;
130
+ }
131
+ return true;
116
132
  }
117
133
 
118
134
  /**
@@ -129,14 +145,14 @@ function isString(value) {
129
145
  * @memberOf Monster.Types
130
146
  */
131
147
  function isObject(value) {
132
- if (isArray(value)) return false;
133
- if (isPrimitive(value)) return false;
148
+ if (isArray(value)) return false;
149
+ if (isPrimitive(value)) return false;
134
150
 
135
- if (typeof value === "object") {
136
- return true;
137
- }
151
+ if (typeof value === "object") {
152
+ return true;
153
+ }
138
154
 
139
- return false;
155
+ return false;
140
156
  }
141
157
 
142
158
  /**
@@ -154,10 +170,10 @@ function isObject(value) {
154
170
  * @memberOf Monster.Types
155
171
  */
156
172
  function isInstance(value, instance) {
157
- if (!isObject(value)) return false;
158
- if (!isFunction(instance)) return false;
159
- if (!instance.hasOwnProperty("prototype")) return false;
160
- return value instanceof instance ? true : false;
173
+ if (!isObject(value)) return false;
174
+ if (!isFunction(instance)) return false;
175
+ if (!instance.hasOwnProperty("prototype")) return false;
176
+ return value instanceof instance ? true : false;
161
177
  }
162
178
 
163
179
  /**
@@ -175,7 +191,7 @@ function isInstance(value, instance) {
175
191
  * @see https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
176
192
  */
177
193
  function isArray(value) {
178
- return Array.isArray(value);
194
+ return Array.isArray(value);
179
195
  }
180
196
 
181
197
  /**
@@ -192,14 +208,14 @@ function isArray(value) {
192
208
  * @memberOf Monster.Types
193
209
  */
194
210
  function isFunction(value) {
195
- if (isArray(value)) return false;
196
- if (isPrimitive(value)) return false;
211
+ if (isArray(value)) return false;
212
+ if (isPrimitive(value)) return false;
197
213
 
198
- if (typeof value === "function") {
199
- return true;
200
- }
214
+ if (typeof value === "function") {
215
+ return true;
216
+ }
201
217
 
202
- return false;
218
+ return false;
203
219
  }
204
220
 
205
221
  /**
@@ -216,5 +232,5 @@ function isFunction(value) {
216
232
  * @memberOf Monster.Types
217
233
  */
218
234
  function isInteger(value) {
219
- return Number.isInteger(value);
235
+ return Number.isInteger(value);
220
236
  }