@web-atoms/core 2.6.21 → 2.6.25

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 (137) hide show
  1. package/dist/App.d.ts +1 -1
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/App.js.map +1 -1
  4. package/dist/core/SingleInvoker.d.ts.map +1 -1
  5. package/dist/core/SingleInvoker.js.map +1 -1
  6. package/dist/core/sleep.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/dist-esm/App.d.ts +1 -1
  9. package/dist-esm/App.d.ts.map +1 -1
  10. package/dist-esm/App.js +231 -235
  11. package/dist-esm/App.js.map +1 -1
  12. package/dist-esm/Atom.js +93 -96
  13. package/dist-esm/MockApp.js +17 -18
  14. package/dist-esm/Pack.js +1 -3
  15. package/dist-esm/core/AtomBinder.js +189 -187
  16. package/dist-esm/core/AtomComponent.js +479 -502
  17. package/dist-esm/core/AtomDispatcher.js +46 -48
  18. package/dist-esm/core/AtomDisposableList.js +24 -25
  19. package/dist-esm/core/AtomEnumerator.js +15 -16
  20. package/dist-esm/core/AtomList.js +193 -192
  21. package/dist-esm/core/AtomLoader.js +229 -215
  22. package/dist-esm/core/AtomMap.js +7 -8
  23. package/dist-esm/core/AtomOnce.js +22 -24
  24. package/dist-esm/core/AtomSelectableList.js +240 -243
  25. package/dist-esm/core/AtomUri.js +70 -72
  26. package/dist-esm/core/AtomWatcher.js +105 -111
  27. package/dist-esm/core/Bind.js +271 -269
  28. package/dist-esm/core/BindableProperty.js +26 -27
  29. package/dist-esm/core/CancelTokenFactory.js +21 -24
  30. package/dist-esm/core/Color.js +1 -2
  31. package/dist-esm/core/Colors.js +545 -231
  32. package/dist-esm/core/Command.js +236 -223
  33. package/dist-esm/core/Defer.js +21 -22
  34. package/dist-esm/core/EventScope.js +96 -88
  35. package/dist-esm/core/ExpressionParser.js +132 -144
  36. package/dist-esm/core/ExtendControl.js +7 -8
  37. package/dist-esm/core/FormattedError.js +7 -8
  38. package/dist-esm/core/FormattedString.js +4 -5
  39. package/dist-esm/core/Hacks.js +41 -42
  40. package/dist-esm/core/IFetchEvent.js +1 -2
  41. package/dist-esm/core/IScreen.js +1 -2
  42. package/dist-esm/core/IValueConverter.js +1 -2
  43. package/dist-esm/core/InheritedProperty.js +61 -63
  44. package/dist-esm/core/InjectProperty.js +12 -13
  45. package/dist-esm/core/KeyValuePairs.js +1 -2
  46. package/dist-esm/core/Markdown.js +14 -17
  47. package/dist-esm/core/MarkdownError.js +6 -7
  48. package/dist-esm/core/PropertyBinding.js +1 -2
  49. package/dist-esm/core/PropertyMap.js +28 -27
  50. package/dist-esm/core/Route.js +149 -148
  51. package/dist-esm/core/SingleInvoker.d.ts.map +1 -1
  52. package/dist-esm/core/SingleInvoker.js +32 -35
  53. package/dist-esm/core/SingleInvoker.js.map +1 -1
  54. package/dist-esm/core/StringHelper.js +49 -51
  55. package/dist-esm/core/TransientDisposable.js +14 -16
  56. package/dist-esm/core/WatchProperty.js +18 -17
  57. package/dist-esm/core/WebImage.js +7 -8
  58. package/dist-esm/core/XNode.js +134 -117
  59. package/dist-esm/core/sleep.js +21 -24
  60. package/dist-esm/core/sleep.js.map +1 -1
  61. package/dist-esm/core/types.js +102 -103
  62. package/dist-esm/di/DISingleton.js +7 -5
  63. package/dist-esm/di/DITransient.js +7 -5
  64. package/dist-esm/di/IMockOrInject.js +1 -2
  65. package/dist-esm/di/IServiceProvider.js +1 -2
  66. package/dist-esm/di/Inject.js +67 -67
  67. package/dist-esm/di/Register.js +25 -26
  68. package/dist-esm/di/RegisterScoped.js +4 -3
  69. package/dist-esm/di/RegisterSingleton.js +4 -3
  70. package/dist-esm/di/ServiceCollection.js +38 -37
  71. package/dist-esm/di/ServiceProvider.js +94 -94
  72. package/dist-esm/di/TypeKey.js +13 -12
  73. package/dist-esm/services/BusyIndicatorService.js +7 -11
  74. package/dist-esm/services/CacheService.js +54 -62
  75. package/dist-esm/services/FetchBuilder.js +327 -278
  76. package/dist-esm/services/JsonService.js +118 -116
  77. package/dist-esm/services/MockNavigationService.js +127 -126
  78. package/dist-esm/services/NavigationService.js +95 -102
  79. package/dist-esm/services/ReferenceService.js +30 -33
  80. package/dist-esm/services/http/AjaxOptions.js +1 -3
  81. package/dist-esm/services/http/JsonError.js +16 -15
  82. package/dist-esm/services/http/RestService.js +314 -323
  83. package/dist-esm/style/StyleRule.js +1 -2
  84. package/dist-esm/test.js +0 -1
  85. package/dist-esm/tsconfig.esm.tsbuildinfo +1 -1
  86. package/dist-esm/unit/AtomTest.js +10 -11
  87. package/dist-esm/view-model/Action.js +258 -223
  88. package/dist-esm/view-model/AtomViewModel.js +234 -232
  89. package/dist-esm/view-model/AtomWindowViewModel.js +13 -14
  90. package/dist-esm/view-model/BindableUrlParameter.js +7 -8
  91. package/dist-esm/view-model/Delay.js +21 -25
  92. package/dist-esm/view-model/Disposable.js +28 -29
  93. package/dist-esm/view-model/Load.js +72 -73
  94. package/dist-esm/view-model/Once.js +33 -35
  95. package/dist-esm/view-model/baseTypes.js +4 -5
  96. package/dist-esm/view-model/bindPromise.js +24 -27
  97. package/dist-esm/view-model/bindProperty.js +3 -4
  98. package/dist-esm/view-model/bindUrlParameter.js +39 -43
  99. package/dist-esm/web/controls/AtomComboBox.js +56 -63
  100. package/dist-esm/web/controls/AtomControl.js +485 -490
  101. package/dist-esm/web/controls/AtomGridSplitter.js +57 -50
  102. package/dist-esm/web/controls/AtomGridView.js +230 -222
  103. package/dist-esm/web/controls/AtomItemsControl.js +677 -688
  104. package/dist-esm/web/controls/AtomPage.js +6 -7
  105. package/dist-esm/web/controls/AtomTemplate.js +1 -3
  106. package/dist-esm/web/controls/AtomTemplateControl.js +28 -29
  107. package/dist-esm/web/controls/AtomViewStack.js +19 -20
  108. package/dist-esm/web/core/AtomUI.js +200 -200
  109. package/dist-esm/web/core/Encoder.js +142 -152
  110. package/dist-esm/web/core/HtmlNode.js +141 -139
  111. package/dist-esm/web/images/Busy.js +1 -2
  112. package/dist-esm/web/images/BusyDataUrl.js +2 -869
  113. package/dist-esm/web/images/Button.js +1 -2
  114. package/dist-esm/web/images/ButtonDataUrl.js +2 -30
  115. package/dist-esm/web/images/CloseButton.js +1 -2
  116. package/dist-esm/web/images/CloseButtonDataUrl.js +2 -30
  117. package/dist-esm/web/images/CloseButtonHover.js +1 -2
  118. package/dist-esm/web/images/CloseButtonHoverDataUrl.js +2 -24
  119. package/dist-esm/web/services/LastTarget.js +31 -29
  120. package/dist-esm/web/services/MarkdownService.js +19 -31
  121. package/dist-esm/web/services/NotificationPopup.js +28 -21
  122. package/dist-esm/web/services/PopupService.js +512 -478
  123. package/dist-esm/web/services/PopupWindow.js +266 -247
  124. package/dist-esm/web/styles/AtomAlertWindowStyle.js +39 -40
  125. package/dist-esm/web/styles/AtomFrameStyle.js +15 -16
  126. package/dist-esm/web/styles/AtomNotificationStyle.js +19 -20
  127. package/dist-esm/web/styles/AtomPageLinkStyle.js +11 -12
  128. package/dist-esm/web/styles/AtomPopupStyle.js +9 -10
  129. package/dist-esm/web/styles/AtomStyle.js +61 -64
  130. package/dist-esm/web/styles/AtomStyleSheet.js +50 -51
  131. package/dist-esm/web/styles/AtomWindowStyle.js +116 -117
  132. package/dist-esm/web/styles/IStyleDeclaration.js +1 -2
  133. package/dist-esm/web/styles/StyleBuilder.js +79 -80
  134. package/package.json +3 -1
  135. package/src/App.ts +1 -1
  136. package/src/core/SingleInvoker.ts +1 -1
  137. package/src/core/sleep.ts +1 -1
@@ -2,77 +2,76 @@ import { parsePath } from "../core/ExpressionParser.js";
2
2
  import { CancelToken } from "../core/types.js";
3
3
  import { NavigationService } from "../services/NavigationService.js";
4
4
  import { registerInit } from "./baseTypes.js";
5
- export default function Load({ init, showErrorOnInit, watch, watchDelayMS = 100 }) {
6
- return function (target, key) {
7
- registerInit(target, (vm) => {
8
- const oldMethod = vm[key];
9
- const app = vm.app;
10
- let showError = init ? (showErrorOnInit ? true : false) : true;
11
- let ct;
12
- const ns = app.resolve(NavigationService);
13
- const m = async (ctx) => {
14
- try {
15
- const pe = oldMethod.call(vm, ctx);
16
- if (pe?.then) {
17
- return await pe;
18
- }
19
- }
20
- catch (e) {
21
- if (CancelToken.isCancelled(e)) {
22
- return;
23
- }
24
- if (!showError) {
25
- console.error(e);
26
- return;
27
- }
28
- await ns.alert(e, "Error");
29
- }
30
- finally {
31
- ct = null;
32
- showError = true;
33
- }
34
- };
35
- if (watch) {
36
- let timeout;
37
- const fx = (c1) => {
38
- if (ct && !ct.cancelled) {
39
- ct.cancel();
40
- }
41
- if (timeout) {
42
- clearTimeout(timeout);
43
- }
44
- timeout = setTimeout(() => {
45
- timeout = undefined;
46
- ct = c1 ??= new CancelToken();
47
- m(c1).catch((e) => console.error(e));
48
- }, watchDelayMS);
49
- };
50
- const pathList = parsePath(oldMethod.toString(), true);
51
- if (pathList.length === 0) {
52
- throw new Error("Nothing to watch !!");
53
- }
54
- vm[key] = fx;
55
- const watchedFunction = () => fx();
56
- if (init) {
57
- app.runAsync(async () => {
58
- try {
59
- await m(new CancelToken());
60
- }
61
- catch (error) {
62
- }
63
- finally {
64
- vm.setupWatch(pathList, watchedFunction);
65
- }
66
- });
67
- return;
68
- }
69
- vm.setupWatch(pathList, watchedFunction);
70
- return;
5
+ export default function Load({
6
+ init,
7
+ showErrorOnInit,
8
+ watch,
9
+ watchDelayMS = 100
10
+ }) {
11
+ return function (target, key) {
12
+ registerInit(target, vm => {
13
+ const oldMethod = vm[key];
14
+ const app = vm.app;
15
+ let showError = init ? showErrorOnInit ? true : false : true;
16
+ let ct;
17
+ const ns = app.resolve(NavigationService);
18
+ const m = async ctx => {
19
+ try {
20
+ const pe = oldMethod.call(vm, ctx);
21
+ if (pe?.then) {
22
+ return await pe;
23
+ }
24
+ } catch (e) {
25
+ if (CancelToken.isCancelled(e)) {
26
+ return;
27
+ }
28
+ if (!showError) {
29
+ console.error(e);
30
+ return;
31
+ }
32
+ await ns.alert(e, "Error");
33
+ } finally {
34
+ ct = null;
35
+ showError = true;
36
+ }
37
+ };
38
+ if (watch) {
39
+ let timeout;
40
+ const fx = c1 => {
41
+ if (ct && !ct.cancelled) {
42
+ ct.cancel();
43
+ }
44
+ if (timeout) {
45
+ clearTimeout(timeout);
46
+ }
47
+ timeout = setTimeout(() => {
48
+ timeout = undefined;
49
+ ct = c1 ??= new CancelToken();
50
+ m(c1).catch(e => console.error(e));
51
+ }, watchDelayMS);
52
+ };
53
+ const pathList = parsePath(oldMethod.toString(), true);
54
+ if (pathList.length === 0) {
55
+ throw new Error("Nothing to watch !!");
56
+ }
57
+ vm[key] = fx;
58
+ const watchedFunction = () => fx();
59
+ if (init) {
60
+ app.runAsync(async () => {
61
+ try {
62
+ await m(new CancelToken());
63
+ } catch (error) {} finally {
64
+ vm.setupWatch(pathList, watchedFunction);
71
65
  }
72
- if (init) {
73
- app.runAsync(() => m(new CancelToken()));
74
- }
75
- });
76
- };
77
- }
78
- //# sourceMappingURL=Load.js.map
66
+ });
67
+ return;
68
+ }
69
+ vm.setupWatch(pathList, watchedFunction);
70
+ return;
71
+ }
72
+ if (init) {
73
+ app.runAsync(() => m(new CancelToken()));
74
+ }
75
+ });
76
+ };
77
+ }
@@ -1,40 +1,38 @@
1
1
  import { registerInit } from "./baseTypes.js";
2
2
  const timerSymbol = Symbol();
3
3
  const Once = (timeInMS = 100) => (target, key) => {
4
- registerInit(target, (vm) => {
5
- const oldMethod = vm[key];
6
- let keyTimer = vm[timerSymbol];
7
- if (typeof keyTimer === "undefined") {
8
- keyTimer = {};
9
- vm[timerSymbol] = keyTimer;
4
+ registerInit(target, vm => {
5
+ const oldMethod = vm[key];
6
+ let keyTimer = vm[timerSymbol];
7
+ if (typeof keyTimer === "undefined") {
8
+ keyTimer = {};
9
+ vm[timerSymbol] = keyTimer;
10
+ }
11
+ let running = false;
12
+ vm[key] = (...a) => {
13
+ if (running) {
14
+ return;
15
+ }
16
+ const pending = keyTimer[key];
17
+ if (pending) {
18
+ clearTimeout(pending);
19
+ }
20
+ keyTimer[key] = setTimeout((...b) => {
21
+ running = true;
22
+ delete keyTimer[key];
23
+ const r = oldMethod.apply(vm, b);
24
+ if (r && r.then) {
25
+ r.then(() => {
26
+ running = false;
27
+ }, e => {
28
+ running = false;
29
+ console.warn(e);
30
+ });
31
+ } else {
32
+ running = false;
10
33
  }
11
- let running = false;
12
- vm[key] = (...a) => {
13
- if (running) {
14
- return;
15
- }
16
- const pending = keyTimer[key];
17
- if (pending) {
18
- clearTimeout(pending);
19
- }
20
- keyTimer[key] = setTimeout((...b) => {
21
- running = true;
22
- delete keyTimer[key];
23
- const r = oldMethod.apply(vm, b);
24
- if (r && r.then) {
25
- r.then(() => {
26
- running = false;
27
- }, (e) => {
28
- running = false;
29
- console.warn(e);
30
- });
31
- }
32
- else {
33
- running = false;
34
- }
35
- }, timeInMS, ...a);
36
- };
37
- });
34
+ }, timeInMS, ...a);
35
+ };
36
+ });
38
37
  };
39
- export default Once;
40
- //# sourceMappingURL=Once.js.map
38
+ export default Once;
@@ -1,6 +1,5 @@
1
1
  export function registerInit(target, fx) {
2
- const t = target;
3
- const inits = t._$_inits = t._$_inits || [];
4
- inits.push(fx);
5
- }
6
- //# sourceMappingURL=baseTypes.js.map
2
+ const t = target;
3
+ const inits = t._$_inits = t._$_inits || [];
4
+ inits.push(fx);
5
+ }
@@ -1,31 +1,28 @@
1
1
  import { AtomBinder } from "../core/AtomBinder.js";
2
2
  import { NavigationService, NotifyType } from "../services/NavigationService.js";
3
3
  export default function bindPromise(vm, p, value, displayError = true) {
4
- p.then((v) => {
5
- if (Array.isArray(v)) {
6
- const a = value;
7
- a.replace(v);
4
+ p.then(v => {
5
+ if (Array.isArray(v)) {
6
+ const a = value;
7
+ a.replace(v);
8
+ } else {
9
+ for (const key in v) {
10
+ if (v.hasOwnProperty(key)) {
11
+ const element = v[key];
12
+ value[key] = element;
13
+ AtomBinder.refreshValue(value, key);
8
14
  }
9
- else {
10
- for (const key in v) {
11
- if (v.hasOwnProperty(key)) {
12
- const element = v[key];
13
- value[key] = element;
14
- AtomBinder.refreshValue(value, key);
15
- }
16
- }
17
- }
18
- }).catch((e) => {
19
- if (displayError) {
20
- if (typeof displayError === "function") {
21
- displayError(e);
22
- }
23
- else {
24
- const n = vm.app.resolve(NavigationService);
25
- n.notify(e, "Error", NotifyType.Error);
26
- }
27
- }
28
- });
29
- return value;
30
- }
31
- //# sourceMappingURL=bindPromise.js.map
15
+ }
16
+ }
17
+ }).catch(e => {
18
+ if (displayError) {
19
+ if (typeof displayError === "function") {
20
+ displayError(e);
21
+ } else {
22
+ const n = vm.app.resolve(NavigationService);
23
+ n.notify(e, "Error", NotifyType.Error);
24
+ }
25
+ }
26
+ });
27
+ return value;
28
+ }
@@ -1,6 +1,5 @@
1
1
  import { PropertyBinding } from "../core/PropertyBinding.js";
2
2
  export default function bindProperty(vm, target, propertyName, source, path, twoWays) {
3
- const pb = new PropertyBinding(target, null, propertyName, path, (twoWays && typeof twoWays !== "function") ? true : false, twoWays, source);
4
- return vm.registerDisposable(pb);
5
- }
6
- //# sourceMappingURL=bindProperty.js.map
3
+ const pb = new PropertyBinding(target, null, propertyName, path, twoWays && typeof twoWays !== "function" ? true : false, twoWays, source);
4
+ return vm.registerDisposable(pb);
5
+ }
@@ -2,48 +2,44 @@ import { AtomDisposableList } from "../core/AtomDisposableList.js";
2
2
  import { AtomOnce } from "../core/AtomOnce.js";
3
3
  import { AtomUri } from "../core/AtomUri.js";
4
4
  export default function bindUrlParameter(vm, name, urlParameter) {
5
- if (!name) {
6
- return;
7
- }
8
- if (!urlParameter) {
9
- return;
10
- }
11
- const a = vm;
12
- const paramDisposables = (a.mUrlParameters || (a.mUrlParameters = {}));
13
- const old = paramDisposables[name];
14
- if (old) {
15
- old.dispose();
16
- paramDisposables[name] = null;
17
- }
18
- const disposables = new AtomDisposableList();
19
- const updater = new AtomOnce();
20
- disposables.add(a.setupWatch([
21
- ["app", "url", "hash", urlParameter],
22
- ["app", "url", "query", urlParameter]
23
- ], (hash, query) => {
24
- updater.run(() => {
25
- const value = hash || query;
26
- if (value) {
27
- if (value != vm[name]) {
28
- vm[name] = value;
29
- }
30
- }
31
- });
32
- }));
33
- disposables.add(a.setupWatch([[name]], (value) => {
34
- updater.run(() => {
35
- const url = vm.app.url || (vm.app.url = new AtomUri(""));
36
- url.hash[urlParameter] = value;
37
- vm.app.syncUrl();
38
- });
39
- }));
40
- paramDisposables[name] = disposables;
41
- if (vm.app.url) {
42
- const v = vm.app.url.hash[urlParameter] || vm.app.url.query[urlParameter];
43
- if (v) {
44
- vm[name] = v;
5
+ if (!name) {
6
+ return;
7
+ }
8
+ if (!urlParameter) {
9
+ return;
10
+ }
11
+ const a = vm;
12
+ const paramDisposables = a.mUrlParameters || (a.mUrlParameters = {});
13
+ const old = paramDisposables[name];
14
+ if (old) {
15
+ old.dispose();
16
+ paramDisposables[name] = null;
17
+ }
18
+ const disposables = new AtomDisposableList();
19
+ const updater = new AtomOnce();
20
+ disposables.add(a.setupWatch([["app", "url", "hash", urlParameter], ["app", "url", "query", urlParameter]], (hash, query) => {
21
+ updater.run(() => {
22
+ const value = hash || query;
23
+ if (value) {
24
+ if (value != vm[name]) {
25
+ vm[name] = value;
45
26
  }
27
+ }
28
+ });
29
+ }));
30
+ disposables.add(a.setupWatch([[name]], value => {
31
+ updater.run(() => {
32
+ const url = vm.app.url || (vm.app.url = new AtomUri(""));
33
+ url.hash[urlParameter] = value;
34
+ vm.app.syncUrl();
35
+ });
36
+ }));
37
+ paramDisposables[name] = disposables;
38
+ if (vm.app.url) {
39
+ const v = vm.app.url.hash[urlParameter] || vm.app.url.query[urlParameter];
40
+ if (v) {
41
+ vm[name] = v;
46
42
  }
47
- return vm.registerDisposable(disposables);
48
- }
49
- //# sourceMappingURL=bindUrlParameter.js.map
43
+ }
44
+ return vm.registerDisposable(disposables);
45
+ }
@@ -4,73 +4,66 @@ import { Inject } from "../../di/Inject.js";
4
4
  import { AtomControl } from "./AtomControl.js";
5
5
  import { AtomItemsControl } from "./AtomItemsControl.js";
6
6
  let AtomComboBox = class AtomComboBox extends AtomItemsControl {
7
- constructor(app, e) {
8
- super(app, e || document.createElement("select"));
9
- this.allowMultipleSelection = false;
7
+ constructor(app, e) {
8
+ super(app, e || document.createElement("select"));
9
+ this.allowMultipleSelection = false;
10
+ }
11
+ onCollectionChanged(key, index, item) {
12
+ super.onCollectionChanged(key, index, item);
13
+ try {
14
+ this.isChanging = true;
15
+ const se = this.element;
16
+ se.selectedIndex = this.selectedIndex;
17
+ } finally {
18
+ this.isChanging = false;
10
19
  }
11
- onCollectionChanged(key, index, item) {
12
- super.onCollectionChanged(key, index, item);
13
- try {
14
- this.isChanging = true;
15
- const se = this.element;
16
- se.selectedIndex = this.selectedIndex;
17
- }
18
- finally {
19
- this.isChanging = false;
20
- }
20
+ }
21
+ updateSelectionBindings() {
22
+ super.updateSelectionBindings();
23
+ try {
24
+ if (this.isChanging) {
25
+ return;
26
+ }
27
+ this.isChanging = true;
28
+ const se = this.element;
29
+ se.selectedIndex = this.selectedIndex;
30
+ } finally {
31
+ this.isChanging = false;
21
32
  }
22
- updateSelectionBindings() {
23
- super.updateSelectionBindings();
24
- try {
25
- if (this.isChanging) {
26
- return;
27
- }
28
- this.isChanging = true;
29
- const se = this.element;
30
- se.selectedIndex = this.selectedIndex;
33
+ }
34
+ preCreate() {
35
+ super.preCreate();
36
+ this.itemTemplate = AtomComboBoxItemTemplate;
37
+ this.runAfterInit(() => {
38
+ this.bindEvent(this.element, "change", s => {
39
+ if (this.isChanging) {
40
+ return;
31
41
  }
32
- finally {
33
- this.isChanging = false;
42
+ try {
43
+ this.isChanging = true;
44
+ const index = this.element.selectedIndex;
45
+ if (index === -1) {
46
+ this.selectedItems.clear();
47
+ return;
48
+ }
49
+ this.selectedItem = this.items[index];
50
+ } finally {
51
+ this.isChanging = false;
34
52
  }
35
- }
36
- preCreate() {
37
- super.preCreate();
38
- this.itemTemplate = AtomComboBoxItemTemplate;
39
- this.runAfterInit(() => {
40
- this.bindEvent(this.element, "change", (s) => {
41
- if (this.isChanging) {
42
- return;
43
- }
44
- try {
45
- this.isChanging = true;
46
- const index = this.element.selectedIndex;
47
- if (index === -1) {
48
- this.selectedItems.clear();
49
- return;
50
- }
51
- this.selectedItem = this.items[index];
52
- }
53
- finally {
54
- this.isChanging = false;
55
- }
56
- });
57
- });
58
- }
53
+ });
54
+ });
55
+ }
59
56
  };
60
- AtomComboBox = __decorate([
61
- __param(0, Inject),
62
- __metadata("design:paramtypes", [App, HTMLElement])
63
- ], AtomComboBox);
57
+ AtomComboBox = __decorate([__param(0, Inject), __metadata("design:paramtypes", [App, HTMLElement])], AtomComboBox);
64
58
  export { AtomComboBox };
65
59
  class AtomComboBoxItemTemplate extends AtomControl {
66
- constructor(app, e) {
67
- super(app, e || document.createElement("option"));
68
- }
69
- create() {
70
- this.bind(this.element, "text", [["data"]], false, (v) => {
71
- const ip = this.element._templateParent;
72
- return v[ip.labelPath];
73
- });
74
- }
75
- }
76
- //# sourceMappingURL=AtomComboBox.js.map
60
+ constructor(app, e) {
61
+ super(app, e || document.createElement("option"));
62
+ }
63
+ create() {
64
+ this.bind(this.element, "text", [["data"]], false, v => {
65
+ const ip = this.element._templateParent;
66
+ return v[ip.labelPath];
67
+ });
68
+ }
69
+ }