@wavemaker/app-rn-runtime 11.4.0-next.141075 → 11.4.0-next.141077

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. app-rn-runtime/components/chart/basechart.props.js +1 -0
  2. app-rn-runtime/components/chart/basechart.props.js.map +1 -1
  3. app-rn-runtime/components/chart/basechart.styles.js +17 -0
  4. app-rn-runtime/components/chart/basechart.styles.js.map +1 -1
  5. app-rn-runtime/components/chart/donut-chart/donut-chart.props.js +0 -1
  6. app-rn-runtime/components/chart/donut-chart/donut-chart.props.js.map +1 -1
  7. app-rn-runtime/components/chart/legend/legend.component.js +36 -0
  8. app-rn-runtime/components/chart/legend/legend.component.js.map +1 -0
  9. app-rn-runtime/components/chart/pie-chart/pie-chart.component.js +119 -40
  10. app-rn-runtime/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  11. app-rn-runtime/components/chart/pie-chart/pie-chart.props.js +1 -2
  12. app-rn-runtime/components/chart/pie-chart/pie-chart.props.js.map +1 -1
  13. app-rn-runtime/components/data/form/form-action/form-action.component.js +1 -0
  14. app-rn-runtime/components/data/form/form-action/form-action.component.js.map +1 -1
  15. app-rn-runtime/components/data/form/form-action/form-action.props.js +3 -1
  16. app-rn-runtime/components/data/form/form-action/form-action.props.js.map +1 -1
  17. app-rn-runtime/components/data/form/form-field/form-field.component.js +21 -0
  18. app-rn-runtime/components/data/form/form-field/form-field.component.js.map +1 -1
  19. app-rn-runtime/components/data/form/form-field/form-field.props.js +8 -0
  20. app-rn-runtime/components/data/form/form-field/form-field.props.js.map +1 -1
  21. app-rn-runtime/components/data/form/form.component.js +92 -1
  22. app-rn-runtime/components/data/form/form.component.js.map +1 -1
  23. app-rn-runtime/components/data/form/form.props.js +2 -0
  24. app-rn-runtime/components/data/form/form.props.js.map +1 -1
  25. app-rn-runtime/components/data/form/form.styles.js +6 -0
  26. app-rn-runtime/components/data/form/form.styles.js.map +1 -1
  27. app-rn-runtime/components/data/liveform/liveform.component.js +102 -0
  28. app-rn-runtime/components/data/liveform/liveform.component.js.map +1 -0
  29. app-rn-runtime/components/input/baseinput/baseinput.component.js +2 -2
  30. app-rn-runtime/components/input/baseinput/baseinput.component.js.map +1 -1
  31. app-rn-runtime/core/formatters.js.map +1 -1
  32. app-rn-runtime/core/utils.js +19 -0
  33. app-rn-runtime/core/utils.js.map +1 -1
  34. app-rn-runtime/package.json +3 -3
  35. app-rn-runtime/runtime/base-fragment.component.js +13 -0
  36. app-rn-runtime/runtime/base-fragment.component.js.map +1 -1
  37. app-rn-runtime/styles/theme.variables.js +2 -0
  38. app-rn-runtime/styles/theme.variables.js.map +1 -1
  39. app-rn-runtime/variables/http.service.js +6 -2
  40. app-rn-runtime/variables/http.service.js.map +1 -1
  41. app-rn-runtime/variables/live-variable.js +115 -0
  42. app-rn-runtime/variables/live-variable.js.map +1 -0
  43. app-rn-runtime/variables/service-variable.js +6 -1
  44. app-rn-runtime/variables/service-variable.js.map +1 -1
@@ -0,0 +1,115 @@
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
+ import { isEqual, isUndefined, isFunction, forEach, isEmpty } from 'lodash';
5
+ import { LiveVariable as _LiveVariable } from '@wavemaker/variables/src/model/variable/live-variable';
6
+ import httpService from '@wavemaker/app-rn-runtime/variables/http.service';
7
+ import injector from '@wavemaker/app-rn-runtime/core/injector';
8
+ import { deepCopy } from '@wavemaker/app-rn-runtime/core/utils';
9
+ import Formatters from '@wavemaker/app-rn-runtime/core/formatters';
10
+ var _LiveVariableEvents = /*#__PURE__*/function (_LiveVariableEvents) {
11
+ _LiveVariableEvents["BEFORE_INVOKE"] = "beforeInvoke";
12
+ return _LiveVariableEvents;
13
+ }(_LiveVariableEvents || {});
14
+ export class LiveVariable extends _LiveVariable {
15
+ constructor(config) {
16
+ const variableConfig = {
17
+ name: config.name,
18
+ dataSet: config.paramProvider(),
19
+ inputFields: config.paramProvider(),
20
+ filterExpressions: config.filterExpressions,
21
+ filterFields: config.paramProvider(),
22
+ isList: config.isList,
23
+ maxResults: config.maxResults,
24
+ _context: config._context,
25
+ operation: config.operation,
26
+ type: config.type,
27
+ autoUpdate: config.autoUpdate,
28
+ liveSource: config.liveSource,
29
+ orderBy: config.orderBy,
30
+ category: config.category,
31
+ properties: config.properties,
32
+ propertiesMap: config.propertiesMap,
33
+ tableName: config.tableName,
34
+ tableType: config.tableType,
35
+ relatedTables: config.relatedTables,
36
+ httpClientService: httpService,
37
+ onSuccess: (context, args) => {
38
+ return config.onSuccess && config.onSuccess(args.variable, args.data, args.options);
39
+ },
40
+ onCanUpdate: (context, args) => {
41
+ return config.onCanUpdate && config.onCanUpdate(args.variable, args.data, args.options);
42
+ },
43
+ onBeforeUpdate: (context, args) => {
44
+ return config.onBeforeUpdate && config.onBeforeUpdate(args.variable, args.dataFilter || args.inputData, args.options);
45
+ },
46
+ onResult: (context, args) => {
47
+ return config.onResult && config.onResult(args.variable, args.data, args.options);
48
+ },
49
+ onBeforeDatasetReady: (context, args) => {
50
+ return config.onBeforeDatasetReady && config.onBeforeDatasetReady(args.variable, args.data, args.options);
51
+ }
52
+ };
53
+ if (config.onError) {
54
+ variableConfig.onError = (context, args) => {
55
+ return config.onError && config.onError(args.variable, args.data, args.options);
56
+ };
57
+ }
58
+ super(variableConfig);
59
+ this.config = config;
60
+ _defineProperty(this, "params", {});
61
+ _defineProperty(this, "filters", {});
62
+ _defineProperty(this, "appConfig", injector.get('APP_CONFIG'));
63
+ this.dateFormatter = Formatters.get('toDate');
64
+ this.init();
65
+ }
66
+ setFilterExpValue(filter) {
67
+ var _this$filterExpressio;
68
+ (_this$filterExpressio = this.filterExpressions) === null || _this$filterExpressio === void 0 ? void 0 : _this$filterExpressio.rules.forEach(r => {
69
+ r.value = filter[r.target];
70
+ });
71
+ }
72
+ invokeOnParamChange() {
73
+ const last = this.params;
74
+ const latest = this.config.paramProvider();
75
+ if (this.config.operation === 'read') {
76
+ const lastFilter = this.filters;
77
+ const latestFilter = this.config.filterProvider && this.config.filterProvider();
78
+ if (!isEqual(lastFilter, latestFilter)) {
79
+ this.setFilterExpValue(latestFilter);
80
+ if (this.autoUpdate && !isEmpty(latestFilter) && isFunction(this.update)) {
81
+ this.filters = latestFilter;
82
+ this.invoke();
83
+ }
84
+ }
85
+ }
86
+ if (!isEqual(last, latest)) {
87
+ if (this.config.operation === 'read') {
88
+ forEach(latest, (val, key) => {
89
+ this.filterFields[key] = {
90
+ 'value': val
91
+ };
92
+ });
93
+ } else {
94
+ this.inputFields = latest;
95
+ }
96
+ /* if auto-update set for the variable with read operation only, get its data */
97
+ // @ts-ignore
98
+ if (this.autoUpdate && !isUndefined(latest) && isFunction(this[this.config.operation + 'Record'])) {
99
+ this.invoke();
100
+ }
101
+ }
102
+ return Promise.resolve(this);
103
+ }
104
+ listRecords(options, onSuccess, onError) {
105
+ this.filters = this.config.filterProvider && this.config.filterProvider();
106
+ if (options) {
107
+ this.filters = deepCopy({}, this.filters, options.filterFields ? options.filterFields : options);
108
+ }
109
+ options = options || {};
110
+ options.filterFields = this.filters;
111
+ this.setFilterExpValue(this.filters);
112
+ return super.listRecords(options, onSuccess, onError);
113
+ }
114
+ }
115
+ //# sourceMappingURL=live-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isEqual","isUndefined","isFunction","forEach","isEmpty","LiveVariable","_LiveVariable","httpService","injector","deepCopy","Formatters","_LiveVariableEvents","constructor","config","variableConfig","name","dataSet","paramProvider","inputFields","filterExpressions","filterFields","isList","maxResults","_context","operation","type","autoUpdate","liveSource","orderBy","category","properties","propertiesMap","tableName","tableType","relatedTables","httpClientService","onSuccess","context","args","variable","data","options","onCanUpdate","onBeforeUpdate","dataFilter","inputData","onResult","onBeforeDatasetReady","onError","_defineProperty","get","dateFormatter","init","setFilterExpValue","filter","_this$filterExpressio","rules","r","value","target","invokeOnParamChange","last","params","latest","lastFilter","filters","latestFilter","filterProvider","update","invoke","val","key","Promise","resolve","listRecords"],"sources":["live-variable.ts"],"sourcesContent":["import { VariableConfig, VariableEvents } from './base-variable';\nimport { isEqual, isUndefined, isFunction, forEach, isEmpty } from 'lodash';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { LiveVariable as _LiveVariable } from '@wavemaker/variables/src/model/variable/live-variable';\nimport httpService from '@wavemaker/app-rn-runtime/variables/http.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport { deepCopy } from '@wavemaker/app-rn-runtime/core/utils';\nimport Formatters from '@wavemaker/app-rn-runtime/core/formatters';\n\nexport interface LiveVariableConfig extends VariableConfig {\n baseUrl: string;\n maxResults: number;\n _context: any;\n onCanUpdate: any;\n onBeforeUpdate: any;\n onResult: any;\n onBeforeDatasetReady: any;\n inFlightBehavior: string;\n type: string;\n autoUpdate: boolean;\n orderBy: string;\n category: string;\n liveSource: string;\n propertiesMap: any;\n properties: any;\n tableName: string;\n tableType: string;\n relatedTables: any;\n filterExpressions: any;\n filterProvider: any;\n}\n\nenum _LiveVariableEvents {\n BEFORE_INVOKE = 'beforeInvoke'\n}\nexport type LiveVariableEvents = _LiveVariableEvents | VariableEvents;\n\nexport class LiveVariable extends _LiveVariable {\n params: any = {};\n filters: any = {};\n public appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n constructor(public config: LiveVariableConfig) {\n const variableConfig: any = {\n name: config.name,\n dataSet: config.paramProvider(),\n inputFields: config.paramProvider(),\n filterExpressions: config.filterExpressions,\n filterFields: config.paramProvider(),\n isList: config.isList,\n maxResults: config.maxResults,\n _context: config._context,\n operation: config.operation,\n type: config.type,\n autoUpdate: config.autoUpdate,\n liveSource: config.liveSource,\n orderBy: config.orderBy,\n category: config.category,\n properties: config.properties,\n propertiesMap: config.propertiesMap,\n tableName: config.tableName,\n tableType: config.tableType,\n relatedTables: config.relatedTables,\n httpClientService: httpService,\n onSuccess: (context: any, args: any) => {\n return config.onSuccess && config.onSuccess(args.variable, args.data, args.options);\n },\n onCanUpdate: (context: any, args: any) => {\n return config.onCanUpdate && config.onCanUpdate(args.variable, args.data, args.options);\n },\n onBeforeUpdate: (context: any, args: any) => {\n return config.onBeforeUpdate && config.onBeforeUpdate(args.variable, args.dataFilter || args.inputData, args.options);\n },\n onResult: (context: any, args: any) => {\n return config.onResult && config.onResult(args.variable, args.data, args.options);\n },\n onBeforeDatasetReady: (context: any, args: any) => {\n return config.onBeforeDatasetReady && config.onBeforeDatasetReady(args.variable, args.data, args.options);\n }\n }\n if (config.onError) {\n variableConfig.onError = (context: any, args: any) => {\n return config.onError && config.onError(args.variable, args.data, args.options);\n };\n }\n super(variableConfig);\n this.dateFormatter = Formatters.get('toDate');\n this.init();\n }\n\n setFilterExpValue(filter: any) {\n this.filterExpressions?.rules.forEach((r: any) => {\n r.value = filter[r.target];\n });\n }\n\n invokeOnParamChange() {\n const last = this.params;\n const latest = this.config.paramProvider();\n if (this.config.operation === 'read') {\n const lastFilter = this.filters;\n const latestFilter = this.config.filterProvider && this.config.filterProvider();\n if (!isEqual(lastFilter, latestFilter)) {\n this.setFilterExpValue(latestFilter);\n if (this.autoUpdate && !isEmpty(latestFilter) && isFunction(this.update)) {\n this.filters = latestFilter;\n this.invoke();\n }\n }\n }\n if (!isEqual(last, latest)) {\n if (this.config.operation === 'read') {\n forEach(latest, (val: any, key: any) => {\n this.filterFields[key] = {\n 'value': val\n };\n });\n } else {\n this.inputFields = latest;\n }\n /* if auto-update set for the variable with read operation only, get its data */\n // @ts-ignore\n if (this.autoUpdate && !isUndefined(latest) && isFunction(this[this.config.operation + 'Record'])) {\n this.invoke();\n }\n }\n return Promise.resolve(this);\n }\n\n listRecords(options? : any, onSuccess?: Function, onError?: Function) {\n this.filters = this.config.filterProvider && this.config.filterProvider();\n if (options) {\n this.filters = deepCopy({} as any, this.filters, options.filterFields ? options.filterFields : options);\n }\n options = options || {};\n options.filterFields = this.filters;\n this.setFilterExpValue(this.filters);\n return super.listRecords(options, onSuccess, onError);\n }\n\n}\n"],"mappings":"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"}
@@ -13,7 +13,7 @@ var _ServiceVariableEvents = /*#__PURE__*/function (_ServiceVariableEvents) {
13
13
  }(_ServiceVariableEvents || {});
14
14
  export class ServiceVariable extends _ServiceVariable {
15
15
  constructor(config) {
16
- const variableConfig = {
16
+ let variableConfig = {
17
17
  name: config.name,
18
18
  dataSet: config.paramProvider(),
19
19
  dataBinding: {},
@@ -50,6 +50,11 @@ export class ServiceVariable extends _ServiceVariable {
50
50
  return config.onBeforeDatasetReady && config.onBeforeDatasetReady(args.variable, args.data, args.options);
51
51
  }
52
52
  };
53
+ if (config.onError) {
54
+ variableConfig.onError = (context, args) => {
55
+ return config.onError && config.onError(args.variable, args.data, args.options);
56
+ };
57
+ }
53
58
  super(variableConfig);
54
59
  this.config = config;
55
60
  _defineProperty(this, "cancelTokenSource", void 0);
@@ -1 +1 @@
1
- {"version":3,"names":["VariableEvents","isEqual","deepCopy","ServiceVariable","_ServiceVariable","httpService","injector","_ServiceVariableEvents","constructor","config","variableConfig","name","dataSet","paramProvider","dataBinding","isList","service","serviceType","maxResults","_context","operation","operationId","serviceInfo","getServiceInfo","httpClientService","onSuccess","context","args","notify","AFTER_INVOKE","variable","data","options","SUCCESS","onError","ERROR","onCanUpdate","onBeforeUpdate","BEFORE_INVOKE","inputData","onResult","onBeforeDatasetReady","_defineProperty","get","subscribe","invokeOnParamChange","last","params","latest","invoke","Promise","resolve","doNext","currentPage","reject","onDataUpdated","appConfig","refresh","inputFields","console","error"],"sources":["service-variable.ts"],"sourcesContent":["import { VariableConfig, VariableEvents } from './base-variable';\nimport { isEqual, assignIn } from 'lodash';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { deepCopy } from '@wavemaker/app-rn-runtime/core/utils';\nimport { ServiceVariable as _ServiceVariable } from '@wavemaker/variables/src/model/variable/service-variable';\nimport httpService from '@wavemaker/app-rn-runtime/variables/http.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\nexport interface ServiceVariableConfig extends VariableConfig {\n baseUrl: string;\n maxResults: number;\n _context: any;\n serviceType: string;\n onCanUpdate: any;\n onBeforeUpdate: any;\n onResult: any;\n onBeforeDatasetReady: any;\n inFlightBehavior: string;\n getServiceInfo: Function;\n}\n\nenum _ServiceVariableEvents {\n BEFORE_INVOKE = 'beforeInvoke'\n}\nexport type ServiceVariableEvents = _ServiceVariableEvents | VariableEvents;\n\nexport class ServiceVariable extends _ServiceVariable {\n private cancelTokenSource: any;\n params: any = {};\n public appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n constructor(public config: ServiceVariableConfig) {\n const variableConfig = {\n name: config.name,\n dataSet: config.paramProvider(),\n dataBinding: {},\n isList: config.isList,\n service: config.service,\n serviceType: config.serviceType,\n maxResults: config.maxResults,\n _context: config._context,\n operation: config.operation,\n operationId: config.operationId,\n serviceInfo: config.getServiceInfo(),\n httpClientService: httpService,\n onSuccess: (context: any, args: any) => {\n this.notify(VariableEvents.AFTER_INVOKE, [args.variable, args.data, args.options]);\n this.notify(VariableEvents.SUCCESS, [args.variable, args.data, args.options]);\n return config.onSuccess && config.onSuccess(args.variable, args.data, args.options);\n },\n onError: (context: any, args: any) => {\n this.notify(VariableEvents.AFTER_INVOKE, [args.variable, args.data, args.options]);\n this.notify(VariableEvents.ERROR, [args.variable, args.data, args.options]);\n return config.onError && config.onError(args.variable, args.data, args.options);\n },\n onCanUpdate: (context: any, args: any) => {\n return config.onCanUpdate && config.onCanUpdate(args.variable, args.data, args.options);\n },\n onBeforeUpdate: (context: any, args: any) => {\n this.notify(VariableEvents.BEFORE_INVOKE, [args.variable, args.inputData, args.options]);\n return config.onBeforeUpdate && config.onBeforeUpdate(args.variable, args.inputData, args.options);\n },\n onResult: (context: any, args: any) => {\n return config.onResult && config.onResult(args.variable, args.data, args.options);\n },\n onBeforeDatasetReady: (context: any, args: any) => {\n return config.onBeforeDatasetReady && config.onBeforeDatasetReady(args.variable, args.data, args.options);\n }\n }\n super(variableConfig);\n this.subscribe(VariableEvents.AFTER_INVOKE, () => {\n this.dataBinding = {};\n });\n }\n\n invokeOnParamChange() {\n const last = this.params;\n const latest = this.config.paramProvider();\n if (!isEqual(last, latest)) {\n this.invoke(latest);\n }\n return Promise.resolve(this);\n }\n\n public doNext(currentPage: number) {\n // this.invoke({\n // page: currentPage\n // });\n return Promise.reject(this);\n }\n\n onDataUpdated() {\n this.appConfig.refresh(false);\n }\n\n invoke(options? : any, onSuccess?: Function, onError?: Function) {\n this.params = this.config.paramProvider();\n this.params = deepCopy({} as any, this.params, this.dataBinding);\n if (options) {\n this.params = deepCopy({} as any, this.params, options.inputFields ? options.inputFields : options);\n }\n options = options || {};\n options.inputFields = this.params;\n // service definitions data depends on whether user logged in or not\n // Try to get the latest definition\n this.serviceInfo = this.config.getServiceInfo();\n if (!this.serviceInfo) {\n console.error(`Service Info is missing for (${this.name}) variable.`)\n }\n return super.invoke(options, onSuccess, onError);\n }\n\n // cancel($file?: any) {\n // // CHecks if there is any pending requests in the queue\n // if ($queue.requestsQueue.has(this)) {\n // // If the request is a File upload request then modify the elements associated with file upload\n // // else unsubscribe from the observable on the variable.\n // if (false) {\n // // $file._uploadProgress.unsubscribe();\n // // $file.status = 'abort';\n // // this.totalFilesCount--;\n // // initiateCallback(VARIABLE_CONSTANTS.EVENT.ABORT, variable, $file);\n // // if (!this.isFileUploadInProgress(variable.dataBinding) && this.totalFilesCount === 0) {\n // // $queue.process(variable);\n // // // notify inflight variable\n // // this.notifyInflight(variable, false);\n // // }\n // } else {\n // if (true) {\n // this.cancelTokenSource.cancel();\n // $queue.process(this);\n // // notify inflight variable\n // //this.notifyInflight(variable, false);\n // }\n // }\n // }\n // }\n\n // setInput(key: any, val?: any, options?: any) {\n // this.params = merge({}, this.config.paramProvider(), _setInput(this.params, key, val, options));\n // return this.params;\n // }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["VariableEvents","isEqual","deepCopy","ServiceVariable","_ServiceVariable","httpService","injector","_ServiceVariableEvents","constructor","config","variableConfig","name","dataSet","paramProvider","dataBinding","isList","service","serviceType","maxResults","_context","operation","operationId","serviceInfo","getServiceInfo","httpClientService","onSuccess","context","args","notify","AFTER_INVOKE","variable","data","options","SUCCESS","onError","ERROR","onCanUpdate","onBeforeUpdate","BEFORE_INVOKE","inputData","onResult","onBeforeDatasetReady","_defineProperty","get","subscribe","invokeOnParamChange","last","params","latest","invoke","Promise","resolve","doNext","currentPage","reject","onDataUpdated","appConfig","refresh","inputFields","console","error"],"sources":["service-variable.ts"],"sourcesContent":["import { VariableConfig, VariableEvents } from './base-variable';\nimport { isEqual, assignIn } from 'lodash';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { deepCopy } from '@wavemaker/app-rn-runtime/core/utils';\nimport { ServiceVariable as _ServiceVariable } from '@wavemaker/variables/src/model/variable/service-variable';\nimport httpService from '@wavemaker/app-rn-runtime/variables/http.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\nexport interface ServiceVariableConfig extends VariableConfig {\n baseUrl: string;\n maxResults: number;\n _context: any;\n serviceType: string;\n onCanUpdate: any;\n onBeforeUpdate: any;\n onResult: any;\n onBeforeDatasetReady: any;\n inFlightBehavior: string;\n getServiceInfo: Function;\n}\n\nenum _ServiceVariableEvents {\n BEFORE_INVOKE = 'beforeInvoke'\n}\nexport type ServiceVariableEvents = _ServiceVariableEvents | VariableEvents;\n\nexport class ServiceVariable extends _ServiceVariable {\n private cancelTokenSource: any;\n params: any = {};\n public appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n constructor(public config: ServiceVariableConfig) {\n let variableConfig: any = {\n name: config.name,\n dataSet: config.paramProvider(),\n dataBinding: {},\n isList: config.isList,\n service: config.service,\n serviceType: config.serviceType,\n maxResults: config.maxResults,\n _context: config._context,\n operation: config.operation,\n operationId: config.operationId,\n serviceInfo: config.getServiceInfo(),\n httpClientService: httpService,\n onSuccess: (context: any, args: any) => {\n this.notify(VariableEvents.AFTER_INVOKE, [args.variable, args.data, args.options]);\n this.notify(VariableEvents.SUCCESS, [args.variable, args.data, args.options]);\n return config.onSuccess && config.onSuccess(args.variable, args.data, args.options);\n },\n onError: (context: any, args: any) => {\n this.notify(VariableEvents.AFTER_INVOKE, [args.variable, args.data, args.options]);\n this.notify(VariableEvents.ERROR, [args.variable, args.data, args.options]);\n return config.onError && config.onError(args.variable, args.data, args.options);\n },\n onCanUpdate: (context: any, args: any) => {\n return config.onCanUpdate && config.onCanUpdate(args.variable, args.data, args.options);\n },\n onBeforeUpdate: (context: any, args: any) => {\n this.notify(VariableEvents.BEFORE_INVOKE, [args.variable, args.inputData, args.options]);\n return config.onBeforeUpdate && config.onBeforeUpdate(args.variable, args.inputData, args.options);\n },\n onResult: (context: any, args: any) => {\n return config.onResult && config.onResult(args.variable, args.data, args.options);\n },\n onBeforeDatasetReady: (context: any, args: any) => {\n return config.onBeforeDatasetReady && config.onBeforeDatasetReady(args.variable, args.data, args.options);\n }\n }\n if (config.onError) {\n variableConfig.onError = (context: any, args: any) => {\n return config.onError && config.onError(args.variable, args.data, args.options);\n };\n }\n super(variableConfig);\n this.subscribe(VariableEvents.AFTER_INVOKE, () => {\n this.dataBinding = {};\n });\n }\n\n invokeOnParamChange() {\n const last = this.params;\n const latest = this.config.paramProvider();\n if (!isEqual(last, latest)) {\n this.invoke(latest);\n }\n return Promise.resolve(this);\n }\n\n public doNext(currentPage: number) {\n // this.invoke({\n // page: currentPage\n // });\n return Promise.reject(this);\n }\n\n onDataUpdated() {\n this.appConfig.refresh(false);\n }\n\n invoke(options? : any, onSuccess?: Function, onError?: Function) {\n this.params = this.config.paramProvider();\n this.params = deepCopy({} as any, this.params, this.dataBinding);\n if (options) {\n this.params = deepCopy({} as any, this.params, options.inputFields ? options.inputFields : options);\n }\n options = options || {};\n options.inputFields = this.params;\n // service definitions data depends on whether user logged in or not\n // Try to get the latest definition\n this.serviceInfo = this.config.getServiceInfo();\n if (!this.serviceInfo) {\n console.error(`Service Info is missing for (${this.name}) variable.`)\n }\n return super.invoke(options, onSuccess, onError);\n }\n\n // cancel($file?: any) {\n // // CHecks if there is any pending requests in the queue\n // if ($queue.requestsQueue.has(this)) {\n // // If the request is a File upload request then modify the elements associated with file upload\n // // else unsubscribe from the observable on the variable.\n // if (false) {\n // // $file._uploadProgress.unsubscribe();\n // // $file.status = 'abort';\n // // this.totalFilesCount--;\n // // initiateCallback(VARIABLE_CONSTANTS.EVENT.ABORT, variable, $file);\n // // if (!this.isFileUploadInProgress(variable.dataBinding) && this.totalFilesCount === 0) {\n // // $queue.process(variable);\n // // // notify inflight variable\n // // this.notifyInflight(variable, false);\n // // }\n // } else {\n // if (true) {\n // this.cancelTokenSource.cancel();\n // $queue.process(this);\n // // notify inflight variable\n // //this.notifyInflight(variable, false);\n // }\n // }\n // }\n // }\n\n // setInput(key: any, val?: any, options?: any) {\n // this.params = merge({}, this.config.paramProvider(), _setInput(this.params, key, val, options));\n // return this.params;\n // }\n}\n"],"mappings":"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"}