eservices-core 1.0.454 → 1.0.456

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.
@@ -1,4 +1,7 @@
1
1
  import { Form } from "jenesius-vue-form";
2
+ /**
3
+ * @deprecated Please, use useFormRequest
4
+ * */
2
5
  export default function useFormRequestData(form: Form, options: {
3
6
  fields: string | string[];
4
7
  }): {
@@ -0,0 +1,20 @@
1
+ import { Form } from "jenesius-vue-form";
2
+ /**
3
+ * @description Если используете shadowFormState - не забудь иницилизировать её при помощи функции initShadow.
4
+ * */
5
+ export default function useFormRequest<T extends Form>(form: T, formParams: () => IReadFormParams): {
6
+ shadowFormState: {
7
+ ready: boolean;
8
+ show: boolean;
9
+ };
10
+ initShadow: () => void;
11
+ };
12
+ interface IReadFormParams {
13
+ id: number;
14
+ fields?: string;
15
+ }
16
+ export interface IShadowState {
17
+ ready: boolean;
18
+ show: boolean;
19
+ }
20
+ export {};
package/dist/index.d.ts CHANGED
@@ -51,6 +51,7 @@ import Filter from "./utils/Filter";
51
51
  import staticLink from "./utils/static-link";
52
52
  import groupArrayByField from "./utils/group-array-by-field";
53
53
  import uuidv4 from "./utils/uuid";
54
+ import parseError from "./utils/parse-error";
54
55
  import useFormMetadata from "./hooks/use-form-metadata";
55
56
  import useFormAction from "./hooks/use-form-action";
56
57
  import useFormLabel from "./hooks/use-form-label";
@@ -59,6 +60,7 @@ import { useListFilter, useListOrder, useListState } from "./classes/List";
59
60
  import useCustomerState from "./hooks/use-customer-state";
60
61
  import { useTableRequest, useTableState } from "./classes/table/Table";
61
62
  import { useCommunication } from "./classes/Communication";
63
+ import useFormRequest from "./hooks/use-form-request";
62
64
  import { SYMBOL_ROW } from "./classes/table/Table";
63
65
  export {
64
66
  /**
@@ -74,11 +76,15 @@ export { fileService, processWizardService, viewService, authService, dataServic
74
76
  /**
75
77
  * HOOKS
76
78
  * */
77
- export { useFormMetadata, useFormAction, useFormLabel, useFormRequestData, useListFilter, useListOrder, useListState, useCustomerState, useTableState, useTableRequest, useCommunication };
79
+ export { useFormMetadata, useFormAction, useFormLabel, useFormRequestData, useListFilter, useListOrder, useListState, useCustomerState, useTableState, useTableRequest, useCommunication, useFormRequest };
78
80
  /**
79
81
  * All components binding with VueComponents must have name started with Widget.
80
82
  * */
81
83
  export { WidgetNotificationSystem, WidgetForm, ModalValidation, WidgetTable, WidgetSpinner, WidgetBreadcrumbs, WidgetList, WidgetSection, WidgetImage, WidgetButton, WidgetNotFound, WidgetIcon, WidgetCard, WidgetMultiButton, WidgetShadowForm };
84
+ /**
85
+ * @description New Utils
86
+ * */
87
+ export { parseError };
82
88
  declare const utils: {
83
89
  clickOutside: typeof _utils.clickOutside;
84
90
  requestHandler: typeof _utils.requestHandler;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * eservices-core v1.0.454
2
+ * eservices-core v1.0.456
3
3
  * (c) 2022 ESERVICES
4
4
  */
5
5
  'use strict';
@@ -1927,6 +1927,28 @@ class CoreError extends Error {
1927
1927
  }
1928
1928
  CoreError.ID = 0;
1929
1929
 
1930
+ const DEFAULT_ERROR = `Please try again later or submit a feedback if problem doesn't go.`;
1931
+ function parseError(data) {
1932
+ if (typeof data === 'string')
1933
+ return ErrorModel(data);
1934
+ if (isErrorObject(data)) {
1935
+ return ErrorModel(data.message);
1936
+ }
1937
+ return ErrorModel(DEFAULT_ERROR);
1938
+ }
1939
+ function isErrorObject(data) {
1940
+ if (typeof data === 'object' && Object.hasOwnProperty.call(data, 'message') && data !== null) {
1941
+ return true;
1942
+ }
1943
+ return false;
1944
+ }
1945
+ function ErrorModel(message, details = []) {
1946
+ return {
1947
+ message,
1948
+ details
1949
+ };
1950
+ }
1951
+
1930
1952
  function parseData(res) {
1931
1953
  return res.text()
1932
1954
  .then(res => {
@@ -1934,7 +1956,7 @@ function parseData(res) {
1934
1956
  return JSON.parse(res);
1935
1957
  }
1936
1958
  catch (e) {
1937
- return res;
1959
+ return DEFAULT_ERROR;
1938
1960
  }
1939
1961
  });
1940
1962
  }
@@ -5137,6 +5159,9 @@ function useFormLabel(form) {
5137
5159
  return { label, update };
5138
5160
  }
5139
5161
 
5162
+ /**
5163
+ * @deprecated Please, use useFormRequest
5164
+ * */
5140
5165
  function useFormRequestData(form, options) {
5141
5166
  const route = vueRouter.useRoute();
5142
5167
  const id = vue.computed(() => Number(route.params.id));
@@ -5237,6 +5262,74 @@ function useCustomerState() {
5237
5262
  };
5238
5263
  }
5239
5264
 
5265
+ /**
5266
+ * @description Если используете shadowFormState - не забудь иницилизировать её при помощи функции initShadow.
5267
+ * */
5268
+ function useFormRequest(form, formParams) {
5269
+ const shadowFormState = vue.reactive({
5270
+ ready: false,
5271
+ show: false
5272
+ });
5273
+ /**
5274
+ * @description Функция используется для инициализациия ShadowFormState
5275
+ * */
5276
+ function initShadow() {
5277
+ shadowFormState.ready = false;
5278
+ shadowFormState.show = false;
5279
+ }
5280
+ form.read = () => {
5281
+ let params = formParams();
5282
+ shadowFormState.ready = false;
5283
+ return Promise.resolve()
5284
+ .then(() => {
5285
+ if (!form.name)
5286
+ throw CoreError.EntityWithoutName('Use Form Request');
5287
+ return dataService.readById(form.name, params.id, {
5288
+ fields: params.fields
5289
+ });
5290
+ })
5291
+ .then(utils$1.valuesToUpperCase)
5292
+ .then(values => {
5293
+ /**
5294
+ * @description Если в ответе присутствует версия объекта - сохраняем её в форму.
5295
+ * */
5296
+ if (values.hasOwnProperty('Version'))
5297
+ form.version = Number(values.Version);
5298
+ form.setValues(values);
5299
+ shadowFormState.show = true;
5300
+ return values;
5301
+ })
5302
+ .catch(err => {
5303
+ const errorObject = parseError(err);
5304
+ NotificationSystem.add('error', errorObject.message);
5305
+ throw errorObject;
5306
+ })
5307
+ .finally(() => {
5308
+ shadowFormState.ready = true;
5309
+ });
5310
+ };
5311
+ form.save = () => {
5312
+ let params = formParams();
5313
+ return Promise.resolve()
5314
+ .then(() => {
5315
+ if (!form.name)
5316
+ throw CoreError.EntityWithoutName('Use Form Request');
5317
+ return dataService.updateById(form.name, params.id, form.changes, { version: form.version });
5318
+ })
5319
+ .then(response => {
5320
+ // @ts-ignore
5321
+ form.version = response.version || response['Version'];
5322
+ })
5323
+ .catch(err => {
5324
+ const errorObject = parseError(err);
5325
+ NotificationSystem.add('error', errorObject.message);
5326
+ throw errorObject;
5327
+ });
5328
+ };
5329
+ form.on(jenesiusVueForm.Form.EVENT_SAVE, form.read.bind(form));
5330
+ return { shadowFormState, initShadow };
5331
+ }
5332
+
5240
5333
  const utils = {
5241
5334
  clickOutside,
5242
5335
  requestHandler,
@@ -5291,6 +5384,7 @@ exports.invitationService = InvitationService;
5291
5384
  exports.metadataService = metadataService;
5292
5385
  exports.newImport = newImport;
5293
5386
  exports.openService = openService;
5387
+ exports.parseError = parseError;
5294
5388
  exports.processWizardService = processWizardService;
5295
5389
  exports.requestHandler = requestHandler;
5296
5390
  exports.ruleValidationService = ruleValidationService;
@@ -5300,6 +5394,7 @@ exports.useCustomerState = useCustomerState;
5300
5394
  exports.useFormAction = useFormAction;
5301
5395
  exports.useFormLabel = useFormLabel;
5302
5396
  exports.useFormMetadata = useFormMetadata;
5397
+ exports.useFormRequest = useFormRequest;
5303
5398
  exports.useFormRequestData = useFormRequestData;
5304
5399
  exports.useListFilter = useListFilter;
5305
5400
  exports.useListOrder = useListOrder;
@@ -0,0 +1,6 @@
1
+ export declare const DEFAULT_ERROR = "Please try again later or submit a feedback if problem doesn't go.";
2
+ export default function parseError(data: unknown): IErrorObject;
3
+ export interface IErrorObject {
4
+ message: string;
5
+ details: string[];
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eservices-core",
3
- "version": "1.0.454",
3
+ "version": "1.0.456",
4
4
  "description": "Core library",
5
5
  "author": "",
6
6
  "scripts": {