@provoly/dashboard 1.2.9 → 1.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/admin/admin.module.d.ts +2 -3
  2. package/dataset/components/dataset.component.d.ts +3 -11
  3. package/dataset/dataset.module.d.ts +7 -9
  4. package/dataset/public-api.d.ts +0 -1
  5. package/dataset/style/_o-pry-dataset.scss +3 -72
  6. package/esm2022/admin/admin.module.mjs +1 -5
  7. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -4
  8. package/esm2022/dataset/components/dataset.component.mjs +8 -33
  9. package/esm2022/dataset/dataset.module.mjs +9 -13
  10. package/esm2022/dataset/public-api.mjs +1 -2
  11. package/esm2022/dataset/style/css.component.mjs +3 -3
  12. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +7 -27
  13. package/esm2022/lib/core/components/chips-selector/chips-selector.module.mjs +21 -0
  14. package/esm2022/lib/core/components/select-image/select-image.component.mjs +1 -1
  15. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +3 -3
  16. package/esm2022/lib/core/components/share/share.module.mjs +8 -12
  17. package/esm2022/lib/core/core.module.mjs +4 -8
  18. package/esm2022/lib/core/i18n/en.translations.mjs +8 -8
  19. package/esm2022/lib/core/i18n/fr.translations.mjs +9 -9
  20. package/esm2022/lib/core/pipes/get-secured-image/get-secured-image.pipe.mjs +21 -0
  21. package/esm2022/lib/core/pipes/since-date/since-date.module.mjs +18 -0
  22. package/esm2022/lib/core/pipes/since-date/since-date.pipe.mjs +55 -0
  23. package/esm2022/lib/core/pipes/translate-id/translate-id.pipe.mjs +108 -0
  24. package/esm2022/lib/core/pipes/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +23 -0
  25. package/esm2022/lib/core/public-api.mjs +7 -4
  26. package/esm2022/lib/core/store/data-source/datasource-utils.mjs +22 -1
  27. package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +2 -2
  28. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.mjs +60 -0
  29. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.mjs +95 -0
  30. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +53 -48
  31. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +6 -7
  32. package/esm2022/lib/dashboard/components/widgets/public-api.mjs +3 -1
  33. package/esm2022/lib/dashboard/dashboard.module.mjs +19 -7
  34. package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +2 -2
  35. package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +2 -3
  36. package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +2 -3
  37. package/esm2022/pipeline/pipeline.module.mjs +8 -9
  38. package/esm2022/presentation/components/presentation.component.mjs +2 -3
  39. package/esm2022/presentation/presentation.module.mjs +8 -9
  40. package/esm2022/restitution/components/restitution/restitution.component.mjs +4 -4
  41. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +2 -3
  42. package/esm2022/restitution/restitution.module.mjs +2 -3
  43. package/esm2022/restitution/style/css.component.mjs +2 -2
  44. package/fesm2022/provoly-dashboard-admin.mjs +0 -4
  45. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  46. package/fesm2022/provoly-dashboard-dataset.mjs +30 -87
  47. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  48. package/fesm2022/provoly-dashboard-pipeline.mjs +17 -19
  49. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  50. package/fesm2022/provoly-dashboard-presentation.mjs +8 -10
  51. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  52. package/fesm2022/provoly-dashboard-restitution.mjs +7 -9
  53. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  54. package/fesm2022/provoly-dashboard.mjs +3475 -3265
  55. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  56. package/lib/core/components/chips-selector/chips-selector.component.d.ts +1 -6
  57. package/lib/core/components/chips-selector/chips-selector.module.d.ts +11 -0
  58. package/lib/core/components/share/share.module.d.ts +3 -4
  59. package/lib/core/core.module.d.ts +26 -27
  60. package/lib/core/i18n/en.translations.d.ts +7 -7
  61. package/lib/core/i18n/fr.translations.d.ts +7 -7
  62. package/{components/sinceDate/sinceDate.module.d.ts → lib/core/pipes/since-date/since-date.module.d.ts} +3 -2
  63. package/{components/sinceDate/sinceDate.pipe.d.ts → lib/core/pipes/since-date/since-date.pipe.d.ts} +4 -4
  64. package/lib/core/{components → pipes}/translate-id/translate-id.pipe.d.ts +0 -2
  65. package/lib/core/public-api.d.ts +6 -3
  66. package/lib/core/store/data-source/datasource-utils.d.ts +4 -1
  67. package/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.d.ts +24 -0
  68. package/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.d.ts +35 -0
  69. package/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.d.ts +19 -11
  70. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +1 -1
  71. package/lib/dashboard/components/widgets/public-api.d.ts +2 -0
  72. package/lib/dashboard/dashboard.module.d.ts +18 -15
  73. package/package.json +43 -49
  74. package/pipeline/pipeline.module.d.ts +3 -4
  75. package/presentation/presentation.module.d.ts +7 -8
  76. package/restitution/components/restitution/restitution.component.d.ts +1 -1
  77. package/restitution/restitution.module.d.ts +1 -2
  78. package/restitution/style/_o-restitution.scss +4 -0
  79. package/styles/components/_a-chip.scss +44 -0
  80. package/styles/components/_o-datasource-selector.scss +192 -0
  81. package/styles/components/_o-widget.scss +1 -1
  82. package/styles/main.scss +1 -0
  83. package/styles-theme/main-theme.scss +0 -3
  84. package/components/sinceDate/index.d.ts +0 -5
  85. package/components/sinceDate/public-api.d.ts +0 -2
  86. package/dataset/components/dataset-card/dataset-card.component.d.ts +0 -18
  87. package/dataset/style/_o-pry-dataset-card.scss +0 -93
  88. package/esm2022/components/sinceDate/provoly-dashboard-components-sinceDate.mjs +0 -5
  89. package/esm2022/components/sinceDate/public-api.mjs +0 -3
  90. package/esm2022/components/sinceDate/sinceDate.module.mjs +0 -16
  91. package/esm2022/components/sinceDate/sinceDate.pipe.mjs +0 -55
  92. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +0 -41
  93. package/esm2022/lib/core/components/get-secured-image/get-secured-image.pipe.mjs +0 -21
  94. package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +0 -114
  95. package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +0 -23
  96. package/fesm2022/provoly-dashboard-components-sinceDate.mjs +0 -75
  97. package/fesm2022/provoly-dashboard-components-sinceDate.mjs.map +0 -1
  98. package/styles-theme/components-theme/_a-chip.theme.scss +0 -32
  99. package/styles-theme/components-theme/_o-pry-dataset-card.theme.scss +0 -26
  100. package/styles-theme/components-theme/_o-pry-dataset.theme.scss +0 -4
  101. /package/lib/core/{components → pipes}/get-secured-image/get-secured-image.pipe.d.ts +0 -0
  102. /package/lib/core/{components → pipes}/translate-item-to-symbol/translate-item-to-symbol.pipe.d.ts +0 -0
@@ -1,21 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { from } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../symbol/symbol.service";
5
- export class GetSecuredImagePipe {
6
- constructor(symbolService) {
7
- this.symbolService = symbolService;
8
- }
9
- transform(value, ...args) {
10
- return from(this.symbolService.downloadAsUrl(value));
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: GetSecuredImagePipe, deps: [{ token: i1.SymbolService }], target: i0.ɵɵFactoryTarget.Pipe }); }
13
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: GetSecuredImagePipe, name: "getSecuredImage" }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: GetSecuredImagePipe, decorators: [{
16
- type: Pipe,
17
- args: [{
18
- name: 'getSecuredImage'
19
- }]
20
- }], ctorParameters: () => [{ type: i1.SymbolService }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlY3VyZWQtaW1hZ2UucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvZ2V0LXNlY3VyZWQtaW1hZ2UvZ2V0LXNlY3VyZWQtaW1hZ2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFNeEMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFHLENBQUM7SUFFcEQsU0FBUyxDQUFDLEtBQWMsRUFBRSxHQUFHLElBQWU7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBZSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDOzhHQUxVLG1CQUFtQjs0R0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUgvQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxpQkFBaUI7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3ltYm9sU2VydmljZSB9IGZyb20gJy4uLy4uL3N5bWJvbC9zeW1ib2wuc2VydmljZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2dldFNlY3VyZWRJbWFnZSdcbn0pXG5leHBvcnQgY2xhc3MgR2V0U2VjdXJlZEltYWdlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN5bWJvbFNlcnZpY2U6IFN5bWJvbFNlcnZpY2UpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pOiBPYnNlcnZhYmxlPFNhZmVVcmwgfCBzdHJpbmc+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnN5bWJvbFNlcnZpY2UuZG93bmxvYWRBc1VybCh2YWx1ZSBhcyBzdHJpbmcpKTtcbiAgfVxufVxuIl19
@@ -1,114 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { combineLatest, filter, from, map, mergeMap, of } from 'rxjs';
3
- import { ClassSelectors } from '../../store/class/class.selectors';
4
- import { ConfigSelectors } from '../../store/config/config.selectors';
5
- import { DataSourceSelectors } from '../../store/data-source/data-source.selectors';
6
- import { NamedQueryTypes } from '../../store/data-source/named-query-types.model';
7
- import { FieldSelectors } from '../../store/field/field.selectors';
8
- import { DEFAULT_NAMED_QUERY_ID } from '../../store/search/search.constants';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@ngrx/store";
11
- import * as i2 from "../../i18n/i18n.service";
12
- import * as i3 from "../../symbol/symbol.service";
13
- export const UNKNOWN_DATASOURCE = (id) => ({
14
- id: id,
15
- color: '#FFFFFF',
16
- name: id,
17
- request: { fullSearch: { value: '???' }, type: NamedQueryTypes.FULL_TEXT },
18
- sourceType: 'namedQuery'
19
- });
20
- export class TranslateIdPipe {
21
- constructor(store, translateService, symbolService) {
22
- this.store = store;
23
- this.translateService = translateService;
24
- this.symbolService = symbolService;
25
- }
26
- transform(value, ...args) {
27
- const config = args[0];
28
- switch (config.type) {
29
- case 'field':
30
- return this.store
31
- .select(FieldSelectors.fields)
32
- .pipe(map((fields) => fields?.find((f) => f.id === value)?.name ?? value));
33
- case 'class':
34
- if (config.output === 'icon') {
35
- return from(this.symbolService.getSymbolOfClass(value));
36
- }
37
- else {
38
- return this.store
39
- .select(ClassSelectors.classes)
40
- .pipe(map((classes) => classes?.find((cl) => cl.id === value)?.name ?? value));
41
- }
42
- case 'datasource':
43
- const valueAsArray = typeof value === 'string' ? [value] : value;
44
- switch (config.output) {
45
- case 'name':
46
- return this.store
47
- .select(DataSourceSelectors.getDataSources)
48
- .pipe(map((datasources) => valueAsArray.map((value) => value === DEFAULT_NAMED_QUERY_ID
49
- ? this.translateService.instant('@pry.widget.namedQuery.defaultRs')
50
- : datasources.find((nq) => nq.id === value)?.name ?? value)));
51
- case 'color':
52
- return this.store
53
- .select(DataSourceSelectors.getNamedQuery)
54
- .pipe(map((nqs) => valueAsArray.map((value) => nqs.list.find((nq) => nq.id === value)?.color ?? '#FFFFFF')));
55
- case 'icon':
56
- return combineLatest([
57
- this.store.select(DataSourceSelectors.getDataSources),
58
- this.store.select(ConfigSelectors.iconDefinitions),
59
- this.store.select(ClassSelectors.classes)
60
- ]).pipe(map(([dss, iconDefs, classes]) => [
61
- (valueAsArray ?? []).map((value) => {
62
- return dss.find((ds) => ds.id === value) ?? UNKNOWN_DATASOURCE(value);
63
- })[0],
64
- iconDefs,
65
- classes
66
- ]), filter(([oDs, iconDefs, classes]) => !!oDs), map(([oDs, iconDefs, classes]) => {
67
- if (oDs.sourceType === 'dataset') {
68
- return {
69
- promise: this.symbolService.getSymbolOfClass(oDs.oClass, config.noDefault),
70
- url: ''
71
- };
72
- }
73
- if (oDs.request) {
74
- switch (oDs.request.type) {
75
- case NamedQueryTypes.MONO_CLASS:
76
- return {
77
- promise: this.symbolService.getSymbolOfClass(oDs.request.oClass, config.noDefault),
78
- url: ''
79
- };
80
- default:
81
- if (oDs.request.fullSearch) {
82
- return { promise: null, url: 'assets/svgs/save-line.svg' };
83
- }
84
- else {
85
- return {
86
- promise: null,
87
- url: oDs.request.type === NamedQueryTypes.MULTI_CLASS ? 'assets/svgs/save-line.svg' : ''
88
- };
89
- }
90
- }
91
- }
92
- else {
93
- return { promise: null, url: '' };
94
- }
95
- }), mergeMap((info) => {
96
- if (info.promise) {
97
- return from(info.promise);
98
- }
99
- return of(info.url);
100
- }));
101
- }
102
- }
103
- return of(value);
104
- }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TranslateIdPipe, deps: [{ token: i1.Store }, { token: i2.PryI18nService }, { token: i3.SymbolService }], target: i0.ɵɵFactoryTarget.Pipe }); }
106
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: TranslateIdPipe, name: "translateId" }); }
107
- }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TranslateIdPipe, decorators: [{
109
- type: Pipe,
110
- args: [{
111
- name: 'translateId'
112
- }]
113
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.PryI18nService }, { type: i3.SymbolService }] });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWlkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3RyYW5zbGF0ZS1pZC90cmFuc2xhdGUtaWQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFFbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQUc3RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQy9DLENBQUM7SUFDQyxFQUFFLEVBQUUsRUFBRTtJQUNOLEtBQUssRUFBRSxTQUFTO0lBQ2hCLElBQUksRUFBRSxFQUFFO0lBQ1IsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsU0FBUyxFQUFFO0lBQzFFLFVBQVUsRUFBRSxZQUFZO0NBQ1YsQ0FBQSxDQUFDO0FBS25CLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1UsS0FBaUIsRUFDakIsZ0JBQWdD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QkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgZnJvbSwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByeUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xhc3MgfSBmcm9tICcuLi8uLi9zdG9yZS9jbGFzcy9jbGFzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9jbGFzcy9jbGFzcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29uZmlnL2NvbmZpZy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgSWNvbkRlZmluaXRpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29uZmlnL2ljb24tZGVmaW5pdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2UsIE5hbWVkUXVlcnkgfSBmcm9tICcuLi8uLi9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IE5hbWVkUXVlcnlUeXBlcyB9IGZyb20gJy4uLy4uL3N0b3JlL2RhdGEtc291cmNlL25hbWVkLXF1ZXJ5LXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vc3RvcmUvZmllbGQvZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvZmllbGQvZmllbGQuc2VsZWN0b3JzJztcbmltcG9ydCB7IERFRkFVTFRfTkFNRURfUVVFUllfSUQgfSBmcm9tICcuLi8uLi9zdG9yZS9zZWFyY2gvc2VhcmNoLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBTeW1ib2xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3ltYm9sL3N5bWJvbC5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFVOS05PV05fREFUQVNPVVJDRSA9IChpZDogc3RyaW5nKSA9PlxuICAoe1xuICAgIGlkOiBpZCxcbiAgICBjb2xvcjogJyNGRkZGRkYnLFxuICAgIG5hbWU6IGlkLFxuICAgIHJlcXVlc3Q6IHsgZnVsbFNlYXJjaDogeyB2YWx1ZTogJz8/PycgfSwgdHlwZTogTmFtZWRRdWVyeVR5cGVzLkZVTExfVEVYVCB9LFxuICAgIHNvdXJjZVR5cGU6ICduYW1lZFF1ZXJ5J1xuICB9IGFzIE5hbWVkUXVlcnkpO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0cmFuc2xhdGVJZCdcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlSWRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBQcnlJMThuU2VydmljZSxcbiAgICBwcml2YXRlIHN5bWJvbFNlcnZpY2U6IFN5bWJvbFNlcnZpY2VcbiAgKSB7fVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIC4uLmFyZ3M6IHVua25vd25bXSk6IE9ic2VydmFibGU8c3RyaW5nIHwgc3RyaW5nW10gfCBTYWZlVXJsIHwgbnVsbD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGFyZ3NbMF0gYXNcbiAgICAgIHwgeyB0eXBlOiAnZmllbGQnIH1cbiAgICAgIHwgeyB0eXBlOiAnY2xhc3MnOyBvdXRwdXQ6ICdpY29uJyB8ICduYW1lJyB9XG4gICAgICB8IHsgdHlwZTogJ2RhdGFzb3VyY2UnOyBvdXRwdXQ6ICduYW1lJyB8ICdjb2xvcicgfVxuICAgICAgfCB7IHR5cGU6ICdkYXRhc291cmNlJzsgb3V0cHV0OiAnaWNvbic7IG5vRGVmYXVsdD86IGJvb2xlYW4gfTtcbiAgICBzd2l0Y2ggKGNvbmZpZy50eXBlKSB7XG4gICAgICBjYXNlICdmaWVsZCc6XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAgICAgLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpXG4gICAgICAgICAgLnBpcGUobWFwKChmaWVsZHM6IEZpZWxkW10pID0+IGZpZWxkcz8uZmluZCgoZikgPT4gZi5pZCA9PT0gdmFsdWUpPy5uYW1lID8/IHZhbHVlKSk7XG4gICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgIGlmIChjb25maWcub3V0cHV0ID09PSAnaWNvbicpIHtcbiAgICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnN5bWJvbFNlcnZpY2UuZ2V0U3ltYm9sT2ZDbGFzcyg8c3RyaW5nPnZhbHVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgICAgICAgIC5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcylcbiAgICAgICAgICAgIC5waXBlKG1hcCgoY2xhc3NlczogQ2xhc3NbXSkgPT4gY2xhc3Nlcz8uZmluZCgoY2wpID0+IGNsLmlkID09PSB2YWx1ZSk/Lm5hbWUgPz8gdmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgY2FzZSAnZGF0YXNvdXJjZSc6XG4gICAgICAgIGNvbnN0IHZhbHVlQXNBcnJheTogc3RyaW5nW10gPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gW3ZhbHVlIGFzIHN0cmluZ10gOiAodmFsdWUgYXMgdW5rbm93biBhcyBzdHJpbmdbXSk7XG5cbiAgICAgICAgc3dpdGNoIChjb25maWcub3V0cHV0KSB7XG4gICAgICAgICAgY2FzZSAnbmFtZSc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoZGF0YXNvdXJjZXMpID0+XG4gICAgICAgICAgICAgICAgICB2YWx1ZUFzQXJyYXkubWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09IERFRkFVTFRfTkFNRURfUVVFUllfSURcbiAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LndpZGdldC5uYW1lZFF1ZXJ5LmRlZmF1bHRScycpXG4gICAgICAgICAgICAgICAgICAgICAgOiBkYXRhc291cmNlcy5maW5kKChucSkgPT4gbnEuaWQgPT09IHZhbHVlKT8ubmFtZSA/PyB2YWx1ZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICdjb2xvcic6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0TmFtZWRRdWVyeSlcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChucXMpID0+IHZhbHVlQXNBcnJheS5tYXAoKHZhbHVlKSA9PiBucXMubGlzdC5maW5kKChucSkgPT4gbnEuaWQgPT09IHZhbHVlKT8uY29sb3IgPz8gJyNGRkZGRkYnKSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICdpY29uJzpcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcyksXG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5pY29uRGVmaW5pdGlvbnMpLFxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKVxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIChbZHNzLCBpY29uRGVmcywgY2xhc3Nlc10pID0+XG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICh2YWx1ZUFzQXJyYXkgPz8gW10pLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZHNzLmZpbmQoKGRzKSA9PiBkcy5pZCA9PT0gdmFsdWUpID8/IFVOS05PV05fREFUQVNPVVJDRSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pWzBdLFxuICAgICAgICAgICAgICAgICAgICBpY29uRGVmcyxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgXSBhcyBbRGF0YVNvdXJjZSwgSWNvbkRlZmluaXRpb25zLCBDbGFzc1tdXVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBmaWx0ZXIoKFtvRHMsIGljb25EZWZzLCBjbGFzc2VzXSkgPT4gISFvRHMpLFxuICAgICAgICAgICAgICBtYXAoKFtvRHMsIGljb25EZWZzLCBjbGFzc2VzXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvRHMuc291cmNlVHlwZSA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBwcm9taXNlOiB0aGlzLnN5bWJvbFNlcnZpY2UuZ2V0U3ltYm9sT2ZDbGFzcyhvRHMub0NsYXNzLCBjb25maWcubm9EZWZhdWx0KSxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAnJ1xuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9Ecy5yZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICBzd2l0Y2ggKG9Ecy5yZXF1ZXN0LnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTUzpcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvbWlzZTogdGhpcy5zeW1ib2xTZXJ2aWNlLmdldFN5bWJvbE9mQ2xhc3Mob0RzLnJlcXVlc3Qub0NsYXNzLCBjb25maWcubm9EZWZhdWx0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJydcbiAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgIGlmIChvRHMucmVxdWVzdC5mdWxsU2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwcm9taXNlOiBudWxsLCB1cmw6ICdhc3NldHMvc3Zncy9zYXZlLWxpbmUuc3ZnJyB9O1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IG9Ecy5yZXF1ZXN0LnR5cGUgPT09IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUyA/ICdhc3NldHMvc3Zncy9zYXZlLWxpbmUuc3ZnJyA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcHJvbWlzZTogbnVsbCwgdXJsOiAnJyB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG1lcmdlTWFwKChpbmZvKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZm8ucHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb20oaW5mby5wcm9taXNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGluZm8udXJsKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -1,23 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { from } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../symbol/symbol.service";
5
- export class TranslateItemToSymbolPipe {
6
- constructor(symbolService) {
7
- this.symbolService = symbolService;
8
- }
9
- transform(value, ...args) {
10
- return from(new Promise((resolve) => this.symbolService
11
- .getSymbol(value)
12
- .then((canvas) => resolve(canvas.toDataURL('image/png')))));
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TranslateItemToSymbolPipe, deps: [{ token: i1.SymbolService }], target: i0.ɵɵFactoryTarget.Pipe }); }
15
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: TranslateItemToSymbolPipe, name: "translateItemToSymbol" }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TranslateItemToSymbolPipe, decorators: [{
18
- type: Pipe,
19
- args: [{
20
- name: 'translateItemToSymbol'
21
- }]
22
- }], ctorParameters: () => [{ type: i1.SymbolService }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWl0ZW0tdG8tc3ltYm9sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3RyYW5zbGF0ZS1pdGVtLXRvLXN5bWJvbC90cmFuc2xhdGUtaXRlbS10by1zeW1ib2wucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFPeEMsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFHLENBQUM7SUFFcEQsU0FBUyxDQUFDLEtBQVcsRUFBRSxHQUFHLElBQWU7UUFDdkMsT0FBTyxJQUFJLENBQ1QsSUFBSSxPQUFPLENBQ1QsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLElBQUksQ0FBQyxhQUFhO2FBQ2YsU0FBUyxDQUFDLEtBQUssQ0FBQzthQUNoQixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQW9CLENBQ2pGLENBQ0YsQ0FBQztJQUNKLENBQUM7OEdBWlUseUJBQXlCOzRHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSHJDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHVCQUF1QjtpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3ltYm9sU2VydmljZSB9IGZyb20gJy4uLy4uL3N5bWJvbC9zeW1ib2wuc2VydmljZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RyYW5zbGF0ZUl0ZW1Ub1N5bWJvbCdcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlSXRlbVRvU3ltYm9sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN5bWJvbFNlcnZpY2U6IFN5bWJvbFNlcnZpY2UpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBJdGVtLCAuLi5hcmdzOiB1bmtub3duW10pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgbmV3IFByb21pc2U8c3RyaW5nPihcbiAgICAgICAgKHJlc29sdmUpID0+XG4gICAgICAgICAgdGhpcy5zeW1ib2xTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0U3ltYm9sKHZhbHVlKVxuICAgICAgICAgICAgLnRoZW4oKGNhbnZhcykgPT4gcmVzb2x2ZShjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKSkpIGFzIFByb21pc2U8c3RyaW5nPlxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,75 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Pipe, NgModule } from '@angular/core';
3
- import * as i1 from '@provoly/dashboard';
4
-
5
- class PrySinceDatePipe {
6
- constructor(translateService) {
7
- this.translateService = translateService;
8
- }
9
- transform(value, ...args) {
10
- const date = new Date(value);
11
- if (!!args[0] && args[0].onlyLocale) {
12
- return date.toLocaleString();
13
- }
14
- if (isNaN(date.getTime())) {
15
- return '';
16
- }
17
- const dateNow = this._now ?? new Date();
18
- if (date.getFullYear() === dateNow.getFullYear() &&
19
- date.getMonth() === dateNow.getMonth() &&
20
- date.getDate() === dateNow.getDate()) {
21
- return this.translateService.instant('@pry.toolbox.today', {
22
- hour: `${date.getHours()}`.padStart(2, '0'),
23
- min: `${date.getMinutes()}`.padStart(2, '0')
24
- });
25
- }
26
- const dayDiff = this.getDayDiff(date, dateNow);
27
- const dayDiffAbs = Math.ceil(Math.abs(dayDiff));
28
- const dayDiffPast = dayDiff > 0;
29
- if (dayDiffAbs > 30) {
30
- return date.toLocaleString();
31
- }
32
- else {
33
- return this.translateService.instant(dayDiffPast ? '@pry.toolbox.since_day' : '@pry.toolbox.from_day', {
34
- day: dayDiffAbs,
35
- plural: dayDiffAbs >= 2 ? 's' : ''
36
- });
37
- }
38
- }
39
- getDayDiff(startDate, endDate) {
40
- const msInDay = 24 * 60 * 60 * 1000;
41
- return (endDate.getTime() - startDate.getTime()) / msInDay;
42
- }
43
- useNow(date) {
44
- this._now = date;
45
- return this;
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PrySinceDatePipe, deps: [{ token: i1.PryI18nService }], target: i0.ɵɵFactoryTarget.Pipe }); }
48
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: PrySinceDatePipe, name: "sinceDate" }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PrySinceDatePipe, decorators: [{
51
- type: Pipe,
52
- args: [{
53
- name: 'sinceDate'
54
- }]
55
- }], ctorParameters: () => [{ type: i1.PryI18nService }] });
56
-
57
- class PrySinceDateModule {
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PrySinceDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
59
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: PrySinceDateModule, declarations: [PrySinceDatePipe], exports: [PrySinceDatePipe] }); }
60
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PrySinceDateModule }); }
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PrySinceDateModule, decorators: [{
63
- type: NgModule,
64
- args: [{
65
- declarations: [PrySinceDatePipe],
66
- exports: [PrySinceDatePipe]
67
- }]
68
- }] });
69
-
70
- /**
71
- * Generated bundle index. Do not edit.
72
- */
73
-
74
- export { PrySinceDateModule, PrySinceDatePipe };
75
- //# sourceMappingURL=provoly-dashboard-components-sinceDate.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provoly-dashboard-components-sinceDate.mjs","sources":["../../../../projects/provoly/dashboard/components/sinceDate/sinceDate.pipe.ts","../../../../projects/provoly/dashboard/components/sinceDate/sinceDate.module.ts","../../../../projects/provoly/dashboard/components/sinceDate/provoly-dashboard-components-sinceDate.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { PryI18nService } from '@provoly/dashboard';\n\n@Pipe({\n name: 'sinceDate'\n})\nexport class PrySinceDatePipe implements PipeTransform {\n private _now?: Date;\n\n constructor(private translateService: PryI18nService) {}\n\n transform(value: string, ...args: any[]): string {\n const date = new Date(value);\n\n if (!!args[0] && args[0].onlyLocale) {\n return date.toLocaleString();\n }\n\n if (isNaN(date.getTime())) {\n return '';\n }\n\n const dateNow = this._now ?? new Date();\n\n if (\n date.getFullYear() === dateNow.getFullYear() &&\n date.getMonth() === dateNow.getMonth() &&\n date.getDate() === dateNow.getDate()\n ) {\n return this.translateService.instant('@pry.toolbox.today', {\n hour: `${date.getHours()}`.padStart(2, '0'),\n min: `${date.getMinutes()}`.padStart(2, '0')\n });\n }\n\n const dayDiff = this.getDayDiff(date, dateNow);\n const dayDiffAbs = Math.ceil(Math.abs(dayDiff));\n const dayDiffPast = dayDiff > 0;\n if (dayDiffAbs > 30) {\n return date.toLocaleString();\n } else {\n return this.translateService.instant(dayDiffPast ? '@pry.toolbox.since_day' : '@pry.toolbox.from_day', {\n day: dayDiffAbs,\n plural: dayDiffAbs >= 2 ? 's' : ''\n });\n }\n }\n\n getDayDiff(startDate: Date, endDate: Date): number {\n const msInDay = 24 * 60 * 60 * 1000;\n return (endDate.getTime() - startDate.getTime()) / msInDay;\n }\n\n useNow(date?: Date) {\n this._now = date;\n return this;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PrySinceDatePipe } from './sinceDate.pipe';\n\n@NgModule({\n declarations: [PrySinceDatePipe],\n exports: [PrySinceDatePipe]\n})\nexport class PrySinceDateModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- @use '../../styles/abstracts' as *;
2
- @use '../abstracts-theme/variables.theme' as *;
3
-
4
- /* Theme Atom - chip */
5
-
6
- .a-chip {
7
- color: themed($theme-map, 'color', 'primary', 'contrast', 50);
8
- background-color: themed($theme-map, 'color', 'primary', 600);
9
-
10
- &:hover {
11
- @include changeBgColor(
12
- $targetBgColor: themed($theme-map, 'color', 'primary', 300),
13
- $targetTextColor: themed($theme-map, 'color', 'primary', 600)
14
- );
15
- }
16
-
17
- &.-not-found {
18
- opacity: 0.4;
19
- }
20
-
21
- &--light {
22
- background-color: themed($theme-map, 'color', 'primary', 50);
23
- color: themed($theme-map, 'color', 'primary', 600);
24
- border: solid 1px themed($theme-map, 'color', 'primary', 300);
25
-
26
- &:hover {
27
- @include changeBgColor(
28
- $targetBgColor: themed($theme-map, 'color', 'primary', 300)
29
- );
30
- }
31
- }
32
- }
@@ -1,26 +0,0 @@
1
- @use '../../styles/abstracts' as *;
2
- @use '../abstracts-theme' as *;
3
-
4
- /* Theme Organism - pry-dataset-card */
5
-
6
- .o-pry-dataset-card {
7
- background-color: themed($theme-map, 'color', 'primary', 50);
8
- filter: drop-shadow(0px 4px 4px rgba(17, 59, 110, 0.12));
9
-
10
- .a-h4 {
11
- color: themed($theme-map, 'color', 'primary', 600);
12
- }
13
-
14
- &__footer {
15
- border-top: 1px themed($theme-map, 'color', 'primary', 300) solid;
16
- border-bottom: 1px themed($theme-map, 'color', 'primary', 300) solid;
17
- }
18
-
19
- &:hover {
20
- background-color: themed($theme-map, 'color', 'primary', 300);
21
-
22
- .o-pry-dataset-card__footer {
23
- border-top: 1px themed($theme-map, 'color', 'primary', 400) solid;
24
- }
25
- }
26
- }
@@ -1,4 +0,0 @@
1
- @use '../../styles/abstracts' as *;
2
- @use '../abstracts-theme' as *;
3
-
4
- /* Theme Organism - pry-dataset */