cmat 0.0.45 → 0.0.47

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 (135) hide show
  1. package/components/masonry/index.d.ts +1 -0
  2. package/fesm2022/cmat-components-adapter.mjs +9 -9
  3. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  4. package/fesm2022/cmat-components-breadcrumb.mjs +9 -9
  5. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  6. package/fesm2022/cmat-components-card.mjs +3 -3
  7. package/fesm2022/cmat-components-card.mjs.map +1 -1
  8. package/fesm2022/cmat-components-carousel.mjs +12 -12
  9. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  10. package/fesm2022/cmat-components-cascade.mjs +9 -9
  11. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  12. package/fesm2022/cmat-components-chip-input.mjs +3 -3
  13. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  14. package/fesm2022/cmat-components-custom-formly.mjs +88 -88
  15. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  16. package/fesm2022/cmat-components-date-range.mjs +3 -3
  17. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  18. package/fesm2022/cmat-components-drawer.mjs +6 -6
  19. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  20. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  21. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  22. package/fesm2022/cmat-components-highlight.mjs +6 -6
  23. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  24. package/fesm2022/cmat-components-image-viewer.mjs +3 -3
  25. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  26. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  27. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  28. package/fesm2022/cmat-components-knob-input.mjs +3 -3
  29. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  30. package/fesm2022/cmat-components-masonry.mjs +7 -4
  31. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  32. package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
  33. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  34. package/fesm2022/cmat-components-material-datetimepicker.mjs +42 -42
  35. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  36. package/fesm2022/cmat-components-navigation.mjs +39 -39
  37. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  38. package/fesm2022/cmat-components-opt-input.mjs +3 -3
  39. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  40. package/fesm2022/cmat-components-org-chart.mjs +9 -9
  41. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  42. package/fesm2022/cmat-components-pagination.mjs +12 -12
  43. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  44. package/fesm2022/cmat-components-password-strength.mjs +9 -9
  45. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  46. package/fesm2022/cmat-components-popover.mjs +9 -9
  47. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  48. package/fesm2022/cmat-components-progress-bar.mjs +3 -3
  49. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  50. package/fesm2022/cmat-components-qrcode.mjs +3 -3
  51. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  52. package/fesm2022/cmat-components-rating.mjs +3 -3
  53. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  54. package/fesm2022/cmat-components-select-search.mjs +9 -9
  55. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  56. package/fesm2022/cmat-components-select-table.mjs +3 -3
  57. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  58. package/fesm2022/cmat-components-select-tree.mjs +3 -3
  59. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  60. package/fesm2022/cmat-components-speed-dial.mjs +9 -9
  61. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  62. package/fesm2022/cmat-components-timeline.mjs +12 -12
  63. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  64. package/fesm2022/cmat-components-toast.mjs +9 -9
  65. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  66. package/fesm2022/cmat-components-transfer-picker.mjs +18 -18
  67. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  68. package/fesm2022/cmat-components-treetable.mjs +6 -6
  69. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  70. package/fesm2022/cmat-components-upload.mjs +9 -9
  71. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  72. package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
  73. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  74. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  75. package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
  76. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  77. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  78. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  79. package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
  80. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  81. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  82. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  83. package/fesm2022/cmat-directives-digit-only.mjs +6 -6
  84. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  85. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  86. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  87. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  88. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  89. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  90. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  91. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  92. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  93. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  94. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  95. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  96. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  97. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  98. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  99. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  100. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  101. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  102. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  103. package/fesm2022/cmat-services-alert.mjs +3 -3
  104. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  105. package/fesm2022/cmat-services-config.mjs +6 -6
  106. package/fesm2022/cmat-services-config.mjs.map +1 -1
  107. package/fesm2022/cmat-services-confirmation.mjs +6 -6
  108. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  109. package/fesm2022/cmat-services-data.mjs +3 -3
  110. package/fesm2022/cmat-services-data.mjs.map +1 -1
  111. package/fesm2022/cmat-services-export-as.mjs +3 -3
  112. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  113. package/fesm2022/cmat-services-loading.mjs +6 -6
  114. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  115. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  116. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  117. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  118. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  119. package/fesm2022/cmat-services-platform.mjs +3 -3
  120. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  121. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  122. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  123. package/fesm2022/cmat-services-title.mjs +3 -3
  124. package/fesm2022/cmat-services-title.mjs.map +1 -1
  125. package/fesm2022/cmat-services-translation.mjs +3 -3
  126. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  127. package/fesm2022/cmat-services-utils.mjs +3 -3
  128. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  129. package/fesm2022/cmat-validators.mjs.map +1 -1
  130. package/fesm2022/cmat-version.mjs.map +1 -1
  131. package/package.json +24 -24
  132. package/styles/components/bundle.scss +7 -7
  133. package/styles/overrides/angular-material.scss +3 -3
  134. package/styles/overrides/fullcalendar.scss +7 -7
  135. package/styles/themes.scss +4 -4
@@ -35,10 +35,10 @@ class CmatPlatformService {
35
35
  this.osName = 'os-android';
36
36
  }
37
37
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatPlatformService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
39
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatPlatformService, providedIn: 'root' }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatPlatformService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
39
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatPlatformService, providedIn: 'root' }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatPlatformService, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatPlatformService, decorators: [{
42
42
  type: Injectable,
43
43
  args: [{
44
44
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-platform.mjs","sources":["../../../projects/cmat/services/platform/platform.service.ts","../../../projects/cmat/services/platform/cmat-services-platform.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatPlatformService {\r\n\r\n osName = 'os-unknown';\r\n\r\n private _platform = inject(Platform);\r\n constructor() {\r\n // If the platform is not a browser, return immediately\r\n if (!this._platform.isBrowser) {\r\n return;\r\n }\r\n\r\n // Windows\r\n if (navigator.userAgent.includes('Win')) {\r\n this.osName = 'os-windows';\r\n }\r\n\r\n // Mac OS\r\n if (navigator.userAgent.includes('Mac')) {\r\n this.osName = 'os-mac';\r\n }\r\n\r\n // Unix\r\n if (navigator.userAgent.includes('X11')) {\r\n this.osName = 'os-unix';\r\n }\r\n\r\n // Linux\r\n if (navigator.userAgent.includes('Linux')) {\r\n this.osName = 'os-linux';\r\n }\r\n\r\n // iOS\r\n if (this._platform.IOS) {\r\n this.osName = 'os-ios';\r\n }\r\n\r\n // Android\r\n if (this._platform.ANDROID) {\r\n this.osName = 'os-android';\r\n }\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAMa,mBAAmB,CAAA;AAK5B,IAAA,WAAA,GAAA;QAHA,IAAA,CAAA,MAAM,GAAG,YAAY;AAEb,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAGhC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC3B;;;QAIJ,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,YAAY;;;QAI9B,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;;;QAI1B,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;;;QAI3B,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU;;;AAI5B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;;;AAI1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,YAAY;;;8GAtCzB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACLD;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-services-platform.mjs","sources":["../../../projects/cmat/services/platform/platform.service.ts","../../../projects/cmat/services/platform/cmat-services-platform.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatPlatformService {\r\n\r\n osName = 'os-unknown';\r\n\r\n private _platform = inject(Platform);\r\n constructor() {\r\n // If the platform is not a browser, return immediately\r\n if (!this._platform.isBrowser) {\r\n return;\r\n }\r\n\r\n // Windows\r\n if (navigator.userAgent.includes('Win')) {\r\n this.osName = 'os-windows';\r\n }\r\n\r\n // Mac OS\r\n if (navigator.userAgent.includes('Mac')) {\r\n this.osName = 'os-mac';\r\n }\r\n\r\n // Unix\r\n if (navigator.userAgent.includes('X11')) {\r\n this.osName = 'os-unix';\r\n }\r\n\r\n // Linux\r\n if (navigator.userAgent.includes('Linux')) {\r\n this.osName = 'os-linux';\r\n }\r\n\r\n // iOS\r\n if (this._platform.IOS) {\r\n this.osName = 'os-ios';\r\n }\r\n\r\n // Android\r\n if (this._platform.ANDROID) {\r\n this.osName = 'os-android';\r\n }\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAMa,mBAAmB,CAAA;AAK5B,IAAA,WAAA,GAAA;QAHA,IAAA,CAAA,MAAM,GAAG,YAAY;AAEb,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAGhC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC3B;QACJ;;QAGA,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,YAAY;QAC9B;;QAGA,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;QAC1B;;QAGA,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;QAC3B;;QAGA,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU;QAC5B;;AAGA,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;QAC1B;;AAGA,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,YAAY;QAC9B;IACJ;8GAxCS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACLD;;AAEG;;;;"}
@@ -26,10 +26,10 @@ class CmatSplashScreenService {
26
26
  hide() {
27
27
  this._document.body.classList.add('cmat-splash-screen-hidden');
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatSplashScreenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatSplashScreenService, providedIn: 'root' }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatSplashScreenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatSplashScreenService, providedIn: 'root' }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatSplashScreenService, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatSplashScreenService, decorators: [{
33
33
  type: Injectable,
34
34
  args: [{
35
35
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-splash-screen.mjs","sources":["../../../projects/cmat/services/splash-screen/splash-screen.service.ts","../../../projects/cmat/services/splash-screen/cmat-services-splash-screen.ts"],"sourcesContent":["import { Injectable, OnDestroy, DOCUMENT, inject } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, take, takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatSplashScreenService implements OnDestroy {\r\n private _document = inject(DOCUMENT);\r\n private _router = inject(Router);\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n \r\n\r\n constructor() {\r\n // Hide it on the first NavigationEnd event\r\n this._router.events\r\n .pipe(\r\n takeUntil(this._unsubscribeAll),\r\n filter(event => event instanceof NavigationEnd),\r\n take(1)\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n show(): void {\r\n this._document.body.classList.remove('cmat-splash-screen-hidden');\r\n }\r\n\r\n hide(): void {\r\n this._document.body.classList.add('cmat-splash-screen-hidden');\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAQa,uBAAuB,CAAA;AAQhC,IAAA,WAAA,GAAA;AAPQ,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAExB,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAQ;;QAMxD,IAAI,CAAC,OAAO,CAAC;aACR,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAC/B,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,CAAC,EAC/C,IAAI,CAAC,CAAC,CAAC;aAEV,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,IAAI,EAAE;AACf,SAAC,CAAC;;IAGV,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;;IAGnC,IAAI,GAAA;QACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC;;IAGrE,IAAI,GAAA;QACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;;8GA/BzD,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-services-splash-screen.mjs","sources":["../../../projects/cmat/services/splash-screen/splash-screen.service.ts","../../../projects/cmat/services/splash-screen/cmat-services-splash-screen.ts"],"sourcesContent":["import { Injectable, OnDestroy, DOCUMENT, inject } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, take, takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatSplashScreenService implements OnDestroy {\r\n private _document = inject(DOCUMENT);\r\n private _router = inject(Router);\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n \r\n\r\n constructor() {\r\n // Hide it on the first NavigationEnd event\r\n this._router.events\r\n .pipe(\r\n takeUntil(this._unsubscribeAll),\r\n filter(event => event instanceof NavigationEnd),\r\n take(1)\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n show(): void {\r\n this._document.body.classList.remove('cmat-splash-screen-hidden');\r\n }\r\n\r\n hide(): void {\r\n this._document.body.classList.add('cmat-splash-screen-hidden');\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAQa,uBAAuB,CAAA;AAQhC,IAAA,WAAA,GAAA;AAPQ,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAExB,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAQ;;QAMxD,IAAI,CAAC,OAAO,CAAC;aACR,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAC/B,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,CAAC,EAC/C,IAAI,CAAC,CAAC,CAAC;aAEV,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,IAAI,EAAE;AACf,QAAA,CAAC,CAAC;IACV;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;IAEA,IAAI,GAAA;QACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC;IACrE;IAEA,IAAI,GAAA;QACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAClE;8GAhCS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACPD;;AAEG;;;;"}
@@ -34,10 +34,10 @@ class CmatTitleService {
34
34
  }
35
35
  });
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatTitleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
38
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatTitleService, providedIn: 'root' }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatTitleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatTitleService, providedIn: 'root' }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatTitleService, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatTitleService, decorators: [{
41
41
  type: Injectable,
42
42
  args: [{
43
43
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-title.mjs","sources":["../../../projects/cmat/services/title/title.service.ts","../../../projects/cmat/services/title/cmat-services-title.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter, map, mergeMap } from 'rxjs/operators';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTitleService {\r\n sub: Subscription;\r\n appName: string;\r\n\r\n\r\n private _titleService = inject(Title);\r\n private _router = inject(Router);\r\n\r\n constructor() {\r\n this.sub = this._router.events.pipe(\r\n filter((event: any) => event instanceof NavigationEnd),\r\n map(() => this._router.routerState.root),\r\n map((route) => {\r\n\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n\r\n return route;\r\n }),\r\n\r\n mergeMap(route => route.data))\r\n .subscribe((data: Record<string, any>) => {\r\n let title = data['title'];\r\n\r\n if (title) {\r\n const fragment = this._router.url.split('#')[1];\r\n\r\n if (fragment) {\r\n title += ' | ' + CmatUtilsService.toTitleCase(fragment);\r\n }\r\n }\r\n\r\n if (title && this.appName) {\r\n title += ' - ' + this.appName;\r\n } else if (this.appName) {\r\n title = this.appName;\r\n }\r\n\r\n if (title) {\r\n this._titleService.setTitle(title);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAUa,gBAAgB,CAAA;AAQzB,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAG5B,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAC/B,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,YAAY,aAAa,CAAC,EACtD,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EACxC,GAAG,CAAC,CAAC,KAAK,KAAI;AAEV,YAAA,OAAO,KAAK,CAAC,UAAU,EAAE;AACrB,gBAAA,KAAK,GAAG,KAAK,CAAC,UAAU;;AAG5B,YAAA,OAAO,KAAK;AAChB,SAAC,CAAC,EAEF,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;AAC5B,aAAA,SAAS,CAAC,CAAC,IAAyB,KAAI;AACrC,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAEzB,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE/C,IAAI,QAAQ,EAAE;oBACV,KAAK,IAAI,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC;;;AAI/D,YAAA,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;;AAC1B,iBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACrB,gBAAA,KAAK,GAAG,IAAI,CAAC,OAAO;;YAGxB,IAAI,KAAK,EAAE;AACP,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAE1C,SAAC,CAAC;;8GA1CD,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACTD;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-services-title.mjs","sources":["../../../projects/cmat/services/title/title.service.ts","../../../projects/cmat/services/title/cmat-services-title.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter, map, mergeMap } from 'rxjs/operators';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTitleService {\r\n sub: Subscription;\r\n appName: string;\r\n\r\n\r\n private _titleService = inject(Title);\r\n private _router = inject(Router);\r\n\r\n constructor() {\r\n this.sub = this._router.events.pipe(\r\n filter((event: any) => event instanceof NavigationEnd),\r\n map(() => this._router.routerState.root),\r\n map((route) => {\r\n\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n\r\n return route;\r\n }),\r\n\r\n mergeMap(route => route.data))\r\n .subscribe((data: Record<string, any>) => {\r\n let title = data['title'];\r\n\r\n if (title) {\r\n const fragment = this._router.url.split('#')[1];\r\n\r\n if (fragment) {\r\n title += ' | ' + CmatUtilsService.toTitleCase(fragment);\r\n }\r\n }\r\n\r\n if (title && this.appName) {\r\n title += ' - ' + this.appName;\r\n } else if (this.appName) {\r\n title = this.appName;\r\n }\r\n\r\n if (title) {\r\n this._titleService.setTitle(title);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAUa,gBAAgB,CAAA;AAQzB,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAG5B,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAC/B,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,YAAY,aAAa,CAAC,EACtD,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EACxC,GAAG,CAAC,CAAC,KAAK,KAAI;AAEV,YAAA,OAAO,KAAK,CAAC,UAAU,EAAE;AACrB,gBAAA,KAAK,GAAG,KAAK,CAAC,UAAU;YAC5B;AAEA,YAAA,OAAO,KAAK;AAChB,QAAA,CAAC,CAAC,EAEF,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;AAC5B,aAAA,SAAS,CAAC,CAAC,IAAyB,KAAI;AACrC,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAEzB,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE/C,IAAI,QAAQ,EAAE;oBACV,KAAK,IAAI,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAC3D;YACJ;AAEA,YAAA,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;YACjC;AAAO,iBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACrB,gBAAA,KAAK,GAAG,IAAI,CAAC,OAAO;YACxB;YAEA,IAAI,KAAK,EAAE;AACP,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtC;AACJ,QAAA,CAAC,CAAC;IACV;8GA3CS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACTD;;AAEG;;;;"}
@@ -51,10 +51,10 @@ class CmatTranslationService {
51
51
  getTranslationAsync(key, interpolateParams) {
52
52
  return this._translate.get(key, interpolateParams);
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatTranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
55
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatTranslationService, providedIn: 'root' }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatTranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatTranslationService, providedIn: 'root' }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatTranslationService, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatTranslationService, decorators: [{
58
58
  type: Injectable,
59
59
  args: [{
60
60
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-translation.mjs","sources":["../../../projects/cmat/services/translation/translation.service.ts","../../../projects/cmat/services/translation/cmat-services-translation.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\r\nimport { Language, TranslateService } from '@ngx-translate/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTranslationService {\r\n private _translate = inject(TranslateService);\r\n\r\n private readonly _defaultLanguage = 'zh';\r\n\r\n private _onLanguageChanged = new Subject<Language>();\r\n\r\n constructor() {\r\n this.setDefaultLanguage(this._defaultLanguage);\r\n }\r\n\r\n get languageChanged$(): Observable<Language> {\r\n return this._onLanguageChanged.asObservable();\r\n }\r\n\r\n addLanguages(lang: Language[]): void {\r\n this._translate.addLangs(lang);\r\n }\r\n\r\n setDefaultLanguage(lang: Language): void {\r\n this._translate.setFallbackLang(lang);\r\n }\r\n\r\n getDefaultLanguage(): Language {\r\n return this._translate.getFallbackLang() ?? 'zh';\r\n }\r\n\r\n getBrowserLanguage(): Language | void {\r\n return this._translate.getBrowserLang();\r\n }\r\n\r\n\r\n useBrowserLanguage(): Language | void {\r\n const browserLang = this.getBrowserLanguage();\r\n\r\n if (browserLang && (/en|zh/.exec(browserLang))) {\r\n this.changeLanguage(browserLang);\r\n return browserLang;\r\n }\r\n return browserLang;\r\n }\r\n\r\n changeLanguage(language: Language = 'zh'): Language {\r\n if (!language) {\r\n language = this.getDefaultLanguage();\r\n }\r\n\r\n if (language !== this._translate.getCurrentLang()) {\r\n setTimeout(() => {\r\n this._translate.use(language);\r\n this._onLanguageChanged.next(language);\r\n });\r\n }\r\n return language;\r\n }\r\n\r\n\r\n getTranslation(key: string | string[], interpolateParams?: object): any {\r\n return this._translate.instant(key, interpolateParams);\r\n }\r\n\r\n\r\n getTranslationAsync(key: string | string[], interpolateParams?: object): Observable<any> {\r\n return this._translate.get(key, interpolateParams);\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAOa,sBAAsB,CAAA;AAO/B,IAAA,WAAA,GAAA;AANQ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE5B,IAAA,CAAA,gBAAgB,GAAG,IAAI;AAEhC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAY;AAGhD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC;;AAGlD,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;;AAGjD,IAAA,YAAY,CAAC,IAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAGlC,IAAA,kBAAkB,CAAC,IAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC;;IAGzC,kBAAkB,GAAA;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,IAAI;;IAGpD,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;;IAI3C,kBAAkB,GAAA;AACd,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAE7C,IAAI,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;AAChC,YAAA,OAAO,WAAW;;AAEtB,QAAA,OAAO,WAAW;;IAGtB,cAAc,CAAC,WAAqB,IAAI,EAAA;QACpC,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE;;QAGxC,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE;YAC/C,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,aAAC,CAAC;;AAEN,QAAA,OAAO,QAAQ;;IAInB,cAAc,CAAC,GAAsB,EAAE,iBAA0B,EAAA;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC;;IAI1D,mBAAmB,CAAC,GAAsB,EAAE,iBAA0B,EAAA;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC;;8GA/D7C,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFnB,MAAM,EAAA,CAAA,CAAA;;2FAET,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-services-translation.mjs","sources":["../../../projects/cmat/services/translation/translation.service.ts","../../../projects/cmat/services/translation/cmat-services-translation.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\r\nimport { Language, TranslateService } from '@ngx-translate/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTranslationService {\r\n private _translate = inject(TranslateService);\r\n\r\n private readonly _defaultLanguage = 'zh';\r\n\r\n private _onLanguageChanged = new Subject<Language>();\r\n\r\n constructor() {\r\n this.setDefaultLanguage(this._defaultLanguage);\r\n }\r\n\r\n get languageChanged$(): Observable<Language> {\r\n return this._onLanguageChanged.asObservable();\r\n }\r\n\r\n addLanguages(lang: Language[]): void {\r\n this._translate.addLangs(lang);\r\n }\r\n\r\n setDefaultLanguage(lang: Language): void {\r\n this._translate.setFallbackLang(lang);\r\n }\r\n\r\n getDefaultLanguage(): Language {\r\n return this._translate.getFallbackLang() ?? 'zh';\r\n }\r\n\r\n getBrowserLanguage(): Language | void {\r\n return this._translate.getBrowserLang();\r\n }\r\n\r\n\r\n useBrowserLanguage(): Language | void {\r\n const browserLang = this.getBrowserLanguage();\r\n\r\n if (browserLang && (/en|zh/.exec(browserLang))) {\r\n this.changeLanguage(browserLang);\r\n return browserLang;\r\n }\r\n return browserLang;\r\n }\r\n\r\n changeLanguage(language: Language = 'zh'): Language {\r\n if (!language) {\r\n language = this.getDefaultLanguage();\r\n }\r\n\r\n if (language !== this._translate.getCurrentLang()) {\r\n setTimeout(() => {\r\n this._translate.use(language);\r\n this._onLanguageChanged.next(language);\r\n });\r\n }\r\n return language;\r\n }\r\n\r\n\r\n getTranslation(key: string | string[], interpolateParams?: object): any {\r\n return this._translate.instant(key, interpolateParams);\r\n }\r\n\r\n\r\n getTranslationAsync(key: string | string[], interpolateParams?: object): Observable<any> {\r\n return this._translate.get(key, interpolateParams);\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAOa,sBAAsB,CAAA;AAO/B,IAAA,WAAA,GAAA;AANQ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE5B,IAAA,CAAA,gBAAgB,GAAG,IAAI;AAEhC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAY;AAGhD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAClD;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACjD;AAEA,IAAA,YAAY,CAAC,IAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC;AAEA,IAAA,kBAAkB,CAAC,IAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC;IACzC;IAEA,kBAAkB,GAAA;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,IAAI;IACpD;IAEA,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;IAC3C;IAGA,kBAAkB,GAAA;AACd,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAE7C,IAAI,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;AAChC,YAAA,OAAO,WAAW;QACtB;AACA,QAAA,OAAO,WAAW;IACtB;IAEA,cAAc,CAAC,WAAqB,IAAI,EAAA;QACpC,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACxC;QAEA,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE;YAC/C,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,YAAA,CAAC,CAAC;QACN;AACA,QAAA,OAAO,QAAQ;IACnB;IAGA,cAAc,CAAC,GAAsB,EAAE,iBAA0B,EAAA;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAC1D;IAGA,mBAAmB,CAAC,GAAsB,EAAE,iBAA0B,EAAA;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC;IACtD;8GAhES,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFnB,MAAM,EAAA,CAAA,CAAA;;2FAET,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACND;;AAEG;;;;"}
@@ -503,10 +503,10 @@ class CmatUtilsService {
503
503
  }
504
504
  return id;
505
505
  }
506
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatUtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
507
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatUtilsService, providedIn: 'root' }); }
506
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatUtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
507
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatUtilsService, providedIn: 'root' }); }
508
508
  }
509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CmatUtilsService, decorators: [{
509
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: CmatUtilsService, decorators: [{
510
510
  type: Injectable,
511
511
  args: [{
512
512
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-utils.mjs","sources":["../../../projects/cmat/services/utils/utils.service.ts","../../../projects/cmat/services/utils/cmat-services-utils.ts"],"sourcesContent":["import { HttpErrorResponse, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { IsActiveMatchOptions } from '@angular/router';\r\nimport AES from 'crypto-js/aes';\r\nimport CryptoJSCore from 'crypto-js/core';\r\nimport Base64 from 'crypto-js/enc-base64';\r\nimport Hex from 'crypto-js/enc-hex';\r\nimport UTF8 from 'crypto-js/enc-utf8';\r\nimport Pkcs7 from 'crypto-js/pad-pkcs7';\r\nimport dayjs from 'dayjs';\r\nimport { isUndefined } from 'lodash-es';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { CMAT_VERSION } from 'cmat/version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatUtilsService {\r\n public static readonly captionAndMessageSeparator = ':';\r\n public static readonly noNetworkMessageCaption = '无网络';\r\n public static readonly noNetworkMessageDetail = '无法连接服务器';\r\n public static readonly accessDeniedMessageCaption = '拒绝访问!';\r\n public static readonly accessDeniedMessageDetail = '';\r\n private static readonly key = UTF8.parse('14789632236987411478963223698741');//32位\r\n private static readonly iv = UTF8.parse('1478963223698741');//16位\r\n\r\n get exactMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'exact',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'exact'\r\n };\r\n }\r\n\r\n get subsetMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'subset',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'subset'\r\n };\r\n }\r\n\r\n public static getRequestHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestIdempotentHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('X-Request-ID', CmatUtilsService.newGuid())\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestBypassHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('bypass', 'true')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestIdempotentBypassHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('X-Request-ID', CmatUtilsService.newGuid())\r\n .append('bypass', 'true')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestCryptoHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoBypassHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('bypass', 'true')\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoIdempotentHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('X-Request-ID', CmatUtilsService.newGuid())\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoIdempotentBypassHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('X-Request-ID', CmatUtilsService.newGuid())\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('bypass', 'true')\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getEncryptData(data: string): string {\r\n const src = UTF8.parse(data);\r\n\r\n return AES.encrypt(src, this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).ciphertext.toString();\r\n }\r\n\r\n public static getDecryptData(data: string): string {\r\n const encryptedHexStr = Hex.parse(data);\r\n return AES.decrypt(Base64.stringify(encryptedHexStr), this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).toString(UTF8).toString();\r\n }\r\n\r\n public static handleError(error: any): Observable<never> {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('Client side network error occurred:', error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error('Backend - ' +\r\n `status: ${error.status}, ` +\r\n `statusText: ${error.statusText}, ` +\r\n `message: ${error.message}`);\r\n }\r\n\r\n // return an observable with a user-facing error message\r\n return throwError(() => error ?? 'server error');\r\n }\r\n\r\n public static getHttpResponseMessage(data: any): string[] {\r\n\r\n const responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n } else {\r\n const responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (const key in responseObject) {\r\n if (Object.prototype.hasOwnProperty.call(responseObject, key)) {\r\n if (key) {\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n } else if (responseObject[key]) {\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data)) {\r\n responses.push(`${this.getResponseBody(data).toString()}`);\r\n }\r\n }\r\n\r\n if (!responses.length) {\r\n responses.push(data.toString());\r\n }\r\n\r\n if (this.checkAccessDenied(data)) {\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n }\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: any, seachInCaptionOnly = true, includeCaptionInResult = false): string | null {\r\n const searchString = messageToFind.toLowerCase();\r\n const httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (const message of httpMessages) {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart?.toLowerCase().includes(searchString)) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (const message of httpMessages) {\r\n\r\n if (message.toLowerCase().includes(searchString)) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n } else {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static getResponseBody(response: HttpResponseBase): any {\r\n if (response instanceof HttpResponse) {\r\n return response.body;\r\n }\r\n\r\n if (response instanceof HttpErrorResponse) {\r\n return response.error ?? response.message ?? response.statusText;\r\n }\r\n return response;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string): boolean {\r\n if (url) {\r\n const location = new URL(url, base);\r\n return location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static getQueryParamsFromString(paramString: string): Record<string, string | null> | null {\r\n if (!paramString) {\r\n return null;\r\n }\r\n\r\n const params: Record<string, string | null> = {};\r\n\r\n for (const param of paramString.split('&')) {\r\n const keyValue = CmatUtilsService.splitInTwo(param, '=');\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n public static splitInTwo(text: string, separator?: string): { firstPart: string; secondPart: string | null } {\r\n const separatorIndex = separator ? text.indexOf(separator) : -1;\r\n\r\n if (separatorIndex === -1) {\r\n return { firstPart: text, secondPart: null };\r\n }\r\n\r\n const part1 = text.substring(0, separatorIndex).trim();\r\n const part2 = text.substring(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n public static safeStringify(object: any): string {\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch { /* empty */ }\r\n\r\n const simpleObject: any = {};\r\n\r\n for (const prop in object) {\r\n if (!Object.prototype.hasOwnProperty.call(object, prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = '[***Sanitized Object***]: ' + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n public static jsonTryParse(value: string): string | void {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n if (isUndefined(value)) {\r\n return void 0;\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string): string {\r\n if (text) {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n return text;\r\n }\r\n }\r\n\r\n\r\n public static toTitleCase(text: string): string {\r\n return text.replace(/\\w\\S*/g, subString => subString.charAt(0).toUpperCase() + subString.substring(1).toLowerCase());\r\n }\r\n\r\n public static toLowerCase(items: any): string | string[] | void {\r\n if (items instanceof Array) {\r\n const loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n } else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n\r\n return void 0;\r\n }\r\n\r\n public static uniqueId(): string {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n public static randomNumber(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public static baseUrl(): string {\r\n let base: string;\r\n\r\n if (window.location.origin) {\r\n base = window.location.origin;\r\n } else {\r\n base = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n public static newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n\r\n const r = (Math.random() * 16) | 0;\r\n\r\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n public static testIsAbsoluteUrl(url: string): boolean {\r\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n public static convertToAbsoluteUrl(url: string): string {\r\n return CmatUtilsService.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n public static urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: {\r\n break;\r\n }\r\n case 2: {\r\n output += '==';\r\n break;\r\n }\r\n case 3: {\r\n output += '=';\r\n break;\r\n }\r\n }\r\n return this._base64DecodeUnicode(output);\r\n }\r\n\r\n public static decodeToken(token: string): any {\r\n const parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n const decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public static getTokenExpirationDate(token: string): Date | null {\r\n const decoded = this.decodeToken(token);\r\n\r\n if (!Object.prototype.hasOwnProperty.call(decoded, 'exp')) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public static isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n const date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds ?? 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n\r\n public static readAsDataURL(file: File): Promise<any> {\r\n // Return a new promise\r\n return new Promise((resolve, reject) => {\r\n\r\n // Create a new reader\r\n const reader = new FileReader();\r\n\r\n // Resolve the promise on success\r\n reader.onload = (): void => {\r\n resolve(reader.result);\r\n };\r\n\r\n // Reject the promise on error\r\n reader.onerror = (e): void => {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n reject(e);\r\n };\r\n\r\n // Read the file as the\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n public static dataURIToBlob(dataURI: string): Blob {\r\n const splitDataURI = dataURI.split(',');\r\n\r\n const byteString = splitDataURI[0].includes('base64') ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);\r\n const mimeString = splitDataURI[0].split(':')[1].split(';')[0];\r\n\r\n const ia = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new Blob([ia], { type: mimeString });\r\n }\r\n\r\n public static getFileType(accept: string): 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip' {\r\n let fileType = 'file';\r\n switch (accept) {\r\n case 'image/jpeg':\r\n case 'image/jpg':\r\n fileType = 'jpg';\r\n break;\r\n case 'image/png':\r\n fileType = 'png';\r\n break;\r\n case 'text/csv':\r\n fileType = 'csv';\r\n break;\r\n case 'image/gif':\r\n fileType = 'gif';\r\n break;\r\n case 'application/msword':\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n fileType = 'word';\r\n break;\r\n case 'application/vnd.ms-excel':\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n fileType = 'word';\r\n break;\r\n case 'application/pdf':\r\n fileType = 'pdf';\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n case 'application/vnd.ms-powerpoint':\r\n fileType = 'ppt';\r\n break;\r\n case 'text/plain':\r\n fileType = 'text';\r\n break;\r\n case 'video/mpeg':\r\n case 'video/mp4':\r\n case 'audio/mp4':\r\n fileType = 'video';\r\n break;\r\n case 'aplication/zip':\r\n fileType = 'zip';\r\n break;\r\n }\r\n\r\n return fileType as 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip';\r\n }\r\n\r\n // 添加一个私有方法用于更准确地判断是否为日期字符串\r\n public static isDateString(value: any): boolean {\r\n // 首先检查是否为字符串或数字\r\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) {\r\n return false;\r\n }\r\n\r\n // 转换为字符串进行检查\r\n const stringValue = String(value);\r\n\r\n // 排除纯数字字符串(如 \"1\", \"123\" 等)\r\n if (/^\\d+$/.test(stringValue)) {\r\n return false;\r\n }\r\n\r\n // 尝试解析日期\r\n const parsedDate = Date.parse(stringValue);\r\n\r\n // 检查是否能成功解析且不是纯数字\r\n if (isNaN(parsedDate)) {\r\n return false;\r\n }\r\n\r\n // 使用 dayjs 验证是否为有效日期\r\n return dayjs(stringValue).isValid();\r\n }\r\n\r\n //用于导出时结构转换,columns结构为{ code: string;label: string;}\r\n public static transformObjectsForExport(jsonObjects: any[], columns: any[]): any[] {\r\n return jsonObjects.map((jsonObject) => {\r\n const result: any = {};\r\n columns.forEach((info) => {\r\n const parts = info.code.split('.');\r\n const lastPart = parts.pop()!;\r\n let currentValue = jsonObject;\r\n\r\n // 遍历对象路径,直到找到最终属性所在的对象\r\n parts.forEach((part:any) => {\r\n if (Object.prototype.hasOwnProperty.call(currentValue, part)) {\r\n currentValue = currentValue[part];\r\n } else {\r\n // 如果路径中的任何部分不存在,则设置为 undefined\r\n currentValue = undefined;\r\n }\r\n });\r\n\r\n // 如果最终属性不存在,则设置为默认值(这里为空字符串)\r\n // 或者,您可以根据需要设置其他默认值或进行其他逻辑处理\r\n result[info.code] = currentValue ? (Object.prototype.hasOwnProperty.call(currentValue, lastPart) ? currentValue[lastPart] : '') : '';\r\n });\r\n\r\n return result;\r\n });\r\n }\r\n\r\n private static _base64DecodeUnicode(str: any): string {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));\r\n }\r\n\r\n randomId(stringLength: number = 10): string {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n let id = '';\r\n\r\n for (let i = 0; i < stringLength; i++) {\r\n id += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n\r\n return id;\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-services-utils.mjs","sources":["../../../projects/cmat/services/utils/utils.service.ts","../../../projects/cmat/services/utils/cmat-services-utils.ts"],"sourcesContent":["import { HttpErrorResponse, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { IsActiveMatchOptions } from '@angular/router';\r\nimport AES from 'crypto-js/aes';\r\nimport CryptoJSCore from 'crypto-js/core';\r\nimport Base64 from 'crypto-js/enc-base64';\r\nimport Hex from 'crypto-js/enc-hex';\r\nimport UTF8 from 'crypto-js/enc-utf8';\r\nimport Pkcs7 from 'crypto-js/pad-pkcs7';\r\nimport dayjs from 'dayjs';\r\nimport { isUndefined } from 'lodash-es';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { CMAT_VERSION } from 'cmat/version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatUtilsService {\r\n public static readonly captionAndMessageSeparator = ':';\r\n public static readonly noNetworkMessageCaption = '无网络';\r\n public static readonly noNetworkMessageDetail = '无法连接服务器';\r\n public static readonly accessDeniedMessageCaption = '拒绝访问!';\r\n public static readonly accessDeniedMessageDetail = '';\r\n private static readonly key = UTF8.parse('14789632236987411478963223698741');//32位\r\n private static readonly iv = UTF8.parse('1478963223698741');//16位\r\n\r\n get exactMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'exact',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'exact'\r\n };\r\n }\r\n\r\n get subsetMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'subset',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'subset'\r\n };\r\n }\r\n\r\n public static getRequestHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestIdempotentHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('X-Request-ID', CmatUtilsService.newGuid())\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestBypassHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('bypass', 'true')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestIdempotentBypassHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('X-Request-ID', CmatUtilsService.newGuid())\r\n .append('bypass', 'true')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestCryptoHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoBypassHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('bypass', 'true')\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoIdempotentHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('X-Request-ID', CmatUtilsService.newGuid())\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoIdempotentBypassHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('X-Request-ID', CmatUtilsService.newGuid())\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('bypass', 'true')\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getEncryptData(data: string): string {\r\n const src = UTF8.parse(data);\r\n\r\n return AES.encrypt(src, this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).ciphertext.toString();\r\n }\r\n\r\n public static getDecryptData(data: string): string {\r\n const encryptedHexStr = Hex.parse(data);\r\n return AES.decrypt(Base64.stringify(encryptedHexStr), this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).toString(UTF8).toString();\r\n }\r\n\r\n public static handleError(error: any): Observable<never> {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('Client side network error occurred:', error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error('Backend - ' +\r\n `status: ${error.status}, ` +\r\n `statusText: ${error.statusText}, ` +\r\n `message: ${error.message}`);\r\n }\r\n\r\n // return an observable with a user-facing error message\r\n return throwError(() => error ?? 'server error');\r\n }\r\n\r\n public static getHttpResponseMessage(data: any): string[] {\r\n\r\n const responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n } else {\r\n const responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (const key in responseObject) {\r\n if (Object.prototype.hasOwnProperty.call(responseObject, key)) {\r\n if (key) {\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n } else if (responseObject[key]) {\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data)) {\r\n responses.push(`${this.getResponseBody(data).toString()}`);\r\n }\r\n }\r\n\r\n if (!responses.length) {\r\n responses.push(data.toString());\r\n }\r\n\r\n if (this.checkAccessDenied(data)) {\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n }\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: any, seachInCaptionOnly = true, includeCaptionInResult = false): string | null {\r\n const searchString = messageToFind.toLowerCase();\r\n const httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (const message of httpMessages) {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart?.toLowerCase().includes(searchString)) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (const message of httpMessages) {\r\n\r\n if (message.toLowerCase().includes(searchString)) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n } else {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static getResponseBody(response: HttpResponseBase): any {\r\n if (response instanceof HttpResponse) {\r\n return response.body;\r\n }\r\n\r\n if (response instanceof HttpErrorResponse) {\r\n return response.error ?? response.message ?? response.statusText;\r\n }\r\n return response;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string): boolean {\r\n if (url) {\r\n const location = new URL(url, base);\r\n return location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static getQueryParamsFromString(paramString: string): Record<string, string | null> | null {\r\n if (!paramString) {\r\n return null;\r\n }\r\n\r\n const params: Record<string, string | null> = {};\r\n\r\n for (const param of paramString.split('&')) {\r\n const keyValue = CmatUtilsService.splitInTwo(param, '=');\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n public static splitInTwo(text: string, separator?: string): { firstPart: string; secondPart: string | null } {\r\n const separatorIndex = separator ? text.indexOf(separator) : -1;\r\n\r\n if (separatorIndex === -1) {\r\n return { firstPart: text, secondPart: null };\r\n }\r\n\r\n const part1 = text.substring(0, separatorIndex).trim();\r\n const part2 = text.substring(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n public static safeStringify(object: any): string {\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch { /* empty */ }\r\n\r\n const simpleObject: any = {};\r\n\r\n for (const prop in object) {\r\n if (!Object.prototype.hasOwnProperty.call(object, prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = '[***Sanitized Object***]: ' + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n public static jsonTryParse(value: string): string | void {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n if (isUndefined(value)) {\r\n return void 0;\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string): string {\r\n if (text) {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n return text;\r\n }\r\n }\r\n\r\n\r\n public static toTitleCase(text: string): string {\r\n return text.replace(/\\w\\S*/g, subString => subString.charAt(0).toUpperCase() + subString.substring(1).toLowerCase());\r\n }\r\n\r\n public static toLowerCase(items: any): string | string[] | void {\r\n if (items instanceof Array) {\r\n const loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n } else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n\r\n return void 0;\r\n }\r\n\r\n public static uniqueId(): string {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n public static randomNumber(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public static baseUrl(): string {\r\n let base: string;\r\n\r\n if (window.location.origin) {\r\n base = window.location.origin;\r\n } else {\r\n base = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n public static newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n\r\n const r = (Math.random() * 16) | 0;\r\n\r\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n public static testIsAbsoluteUrl(url: string): boolean {\r\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n public static convertToAbsoluteUrl(url: string): string {\r\n return CmatUtilsService.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n public static urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: {\r\n break;\r\n }\r\n case 2: {\r\n output += '==';\r\n break;\r\n }\r\n case 3: {\r\n output += '=';\r\n break;\r\n }\r\n }\r\n return this._base64DecodeUnicode(output);\r\n }\r\n\r\n public static decodeToken(token: string): any {\r\n const parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n const decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public static getTokenExpirationDate(token: string): Date | null {\r\n const decoded = this.decodeToken(token);\r\n\r\n if (!Object.prototype.hasOwnProperty.call(decoded, 'exp')) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public static isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n const date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds ?? 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n\r\n public static readAsDataURL(file: File): Promise<any> {\r\n // Return a new promise\r\n return new Promise((resolve, reject) => {\r\n\r\n // Create a new reader\r\n const reader = new FileReader();\r\n\r\n // Resolve the promise on success\r\n reader.onload = (): void => {\r\n resolve(reader.result);\r\n };\r\n\r\n // Reject the promise on error\r\n reader.onerror = (e): void => {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n reject(e);\r\n };\r\n\r\n // Read the file as the\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n public static dataURIToBlob(dataURI: string): Blob {\r\n const splitDataURI = dataURI.split(',');\r\n\r\n const byteString = splitDataURI[0].includes('base64') ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);\r\n const mimeString = splitDataURI[0].split(':')[1].split(';')[0];\r\n\r\n const ia = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new Blob([ia], { type: mimeString });\r\n }\r\n\r\n public static getFileType(accept: string): 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip' {\r\n let fileType = 'file';\r\n switch (accept) {\r\n case 'image/jpeg':\r\n case 'image/jpg':\r\n fileType = 'jpg';\r\n break;\r\n case 'image/png':\r\n fileType = 'png';\r\n break;\r\n case 'text/csv':\r\n fileType = 'csv';\r\n break;\r\n case 'image/gif':\r\n fileType = 'gif';\r\n break;\r\n case 'application/msword':\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n fileType = 'word';\r\n break;\r\n case 'application/vnd.ms-excel':\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n fileType = 'word';\r\n break;\r\n case 'application/pdf':\r\n fileType = 'pdf';\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n case 'application/vnd.ms-powerpoint':\r\n fileType = 'ppt';\r\n break;\r\n case 'text/plain':\r\n fileType = 'text';\r\n break;\r\n case 'video/mpeg':\r\n case 'video/mp4':\r\n case 'audio/mp4':\r\n fileType = 'video';\r\n break;\r\n case 'aplication/zip':\r\n fileType = 'zip';\r\n break;\r\n }\r\n\r\n return fileType as 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip';\r\n }\r\n\r\n // 添加一个私有方法用于更准确地判断是否为日期字符串\r\n public static isDateString(value: any): boolean {\r\n // 首先检查是否为字符串或数字\r\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) {\r\n return false;\r\n }\r\n\r\n // 转换为字符串进行检查\r\n const stringValue = String(value);\r\n\r\n // 排除纯数字字符串(如 \"1\", \"123\" 等)\r\n if (/^\\d+$/.test(stringValue)) {\r\n return false;\r\n }\r\n\r\n // 尝试解析日期\r\n const parsedDate = Date.parse(stringValue);\r\n\r\n // 检查是否能成功解析且不是纯数字\r\n if (isNaN(parsedDate)) {\r\n return false;\r\n }\r\n\r\n // 使用 dayjs 验证是否为有效日期\r\n return dayjs(stringValue).isValid();\r\n }\r\n\r\n //用于导出时结构转换,columns结构为{ code: string;label: string;}\r\n public static transformObjectsForExport(jsonObjects: any[], columns: any[]): any[] {\r\n return jsonObjects.map((jsonObject) => {\r\n const result: any = {};\r\n columns.forEach((info) => {\r\n const parts = info.code.split('.');\r\n const lastPart = parts.pop()!;\r\n let currentValue = jsonObject;\r\n\r\n // 遍历对象路径,直到找到最终属性所在的对象\r\n parts.forEach((part:any) => {\r\n if (Object.prototype.hasOwnProperty.call(currentValue, part)) {\r\n currentValue = currentValue[part];\r\n } else {\r\n // 如果路径中的任何部分不存在,则设置为 undefined\r\n currentValue = undefined;\r\n }\r\n });\r\n\r\n // 如果最终属性不存在,则设置为默认值(这里为空字符串)\r\n // 或者,您可以根据需要设置其他默认值或进行其他逻辑处理\r\n result[info.code] = currentValue ? (Object.prototype.hasOwnProperty.call(currentValue, lastPart) ? currentValue[lastPart] : '') : '';\r\n });\r\n\r\n return result;\r\n });\r\n }\r\n\r\n private static _base64DecodeUnicode(str: any): string {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));\r\n }\r\n\r\n randomId(stringLength: number = 10): string {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n let id = '';\r\n\r\n for (let i = 0; i < stringLength; i++) {\r\n id += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n\r\n return id;\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-validators.mjs","sources":["../../../projects/cmat/validators/validators.ts","../../../projects/cmat/validators/cmat-validators.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport class CmatValidators {\r\n static isEmptyInputValue(value: any): boolean {\r\n return value == null || value.length === 0;\r\n }\r\n\r\n static mustMatch(controlPath: string, matchingControlPath: string): ValidatorFn {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n\r\n // Get the control and matching control\r\n const control = formGroup.get(controlPath);\r\n const matchingControl = formGroup.get(matchingControlPath);\r\n\r\n // Return if control or matching control doesn't exist\r\n if (!control || !matchingControl) {\r\n return null;\r\n }\r\n\r\n // Delete the mustMatch error to reset the error on the matching control\r\n if (matchingControl.hasError('mustMatch')) {\r\n delete matchingControl.errors?.['mustMatch'];\r\n matchingControl.updateValueAndValidity();\r\n }\r\n\r\n // Don't validate empty values on the matching control\r\n // Don't validate if values are matching\r\n if (this.isEmptyInputValue(matchingControl.value) || control.value === matchingControl.value) {\r\n return null;\r\n }\r\n\r\n // Prepare the validation errors\r\n const errors = { mustMatch: true };\r\n\r\n // Set the validation error on the matching control\r\n matchingControl.setErrors(errors);\r\n\r\n // Return the errors\r\n return errors;\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"MAEa,cAAc,CAAA;IACvB,OAAO,iBAAiB,CAAC,KAAU,EAAA;QAC/B,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;;AAG9C,IAAA,OAAO,SAAS,CAAC,WAAmB,EAAE,mBAA2B,EAAA;QAC7D,OAAO,CAAC,SAA0B,KAA6B;;YAG3D,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;YAC1C,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC;;AAG1D,YAAA,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE;AAC9B,gBAAA,OAAO,IAAI;;;AAIf,YAAA,IAAI,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACvC,gBAAA,OAAO,eAAe,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC5C,eAAe,CAAC,sBAAsB,EAAE;;;;AAK5C,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE;AAC1F,gBAAA,OAAO,IAAI;;;AAIf,YAAA,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;;AAGlC,YAAA,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC;;AAGjC,YAAA,OAAO,MAAM;AACjB,SAAC;;AAER;;ACzCD;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-validators.mjs","sources":["../../../projects/cmat/validators/validators.ts","../../../projects/cmat/validators/cmat-validators.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport class CmatValidators {\r\n static isEmptyInputValue(value: any): boolean {\r\n return value == null || value.length === 0;\r\n }\r\n\r\n static mustMatch(controlPath: string, matchingControlPath: string): ValidatorFn {\r\n return (formGroup: AbstractControl): ValidationErrors | null => {\r\n\r\n // Get the control and matching control\r\n const control = formGroup.get(controlPath);\r\n const matchingControl = formGroup.get(matchingControlPath);\r\n\r\n // Return if control or matching control doesn't exist\r\n if (!control || !matchingControl) {\r\n return null;\r\n }\r\n\r\n // Delete the mustMatch error to reset the error on the matching control\r\n if (matchingControl.hasError('mustMatch')) {\r\n delete matchingControl.errors?.['mustMatch'];\r\n matchingControl.updateValueAndValidity();\r\n }\r\n\r\n // Don't validate empty values on the matching control\r\n // Don't validate if values are matching\r\n if (this.isEmptyInputValue(matchingControl.value) || control.value === matchingControl.value) {\r\n return null;\r\n }\r\n\r\n // Prepare the validation errors\r\n const errors = { mustMatch: true };\r\n\r\n // Set the validation error on the matching control\r\n matchingControl.setErrors(errors);\r\n\r\n // Return the errors\r\n return errors;\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"MAEa,cAAc,CAAA;IACvB,OAAO,iBAAiB,CAAC,KAAU,EAAA;QAC/B,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;IAC9C;AAEA,IAAA,OAAO,SAAS,CAAC,WAAmB,EAAE,mBAA2B,EAAA;QAC7D,OAAO,CAAC,SAA0B,KAA6B;;YAG3D,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;YAC1C,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC;;AAG1D,YAAA,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE;AAC9B,gBAAA,OAAO,IAAI;YACf;;AAGA,YAAA,IAAI,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACvC,gBAAA,OAAO,eAAe,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC5C,eAAe,CAAC,sBAAsB,EAAE;YAC5C;;;AAIA,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE;AAC1F,gBAAA,OAAO,IAAI;YACf;;AAGA,YAAA,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;;AAGlC,YAAA,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC;;AAGjC,YAAA,OAAO,MAAM;AACjB,QAAA,CAAC;IACL;AACH;;ACzCD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-version.mjs","sources":["../../../projects/cmat/version/version.ts","../../../projects/cmat/version/cmat-version.ts"],"sourcesContent":["export class Version\r\n{\r\n public readonly full: string;\r\n public readonly major: string;\r\n public readonly minor: string;\r\n public readonly patch: string;\r\n\r\n constructor(public version: string)\r\n {\r\n this.full = version;\r\n this.major = version.split('.')[0];\r\n this.minor = version.split('.')[1];\r\n this.patch = version.split('.').slice(2).join('.');\r\n }\r\n}\r\n\r\nexport const CMAT_VERSION = new Version('1.0.0').full;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"MAAa,OAAO,CAAA;AAOhB,IAAA,WAAA,CAAmB,OAAe,EAAA;QAAf,IAAA,CAAA,OAAO,GAAP,OAAO;AAEtB,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAEzD;AAEM,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;;AChBjD;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-version.mjs","sources":["../../../projects/cmat/version/version.ts","../../../projects/cmat/version/cmat-version.ts"],"sourcesContent":["export class Version\r\n{\r\n public readonly full: string;\r\n public readonly major: string;\r\n public readonly minor: string;\r\n public readonly patch: string;\r\n\r\n constructor(public version: string)\r\n {\r\n this.full = version;\r\n this.major = version.split('.')[0];\r\n this.minor = version.split('.')[1];\r\n this.patch = version.split('.').slice(2).join('.');\r\n }\r\n}\r\n\r\nexport const CMAT_VERSION = new Version('1.0.0').full;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"MAAa,OAAO,CAAA;AAOhB,IAAA,WAAA,CAAmB,OAAe,EAAA;QAAf,IAAA,CAAA,OAAO,GAAP,OAAO;AAEtB,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACtD;AACH;AAEM,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;;AChBjD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmat",
3
- "version": "0.0.45",
3
+ "version": "0.0.47",
4
4
  "author": {
5
5
  "name": "Yu Tao",
6
6
  "email": "916426364@qq.com"
@@ -181,14 +181,14 @@
181
181
  "types": "./components/toast/index.d.ts",
182
182
  "default": "./fesm2022/cmat-components-toast.mjs"
183
183
  },
184
- "./components/transfer-picker": {
185
- "types": "./components/transfer-picker/index.d.ts",
186
- "default": "./fesm2022/cmat-components-transfer-picker.mjs"
187
- },
188
184
  "./components/treetable": {
189
185
  "types": "./components/treetable/index.d.ts",
190
186
  "default": "./fesm2022/cmat-components-treetable.mjs"
191
187
  },
188
+ "./components/transfer-picker": {
189
+ "types": "./components/transfer-picker/index.d.ts",
190
+ "default": "./fesm2022/cmat-components-transfer-picker.mjs"
191
+ },
192
192
  "./components/upload": {
193
193
  "types": "./components/upload/index.d.ts",
194
194
  "default": "./fesm2022/cmat-components-upload.mjs"
@@ -205,38 +205,34 @@
205
205
  "types": "./directives/arrow-cursor/index.d.ts",
206
206
  "default": "./fesm2022/cmat-directives-arrow-cursor.mjs"
207
207
  },
208
- "./directives/autofocus": {
209
- "types": "./directives/autofocus/index.d.ts",
210
- "default": "./fesm2022/cmat-directives-autofocus.mjs"
211
- },
212
208
  "./directives/data-exporter": {
213
209
  "types": "./directives/data-exporter/index.d.ts",
214
210
  "default": "./fesm2022/cmat-directives-data-exporter.mjs"
215
211
  },
212
+ "./directives/autofocus": {
213
+ "types": "./directives/autofocus/index.d.ts",
214
+ "default": "./fesm2022/cmat-directives-autofocus.mjs"
215
+ },
216
216
  "./directives/debounce": {
217
217
  "types": "./directives/debounce/index.d.ts",
218
218
  "default": "./fesm2022/cmat-directives-debounce.mjs"
219
219
  },
220
- "./directives/digit-only": {
221
- "types": "./directives/digit-only/index.d.ts",
222
- "default": "./fesm2022/cmat-directives-digit-only.mjs"
223
- },
224
- "./directives/equal-validator": {
225
- "types": "./directives/equal-validator/index.d.ts",
226
- "default": "./fesm2022/cmat-directives-equal-validator.mjs"
227
- },
228
- "./lib/mock-api": {
229
- "types": "./lib/mock-api/index.d.ts",
230
- "default": "./fesm2022/cmat-lib-mock-api.mjs"
231
- },
232
220
  "./pipes/bytes": {
233
221
  "types": "./pipes/bytes/index.d.ts",
234
222
  "default": "./fesm2022/cmat-pipes-bytes.mjs"
235
223
  },
224
+ "./directives/digit-only": {
225
+ "types": "./directives/digit-only/index.d.ts",
226
+ "default": "./fesm2022/cmat-directives-digit-only.mjs"
227
+ },
236
228
  "./pipes/date-format": {
237
229
  "types": "./pipes/date-format/index.d.ts",
238
230
  "default": "./fesm2022/cmat-pipes-date-format.mjs"
239
231
  },
232
+ "./directives/equal-validator": {
233
+ "types": "./directives/equal-validator/index.d.ts",
234
+ "default": "./fesm2022/cmat-directives-equal-validator.mjs"
235
+ },
240
236
  "./pipes/find-by-key": {
241
237
  "types": "./pipes/find-by-key/index.d.ts",
242
238
  "default": "./fesm2022/cmat-pipes-find-by-key.mjs"
@@ -257,14 +253,18 @@
257
253
  "types": "./pipes/uppercase/index.d.ts",
258
254
  "default": "./fesm2022/cmat-pipes-uppercase.mjs"
259
255
  },
260
- "./services/alert": {
261
- "types": "./services/alert/index.d.ts",
262
- "default": "./fesm2022/cmat-services-alert.mjs"
256
+ "./lib/mock-api": {
257
+ "types": "./lib/mock-api/index.d.ts",
258
+ "default": "./fesm2022/cmat-lib-mock-api.mjs"
263
259
  },
264
260
  "./services/config": {
265
261
  "types": "./services/config/index.d.ts",
266
262
  "default": "./fesm2022/cmat-services-config.mjs"
267
263
  },
264
+ "./services/alert": {
265
+ "types": "./services/alert/index.d.ts",
266
+ "default": "./fesm2022/cmat-services-alert.mjs"
267
+ },
268
268
  "./services/confirmation": {
269
269
  "types": "./services/confirmation/index.d.ts",
270
270
  "default": "./fesm2022/cmat-services-confirmation.mjs"
@@ -88,10 +88,10 @@ cmat-date-range {
88
88
  .range {
89
89
  .start,
90
90
  .end {
91
- @screen sm {
92
- max-width: $control-width;
93
- min-width: $control-width;
94
- width: $control-width;
91
+ @media (min-width: theme('screens.sm')) {
92
+ max-width: $control-width;
93
+ min-width: $control-width;
94
+ width: $control-width;
95
95
  }
96
96
 
97
97
  @apply shadow-xs bg-white border-slate-300 dark:bg-black/5 dark:border-slate-500;
@@ -99,8 +99,8 @@ cmat-date-range {
99
99
  }
100
100
 
101
101
  .separator {
102
- @screen sm {
103
- margin: 0 12px;
102
+ @media (min-width: theme('screens.sm')) {
103
+ margin: 0 12px;
104
104
  }
105
105
  }
106
106
  }
@@ -316,7 +316,7 @@ cmat-horizontal-navigation {
316
316
  /* Basic, Branch */
317
317
  cmat-horizontal-navigation-basic-item,
318
318
  cmat-horizontal-navigation-branch-item {
319
- @screen sm {
319
+ @media (min-width: theme('screens.sm')) {
320
320
  &:hover {
321
321
  .cmat-horizontal-navigation-item-wrapper {
322
322
  @apply bg-hover;
@@ -534,7 +534,7 @@
534
534
  .mat-icon,
535
535
  .mat-mdc-icon-button:not([disabled]),
536
536
  .mat-mdc-select-value {
537
- @apply text-hint;
537
+ color:rgba(var(--cmat-icon-rgb), 1);
538
538
  }
539
539
 
540
540
  /* Datepicker default icon size */
@@ -1117,7 +1117,7 @@
1117
1117
  padding: 8px 16px;
1118
1118
  justify-content: space-between;
1119
1119
 
1120
- @screen sm {
1120
+ @media (min-width: theme('screens.sm')) {
1121
1121
  justify-content: normal;
1122
1122
  }
1123
1123
 
@@ -1131,7 +1131,7 @@
1131
1131
  display: none;
1132
1132
  margin-right: 12px;
1133
1133
 
1134
- @screen sm {
1134
+ @media (min-width: theme('screens.sm')) {
1135
1135
  display: block;
1136
1136
  }
1137
1137
  }
@@ -9,7 +9,7 @@
9
9
  .fc-view-harness .fc-daygrid-body,
10
10
  .fc-view-harness .fc-scrollgrid-sync-table,
11
11
  .fc-view-harness .fc-timegrid-body,
12
- .fc-view-harness .fc-timegrid-slots,
12
+ .fc-view-harness .fc-timegrid-slots
13
13
  {
14
14
  width: 100% !important;
15
15
  }
@@ -42,7 +42,7 @@
42
42
  white-space: nowrap;
43
43
  @apply text-secondary;
44
44
 
45
- @screen sm {
45
+ @media (min-width: theme('screens.sm')) {
46
46
  padding: 0 6px;
47
47
  }
48
48
  }
@@ -54,7 +54,7 @@
54
54
  white-space: nowrap;
55
55
  @apply text-secondary;
56
56
 
57
- @screen sm {
57
+ @media (min-width: theme('screens.sm')) {
58
58
  padding: 0 6px;
59
59
  }
60
60
  }
@@ -159,7 +159,7 @@
159
159
  border: none;
160
160
  cursor: pointer;
161
161
 
162
- @screen sm {
162
+ @media (min-width: theme('screens.sm')) {
163
163
  padding: 0 8px;
164
164
  }
165
165
  }
@@ -398,7 +398,7 @@
398
398
  min-width: 130px;
399
399
  max-width: 130px;
400
400
 
401
- @screen sm {
401
+ @media (min-width: theme('screens.sm')) {
402
402
  width: 150px;
403
403
  min-width: 150px;
404
404
  max-width: 150px;
@@ -419,7 +419,7 @@
419
419
  max-width: 40px;
420
420
  font-size: 18px;
421
421
 
422
- @screen sm {
422
+ @media (min-width: theme('screens.sm')) {
423
423
  padding-right: 8px;
424
424
  }
425
425
 
@@ -443,7 +443,7 @@
443
443
  min-width: 140px;
444
444
  max-width: 140px;
445
445
 
446
- @screen sm {
446
+ @media (min-width: theme('screens.sm')) {
447
447
  width: 160px;
448
448
  min-width: 160px;
449
449
  max-width: 160px;