@web-atoms/core 2.6.24 → 2.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/core/XNode.d.ts +1 -13
  2. package/dist/core/XNode.d.ts.map +1 -1
  3. package/dist/core/XNode.js +2 -24
  4. package/dist/core/XNode.js.map +1 -1
  5. package/dist/tsconfig.tsbuildinfo +1 -1
  6. package/dist-esm/App.js +231 -235
  7. package/dist-esm/Atom.js +93 -96
  8. package/dist-esm/MockApp.js +17 -18
  9. package/dist-esm/Pack.js +1 -3
  10. package/dist-esm/core/AtomBinder.js +189 -187
  11. package/dist-esm/core/AtomComponent.js +479 -502
  12. package/dist-esm/core/AtomDispatcher.js +46 -48
  13. package/dist-esm/core/AtomDisposableList.js +24 -25
  14. package/dist-esm/core/AtomEnumerator.js +15 -16
  15. package/dist-esm/core/AtomList.js +193 -192
  16. package/dist-esm/core/AtomLoader.js +229 -215
  17. package/dist-esm/core/AtomMap.js +7 -8
  18. package/dist-esm/core/AtomOnce.js +22 -24
  19. package/dist-esm/core/AtomSelectableList.js +240 -243
  20. package/dist-esm/core/AtomUri.js +70 -72
  21. package/dist-esm/core/AtomWatcher.js +105 -111
  22. package/dist-esm/core/Bind.js +271 -269
  23. package/dist-esm/core/BindableProperty.js +26 -27
  24. package/dist-esm/core/CancelTokenFactory.js +21 -24
  25. package/dist-esm/core/Color.js +1 -2
  26. package/dist-esm/core/Colors.js +545 -231
  27. package/dist-esm/core/Command.js +236 -223
  28. package/dist-esm/core/Defer.js +21 -22
  29. package/dist-esm/core/EventScope.js +96 -88
  30. package/dist-esm/core/ExpressionParser.js +132 -144
  31. package/dist-esm/core/ExtendControl.js +7 -8
  32. package/dist-esm/core/FormattedError.js +7 -8
  33. package/dist-esm/core/FormattedString.js +4 -5
  34. package/dist-esm/core/Hacks.js +41 -42
  35. package/dist-esm/core/IFetchEvent.js +1 -2
  36. package/dist-esm/core/IScreen.js +1 -2
  37. package/dist-esm/core/IValueConverter.js +1 -2
  38. package/dist-esm/core/InheritedProperty.js +61 -63
  39. package/dist-esm/core/InjectProperty.js +12 -13
  40. package/dist-esm/core/KeyValuePairs.js +1 -2
  41. package/dist-esm/core/Markdown.js +14 -17
  42. package/dist-esm/core/MarkdownError.js +6 -7
  43. package/dist-esm/core/PropertyBinding.js +1 -2
  44. package/dist-esm/core/PropertyMap.js +28 -27
  45. package/dist-esm/core/Route.js +149 -148
  46. package/dist-esm/core/SingleInvoker.js +32 -35
  47. package/dist-esm/core/StringHelper.js +49 -51
  48. package/dist-esm/core/TransientDisposable.js +14 -16
  49. package/dist-esm/core/WatchProperty.js +18 -17
  50. package/dist-esm/core/WebImage.js +7 -8
  51. package/dist-esm/core/XNode.d.ts +1 -13
  52. package/dist-esm/core/XNode.d.ts.map +1 -1
  53. package/dist-esm/core/XNode.js +116 -120
  54. package/dist-esm/core/XNode.js.map +1 -1
  55. package/dist-esm/core/sleep.js +21 -24
  56. package/dist-esm/core/types.js +102 -103
  57. package/dist-esm/di/DISingleton.js +7 -5
  58. package/dist-esm/di/DITransient.js +7 -5
  59. package/dist-esm/di/IMockOrInject.js +1 -2
  60. package/dist-esm/di/IServiceProvider.js +1 -2
  61. package/dist-esm/di/Inject.js +67 -67
  62. package/dist-esm/di/Register.js +25 -26
  63. package/dist-esm/di/RegisterScoped.js +4 -3
  64. package/dist-esm/di/RegisterSingleton.js +4 -3
  65. package/dist-esm/di/ServiceCollection.js +38 -37
  66. package/dist-esm/di/ServiceProvider.js +94 -94
  67. package/dist-esm/di/TypeKey.js +13 -12
  68. package/dist-esm/services/BusyIndicatorService.js +7 -11
  69. package/dist-esm/services/CacheService.js +54 -62
  70. package/dist-esm/services/FetchBuilder.js +327 -278
  71. package/dist-esm/services/JsonService.js +118 -116
  72. package/dist-esm/services/MockNavigationService.js +127 -126
  73. package/dist-esm/services/NavigationService.js +95 -102
  74. package/dist-esm/services/ReferenceService.js +30 -33
  75. package/dist-esm/services/http/AjaxOptions.js +1 -3
  76. package/dist-esm/services/http/JsonError.js +16 -15
  77. package/dist-esm/services/http/RestService.js +314 -323
  78. package/dist-esm/style/StyleRule.js +1 -2
  79. package/dist-esm/test.js +0 -1
  80. package/dist-esm/tsconfig.esm.tsbuildinfo +1 -1
  81. package/dist-esm/unit/AtomTest.js +10 -11
  82. package/dist-esm/view-model/Action.js +258 -223
  83. package/dist-esm/view-model/AtomViewModel.js +234 -232
  84. package/dist-esm/view-model/AtomWindowViewModel.js +13 -14
  85. package/dist-esm/view-model/BindableUrlParameter.js +7 -8
  86. package/dist-esm/view-model/Delay.js +21 -25
  87. package/dist-esm/view-model/Disposable.js +28 -29
  88. package/dist-esm/view-model/Load.js +72 -73
  89. package/dist-esm/view-model/Once.js +33 -35
  90. package/dist-esm/view-model/baseTypes.js +4 -5
  91. package/dist-esm/view-model/bindPromise.js +24 -27
  92. package/dist-esm/view-model/bindProperty.js +3 -4
  93. package/dist-esm/view-model/bindUrlParameter.js +39 -43
  94. package/dist-esm/web/controls/AtomComboBox.js +56 -63
  95. package/dist-esm/web/controls/AtomControl.js +485 -490
  96. package/dist-esm/web/controls/AtomGridSplitter.js +57 -50
  97. package/dist-esm/web/controls/AtomGridView.js +230 -222
  98. package/dist-esm/web/controls/AtomItemsControl.js +677 -688
  99. package/dist-esm/web/controls/AtomPage.js +6 -7
  100. package/dist-esm/web/controls/AtomTemplate.js +1 -3
  101. package/dist-esm/web/controls/AtomTemplateControl.js +28 -29
  102. package/dist-esm/web/controls/AtomViewStack.js +19 -20
  103. package/dist-esm/web/core/AtomUI.js +200 -200
  104. package/dist-esm/web/core/Encoder.js +142 -152
  105. package/dist-esm/web/core/HtmlNode.js +141 -139
  106. package/dist-esm/web/images/Busy.js +1 -2
  107. package/dist-esm/web/images/BusyDataUrl.js +2 -869
  108. package/dist-esm/web/images/Button.js +1 -2
  109. package/dist-esm/web/images/ButtonDataUrl.js +2 -30
  110. package/dist-esm/web/images/CloseButton.js +1 -2
  111. package/dist-esm/web/images/CloseButtonDataUrl.js +2 -30
  112. package/dist-esm/web/images/CloseButtonHover.js +1 -2
  113. package/dist-esm/web/images/CloseButtonHoverDataUrl.js +2 -24
  114. package/dist-esm/web/services/LastTarget.js +31 -29
  115. package/dist-esm/web/services/MarkdownService.js +19 -31
  116. package/dist-esm/web/services/NotificationPopup.js +28 -21
  117. package/dist-esm/web/services/PopupService.js +512 -478
  118. package/dist-esm/web/services/PopupWindow.js +266 -247
  119. package/dist-esm/web/styles/AtomAlertWindowStyle.js +39 -40
  120. package/dist-esm/web/styles/AtomFrameStyle.js +15 -16
  121. package/dist-esm/web/styles/AtomNotificationStyle.js +19 -20
  122. package/dist-esm/web/styles/AtomPageLinkStyle.js +11 -12
  123. package/dist-esm/web/styles/AtomPopupStyle.js +9 -10
  124. package/dist-esm/web/styles/AtomStyle.js +61 -64
  125. package/dist-esm/web/styles/AtomStyleSheet.js +50 -51
  126. package/dist-esm/web/styles/AtomWindowStyle.js +116 -117
  127. package/dist-esm/web/styles/IStyleDeclaration.js +1 -2
  128. package/dist-esm/web/styles/StyleBuilder.js +79 -80
  129. package/package.json +1 -1
  130. package/src/core/XNode.ts +12 -38
@@ -5,117 +5,110 @@ import { ArrayHelper } from "../core/types.js";
5
5
  import ReferenceService, { ObjectReference } from "./ReferenceService.js";
6
6
  export var NotifyType;
7
7
  (function (NotifyType) {
8
- NotifyType["Information"] = "info";
9
- NotifyType["Warning"] = "warn";
10
- NotifyType["Error"] = "error";
8
+ NotifyType["Information"] = "info";
9
+ NotifyType["Warning"] = "warn";
10
+ NotifyType["Error"] = "error";
11
11
  })(NotifyType || (NotifyType = {}));
12
12
  const nameSymbol = Symbol.for("UMD.nameSymbol");
13
13
  function hasPageUrl(target) {
14
- const url = target[nameSymbol];
15
- if (!url) {
16
- return false;
17
- }
18
- const baseClass = Object.getPrototypeOf(target);
19
- if (!baseClass) {
20
- return false;
21
- }
22
- return baseClass[nameSymbol] !== url;
14
+ const url = target[nameSymbol];
15
+ if (!url) {
16
+ return false;
17
+ }
18
+ const baseClass = Object.getPrototypeOf(target);
19
+ if (!baseClass) {
20
+ return false;
21
+ }
22
+ return baseClass[nameSymbol] !== url;
23
23
  }
24
24
  export class NavigationService {
25
- constructor(app) {
26
- this.app = app;
27
- this.callbacks = [];
28
- }
29
- pushPage(pageName, viewModelParameters, options) {
30
- this.app.runAsync(() => this.openPage(pageName, viewModelParameters, options));
25
+ constructor(app) {
26
+ this.app = app;
27
+ this.callbacks = [];
28
+ }
29
+ pushPage(pageName, viewModelParameters, options) {
30
+ this.app.runAsync(() => this.openPage(pageName, viewModelParameters, options));
31
+ }
32
+ openPage(pageName, viewModelParameters, options) {
33
+ options = options || {};
34
+ if (typeof pageName !== "string") {
35
+ if (hasPageUrl(pageName)) {
36
+ pageName = pageName[nameSymbol];
37
+ } else {
38
+ const rs = this.app.resolve(ReferenceService);
39
+ const host = pageName instanceof AtomComponent ? "reference" : "class";
40
+ const r = rs.put(pageName);
41
+ pageName = `ref://${host}/${r.key}`;
42
+ }
31
43
  }
32
- openPage(pageName, viewModelParameters, options) {
33
- options = options || {};
34
- if (typeof pageName !== "string") {
35
- if (hasPageUrl(pageName)) {
36
- pageName = pageName[nameSymbol];
37
- }
38
- else {
39
- const rs = this.app.resolve(ReferenceService);
40
- const host = pageName instanceof AtomComponent ? "reference" : "class";
41
- const r = rs.put(pageName);
42
- pageName = `ref://${host}/${r.key}`;
43
- }
44
- }
45
- if (this.beforeCallbacks) {
46
- for (const iterator of this.beforeCallbacks) {
47
- const r = iterator(pageName, viewModelParameters, options);
48
- if (r) {
49
- return r;
50
- }
51
- }
52
- }
53
- const url = new AtomUri(pageName);
54
- if (viewModelParameters) {
55
- for (const key in viewModelParameters) {
56
- if (viewModelParameters.hasOwnProperty(key)) {
57
- const element = viewModelParameters[key];
58
- if (element === undefined) {
59
- continue;
60
- }
61
- if (element === null) {
62
- url.query["json:" + key] = "null";
63
- continue;
64
- }
65
- if (key.startsWith("ref:") || element instanceof FormattedString) {
66
- const r = element instanceof ObjectReference ?
67
- element :
68
- this.app.resolve(ReferenceService).put(element);
69
- url.query[key.startsWith("ref:") ? key : `ref:${key}`] =
70
- r.key;
71
- continue;
72
- }
73
- if (typeof element !== "string" &&
74
- (typeof element === "object" || Array.isArray(element))) {
75
- url.query["json:" + key] = JSON.stringify(element);
76
- }
77
- else {
78
- url.query[key] = element;
79
- }
80
- }
81
- }
44
+ if (this.beforeCallbacks) {
45
+ for (const iterator of this.beforeCallbacks) {
46
+ const r = iterator(pageName, viewModelParameters, options);
47
+ if (r) {
48
+ return r;
82
49
  }
83
- for (const iterator of this.callbacks) {
84
- const r = iterator(url, options);
85
- if (r) {
86
- return r;
87
- }
88
- }
89
- return this.openWindow(url, options);
50
+ }
90
51
  }
91
- async remove(view, force) {
92
- if (force) {
93
- this.app.broadcast(`atom-window-cancel:${view.id}`, "cancelled");
94
- return true;
95
- }
96
- const vm = view.viewModel;
97
- if (vm && vm.cancel) {
98
- const a = await vm.cancel();
99
- return a;
52
+ const url = new AtomUri(pageName);
53
+ if (viewModelParameters) {
54
+ for (const key in viewModelParameters) {
55
+ if (viewModelParameters.hasOwnProperty(key)) {
56
+ const element = viewModelParameters[key];
57
+ if (element === undefined) {
58
+ continue;
59
+ }
60
+ if (element === null) {
61
+ url.query["json:" + key] = "null";
62
+ continue;
63
+ }
64
+ if (key.startsWith("ref:") || element instanceof FormattedString) {
65
+ const r = element instanceof ObjectReference ? element : this.app.resolve(ReferenceService).put(element);
66
+ url.query[key.startsWith("ref:") ? key : `ref:${key}`] = r.key;
67
+ continue;
68
+ }
69
+ if (typeof element !== "string" && (typeof element === "object" || Array.isArray(element))) {
70
+ url.query["json:" + key] = JSON.stringify(element);
71
+ } else {
72
+ url.query[key] = element;
73
+ }
100
74
  }
101
- this.app.broadcast(`atom-window-cancel:${view.id}`, "cancelled");
102
- return true;
75
+ }
103
76
  }
104
- registerNavigationHook(callback) {
105
- this.callbacks.push(callback);
106
- return {
107
- dispose: () => {
108
- ArrayHelper.remove(this.callbacks, (a) => a === callback);
109
- }
110
- };
77
+ for (const iterator of this.callbacks) {
78
+ const r = iterator(url, options);
79
+ if (r) {
80
+ return r;
81
+ }
111
82
  }
112
- registerPreNavigationHook(callback) {
113
- (this.beforeCallbacks ??= []).push(callback);
114
- return {
115
- dispose: () => {
116
- this.beforeCallbacks.remove(callback);
117
- }
118
- };
83
+ return this.openWindow(url, options);
84
+ }
85
+ async remove(view, force) {
86
+ if (force) {
87
+ this.app.broadcast(`atom-window-cancel:${view.id}`, "cancelled");
88
+ return true;
119
89
  }
120
- }
121
- //# sourceMappingURL=NavigationService.js.map
90
+ const vm = view.viewModel;
91
+ if (vm && vm.cancel) {
92
+ const a = await vm.cancel();
93
+ return a;
94
+ }
95
+ this.app.broadcast(`atom-window-cancel:${view.id}`, "cancelled");
96
+ return true;
97
+ }
98
+ registerNavigationHook(callback) {
99
+ this.callbacks.push(callback);
100
+ return {
101
+ dispose: () => {
102
+ ArrayHelper.remove(this.callbacks, a => a === callback);
103
+ }
104
+ };
105
+ }
106
+ registerPreNavigationHook(callback) {
107
+ (this.beforeCallbacks ??= []).push(callback);
108
+ return {
109
+ dispose: () => {
110
+ this.beforeCallbacks.remove(callback);
111
+ }
112
+ };
113
+ }
114
+ }
@@ -1,39 +1,36 @@
1
1
  import { __decorate } from "tslib";
2
2
  import DISingleton from "../di/DISingleton.js";
3
3
  export class ObjectReference {
4
- constructor(key, value) {
5
- this.key = key;
6
- this.value = value;
7
- }
4
+ constructor(key, value) {
5
+ this.key = key;
6
+ this.value = value;
7
+ }
8
8
  }
9
9
  let ReferenceService = class ReferenceService {
10
- constructor() {
11
- this.cache = {};
12
- this.id = 1;
13
- }
14
- get(key) {
15
- return this.cache[key];
16
- }
17
- put(item, ttl = 60) {
18
- const key = `k${this.id++}`;
19
- const r = new ObjectReference(key, item);
20
- r.consume = () => {
21
- delete this.cache[key];
22
- if (r.timeout) {
23
- clearTimeout(r.timeout);
24
- }
25
- return r.value;
26
- };
27
- r.timeout = setTimeout(() => {
28
- r.timeout = 0;
29
- r.consume();
30
- }, ttl * 1000);
31
- this.cache[key] = r;
32
- return r;
33
- }
10
+ constructor() {
11
+ this.cache = {};
12
+ this.id = 1;
13
+ }
14
+ get(key) {
15
+ return this.cache[key];
16
+ }
17
+ put(item, ttl = 60) {
18
+ const key = `k${this.id++}`;
19
+ const r = new ObjectReference(key, item);
20
+ r.consume = () => {
21
+ delete this.cache[key];
22
+ if (r.timeout) {
23
+ clearTimeout(r.timeout);
24
+ }
25
+ return r.value;
26
+ };
27
+ r.timeout = setTimeout(() => {
28
+ r.timeout = 0;
29
+ r.consume();
30
+ }, ttl * 1000);
31
+ this.cache[key] = r;
32
+ return r;
33
+ }
34
34
  };
35
- ReferenceService = __decorate([
36
- DISingleton()
37
- ], ReferenceService);
38
- export default ReferenceService;
39
- //# sourceMappingURL=ReferenceService.js.map
35
+ ReferenceService = __decorate([DISingleton()], ReferenceService);
36
+ export default ReferenceService;
@@ -1,3 +1 @@
1
- export class AjaxOptions {
2
- }
3
- //# sourceMappingURL=AjaxOptions.js.map
1
+ export class AjaxOptions {}
@@ -1,17 +1,18 @@
1
1
  export default class JsonError extends Error {
2
- constructor(message, json) {
3
- super(message);
4
- this.json = json;
2
+ constructor(message, json) {
3
+ super(message);
4
+ this.json = json;
5
+ }
6
+ get errors() {
7
+ return this.json.paramErrors ?? [];
8
+ }
9
+ get details() {
10
+ const {
11
+ errors
12
+ } = this;
13
+ if (errors.length) {
14
+ return errors.map(x => `${x.name}: ${x.reason}`).join("\n");
5
15
  }
6
- get errors() {
7
- return this.json.paramErrors ?? [];
8
- }
9
- get details() {
10
- const { errors } = this;
11
- if (errors.length) {
12
- return errors.map((x) => `${x.name}: ${x.reason}`).join("\n");
13
- }
14
- return this.json?.details;
15
- }
16
- }
17
- //# sourceMappingURL=JsonError.js.map
16
+ return this.json?.details;
17
+ }
18
+ }