@sumaris-net/ngx-components 1.0.3 → 1.0.7

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.
@@ -10831,6 +10831,7 @@
10831
10831
  };
10832
10832
  LocalSettingsService.prototype.apply = function (settings, opts) {
10833
10833
  return __awaiter(this, void 0, void 0, function () {
10834
+ var data;
10834
10835
  return __generator(this, function (_a) {
10835
10836
  switch (_a.label) {
10836
10837
  case 0:
@@ -10840,7 +10841,10 @@
10840
10841
  _a.sent();
10841
10842
  _a.label = 2;
10842
10843
  case 2:
10843
- this._data = Object.assign(Object.assign({}, this._data), settings);
10844
+ data = Object.assign(Object.assign({}, this._data), settings);
10845
+ if (equals(data, this._data))
10846
+ return [2 /*return*/]; // SKip if same
10847
+ this._data = data;
10844
10848
  if (!(opts && opts.persistImmediate)) return [3 /*break*/, 4];
10845
10849
  return [4 /*yield*/, this.persistLocally(true)];
10846
10850
  case 3:
@@ -12011,6 +12015,7 @@
12011
12015
  CONFIRM_EMAIL_FAILED: 7,
12012
12016
  SAVE_ACCOUNT_ERROR: 8,
12013
12017
  ACCOUNT_NOT_EXISTS: 9,
12018
+ SAVE_SETTINGS_ERROR: 8,
12014
12019
  SUBSCRIBE_ACCOUNT_ERROR: 10,
12015
12020
  ENTITY_STORAGE_MIGRATION_FAILED: 11,
12016
12021
  LOAD_DATA_ERROR: 12,
@@ -13298,6 +13303,17 @@
13298
13303
  });
13299
13304
  return hasChanges;
13300
13305
  };
13306
+ UserSettings.prototype.asLocalSettings = function () {
13307
+ var _this = this;
13308
+ var target = {};
13309
+ UserSettings_1.SETTINGS_PROPERTIES.forEach(function (key) {
13310
+ target[key] = _this[key];
13311
+ });
13312
+ Object.keys(this.content).forEach(function (key) {
13313
+ target[key] = _this.content[key];
13314
+ });
13315
+ return target;
13316
+ };
13301
13317
  return UserSettings;
13302
13318
  }(Entity));
13303
13319
  exports.UserSettings.SETTINGS_PROPERTIES = ['locale', 'latLongFormat'];
@@ -14766,25 +14782,30 @@
14766
14782
  * GraphQL queries
14767
14783
  * ------------------------------------*/
14768
14784
  var Fragments$1 = {
14769
- account: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\n "], ["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\n "])))
14785
+ account: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"], ["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"]))),
14786
+ settings: core.gql(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"], ["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"])))
14770
14787
  };
14771
14788
  // Load account query
14772
- var LoadQuery$1 = core.gql(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
14789
+ var LoadQuery$1 = core.gql(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"])), Fragments$1.account, Fragments$1.settings);
14773
14790
  // Check email query
14774
- var IsEmailExistsQuery = core.gql(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"], ["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"])));
14791
+ var IsEmailExistsQuery = core.gql(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"], ["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"])));
14775
14792
  // Save (create or update) account mutation
14776
- var SaveMutation$1 = core.gql(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
14777
- // Create account mutation
14778
- var CreateMutation = core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
14793
+ var AccountMutations = {
14794
+ save: core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject([" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], [" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments$1.account, Fragments$1.settings),
14795
+ create: core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], ["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments$1.account, Fragments$1.settings),
14796
+ saveSettings: core.gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""], ["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""])), Fragments$1.settings)
14797
+ };
14779
14798
  // Sent confirmation email
14780
- var SendConfirmEmailMutation = core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"], ["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"])));
14799
+ var SendConfirmEmailMutation = core.gql(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"], ["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"])));
14781
14800
  // Confirm account email
14782
- var ConfirmEmailMutation = core.gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n mutation confirmAccountEmail($email:String, $code:String){\n confirmAccountEmail(email: $email, code: $code)\n }\n"], ["\n mutation confirmAccountEmail($email:String, $code:String){\n confirmAccountEmail(email: $email, code: $code)\n }\n"])));
14801
+ var ConfirmEmailMutation = core.gql(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n mutation confirmAccountEmail($email:String, $code:String){\n confirmAccountEmail(email: $email, code: $code)\n }\n"], ["\n mutation confirmAccountEmail($email:String, $code:String){\n confirmAccountEmail(email: $email, code: $code)\n }\n"])));
14783
14802
  // Authentication query
14784
- var AuthQuery = core.gql(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n query Auth($token: String){\n authenticate(token: $token)\n }\n"], ["\n query Auth($token: String){\n authenticate(token: $token)\n }\n"])));
14803
+ var AuthQuery = core.gql(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n query Auth($token: String){\n authenticate(token: $token)\n }\n"], ["\n query Auth($token: String){\n authenticate(token: $token)\n }\n"])));
14785
14804
  // New auth challenge query
14786
- var AuthChallengeQuery = core.gql(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n query AuthChallenge{\n authChallenge{\n challenge\n pubkey\n signature\n }\n }\n"], ["\n query AuthChallenge{\n authChallenge{\n challenge\n pubkey\n signature\n }\n }\n"])));
14787
- var UpdateSubscription = core.gql(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n subscription updateAccount($interval: Int){\n data: updateAccount(interval: $interval) {\n id\n updateDate\n }\n }\n"], ["\n subscription updateAccount($interval: Int){\n data: updateAccount(interval: $interval) {\n id\n updateDate\n }\n }\n"])));
14805
+ var AuthChallengeQuery = core.gql(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n query AuthChallenge{\n authChallenge{\n challenge\n pubkey\n signature\n }\n }\n"], ["\n query AuthChallenge{\n authChallenge{\n challenge\n pubkey\n signature\n }\n }\n"])));
14806
+ var AccountSubscriptions = {
14807
+ listenChanges: core.gql(templateObject_12 || (templateObject_12 = __makeTemplateObject(["subscription updateAccount($interval: Int){\n data: updateAccount(interval: $interval) {\n id\n updateDate\n }\n }"], ["subscription updateAccount($interval: Int){\n data: updateAccount(interval: $interval) {\n id\n updateDate\n }\n }"])))
14808
+ };
14788
14809
  var AccountService = /** @class */ (function (_super) {
14789
14810
  __extends(AccountService, _super);
14790
14811
  function AccountService(cryptoService, network, graphql, settings, storage, file, environment) {
@@ -15032,6 +15053,7 @@
15032
15053
  data.account.settings = data.account.settings || new exports.UserSettings();
15033
15054
  data.account.settings.locale = this.settings.locale;
15034
15055
  data.account.settings.latLongFormat = this.settings.latLongFormat;
15056
+ data.account.settings.content = data.account.settings.content || {};
15035
15057
  data.account.department.id = data.account.department.id || this.environment.defaultDepartmentId;
15036
15058
  this._cache.keypair = keypair;
15037
15059
  return [4 /*yield*/, this.saveRemotely(data.account, keypair)];
@@ -15490,9 +15512,9 @@
15490
15512
  if (!this._cache.pubkey)
15491
15513
  return rxjs.Subscription.EMPTY;
15492
15514
  var self = this;
15493
- console.debug('[account] [WS] Listening account changes');
15515
+ console.debug('[account] [WS] Listening changes');
15494
15516
  var subscription = this.graphql.subscribe({
15495
- query: UpdateSubscription,
15517
+ query: AccountSubscriptions.listenChanges,
15496
15518
  variables: {
15497
15519
  interval: 10
15498
15520
  },
@@ -15594,7 +15616,7 @@
15594
15616
  };
15595
15617
  AccountService.prototype.loadData = function (opts) {
15596
15618
  return __awaiter(this, void 0, void 0, function () {
15597
- var account, accountSettingsContentKeys, settings, error_6;
15619
+ var account, settings, error_6;
15598
15620
  return __generator(this, function (_b) {
15599
15621
  switch (_b.label) {
15600
15622
  case 0:
@@ -15623,10 +15645,8 @@
15623
15645
  this._data = account;
15624
15646
  }
15625
15647
  this._cache.loaded = true;
15626
- accountSettingsContentKeys = Object.keys(account.settings.content);
15627
- if (!isNotEmptyArray(accountSettingsContentKeys)) return [3 /*break*/, 4];
15628
- settings = Object.assign(Object.assign(Object.assign({}, this.settings.settings), account.settings.content), account.settings);
15629
- delete settings.content; // Remove content attribute
15648
+ if (!account.settings) return [3 /*break*/, 4];
15649
+ settings = Object.assign(Object.assign({}, this.settings.settings), account.settings.asLocalSettings());
15630
15650
  return [4 /*yield*/, this.settings.apply(settings)];
15631
15651
  case 3:
15632
15652
  _b.sent();
@@ -15803,24 +15823,23 @@
15803
15823
  };
15804
15824
  AccountService.prototype.saveLocalSettingsRemotely = function (source) {
15805
15825
  return __awaiter(this, void 0, void 0, function () {
15806
- var account, settings, hasChanges;
15826
+ var account, settings, changed;
15807
15827
  return __generator(this, function (_b) {
15808
15828
  switch (_b.label) {
15809
15829
  case 0:
15810
- if (!source || !this.isLogin())
15830
+ if (!source || !this.isLogin() || source.accountInheritance === false)
15811
15831
  return [2 /*return*/]; // Skip
15812
15832
  account = this.account;
15813
15833
  settings = exports.UserSettings.fromObject(account.settings) || new exports.UserSettings();
15814
- hasChanges = settings.merge(source, ['locale', 'latLongFormat', 'properties']);
15815
- if (!hasChanges) return [3 /*break*/, 2];
15816
- if (this._debug)
15817
- console.debug('[account] Save local settings remotely', settings);
15818
- account.settings = settings;
15819
- return [4 /*yield*/, this.saveRemotely(account)];
15834
+ changed = settings.merge(source, ['locale', 'latLongFormat', 'properties']);
15835
+ if (!changed)
15836
+ return [2 /*return*/]; // Skip if unchanged
15837
+ // Save remotely
15838
+ this.account.settings = settings;
15839
+ return [4 /*yield*/, this.saveSettingsRemotely(settings)];
15820
15840
  case 1:
15821
15841
  _b.sent();
15822
- _b.label = 2;
15823
- case 2: return [2 /*return*/];
15842
+ return [2 /*return*/];
15824
15843
  }
15825
15844
  });
15826
15845
  });
@@ -15843,7 +15862,7 @@
15843
15862
  now = this._debug && Date.now();
15844
15863
  if (this._debug)
15845
15864
  console.debug("[account] Saving account remotely...");
15846
- isNew = !account.id && account.id !== 0;
15865
+ isNew = isNil(account.id);
15847
15866
  if (!!isNew) return [3 /*break*/, 2];
15848
15867
  return [4 /*yield*/, this.load({ fetchPolicy: 'network-only' })];
15849
15868
  case 1:
@@ -15858,7 +15877,7 @@
15858
15877
  // User not allow to change his profiles
15859
15878
  delete json.profiles;
15860
15879
  return [4 /*yield*/, this.graphql.mutate({
15861
- mutation: isNew ? CreateMutation : SaveMutation$1,
15880
+ mutation: isNew ? AccountMutations.create : AccountMutations.save,
15862
15881
  variables: { data: json },
15863
15882
  error: {
15864
15883
  code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
@@ -15876,6 +15895,43 @@
15876
15895
  });
15877
15896
  });
15878
15897
  };
15898
+ /**
15899
+ * Create or update user settings
15900
+ *
15901
+ * @param settings
15902
+ */
15903
+ AccountService.prototype.saveSettingsRemotely = function (settings) {
15904
+ return __awaiter(this, void 0, void 0, function () {
15905
+ var now, json, data;
15906
+ return __generator(this, function (_b) {
15907
+ switch (_b.label) {
15908
+ case 0:
15909
+ now = this._debug && Date.now();
15910
+ if (this._debug)
15911
+ console.debug("[account] Saving settings remotely...");
15912
+ json = settings.asObject(MINIFY_ENTITY_FOR_POD);
15913
+ return [4 /*yield*/, this.graphql.mutate({
15914
+ mutation: AccountMutations.saveSettings,
15915
+ variables: { data: json },
15916
+ error: {
15917
+ code: ErrorCodes$2.SAVE_SETTINGS_ERROR,
15918
+ message: 'ERROR.SAVE_SETTINGS_ERROR'
15919
+ }
15920
+ })];
15921
+ case 1:
15922
+ data = (_b.sent()).data;
15923
+ // Copy update properties
15924
+ this.copyIdAndUpdateDateSettings(data, settings);
15925
+ if (this._debug)
15926
+ console.debug("[account] Settings remotely saved in " + (Date.now() - now) + "ms");
15927
+ // Save into account
15928
+ if (this.account)
15929
+ this.account.settings = settings;
15930
+ return [2 /*return*/];
15931
+ }
15932
+ });
15933
+ });
15934
+ };
15879
15935
  AccountService.prototype.authenticateAndGetToken = function (token, counter) {
15880
15936
  return __awaiter(this, void 0, void 0, function () {
15881
15937
  var data_1, challengeError, data, signatureOK, signature, newToken;
@@ -15952,8 +16008,13 @@
15952
16008
  return;
15953
16009
  target.id = source.id || target.id;
15954
16010
  target.updateDate = source.updateDate || target.updateDate;
15955
- target.settings.id = source.settings && source.settings.id || target.settings.id;
15956
- target.settings.updateDate = source.settings && source.settings.updateDate || target.settings.updateDate;
16011
+ this.copyIdAndUpdateDateSettings(source.settings, target.settings);
16012
+ };
16013
+ AccountService.prototype.copyIdAndUpdateDateSettings = function (source, target) {
16014
+ if (!source)
16015
+ return;
16016
+ target.id = source.id || target.id;
16017
+ target.updateDate = source.updateDate || target.updateDate;
15957
16018
  };
15958
16019
  return AccountService;
15959
16020
  }(BaseGraphqlService));
@@ -15970,7 +16031,7 @@
15970
16031
  { type: FileService },
15971
16032
  { type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
15972
16033
  ]; };
15973
- var templateObject_1$4, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
16034
+ var templateObject_1$4, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
15974
16035
 
15975
16036
  var Software_1, Configuration_1;
15976
16037
  // @dynamic
@@ -16847,15 +16908,11 @@
16847
16908
  _this.translate.use(data.locale);
16848
16909
  }
16849
16910
  });
16850
- // Use account's locale, when account inheritance enabled in settings
16911
+ // Use account's settings, (like locale), when account inheritance enabled
16851
16912
  this.accountService.onLogin.subscribe(function (account) {
16852
- if (_this.settings.settings.accountInheritance) {
16853
- var accountLocale = account.settings && account.settings.locale;
16854
- if (accountLocale && accountLocale !== _this.settings.locale) {
16855
- _this.settings.apply({
16856
- locale: accountLocale
16857
- });
16858
- }
16913
+ if (account.settings && _this.settings.settings.accountInheritance) {
16914
+ var accountSettings = account.settings.asLocalSettings();
16915
+ _this.settings.apply(accountSettings);
16859
16916
  }
16860
16917
  });
16861
16918
  };