@entake/particle 17.0.0
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/LICENSE +7 -0
- package/README.md +396 -0
- package/app/modules/accordion/accordion.component.d.ts +26 -0
- package/app/modules/accordion/accordion.module.d.ts +11 -0
- package/app/modules/accordion/directives/accordion-content.directive.d.ts +8 -0
- package/app/modules/accordion/directives/accordion-header.directive.d.ts +8 -0
- package/app/modules/accordion/directives/accordion-item.directive.d.ts +13 -0
- package/app/modules/background-carousel/background-carousel.directive.d.ts +42 -0
- package/app/modules/background-carousel/carousel-options.model.d.ts +30 -0
- package/app/modules/background-carousel/particle-background-carousel.module.d.ts +8 -0
- package/app/modules/checkbox/checkbox.component.d.ts +43 -0
- package/app/modules/checkbox/checkbox.module.d.ts +9 -0
- package/app/modules/color-picker/color-picker.component.d.ts +149 -0
- package/app/modules/color-picker/color-picker.module.d.ts +9 -0
- package/app/modules/date-picker/components/calendar/calendar.component.d.ts +211 -0
- package/app/modules/date-picker/components/date-range-picker/date-range-picker.component.d.ts +95 -0
- package/app/modules/date-picker/date-picker.component.d.ts +259 -0
- package/app/modules/date-picker/date-picker.module.d.ts +15 -0
- package/app/modules/dialog/dialog.component.d.ts +87 -0
- package/app/modules/dialog/dialog.module.d.ts +9 -0
- package/app/modules/dropdown/dropdown.component.d.ts +288 -0
- package/app/modules/dropdown/dropdown.module.d.ts +9 -0
- package/app/modules/dropdown/models/dropdown-option-group.model.d.ts +16 -0
- package/app/modules/dropdown/models/dropdown-option.model.d.ts +25 -0
- package/app/modules/endpoint-state/components/endpoint-state.component.d.ts +46 -0
- package/app/modules/endpoint-state/endpoint-state.module.d.ts +8 -0
- package/app/modules/icons/components/icon-select.component.d.ts +229 -0
- package/app/modules/icons/models/fontawesome-icons-brands.model.d.ts +13 -0
- package/app/modules/icons/models/fontawesome-icons-regular.model.d.ts +13 -0
- package/app/modules/icons/models/fontawesome-icons-solid.model.d.ts +13 -0
- package/app/modules/icons/models/particle-icons-light.model.d.ts +197 -0
- package/app/modules/icons/models/particle-icons-regular.model.d.ts +205 -0
- package/app/modules/icons/models/particle-icons-solid.model.d.ts +365 -0
- package/app/modules/icons/particle-icons.module.d.ts +13 -0
- package/app/modules/icons/services/icons.service.d.ts +44 -0
- package/app/modules/idle-timeout/idle-timeout.component.d.ts +35 -0
- package/app/modules/idle-timeout/idle-timer.d.ts +14 -0
- package/app/modules/idle-timeout/particle-idle-timeout.module.d.ts +9 -0
- package/app/modules/input-mask/input-mask.component.d.ts +86 -0
- package/app/modules/input-mask/input-mask.module.d.ts +8 -0
- package/app/modules/keyfilter/keyfilter.directive.d.ts +60 -0
- package/app/modules/keyfilter/keyfilter.module.d.ts +8 -0
- package/app/modules/layout/components/layout-full-framing/layout-full-framing.component.d.ts +27 -0
- package/app/modules/layout/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.d.ts +23 -0
- package/app/modules/layout/layout.module.d.ts +10 -0
- package/app/modules/loader/components/loader.component.d.ts +11 -0
- package/app/modules/loader/loader.module.d.ts +8 -0
- package/app/modules/multi-select/models/multi-select-option-group.model.d.ts +16 -0
- package/app/modules/multi-select/models/multi-select-option.model.d.ts +25 -0
- package/app/modules/multi-select/multi-select.component.d.ts +279 -0
- package/app/modules/multi-select/multi-select.module.d.ts +8 -0
- package/app/modules/notification/models/notification.model.d.ts +21 -0
- package/app/modules/notification/notification.component.d.ts +46 -0
- package/app/modules/notification/notification.module.d.ts +8 -0
- package/app/modules/notification/services/notification.service.d.ts +54 -0
- package/app/modules/ordinal-number-pipe/ordinal-number-pipe.module.d.ts +8 -0
- package/app/modules/ordinal-number-pipe/ordinal-number.pipe.d.ts +15 -0
- package/app/modules/paginator/pagination-event.model.d.ts +24 -0
- package/app/modules/paginator/paginator.component.d.ts +103 -0
- package/app/modules/paginator/particle-paginator.module.d.ts +13 -0
- package/app/modules/popover/popover.component.d.ts +140 -0
- package/app/modules/popover/popover.module.d.ts +9 -0
- package/app/modules/profile-pic/particle-profile-pic.module.d.ts +9 -0
- package/app/modules/profile-pic/profile-pic.component.d.ts +32 -0
- package/app/modules/progress-bar/progress-bar.component.d.ts +16 -0
- package/app/modules/progress-bar/progress-bar.module.d.ts +8 -0
- package/app/modules/push-container/particle-push-container.module.d.ts +9 -0
- package/app/modules/push-container/push-container-state.model.d.ts +7 -0
- package/app/modules/push-container/push-container.component.d.ts +137 -0
- package/app/modules/rich-text/particle-rich-text.module.d.ts +15 -0
- package/app/modules/rich-text/render-rich-text.component.d.ts +6 -0
- package/app/modules/rich-text/rich-text-capabilities.model.d.ts +7 -0
- package/app/modules/rich-text/rich-text.component.d.ts +48 -0
- package/app/modules/scroll-to-top/particle-scroll-to-top.module.d.ts +8 -0
- package/app/modules/scroll-to-top/scroll-to-top.component.d.ts +19 -0
- package/app/modules/slideover/particle-slideover.module.d.ts +8 -0
- package/app/modules/slideover/slideover.component.d.ts +35 -0
- package/app/modules/slider/slider.component.d.ts +143 -0
- package/app/modules/slider/slider.module.d.ts +9 -0
- package/app/modules/theming/components/theming.component.d.ts +43 -0
- package/app/modules/theming/models/theme.model.d.ts +88 -0
- package/app/modules/theming/services/theme-change-detection.service.d.ts +26 -0
- package/app/modules/theming/services/theming.service.d.ts +142 -0
- package/app/modules/theming/theming.module.d.ts +12 -0
- package/app/modules/toggle-switch/models/toggle-options.model.d.ts +11 -0
- package/app/modules/toggle-switch/toggle-switch.component.d.ts +43 -0
- package/app/modules/toggle-switch/toggle-switch.module.d.ts +8 -0
- package/app/modules/tooltip/tooltip.directive.d.ts +157 -0
- package/app/modules/tooltip/tooltip.module.d.ts +8 -0
- package/app/modules/week-picker/week-picker.component.d.ts +289 -0
- package/app/modules/week-picker/week-picker.module.d.ts +13 -0
- package/app/shared/enums/endpoint-status.enum.d.ts +9 -0
- package/app/shared/interceptors/json.interceptor.d.ts +17 -0
- package/app/shared/models/auditable.model.d.ts +21 -0
- package/app/shared/models/data-list.model.d.ts +9 -0
- package/app/shared/models/id.model.d.ts +9 -0
- package/app/shared/models/observable-container.d.ts +8 -0
- package/app/shared/models/particle-component-text.model.d.ts +211 -0
- package/app/shared/services/base-data.service.d.ts +130 -0
- package/app/shared/services/dialog.service.d.ts +10 -0
- package/app/shared/services/local-storage.service.d.ts +41 -0
- package/esm2022/app/modules/accordion/accordion.component.mjs +101 -0
- package/esm2022/app/modules/accordion/accordion.module.mjs +37 -0
- package/esm2022/app/modules/accordion/directives/accordion-content.directive.mjs +17 -0
- package/esm2022/app/modules/accordion/directives/accordion-header.directive.mjs +17 -0
- package/esm2022/app/modules/accordion/directives/accordion-item.directive.mjs +36 -0
- package/esm2022/app/modules/background-carousel/background-carousel.directive.mjs +91 -0
- package/esm2022/app/modules/background-carousel/carousel-options.model.mjs +36 -0
- package/esm2022/app/modules/background-carousel/particle-background-carousel.module.mjs +24 -0
- package/esm2022/app/modules/checkbox/checkbox.component.mjs +108 -0
- package/esm2022/app/modules/checkbox/checkbox.module.mjs +28 -0
- package/esm2022/app/modules/color-picker/color-picker.component.mjs +306 -0
- package/esm2022/app/modules/color-picker/color-picker.module.mjs +19 -0
- package/esm2022/app/modules/date-picker/components/calendar/calendar.component.mjs +496 -0
- package/esm2022/app/modules/date-picker/components/date-range-picker/date-range-picker.component.mjs +250 -0
- package/esm2022/app/modules/date-picker/date-picker.component.mjs +538 -0
- package/esm2022/app/modules/date-picker/date-picker.module.mjs +56 -0
- package/esm2022/app/modules/dialog/dialog.component.mjs +177 -0
- package/esm2022/app/modules/dialog/dialog.module.mjs +28 -0
- package/esm2022/app/modules/dropdown/dropdown.component.mjs +682 -0
- package/esm2022/app/modules/dropdown/dropdown.module.mjs +28 -0
- package/esm2022/app/modules/dropdown/models/dropdown-option-group.model.mjs +2 -0
- package/esm2022/app/modules/dropdown/models/dropdown-option.model.mjs +2 -0
- package/esm2022/app/modules/endpoint-state/components/endpoint-state.component.mjs +75 -0
- package/esm2022/app/modules/endpoint-state/endpoint-state.module.mjs +22 -0
- package/esm2022/app/modules/icons/components/icon-select.component.mjs +377 -0
- package/esm2022/app/modules/icons/models/fontawesome-icons-brands.model.mjs +471 -0
- package/esm2022/app/modules/icons/models/fontawesome-icons-regular.model.mjs +166 -0
- package/esm2022/app/modules/icons/models/fontawesome-icons-solid.model.mjs +1016 -0
- package/esm2022/app/modules/icons/models/particle-icons-light.model.mjs +310 -0
- package/esm2022/app/modules/icons/models/particle-icons-regular.model.mjs +324 -0
- package/esm2022/app/modules/icons/models/particle-icons-solid.model.mjs +581 -0
- package/esm2022/app/modules/icons/particle-icons.module.mjs +66 -0
- package/esm2022/app/modules/icons/services/icons.service.mjs +86 -0
- package/esm2022/app/modules/idle-timeout/idle-timeout.component.mjs +85 -0
- package/esm2022/app/modules/idle-timeout/idle-timer.mjs +66 -0
- package/esm2022/app/modules/idle-timeout/particle-idle-timeout.module.mjs +28 -0
- package/esm2022/app/modules/input-mask/input-mask.component.mjs +594 -0
- package/esm2022/app/modules/input-mask/input-mask.module.mjs +18 -0
- package/esm2022/app/modules/keyfilter/keyfilter.directive.mjs +158 -0
- package/esm2022/app/modules/keyfilter/keyfilter.module.mjs +18 -0
- package/esm2022/app/modules/layout/components/layout-full-framing/layout-full-framing.component.mjs +79 -0
- package/esm2022/app/modules/layout/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.mjs +65 -0
- package/esm2022/app/modules/layout/layout.module.mjs +33 -0
- package/esm2022/app/modules/loader/components/loader.component.mjs +30 -0
- package/esm2022/app/modules/loader/loader.module.mjs +24 -0
- package/esm2022/app/modules/multi-select/models/multi-select-option-group.model.mjs +2 -0
- package/esm2022/app/modules/multi-select/models/multi-select-option.model.mjs +2 -0
- package/esm2022/app/modules/multi-select/multi-select.component.mjs +665 -0
- package/esm2022/app/modules/multi-select/multi-select.module.mjs +18 -0
- package/esm2022/app/modules/notification/models/notification.model.mjs +2 -0
- package/esm2022/app/modules/notification/notification.component.mjs +122 -0
- package/esm2022/app/modules/notification/notification.module.mjs +18 -0
- package/esm2022/app/modules/notification/services/notification.service.mjs +84 -0
- package/esm2022/app/modules/ordinal-number-pipe/ordinal-number-pipe.module.mjs +20 -0
- package/esm2022/app/modules/ordinal-number-pipe/ordinal-number.pipe.mjs +49 -0
- package/esm2022/app/modules/paginator/pagination-event.model.mjs +29 -0
- package/esm2022/app/modules/paginator/paginator.component.mjs +207 -0
- package/esm2022/app/modules/paginator/particle-paginator.module.mjs +48 -0
- package/esm2022/app/modules/popover/popover.component.mjs +352 -0
- package/esm2022/app/modules/popover/popover.module.mjs +24 -0
- package/esm2022/app/modules/profile-pic/particle-profile-pic.module.mjs +28 -0
- package/esm2022/app/modules/profile-pic/profile-pic.component.mjs +74 -0
- package/esm2022/app/modules/progress-bar/progress-bar.component.mjs +43 -0
- package/esm2022/app/modules/progress-bar/progress-bar.module.mjs +24 -0
- package/esm2022/app/modules/push-container/particle-push-container.module.mjs +26 -0
- package/esm2022/app/modules/push-container/push-container-state.model.mjs +2 -0
- package/esm2022/app/modules/push-container/push-container.component.mjs +363 -0
- package/esm2022/app/modules/rich-text/particle-rich-text.module.mjs +64 -0
- package/esm2022/app/modules/rich-text/render-rich-text.component.mjs +18 -0
- package/esm2022/app/modules/rich-text/rich-text-capabilities.model.mjs +2 -0
- package/esm2022/app/modules/rich-text/rich-text.component.mjs +187 -0
- package/esm2022/app/modules/scroll-to-top/particle-scroll-to-top.module.mjs +24 -0
- package/esm2022/app/modules/scroll-to-top/scroll-to-top.component.mjs +49 -0
- package/esm2022/app/modules/slideover/particle-slideover.module.mjs +24 -0
- package/esm2022/app/modules/slideover/slideover.component.mjs +115 -0
- package/esm2022/app/modules/slider/slider.component.mjs +243 -0
- package/esm2022/app/modules/slider/slider.module.mjs +26 -0
- package/esm2022/app/modules/theming/components/theming.component.mjs +86 -0
- package/esm2022/app/modules/theming/models/theme.model.mjs +9 -0
- package/esm2022/app/modules/theming/services/theme-change-detection.service.mjs +38 -0
- package/esm2022/app/modules/theming/services/theming.service.mjs +507 -0
- package/esm2022/app/modules/theming/theming.module.mjs +55 -0
- package/esm2022/app/modules/toggle-switch/models/toggle-options.model.mjs +2 -0
- package/esm2022/app/modules/toggle-switch/toggle-switch.component.mjs +107 -0
- package/esm2022/app/modules/toggle-switch/toggle-switch.module.mjs +24 -0
- package/esm2022/app/modules/tooltip/tooltip.directive.mjs +381 -0
- package/esm2022/app/modules/tooltip/tooltip.module.mjs +18 -0
- package/esm2022/app/modules/week-picker/week-picker.component.mjs +511 -0
- package/esm2022/app/modules/week-picker/week-picker.module.mjs +40 -0
- package/esm2022/app/shared/enums/endpoint-status.enum.mjs +11 -0
- package/esm2022/app/shared/interceptors/json.interceptor.mjs +23 -0
- package/esm2022/app/shared/models/auditable.model.mjs +2 -0
- package/esm2022/app/shared/models/data-list.model.mjs +2 -0
- package/esm2022/app/shared/models/id.model.mjs +2 -0
- package/esm2022/app/shared/models/observable-container.mjs +15 -0
- package/esm2022/app/shared/models/particle-component-text.model.mjs +2 -0
- package/esm2022/app/shared/services/base-data.service.mjs +190 -0
- package/esm2022/app/shared/services/dialog.service.mjs +50 -0
- package/esm2022/app/shared/services/local-storage.service.mjs +60 -0
- package/esm2022/entake-particle.mjs +5 -0
- package/esm2022/public_api.mjs +98 -0
- package/fesm2022/entake-particle.mjs +12477 -0
- package/fesm2022/entake-particle.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +65 -0
- package/particle.css +1 -0
- package/public_api.d.ts +97 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ParticleTooltipModule } from '../tooltip/tooltip.module';
|
|
4
|
+
import { ParticleIconsRegular } from './models/particle-icons-regular.model';
|
|
5
|
+
import { ParticleIconsLight } from './models/particle-icons-light.model';
|
|
6
|
+
import { ParticleIconsSolid } from './models/particle-icons-solid.model';
|
|
7
|
+
import { IconSelectComponent } from './components/icon-select.component';
|
|
8
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
|
+
import { ParticleDialogModule } from '../dialog/dialog.module';
|
|
10
|
+
import { IconsService } from './services/icons.service';
|
|
11
|
+
import { ParticleEndpointStateModule } from '../endpoint-state/endpoint-state.module';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
/**
|
|
14
|
+
* Reference to the Font Awesome variable to add icons
|
|
15
|
+
*/
|
|
16
|
+
const FontAwesome = window['FontAwesome'];
|
|
17
|
+
export class ParticleIconsModule {
|
|
18
|
+
constructor() {
|
|
19
|
+
if (!FontAwesome) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
for (const icon of ParticleIconsLight.icons) {
|
|
23
|
+
FontAwesome.library.add(icon);
|
|
24
|
+
}
|
|
25
|
+
for (const icon of ParticleIconsRegular.icons) {
|
|
26
|
+
FontAwesome.library.add(icon);
|
|
27
|
+
}
|
|
28
|
+
for (const icon of ParticleIconsSolid.icons) {
|
|
29
|
+
FontAwesome.library.add(icon);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
33
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: ParticleIconsModule, declarations: [IconSelectComponent], imports: [CommonModule,
|
|
34
|
+
FormsModule,
|
|
35
|
+
ReactiveFormsModule,
|
|
36
|
+
ParticleTooltipModule,
|
|
37
|
+
ParticleDialogModule,
|
|
38
|
+
ParticleEndpointStateModule], exports: [IconSelectComponent] });
|
|
39
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIconsModule, providers: [IconsService], imports: [CommonModule,
|
|
40
|
+
FormsModule,
|
|
41
|
+
ReactiveFormsModule,
|
|
42
|
+
ParticleTooltipModule,
|
|
43
|
+
ParticleDialogModule,
|
|
44
|
+
ParticleEndpointStateModule] });
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIconsModule, decorators: [{
|
|
47
|
+
type: NgModule,
|
|
48
|
+
args: [{
|
|
49
|
+
declarations: [
|
|
50
|
+
IconSelectComponent
|
|
51
|
+
],
|
|
52
|
+
imports: [
|
|
53
|
+
CommonModule,
|
|
54
|
+
FormsModule,
|
|
55
|
+
ReactiveFormsModule,
|
|
56
|
+
ParticleTooltipModule,
|
|
57
|
+
ParticleDialogModule,
|
|
58
|
+
ParticleEndpointStateModule
|
|
59
|
+
],
|
|
60
|
+
exports: [
|
|
61
|
+
IconSelectComponent
|
|
62
|
+
],
|
|
63
|
+
providers: [IconsService]
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: () => [] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGUtaWNvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ljb25zL3BhcnRpY2xlLWljb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOztBQUVwRjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxhQUFvQixDQUFRLENBQUM7QUFtQnhELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUI7UUFDRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO3VHQWxCVSxtQkFBbUI7d0dBQW5CLG1CQUFtQixpQkFmNUIsbUJBQW1CLGFBR25CLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsMkJBQTJCLGFBRzNCLG1CQUFtQjt3R0FJVixtQkFBbUIsYUFGbkIsQ0FBQyxZQUFZLENBQUMsWUFWdkIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQiwyQkFBMkI7OzJGQU9sQixtQkFBbUI7a0JBakIvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1BhcnRpY2xlVG9vbHRpcE1vZHVsZX0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XHJcbmltcG9ydCB7UGFydGljbGVJY29uc1JlZ3VsYXJ9IGZyb20gJy4vbW9kZWxzL3BhcnRpY2xlLWljb25zLXJlZ3VsYXIubW9kZWwnO1xyXG5pbXBvcnQge1BhcnRpY2xlSWNvbnNMaWdodH0gZnJvbSAnLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtbGlnaHQubW9kZWwnO1xyXG5pbXBvcnQge1BhcnRpY2xlSWNvbnNTb2xpZH0gZnJvbSAnLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtc29saWQubW9kZWwnO1xyXG5pbXBvcnQge0ljb25TZWxlY3RDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7UGFydGljbGVEaWFsb2dNb2R1bGV9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcclxuaW1wb3J0IHtJY29uc1NlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7UGFydGljbGVFbmRwb2ludFN0YXRlTW9kdWxlfSBmcm9tICcuLi9lbmRwb2ludC1zdGF0ZS9lbmRwb2ludC1zdGF0ZS5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIFJlZmVyZW5jZSB0byB0aGUgRm9udCBBd2Vzb21lIHZhcmlhYmxlIHRvIGFkZCBpY29uc1xyXG4gKi9cclxuY29uc3QgRm9udEF3ZXNvbWUgPSB3aW5kb3dbJ0ZvbnRBd2Vzb21lJyBhcyBhbnldIGFzIGFueTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBJY29uU2VsZWN0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBQYXJ0aWNsZVRvb2x0aXBNb2R1bGUsXHJcbiAgICBQYXJ0aWNsZURpYWxvZ01vZHVsZSxcclxuICAgIFBhcnRpY2xlRW5kcG9pbnRTdGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSWNvblNlbGVjdENvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbSWNvbnNTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFydGljbGVJY29uc01vZHVsZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgaWYgKCFGb250QXdlc29tZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBpY29uIG9mIFBhcnRpY2xlSWNvbnNMaWdodC5pY29ucykge1xyXG4gICAgICBGb250QXdlc29tZS5saWJyYXJ5LmFkZChpY29uKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGljb24gb2YgUGFydGljbGVJY29uc1JlZ3VsYXIuaWNvbnMpIHtcclxuICAgICAgRm9udEF3ZXNvbWUubGlicmFyeS5hZGQoaWNvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBpY29uIG9mIFBhcnRpY2xlSWNvbnNTb2xpZC5pY29ucykge1xyXG4gICAgICBGb250QXdlc29tZS5saWJyYXJ5LmFkZChpY29uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FontawesomeIconsBrands } from '../models/fontawesome-icons-brands.model';
|
|
3
|
+
import { FontawesomeIconsRegular } from '../models/fontawesome-icons-regular.model';
|
|
4
|
+
import { FontawesomeIconsSolid } from '../models/fontawesome-icons-solid.model';
|
|
5
|
+
import { ParticleIconsLight } from '../models/particle-icons-light.model';
|
|
6
|
+
import { ParticleIconsRegular } from '../models/particle-icons-regular.model';
|
|
7
|
+
import { ParticleIconsSolid } from '../models/particle-icons-solid.model';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Service for filtering Particle/Fontawesome icons
|
|
11
|
+
*/
|
|
12
|
+
export class IconsService {
|
|
13
|
+
/**
|
|
14
|
+
* Get Fontawesome icons filtered by icon type
|
|
15
|
+
* @param filter the icon type to filter by
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
static getFontawesomeIcons(filter) {
|
|
19
|
+
const icons = [];
|
|
20
|
+
if (filter === 'all' || filter === 'solid') {
|
|
21
|
+
icons.push(...FontawesomeIconsSolid.ICONS.map(icon => ({ prefix: FontawesomeIconsSolid.PREFIX, name: icon })));
|
|
22
|
+
}
|
|
23
|
+
if (filter === 'all' || filter === 'regular') {
|
|
24
|
+
icons.push(...FontawesomeIconsRegular.ICONS.map(icon => ({ prefix: FontawesomeIconsRegular.PREFIX, name: icon })));
|
|
25
|
+
}
|
|
26
|
+
if (filter === 'all' || filter === 'brands') {
|
|
27
|
+
icons.push(...FontawesomeIconsBrands.ICONS.map(icon => ({ prefix: FontawesomeIconsBrands.PREFIX, name: icon })));
|
|
28
|
+
}
|
|
29
|
+
return icons;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get Particle icons filtered by icon type
|
|
33
|
+
* @param filter the icon type to filter by
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
static getParticleIcons(filter) {
|
|
37
|
+
const icons = [];
|
|
38
|
+
if (filter === 'all' || filter === 'solid') {
|
|
39
|
+
icons.push(...ParticleIconsSolid.icons.map(icon => ({ prefix: icon.prefix, name: `fa-${icon.iconName}` })));
|
|
40
|
+
}
|
|
41
|
+
if (filter === 'all' || filter === 'regular') {
|
|
42
|
+
icons.push(...ParticleIconsRegular.icons.map(icon => ({ prefix: icon.prefix, name: `fa-${icon.iconName}` })));
|
|
43
|
+
}
|
|
44
|
+
if (filter === 'all' || filter === 'light') {
|
|
45
|
+
icons.push(...ParticleIconsLight.icons.map(icon => ({ prefix: icon.prefix, name: `fa-${icon.iconName}` })));
|
|
46
|
+
}
|
|
47
|
+
return icons;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Constructor
|
|
51
|
+
*/
|
|
52
|
+
constructor() { }
|
|
53
|
+
/**
|
|
54
|
+
* Get a list of icons (as strings) containing both Particle icons
|
|
55
|
+
* and Fontawesome icons that match their respective filter criteria
|
|
56
|
+
* @param iconType the type of icon, or all icons
|
|
57
|
+
* @param filter the icon styling to filter by
|
|
58
|
+
* @param searchText the search text to filter icons by
|
|
59
|
+
*/
|
|
60
|
+
getIcons(iconType, filter, searchText = '') {
|
|
61
|
+
let icons = [];
|
|
62
|
+
if (iconType === 'all' || iconType === 'particle') {
|
|
63
|
+
const particleIcons = IconsService.getParticleIcons(filter);
|
|
64
|
+
if (particleIcons.length) {
|
|
65
|
+
icons.push(...particleIcons);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (iconType === 'all' || iconType === 'fontawesome') {
|
|
69
|
+
const fontawesomeIcons = IconsService.getFontawesomeIcons(filter);
|
|
70
|
+
if (fontawesomeIcons.length) {
|
|
71
|
+
icons.push(...fontawesomeIcons);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const trimmedSearchText = searchText.trim().toLowerCase();
|
|
75
|
+
if (trimmedSearchText) {
|
|
76
|
+
icons = icons.filter(icon => icon.name.includes(trimmedSearchText));
|
|
77
|
+
}
|
|
78
|
+
return icons;
|
|
79
|
+
}
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
81
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconsService });
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconsService, decorators: [{
|
|
84
|
+
type: Injectable
|
|
85
|
+
}], ctorParameters: () => [] });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pY29ucy9zZXJ2aWNlcy9pY29ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBWTFFOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFFdkI7Ozs7T0FJRztJQUNLLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFtQztRQUNwRSxNQUFNLEtBQUssR0FBNEMsRUFBRSxDQUFDO1FBRTFELElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakgsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0MsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckgsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBZ0M7UUFDOUQsTUFBTSxLQUFLLEdBQTRDLEVBQUUsQ0FBQztRQUUxRCxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLENBQUM7UUFFRCxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hILENBQUM7UUFFRCxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDO0lBRWpCOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FDTixRQUE0QyxFQUM1QyxNQUE4RCxFQUM5RCxVQUFVLEdBQUcsRUFBRTtRQUVmLElBQUksS0FBSyxHQUE0QyxFQUFFLENBQUM7UUFFeEQsSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsRCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBa0MsQ0FBQyxDQUFDO1lBRXhGLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN6QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLFFBQVEsS0FBSyxLQUFLLElBQUksUUFBUSxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLG1CQUFtQixDQUFDLE1BQXFDLENBQUMsQ0FBQztZQUVqRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFELElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQXpGVSxZQUFZOzJHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb250YXdlc29tZUljb25zQnJhbmRzIH0gZnJvbSAnLi4vbW9kZWxzL2ZvbnRhd2Vzb21lLWljb25zLWJyYW5kcy5tb2RlbCc7XG5pbXBvcnQgeyBGb250YXdlc29tZUljb25zUmVndWxhciB9IGZyb20gJy4uL21vZGVscy9mb250YXdlc29tZS1pY29ucy1yZWd1bGFyLm1vZGVsJztcbmltcG9ydCB7IEZvbnRhd2Vzb21lSWNvbnNTb2xpZCB9IGZyb20gJy4uL21vZGVscy9mb250YXdlc29tZS1pY29ucy1zb2xpZC5tb2RlbCc7XG5pbXBvcnQgeyBQYXJ0aWNsZUljb25zTGlnaHQgfSBmcm9tICcuLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtbGlnaHQubW9kZWwnO1xuaW1wb3J0IHsgUGFydGljbGVJY29uc1JlZ3VsYXIgfSBmcm9tICcuLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtcmVndWxhci5tb2RlbCc7XG5pbXBvcnQgeyBQYXJ0aWNsZUljb25zU29saWQgfSBmcm9tICcuLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtc29saWQubW9kZWwnO1xuXG4vKipcbiAqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSBhdmFpbGFibGUgUGFydGljbGUgaWNvbiBmaWx0ZXIgb3B0aW9uc1xuICovXG5kZWNsYXJlIHR5cGUgUGFydGljbGVJY29uRmlsdGVyT3B0aW9uID0gJ2FsbCcgfCAnc29saWQnIHwgJ3JlZ3VsYXInIHwgJ2xpZ2h0JztcblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgYXZhaWxhYmxlIEZvbnRhd2Vzb21lIGljb24gZmlsdGVyIG9wdGlvbnNcbiAqL1xuZGVjbGFyZSB0eXBlIEZvbnRhd2Vzb21lSWNvbkZpbHRlck9wdGlvbiA9ICdhbGwnIHwgJ3NvbGlkJyB8ICdyZWd1bGFyJyB8ICdicmFuZHMnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIGZpbHRlcmluZyBQYXJ0aWNsZS9Gb250YXdlc29tZSBpY29uc1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWNvbnNTZXJ2aWNlIHtcblxuICAvKipcbiAgICogR2V0IEZvbnRhd2Vzb21lIGljb25zIGZpbHRlcmVkIGJ5IGljb24gdHlwZVxuICAgKiBAcGFyYW0gZmlsdGVyIHRoZSBpY29uIHR5cGUgdG8gZmlsdGVyIGJ5XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRGb250YXdlc29tZUljb25zKGZpbHRlcjogRm9udGF3ZXNvbWVJY29uRmlsdGVyT3B0aW9uKTogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBpY29uczogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+ID0gW107XG5cbiAgICBpZiAoZmlsdGVyID09PSAnYWxsJyB8fCBmaWx0ZXIgPT09ICdzb2xpZCcpIHtcbiAgICAgIGljb25zLnB1c2goLi4uRm9udGF3ZXNvbWVJY29uc1NvbGlkLklDT05TLm1hcChpY29uID0+ICh7IHByZWZpeDogRm9udGF3ZXNvbWVJY29uc1NvbGlkLlBSRUZJWCwgbmFtZTogaWNvbiB9KSkpO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIgPT09ICdhbGwnIHx8IGZpbHRlciA9PT0gJ3JlZ3VsYXInKSB7XG4gICAgICBpY29ucy5wdXNoKC4uLkZvbnRhd2Vzb21lSWNvbnNSZWd1bGFyLklDT05TLm1hcChpY29uID0+ICh7IHByZWZpeDogRm9udGF3ZXNvbWVJY29uc1JlZ3VsYXIuUFJFRklYLCBuYW1lOiBpY29uIH0pKSk7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlciA9PT0gJ2FsbCcgfHwgZmlsdGVyID09PSAnYnJhbmRzJykge1xuICAgICAgaWNvbnMucHVzaCguLi5Gb250YXdlc29tZUljb25zQnJhbmRzLklDT05TLm1hcChpY29uID0+ICh7IHByZWZpeDogRm9udGF3ZXNvbWVJY29uc0JyYW5kcy5QUkVGSVgsIG5hbWU6IGljb24gfSkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWNvbnM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFBhcnRpY2xlIGljb25zIGZpbHRlcmVkIGJ5IGljb24gdHlwZVxuICAgKiBAcGFyYW0gZmlsdGVyIHRoZSBpY29uIHR5cGUgdG8gZmlsdGVyIGJ5XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRQYXJ0aWNsZUljb25zKGZpbHRlcjogUGFydGljbGVJY29uRmlsdGVyT3B0aW9uKTogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBpY29uczogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+ID0gW107XG5cbiAgICBpZiAoZmlsdGVyID09PSAnYWxsJyB8fCBmaWx0ZXIgPT09ICdzb2xpZCcpIHtcbiAgICAgIGljb25zLnB1c2goLi4uUGFydGljbGVJY29uc1NvbGlkLmljb25zLm1hcChpY29uID0+ICh7IHByZWZpeDogaWNvbi5wcmVmaXgsIG5hbWU6IGBmYS0ke2ljb24uaWNvbk5hbWV9YCB9KSkpO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIgPT09ICdhbGwnIHx8IGZpbHRlciA9PT0gJ3JlZ3VsYXInKSB7XG4gICAgICBpY29ucy5wdXNoKC4uLlBhcnRpY2xlSWNvbnNSZWd1bGFyLmljb25zLm1hcChpY29uID0+ICh7IHByZWZpeDogaWNvbi5wcmVmaXgsIG5hbWU6IGBmYS0ke2ljb24uaWNvbk5hbWV9YCB9KSkpO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIgPT09ICdhbGwnIHx8IGZpbHRlciA9PT0gJ2xpZ2h0Jykge1xuICAgICAgaWNvbnMucHVzaCguLi5QYXJ0aWNsZUljb25zTGlnaHQuaWNvbnMubWFwKGljb24gPT4gKHsgcHJlZml4OiBpY29uLnByZWZpeCwgbmFtZTogYGZhLSR7aWNvbi5pY29uTmFtZX1gIH0pKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGljb25zIChhcyBzdHJpbmdzKSBjb250YWluaW5nIGJvdGggUGFydGljbGUgaWNvbnNcbiAgICogYW5kIEZvbnRhd2Vzb21lIGljb25zIHRoYXQgbWF0Y2ggdGhlaXIgcmVzcGVjdGl2ZSBmaWx0ZXIgY3JpdGVyaWFcbiAgICogQHBhcmFtIGljb25UeXBlIHRoZSB0eXBlIG9mIGljb24sIG9yIGFsbCBpY29uc1xuICAgKiBAcGFyYW0gZmlsdGVyIHRoZSBpY29uIHN0eWxpbmcgdG8gZmlsdGVyIGJ5XG4gICAqIEBwYXJhbSBzZWFyY2hUZXh0IHRoZSBzZWFyY2ggdGV4dCB0byBmaWx0ZXIgaWNvbnMgYnlcbiAgICovXG4gIGdldEljb25zKFxuICAgIGljb25UeXBlOiAnYWxsJyB8ICdwYXJ0aWNsZScgfCAnZm9udGF3ZXNvbWUnLFxuICAgIGZpbHRlcjogUGFydGljbGVJY29uRmlsdGVyT3B0aW9uIHwgRm9udGF3ZXNvbWVJY29uRmlsdGVyT3B0aW9uLFxuICAgIHNlYXJjaFRleHQgPSAnJ1xuICApOiBBcnJheTx7IHByZWZpeDogc3RyaW5nLCBuYW1lOiBzdHJpbmcgfT4ge1xuICAgIGxldCBpY29uczogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+ID0gW107XG5cbiAgICBpZiAoaWNvblR5cGUgPT09ICdhbGwnIHx8IGljb25UeXBlID09PSAncGFydGljbGUnKSB7XG4gICAgICBjb25zdCBwYXJ0aWNsZUljb25zID0gSWNvbnNTZXJ2aWNlLmdldFBhcnRpY2xlSWNvbnMoZmlsdGVyIGFzIFBhcnRpY2xlSWNvbkZpbHRlck9wdGlvbik7XG5cbiAgICAgIGlmIChwYXJ0aWNsZUljb25zLmxlbmd0aCkge1xuICAgICAgICBpY29ucy5wdXNoKC4uLnBhcnRpY2xlSWNvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpY29uVHlwZSA9PT0gJ2FsbCcgfHwgaWNvblR5cGUgPT09ICdmb250YXdlc29tZScpIHtcbiAgICAgIGNvbnN0IGZvbnRhd2Vzb21lSWNvbnMgPSBJY29uc1NlcnZpY2UuZ2V0Rm9udGF3ZXNvbWVJY29ucyhmaWx0ZXIgYXMgRm9udGF3ZXNvbWVJY29uRmlsdGVyT3B0aW9uKTtcblxuICAgICAgaWYgKGZvbnRhd2Vzb21lSWNvbnMubGVuZ3RoKSB7XG4gICAgICAgIGljb25zLnB1c2goLi4uZm9udGF3ZXNvbWVJY29ucyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdHJpbW1lZFNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICh0cmltbWVkU2VhcmNoVGV4dCkge1xuICAgICAgaWNvbnMgPSBpY29ucy5maWx0ZXIoaWNvbiA9PiBpY29uLm5hbWUuaW5jbHVkZXModHJpbW1lZFNlYXJjaFRleHQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWNvbnM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { IdleTimer } from './idle-timer';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../dialog/dialog.component";
|
|
5
|
+
export class IdleTimeoutComponent {
|
|
6
|
+
borderRadius = '0px';
|
|
7
|
+
timeoutInSeconds = 600;
|
|
8
|
+
text = {
|
|
9
|
+
sessionExpiring: 'Your Session is Expiring',
|
|
10
|
+
second: 'second',
|
|
11
|
+
seconds: 'seconds',
|
|
12
|
+
stayLoggedIn: 'Click to stay logged in'
|
|
13
|
+
};
|
|
14
|
+
timerEnd = new EventEmitter();
|
|
15
|
+
/**
|
|
16
|
+
* Timeout Dialog - shows when the inactivity timer has 1 minute left, giving the user the ability to confirm they're still active.
|
|
17
|
+
*/
|
|
18
|
+
timeoutDialog = null;
|
|
19
|
+
/**
|
|
20
|
+
* Used for the countdown to user auto-logout
|
|
21
|
+
*/
|
|
22
|
+
count = 0;
|
|
23
|
+
/**
|
|
24
|
+
* Controls showing the dialog
|
|
25
|
+
*/
|
|
26
|
+
showDialog;
|
|
27
|
+
idleTimer = null;
|
|
28
|
+
COUNTDOWN_LENGTH = 60;
|
|
29
|
+
finalCountdown;
|
|
30
|
+
timerReset = false;
|
|
31
|
+
constructor() {
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this.idleTimer = new IdleTimer(this.timeoutInSeconds - 60, () => { this.openDialog(); });
|
|
35
|
+
}
|
|
36
|
+
openDialog() {
|
|
37
|
+
this.showDialog = {};
|
|
38
|
+
this.timerReset = false;
|
|
39
|
+
this.timeoutDialog.open();
|
|
40
|
+
this.setupFinalCountdown();
|
|
41
|
+
}
|
|
42
|
+
setupFinalCountdown() {
|
|
43
|
+
this.count = this.COUNTDOWN_LENGTH;
|
|
44
|
+
this.finalCountdown = setInterval(() => {
|
|
45
|
+
this.count--;
|
|
46
|
+
if (this.count === 0 || !this.idleTimer.isTimerExpired()) {
|
|
47
|
+
this.handleTimerEnd();
|
|
48
|
+
}
|
|
49
|
+
}, 1000);
|
|
50
|
+
}
|
|
51
|
+
handleTimerEnd() {
|
|
52
|
+
clearInterval(this.finalCountdown);
|
|
53
|
+
this.showDialog = null;
|
|
54
|
+
this.timeoutDialog.close();
|
|
55
|
+
if (this.idleTimer.isTimerExpired()) {
|
|
56
|
+
this.timerEnd.emit();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
resetTimer() {
|
|
60
|
+
if (!this.timerReset) {
|
|
61
|
+
this.timerReset = true;
|
|
62
|
+
clearInterval(this.finalCountdown);
|
|
63
|
+
this.idleTimer.resetTimer();
|
|
64
|
+
this.showDialog = null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IdleTimeoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: IdleTimeoutComponent, selector: "particle-idle-timeout", inputs: { borderRadius: "borderRadius", timeoutInSeconds: "timeoutInSeconds", text: "text" }, outputs: { timerEnd: "timerEnd" }, viewQueries: [{ propertyName: "timeoutDialog", first: true, predicate: ["timeoutDialog"], descendants: true }], ngImport: i0, template: "<!-- timeout dialog -->\r\n<particle-dialog [title]=\"text.sessionExpiring\"\r\n [object]=\"showDialog\"\r\n [borderRadius]=\"borderRadius\"\r\n (closed)=\"resetTimer()\"\r\n width=\"350px\" height=\"150px\"\r\n #timeoutDialog>\r\n <div class=\"row column center_center height100\">\r\n <div class=\"header sm bold center mar_bot10\">{{count}} {{count !== 1 ? text.seconds : text.second}}</div>\r\n <button class=\"access btn md bg_overlay brdr ok_button_color\" [attr.aria-label]=\"text.stayLoggedIn\"\r\n (click)=\"resetTimer()\">\r\n <span class=\"text\">{{text.stayLoggedIn}}</span>\r\n </button>\r\n </div>\r\n</particle-dialog>\r\n", dependencies: [{ kind: "component", type: i1.DialogComponent, selector: "particle-dialog", inputs: ["object", "title", "titleClass", "showTitle", "allowClose", "bodyClass", "height", "width", "borderRadius", "text"], outputs: ["closed", "opened"] }] });
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IdleTimeoutComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'particle-idle-timeout', template: "<!-- timeout dialog -->\r\n<particle-dialog [title]=\"text.sessionExpiring\"\r\n [object]=\"showDialog\"\r\n [borderRadius]=\"borderRadius\"\r\n (closed)=\"resetTimer()\"\r\n width=\"350px\" height=\"150px\"\r\n #timeoutDialog>\r\n <div class=\"row column center_center height100\">\r\n <div class=\"header sm bold center mar_bot10\">{{count}} {{count !== 1 ? text.seconds : text.second}}</div>\r\n <button class=\"access btn md bg_overlay brdr ok_button_color\" [attr.aria-label]=\"text.stayLoggedIn\"\r\n (click)=\"resetTimer()\">\r\n <span class=\"text\">{{text.stayLoggedIn}}</span>\r\n </button>\r\n </div>\r\n</particle-dialog>\r\n" }]
|
|
73
|
+
}], ctorParameters: () => [], propDecorators: { borderRadius: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], timeoutInSeconds: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], text: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], timerEnd: [{
|
|
80
|
+
type: Output
|
|
81
|
+
}], timeoutDialog: [{
|
|
82
|
+
type: ViewChild,
|
|
83
|
+
args: ['timeoutDialog']
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS10aW1lb3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pZGxlLXRpbWVvdXQvaWRsZS10aW1lb3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pZGxlLXRpbWVvdXQvaWRsZS10aW1lb3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7OztBQU92QyxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQVksR0FBVyxLQUFLLENBQUM7SUFHN0IsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO0lBR3ZCLElBQUksR0FBb0I7UUFDdEIsZUFBZSxFQUFFLDBCQUEwQjtRQUMzQyxNQUFNLEVBQUUsUUFBUTtRQUNoQixPQUFPLEVBQUUsU0FBUztRQUNsQixZQUFZLEVBQUUseUJBQXlCO0tBQ3JCLENBQUM7SUFHckIsUUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRXREOztPQUVHO0lBRUgsYUFBYSxHQUFvQixJQUFXLENBQUM7SUFFN0M7O09BRUc7SUFDSCxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRVY7O09BRUc7SUFDSCxVQUFVLENBQU07SUFFaEIsU0FBUyxHQUFjLElBQVcsQ0FBQztJQUVsQixnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFFL0IsY0FBYyxDQUFNO0lBRXBCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFM0I7SUFDQSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sY0FBYztRQUNwQixhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQzt1R0FwRlUsb0JBQW9COzJGQUFwQixvQkFBb0IsOFNDVGpDLDB1QkFlQTs7MkZETmEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLHVCQUF1Qjt3REFNakMsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFTTixRQUFRO3NCQURQLE1BQU07Z0JBT1AsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGlhbG9nQ29tcG9uZW50fSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SWRsZVRpbWVyfSBmcm9tICcuL2lkbGUtdGltZXInO1xyXG5pbXBvcnQge0lkbGVUaW1lb3V0VGV4dH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9wYXJ0aWNsZS1jb21wb25lbnQtdGV4dC5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BhcnRpY2xlLWlkbGUtdGltZW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lkbGUtdGltZW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIElkbGVUaW1lb3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KClcclxuICBib3JkZXJSYWRpdXM6IHN0cmluZyA9ICcwcHgnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRpbWVvdXRJblNlY29uZHMgPSA2MDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGV4dDogSWRsZVRpbWVvdXRUZXh0ID0ge1xyXG4gICAgc2Vzc2lvbkV4cGlyaW5nOiAnWW91ciBTZXNzaW9uIGlzIEV4cGlyaW5nJyxcclxuICAgIHNlY29uZDogJ3NlY29uZCcsXHJcbiAgICBzZWNvbmRzOiAnc2Vjb25kcycsXHJcbiAgICBzdGF5TG9nZ2VkSW46ICdDbGljayB0byBzdGF5IGxvZ2dlZCBpbidcclxuICB9IGFzIElkbGVUaW1lb3V0VGV4dDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdGltZXJFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRpbWVvdXQgRGlhbG9nIC0gc2hvd3Mgd2hlbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBoYXMgMSBtaW51dGUgbGVmdCwgZ2l2aW5nIHRoZSB1c2VyIHRoZSBhYmlsaXR5IHRvIGNvbmZpcm0gdGhleSdyZSBzdGlsbCBhY3RpdmUuXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgndGltZW91dERpYWxvZycpXHJcbiAgdGltZW91dERpYWxvZzogRGlhbG9nQ29tcG9uZW50ID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZWQgZm9yIHRoZSBjb3VudGRvd24gdG8gdXNlciBhdXRvLWxvZ291dFxyXG4gICAqL1xyXG4gIGNvdW50ID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29udHJvbHMgc2hvd2luZyB0aGUgZGlhbG9nXHJcbiAgICovXHJcbiAgc2hvd0RpYWxvZzogYW55O1xyXG5cclxuICBpZGxlVGltZXI6IElkbGVUaW1lciA9IG51bGwgYXMgYW55O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IENPVU5URE9XTl9MRU5HVEggPSA2MDtcclxuXHJcbiAgcHJpdmF0ZSBmaW5hbENvdW50ZG93bjogYW55O1xyXG5cclxuICBwcml2YXRlIHRpbWVyUmVzZXQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaWRsZVRpbWVyID0gbmV3IElkbGVUaW1lcih0aGlzLnRpbWVvdXRJblNlY29uZHMgLSA2MCwgKCkgPT4ge3RoaXMub3BlbkRpYWxvZygpfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RGlhbG9nID0ge307XHJcbiAgICB0aGlzLnRpbWVyUmVzZXQgPSBmYWxzZTtcclxuICAgIHRoaXMudGltZW91dERpYWxvZy5vcGVuKCk7XHJcbiAgICB0aGlzLnNldHVwRmluYWxDb3VudGRvd24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBGaW5hbENvdW50ZG93bigpOiB2b2lkIHtcclxuICAgIHRoaXMuY291bnQgPSB0aGlzLkNPVU5URE9XTl9MRU5HVEg7XHJcbiAgICB0aGlzLmZpbmFsQ291bnRkb3duID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvdW50LS07XHJcbiAgICAgIGlmICh0aGlzLmNvdW50ID09PSAwIHx8ICF0aGlzLmlkbGVUaW1lci5pc1RpbWVyRXhwaXJlZCgpKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVUaW1lckVuZCgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVGltZXJFbmQoKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuZmluYWxDb3VudGRvd24pO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nID0gbnVsbDtcclxuICAgIHRoaXMudGltZW91dERpYWxvZy5jbG9zZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmlkbGVUaW1lci5pc1RpbWVyRXhwaXJlZCgpKSB7XHJcbiAgICAgIHRoaXMudGltZXJFbmQuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRUaW1lcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50aW1lclJlc2V0KSB7XHJcbiAgICAgIHRoaXMudGltZXJSZXNldCA9IHRydWU7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5maW5hbENvdW50ZG93bik7XHJcbiAgICAgIHRoaXMuaWRsZVRpbWVyLnJlc2V0VGltZXIoKTtcclxuICAgICAgdGhpcy5zaG93RGlhbG9nID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gdGltZW91dCBkaWFsb2cgLS0+XHJcbjxwYXJ0aWNsZS1kaWFsb2cgW3RpdGxlXT1cInRleHQuc2Vzc2lvbkV4cGlyaW5nXCJcclxuICAgICAgICAgICAgICAgICBbb2JqZWN0XT1cInNob3dEaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgIFtib3JkZXJSYWRpdXNdPVwiYm9yZGVyUmFkaXVzXCJcclxuICAgICAgICAgICAgICAgICAoY2xvc2VkKT1cInJlc2V0VGltZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgd2lkdGg9XCIzNTBweFwiIGhlaWdodD1cIjE1MHB4XCJcclxuICAgICAgICAgICAgICAgICAjdGltZW91dERpYWxvZz5cclxuICA8ZGl2IGNsYXNzPVwicm93IGNvbHVtbiBjZW50ZXJfY2VudGVyIGhlaWdodDEwMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlciBzbSBib2xkIGNlbnRlciBtYXJfYm90MTBcIj57e2NvdW50fX0ge3tjb3VudCAhPT0gMSA/IHRleHQuc2Vjb25kcyA6IHRleHQuc2Vjb25kfX08L2Rpdj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJhY2Nlc3MgYnRuIG1kIGJnX292ZXJsYXkgYnJkciBva19idXR0b25fY29sb3JcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRleHQuc3RheUxvZ2dlZEluXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0VGltZXIoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj57e3RleHQuc3RheUxvZ2dlZElufX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9wYXJ0aWNsZS1kaWFsb2c+XHJcbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export class IdleTimer {
|
|
2
|
+
interval;
|
|
3
|
+
timeoutTracker;
|
|
4
|
+
eventHandler;
|
|
5
|
+
timeout;
|
|
6
|
+
onTimeout;
|
|
7
|
+
constructor(timeout, onTimeout) {
|
|
8
|
+
this.timeout = timeout;
|
|
9
|
+
this.onTimeout = onTimeout;
|
|
10
|
+
this.eventHandler = this.updateExpiredTime.bind(this);
|
|
11
|
+
this.tracker();
|
|
12
|
+
this.startInterval();
|
|
13
|
+
}
|
|
14
|
+
startInterval() {
|
|
15
|
+
this.updateExpiredTime();
|
|
16
|
+
this.interval = setInterval(() => {
|
|
17
|
+
if (this.isTimerExpired() && this.onTimeout) {
|
|
18
|
+
this.onTimeout();
|
|
19
|
+
this.cleanUp();
|
|
20
|
+
}
|
|
21
|
+
}, 1000);
|
|
22
|
+
}
|
|
23
|
+
updateExpiredTime() {
|
|
24
|
+
if (this.timeoutTracker) {
|
|
25
|
+
clearTimeout(this.timeoutTracker);
|
|
26
|
+
}
|
|
27
|
+
this.timeoutTracker = setTimeout(() => {
|
|
28
|
+
localStorage.setItem('_expiredTime', (Date.now() + this.timeout * 1000) + '');
|
|
29
|
+
}, 300);
|
|
30
|
+
}
|
|
31
|
+
tracker() {
|
|
32
|
+
localStorage.removeItem('_expiredTime');
|
|
33
|
+
window.addEventListener('mousemove', this.eventHandler);
|
|
34
|
+
window.addEventListener('scroll', this.eventHandler);
|
|
35
|
+
window.addEventListener('keydown', this.eventHandler);
|
|
36
|
+
window.addEventListener('resize', this.eventHandler);
|
|
37
|
+
document.addEventListener('click', this.eventHandler);
|
|
38
|
+
document.addEventListener('mousedown', this.eventHandler);
|
|
39
|
+
document.addEventListener('DOMMouseScroll', this.eventHandler);
|
|
40
|
+
document.addEventListener('mousewheel', this.eventHandler);
|
|
41
|
+
document.addEventListener('touchmove', this.eventHandler);
|
|
42
|
+
document.addEventListener('MSPointerMove', this.eventHandler);
|
|
43
|
+
}
|
|
44
|
+
cleanUp() {
|
|
45
|
+
clearInterval(this.interval);
|
|
46
|
+
window.removeEventListener('mousemove', this.eventHandler);
|
|
47
|
+
window.removeEventListener('scroll', this.eventHandler);
|
|
48
|
+
window.removeEventListener('keydown', this.eventHandler);
|
|
49
|
+
window.removeEventListener('resize', this.eventHandler);
|
|
50
|
+
document.removeEventListener('click', this.eventHandler);
|
|
51
|
+
document.removeEventListener('mousedown', this.eventHandler);
|
|
52
|
+
document.removeEventListener('DOMMouseScroll', this.eventHandler);
|
|
53
|
+
document.removeEventListener('mousewheel', this.eventHandler);
|
|
54
|
+
document.removeEventListener('touchmove', this.eventHandler);
|
|
55
|
+
document.removeEventListener('MSPointerMove', this.eventHandler);
|
|
56
|
+
}
|
|
57
|
+
resetTimer() {
|
|
58
|
+
this.tracker();
|
|
59
|
+
this.startInterval();
|
|
60
|
+
}
|
|
61
|
+
isTimerExpired() {
|
|
62
|
+
const expiredTime = parseInt(localStorage.getItem('_expiredTime'), 10);
|
|
63
|
+
return expiredTime < Date.now();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS10aW1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pZGxlLXRpbWVvdXQvaWRsZS10aW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUztJQUNaLFFBQVEsQ0FBTTtJQUNkLGNBQWMsQ0FBTTtJQUNYLFlBQVksQ0FBTTtJQUNsQixPQUFPLENBQVM7SUFDaEIsU0FBUyxDQUFNO0lBRWhDLFlBQVksT0FBZSxFQUFFLFNBQWM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRU8sT0FBTztRQUNiLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsT0FBTztRQUNMLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5RCxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxRQUFRLENBQUMsbUJBQW1CLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSWRsZVRpbWVyIHtcclxuICBwcml2YXRlIGludGVydmFsOiBhbnk7XHJcbiAgcHJpdmF0ZSB0aW1lb3V0VHJhY2tlcjogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRIYW5kbGVyOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lb3V0OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBvblRpbWVvdXQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IodGltZW91dDogbnVtYmVyLCBvblRpbWVvdXQ6IGFueSkge1xyXG4gICAgdGhpcy50aW1lb3V0ID0gdGltZW91dDtcclxuICAgIHRoaXMub25UaW1lb3V0ID0gb25UaW1lb3V0O1xyXG4gICAgdGhpcy5ldmVudEhhbmRsZXIgPSB0aGlzLnVwZGF0ZUV4cGlyZWRUaW1lLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLnRyYWNrZXIoKTtcclxuICAgIHRoaXMuc3RhcnRJbnRlcnZhbCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFydEludGVydmFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVFeHBpcmVkVGltZSgpO1xyXG5cclxuICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzVGltZXJFeHBpcmVkKCkgJiYgdGhpcy5vblRpbWVvdXQpIHtcclxuICAgICAgICB0aGlzLm9uVGltZW91dCgpO1xyXG4gICAgICAgIHRoaXMuY2xlYW5VcCgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRXhwaXJlZFRpbWUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0VHJhY2tlcikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0VHJhY2tlcik7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRpbWVvdXRUcmFja2VyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdfZXhwaXJlZFRpbWUnLCAoRGF0ZS5ub3coKSArIHRoaXMudGltZW91dCAqIDEwMDApICsgJycpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhY2tlcigpOiB2b2lkIHtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfZXhwaXJlZFRpbWUnKTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Nb3VzZVNjcm9sbCcsIHRoaXMuZXZlbnRIYW5kbGVyKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdNU1BvaW50ZXJNb3ZlJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgY2xlYW5VcCgpOiB2b2lkIHtcclxuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuZXZlbnRIYW5kbGVyKTtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuZXZlbnRIYW5kbGVyKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NTW91c2VTY3JvbGwnLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignTVNQb2ludGVyTW92ZScsIHRoaXMuZXZlbnRIYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHJlc2V0VGltZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYWNrZXIoKTtcclxuICAgIHRoaXMuc3RhcnRJbnRlcnZhbCgpO1xyXG4gIH1cclxuXHJcbiAgaXNUaW1lckV4cGlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBleHBpcmVkVGltZSA9IHBhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdfZXhwaXJlZFRpbWUnKSBhcyBzdHJpbmcsIDEwKTtcclxuICAgIHJldHVybiBleHBpcmVkVGltZSA8IERhdGUubm93KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IdleTimeoutComponent } from './idle-timeout.component';
|
|
4
|
+
import { ParticleDialogModule } from '../dialog/dialog.module';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ParticleIdleTimeoutModule {
|
|
7
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIdleTimeoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: ParticleIdleTimeoutModule, declarations: [IdleTimeoutComponent], imports: [CommonModule,
|
|
9
|
+
ParticleDialogModule], exports: [IdleTimeoutComponent] });
|
|
10
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIdleTimeoutModule, imports: [CommonModule,
|
|
11
|
+
ParticleDialogModule] });
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIdleTimeoutModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [
|
|
17
|
+
IdleTimeoutComponent
|
|
18
|
+
],
|
|
19
|
+
exports: [
|
|
20
|
+
IdleTimeoutComponent
|
|
21
|
+
],
|
|
22
|
+
imports: [
|
|
23
|
+
CommonModule,
|
|
24
|
+
ParticleDialogModule
|
|
25
|
+
]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGUtaWRsZS10aW1lb3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pZGxlLXRpbWVvdXQvcGFydGljbGUtaWRsZS10aW1lb3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFjN0QsTUFBTSxPQUFPLHlCQUF5Qjt1R0FBekIseUJBQXlCO3dHQUF6Qix5QkFBeUIsaUJBVmxDLG9CQUFvQixhQU1wQixZQUFZO1lBQ1osb0JBQW9CLGFBSnBCLG9CQUFvQjt3R0FPWCx5QkFBeUIsWUFKbEMsWUFBWTtZQUNaLG9CQUFvQjs7MkZBR1gseUJBQXlCO2tCQVpyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJZGxlVGltZW91dENvbXBvbmVudCB9IGZyb20gJy4vaWRsZS10aW1lb3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGFydGljbGVEaWFsb2dNb2R1bGV9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBJZGxlVGltZW91dENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSWRsZVRpbWVvdXRDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFBhcnRpY2xlRGlhbG9nTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFydGljbGVJZGxlVGltZW91dE1vZHVsZSB7IH1cclxuIl19
|