ng-luna 0.1.1 → 0.1.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/README.md +79 -22
- package/controls/button/button.component.d.ts +12 -2
- package/controls/checkbox/checkbox.component.d.ts +11 -2
- package/controls/input/input.component.d.ts +16 -2
- package/controls/progress/progress.component.d.ts +14 -3
- package/controls/radio/radio.component.d.ts +11 -2
- package/controls/select/select.component.d.ts +11 -2
- package/controls/slider/slider.component.d.ts +21 -5
- package/controls/tabs/tabs.component.d.ts +9 -2
- package/controls/textarea/textarea.component.d.ts +11 -2
- package/controls/window/window.component.d.ts +15 -3
- package/fesm2022/ng-luna.mjs +338 -43
- package/fesm2022/ng-luna.mjs.map +1 -1
- package/package.json +3 -5
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# ng-luna
|
|
2
2
|
|
|
3
|
-
An Angular component library inspired by Windows XP aesthetics, built with
|
|
3
|
+
An Angular component library inspired by Windows XP aesthetics, built with IBM Plex fonts.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
ng-luna provides a collection of Angular components styled to match the classic Windows XP design language. The library uses
|
|
7
|
+
ng-luna provides a collection of Angular components styled to match the classic Windows XP design language. The library uses custom styling inspired by Windows XP and [IBM Plex](https://www.ibm.com/plex/) fonts for typography.
|
|
8
8
|
|
|
9
|
-
All components are **standalone** and implement Angular's reactive forms API where applicable, making them compatible with `FormControl`, `FormGroup`, and `ngModel`.
|
|
9
|
+
All components are **standalone** and implement Angular's reactive forms API where applicable, making them compatible with `FormControl`, `FormGroup`, and `ngModel`. Components are built on **Angular CDK** for enhanced accessibility, keyboard navigation, drag-and-drop, and cross-platform support.
|
|
10
10
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
@@ -37,8 +37,51 @@ import { ButtonComponent } from 'ng-luna';
|
|
|
37
37
|
})
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
### Using Bundled Fonts
|
|
41
|
+
|
|
42
|
+
The IBM Plex fonts are **automatically bundled and loaded** when you use any ng-luna component. No additional setup or configuration is required.
|
|
43
|
+
|
|
44
|
+
**Fonts are automatically available:**
|
|
45
|
+
- ✅ Font files are bundled with the library
|
|
46
|
+
- ✅ Fonts load automatically when you use any component
|
|
47
|
+
- ✅ No imports or configuration needed
|
|
48
|
+
- ✅ Works out of the box
|
|
49
|
+
|
|
50
|
+
**Using fonts in your own styles:**
|
|
51
|
+
|
|
52
|
+
Since the fonts are already loaded, you can use them directly in your CSS/SCSS:
|
|
53
|
+
|
|
54
|
+
```scss
|
|
55
|
+
.my-custom-class {
|
|
56
|
+
font-family: 'IBM Plex Sans', sans-serif;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.code-snippet {
|
|
60
|
+
font-family: 'IBM Plex Mono', monospace;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.heading {
|
|
64
|
+
font-family: 'IBM Plex Serif', serif;
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Available font families:**
|
|
69
|
+
- `'IBM Plex Sans', sans-serif` - Default sans-serif font used by components
|
|
70
|
+
- `'IBM Plex Mono', monospace` - Monospace font
|
|
71
|
+
- `'IBM Plex Serif', serif` - Serif font
|
|
72
|
+
|
|
40
73
|
## Components
|
|
41
74
|
|
|
75
|
+
All components extend the `LunaControl` base class, which provides the following common inputs available on every component:
|
|
76
|
+
|
|
77
|
+
- `id?: string` - Element ID
|
|
78
|
+
- `name?: string` - Name attribute
|
|
79
|
+
- `disabled: boolean` - Whether the control is disabled (default: `false`)
|
|
80
|
+
- `tabindex?: number` - Tab index for keyboard navigation
|
|
81
|
+
- `autofocus: boolean` - Whether the control should be autofocused (default: `false`)
|
|
82
|
+
|
|
83
|
+
These inputs are inherited from the base class and available on all components unless otherwise noted in the component-specific documentation below.
|
|
84
|
+
|
|
42
85
|
### Button Component
|
|
43
86
|
|
|
44
87
|
The `luna-button` component provides a Windows XP-styled button.
|
|
@@ -47,20 +90,16 @@ The `luna-button` component provides a Windows XP-styled button.
|
|
|
47
90
|
|
|
48
91
|
#### Inputs
|
|
49
92
|
|
|
50
|
-
- `autofocus: boolean` - Whether the button should be autofocused (default: `false`)
|
|
51
93
|
- `command?: string` - Command to invoke when the button is clicked
|
|
52
94
|
- `commandfor?: string` - Element ID that the command is for
|
|
53
|
-
- `disabled: boolean` - Whether the button is disabled (default: `false`)
|
|
54
95
|
- `form?: string` - Form element ID to associate with
|
|
55
96
|
- `formaction?: string` - URL to submit the form to (for submit buttons)
|
|
56
97
|
- `formenctype?: FormEnctype` - Form encoding type: `'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain'`
|
|
57
98
|
- `formmethod?: FormMethod` - HTTP method for form submission: `'get' | 'post'`
|
|
58
99
|
- `formnovalidate: boolean` - Whether to bypass form validation (default: `false`)
|
|
59
100
|
- `formtarget?: FormTarget` - Where to display form response: `'_self' | '_blank' | '_parent' | '_top'`
|
|
60
|
-
- `name?: string` - Name attribute for the button
|
|
61
101
|
- `popovertarget?: string` - ID of popover element to control
|
|
62
102
|
- `popovertargetaction?: PopoverTargetAction` - Popover action: `'show' | 'hide' | 'toggle'`
|
|
63
|
-
- `tabindex?: number` - Tab index for keyboard navigation
|
|
64
103
|
- `type: ButtonType` - Button type: `'button' | 'submit' | 'reset'` (default: `'button'`)
|
|
65
104
|
- `value?: string` - Value attribute for the button
|
|
66
105
|
|
|
@@ -87,9 +126,7 @@ The `luna-checkbox` component provides a Windows XP-styled checkbox that impleme
|
|
|
87
126
|
|
|
88
127
|
#### Inputs
|
|
89
128
|
|
|
90
|
-
- `disabled: boolean` - Whether the checkbox is disabled (default: `false`)
|
|
91
129
|
- `label?: string` - Label text for the checkbox
|
|
92
|
-
- `name?: string` - Name attribute for the checkbox
|
|
93
130
|
- `value?: string` - Value attribute for the checkbox
|
|
94
131
|
|
|
95
132
|
#### Outputs
|
|
@@ -132,8 +169,6 @@ The `luna-input` component provides a Windows XP-styled text input that implemen
|
|
|
132
169
|
|
|
133
170
|
#### Inputs
|
|
134
171
|
|
|
135
|
-
- `disabled: boolean` - Whether the input is disabled (default: `false`)
|
|
136
|
-
- `name?: string` - Name attribute for the input
|
|
137
172
|
- `placeholder?: string` - Placeholder text
|
|
138
173
|
- `type: InputType` - Input type: `'text' | 'password' | 'email'` (default: `'text'`)
|
|
139
174
|
- `readonly: boolean` - Whether the input is readonly (default: `false`)
|
|
@@ -182,11 +217,11 @@ The `luna-radio` component provides a Windows XP-styled radio button that implem
|
|
|
182
217
|
|
|
183
218
|
#### Inputs
|
|
184
219
|
|
|
185
|
-
- `disabled: boolean` - Whether the radio button is disabled (default: `false`)
|
|
186
220
|
- `label?: string` - Label text for the radio button
|
|
187
|
-
- `name?: string` - Name attribute for the radio button (required for grouping)
|
|
188
221
|
- `value?: string` - Value attribute for the radio button
|
|
189
222
|
|
|
223
|
+
**Note:** The `name` attribute is required for grouping radio buttons together.
|
|
224
|
+
|
|
190
225
|
#### Outputs
|
|
191
226
|
|
|
192
227
|
- `change: EventEmitter<string>` - Emitted when the radio button is selected
|
|
@@ -216,8 +251,7 @@ The `luna-select` component provides a Windows XP-styled select dropdown that im
|
|
|
216
251
|
|
|
217
252
|
#### Inputs
|
|
218
253
|
|
|
219
|
-
|
|
220
|
-
- `name?: string` - Name attribute for the select
|
|
254
|
+
No additional inputs beyond the common base inputs.
|
|
221
255
|
|
|
222
256
|
#### Outputs
|
|
223
257
|
|
|
@@ -242,8 +276,6 @@ The `luna-slider` component provides a Windows XP-styled range slider that imple
|
|
|
242
276
|
|
|
243
277
|
#### Inputs
|
|
244
278
|
|
|
245
|
-
- `disabled: boolean` - Whether the slider is disabled (default: `false`)
|
|
246
|
-
- `name?: string` - Name attribute for the slider
|
|
247
279
|
- `min: number` - Minimum value (default: `0`)
|
|
248
280
|
- `max: number` - Maximum value (default: `100`)
|
|
249
281
|
- `step: number` - Step value (default: `1`)
|
|
@@ -268,7 +300,7 @@ The `luna-slider` component provides a Windows XP-styled range slider that imple
|
|
|
268
300
|
|
|
269
301
|
### Tabs Component
|
|
270
302
|
|
|
271
|
-
The `luna-tabs` component provides a Windows XP-styled tab interface.
|
|
303
|
+
The `luna-tabs` component provides a Windows XP-styled tab interface with keyboard navigation support.
|
|
272
304
|
|
|
273
305
|
**Selector:** `luna-tabs`
|
|
274
306
|
|
|
@@ -281,6 +313,11 @@ The `luna-tabs` component provides a Windows XP-styled tab interface.
|
|
|
281
313
|
|
|
282
314
|
- `tabChange: EventEmitter<string>` - Emitted when a tab is selected
|
|
283
315
|
|
|
316
|
+
#### Keyboard Navigation
|
|
317
|
+
|
|
318
|
+
- **Arrow Left/Right** - Navigate between tabs
|
|
319
|
+
- **Tab** - Move focus to tab panel content
|
|
320
|
+
|
|
284
321
|
#### Example
|
|
285
322
|
|
|
286
323
|
```html
|
|
@@ -306,8 +343,6 @@ The `luna-textarea` component provides a Windows XP-styled textarea that impleme
|
|
|
306
343
|
|
|
307
344
|
#### Inputs
|
|
308
345
|
|
|
309
|
-
- `disabled: boolean` - Whether the textarea is disabled (default: `false`)
|
|
310
|
-
- `name?: string` - Name attribute for the textarea
|
|
311
346
|
- `placeholder?: string` - Placeholder text
|
|
312
347
|
- `rows?: number` - Number of visible rows
|
|
313
348
|
- `cols?: number` - Number of visible columns
|
|
@@ -332,7 +367,7 @@ The `luna-textarea` component provides a Windows XP-styled textarea that impleme
|
|
|
332
367
|
|
|
333
368
|
### Window Component
|
|
334
369
|
|
|
335
|
-
The `luna-window` component provides a Windows XP-styled window with title bar and controls.
|
|
370
|
+
The `luna-window` component provides a Windows XP-styled draggable window with title bar and controls.
|
|
336
371
|
|
|
337
372
|
**Selector:** `luna-window`
|
|
338
373
|
|
|
@@ -344,6 +379,8 @@ The `luna-window` component provides a Windows XP-styled window with title bar a
|
|
|
344
379
|
- `showHelp: boolean` - Whether to show the help button (default: `false`)
|
|
345
380
|
- `showClose: boolean` - Whether to show the close button (default: `true`)
|
|
346
381
|
- `isMaximized: boolean` - Whether the window is currently maximized (default: `false`)
|
|
382
|
+
- `boundaryElement?: string` - CSS selector for element that constrains window dragging
|
|
383
|
+
- `scrollable: boolean` - Whether the window body should be scrollable (default: `false`)
|
|
347
384
|
|
|
348
385
|
#### Outputs
|
|
349
386
|
|
|
@@ -353,12 +390,18 @@ The `luna-window` component provides a Windows XP-styled window with title bar a
|
|
|
353
390
|
- `help: EventEmitter<void>` - Emitted when the help button is clicked
|
|
354
391
|
- `close: EventEmitter<void>` - Emitted when the close button is clicked
|
|
355
392
|
|
|
393
|
+
#### Dragging
|
|
394
|
+
|
|
395
|
+
The window can be dragged by its title bar. Dragging is automatically disabled when the window is maximized.
|
|
396
|
+
|
|
356
397
|
#### Example
|
|
357
398
|
|
|
358
399
|
```html
|
|
359
400
|
<luna-window
|
|
360
401
|
title="My Application"
|
|
361
402
|
[showHelp]="true"
|
|
403
|
+
boundaryElement=".container"
|
|
404
|
+
[scrollable]="true"
|
|
362
405
|
(minimize)="onMinimize()"
|
|
363
406
|
(maximize)="onMaximize()"
|
|
364
407
|
(close)="onClose()">
|
|
@@ -368,6 +411,21 @@ The `luna-window` component provides a Windows XP-styled window with title bar a
|
|
|
368
411
|
</luna-window>
|
|
369
412
|
```
|
|
370
413
|
|
|
414
|
+
## Accessibility & CDK Features
|
|
415
|
+
|
|
416
|
+
All components leverage **Angular CDK** for enhanced functionality:
|
|
417
|
+
|
|
418
|
+
- **Focus Management** - All form components track focus states for better accessibility
|
|
419
|
+
- **Keyboard Navigation** - Tabs support arrow key navigation with focus management
|
|
420
|
+
- **Screen Reader Support** - Components announce state changes via `LiveAnnouncer`
|
|
421
|
+
- **Drag & Drop** - Window component supports draggable functionality with boundary constraints
|
|
422
|
+
- **Scrolling** - Window body supports scrollable content areas
|
|
423
|
+
- **Platform Detection** - Components adapt behavior based on platform/browser
|
|
424
|
+
- **RTL Support** - Input and button components support right-to-left layouts
|
|
425
|
+
- **Type Coercion** - Number inputs use type-safe coercion utilities
|
|
426
|
+
|
|
427
|
+
Screen reader announcements are non-intrusive and only audible to assistive technology users.
|
|
428
|
+
|
|
371
429
|
## Reactive Forms Support
|
|
372
430
|
|
|
373
431
|
Components that implement `ControlValueAccessor` (checkbox, input, radio, select, slider, textarea) can be used with Angular's reactive forms:
|
|
@@ -449,7 +507,6 @@ ng-luna/
|
|
|
449
507
|
|
|
450
508
|
## Dependencies
|
|
451
509
|
|
|
452
|
-
- **XP.css** (v0.2.6) - Windows XP styling framework
|
|
453
510
|
- **@ibm/plex** (v6.4.1) - IBM Plex font families (fonts are bundled with the library)
|
|
454
511
|
- **@angular/cdk** (v19.2.17) - Angular Component Dev Kit
|
|
455
512
|
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { Dir } from '@angular/cdk/bidi';
|
|
3
|
+
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
4
|
+
import { Platform } from '@angular/cdk/platform';
|
|
2
5
|
import { LunaControl } from '../luna-control';
|
|
3
6
|
import * as i0 from "@angular/core";
|
|
4
7
|
export type ButtonType = 'button' | 'submit' | 'reset';
|
|
@@ -6,7 +9,11 @@ export type FormEnctype = 'application/x-www-form-urlencoded' | 'multipart/form-
|
|
|
6
9
|
export type FormMethod = 'get' | 'post';
|
|
7
10
|
export type FormTarget = '_self' | '_blank' | '_parent' | '_top';
|
|
8
11
|
export type PopoverTargetAction = 'show' | 'hide' | 'toggle';
|
|
9
|
-
export declare class ButtonComponent extends LunaControl {
|
|
12
|
+
export declare class ButtonComponent extends LunaControl implements AfterViewInit, OnDestroy {
|
|
13
|
+
private elementRef;
|
|
14
|
+
private focusMonitor;
|
|
15
|
+
platform: Platform;
|
|
16
|
+
dir: Dir;
|
|
10
17
|
command?: string;
|
|
11
18
|
commandfor?: string;
|
|
12
19
|
form?: string;
|
|
@@ -20,6 +27,9 @@ export declare class ButtonComponent extends LunaControl {
|
|
|
20
27
|
type: ButtonType;
|
|
21
28
|
value?: string;
|
|
22
29
|
click: EventEmitter<MouseEvent>;
|
|
30
|
+
constructor(elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, platform: Platform, dir: Dir);
|
|
31
|
+
ngAfterViewInit(): void;
|
|
32
|
+
ngOnDestroy(): void;
|
|
23
33
|
onClick(event: MouseEvent): void;
|
|
24
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
25
35
|
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "luna-button", never, { "command": { "alias": "command"; "required": false; }; "commandfor": { "alias": "commandfor"; "required": false; }; "form": { "alias": "form"; "required": false; }; "formaction": { "alias": "formaction"; "required": false; }; "formenctype": { "alias": "formenctype"; "required": false; }; "formmethod": { "alias": "formmethod"; "required": false; }; "formnovalidate": { "alias": "formnovalidate"; "required": false; }; "formtarget": { "alias": "formtarget"; "required": false; }; "popovertarget": { "alias": "popovertarget"; "required": false; }; "popovertargetaction": { "alias": "popovertargetaction"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "click": "click"; }, never, ["*"], true, never>;
|
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';
|
|
4
|
+
import { Platform } from '@angular/cdk/platform';
|
|
3
5
|
import { LunaControl } from '../luna-control';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class CheckboxComponent extends LunaControl implements ControlValueAccessor {
|
|
7
|
+
export declare class CheckboxComponent extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy {
|
|
8
|
+
private elementRef;
|
|
9
|
+
private focusMonitor;
|
|
10
|
+
private liveAnnouncer;
|
|
11
|
+
platform: Platform;
|
|
6
12
|
label?: string;
|
|
7
13
|
value?: string;
|
|
8
14
|
change: EventEmitter<boolean>;
|
|
9
15
|
checked: boolean;
|
|
10
16
|
private onChange;
|
|
11
17
|
private onTouched;
|
|
18
|
+
constructor(elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, liveAnnouncer: LiveAnnouncer, platform: Platform);
|
|
19
|
+
ngAfterViewInit(): void;
|
|
20
|
+
ngOnDestroy(): void;
|
|
12
21
|
onCheckboxChange(event: Event): void;
|
|
13
22
|
writeValue(value: boolean): void;
|
|
14
23
|
registerOnChange(fn: (value: boolean) => void): void;
|
|
@@ -1,9 +1,19 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';
|
|
4
|
+
import { Platform } from '@angular/cdk/platform';
|
|
5
|
+
import { Dir } from '@angular/cdk/bidi';
|
|
6
|
+
import { Clipboard } from '@angular/cdk/clipboard';
|
|
3
7
|
import { LunaControl } from '../luna-control';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
export type InputType = 'text' | 'password' | 'email';
|
|
6
|
-
export declare class InputComponent extends LunaControl implements ControlValueAccessor {
|
|
10
|
+
export declare class InputComponent extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy {
|
|
11
|
+
private elementRef;
|
|
12
|
+
private focusMonitor;
|
|
13
|
+
private liveAnnouncer;
|
|
14
|
+
platform: Platform;
|
|
15
|
+
dir: Dir;
|
|
16
|
+
private clipboard;
|
|
7
17
|
placeholder?: string;
|
|
8
18
|
readonly: boolean;
|
|
9
19
|
type: InputType;
|
|
@@ -12,6 +22,10 @@ export declare class InputComponent extends LunaControl implements ControlValueA
|
|
|
12
22
|
value: string;
|
|
13
23
|
private onChange;
|
|
14
24
|
private onTouched;
|
|
25
|
+
inputElement?: ElementRef<HTMLInputElement>;
|
|
26
|
+
constructor(elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, liveAnnouncer: LiveAnnouncer, platform: Platform, dir: Dir, clipboard: Clipboard);
|
|
27
|
+
ngAfterViewInit(): void;
|
|
28
|
+
ngOnDestroy(): void;
|
|
15
29
|
onInputChange(event: Event): void;
|
|
16
30
|
onInputBlur(event: FocusEvent): void;
|
|
17
31
|
writeValue(value: string): void;
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { NumberInput } from '@angular/cdk/coercion';
|
|
3
|
+
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
|
1
4
|
import { LunaControl } from '../luna-control';
|
|
2
5
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class ProgressComponent extends LunaControl {
|
|
4
|
-
|
|
5
|
-
value
|
|
6
|
+
export declare class ProgressComponent extends LunaControl implements OnChanges {
|
|
7
|
+
private liveAnnouncer;
|
|
8
|
+
set max(value: NumberInput);
|
|
9
|
+
get max(): number;
|
|
10
|
+
set value(value: NumberInput | undefined);
|
|
11
|
+
get value(): number | undefined;
|
|
12
|
+
private _max;
|
|
13
|
+
private _value?;
|
|
14
|
+
private _previousValue?;
|
|
15
|
+
constructor(liveAnnouncer: LiveAnnouncer);
|
|
16
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
6
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressComponent, never>;
|
|
7
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressComponent, "luna-progress", never, { "max": { "alias": "max"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
|
|
8
19
|
}
|
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';
|
|
4
|
+
import { Platform } from '@angular/cdk/platform';
|
|
3
5
|
import { LunaControl } from '../luna-control';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class RadioComponent extends LunaControl implements ControlValueAccessor {
|
|
7
|
+
export declare class RadioComponent extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy {
|
|
8
|
+
private elementRef;
|
|
9
|
+
private focusMonitor;
|
|
10
|
+
private liveAnnouncer;
|
|
11
|
+
platform: Platform;
|
|
6
12
|
label?: string;
|
|
7
13
|
value?: string;
|
|
8
14
|
change: EventEmitter<string>;
|
|
9
15
|
checked: boolean;
|
|
10
16
|
private onChange;
|
|
11
17
|
private onTouched;
|
|
18
|
+
constructor(elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, liveAnnouncer: LiveAnnouncer, platform: Platform);
|
|
19
|
+
ngAfterViewInit(): void;
|
|
20
|
+
ngOnDestroy(): void;
|
|
12
21
|
onRadioChange(event: Event): void;
|
|
13
22
|
writeValue(value: string | null): void;
|
|
14
23
|
registerOnChange(fn: (value: string | null) => void): void;
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';
|
|
4
|
+
import { Platform } from '@angular/cdk/platform';
|
|
3
5
|
import { LunaControl } from '../luna-control';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class SelectComponent extends LunaControl implements ControlValueAccessor {
|
|
7
|
+
export declare class SelectComponent extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy {
|
|
8
|
+
private elementRef;
|
|
9
|
+
private focusMonitor;
|
|
10
|
+
private liveAnnouncer;
|
|
11
|
+
platform: Platform;
|
|
6
12
|
change: EventEmitter<string>;
|
|
7
13
|
value: string;
|
|
8
14
|
private onChange;
|
|
9
15
|
private onTouched;
|
|
16
|
+
constructor(elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, liveAnnouncer: LiveAnnouncer, platform: Platform);
|
|
17
|
+
ngAfterViewInit(): void;
|
|
18
|
+
ngOnDestroy(): void;
|
|
10
19
|
onSelectChange(event: Event): void;
|
|
11
20
|
writeValue(value: string): void;
|
|
12
21
|
registerOnChange(fn: (value: string) => void): void;
|
|
@@ -1,17 +1,33 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';
|
|
4
|
+
import { NumberInput } from '@angular/cdk/coercion';
|
|
5
|
+
import { Platform } from '@angular/cdk/platform';
|
|
3
6
|
import { LunaControl } from '../luna-control';
|
|
4
7
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class SliderComponent extends LunaControl implements ControlValueAccessor {
|
|
8
|
+
export declare class SliderComponent extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy {
|
|
9
|
+
private elementRef;
|
|
10
|
+
private focusMonitor;
|
|
11
|
+
private liveAnnouncer;
|
|
12
|
+
platform: Platform;
|
|
6
13
|
boxIndicator: boolean;
|
|
7
|
-
max:
|
|
8
|
-
|
|
9
|
-
|
|
14
|
+
set max(value: NumberInput);
|
|
15
|
+
get max(): number;
|
|
16
|
+
set min(value: NumberInput);
|
|
17
|
+
get min(): number;
|
|
18
|
+
set step(value: NumberInput);
|
|
19
|
+
get step(): number;
|
|
10
20
|
vertical: boolean;
|
|
11
21
|
change: EventEmitter<number>;
|
|
12
22
|
value: number;
|
|
23
|
+
private _max;
|
|
24
|
+
private _min;
|
|
25
|
+
private _step;
|
|
13
26
|
private onChange;
|
|
14
27
|
private onTouched;
|
|
28
|
+
constructor(elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, liveAnnouncer: LiveAnnouncer, platform: Platform);
|
|
29
|
+
ngAfterViewInit(): void;
|
|
30
|
+
ngOnDestroy(): void;
|
|
15
31
|
onSliderChange(event: Event): void;
|
|
16
32
|
onSliderBlur(): void;
|
|
17
33
|
writeValue(value: number): void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, QueryList, ElementRef, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { Platform } from '@angular/cdk/platform';
|
|
2
3
|
import { LunaControl } from '../luna-control';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export interface Tab {
|
|
@@ -6,12 +7,18 @@ export interface Tab {
|
|
|
6
7
|
label: string;
|
|
7
8
|
content?: string;
|
|
8
9
|
}
|
|
9
|
-
export declare class TabsComponent extends LunaControl {
|
|
10
|
+
export declare class TabsComponent extends LunaControl implements AfterViewInit {
|
|
11
|
+
platform: Platform;
|
|
10
12
|
activeTabId?: string;
|
|
11
13
|
tabs: Tab[];
|
|
12
14
|
tabChange: EventEmitter<string>;
|
|
15
|
+
tabButtons: QueryList<ElementRef<HTMLButtonElement>>;
|
|
16
|
+
private keyManager?;
|
|
17
|
+
constructor(platform: Platform);
|
|
18
|
+
ngAfterViewInit(): void;
|
|
13
19
|
selectTab(tabId: string): void;
|
|
14
20
|
isActive(tabId: string): boolean;
|
|
21
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
15
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabsComponent, never>;
|
|
16
23
|
static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "luna-tabs", never, { "activeTabId": { "alias": "activeTabId"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; }, { "tabChange": "tabChange"; }, never, ["*"], true, never>;
|
|
17
24
|
}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';
|
|
4
|
+
import { Platform } from '@angular/cdk/platform';
|
|
3
5
|
import { LunaControl } from '../luna-control';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TextareaComponent extends LunaControl implements ControlValueAccessor {
|
|
7
|
+
export declare class TextareaComponent extends LunaControl implements ControlValueAccessor, AfterViewInit, OnDestroy {
|
|
8
|
+
private elementRef;
|
|
9
|
+
private focusMonitor;
|
|
10
|
+
private liveAnnouncer;
|
|
11
|
+
platform: Platform;
|
|
6
12
|
cols?: number;
|
|
7
13
|
placeholder?: string;
|
|
8
14
|
readonly: boolean;
|
|
@@ -12,6 +18,9 @@ export declare class TextareaComponent extends LunaControl implements ControlVal
|
|
|
12
18
|
value: string;
|
|
13
19
|
private onChange;
|
|
14
20
|
private onTouched;
|
|
21
|
+
constructor(elementRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, liveAnnouncer: LiveAnnouncer, platform: Platform);
|
|
22
|
+
ngAfterViewInit(): void;
|
|
23
|
+
ngOnDestroy(): void;
|
|
15
24
|
onTextareaChange(event: Event): void;
|
|
16
25
|
onTextareaBlur(event: FocusEvent): void;
|
|
17
26
|
writeValue(value: string): void;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { Platform } from '@angular/cdk/platform';
|
|
2
3
|
import { LunaControl } from '../luna-control';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class WindowComponent extends LunaControl {
|
|
5
|
+
export declare class WindowComponent extends LunaControl implements AfterViewInit, OnChanges {
|
|
6
|
+
private elementRef;
|
|
7
|
+
platform: Platform;
|
|
5
8
|
isMaximized: boolean;
|
|
6
9
|
showClose: boolean;
|
|
7
10
|
showHelp: boolean;
|
|
@@ -13,10 +16,19 @@ export declare class WindowComponent extends LunaControl {
|
|
|
13
16
|
restore: EventEmitter<void>;
|
|
14
17
|
help: EventEmitter<void>;
|
|
15
18
|
close: EventEmitter<void>;
|
|
19
|
+
boundaryElement?: string;
|
|
20
|
+
scrollable: boolean;
|
|
21
|
+
dragDisabled: boolean;
|
|
22
|
+
private dragInstance?;
|
|
23
|
+
constructor(elementRef: ElementRef<HTMLElement>, platform: Platform);
|
|
24
|
+
ngAfterViewInit(): void;
|
|
25
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
26
|
+
private updateDragState;
|
|
27
|
+
private updateDragBoundary;
|
|
16
28
|
onMinimize(): void;
|
|
17
29
|
onMaximize(): void;
|
|
18
30
|
onHelp(): void;
|
|
19
31
|
onClose(): void;
|
|
20
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<WindowComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WindowComponent, "luna-window", never, { "isMaximized": { "alias": "isMaximized"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; "showHelp": { "alias": "showHelp"; "required": false; }; "showMaximize": { "alias": "showMaximize"; "required": false; }; "showMinimize": { "alias": "showMinimize"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, { "minimize": "minimize"; "maximize": "maximize"; "restore": "restore"; "help": "help"; "close": "close"; }, never, ["*", "[slot='status']"], true, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WindowComponent, "luna-window", never, { "isMaximized": { "alias": "isMaximized"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; "showHelp": { "alias": "showHelp"; "required": false; }; "showMaximize": { "alias": "showMaximize"; "required": false; }; "showMinimize": { "alias": "showMinimize"; "required": false; }; "title": { "alias": "title"; "required": false; }; "boundaryElement": { "alias": "boundaryElement"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; }, { "minimize": "minimize"; "maximize": "maximize"; "restore": "restore"; "help": "help"; "close": "close"; }, never, ["*", "*", "[slot='status']"], true, never>;
|
|
22
34
|
}
|