@onecx/angular-accelerator 4.12.1 → 4.13.2
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.
- package/assets/i18n/de.json +13 -0
- package/assets/i18n/en.json +13 -0
- package/esm2020/index.mjs +2 -1
- package/esm2020/lib/angular-accelerator.module.mjs +7 -42
- package/esm2020/lib/directives/src.directive.mjs +39 -0
- package/esm2020/lib/pipes/ocxtimeago.pipe.mjs +98 -6
- package/fesm2015/onecx-angular-accelerator.mjs +165 -105
- package/fesm2015/onecx-angular-accelerator.mjs.map +1 -1
- package/fesm2020/onecx-angular-accelerator.mjs +165 -105
- package/fesm2020/onecx-angular-accelerator.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/angular-accelerator.module.d.ts +8 -7
- package/lib/directives/src.directive.d.ts +13 -0
- package/lib/pipes/ocxtimeago.pipe.d.ts +12 -2
- package/package.json +2 -3
- package/esm2020/lib/utils/ocxtimeagointl.utils.mjs +0 -34
- package/lib/utils/ocxtimeagointl.utils.d.ts +0 -9
package/assets/i18n/de.json
CHANGED
|
@@ -126,5 +126,18 @@
|
|
|
126
126
|
"HORIZONTAL_BAR": "Zu horizontalem Balkendiagramm wechseln",
|
|
127
127
|
"VERTICAL_BAR": "Zu vertikalem Balkendiagramm wechseln"
|
|
128
128
|
}
|
|
129
|
+
},
|
|
130
|
+
"OCX_TIMEAGO": {
|
|
131
|
+
"A_DAY_AGO": "vor einem Tag",
|
|
132
|
+
"A_FEW_SECONDS_AGO": "vor ein paar Sekunden",
|
|
133
|
+
"AN_HOUR_AGO": "vor einer Stunde",
|
|
134
|
+
"A_MINUTE_AGO": "vor einer Minute",
|
|
135
|
+
"A_MONAT_AGO": "vor einem Monat",
|
|
136
|
+
"A_YEAR_AGO": "vor einem Jahr",
|
|
137
|
+
"DAYS_AGO": "vor {{days}} Tagen",
|
|
138
|
+
"HOURS_AGO": "vor {{hours}} Stunden",
|
|
139
|
+
"MINUTES_AGO": "vor {{minutes}} Minuten",
|
|
140
|
+
"MONTHS_AGO": "vor {{months}} Monaten",
|
|
141
|
+
"YEARS_AGO": "vor {{years}} Jahren"
|
|
129
142
|
}
|
|
130
143
|
}
|
package/assets/i18n/en.json
CHANGED
|
@@ -126,5 +126,18 @@
|
|
|
126
126
|
"HORIZONTAL_BAR": "Switch to horizontal bar chart",
|
|
127
127
|
"VERTICAL_BAR": "Switch to vertical bar chart"
|
|
128
128
|
}
|
|
129
|
+
},
|
|
130
|
+
"OCX_TIMEAGO": {
|
|
131
|
+
"A_DAY_AGO": "a day ago",
|
|
132
|
+
"A_FEW_SECONDS_AGO": "a few seconds ago",
|
|
133
|
+
"AN_HOUR_AGO": "an hour ago",
|
|
134
|
+
"A_MINUTE_AGO": "a minute ago",
|
|
135
|
+
"A_MONTH_AGO": "a month ago",
|
|
136
|
+
"A_YEAR_AGO": "a year ago",
|
|
137
|
+
"DAYS_AGO": "{{days}} days ago",
|
|
138
|
+
"HOURS_AGO": "{{hours}} hours ago",
|
|
139
|
+
"MINUTES_AGO": "{{minutes}} minutes ago",
|
|
140
|
+
"MONTHS_AGO": "{{months}} months ago",
|
|
141
|
+
"YEARS_AGO": "{{years}} years ago"
|
|
129
142
|
}
|
|
130
143
|
}
|
package/esm2020/index.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// directives
|
|
2
2
|
export * from './lib/directives/if-permission.directive';
|
|
3
3
|
export * from './lib/directives/if-breakpoint.directive';
|
|
4
|
+
export * from './lib/directives/src.directive';
|
|
4
5
|
// components
|
|
5
6
|
export * from './lib/components/column-group-selection/column-group-selection.component';
|
|
6
7
|
export * from './lib/components/custom-group-column-selector/custom-group-column-selector.component';
|
|
@@ -46,4 +47,4 @@ export * from './lib/utils/dateutils';
|
|
|
46
47
|
export * from './lib/utils/objectutils';
|
|
47
48
|
export * from './lib/utils/primeicon.utils';
|
|
48
49
|
export * from './lib/utils/translate.combined.loader';
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGFBQWE7QUFDYixjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUU5QyxhQUFhO0FBQ2IsY0FBYywwRUFBMEUsQ0FBQTtBQUN4RixjQUFjLHNGQUFzRixDQUFBO0FBQ3BHLGNBQWMsd0VBQXdFLENBQUE7QUFDdEYsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLDBFQUEwRSxDQUFBO0FBQ3hGLGNBQWMsa0RBQWtELENBQUE7QUFDaEUsY0FBYyxnREFBZ0QsQ0FBQTtBQUM5RCxjQUFjLDRDQUE0QyxDQUFBO0FBQzFELGNBQWMsMEVBQTBFLENBQUE7QUFDeEYsY0FBYyx3RUFBd0UsQ0FBQTtBQUN0RixjQUFjLG9EQUFvRCxDQUFBO0FBQ2xFLGNBQWMsd0RBQXdELENBQUE7QUFDdEUsY0FBYyx3REFBd0QsQ0FBQTtBQUV0RSxXQUFXO0FBQ1gsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLDBDQUEwQyxDQUFBO0FBRXhELFFBQVE7QUFDUixjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUE7QUFFM0MsU0FBUztBQUNULGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLHdEQUF3RDtBQUN4RCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQywyQ0FBMkM7QUFDM0MsY0FBYywwQkFBMEIsQ0FBQTtBQUN4QyxjQUFjLGdDQUFnQyxDQUFBO0FBRTlDLE9BQU87QUFDUCxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsMENBQTBDLENBQUE7QUFFeEQsWUFBWTtBQUNaLGNBQWMsZ0NBQWdDLENBQUE7QUFFOUMsUUFBUTtBQUNSLGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyx1Q0FBdUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGRpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2lmLWJyZWFrcG9pbnQuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zcmMuZGlyZWN0aXZlJ1xuXG4vLyBjb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24vY29sdW1uLWdyb3VwLXNlbGVjdGlvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IvY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi9kYXRhLWxheW91dC1zZWxlY3Rpb24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWxpc3QtZ3JpZC9kYXRhLWxpc3QtZ3JpZC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtbGlzdC1ncmlkLXNvcnRpbmcvZGF0YS1saXN0LWdyaWQtc29ydGluZy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaWFncmFtL2RpYWdyYW0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncm91cC1ieS1jb3VudC1kaWFncmFtL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnRlcmFjdGl2ZS1kYXRhLXZpZXcvaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWFyY2gtY29uZmlnL3NlYXJjaC1jb25maWcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWFyY2gtaGVhZGVyL3NlYXJjaC1oZWFkZXIuY29tcG9uZW50J1xuXG4vLyBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYnJlYWRjcnVtYi5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJhbnNsYXRpb24tY2FjaGUuc2VydmljZSdcblxuLy8gcGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2R5bmFtaWMucGlwZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL29jeHRpbWVhZ28ucGlwZSdcblxuLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9icmVhZGNydW1iLW1lbnUtaXRlbS5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvZGF0YS1hY3Rpb24nXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9kYXRhLWNvbHVtbi1uYW1lLWlkLm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvZGF0YS1zb3J0LWRpcmVjdGlvbidcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2RhdGEtdGFibGUtY29sdW1uLm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvZGlhZ3JhbS1jb2x1bW4nXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9kaWFncmFtLWRhdGEnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9kaWFncmFtLXR5cGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9zZWFyY2gtY29uZmlnLWluZm8nXG5cbi8vIGNvcmVcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItYWNjZWxlcmF0b3IubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci1hY2NlbGVyYXRvci1wcmltZW5nLm1vZHVsZSdcblxuLy8gZnVuY3Rpb25zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvZmxhdHRlbi1vYmplY3QnXG5cbi8vIHV0aWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9hc3luYy10cmFuc2xhdGUtbG9hZGVyLnV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvY2FjaGluZy10cmFuc2xhdGUtbG9hZGVyLnV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvY29sb3J1dGlscydcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2NyZWF0ZS10cmFuc2xhdGUtbG9hZGVyLnV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvZGF0ZXV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvb2JqZWN0dXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9wcmltZWljb24udXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy90cmFuc2xhdGUuY29tYmluZWQubG9hZGVyJ1xuIl19
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { CUSTOM_ELEMENTS_SCHEMA, LOCALE_ID, NgModule
|
|
2
|
+
import { CUSTOM_ELEMENTS_SCHEMA, LOCALE_ID, NgModule } from '@angular/core';
|
|
3
3
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { RouterModule } from '@angular/router';
|
|
5
5
|
import { HttpClient } from '@angular/common/http';
|
|
6
6
|
import { MissingTranslationHandler, TranslateLoader, TranslateModule, } from '@ngx-translate/core';
|
|
7
|
-
import { TimeagoClock, TimeagoCustomFormatter, TimeagoDefaultClock, TimeagoFormatter, TimeagoIntl, TimeagoModule, } from 'ngx-timeago';
|
|
8
7
|
import { AppStateService, UserService } from '@onecx/angular-integration-interface';
|
|
9
8
|
import { AngularAcceleratorPrimeNgModule } from './angular-accelerator-primeng.module';
|
|
10
9
|
import { ColumnGroupSelectionComponent } from './components/column-group-selection/column-group-selection.component';
|
|
@@ -24,9 +23,9 @@ import { DynamicPipe } from './pipes/dynamic.pipe';
|
|
|
24
23
|
import { IfPermissionDirective } from './directives/if-permission.directive';
|
|
25
24
|
import { IfBreakpointDirective } from './directives/if-breakpoint.directive';
|
|
26
25
|
import { OcxTimeAgoPipe } from './pipes/ocxtimeago.pipe';
|
|
27
|
-
import { OcxTimeagoIntl } from './utils/ocxtimeagointl.utils';
|
|
28
26
|
import { createTranslateLoader } from './utils/create-translate-loader.utils';
|
|
29
27
|
import { TranslationCacheService } from './services/translation-cache.service';
|
|
28
|
+
import { SrcDirective } from './directives/src.directive';
|
|
30
29
|
import * as i0 from "@angular/core";
|
|
31
30
|
import * as i1 from "@ngx-translate/core";
|
|
32
31
|
export class AngularAcceleratorMissingTranslationHandler {
|
|
@@ -54,6 +53,7 @@ AngularAcceleratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0"
|
|
|
54
53
|
GroupByCountDiagramComponent,
|
|
55
54
|
IfPermissionDirective,
|
|
56
55
|
IfBreakpointDirective,
|
|
56
|
+
SrcDirective,
|
|
57
57
|
OcxTimeAgoPipe], imports: [CommonModule,
|
|
58
58
|
AngularAcceleratorPrimeNgModule, i1.TranslateModule, FormsModule,
|
|
59
59
|
RouterModule,
|
|
@@ -71,6 +71,7 @@ AngularAcceleratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0"
|
|
|
71
71
|
GroupByCountDiagramComponent,
|
|
72
72
|
IfPermissionDirective,
|
|
73
73
|
IfBreakpointDirective,
|
|
74
|
+
SrcDirective,
|
|
74
75
|
OcxTimeAgoPipe] });
|
|
75
76
|
AngularAcceleratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularAcceleratorModule, providers: [
|
|
76
77
|
{
|
|
@@ -80,25 +81,6 @@ AngularAcceleratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0"
|
|
|
80
81
|
},
|
|
81
82
|
deps: [UserService],
|
|
82
83
|
},
|
|
83
|
-
{
|
|
84
|
-
provide: TimeagoIntl,
|
|
85
|
-
useFactory: (userService) => {
|
|
86
|
-
return new OcxTimeagoIntl(userService);
|
|
87
|
-
},
|
|
88
|
-
deps: [UserService],
|
|
89
|
-
},
|
|
90
|
-
importProvidersFrom(TimeagoModule),
|
|
91
|
-
{
|
|
92
|
-
provide: TimeagoFormatter,
|
|
93
|
-
useFactory: (TimeagoIntl) => {
|
|
94
|
-
return new TimeagoCustomFormatter(TimeagoIntl);
|
|
95
|
-
},
|
|
96
|
-
deps: [TimeagoIntl],
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
provide: TimeagoClock,
|
|
100
|
-
useClass: TimeagoDefaultClock,
|
|
101
|
-
},
|
|
102
84
|
], imports: [CommonModule,
|
|
103
85
|
AngularAcceleratorPrimeNgModule,
|
|
104
86
|
TranslateModule.forRoot({
|
|
@@ -155,6 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
155
137
|
GroupByCountDiagramComponent,
|
|
156
138
|
IfPermissionDirective,
|
|
157
139
|
IfBreakpointDirective,
|
|
140
|
+
SrcDirective,
|
|
158
141
|
OcxTimeAgoPipe,
|
|
159
142
|
],
|
|
160
143
|
providers: [
|
|
@@ -165,25 +148,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
165
148
|
},
|
|
166
149
|
deps: [UserService],
|
|
167
150
|
},
|
|
168
|
-
{
|
|
169
|
-
provide: TimeagoIntl,
|
|
170
|
-
useFactory: (userService) => {
|
|
171
|
-
return new OcxTimeagoIntl(userService);
|
|
172
|
-
},
|
|
173
|
-
deps: [UserService],
|
|
174
|
-
},
|
|
175
|
-
importProvidersFrom(TimeagoModule),
|
|
176
|
-
{
|
|
177
|
-
provide: TimeagoFormatter,
|
|
178
|
-
useFactory: (TimeagoIntl) => {
|
|
179
|
-
return new TimeagoCustomFormatter(TimeagoIntl);
|
|
180
|
-
},
|
|
181
|
-
deps: [TimeagoIntl],
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
provide: TimeagoClock,
|
|
185
|
-
useClass: TimeagoDefaultClock,
|
|
186
|
-
},
|
|
187
151
|
],
|
|
188
152
|
exports: [
|
|
189
153
|
ColumnGroupSelectionComponent,
|
|
@@ -200,10 +164,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
200
164
|
GroupByCountDiagramComponent,
|
|
201
165
|
IfPermissionDirective,
|
|
202
166
|
IfBreakpointDirective,
|
|
167
|
+
SrcDirective,
|
|
203
168
|
OcxTimeAgoPipe,
|
|
204
169
|
// DataListGridSortingComponent,
|
|
205
170
|
],
|
|
206
171
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
207
172
|
}]
|
|
208
173
|
}] });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hY2NlbGVyYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9hbmd1bGFyLWFjY2VsZXJhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUNMLHlCQUF5QixFQUV6QixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLHFCQUFxQixDQUFBO0FBQzVCLE9BQU8sRUFDTCxZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGFBQWEsR0FDZCxNQUFNLGFBQWEsQ0FBQTtBQUVwQixPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBRW5GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3RGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFBO0FBQ3BILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGtGQUFrRixDQUFBO0FBQ3JJLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFBO0FBQ2pILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFBO0FBQ25ILE9BQU8sRUFB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d0JBQ3JCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBMT0NBTEVfSUQsIE5nTW9kdWxlLCBpbXBvcnRQcm92aWRlcnNGcm9tIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQge1xuICBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLFxuICBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyUGFyYW1zLFxuICBUcmFuc2xhdGVMb2FkZXIsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbn0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIFRpbWVhZ29DbG9jayxcbiAgVGltZWFnb0N1c3RvbUZvcm1hdHRlcixcbiAgVGltZWFnb0RlZmF1bHRDbG9jayxcbiAgVGltZWFnb0Zvcm1hdHRlcixcbiAgVGltZWFnb0ludGwsXG4gIFRpbWVhZ29Nb2R1bGUsXG59IGZyb20gJ25neC10aW1lYWdvJ1xuXG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5pbXBvcnQgeyBBbmd1bGFyQWNjZWxlcmF0b3JQcmltZU5nTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWFjY2VsZXJhdG9yLXByaW1lbmcubW9kdWxlJ1xuaW1wb3J0IHsgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sdW1uLWdyb3VwLXNlbGVjdGlvbi9jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IEN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1sYXlvdXQtc2VsZWN0aW9uL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtbGlzdC1ncmlkLXNvcnRpbmcvZGF0YS1saXN0LWdyaWQtc29ydGluZy5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhTGlzdEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1saXN0LWdyaWQvZGF0YS1saXN0LWdyaWQuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IEludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUtZGF0YS12aWV3L2ludGVyYWN0aXZlLWRhdGEtdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBTZWFyY2hDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VhcmNoLWNvbmZpZy9zZWFyY2gtY29uZmlnLmNvbXBvbmVudCdcbmltcG9ydCB7IFBhZ2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VhcmNoSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQnXG5pbXBvcnQgeyBHcm91cEJ5Q291bnREaWFncmFtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0vZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5jb21wb25lbnQnXG5pbXBvcnQgeyBEaWFncmFtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWdyYW0vZGlhZ3JhbS5jb21wb25lbnQnXG5pbXBvcnQgeyBEeW5hbWljUGlwZSB9IGZyb20gJy4vcGlwZXMvZHluYW1pYy5waXBlJ1xuaW1wb3J0IHsgSWZQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lmLXBlcm1pc3Npb24uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgSWZCcmVha3BvaW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lmLWJyZWFrcG9pbnQuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgT2N4VGltZUFnb1BpcGUgfSBmcm9tICcuL3BpcGVzL29jeHRpbWVhZ28ucGlwZSdcbmltcG9ydCB7IE9jeFRpbWVhZ29JbnRsIH0gZnJvbSAnLi91dGlscy9vY3h0aW1lYWdvaW50bC51dGlscydcbmltcG9ydCB7IGNyZWF0ZVRyYW5zbGF0ZUxvYWRlciB9IGZyb20gJy4vdXRpbHMvY3JlYXRlLXRyYW5zbGF0ZS1sb2FkZXIudXRpbHMnXG5pbXBvcnQgeyBUcmFuc2xhdGlvbkNhY2hlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdHJhbnNsYXRpb24tY2FjaGUuc2VydmljZSdcblxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJBY2NlbGVyYXRvck1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIgaW1wbGVtZW50cyBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyIHtcbiAgaGFuZGxlKHBhcmFtczogTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlclBhcmFtcykge1xuICAgIGNvbnNvbGUubG9nKGBNaXNzaW5nIHRyYW5zbGF0aW9uIGZvciAke3BhcmFtcy5rZXl9YCwgcGFyYW1zKVxuICAgIHJldHVybiBwYXJhbXMua2V5XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBbmd1bGFyQWNjZWxlcmF0b3JQcmltZU5nTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JSb290KHtcbiAgICAgIGlzb2xhdGU6IHRydWUsXG4gICAgICBsb2FkZXI6IHtcbiAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVUcmFuc2xhdGVMb2FkZXIsXG4gICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBBcHBTdGF0ZVNlcnZpY2UsIFRyYW5zbGF0aW9uQ2FjaGVTZXJ2aWNlXSxcbiAgICAgIH0sXG4gICAgICBtaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIsXG4gICAgICAgIHVzZUNsYXNzOiBBbmd1bGFyQWNjZWxlcmF0b3JNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnQsXG4gICAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudCxcbiAgICBEYXRhTGF5b3V0U2VsZWN0aW9uQ29tcG9uZW50LFxuICAgIERhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnQsXG4gICAgRGF0YUxpc3RHcmlkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVmlld0NvbXBvbmVudCxcbiAgICBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50LFxuICAgIFNlYXJjaENvbmZpZ0NvbXBvbmVudCxcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50LFxuICAgIER5bmFtaWNQaXBlLFxuICAgIFNlYXJjaEhlYWRlckNvbXBvbmVudCxcbiAgICBEaWFncmFtQ29tcG9uZW50LFxuICAgIEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnQsXG4gICAgSWZQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIElmQnJlYWtwb2ludERpcmVjdGl2ZSxcbiAgICBPY3hUaW1lQWdvUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICAgICAgdXNlRmFjdG9yeTogKFVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gVXNlclNlcnZpY2UubGFuZyQuZ2V0VmFsdWUoKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtVc2VyU2VydmljZV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBUaW1lYWdvSW50bCxcbiAgICAgIHVzZUZhY3Rvcnk6ICh1c2VyU2VydmljZTogVXNlclNlcnZpY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPY3hUaW1lYWdvSW50bCh1c2VyU2VydmljZSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbVXNlclNlcnZpY2VdLFxuICAgIH0sXG4gICAgaW1wb3J0UHJvdmlkZXJzRnJvbShUaW1lYWdvTW9kdWxlKSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBUaW1lYWdvRm9ybWF0dGVyLFxuICAgICAgdXNlRmFjdG9yeTogKFRpbWVhZ29JbnRsOiBUaW1lYWdvSW50bCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFRpbWVhZ29DdXN0b21Gb3JtYXR0ZXIoVGltZWFnb0ludGwpXG4gICAgICB9LFxuICAgICAgZGVwczogW1RpbWVhZ29JbnRsXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRpbWVhZ29DbG9jayxcbiAgICAgIHVzZUNsYXNzOiBUaW1lYWdvRGVmYXVsdENsb2NrLFxuICAgIH0sXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudCxcbiAgICBDdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50LFxuICAgIERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnQsXG4gICAgRGF0YUxpc3RHcmlkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVmlld0NvbXBvbmVudCxcbiAgICBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50LFxuICAgIFNlYXJjaENvbmZpZ0NvbXBvbmVudCxcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50LFxuICAgIFNlYXJjaEhlYWRlckNvbXBvbmVudCxcbiAgICBEaWFncmFtQ29tcG9uZW50LFxuICAgIEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnQsXG4gICAgSWZQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIElmQnJlYWtwb2ludERpcmVjdGl2ZSxcbiAgICBPY3hUaW1lQWdvUGlwZSxcbiAgICAvLyBEYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50LFxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJBY2NlbGVyYXRvck1vZHVsZSB7fVxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hY2NlbGVyYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9hbmd1bGFyLWFjY2VsZXJhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUNMLHlCQUF5QixFQUV6QixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLHFCQUFxQixDQUFBO0FBRTVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFFbkYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0VBQXNFLENBQUE7QUFDcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0ZBQWtGLENBQUE7QUFDckksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUE7QUFDakgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUE7QUFDbkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUE7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENB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QUNqQiw0QkFBNEI7d0JBQzVCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGdDQUFnQztxQkFDakM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTE9DQUxFX0lELCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHtcbiAgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlcixcbiAgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlclBhcmFtcyxcbiAgVHJhbnNsYXRlTG9hZGVyLFxuICBUcmFuc2xhdGVNb2R1bGUsXG59IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICdAb25lY3gvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5cbmltcG9ydCB7IEFuZ3VsYXJBY2NlbGVyYXRvclByaW1lTmdNb2R1bGUgfSBmcm9tICcuL2FuZ3VsYXItYWNjZWxlcmF0b3ItcHJpbWVuZy5tb2R1bGUnXG5pbXBvcnQgeyBDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24uY29tcG9uZW50J1xuaW1wb3J0IHsgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YUxheW91dFNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLWxheW91dC1zZWxlY3Rpb24vZGF0YS1sYXlvdXQtc2VsZWN0aW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1saXN0LWdyaWQtc29ydGluZy9kYXRhLWxpc3QtZ3JpZC1zb3J0aW5nLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFMaXN0R3JpZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLWxpc3QtZ3JpZC9kYXRhLWxpc3QtZ3JpZC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pbnRlcmFjdGl2ZS1kYXRhLXZpZXcvaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IFNlYXJjaENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWFyY2gtY29uZmlnL3NlYXJjaC1jb25maWcuY29tcG9uZW50J1xuaW1wb3J0IHsgUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5jb21wb25lbnQnXG5pbXBvcnQgeyBTZWFyY2hIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VhcmNoLWhlYWRlci9zZWFyY2gtaGVhZGVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ3JvdXAtYnktY291bnQtZGlhZ3JhbS9ncm91cC1ieS1jb3VudC1kaWFncmFtLmNvbXBvbmVudCdcbmltcG9ydCB7IERpYWdyYW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGlhZ3JhbS9kaWFncmFtLmNvbXBvbmVudCdcbmltcG9ydCB7IER5bmFtaWNQaXBlIH0gZnJvbSAnLi9waXBlcy9keW5hbWljLnBpcGUnXG5pbXBvcnQgeyBJZlBlcm1pc3Npb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUnXG5pbXBvcnQgeyBJZkJyZWFrcG9pbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaWYtYnJlYWtwb2ludC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBPY3hUaW1lQWdvUGlwZSB9IGZyb20gJy4vcGlwZXMvb2N4dGltZWFnby5waXBlJ1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnLi91dGlscy9jcmVhdGUtdHJhbnNsYXRlLWxvYWRlci51dGlscydcbmltcG9ydCB7IFRyYW5zbGF0aW9uQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1jYWNoZS5zZXJ2aWNlJ1xuaW1wb3J0IHsgU3JjRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NyYy5kaXJlY3RpdmUnXG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyQWNjZWxlcmF0b3JNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyIGltcGxlbWVudHMgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlciB7XG4gIGhhbmRsZShwYXJhbXM6IE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXJQYXJhbXMpIHtcbiAgICBjb25zb2xlLmxvZyhgTWlzc2luZyB0cmFuc2xhdGlvbiBmb3IgJHtwYXJhbXMua2V5fWAsIHBhcmFtcylcbiAgICByZXR1cm4gcGFyYW1zLmtleVxuICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckFjY2VsZXJhdG9yUHJpbWVOZ01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICBpc29sYXRlOiB0cnVlLFxuICAgICAgbG9hZGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgdXNlRmFjdG9yeTogY3JlYXRlVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICBkZXBzOiBbSHR0cENsaWVudCwgQXBwU3RhdGVTZXJ2aWNlLCBUcmFuc2xhdGlvbkNhY2hlU2VydmljZV0sXG4gICAgICB9LFxuICAgICAgbWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlcjoge1xuICAgICAgICBwcm92aWRlOiBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLFxuICAgICAgICB1c2VDbGFzczogQW5ndWxhckFjY2VsZXJhdG9yTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50LFxuICAgIEN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnQsXG4gICAgRGF0YUxheW91dFNlbGVjdGlvbkNvbXBvbmVudCxcbiAgICBEYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50LFxuICAgIERhdGFMaXN0R3JpZENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVZpZXdDb21wb25lbnQsXG4gICAgSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCxcbiAgICBTZWFyY2hDb25maWdDb21wb25lbnQsXG4gICAgUGFnZUhlYWRlckNvbXBvbmVudCxcbiAgICBEeW5hbWljUGlwZSxcbiAgICBTZWFyY2hIZWFkZXJDb21wb25lbnQsXG4gICAgRGlhZ3JhbUNvbXBvbmVudCxcbiAgICBHcm91cEJ5Q291bnREaWFncmFtQ29tcG9uZW50LFxuICAgIElmUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBJZkJyZWFrcG9pbnREaXJlY3RpdmUsXG4gICAgU3JjRGlyZWN0aXZlLFxuICAgIE9jeFRpbWVBZ29QaXBlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBMT0NBTEVfSUQsXG4gICAgICB1c2VGYWN0b3J5OiAoVXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSA9PiB7XG4gICAgICAgIHJldHVybiBVc2VyU2VydmljZS5sYW5nJC5nZXRWYWx1ZSgpXG4gICAgICB9LFxuICAgICAgZGVwczogW1VzZXJTZXJ2aWNlXSxcbiAgICB9LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnQsXG4gICAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudCxcbiAgICBEYXRhTGF5b3V0U2VsZWN0aW9uQ29tcG9uZW50LFxuICAgIERhdGFMaXN0R3JpZENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVZpZXdDb21wb25lbnQsXG4gICAgSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCxcbiAgICBTZWFyY2hDb25maWdDb21wb25lbnQsXG4gICAgUGFnZUhlYWRlckNvbXBvbmVudCxcbiAgICBTZWFyY2hIZWFkZXJDb21wb25lbnQsXG4gICAgRGlhZ3JhbUNvbXBvbmVudCxcbiAgICBHcm91cEJ5Q291bnREaWFncmFtQ29tcG9uZW50LFxuICAgIElmUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBJZkJyZWFrcG9pbnREaXJlY3RpdmUsXG4gICAgU3JjRGlyZWN0aXZlLFxuICAgIE9jeFRpbWVBZ29QaXBlLFxuICAgIC8vIERhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnQsXG4gIF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhckFjY2VsZXJhdG9yTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Directive, ElementRef, Input } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
export class SrcDirective {
|
|
6
|
+
get ocxSrc() {
|
|
7
|
+
return this._src;
|
|
8
|
+
}
|
|
9
|
+
set ocxSrc(value) {
|
|
10
|
+
if (value && this._src !== value) {
|
|
11
|
+
this.httpClient.get(value, { responseType: 'blob' }).subscribe({
|
|
12
|
+
next: (blob) => {
|
|
13
|
+
const url = URL.createObjectURL(blob);
|
|
14
|
+
this.el.nativeElement.onload = () => {
|
|
15
|
+
URL.revokeObjectURL(url);
|
|
16
|
+
};
|
|
17
|
+
this.el.nativeElement.src = url;
|
|
18
|
+
},
|
|
19
|
+
error: () => {
|
|
20
|
+
this.el.nativeElement.src = 'error';
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
this._src = value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
constructor(el, httpClient) {
|
|
27
|
+
this.el = el;
|
|
28
|
+
this.httpClient = httpClient;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
SrcDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SrcDirective, deps: [{ token: i0.ElementRef }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Directive });
|
|
32
|
+
SrcDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SrcDirective, selector: "[ocxSrc]", inputs: { ocxSrc: "ocxSrc" }, ngImport: i0 });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SrcDirective, decorators: [{
|
|
34
|
+
type: Directive,
|
|
35
|
+
args: [{ selector: '[ocxSrc]' }]
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.HttpClient }]; }, propDecorators: { ocxSrc: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci9zcmMvbGliL2RpcmVjdGl2ZXMvc3JjLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFHNUQsTUFBTSxPQUFPLFlBQVk7SUFHdkIsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFBO0lBQ2xCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUF5QjtRQUNsQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzdELElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNiLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQ3JDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7d0JBQ2xDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQzFCLENBQUMsQ0FBQTtvQkFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO2dCQUNqQyxDQUFDO2dCQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQTtnQkFDckMsQ0FBQzthQUNGLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFBO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELFlBQW9CLEVBQWMsRUFBVSxVQUFzQjtRQUE5QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7OzBHQXpCM0QsWUFBWTs4RkFBWixZQUFZOzRGQUFaLFlBQVk7a0JBRHhCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFOzBIQUs3QixNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW29jeFNyY10nIH0pXG5leHBvcnQgY2xhc3MgU3JjRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBfc3JjOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBASW5wdXQoKVxuICBnZXQgb2N4U3JjKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3NyY1xuICB9XG4gIHNldCBvY3hTcmModmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLl9zcmMgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHZhbHVlLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChibG9iKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybClcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNyYyA9IHVybFxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zcmMgPSAnZXJyb3InXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgdGhpcy5fc3JjID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG59XG4iXX0=
|
|
@@ -1,15 +1,107 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { ChangeDetectorRef, NgZone, Pipe } from '@angular/core';
|
|
2
|
+
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
4
5
|
// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
|
|
5
|
-
export class OcxTimeAgoPipe extends
|
|
6
|
+
export class OcxTimeAgoPipe extends TranslatePipe {
|
|
7
|
+
constructor(changeDetectorRef, ngZone, translateService) {
|
|
8
|
+
super(translateService, changeDetectorRef);
|
|
9
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
10
|
+
this.ngZone = ngZone;
|
|
11
|
+
this.translateService = translateService;
|
|
12
|
+
}
|
|
13
|
+
transform(value) {
|
|
14
|
+
this.removeTimer();
|
|
15
|
+
const d = new Date(value);
|
|
16
|
+
const now = new Date();
|
|
17
|
+
const seconds = Math.round(Math.abs((now.getTime() - d.getTime()) / 1000));
|
|
18
|
+
const timeToUpdate = Number.isNaN(seconds) ? 1000 : this.getSecondsUntilUpdate(seconds) * 1000;
|
|
19
|
+
this.timer = this.ngZone.runOutsideAngular(() => {
|
|
20
|
+
if (typeof window !== 'undefined') {
|
|
21
|
+
return window.setTimeout(() => {
|
|
22
|
+
this.ngZone.run(() => this.changeDetectorRef.markForCheck());
|
|
23
|
+
}, timeToUpdate);
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
});
|
|
27
|
+
const minutes = Math.round(Math.abs(seconds / 60));
|
|
28
|
+
const hours = Math.round(Math.abs(minutes / 60));
|
|
29
|
+
const days = Math.round(Math.abs(hours / 24));
|
|
30
|
+
const months = Math.round(Math.abs(days / 30.416));
|
|
31
|
+
const years = Math.round(Math.abs(days / 365));
|
|
32
|
+
let translationKey = 'UNKNOWN';
|
|
33
|
+
if (Number.isNaN(seconds)) {
|
|
34
|
+
translationKey = 'NAN';
|
|
35
|
+
}
|
|
36
|
+
else if (seconds <= 45) {
|
|
37
|
+
translationKey = 'A_FEW_SECONDS_AGO';
|
|
38
|
+
}
|
|
39
|
+
else if (seconds <= 90) {
|
|
40
|
+
translationKey = 'A_MINUTE_AGO';
|
|
41
|
+
}
|
|
42
|
+
else if (minutes <= 45) {
|
|
43
|
+
translationKey = 'MINUTES_AGO';
|
|
44
|
+
}
|
|
45
|
+
else if (minutes <= 90) {
|
|
46
|
+
translationKey = 'AN_HOUR_AGO';
|
|
47
|
+
}
|
|
48
|
+
else if (hours <= 22) {
|
|
49
|
+
translationKey = 'HOURS_AGO';
|
|
50
|
+
}
|
|
51
|
+
else if (hours <= 36) {
|
|
52
|
+
translationKey = 'A_DAY_AGO';
|
|
53
|
+
}
|
|
54
|
+
else if (days <= 25) {
|
|
55
|
+
translationKey = 'DAYS_AGO';
|
|
56
|
+
}
|
|
57
|
+
else if (days <= 45) {
|
|
58
|
+
translationKey = 'A_MONTH_AGO';
|
|
59
|
+
}
|
|
60
|
+
else if (days <= 345) {
|
|
61
|
+
translationKey = 'MONTHS_AGO';
|
|
62
|
+
}
|
|
63
|
+
else if (days <= 545) {
|
|
64
|
+
translationKey = 'A_YEAR_AGO';
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
translationKey = 'YEARS_AGO';
|
|
68
|
+
}
|
|
69
|
+
return super.transform('OCX_TIMEAGO.' + translationKey, { minutes, hours, days, months, years });
|
|
70
|
+
}
|
|
71
|
+
ngOnDestroy() {
|
|
72
|
+
this.removeTimer();
|
|
73
|
+
super.ngOnDestroy();
|
|
74
|
+
}
|
|
75
|
+
removeTimer() {
|
|
76
|
+
if (this.timer) {
|
|
77
|
+
window.clearTimeout(this.timer);
|
|
78
|
+
this.timer = null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
getSecondsUntilUpdate(seconds) {
|
|
82
|
+
const min = 60;
|
|
83
|
+
const hr = min * 60;
|
|
84
|
+
const day = hr * 24;
|
|
85
|
+
if (seconds < min) {
|
|
86
|
+
return 2;
|
|
87
|
+
}
|
|
88
|
+
else if (seconds < hr) {
|
|
89
|
+
return 30;
|
|
90
|
+
}
|
|
91
|
+
else if (seconds < day) {
|
|
92
|
+
return 300;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return 3600;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
6
98
|
}
|
|
7
|
-
OcxTimeAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OcxTimeAgoPipe, deps:
|
|
99
|
+
OcxTimeAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OcxTimeAgoPipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
8
100
|
OcxTimeAgoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: OcxTimeAgoPipe, name: "timeago" });
|
|
9
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OcxTimeAgoPipe, decorators: [{
|
|
10
102
|
type: Pipe,
|
|
11
103
|
args: [{
|
|
12
104
|
name: 'timeago',
|
|
13
105
|
}]
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.TranslateService }]; } });
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N4dGltZWFnby5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvcGlwZXMvb2N4dGltZWFnby5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQWEsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQTtBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7OztBQUtyRSx3RUFBd0U7QUFDeEUsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBRS9DLFlBQ1UsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxnQkFBa0M7UUFFMUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBQUE7UUFKbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUc1QyxDQUFDO0lBQ1EsU0FBUyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ2xCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDMUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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LElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1NBQ2xCO0lBQ0gsQ0FBQztJQUNPLHFCQUFxQixDQUFDLE9BQWU7UUFDM0MsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFBO1FBQ2QsTUFBTSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQTtRQUNuQixNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBQ25CLElBQUksT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUNqQixPQUFPLENBQUMsQ0FBQTtTQUNUO2FBQU0sSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sRUFBRSxDQUFBO1NBQ1Y7YUFBTSxJQUFJLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDeEIsT0FBTyxHQUFHLENBQUE7U0FDWDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUE7U0FDWjtJQUNILENBQUM7OzRHQS9FVSxjQUFjOzBHQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFKMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgTmdab25lLCBPbkRlc3Ryb3ksIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RpbWVhZ28nLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuZXhwb3J0IGNsYXNzIE9jeFRpbWVBZ29QaXBlIGV4dGVuZHMgVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgdGltZXI6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYpXG4gIH1cbiAgb3ZlcnJpZGUgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlbW92ZVRpbWVyKClcbiAgICBjb25zdCBkID0gbmV3IERhdGUodmFsdWUpXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKVxuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKChub3cuZ2V0VGltZSgpIC0gZC5nZXRUaW1lKCkpIC8gMTAwMCkpXG4gICAgY29uc3QgdGltZVRvVXBkYXRlID0gTnVtYmVyLmlzTmFOKHNlY29uZHMpID8gMTAwMCA6IHRoaXMuZ2V0U2Vjb25kc1VudGlsVXBkYXRlKHNlY29uZHMpICogMTAwMFxuICAgIHRoaXMudGltZXIgPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSlcbiAgICAgICAgfSwgdGltZVRvVXBkYXRlKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9KVxuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHNlY29uZHMgLyA2MCkpXG4gICAgY29uc3QgaG91cnMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKG1pbnV0ZXMgLyA2MCkpXG4gICAgY29uc3QgZGF5cyA9IE1hdGgucm91bmQoTWF0aC5hYnMoaG91cnMgLyAyNCkpXG4gICAgY29uc3QgbW9udGhzID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXlzIC8gMzAuNDE2KSlcbiAgICBjb25zdCB5ZWFycyA9IE1hdGgucm91bmQoTWF0aC5hYnMoZGF5cyAvIDM2NSkpXG4gICAgbGV0IHRyYW5zbGF0aW9uS2V5ID0gJ1VOS05PV04nXG4gICAgaWYgKE51bWJlci5pc05hTihzZWNvbmRzKSkge1xuICAgICAgdHJhbnNsYXRpb25LZXkgPSAnTkFOJ1xuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8PSA0NSkge1xuICAgICAgdHJhbnNsYXRpb25LZXkgPSAnQV9GRVdfU0VDT05EU19BR08nXG4gICAgfSBlbHNlIGlmIChzZWNvbmRzIDw9IDkwKSB7XG4gICAgICB0cmFuc2xhdGlvbktleSA9ICdBX01JTlVURV9BR08nXG4gICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDQ1KSB7XG4gICAgICB0cmFuc2xhdGlvbktleSA9ICdNSU5VVEVTX0FHTydcbiAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPD0gOTApIHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5ID0gJ0FOX0hPVVJfQUdPJ1xuICAgIH0gZWxzZSBpZiAoaG91cnMgPD0gMjIpIHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5ID0gJ0hPVVJTX0FHTydcbiAgICB9IGVsc2UgaWYgKGhvdXJzIDw9IDM2KSB7XG4gICAgICB0cmFuc2xhdGlvbktleSA9ICdBX0RBWV9BR08nXG4gICAgfSBlbHNlIGlmIChkYXlzIDw9IDI1KSB7XG4gICAgICB0cmFuc2xhdGlvbktleSA9ICdEQVlTX0FHTydcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gNDUpIHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5ID0gJ0FfTU9OVEhfQUdPJ1xuICAgIH0gZWxzZSBpZiAoZGF5cyA8PSAzNDUpIHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5ID0gJ01PTlRIU19BR08nXG4gICAgfSBlbHNlIGlmIChkYXlzIDw9IDU0NSkge1xuICAgICAgdHJhbnNsYXRpb25LZXkgPSAnQV9ZRUFSX0FHTydcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNsYXRpb25LZXkgPSAnWUVBUlNfQUdPJ1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKCdPQ1hfVElNRUFHTy4nICsgdHJhbnNsYXRpb25LZXksIHsgbWludXRlcywgaG91cnMsIGRheXMsIG1vbnRocywgeWVhcnMgfSlcbiAgfVxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVRpbWVyKClcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpXG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVUaW1lcigpIHtcbiAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxuICAgICAgdGhpcy50aW1lciA9IG51bGxcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRTZWNvbmRzVW50aWxVcGRhdGUoc2Vjb25kczogbnVtYmVyKSB7XG4gICAgY29uc3QgbWluID0gNjBcbiAgICBjb25zdCBociA9IG1pbiAqIDYwXG4gICAgY29uc3QgZGF5ID0gaHIgKiAyNFxuICAgIGlmIChzZWNvbmRzIDwgbWluKSB7XG4gICAgICByZXR1cm4gMlxuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8IGhyKSB7XG4gICAgICByZXR1cm4gMzBcbiAgICB9IGVsc2UgaWYgKHNlY29uZHMgPCBkYXkpIHtcbiAgICAgIHJldHVybiAzMDBcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDM2MDBcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|