jsf.js_next_gen 4.0.0-beta-23 → 4.0.1-alpha.0

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 (214) hide show
  1. package/.nyc_output/09ca9ebc-2305-4357-8db9-48ddfc7dfde2.json +1 -0
  2. package/.nyc_output/7c496a14-166e-4aa5-85b9-47b22b055ad8.json +1 -0
  3. package/.nyc_output/processinfo/09ca9ebc-2305-4357-8db9-48ddfc7dfde2.json +1 -0
  4. package/.nyc_output/processinfo/7c496a14-166e-4aa5-85b9-47b22b055ad8.json +1 -0
  5. package/.nyc_output/processinfo/index.json +1 -1
  6. package/README.md +13 -21
  7. package/dist/docs/assets/main.js +56 -52
  8. package/dist/docs/assets/search.js +1 -1
  9. package/dist/docs/assets/style.css +23 -0
  10. package/dist/docs/functions/faces.ajax.addOnError.html +2 -0
  11. package/dist/docs/functions/faces.ajax.addOnEvent.html +2 -0
  12. package/dist/docs/functions/faces.push.close.html +4 -2
  13. package/dist/docs/functions/faces.push.init.html +19 -7
  14. package/dist/docs/functions/faces.push.open.html +4 -2
  15. package/dist/docs/functions/myfaces.ab.html +9 -4
  16. package/dist/docs/functions/myfaces.onDomReady.html +72 -0
  17. package/dist/docs/index.html +16 -18
  18. package/dist/docs/modules/myfaces.html +3 -1
  19. package/dist/docs/variables/myfaces.oam.html +2 -1
  20. package/dist/window/faces-development.js +2846 -2085
  21. package/dist/window/faces-development.js.br +0 -0
  22. package/dist/window/faces-development.js.gz +0 -0
  23. package/dist/window/faces-development.js.map +1 -1
  24. package/dist/window/faces.js +1 -1
  25. package/dist/window/faces.js.LICENSE.txt +17 -2
  26. package/dist/window/faces.js.br +0 -0
  27. package/dist/window/faces.js.gz +0 -0
  28. package/dist/window/faces.js.map +1 -1
  29. package/dist/window/jsf-development.js +2856 -2084
  30. package/dist/window/jsf-development.js.br +0 -0
  31. package/dist/window/jsf-development.js.gz +0 -0
  32. package/dist/window/jsf-development.js.map +1 -1
  33. package/dist/window/jsf.js +1 -1
  34. package/dist/window/jsf.js.LICENSE.txt +17 -2
  35. package/dist/window/jsf.js.br +0 -0
  36. package/dist/window/jsf.js.gz +0 -0
  37. package/dist/window/jsf.js.map +1 -1
  38. package/package.json +19 -18
  39. package/plans for 4.0.1.txt +8 -0
  40. package/src/main/test.xml +23 -0
  41. package/src/main/typescript/@types/definitions/index.d.ts +19 -2
  42. package/src/main/typescript/api/_api.ts +68 -25
  43. package/src/main/typescript/api/jsf.ts +18 -0
  44. package/src/main/typescript/impl/AjaxImpl.ts +204 -100
  45. package/src/main/typescript/impl/PushImpl.ts +63 -38
  46. package/src/main/typescript/impl/core/Const.ts +56 -40
  47. package/src/main/typescript/impl/util/Assertions.ts +16 -8
  48. package/src/main/typescript/impl/util/AsyncRunnable.ts +85 -10
  49. package/src/main/typescript/impl/util/ExtDomQuery.ts +65 -54
  50. package/src/main/typescript/impl/util/FileUtils.ts +108 -0
  51. package/src/main/typescript/impl/util/HiddenInputBuilder.ts +93 -0
  52. package/src/main/typescript/impl/util/Lang.ts +91 -35
  53. package/src/main/typescript/impl/util/XhrQueueController.ts +112 -0
  54. package/src/main/typescript/impl/xhrCore/ErrorData.ts +15 -10
  55. package/src/main/typescript/impl/xhrCore/EventData.ts +3 -3
  56. package/src/main/typescript/impl/xhrCore/IResponseProcessor.ts +25 -11
  57. package/src/main/typescript/impl/xhrCore/RequestDataResolver.ts +78 -32
  58. package/src/main/typescript/impl/xhrCore/ResonseDataResolver.ts +10 -10
  59. package/src/main/typescript/impl/xhrCore/Response.ts +66 -49
  60. package/src/main/typescript/impl/xhrCore/ResponseProcessor.ts +211 -138
  61. package/src/main/typescript/impl/xhrCore/XhrFormData.ts +92 -166
  62. package/src/main/typescript/impl/xhrCore/XhrRequest.ts +111 -120
  63. package/src/main/typescript/myfaces/OamSubmit.ts +30 -14
  64. package/src/main/typescript/test/frameworkBase/_ext/monadish/DomQueryTest.spec.ts +163 -27
  65. package/src/main/typescript/test/frameworkBase/_ext/monadish/MonadTest.spec.ts +4 -4
  66. package/src/main/typescript/test/frameworkBase/_ext/monadish/fixtures/blank.css +0 -0
  67. package/src/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-with-header.ts +921 -0
  68. package/src/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-without-header.ts +108 -0
  69. package/src/main/typescript/test/frameworkBase/_ext/shared/StandardInits.ts +111 -3
  70. package/src/main/typescript/test/frameworkBase/_ext/shared/XmlResponses.ts +40 -1
  71. package/src/main/typescript/test/frameworkBase/_ext/shared/fixtures/jakarta.faces.resource/faces.js.jsf +0 -0
  72. package/src/main/typescript/test/impl/ImplTest.spec.ts +3 -3
  73. package/src/main/typescript/test/impl/ImplTest_23.spec.ts +3 -7
  74. package/src/main/typescript/test/myfaces/OnLoadSpec.ts +52 -0
  75. package/src/main/typescript/test/queue/AsynchronousProbe.ts +5 -5
  76. package/src/main/typescript/test/queue/AsynchronousQueueTest.spec.ts +4 -3
  77. package/src/main/typescript/test/xhrCore/EventTests.spec.ts +28 -22
  78. package/src/main/typescript/test/xhrCore/FileUploadTest.spec.ts +5 -2
  79. package/src/main/typescript/test/xhrCore/NamespacesRequestTest.spec.ts +203 -0
  80. package/src/main/typescript/test/xhrCore/OamSubmitTest.spec.ts +177 -0
  81. package/src/main/typescript/test/xhrCore/RequestParamsTest.spec.ts +158 -17
  82. package/src/main/typescript/test/xhrCore/RequestTest.spec.ts +320 -15
  83. package/src/main/typescript/test/xhrCore/RequestTest_23.spec.ts +45 -4
  84. package/src/main/typescript/test/xhrCore/ResponseTest.spec.ts +374 -35
  85. package/src/main/typescript/test/xhrCore/ResponseTest23.spec.ts +43 -9
  86. package/src/main/typescript/test/xhrCore/TobagoFileUploadTest.spec.ts +109 -0
  87. package/src/main/typescript/test/xhrCore/XhrFormDataTest.spec.ts +67 -49
  88. package/src/main/typescript/test.xml +6 -0
  89. package/src/main/typescript/tsconfig.json +1 -1
  90. package/src/test/resources/jsf-development.js +1 -1
  91. package/src/tmp/test.html +12 -88
  92. package/target/api/_api.js +63 -21
  93. package/target/api/_api.js.map +1 -1
  94. package/target/api/jsf.js +11 -0
  95. package/target/api/jsf.js.map +1 -1
  96. package/target/classes/com/example/jsfs_js_ts/DecoratedFacesJS.class +0 -0
  97. package/target/classes/com/example/jsfs_js_ts/DecoratingResourceHandlerWrapper.class +0 -0
  98. package/target/classes/com/example/jsfs_js_ts/FacesJSMapFileResourceWrapper.class +0 -0
  99. package/target/classes/com/example/jsfs_js_ts/FacesJSMappingDecorator.class +0 -0
  100. package/target/impl/AjaxImpl.js +177 -81
  101. package/target/impl/AjaxImpl.js.map +1 -1
  102. package/target/impl/PushImpl.js +66 -35
  103. package/target/impl/PushImpl.js.map +1 -1
  104. package/target/impl/core/Const.js +54 -39
  105. package/target/impl/core/Const.js.map +1 -1
  106. package/target/impl/core/Context.js +10 -0
  107. package/target/impl/core/Context.js.map +1 -0
  108. package/target/impl/util/Assertions.js +12 -7
  109. package/target/impl/util/Assertions.js.map +1 -1
  110. package/target/impl/util/AsyncQueue.js.map +1 -1
  111. package/target/impl/util/AsyncRunnable.js +60 -0
  112. package/target/impl/util/AsyncRunnable.js.map +1 -1
  113. package/target/impl/util/ExtDomQuery.js +66 -48
  114. package/target/impl/util/ExtDomQuery.js.map +1 -1
  115. package/target/impl/util/FileUtils.js +97 -0
  116. package/target/impl/util/FileUtils.js.map +1 -0
  117. package/target/impl/util/HiddenElementBuilder.js +7 -0
  118. package/target/impl/util/HiddenElementBuilder.js.map +1 -0
  119. package/target/impl/util/HiddenInputBuilder.js +83 -0
  120. package/target/impl/util/HiddenInputBuilder.js.map +1 -0
  121. package/target/{types/index.js → impl/util/IAsyncRunnable.js} +11 -2
  122. package/target/impl/util/IAsyncRunnable.js.map +1 -0
  123. package/target/impl/util/Lang.js +81 -31
  124. package/target/impl/util/Lang.js.map +1 -1
  125. package/target/impl/util/URLCodec.js +77 -0
  126. package/target/impl/util/URLCodec.js.map +1 -0
  127. package/target/impl/util/XhrQueueController.js +107 -0
  128. package/target/impl/util/XhrQueueController.js.map +1 -0
  129. package/target/impl/xhrCore/ErrorData.js +10 -8
  130. package/target/impl/xhrCore/ErrorData.js.map +1 -1
  131. package/target/impl/xhrCore/EventData.js +2 -2
  132. package/target/impl/xhrCore/EventData.js.map +1 -1
  133. package/target/impl/xhrCore/RequestContext.js +11 -0
  134. package/target/impl/xhrCore/RequestContext.js.map +1 -0
  135. package/target/impl/xhrCore/RequestDataResolver.js +70 -23
  136. package/target/impl/xhrCore/RequestDataResolver.js.map +1 -1
  137. package/target/impl/xhrCore/ResonseDataResolver.js +9 -9
  138. package/target/impl/xhrCore/ResonseDataResolver.js.map +1 -1
  139. package/target/impl/xhrCore/Response.js +44 -29
  140. package/target/impl/xhrCore/Response.js.map +1 -1
  141. package/target/impl/xhrCore/ResponseProcessor.js +187 -119
  142. package/target/impl/xhrCore/ResponseProcessor.js.map +1 -1
  143. package/target/impl/xhrCore/XhrFormData.js +82 -156
  144. package/target/impl/xhrCore/XhrFormData.js.map +1 -1
  145. package/target/impl/xhrCore/XhrQueHandler.js +11 -0
  146. package/target/impl/xhrCore/XhrQueHandler.js.map +1 -0
  147. package/target/impl/xhrCore/XhrQueueController.js +62 -0
  148. package/target/impl/xhrCore/XhrQueueController.js.map +1 -0
  149. package/target/impl/xhrCore/XhrRequest.js +94 -106
  150. package/target/impl/xhrCore/XhrRequest.js.map +1 -1
  151. package/target/myfaces/OamSubmit.js +25 -14
  152. package/target/myfaces/OamSubmit.js.map +1 -1
  153. package/target/test/frameworkBase/_ext/monadish/DomQueryTest.spec.js +124 -23
  154. package/target/test/frameworkBase/_ext/monadish/DomQueryTest.spec.js.map +1 -1
  155. package/target/test/frameworkBase/_ext/monadish/ExtendedArrayTest.spec.js +76 -0
  156. package/target/test/frameworkBase/_ext/monadish/ExtendedArrayTest.spec.js.map +1 -0
  157. package/target/test/frameworkBase/_ext/monadish/MonadTest.spec.js +4 -4
  158. package/target/test/frameworkBase/_ext/monadish/MonadTest.spec.js.map +1 -1
  159. package/target/test/frameworkBase/_ext/monadish/markups/tobago-with-header.js +925 -0
  160. package/target/test/frameworkBase/_ext/monadish/markups/tobago-with-header.js.map +1 -0
  161. package/target/test/frameworkBase/_ext/monadish/markups/tobago-without-header.js +112 -0
  162. package/target/test/frameworkBase/_ext/monadish/markups/tobago-without-header.js.map +1 -0
  163. package/target/test/frameworkBase/_ext/shared/StandardInits.js +103 -3
  164. package/target/test/frameworkBase/_ext/shared/StandardInits.js.map +1 -1
  165. package/target/test/frameworkBase/_ext/shared/XmlResponses.js +37 -1
  166. package/target/test/frameworkBase/_ext/shared/XmlResponses.js.map +1 -1
  167. package/target/test/impl/ImplTest.spec.js +2 -2
  168. package/target/test/impl/ImplTest.spec.js.map +1 -1
  169. package/target/test/impl/ImplTest_23.spec.js +2 -2
  170. package/target/test/impl/ImplTest_23.spec.js.map +1 -1
  171. package/target/test/myfaces/OnLoadSpec.js +57 -0
  172. package/target/test/myfaces/OnLoadSpec.js.map +1 -0
  173. package/target/test/queue/AsynchronousQueueTest.spec.js +3 -3
  174. package/target/test/queue/AsynchronousQueueTest.spec.js.map +1 -1
  175. package/target/test/xhrCore/EventTests.spec.js +26 -19
  176. package/target/test/xhrCore/EventTests.spec.js.map +1 -1
  177. package/target/test/xhrCore/FileUploadTest.spec.js +2 -1
  178. package/target/test/xhrCore/FileUploadTest.spec.js.map +1 -1
  179. package/target/test/xhrCore/NamespacesRequestTest.spec.js +204 -0
  180. package/target/test/xhrCore/NamespacesRequestTest.spec.js.map +1 -0
  181. package/target/test/xhrCore/OamSubmitTest.spec.js +180 -0
  182. package/target/test/xhrCore/OamSubmitTest.spec.js.map +1 -0
  183. package/target/test/xhrCore/RequestParamsTest.spec.js +142 -10
  184. package/target/test/xhrCore/RequestParamsTest.spec.js.map +1 -1
  185. package/target/test/xhrCore/RequestTest.spec.js +288 -11
  186. package/target/test/xhrCore/RequestTest.spec.js.map +1 -1
  187. package/target/test/xhrCore/RequestTest_23.spec.js +40 -2
  188. package/target/test/xhrCore/RequestTest_23.spec.js.map +1 -1
  189. package/target/test/xhrCore/ResponseTest.spec.js +315 -24
  190. package/target/test/xhrCore/ResponseTest.spec.js.map +1 -1
  191. package/target/test/xhrCore/ResponseTest23.spec.js +38 -8
  192. package/target/test/xhrCore/ResponseTest23.spec.js.map +1 -1
  193. package/target/test/xhrCore/TobagoFileUploadTest.spec.js +128 -0
  194. package/target/test/xhrCore/TobagoFileUploadTest.spec.js.map +1 -0
  195. package/target/test/xhrCore/XhrFormDataTest.spec.js +57 -34
  196. package/target/test/xhrCore/XhrFormDataTest.spec.js.map +1 -1
  197. package/target/test-classes/.gz +0 -0
  198. package/target/test-classes/com/example/jsfs_js_ts/JsfsJsTsApplicationTests.class +0 -0
  199. package/target/test-classes/fileuploadtest.html +24 -0
  200. package/target/test-classes/jsf-development.js +3559 -0
  201. package/target/test-classes/jsf-development.js.br +0 -0
  202. package/target/test-classes/jsf-development.js.gz +0 -0
  203. package/target/test-classes/jsf-development.js.map +1 -0
  204. package/target/test-classes/jsf.js +3 -0
  205. package/target/test-classes/jsf.js.br +0 -0
  206. package/target/test-classes/jsf.js.gz +0 -0
  207. package/tmp.xml +36 -0
  208. package/.nyc_output/2303b649-59d9-485c-9228-73b0ec8787a7.json +0 -1
  209. package/.nyc_output/756f2f03-c85b-4cdb-9b92-5799eb45ef1e.json +0 -1
  210. package/.nyc_output/processinfo/2303b649-59d9-485c-9228-73b0ec8787a7.json +0 -1
  211. package/.nyc_output/processinfo/756f2f03-c85b-4cdb-9b92-5799eb45ef1e.json +0 -1
  212. package/src/main/typescript/impl/util/AsyncQueue.ts +0 -133
  213. package/src/main/typescript/test/frameworkBase/_ext/monadish/StreamTest.spec.ts +0 -231
  214. package/target/types/index.js.map +0 -1
@@ -18,8 +18,10 @@ exports.XhrFormData = void 0;
18
18
  */
19
19
  const mona_dish_1 = require("mona-dish");
20
20
  const Const_1 = require("../core/Const");
21
- var isString = mona_dish_1.Lang.isString;
22
- const ExtDomQuery_1 = require("../util/ExtDomQuery");
21
+ const FileUtils_1 = require("../util/FileUtils");
22
+ const Lang_1 = require("../util/Lang");
23
+ var ofAssoc = Lang_1.ExtLang.ofAssoc;
24
+ const defaultParamsMapper = (key, item) => [key, item];
23
25
  /**
24
26
  * A unified form data class
25
27
  * which builds upon our configuration.
@@ -28,22 +30,24 @@ const ExtDomQuery_1 = require("../util/ExtDomQuery");
28
30
  * due to api constraints on the HTML Form object in IE11
29
31
  * and due to the url encoding constraint given by the faces.js spec
30
32
  *
31
- * probably only one needed and one overlay!
32
- * the entire file input storing probably is redundant now
33
- * that dom query has been fixed //TODO check this
33
+ *
34
+ * internal storage format
35
+ * every value is stored as an array
36
+ * even scalar ones!
34
37
  */
35
38
  class XhrFormData extends mona_dish_1.Config {
36
39
  /**
37
40
  * data collector from a given form
38
41
  *
39
42
  * @param dataSource either a form as DomQuery object or an encoded url string
40
- * @param viewState the form view state or an external viewstate coming in as string
43
+ * @param paramsMapper a remapper for the params keys and values
41
44
  * @param executes the executes id list for the elements to being processed
42
45
  * @param partialIds partial ids to collect, to reduce the data sent down
43
46
  */
44
- constructor(dataSource, viewState, executes, partialIds) {
47
+ constructor(dataSource, paramsMapper = defaultParamsMapper, executes, partialIds) {
45
48
  super({});
46
49
  this.dataSource = dataSource;
50
+ this.paramsMapper = paramsMapper;
47
51
  this.partialIds = partialIds;
48
52
  /**
49
53
  * Checks if the given datasource is a multipart request source
@@ -53,106 +57,51 @@ class XhrFormData extends mona_dish_1.Config {
53
57
  * instead of an encoded string files cannot be sent that way
54
58
  */
55
59
  this.isMultipartRequest = false;
56
- //a call to getViewState before must pass the encoded line
57
- //a call from getViewState passes the form element as datasource,
58
- //so we have two call points
59
- if (isString(dataSource)) {
60
- this.assignEncodedString(this.dataSource);
61
- }
62
- else {
63
- this.applyFormDataToConfig();
64
- }
65
- if ('undefined' != typeof viewState) {
66
- this.assignEncodedString(viewState);
67
- }
68
- if (executes) {
69
- this.postInit(...executes);
70
- }
60
+ //encode and append the issuing item if not a partial ids array of ids is passed
61
+ /*
62
+ * Spec. 13.3.1
63
+ * Collect and encode input elements.
64
+ * Additionally the hidden element jakarta.faces.ViewState
65
+ * Enhancement partial page submit
66
+ */
67
+ this.resolveRequestType(this.dataSource, executes);
68
+ this.encodeSubmittableFields(this.dataSource, this.partialIds);
69
+ this.applyViewState(this.dataSource);
71
70
  }
72
71
  /**
73
- * generic post init code, for now, this peforms some post assign data post processing
74
- * @param executes
72
+ * @returns a Form data representation, this is needed for file submits
75
73
  */
76
- postInit(...executes) {
77
- let fetchInput = (id) => {
78
- if (id == Const_1.IDENT_ALL) {
79
- return mona_dish_1.DQ.querySelectorAllDeep("input[type='file']");
80
- }
81
- else if (id == Const_1.IDENT_FORM) {
82
- return this.dataSource.querySelectorAllDeep("input[type='file']");
83
- }
84
- else {
85
- let element = mona_dish_1.DQ.byId(id, true);
86
- return this.getFileInputs(element);
74
+ toFormData() {
75
+ /*
76
+ * expands key: [item1, item2]
77
+ * to: [{key: key, value: item1}, {key: key, value: item2}]
78
+ */
79
+ let expandValueArrays = ([key, item]) => {
80
+ if (Array.isArray(item)) {
81
+ return item.map(value => {
82
+ return { key, value };
83
+ });
87
84
  }
85
+ return [{ key, value: item }];
88
86
  };
89
- let inputExists = (item) => {
90
- return item.isPresent();
87
+ /*
88
+ * remaps the incoming {key, value} tuples
89
+ * to naming container prefixed keys and values
90
+ */
91
+ let remapForNamingContainer = ({ key, value }) => {
92
+ key = this.remapKeyForNamingContainer(key);
93
+ return { key, value };
91
94
  };
92
- this.isMultipartRequest = mona_dish_1.LazyStream.of(...executes)
93
- .map(fetchInput)
94
- .filter(inputExists)
95
- .first().isPresent();
96
- }
97
- /**
98
- * special case view state handling
99
- *
100
- * @param form the form holding the view state value
101
- */
102
- applyViewState(form) {
103
- let viewState = form.byId(Const_1.P_VIEWSTATE, true).inputValue;
104
- this.appendIf(viewState.isPresent(), Const_1.P_VIEWSTATE).value = viewState.value;
105
- }
106
- /**
107
- * assigns an url encoded string to this xhrFormData object
108
- * as key value entry
109
- * @param encoded
110
- */
111
- assignEncodedString(encoded) {
112
- // this code filters out empty strings as key value pairs
113
- let keyValueEntries = decodeURIComponent(encoded).split(/&/gi)
114
- .filter(item => !!(item || '')
115
- .replace(/\s+/g, ''));
116
- this.assignString(keyValueEntries);
117
- }
118
- /**
119
- * assign a set of key value pairs passed as array ['key=val1', 'key2=val2']
120
- * @param keyValueEntries
121
- */
122
- assignString(keyValueEntries) {
123
- let toMerge = new ExtDomQuery_1.ExtConfig({});
124
- function splitToKeyVal(line) {
125
- return line.split(/=(.*)/gi);
126
- }
127
- function fixKeyWithoutVal(keyVal) {
128
- var _a, _b;
129
- return keyVal.length < 3 ? [(_a = keyVal === null || keyVal === void 0 ? void 0 : keyVal[0]) !== null && _a !== void 0 ? _a : [], (_b = keyVal === null || keyVal === void 0 ? void 0 : keyVal[1]) !== null && _b !== void 0 ? _b : []] : keyVal;
130
- }
131
- mona_dish_1.Stream.of(...keyValueEntries)
132
- //split only the first =
133
- .map(line => splitToKeyVal(line))
134
- //special case of having keys without values
135
- .map(keyVal => fixKeyWithoutVal(keyVal))
136
- .each(keyVal => {
137
- var _a, _b;
138
- toMerge.append(keyVal[0]).value = (_b = (_a = keyVal === null || keyVal === void 0 ? void 0 : keyVal.splice(1)) === null || _a === void 0 ? void 0 : _a.join("")) !== null && _b !== void 0 ? _b : "";
139
- });
140
- //merge with overwrite but no append! (aka no double entries are allowed)
141
- this.shallowMerge(toMerge);
142
- }
143
- /**
144
- * @returns a Form data representation, this is needed for file submits
145
- */
146
- toFormData() {
147
- let ret = new FormData();
148
- this.appendInputs(ret);
149
- return ret;
150
- }
151
- resolveSubmitIdentifier(elem) {
152
- var _a;
153
- let identifier = elem.name;
154
- identifier = (((_a = elem === null || elem === void 0 ? void 0 : elem.name) !== null && _a !== void 0 ? _a : "").replace(/s+/gi, "") == "") ? elem.id : identifier;
155
- return identifier;
95
+ /*
96
+ * collects everything into a FormData object
97
+ */
98
+ return ofAssoc(this.value)
99
+ .flatMap(expandValueArrays)
100
+ .map(remapForNamingContainer)
101
+ .reduce((formData, { key, value }) => {
102
+ formData.append(key, value);
103
+ return formData;
104
+ }, new FormData());
156
105
  }
157
106
  /**
158
107
  * returns an encoded string representation of our xhr form data
@@ -160,76 +109,53 @@ class XhrFormData extends mona_dish_1.Config {
160
109
  * @param defaultStr optional default value if nothing is there to encode
161
110
  */
162
111
  toString(defaultStr = Const_1.EMPTY_STR) {
163
- if (this.isAbsent()) {
164
- return defaultStr;
165
- }
166
- let entries = mona_dish_1.LazyStream.of(...Object.keys(this.value))
167
- .filter(key => this.value.hasOwnProperty(key))
168
- .flatMap(key => mona_dish_1.Stream.of(...this.value[key]).map(val => [key, val]).collect(new mona_dish_1.ArrayCollector()))
169
- .map(keyVal => {
170
- return `${encodeURIComponent(keyVal[0])}=${encodeURIComponent(keyVal[1])}`;
171
- })
172
- .collect(new mona_dish_1.ArrayCollector());
173
- return entries.join("&");
112
+ return (0, FileUtils_1.encodeFormData)(this, this.paramsMapper, defaultStr);
174
113
  }
175
114
  /**
176
- * helper to fetch all file inputs from as given root element
177
- * @param rootElement
178
- * @private
115
+ * generic post init code, for now, this performs some post assign data post-processing
116
+ * @param rootElement the root element which knows the request type (usually a form)
117
+ * @param executes the executable dom nodes which need to be processed into the form data, which we can send
118
+ * in our ajax request
179
119
  */
180
- getFileInputs(rootElement) {
181
- const rootFileInputs = rootElement
182
- .filter(elem => elem.matchesSelector("input[type='file']"));
183
- const childFileInputs = rootElement
184
- .querySelectorAll("input[type='file']");
185
- return rootFileInputs.concat(childFileInputs);
120
+ resolveRequestType(rootElement, executes) {
121
+ if (!executes || executes.indexOf(Const_1.IDENT_NONE) != -1) {
122
+ return;
123
+ }
124
+ this.isMultipartRequest = rootElement.isMultipartCandidate(true);
186
125
  }
187
126
  /**
188
- * encode the given fields and apply the view state
189
- * @private
127
+ * special case view state handling
128
+ *
129
+ * @param form the form holding the view state value
190
130
  */
191
- applyFormDataToConfig() {
192
- //encode and append the issuing item if not a partial ids array of ids is passed
193
- /*
194
- * Spec. 13.3.1
195
- * Collect and encode input elements.
196
- * Additionally the hidden element jakarta.faces.ViewState
197
- * Enhancement partial page submit
198
- *
199
- */
200
- this.encodeSubmittableFields(this, this.dataSource, this.partialIds);
201
- if (this.getIf(Const_1.P_VIEWSTATE).isPresent()) {
131
+ applyViewState(form) {
132
+ if (this.getIf((0, Const_1.$nsp)(Const_1.P_VIEWSTATE)).isPresent()) {
202
133
  return;
203
134
  }
204
- this.applyViewState(this.dataSource);
135
+ let viewStateElement = form.querySelectorAllDeep(`[name*='${(0, Const_1.$nsp)(Const_1.P_VIEWSTATE)}'`);
136
+ let viewState = viewStateElement.inputValue;
137
+ this.appendIf(viewState.isPresent(), this.remapKeyForNamingContainer(viewStateElement.name.value)).value = viewState.value;
205
138
  }
206
139
  /**
207
140
  * determines fields to submit
208
- * @param {Object} targetBuf - the target form buffer receiving the data
209
141
  * @param {Node} parentItem - form element item is nested in
210
142
  * @param {Array} partialIds - ids fo PPS
211
143
  */
212
- encodeSubmittableFields(targetBuf, parentItem, partialIds) {
213
- let toEncode = null;
214
- if (this.partialIds && this.partialIds.length) {
215
- // in case of our myfaces reduced ppr we
216
- // only submit the partials
217
- this._value = {};
218
- toEncode = new mona_dish_1.DQ(...this.partialIds);
219
- }
220
- else {
221
- if (parentItem.isAbsent())
222
- throw 'NO_PAR_ITEM';
223
- toEncode = parentItem;
224
- }
225
- //lets encode the form elements
226
- this.shallowMerge(toEncode.deepElements.encodeFormElement());
144
+ encodeSubmittableFields(parentItem, partialIds = []) {
145
+ const mergeIntoThis = ([key, value]) => this.append(key).value = value;
146
+ const namingContainerRemap = ([key, value]) => this.paramsMapper(key, value);
147
+ const remappedPartialIds = partialIds.map(partialId => this.remapKeyForNamingContainer(partialId));
148
+ const partialIdsFilter = ([key, value]) => (!remappedPartialIds.length || key.indexOf("@") == 0) ? true :
149
+ remappedPartialIds.indexOf(key) != -1;
150
+ let inputs = (0, FileUtils_1.getFormInputsAsArr)(parentItem);
151
+ inputs
152
+ .map(FileUtils_1.fixEmptyParameters)
153
+ .map(namingContainerRemap)
154
+ .filter(partialIdsFilter)
155
+ .forEach(mergeIntoThis);
227
156
  }
228
- appendInputs(ret) {
229
- mona_dish_1.Stream.of(...Object.keys(this.value))
230
- .each(key => {
231
- mona_dish_1.Stream.of(...this.value[key]).each(item => ret.append(key, item));
232
- });
157
+ remapKeyForNamingContainer(key) {
158
+ return this.paramsMapper(key, "")[0];
233
159
  }
234
160
  }
235
161
  exports.XhrFormData = XhrFormData;
@@ -1 +1 @@
1
- {"version":3,"file":"XhrFormData.js","sourceRoot":"","sources":["../../../src/main/typescript/impl/xhrCore/XhrFormData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XhrFormData.js","sourceRoot":"","sources":["../../../src/main/typescript/impl/xhrCore/XhrFormData.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,yCAAqC;AACrC,yCAAuE;AAEvE,iDAG2B;AAC3B,uCAAqC;AACrC,IAAO,OAAO,GAAG,cAAO,CAAC,OAAO,CAAC;AAIjC,MAAM,mBAAmB,GAA8B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAElF;;;;;;;;;;;;GAYG;AACH,MAAa,WAAY,SAAQ,kBAAM;IAUnC;;;;;;;OAOG;IACH,YAAoB,UAAc,EAAU,eAA0C,mBAAmB,EAAE,QAAmB,EAAU,UAAqB;QACzJ,KAAK,CAAC,EAAE,CAAC,CAAC;QADM,eAAU,GAAV,UAAU,CAAI;QAAU,iBAAY,GAAZ,YAAY,CAAiD;QAA+B,eAAU,GAAV,UAAU,CAAW;QAjB7J;;;;;;WAMG;QACH,uBAAkB,GAAY,KAAK,CAAC;QAYhC,gFAAgF;QAChF;;;;;WAKG;QACH,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,UAAU;QACN;;;aAGK;QACL,IAAI,iBAAiB,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACrB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACpB,OAAO,EAAC,GAAG,EAAE,KAAK,EAAC,CAAA;gBACvB,CAAC,CAAC,CAAA;aACL;YACD,OAAO,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAA;QAC/B,CAAC,CAAA;QAED;;;WAGG;QACH,IAAI,uBAAuB,GAAG,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAE,EAAE;YAC3C,GAAG,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,EAAC,GAAG,EAAE,KAAK,EAAC,CAAA;QACvB,CAAC,CAAC;QAEF;;WAEG;QACH,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aACrB,OAAO,CAAC,iBAAiB,CAAC;aAC1B,GAAG,CAAC,uBAAuB,CAAC;aAC5B,MAAM,CAAC,CAAC,QAAkB,EAAE,EAAC,GAAG,EAAE,KAAK,EAAM,EAAE,EAAE;YAC9C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO,QAAQ,CAAC;QACpB,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAa,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,UAAU,GAAG,iBAAS;QAC3B,OAAO,IAAA,0BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,WAAe,EAAE,QAAwB;QAChE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,kBAAU,CAAC,IAAI,CAAC,CAAC,EAAE;YACjD,OAAO;SACV;QACD,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,IAAQ;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAA,YAAI,EAAC,mBAAW,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE;YAC3C,OAAO;SACV;QACD,IAAI,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,IAAA,YAAI,EAAC,mBAAW,CAAC,GAAG,CAAC,CAAC;QAClF,IAAI,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC/H,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,UAAc,EAAE,aAAuB,EAAE;QAErE,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACvE,MAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAa,EAAE,KAAK,CAAC,CAAC;QAEvF,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC;QACnG,MAAM,gBAAgB,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,IAAI,MAAM,GAAG,IAAA,8BAAkB,EAAC,UAAU,CAAC,CAAC;QAC5C,MAAM;aACD,GAAG,CAAC,8BAAkB,CAAC;aACvB,GAAG,CAAC,oBAAoB,CAAC;aACzB,MAAM,CAAC,gBAAgB,CAAC;aACxB,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAEO,0BAA0B,CAAC,GAAW;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;CACJ;AAnID,kCAmIC"}
@@ -0,0 +1,11 @@
1
+ /*Queue ->
2
+ enqueue
3
+ -> no delay
4
+ -> push runnable into the queue
5
+ -> task running Y -> EOP
6
+ -> task running N -> trigger queue loop
7
+
8
+ */
9
+ class XhrQueueController {
10
+ }
11
+ //# sourceMappingURL=XhrQueHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XhrQueHandler.js","sourceRoot":"","sources":["../../../src/main/typescript/impl/xhrCore/XhrQueHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;EAOE;AAGF,MAAM,kBAAkB;CAEvB"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /*Queue ->
3
+ enqueue
4
+ -> no delay
5
+ -> push runnable into the queue
6
+ -> task running Y -> EOP
7
+ -> task running N -> trigger queue loop
8
+
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ let activeTimeout = null;
12
+ function debounce(runnable, timeout) {
13
+ if (!!activeTimeout) {
14
+ clearTimeout(activeTimeout);
15
+ }
16
+ if (timeout > 0) {
17
+ activeTimeout = setTimeout(() => {
18
+ try {
19
+ runnable();
20
+ }
21
+ finally {
22
+ clearTimeout(activeTimeout);
23
+ activeTimeout = null;
24
+ }
25
+ }, timeout);
26
+ }
27
+ else {
28
+ runnable();
29
+ }
30
+ }
31
+ class XhrQueueController {
32
+ constructor() {
33
+ this.queue = [];
34
+ this.taskRunning = false;
35
+ document.body.addEventListener("xhrNext", () => this.next());
36
+ document.body.addEventListener("xhrClear", () => this.clear());
37
+ }
38
+ enqueue(request, timeOut) {
39
+ debounce(() => {
40
+ if (!this.taskRunning) {
41
+ this.signalTaskRunning();
42
+ request.start();
43
+ }
44
+ else {
45
+ this.queue.push(request);
46
+ }
47
+ }, timeOut);
48
+ }
49
+ signalTaskRunning() {
50
+ this.taskRunning = true;
51
+ }
52
+ next() {
53
+ const next = this.queue.shift();
54
+ this.taskRunning = !!this.queue.length;
55
+ next === null || next === void 0 ? void 0 : next.start();
56
+ }
57
+ clear() {
58
+ this.queue.length = 0;
59
+ this.taskRunning = false;
60
+ }
61
+ }
62
+ //# sourceMappingURL=XhrQueueController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XhrQueueController.js","sourceRoot":"","sources":["../../../src/main/typescript/impl/xhrCore/XhrQueueController.ts"],"names":[],"mappings":";AAAA;;;;;;;EAOE;;AAOF,IAAI,aAAa,GAAG,IAAI,CAAC;AACzB,SAAS,QAAQ,CAAC,QAAQ,EAAE,OAAO;IAC/B,IAAG,CAAC,CAAC,aAAa,EAAE;QAChB,YAAY,CAAC,aAAa,CAAC,CAAC;KAC/B;IACD,IAAG,OAAO,GAAG,CAAC,EAAE;QACZ,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI;gBACJ,QAAQ,EAAE,CAAC;aACV;oBAAS;gBACN,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,aAAa,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,EAAE,OAAO,CAAC,CAAC;KACf;SAAM;QACH,QAAQ,EAAE,CAAC;KACd;AACL,CAAC;AAED,MAAM,kBAAkB;IAIpB;QAHA,UAAK,GAAG,EAAE,CAAC;QACX,gBAAW,GAAG,KAAK,CAAC;QAGhB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,CAAC,OAAmB,EAAE,OAAe;QACxC,QAAQ,CAAC,GAAG,EAAE;YACV,IAAG,CAAC,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,EAAE,CAAC;aACnB;iBAAM;gBACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC5B;QAEL,CAAC,EAAE,OAAO,CAAC,CAAC;IAChB,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;CACJ"}