jsf.js_next_gen 4.0.0-RC.25 → 4.0.0-RC.27

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.
@@ -520,10 +520,10 @@ class DomQuery {
520
520
  const doc = document.implementation.createHTMLDocument("");
521
521
  markup = trim(markup);
522
522
  let lowerMarkup = markup.toLowerCase();
523
- if (lowerMarkup.indexOf('<!doctype') != -1 ||
524
- lowerMarkup.indexOf('<html') != -1 ||
525
- lowerMarkup.indexOf('<head') != -1 ||
526
- lowerMarkup.indexOf('<body') != -1) {
523
+ if (lowerMarkup.search(/\<\!doctypeW+/gi) != -1 ||
524
+ lowerMarkup.search(/\<html\w+/gi) != -1 ||
525
+ lowerMarkup.search(/\<head\W+/gi) != -1 ||
526
+ lowerMarkup.search(/\<body\W+/gi) != -1) {
527
527
  doc.documentElement.innerHTML = markup;
528
528
  return new DomQuery(doc.documentElement);
529
529
  }
@@ -6531,7 +6531,7 @@ exports.EventData = EventData;
6531
6531
  * limitations under the License.
6532
6532
  */
6533
6533
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6534
- exports.resolveDefaults = exports.getEventTarget = exports.resolveWindowId = exports.resolveDelay = exports.resolveTimeout = exports.resoveNamingContainerMapper = exports.resolveViewRootId = exports.resolveViewId = exports.resolveForm = exports.resolveFinalUrl = exports.resolveTargetUrl = exports.resolveHandlerFunc = void 0;
6534
+ exports.resolveDefaults = exports.getEventTarget = exports.resolveWindowId = exports.resolveDelay = exports.resolveTimeout = exports.resoveConfigNamingContainerMapper = exports.resoveNamingContainerMapper = exports.resolveViewRootId = exports.resolveViewId = exports.resolveForm = exports.resolveFinalUrl = exports.resolveTargetUrl = exports.resolveHandlerFunc = void 0;
6535
6535
  const mona_dish_1 = __webpack_require__(/*! mona-dish */ "./node_modules/mona-dish/src/main/typescript/index_core.ts");
6536
6536
  const Const_1 = __webpack_require__(/*! ../core/Const */ "./src/main/typescript/impl/core/Const.ts");
6537
6537
  const Lang_1 = __webpack_require__(/*! ../util/Lang */ "./src/main/typescript/impl/util/Lang.ts");
@@ -6617,6 +6617,26 @@ function resoveNamingContainerMapper(internalContext) {
6617
6617
  return (key, value) => (key.indexOf(prefix) == 0) ? [key, value] : [prefix + key, value];
6618
6618
  }
6619
6619
  exports.resoveNamingContainerMapper = resoveNamingContainerMapper;
6620
+ /**
6621
+ * we provide the same for configs
6622
+ * @param internalContext
6623
+ */
6624
+ function resoveConfigNamingContainerMapper(internalContext) {
6625
+ const isNamedViewRoot = internalContext.getIf(Const_1.NAMED_VIEWROOT).isPresent();
6626
+ if (!isNamedViewRoot) {
6627
+ return;
6628
+ }
6629
+ const partialId = internalContext.getIf(Const_1.NAMING_CONTAINER_ID).value;
6630
+ const SEP = (0, Const_1.$faces)().separatorchar;
6631
+ const prefix = partialId + SEP;
6632
+ return (config) => {
6633
+ let assoc = config.stream
6634
+ .map(([key, data]) => (key.indexOf(prefix) == 0) ? [key, data] : [prefix + key, data])
6635
+ .collect(new mona_dish_1.AssocArrayCollector());
6636
+ return new ExtDomQuery_1.ExtConfig(assoc);
6637
+ };
6638
+ }
6639
+ exports.resoveConfigNamingContainerMapper = resoveConfigNamingContainerMapper;
6620
6640
  function resolveTimeout(options) {
6621
6641
  var _a;
6622
6642
  let getCfg = Lang_1.ExtLang.getLocalOrGlobalConfig;
@@ -7555,9 +7575,9 @@ class XhrFormData extends mona_dish_1.Config {
7555
7575
  //a call from getViewState passes the form element as datasource,
7556
7576
  //so we have two call points
7557
7577
  // atm we basically encode twice, to keep the code leaner
7558
- // this will be later optmized, practically elements
7559
- // which are already covered by an external viewstate do not need
7560
- // the encoding a second time, because they are overwritten by the viewstate again
7578
+ // this will be later optimized, practically elements
7579
+ // which are already covered by an external ViewState do not need
7580
+ // the encoding a second time, because they are overwritten by the ViewState again
7561
7581
  if (isString(dataSource)) {
7562
7582
  this.assignEncodedString(this.dataSource);
7563
7583
  }
@@ -7609,15 +7629,15 @@ class XhrFormData extends mona_dish_1.Config {
7609
7629
  applyViewState(form) {
7610
7630
  let viewStateElement = form.querySelectorAllDeep(`[name*='${(0, Const_1.$nsp)(Const_1.P_VIEWSTATE)}'`);
7611
7631
  let viewState = viewStateElement.inputValue;
7612
- // this.appendIf(viewState.isPresent(), P_VIEWSTATE).value = viewState.value;
7613
- this.appendIf(viewState.isPresent(), this.remapKeyForNamingContainer(viewStateElement.name.value)).value = viewState.value;
7632
+ let viewStateName = viewStateElement.name.value;
7633
+ this.assignIf(viewState.isPresent(), viewStateName).value = [viewState.value];
7614
7634
  }
7615
7635
  /**
7616
7636
  * assigns an url encoded string to this xhrFormData object
7617
7637
  * as key value entry
7618
7638
  * @param encoded
7619
7639
  */
7620
- assignEncodedString(encoded) {
7640
+ assignEncodedString(encoded, overwrite = true) {
7621
7641
  // this code filters out empty strings as key value pairs
7622
7642
  let keyValueEntries = decodeURIComponent(encoded).split(/&/gi)
7623
7643
  .filter(item => !!(item || '')
@@ -7628,7 +7648,7 @@ class XhrFormData extends mona_dish_1.Config {
7628
7648
  * assign a set of key value pairs passed as array ['key=val1', 'key2=val2']
7629
7649
  * @param keyValueEntries
7630
7650
  */
7631
- assignString(keyValueEntries) {
7651
+ assignString(keyValueEntries, overwrite = true) {
7632
7652
  let toMerge = new ExtDomQuery_1.ExtConfig({});
7633
7653
  function splitToKeyVal(line) {
7634
7654
  return line.split(/=(.*)/gi);
@@ -7647,7 +7667,7 @@ class XhrFormData extends mona_dish_1.Config {
7647
7667
  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 : "";
7648
7668
  });
7649
7669
  //merge with overwrite but no append! (aka no double entries are allowed)
7650
- this.shallowMerge(toMerge);
7670
+ this.shallowMerge(toMerge, overwrite);
7651
7671
  }
7652
7672
  /**
7653
7673
  * @param paramsMapper ... pre encode the params if needed, default is to map them 1:1
@@ -7739,20 +7759,18 @@ class XhrFormData extends mona_dish_1.Config {
7739
7759
  }
7740
7760
  //lets encode the form elements
7741
7761
  let formElements = toEncode.deepElements.encodeFormElement();
7742
- const mapped = this.remapKeysForNamingCoontainer(formElements);
7762
+ const mapped = this.remapKeysForNamingContainer(formElements);
7743
7763
  this.shallowMerge(mapped);
7744
7764
  }
7745
- remapKeysForNamingCoontainer(formElements) {
7765
+ remapKeysForNamingContainer(formElements) {
7746
7766
  let ret = new mona_dish_1.Config({});
7747
- formElements.stream.map(([key, item]) => this.paramsMapper(key, item))
7767
+ formElements.stream
7768
+ .map(([key, item]) => this.paramsMapper(key, item))
7748
7769
  .each(([key, item]) => {
7749
7770
  ret.assign(key).value = item;
7750
7771
  });
7751
7772
  return ret;
7752
7773
  }
7753
- remapKeyForNamingContainer(key) {
7754
- return this.paramsMapper(key, "")[0];
7755
- }
7756
7774
  appendInputs(ret) {
7757
7775
  mona_dish_1.Stream.ofAssoc(this.value)
7758
7776
  .flatMap(([key, item]) => mona_dish_1.Stream.of(...item).map(item => {
@@ -7858,6 +7876,8 @@ class XhrRequest {
7858
7876
  };
7859
7877
  try {
7860
7878
  let formElement = this.sourceForm.getAsElem(0).value;
7879
+ // by spec the viewstate must be called to provide
7880
+ // decorated encoding capabilities
7861
7881
  let viewState = (0, Const_1.$faces)().getViewState(formElement);
7862
7882
  // encoded we need to decode
7863
7883
  // We generated a base representation of the current form
@@ -7867,8 +7887,11 @@ class XhrRequest {
7867
7887
  // whatever the formData object delivers
7868
7888
  // the partialIdsArray arr is almost deprecated legacy code where we allowed to send a separate list of partial
7869
7889
  // ids for reduced load and server processing, this will be removed soon, we can handle the same via execute
7870
- // anyway TODO remove the partial ids array
7871
- let formData = new XhrFormData_1.XhrFormData(this.sourceForm, (0, RequestDataResolver_1.resoveNamingContainerMapper)(this.internalContext), viewState, executesArr(), this.partialIdsArray);
7890
+ // anyway
7891
+ // per spec every parameter sent into the request must be naming container
7892
+ // prefixed
7893
+ const namingContainerMapper = (0, RequestDataResolver_1.resoveNamingContainerMapper)(this.internalContext);
7894
+ let formData = new XhrFormData_1.XhrFormData(this.sourceForm, namingContainerMapper, viewState, executesArr(), this.partialIdsArray);
7872
7895
  this.contentType = formData.isMultipartRequest ? "undefined" : this.contentType;
7873
7896
  // next step the pass through parameters are merged in for post params
7874
7897
  this.requestContext.$nspEnabled = false;
@@ -7879,6 +7902,10 @@ class XhrRequest {
7879
7902
  // this can be used and is used in the impl to enrich the post request parameters with additional
7880
7903
  // information
7881
7904
  try {
7905
+ // per spec every param sent down needs to be remapped
7906
+ // and prefixed by the naming container id
7907
+ let configNamingContainerMapper = (0, RequestDataResolver_1.resoveConfigNamingContainerMapper)(this.internalContext);
7908
+ // requestPassThroughParams = configNamingContainerMapper(requestPassThroughParams);
7882
7909
  formData.shallowMerge(requestPassThroughParams, true, true);
7883
7910
  }
7884
7911
  finally {
Binary file
Binary file