@c8y/ngx-components 1023.7.3 → 1023.10.1

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 (49) hide show
  1. package/branding/plain-branding-editor/index.d.ts +2 -1
  2. package/branding/plain-branding-editor/index.d.ts.map +1 -1
  3. package/branding/plain-branding-editor/lazy/index.d.ts +4 -0
  4. package/branding/plain-branding-editor/lazy/index.d.ts.map +1 -1
  5. package/branding/shared/data/index.d.ts +15 -10
  6. package/branding/shared/data/index.d.ts.map +1 -1
  7. package/context-dashboard/index.d.ts.map +1 -1
  8. package/context-dashboard-state/index.d.ts.map +1 -1
  9. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +21 -5
  10. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs.map +1 -1
  11. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +11 -1
  12. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
  13. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  14. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +0 -1
  15. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs.map +1 -1
  16. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +0 -6
  17. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  18. package/fesm2022/c8y-ngx-components-global-context.mjs +296 -283
  19. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  20. package/fesm2022/c8y-ngx-components-map.mjs +11 -4
  21. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  22. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -8
  23. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +2 -1
  25. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  26. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +4 -16
  27. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  28. package/fesm2022/c8y-ngx-components.mjs +24 -28
  29. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  30. package/global-context/index.d.ts +68 -57
  31. package/global-context/index.d.ts.map +1 -1
  32. package/index.d.ts.map +1 -1
  33. package/locales/de.po +41 -32
  34. package/locales/es.po +41 -32
  35. package/locales/fr.po +41 -32
  36. package/locales/ja_JP.po +41 -32
  37. package/locales/ko.po +41 -32
  38. package/locales/locales.pot +40 -31
  39. package/locales/nl.po +41 -32
  40. package/locales/pl.po +41 -32
  41. package/locales/pt_BR.po +41 -32
  42. package/locales/zh_CN.po +41 -32
  43. package/locales/zh_TW.po +41 -32
  44. package/map/index.d.ts +8 -0
  45. package/map/index.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/widgets/implementations/alarms/index.d.ts.map +1 -1
  48. package/widgets/implementations/datapoints-graph/index.d.ts.map +1 -1
  49. package/widgets/implementations/datapoints-table/index.d.ts.map +1 -1
@@ -8285,11 +8285,20 @@ class UserPreferencesService {
8285
8285
  return await currentUserStorage.get(customPropertiesKey);
8286
8286
  }
8287
8287
  else {
8288
- const localOrInventoryStorage = this.getStorage(user);
8289
8288
  const transformedRawKey = this.getTransformedRawKey(key, user);
8290
8289
  const rawKey = this.getRawKey(key, user);
8291
- const valueFromStorage = (await localOrInventoryStorage.get(transformedRawKey)) ||
8292
- (await localOrInventoryStorage.get(rawKey));
8290
+ let valueFromStorage = (await this.storage.local.get(transformedRawKey)) || (await this.storage.local.get(rawKey));
8291
+ if (valueFromStorage === undefined) {
8292
+ // only still here as a fallback for old preferences stored in inventory
8293
+ // new settings are no longer stored in inventory
8294
+ valueFromStorage =
8295
+ (await this.storage.inventory.get(transformedRawKey)) ||
8296
+ (await this.storage.inventory.get(rawKey));
8297
+ // save request to the inventory next time by storing the retrieved value in local storage
8298
+ if (valueFromStorage !== undefined && !currentUserStorage) {
8299
+ this.storage.local.set(rawKey, valueFromStorage);
8300
+ }
8301
+ }
8293
8302
  if (valueFromStorage === undefined) {
8294
8303
  return undefined;
8295
8304
  }
@@ -9755,7 +9764,7 @@ class GainsightService {
9755
9764
  */
9756
9765
  identify(sendPiiData, identifyData) {
9757
9766
  const windowRef = window;
9758
- const { id: userId, email, roles } = identifyData.user;
9767
+ const { id: userId, email, userName, firstName, lastName, roles } = identifyData.user;
9759
9768
  const { name: tenantID, customProperties, domainName } = identifyData.currentTenant;
9760
9769
  const { instanceId, versionUI, versionBE } = identifyData;
9761
9770
  /**
@@ -9766,17 +9775,13 @@ class GainsightService {
9766
9775
  * Due to GS limitations (GS does not allow clearing user attr/preferences via the GS tag!),
9767
9776
  * we always need to initialize fields related to PII to prevent leaking this data to GS when the user has disabled functional cookies.
9768
9777
  */
9769
- const requiredIdentify = {
9778
+ const baseIdentify = {
9770
9779
  /**
9771
9780
  * Email was not mandatory form field until 10.14
9772
9781
  */
9773
9782
  id: email ? email : `${userId}_${tenantID}_${instanceId}`,
9774
9783
  isUserCreatedAfterAnonymizationWasActivated: true,
9775
- tenantID: tenantID,
9776
- email: '--',
9777
- userName: '--',
9778
- firstName: '--',
9779
- lastName: '--',
9784
+ tenantID,
9780
9785
  domainName,
9781
9786
  versionUI,
9782
9787
  versionBE,
@@ -9788,22 +9793,13 @@ class GainsightService {
9788
9793
  customBranding: this.isCustomBranding(),
9789
9794
  fullTracking: sendPiiData
9790
9795
  };
9791
- if (sendPiiData) {
9792
- const { userName, firstName, lastName } = identifyData.user;
9793
- const extendedIdentify = {
9794
- ...requiredIdentify,
9795
- email,
9796
- userName,
9797
- firstName,
9798
- lastName
9799
- };
9800
- windowRef[this.GAINSIGHT_GLOBAL_SCOPE]('identify', extendedIdentify, {
9801
- id: `${tenantID}_${instanceId}`,
9802
- instanceId
9803
- });
9804
- return;
9805
- }
9806
- windowRef[this.GAINSIGHT_GLOBAL_SCOPE]('identify', requiredIdentify);
9796
+ const identifyPayload = sendPiiData
9797
+ ? { ...baseIdentify, email, userName, firstName, lastName }
9798
+ : { ...baseIdentify, email: '--', userName: '--', firstName: '--', lastName: '--' };
9799
+ windowRef[this.GAINSIGHT_GLOBAL_SCOPE]('identify', identifyPayload, {
9800
+ id: `${tenantID}_${instanceId}`,
9801
+ instanceId
9802
+ });
9807
9803
  }
9808
9804
  /**
9809
9805
  * Triggers an event to be recorded by Gainsight PX.
@@ -30800,11 +30796,11 @@ class CountdownIntervalComponent {
30800
30796
  });
30801
30797
  }
30802
30798
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CountdownIntervalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30803
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CountdownIntervalComponent, isStandalone: true, selector: "c8y-countdown-interval", inputs: { countdownInterval: "countdownInterval", config: "config" }, outputs: { countdownEnded: "countdownEnded" }, ngImport: i0, template: "@if (!shouldShowPulseIcon()) {\n <div\n class=\"time-elapsed\"\n [title]=\"\n '{{ secondsLeft }} s / {{ interval }} s'\n | translate\n : { secondsLeft: secondsUntilRefresh$ | async, interval: countdownInterval / 1000 }\n \"\n data-cy=\"c8y-countdown-interval--countdown\"\n >\n <svg\n style=\"transform: rotate(-90deg)\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n [style.stroke-dashoffset]=\"100 - (progressPercentage$ | async)\"\n [style.transition]=\"(enableTransition$ | async) ? 'stroke-dashoffset 0.2s linear' : 'none'\"\n cx=\"20\"\n cy=\"20\"\n r=\"15.8\"\n stroke=\"var(--c8y-brand-primary)\"\n stroke-width=\"6\"\n stroke-dasharray=\"100\"\n />\n </svg>\n\n <span data-cy=\"c8y-countdown-interval--seconds\">{{ secondsUntilRefresh$ | async }}</span>\n </div>\n} @else {\n <div class=\"p-relative a-s-stretch no-pointer d-flex a-i-center j-c-center\">\n <span\n class=\"c8y-pulse c8y-pulse--md active m-0\"\n data-cy=\"global-context--pulse-icon\"\n ></span>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
30799
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CountdownIntervalComponent, isStandalone: true, selector: "c8y-countdown-interval", inputs: { countdownInterval: "countdownInterval", config: "config" }, outputs: { countdownEnded: "countdownEnded" }, ngImport: i0, template: "@if (!shouldShowPulseIcon()) {\n <div\n class=\"time-elapsed\"\n [title]=\"\n '{{ secondsLeft }} s / {{ interval }} s'\n | translate\n : { secondsLeft: secondsUntilRefresh$ | async, interval: countdownInterval / 1000 }\n \"\n data-cy=\"c8y-countdown-interval--countdown\"\n >\n <svg\n style=\"transform: rotate(-90deg)\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n [style.stroke-dashoffset]=\"100 - (progressPercentage$ | async)\"\n [style.transition]=\"(enableTransition$ | async) ? 'stroke-dashoffset 0.2s linear' : 'none'\"\n cx=\"20\"\n cy=\"20\"\n r=\"15.8\"\n stroke=\"var(--c8y-brand-primary)\"\n stroke-width=\"6\"\n stroke-dasharray=\"100\"\n />\n </svg>\n\n <span data-cy=\"c8y-countdown-interval--seconds\">{{ secondsUntilRefresh$ | async }}</span>\n </div>\n} @else {\n <div class=\"p-relative a-s-stretch no-pointer d-flex a-i-center j-c-center\">\n <span\n class=\"c8y-pulse active m-0\"\n data-cy=\"global-context--pulse-icon\"\n ></span>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
30804
30800
  }
30805
30801
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CountdownIntervalComponent, decorators: [{
30806
30802
  type: Component,
30807
- args: [{ selector: 'c8y-countdown-interval', standalone: true, imports: [AsyncPipe, C8yTranslatePipe], template: "@if (!shouldShowPulseIcon()) {\n <div\n class=\"time-elapsed\"\n [title]=\"\n '{{ secondsLeft }} s / {{ interval }} s'\n | translate\n : { secondsLeft: secondsUntilRefresh$ | async, interval: countdownInterval / 1000 }\n \"\n data-cy=\"c8y-countdown-interval--countdown\"\n >\n <svg\n style=\"transform: rotate(-90deg)\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n [style.stroke-dashoffset]=\"100 - (progressPercentage$ | async)\"\n [style.transition]=\"(enableTransition$ | async) ? 'stroke-dashoffset 0.2s linear' : 'none'\"\n cx=\"20\"\n cy=\"20\"\n r=\"15.8\"\n stroke=\"var(--c8y-brand-primary)\"\n stroke-width=\"6\"\n stroke-dasharray=\"100\"\n />\n </svg>\n\n <span data-cy=\"c8y-countdown-interval--seconds\">{{ secondsUntilRefresh$ | async }}</span>\n </div>\n} @else {\n <div class=\"p-relative a-s-stretch no-pointer d-flex a-i-center j-c-center\">\n <span\n class=\"c8y-pulse c8y-pulse--md active m-0\"\n data-cy=\"global-context--pulse-icon\"\n ></span>\n </div>\n}\n" }]
30803
+ args: [{ selector: 'c8y-countdown-interval', standalone: true, imports: [AsyncPipe, C8yTranslatePipe], template: "@if (!shouldShowPulseIcon()) {\n <div\n class=\"time-elapsed\"\n [title]=\"\n '{{ secondsLeft }} s / {{ interval }} s'\n | translate\n : { secondsLeft: secondsUntilRefresh$ | async, interval: countdownInterval / 1000 }\n \"\n data-cy=\"c8y-countdown-interval--countdown\"\n >\n <svg\n style=\"transform: rotate(-90deg)\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n [style.stroke-dashoffset]=\"100 - (progressPercentage$ | async)\"\n [style.transition]=\"(enableTransition$ | async) ? 'stroke-dashoffset 0.2s linear' : 'none'\"\n cx=\"20\"\n cy=\"20\"\n r=\"15.8\"\n stroke=\"var(--c8y-brand-primary)\"\n stroke-width=\"6\"\n stroke-dasharray=\"100\"\n />\n </svg>\n\n <span data-cy=\"c8y-countdown-interval--seconds\">{{ secondsUntilRefresh$ | async }}</span>\n </div>\n} @else {\n <div class=\"p-relative a-s-stretch no-pointer d-flex a-i-center j-c-center\">\n <span\n class=\"c8y-pulse active m-0\"\n data-cy=\"global-context--pulse-icon\"\n ></span>\n </div>\n}\n" }]
30808
30804
  }], propDecorators: { countdownInterval: [{
30809
30805
  type: Input
30810
30806
  }], config: [{