@sankhyalabs/sankhyablocks 1.1.13 → 1.1.16

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 (44) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  3. package/dist/cjs/snk-application.cjs.entry.js +67 -4
  4. package/dist/collection/components/snk-application/snk-application.js +40 -4
  5. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +24 -1
  6. package/dist/collection/lib/http/data-fetcher/fetchers/resource-fetcher.js +30 -0
  7. package/dist/components/snk-application.js +69 -5
  8. package/dist/esm/loader.js +1 -1
  9. package/dist/esm/sankhyablocks.js +1 -1
  10. package/dist/esm/snk-application.entry.js +67 -4
  11. package/dist/sankhyablocks/{p-080303d6.entry.js → p-5d41973e.entry.js} +6 -2
  12. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  13. package/dist/types/components/snk-application/snk-application.d.ts +5 -0
  14. package/dist/types/components.d.ts +2 -0
  15. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +4 -1
  16. package/dist/types/lib/http/data-fetcher/fetchers/resource-fetcher.d.ts +6 -0
  17. package/package.json +3 -4
  18. package/react/components.d.ts +0 -3
  19. package/react/components.js +0 -6
  20. package/react/components.js.map +0 -1
  21. package/react/react-component-lib/createComponent.d.ts +0 -10
  22. package/react/react-component-lib/createComponent.js +0 -75
  23. package/react/react-component-lib/createComponent.js.map +0 -1
  24. package/react/react-component-lib/createOverlayComponent.d.ts +0 -21
  25. package/react/react-component-lib/createOverlayComponent.js +0 -109
  26. package/react/react-component-lib/createOverlayComponent.js.map +0 -1
  27. package/react/react-component-lib/index.d.ts +0 -2
  28. package/react/react-component-lib/index.js +0 -3
  29. package/react/react-component-lib/index.js.map +0 -1
  30. package/react/react-component-lib/interfaces.d.ts +0 -29
  31. package/react/react-component-lib/interfaces.js +0 -1
  32. package/react/react-component-lib/interfaces.js.map +0 -1
  33. package/react/react-component-lib/utils/attachProps.d.ts +0 -12
  34. package/react/react-component-lib/utils/attachProps.js +0 -98
  35. package/react/react-component-lib/utils/attachProps.js.map +0 -1
  36. package/react/react-component-lib/utils/case.d.ts +0 -2
  37. package/react/react-component-lib/utils/case.js +0 -7
  38. package/react/react-component-lib/utils/case.js.map +0 -1
  39. package/react/react-component-lib/utils/dev.d.ts +0 -2
  40. package/react/react-component-lib/utils/dev.js +0 -13
  41. package/react/react-component-lib/utils/dev.js.map +0 -1
  42. package/react/react-component-lib/utils/index.d.ts +0 -10
  43. package/react/react-component-lib/utils/index.js +0 -34
  44. package/react/react-component-lib/utils/index.js.map +0 -1
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy([["snk-application.cjs",[[2,"snk-application",{"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"temOpcional":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64]}]]]], options);
17
+ return index.bootstrapLazy([["snk-application.cjs",[[2,"snk-application",{"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"temOpcional":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64],"loadFormConfig":[64]}]]]], options);
18
18
  });
19
19
  };
20
20
 
@@ -15,5 +15,5 @@ const patchBrowser = () => {
15
15
  };
16
16
 
17
17
  patchBrowser().then(options => {
18
- return index.bootstrapLazy([["snk-application.cjs",[[2,"snk-application",{"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"temOpcional":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64]}]]]], options);
18
+ return index.bootstrapLazy([["snk-application.cjs",[[2,"snk-application",{"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"temOpcional":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64],"loadFormConfig":[64]}]]]], options);
19
19
  });
@@ -7756,6 +7756,60 @@ class ApplicationUtils {
7756
7756
  }
7757
7757
  }
7758
7758
 
7759
+ class ResourceFetcher {
7760
+ constructor() {
7761
+ this.templateByQuery = new Map();
7762
+ this.buldTemplates();
7763
+ }
7764
+ buldTemplates() {
7765
+ this.templateByQuery.set("fetchResource", dist.gql `query($name: String!) {
7766
+ $queryAlias$: fetchResource(name: $name){
7767
+ resource
7768
+ }
7769
+ }`);
7770
+ }
7771
+ loadResource(name) {
7772
+ return new Promise((resolve, reject) => {
7773
+ HttpFetcher.get()
7774
+ .callGraphQL({
7775
+ values: { name },
7776
+ query: this.templateByQuery.get("fetchResource"),
7777
+ })
7778
+ .then((result) => {
7779
+ resolve(result === null || result === void 0 ? void 0 : result.resource);
7780
+ })
7781
+ .catch((error) => {
7782
+ reject(error);
7783
+ });
7784
+ });
7785
+ }
7786
+ }
7787
+
7788
+ class FormConfigFetcher extends ResourceFetcher {
7789
+ loadFormConfig(formName, resourceID) {
7790
+ return new Promise((accept, reject) => {
7791
+ this.loadResource(`cfg://form/${resourceID}/${formName}`)
7792
+ .then((configAsString) => {
7793
+ if (configAsString) {
7794
+ const config = JSON.parse(configAsString);
7795
+ const { tabs, fields } = config;
7796
+ if (tabs) {
7797
+ const allTabs = new Map(tabs.map(t => [t.tabKey, t]));
7798
+ fields.forEach(f => f.tab = allTabs.get(f.tab));
7799
+ }
7800
+ accept(fields);
7801
+ }
7802
+ else {
7803
+ reject(`Sem configuração pro formulário "${formName}".`);
7804
+ }
7805
+ })
7806
+ .catch((error) => {
7807
+ reject(error);
7808
+ });
7809
+ });
7810
+ }
7811
+ }
7812
+
7759
7813
  const snkApplicationCss = ".sc-snk-application-h{display:flex;flex-direction:column;height:100%}";
7760
7814
 
7761
7815
  const SnkApplication = class {
@@ -7833,18 +7887,21 @@ const SnkApplication = class {
7833
7887
  async getResourceID() {
7834
7888
  return Promise.resolve(this.resourceID);
7835
7889
  }
7836
- alert(title, message, icon) {
7890
+ async alert(title, message, icon) {
7837
7891
  return ApplicationUtils.alert(title, message, icon);
7838
7892
  }
7839
- error(title, message, icon) {
7893
+ async error(title, message, icon) {
7840
7894
  return ApplicationUtils.error(title, message, icon);
7841
7895
  }
7842
- confirm(title, message, icon, critical) {
7896
+ async confirm(title, message, icon, critical) {
7843
7897
  return ApplicationUtils.confirm(title, message, icon, critical);
7844
7898
  }
7845
- info(message) {
7899
+ async info(message) {
7846
7900
  return ApplicationUtils.info(message);
7847
7901
  }
7902
+ async loadFormConfig(name) {
7903
+ return this.formConfigFetcher.loadFormConfig(name, this.resourceID);
7904
+ }
7848
7905
  get urlParams() {
7849
7906
  if (!this._urlParams) {
7850
7907
  this._urlParams = UrlUtils.getQueryParams(location.search);
@@ -7857,6 +7914,12 @@ const SnkApplication = class {
7857
7914
  }
7858
7915
  return this._dataUnitFetcher;
7859
7916
  }
7917
+ get formConfigFetcher() {
7918
+ if (!this._formConfigFetcher) {
7919
+ this._formConfigFetcher = new FormConfigFetcher();
7920
+ }
7921
+ return this._formConfigFetcher;
7922
+ }
7860
7923
  componentDidLoad() {
7861
7924
  this.applicationLoading.emit(true);
7862
7925
  window.requestAnimationFrame(() => {
@@ -6,6 +6,7 @@ import ParametersFetcher from "../../lib/http/data-fetcher/fetchers/parameters-f
6
6
  //FIXME: temporariamente estamos compiando essa classe do ezui pois não conseguimos
7
7
  //incluída no pacote. Isso deve ser resolvido nas proximas entregas e então ajustado aqui
8
8
  import ApplicationUtils from "../../temp/ApplicationUtils";
9
+ import { FormConfigFetcher } from "../../lib/http/data-fetcher/fetchers/form-config-fetcher";
9
10
  export class SnkApplication {
10
11
  get parameters() {
11
12
  if (!this._parameters) {
@@ -76,18 +77,21 @@ export class SnkApplication {
76
77
  async getResourceID() {
77
78
  return Promise.resolve(this.resourceID);
78
79
  }
79
- alert(title, message, icon) {
80
+ async alert(title, message, icon) {
80
81
  return ApplicationUtils.alert(title, message, icon);
81
82
  }
82
- error(title, message, icon) {
83
+ async error(title, message, icon) {
83
84
  return ApplicationUtils.error(title, message, icon);
84
85
  }
85
- confirm(title, message, icon, critical) {
86
+ async confirm(title, message, icon, critical) {
86
87
  return ApplicationUtils.confirm(title, message, icon, critical);
87
88
  }
88
- info(message) {
89
+ async info(message) {
89
90
  return ApplicationUtils.info(message);
90
91
  }
92
+ async loadFormConfig(name) {
93
+ return this.formConfigFetcher.loadFormConfig(name, this.resourceID);
94
+ }
91
95
  get urlParams() {
92
96
  if (!this._urlParams) {
93
97
  this._urlParams = UrlUtils.getQueryParams(location.search);
@@ -100,6 +104,12 @@ export class SnkApplication {
100
104
  }
101
105
  return this._dataUnitFetcher;
102
106
  }
107
+ get formConfigFetcher() {
108
+ if (!this._formConfigFetcher) {
109
+ this._formConfigFetcher = new FormConfigFetcher();
110
+ }
111
+ return this._formConfigFetcher;
112
+ }
103
113
  componentDidLoad() {
104
114
  this.applicationLoading.emit(true);
105
115
  window.requestAnimationFrame(() => {
@@ -445,6 +455,32 @@ export class SnkApplication {
445
455
  "text": "",
446
456
  "tags": []
447
457
  }
458
+ },
459
+ "loadFormConfig": {
460
+ "complexType": {
461
+ "signature": "(name: string) => Promise<Array<FieldConfig>>",
462
+ "parameters": [{
463
+ "tags": [],
464
+ "text": ""
465
+ }],
466
+ "references": {
467
+ "Promise": {
468
+ "location": "global"
469
+ },
470
+ "FieldConfig": {
471
+ "location": "import",
472
+ "path": "@sankhyalabs/ezui/dist/types/components/ez-form/ez-form"
473
+ },
474
+ "Array": {
475
+ "location": "global"
476
+ }
477
+ },
478
+ "return": "Promise<FieldConfig[]>"
479
+ },
480
+ "docs": {
481
+ "text": "",
482
+ "tags": []
483
+ }
448
484
  }
449
485
  }; }
450
486
  }
@@ -1,2 +1,25 @@
1
- export class FormConfigFetcher {
1
+ import { ResourceFetcher } from "./resource-fetcher";
2
+ export class FormConfigFetcher extends ResourceFetcher {
3
+ loadFormConfig(formName, resourceID) {
4
+ return new Promise((accept, reject) => {
5
+ this.loadResource(`cfg://form/${resourceID}/${formName}`)
6
+ .then((configAsString) => {
7
+ if (configAsString) {
8
+ const config = JSON.parse(configAsString);
9
+ const { tabs, fields } = config;
10
+ if (tabs) {
11
+ const allTabs = new Map(tabs.map(t => [t.tabKey, t]));
12
+ fields.forEach(f => f.tab = allTabs.get(f.tab));
13
+ }
14
+ accept(fields);
15
+ }
16
+ else {
17
+ reject(`Sem configuração pro formulário "${formName}".`);
18
+ }
19
+ })
20
+ .catch((error) => {
21
+ reject(error);
22
+ });
23
+ });
24
+ }
2
25
  }
@@ -0,0 +1,30 @@
1
+ import { gql } from "graphql-request";
2
+ import { HttpFetcher } from "../DataFetcher";
3
+ export class ResourceFetcher {
4
+ constructor() {
5
+ this.templateByQuery = new Map();
6
+ this.buldTemplates();
7
+ }
8
+ buldTemplates() {
9
+ this.templateByQuery.set("fetchResource", gql `query($name: String!) {
10
+ $queryAlias$: fetchResource(name: $name){
11
+ resource
12
+ }
13
+ }`);
14
+ }
15
+ loadResource(name) {
16
+ return new Promise((resolve, reject) => {
17
+ HttpFetcher.get()
18
+ .callGraphQL({
19
+ values: { name },
20
+ query: this.templateByQuery.get("fetchResource"),
21
+ })
22
+ .then((result) => {
23
+ resolve(result === null || result === void 0 ? void 0 : result.resource);
24
+ })
25
+ .catch((error) => {
26
+ reject(error);
27
+ });
28
+ });
29
+ }
30
+ }
@@ -7752,6 +7752,60 @@ class ApplicationUtils {
7752
7752
  }
7753
7753
  }
7754
7754
 
7755
+ class ResourceFetcher {
7756
+ constructor() {
7757
+ this.templateByQuery = new Map();
7758
+ this.buldTemplates();
7759
+ }
7760
+ buldTemplates() {
7761
+ this.templateByQuery.set("fetchResource", dist.gql `query($name: String!) {
7762
+ $queryAlias$: fetchResource(name: $name){
7763
+ resource
7764
+ }
7765
+ }`);
7766
+ }
7767
+ loadResource(name) {
7768
+ return new Promise((resolve, reject) => {
7769
+ HttpFetcher.get()
7770
+ .callGraphQL({
7771
+ values: { name },
7772
+ query: this.templateByQuery.get("fetchResource"),
7773
+ })
7774
+ .then((result) => {
7775
+ resolve(result === null || result === void 0 ? void 0 : result.resource);
7776
+ })
7777
+ .catch((error) => {
7778
+ reject(error);
7779
+ });
7780
+ });
7781
+ }
7782
+ }
7783
+
7784
+ class FormConfigFetcher extends ResourceFetcher {
7785
+ loadFormConfig(formName, resourceID) {
7786
+ return new Promise((accept, reject) => {
7787
+ this.loadResource(`cfg://form/${resourceID}/${formName}`)
7788
+ .then((configAsString) => {
7789
+ if (configAsString) {
7790
+ const config = JSON.parse(configAsString);
7791
+ const { tabs, fields } = config;
7792
+ if (tabs) {
7793
+ const allTabs = new Map(tabs.map(t => [t.tabKey, t]));
7794
+ fields.forEach(f => f.tab = allTabs.get(f.tab));
7795
+ }
7796
+ accept(fields);
7797
+ }
7798
+ else {
7799
+ reject(`Sem configuração pro formulário "${formName}".`);
7800
+ }
7801
+ })
7802
+ .catch((error) => {
7803
+ reject(error);
7804
+ });
7805
+ });
7806
+ }
7807
+ }
7808
+
7755
7809
  const snkApplicationCss = ".sc-snk-application-h{display:flex;flex-direction:column;height:100%}";
7756
7810
 
7757
7811
  const SnkApplication$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
@@ -7830,18 +7884,21 @@ const SnkApplication$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
7830
7884
  async getResourceID() {
7831
7885
  return Promise.resolve(this.resourceID);
7832
7886
  }
7833
- alert(title, message, icon) {
7887
+ async alert(title, message, icon) {
7834
7888
  return ApplicationUtils.alert(title, message, icon);
7835
7889
  }
7836
- error(title, message, icon) {
7890
+ async error(title, message, icon) {
7837
7891
  return ApplicationUtils.error(title, message, icon);
7838
7892
  }
7839
- confirm(title, message, icon, critical) {
7893
+ async confirm(title, message, icon, critical) {
7840
7894
  return ApplicationUtils.confirm(title, message, icon, critical);
7841
7895
  }
7842
- info(message) {
7896
+ async info(message) {
7843
7897
  return ApplicationUtils.info(message);
7844
7898
  }
7899
+ async loadFormConfig(name) {
7900
+ return this.formConfigFetcher.loadFormConfig(name, this.resourceID);
7901
+ }
7845
7902
  get urlParams() {
7846
7903
  if (!this._urlParams) {
7847
7904
  this._urlParams = UrlUtils.getQueryParams(location.search);
@@ -7854,6 +7911,12 @@ const SnkApplication$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
7854
7911
  }
7855
7912
  return this._dataUnitFetcher;
7856
7913
  }
7914
+ get formConfigFetcher() {
7915
+ if (!this._formConfigFetcher) {
7916
+ this._formConfigFetcher = new FormConfigFetcher();
7917
+ }
7918
+ return this._formConfigFetcher;
7919
+ }
7857
7920
  componentDidLoad() {
7858
7921
  this.applicationLoading.emit(true);
7859
7922
  window.requestAnimationFrame(() => {
@@ -7878,7 +7941,8 @@ const SnkApplication$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
7878
7941
  "alert": [64],
7879
7942
  "error": [64],
7880
7943
  "confirm": [64],
7881
- "info": [64]
7944
+ "info": [64],
7945
+ "loadFormConfig": [64]
7882
7946
  }]);
7883
7947
  function defineCustomElement$1() {
7884
7948
  if (typeof customElements === "undefined") {
@@ -10,7 +10,7 @@ const patchEsm = () => {
10
10
  const defineCustomElements = (win, options) => {
11
11
  if (typeof window === 'undefined') return Promise.resolve();
12
12
  return patchEsm().then(() => {
13
- return bootstrapLazy([["snk-application",[[2,"snk-application",{"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"temOpcional":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64]}]]]], options);
13
+ return bootstrapLazy([["snk-application",[[2,"snk-application",{"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"temOpcional":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64],"loadFormConfig":[64]}]]]], options);
14
14
  });
15
15
  };
16
16
 
@@ -13,5 +13,5 @@ const patchBrowser = () => {
13
13
  };
14
14
 
15
15
  patchBrowser().then(options => {
16
- return bootstrapLazy([["snk-application",[[2,"snk-application",{"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"temOpcional":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64]}]]]], options);
16
+ return bootstrapLazy([["snk-application",[[2,"snk-application",{"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"temOpcional":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64],"loadFormConfig":[64]}]]]], options);
17
17
  });
@@ -7752,6 +7752,60 @@ class ApplicationUtils {
7752
7752
  }
7753
7753
  }
7754
7754
 
7755
+ class ResourceFetcher {
7756
+ constructor() {
7757
+ this.templateByQuery = new Map();
7758
+ this.buldTemplates();
7759
+ }
7760
+ buldTemplates() {
7761
+ this.templateByQuery.set("fetchResource", dist.gql `query($name: String!) {
7762
+ $queryAlias$: fetchResource(name: $name){
7763
+ resource
7764
+ }
7765
+ }`);
7766
+ }
7767
+ loadResource(name) {
7768
+ return new Promise((resolve, reject) => {
7769
+ HttpFetcher.get()
7770
+ .callGraphQL({
7771
+ values: { name },
7772
+ query: this.templateByQuery.get("fetchResource"),
7773
+ })
7774
+ .then((result) => {
7775
+ resolve(result === null || result === void 0 ? void 0 : result.resource);
7776
+ })
7777
+ .catch((error) => {
7778
+ reject(error);
7779
+ });
7780
+ });
7781
+ }
7782
+ }
7783
+
7784
+ class FormConfigFetcher extends ResourceFetcher {
7785
+ loadFormConfig(formName, resourceID) {
7786
+ return new Promise((accept, reject) => {
7787
+ this.loadResource(`cfg://form/${resourceID}/${formName}`)
7788
+ .then((configAsString) => {
7789
+ if (configAsString) {
7790
+ const config = JSON.parse(configAsString);
7791
+ const { tabs, fields } = config;
7792
+ if (tabs) {
7793
+ const allTabs = new Map(tabs.map(t => [t.tabKey, t]));
7794
+ fields.forEach(f => f.tab = allTabs.get(f.tab));
7795
+ }
7796
+ accept(fields);
7797
+ }
7798
+ else {
7799
+ reject(`Sem configuração pro formulário "${formName}".`);
7800
+ }
7801
+ })
7802
+ .catch((error) => {
7803
+ reject(error);
7804
+ });
7805
+ });
7806
+ }
7807
+ }
7808
+
7755
7809
  const snkApplicationCss = ".sc-snk-application-h{display:flex;flex-direction:column;height:100%}";
7756
7810
 
7757
7811
  const SnkApplication = class {
@@ -7829,18 +7883,21 @@ const SnkApplication = class {
7829
7883
  async getResourceID() {
7830
7884
  return Promise.resolve(this.resourceID);
7831
7885
  }
7832
- alert(title, message, icon) {
7886
+ async alert(title, message, icon) {
7833
7887
  return ApplicationUtils.alert(title, message, icon);
7834
7888
  }
7835
- error(title, message, icon) {
7889
+ async error(title, message, icon) {
7836
7890
  return ApplicationUtils.error(title, message, icon);
7837
7891
  }
7838
- confirm(title, message, icon, critical) {
7892
+ async confirm(title, message, icon, critical) {
7839
7893
  return ApplicationUtils.confirm(title, message, icon, critical);
7840
7894
  }
7841
- info(message) {
7895
+ async info(message) {
7842
7896
  return ApplicationUtils.info(message);
7843
7897
  }
7898
+ async loadFormConfig(name) {
7899
+ return this.formConfigFetcher.loadFormConfig(name, this.resourceID);
7900
+ }
7844
7901
  get urlParams() {
7845
7902
  if (!this._urlParams) {
7846
7903
  this._urlParams = UrlUtils.getQueryParams(location.search);
@@ -7853,6 +7910,12 @@ const SnkApplication = class {
7853
7910
  }
7854
7911
  return this._dataUnitFetcher;
7855
7912
  }
7913
+ get formConfigFetcher() {
7914
+ if (!this._formConfigFetcher) {
7915
+ this._formConfigFetcher = new FormConfigFetcher();
7916
+ }
7917
+ return this._formConfigFetcher;
7918
+ }
7856
7919
  componentDidLoad() {
7857
7920
  this.applicationLoading.emit(true);
7858
7921
  window.requestAnimationFrame(() => {