@sankhyalabs/sankhyablocks 1.0.7 → 1.0.10

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.
package/dist/index.js CHANGED
@@ -6405,6 +6405,7 @@ __webpack_require__.d(__webpack_exports__, {
6405
6405
  "ApplicationConfigFetcher": () => (/* reexport */ ApplicationConfigFetcher),
6406
6406
  "AuthorizedServiceCaller": () => (/* reexport */ AuthorizedServiceCaller),
6407
6407
  "Change": () => (/* reexport */ Change),
6408
+ "ChangeOperation": () => (/* reexport */ ChangeOperation),
6408
6409
  "DataType": () => (/* reexport */ DataType),
6409
6410
  "DataUnit": () => (/* reexport */ DataUnit),
6410
6411
  "DataUnitAction": () => (/* reexport */ DataUnitAction),
@@ -7459,6 +7460,7 @@ var Action;
7459
7460
  Action["DATA_SAVED"] = "dataSaved";
7460
7461
  Action["RECORDS_REMOVED"] = "recordsRemoved";
7461
7462
  Action["RECORDS_ADDED"] = "recordsAdded";
7463
+ Action["RECORDS_COPIED"] = "recordsCopied";
7462
7464
  Action["DATA_CHANGED"] = "dataChanged";
7463
7465
  Action["EDITION_CANCELED"] = "editionCanceled";
7464
7466
  Action["CHANGE_UNDONE"] = "changeUndone";
@@ -7498,7 +7500,6 @@ class StateManager {
7498
7500
  }
7499
7501
  process(action) {
7500
7502
  const oldPresent = this._present;
7501
- let hasChange = false;
7502
7503
  let hasHistChange = false;
7503
7504
  this._histClean = false;
7504
7505
  this._reducers.forEach(reducer => {
@@ -7508,7 +7509,6 @@ class StateManager {
7508
7509
  const newSlice = reducer.reduce(this, oldSlice, action);
7509
7510
  if (newSlice !== oldSlice) {
7510
7511
  this.updateSlice(sliceName, newSlice, isHistoric);
7511
- hasChange = true;
7512
7512
  hasHistChange || (hasHistChange = isHistoric);
7513
7513
  }
7514
7514
  });
@@ -7517,16 +7517,6 @@ class StateManager {
7517
7517
  this._future = [];
7518
7518
  document.dispatchEvent(new CustomEvent("undoableAction", { detail: this }));
7519
7519
  }
7520
- if (hasChange) {
7521
- console.log(JSON.stringify(this, (_key, value) => {
7522
- if (value instanceof Map) {
7523
- return { dataType: "Map", value: Array.from(value.entries()) };
7524
- }
7525
- else {
7526
- return value;
7527
- }
7528
- }, 3));
7529
- }
7530
7520
  }
7531
7521
  select(sliceName, selector) {
7532
7522
  const isHistoric = this.isHistoric(sliceName);
@@ -7700,11 +7690,8 @@ class AddedRecordsReducerImpl {
7700
7690
  reduce(_stateManager, currentState, action) {
7701
7691
  switch (action.type) {
7702
7692
  case Action.RECORDS_ADDED:
7703
- const newState = currentState ? currentState.slice() : [];
7704
- action.payload.forEach((r) => {
7705
- newState.push(Object.assign({ __record__id__: "NEW_" + (newState.length + 1) }, r));
7706
- });
7707
- return newState;
7693
+ case Action.RECORDS_COPIED:
7694
+ return (currentState || []).concat(action.payload);
7708
7695
  case Action.DATA_SAVED:
7709
7696
  case Action.EDITION_CANCELED:
7710
7697
  return undefined;
@@ -7716,6 +7703,10 @@ const AddedRecordsReducer = new AddedRecordsReducerImpl();
7716
7703
  const getAddedRecords = (stateManager) => {
7717
7704
  return stateManager.select(AddedRecordsReducer.sliceName, (state) => state);
7718
7705
  };
7706
+ const prepareAddedRecordId = (stateManager, source) => {
7707
+ let index = (getAddedRecords(stateManager) || []).length;
7708
+ return source.map(item => { return Object.assign(Object.assign({}, item), { __record__id__: "NEW_" + (index++) }); });
7709
+ };
7719
7710
  //# sourceMappingURL=AddedRecordsSlice.js.map
7720
7711
  ;// CONCATENATED MODULE: ./node_modules/@sankhyalabs/core/dist/dataunit/state/slice/ChangesSlice.js
7721
7712
 
@@ -7735,7 +7726,9 @@ class ChangesReducerImpl {
7735
7726
  if (selection) {
7736
7727
  const newState = new Map(currentState);
7737
7728
  selection.forEach(recordId => {
7738
- newState.set(recordId, Object.assign(Object.assign({}, newState.get(recordId)), action.payload));
7729
+ const newChanges = Object.assign(Object.assign({}, newState.get(recordId)), action.payload);
7730
+ delete newChanges.records;
7731
+ newState.set(recordId, newChanges);
7739
7732
  });
7740
7733
  return newState;
7741
7734
  }
@@ -7764,16 +7757,14 @@ const getChangesToSave = (dataUnit, stateManager) => {
7764
7757
  const result = [];
7765
7758
  const changes = getChanges(stateManager);
7766
7759
  const records = getRecords(stateManager);
7767
- if (records) {
7768
- records.forEach(r => {
7769
- if (changes) {
7770
- const c = changes.get(r.__record__id__);
7771
- if (c) {
7772
- result.push(new Change(dataUnit, r, c, ChangeOperation.UPDATE));
7773
- }
7760
+ records === null || records === void 0 ? void 0 : records.forEach(r => {
7761
+ if (changes) {
7762
+ const c = changes.get(r.__record__id__);
7763
+ if (c) {
7764
+ result.push(new Change(dataUnit, r, c, ChangeOperation.UPDATE));
7774
7765
  }
7775
- });
7776
- }
7766
+ }
7767
+ });
7777
7768
  const addedRecords = getAddedRecords(stateManager);
7778
7769
  if (addedRecords) {
7779
7770
  addedRecords.forEach(r => {
@@ -7782,7 +7773,7 @@ const getChangesToSave = (dataUnit, stateManager) => {
7782
7773
  }
7783
7774
  const removedRecords = getRemovedRecords(stateManager);
7784
7775
  const recordsById = {};
7785
- records.forEach(r => recordsById[r.__record__id__] = r);
7776
+ records === null || records === void 0 ? void 0 : records.forEach(r => recordsById[r.__record__id__] = r);
7786
7777
  if (removedRecords) {
7787
7778
  removedRecords.forEach(id => {
7788
7779
  result.push(new Change(dataUnit, recordsById[id], undefined, ChangeOperation.DELETE));
@@ -7847,6 +7838,9 @@ class SelectionReducerImpl {
7847
7838
  }
7848
7839
  reduce(stateManager, currentState, action) {
7849
7840
  switch (action.type) {
7841
+ case Action.RECORDS_ADDED:
7842
+ case Action.RECORDS_COPIED:
7843
+ return action.payload.map((r) => r.__record__id__);
7850
7844
  case Action.DATA_SAVED:
7851
7845
  return updateSavedIds(stateManager, action.payload.records);
7852
7846
  case Action.RECORDS_REMOVED:
@@ -7949,6 +7943,15 @@ function updateSavedIds(stateManager, savedRecords) {
7949
7943
  }
7950
7944
  //# sourceMappingURL=SelectionSlice.js.map
7951
7945
  ;// CONCATENATED MODULE: ./node_modules/@sankhyalabs/core/dist/dataunit/DataUnit.js
7946
+ var DataUnit_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
7947
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7948
+ return new (P || (P = Promise))(function (resolve, reject) {
7949
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7950
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7951
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7952
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
7953
+ });
7954
+ };
7952
7955
 
7953
7956
 
7954
7957
 
@@ -7976,6 +7979,7 @@ class DataUnit {
7976
7979
  this._observers = [];
7977
7980
  this._filterProviders = [];
7978
7981
  this._sortingProvider = undefined;
7982
+ this._interceptors = [];
7979
7983
  }
7980
7984
  get name() {
7981
7985
  return this._name;
@@ -8001,34 +8005,51 @@ class DataUnit {
8001
8005
  }
8002
8006
  // Loaders
8003
8007
  loadMetadata() {
8004
- this.dispatchAction(Action.LOADING_METADATA);
8005
- if (this.metadataLoader) {
8006
- this.metadataLoader(this._name).then(metadata => this.metadata = metadata);
8007
- }
8008
+ return DataUnit_awaiter(this, void 0, void 0, function* () {
8009
+ this.dispatchAction(Action.LOADING_METADATA);
8010
+ return new Promise((resolve, fail) => {
8011
+ if (this.metadataLoader) {
8012
+ this.metadataLoader(this._name).then(metadata => {
8013
+ this.metadata = metadata;
8014
+ resolve(this.metadata);
8015
+ }).catch(error => fail(error));
8016
+ }
8017
+ });
8018
+ });
8008
8019
  }
8009
8020
  loadData() {
8010
- this.dispatchAction(Action.LOADING_DATA);
8011
- return new Promise((resolve, fail) => {
8012
- if (this.dataLoader) {
8013
- const sort = this.getSort();
8014
- const filters = this.getFilters();
8015
- this.dataLoader(this._name, sort, filters).then(records => {
8016
- this.records = records;
8017
- resolve(this.records);
8018
- }).catch(() => fail());
8019
- }
8021
+ return DataUnit_awaiter(this, void 0, void 0, function* () {
8022
+ this.dispatchAction(Action.LOADING_DATA);
8023
+ return new Promise((resolve, fail) => {
8024
+ if (this.dataLoader) {
8025
+ const sort = this.getSort();
8026
+ const filters = this.getFilters();
8027
+ this.dataLoader(this._name, sort, filters).then(records => {
8028
+ this.records = records;
8029
+ resolve(this.records);
8030
+ }).catch(error => fail(error));
8031
+ }
8032
+ });
8020
8033
  });
8021
8034
  }
8022
8035
  saveData() {
8023
- const changes = getChangesToSave(this._name, this._stateManager);
8024
- if (changes.length > 0) {
8025
- this.dispatchAction(Action.SAVING_DATA);
8026
- if (this.saveLoader) {
8027
- this.saveLoader(this._name, changes).then(records => this.dispatchAction(Action.DATA_SAVED, { changes, records }));
8036
+ return DataUnit_awaiter(this, void 0, void 0, function* () {
8037
+ const changes = getChangesToSave(this._name, this._stateManager);
8038
+ if (changes.length > 0) {
8039
+ this.dispatchAction(Action.SAVING_DATA);
8040
+ return new Promise((resolve, fail) => {
8041
+ if (this.saveLoader) {
8042
+ this.saveLoader(this._name, changes).then(records => this.dispatchAction(Action.DATA_SAVED, { changes, records })).catch(error => fail(error));
8043
+ }
8044
+ });
8028
8045
  }
8029
- }
8046
+ return Promise.resolve();
8047
+ });
8030
8048
  }
8031
8049
  // API
8050
+ addInterceptor(interceptor) {
8051
+ this._interceptors.push(interceptor);
8052
+ }
8032
8053
  addFilterProvider(provider) {
8033
8054
  this._filterProviders.push(provider);
8034
8055
  }
@@ -8052,7 +8073,13 @@ class DataUnit {
8052
8073
  return getField(this._stateManager, fieldName);
8053
8074
  }
8054
8075
  addRecord() {
8055
- this.dispatchAction(Action.RECORDS_ADDED, [{}]);
8076
+ this.dispatchAction(Action.RECORDS_ADDED, prepareAddedRecordId(this._stateManager, [{}]));
8077
+ }
8078
+ copySelected() {
8079
+ const selectedRecords = this.getSelectedRecords();
8080
+ if (selectedRecords) {
8081
+ this.dispatchAction(Action.RECORDS_COPIED, prepareAddedRecordId(this._stateManager, selectedRecords));
8082
+ }
8056
8083
  }
8057
8084
  removeSelectedRecords() {
8058
8085
  const selection = getSelection(this._stateManager);
@@ -8079,6 +8106,13 @@ class DataUnit {
8079
8106
  setSelectionByIndex(selection) {
8080
8107
  this.dispatchAction(Action.SELECTION_CHANGED, { type: "index", selection });
8081
8108
  }
8109
+ getSelectedRecords() {
8110
+ const selection = this.getSelection();
8111
+ if (selection) {
8112
+ const currentRecords = this.records;
8113
+ return currentRecords === null || currentRecords === void 0 ? void 0 : currentRecords.filter(r => selection.includes(r.__record__id__));
8114
+ }
8115
+ }
8082
8116
  nextRecord() {
8083
8117
  this.dispatchAction(Action.NEXT_SELECTED);
8084
8118
  }
@@ -8111,10 +8145,17 @@ class DataUnit {
8111
8145
  }
8112
8146
  // Actions / State manager
8113
8147
  dispatchAction(actionType, payload) {
8114
- const action = new DataUnitAction(actionType, payload);
8115
- //interceptor
8116
- this._stateManager.process(action);
8117
- this._observers.forEach(f => f(action));
8148
+ var _a;
8149
+ let action = new DataUnitAction(actionType, payload);
8150
+ (_a = this._interceptors) === null || _a === void 0 ? void 0 : _a.forEach(interceptor => {
8151
+ if (action) {
8152
+ action = interceptor.interceptAction(action);
8153
+ }
8154
+ });
8155
+ if (action) {
8156
+ this._stateManager.process(action);
8157
+ this._observers.forEach(f => f(action));
8158
+ }
8118
8159
  }
8119
8160
  subscribe(observer) {
8120
8161
  this._observers.push(observer);
@@ -8125,9 +8166,9 @@ class DataUnit {
8125
8166
  }
8126
8167
  var ChangeOperation;
8127
8168
  (function (ChangeOperation) {
8128
- ChangeOperation[ChangeOperation["INSERT"] = 0] = "INSERT";
8129
- ChangeOperation[ChangeOperation["UPDATE"] = 1] = "UPDATE";
8130
- ChangeOperation[ChangeOperation["DELETE"] = 2] = "DELETE";
8169
+ ChangeOperation["INSERT"] = "INSERT";
8170
+ ChangeOperation["UPDATE"] = "UPDATE";
8171
+ ChangeOperation["DELETE"] = "DELETE";
8131
8172
  })(ChangeOperation || (ChangeOperation = {}));
8132
8173
  class Change {
8133
8174
  constructor(dataUnit, record, updates, operation) {
@@ -8136,6 +8177,9 @@ class Change {
8136
8177
  this.updatingFields = updates;
8137
8178
  this._operation = operation;
8138
8179
  }
8180
+ get operation() {
8181
+ return this._operation.toString();
8182
+ }
8139
8183
  isInsert() {
8140
8184
  return this._operation === ChangeOperation.INSERT;
8141
8185
  }
@@ -8303,7 +8347,11 @@ class HttpFetcher {
8303
8347
  reject(res);
8304
8348
  }
8305
8349
  else {
8306
- resolve(res.data);
8350
+ //resolve(res);
8351
+ //FIXME: Precisamos trabalhar melhor a resposta, quem chamou
8352
+ //a API não pode ficar responsavel por desempacotar... fiz uma
8353
+ //gambiarra aqui...
8354
+ resolve(res.data[0][reqKey]);
8307
8355
  }
8308
8356
  }));
8309
8357
  }
@@ -8362,6 +8410,7 @@ class HttpFetcher {
8362
8410
  });
8363
8411
  }
8364
8412
  catch (err) {
8413
+ //TODO: Tratar erro quando não existir err.response
8365
8414
  res = err.response;
8366
8415
  const req = err.request;
8367
8416
  Object.entries(res).forEach(([key, val]) => {
@@ -8474,11 +8523,7 @@ class ApplicationUtils {
8474
8523
  }
8475
8524
 
8476
8525
  ;// CONCATENATED MODULE: ./src/lib/http/fetchers/dataunit-fetcher.ts
8477
- var _templateObject;
8478
-
8479
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8480
-
8481
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8526
+ var _templateObject, _templateObject2, _templateObject3;
8482
8527
 
8483
8528
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8484
8529
 
@@ -8492,9 +8537,9 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
8492
8537
 
8493
8538
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8494
8539
 
8495
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
8540
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8496
8541
 
8497
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8542
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8498
8543
 
8499
8544
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
8500
8545
 
@@ -8521,115 +8566,171 @@ var DataUnitFetcher = /*#__PURE__*/function () {
8521
8566
  _createClass(DataUnitFetcher, [{
8522
8567
  key: "buldTemplates",
8523
8568
  value: function buldTemplates() {
8524
- this.templateByQuery.set("fetchDataUnit", (0,dist.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["query($name: String!) {\n $queryAlias$: fetchDataUnit(name: $name){\n name,\n fields{\n name,\n defaultValue,\n label,\n readOnly,\n required,\n dataType,\n userInterface,\n properties{\n name,\n value\n },\n dependencies{\n masterFields,\n type,\n expression\n }\n }\n }\n }"]))));
8569
+ this.templateByQuery.set("fetchDataUnit", (0,dist.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["query($name: String!) {\n $queryAlias$: fetchDataUnit(name: $name){\n name\n fields{\n name\n defaultValue\n label\n readOnly\n required\n dataType\n userInterface\n properties{\n name\n value\n }\n dependencies{\n masterFields\n type\n expression\n }\n }\n }\n }"]))));
8570
+ this.templateByQuery.set("fetchData", (0,dist.gql)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["query($dataunit: String! $first: Int $offset:Int $filter: [Filter!] $sort: [Sort!]) {\n $queryAlias$: fetchDataUnit(name: $dataunit){\n data(first: $first offset: $offset filters: $filter sort: $sort){\n first\n offset\n total\n hasMore\n records{\n id\n fields {\n name\n value\n description\n }\n }\n }\n }\n }"]))));
8571
+ this.templateByQuery.set("saveData", (0,dist.gql)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["mutation($changes: [Change!]!) {\n $queryAlias$: saveDataUnitChanges(changes: $changes){\n oldId\n id\n fields {\n name\n value\n description\n }\n }\n }"]))));
8525
8572
  }
8526
8573
  }, {
8527
8574
  key: "getDataUnit",
8528
- value: function () {
8529
- var _getDataUnit = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(name, resourceID) {
8530
- var _this = this;
8575
+ value: function getDataUnit(entityName, resourceID) {
8576
+ var _this = this;
8531
8577
 
8532
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
8533
- while (1) {
8534
- switch (_context2.prev = _context2.next) {
8535
- case 0:
8536
- return _context2.abrupt("return", new Promise( /*#__PURE__*/function () {
8537
- var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(resolve, reject) {
8538
- var completPath, res;
8539
- return regeneratorRuntime.wrap(function _callee$(_context) {
8540
- while (1) {
8541
- switch (_context.prev = _context.next) {
8542
- case 0:
8543
- completPath = "dd://".concat(name, "/").concat(resourceID);
8544
- _context.next = 3;
8545
- return HttpFetcher.get().callGraphQL({
8546
- values: {
8547
- name: completPath
8548
- },
8549
- query: _this.templateByQuery.get("fetchDataUnit")
8550
- });
8551
-
8552
- case 3:
8553
- res = _context.sent;
8554
-
8555
- if (Array.isArray(res)) {
8556
- Object.entries(res[0]).forEach(function (_ref2) {
8557
- var _ref3 = _slicedToArray(_ref2, 2),
8558
- key = _ref3[0],
8559
- val = _ref3[1];
8560
-
8561
- resolve(_this.normalizeMetadata(val));
8562
- });
8563
- } else {
8564
- resolve(_this.normalizeMetadata(res));
8565
- }
8578
+ var dataUnit = new DataUnit("dd://".concat(entityName, "/").concat(resourceID));
8566
8579
 
8567
- case 5:
8568
- case "end":
8569
- return _context.stop();
8570
- }
8571
- }
8572
- }, _callee);
8573
- }));
8574
-
8575
- return function (_x3, _x4) {
8576
- return _ref.apply(this, arguments);
8577
- };
8578
- }()));
8580
+ dataUnit.metadataLoader = function (dataUnitName) {
8581
+ return _this.loadMetadata(dataUnitName);
8582
+ };
8579
8583
 
8580
- case 1:
8581
- case "end":
8582
- return _context2.stop();
8583
- }
8584
- }
8585
- }, _callee2);
8586
- }));
8584
+ dataUnit.dataLoader = function (dataUnit, sort, filters) {
8585
+ return _this.loadData(dataUnit, sort, filters);
8586
+ };
8587
8587
 
8588
- function getDataUnit(_x, _x2) {
8589
- return _getDataUnit.apply(this, arguments);
8590
- }
8588
+ dataUnit.saveLoader = function (dataUnit, changes) {
8589
+ return _this.saveData(dataUnit, changes);
8590
+ };
8591
8591
 
8592
- return getDataUnit;
8593
- }()
8592
+ return dataUnit;
8593
+ }
8594
8594
  }, {
8595
- key: "normalizeMetadata",
8596
- value: function normalizeMetadata(md) {
8595
+ key: "loadMetadata",
8596
+ value: function loadMetadata(dataUnit) {
8597
8597
  var _this2 = this;
8598
8598
 
8599
- var newProps = {};
8600
-
8601
- var newMetadata = _objectSpread({}, md);
8602
-
8603
- newMetadata.fields.forEach(function (field) {
8604
- var _field$properties;
8599
+ return new Promise(function (resolve, reject) {
8600
+ HttpFetcher.get().callGraphQL({
8601
+ values: {
8602
+ name: dataUnit
8603
+ },
8604
+ query: _this2.templateByQuery.get("fetchDataUnit")
8605
+ }).then(function (resp) {
8606
+ var _resp$fields;
8607
+
8608
+ var metadata = {
8609
+ name: resp.name,
8610
+ label: resp.name,
8611
+ fields: []
8612
+ };
8613
+ (_resp$fields = resp.fields) === null || _resp$fields === void 0 ? void 0 : _resp$fields.forEach(function (source) {
8614
+ var properties = undefined;
8615
+
8616
+ if (Array.isArray(source.properties)) {
8617
+ properties = {};
8618
+ source.properties.forEach(function (prop) {
8619
+ return properties[prop.name] = prop.value;
8620
+ });
8621
+ }
8605
8622
 
8606
- (_field$properties = field.properties) === null || _field$properties === void 0 ? void 0 : _field$properties.forEach(function (prop) {
8607
- newProps[prop.name] = _this2.tryParseJson(prop.value);
8623
+ metadata.fields.push(_objectSpread(_objectSpread({}, source), {}, {
8624
+ properties: properties
8625
+ }));
8626
+ });
8627
+ resolve(metadata);
8628
+ })["catch"](function (error) {
8629
+ reject(error);
8608
8630
  });
8609
- field.properties = newProps;
8610
8631
  });
8611
- return newMetadata;
8612
8632
  }
8613
8633
  }, {
8614
- key: "tryParseJson",
8615
- value: function tryParseJson(value) {
8616
- try {
8617
- return JSON.parse(value);
8618
- } catch (_unused) {
8619
- return value;
8620
- }
8634
+ key: "loadData",
8635
+ value: function loadData(dataUnit, sort, filters) {
8636
+ var _this3 = this;
8637
+
8638
+ return new Promise(function (resolve, reject) {
8639
+ HttpFetcher.get().callGraphQL({
8640
+ values: {
8641
+ dataunit: dataUnit,
8642
+ sort: sort,
8643
+ filters: filters
8644
+ },
8645
+ query: _this3.templateByQuery.get("fetchData")
8646
+ }).then(function (resp) {
8647
+ var result = resp.data;
8648
+ var dataUnitRecords = [];
8649
+ result.records.forEach(function (responseRecord) {
8650
+ var duRecord = {
8651
+ __record__id__: responseRecord.id
8652
+ };
8653
+ responseRecord.fields.forEach(function (_ref) {
8654
+ var name = _ref.name,
8655
+ value = _ref.value,
8656
+ description = _ref.description;
8657
+ duRecord[name] = description ? {
8658
+ value: value,
8659
+ label: description
8660
+ } : value;
8661
+ });
8662
+ dataUnitRecords.push(duRecord);
8663
+ });
8664
+ resolve(dataUnitRecords);
8665
+ })["catch"](function (error) {
8666
+ reject(error);
8667
+ });
8668
+ });
8621
8669
  }
8622
- }], [{
8623
- key: "bindTo",
8624
- value: function bindTo(dataUnit, resourceID) {
8625
- var du = new DataUnitFetcher();
8670
+ }, {
8671
+ key: "saveData",
8672
+ value: function saveData(_dataUnit, duChanges) {
8673
+ var _this4 = this;
8674
+
8675
+ var changes = duChanges.map(function (change) {
8676
+ var dataUnit = change.dataUnit,
8677
+ record = change.record,
8678
+ updatingFields = change.updatingFields,
8679
+ operation = change.operation;
8680
+ var parsedUpdatingFields = Object.entries(updatingFields).map(function (_ref2) {
8681
+ var _ref3 = _slicedToArray(_ref2, 2),
8682
+ fieldName = _ref3[0],
8683
+ value = _ref3[1];
8684
+
8685
+ if (value) {
8686
+ value = value.toString();
8687
+ }
8626
8688
 
8627
- dataUnit.metadataLoader = function (name) {
8628
- return du.getDataUnit(name, resourceID);
8629
- }; //TODO: Implementar bind dos demais métodos.
8689
+ return {
8690
+ fieldName: fieldName,
8691
+ value: value
8692
+ };
8693
+ });
8694
+ return {
8695
+ dataUnit: dataUnit,
8696
+ updatingFields: parsedUpdatingFields,
8697
+ operation: operation,
8698
+ recordId: record.__record__id__
8699
+ };
8700
+ });
8701
+ return new Promise(function (resolve, reject) {
8702
+ HttpFetcher.get().callGraphQL({
8703
+ values: {
8704
+ changes: changes
8705
+ },
8706
+ query: _this4.templateByQuery.get("saveData")
8707
+ }).then(function (resp) {
8708
+ var dataUnitRecords = [];
8709
+ resp === null || resp === void 0 ? void 0 : resp.forEach(function (responseRecord) {
8710
+ var duRecord = {
8711
+ __record__id__: responseRecord.id
8712
+ };
8630
8713
 
8714
+ if (responseRecord.oldId) {
8715
+ duRecord.__old__id__ = responseRecord.oldId;
8716
+ }
8631
8717
 
8632
- return du;
8718
+ responseRecord.fields.forEach(function (_ref4) {
8719
+ var name = _ref4.name,
8720
+ value = _ref4.value,
8721
+ description = _ref4.description;
8722
+ duRecord[name] = description ? {
8723
+ value: value,
8724
+ label: description
8725
+ } : value;
8726
+ });
8727
+ dataUnitRecords.push(duRecord);
8728
+ });
8729
+ resolve(dataUnitRecords);
8730
+ })["catch"](function (error) {
8731
+ reject(error);
8732
+ });
8733
+ });
8633
8734
  }
8634
8735
  }]);
8635
8736
 
@@ -8716,9 +8817,9 @@ var UrlUtils = /*#__PURE__*/function () {
8716
8817
  ;// CONCATENATED MODULE: ./src/lib/http/fetchers/parameters-fecher.ts
8717
8818
  var parameters_fecher_templateObject;
8718
8819
 
8719
- function parameters_fecher_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
8820
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
8720
8821
 
8721
- function parameters_fecher_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { parameters_fecher_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { parameters_fecher_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8822
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8722
8823
 
8723
8824
  function parameters_fecher_taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
8724
8825
 
@@ -8745,12 +8846,12 @@ var ParametersFetcher = /*#__PURE__*/function () {
8745
8846
  parameters_fecher_createClass(ParametersFetcher, [{
8746
8847
  key: "buldTemplates",
8747
8848
  value: function buldTemplates() {
8748
- this.templateByQuery.set("fetchParam", (0,dist.gql)(parameters_fecher_templateObject || (parameters_fecher_templateObject = parameters_fecher_taggedTemplateLiteral(["query($name: String!) {\n $queryAlias$: fetchResource(name: $name){\n name\n value\n }\n }"]))));
8849
+ this.templateByQuery.set("fetchParam", (0,dist.gql)(parameters_fecher_templateObject || (parameters_fecher_templateObject = parameters_fecher_taggedTemplateLiteral(["query($name: String!) {\n $queryAlias$: fetchResource(name: $name){\n name\n resource\n }\n }"]))));
8749
8850
  }
8750
8851
  }, {
8751
8852
  key: "getParam",
8752
8853
  value: function () {
8753
- var _getParam = parameters_fecher_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(name, resourceID) {
8854
+ var _getParam = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(name, resourceID) {
8754
8855
  var completPath;
8755
8856
  return regeneratorRuntime.wrap(function _callee$(_context) {
8756
8857
  while (1) {
@@ -8781,7 +8882,7 @@ var ParametersFetcher = /*#__PURE__*/function () {
8781
8882
  }, {
8782
8883
  key: "asString",
8783
8884
  value: function () {
8784
- var _asString = parameters_fecher_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(name, resourceID) {
8885
+ var _asString = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(name, resourceID) {
8785
8886
  var paramArr;
8786
8887
  return regeneratorRuntime.wrap(function _callee2$(_context2) {
8787
8888
  while (1) {
@@ -8811,7 +8912,7 @@ var ParametersFetcher = /*#__PURE__*/function () {
8811
8912
  }, {
8812
8913
  key: "asInteger",
8813
8914
  value: function () {
8814
- var _asInteger = parameters_fecher_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(name, resourceID) {
8915
+ var _asInteger = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(name, resourceID) {
8815
8916
  var paramArr;
8816
8917
  return regeneratorRuntime.wrap(function _callee3$(_context3) {
8817
8918
  while (1) {
@@ -8841,7 +8942,7 @@ var ParametersFetcher = /*#__PURE__*/function () {
8841
8942
  }, {
8842
8943
  key: "asFloat",
8843
8944
  value: function () {
8844
- var _asFloat = parameters_fecher_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(name, resourceID) {
8945
+ var _asFloat = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(name, resourceID) {
8845
8946
  var paramArr;
8846
8947
  return regeneratorRuntime.wrap(function _callee4$(_context4) {
8847
8948
  while (1) {
@@ -8871,7 +8972,7 @@ var ParametersFetcher = /*#__PURE__*/function () {
8871
8972
  }, {
8872
8973
  key: "asBoolean",
8873
8974
  value: function () {
8874
- var _asBoolean = parameters_fecher_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(name, resourceID) {
8975
+ var _asBoolean = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(name, resourceID) {
8875
8976
  var paramArr;
8876
8977
  return regeneratorRuntime.wrap(function _callee5$(_context5) {
8877
8978
  while (1) {
@@ -8901,7 +9002,7 @@ var ParametersFetcher = /*#__PURE__*/function () {
8901
9002
  }, {
8902
9003
  key: "asDate",
8903
9004
  value: function () {
8904
- var _asDate = parameters_fecher_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(name, resourceID) {
9005
+ var _asDate = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(name, resourceID) {
8905
9006
  var paramArr;
8906
9007
  return regeneratorRuntime.wrap(function _callee6$(_context6) {
8907
9008
  while (1) {
@@ -8931,7 +9032,7 @@ var ParametersFetcher = /*#__PURE__*/function () {
8931
9032
  }, {
8932
9033
  key: "getBatchParams",
8933
9034
  value: function () {
8934
- var _getBatchParams = parameters_fecher_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(names, resourceID) {
9035
+ var _getBatchParams = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(names, resourceID) {
8935
9036
  var paramArr, response;
8936
9037
  return regeneratorRuntime.wrap(function _callee7$(_context7) {
8937
9038
  while (1) {
@@ -8945,7 +9046,7 @@ var ParametersFetcher = /*#__PURE__*/function () {
8945
9046
  //TODO: try to typed params val?
8946
9047
  response = {};
8947
9048
  paramArr.forEach(function (param) {
8948
- return response[param.name] = param.value;
9049
+ return response[param.name] = param.resource;
8949
9050
  });
8950
9051
  return _context7.abrupt("return", response);
8951
9052
 
@@ -8972,8 +9073,8 @@ var ParametersFetcher = /*#__PURE__*/function () {
8972
9073
  obj = obj[0];
8973
9074
  }
8974
9075
 
8975
- if (StringUtils.isEmpty(obj.value)) return "";
8976
- return obj.value;
9076
+ if (StringUtils.isEmpty(obj.resource)) return "";
9077
+ return obj.resource;
8977
9078
  }
8978
9079
  }]);
8979
9080
 
@@ -9174,7 +9275,9 @@ var SankhyaAppProvider = /*#__PURE__*/function (_ApplicationUtils) {
9174
9275
  function SankhyaAppProvider() {
9175
9276
  SankhyaAppProvider_classCallCheck(this, SankhyaAppProvider);
9176
9277
 
9177
- return _super.apply(this, arguments);
9278
+ console.log("_urlParams", SankhyaAppProvider._urlParams);
9279
+ console.log("location.search", location.search);
9280
+ return _super.call(this);
9178
9281
  }
9179
9282
 
9180
9283
  SankhyaAppProvider_createClass(SankhyaAppProvider, null, [{
@@ -9186,14 +9289,11 @@ var SankhyaAppProvider = /*#__PURE__*/function (_ApplicationUtils) {
9186
9289
  key: "getResourceID",
9187
9290
  value: function getResourceID() {
9188
9291
  var defaultValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
9189
- return SankhyaAppProvider.urlParams.get("workspaceResourceID") || SankhyaAppProvider.urlParams.get("resourceI") || defaultValue || Workspace.resourceID || "unknown.resource.id";
9292
+ return SankhyaAppProvider._urlParams.get("workspaceResourceID") || SankhyaAppProvider._urlParams.get("resourceI") || defaultValue || Workspace.resourceID || "unknown.resource.id";
9190
9293
  }
9191
9294
  }, {
9192
9295
  key: "temOpcional",
9193
9296
  value: function temOpcional(opcional) {
9194
- var abs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
9195
-
9196
- //window.alert("Teste");
9197
9297
  if (SankhyaAppProvider.getAttributeFromHTMLWrapper("opc0009") === "1") {
9198
9298
  return true;
9199
9299
  }
@@ -9219,15 +9319,14 @@ var SankhyaAppProvider = /*#__PURE__*/function (_ApplicationUtils) {
9219
9319
  value: function getDataunit(entityName) {
9220
9320
  var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
9221
9321
 
9222
- if (useCache === true && SankhyaAppProvider.dataUnitByEntity.has(entityName)) {
9223
- return SankhyaAppProvider.dataUnitByEntity.get(entityName);
9322
+ if (useCache === true && SankhyaAppProvider._dataUnitByEntity.has(entityName)) {
9323
+ return SankhyaAppProvider._dataUnitByEntity.get(entityName);
9224
9324
  }
9225
9325
 
9226
- var dataUnit = new DataUnit(entityName);
9227
- DataUnitFetcher.bindTo(dataUnit, SankhyaAppProvider.getResourceID());
9326
+ var dataUnit = SankhyaAppProvider._dataUnitFetcher.getDataUnit(entityName, SankhyaAppProvider.getResourceID());
9228
9327
 
9229
- if (!SankhyaAppProvider.dataUnitByEntity.has(entityName)) {
9230
- SankhyaAppProvider.dataUnitByEntity.set(entityName, dataUnit);
9328
+ if (!SankhyaAppProvider._dataUnitByEntity.has(entityName)) {
9329
+ SankhyaAppProvider._dataUnitByEntity.set(entityName, dataUnit);
9231
9330
  }
9232
9331
 
9233
9332
  dataUnit.loadMetadata();
@@ -9255,12 +9354,14 @@ var SankhyaAppProvider = /*#__PURE__*/function (_ApplicationUtils) {
9255
9354
  return SankhyaAppProvider;
9256
9355
  }(ApplicationUtils);
9257
9356
 
9258
- SankhyaAppProvider_defineProperty(SankhyaAppProvider, "urlParams", UrlUtils.getQueryParams(location.search));
9357
+ SankhyaAppProvider_defineProperty(SankhyaAppProvider, "_urlParams", UrlUtils.getQueryParams(location.search));
9259
9358
 
9260
- SankhyaAppProvider_defineProperty(SankhyaAppProvider, "dataUnitByEntity", new Map());
9359
+ SankhyaAppProvider_defineProperty(SankhyaAppProvider, "_dataUnitByEntity", new Map());
9261
9360
 
9262
9361
  SankhyaAppProvider_defineProperty(SankhyaAppProvider, "_parameters", new AppParameterProvider(SankhyaAppProvider.getResourceID()));
9263
9362
 
9363
+ SankhyaAppProvider_defineProperty(SankhyaAppProvider, "_dataUnitFetcher", new DataUnitFetcher());
9364
+
9264
9365
 
9265
9366
  ;// CONCATENATED MODULE: ./src/lib/http/fetchers/application-config-fetcher.ts
9266
9367
  var application_config_fetcher_templateObject;