@schukai/monster 3.51.5 → 3.52.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 (361) hide show
  1. package/CHANGELOG.md +25 -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/example/data/datasource/server/restapi.mjs +7 -1
  12. package/package.json +6 -2
  13. package/source/components/constants.mjs +132 -0
  14. package/source/components/datatable/columnbar.mjs +310 -0
  15. package/source/components/datatable/constants.mjs +121 -0
  16. package/source/components/datatable/dataset.mjs +219 -0
  17. package/source/components/datatable/datasource/dom.mjs +186 -0
  18. package/source/components/datatable/datasource/namespace.mjs +13 -0
  19. package/source/components/datatable/datasource/rest.mjs +400 -0
  20. package/source/components/datatable/datasource.mjs +102 -0
  21. package/source/components/datatable/datatable/header.mjs +268 -0
  22. package/source/components/datatable/datatable/namespace.mjs +13 -0
  23. package/source/components/datatable/datatable.mjs +789 -0
  24. package/source/components/datatable/embedded-pagination.mjs +113 -0
  25. package/source/components/datatable/filter/abstract-base.mjs +31 -0
  26. package/source/components/datatable/filter/date-range.mjs +1041 -0
  27. package/source/components/datatable/filter/input.mjs +175 -0
  28. package/source/components/datatable/filter/namespace.mjs +13 -0
  29. package/source/components/datatable/filter/range.mjs +671 -0
  30. package/source/components/datatable/filter/select.mjs +65 -0
  31. package/source/components/datatable/filter/settings.mjs +116 -0
  32. package/source/components/datatable/filter-button.mjs +98 -0
  33. package/source/components/datatable/filter.mjs +929 -0
  34. package/source/components/datatable/namespace.mjs +11 -0
  35. package/source/components/datatable/pagination.mjs +456 -0
  36. package/source/components/datatable/style/column-bar.pcss +123 -0
  37. package/source/components/datatable/style/dataset.pcss +13 -0
  38. package/source/components/datatable/style/datasource.pcss +16 -0
  39. package/source/components/datatable/style/datatable.pcss +239 -0
  40. package/source/components/datatable/style/embedded-pagination.pcss +101 -0
  41. package/source/components/datatable/style/filter-button.pcss +22 -0
  42. package/source/components/datatable/style/filter-controls-defaults.pcss +46 -0
  43. package/source/components/datatable/style/filter-date-range.pcss +9 -0
  44. package/source/components/datatable/style/filter-range.pcss +5 -0
  45. package/source/components/datatable/style/filter.pcss +156 -0
  46. package/source/components/datatable/style/pagination.pcss +59 -0
  47. package/source/components/datatable/style/select-filter.pcss +27 -0
  48. package/source/components/datatable/stylesheet/column-bar.mjs +27 -0
  49. package/source/components/datatable/stylesheet/dataset.mjs +27 -0
  50. package/source/components/datatable/stylesheet/datasource.mjs +27 -0
  51. package/source/components/datatable/stylesheet/datatable.mjs +27 -0
  52. package/source/components/datatable/stylesheet/embedded-pagination.mjs +27 -0
  53. package/source/components/datatable/stylesheet/filter-button.mjs +27 -0
  54. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +27 -0
  55. package/source/components/datatable/stylesheet/filter-date-range.mjs +27 -0
  56. package/source/components/datatable/stylesheet/filter-range.mjs +27 -0
  57. package/source/components/datatable/stylesheet/filter.mjs +27 -0
  58. package/source/components/datatable/stylesheet/namespace.mjs +13 -0
  59. package/source/components/datatable/stylesheet/pagination.mjs +27 -0
  60. package/source/components/datatable/stylesheet/select-filter.mjs +27 -0
  61. package/source/components/datatable/util.mjs +60 -0
  62. package/source/components/form/action-button.mjs +262 -0
  63. package/source/components/form/api-button.mjs +515 -0
  64. package/source/components/form/button-bar.mjs +739 -0
  65. package/source/components/form/button.mjs +350 -0
  66. package/source/components/form/confirm-button.mjs +330 -0
  67. package/source/components/form/constants.mjs +111 -0
  68. package/source/components/form/context-help.mjs +123 -0
  69. package/source/components/form/events.mjs +84 -0
  70. package/source/components/form/form.mjs +601 -0
  71. package/source/components/form/message-state-button.mjs +396 -0
  72. package/source/components/form/namespace.mjs +13 -0
  73. package/source/components/form/popper-button.mjs +435 -0
  74. package/source/components/form/popper.mjs +487 -0
  75. package/source/components/form/reload.mjs +360 -0
  76. package/source/components/form/select.mjs +2314 -0
  77. package/source/components/form/shadow-reload.mjs +137 -0
  78. package/source/components/form/state-button.mjs +182 -0
  79. package/source/components/form/style/action-button.pcss +41 -0
  80. package/source/components/form/style/api-button.pcss +0 -0
  81. package/source/components/form/style/button-bar.pcss +51 -0
  82. package/source/components/form/style/button.pcss +8 -0
  83. package/source/components/form/style/confirm-button.pcss +17 -0
  84. package/source/components/form/style/context-help.pcss +16 -0
  85. package/source/components/form/style/form.pcss +10 -0
  86. package/source/components/form/style/message-state-button.pcss +10 -0
  87. package/source/components/form/style/popper-button.pcss +16 -0
  88. package/source/components/form/style/popper.pcss +8 -0
  89. package/source/components/form/style/select.pcss +265 -0
  90. package/source/components/form/style/state-button.pcss +116 -0
  91. package/source/components/form/style/tabs.pcss +173 -0
  92. package/source/components/form/style/tree-select.pcss +81 -0
  93. package/source/components/form/stylesheet/action-button.mjs +27 -0
  94. package/source/components/form/stylesheet/api-button.mjs +27 -0
  95. package/source/components/form/stylesheet/button-bar.mjs +27 -0
  96. package/source/components/form/stylesheet/button.mjs +27 -0
  97. package/source/components/form/stylesheet/confirm-button.mjs +27 -0
  98. package/source/components/form/stylesheet/context-help.mjs +27 -0
  99. package/source/components/form/stylesheet/form.mjs +27 -0
  100. package/source/components/form/stylesheet/message-state-button.mjs +27 -0
  101. package/source/components/form/stylesheet/namespace.mjs +13 -0
  102. package/source/components/form/stylesheet/popper-button.mjs +27 -0
  103. package/source/components/form/stylesheet/popper.mjs +27 -0
  104. package/source/components/form/stylesheet/select.mjs +27 -0
  105. package/source/components/form/stylesheet/state-button.mjs +27 -0
  106. package/source/components/form/stylesheet/tabs.mjs +27 -0
  107. package/source/components/form/stylesheet/tree-select.mjs +27 -0
  108. package/source/components/form/tabs.mjs +1029 -0
  109. package/source/components/form/template.mjs +373 -0
  110. package/source/components/form/tree-select.mjs +527 -0
  111. package/source/components/form/types/namespace.mjs +13 -0
  112. package/source/components/form/types/state.mjs +93 -0
  113. package/source/components/form/util/fetch.mjs +133 -0
  114. package/source/components/form/util/floating-ui.mjs +245 -0
  115. package/source/components/form/util/namespace.mjs +13 -0
  116. package/source/components/form/util/popper.mjs +49 -0
  117. package/source/components/host/call-button.mjs +236 -0
  118. package/source/components/host/collapse.mjs +526 -0
  119. package/source/components/host/config-manager.mjs +304 -0
  120. package/source/components/host/constants.mjs +18 -0
  121. package/source/components/host/details.mjs +268 -0
  122. package/source/components/host/events.mjs +131 -0
  123. package/source/components/host/host.mjs +420 -0
  124. package/source/components/host/namespace.mjs +13 -0
  125. package/source/components/host/overlay.mjs +339 -0
  126. package/source/components/host/style/call-button.pcss +36 -0
  127. package/source/components/host/style/collapse.pcss +67 -0
  128. package/source/components/host/style/config-manager.pcss +5 -0
  129. package/source/components/host/style/details.pcss +68 -0
  130. package/source/components/host/style/host.pcss +43 -0
  131. package/source/components/host/style/overlay.pcss +73 -0
  132. package/source/components/host/style/toggle-button.pcss +36 -0
  133. package/source/components/host/style/viewer.pcss +13 -0
  134. package/source/components/host/stylesheet/call-button.mjs +27 -0
  135. package/source/components/host/stylesheet/collapse.mjs +27 -0
  136. package/source/components/host/stylesheet/config-manager.mjs +27 -0
  137. package/source/components/host/stylesheet/details.mjs +27 -0
  138. package/source/components/host/stylesheet/host.mjs +27 -0
  139. package/source/components/host/stylesheet/namespace.mjs +13 -0
  140. package/source/components/host/stylesheet/overlay.mjs +27 -0
  141. package/source/components/host/stylesheet/toggle-button.mjs +27 -0
  142. package/source/components/host/stylesheet/viewer.mjs +27 -0
  143. package/source/components/host/toggle-button.mjs +88 -0
  144. package/source/components/host/util.mjs +23 -0
  145. package/source/components/host/viewer.mjs +309 -0
  146. package/source/components/namespace.mjs +14 -0
  147. package/source/components/notify/constants.mjs +15 -0
  148. package/source/components/notify/events.mjs +15 -0
  149. package/source/components/notify/message.mjs +374 -0
  150. package/source/components/notify/namespace.mjs +15 -0
  151. package/source/components/notify/notify.mjs +236 -0
  152. package/source/components/notify/style/message.pcss +57 -0
  153. package/source/components/notify/style/notify.pcss +118 -0
  154. package/source/components/notify/stylesheet/message.mjs +27 -0
  155. package/source/components/notify/stylesheet/namespace.mjs +15 -0
  156. package/source/components/notify/stylesheet/notify.mjs +27 -0
  157. package/source/components/state/log/entry.mjs +126 -0
  158. package/source/components/state/log/namespace.mjs +13 -0
  159. package/source/components/state/log.mjs +275 -0
  160. package/source/components/state/namespace.mjs +13 -0
  161. package/source/components/state/state.mjs +131 -0
  162. package/source/components/state/style/log.pcss +111 -0
  163. package/source/components/state/style/state.pcss +113 -0
  164. package/source/components/state/stylesheet/log.mjs +27 -0
  165. package/source/components/state/stylesheet/state.mjs +27 -0
  166. package/source/components/style/badge.pcss +92 -0
  167. package/source/components/style/border.pcss +77 -0
  168. package/source/components/style/button.pcss +105 -0
  169. package/source/components/style/card.pcss +108 -0
  170. package/source/components/style/color.pcss +257 -0
  171. package/source/components/style/common.pcss +105 -0
  172. package/source/components/style/control.pcss +11 -0
  173. package/source/components/style/data-grid.pcss +43 -0
  174. package/source/components/style/display.pcss +42 -0
  175. package/source/components/style/floating-ui.pcss +33 -0
  176. package/source/components/style/form.pcss +5 -0
  177. package/source/components/style/host.pcss +15 -0
  178. package/source/components/style/link.pcss +63 -0
  179. package/source/components/style/mixin/badge.pcss +18 -0
  180. package/source/components/style/mixin/button.pcss +52 -0
  181. package/source/components/style/mixin/form.pcss +247 -0
  182. package/source/components/style/mixin/hover.pcss +8 -0
  183. package/source/components/style/mixin/media.pcss +107 -0
  184. package/source/components/style/mixin/property.pcss +292 -0
  185. package/source/components/style/mixin/skeleton.pcss +26 -0
  186. package/source/components/style/mixin/spinner.pcss +24 -0
  187. package/source/components/style/mixin/typography.pcss +52 -0
  188. package/source/components/style/normalize.pcss +14 -0
  189. package/source/components/style/popper.pcss +78 -0
  190. package/source/components/style/property.pcss +17 -0
  191. package/source/components/style/ripple.pcss +14 -0
  192. package/source/components/style/skeleton.pcss +28 -0
  193. package/source/components/style/space.pcss +47 -0
  194. package/source/components/style/spinner.pcss +6 -0
  195. package/source/components/style/table.pcss +46 -0
  196. package/source/components/style/theme.pcss +119 -0
  197. package/source/components/style/typography.pcss +131 -0
  198. package/source/components/stylesheet/badge.mjs +27 -0
  199. package/source/components/stylesheet/border.mjs +27 -0
  200. package/source/components/stylesheet/button.mjs +27 -0
  201. package/source/components/stylesheet/card.mjs +27 -0
  202. package/source/components/stylesheet/color.mjs +27 -0
  203. package/source/components/stylesheet/common.mjs +27 -0
  204. package/source/components/stylesheet/control.mjs +27 -0
  205. package/source/components/stylesheet/data-grid.mjs +27 -0
  206. package/source/components/stylesheet/display.mjs +27 -0
  207. package/source/components/stylesheet/floating-ui.mjs +27 -0
  208. package/source/components/stylesheet/form.mjs +27 -0
  209. package/source/components/stylesheet/host.mjs +27 -0
  210. package/source/components/stylesheet/link.mjs +27 -0
  211. package/source/components/stylesheet/namespace.mjs +13 -0
  212. package/source/components/stylesheet/normalize.mjs +27 -0
  213. package/source/components/stylesheet/popper.mjs +27 -0
  214. package/source/components/stylesheet/property.mjs +27 -0
  215. package/source/components/stylesheet/ripple.mjs +27 -0
  216. package/source/components/stylesheet/skeleton.mjs +27 -0
  217. package/source/components/stylesheet/space.mjs +27 -0
  218. package/source/components/stylesheet/spinner.mjs +27 -0
  219. package/source/components/stylesheet/table.mjs +27 -0
  220. package/source/components/stylesheet/theme.mjs +27 -0
  221. package/source/components/stylesheet/tree-menu.mjs +33 -0
  222. package/source/components/stylesheet/typography.mjs +27 -0
  223. package/source/components/tree-menu/namespace.mjs +13 -0
  224. package/source/components/tree-menu/style/tree-menu.pcss +107 -0
  225. package/source/components/tree-menu/stylesheet/namespace.mjs +13 -0
  226. package/source/components/tree-menu/stylesheet/tree-menu.mjs +27 -0
  227. package/source/components/tree-menu/tree-menu.mjs +660 -0
  228. package/source/constraints/abstract.mjs +17 -24
  229. package/source/constraints/abstractoperator.mjs +27 -22
  230. package/source/constraints/andoperator.mjs +20 -17
  231. package/source/constraints/invalid.mjs +17 -17
  232. package/source/constraints/isarray.mjs +20 -20
  233. package/source/constraints/isobject.mjs +20 -20
  234. package/source/constraints/oroperator.mjs +45 -45
  235. package/source/constraints/valid.mjs +17 -17
  236. package/source/data/buildmap.mjs +108 -103
  237. package/source/data/buildtree.mjs +59 -57
  238. package/source/data/datasource/dom.mjs +80 -84
  239. package/source/data/datasource/namespace.mjs +1 -1
  240. package/source/data/datasource/server/restapi/data-fetch-error.mjs +27 -25
  241. package/source/data/datasource/server/restapi/writeerror.mjs +35 -32
  242. package/source/data/datasource/server/restapi.mjs +176 -177
  243. package/source/data/datasource/server/webconnect.mjs +150 -156
  244. package/source/data/datasource/server.mjs +62 -63
  245. package/source/data/datasource/storage/localstorage.mjs +25 -24
  246. package/source/data/datasource/storage/sessionstorage.mjs +28 -25
  247. package/source/data/datasource/storage.mjs +74 -73
  248. package/source/data/datasource.mjs +177 -168
  249. package/source/data/diff.mjs +98 -97
  250. package/source/data/extend.mjs +42 -42
  251. package/source/data/pathfinder.mjs +301 -288
  252. package/source/data/pipe.mjs +36 -36
  253. package/source/data/transformer.mjs +742 -726
  254. package/source/dom/assembler.mjs +44 -44
  255. package/source/dom/attributes.mjs +142 -122
  256. package/source/dom/constants.mjs +62 -58
  257. package/source/dom/customcontrol.mjs +299 -299
  258. package/source/dom/customelement.mjs +843 -806
  259. package/source/dom/dimension.mjs +56 -46
  260. package/source/dom/events.mjs +74 -69
  261. package/source/dom/focusmanager.mjs +175 -175
  262. package/source/dom/locale.mjs +28 -28
  263. package/source/dom/ready.mjs +13 -13
  264. package/source/dom/resource/data.mjs +117 -111
  265. package/source/dom/resource/link/stylesheet.mjs +16 -16
  266. package/source/dom/resource/link.mjs +94 -96
  267. package/source/dom/resource/script.mjs +72 -74
  268. package/source/dom/resource.mjs +174 -172
  269. package/source/dom/resourcemanager.mjs +152 -156
  270. package/source/dom/slotted.mjs +78 -80
  271. package/source/dom/template.mjs +126 -112
  272. package/source/dom/theme.mjs +35 -35
  273. package/source/dom/updater.mjs +673 -651
  274. package/source/dom/util/extract-keys.mjs +34 -22
  275. package/source/dom/util/init-options-from-attributes.mjs +46 -38
  276. package/source/dom/util/namespace.mjs +13 -0
  277. package/source/dom/util/set-option-from-attribute.mjs +35 -29
  278. package/source/dom/util.mjs +112 -81
  279. package/source/dom/worker/factory.mjs +83 -83
  280. package/source/i18n/formatter.mjs +75 -73
  281. package/source/i18n/locale.mjs +146 -144
  282. package/source/i18n/provider.mjs +70 -64
  283. package/source/i18n/providers/embed.mjs +136 -127
  284. package/source/i18n/providers/fetch.mjs +84 -76
  285. package/source/i18n/translations.mjs +205 -195
  286. package/source/logging/handler/console.mjs +36 -36
  287. package/source/logging/handler.mjs +140 -140
  288. package/source/logging/logentry.mjs +25 -25
  289. package/source/logging/logger.mjs +177 -175
  290. package/source/math/random.mjs +63 -59
  291. package/source/monster.mjs +223 -103
  292. package/source/net/webconnect/message.mjs +31 -31
  293. package/source/net/webconnect.mjs +278 -271
  294. package/source/text/bracketed-key-value-hash.mjs +182 -179
  295. package/source/text/formatter.mjs +235 -210
  296. package/source/text/generate-range-comparison-expression.mjs +56 -34
  297. package/source/text/namespace.mjs +1 -1
  298. package/source/types/base.mjs +69 -61
  299. package/source/types/basewithoptions.mjs +46 -46
  300. package/source/types/binary.mjs +20 -20
  301. package/source/types/dataurl.mjs +96 -90
  302. package/source/types/global.mjs +45 -39
  303. package/source/types/id.mjs +25 -25
  304. package/source/types/internal.mjs +115 -114
  305. package/source/types/is.mjs +56 -40
  306. package/source/types/mediatype.mjs +119 -119
  307. package/source/types/namespace.mjs +1 -1
  308. package/source/types/node.mjs +160 -150
  309. package/source/types/nodelist.mjs +94 -96
  310. package/source/types/noderecursiveiterator.mjs +50 -50
  311. package/source/types/observablequeue.mjs +73 -73
  312. package/source/types/observer.mjs +114 -106
  313. package/source/types/observerlist.mjs +66 -66
  314. package/source/types/proxyobserver.mjs +210 -210
  315. package/source/types/queue.mjs +63 -63
  316. package/source/types/randomid.mjs +13 -13
  317. package/source/types/regex.mjs +3 -1
  318. package/source/types/stack.mjs +64 -64
  319. package/source/types/tokenlist.mjs +206 -205
  320. package/source/types/typeof.mjs +12 -10
  321. package/source/types/uniquequeue.mjs +48 -48
  322. package/source/types/uuid.mjs +32 -32
  323. package/source/types/validate.mjs +67 -67
  324. package/source/types/version.mjs +115 -105
  325. package/source/util/clone.mjs +103 -91
  326. package/source/util/comparator.mjs +97 -97
  327. package/source/util/deadmansswitch.mjs +40 -44
  328. package/source/util/freeze.mjs +10 -9
  329. package/source/util/namespace.mjs +1 -1
  330. package/source/util/processing.mjs +104 -105
  331. package/source/util/runtime.mjs +56 -44
  332. package/source/util/trimspaces.mjs +24 -24
  333. package/test/cases/components/form/button.mjs +122 -0
  334. package/test/cases/components/form/confirm-button.mjs +127 -0
  335. package/test/cases/components/form/form.mjs +317 -0
  336. package/test/cases/components/form/reload.mjs +188 -0
  337. package/test/cases/components/form/select.mjs +229 -0
  338. package/test/cases/components/form/state-button.mjs +130 -0
  339. package/test/cases/components/form/tabs.mjs +98 -0
  340. package/test/cases/components/form/template.mjs +189 -0
  341. package/test/cases/components/form/tree-select.mjs +216 -0
  342. package/test/cases/components/host/details.mjs +68 -0
  343. package/test/cases/components/host/host.mjs +70 -0
  344. package/test/cases/components/host/overlay.mjs +60 -0
  345. package/test/cases/components/host/util.mjs +79 -0
  346. package/test/cases/components/notify/message.mjs +39 -0
  347. package/test/cases/components/notify/notify.mjs +89 -0
  348. package/test/cases/dom/customcontrol.mjs +5 -4
  349. package/test/cases/math/random.mjs +0 -1
  350. package/test/cases/monster.mjs +1 -1
  351. package/test/cases/net/webconnect/message.mjs +0 -1
  352. package/test/cases/types/node.mjs +1 -1
  353. package/test/util/chai-dom.mjs +2 -2
  354. package/test/util/intersection-mock.mjs +69 -0
  355. package/test/util/jsdom.mjs +41 -25
  356. package/test/util/localstorage.mjs +1 -0
  357. package/test/util/resize-observer.mjs +29 -0
  358. package/test/util/websocket.mjs +4 -1
  359. package/test/web/import.js +16 -1
  360. package/test/web/test.html +28 -5
  361. 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
  }