@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
@@ -1,154 +1,144 @@
1
1
  export default function (type) {
2
- return {
3
- EncodeType: type || "entity",
4
- isEmpty: function (val) {
5
- if (val) {
6
- return ((val === null) || val.length == 0 || /^\s+$/.test(val));
7
- }
8
- else {
9
- return true;
10
- }
11
- },
12
- arr1: new Array(' ', '¡', '¢', '£', '¤', '¥', '¦', '§', '¨', '©', 'ª', '«', '¬', '­', '®', '¯', '°', '±', '²', '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', '&Aelig;', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'Ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', '"', '&', '<', '>', 'œ', 'œ', 'š', 'š', 'ÿ', 'ˆ', '˜', ' ', ' ', ' ', '‌', '‍', '‎', '‏', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '†', '‰', '‹', '›', '€', 'ƒ', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'ϑ', 'ϒ', 'ϖ', '•', '…', '′', '′', '‾', '⁄', '℘', 'ℑ', 'ℜ', '™', 'ℵ', '←', '↑', '→', '↓', '↔', '↵', '←', '↑', '→', '↓', '↔', '∀', '∂', '∃', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '−', '∗', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '⌈', '⌉', '⌊', '⌋', '⟨', '⟩', '◊', '♠', '♣', '♥', '♦'),
13
- arr2: new Array(' ', '¡', '¢', '£', '¤', '¥', '¦', '§', '¨', '©', 'ª', '«', '¬', '­', '®', '¯', '°', '±', '²', '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', '"', '&', '<', '>', 'Œ', 'œ', 'Š', 'š', 'Ÿ', 'ˆ', '˜', ' ', ' ', ' ', '‌', '‍', '‎', '‏', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '‡', '‰', '‹', '›', '€', 'ƒ', 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'ϑ', 'ϒ', 'ϖ', '•', '…', '′', '″', '‾', '⁄', '℘', 'ℑ', 'ℜ', '™', 'ℵ', '←', '↑', '→', '↓', '↔', '↵', '⇐', '⇑', '⇒', '⇓', '⇔', '∀', '∂', '∃', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '−', '∗', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '⌈', '⌉', '⌊', '⌋', '〈', '〉', '◊', '♠', '♣', '♥', '♦'),
14
- HTML2Numerical: function (s) {
15
- return this.swapArrayVals(s, this.arr1, this.arr2);
16
- },
17
- NumericalToHTML: function (s) {
18
- return this.swapArrayVals(s, this.arr2, this.arr1);
19
- },
20
- numEncode: function (s) {
21
- if (this.isEmpty(s))
22
- return s;
23
- var e = "";
24
- for (var i = 0; i < s.length; i++) {
25
- var c = s.charAt(i);
26
- if (c < " " || c > "~") {
27
- c = "&#" + c.charCodeAt() + ";";
28
- }
29
- e += c;
30
- }
31
- return e;
32
- },
33
- htmlDecode: function (s) {
34
- var arr, c, m, d = s;
35
- if (this.isEmpty(d))
36
- return d;
37
- d = this.HTML2Numerical(d);
38
- arr = d.match(/&#[0-9]{1,5};/g);
39
- if (arr != null) {
40
- for (var x = 0; x < arr.length; x++) {
41
- m = arr[x];
42
- c = m.substring(2, m.length - 1);
43
- if (c >= -32768 && c <= 65535) {
44
- d = d.replace(m, String.fromCharCode(c));
45
- }
46
- else {
47
- d = d.replace(m, "");
48
- }
49
- }
50
- }
51
- return d;
52
- },
53
- htmlEncode: function (s, dbl) {
54
- if (s.url) {
55
- s = s.url;
56
- }
57
- if (this.isEmpty(s))
58
- return s;
59
- dbl = dbl || false;
60
- if (dbl) {
61
- if (this.EncodeType == "numerical") {
62
- s = s.replace(/&/g, "&#38;");
63
- }
64
- else {
65
- s = s.replace(/&/g, "&amp;");
66
- }
67
- }
68
- s = this.XSSEncode(s, false);
69
- if (this.EncodeType == "numerical" || !dbl) {
70
- s = this.HTML2Numerical(s);
71
- }
72
- s = this.numEncode(s);
73
- if (!dbl) {
74
- s = s.replace(/&#/g, "##AMPHASH##");
75
- if (this.EncodeType == "numerical") {
76
- s = s.replace(/&/g, "&#38;");
77
- }
78
- else {
79
- s = s.replace(/&/g, "&amp;");
80
- }
81
- s = s.replace(/##AMPHASH##/g, "&#");
82
- }
83
- s = s.replace(/&#\d*([^\d;]|$)/g, "$1");
84
- if (!dbl) {
85
- s = this.correctEncoding(s);
86
- }
87
- if (this.EncodeType == "entity") {
88
- s = this.NumericalToHTML(s);
89
- }
90
- return s;
91
- },
92
- XSSEncode: function (s, en) {
93
- if (!this.isEmpty(s)) {
94
- en = en || true;
95
- if (en) {
96
- s = s.replace(/\'/g, "&#39;");
97
- s = s.replace(/\"/g, "&quot;");
98
- s = s.replace(/</g, "&lt;");
99
- s = s.replace(/>/g, "&gt;");
100
- }
101
- else {
102
- s = s.replace(/\'/g, "&#39;");
103
- s = s.replace(/\"/g, "&#34;");
104
- s = s.replace(/</g, "&#60;");
105
- s = s.replace(/>/g, "&#62;");
106
- }
107
- return s;
108
- }
109
- else {
110
- return s;
111
- }
112
- },
113
- hasEncoded: function (s) {
114
- if (/&#[0-9]{1,5};/g.test(s)) {
115
- return true;
116
- }
117
- else if (/&[A-Z]{2,6};/gi.test(s)) {
118
- return true;
119
- }
120
- else {
121
- return false;
122
- }
123
- },
124
- stripUnicode: function (s) {
125
- return s.replace(/[^\x20-\x7E]/g, "");
126
- },
127
- correctEncoding: function (s) {
128
- return s.replace(/(&amp;)(amp;)+/, "$1");
129
- },
130
- swapArrayVals: function (s, arr1, arr2) {
131
- if (this.isEmpty(s))
132
- return s;
133
- var re;
134
- if (arr1 && arr2) {
135
- if (arr1.length == arr2.length) {
136
- for (var x = 0, i = arr1.length; x < i; x++) {
137
- re = new RegExp(arr1[x], 'g');
138
- s = s.replace(re, arr2[x]);
139
- }
140
- }
141
- }
142
- return s;
143
- },
144
- inArray: function (item, arr) {
145
- for (var i = 0, x = arr.length; i < x; i++) {
146
- if (arr[i] === item) {
147
- return i;
148
- }
149
- }
150
- return -1;
2
+ return {
3
+ EncodeType: type || "entity",
4
+ isEmpty: function (val) {
5
+ if (val) {
6
+ return val === null || val.length == 0 || /^\s+$/.test(val);
7
+ } else {
8
+ return true;
9
+ }
10
+ },
11
+ arr1: new Array('&nbsp;', '&iexcl;', '&cent;', '&pound;', '&curren;', '&yen;', '&brvbar;', '&sect;', '&uml;', '&copy;', '&ordf;', '&laquo;', '&not;', '&shy;', '&reg;', '&macr;', '&deg;', '&plusmn;', '&sup2;', '&sup3;', '&acute;', '&micro;', '&para;', '&middot;', '&cedil;', '&sup1;', '&ordm;', '&raquo;', '&frac14;', '&frac12;', '&frac34;', '&iquest;', '&Agrave;', '&Aacute;', '&Acirc;', '&Atilde;', '&Auml;', '&Aring;', '&Aelig;', '&Ccedil;', '&Egrave;', '&Eacute;', '&Ecirc;', '&Euml;', '&Igrave;', '&Iacute;', '&Icirc;', '&Iuml;', '&ETH;', '&Ntilde;', '&Ograve;', '&Oacute;', '&Ocirc;', '&Otilde;', '&Ouml;', '&times;', '&Oslash;', '&Ugrave;', '&Uacute;', '&Ucirc;', '&Uuml;', '&Yacute;', '&THORN;', '&szlig;', '&agrave;', '&aacute;', '&acirc;', '&atilde;', '&auml;', '&aring;', '&aelig;', '&ccedil;', '&egrave;', '&eacute;', '&ecirc;', '&euml;', '&igrave;', '&iacute;', '&icirc;', '&iuml;', '&eth;', '&ntilde;', '&ograve;', '&oacute;', '&ocirc;', '&otilde;', '&ouml;', '&divide;', '&Oslash;', '&ugrave;', '&uacute;', '&ucirc;', '&uuml;', '&yacute;', '&thorn;', '&yuml;', '&quot;', '&amp;', '&lt;', '&gt;', '&oelig;', '&oelig;', '&scaron;', '&scaron;', '&yuml;', '&circ;', '&tilde;', '&ensp;', '&emsp;', '&thinsp;', '&zwnj;', '&zwj;', '&lrm;', '&rlm;', '&ndash;', '&mdash;', '&lsquo;', '&rsquo;', '&sbquo;', '&ldquo;', '&rdquo;', '&bdquo;', '&dagger;', '&dagger;', '&permil;', '&lsaquo;', '&rsaquo;', '&euro;', '&fnof;', '&alpha;', '&beta;', '&gamma;', '&delta;', '&epsilon;', '&zeta;', '&eta;', '&theta;', '&iota;', '&kappa;', '&lambda;', '&mu;', '&nu;', '&xi;', '&omicron;', '&pi;', '&rho;', '&sigma;', '&tau;', '&upsilon;', '&phi;', '&chi;', '&psi;', '&omega;', '&alpha;', '&beta;', '&gamma;', '&delta;', '&epsilon;', '&zeta;', '&eta;', '&theta;', '&iota;', '&kappa;', '&lambda;', '&mu;', '&nu;', '&xi;', '&omicron;', '&pi;', '&rho;', '&sigmaf;', '&sigma;', '&tau;', '&upsilon;', '&phi;', '&chi;', '&psi;', '&omega;', '&thetasym;', '&upsih;', '&piv;', '&bull;', '&hellip;', '&prime;', '&prime;', '&oline;', '&frasl;', '&weierp;', '&image;', '&real;', '&trade;', '&alefsym;', '&larr;', '&uarr;', '&rarr;', '&darr;', '&harr;', '&crarr;', '&larr;', '&uarr;', '&rarr;', '&darr;', '&harr;', '&forall;', '&part;', '&exist;', '&empty;', '&nabla;', '&isin;', '&notin;', '&ni;', '&prod;', '&sum;', '&minus;', '&lowast;', '&radic;', '&prop;', '&infin;', '&ang;', '&and;', '&or;', '&cap;', '&cup;', '&int;', '&there4;', '&sim;', '&cong;', '&asymp;', '&ne;', '&equiv;', '&le;', '&ge;', '&sub;', '&sup;', '&nsub;', '&sube;', '&supe;', '&oplus;', '&otimes;', '&perp;', '&sdot;', '&lceil;', '&rceil;', '&lfloor;', '&rfloor;', '&lang;', '&rang;', '&loz;', '&spades;', '&clubs;', '&hearts;', '&diams;'),
12
+ arr2: new Array('&#160;', '&#161;', '&#162;', '&#163;', '&#164;', '&#165;', '&#166;', '&#167;', '&#168;', '&#169;', '&#170;', '&#171;', '&#172;', '&#173;', '&#174;', '&#175;', '&#176;', '&#177;', '&#178;', '&#179;', '&#180;', '&#181;', '&#182;', '&#183;', '&#184;', '&#185;', '&#186;', '&#187;', '&#188;', '&#189;', '&#190;', '&#191;', '&#192;', '&#193;', '&#194;', '&#195;', '&#196;', '&#197;', '&#198;', '&#199;', '&#200;', '&#201;', '&#202;', '&#203;', '&#204;', '&#205;', '&#206;', '&#207;', '&#208;', '&#209;', '&#210;', '&#211;', '&#212;', '&#213;', '&#214;', '&#215;', '&#216;', '&#217;', '&#218;', '&#219;', '&#220;', '&#221;', '&#222;', '&#223;', '&#224;', '&#225;', '&#226;', '&#227;', '&#228;', '&#229;', '&#230;', '&#231;', '&#232;', '&#233;', '&#234;', '&#235;', '&#236;', '&#237;', '&#238;', '&#239;', '&#240;', '&#241;', '&#242;', '&#243;', '&#244;', '&#245;', '&#246;', '&#247;', '&#248;', '&#249;', '&#250;', '&#251;', '&#252;', '&#253;', '&#254;', '&#255;', '&#34;', '&#38;', '&#60;', '&#62;', '&#338;', '&#339;', '&#352;', '&#353;', '&#376;', '&#710;', '&#732;', '&#8194;', '&#8195;', '&#8201;', '&#8204;', '&#8205;', '&#8206;', '&#8207;', '&#8211;', '&#8212;', '&#8216;', '&#8217;', '&#8218;', '&#8220;', '&#8221;', '&#8222;', '&#8224;', '&#8225;', '&#8240;', '&#8249;', '&#8250;', '&#8364;', '&#402;', '&#913;', '&#914;', '&#915;', '&#916;', '&#917;', '&#918;', '&#919;', '&#920;', '&#921;', '&#922;', '&#923;', '&#924;', '&#925;', '&#926;', '&#927;', '&#928;', '&#929;', '&#931;', '&#932;', '&#933;', '&#934;', '&#935;', '&#936;', '&#937;', '&#945;', '&#946;', '&#947;', '&#948;', '&#949;', '&#950;', '&#951;', '&#952;', '&#953;', '&#954;', '&#955;', '&#956;', '&#957;', '&#958;', '&#959;', '&#960;', '&#961;', '&#962;', '&#963;', '&#964;', '&#965;', '&#966;', '&#967;', '&#968;', '&#969;', '&#977;', '&#978;', '&#982;', '&#8226;', '&#8230;', '&#8242;', '&#8243;', '&#8254;', '&#8260;', '&#8472;', '&#8465;', '&#8476;', '&#8482;', '&#8501;', '&#8592;', '&#8593;', '&#8594;', '&#8595;', '&#8596;', '&#8629;', '&#8656;', '&#8657;', '&#8658;', '&#8659;', '&#8660;', '&#8704;', '&#8706;', '&#8707;', '&#8709;', '&#8711;', '&#8712;', '&#8713;', '&#8715;', '&#8719;', '&#8721;', '&#8722;', '&#8727;', '&#8730;', '&#8733;', '&#8734;', '&#8736;', '&#8743;', '&#8744;', '&#8745;', '&#8746;', '&#8747;', '&#8756;', '&#8764;', '&#8773;', '&#8776;', '&#8800;', '&#8801;', '&#8804;', '&#8805;', '&#8834;', '&#8835;', '&#8836;', '&#8838;', '&#8839;', '&#8853;', '&#8855;', '&#8869;', '&#8901;', '&#8968;', '&#8969;', '&#8970;', '&#8971;', '&#9001;', '&#9002;', '&#9674;', '&#9824;', '&#9827;', '&#9829;', '&#9830;'),
13
+ HTML2Numerical: function (s) {
14
+ return this.swapArrayVals(s, this.arr1, this.arr2);
15
+ },
16
+ NumericalToHTML: function (s) {
17
+ return this.swapArrayVals(s, this.arr2, this.arr1);
18
+ },
19
+ numEncode: function (s) {
20
+ if (this.isEmpty(s)) return s;
21
+ var e = "";
22
+ for (var i = 0; i < s.length; i++) {
23
+ var c = s.charAt(i);
24
+ if (c < " " || c > "~") {
25
+ c = "&#" + c.charCodeAt() + ";";
151
26
  }
152
- };
153
- }
154
- //# sourceMappingURL=Encoder.js.map
27
+ e += c;
28
+ }
29
+ return e;
30
+ },
31
+ htmlDecode: function (s) {
32
+ var arr,
33
+ c,
34
+ m,
35
+ d = s;
36
+ if (this.isEmpty(d)) return d;
37
+ d = this.HTML2Numerical(d);
38
+ arr = d.match(/&#[0-9]{1,5};/g);
39
+ if (arr != null) {
40
+ for (var x = 0; x < arr.length; x++) {
41
+ m = arr[x];
42
+ c = m.substring(2, m.length - 1);
43
+ if (c >= -32768 && c <= 65535) {
44
+ d = d.replace(m, String.fromCharCode(c));
45
+ } else {
46
+ d = d.replace(m, "");
47
+ }
48
+ }
49
+ }
50
+ return d;
51
+ },
52
+ htmlEncode: function (s, dbl) {
53
+ if (s.url) {
54
+ s = s.url;
55
+ }
56
+ if (this.isEmpty(s)) return s;
57
+ dbl = dbl || false;
58
+ if (dbl) {
59
+ if (this.EncodeType == "numerical") {
60
+ s = s.replace(/&/g, "&#38;");
61
+ } else {
62
+ s = s.replace(/&/g, "&amp;");
63
+ }
64
+ }
65
+ s = this.XSSEncode(s, false);
66
+ if (this.EncodeType == "numerical" || !dbl) {
67
+ s = this.HTML2Numerical(s);
68
+ }
69
+ s = this.numEncode(s);
70
+ if (!dbl) {
71
+ s = s.replace(/&#/g, "##AMPHASH##");
72
+ if (this.EncodeType == "numerical") {
73
+ s = s.replace(/&/g, "&#38;");
74
+ } else {
75
+ s = s.replace(/&/g, "&amp;");
76
+ }
77
+ s = s.replace(/##AMPHASH##/g, "&#");
78
+ }
79
+ s = s.replace(/&#\d*([^\d;]|$)/g, "$1");
80
+ if (!dbl) {
81
+ s = this.correctEncoding(s);
82
+ }
83
+ if (this.EncodeType == "entity") {
84
+ s = this.NumericalToHTML(s);
85
+ }
86
+ return s;
87
+ },
88
+ XSSEncode: function (s, en) {
89
+ if (!this.isEmpty(s)) {
90
+ en = en || true;
91
+ if (en) {
92
+ s = s.replace(/\'/g, "&#39;");
93
+ s = s.replace(/\"/g, "&quot;");
94
+ s = s.replace(/</g, "&lt;");
95
+ s = s.replace(/>/g, "&gt;");
96
+ } else {
97
+ s = s.replace(/\'/g, "&#39;");
98
+ s = s.replace(/\"/g, "&#34;");
99
+ s = s.replace(/</g, "&#60;");
100
+ s = s.replace(/>/g, "&#62;");
101
+ }
102
+ return s;
103
+ } else {
104
+ return s;
105
+ }
106
+ },
107
+ hasEncoded: function (s) {
108
+ if (/&#[0-9]{1,5};/g.test(s)) {
109
+ return true;
110
+ } else if (/&[A-Z]{2,6};/gi.test(s)) {
111
+ return true;
112
+ } else {
113
+ return false;
114
+ }
115
+ },
116
+ stripUnicode: function (s) {
117
+ return s.replace(/[^\x20-\x7E]/g, "");
118
+ },
119
+ correctEncoding: function (s) {
120
+ return s.replace(/(&amp;)(amp;)+/, "$1");
121
+ },
122
+ swapArrayVals: function (s, arr1, arr2) {
123
+ if (this.isEmpty(s)) return s;
124
+ var re;
125
+ if (arr1 && arr2) {
126
+ if (arr1.length == arr2.length) {
127
+ for (var x = 0, i = arr1.length; x < i; x++) {
128
+ re = new RegExp(arr1[x], 'g');
129
+ s = s.replace(re, arr2[x]);
130
+ }
131
+ }
132
+ }
133
+ return s;
134
+ },
135
+ inArray: function (item, arr) {
136
+ for (var i = 0, x = arr.length; i < x; i++) {
137
+ if (arr[i] === item) {
138
+ return i;
139
+ }
140
+ }
141
+ return -1;
142
+ }
143
+ };
144
+ }
@@ -3,164 +3,166 @@ import { ElementValueSetters } from "../controls/AtomControl.js";
3
3
  import { descendentElementIterator } from "./AtomUI.js";
4
4
  import Encoder from "./Encoder.js";
5
5
  export const encoder = Encoder("entity");
6
- const fromHyphenToCamel = (input) => input.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
6
+ const fromHyphenToCamel = input => input.replace(/-([a-z])/g, g => g[1].toUpperCase());
7
7
  export function mergeStyles(a) {
8
- const r = {};
9
- for (const key in a) {
10
- if (a.hasOwnProperty(key)) {
11
- const element = a[key];
12
- if (element === undefined || element === null) {
13
- continue;
14
- }
15
- if (/^style\-/i.test(key)) {
16
- const style = r.style || (r.style = "");
17
- const newStyle = `${key.substring(6)}: ${encoder.htmlEncode(element, false)};`;
18
- r.style = style ? `${style} ${newStyle}` : newStyle;
19
- continue;
20
- }
21
- if (key === "style") {
22
- if (r.style) {
23
- r.style = `${r.style} ${element}`;
24
- continue;
25
- }
26
- }
27
- r[key] = element;
8
+ const r = {};
9
+ for (const key in a) {
10
+ if (a.hasOwnProperty(key)) {
11
+ const element = a[key];
12
+ if (element === undefined || element === null) {
13
+ continue;
14
+ }
15
+ if (/^style\-/i.test(key)) {
16
+ const style = r.style || (r.style = "");
17
+ const newStyle = `${key.substring(6)}: ${encoder.htmlEncode(element, false)};`;
18
+ r.style = style ? `${style} ${newStyle}` : newStyle;
19
+ continue;
20
+ }
21
+ if (key === "style") {
22
+ if (r.style) {
23
+ r.style = `${r.style} ${element}`;
24
+ continue;
28
25
  }
26
+ }
27
+ r[key] = element;
29
28
  }
30
- return r;
29
+ }
30
+ return r;
31
31
  }
32
32
  export function convertToText(node) {
33
- if (typeof node.name === "function") {
34
- node = node.name({ ...node.attributes, children: node.children });
35
- return convertToText(node);
36
- }
37
- if (node.name === "br") {
38
- return "<br/>";
33
+ if (typeof node.name === "function") {
34
+ node = node.name({
35
+ ...node.attributes,
36
+ children: node.children
37
+ });
38
+ return convertToText(node);
39
+ }
40
+ if (node.name === "br") {
41
+ return "<br/>";
42
+ }
43
+ let attrs = "";
44
+ const attributes = mergeStyles(node.attributes);
45
+ const name = node.name;
46
+ const children = node.children;
47
+ let textContent = "";
48
+ for (const key in attributes) {
49
+ if (attributes.hasOwnProperty(key)) {
50
+ const element = attributes[key];
51
+ if (element === null || element === undefined) {
52
+ continue;
53
+ }
54
+ if (key === "text") {
55
+ textContent = element.toString();
56
+ continue;
57
+ }
58
+ if (key === "style" && typeof element === "object") {
59
+ const styleValues = Object.entries(element).map(([key, value]) => `${key}: ${value};`).join("\n");
60
+ attrs += ` ${key}="${encoder.htmlEncode(styleValues, false)}"`;
61
+ continue;
62
+ }
63
+ attrs += ` ${key}="${encoder.htmlEncode(element, false)}"`;
39
64
  }
40
- let attrs = "";
41
- const attributes = mergeStyles(node.attributes);
42
- const name = node.name;
43
- const children = node.children;
44
- let textContent = "";
45
- for (const key in attributes) {
46
- if (attributes.hasOwnProperty(key)) {
47
- const element = attributes[key];
48
- if (element === null || element === undefined) {
49
- continue;
50
- }
51
- if (key === "text") {
52
- textContent = element.toString();
53
- continue;
54
- }
55
- if (key === "style" && typeof element === "object") {
56
- const styleValues = Object.entries(element).map(([key, value]) => `${key}: ${value};`).join("\n");
57
- attrs += ` ${key}="${encoder.htmlEncode(styleValues, false)}"`;
58
- continue;
59
- }
60
- attrs += ` ${key}="${encoder.htmlEncode(element, false)}"`;
61
- }
62
- }
63
- const content = renderChildren(node, children);
64
- return `<${name}${attrs}>${textContent}
65
- \t${content.map((s) => s.toString().split("\n").join("\n\t")).join("\r\n")}
65
+ }
66
+ const content = renderChildren(node, children);
67
+ return `<${name}${attrs}>${textContent}
68
+ \t${content.map(s => s.toString().split("\n").join("\n\t")).join("\r\n")}
66
69
  </${name}>`;
67
70
  }
68
71
  function renderChildren(node, children) {
69
- if (!children) {
70
- return [];
71
- }
72
- const content = [];
73
- if (children) {
74
- for (const iterator of children) {
75
- if (!iterator) {
76
- continue;
77
- }
78
- if (Array.isArray(iterator)) {
79
- for (const child of renderChildren(node, iterator)) {
80
- if (child === undefined || child === null) {
81
- continue;
82
- }
83
- content.push(child);
84
- }
85
- }
86
- else {
87
- if (typeof iterator !== "string") {
88
- content.push(convertToText(iterator));
89
- continue;
90
- }
91
- content.push(iterator);
92
- }
72
+ if (!children) {
73
+ return [];
74
+ }
75
+ const content = [];
76
+ if (children) {
77
+ for (const iterator of children) {
78
+ if (!iterator) {
79
+ continue;
80
+ }
81
+ if (Array.isArray(iterator)) {
82
+ for (const child of renderChildren(node, iterator)) {
83
+ if (child === undefined || child === null) {
84
+ continue;
85
+ }
86
+ content.push(child);
93
87
  }
88
+ } else {
89
+ if (typeof iterator !== "string") {
90
+ content.push(convertToText(iterator));
91
+ continue;
92
+ }
93
+ content.push(iterator);
94
+ }
94
95
  }
95
- return content;
96
+ }
97
+ return content;
96
98
  }
97
99
  const setters = ElementValueSetters;
98
100
  function render(node, root) {
99
- const a = node.attributes;
100
- if (a) {
101
- for (const key in a) {
102
- if (Object.prototype.hasOwnProperty.call(a, key)) {
103
- let element = a[key];
104
- const setter = setters[key];
105
- if (setter !== void 0) {
106
- setter(null, root, element);
107
- continue;
108
- }
109
- if (key.length > 5 && /^style/.test(key)) {
110
- if (/^style\-/.test(key)) {
111
- root.style.setProperty(key.substring(6), element);
112
- }
113
- else {
114
- root.style[fromHyphenToCamel(key.substring(6))] = element;
115
- }
116
- continue;
117
- }
118
- if (/^data-/i.test(key)) {
119
- if (typeof element === "object") {
120
- element = JSON.stringify(element);
121
- }
122
- root.dataset[fromHyphenToCamel(key.substring(5))] = element;
123
- continue;
124
- }
125
- root[key] = element;
126
- }
101
+ const a = node.attributes;
102
+ if (a) {
103
+ for (const key in a) {
104
+ if (Object.prototype.hasOwnProperty.call(a, key)) {
105
+ let element = a[key];
106
+ const setter = setters[key];
107
+ if (setter !== void 0) {
108
+ setter(null, root, element);
109
+ continue;
127
110
  }
128
- }
129
- const children = node.children;
130
- if (!children) {
131
- return;
132
- }
133
- for (const iterator of children) {
134
- if (!iterator) {
135
- continue;
111
+ if (key.length > 5 && /^style/.test(key)) {
112
+ if (/^style\-/.test(key)) {
113
+ root.style.setProperty(key.substring(6), element);
114
+ } else {
115
+ root.style[fromHyphenToCamel(key.substring(6))] = element;
116
+ }
117
+ continue;
136
118
  }
137
- if (typeof iterator === "string") {
138
- root.appendChild(document.createTextNode(iterator));
139
- continue;
119
+ if (/^data-/i.test(key)) {
120
+ if (typeof element === "object") {
121
+ element = JSON.stringify(element);
122
+ }
123
+ root.dataset[fromHyphenToCamel(key.substring(5))] = element;
124
+ continue;
140
125
  }
141
- const name = iterator.name;
142
- const child = document.createElement(name);
143
- render(iterator, child);
144
- root.appendChild(child);
126
+ root[key] = element;
127
+ }
145
128
  }
129
+ }
130
+ const children = node.children;
131
+ if (!children) {
132
+ return;
133
+ }
134
+ for (const iterator of children) {
135
+ if (!iterator) {
136
+ continue;
137
+ }
138
+ if (typeof iterator === "string") {
139
+ root.appendChild(document.createTextNode(iterator));
140
+ continue;
141
+ }
142
+ const name = iterator.name;
143
+ const child = document.createElement(name);
144
+ render(iterator, child);
145
+ root.appendChild(child);
146
+ }
146
147
  }
147
148
  export default class HtmlNode {
148
- static { this.render = render; }
149
- static convert(node) {
150
- return convertToText(node);
151
- }
152
- static toElement(node, sanitize = true) {
153
- const div = document.createElement("div");
154
- render(XNode.create("div", null, node), div);
155
- if (sanitize) {
156
- for (const e of descendentElementIterator(div)) {
157
- if (/^script$/i.test(e.nodeName)) {
158
- e.remove();
159
- continue;
160
- }
161
- }
149
+ static {
150
+ this.render = render;
151
+ }
152
+ static convert(node) {
153
+ return convertToText(node);
154
+ }
155
+ static toElement(node, sanitize = true) {
156
+ const div = document.createElement("div");
157
+ render(XNode.create("div", null, node), div);
158
+ if (sanitize) {
159
+ for (const e of descendentElementIterator(div)) {
160
+ if (/^script$/i.test(e.nodeName)) {
161
+ e.remove();
162
+ continue;
162
163
  }
163
- return div.firstElementChild;
164
+ }
164
165
  }
165
- }
166
- //# sourceMappingURL=HtmlNode.js.map
166
+ return div.firstElementChild;
167
+ }
168
+ }
@@ -1,3 +1,2 @@
1
1
  import WebImage from "../../core/WebImage.js";
2
- export default new WebImage(UMD.resolvePath("web-atoms-core/dist/web/images/busy.gif"));
3
- //# sourceMappingURL=Busy.js.map
2
+ export default new WebImage(UMD.resolvePath("web-atoms-core/dist/web/images/busy.gif"));