@ruc-lib/screen-recorder 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1 +1,174 @@
1
- utf8
1
+ # ruclib-screen-recorder
2
+
3
+ This library provides a feature to record and download the screen with and without Audio
4
+
5
+ ## RUC Library Installation Guide
6
+
7
+ Users can easily install the RUC (Ruxptest Library) from npm. Additionally, they can also choose to install individual components based on their requirements.
8
+ Install RUC Library.
9
+
10
+ To install the entire RUC library:
11
+
12
+ `npm install @uxpractice/ruc-lib`
13
+
14
+ ## Install Individual Components
15
+ If users only need the dialog component, they can install it separately:
16
+
17
+ `npm install @ruclib/screen-recorder`
18
+
19
+ ## Version Compatibility
20
+
21
+ Please ensure you install the correct version of `@ruc-lib/screen-recorder` based on your Angular version.
22
+
23
+ | Angular Version | Compatible `@ruc-lib/screen-recorder` Version |
24
+ |--------------------|---------------------------------------------|
25
+ | 15.x.x | `npm install @ruc-lib/screen-recorder@^3.0.0` |
26
+ | 16.x.x | `npm install @ruc-lib/screen-recorder@^3.0.0` |
27
+
28
+ ## Usage
29
+
30
+ To use the screen recorder component in your project, follow the integration guidelines provided in the documentation.
31
+
32
+ ## Using Selector
33
+
34
+ 1. Import `RuclibScreenRecorderModule` from `@ruclib/screen-recorder` into `app.module.ts` file.
35
+ 2. Use the selector in your HTML file.
36
+
37
+ ```
38
+ <uxp-ruclib-screen-recorder [rucInputData]="recorderConfig" [customTheme]="'custom-theme'"></uxp-ruclib-screen-recorder>
39
+
40
+ ```
41
+
42
+
43
+ ### Component Inputs
44
+
45
+ | Input | Type | Description |
46
+ |----------------|-------------------------|--------------------------------------------------|
47
+ | `rucInputData` | `ScreenRecorderOptions` | The main configuration object for the component. |
48
+ | `customTheme` | `string` | An optional CSS class for custom theming. |
49
+
50
+
51
+ ### `ScreenRecorderOptions`
52
+ This is the main configuration object for the Screen recording.
53
+
54
+ | Property | Type | Description |
55
+ |-------------------------------|----------------------------------|------------------------------------------------------|
56
+ | `position` | `'left' \| 'right'` (Optional) | Position of icon |
57
+ | `displayFormat` | `'icon' \| 'text'` | Screen option format like - icpn and text |
58
+ | `defaultAudioState` | `boolean` (Optional) | true for audio on, false for audio off |
59
+ | `showAudioToggle` | `boolean` (Optional) | If `true`, displays audio option |
60
+ | `icons` | `ScreenRecorderIcons` (Optional) | For custom icons (e.g., CSS classes for icon fonts) |
61
+ | `showTimer` | `boolean` (Optional) | Show timer |
62
+ | `categoryLabelStyle` | `'basic' \| 'widget'` (Optional) | The display style for category labels. |
63
+ | `showCategoryLabels` | `boolean` (Optional) | If `true`, displays the category labels. |
64
+ | `showPauseResume` | `boolean` | Show pause resume option. |
65
+ | `downloadFileName` | `string` (Optional) | Download file name |
66
+ | `showPlaybackControls` | `boolean` (Optional) | To show/hide the video player preview |
67
+ | `showDownloadButton` | `boolean` | To show download button |
68
+ | `useUTCForTimer` | `boolean` (Optional) | If `true`, displays the UTC time labels. |
69
+ | `allowSpecificAreaSelection` | `boolean` (Optional) | Record specific screen |
70
+ | `accessibilityLabels` | `accessibilityLabels`(Optional) | Accessibility related texts |
71
+
72
+
73
+ ### `ScreenRecorderIcons`
74
+ This values defines the configuration for screen recorder icons.
75
+
76
+ | Property | Type | Description |
77
+ |----------------------|-----------|--------------------------------------------------------------------|
78
+ | `record` | `string` | Default: '●' (filled circle) or a material icon class |
79
+ | `recordWithAudio` | `string` | Alternative if specific icon for "record with audio" is needed |
80
+ | `recordWithoutAudio` | `number` | Alternative if specific icon for "record without audio" is needed |
81
+ | `stop` | `string` | Default: '■ ' (filled square) or a material icon class |
82
+ | `pause` | `string` | Default: '❚❚' or a material icon class |
83
+ | `resume` | `string` | Default: '►' (play symbol) or a material icon class |
84
+ | `play` | `string` | Default: '►' (play symbol) or a material icon class |
85
+ | `download` | `number` | Default: '💾' (floppy disk) or a material icon class |
86
+ | `audioOn` | `string` | Default: '🔊' (speaker high volume) or a material icon class |
87
+ | `audioOff` | `string` | Default: '🔇' (muted speaker) or a material icon class |
88
+
89
+ ### `accessibilityLabels`
90
+ This values defines the configuration for screen recorder accessibilityLabels.
91
+
92
+ | Property | Type | Description |
93
+ |--------------------|-----------|-----------------|
94
+ | `recordButton` | `string` | label text |
95
+ | `stopButton` | `string` | label text |
96
+ | `pauseButton` | `number` | label text |
97
+ | `resumeButton` | `string` | label text |
98
+ | `audioToggleButton`| `string` | label text |
99
+ | `downloadButton` | `string` | label text |
100
+ | `playbackVideo` | `string` | label text |
101
+
102
+ ## Example Configuration
103
+
104
+ Here's an example of how to configure the Metered Progress Bar in your component's TypeScript file.
105
+
106
+ ```typescript
107
+ import { Component } from '@angular/core';
108
+ import { ScreenRecorderOptions, ScreenRecorderPosition, DisplayFormat } from '@ruclib/screen-recorder'; // Adjust import path
109
+
110
+
111
+ @Component({
112
+ selector: 'app-root',
113
+ templateUrl: './app.component.html',
114
+ })
115
+ export class AppComponent {
116
+ recorderOptions: {
117
+ position: 'Left',
118
+ displayFormat: 'icon',
119
+ showAudioToggle: true,
120
+ defaultAudioState: true,
121
+ downloadFileName: 'screen-recording.webm',
122
+ showTimer: true,
123
+ showPauseResume: true,
124
+ showPlaybackControls: true,
125
+ showDownloadButton: true,
126
+ useUTCForTimer: false,
127
+ allowSpecificAreaSelection: true,
128
+ icons: {
129
+ record: 'fiber_manual_record',
130
+ stop: 'stop',
131
+ pause: 'pause',
132
+ resume: 'play_arrow',
133
+ play: 'play_circle_filled',
134
+ download: 'download',
135
+ audioOn: 'volume_up',
136
+ audioOff: 'volume_off',
137
+ },
138
+ accessibilityLabels: {
139
+ recordButton: 'Start Recording',
140
+ stopButton: 'Stop Recording',
141
+ pauseButton: 'Pause Recording',
142
+ resumeButton: 'Resume Recording',
143
+ audioToggleButton: 'Toggle Audio',
144
+ downloadButton: 'Download Recording',
145
+ playbackVideo: 'Screen Recording Playback',
146
+ },
147
+ };
148
+ }
149
+ ```
150
+
151
+ > ⚠️ **IMPORTANT: Custom Theme Usage in Angular Material**
152
+
153
+ When implementing **custom themes**, such as:
154
+
155
+ ```scss
156
+ .custom-theme-1 {
157
+ @include angular-material-theme($custom-theme);
158
+ }
159
+
160
+ // You must also include the typography mixin to ensure text styles are applied correctly as shown below:
161
+ .custom-theme-1 {
162
+ @include angular-material-theme($custom-theme);
163
+ @include mat.typography-level($theme-custom-typography-name, body-1);
164
+ }
165
+ ```
166
+
167
+ ## Contribution
168
+
169
+ Contributions are welcome! Feel free to open issues or pull requests for any enhancements or fixes.
170
+
171
+ ## Acknowledgements
172
+
173
+ Thank you for choosing the Screen Recorder Component Library. If you have any feedback or suggestions, please let us know!
174
+
@@ -0,0 +1,5 @@
1
+ export * from './lib/ruclib-screen-recorder.module';
2
+ export * from './lib/screen-recorder/screen-recorder.component';
3
+ export * from './lib/services/screen-recorder.service';
4
+ export * from './lib/models/screen-recorder.models';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3J1Y2xpYi1zY3JlZW4tcmVjb3JkZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2NyZWVuLXJlY29yZGVyL3NjcmVlbi1yZWNvcmRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9zY3JlZW4tcmVjb3JkZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zY3JlZW4tcmVjb3JkZXIubW9kZWxzJzsiXX0=
@@ -0,0 +1,20 @@
1
+ export var ScreenRecorderPosition;
2
+ (function (ScreenRecorderPosition) {
3
+ ScreenRecorderPosition["Top"] = "top";
4
+ ScreenRecorderPosition["Bottom"] = "bottom";
5
+ ScreenRecorderPosition["Left"] = "left";
6
+ ScreenRecorderPosition["Right"] = "right";
7
+ })(ScreenRecorderPosition || (ScreenRecorderPosition = {}));
8
+ export var DisplayFormat;
9
+ (function (DisplayFormat) {
10
+ DisplayFormat["Icon"] = "icon";
11
+ DisplayFormat["Text"] = "text";
12
+ })(DisplayFormat || (DisplayFormat = {}));
13
+ export var RecordingState;
14
+ (function (RecordingState) {
15
+ RecordingState["Idle"] = "idle";
16
+ RecordingState["Recording"] = "recording";
17
+ RecordingState["Paused"] = "paused";
18
+ RecordingState["Stopped"] = "stopped";
19
+ })(RecordingState || (RecordingState = {}));
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXJlY29yZGVyLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL3NjcmVlbi1yZWNvcmRlci5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksc0JBS1Q7QUFMSCxXQUFZLHNCQUFzQjtJQUM5QixxQ0FBVyxDQUFBO0lBQ1gsMkNBQWlCLENBQUE7SUFDakIsdUNBQWEsQ0FBQTtJQUNiLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUxTLHNCQUFzQixLQUF0QixzQkFBc0IsUUFLL0I7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLDhCQUFhLENBQUE7SUFDYiw4QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4QiwrQkFBYSxDQUFBO0lBQ2IseUNBQXVCLENBQUE7SUFDdkIsbUNBQWlCLENBQUE7SUFDakIscUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU2NyZWVuUmVjb3JkZXJQb3NpdGlvbiB7XHJcbiAgICBUb3AgPSAndG9wJyxcclxuICAgIEJvdHRvbSA9ICdib3R0b20nLFxyXG4gICAgTGVmdCA9ICdsZWZ0JyxcclxuICAgIFJpZ2h0ID0gJ3JpZ2h0JyxcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGVudW0gRGlzcGxheUZvcm1hdCB7XHJcbiAgICBJY29uID0gJ2ljb24nLFxyXG4gICAgVGV4dCA9ICd0ZXh0JyxcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGVudW0gUmVjb3JkaW5nU3RhdGUge1xyXG4gICAgSWRsZSA9ICdpZGxlJyxcclxuICAgIFJlY29yZGluZyA9ICdyZWNvcmRpbmcnLFxyXG4gICAgUGF1c2VkID0gJ3BhdXNlZCcsXHJcbiAgICBTdG9wcGVkID0gJ3N0b3BwZWQnLFxyXG4gIH1cclxuICBcclxuICBleHBvcnQgaW50ZXJmYWNlIFNjcmVlblJlY29yZGVySWNvbnMge1xyXG4gICAgcmVjb3JkPzogc3RyaW5nOyAvLyBEZWZhdWx0OiAn4pePJyAoZmlsbGVkIGNpcmNsZSkgb3IgYSBtYXRlcmlhbCBpY29uIGNsYXNzXHJcbiAgICByZWNvcmRXaXRoQXVkaW8/OiBzdHJpbmc7IC8vIEFsdGVybmF0aXZlIGlmIHNwZWNpZmljIGljb24gZm9yIFwicmVjb3JkIHdpdGggYXVkaW9cIiBpcyBuZWVkZWRcclxuICAgIHJlY29yZFdpdGhvdXRBdWRpbz86IHN0cmluZzsgLy8gQWx0ZXJuYXRpdmUgaWYgc3BlY2lmaWMgaWNvbiBmb3IgXCJyZWNvcmQgd2l0aG91dCBhdWRpb1wiIGlzIG5lZWRlZFxyXG4gICAgc3RvcD86IHN0cmluZzsgLy8gRGVmYXVsdDogJ+KWoCcgKGZpbGxlZCBzcXVhcmUpIG9yIGEgbWF0ZXJpYWwgaWNvbiBjbGFzc1xyXG4gICAgcGF1c2U/OiBzdHJpbmc7IC8vIERlZmF1bHQ6ICfinZrinZonIChwYXVzZSBzeW1ib2wpIG9yIGEgbWF0ZXJpYWwgaWNvbiBjbGFzc1xyXG4gICAgcmVzdW1lPzogc3RyaW5nOyAvLyBEZWZhdWx0OiAn4pa6JyAocGxheSBzeW1ib2wpIG9yIGEgbWF0ZXJpYWwgaWNvbiBjbGFzc1xyXG4gICAgcGxheT86IHN0cmluZzsgLy8gRGVmYXVsdDogJ+KWuicgKHBsYXkgc3ltYm9sKSBvciBhIG1hdGVyaWFsIGljb24gY2xhc3NcclxuICAgIGRvd25sb2FkPzogc3RyaW5nOyAvLyBEZWZhdWx0OiAn8J+SvicgKGZsb3BweSBkaXNrKSBvciBhIG1hdGVyaWFsIGljb24gY2xhc3NcclxuICAgIGF1ZGlvT24/OiBzdHJpbmc7IC8vIERlZmF1bHQ6ICfwn5SKJyAoc3BlYWtlciBoaWdoIHZvbHVtZSkgb3IgYSBtYXRlcmlhbCBpY29uIGNsYXNzXHJcbiAgICBhdWRpb09mZj86IHN0cmluZzsgLy8gRGVmYXVsdDogJ/CflIcnIChtdXRlZCBzcGVha2VyKSBvciBhIG1hdGVyaWFsIGljb24gY2xhc3NcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGludGVyZmFjZSBTY3JlZW5SZWNvcmRlck9wdGlvbnMge1xyXG4gICAgcG9zaXRpb24/OiBTY3JlZW5SZWNvcmRlclBvc2l0aW9uO1xyXG4gICAgZGlzcGxheUZvcm1hdD86IERpc3BsYXlGb3JtYXQ7XHJcbiAgICBzaG93QXVkaW9Ub2dnbGU/OiBib29sZWFuO1xyXG4gICAgZGVmYXVsdEF1ZGlvU3RhdGU/OiBib29sZWFuOyAvLyB0cnVlIGZvciBhdWRpbyBvbiwgZmFsc2UgZm9yIGF1ZGlvIG9mZlxyXG4gICAgZG93bmxvYWRGaWxlTmFtZT86IHN0cmluZztcclxuICAgIGljb25zPzogU2NyZWVuUmVjb3JkZXJJY29uczsgLy8gRm9yIGN1c3RvbSBpY29ucyAoZS5nLiwgQ1NTIGNsYXNzZXMgZm9yIGljb24gZm9udHMpXHJcbiAgICBzaG93VGltZXI/OiBib29sZWFuO1xyXG4gICAgc2hvd1BhdXNlUmVzdW1lPzogYm9vbGVhbjtcclxuICAgIHNob3dQbGF5YmFja0NvbnRyb2xzPzogYm9vbGVhbjsgLy8gVG8gc2hvdy9oaWRlIHRoZSB2aWRlbyBwbGF5ZXIgcHJldmlld1xyXG4gICAgc2hvd0Rvd25sb2FkQnV0dG9uPzogYm9vbGVhbjtcclxuICAgIHVzZVVUQ0ZvclRpbWVyPzogYm9vbGVhbjtcclxuICAgIC8qICBGb3Igc3BlY2lmaWMgYXJlYTogZ2V0RGlzcGxheU1lZGlhIGFsbG93cyB1c2VyIHRvIGNob29zZSB3aW5kb3cvdGFiL3NjcmVlbi5cclxuICAgICAgSWYgYSBtb3JlIHNwZWNpZmljIGNyb3AgaXMgbmVlZGVkLCBpdCdzIG91dHNpZGUgc3RhbmRhcmQgV2ViIEFQSSBzY29wZS5cclxuICAgICAgVGhpcyBvcHRpb24gaW1wbGllcyB3ZSBlbnN1cmUgdGhlIGJyb3dzZXIncyBwaWNrZXIgaXMgdXNlZC5cclxuICAgICovXHJcbiAgICBhbGxvd1NwZWNpZmljQXJlYVNlbGVjdGlvbj86IGJvb2xlYW47XHJcbiAgICAvLyBBY2Nlc3NpYmlsaXR5IHJlbGF0ZWQgdGV4dHNcclxuICAgIGFjY2Vzc2liaWxpdHlMYWJlbHM/OiB7XHJcbiAgICAgIHJlY29yZEJ1dHRvbj86IHN0cmluZztcclxuICAgICAgc3RvcEJ1dHRvbj86IHN0cmluZztcclxuICAgICAgcGF1c2VCdXR0b24/OiBzdHJpbmc7XHJcbiAgICAgIHJlc3VtZUJ1dHRvbj86IHN0cmluZztcclxuICAgICAgYXVkaW9Ub2dnbGVCdXR0b24/OiBzdHJpbmc7XHJcbiAgICAgIGRvd25sb2FkQnV0dG9uPzogc3RyaW5nO1xyXG4gICAgICBwbGF5YmFja1ZpZGVvPzogc3RyaW5nO1xyXG4gICAgfTtcclxuICB9XHJcbiAgIl19
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ScreenRecorderComponent } from './screen-recorder/screen-recorder.component';
4
+ import { ScreenRecorderService } from './services/screen-recorder.service';
5
+ import * as i0 from "@angular/core";
6
+ export class RuclibScreenRecorderModule {
7
+ }
8
+ RuclibScreenRecorderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibScreenRecorderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ RuclibScreenRecorderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: RuclibScreenRecorderModule, declarations: [ScreenRecorderComponent], imports: [CommonModule], exports: [ScreenRecorderComponent] });
10
+ RuclibScreenRecorderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibScreenRecorderModule, providers: [ScreenRecorderService], imports: [CommonModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibScreenRecorderModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: [ScreenRecorderComponent],
16
+ exports: [ScreenRecorderComponent],
17
+ providers: [ScreenRecorderService],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjbGliLXNjcmVlbi1yZWNvcmRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3J1Y2xpYi1zY3JlZW4tcmVjb3JkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVEzRSxNQUFNLE9BQU8sMEJBQTBCOzt3SEFBMUIsMEJBQTBCO3lIQUExQiwwQkFBMEIsaUJBSnRCLHVCQUF1QixhQUQ1QixZQUFZLGFBRVosdUJBQXVCO3lIQUd0QiwwQkFBMEIsYUFGMUIsQ0FBQyxxQkFBcUIsQ0FBQyxZQUh4QixZQUFZOzRGQUtYLDBCQUEwQjtrQkFOdEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDbEMsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2NyZWVuUmVjb3JkZXJDb21wb25lbnQgfSBmcm9tICcuL3NjcmVlbi1yZWNvcmRlci9zY3JlZW4tcmVjb3JkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2NyZWVuUmVjb3JkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zY3JlZW4tcmVjb3JkZXIuc2VydmljZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW1NjcmVlblJlY29yZGVyQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbU2NyZWVuUmVjb3JkZXJDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW1NjcmVlblJlY29yZGVyU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSdWNsaWJTY3JlZW5SZWNvcmRlck1vZHVsZSB7fVxyXG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class ScreenRecorderConstants {
4
+ constructor() {
5
+ this.DEFAULT_ICONS = {
6
+ record: 'fiber_manual_record',
7
+ stop: 'stop',
8
+ pause: 'pause',
9
+ resume: 'play_arrow',
10
+ play: 'play_circle_filled',
11
+ download: 'download',
12
+ audioOn: 'volume_up',
13
+ audioOff: 'volume_off',
14
+ };
15
+ this.DEFAULT_LABELS = {
16
+ recordButton: 'Start Recording',
17
+ stopButton: 'Stop Recording',
18
+ pauseButton: 'Pause Recording',
19
+ resumeButton: 'Resume Recording',
20
+ audioToggleButton: 'Toggle Audio',
21
+ downloadButton: 'Download Recording',
22
+ playbackVideo: 'Screen Recording Playback',
23
+ };
24
+ this.INACTIVE = 'inactive';
25
+ this.AUDIO_ON = 'Audio ON';
26
+ this.AUDIO_OFF = 'Audio OFF';
27
+ this.RECORDING_IN_PROGRESS_ERROR = 'Recording is already in progress.';
28
+ this.FAILED_TO_GET_DISPLAY_MEDIA_STREAM_ERROR = 'Failed to get display media stream';
29
+ this.NO_SUPPORT_MIME = 'No supported MIME type found for MediaRecorder.';
30
+ this.NO_RECORDING_DOWNLOAD = 'No recording available to download.';
31
+ this.MEDIA_ERROR = 'MediaRecorder error';
32
+ this.PERMISSION_DENIED = "Error starting screen recording: NotAllowedError - Permission denied";
33
+ this.NO_SUPPORT = 'Screen recording is not supported in this browser.';
34
+ }
35
+ }
36
+ ScreenRecorderConstants.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScreenRecorderConstants, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
+ ScreenRecorderConstants.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScreenRecorderConstants, providedIn: 'root' });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScreenRecorderConstants, decorators: [{
39
+ type: Injectable,
40
+ args: [{
41
+ providedIn: 'root',
42
+ }]
43
+ }], ctorParameters: function () { return []; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXJlY29yZGVyLWNvbnN0YW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zY3JlZW4tcmVjb3JkZXIvc2NyZWVuLXJlY29yZGVyLWNvbnN0YW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWTNDLE1BQU0sT0FBTyx1QkFBdUI7SUFDaEM7UUFHTyxrQkFBYSxHQUF3QjtZQUMxQyxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsWUFBWTtZQUNwQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFFBQVEsRUFBRSxZQUFZO1NBQ3ZCLENBQUM7UUFFSyxtQkFBYyxHQUFHO1lBQ3RCLFlBQVksRUFBRSxpQkFBaUI7WUFDL0IsVUFBVSxFQUFFLGdCQUFnQjtZQUM1QixXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFlBQVksRUFBRSxrQkFBa0I7WUFDaEMsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxjQUFjLEVBQUUsb0JBQW9CO1lBQ3BDLGFBQWEsRUFBRSwyQkFBMkI7U0FDM0MsQ0FBQztRQUVLLGFBQVEsR0FBRyxVQUFVLENBQUM7UUFFdEIsYUFBUSxHQUFHLFVBQVUsQ0FBQztRQUN0QixjQUFTLEdBQUcsV0FBVyxDQUFDO1FBRXhCLGdDQUEyQixHQUFHLG1DQUFtQyxDQUFDO1FBQ2xFLDZDQUF3QyxHQUFHLG9DQUFvQyxDQUFDO1FBQ2hGLG9CQUFlLEdBQUcsaURBQWlELENBQUM7UUFDcEUsMEJBQXFCLEdBQUcscUNBQXFDLENBQUM7UUFDOUQsZ0JBQVcsR0FBRyxxQkFBcUIsQ0FBQztRQUNwQyxzQkFBaUIsR0FBRyxzRUFBc0UsQ0FBQztRQUMzRixlQUFVLEdBQUcsb0RBQW9ELENBQUM7SUFqQ3pFLENBQUM7O3FIQUhRLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnBCLE1BQU07NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIFNjcmVlblJlY29yZGVyT3B0aW9ucyxcclxuICBTY3JlZW5SZWNvcmRlclBvc2l0aW9uLFxyXG4gIERpc3BsYXlGb3JtYXQsXHJcbiAgUmVjb3JkaW5nU3RhdGUsXHJcbiAgU2NyZWVuUmVjb3JkZXJJY29ucyxcclxufSBmcm9tICcuLi9tb2RlbHMvc2NyZWVuLXJlY29yZGVyLm1vZGVscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY3JlZW5SZWNvcmRlckNvbnN0YW50c3tcclxuICAgIGNvbnN0cnVjdG9yKCl7XHJcblxyXG4gICAgfVxyXG4gICAgcHVibGljIERFRkFVTFRfSUNPTlM6IFNjcmVlblJlY29yZGVySWNvbnMgPSB7XHJcbiAgICAgIHJlY29yZDogJ2ZpYmVyX21hbnVhbF9yZWNvcmQnLCAvLyBNYXRlcmlhbCBJY29uIG5hbWVcclxuICAgICAgc3RvcDogJ3N0b3AnLFxyXG4gICAgICBwYXVzZTogJ3BhdXNlJyxcclxuICAgICAgcmVzdW1lOiAncGxheV9hcnJvdycsXHJcbiAgICAgIHBsYXk6ICdwbGF5X2NpcmNsZV9maWxsZWQnLFxyXG4gICAgICBkb3dubG9hZDogJ2Rvd25sb2FkJyxcclxuICAgICAgYXVkaW9PbjogJ3ZvbHVtZV91cCcsXHJcbiAgICAgIGF1ZGlvT2ZmOiAndm9sdW1lX29mZicsXHJcbiAgICB9O1xyXG4gICAgXHJcbiAgICBwdWJsaWMgREVGQVVMVF9MQUJFTFMgPSB7XHJcbiAgICAgIHJlY29yZEJ1dHRvbjogJ1N0YXJ0IFJlY29yZGluZycsXHJcbiAgICAgIHN0b3BCdXR0b246ICdTdG9wIFJlY29yZGluZycsXHJcbiAgICAgIHBhdXNlQnV0dG9uOiAnUGF1c2UgUmVjb3JkaW5nJyxcclxuICAgICAgcmVzdW1lQnV0dG9uOiAnUmVzdW1lIFJlY29yZGluZycsXHJcbiAgICAgIGF1ZGlvVG9nZ2xlQnV0dG9uOiAnVG9nZ2xlIEF1ZGlvJyxcclxuICAgICAgZG93bmxvYWRCdXR0b246ICdEb3dubG9hZCBSZWNvcmRpbmcnLFxyXG4gICAgICBwbGF5YmFja1ZpZGVvOiAnU2NyZWVuIFJlY29yZGluZyBQbGF5YmFjaycsXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBJTkFDVElWRSA9ICdpbmFjdGl2ZSc7XHJcblxyXG4gICAgcHVibGljIEFVRElPX09OID0gJ0F1ZGlvIE9OJztcclxuICAgIHB1YmxpYyBBVURJT19PRkYgPSAnQXVkaW8gT0ZGJztcclxuXHJcbiAgICBwdWJsaWMgUkVDT1JESU5HX0lOX1BST0dSRVNTX0VSUk9SID0gJ1JlY29yZGluZyBpcyBhbHJlYWR5IGluIHByb2dyZXNzLic7XHJcbiAgICBwdWJsaWMgRkFJTEVEX1RPX0dFVF9ESVNQTEFZX01FRElBX1NUUkVBTV9FUlJPUiA9ICdGYWlsZWQgdG8gZ2V0IGRpc3BsYXkgbWVkaWEgc3RyZWFtJztcclxuICAgIHB1YmxpYyBOT19TVVBQT1JUX01JTUUgPSAnTm8gc3VwcG9ydGVkIE1JTUUgdHlwZSBmb3VuZCBmb3IgTWVkaWFSZWNvcmRlci4nO1xyXG4gICAgcHVibGljIE5PX1JFQ09SRElOR19ET1dOTE9BRCA9ICdObyByZWNvcmRpbmcgYXZhaWxhYmxlIHRvIGRvd25sb2FkLic7XHJcbiAgICBwdWJsaWMgTUVESUFfRVJST1IgPSAnTWVkaWFSZWNvcmRlciBlcnJvcic7XHJcbiAgICBwdWJsaWMgUEVSTUlTU0lPTl9ERU5JRUQgPSBcIkVycm9yIHN0YXJ0aW5nIHNjcmVlbiByZWNvcmRpbmc6IE5vdEFsbG93ZWRFcnJvciAtIFBlcm1pc3Npb24gZGVuaWVkXCI7XHJcbiAgICBwdWJsaWMgTk9fU1VQUE9SVCA9ICdTY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyLic7XHJcblxyXG59Il19