@web-atoms/web-controls 2.2.0 → 2.2.2

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 (223) hide show
  1. package/dist/ModuleFiles.js +45 -46
  2. package/dist/ModuleFiles.js.map +1 -1
  3. package/dist/PageNavigator.d.ts +2 -2
  4. package/dist/PageNavigator.d.ts.map +1 -1
  5. package/dist/PageNavigator.js +54 -39
  6. package/dist/PageNavigator.js.map +1 -1
  7. package/dist/animations/Animations.js +38 -52
  8. package/dist/animations/Animations.js.map +1 -1
  9. package/dist/auto-complete/AppComboBoxViewModel.js +16 -17
  10. package/dist/auto-complete/AppComboBoxViewModel.js.map +1 -1
  11. package/dist/auto-complete/AutoCompleteBox.js +296 -273
  12. package/dist/auto-complete/AutoCompleteBox.js.map +1 -1
  13. package/dist/auto-complete/AutoCompleteBoxStyle.js +69 -65
  14. package/dist/auto-complete/AutoCompleteBoxStyle.js.map +1 -1
  15. package/dist/auto-complete/ItemHost.js +39 -28
  16. package/dist/auto-complete/ItemHost.js.map +1 -1
  17. package/dist/basic/AtomChips.js +348 -355
  18. package/dist/basic/AtomChips.js.map +1 -1
  19. package/dist/basic/AtomRepeater.js +1000 -1041
  20. package/dist/basic/AtomRepeater.js.map +1 -1
  21. package/dist/basic/AtomSuggestions.js +154 -161
  22. package/dist/basic/AtomSuggestions.js.map +1 -1
  23. package/dist/basic/Button.js +63 -60
  24. package/dist/basic/Button.js.map +1 -1
  25. package/dist/basic/Calendar.js +215 -255
  26. package/dist/basic/Calendar.js.map +1 -1
  27. package/dist/basic/CheckBoxList.js +73 -66
  28. package/dist/basic/CheckBoxList.js.map +1 -1
  29. package/dist/basic/Checkbox.js +30 -37
  30. package/dist/basic/Checkbox.js.map +1 -1
  31. package/dist/basic/Chip.js +52 -76
  32. package/dist/basic/Chip.js.map +1 -1
  33. package/dist/basic/ComboBox.js +75 -70
  34. package/dist/basic/ComboBox.js.map +1 -1
  35. package/dist/basic/DataGrid.js +289 -306
  36. package/dist/basic/DataGrid.js.map +1 -1
  37. package/dist/basic/DateField.js +90 -97
  38. package/dist/basic/DateField.js.map +1 -1
  39. package/dist/basic/DropDown.js +162 -142
  40. package/dist/basic/DropDown.js.map +1 -1
  41. package/dist/basic/Editable.js +109 -107
  42. package/dist/basic/Editable.js.map +1 -1
  43. package/dist/basic/Expander.js +111 -185
  44. package/dist/basic/Expander.js.map +1 -1
  45. package/dist/basic/Form.js +269 -264
  46. package/dist/basic/Form.js.map +1 -1
  47. package/dist/basic/FormDialog.js +27 -29
  48. package/dist/basic/FormDialog.js.map +1 -1
  49. package/dist/basic/FormField.js +183 -203
  50. package/dist/basic/FormField.js.map +1 -1
  51. package/dist/basic/IElement.js +8 -12
  52. package/dist/basic/IElement.js.map +1 -1
  53. package/dist/basic/InlinePopup.js +291 -262
  54. package/dist/basic/InlinePopup.js.map +1 -1
  55. package/dist/basic/InlinePopupControl.js +34 -33
  56. package/dist/basic/InlinePopupControl.js.map +1 -1
  57. package/dist/basic/Input.js +28 -28
  58. package/dist/basic/Input.js.map +1 -1
  59. package/dist/basic/ListRepeater.js +45 -61
  60. package/dist/basic/ListRepeater.js.map +1 -1
  61. package/dist/basic/MaskedInput.js +53 -66
  62. package/dist/basic/MaskedInput.js.map +1 -1
  63. package/dist/basic/MaskedInputDiv.js +78 -99
  64. package/dist/basic/MaskedInputDiv.js.map +1 -1
  65. package/dist/basic/Mix.js +34 -33
  66. package/dist/basic/Mix.js.map +1 -1
  67. package/dist/basic/Panel.js +34 -34
  68. package/dist/basic/Panel.js.map +1 -1
  69. package/dist/basic/PasswordBox.js +46 -49
  70. package/dist/basic/PasswordBox.js.map +1 -1
  71. package/dist/basic/PinchZoomView.js +250 -255
  72. package/dist/basic/PinchZoomView.js.map +1 -1
  73. package/dist/basic/PopupButton.js +70 -128
  74. package/dist/basic/PopupButton.js.map +1 -1
  75. package/dist/basic/RadioButtonList.js +63 -51
  76. package/dist/basic/RadioButtonList.js.map +1 -1
  77. package/dist/basic/RefreshLock.js +76 -60
  78. package/dist/basic/RefreshLock.js.map +1 -1
  79. package/dist/basic/Row.js +41 -43
  80. package/dist/basic/Row.js.map +1 -1
  81. package/dist/basic/Swipe.js +94 -101
  82. package/dist/basic/Swipe.js.map +1 -1
  83. package/dist/basic/Switch.js +58 -105
  84. package/dist/basic/Switch.js.map +1 -1
  85. package/dist/basic/TableRepeater.js +42 -43
  86. package/dist/basic/TableRepeater.js.map +1 -1
  87. package/dist/basic/ToggleButtonBar.js +58 -71
  88. package/dist/basic/ToggleButtonBar.js.map +1 -1
  89. package/dist/basic/Tooltip.js +89 -81
  90. package/dist/basic/Tooltip.js.map +1 -1
  91. package/dist/basic/combineClasses.js +12 -16
  92. package/dist/basic/combineClasses.js.map +1 -1
  93. package/dist/basic/in-built/InBuiltStyles.js +44 -43
  94. package/dist/basic/in-built/InBuiltStyles.js.map +1 -1
  95. package/dist/button-bar/AtomButtonBar.js +40 -50
  96. package/dist/button-bar/AtomButtonBar.js.map +1 -1
  97. package/dist/buttons/AtomPopupButton.js +18 -18
  98. package/dist/buttons/AtomPopupButton.js.map +1 -1
  99. package/dist/buttons/AtomPopupButtonStyle.js +28 -29
  100. package/dist/buttons/AtomPopupButtonStyle.js.map +1 -1
  101. package/dist/calendar/AtomCalendar.js +93 -61
  102. package/dist/calendar/AtomCalendar.js.map +1 -1
  103. package/dist/calendar/AtomCalendarStyle.js +165 -136
  104. package/dist/calendar/AtomCalendarStyle.js.map +1 -1
  105. package/dist/calendar/CalendarViewModel.js +105 -114
  106. package/dist/calendar/CalendarViewModel.js.map +1 -1
  107. package/dist/calendar/res/SRCalendar.js +85 -51
  108. package/dist/calendar/res/SRCalendar.js.map +1 -1
  109. package/dist/calendar/res/en-US/SRCalendar.js +74 -39
  110. package/dist/calendar/res/en-US/SRCalendar.js.map +1 -1
  111. package/dist/data-grid/AtomColumn.js +55 -72
  112. package/dist/data-grid/AtomColumn.js.map +1 -1
  113. package/dist/data-grid/AtomDataGrid.js +64 -63
  114. package/dist/data-grid/AtomDataGrid.js.map +1 -1
  115. package/dist/data-grid/AtomDataGridStyle.js +50 -50
  116. package/dist/data-grid/AtomDataGridStyle.js.map +1 -1
  117. package/dist/data-grid/AtomDataGridViewModel.js +71 -77
  118. package/dist/data-grid/AtomDataGridViewModel.js.map +1 -1
  119. package/dist/data-grid/GridTemplate.js +64 -66
  120. package/dist/data-grid/GridTemplate.js.map +1 -1
  121. package/dist/data-pager/AtomDataPager.js +104 -94
  122. package/dist/data-pager/AtomDataPager.js.map +1 -1
  123. package/dist/date-field/AtomDateField.js +52 -47
  124. package/dist/date-field/AtomDateField.js.map +1 -1
  125. package/dist/desktop-app/DesktopApp.js +87 -123
  126. package/dist/desktop-app/DesktopApp.js.map +1 -1
  127. package/dist/form/AtomField.js +131 -133
  128. package/dist/form/AtomField.js.map +1 -1
  129. package/dist/form/AtomForm.js +84 -98
  130. package/dist/form/AtomForm.js.map +1 -1
  131. package/dist/form/AtomFormGroup.js +15 -19
  132. package/dist/form/AtomFormGroup.js.map +1 -1
  133. package/dist/form/AtomFormStyle.js +67 -67
  134. package/dist/form/AtomFormStyle.js.map +1 -1
  135. package/dist/form/HelpPopup.js +23 -19
  136. package/dist/form/HelpPopup.js.map +1 -1
  137. package/dist/html-editor/AtomHtmlEditor.js +295 -383
  138. package/dist/html-editor/AtomHtmlEditor.js.map +1 -1
  139. package/dist/html-editor/commands/AddImage.js +79 -65
  140. package/dist/html-editor/commands/AddImage.js.map +1 -1
  141. package/dist/html-editor/commands/AddLink.js +98 -88
  142. package/dist/html-editor/commands/AddLink.js.map +1 -1
  143. package/dist/html-editor/commands/Align.js +40 -23
  144. package/dist/html-editor/commands/Align.js.map +1 -1
  145. package/dist/html-editor/commands/AttachFile.js +93 -73
  146. package/dist/html-editor/commands/AttachFile.js.map +1 -1
  147. package/dist/html-editor/commands/Bold.js +23 -19
  148. package/dist/html-editor/commands/Bold.js.map +1 -1
  149. package/dist/html-editor/commands/ChangeColor.js +55 -144
  150. package/dist/html-editor/commands/ChangeColor.js.map +1 -1
  151. package/dist/html-editor/commands/ChangeFont.js +67 -75
  152. package/dist/html-editor/commands/ChangeFont.js.map +1 -1
  153. package/dist/html-editor/commands/ChangeFontSize.js +32 -21
  154. package/dist/html-editor/commands/ChangeFontSize.js.map +1 -1
  155. package/dist/html-editor/commands/Command.js +53 -39
  156. package/dist/html-editor/commands/Command.js.map +1 -1
  157. package/dist/html-editor/commands/CommandButton.js +93 -56
  158. package/dist/html-editor/commands/CommandButton.js.map +1 -1
  159. package/dist/html-editor/commands/Headings.js +42 -25
  160. package/dist/html-editor/commands/Headings.js.map +1 -1
  161. package/dist/html-editor/commands/HorizontalRule.js +22 -19
  162. package/dist/html-editor/commands/HorizontalRule.js.map +1 -1
  163. package/dist/html-editor/commands/HtmlCommands.js +73 -76
  164. package/dist/html-editor/commands/HtmlCommands.js.map +1 -1
  165. package/dist/html-editor/commands/IndentLess.js +23 -19
  166. package/dist/html-editor/commands/IndentLess.js.map +1 -1
  167. package/dist/html-editor/commands/IndentMore.js +23 -19
  168. package/dist/html-editor/commands/IndentMore.js.map +1 -1
  169. package/dist/html-editor/commands/Italic.js +23 -19
  170. package/dist/html-editor/commands/Italic.js.map +1 -1
  171. package/dist/html-editor/commands/NumberedList.js +23 -19
  172. package/dist/html-editor/commands/NumberedList.js.map +1 -1
  173. package/dist/html-editor/commands/Quote.js +23 -19
  174. package/dist/html-editor/commands/Quote.js.map +1 -1
  175. package/dist/html-editor/commands/RemoveFormat.js +23 -19
  176. package/dist/html-editor/commands/RemoveFormat.js.map +1 -1
  177. package/dist/html-editor/commands/Separator.js +24 -27
  178. package/dist/html-editor/commands/Separator.js.map +1 -1
  179. package/dist/html-editor/commands/Source.js +95 -67
  180. package/dist/html-editor/commands/Source.js.map +1 -1
  181. package/dist/html-editor/commands/StrikeThrough.js +23 -19
  182. package/dist/html-editor/commands/StrikeThrough.js.map +1 -1
  183. package/dist/html-editor/commands/Underline.js +23 -19
  184. package/dist/html-editor/commands/Underline.js.map +1 -1
  185. package/dist/html-editor/commands/Unlink.js +24 -23
  186. package/dist/html-editor/commands/Unlink.js.map +1 -1
  187. package/dist/html-editor/commands/UnorderedList.js +23 -19
  188. package/dist/html-editor/commands/UnorderedList.js.map +1 -1
  189. package/dist/mobile/pages/AtomPageFrame.js +177 -192
  190. package/dist/mobile/pages/AtomPageFrame.js.map +1 -1
  191. package/dist/mobile/pages/AtomPageFrameStyle.js +56 -54
  192. package/dist/mobile/pages/AtomPageFrameStyle.js.map +1 -1
  193. package/dist/mobile/pages/AtomPageFrameTemplate.js +48 -32
  194. package/dist/mobile/pages/AtomPageFrameTemplate.js.map +1 -1
  195. package/dist/mobile/pages/Page.js +23 -23
  196. package/dist/mobile/pages/Page.js.map +1 -1
  197. package/dist/mobile/pages/PageFrameViewModel.js +154 -148
  198. package/dist/mobile/pages/PageFrameViewModel.js.map +1 -1
  199. package/dist/mobile/pages/TitleTemplate.js +22 -22
  200. package/dist/mobile/pages/TitleTemplate.js.map +1 -1
  201. package/dist/mobile-app/BottomPopup.js +206 -240
  202. package/dist/mobile-app/BottomPopup.js.map +1 -1
  203. package/dist/mobile-app/MobileApp.js +552 -654
  204. package/dist/mobile-app/MobileApp.js.map +1 -1
  205. package/dist/player/AtomVideoPlayer.js +221 -267
  206. package/dist/player/AtomVideoPlayer.js.map +1 -1
  207. package/dist/player/TrackProgress.js +28 -27
  208. package/dist/player/TrackProgress.js.map +1 -1
  209. package/dist/setupBridge.js +74 -98
  210. package/dist/setupBridge.js.map +1 -1
  211. package/dist/switch/AtomSwitch.js +43 -37
  212. package/dist/switch/AtomSwitch.js.map +1 -1
  213. package/dist/switch/AtomSwitchStyle.js +68 -68
  214. package/dist/switch/AtomSwitchStyle.js.map +1 -1
  215. package/dist/time-field/AtomTimeField.js +97 -83
  216. package/dist/time-field/AtomTimeField.js.map +1 -1
  217. package/dist/time-field/AtomTimeFieldStyle.js +24 -25
  218. package/dist/time-field/AtomTimeFieldStyle.js.map +1 -1
  219. package/dist/toggle-view/AtomToggleView.js +96 -115
  220. package/dist/toggle-view/AtomToggleView.js.map +1 -1
  221. package/dist/tsconfig.tsbuildinfo +1 -1
  222. package/package.json +2 -1
  223. package/src/PageNavigator.ts +2 -2
@@ -1,299 +1,328 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __rest = (this && this.__rest) || function (s, e) {
11
- var t = {};
12
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
- t[p] = s[p];
14
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
- t[p[i]] = s[p[i]];
1
+ System.register(["@web-atoms/core/dist/core/AtomDisposableList", "@web-atoms/core/dist/core/Colors", "@web-atoms/core/dist/core/sleep", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/styles/CSS"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var AtomDisposableList, Colors, sleep, XNode, StyleRule, AtomControl, ElementValueSetters, CSS, InlinePopup, __awaiter, __rest;
5
+ function closeHandler(opener, container, close) {
6
+ let handler = null;
7
+ const body = document.body;
8
+ handler = e => {
9
+ var _a;
10
+ let start = e.target;
11
+ if (e.defaultPrevented) {
12
+ return;
13
+ }
14
+ while (start) {
15
+ if (start === body) {
16
+ break;
17
+ }
18
+ if (start === opener) {
19
+ return;
20
+ }
21
+ if (start === container) {
22
+ return;
18
23
  }
19
- return t;
20
- };
21
- (function (factory) {
22
- if (typeof module === "object" && typeof module.exports === "object") {
23
- var v = factory(require, exports);
24
- if (v !== undefined) module.exports = v;
24
+ start = start.parentElement;
25
+ }
26
+ close();
27
+ e.preventDefault();
28
+ (_a = e.stopImmediatePropagation) === null || _a === void 0 ? void 0 : _a.call(e);
29
+ };
30
+ document.body.addEventListener("click", handler, true);
31
+ let ce = container;
32
+ const containNoneList = [];
33
+ while (ce) {
34
+ const isNotNone = window.getComputedStyle(ce).contain !== "none";
35
+ if (isNotNone) {
36
+ ce.setAttribute("data-force-contain", "none");
37
+ containNoneList.push(ce);
38
+ }
39
+ ce = ce.parentElement;
25
40
  }
26
- else if (typeof define === "function" && define.amd) {
27
- define(["require", "exports", "@web-atoms/core/dist/core/AtomDisposableList", "@web-atoms/core/dist/core/Colors", "@web-atoms/core/dist/core/sleep", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/styles/CSS"], factory);
41
+ return () => {
42
+ document.body.removeEventListener("click", handler, true);
43
+ for (const iterator of containNoneList) {
44
+ iterator.removeAttribute("data-force-contain");
45
+ }
46
+ };
47
+ }
48
+ function InlinePopupButton(_a, ...popupNodes) {
49
+ var {
50
+ text,
51
+ label,
52
+ icon,
53
+ hasBorder = false,
54
+ nodes = [],
55
+ defaultOnClick = "close",
56
+ anchorRight = false,
57
+ popup
58
+ } = _a,
59
+ a = __rest(_a, ["text", "label", "icon", "hasBorder", "nodes", "defaultOnClick", "anchorRight", "popup"]);
60
+ if (popup) {
61
+ return XNode.create("button", Object.assign({
62
+ "data-popup-class": popup,
63
+ "data-has-border": !!hasBorder,
64
+ "data-inline-popup-button": "inline-popup-button",
65
+ "data-alignment": anchorRight ? "bottomRight" : "bottomLeft"
66
+ }, a), icon && XNode.create("i", {
67
+ class: icon
68
+ }), text && XNode.create("span", {
69
+ text: text
70
+ }), label && XNode.create("label", {
71
+ text: text
72
+ }), ...nodes);
28
73
  }
29
- })(function (require, exports) {
30
- "use strict";
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.InlinePopupButton = void 0;
33
- const AtomDisposableList_1 = require("@web-atoms/core/dist/core/AtomDisposableList");
34
- const Colors_1 = require("@web-atoms/core/dist/core/Colors");
35
- const sleep_1 = require("@web-atoms/core/dist/core/sleep");
36
- const XNode_1 = require("@web-atoms/core/dist/core/XNode");
37
- const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
38
- const AtomControl_1 = require("@web-atoms/core/dist/web/controls/AtomControl");
39
- const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
40
- (0, CSS_1.default)((0, StyleRule_1.default)()
41
- .position("absolute")
42
- .borderRadius(5)
43
- .padding(5)
44
- .border("solid 1px lightgray")
45
- .defaultBoxShadow()
46
- .zIndex(5000)
47
- .backgroundColor("var(--primary-bg, white)")
48
- .color("var(--primary-color, darkgray)")
49
- .left(0), "*[data-inline-popup=inline-popup]");
50
- (0, CSS_1.default)((0, StyleRule_1.default)()
51
- .right(0)
52
- .left("unset"), "*[data-alignment=bottom-right] > [data-inline-popup=inline-popup]");
53
- function closeHandler(opener, container, close) {
54
- let handler = null;
55
- const body = document.body;
56
- handler = (e) => {
57
- var _a;
58
- let start = e.target;
59
- if (e.defaultPrevented) {
60
- return;
61
- }
62
- while (start) {
63
- if (start === body) {
64
- break;
65
- }
66
- if (start === opener) {
67
- return;
68
- }
69
- if (start === container) {
70
- return;
71
- }
72
- start = start.parentElement;
74
+ let isOpen = false;
75
+ const done = () => isOpen = false;
76
+ const click = e => __awaiter(this, void 0, void 0, function* () {
77
+ if (isOpen || e.defaultPrevented) {
78
+ return;
79
+ }
80
+ const popupNode = popupNodes.length > 1 ? XNode.create("div", null, ...popupNodes) : popupNodes[0];
81
+ try {
82
+ isOpen = true;
83
+ yield InlinePopup.show(e.currentTarget, popupNode, {
84
+ defaultOnClick
85
+ });
86
+ } finally {
87
+ done();
88
+ }
89
+ });
90
+ return XNode.create("button", Object.assign({
91
+ "event-click": click,
92
+ "data-has-border": !!hasBorder,
93
+ "data-alignment": anchorRight ? "bottomRight" : "bottomLeft",
94
+ "data-inline-popup-button": "inline-popup-button"
95
+ }, a), icon && XNode.create("i", {
96
+ class: icon
97
+ }), text && XNode.create("span", {
98
+ text: text
99
+ }), label && XNode.create("label", {
100
+ text: text
101
+ }), ...nodes);
102
+ }
103
+ _export({
104
+ default: void 0,
105
+ InlinePopupButton: InlinePopupButton
106
+ });
107
+ return {
108
+ setters: [function (_webAtomsCoreDistCoreAtomDisposableList) {
109
+ AtomDisposableList = _webAtomsCoreDistCoreAtomDisposableList.AtomDisposableList;
110
+ }, function (_webAtomsCoreDistCoreColors) {
111
+ Colors = _webAtomsCoreDistCoreColors.default;
112
+ }, function (_webAtomsCoreDistCoreSleep) {
113
+ sleep = _webAtomsCoreDistCoreSleep.default;
114
+ }, function (_webAtomsCoreDistCoreXNode) {
115
+ XNode = _webAtomsCoreDistCoreXNode.default;
116
+ }, function (_webAtomsCoreDistStyleStyleRule) {
117
+ StyleRule = _webAtomsCoreDistStyleStyleRule.default;
118
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
119
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
120
+ ElementValueSetters = _webAtomsCoreDistWebControlsAtomControl.ElementValueSetters;
121
+ }, function (_webAtomsCoreDistWebStylesCSS) {
122
+ CSS = _webAtomsCoreDistWebStylesCSS.default;
123
+ }],
124
+ execute: function () {
125
+ __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
126
+ function adopt(value) {
127
+ return value instanceof P ? value : new P(function (resolve) {
128
+ resolve(value);
129
+ });
130
+ }
131
+ return new (P || (P = Promise))(function (resolve, reject) {
132
+ function fulfilled(value) {
133
+ try {
134
+ step(generator.next(value));
135
+ } catch (e) {
136
+ reject(e);
73
137
  }
74
- close();
75
- e.preventDefault();
76
- (_a = e.stopImmediatePropagation) === null || _a === void 0 ? void 0 : _a.call(e);
77
- };
78
- document.body.addEventListener("click", handler, true);
79
- let ce = container;
80
- const containNoneList = [];
81
- while (ce) {
82
- const isNotNone = window.getComputedStyle(ce).contain !== "none";
83
- if (isNotNone) {
84
- ce.setAttribute("data-force-contain", "none");
85
- containNoneList.push(ce);
138
+ }
139
+ function rejected(value) {
140
+ try {
141
+ step(generator["throw"](value));
142
+ } catch (e) {
143
+ reject(e);
86
144
  }
87
- ce = ce.parentElement;
145
+ }
146
+ function step(result) {
147
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
148
+ }
149
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
150
+ });
151
+ };
152
+ __rest = void 0 && (void 0).__rest || function (s, e) {
153
+ var t = {};
154
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
155
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
156
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
88
157
  }
89
- return () => {
90
- document.body.removeEventListener("click", handler, true);
91
- for (const iterator of containNoneList) {
92
- iterator.removeAttribute("data-force-contain");
93
- }
94
- };
95
- }
96
- class InlinePopup extends AtomControl_1.AtomControl {
158
+ return t;
159
+ };
160
+ CSS(StyleRule().position("absolute").borderRadius(5).padding(5).border("solid 1px lightgray").defaultBoxShadow().zIndex(5000).backgroundColor("var(--primary-bg, white)").color("var(--primary-color, darkgray)").left(0), "*[data-inline-popup=inline-popup]");
161
+ CSS(StyleRule().right(0).left("unset"), "*[data-alignment=bottom-right] > [data-inline-popup=inline-popup]");
162
+ _export("default", InlinePopup = class InlinePopup extends AtomControl {
97
163
  static show(target, node, options = {}) {
98
- var _a, _b;
99
- return __awaiter(this, void 0, void 0, function* () {
100
- const targetElement = ((_a = target.element) !== null && _a !== void 0 ? _a : target);
101
- const control = target.element ? target : AtomControl_1.AtomControl.from(target);
102
- const targetStyle = window.getComputedStyle(targetElement);
103
- if (!/fixed|absolute|relative/i.test(targetStyle.position)) {
104
- targetElement.style.position = "relative";
164
+ var _a, _b;
165
+ return __awaiter(this, void 0, void 0, function* () {
166
+ const targetElement = (_a = target.element) !== null && _a !== void 0 ? _a : target;
167
+ const control = target.element ? target : AtomControl.from(target);
168
+ const targetStyle = window.getComputedStyle(targetElement);
169
+ if (!/fixed|absolute|relative/i.test(targetStyle.position)) {
170
+ targetElement.style.position = "relative";
171
+ }
172
+ yield sleep(10);
173
+ const container = document.createElement("div");
174
+ container.setAttribute("data-inline-popup", "inline-popup");
175
+ const alignment = (_b = options.alignment) !== null && _b !== void 0 ? _b : "none";
176
+ switch (alignment) {
177
+ case "bottomLeft":
178
+ container.style.top = `${targetElement.offsetHeight}px`;
179
+ container.style.left = "0px";
180
+ break;
181
+ case "bottomRight":
182
+ container.style.top = `${targetElement.offsetHeight}px`;
183
+ container.style.right = "0px";
184
+ break;
185
+ case "topRight":
186
+ container.style.top = "0px";
187
+ container.style.left = `${targetElement.offsetWidth}px`;
188
+ break;
189
+ default:
190
+ container.style.top = `${targetElement.offsetHeight}px`;
191
+ break;
192
+ }
193
+ container._logicalParent = targetElement;
194
+ control.render(XNode.create("div", null, " ", node, " "), container, control);
195
+ targetElement.insertAdjacentElement("beforeend", container);
196
+ return yield new Promise((resolve, reject) => {
197
+ var _a;
198
+ const disposables = new AtomDisposableList();
199
+ let resolved = false;
200
+ const close = r => {
201
+ if (resolved) {
202
+ return;
203
+ }
204
+ resolved = true;
205
+ resolve(r);
206
+ disposables.dispose();
207
+ };
208
+ const cancel = (r = "cancelled") => {
209
+ if (resolved) {
210
+ return;
211
+ }
212
+ resolved = true;
213
+ reject(r);
214
+ disposables.dispose();
215
+ };
216
+ const firstChild = container.firstElementChild.atomControl;
217
+ if (firstChild instanceof InlinePopup) {
218
+ firstChild.cancel = cancel;
219
+ firstChild.close = close;
220
+ } else {
221
+ if (options.onClick === void 0) {
222
+ options.onClick = options.defaultOnClick;
105
223
  }
106
- yield (0, sleep_1.default)(10);
107
- const container = document.createElement("div");
108
- container.setAttribute("data-inline-popup", "inline-popup");
109
- const alignment = (_b = options.alignment) !== null && _b !== void 0 ? _b : "none";
110
- switch (alignment) {
111
- case "bottomLeft":
112
- container.style.top = `${targetElement.offsetHeight}px`;
113
- container.style.left = "0px";
114
- break;
115
- case "bottomRight":
116
- container.style.top = `${targetElement.offsetHeight}px`;
117
- container.style.right = "0px";
118
- break;
119
- case "topRight":
120
- container.style.top = "0px";
121
- container.style.left = `${targetElement.offsetWidth}px`;
122
- break;
123
- default:
124
- container.style.top = `${targetElement.offsetHeight}px`;
125
- break;
224
+ }
225
+ const defaultClose = options.onClick === "close" ? close : cancel;
226
+ const observer = new MutationObserver(() => {
227
+ if (!container.isConnected) {
228
+ defaultClose();
126
229
  }
127
- container._logicalParent = targetElement;
128
- // @ts-ignore
129
- control.render(XNode_1.default.create("div", null,
130
- " ",
131
- node,
132
- " "), container, control);
133
- targetElement.insertAdjacentElement("beforeend", container);
134
- return yield new Promise((resolve, reject) => {
135
- var _a;
136
- const disposables = new AtomDisposableList_1.AtomDisposableList();
137
- let resolved = false;
138
- const close = (r) => {
139
- if (resolved) {
140
- return;
141
- }
142
- resolved = true;
143
- resolve(r);
144
- disposables.dispose();
145
- };
146
- const cancel = (r = "cancelled") => {
147
- if (resolved) {
148
- return;
149
- }
150
- resolved = true;
151
- reject(r);
152
- disposables.dispose();
153
- };
154
- const firstChild = container.firstElementChild.atomControl;
155
- if (firstChild instanceof InlinePopup) {
156
- firstChild.cancel = cancel;
157
- firstChild.close = close;
158
- }
159
- else {
160
- if (options.onClick === void 0) {
161
- options.onClick = options.defaultOnClick;
162
- }
163
- }
164
- const defaultClose = options.onClick === "close" ? close : cancel;
165
- const observer = new MutationObserver(() => {
166
- if (!container.isConnected) {
167
- defaultClose();
168
- }
169
- });
170
- observer.observe(targetElement, { childList: true });
171
- disposables.add(() => {
172
- observer.disconnect();
173
- control.dispose(container);
174
- container.remove();
175
- });
176
- if (options.onClick) {
177
- disposables.add(control.bindEvent(container, "click", () => __awaiter(this, void 0, void 0, function* () {
178
- yield (0, sleep_1.default)(200);
179
- defaultClose();
180
- })));
181
- }
182
- (_a = options.cancelToken) === null || _a === void 0 ? void 0 : _a.registerForCancel(cancel);
183
- disposables.add(closeHandler(targetElement, container, defaultClose));
184
- });
230
+ });
231
+ observer.observe(targetElement, {
232
+ childList: true
233
+ });
234
+ disposables.add(() => {
235
+ observer.disconnect();
236
+ control.dispose(container);
237
+ container.remove();
238
+ });
239
+ if (options.onClick) {
240
+ disposables.add(control.bindEvent(container, "click", () => __awaiter(this, void 0, void 0, function* () {
241
+ yield sleep(200);
242
+ defaultClose();
243
+ })));
244
+ }
245
+ (_a = options.cancelToken) === null || _a === void 0 ? void 0 : _a.registerForCancel(cancel);
246
+ disposables.add(closeHandler(targetElement, container, defaultClose));
185
247
  });
248
+ });
186
249
  }
187
250
  static showControl(target, options = {}) {
188
- const node = XNode_1.default.create(this, {});
189
- return this.show(target, node, options);
251
+ const node = XNode.create(this, {});
252
+ return this.show(target, node, options);
190
253
  }
191
254
  dispatchClickEvent(e, data) {
192
- let start = this.element.parentElement;
193
- while (start) {
194
- const atomControl = AtomControl_1.AtomControl.from(start);
195
- if (atomControl) {
196
- atomControl.dispatchClickEvent(e, data);
197
- return;
198
- }
199
- start = start.parentElement;
255
+ let start = this.element.parentElement;
256
+ while (start) {
257
+ const atomControl = AtomControl.from(start);
258
+ if (atomControl) {
259
+ atomControl.dispatchClickEvent(e, data);
260
+ return;
200
261
  }
201
- super.dispatchClickEvent(e, data);
262
+ start = start.parentElement;
263
+ }
264
+ super.dispatchClickEvent(e, data);
202
265
  }
203
- }
204
- exports.default = InlinePopup;
205
- (0, CSS_1.default)((0, StyleRule_1.default)()
206
- .flexLayout({ alignItems: "center", inline: true, justifyContent: "center" })
207
- .flexWrap("wrap")
208
- .padding(3)
209
- .paddingLeft(5)
210
- .paddingRight(5)
211
- .and((0, StyleRule_1.default)("[data-has-border=false]")
212
- .border("none")
213
- .backgroundColor(Colors_1.default.transparent)), "*[data-inline-popup-button=inline-popup-button]");
214
- document.body.addEventListener("click", (e) => {
266
+ });
267
+ CSS(StyleRule().flexLayout({
268
+ alignItems: "center",
269
+ inline: true,
270
+ justifyContent: "center"
271
+ }).flexWrap("wrap").padding(3).paddingLeft(5).paddingRight(5).and(StyleRule("[data-has-border=false]").border("none").backgroundColor(Colors.transparent)), "*[data-inline-popup-button=inline-popup-button]");
272
+ document.body.addEventListener("click", e => {
215
273
  let start = e.target;
216
274
  let popupFactory;
217
275
  let alignment;
218
276
  while (start) {
219
- popupFactory = start.popupFactory;
220
- if (popupFactory) {
221
- alignment = start.dataset.alignment;
222
- // stop...
223
- break;
224
- }
225
- start = start.parentElement;
277
+ popupFactory = start.popupFactory;
278
+ if (popupFactory) {
279
+ alignment = start.dataset.alignment;
280
+ break;
281
+ }
282
+ start = start.parentElement;
226
283
  }
227
284
  if (!start) {
228
- return;
285
+ return;
229
286
  }
230
- const control = AtomControl_1.AtomControl.from(start);
287
+ const control = AtomControl.from(start);
231
288
  const app = control.app;
232
289
  const target = start;
233
290
  const element = control.element;
234
291
  let itemIndex;
235
292
  let data;
236
293
  if (control.items && control.itemRenderer) {
237
- // this is atom repeater
238
- while (start && start !== element) {
239
- itemIndex !== null && itemIndex !== void 0 ? itemIndex : (itemIndex = start.dataset.itemIndex);
240
- if (itemIndex) {
241
- data = control.items[itemIndex];
242
- break;
243
- }
244
- start = start.parentElement;
294
+ while (start && start !== element) {
295
+ itemIndex !== null && itemIndex !== void 0 ? itemIndex : itemIndex = start.dataset.itemIndex;
296
+ if (itemIndex) {
297
+ data = control.items[itemIndex];
298
+ break;
245
299
  }
300
+ start = start.parentElement;
301
+ }
246
302
  }
247
303
  if (!data) {
248
- data = new Proxy(target, {
249
- get(t, p, receiver) {
250
- let s = target;
251
- while (s) {
252
- const v = s.dataset[p];
253
- if (v !== void 0) {
254
- return v;
255
- }
256
- s = s.parentElement;
257
- }
258
- },
259
- });
304
+ data = new Proxy(target, {
305
+ get(t, p, receiver) {
306
+ let s = target;
307
+ while (s) {
308
+ const v = s.dataset[p];
309
+ if (v !== void 0) {
310
+ return v;
311
+ }
312
+ s = s.parentElement;
313
+ }
314
+ }
315
+ });
260
316
  }
261
317
  const node = popupFactory(data);
262
- app.runAsync(() => InlinePopup.show(target, node, { alignment }));
263
- });
264
- AtomControl_1.ElementValueSetters["data-popup-class"] = (c, e, v) => {
318
+ app.runAsync(() => InlinePopup.show(target, node, {
319
+ alignment
320
+ }));
321
+ });
322
+ ElementValueSetters["data-popup-class"] = (c, e, v) => {
265
323
  e.popupFactory = v;
266
- };
267
- function InlinePopupButton(_a, ...popupNodes) {
268
- var { text, label, icon, hasBorder = false, nodes = [], defaultOnClick = "close", anchorRight = false, popup } = _a, a = __rest(_a, ["text", "label", "icon", "hasBorder", "nodes", "defaultOnClick", "anchorRight", "popup"]);
269
- if (popup) {
270
- return XNode_1.default.create("button", Object.assign({ "data-popup-class": popup, "data-has-border": !!hasBorder, "data-inline-popup-button": "inline-popup-button", "data-alignment": anchorRight ? "bottomRight" : "bottomLeft" }, a),
271
- icon && XNode_1.default.create("i", { class: icon }),
272
- text && XNode_1.default.create("span", { text: text }),
273
- label && XNode_1.default.create("label", { text: text }),
274
- ...nodes);
275
- }
276
- let isOpen = false;
277
- const done = () => isOpen = false;
278
- const click = (e) => __awaiter(this, void 0, void 0, function* () {
279
- if (isOpen || e.defaultPrevented) {
280
- return;
281
- }
282
- const popupNode = popupNodes.length > 1 ? XNode_1.default.create("div", null, ...popupNodes) : popupNodes[0];
283
- try {
284
- isOpen = true;
285
- yield InlinePopup.show(e.currentTarget, popupNode, { defaultOnClick });
286
- }
287
- finally {
288
- done();
289
- }
290
- });
291
- return XNode_1.default.create("button", Object.assign({ "event-click": click, "data-has-border": !!hasBorder, "data-alignment": anchorRight ? "bottomRight" : "bottomLeft", "data-inline-popup-button": "inline-popup-button" }, a),
292
- icon && XNode_1.default.create("i", { class: icon }),
293
- text && XNode_1.default.create("span", { text: text }),
294
- label && XNode_1.default.create("label", { text: text }),
295
- ...nodes);
324
+ };
296
325
  }
297
- exports.InlinePopupButton = InlinePopupButton;
298
- });
326
+ };
327
+ });
299
328
  //# sourceMappingURL=InlinePopup.js.map